SpyBara
Go Premium

Documentation 2026-09-17 05:00 UTC to 2026-09-18 23:58 UTC

124 files changed +5,018 −2,087. View all changes and history on the product overview
2026
Fri 25 23:58 Thu 24 22:57 Wed 23 23:57 Tue 22 23:59 Mon 21 22:59 Sun 20 23:59 Sat 19 23:57 Fri 18 23:58 Tue 15 23:58 Mon 14 22:58 Sun 13 21:00 Sat 12 03:02 Thu 10 23:00 Wed 9 22:58 Tue 8 20:00 Tue 1 21:02
Details

10 10 

11O modo leitor de tela é opcional. Se você usar um ampliador de tela, movimento reduzido ou um tema amigável para daltônicos em vez de um leitor de tela, defina `CLAUDE_CODE_ACCESSIBILITY`, `prefersReducedMotion` ou `theme` a partir da tabela [Configurações de acessibilidade](#accessibility-settings). O modo leitor de tela adapta apenas a interface do terminal, portanto você não precisa dele no painel de chat da extensão VS Code. No Claude Code v2.1.236 ou posterior, a extensão [anuncia atividade de conversa para seu leitor de tela](/docs/pt/vs-code#use-a-screen-reader) lá sem nenhuma configuração.11O modo leitor de tela é opcional. Se você usar um ampliador de tela, movimento reduzido ou um tema amigável para daltônicos em vez de um leitor de tela, defina `CLAUDE_CODE_ACCESSIBILITY`, `prefersReducedMotion` ou `theme` a partir da tabela [Configurações de acessibilidade](#accessibility-settings). O modo leitor de tela adapta apenas a interface do terminal, portanto você não precisa dele no painel de chat da extensão VS Code. No Claude Code v2.1.236 ou posterior, a extensão [anuncia atividade de conversa para seu leitor de tela](/docs/pt/vs-code#use-a-screen-reader) lá sem nenhuma configuração.

12 12 

13O modo leitor de tela requer Claude Code v2.1.181 ou posterior. Versões anteriores rejeitam a flag `--ax-screen-reader` com `error: unknown option '--ax-screen-reader'`.

14 

15<h2 id="turn-on-screen-reader-mode">13<h2 id="turn-on-screen-reader-mode">

16 Ativar o modo leitor de tela14 Ativar o modo leitor de tela

17</h2>15</h2>

admin-setup.md +4 −3

Details

36| Google Cloud's Agent Platform | Você quer herdar controles de conformidade e faturamento GCP existentes |36| Google Cloud's Agent Platform | Você quer herdar controles de conformidade e faturamento GCP existentes |

37| Microsoft Foundry | Você quer herdar controles de conformidade e faturamento Azure existentes |37| Microsoft Foundry | Você quer herdar controles de conformidade e faturamento Azure existentes |

38 38 

39Alguns recursos do Claude Code exigem uma conta claude.ai. [Claude Code on the web](/docs/pt/claude-code-on-the-web), [Routines](/docs/pt/routines), [Code Review](/docs/pt/code-review), [Remote Control](/docs/pt/remote-control) e a [Chrome extension](/docs/pt/chrome) não estão disponíveis apenas através de chaves da API Console ou credenciais de provedor de nuvem. Se você implantar através de Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry, planeje se os desenvolvedores também precisam de assentos Claude for Teams ou Enterprise. Cada página de recurso lista seus requisitos de plano.39Alguns recursos do Claude Code exigem uma conta claude.ai. [Cloud sessions](/docs/pt/claude-code-on-the-web), [Routines](/docs/pt/routines), [Code Review](/docs/pt/code-review), [Remote Control](/docs/pt/remote-control) e a [Chrome extension](/docs/pt/chrome) não estão disponíveis apenas através de chaves da API Console ou credenciais de provedor de nuvem. Se você implantar através de Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry, planeje se os desenvolvedores também precisam de assentos Claude for Teams ou Enterprise. Cada página de recurso lista seus requisitos de plano.

40 40 

41Para a comparação completa do provedor cobrindo autenticação, regiões e paridade de recursos, consulte a [visão geral de implantação empresarial](/docs/pt/third-party-integrations). A configuração de autenticação de cada provedor está em [Authentication](/docs/pt/authentication).41Para a comparação completa do provedor cobrindo autenticação, regiões e paridade de recursos, consulte a [visão geral de implantação empresarial](/docs/pt/third-party-integrations). A configuração de autenticação de cada provedor está em [Authentication](/docs/pt/authentication).

42 42 


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

103| [MCP server control](/docs/pt/managed-mcp) | Restringir quais servidores MCP os usuários podem adicionar ou conectar, implantar um conjunto fixo, ou fornecer servidores remotos para cada usuário ao lado dos seus próprios | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly`, `managedMcpServers`, ou um arquivo `managed-mcp.json` implantado |103| [MCP server control](/docs/pt/managed-mcp) | Restringir quais servidores MCP os usuários podem adicionar ou conectar, implantar um conjunto fixo, ou fornecer servidores remotos para cada usuário ao lado dos seus próprios | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly`, `managedMcpServers`, ou um arquivo `managed-mcp.json` implantado |

104| [Plugin marketplace control](/docs/pt/plugin-marketplaces#managed-marketplace-restrictions) | Restringir quais fontes de marketplace os usuários podem adicionar e instalar, rejeitar os sinalizadores CLI que carregam plugins, agents e servidores MCP para uma única execução, bloquear [fontes de plugin `command`](/docs/pt/plugin-marketplaces#command-sources), e criar uma lista de permissão de quais plugins dos marketplaces podem ser sugeridos | `strictKnownMarketplaces`, `blockedMarketplaces`, `disableSideloadFlags`, `disableCommandPluginSources`, `pluginSuggestionMarketplaces` |104| [Plugin marketplace control](/docs/pt/plugin-marketplaces#managed-marketplace-restrictions) | Restringir quais fontes de marketplace os usuários podem adicionar e instalar, rejeitar os sinalizadores CLI que carregam plugins, agents e servidores MCP para uma única execução, bloquear [fontes de plugin `command`](/docs/pt/plugin-marketplaces#command-sources), e criar uma lista de permissão de quais plugins dos marketplaces podem ser sugeridos | `strictKnownMarketplaces`, `blockedMarketplaces`, `disableSideloadFlags`, `disableCommandPluginSources`, `pluginSuggestionMarketplaces` |

105| [Customization lockdown](/docs/pt/settings-reference#strictpluginonlycustomization) | Bloquear skills, agents, hooks e servidores MCP de fontes de usuário e projeto, para que possam vir apenas de plugins ou configurações gerenciadas | `strictPluginOnlyCustomization` |105| [Customization lockdown](/docs/pt/settings-reference#strictpluginonlycustomization) | Bloquear skills, agents, hooks e servidores MCP de fontes de usuário e projeto, para que possam vir apenas de plugins ou configurações gerenciadas. Bloquear skills também interrompe os [skills que seus desenvolvedores habilitam em claude.ai](/docs/pt/skills#where-synced-skills-load) de sincronização | `strictPluginOnlyCustomization` |

106| [Disable claude.ai sync](/docs/pt/settings-reference#syncclaudeaiskills) | Impedir que Claude Code carregue os [skills](/docs/pt/skills#how-synced-skills-behave) e [plugins](/docs/pt/plugins-reference#synced-plugins) que seus desenvolvedores habilitam em claude.ai. Se você desativar Skills para sua organização em claude.ai, Claude Code interrompe a sincronização de ambos, e na v2.1.273 ou posterior também remove os que já sincronizou. Para interromper um sem desativar Skills, defina sua chave como `false` nas configurações gerenciadas | `syncClaudeAiSkills`, `syncClaudeAiPlugins` |

106| [Hook restrictions](/docs/pt/settings-reference#allowmanagedhooksonly) | Restringir quais hooks são executados e restringir URLs de hook HTTP; consulte [o que é executado em `allowManagedHooksOnly`](/docs/pt/settings-reference#what-runs-under-allowmanagedhooksonly) para a lista completa de efeitos | `allowManagedHooksOnly`, `allowedHttpHookUrls` |107| [Hook restrictions](/docs/pt/settings-reference#allowmanagedhooksonly) | Restringir quais hooks são executados e restringir URLs de hook HTTP; consulte [o que é executado em `allowManagedHooksOnly`](/docs/pt/settings-reference#what-runs-under-allowmanagedhooksonly) para a lista completa de efeitos | `allowManagedHooksOnly`, `allowedHttpHookUrls` |

107| [Login enforcement](/docs/pt/settings-reference#forceloginmethod) | Restringir login a um método específico ou organização Anthropic. A restrição de método se aplica na extensão VS Code, Agent SDK, `claude setup-token` e `/install-github-app`, e a tela de login interativa do terminal, acessada por `/login` ou onboarding de primeira execução, pré-seleciona o método sem aplicá-lo; Claude Code verifica a organização para logins de conta claude.ai no terminal, extensão VS Code e Agent SDK, e não verifica para logins do Claude Console ou para entrada de [gateway](/docs/pt/claude-apps-gateway). Antes da v2.1.212, apenas logins de terminal aplicavam qualquer chave. Quando definido, sessões autenticadas por `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, ou `apiKeyHelper` são bloqueadas na inicialização; sessões de provedor de nuvem não são afetadas | `forceLoginMethod`, `forceLoginOrgUUID` |108| [Login enforcement](/docs/pt/settings-reference#forceloginmethod) | Restringir login a um método específico ou organização Anthropic. A restrição de método se aplica na extensão VS Code, Agent SDK, `claude setup-token` e `/install-github-app`, e a tela de login interativa do terminal, acessada por `/login` ou onboarding de primeira execução, pré-seleciona o método sem aplicá-lo; Claude Code verifica a organização para logins de conta claude.ai no terminal, extensão VS Code e Agent SDK, e não verifica para logins do Claude Console ou para entrada de [gateway](/docs/pt/claude-apps-gateway). Antes da v2.1.212, apenas logins de terminal aplicavam qualquer chave. Quando definido, sessões autenticadas por `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, ou `apiKeyHelper` são bloqueadas na inicialização; sessões de provedor de nuvem não são afetadas | `forceLoginMethod`, `forceLoginOrgUUID` |

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


121 122 

122Nenhum desses controles alcança sessões no Amazon Bedrock, na Agent Platform do Google Cloud, no Microsoft Foundry, ou [Claude Platform on AWS](/docs/pt/claude-platform-on-aws). Nesses provedores, use configurações gerenciadas em vez disso: `availableModels` para restrições, `model` para um padrão, e [`maxEffortLevel`](/docs/pt/settings-reference#maxeffortlevel) para um limite de esforço.123Nenhum desses controles alcança sessões no Amazon Bedrock, na Agent Platform do Google Cloud, no Microsoft Foundry, ou [Claude Platform on AWS](/docs/pt/claude-platform-on-aws). Nesses provedores, use configurações gerenciadas em vez disso: `availableModels` para restrições, `model` para um padrão, e [`maxEffortLevel`](/docs/pt/settings-reference#maxeffortlevel) para um limite de esforço.

123 124 

124[Claude Code on the web](/docs/pt/claude-code-on-the-web) tem sua própria superfície de administrador: na página de ambientes de nuvem nas configurações de administrador, Proprietários criam [ambientes compartilhados da organização](/docs/pt/cloud-environments#organization-shared-environments) que definem o [nível de acesso à rede](/docs/pt/cloud-environments#network-access), variáveis de ambiente e script de configuração para sessões de nuvem dos membros. Os Proprietários escolhem o ambiente padrão da organização separadamente, em [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).125[Cloud sessions](/docs/pt/claude-code-on-the-web) têm sua própria superfície de administrador: na página de ambientes de nuvem nas configurações de administrador, Proprietários criam [ambientes compartilhados da organização](/docs/pt/cloud-environments#organization-shared-environments) que definem o [nível de acesso à rede](/docs/pt/cloud-environments#network-access), variáveis de ambiente e script de configuração para sessões de nuvem dos membros. Os Proprietários escolhem o ambiente padrão da organização separadamente, em [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).

125 126 

126As regras de permissão e sandboxing cobrem camadas diferentes. Negar WebFetch bloqueia a ferramenta de busca do Claude, mas se Bash for permitido, `curl` e `wget` ainda podem alcançar qualquer URL. O sandboxing fecha essa lacuna com uma lista de permissão de domínio de rede aplicada no nível do SO.127As regras de permissão e sandboxing cobrem camadas diferentes. Negar WebFetch bloqueia a ferramenta de busca do Claude, mas se Bash for permitido, `curl` e `wget` ainda podem alcançar qualquer URL. O sandboxing fecha essa lacuna com uma lista de permissão de domínio de rede aplicada no nível do SO.

127 128 

Details

222 222 

223O limite de orçamento cobre [subagents](/docs/pt/agent-sdk/subagents): seus gastos contam para o total. Quando o gasto atinge o limite, gerar outro subagent falha com `Budget limit reached`, e Claude Code para qualquer subagent em segundo plano ainda em execução. Os comportamentos de aplicação do limite exigem Claude Code v2.1.217 ou posterior.223O limite de orçamento cobre [subagents](/docs/pt/agent-sdk/subagents): seus gastos contam para o total. Quando o gasto atinge o limite, gerar outro subagent falha com `Budget limit reached`, e Claude Code para qualquer subagent em segundo plano ainda em execução. Os comportamentos de aplicação do limite exigem Claude Code v2.1.217 ou posterior.

224 224 

225Com [streaming input](/docs/pt/agent-sdk/streaming-vs-single-mode), uma mensagem que ainda está na fila quando uma volta termina no limite de max-turns permanece na fila. Claude Code não a adiciona à última chamada de modelo dessa volta. Ele inicia uma nova volta para a mensagem, e a contagem de max-turns recomeça para essa volta.225Com [streaming input](/docs/pt/agent-sdk/streaming-vs-single-mode), uma mensagem que ainda está na fila quando uma volta termina no limite de max-turns permanece na fila. Claude Code não a adiciona à última chamada de modelo dessa volta. Ele inicia uma nova volta para a mensagem, e a contagem de max-turns recomeça para essa volta. O total de orçamento continua acumulando entre mensagens, e uma vez que o gasto atinge `maxBudgetUsd`, mensagens posteriores na mesma conversa terminam com o resultado `error_max_budget_usd`. Um [`/clear`](/docs/pt/agent-sdk/cost-tracking) reinicia o orçamento.

226 226 

227<h3 id="effort-level">227<h3 id="effort-level">

228 Nível de esforço228 Nível de esforço


267 Modelo267 Modelo

268</h3>268</h3>

269 269 

270Se você não definir `model`, o SDK usa o padrão do Claude Code, que depende do seu método de autenticação e assinatura. Defina-o explicitamente (por exemplo, `model="claude-sonnet-5"`) para fixar um modelo específico ou usar um modelo menor para agentes mais rápidos e baratos. Veja [models](https://platform.claude.com/docs/en/about-claude/models) para IDs disponíveis.270Defina a opção `model` para escolher qual modelo executa a sessão. Para mais informações, veja [Choose a model](/docs/pt/agent-sdk/configuration#choose-a-model).

271 271 

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

273 A janela de contexto273 A janela de contexto


362 362 

363O campo `result` contém a saída de texto final e está presente apenas na variante `success`, então sempre verifique o subtipo antes de lê-lo.363O campo `result` contém a saída de texto final e está presente apenas na variante `success`, então sempre verifique o subtipo antes de lê-lo.

364 364 

365Todos os subtipos de resultado carregam `total_cost_usd`, `usage`, `num_turns` e `session_id` para que você possa rastrear custo e retomar mesmo após erros. Duas coisas para se proteger:365Todos os subtipos de resultado carregam `total_cost_usd`, `usage`, `num_turns` e `session_id` para que você possa rastrear custo e retomar mesmo após erros. Proteja-se para estes casos:

366 366 

367* Após uma falha de sessão, o resultado final é um `error_during_execution` cujos campos de custo podem ser zerados e cujo `stop_reason` é `null`, e o processo sai após emiti-lo. Veja [Recuperar totais após uma falha de sessão](/docs/pt/agent-sdk/cost-tracking#recover-totals-after-a-session-crash).367* Após uma falha de sessão, o resultado final é um `error_during_execution` cujos campos de custo podem ser zerados e cujo `stop_reason` é `null`, e o processo sai após emiti-lo. Veja [Recuperar totais após uma falha de sessão](/docs/pt/agent-sdk/cost-tracking#recover-totals-after-a-session-crash).

368* Em Python, `total_cost_usd`, `usage` e `model_usage` são digitados como opcionais, então verifique se não são `None` antes de lê-los.368* Em Python, `total_cost_usd`, `usage` e `model_usage` são digitados como opcionais, então verifique se não são `None` antes de lê-los.

Details

8 8 

9O Agent SDK é construído na mesma base que Claude Code, o que significa que seus agentes SDK têm acesso aos mesmos recursos baseados em sistema de arquivos: instruções de projeto (`CLAUDE.md` e regras), skills, hooks e muito mais.9O Agent SDK é construído na mesma base que Claude Code, o que significa que seus agentes SDK têm acesso aos mesmos recursos baseados em sistema de arquivos: instruções de projeto (`CLAUDE.md` e regras), skills, hooks e muito mais.

10 10 

11Quando você omite `settingSources`, `query()` lê as mesmas configurações do sistema de arquivos que a CLI Claude Code: configurações de usuário, projeto e local, arquivos `CLAUDE.md` e skills, agentes e comandos em `.claude/`. Para executar sem estes, passe `settingSources: []`, o que limita o agente ao que você configura programaticamente. As configurações de política gerenciada e a configuração global `~/.claude.json` são lidas independentemente desta opção. Veja [O que settingSources não controla](#what-settingsources-does-not-control).11Quando você omite `settingSources`, `query()` lê as mesmas configurações do sistema de arquivos que a CLI Claude Code: configurações de usuário, projeto e local, arquivos `CLAUDE.md` e skills, agentes e comandos em `.claude/`. Para executar sem estes, passe `settingSources: []`, o que limita o agente ao que você configura programaticamente. As configurações de política gerenciada e a configuração global `~/.claude.json` são lidas independentemente desta opção. Para mais informações, consulte [O que settingSources não controla](#what-settingsources-does-not-control).

12 12 

13<h2 id="control-filesystem-settings-with-settingsources">13<h2 id="control-filesystem-settings-with-settingsources">

14 Controlar configurações do sistema de arquivos com settingSources14 Controlar configurações do sistema de arquivos com settingSources


107 Instruções do projeto (CLAUDE.md e regras)107 Instruções do projeto (CLAUDE.md e regras)

108</h2>108</h2>

109 109 

110Arquivos `CLAUDE.md` e arquivos `.claude/rules/*.md` dão ao seu agente contexto persistente sobre seu projeto: convenções de codificação, comandos de compilação, decisões de arquitetura e instruções. Quando `settingSources` inclui `"project"` (como no exemplo acima), o SDK carrega esses arquivos em contexto no início da sessão. O agente então segue suas convenções de projeto sem você repeti-las em cada prompt.110Arquivos `CLAUDE.md` e arquivos `.claude/rules/*.md` dão ao seu agente contexto persistente sobre seu projeto: convenções de codificação, comandos de compilação, decisões de arquitetura e instruções. Quando `settingSources` inclui `"project"`, como no [exemplo de `settingSources`](#control-filesystem-settings-with-settingsources), o SDK carrega esses arquivos em contexto no início da sessão. O agente então segue suas convenções de projeto sem você repeti-las em cada prompt.

111 111 

112<h3 id="claude-md-load-locations">112<h3 id="claude-md-load-locations">

113 CLAUDE.md load locations113 CLAUDE.md load locations

agent-sdk/configuration.md +315 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Configure seu agente

6 

7> Configure sessões do Agent SDK: componha o objeto de opções, defina o modelo, ambiente e limites, e encontre a página de cada opção de recurso.

8 

9Uma sessão do Agent SDK lê a configuração de arquivos de configuração, variáveis de ambiente e do objeto `options` que você passa ao iniciá-la. Esta página mostra como compor o objeto `options` e quais arquivos de configuração e variáveis de ambiente o controlam.

10 

11Para cada tipo de opção e padrão, consulte as referências [`Options`](/docs/pt/agent-sdk/typescript#options) (TypeScript) e [`ClaudeAgentOptions`](/docs/pt/agent-sdk/python#claudeagentoptions) (Python).

12 

13<h2 id="pass-options-to-a-session">

14 Passar opções para uma sessão

15</h2>

16 

17Cada chamada `query()` aceita um objeto de opções: `Options` em TypeScript, `ClaudeAgentOptions` em Python. Cada campo é opcional, e uma sessão iniciada sem opções é executada com os padrões do SDK. O exemplo abaixo configura uma sessão somente leitura que resume os TODOs abertos de um projeto. Os pares são lidos como TypeScript / Python onde as grafias diferem:

18 

19* **`model`**: escolhe o modelo

20* **`allowedTools` / `allowed_tools`**: pré-aprova uma lista de ferramentas somente leitura

21* **`maxTurns` / `max_turns`**: limita a contagem de turnos

22* **`cwd`**: define o diretório de trabalho

23 

24<CodeGroup>

25 ```typescript TypeScript theme={null}

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

27 

28 for await (const message of query({

29 prompt: "Summarize the open TODOs in this repo",

30 options: {

31 model: "claude-sonnet-5",

32 allowedTools: ["Read", "Glob", "Grep"],

33 maxTurns: 8,

34 cwd: "/path/to/repo",

35 },

36 })) {

37 if (message.type === "result" && message.subtype === "success" && !message.is_error) {

38 console.log(message.result);

39 }

40 }

41 ```

42 

43 ```python Python theme={null}

44 import asyncio

45 

46 from claude_agent_sdk import ClaudeAgentOptions, ResultMessage, query

47 

48 async def main():

49 options = ClaudeAgentOptions(

50 model="claude-sonnet-5",

51 allowed_tools=["Read", "Glob", "Grep"],

52 max_turns=8,

53 cwd="/path/to/repo",

54 )

55 

56 async for message in query(

57 prompt="Summarize the open TODOs in this repo",

58 options=options,

59 ):

60 if isinstance(message, ResultMessage) and not message.is_error:

61 print(message.result)

62 

63 asyncio.run(main())

64 ```

65</CodeGroup>

66 

67Aponte `cwd` para um de seus próprios projetos e execute o exemplo. O resumo dos TODOs abertos desse projeto é impresso quando a mensagem de resultado chega.

68 

69`allowedTools` (TypeScript) ou `allowed_tools` (Python) pré-aprova as ferramentas listadas, portanto as chamadas para elas são executadas sem parar para aprovação. As ferramentas fora da lista permanecem disponíveis. Quando Claude chama uma ferramenta não listada, o modo de permissão decide se a chamada é executada. Para mais informações, consulte [Regras de permissão e negação](/docs/pt/agent-sdk/permissions#allow-and-deny-rules).

70 

71<h2 id="load-settings-files">

72 Carregar arquivos de configuração

73</h2>

74 

75Os arquivos de configuração fornecem configuração além do objeto de opções. Duas opções controlam como eles são carregados:

76 

77* **`settingSources` / `setting_sources`**: controla quais fontes do sistema de arquivos são carregadas: usuário, projeto e local. Os arquivos de configuração e arquivos CLAUDE.md chegam através dessas fontes.

78* **`settings`**: carrega um caminho de arquivo de configuração ou uma string JSON embutida em qualquer idioma, e TypeScript também aceita um objeto de configuração. Qualquer forma que você passar substitui as configurações do sistema de arquivos do usuário, projeto e local; apenas as configurações de política gerenciada têm classificação mais alta. As referências documentam a ordem de precedência completa em [Precedência de configurações](/docs/pt/agent-sdk/typescript#settings-precedence) para TypeScript e [Precedência de configurações](/docs/pt/agent-sdk/python#settings-precedence) para Python.

79 

80Passe `[]` para desabilitar as configurações do usuário, projeto e local. Para mais informações, consulte [Usar recursos do Claude Code no SDK](/docs/pt/agent-sdk/claude-code-features).

81 

82<h2 id="choose-a-model">

83 Escolher um modelo

84</h2>

85 

86A menos que a opção `model`, suas configurações ou seu ambiente selecionem um modelo, uma nova sessão é iniciada no [modelo padrão do Claude Code](/docs/pt/model-config#default-model-setting). Para a ordem dessas fontes, consulte [Definir seu modelo](/docs/pt/model-config#setting-your-model). Defina `model` para fixar um modelo específico ou para escolher um menor para agentes mais rápidos e baratos. O valor aceita um alias de modelo ou um nome de modelo completo; os aliases e as versões que eles resolvem estão listados em [Aliases de modelo](/docs/pt/model-config#model-aliases).

87 

88Defina `fallbackModel` (TypeScript) ou `fallback_model` (Python) para nomear um modelo de backup. Quando o primário está sobrecarregado ou indisponível, a sessão muda para o backup. O primário é retentado no início de cada turno do usuário, portanto a sessão retorna a ele assim que a interrupção passa.

89 

90Em qualquer idioma, a opção aceita um único modelo ou uma lista separada por vírgulas de backups. Para a ordem e o limite da cadeia, consulte [Cadeias de modelo de fallback](/docs/pt/model-config#fallback-model-chains). Em TypeScript, um fallback igual a `model` lança um erro na inicialização.

91 

92Os exemplos abaixo mostram uma lista de fallback em TypeScript e um único fallback em Python:

93 

94<CodeGroup>

95 ```typescript TypeScript theme={null}

96 const options = {

97 model: "claude-fable-5",

98 fallbackModel: "claude-opus-5,claude-sonnet-5",

99 };

100 ```

101 

102 ```python Python theme={null}

103 options = ClaudeAgentOptions(

104 model="claude-fable-5",

105 fallback_model="claude-opus-5",

106 )

107 ```

108</CodeGroup>

109 

110<span id="sampling-parameters" />

111 

112<Note>

113 Os parâmetros de solicitação da [API de Mensagens](https://platform.claude.com/docs/en/api/messages) `temperature`, `top_p` e `max_tokens` não têm campos no objeto de opções em nenhum idioma. Defina o [nível de esforço](/docs/pt/agent-sdk/agent-loop#effort-level) ou um [limite de gastos](#limit-turns-and-spend) em vez disso, ou chame a API de Mensagens quando você precisar desses parâmetros diretamente.

114</Note>

115 

116<h2 id="set-environment-variables">

117 Definir variáveis de ambiente

118</h2>

119 

120A opção `env` define variáveis de ambiente para o processo Claude Code que executa sua sessão. Se seus valores substituem o ambiente herdado ou se mesclam com ele difere por idioma:

121 

122* **TypeScript**: `env` substitui o ambiente do subprocesso

123* **Python**: o SDK mescla seus valores sobre o ambiente herdado, e seus valores substituem os herdados

124 

125Em TypeScript, espalhe `process.env` em `env` para manter variáveis herdadas como `PATH`, `HOME` e `ANTHROPIC_API_KEY`. Quando você deixa `env` indefinido, o subprocesso herda seu ambiente em ambos os idiomas.

126 

127O exemplo roteia o tráfego de API através de um gateway definindo `ANTHROPIC_BASE_URL`.

128 

129<CodeGroup>

130 ```typescript TypeScript theme={null}

131 const options = {

132 env: { ...process.env, ANTHROPIC_BASE_URL: "https://gateway.example.com" },

133 };

134 ```

135 

136 ```python Python theme={null}

137 options = ClaudeAgentOptions(

138 env={"ANTHROPIC_BASE_URL": "https://gateway.example.com"},

139 )

140 ```

141</CodeGroup>

142 

143As variáveis que você passa também podem configurar o próprio Claude Code. Para as variáveis que o processo Claude Code lê, consulte [Variáveis de ambiente](/docs/pt/env-vars). Para ajustar os tempos limite de API e detecção de travamento dessa forma, siga a seção Lidar com respostas de API lentas ou travadas na referência [TypeScript](/docs/pt/agent-sdk/typescript#handle-slow-or-stalled-api-responses) ou na referência [Python](/docs/pt/agent-sdk/python#handle-slow-or-stalled-api-responses).

144 

145<h2 id="set-the-working-directory">

146 Definir o diretório de trabalho

147</h2>

148 

149Defina `cwd` para executar a sessão em um diretório específico. Quando você deixa `cwd` indefinido, a sessão é executada no diretório de trabalho do seu processo. Nenhum SDK tem um setter para `cwd`. Para executar em um diretório diferente, inicie outra sessão com esse `cwd`.

150 

151Claude Code lê o diretório de trabalho para determinar:

152 

153* **Configurações e hooks do projeto**: qual [configuração e hooks do projeto são carregados](/docs/pt/agent-sdk/claude-code-features)

154* **Skills**: onde [as skills da sessão são descobertas](/docs/pt/agent-sdk/skills)

155* **Armazenamento de sessão**: qual projeto uma [sessão armazenada pertence](/docs/pt/agent-sdk/session-storage)

156 

157Para permitir que as ferramentas acessem arquivos fora do diretório de trabalho, adicione caminhos com `additionalDirectories` (TypeScript) ou `add_dirs` (Python). Para o escopo dessa concessão, consulte [Diretórios adicionais concedem acesso a arquivos, não configuração](/docs/pt/permissions#additional-directories-grant-file-access-not-configuration).

158 

159<h2 id="limit-turns-and-spend">

160 Limitar turnos e gastos

161</h2>

162 

163Limite turnos e gastos com `maxTurns` / `max_turns` e `maxBudgetUsd` / `max_budget_usd`. Ambos os limites estão desativados quando indefinidos. Quando uma sessão atinge um limite, a execução termina com uma mensagem de resultado cujo subtipo nomeia o limite, `error_max_turns` ou `error_max_budget_usd`. O que acontece a seguir difere por modo de entrada:

164 

165* **`query()` de disparo único**: o SDK produz o resultado do limite e depois lança, portanto envolva o loop em um bloco try para continuar além do erro

166* **Entrada de streaming**: a sessão permanece viva além de um resultado de limite, e a contagem de turnos máximos recomeça para cada mensagem enfileirada. O total do orçamento se acumula entre mensagens, e uma vez que o gasto atinge o limite, mensagens posteriores na mesma conversa terminam com o mesmo resultado de orçamento. Um [`/clear`](/docs/pt/agent-sdk/cost-tracking) reinicia o orçamento

167 

168Os dois limites tratam `0` de forma diferente:

169 

170* **`maxTurns` / `max_turns`**: `0` executa a sessão sem um limite de turnos, o mesmo que deixar a opção indefinida

171* **`maxBudgetUsd` / `max_budget_usd`**: a CLI rejeita `0` como um valor inválido na inicialização, e a sessão nunca é executada

172 

173Para mais informações sobre ambos os limites, incluindo gastos de subagentes, consulte [Turnos e orçamento](/docs/pt/agent-sdk/agent-loop#turns-and-budget).

174 

175<h2 id="change-configuration-mid-session">

176 Alterar configuração no meio da sessão

177</h2>

178 

179Quando você inicia uma sessão com [entrada de streaming](/docs/pt/agent-sdk/streaming-vs-single-mode), você pode alternar seu modelo e modo de permissão enquanto ela é executada. Onde você chama os setters difere por idioma:

180 

181* **TypeScript**: métodos no objeto que `query()` retorna

182* **Python**: métodos em [`ClaudeSDKClient`](/docs/pt/agent-sdk/python#claudesdkclient), já que `query()` retorna um iterador simples sem métodos de controle

183 

184Ambos os idiomas têm os mesmos setters:

185 

186* **`setModel()` / `set_model()`**: alterna o modelo. Chame-o sem modelo para alternar para o [modelo padrão do Claude Code](/docs/pt/model-config#default-model-setting) em vez do `model` que você passou nas opções.

187* **`setPermissionMode()` / `set_permission_mode()`**: alterna o modo de permissão

188 

189TypeScript também tem `applyFlagSettings()` e `updateSettings()`:

190 

191* **`applyFlagSettings()`**: aplica configurações em tempo de execução, como em `await session.applyFlagSettings({ effortLevel: "high" })`. O método aceita chaves de arquivo de configuração em vez de campos de opções, portanto verifique a referência [`applyFlagSettings()`](/docs/pt/agent-sdk/typescript#applyflagsettings) para o esquema e para quais chaves têm efeito no meio da sessão.

192* **`updateSettings()`**: escreve um conjunto de chaves na lista de permissões para o arquivo de configuração local do projeto, como em `await session.updateSettings("localSettings", { outputStyle: "Explanatory" })`. As chaves escritas têm efeito na próxima solicitação da sessão e persistem para sessões posteriores que carregam configurações `local`. A linha do método na [tabela de métodos](/docs/pt/agent-sdk/typescript#methods) nomeia as chaves na lista de permissões e o piso de versão.

193 

194O exemplo abaixo executa uma sessão de dois turnos, altera a configuração entre os turnos e imprime o modelo que respondeu cada turno. Em TypeScript, o fluxo de prompt mantém a segunda mensagem até que os setters tenham sido executados, e o segundo turno é executado no novo modelo.

195 

196<CodeGroup>

197 ```typescript TypeScript theme={null}

198 import { query, type SDKUserMessage } from "@anthropic-ai/claude-agent-sdk";

199 

200 function userMessage(text: string): SDKUserMessage {

201 return { type: "user", message: { role: "user", content: text }, parent_tool_use_id: null };

202 }

203 

204 // Hold the second prompt until the setters have run.

205 let startSecondTurn!: () => void;

206 const secondTurnReady = new Promise<void>((resolve) => {

207 startSecondTurn = resolve;

208 });

209 

210 async function* turnPrompts(): AsyncGenerator<SDKUserMessage, void> {

211 yield userMessage("Reply with exactly: ready");

212 await secondTurnReady;

213 yield userMessage("Reply with exactly: done");

214 }

215 

216 const session = query({

217 prompt: turnPrompts(),

218 options: {

219 model: "claude-sonnet-5",

220 },

221 });

222 

223 let turnModel = "";

224 let completedTurns = 0;

225 

226 for await (const message of session) {

227 if (message.type === "assistant") {

228 turnModel = message.message.model;

229 } else if (message.type === "result") {

230 completedTurns += 1;

231 if (completedTurns === 1) {

232 console.log(`First turn model: ${turnModel}`);

233 await session.setModel("claude-opus-5");

234 await session.setPermissionMode("acceptEdits");

235 startSecondTurn();

236 } else {

237 console.log(`Second turn model: ${turnModel}`);

238 break;

239 }

240 }

241 }

242 ```

243 

244 ```python Python theme={null}

245 import asyncio

246 

247 from claude_agent_sdk import AssistantMessage, ClaudeAgentOptions, ClaudeSDKClient

248 

249 async def main():

250 options = ClaudeAgentOptions(model="claude-sonnet-5")

251 

252 async with ClaudeSDKClient(options=options) as client:

253 await client.query("Reply with exactly: ready")

254 first_model = ""

255 async for message in client.receive_response():

256 if isinstance(message, AssistantMessage):

257 first_model = message.model

258 

259 await client.set_model("claude-opus-5")

260 await client.set_permission_mode("acceptEdits")

261 

262 await client.query("Reply with exactly: done")

263 second_model = ""

264 async for message in client.receive_response():

265 if isinstance(message, AssistantMessage):

266 second_model = message.model

267 

268 print(f"First turn model: {first_model}")

269 print(f"Second turn model: {second_model}")

270 

271 asyncio.run(main())

272 ```

273</CodeGroup>

274 

275Na API Claude, o programa imprime `First turn model: claude-sonnet-5`, depois `Second turn model: claude-opus-5` após a mudança.

276 

277<Note>

278 Cada modelo tem seu próprio cache de prompt, portanto após uma mudança no meio da sessão a próxima solicitação recomputa a conversa completa sem cache nas taxas do novo modelo. Para mais informações, consulte [Alternando modelos](/docs/pt/prompt-caching#switching-models).

279</Note>

280 

281<h2 id="configure-specific-features">

282 Configurar recursos específicos

283</h2>

284 

285A tabela abaixo mapeia cada opção para o recurso que ela configura. Para opções que esta página não cobre, consulte as referências [TypeScript](/docs/pt/agent-sdk/typescript#options) e [Python](/docs/pt/agent-sdk/python#claudeagentoptions). Se você conhece seu objetivo mas não qual opção o serve, comece em [Escolher o recurso certo](/docs/pt/agent-sdk/claude-code-features#choose-the-right-feature).

286 

287| TypeScript | Python | Controla | Coberto em |

288| ------------------------- | --------------------------- | --------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

289| `permissionMode` | `permission_mode` | O que o agente pode fazer sem aprovação | [Configurar permissões](/docs/pt/agent-sdk/permissions) |

290| `allowedTools` | `allowed_tools` | Quais chamadas de ferramentas são pré-aprovadas | [Configurar permissões](/docs/pt/agent-sdk/permissions) |

291| `canUseTool` | `can_use_tool` | Seu callback de aprovação para chamadas de ferramentas | [Lidar com solicitações de aprovação de ferramentas](/docs/pt/agent-sdk/user-input#handle-tool-approval-requests) |

292| `systemPrompt` | `system_prompt` | As instruções do agente | [Modificando prompts do sistema](/docs/pt/agent-sdk/modifying-system-prompts) |

293| `settingSources` | `setting_sources` | Quais configurações do sistema de arquivos são carregadas | [Usar recursos do Claude Code no SDK](/docs/pt/agent-sdk/claude-code-features) |

294| `mcpServers` | `mcp_servers` | Servidores de ferramentas externas | [Conectar a ferramentas externas com MCP](/docs/pt/agent-sdk/mcp) |

295| `agents` | `agents` | Definições de subagentes | [Subagentes](/docs/pt/agent-sdk/subagents) |

296| `hooks` | `hooks` | Callbacks em pontos do ciclo de vida | [Hooks](/docs/pt/agent-sdk/hooks) |

297| `skills` | `skills` | Quais skills são carregadas | [Estender agentes com skills](/docs/pt/agent-sdk/skills) |

298| `plugins` | `plugins` | Quais plugins são carregados | [Plugins](/docs/pt/agent-sdk/plugins) |

299| `outputFormat` | `output_format` | Esquemas de saída estruturada | [Saídas estruturadas](/docs/pt/agent-sdk/structured-outputs) |

300| `resume` | `resume` | Continuando uma sessão armazenada | [Sessões](/docs/pt/agent-sdk/sessions) |

301| `forkSession` | `fork_session` | Ramificando uma sessão | [Sessões](/docs/pt/agent-sdk/sessions) |

302| `sessionStore` | `session_store` | Persistência de sessão externa | [Armazenamento de sessão](/docs/pt/agent-sdk/session-storage) |

303| `enableFileCheckpointing` | `enable_file_checkpointing` | Edições de arquivo rebobináveis | [Checkpointing de arquivo](/docs/pt/agent-sdk/file-checkpointing) |

304| `effort` | `effort` | Quanto trabalho Claude coloca nas respostas | [Nível de esforço](/docs/pt/agent-sdk/agent-loop#effort-level) |

305| `sandbox` | `sandbox` | Comportamento de sandbox para execução de ferramentas | [TypeScript](/docs/pt/agent-sdk/typescript#sandbox-configuration) e referências [Python](/docs/pt/agent-sdk/python#sandbox-configuration), com contexto de implantação em [Implantação segura](/docs/pt/agent-sdk/secure-deployment) |

306 

307<h2 id="next-steps">

308 Próximas etapas

309</h2>

310 

311Para ver a configuração composta em agentes funcionais:

312 

313* **[Quickstart](/docs/pt/agent-sdk/quickstart)**: construa e execute um primeiro agente de ponta a ponta

314* **[Exemplos](/docs/pt/agent-sdk/examples)**: encontre um projeto completo e executável ou uma receita guiada do Claude Cookbook que corresponda ao que você deseja construir

315* **[Isolamento multi-tenant](/docs/pt/agent-sdk/hosting#multi-tenant-isolation)**: isole as configurações e memória de cada tenant com `settingSources` / `setting_sources`, `env` e `cwd`

Details

78 78 

79Em TypeScript, o SDK também emite uma [`SDKConversationResetMessage`](/docs/pt/agent-sdk/typescript#sdkconversationresetmessage) em cada redefinição, para que você possa detectar redefinições do stream. Em Python, o SDK igualmente emite uma `ConversationResetMessage`. Antes da versão 0.2.137 do SDK Python, o iterador Python descartava essa mensagem, então nessas versões conte as redefinições você mesmo a partir dos turnos `/clear` que seu aplicativo envia.79Em TypeScript, o SDK também emite uma [`SDKConversationResetMessage`](/docs/pt/agent-sdk/typescript#sdkconversationresetmessage) em cada redefinição, para que você possa detectar redefinições do stream. Em Python, o SDK igualmente emite uma `ConversationResetMessage`. Antes da versão 0.2.137 do SDK Python, o iterador Python descartava essa mensagem, então nessas versões conte as redefinições você mesmo a partir dos turnos `/clear` que seu aplicativo envia.

80 80 

81`maxBudgetUsd`, ou `max_budget_usd` em Python, é comparado contra o mesmo total acumulado, então um `/clear` também inicia o orçamento novamente.81`maxBudgetUsd` (TypeScript) ou `max_budget_usd` (Python) é comparado contra o mesmo total acumulado, então um `/clear` também inicia o orçamento novamente.

82 82 

83<h2 id="get-the-total-cost-of-a-query">83<h2 id="get-the-total-cost-of-a-query">

84 Obter o custo total de uma consulta84 Obter o custo total de uma consulta

Details

138 138 

139Passe o servidor MCP que você criou para `query` via a opção `mcpServers`. A chave em `mcpServers` se torna o segmento `{server_name}` no nome totalmente qualificado de cada ferramenta: `mcp__{server_name}__{tool_name}`. Liste esse nome em `allowedTools` para que a ferramenta seja executada sem um prompt de permissão.139Passe o servidor MCP que você criou para `query` via a opção `mcpServers`. A chave em `mcpServers` se torna o segmento `{server_name}` no nome totalmente qualificado de cada ferramenta: `mcp__{server_name}__{tool_name}`. Liste esse nome em `allowedTools` para que a ferramenta seja executada sem um prompt de permissão.

140 140 

141Estes trechos reutilizam o `weatherServer` do [exemplo acima](#weather-tool-example) para perguntar a Claude qual é o clima em um local específico.141Estes trechos reutilizam o `weatherServer` do [exemplo de ferramenta de clima](#weather-tool-example) para perguntar a Claude qual é o clima em um local específico.

142 142 

143<CodeGroup>143<CodeGroup>

144 ```python Python theme={null}144 ```python Python theme={null}

Details

179 </Step>179 </Step>

180 180 

181 <Step title="Capturar UUID de checkpoint e ID de sessão">181 <Step title="Capturar UUID de checkpoint e ID de sessão">

182 Com a opção `replay-user-messages` definida (mostrada acima), cada mensagem do usuário no fluxo de resposta tem um UUID que serve como um checkpoint.182 Com a opção `replay-user-messages` definida, cada mensagem do usuário no fluxo de resposta tem um UUID que serve como um checkpoint.

183 183 

184 Para a maioria dos casos de uso, capture o UUID da primeira mensagem do usuário (`message.uuid`); reverter para ele restaura todos os arquivos para seu estado original. Para armazenar múltiplos checkpoints e reverter para estados intermediários, veja [Múltiplos pontos de restauração](#multiple-restore-points).184 Para a maioria dos casos de uso, capture o UUID da primeira mensagem do usuário (`message.uuid`); reverter para ele restaura todos os arquivos para seu estado original. Para armazenar múltiplos checkpoints e reverter para estados intermediários, veja [Múltiplos pontos de restauração](#multiple-restore-points).

185 185 

Details

826 826 

827Claude Code executa cada callback com um timeout, que você define em segundos com o campo `timeout` em seu `HookMatcher`. Quando você não define um, Claude Code usa o padrão do evento: 600 segundos para a maioria dos eventos, 30 segundos para `UserPromptSubmit`, `PreModelSwitch` e `PostModelSwitch`, e 10 segundos para `MessageDisplay`. Claude Code executa callbacks `SessionEnd` durante o desligamento sob o orçamento de timeout mais curto de [SessionEnd](/docs/pt/hooks#sessionend-input), 1,5 segundos por padrão.827Claude Code executa cada callback com um timeout, que você define em segundos com o campo `timeout` em seu `HookMatcher`. Quando você não define um, Claude Code usa o padrão do evento: 600 segundos para a maioria dos eventos, 30 segundos para `UserPromptSubmit`, `PreModelSwitch` e `PostModelSwitch`, e 10 segundos para `MessageDisplay`. Claude Code executa callbacks `SessionEnd` durante o desligamento sob o orçamento de timeout mais curto de [SessionEnd](/docs/pt/hooks#sessionend-input), 1,5 segundos por padrão.

828 828 

829Quando um callback excede seu timeout, Claude Code o cancela e o trata como um hook falhado: descarta a saída do callback e a sessão continua em vez de travar. O que acontece a seguir depende do evento:829Quando um callback excede seu timeout, Claude Code o cancela e descarta sua saída, e a sessão continua em vez de travar. O que acontece a seguir depende do evento:

830 830 

831* `PreToolUse`: Claude Code não executa a chamada de ferramenta, Claude recebe um resultado de ferramenta informando que o hook não respondeu antes de seu timeout, e a volta continua. Se outro hook `PreToolUse` retornou uma negação explícita, Claude recebe essa negação em vez do erro de timeout. Antes da v2.1.210, Claude Code relatava o timeout a Claude como uma rejeição do usuário, o que fazia sessões autônomas pararem e aguardarem entrada.831* `PreToolUse`: Claude Code não executa a chamada de ferramenta, Claude recebe um resultado de ferramenta informando que o hook não respondeu antes de seu timeout, e a volta continua. Se outro hook `PreToolUse` retornou uma negação explícita, Claude recebe essa negação em vez do erro de timeout. Antes da v2.1.210, Claude Code relatava o timeout a Claude como uma rejeição do usuário, o que fazia sessões autônomas pararem e aguardarem entrada.

832* `PostToolUse` e `PostToolUseFailure`: Claude Code mantém o resultado da ferramenta e a volta continua.832* `PostToolUse` e `PostToolUseFailure`: Claude Code mantém o resultado da ferramenta e a volta continua.

833* `UserPromptSubmit` e [`UserPromptExpansion`](/docs/pt/hooks#userpromptexpansion): Claude Code bloqueia o prompt com uma mensagem nomeando o hook e o timeout, e a sessão continua. Como um callback nesses eventos pode atuar como uma porta de política, Claude Code nunca deixa um prompt com timeout passar sem ser verificado. Antes da v2.1.208, Claude Code terminava a consulta com `error_during_execution` quando um callback nesses eventos expirava.833* `UserPromptSubmit` e [`UserPromptExpansion`](/docs/pt/hooks#userpromptexpansion): Claude Code bloqueia o prompt com uma mensagem nomeando o hook e o timeout, e a sessão continua. Como um callback nesses eventos pode atuar como uma porta de política, Claude Code nunca deixa um prompt com timeout passar sem ser verificado. Antes da v2.1.208, Claude Code terminava a consulta com `error_during_execution` quando um callback nesses eventos expirava.

834* `Stop` e `SubagentStop`: Claude Code mostra um aviso e o agente para normalmente.834* `Stop` e `SubagentStop`: o callback com timeout conta como retornando nenhuma decisão. O agente ou subagente para como se esse callback o tivesse permitido, e uma decisão de seus outros hooks no evento ainda se aplica. Antes do Claude Code v2.1.273, um callback `Stop` ou `SubagentStop` com timeout contava como uma execução de hook falhada, e Claude Code descartava as decisões de seus outros hooks no evento.

835* `SessionStart`: o callback com timeout conta como retornando nenhuma saída, e a sessão continua com a saída de seus outros hooks `SessionStart`.

835* `PreModelSwitch`: Claude Code bloqueia a mudança de modelo. Um hook que não responde não aprovou a mudança.836* `PreModelSwitch`: Claude Code bloqueia a mudança de modelo. Um hook que não responde não aprovou a mudança.

836* Outros eventos, como `Notification`, `PreCompact` e `PostModelSwitch`: Claude Code registra a falha e continua.837* Outros eventos, como `Notification`, `PreCompact` e `PostModelSwitch`: Claude Code registra a falha e continua.

837 838 

839A primeira vez que um callback `Stop` ou `SessionStart` expira na sessão principal, Claude Code também adiciona uma [`SDKInformationalMessage`](/docs/pt/agent-sdk/typescript#sdkinformationalmessage) ao fluxo de mensagens dizendo que o aplicativo que dirige a sessão não respondeu. Timeouts posteriores não repetem essa mensagem enquanto seu aplicativo permanecer sem resposta.

840 

838Se você interromper a consulta enquanto um callback está pendente, Claude Code cancela a chamada de ferramenta pendente. Antes da v2.1.208, a chamada de ferramenta ainda poderia prosseguir se você interrompesse durante um callback `PreToolUse` pendente.841Se você interromper a consulta enquanto um callback está pendente, Claude Code cancela a chamada de ferramenta pendente. Antes da v2.1.208, a chamada de ferramenta ainda poderia prosseguir se você interrompesse durante um callback `PreToolUse` pendente.

839 842 

840Se seu callback precisar de mais tempo, defina um `timeout` mais alto em seu `HookMatcher`. Em TypeScript, use o `AbortSignal` do terceiro argumento de callback para lidar com cancelamento graciosamente quando o timeout dispara.843Se seu callback precisar de mais tempo, defina um `timeout` mais alto em seu `HookMatcher`. Em TypeScript, use o `AbortSignal` do terceiro argumento de callback para lidar com cancelamento graciosamente quando o timeout dispara.

Details

147 147 

148 declare const userInput: string;148 declare const userInput: string;

149 declare const sessionId: string; // looked up from your database by user149 declare const sessionId: string; // looked up from your database by user

150 declare const sessionStore: SessionStore; // S3, Redis, Postgres, or your own adapter150 declare const sessionStore: SessionStore; // an object store, key-value store, database, or your own adapter

151 151 

152 for await (const message of query({152 for await (const message of query({

153 prompt: userInput,153 prompt: userInput,


163 163 

164 user_input: str = ...164 user_input: str = ...

165 session_id: str = ... # looked up from your database by user165 session_id: str = ... # looked up from your database by user

166 session_store: SessionStore = ... # S3, Redis, Postgres, or your own adapter166 session_store: SessionStore = ... # an object store, key-value store, database, or your own adapter

167 167 

168 168 

169 async def main():169 async def main():


244 Persistência de sessão e estado244 Persistência de sessão e estado

245</h3>245</h3>

246 246 

247O disco local padrão é perdido ao reiniciar, reduzir a escala ou mover para um nó diferente. Para qualquer sessão que um usuário espera retomar, espelhe a transcrição para armazenamento durável com um adaptador [`SessionStore`](/docs/pt/agent-sdk/session-storage). Veja [Implementações de referência](/docs/pt/agent-sdk/session-storage#reference-implementations) para adaptadores S3, Redis e Postgres e um conjunto de conformidade para o seu próprio.247O disco local padrão é perdido ao reiniciar, reduzir a escala ou mover para um nó diferente. Para qualquer sessão que um usuário espera retomar, espelhe a transcrição para armazenamento durável com um adaptador [`SessionStore`](/docs/pt/agent-sdk/session-storage). Veja [Implementações de referência](/docs/pt/agent-sdk/session-storage#reference-implementations) para adaptadores de um armazenamento de objetos, um armazenamento de chave-valor e um banco de dados, e um conjunto de conformidade para o seu próprio.

248 248 

249Três coisas a saber sobre como `SessionStore` se comporta:249Três coisas a saber sobre como `SessionStore` se comporta:

250 250 

agent-sdk/mcp.md +12 −1

Details

156 Tempo de conexão156 Tempo de conexão

157</h2>157</h2>

158 158 

159Claude Code registra os servidores que você passa em `options.mcpServers` na inicialização e emite a [mensagem init](#error-handling) uma vez que a espera da primeira volta, se houver, seja resolvida. Sem `options.mcpServers`, Claude Code aguarda 2 segundos por servidores pendentes antes da primeira volta, portanto servidores carregados de [arquivos de configuração](#from-a-config-file) como `.mcp.json` geralmente mostram `pending` na inicialização. Quando cada servidor `options.mcpServers` se conecta, e se atrasa a primeira volta, depende do seu tipo:159Claude Code registra os servidores que você passa em `options.mcpServers` na inicialização e emite a [mensagem init](#error-handling) uma vez que a espera da primeira volta, se houver, seja resolvida. Se cada servidor `options.mcpServers` atrasa a primeira volta, e quando se conecta, depende do seu tipo:

160 160 

161| Tipo de servidor | Atrasa a primeira volta? | Tempo limite de espera da primeira volta |161| Tipo de servidor | Atrasa a primeira volta? | Tempo limite de espera da primeira volta |

162| :--------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------- |162| :--------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------- |


164| Servidor remoto com uma lista de ferramentas em cache, salva por Claude Code de uma conexão anterior | Não; as ferramentas em cache estão disponíveis desde a primeira volta | Nenhum; conecta na sua primeira chamada de ferramenta, e essa conexão adiada tem seu próprio tempo limite |164| Servidor remoto com uma lista de ferramentas em cache, salva por Claude Code de uma conexão anterior | Não; as ferramentas em cache estão disponíveis desde a primeira volta | Nenhum; conecta na sua primeira chamada de ferramenta, e essa conexão adiada tem seu próprio tempo limite |

165| Servidor [SDK](#sdk-mcp-servers) em processo | Sim, até que se conecte e liste suas ferramentas | Nenhum; as solicitações de conexão e listagem de ferramentas têm seus próprios tempos limite |165| Servidor [SDK](#sdk-mcp-servers) em processo | Sim, até que se conecte e liste suas ferramentas | Nenhum; as solicitações de conexão e listagem de ferramentas têm seus próprios tempos limite |

166 166 

167Servidores carregados de [arquivos de configuração](#from-a-config-file) como `.mcp.json` ou de plugins geralmente mostram `pending` na mensagem init. Quando `options.mcpServers` contém um servidor stdio, HTTP ou SSE, a primeira volta aguarda esses servidores pendentes também, até `MCP_TIMEOUT`. Quando `options.mcpServers` está vazio ou contém apenas servidores SDK, a primeira volta aguarda até 2 segundos em vez disso:

168 

169* **Com [busca de ferramentas](/docs/pt/agent-sdk/tool-search), o padrão**: a espera cobre servidores ainda pendentes configurados com [`alwaysLoad: true`](/docs/pt/mcp#exempt-a-server-from-deferral) e não o resto. O resto continua se conectando em segundo plano. [Disponibilidade de ferramentas](/docs/pt/mcp#tool-availability) descreve como Claude alcança suas ferramentas uma vez que se conectam.

170* **Sem busca de ferramentas**: a espera cobre cada servidor pendente. [Configure a busca de ferramentas](/docs/pt/agent-sdk/tool-search#configure-tool-search) cobre o que desativa a busca de ferramentas. Se você excluir a ferramenta `ToolSearch` da sessão, por exemplo através de `disallowedTools`, a sessão também é executada sem busca de ferramentas.

171 

172Se você definir `permissionPromptToolName`, a primeira volta também aguarda o servidor dessa ferramenta em todos os casos, até `MCP_TIMEOUT`.

173 

174Para definir a espera da primeira volta você mesmo, adicione `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` à [opção `env`](/docs/pt/agent-sdk/configuration#set-environment-variables), por exemplo `CLAUDE_CODE_MCP_STARTUP_WAIT_MS: "5000"`. A primeira volta então aguarda até esse número de milissegundos para cada servidor pendente, independentemente de a busca de ferramentas estar disponível ou não. Este prazo também substitui a espera da primeira volta `MCP_TIMEOUT` para servidores stdio, HTTP e SSE em `options.mcpServers`. `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` requer Claude Code v2.1.274 ou posterior.

175 

176Servidores ainda pendentes quando a espera termina continuam se conectando em segundo plano. Defina a variável como `0` para pular a espera. Um servidor `permissionPromptToolName` mantém sua própria espera `MCP_TIMEOUT` independentemente do valor.

177 

167Para bloquear a própria inicialização em uma fase separada e anterior à espera da primeira volta, antes da mensagem init ser enviada:178Para bloquear a própria inicialização em uma fase separada e anterior à espera da primeira volta, antes da mensagem init ser enviada:

168 179 

169* Defina [`MCP_CONNECTION_NONBLOCKING`](/docs/pt/env-vars) como `0` para bloquear em todo o lote de conexão. Claude Code limita essa espera a 5 segundos por padrão. Ajuste o limite com a variável de ambiente [`MCP_CONNECT_TIMEOUT_MS`](/docs/pt/env-vars), em milissegundos. Servidores ainda pendentes nesse prazo continuam se conectando em segundo plano.180* Defina [`MCP_CONNECTION_NONBLOCKING`](/docs/pt/env-vars) como `0` para bloquear em todo o lote de conexão. Claude Code limita essa espera a 5 segundos por padrão. Ajuste o limite com a variável de ambiente [`MCP_CONNECT_TIMEOUT_MS`](/docs/pt/env-vars), em milissegundos. Servidores ainda pendentes nesse prazo continuam se conectando em segundo plano.

Details

152 152 

153Uma vez criado, ative estilos de saída via:153Uma vez criado, ative estilos de saída via:

154 154 

155* **CLI**: execute `/config` e selecione um estilo de saída155* **CLI**: execute `/output-style <style>`, por exemplo `/output-style concise`, ou execute `/config` e selecione um. O comando `/output-style` requer Claude Code v2.1.269 ou posterior.

156* **Configurações**: defina `outputStyle` em `.claude/settings.local.json`156* **Configurações**: defina `outputStyle` em `.claude/settings.local.json`

157* **TypeScript SDK**: defina `outputStyle` dentro do objeto `settings` inline passado para `query()`, ou aponte `settings` para um arquivo de configurações que o defina. `outputStyle` não é um campo `Options` de nível superior:157* **TypeScript SDK**: defina `outputStyle` dentro do objeto `settings` inline passado para `query()`, ou aponte `settings` para um arquivo de configurações que o defina. `outputStyle` não é um campo `Options` de nível superior:

158 158 


352 Cache da parte estática de um prompt personalizado352 Cache da parte estática de um prompt personalizado

353</h4>353</h4>

354 354 

355No SDK TypeScript, você pode passar um prompt personalizado como um array de strings em vez de uma string, com o marcador `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` entre a parte estática e o resto. Use isso quando seu prompt combina instruções que são as mesmas em cada solicitação com contexto que muda por solicitação, como o cliente ou ticket que o agente está tratando. Quando você passa ambas as partes como uma string, uma mudança na parte por solicitação muda todo o prompt do sistema, então as instruções estáticas perdem o cache também. Este formulário não está disponível no SDK Python, cujo `system_prompt` aceita uma string, uma predefinição, ou um [arquivo](/docs/pt/agent-sdk/python#systempromptfile).355No SDK TypeScript, você pode passar um prompt personalizado como um array de strings em vez de uma string, com o marcador `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` entre a parte estática e o resto. Use isso quando seu prompt combina instruções que são as mesmas em cada solicitação com contexto que muda por solicitação, como o cliente ou ticket que o agente está tratando. Quando você passa ambas as partes como uma string, uma mudança na parte por solicitação muda todo o prompt do sistema, então as instruções estáticas perdem o cache também. Este formulário não está disponível no SDK Python; [`ClaudeAgentOptions`](/docs/pt/agent-sdk/python#claudeagentoptions) lista os formulários que `system_prompt` aceita.

356 356 

357<Note>357<Note>

358 O SDK divide o prompt apenas quando chama a API Claude diretamente ou executa em [Claude Platform on AWS](/docs/pt/claude-platform-on-aws). Em todas as outras configurações, como Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, ou um [LLM gateway](/docs/pt/llm-gateway-connect), e sempre que você define [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/pt/llm-gateway-protocol#disable-pre-release-capabilities), o SDK envia todo o prompt como um bloco, o mesmo que passar uma string.358 O SDK divide o prompt apenas quando chama a API Claude diretamente ou executa em [Claude Platform on AWS](/docs/pt/claude-platform-on-aws). Em todas as outras configurações, como Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, ou um [LLM gateway](/docs/pt/llm-gateway-connect), e sempre que você define [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/pt/llm-gateway-protocol#disable-pre-release-capabilities), o SDK envia todo o prompt como um bloco, o mesmo que passar uma string.


391 Alterar o prompt de uma sessão existente391 Alterar o prompt de uma sessão existente

392</h3>392</h3>

393 393 

394Por padrão, Claude Code constrói o prompt do sistema uma vez, na primeira solicitação de uma sessão, com seu texto `append` ou prompt personalizado incluído, e o registra na sessão. Até que a sessão seja compactada, cada solicitação posterior usa esse prompt registrado, inclusive depois que você retorna à sessão com `resume` ou `continue`. Se você passar um `append` ou prompt personalizado diferente nessa chamada posterior, ele entra em vigor assim que a sessão é compactada ou em uma nova sessão.394Por padrão, se você passar um `append` ou prompt personalizado diferente quando retornar a uma sessão com `resume` ou `continue`, Claude não o vê na próxima volta. Claude Code registra o prompt do sistema na primeira solicitação de uma sessão e reutiliza esse registro até que a sessão seja compactada. O novo texto entra em vigor após essa compactação, ou em uma nova sessão.

395 395 

396Se você iniciar Claude Code em [bare mode](/docs/pt/headless#start-faster-with-bare-mode) passando `--bare` através de `extraArgs` ou definindo `CLAUDE_CODE_SIMPLE=1`, o registro fica desativado a menos que você defina `snapshot: true` no formulário de objeto de `systemPrompt`. Registrar um `append` ou prompt personalizado por padrão requer Claude Code v2.1.265 ou posterior, que o TypeScript Agent SDK agrupa a partir de v0.3.265. Antes de Claude Code v2.1.268, sessões que não [buscam feature flags](/docs/pt/env-vars#features-that-need-feature-flag-fetching), incluindo sessões em Amazon Bedrock, Google Cloud's Agent Platform, e Microsoft Foundry, reconstruíram o prompt em cada solicitação e `snapshot` não tinha efeito.396<h4 id="update-claude’s-instructions-mid-session">

397 Atualizar as instruções do Claude no meio da sessão

398</h4>

399 

400Se as instruções que você coloca no prompt do sistema precisarem mudar enquanto uma sessão está em execução, por exemplo porque seu usuário mudou o agente para um modo somente leitura ou editou sua configuração em seu aplicativo, envie as novas instruções na conversa em vez de alterar `systemPrompt`:

401 

402* **Na sua próxima mensagem**: inclua as novas instruções na próxima mensagem do usuário que você enviar.

403* **De um hook**: retorne [`additionalContext`](/docs/pt/hooks#add-context-for-claude) de um callback de hook `UserPromptSubmit` ou `PostToolUse` [hook callback](/docs/pt/agent-sdk/hooks#outputs), escrito como uma declaração factual como "The workspace is now read-only". O SDK insere o texto na conversa no ponto onde o hook foi acionado, então o prompt registrado permanece inalterado.

404 

405<h4 id="turn-recording-off-while-you-iterate-on-wording">

406 Desativar o registro enquanto você itera na redação

407</h4>

408 

409Enquanto você itera na redação do prompt e quer que cada edição chegue a uma sessão que você retoma, defina `snapshot` como false no formulário de objeto do prompt do sistema. Claude Code então reconstrói o prompt em cada solicitação. O campo está disponível no formulário de predefinição e personalizado de [`systemPrompt`](/docs/pt/agent-sdk/typescript#options) em TypeScript e de [`system_prompt`](/docs/pt/agent-sdk/python#systempromptpreset) em Python, e requer `@anthropic-ai/claude-agent-sdk` v0.3.257 ou posterior, ou `claude-agent-sdk` v0.2.153 ou posterior.

410 

411Mantenha o registro ativado em produção. Com o registro desativado, um `append` ou prompt personalizado diferente em uma sessão retomada chega ao Claude na próxima volta, e essa solicitação não pode reutilizar o [prompt cache](/docs/pt/prompt-caching#how-the-cache-is-organized) da sessão. Onde a API impõe [preserved thinking](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking), Claude também perde seu pensamento das voltas anteriores.

412 

413Fora de [cloud sessions](/docs/pt/cloud-environments), se você iniciar Claude Code em [bare mode](/docs/pt/headless#start-faster-with-bare-mode) passando `--bare` através de `extraArgs` ou definindo `CLAUDE_CODE_SIMPLE=1`, o registro fica desativado a menos que você defina `snapshot: true`.

397 414 

398Para reconstruir o prompt em cada solicitação em vez disso, defina `snapshot: false` no formulário de objeto de `systemPrompt` no SDK TypeScript: `{ type: "preset", preset: "claude_code", append, snapshot: false }` ou `{ type: "custom", prompt, snapshot: false }`. Use este formulário enquanto você itera na redação do prompt, ou quando sua aplicação altera `append` entre chamadas que retomam a mesma sessão. O campo `snapshot` requer `@anthropic-ai/claude-agent-sdk` v0.3.257 ou posterior.415Registrar um `append` ou prompt personalizado por padrão requer Claude Code v2.1.265 ou posterior, que o TypeScript Agent SDK agrupa a partir de v0.3.265 e o Python Agent SDK a partir de v0.2.153. Antes de Claude Code v2.1.268, sessões que não [buscam feature flags](/docs/pt/env-vars#features-that-need-feature-flag-fetching), incluindo sessões em Amazon Bedrock, Google Cloud's Agent Platform, e Microsoft Foundry, reconstruíram o prompt em cada solicitação e `snapshot` não tinha efeito.

399 416 

400<h2 id="compare-the-four-approaches">417<h2 id="compare-the-four-approaches">

401 Comparação das quatro abordagens418 Comparação das quatro abordagens

Details

254| ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |254| ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

255| `OTEL_LOG_USER_PROMPTS=1` | Texto de prompt em eventos `claude_code.user_prompt` e no span `claude_code.interaction` |255| `OTEL_LOG_USER_PROMPTS=1` | Texto de prompt em eventos `claude_code.user_prompt` e no span `claude_code.interaction` |

256| `OTEL_LOG_TOOL_DETAILS=1` | Argumentos de entrada de ferramenta (caminhos de arquivo, comandos de shell, padrões de pesquisa) em eventos `claude_code.tool_result` |256| `OTEL_LOG_TOOL_DETAILS=1` | Argumentos de entrada de ferramenta (caminhos de arquivo, comandos de shell, padrões de pesquisa) em eventos `claude_code.tool_result` |

257| `OTEL_LOG_TOOL_CONTENT=1` | Corpos completos de entrada e saída de ferramenta como eventos de span em `claude_code.tool`, truncados em 60 KB por padrão, configurável via `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`, que requer Claude Code v2.1.214 ou posterior. Requer que [rastreamento](#read-agent-traces) esteja ativado |257| `OTEL_LOG_TOOL_CONTENT=1` | Um evento de span [`tool.output`](/docs/pt/monitoring-usage#tool-output-span-event) em `claude_code.tool` com conteúdos de arquivo e saída de Bash, truncado em 60 KB por padrão, configurável via `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`, que requer Claude Code v2.1.214 ou posterior. Requer que [rastreamento](#read-agent-traces) esteja ativado. Os atributos de span carregam conteúdo de ferramenta sob [seus próprios gates](/docs/pt/monitoring-usage#new-context-gates) |

258| `OTEL_LOG_RAW_API_BODIES` | JSON completo de solicitação e resposta da API Anthropic Messages como eventos de log `claude_code.api_request_body` e `claude_code.api_response_body`. Defina como `1` para corpos inline truncados em 60 KB por padrão, ou `file:<dir>` para corpos não truncados em disco com um caminho `body_ref` no evento. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` configura o limite de truncamento inline, e requer Claude Code v2.1.214 ou posterior. Os corpos incluem todo o histórico de conversa e têm conteúdo de pensamento estendido redatado. Ativar isso implica consentimento para tudo que as três variáveis acima revelariam |258| `OTEL_LOG_RAW_API_BODIES` | JSON completo de solicitação e resposta da API Anthropic Messages como eventos de log `claude_code.api_request_body` e `claude_code.api_response_body`. Defina como `1` para corpos inline truncados em 60 KB por padrão, ou `file:<dir>` para corpos não truncados em disco com um caminho `body_ref` no evento. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` configura o limite de truncamento inline, e requer Claude Code v2.1.214 ou posterior. Os corpos incluem todo o histórico de conversa e têm conteúdo de pensamento estendido redatado. Ativar isso implica consentimento para tudo que as três variáveis acima revelariam |

259 259 

260Deixe essas não definidas a menos que seu pipeline de observabilidade seja aprovado para armazenar os dados que seu agente manipula. Consulte [Segurança e privacidade](/docs/pt/monitoring-usage#security-and-privacy) na referência de Monitoring para a lista completa de atributos e comportamento de redação.260Deixe essas não definidas a menos que seu pipeline de observabilidade seja aprovado para armazenar os dados que seu agente manipula. Consulte [Segurança e privacidade](/docs/pt/monitoring-usage#security-and-privacy) na referência de Monitoring para a lista completa de atributos e comportamento de redação.

Details

301 301 

302Edições de arquivo nunca são aprovadas automaticamente no modo plano, mesmo quando uma regra de permissão corresponde. Em vez disso, elas solicitam através de seu callback `canUseTool`. No Claude Code v2.1.212 ou posterior, comandos shell que modificam arquivos, como `touch` e `rm`, chegam ao seu callback `canUseTool` da mesma forma.302Edições de arquivo nunca são aprovadas automaticamente no modo plano, mesmo quando uma regra de permissão corresponde. Em vez disso, elas solicitam através de seu callback `canUseTool`. No Claude Code v2.1.212 ou posterior, comandos shell que modificam arquivos, como `touch` e `rm`, chegam ao seu callback `canUseTool` da mesma forma.

303 303 

304Se você definir `allowDangerouslySkipPermissions: true` junto com `permissionMode: 'plan'`, edições de arquivo e comandos shell que modificam arquivos ainda chegam ao seu callback `canUseTool`. A opção permite que você alterne para `bypassPermissions` mais tarde com `setPermissionMode()`.

305 

304Claude pode usar `AskUserQuestion` para esclarecer requisitos antes de finalizar o plano. Consulte [Lidar com aprovações e entrada do usuário](/docs/pt/agent-sdk/user-input#handle-clarifying-questions) para lidar com esses prompts.306Claude pode usar `AskUserQuestion` para esclarecer requisitos antes de finalizar o plano. Consulte [Lidar com aprovações e entrada do usuário](/docs/pt/agent-sdk/user-input#handle-clarifying-questions) para lidar com esses prompts.

305 307 

306**Use quando:** você deseja que Claude proponha alterações sem executá-las, como durante revisão de código ou quando você precisa aprovar alterações antes que sejam feitas.308**Use quando:** você deseja que Claude proponha alterações sem executá-las, como durante revisão de código ou quando você precisa aprovar alterações antes que sejam feitas.

agent-sdk/python.md +145 −124

Details

119</h4>119</h4>

120 120 

121| Parâmetro | Tipo | Descrição |121| Parâmetro | Tipo | Descrição |

122| :------------- | :---------------------------------------------- | :--------------------------------------------------------------------- |122| :------------- | :---------------------------------------------- | :----------------------------------------------------------------------------------------------------------------- |

123| `name` | `str` | Identificador único para a ferramenta |123| `name` | `str` | Identificador único para a ferramenta |

124| `description` | `str` | Descrição legível por humanos do que a ferramenta faz |124| `description` | `str` | Descrição legível por humanos do que a ferramenta faz |

125| `input_schema` | `type \| dict[str, Any]` | Schema definindo os parâmetros de entrada da ferramenta (veja abaixo) |125| `input_schema` | `type \| dict[str, Any]` | Schema definindo os parâmetros de entrada da ferramenta. Veja [Opções de schema de entrada](#input-schema-options) |

126| `annotations` | [`ToolAnnotations`](#toolannotations)` \| None` | Anotações MCP opcionais fornecendo dicas de comportamento aos clientes |126| `annotations` | [`ToolAnnotations`](#toolannotations)` \| None` | Anotações MCP opcionais fornecendo dicas de comportamento aos clientes |

127 127 

128<h4 id="input-schema-options">128<h4 id="input-schema-options">


537| `receive_response()` | Recebe mensagens até e incluindo uma ResultMessage |537| `receive_response()` | Recebe mensagens até e incluindo uma ResultMessage |

538| `interrupt()` | Envia sinal de interrupção (funciona apenas em modo de streaming) |538| `interrupt()` | Envia sinal de interrupção (funciona apenas em modo de streaming) |

539| `set_permission_mode(mode)` | Altera o modo de permissão para a sessão atual |539| `set_permission_mode(mode)` | Altera o modo de permissão para a sessão atual |

540| `set_model(model)` | Altera o modelo para a sessão atual. Passe `None` para redefinir para padrão |540| `set_model(model)` | Altera o modelo para a sessão atual. Passe `None` para redefinir para o [modelo padrão do Claude Code](/docs/pt/model-config) |

541| `rewind_files(user_message_id)` | Restaura arquivos para seu estado na mensagem de usuário especificada. Requer `enable_file_checkpointing=True`. Veja [File checkpointing](/docs/pt/agent-sdk/file-checkpointing) |541| `rewind_files(user_message_id)` | Restaura arquivos para seu estado na mensagem de usuário especificada. Requer `enable_file_checkpointing=True`. Veja [File checkpointing](/docs/pt/agent-sdk/file-checkpointing) |

542| `get_mcp_status()` | Obtém o status de todos os servidores MCP configurados. Retorna [`McpStatusResponse`](#mcpstatusresponse) |542| `get_mcp_status()` | Obtém o status de todos os servidores MCP configurados. Retorna [`McpStatusResponse`](#mcpstatusresponse) |

543| `reconnect_mcp_server(server_name)` | Tenta reconectar a um servidor MCP que falhou ou foi desconectado |543| `reconnect_mcp_server(server_name)` | Tenta reconectar a um servidor MCP que falhou ou foi desconectado |


760</h2>760</h2>

761 761 

762<Note>762<Note>

763 **`@dataclass` vs `TypedDict`:** Este SDK usa dois tipos de tipos. Classes decoradas com `@dataclass` (como `ResultMessage`, `AgentDefinition`, `TextBlock`) são instâncias de objeto em tempo de execução e suportam acesso a atributos: `msg.result`. Classes definidas com `TypedDict` (como `ThinkingConfigEnabled`, `McpStdioServerConfig`, `SyncHookJSONOutput`) são **dicts simples em tempo de execução** e requerem acesso a chave: `config["budget_tokens"]`, não `config.budget_tokens`. A sintaxe de chamada `ClassName(field=value)` funciona para ambos, mas apenas dataclasses produzem objetos com atributos.763 **`@dataclass` vs `TypedDict`:** Este SDK usa dois tipos de classes. Classes decoradas com `@dataclass` (como `ResultMessage`, `AgentDefinition`, `TextBlock`) são instâncias de objeto em tempo de execução e suportam acesso por atributo: `msg.result`. Classes definidas com `TypedDict` (como `ThinkingConfigEnabled`, `McpStdioServerConfig`, `SyncHookJSONOutput`) são **dicts simples em tempo de execução** e requerem acesso por chave: `config["budget_tokens"]`, não `config.budget_tokens`. A sintaxe de chamada `ClassName(field=value)` funciona para ambas, mas apenas dataclasses produzem objetos com atributos.

764</Note>764</Note>

765 765 

766<h3 id="sdkmcptool">766<h3 id="sdkmcptool">

767 `SdkMcpTool`767 `SdkMcpTool`

768</h3>768</h3>

769 769 

770Definição para uma ferramenta SDK MCP criada com o decorador `@tool`.770Definição para uma ferramenta MCP do SDK criada com o decorador `@tool`.

771 771 

772```python theme={null}772```python theme={null}

773@dataclass773@dataclass


785| `description` | `str` | Descrição legível por humanos |785| `description` | `str` | Descrição legível por humanos |

786| `input_schema` | `type[T] \| dict[str, Any]` | Schema para validação de entrada |786| `input_schema` | `type[T] \| dict[str, Any]` | Schema para validação de entrada |

787| `handler` | `Callable[[T], Awaitable[dict[str, Any]]]` | Função assíncrona que manipula a execução da ferramenta |787| `handler` | `Callable[[T], Awaitable[dict[str, Any]]]` | Função assíncrona que manipula a execução da ferramenta |

788| `annotations` | [`ToolAnnotations`](#toolannotations)` \| None` | Anotações de ferramenta opcionais (por exemplo `readOnlyHint`, `destructiveHint`, `openWorldHint`, `maxResultSizeChars`) |788| `annotations` | [`ToolAnnotations`](#toolannotations)` \| None` | Anotações opcionais da ferramenta (por exemplo `readOnlyHint`, `destructiveHint`, `openWorldHint`, `maxResultSizeChars`) |

789 789 

790<h3 id="transport">790<h3 id="transport">

791 `Transport`791 `Transport`

792</h3>792</h3>

793 793 

794Classe base abstrata para implementações de transport personalizado. Use isso para comunicar com o processo Claude sobre um canal personalizado (por exemplo, uma conexão remota em vez de um subprocess local).794Classe base abstrata para implementações de transporte personalizadas. Use isto para se comunicar com o processo Claude através de um canal personalizado (por exemplo, uma conexão remota em vez de um subprocesso local).

795 795 

796<Warning>796<Warning>

797 Esta é uma API interna de baixo nível. A interface pode mudar em versões futuras. Implementações personalizadas devem ser atualizadas para corresponder a qualquer mudança de interface.797 Esta é uma API interna de baixo nível. A interface pode mudar em versões futuras. Implementações personalizadas devem ser atualizadas para corresponder a qualquer mudança de interface.


824```824```

825 825 

826| Método | Descrição |826| Método | Descrição |

827| :---------------- | :--------------------------------------------------------------------------------- |827| :---------------- | :------------------------------------------------------------------------------------ |

828| `connect()` | Conecta o transport e prepara para comunicação |828| `connect()` | Conectar o transporte e preparar para comunicação |

829| `write(data)` | Escreve dados brutos (JSON + nova linha) para o transport |829| `write(data)` | Escrever dados brutos (JSON + nova linha) para o transporte |

830| `read_messages()` | Iterador assíncrono que produz mensagens JSON analisadas |830| `read_messages()` | Iterador assíncrono que produz mensagens JSON analisadas |

831| `close()` | Fecha a conexão e limpa recursos |831| `close()` | Fechar a conexão e limpar recursos |

832| `is_ready()` | Retorna `True` se o transport pode enviar e receber |832| `is_ready()` | Retorna `True` se o transporte pode enviar e receber |

833| `end_input()` | Fecha o fluxo de entrada (por exemplo, fechar stdin para transports de subprocess) |833| `end_input()` | Fechar o fluxo de entrada (por exemplo, fechar stdin para transportes de subprocesso) |

834 834 

835Importação: `from claude_agent_sdk import Transport`835Importação: `from claude_agent_sdk import Transport`

836 836 


845class ClaudeAgentOptions:845class ClaudeAgentOptions:

846 tools: list[str] | ToolsPreset | None = None846 tools: list[str] | ToolsPreset | None = None

847 allowed_tools: list[str] = field(default_factory=list)847 allowed_tools: list[str] = field(default_factory=list)

848 system_prompt: str | SystemPromptPreset | SystemPromptFile | None = None848 system_prompt: str | SystemPromptPreset | SystemPromptCustom | SystemPromptFile | None = None

849 mcp_servers: dict[str, McpServerConfig] | str | Path = field(default_factory=dict)849 mcp_servers: dict[str, McpServerConfig] | str | Path = field(default_factory=dict)

850 strict_mcp_config: bool = False850 strict_mcp_config: bool = False

851 permission_mode: PermissionMode | None = None851 permission_mode: PermissionMode | None = None


894```894```

895 895 

896| Propriedade | Tipo | Padrão | Descrição |896| Propriedade | Tipo | Padrão | Descrição |

897| :---------------------------- | :------------------------------------------------------------------------------------ | :--------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |897| :---------------------------- | :------------------------------------------------------------------------------------ | :------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

898| `tools` | `list[str] \| ToolsPreset \| None` | `None` | Configuração de ferramentas. Use `{"type": "preset", "preset": "claude_code"}` para as ferramentas padrão do Claude Code |898| `tools` | `list[str] \| ToolsPreset \| None` | `None` | Configuração de ferramentas. Use `{"type": "preset", "preset": "claude_code"}` para as ferramentas padrão do Claude Code |

899| `allowed_tools` | `list[str]` | `[]` | Ferramentas para auto-aprovar sem solicitar. Isso não restringe Claude apenas a essas ferramentas. Se você nomear uma das [ferramentas de rastreamento de tarefas](/docs/pt/agent-sdk/todo-tracking#model-availability) aqui, Claude Code também opta a sessão. Outras ferramentas não listadas caem através de `permission_mode` e `can_use_tool`. Use `disallowed_tools` para bloquear ferramentas. Veja [Permissions](/docs/pt/agent-sdk/permissions#allow-and-deny-rules) |899| `allowed_tools` | `list[str]` | `[]` | Ferramentas para aprovar automaticamente sem solicitar. Isto não restringe Claude apenas a estas ferramentas. Se você nomear uma das [ferramentas de rastreamento de tarefas](/docs/pt/agent-sdk/todo-tracking#model-availability) aqui, Claude Code também opta a sessão. Outras ferramentas não listadas caem em `permission_mode` e `can_use_tool`. Use `disallowed_tools` para bloquear ferramentas. Veja [Permissões](/docs/pt/agent-sdk/permissions#allow-and-deny-rules) |

900| `system_prompt` | `str \| SystemPromptPreset \| SystemPromptFile \| None` | `None` | Configuração de prompt do sistema. Passe uma string para um prompt personalizado, `{"type": "preset", "preset": "claude_code"}` para o prompt do sistema do Claude Code com `"append"` opcional, ou `{"type": "file", "path": "..."}` para carregar um prompt grande do disco. Veja [`SystemPromptPreset`](#systempromptpreset) e [`SystemPromptFile`](#systempromptfile) |900| `system_prompt` | `str \| SystemPromptPreset \| SystemPromptCustom \| SystemPromptFile \| None` | `None` | Configuração de prompt do sistema. Passe uma string para um prompt personalizado, `{"type": "preset", "preset": "claude_code"}` para o prompt do sistema do Claude Code com `"append"` opcional, `{"type": "custom", "prompt": "..."}` para um prompt personalizado que também pode definir `"snapshot"`, ou `{"type": "file", "path": "..."}` para carregar um prompt grande do disco. Veja [`SystemPromptPreset`](#systempromptpreset), [`SystemPromptCustom`](#systempromptcustom), e [`SystemPromptFile`](#systempromptfile) |

901| `mcp_servers` | `dict[str, McpServerConfig] \| str \| Path` | `{}` | Configurações de servidor MCP ou caminho para arquivo de configuração |901| `mcp_servers` | `dict[str, McpServerConfig] \| str \| Path` | `{}` | Configurações de servidor MCP ou caminho para arquivo de configuração |

902| `strict_mcp_config` | `bool` | `False` | Quando `True`, use apenas os servidores passados em `mcp_servers` e ignore o projeto `.mcp.json`, configurações do usuário, servidores MCP fornecidos por plugins e [conectores claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai). Mapeia para o sinalizador CLI `--strict-mcp-config` |902| `strict_mcp_config` | `bool` | `False` | Quando `True`, use apenas os servidores passados em `mcp_servers` e ignore o projeto `.mcp.json`, configurações do usuário, servidores MCP fornecidos por plugins, e [conectores claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai). Mapeia para a flag CLI `--strict-mcp-config` |

903| `permission_mode` | `PermissionMode \| None` | `None` | Modo de permissão para uso de ferramentas |903| `permission_mode` | `PermissionMode \| None` | `None` | Modo de permissão para uso de ferramentas |

904| `continue_conversation` | `bool` | `False` | Continua a conversa mais recente |904| `continue_conversation` | `bool` | `False` | Continuar a conversa mais recente |

905| `resume` | `str \| None` | `None` | ID de sessão para retomar |905| `resume` | `str \| None` | `None` | ID de sessão para retomar |

906| `session_id` | `str \| None` | `None` | Use um ID de sessão específico em vez de um gerado automaticamente. Deve ser um UUID válido. Não pode ser combinado com `continue_conversation` ou `resume` a menos que `fork_session` também esteja definido |906| `session_id` | `str \| None` | `None` | Use um ID de sessão específico em vez de um gerado automaticamente. Deve ser um UUID válido. Não pode ser combinado com `continue_conversation` ou `resume` a menos que `fork_session` também esteja definido |

907| `max_turns` | `int \| None` | `None` | Número máximo de turnos agênticos (rodadas de uso de ferramenta) |907| `max_turns` | `int \| None` | `None` | Máximo de turnos agênticos (rodadas de uso de ferramentas) |

908| `max_budget_usd` | `float \| None` | `None` | Para a consulta quando a estimativa de custo do lado do cliente atinge este valor em USD. Comparado com a mesma estimativa que `total_cost_usd`; veja [Track cost and usage](/docs/pt/agent-sdk/cost-tracking) para ressalvas de precisão |908| `max_budget_usd` | `float \| None` | `None` | Parar a consulta quando a estimativa de custo do lado do cliente atingir este valor em USD. Comparado com a mesma estimativa que `total_cost_usd`. Para ressalvas de precisão e comportamento de redefinição, veja [Rastrear custo e uso](/docs/pt/agent-sdk/cost-tracking) |

909| `disallowed_tools` | `list[str]` | `[]` | Ferramentas para negar. Um nome simples como `"Bash"` remove a ferramenta do contexto do Claude. Uma regra com escopo como `"Bash(rm *)"` deixa a ferramenta disponível e nega chamadas correspondentes em todos os modos de permissão, incluindo `bypassPermissions`, para o comando [conforme escrito](/docs/pt/permissions#bash-rule-limits). Veja [Permissions](/docs/pt/agent-sdk/permissions#allow-and-deny-rules) |909| `disallowed_tools` | `list[str]` | `[]` | Ferramentas para negar. Um nome simples como `"Bash"` remove a ferramenta do contexto do Claude. Uma regra com escopo como `"Bash(rm *)"` deixa a ferramenta disponível e nega chamadas correspondentes em todos os modos de permissão, incluindo `bypassPermissions`, para o comando [conforme escrito](/docs/pt/permissions#bash-rule-limits). Veja [Permissões](/docs/pt/agent-sdk/permissions#allow-and-deny-rules) |

910| `enable_file_checkpointing` | `bool` | `False` | Ativa rastreamento de mudança de arquivo para retrocesso. Veja [File checkpointing](/docs/pt/agent-sdk/file-checkpointing) |910| `enable_file_checkpointing` | `bool` | `False` | Ativar rastreamento de alterações de arquivo para retrocesso. Veja [Checkpointing de arquivo](/docs/pt/agent-sdk/file-checkpointing) |

911| `model` | `str \| None` | `None` | Alias de modelo Claude ou nome de modelo completo. Veja [valores aceitos e IDs específicos do provedor](/docs/pt/model-config#available-models) |911| `model` | `str \| None` | `None` | Alias de modelo Claude ou nome de modelo completo. Veja [valores aceitos e IDs específicos do provedor](/docs/pt/model-config#available-models) |

912| `fallback_model` | `str \| None` | `None` | Modelo de fallback a usar se o modelo primário falhar |912| `fallback_model` | `str \| None` | `None` | Modelo de fallback para usar se o modelo primário falhar. Aceita uma lista separada por vírgulas. Para orientação, veja [Escolher um modelo](/docs/pt/agent-sdk/configuration#choose-a-model) |

913| `betas` | `list[SdkBeta]` | `[]` | Recursos beta para ativar. Veja [`SdkBeta`](#sdkbeta) para opções disponíveis |913| `betas` | `list[SdkBeta]` | `[]` | Recursos beta para ativar. Veja [`SdkBeta`](#sdkbeta) para opções disponíveis |

914| `output_format` | `dict[str, Any] \| None` | `None` | Formato de saída para respostas estruturadas (por exemplo, `{"type": "json_schema", "schema": {...}}`). Veja [Structured outputs](/docs/pt/agent-sdk/structured-outputs) para detalhes |914| `output_format` | `dict[str, Any] \| None` | `None` | Formato de saída para respostas estruturadas (por exemplo, `{"type": "json_schema", "schema": {...}}`). Veja [Saídas estruturadas](/docs/pt/agent-sdk/structured-outputs) para detalhes |

915| `permission_prompt_tool_name` | `str \| None` | `None` | Nome da ferramenta MCP para prompts de permissão |915| `permission_prompt_tool_name` | `str \| None` | `None` | Nome da ferramenta MCP para prompts de permissão |

916| `cwd` | `str \| Path \| None` | `None` | Diretório de trabalho atual |916| `cwd` | `str \| Path \| None` | `None` | Diretório de trabalho atual |

917| `cli_path` | `str \| Path \| None` | `None` | Caminho personalizado para o executável CLI do Claude Code |917| `cli_path` | `str \| Path \| None` | `None` | Caminho personalizado para o executável CLI do Claude Code |

918| `settings` | `str \| None` | `None` | Caminho para arquivo de configurações |918| `settings` | `str \| None` | `None` | Caminho para um arquivo de configurações ou uma string JSON inline |

919| `add_dirs` | `list[str \| Path]` | `[]` | Diretórios adicionais que Claude pode acessar. O SDK passa cada entrada para Claude Code como `--add-dir`, então com a fonte de configuração `project` Claude Code também [carrega as skills, comandos e subagentes do diretório](/docs/pt/permissions#additional-directories-grant-file-access-not-configuration) |919| `add_dirs` | `list[str \| Path]` | `[]` | Diretórios adicionais que Claude pode acessar. O SDK passa cada entrada para Claude Code como `--add-dir`, então com a fonte de configuração `project` Claude Code também [carrega as skills, comandos e subagentes do diretório](/docs/pt/permissions#additional-directories-grant-file-access-not-configuration) |

920| `env` | `dict[str, str]` | `{}` | Variáveis de ambiente mescladas no topo do ambiente de processo herdado. Veja [Environment variables](/docs/pt/env-vars) para variáveis que o CLI subjacente lê, e [Handle slow or stalled API responses](#handle-slow-or-stalled-api-responses) para variáveis relacionadas a timeout |920| `env` | `dict[str, str]` | `{}` | Variáveis de ambiente mescladas no topo do ambiente de processo herdado. Veja [Variáveis de ambiente](/docs/pt/env-vars) para variáveis que a CLI subjacente lê, e [Lidar com respostas de API lentas ou travadas](#handle-slow-or-stalled-api-responses) para variáveis relacionadas a timeout |

921| `extra_args` | `dict[str, str \| None]` | `{}` | Argumentos CLI adicionais a passar diretamente para o CLI |921| `extra_args` | `dict[str, str \| None]` | `{}` | Argumentos CLI adicionais para passar diretamente para a CLI |

922| `max_buffer_size` | `int \| None` | `None` | Bytes máximos ao fazer buffer da saída padrão do CLI |922| `max_buffer_size` | `int \| None` | `None` | Máximo de bytes ao fazer buffer da stdout da CLI |

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

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

925| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | Função de callback de permissão de ferramenta, invocada apenas quando o [fluxo de permissão](/docs/pt/agent-sdk/permissions#how-permissions-are-evaluated) cai através de um prompt. Não invocada para chamadas auto-aprovadas por `allowed_tools`, regras de permissão ou `permission_mode`. Uma regra de permissão não pré-aprova as [ações que nenhum modo auto-aprova](/docs/pt/permission-modes#actions-no-mode-auto-approves). Veja [`CanUseTool`](#canusetool) para detalhes |925| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | Callback de permissão de ferramenta, invocado apenas quando o [fluxo de permissão](/docs/pt/agent-sdk/permissions#how-permissions-are-evaluated) cai em um prompt. Não invocado para chamadas pré-aprovadas por `allowed_tools`, regras de permissão, ou `permission_mode`. Uma regra de permissão não pré-aprova as [ações que nenhum modo aprova automaticamente](/docs/pt/permission-modes#actions-no-mode-auto-approves). Veja [`CanUseTool`](#canusetool) para detalhes |

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

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

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

929| `include_hook_events` | `bool` | `False` | Inclua eventos de ciclo de vida de hook no fluxo de mensagens como objetos `HookEventMessage` |929| `include_hook_events` | `bool` | `False` | Incluir eventos de ciclo de vida de hook no fluxo de mensagens como objetos `HookEventMessage` |

930| `forward_subagent_text` | `bool` | `False` | Encaminhe blocos de texto e pensamento de subagente no fluxo de mensagens. Sem essa opção, Claude Code emite blocos `tool_use` e `tool_result` de subagente, mas não texto ou pensamento. Requer Python Agent SDK 0.2.140 ou posterior |930| `forward_subagent_text` | `bool` | `False` | Encaminhar blocos de texto e pensamento de subagentes no fluxo de mensagens. Sem esta opção, Claude Code emite blocos `tool_use` e `tool_result` de subagentes mas não texto ou pensamento. Requer Python Agent SDK 0.2.140 ou posterior |

931| `fork_session` | `bool` | `False` | Ao retomar com `resume`, bifurque para um novo ID de sessão em vez de continuar a sessão original |931| `fork_session` | `bool` | `False` | Ao retomar com `resume`, bifurcar para um novo ID de sessão em vez de continuar a sessão original |

932| `resume_session_at` | `str \| None` | `None` | Ao retomar, carregue a conversa apenas até e incluindo a mensagem com este UUID. Use com `resume`, e geralmente `fork_session`, para ramificar de um ponto anterior. Requer Python Agent SDK 0.2.137 ou posterior |932| `resume_session_at` | `str \| None` | `None` | Ao retomar, carregar a conversa apenas até e incluindo a mensagem com este UUID. Use com `resume`, e geralmente `fork_session`, para ramificar de um ponto anterior. Requer Python Agent SDK 0.2.137 ou posterior |

933| `resume_drops_turn` | `str \| None` | `None` | UUID do prompt do usuário cujo turno uma truncagem `resume_session_at` descarta. Quando definido, o CLI recusa o resume se o intervalo descartado contiver entradas não atribuíveis a esse turno. Requer Python Agent SDK 0.2.137 ou posterior e Claude Code v2.1.223 ou posterior; o CLI agrupado com essas versões do SDK satisfaz o requisito do Claude Code |933| `resume_drops_turn` | `str \| None` | `None` | UUID do prompt do usuário cuja rodada uma truncagem `resume_session_at` descarta. Quando definido, a CLI recusa o retorno se o intervalo descartado contiver entradas não atribuíveis a essa rodada. Requer Python Agent SDK 0.2.137 ou posterior e Claude Code v2.1.223 ou posterior; a CLI agrupada com essas versões do SDK satisfaz o requisito do Claude Code |

934| `agents` | `dict[str, AgentDefinition] \| None` | `None` | Subagentes definidos programaticamente |934| `agents` | `dict[str, AgentDefinition] \| None` | `None` | Subagentes definidos programaticamente |

935| `plugins` | `list[SdkPluginConfig]` | `[]` | Carregue plugins personalizados de caminhos locais. Veja [Plugins](/docs/pt/agent-sdk/plugins) para detalhes |935| `plugins` | `list[SdkPluginConfig]` | `[]` | Carregar plugins personalizados de caminhos locais. Veja [Plugins](/docs/pt/agent-sdk/plugins) para detalhes |

936| `sandbox` | [`SandboxSettings`](#sandboxsettings) ` \| None` | `None` | Configure o comportamento do sandbox programaticamente. Veja [Sandbox settings](#sandboxsettings) para detalhes |936| `sandbox` | [`SandboxSettings`](#sandboxsettings) ` \| None` | `None` | Configurar comportamento de sandbox programaticamente. Veja [Configurações de sandbox](#sandboxsettings) para detalhes |

937| `setting_sources` | `list[SettingSource] \| None` | `None` (CLI defaults: all sources) | Controle quais configurações do sistema de arquivos carregar. Passe `[]` para desabilitar configurações de usuário, projeto e local. Configurações de política gerenciada carregam independentemente; configurações gerenciadas pelo servidor são buscadas quando a sessão se autentica com uma credencial de organização em uma [configuração elegível](/docs/pt/server-managed-settings#platform-availability). Veja [Use Claude Code features](/docs/pt/agent-sdk/claude-code-features#what-settingsources-does-not-control) |937| `setting_sources` | `list[SettingSource] \| None` | `None` (padrões CLI: todas as fontes) | Controlar quais configurações do sistema de arquivos carregar. Passe `[]` para desabilitar configurações de usuário, projeto e local. Com `skills` definido e este campo indefinido, apenas fontes de usuário e projeto carregam. Defina `setting_sources` explicitamente para manter configurações locais. Política gerenciada por endpoint carrega independentemente; configurações gerenciadas por servidor são buscadas quando a sessão se autentica com uma credencial de organização em uma [configuração elegível](/docs/pt/server-managed-settings#platform-availability). Para entradas lidas independentemente desta opção, veja [O que settingSources não controla](/docs/pt/agent-sdk/claude-code-features#what-settingsources-does-not-control) |

938| `skills` | `list[str] \| Literal["all"] \| None` | `None` | Skills disponíveis para a sessão. Passe `"all"` para ativar cada skill descoberto, ou uma lista de nomes de skills. Passe apenas nomes exatos. O SDK rejeita nomes malformados e em forma de wildcard com um `ValueError` antes de iniciar o processo Claude Code; essa verificação requer Python Agent SDK 0.2.129 ou posterior. Quando definido, o SDK adiciona a ferramenta Skill a `allowed_tools` automaticamente. Se você também passar `tools`, inclua `"Skill"` nessa lista. Veja [Skills](/docs/pt/agent-sdk/skills) |938| `skills` | `list[str] \| Literal["all"] \| None` | `None` | Skills disponíveis para a sessão. Passe `"all"` para ativar cada skill descoberta, ou uma lista de nomes de skills. Passe apenas nomes exatos. O SDK rejeita nomes malformados e em forma de wildcard com um `ValueError` antes de iniciar o processo Claude Code; esta verificação requer Python Agent SDK 0.2.129 ou posterior. Quando definido, o SDK adiciona a ferramenta Skill a `allowed_tools` automaticamente. Se você também passar `tools`, inclua `"Skill"` nessa lista. Veja [Skills](/docs/pt/agent-sdk/skills) |

939| `max_thinking_tokens` | `int \| None` | `None` | *Deprecated* - Tokens máximos para blocos de pensamento. Use `thinking` em vez disso |939| `max_thinking_tokens` | `int \| None` | `None` | *Descontinuado* - Máximo de tokens para blocos de pensamento. Use `thinking` em vez disso |

940| `thinking` | [`ThinkingConfig`](#thinkingconfig) ` \| None` | `None` | Controla o comportamento de pensamento estendido. Tem precedência sobre `max_thinking_tokens` |940| `thinking` | [`ThinkingConfig`](#thinkingconfig) ` \| None` | `None` | Controla comportamento de pensamento estendido. Tem precedência sobre `max_thinking_tokens` |

941| `effort` | [`EffortLevel`](#effortlevel) ` \| None` | `None` | Nível de esforço para profundidade de pensamento. Veja [ajustar o nível de esforço](/docs/pt/model-config#adjust-effort-level) |941| `effort` | [`EffortLevel`](#effortlevel) ` \| None` | `None` | Nível de esforço para profundidade de pensamento. Veja [ajustar o nível de esforço](/docs/pt/model-config#adjust-effort-level) |

942| `session_store` | [`SessionStore`](/docs/pt/agent-sdk/session-storage#the-sessionstore-interface) ` \| None` | `None` | Espelhe transcrições de sessão para um backend externo para que outro host possa retomá-las. Veja [Persist sessions to external storage](/docs/pt/agent-sdk/session-storage) |942| `session_store` | [`SessionStore`](/docs/pt/agent-sdk/session-storage#the-sessionstore-interface) ` \| None` | `None` | Espelhar transcrições de sessão para um backend externo para que outro host possa retomá-las. Veja [Persistir sessões para armazenamento externo](/docs/pt/agent-sdk/session-storage) |

943| `session_store_flush` | `Literal["batched", "eager"]` | `"batched"` | Quando fazer flush das entradas de transcrição espelhadas para `session_store`. `"batched"` faz flush uma vez por turno ou quando o buffer enche; `"eager"` dispara um flush de fundo após cada frame. Ignorado quando `session_store` é `None` |943| `session_store_flush` | `Literal["batched", "eager"]` | `"batched"` | Quando fazer flush de entradas de transcrição espelhadas para `session_store`. `"batched"` faz flush uma vez por rodada ou quando o buffer enche; `"eager"` dispara um flush em background após cada frame. Ignorado quando `session_store` é `None` |

944| `load_timeout_ms` | `int` | `60000` | Timeout por chamada para `session_store.load()` e `list_subkeys()` durante materialização de resume, em milissegundos |944| `load_timeout_ms` | `int` | `60000` | Timeout por chamada para `session_store.load()` e `list_subkeys()` durante materialização de retomada, em milissegundos |

945| `task_budget` | `TaskBudget \| None` | `None` | Orçamento de token do lado da API. Enviado como `output_config.task_budget` com o cabeçalho beta `task-budgets-2026-03-13`. Passe `{"total": <int>}`. |945| `task_budget` | `TaskBudget \| None` | `None` | Orçamento de token do lado da API. Enviado como `output_config.task_budget` com o header beta `task-budgets-2026-03-13`. Passe `{"total": <int>}`. |

946 946 

947<h4 id="handle-slow-or-stalled-api-responses">947<h4 id="handle-slow-or-stalled-api-responses">

948 Lidar com respostas de API lentas ou travadas948 Lidar com respostas de API lentas ou travadas

949</h4>949</h4>

950 950 

951O subprocess CLI lê várias variáveis de ambiente que controlam timeouts de API e detecção de travamento. Passe-as através de `ClaudeAgentOptions.env`:951O subprocesso CLI lê várias variáveis de ambiente que controlam timeouts de API e detecção de travamento. Passe-as através de `ClaudeAgentOptions.env`:

952 952 

953```python theme={null}953```python theme={null}

954from claude_agent_sdk import ClaudeAgentOptions954from claude_agent_sdk import ClaudeAgentOptions


962)962)

963```963```

964 964 

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

966* `CLAUDE_CODE_MAX_RETRIES`: máximo de tentativas de API. Padrão `10`, limitado a `15`. Cada tentativa obtém sua própria janela `API_TIMEOUT_MS`, então o tempo de parede no pior caso é aproximadamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` mais backoff. Para execuções autônomas que precisam aguardar interrupções mais longas, defina [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/pt/errors#tune-retry-behavior): ele tenta erros de capacidade transitória indefinidamente e, no Claude Code v2.1.199 ou posterior, aumenta o padrão para outros erros transitórios para `300` e remove o limite nesta variável.966* `CLAUDE_CODE_MAX_RETRIES`: máximo de tentativas de API. Padrão `10`, limitado a `15`. Cada tentativa obtém sua própria janela `API_TIMEOUT_MS`, então o tempo de parede no pior caso é aproximadamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` mais backoff. Para execuções sem supervisão que precisam esperar por interrupções mais longas, defina [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/pt/errors#tune-retry-behavior): ele tenta novamente erros de capacidade transitória indefinidamente e, no Claude Code v2.1.199 ou posterior, aumenta o padrão para outros erros transitórios para `300` e remove o limite nesta variável.

967* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog de travamento para subagentes. Enquanto o watchdog de stream está ativado, o padrão é `CLAUDE_STREAM_IDLE_TIMEOUT_MS` mais 5 minutos, o que resulta em `600000` a menos que você aumente essa variável. Com o watchdog de stream desativado, o padrão é `600000`. Antes de v2.1.257, o padrão era sempre `600000`.967* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog de travamento para subagentes. Enquanto o watchdog de stream está ativo, o padrão é `CLAUDE_STREAM_IDLE_TIMEOUT_MS` mais 5 minutos, o que resulta em `600000` a menos que você aumente essa variável. Com o watchdog de stream desativado, o padrão é `600000`. Antes de v2.1.257, o padrão era sempre `600000`.

968 968 

969 O temporizador redefine em cada evento de stream. Em caso de travamento, Claude Code aborta o subagente e relata o travamento ao pai. Para um subagente de fundo, também marca a tarefa como falha e anexa qualquer resultado parcial.969 O temporizador é redefinido em cada evento de stream. Em um travamento, Claude Code aborta o subagente e relata o travamento ao pai. Para um subagente em background, também marca a tarefa como falhada e anexa qualquer resultado parcial.

970* `CLAUDE_ENABLE_STREAM_WATCHDOG` com `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: watchdog de stream que aborta a solicitação quando os cabeçalhos chegaram mas o corpo da resposta para de fazer stream. O watchdog está ativado por padrão para todos os provedores; defina `CLAUDE_ENABLE_STREAM_WATCHDOG=0` para desabilitá-lo. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` padrão é `300000` e é fixado nesse mínimo. Após o aborto, [Automatic retries](/docs/pt/errors#automatic-retries) cobre o que Claude Code faz, com base em quão longe a resposta havia progredido.970* `CLAUDE_ENABLE_STREAM_WATCHDOG` com `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: watchdog de stream que aborta a requisição quando os headers chegaram mas o corpo da resposta para de fazer stream. O watchdog está ativado por padrão para todos os provedores; defina `CLAUDE_ENABLE_STREAM_WATCHDOG=0` para desativá-lo. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` padrão é `300000` e é limitado a esse mínimo. Após o aborto, [Tentativas automáticas](/docs/pt/errors#automatic-retries) cobre o que Claude Code faz, baseado em quão longe a resposta havia progredido.

971 971 

972 Enquanto o watchdog aguarda uma resposta que um gateway atrás de `ANTHROPIC_BASE_URL` mantém aberta com pings keep-alive, um host que define `include_partial_messages` continua recebendo mensagens `ping` [`StreamEvent`](#streamevent). Leia esses frames como vivacidade em vez de fazer timeout da sessão no silêncio. Antes de v2.1.257, os frames paravam 5 minutos após o último evento de stream real.972 Enquanto o watchdog aguarda uma resposta que um gateway atrás de `ANTHROPIC_BASE_URL` mantém aberta com pings keep-alive, um host que define `include_partial_messages` continua recebendo mensagens `ping` [`StreamEvent`](#streamevent). Leia esses frames como vivacidade em vez de fazer timeout da sessão no silêncio. Antes de v2.1.257, os frames paravam 5 minutos após o último evento de stream real.

973 973 


975 `OutputFormat`975 `OutputFormat`

976</h3>976</h3>

977 977 

978Configuração para validação de saída estruturada. Passe isso como um `dict` para o campo `output_format` em `ClaudeAgentOptions`:978Configuração para validação de saída estruturada. Passe isto como um `dict` para o campo `output_format` em `ClaudeAgentOptions`:

979 979 

980```python theme={null}980```python theme={null}

981# Expected dict shape for output_format981# Forma de dict esperada para output_format

982{982{

983 "type": "json_schema",983 "type": "json_schema",

984 "schema": {...}, # Your JSON Schema definition984 "schema": {...}, # Sua definição JSON Schema

985}985}

986```986```

987 987 


994 `SystemPromptPreset`994 `SystemPromptPreset`

995</h3>995</h3>

996 996 

997Configuração para usar o prompt do sistema preset do Claude Code com adições opcionais.997Configuração para usar o prompt do sistema predefinido do Claude Code com adições opcionais.

998 998 

999```python theme={null}999```python theme={null}

1000class SystemPromptPreset(TypedDict):1000class SystemPromptPreset(TypedDict):


1002 preset: Literal["claude_code"]1002 preset: Literal["claude_code"]

1003 append: NotRequired[str]1003 append: NotRequired[str]

1004 exclude_dynamic_sections: NotRequired[bool]1004 exclude_dynamic_sections: NotRequired[bool]

1005 snapshot: NotRequired[bool]

1005```1006```

1006 1007 

1007| Campo | Obrigatório | Descrição |1008| Campo | Obrigatório | Descrição |

1008| :------------------------- | :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1009| :------------------------- | :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1009| `type` | Sim | Deve ser `"preset"` para usar um prompt do sistema preset |1010| `type` | Sim | Deve ser `"preset"` para usar um prompt do sistema predefinido |

1010| `preset` | Sim | Deve ser `"claude_code"` para usar o prompt do sistema do Claude Code |1011| `preset` | Sim | Deve ser `"claude_code"` para usar o prompt do sistema do Claude Code |

1011| `append` | Não | Instruções adicionais para anexar ao prompt do sistema preset |1012| `append` | Não | Instruções adicionais para anexar ao prompt do sistema predefinido |

1012| `exclude_dynamic_sections` | Não | Mova contexto por sessão como diretório de trabalho, sinalizador git-repo e caminhos de memória automática do prompt do sistema para a primeira mensagem do usuário. Melhora a reutilização de cache de prompt entre usuários e máquinas. Veja [Modify system prompts](/docs/pt/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) |1013| `exclude_dynamic_sections` | Não | Mover contexto por sessão como diretório de trabalho, a flag git-repo, e caminhos de memória automática do prompt do sistema para a primeira mensagem do usuário. Melhora a reutilização de cache de prompt entre usuários e máquinas. Veja [Modificar prompts do sistema](/docs/pt/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) |

1014| `snapshot` | Não | Defina como `False` para reconstruir o prompt do sistema em cada requisição em vez de [reutilizar o prompt que a sessão registrou em sua primeira requisição](/docs/pt/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session). Requer `claude-agent-sdk` v0.2.153 ou posterior |

1015 

1016<h3 id="systempromptcustom">

1017 `SystemPromptCustom`

1018</h3>

1019 

1020Um prompt do sistema personalizado em forma de objeto, equivalente a passar uma string como `system_prompt`, que também pode definir `snapshot`. Requer `claude-agent-sdk` v0.2.153 ou posterior.

1021 

1022```python theme={null}

1023class SystemPromptCustom(TypedDict):

1024 type: Literal["custom"]

1025 prompt: str

1026 snapshot: NotRequired[bool]

1027```

1028 

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

1030| :--------- | :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1031| `type` | Sim | Deve ser `"custom"` |

1032| `prompt` | Sim | O texto do prompt do sistema. Passado para a CLI como um argumento de linha de comando, então os [limites de comprimento de linha de comando](#systempromptfile) se aplicam |

1033| `snapshot` | Não | Mesmo que [`SystemPromptPreset.snapshot`](#systempromptpreset), aplicado a `prompt` |

1013 1034 

1014<h3 id="systempromptfile">1035<h3 id="systempromptfile">

1015 `SystemPromptFile`1036 `SystemPromptFile`

1016</h3>1037</h3>

1017 1038 

1018Configuração para carregar um prompt do sistema personalizado de um arquivo em vez de passá-lo como uma string. O SDK mapeia isso para o sinalizador CLI [`--system-prompt-file`](/docs/pt/cli-reference#system-prompt-flags). Use a forma de arquivo quando o prompt é grande: o SDK passa um `system_prompt` string no argv do subprocess CLI, que está sujeito aos limites de comprimento de linha de comando do SO antes do SDK enviar qualquer solicitação de API. No Linux, um único argumento mais longo que aproximadamente 128 KB falha no spawn do processo com `Argument list too long`. No Windows, toda a linha de comando é limitada a aproximadamente 32 KB, então a forma de string falha em um limite inferior.1039Configuração para carregar um prompt do sistema personalizado de um arquivo em vez de passá-lo como uma string. O SDK mapeia isto para a flag CLI [`--system-prompt-file`](/docs/pt/cli-reference#system-prompt-flags). Use a forma de arquivo quando o prompt é grande: o SDK passa um `system_prompt` string no argv do subprocesso CLI, que está sujeito a limites de comprimento de linha de comando do SO antes do SDK enviar qualquer requisição de API. No Linux um único argumento mais longo que aproximadamente 128 KB falha no spawn do processo com `Argument list too long`. No Windows toda a linha de comando é limitada a aproximadamente 32 KB, então a forma de string falha em um limite mais baixo.

1019 1040 

1020```python theme={null}1041```python theme={null}

1021class SystemPromptFile(TypedDict):1042class SystemPromptFile(TypedDict):


1048 Comportamento padrão1069 Comportamento padrão

1049</h4>1070</h4>

1050 1071 

1051Quando `setting_sources` é omitido ou `None`, `query()` carrega as mesmas configurações do sistema de arquivos que o CLI do Claude Code: usuário, projeto e local. Configurações de política gerenciada são carregadas em todos os casos; configurações gerenciadas pelo servidor são buscadas quando a sessão se autentica com uma credencial de organização em uma [configuração elegível](/docs/pt/server-managed-settings#platform-availability). Veja [What settingSources does not control](/docs/pt/agent-sdk/claude-code-features#what-settingsources-does-not-control) para entradas que são lidas independentemente desta opção, e como desabilitá-las.1072Quando `setting_sources` é omitido ou `None` e `skills` não está definido, `query()` carrega as mesmas configurações do sistema de arquivos que a CLI Claude Code: usuário, projeto e local. Com `skills` definido, a linha [`setting_sources`](#claudeagentoptions) descreve o padrão atual. Política gerenciada por endpoint é carregada em todos os casos; configurações gerenciadas por servidor são buscadas quando a sessão se autentica com uma credencial de organização em uma [configuração elegível](/docs/pt/server-managed-settings#platform-availability). Para mais informações, veja [O que settingSources não controla](/docs/pt/agent-sdk/claude-code-features#what-settingsources-does-not-control).

1052 1073 

1053<h4 id="why-use-setting_sources">1074<h4 id="why-use-setting_sources">

1054 Por que usar setting\_sources1075 Por que usar setting\_sources


1057**Desabilitar configurações do sistema de arquivos:**1078**Desabilitar configurações do sistema de arquivos:**

1058 1079 

1059```python theme={null}1080```python theme={null}

1060# Do not load user, project, or local settings from disk1081# Não carregar configurações de usuário, projeto ou local do disco

1061import asyncio1082import asyncio

1062from claude_agent_sdk import query, ClaudeAgentOptions1083from claude_agent_sdk import query, ClaudeAgentOptions

1063 1084 


1079 No Python SDK 0.1.59 e anterior, uma lista vazia era tratada da mesma forma que omitir a opção, então `setting_sources=[]` não desabilitava configurações do sistema de arquivos. Atualize para uma versão mais recente se você precisar que uma lista vazia tenha efeito. O SDK TypeScript não é afetado.1100 No Python SDK 0.1.59 e anterior, uma lista vazia era tratada da mesma forma que omitir a opção, então `setting_sources=[]` não desabilitava configurações do sistema de arquivos. Atualize para uma versão mais recente se você precisar que uma lista vazia tenha efeito. O SDK TypeScript não é afetado.

1080</Note>1101</Note>

1081 1102 

1082**Carregue apenas fontes de configuração específicas:**1103**Carregar apenas fontes de configuração específicas:**

1083 1104 

1084```python theme={null}1105```python theme={null}

1085# Load only project settings, ignore user and local1106# Carregar apenas configurações de projeto, ignorar usuário e local

1086import asyncio1107import asyncio

1087from claude_agent_sdk import query, ClaudeAgentOptions1108from claude_agent_sdk import query, ClaudeAgentOptions

1088 1109 


1091 async for message in query(1112 async for message in query(

1092 prompt="Run CI checks",1113 prompt="Run CI checks",

1093 options=ClaudeAgentOptions(1114 options=ClaudeAgentOptions(

1094 setting_sources=["project"] # Only .claude/settings.json1115 setting_sources=["project"] # Apenas .claude/settings.json

1095 ),1116 ),

1096 ):1117 ):

1097 print(message)1118 print(message)


1103**Aplicações apenas SDK:**1124**Aplicações apenas SDK:**

1104 1125 

1105```python theme={null}1126```python theme={null}

1106# Define everything programmatically.1127# Definir tudo programaticamente.

1107# Pass [] to opt out of filesystem setting sources.1128# Passe [] para optar por não usar fontes de configuração do sistema de arquivos.

1108import asyncio1129import asyncio

1109from claude_agent_sdk import AgentDefinition, ClaudeAgentOptions, query1130from claude_agent_sdk import AgentDefinition, ClaudeAgentOptions, query

1110 1131 


1129asyncio.run(main())1150asyncio.run(main())

1130```1151```

1131 1152 

1132Para carregar instruções de projeto CLAUDE.md, inclua `"project"` em `setting_sources`. Veja [Modify system prompts](/docs/pt/agent-sdk/modifying-system-prompts#claude-md-files-for-project-level-instructions) para como o carregamento de CLAUDE.md interage com as opções de prompt do sistema.1153Para carregar instruções de projeto CLAUDE.md, inclua `"project"` em `setting_sources`. Veja [Modificar prompts do sistema](/docs/pt/agent-sdk/modifying-system-prompts#claude-md-files-for-project-level-instructions) para como o carregamento de CLAUDE.md interage com as opções de prompt do sistema.

1133 1154 

1134<h4 id="settings-precedence">1155<h4 id="settings-precedence">

1135 Precedência de configurações1156 Precedência de configurações


1139 1160 

11401. Configurações locais (`.claude/settings.local.json`)11611. Configurações locais (`.claude/settings.local.json`)

11412. Configurações de projeto (`.claude/settings.json`)11622. Configurações de projeto (`.claude/settings.json`)

11423. Configurações de usuário (`~/.claude/settings.json`)11633. Configurações do usuário (`~/.claude/settings.json`)

1143 1164 

1144Opções programáticas como `agents` e `allowed_tools` substituem configurações do sistema de arquivos de usuário, projeto e local. Configurações de política gerenciada têm precedência sobre opções programáticas.1165Opções programáticas como `agents`, `allowed_tools`, e `settings` substituem configurações do sistema de arquivos de usuário, projeto e local. Configurações de política gerenciada têm precedência sobre opções programáticas.

1145 1166 

1146<h3 id="agentdefinition">1167<h3 id="agentdefinition">

1147 `AgentDefinition`1168 `AgentDefinition`


1168```1189```

1169 1190 

1170| Campo | Obrigatório | Descrição |1191| Campo | Obrigatório | Descrição |

1171| :---------------- | :---------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1192| :---------------- | :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1172| `description` | Sim | Descrição em linguagem natural de quando usar este agente |1193| `description` | Sim | Descrição em linguagem natural de quando usar este agente |

1173| `prompt` | Sim | O prompt do sistema do agente |1194| `prompt` | Sim | O prompt do sistema do agente |

1174| `tools` | Não | Array de nomes de ferramentas permitidas. Se omitido, herda cada [ferramenta disponível para subagentes](/docs/pt/sub-agents#available-tools) |1195| `tools` | Não | Array de nomes de ferramentas permitidas. Se omitido, herda cada [ferramenta disponível para subagentes](/docs/pt/sub-agents#available-tools) |

1175| `disallowedTools` | Não | Array de nomes de ferramentas a remover do conjunto de ferramentas do agente. Padrões de nível de servidor MCP também são aceitos: `mcp__server` ou `mcp__server__*` remove cada ferramenta desse servidor, e `mcp__*` remove cada ferramenta MCP de qualquer servidor |1196| `disallowedTools` | Não | Array de nomes de ferramentas para remover do conjunto de ferramentas do agente. Padrões de nível de servidor MCP também são aceitos: `mcp__server` ou `mcp__server__*` remove cada ferramenta desse servidor, e `mcp__*` remove cada ferramenta MCP de qualquer servidor |

1176| `model` | Não | Substituição de modelo para este agente. Aceita um alias como `"sonnet"`, `"opus"`, `"haiku"`, ou `"inherit"`, ou um ID de modelo completo. Quando você o omite, Claude Code escolhe o modelo na [ordem de modelo de subagente](/docs/pt/sub-agents#choose-a-model) |1197| `model` | Não | Substituição de modelo para este agente. Aceita um alias como `"sonnet"`, `"opus"`, `"haiku"`, ou `"inherit"`, ou um ID de modelo completo. Quando você o omite, Claude Code escolhe o modelo na [ordem de modelo de subagente](/docs/pt/sub-agents#choose-a-model) |

1177| `skills` | Não | Lista de nomes de skills a pré-carregar no contexto do agente na inicialização. Skills não listados permanecem invocáveis através da ferramenta Skill |1198| `skills` | Não | Lista de nomes de skills para pré-carregar no contexto do agente na inicialização. Skills não listadas permanecem invocáveis através da ferramenta Skill |

1178| `memory` | Não | Fonte de memória para este agente: `"user"`, `"project"`, ou `"local"` |1199| `memory` | Não | Fonte de memória para este agente: `"user"`, `"project"`, ou `"local"` |

1179| `mcpServers` | Não | Servidores MCP disponíveis para este agente. Cada entrada é um nome de servidor ou um dict `{name: config}` inline |1200| `mcpServers` | Não | Servidores MCP disponíveis para este agente. Cada entrada é um nome de servidor ou um dict `{name: config}` inline |

1180| `initialPrompt` | Não | Auto-enviado como o primeiro turno de usuário quando este agente é executado como o agente de thread principal |1201| `initialPrompt` | Não | Auto-enviado como o primeiro turno do usuário quando este agente é executado como o agente de thread principal |

1181| `maxTurns` | Não | Número máximo de turnos agênticos antes do agente parar |1202| `maxTurns` | Não | Número máximo de turnos agênticos antes do agente parar |

1182| `background` | Não | Execute este agente como uma tarefa de fundo não bloqueante quando invocado |1203| `background` | Não | Executar este agente como uma tarefa em background não-bloqueante quando invocado |

1183| `effort` | Não | Nível de esforço de raciocínio para este agente. Aceita um nível nomeado ou um inteiro. Veja [`EffortLevel`](#effortlevel) |1204| `effort` | Não | Nível de esforço de raciocínio para este agente. Aceita um nível nomeado ou um inteiro. Veja [`EffortLevel`](#effortlevel) |

1184| `permissionMode` | Não | Modo de permissão para execução de ferramenta dentro deste agente. As [regras de herança de subagente](/docs/pt/agent-sdk/permissions#available-modes) decidem quando se aplica. Veja [`PermissionMode`](#permissionmode) |1205| `permissionMode` | Não | Modo de permissão para execução de ferramentas dentro deste agente. As [regras de herança de subagente](/docs/pt/agent-sdk/permissions#available-modes) decidem quando se aplica. Veja [`PermissionMode`](#permissionmode) |

1185 1206 

1186<Note>1207<Note>

1187 Os nomes de campo `AgentDefinition` usam camelCase, como `disallowedTools`, `permissionMode` e `maxTurns`. Esses nomes mapeiam diretamente para o formato de fio compartilhado com o SDK TypeScript. Isso difere de `ClaudeAgentOptions`, que usa snake\_case Python para campos de nível superior equivalentes como `disallowed_tools` e `permission_mode`. Como `AgentDefinition` é uma dataclass, passar uma palavra-chave snake\_case levanta um `TypeError` no tempo de construção.1208 Os nomes de campo `AgentDefinition` usam camelCase, como `disallowedTools`, `permissionMode`, e `maxTurns`. Esses nomes mapeiam diretamente para o formato de wire compartilhado com o SDK TypeScript. Isto difere de `ClaudeAgentOptions`, que usa snake\_case Python para campos de nível superior equivalentes como `disallowed_tools` e `permission_mode`. Como `AgentDefinition` é um dataclass, passar uma palavra-chave snake\_case levanta um `TypeError` no tempo de construção.

1188</Note>1209</Note>

1189 1210 

1190<h3 id="permissionmode">1211<h3 id="permissionmode">

1191 `PermissionMode`1212 `PermissionMode`

1192</h3>1213</h3>

1193 1214 

1194Modos de permissão para controlar a execução de ferramentas.1215Modos de permissão para controlar execução de ferramentas.

1195 1216 

1196```python theme={null}1217```python theme={null}

1197PermissionMode = Literal[1218PermissionMode = Literal[

1198 "default", # Standard permission behavior1219 "default", # Comportamento de permissão padrão

1199 "acceptEdits", # Auto-accept file edits1220 "acceptEdits", # Auto-aceitar edições de arquivo

1200 "plan", # Planning mode - explore without editing1221 "plan", # Modo de planejamento - explorar sem editar

1201 "dontAsk", # Deny anything not pre-approved instead of prompting1222 "dontAsk", # Negar qualquer coisa não pré-aprovada em vez de solicitar

1202 "bypassPermissions", # Bypass permission checks; explicit ask rules still prompt (use with caution)1223 "bypassPermissions", # Contornar verificações de permissão; regras de ask explícitas ainda solicitam (use com cuidado)

1203 "auto", # Model classifier approves or denies permission prompts1224 "auto", # Classificador de modelo aprova ou nega prompts de permissão

1204]1225]

1205```1226```

1206 1227 


1208 `EffortLevel`1229 `EffortLevel`

1209</h3>1230</h3>

1210 1231 

1211Níveis de esforço para guiar a profundidade de pensamento.1232Níveis de esforço para guiar profundidade de pensamento.

1212 1233 

1213```python theme={null}1234```python theme={null}

1214EffortLevel = Literal[1235EffortLevel = Literal[

1215 "low", # Minimal thinking, fastest responses1236 "low", # Pensamento mínimo, respostas mais rápidas

1216 "medium", # Moderate thinking1237 "medium", # Pensamento moderado

1217 "high", # Deep reasoning1238 "high", # Raciocínio profundo

1218 "xhigh", # Extended reasoning; falls back to "high" on models that don't support it1239 "xhigh", # Raciocínio estendido; volta para "high" em modelos que não suportam

1219 "max", # Maximum effort1240 "max", # Esforço máximo

1220]1241]

1221```1242```

1222 1243 


1240 1261 

1241Retorna um `PermissionResult` (ou `PermissionResultAllow` ou `PermissionResultDeny`).1262Retorna um `PermissionResult` (ou `PermissionResultAllow` ou `PermissionResultDeny`).

1242 1263 

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

1244 1265 

1245Uma regra de permissão não pré-aprova as [ações que nenhum modo auto-aprova](/docs/pt/permission-modes#actions-no-mode-auto-approves); veja [How permissions are evaluated](/docs/pt/agent-sdk/permissions#how-permissions-are-evaluated) para qual delas alcança o callback e o que acontece em modo `dontAsk` e `auto`.1266Uma regra de permissão não pré-aprova as [ações que nenhum modo aprova automaticamente](/docs/pt/permission-modes#actions-no-mode-auto-approves); veja [Como permissões são avaliadas](/docs/pt/agent-sdk/permissions#how-permissions-are-evaluated) para qual delas chega ao callback e o que acontece em modo `dontAsk` e `auto`.

1246 1267 

1247<h3 id="toolpermissioncontext">1268<h3 id="toolpermissioncontext">

1248 `ToolPermissionContext`1269 `ToolPermissionContext`


1253```python theme={null}1274```python theme={null}

1254@dataclass1275@dataclass

1255class ToolPermissionContext:1276class ToolPermissionContext:

1256 signal: Any | None = None # Future: abort signal support1277 signal: Any | None = None # Futuro: suporte a sinal de aborto

1257 suggestions: list[PermissionUpdate] = field(default_factory=list)1278 suggestions: list[PermissionUpdate] = field(default_factory=list)

1258 tool_use_id: str | None = None1279 tool_use_id: str | None = None

1259 agent_id: str | None = None1280 agent_id: str | None = None


1265```1286```

1266 1287 

1267| Campo | Tipo | Descrição |1288| Campo | Tipo | Descrição |

1268| :---------------- | :----------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1289| :---------------- | :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1269| `signal` | `Any \| None` | Reservado para suporte futuro de sinal de aborto |1290| `signal` | `Any \| None` | Reservado para suporte futuro a sinal de aborto |

1270| `suggestions` | `list[PermissionUpdate]` | Sugestões de atualização de permissão do CLI. Prompts Bash incluem uma sugestão com o destino `localSettings`, então retorná-la em `updated_permissions` escreve a regra em `.claude/settings.local.json` e persiste entre sessões. |1291| `suggestions` | `list[PermissionUpdate]` | Sugestões de atualização de permissão da CLI. Prompts Bash incluem uma sugestão com o destino `localSettings`, então retorná-la em `updated_permissions` escreve a regra para `.claude/settings.local.json` e persiste entre sessões. |

1271| `tool_use_id` | `str \| None` | Identificador da chamada de ferramenta específica para a qual este prompt é. Sempre preenchido quando entregue a `can_use_tool` |1292| `tool_use_id` | `str \| None` | Identificador da chamada de ferramenta específica para a qual este prompt é. Sempre preenchido quando entregue a `can_use_tool` |

1272| `agent_id` | `str \| None` | ID do sub-agente quando a chamada origina de um subagente; `None` para o agente principal |1293| `agent_id` | `str \| None` | ID do sub-agente quando a chamada origina de um subagente; `None` para o agente principal |

1273| `blocked_path` | `str \| None` | Caminho de arquivo que acionou a solicitação de permissão, quando aplicável. Por exemplo, quando um comando Bash tenta acessar um caminho fora dos diretórios permitidos |1294| `blocked_path` | `str \| None` | Caminho de arquivo que disparou a solicitação de permissão, quando aplicável. Por exemplo, quando um comando Bash tenta acessar um caminho fora de diretórios permitidos |

1274| `decision_reason` | `str \| None` | Razão pela qual esta solicitação de permissão foi acionada. Encaminhada de um hook PreToolUse `permissionDecisionReason` quando o hook retornou `"ask"` |1295| `decision_reason` | `str \| None` | Razão pela qual esta solicitação de permissão foi disparada. Encaminhada do `permissionDecisionReason` de um hook PreToolUse quando o hook retornou `"ask"` |

1275| `title` | `str \| None` | Sentença completa do prompt de permissão, como `Claude wants to read foo.txt`. Use como o texto do prompt principal quando presente |1296| `title` | `str \| None` | Sentença de prompt de permissão completa, como `Claude wants to read foo.txt`. Use como o texto de prompt principal quando presente |

1276| `display_name` | `str \| None` | Frase de substantivo curta para a ação da ferramenta, como `Read file`, adequada para rótulos de botão |1297| `display_name` | `str \| None` | Frase de substantivo curta para a ação da ferramenta, como `Read file`, adequada para rótulos de botão |

1277| `description` | `str \| None` | Subtítulo legível por humanos para a UI de permissão |1298| `description` | `str \| None` | Subtítulo legível por humanos para a UI de permissão |

1278 1299 


1301```1322```

1302 1323 

1303| Campo | Tipo | Padrão | Descrição |1324| Campo | Tipo | Padrão | Descrição |

1304| :-------------------- | :------------------------------- | :-------- | :------------------------------------------- |1325| :-------------------- | :------------------------------- | :-------- | :---------------------------------------------- |

1305| `behavior` | `Literal["allow"]` | `"allow"` | Deve ser "allow" |1326| `behavior` | `Literal["allow"]` | `"allow"` | Deve ser "allow" |

1306| `updated_input` | `dict[str, Any] \| None` | `None` | Entrada modificada a usar em vez da original |1327| `updated_input` | `dict[str, Any] \| None` | `None` | Entrada modificada para usar em vez da original |

1307| `updated_permissions` | `list[PermissionUpdate] \| None` | `None` | Atualizações de permissão a aplicar |1328| `updated_permissions` | `list[PermissionUpdate] \| None` | `None` | Atualizações de permissão para aplicar |

1308 1329 

1309<h3 id="permissionresultdeny">1330<h3 id="permissionresultdeny">

1310 `PermissionResultDeny`1331 `PermissionResultDeny`


1365 `PermissionRuleValue`1386 `PermissionRuleValue`

1366</h3>1387</h3>

1367 1388 

1368Uma regra a adicionar, substituir ou remover em uma atualização de permissão.1389Uma regra para adicionar, substituir ou remover em uma atualização de permissão.

1369 1390 

1370```python theme={null}1391```python theme={null}

1371@dataclass1392@dataclass


1378 `ToolsPreset`1399 `ToolsPreset`

1379</h3>1400</h3>

1380 1401 

1381Configuração de ferramentas preset para usar o conjunto de ferramentas padrão do Claude Code.1402Configuração de ferramentas predefinidas para usar o conjunto de ferramentas padrão do Claude Code.

1382 1403 

1383```python theme={null}1404```python theme={null}

1384class ToolsPreset(TypedDict):1405class ToolsPreset(TypedDict):


1390 `ThinkingConfig`1411 `ThinkingConfig`

1391</h3>1412</h3>

1392 1413 

1393Controla o comportamento de pensamento estendido. Uma união de três configurações:1414Controla comportamento de pensamento estendido. Uma união de três configurações:

1394 1415 

1395```python theme={null}1416```python theme={null}

1396ThinkingDisplay = Literal["summarized", "omitted"]1417ThinkingDisplay = Literal["summarized", "omitted"]


1415```1436```

1416 1437 

1417| Variante | Campos | Descrição |1438| Variante | Campos | Descrição |

1418| :--------- | :--------------------------------- | :---------------------------------------------------- |1439| :--------- | :--------------------------------- | :----------------------------------------------------- |

1419| `adaptive` | `type`, `display` | Claude decide adaptativamente quando pensar |1440| `adaptive` | `type`, `display` | Claude decide adaptativamente quando pensar |

1420| `enabled` | `type`, `budget_tokens`, `display` | Ativa pensamento com um orçamento de token específico |1441| `enabled` | `type`, `budget_tokens`, `display` | Ativar pensamento com um orçamento de token específico |

1421| `disabled` | `type` | Desativa pensamento |1442| `disabled` | `type` | Desabilitar pensamento |

1422 1443 

1423O campo opcional `display` controla se o texto de pensamento é retornado `"summarized"` ou `"omitted"`. No Claude Opus 4.7 e posterior, o padrão da API é `"omitted"`, então defina `"summarized"` para receber conteúdo de pensamento em saídas [`ThinkingBlock`](#thinkingblock). Claude Code não envia `display` para Amazon Bedrock ou Google Cloud's Agent Platform, então nesses provedores Opus 4.7 e posterior retornam saídas `ThinkingBlock` vazias mesmo quando você define `display` para `"summarized"`.1444O campo `display` opcional controla se o texto de pensamento é retornado `"summarized"` ou `"omitted"`. No Claude Opus 4.7 e posterior, o padrão da API é `"omitted"`, então defina `"summarized"` para receber conteúdo de pensamento em saídas [`ThinkingBlock`](#thinkingblock). Claude Code não envia `display` para Amazon Bedrock ou Google Cloud's Agent Platform, então nesses provedores Opus 4.7 e posterior retornam saídas `ThinkingBlock` vazias mesmo quando você define `display` para `"summarized"`.

1424 1445 

1425Como estas são classes `TypedDict`, são dicts simples em tempo de execução. Construa-as como literais de dict ou chame a classe como um construtor; ambos produzem um `dict`. Acesse campos com `config["budget_tokens"]`, não `config.budget_tokens`:1446Como estas são classes `TypedDict`, elas são dicts simples em tempo de execução. Construa-as como literais de dict ou chame a classe como um construtor; ambos produzem um `dict`. Acesse campos com `config["budget_tokens"]`, não `config.budget_tokens`:

1426 1447 

1427```python theme={null}1448```python theme={null}

1428from claude_agent_sdk import ClaudeAgentOptions, ThinkingConfigEnabled1449from claude_agent_sdk import ClaudeAgentOptions, ThinkingConfigEnabled

1429 1450 

1430# Option 1: dict literal (recommended, no import needed)1451# Opção 1: literal de dict (recomendado, sem importação necessária)

1431options = ClaudeAgentOptions(thinking={"type": "enabled", "budget_tokens": 20000})1452options = ClaudeAgentOptions(thinking={"type": "enabled", "budget_tokens": 20000})

1432 1453 

1433# Option 2: constructor-style (returns a plain dict)1454# Opção 2: estilo construtor (retorna um dict simples)

1434config = ThinkingConfigEnabled(type="enabled", budget_tokens=20000)1455config = ThinkingConfigEnabled(type="enabled", budget_tokens=20000)

1435print(config["budget_tokens"]) # 200001456print(config["budget_tokens"]) # 20000

1436# config.budget_tokens would raise AttributeError1457# config.budget_tokens levantaria AttributeError

1437```1458```

1438 1459 

1439<h3 id="taskbudget">1460<h3 id="taskbudget">


1451| :------ | :---- | :------------------------------------- |1472| :------ | :---- | :------------------------------------- |

1452| `total` | `int` | Orçamento de token total para a tarefa |1473| `total` | `int` | Orçamento de token total para a tarefa |

1453 1474 

1454Como este é um `TypedDict`, passe-o como um dict simples, como `ClaudeAgentOptions(task_budget={"total": 50000})`.1475Como isto é um `TypedDict`, passe-o como um dict simples, como `ClaudeAgentOptions(task_budget={"total": 50000})`.

1455 1476 

1456<h3 id="sdkbeta">1477<h3 id="sdkbeta">

1457 `SdkBeta`1478 `SdkBeta`


1466Use com o campo `betas` em `ClaudeAgentOptions` para ativar recursos beta.1487Use com o campo `betas` em `ClaudeAgentOptions` para ativar recursos beta.

1467 1488 

1468<Warning>1489<Warning>

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

1470</Warning>1491</Warning>

1471 1492 

1472<h3 id="mcpsdkserverconfig">1493<h3 id="mcpsdkserverconfig">


1479class McpSdkServerConfig(TypedDict):1500class McpSdkServerConfig(TypedDict):

1480 type: Literal["sdk"]1501 type: Literal["sdk"]

1481 name: str1502 name: str

1482 instance: Any # MCP Server instance1503 instance: Any # Instância do servidor MCP

1483```1504```

1484 1505 

1485<h3 id="mcpserverconfig">1506<h3 id="mcpserverconfig">


1500 1521 

1501```python theme={null}1522```python theme={null}

1502class McpStdioServerConfig(TypedDict):1523class McpStdioServerConfig(TypedDict):

1503 type: NotRequired[Literal["stdio"]] # Optional for backwards compatibility1524 type: NotRequired[Literal["stdio"]] # Opcional para compatibilidade com versões anteriores

1504 command: str1525 command: str

1505 args: NotRequired[list[str]]1526 args: NotRequired[list[str]]

1506 env: NotRequired[dict[str, str]]1527 env: NotRequired[dict[str, str]]


1532 `McpServerStatusConfig`1553 `McpServerStatusConfig`

1533</h3>1554</h3>

1534 1555 

1535A configuração de um servidor MCP conforme relatado por [`get_mcp_status()`](#methods). Esta é a união de todas as variantes de transporte [`McpServerConfig`](#mcpserverconfig) mais uma variante de saída apenas `claudeai-proxy` para servidores proxied através de claude.ai.1556A configuração de um servidor MCP conforme relatado por [`get_mcp_status()`](#methods). Esta é a união de todas as variantes de transporte [`McpServerConfig`](#mcpserverconfig) mais uma variante de saída única `claudeai-proxy` para servidores proxied através de claude.ai.

1536 1557 

1537```python theme={null}1558```python theme={null}

1538McpServerStatusConfig = (1559McpServerStatusConfig = (


2782```python theme={null}2803```python theme={null}

2783{2804{

2784 "status": "remote_launched",2805 "status": "remote_launched",

2785 "taskId": str, # ID da tarefa remota2806 "taskId": str, # ID da tarefa despachada

2786 "sessionUrl": str, # Link para a sessão em nuvem remota2807 "sessionUrl": str, # Link para a sessão em nuvem

2787 "description": str, # A descrição da tarefa2808 "description": str, # A descrição da tarefa

2788 "prompt": str, # O prompt que o agente executa2809 "prompt": str, # O prompt que o agente executa

2789 "outputFile": str, # Caminho do arquivo onde a saída do agente é escrita2810 "outputFile": str, # Caminho do arquivo onde a saída do agente é escrita

2790}2811}

2791```2812```

2792 2813 

2793Retorna o resultado do subagente. A saída é discriminada no campo `status`: `"completed"` para tarefas concluídas, `"async_launched"` para tarefas em segundo plano, e `"remote_launched"` para tarefas que Claude Code despachou para uma sessão em nuvem remota, onde `sessionUrl` vincula a essa sessão e `taskId` a identifica. Se Claude Code [manteve a worktree isolada do subagente](/docs/pt/worktrees#isolate-subagents-with-worktrees), `worktreePath` na variante `completed` é onde encontrá-la, e `worktreeBranch` é seu branch quando Claude Code criou a worktree com git.2814Retorna o resultado do subagente. A saída é discriminada no campo `status`: `"completed"` para tarefas concluídas, `"async_launched"` para tarefas em segundo plano, e `"remote_launched"` para tarefas que Claude Code despachou para uma sessão em nuvem, onde `sessionUrl` vincula a essa sessão e `taskId` a identifica. Se Claude Code [manteve a worktree isolada do subagente](/docs/pt/worktrees#isolate-subagents-with-worktrees), `worktreePath` na variante `completed` é onde encontrá-la, e `worktreeBranch` é seu branch quando Claude Code criou a worktree com git.

2794 2815 

2795Na variante `completed`, `resolvedModel` nomeia o modelo em que o subagente iniciou, que pode diferir do `model` de entrada solicitado quando [`availableModels`](/docs/pt/model-config#restrict-model-selection) ou outra substituição se aplica. Este campo requer Claude Code v2.1.174 ou posterior. Na variante `async_launched`, `resolvedModel` nomeia o modelo em uso quando o agente se moveu para o segundo plano, então uma troca que aconteceu antes do backgrounding é refletida lá. O campo `modelsUsed` em ambas as variantes lista os modelos usados em ordem, com repetições consecutivas colapsadas; é definido apenas quando o modelo foi trocado durante a execução. `modelsUsed` e o comportamento de `resolvedModel` no tempo de backgrounding requerem Claude Code v2.1.212 ou posterior.2816Na variante `completed`, `resolvedModel` nomeia o modelo em que o subagente iniciou, que pode diferir do `model` de entrada solicitado quando [`availableModels`](/docs/pt/model-config#restrict-model-selection) ou outra substituição se aplica. Este campo requer Claude Code v2.1.174 ou posterior. Na variante `async_launched`, `resolvedModel` nomeia o modelo em uso quando o agente se moveu para o segundo plano, então uma troca que aconteceu antes do backgrounding é refletida lá. O campo `modelsUsed` em ambas as variantes lista os modelos usados em ordem, com repetições consecutivas colapsadas; é definido apenas quando o modelo foi trocado durante a execução. `modelsUsed` e o comportamento de `resolvedModel` no tempo de backgrounding requerem Claude Code v2.1.212 ou posterior.

2796 2817 

Details

62 </Tab>62 </Tab>

63 63 

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

65 [uv](https://docs.astral.sh/uv/) é um gerenciador de pacotes Python rápido que lida com ambientes virtuais automaticamente:65 [Instale uv](https://docs.astral.sh/uv/), um gerenciador de pacotes Python rápido que lida com ambientes virtuais automaticamente. Depois inicialize um projeto e adicione o SDK:

66 66 

67 ```bash theme={null}67 ```bash theme={null}

68 uv init68 uv init


356 356 

357Com `Bash` ativado, tente: `"Write unit tests for utils.py, run them, and fix any failures"`357Com `Bash` ativado, tente: `"Write unit tests for utils.py, run them, and fix any failures"`

358 358 

359Cada um desses trechos define campos no mesmo objeto de opções. Para mais informações, veja [Configure seu agente](/docs/pt/agent-sdk/configuration).

360 

359<h2 id="key-concepts">361<h2 id="key-concepts">

360 Conceitos-chave362 Conceitos-chave

361</h2>363</h2>


376 378 

377Agora que você criou seu primeiro agente, aprenda como estender suas capacidades e adaptá-lo ao seu caso de uso:379Agora que você criou seu primeiro agente, aprenda como estender suas capacidades e adaptá-lo ao seu caso de uso:

378 380 

381* **[Configure seu agente](/docs/pt/agent-sdk/configuration)**: componha o objeto de opções e encontre a página que cobre cada configuração

379* **[Permissões](/docs/pt/agent-sdk/permissions)**: controle o que seu agente pode fazer e quando precisa de aprovação382* **[Permissões](/docs/pt/agent-sdk/permissions)**: controle o que seu agente pode fazer e quando precisa de aprovação

380* **[Hooks](/docs/pt/agent-sdk/hooks)**: execute código personalizado antes ou depois de chamadas de ferramenta383* **[Hooks](/docs/pt/agent-sdk/hooks)**: execute código personalizado antes ou depois de chamadas de ferramenta

381* **[Sessões](/docs/pt/agent-sdk/sessions)**: construa agentes multi-turno que mantêm contexto384* **[Sessões](/docs/pt/agent-sdk/sessions)**: construa agentes multi-turno que mantêm contexto

Details

4 4 

5# Persistir sessões em armazenamento externo5# Persistir sessões em armazenamento externo

6 6 

7> Espelhe transcrições de sessão para S3, Redis ou seu próprio backend para que qualquer host possa retomá-las.7> Espelhe transcrições de sessão do Agent SDK para seu próprio armazenamento de objetos, armazenamento de chave-valor ou banco de dados para que outros hosts possam retomar suas sessões.

8 8 

9Por padrão, o SDK escreve transcrições de sessão em arquivos JSONL em `~/.claude/projects/` no sistema de arquivos local. Um adaptador `SessionStore` permite que você espelhe essas transcrições para seu próprio backend, como S3, Redis ou um banco de dados, para que uma sessão criada em um host possa ser retomada em outro host executando a partir de um diretório de trabalho correspondente.9Por padrão, o SDK escreve transcrições de sessão em arquivos JSONL em `~/.claude/projects/` no sistema de arquivos local. Um adaptador `SessionStore` permite que você espelhe essas transcrições para seu próprio backend, como um armazenamento de objetos, um armazenamento de chave-valor ou um banco de dados, para que uma sessão criada em um host possa ser retomada em outro host executando a partir de um diretório de trabalho correspondente.

10 10 

11Razões comuns para usar um session store:11Razões comuns para usar um session store:

12 12 

13* **Implantações multi-host.** Funções serverless, workers com autoscaling e runners de CI não compartilham um sistema de arquivos. Um store compartilhado permite que réplicas retomem as sessões umas das outras.13* **Implantações multi-host.** Funções serverless, workers com autoscaling e runners de CI não compartilham um sistema de arquivos. Um store compartilhado permite que réplicas retomem as sessões umas das outras.

14* **Durabilidade.** Contêineres locais são efêmeros. Um store apoiado por S3 ou um banco de dados sobrevive a reinicializações e redeploys.14* **Durabilidade.** Contêineres locais são efêmeros. Um store externo sobrevive a reinicializações e redeploys.

15* **Conformidade e auditoria.** Mantenha transcrições em armazenamento que você já governa, com suas próprias regras de retenção, criptografia e controles de acesso.15* **Conformidade e auditoria.** Mantenha transcrições em armazenamento que você já governa, com suas próprias regras de retenção, criptografia e controles de acesso.

16 16 

17<h2 id="the-sessionstore-interface">17<h2 id="the-sessionstore-interface">


197 197 

198Implemente `append` e `load` contra seu backend. Adicione `listSessions`, `listSessionSummaries`, `delete` e `listSubkeys` se você quiser que `listSessions()`, leituras de metadados em uma única chamada, `deleteSession()` e retomada de subagentes funcionem contra o store.198Implemente `append` e `load` contra seu backend. Adicione `listSessions`, `listSessionSummaries`, `delete` e `listSubkeys` se você quiser que `listSessions()`, leituras de metadados em uma única chamada, `deleteSession()` e retomada de subagentes funcionem contra o store.

199 199 

200As entradas passadas para `append` são digitadas como `SessionStoreEntry` (um objeto `{ type: string; ... }`). Trate-as como valores JSON-safe opacos: persista-as em ordem e retorne-as de `load` na mesma ordem. `load` deve retornar entradas que sejam deep-equal ao que foi anexado; serialização byte-equal não é necessária, então backends como Postgres `jsonb` que reordenam chaves de objeto são adequados.200As entradas passadas para `append` são digitadas como `SessionStoreEntry` (um objeto `{ type: string; ... }`). Trate-as como valores JSON-safe opacos: persista-as em ordem e retorne-as de `load` na mesma ordem. `load` deve retornar entradas que sejam deep-equal ao que foi anexado; serialização byte-equal não é necessária, então um backend que reordena chaves de objeto, como um tipo de coluna JSON binária, é adequado.

201 201 

202<h2 id="reference-implementations">202<h2 id="reference-implementations">

203 Implementações de referência203 Implementações de referência

204</h2>204</h2>

205 205 

206O repositório do SDK TypeScript inclui adaptadores de referência executáveis para S3, Redis e Postgres em [`examples/session-stores/`](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores). Eles não são publicados no npm; copie o arquivo `src/` que você precisa para seu projeto e instale o cliente backend correspondente.206Ambos os repositórios do SDK incluem adaptadores de referência executáveis em [`examples/session-stores/`](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores) em TypeScript e [`examples/session_stores/`](https://github.com/anthropics/claude-agent-sdk-python/tree/main/examples/session_stores) em Python. Há um adaptador por tipo de armazenamento, e cada um mostra como `append` e `load` mapeiam para esse tipo de backend. Eles não são publicados como pacotes; copie o adaptador para o tipo mais próximo do seu backend para seu projeto, instale o cliente do seu backend e adapte-o.

207 207 

208| Adaptador | Cliente backend | Modelo de armazenamento |208| Tipo de armazenamento | Modelo de armazenamento | Adaptador de exemplo |

209| :----------------------------------------------------------------------------------------------------------------------------- | :------------------- | :------------------------------------------------------------------------------------- |209| :------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

210| [`S3SessionStore`](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores/s3) | `@aws-sdk/client-s3` | Um arquivo de parte JSONL por `append()`; `load()` lista, ordena e concatena. |210| Armazenamento de objetos | Um arquivo de parte por `append()`; `load()` lista as partes, as ordena e as concatena. | S3 ([TypeScript](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores/s3), [Python](https://github.com/anthropics/claude-agent-sdk-python/blob/main/examples/session_stores/s3_session_store.py)) |

211| [`RedisSessionStore`](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores/redis) | `ioredis` | Lista `RPUSH`/`LRANGE` por transcrição, mais um índice de conjunto ordenado de sessão. |211| Armazenamento de chave-valor | Uma lista por transcrição que `append()` envia e `load()` lê em intervalo, mais um índice ordenado de sessões. | Redis ([TypeScript](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores/redis), [Python](https://github.com/anthropics/claude-agent-sdk-python/blob/main/examples/session_stores/redis_session_store.py)) |

212| [`PostgresSessionStore`](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores/postgres) | `pg` | Uma linha por entrada em uma tabela `jsonb`, ordenada por `BIGSERIAL`. |212| Banco de dados relacional ou armazenamento de documentos | Uma linha ou documento por entrada, armazenado como JSON e ordenado por uma chave atribuída na inserção. | Postgres ([TypeScript](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores/postgres), [Python](https://github.com/anthropics/claude-agent-sdk-python/blob/main/examples/session_stores/postgres_session_store.py)) |

213 213 

214Cada adaptador recebe uma instância de cliente pré-configurada, para que você controle credenciais, TLS, região e pooling. Por exemplo, com S3:214Cada adaptador recebe uma instância de cliente pré-configurada, para que você controle credenciais, TLS, região e pooling. O exemplo a seguir conecta o adaptador de armazenamento de objetos em `query()` e depois retoma a partir dele em outro host:

215 215 

216```typescript TypeScript theme={null}216```typescript TypeScript theme={null}

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


342 Retenção342 Retenção

343</h3>343</h3>

344 344 

345O SDK nunca deleta de seu store por conta própria. Retenção é responsabilidade do adaptador: implemente TTLs, políticas de ciclo de vida S3 ou limpeza agendada de acordo com seus requisitos de conformidade.345O SDK nunca deleta de seu store por conta própria. Retenção é responsabilidade do adaptador: use o mecanismo de expiração ou ciclo de vida do seu backend, ou execute limpeza agendada, de acordo com seus requisitos de conformidade.

346 346 

347Transcrições locais em `CLAUDE_CONFIG_DIR` são limpas independentemente pela configuração `cleanupPeriodDays`, seguindo as [regras de limpeza de retenção](/docs/pt/claude-directory#cleaned-up-automatically). Uma execução [retomada do store](#resume-from-the-store) não deixa transcrição local, então para essas execuções a retenção do seu store é a única retenção que existe.347Transcrições locais em `CLAUDE_CONFIG_DIR` são limpas independentemente pela configuração `cleanupPeriodDays`, seguindo as [regras de limpeza de retenção](/docs/pt/claude-directory#cleaned-up-automatically). Uma execução [retomada do store](#resume-from-the-store) não deixa transcrição local, então para essas execuções a retenção do seu store é a única retenção que existe.

348 348 


373* [Trabalhar com sessões](/docs/pt/agent-sdk/sessions): Continuar, retomar e fazer fork sem um store personalizado373* [Trabalhar com sessões](/docs/pt/agent-sdk/sessions): Continuar, retomar e fazer fork sem um store personalizado

374* [Hospedar o SDK](/docs/pt/agent-sdk/hosting): Padrões de implantação para ambientes multi-host374* [Hospedar o SDK](/docs/pt/agent-sdk/hosting): Padrões de implantação para ambientes multi-host

375* [TypeScript `Options`](/docs/pt/agent-sdk/typescript#options): Referência completa de opções375* [TypeScript `Options`](/docs/pt/agent-sdk/typescript#options): Referência completa de opções

376* [`examples/session-stores/`](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores): Adaptadores de referência executáveis para S3, Redis e Postgres376* [Implementações de referência](#reference-implementations): Adaptadores de exemplo executáveis para um object store, um key-value store e um banco de dados, em ambos os repositórios do SDK

Details

130* **Suas skills**: artefatos de prompt que você cria, cada um um diretório contendo um arquivo `SKILL.md`. O nome de uma skill invocável pelo usuário se une à superfície automaticamente, portanto despachar seu próprio `/security-check` e executar um integrado funcionam da mesma forma130* **Suas skills**: artefatos de prompt que você cria, cada um um diretório contendo um arquivo `SKILL.md`. O nome de uma skill invocável pelo usuário se une à superfície automaticamente, portanto despachar seu próprio `/security-check` e executar um integrado funcionam da mesma forma

131* **Arquivos de comando personalizados**: uma forma de artefato mais antiga com o mesmo comportamento, arquivos Markdown simples em `.claude/commands/` cujos nomes de arquivo se tornam nomes de comando. Skills são seu sucessor recomendado131* **Arquivos de comando personalizados**: uma forma de artefato mais antiga com o mesmo comportamento, arquivos Markdown simples em `.claude/commands/` cujos nomes de arquivo se tornam nomes de comando. Skills são seu sucessor recomendado

132 132 

133Por padrão, tanto você quanto Claude podem invocar qualquer skill. Você pode restringir qualquer caminho através do [frontmatter](/docs/pt/skills#control-who-invokes-a-skill) da skill. Para uma definição dos dois termos, consulte as entradas [Comando](/docs/pt/glossary#command) e [Skill](/docs/pt/glossary#skill) do glossário. Consulte [Comandos em Claude Code](/docs/pt/commands) para cada integrado e [Estenda Claude com skills](/docs/pt/skills) para o guia completo de ambas as formas de artefato.133Por padrão, tanto você quanto Claude podem invocar qualquer skill. Você pode restringir qualquer caminho através do [frontmatter](/docs/pt/skills#control-who-invokes-a-skill) da skill. Para definições de comando e skill, consulte as entradas [Comando](/docs/pt/glossary#command) e [Skill](/docs/pt/glossary#skill) do glossário. Consulte [Comandos em Claude Code](/docs/pt/commands) para cada integrado e [Estenda Claude com skills](/docs/pt/skills) para o guia completo de ambas as formas de artefato.

134 134 

135<h3 id="discover-available-commands">135<h3 id="discover-available-commands">

136 Descubra comandos disponíveis136 Descubra comandos disponíveis


181 181 

182Envie um comando incluindo-o em sua string de prompt, da mesma forma que você envia texto regular. O despacho não depende da opção `skills`. Enviar `/<name>` executa uma skill invocável pelo usuário mesmo quando sua lista `skills` a omite. Comandos que atuam no histórico de conversa, como `/compact`, precisam de mensagens anteriores para trabalhar.182Envie um comando incluindo-o em sua string de prompt, da mesma forma que você envia texto regular. O despacho não depende da opção `skills`. Enviar `/<name>` executa uma skill invocável pelo usuário mesmo quando sua lista `skills` a omite. Comandos que atuam no histórico de conversa, como `/compact`, precisam de mensagens anteriores para trabalhar.

183 183 

184Um `/<name>` que não corresponde nem a um comando na sessão nem a um comando integrado do Claude Code não falha a query. Claude Code envia o prompt para Claude como uma mensagem ordinária, com uma nota de que o comando não foi executado, portanto a query gasta um turno de modelo e retorna a resposta de Claude. Antes da v2.1.274, um `/<name>` que não correspondia a nada retornava `Unknown command: /<name>` como o resultado sem um turno de modelo.

185 

186Um `/<name>` que corresponde a um comando integrado do Claude Code que não está disponível na sessão, como `/theme`, retorna `/theme isn't available in this environment.` como o resultado sem um turno de modelo.

187 

184<Note>188<Note>

185 Um comando pode atingir o limite `maxTurns` / `max_turns` como qualquer outro prompt, terminando a query com um resultado de erro em vez de `success`. Para o contrato de resultado de erro, consulte [Manipule o resultado](/docs/pt/agent-sdk/agent-loop#handle-the-result). Se seu comando pode atingir o limite, envolva o loop em um `try`/`catch` em TypeScript ou `try`/`except` em Python, como mostrado em [Entrada de Mensagem Única](/docs/pt/agent-sdk/streaming-vs-single-mode#single-message-input), ou defina `maxTurns` alto o suficiente para o trabalho ser concluído.189 Um comando pode atingir o limite `maxTurns` / `max_turns` como qualquer outro prompt, terminando a query com um resultado de erro em vez de `success`. Para o contrato de resultado de erro, consulte [Manipule o resultado](/docs/pt/agent-sdk/agent-loop#handle-the-result). Se seu comando pode atingir o limite, envolva o loop em um `try`/`catch` em TypeScript ou `try`/`except` em Python, como mostrado em [Entrada de Mensagem Única](/docs/pt/agent-sdk/streaming-vs-single-mode#single-message-input), ou defina `maxTurns` alto o suficiente para o trabalho ser concluído.

186</Note>190</Note>

Details

153</h3>153</h3>

154 154 

155| Campo | Tipo | Obrigatório | Descrição |155| Campo | Tipo | Obrigatório | Descrição |

156| :---------------- | :---------------------------------------------------------- | :---------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |156| :---------------- | :---------------------------------------------------------- | :---------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

157| `description` | `string` | Sim | Descrição em linguagem natural de quando usar este agente |157| `description` | `string` | Sim | Descrição em linguagem natural de quando usar este agente |

158| `prompt` | `string` | Sim | O prompt do sistema do agente definindo seu papel e comportamento |158| `prompt` | `string` | Sim | O prompt do sistema do agente definindo seu papel e comportamento |

159| `tools` | `string[]` | Não | Array de nomes de ferramentas permitidas. Se omitido, herda todas as [ferramentas disponíveis para subagentes](/docs/pt/sub-agents#available-tools) |159| `tools` | `string[]` | Não | Array de nomes de ferramentas permitidas. Se omitido, herda todas as [ferramentas disponíveis para subagentes](/docs/pt/sub-agents#available-tools) |


165| `initialPrompt` | `string` | Não | Auto-enviado como o primeiro turno do usuário quando este agente é executado como o agente de thread principal. Ignorado quando o agente é invocado como um subagente |165| `initialPrompt` | `string` | Não | Auto-enviado como o primeiro turno do usuário quando este agente é executado como o agente de thread principal. Ignorado quando o agente é invocado como um subagente |

166| `maxTurns` | `number` | Não | Número máximo de turnos agentic antes do agente parar. Quando o agente atinge o limite, Claude Code retorna sua saída marcada como parcial, e você pode [retomar o agente](#resume-subagents) para continuar. A marcação parcial requer Claude Code v2.1.246 ou posterior |166| `maxTurns` | `number` | Não | Número máximo de turnos agentic antes do agente parar. Quando o agente atinge o limite, Claude Code retorna sua saída marcada como parcial, e você pode [retomar o agente](#resume-subagents) para continuar. A marcação parcial requer Claude Code v2.1.246 ou posterior |

167| `background` | `boolean` | Não | Executar este agente como uma tarefa de background não-bloqueante quando invocado |167| `background` | `boolean` | Não | Executar este agente como uma tarefa de background não-bloqueante quando invocado |

168| `omitClaudeMd` | `boolean` | Não | Executar este agente sem os arquivos CLAUDE.md do usuário, projeto e local quando é executado como um subagente; arquivos de política gerenciados ainda são carregados. Ignorado quando o agente é executado como o agente de thread principal. Requer TypeScript Agent SDK v0.3.271 ou posterior. O SDK Python [`AgentDefinition`](/docs/pt/agent-sdk/python#agentdefinition) não possui este campo |

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

169| `permissionMode` | `PermissionMode` | Não | Modo de permissão para execução de ferramentas dentro deste agente. As [regras de herança de subagente](/docs/pt/agent-sdk/permissions#available-modes) decidem quando se aplica |170| `permissionMode` | `PermissionMode` | Não | Modo de permissão para execução de ferramentas dentro deste agente. As [regras de herança de subagente](/docs/pt/agent-sdk/permissions#available-modes) decidem quando se aplica |

170 171 


197A tabela abaixo lista o que o contexto de um subagente não-fork contém e o que deixa de fora.198A tabela abaixo lista o que o contexto de um subagente não-fork contém e o que deixa de fora.

198 199 

199| O subagente recebe | O subagente não recebe |200| O subagente recebe | O subagente não recebe |

200| :----------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------- |201| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------- |

201| Seu próprio prompt de sistema (`AgentDefinition.prompt`) e o prompt da ferramenta Agent | O histórico de conversa ou resultados de ferramentas do pai |202| Seu próprio prompt de sistema (`AgentDefinition.prompt`) e o prompt da ferramenta Agent | O histórico de conversa ou resultados de ferramentas do pai |

202| Project CLAUDE.md (carregado via [`settingSources`](/docs/pt/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources)) | Conteúdo de skill pré-carregado, a menos que listado em `AgentDefinition.skills` |203| Project CLAUDE.md (carregado via [`settingSources`](/docs/pt/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources)), a menos que o agente defina [`omitClaudeMd`](#agentdefinition-configuration) | Conteúdo de skill pré-carregado, a menos que listado em `AgentDefinition.skills` |

203| Definições de ferramentas (herdadas do pai ou o subconjunto em `tools`, [filtrado para execuções em background](/docs/pt/sub-agents#available-tools)) | O prompt de sistema do pai |204| Definições de ferramentas (herdadas do pai ou o subconjunto em `tools`, [filtrado para execuções em background](/docs/pt/sub-agents#available-tools)) | O prompt de sistema do pai |

204 205 

205<Note>206<Note>


644Você pode limitar esse crescimento de três maneiras: quão profundamente os subagentes se aninham, quantos são executados simultaneamente e quanto a consulta inteira gasta. Defina os limites de profundidade e concorrência como variáveis de ambiente através da opção [`env`](/docs/pt/agent-sdk/typescript#options), e o limite de gastos como uma opção de consulta:645Você pode limitar esse crescimento de três maneiras: quão profundamente os subagentes se aninham, quantos são executados simultaneamente e quanto a consulta inteira gasta. Defina os limites de profundidade e concorrência como variáveis de ambiente através da opção [`env`](/docs/pt/agent-sdk/typescript#options), e o limite de gastos como uma opção de consulta:

645 646 

646| Limite | Defina com | Padrão | O que Claude Code faz no limite |647| Limite | Defina com | Padrão | O que Claude Code faz no limite |

647| :----------- | :------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |648| :----------- | :------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

648| Profundidade | [`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`](/docs/pt/env-vars) | `3` camadas de subagentes abaixo do seu agente principal. `1` impede que seus subagentes gerem qualquer um dos seus próprios | Deixa um subagente na camada inferior incapaz de gerar, portanto ele faz seu trabalho delegado por conta própria. Veja [subagentes aninhados](/docs/pt/sub-agents#let-subagents-spawn-their-own-subagents) |649| Profundidade | [`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`](/docs/pt/env-vars) | `3` camadas de subagentes abaixo do seu agente principal. `1` impede que seus subagentes gerem qualquer um dos seus próprios | Deixa um subagente na camada inferior incapaz de gerar, portanto ele faz seu trabalho delegado por conta própria. Veja [subagentes aninhados](/docs/pt/sub-agents#let-subagents-spawn-their-own-subagents) |

649| Concorrência | [`CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS`](/docs/pt/env-vars) | `20` subagentes em execução simultaneamente, contando cada subagente que Claude gera com a ferramenta Agent | Recusa gerar outro subagente, retornando `Concurrent subagent limit reached`, até que a contagem em execução caia abaixo do limite. Sessões com [ultracode](/docs/pt/model-config#adjust-effort-level) ativo nunca são recusadas. Veja o [limite de subagente concorrente](/docs/pt/sub-agents#concurrent-subagent-limit) |650| Concorrência | [`CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS`](/docs/pt/env-vars) | `20` subagentes em execução simultaneamente, contando cada subagente que Claude gera com a ferramenta Agent | Recusa gerar outro subagente, retornando `Concurrent subagent limit reached`, até que a contagem em execução caia abaixo do limite. Sessões com [ultracode](/docs/pt/model-config#adjust-effort-level) ativo nunca são recusadas. Veja o [limite de subagente concorrente](/docs/pt/sub-agents#concurrent-subagent-limit) |

650| Gastos | `maxBudgetUsd` em TypeScript, `max_budget_usd` em Python | Sem limite. Comparado com `total_cost_usd`, portanto as solicitações de subagentes contam | Aplica o limite de três maneiras: recusa gerar mais subagentes, retornando `Budget limit reached`, interrompe subagentes em segundo plano que ainda estão em execução e encerra a consulta com o subtipo de resultado `error_max_budget_usd`. Veja [turnos e orçamento](/docs/pt/agent-sdk/agent-loop#turns-and-budget) |651| Gastos | `maxBudgetUsd` em TypeScript, `max_budget_usd` em Python | Sem limite. Comparado com `total_cost_usd`, portanto as solicitações de subagentes contam | Aplica o limite de três maneiras: recusa gerar mais subagentes, retornando `Budget limit reached`, interrompe subagentes em segundo plano que ainda estão em execução e encerra a consulta com o subtipo de resultado `error_max_budget_usd`. Para como os limites se comportam em uma sessão, veja [turnos e orçamento](/docs/pt/agent-sdk/agent-loop#turns-and-budget) |

651 652 

652Os dois SDKs tratam a opção `env` de forma diferente: o SDK TypeScript substitui o ambiente do subprocesso por ela, portanto espalhe `process.env` nela para manter variáveis como `PATH`, enquanto o SDK Python a mescla no ambiente herdado. Este exemplo desativa o aninhamento, permite no máximo cinco subagentes por vez e interrompe a consulta uma vez que o gasto estimado atinja \$5:653Os dois SDKs tratam a opção `env` de forma diferente: o SDK TypeScript substitui o ambiente do subprocesso por ela, portanto espalhe `process.env` nela para manter variáveis como `PATH`, enquanto o SDK Python a mescla no ambiente herdado. Este exemplo desativa o aninhamento, permite no máximo cinco subagentes por vez e interrompe a consulta uma vez que o gasto estimado atinja \$5:

653 654 

Details

487| `agent` | `string` | `undefined` | Nome do agente para a thread principal. O agente deve ser definido na opção `agents` ou em configurações |487| `agent` | `string` | `undefined` | Nome do agente para a thread principal. O agente deve ser definido na opção `agents` ou em configurações |

488| `agents` | `Record<string, [`AgentDefinition`](#agentdefinition)>` | `undefined` | Defina subagentes programaticamente |488| `agents` | `Record<string, [`AgentDefinition`](#agentdefinition)>` | `undefined` | Defina subagentes programaticamente |

489| `agentProgressSummaries` | `boolean` | `false` | Quando `true`, gera resumos de progresso de uma linha para subagentes e os encaminha em eventos [`task_progress`](#sdktaskprogressmessage) através do campo `summary`. Aplica-se a subagentes em primeiro plano e em segundo plano |489| `agentProgressSummaries` | `boolean` | `false` | Quando `true`, gera resumos de progresso de uma linha para subagentes e os encaminha em eventos [`task_progress`](#sdktaskprogressmessage) através do campo `summary`. Aplica-se a subagentes em primeiro plano e em segundo plano |

490| `allowDangerouslySkipPermissions` | `boolean` | `false` | Ativar bypass de permissões. Obrigatório ao usar `permissionMode: 'bypassPermissions'` |490| `allowDangerouslySkipPermissions` | `boolean` | `false` | Ativar bypass de permissões. Obrigatório ao usar `permissionMode: 'bypassPermissions'`, na inicialização ou depois através de `setPermissionMode()`. Veja [plan mode](/docs/pt/agent-sdk/permissions#plan-mode-plan) para como interage com `permissionMode: 'plan'` |

491| `allowedTools` | `string[]` | `[]` | Ferramentas para auto-aprovar sem solicitar. Isso não restringe Claude apenas a essas ferramentas. Se você nomear uma das [ferramentas de rastreamento de tarefas](/docs/pt/agent-sdk/todo-tracking#model-availability) aqui, Claude Code também opta a sessão. Outras ferramentas não listadas caem em `permissionMode` e `canUseTool`. Use `disallowedTools` para bloquear ferramentas. Veja [Permissões](/docs/pt/agent-sdk/permissions#allow-and-deny-rules) |491| `allowedTools` | `string[]` | `[]` | Ferramentas para auto-aprovar sem solicitar. Isso não restringe Claude apenas a essas ferramentas. Se você nomear uma das [ferramentas de rastreamento de tarefas](/docs/pt/agent-sdk/todo-tracking#model-availability) aqui, Claude Code também opta a sessão. Outras ferramentas não listadas caem em `permissionMode` e `canUseTool`. Use `disallowedTools` para bloquear ferramentas. Veja [Permissões](/docs/pt/agent-sdk/permissions#allow-and-deny-rules) |

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

493| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | Função de permissão personalizada, invocada apenas quando o [fluxo de permissão](/docs/pt/agent-sdk/permissions#how-permissions-are-evaluated) cai em um prompt. Não invocada para chamadas auto-aprovadas por `allowedTools`, regras de permissão, ou `permissionMode`. Uma regra de permissão não pré-aprova as [ações que nenhum modo auto-aprova](/docs/pt/permission-modes#actions-no-mode-auto-approves). Veja [`CanUseTool`](#canusetool) para detalhes |493| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | Função de permissão personalizada, invocada apenas quando o [fluxo de permissão](/docs/pt/agent-sdk/permissions#how-permissions-are-evaluated) cai em um prompt. Não invocada para chamadas auto-aprovadas por `allowedTools`, regras de permissão, ou `permissionMode`. Uma regra de permissão não pré-aprova as [ações que nenhum modo auto-aprova](/docs/pt/permission-modes#actions-no-mode-auto-approves). Veja [`CanUseTool`](#canusetool) para detalhes |


502| `executable` | `'bun' \| 'deno' \| 'node'` | Auto-detectado | Runtime JavaScript a usar |502| `executable` | `'bun' \| 'deno' \| 'node'` | Auto-detectado | Runtime JavaScript a usar |

503| `executableArgs` | `string[]` | `[]` | Argumentos a passar para o executável |503| `executableArgs` | `string[]` | `[]` | Argumentos a passar para o executável |

504| `extraArgs` | `Record<string, string \| null>` | `{}` | Argumentos adicionais |504| `extraArgs` | `Record<string, string \| null>` | `{}` | Argumentos adicionais |

505| `fallbackModel` | `string` | `undefined` | Modelo a usar se o primário falhar |505| `fallbackModel` | `string` | `undefined` | Modelo a usar se o primário falhar. Aceita uma lista separada por vírgula. Para a ordem e o limite, veja [Cadeias de modelo de fallback](/docs/pt/model-config#fallback-model-chains). Para orientação, veja [Escolher um modelo](/docs/pt/agent-sdk/configuration#choose-a-model) |

506| `forkSession` | `boolean` | `false` | Ao retomar com `resume`, bifurcar para um novo ID de sessão em vez de continuar a sessão original |506| `forkSession` | `boolean` | `false` | Ao retomar com `resume`, bifurcar para um novo ID de sessão em vez de continuar a sessão original |

507| `forwardSubagentText` | `boolean` | `false` | Encaminhar blocos de texto e pensamento de subagentes como mensagens de assistente e usuário com `parent_tool_use_id` definido, para que os consumidores possam renderizar uma transcrição aninhada. Sem esta opção, Claude Code emite blocos `tool_use` e `tool_result` de subagentes mas não texto ou pensamento. Mensagens de subagentes em cada profundidade de aninhamento são encaminhadas no Claude Code v2.1.219 e posterior; antes de v2.1.219, apenas mensagens de subagentes de profundidade-1 apareciam |507| `forwardSubagentText` | `boolean` | `false` | Encaminhar blocos de texto e pensamento de subagentes como mensagens de assistente e usuário com `parent_tool_use_id` definido, para que os consumidores possam renderizar uma transcrição aninhada. Sem esta opção, Claude Code emite blocos `tool_use` e `tool_result` de subagentes mas não texto ou pensamento. Mensagens de subagentes em cada profundidade de aninhamento são encaminhadas no Claude Code v2.1.219 e posterior; antes de v2.1.219, apenas mensagens de subagentes de profundidade-1 apareciam |

508| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | Callbacks de hook para eventos |508| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | Callbacks de hook para eventos |


510| `includePartialMessages` | `boolean` | `false` | Incluir eventos de mensagem parcial |510| `includePartialMessages` | `boolean` | `false` | Incluir eventos de mensagem parcial |

511| `loadTimeoutMs` | `number` | `60000` | *Alfa.* Timeout em milissegundos para cada chamada `sessionStore.load()` e `sessionStore.listSubkeys()` durante materialização de retomada. Se o adaptador não se resolver dentro desta janela, a consulta falha em vez de travar. Ignorado quando `sessionStore` não está definido |511| `loadTimeoutMs` | `number` | `60000` | *Alfa.* Timeout em milissegundos para cada chamada `sessionStore.load()` e `sessionStore.listSubkeys()` durante materialização de retomada. Se o adaptador não se resolver dentro desta janela, a consulta falha em vez de travar. Ignorado quando `sessionStore` não está definido |

512| `managedSettings` | `Settings` | `undefined` | Configurações de nível de política que seu processo host fornece para a sessão gerada. Em máquinas com configurações gerenciadas implantadas por administrador, Claude Code ignora estas a menos que a fonte gerenciada de maior prioridade do administrador defina `parentSettingsBehavior: 'merge'`, e nunca as mescla enquanto um [`policyHelper`](/docs/pt/settings-reference#policyhelper) fornece configurações gerenciadas. Valores mesclados passam por um filtro apenas restritivo; [Restringir configurações pai](/docs/pt/claude-apps-gateway#restrict-parent-settings) cobre o que o filtro admite e os bloqueios `allowManaged*Only`. Um host que define [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/pt/env-vars) tem três chaves lidas diretamente desta carga: sua [configuração de modelo](/docs/pt/model-config#restrict-model-selection) no Claude Code v2.1.222 ou posterior, [`modelPricing`](/docs/pt/settings-reference#modelpricing) quando nenhuma fonte gerenciada a define no v2.1.246 ou posterior, e sua entrada `ENABLE_TOOL_SEARCH` env no v2.1.247 ou posterior |512| `managedSettings` | `Settings` | `undefined` | Configurações de nível de política que seu processo host fornece para a sessão gerada. Em máquinas com configurações gerenciadas implantadas por administrador, Claude Code ignora estas a menos que a fonte gerenciada de maior prioridade do administrador defina `parentSettingsBehavior: 'merge'`, e nunca as mescla enquanto um [`policyHelper`](/docs/pt/settings-reference#policyhelper) fornece configurações gerenciadas. Valores mesclados passam por um filtro apenas restritivo; [Restringir configurações pai](/docs/pt/claude-apps-gateway#restrict-parent-settings) cobre o que o filtro admite e os bloqueios `allowManaged*Only`. Um host que define [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/pt/env-vars) tem três chaves lidas diretamente desta carga: sua [configuração de modelo](/docs/pt/model-config#restrict-model-selection) no Claude Code v2.1.222 ou posterior, [`modelPricing`](/docs/pt/settings-reference#modelpricing) quando nenhuma fonte gerenciada a define no v2.1.246 ou posterior, e sua entrada `ENABLE_TOOL_SEARCH` env no v2.1.247 ou posterior |

513| `maxBudgetUsd` | `number` | `undefined` | Parar a consulta quando a estimativa de custo do lado do cliente atingir este valor em USD. Comparado com a mesma estimativa que `total_cost_usd`; veja [Rastrear custo e uso](/docs/pt/agent-sdk/cost-tracking) para ressalvas de precisão |513| `maxBudgetUsd` | `number` | `undefined` | Parar a consulta quando a estimativa de custo do lado do cliente atingir este valor em USD. Comparado com a mesma estimativa que `total_cost_usd`. Para ressalvas de precisão e comportamento de reset, veja [Rastrear custo e uso](/docs/pt/agent-sdk/cost-tracking) |

514| `maxThinkingTokens` | `number` | `undefined` | *Descontinuado:* Use `thinking` em vez disso. Tokens máximos para processo de pensamento |514| `maxThinkingTokens` | `number` | `undefined` | *Descontinuado:* Use `thinking` em vez disso. Tokens máximos para processo de pensamento |

515| `maxTurns` | `number` | `undefined` | Turnos agênticos máximos (round trips de uso de ferramenta) |515| `maxTurns` | `number` | `undefined` | Turnos agênticos máximos (round trips de uso de ferramenta) |

516| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | Configurações de servidor MCP |516| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | Configurações de servidor MCP |


533| `sessionId` | `string` | Auto-gerado | Use um UUID específico para a sessão em vez de auto-gerar um |533| `sessionId` | `string` | Auto-gerado | Use um UUID específico para a sessão em vez de auto-gerar um |

534| `sessionStore` | [`SessionStore`](/docs/pt/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | Espelhar transcrições de sessão para um backend externo para que outro host possa retomá-las. Veja [Persist sessions to external storage](/docs/pt/agent-sdk/session-storage) |534| `sessionStore` | [`SessionStore`](/docs/pt/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | Espelhar transcrições de sessão para um backend externo para que outro host possa retomá-las. Veja [Persist sessions to external storage](/docs/pt/agent-sdk/session-storage) |

535| `sessionStoreFlush` | `'batched' \| 'eager'` | `'batched'` | *Alfa.* Modo de flush para `sessionStore`. Ignorado quando `sessionStore` não está definido |535| `sessionStoreFlush` | `'batched' \| 'eager'` | `'batched'` | *Alfa.* Modo de flush para `sessionStore`. Ignorado quando `sessionStore` não está definido |

536| `settings` | `string \| Settings` | `undefined` | Objeto de [configurações](/docs/pt/settings) inline ou caminho para um arquivo de configurações. Popula a camada de configurações de flag na [ordem de precedência](/docs/pt/settings#settings-precedence). Altere em tempo de execução com [`applyFlagSettings()`](#applyflagsettings) |536| `settings` | `string \| Settings` | `undefined` | Objeto de [configurações](/docs/pt/settings) inline, caminho para um arquivo de configurações, ou uma string JSON inline. Popula a camada de configurações de flag na [ordem de precedência](/docs/pt/settings#settings-precedence). Altere em tempo de execução com [`applyFlagSettings()`](#applyflagsettings) |

537| `settingSources` | [`SettingSource`](#settingsource)`[]` | Padrões da CLI (todas as fontes) | Controle quais configurações do sistema de arquivos carregar. Passe `[]` para desativar configurações de usuário, projeto e local. [Política gerenciada por endpoint](/docs/pt/managed-settings#delivery-mechanisms) carrega independentemente; configurações gerenciadas pelo servidor são buscadas quando a sessão se autentica com uma credencial organizacional em uma [configuração elegível](/docs/pt/server-managed-settings#platform-availability). Veja [Use Claude Code features](/docs/pt/agent-sdk/claude-code-features#what-settingsources-does-not-control) |537| `settingSources` | [`SettingSource`](#settingsource)`[]` | Padrões da CLI (todas as fontes) | Controle quais configurações do sistema de arquivos carregar. Passe `[]` para desativar configurações de usuário, projeto e local. [Política gerenciada por endpoint](/docs/pt/managed-settings#delivery-mechanisms) carrega independentemente; configurações gerenciadas pelo servidor são buscadas quando a sessão se autentica com uma credencial organizacional em uma [configuração elegível](/docs/pt/server-managed-settings#platform-availability). Veja [Use Claude Code features](/docs/pt/agent-sdk/claude-code-features#what-settingsources-does-not-control) |

538| `skills` | `string[] \| 'all'` | `undefined` | Skills disponíveis para a sessão. Passe `'all'` para ativar cada skill descoberta, ou uma lista de nomes de skills. Passe apenas nomes exatos. No Agent SDK v0.3.221 ou posterior, o SDK rejeita nomes malformados e em forma de wildcard com um erro antes de iniciar o processo Claude Code. Quando definido, o SDK adiciona a ferramenta Skill a `allowedTools` automaticamente. Se você também passar `tools`, inclua `'Skill'` nessa lista. Veja [Skills](/docs/pt/agent-sdk/skills) |538| `skills` | `string[] \| 'all'` | `undefined` | Skills disponíveis para a sessão. Passe `'all'` para ativar cada skill descoberta, ou uma lista de nomes de skills. Passe apenas nomes exatos. No Agent SDK v0.3.221 ou posterior, o SDK rejeita nomes malformados e em forma de wildcard com um erro antes de iniciar o processo Claude Code. Quando definido, o SDK adiciona a ferramenta Skill a `allowedTools` automaticamente. Se você também passar `tools`, inclua `'Skill'` nessa lista. Veja [Skills](/docs/pt/agent-sdk/skills) |

539| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Função personalizada para gerar o processo Claude Code. Use para executar Claude Code em VMs, contêineres ou ambientes remotos |539| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Função personalizada para gerar o processo Claude Code. Use para executar Claude Code em VMs, contêineres ou ambientes remotos |


636| `interrupt()` | Interrompe a consulta. Apenas disponível em modo de entrada de transmissão. Quando a CLI anuncia a capacidade `interrupt_receipt_v1` em [`SDKSystemMessage.capabilities`](#sdksystemmessage), resolve com um [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) listando as mensagens que estavam pendentes quando a interrupção chegou. Resolve `undefined` em CLIs anteriores a v2.1.205 |636| `interrupt()` | Interrompe a consulta. Apenas disponível em modo de entrada de transmissão. Quando a CLI anuncia a capacidade `interrupt_receipt_v1` em [`SDKSystemMessage.capabilities`](#sdksystemmessage), resolve com um [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) listando as mensagens que estavam pendentes quando a interrupção chegou. Resolve `undefined` em CLIs anteriores a v2.1.205 |

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

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

639| `setModel()` | Altera o modelo (apenas disponível em modo de entrada de transmissão). Passar `undefined` ou a string `"default"` redefine para o modelo padrão da sessão |639| `setModel()` | Altera o modelo (apenas disponível em modo de entrada de transmissão). Passar `undefined` ou a string `"default"` redefine para [o modelo padrão do Claude Code](/docs/pt/model-config) |

640| `setMaxThinkingTokens()` | *Descontinuado:* Use a opção `thinking` em vez disso. Altera os tokens de pensamento máximos. Passar `null` redefine o pensamento para o padrão da sessão: uma substituição no meio da sessão é limpa, e o pensamento permanece desativado para sessões que o têm desativado |640| `setMaxThinkingTokens()` | *Descontinuado:* Use a opção `thinking` em vez disso. Altera os tokens de pensamento máximos. Passar `null` redefine o pensamento para o padrão da sessão: uma substituição no meio da sessão é limpa, e o pensamento permanece desativado para sessões que o têm desativado |

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

642| `updateSettings(source, settings)` | Mescla configurações no arquivo de configurações local do projeto, `.claude/settings.local.json`; elas entram em vigor na próxima solicitação. Aceita apenas `source: 'localSettings'` e um conjunto de chaves permitidas, atualmente `outputStyle`, com valores de string; deletar uma chave não é suportado. Rejeita em transportes remotos e em sessões cujos [`settingSources`](#options) excluem `local`. Requer TypeScript SDK v0.3.257 ou posterior, que agrupa Claude Code v2.1.257 |642| `updateSettings(source, settings)` | Mescla configurações no arquivo de configurações local do projeto, `.claude/settings.local.json`; elas entram em vigor na próxima solicitação. Aceita apenas `source: 'localSettings'` e um conjunto de chaves permitidas, atualmente `outputStyle`, com valores de string; deletar uma chave não é suportado. Rejeita em transportes remotos e em sessões cujos [`settingSources`](#options) excluem `local`. Requer TypeScript SDK v0.3.257 ou posterior, que agrupa Claude Code v2.1.257 |


673 673 

674Os valores são escritos na camada de configurações de flag, a mesma camada que a opção `settings` inline de `query()` popula na inicialização. Esta é a mesma camada que a [seção de precedência na página](#settings-precedence) chama de opções programáticas.674Os valores são escritos na camada de configurações de flag, a mesma camada que a opção `settings` inline de `query()` popula na inicialização. Esta é a mesma camada que a [seção de precedência na página](#settings-precedence) chama de opções programáticas.

675 675 

676Chamadas sucessivas fazem shallow-merge de chaves de nível superior. Uma segunda chamada com `{ permissions: {...} }` substitui o objeto `permissions` inteiro da chamada anterior em vez de fazer deep-merge nele. Para limpar uma chave da camada de flag e voltar a fontes de precedência mais baixa, passe `null` para essa chave. Passar `undefined` não tem efeito porque a serialização JSON a descarta.676Chamadas sucessivas fazem shallow-merge de chaves de nível superior. Uma segunda chamada com `{ permissions: {...} }` substitui o objeto `permissions` inteiro da chamada anterior em vez de fazer deep-merge nele. Para limpar uma chave da camada de flag, passe `null` para essa chave. A maioria das chaves então volta a fontes de precedência mais baixa. Um `model` limpo redefine para [o modelo padrão do Claude Code](/docs/pt/model-config), mesmo quando um arquivo de configurações define `model`. Passar `undefined` não tem efeito porque a serialização JSON a descarta.

677 677 

678Apenas disponível em modo de entrada de transmissão, a mesma restrição que `setModel()` e `setPermissionMode()`.678Apenas disponível em modo de entrada de transmissão, a mesma restrição que `setModel()` e `setPermissionMode()`.

679 679 

680O exemplo abaixo muda o modelo ativo no meio da sessão, depois limpa a substituição para que o modelo volte ao que as configurações de usuário ou projeto especificam.680O exemplo abaixo muda o modelo ativo no meio da sessão, depois limpa a substituição para que o modelo volte ao [modelo padrão do Claude Code](/docs/pt/model-config).

681 681 

682```typescript theme={null}682```typescript theme={null}

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


687// Substituir o modelo para o resto da sessão687// Substituir o modelo para o resto da sessão

688await q.applyFlagSettings({ model: "claude-opus-4-6" });688await q.applyFlagSettings({ model: "claude-opus-4-6" });

689 689 

690// Depois: limpar a substituição e voltar a configurações de precedência mais baixa690// Depois: limpar a substituição; o modelo redefine para o modelo padrão do Claude Code

691await q.applyFlagSettings({ model: null });691await q.applyFlagSettings({ model: null });

692```692```

693 693 


743 743 

744Claude Code omite o campo quando a solicitação não carregava hooks. Quando a solicitação carregava hooks, o valor depende se a solicitação é a primeira inicialização da sessão e, para uma repetida, de como ela alcançou a sessão:744Claude Code omite o campo quando a solicitação não carregava hooks. Quando a solicitação carregava hooks, o valor depende se a solicitação é a primeira inicialização da sessão e, para uma repetida, de como ela alcançou a sessão:

745 745 

746* `true`: Claude Code registrou os hooks. A primeira inicialização de uma sessão retorna esse valor. Também retorna uma inicialização repetida enviada sobre stdin da CLI. Nesse caso os hooks na nova solicitação substituem os hooks registrados anteriormente.746* `true`: Claude Code registrou os hooks. A primeira inicialização de uma sessão retorna esse valor. Uma inicialização repetida enviada sobre stdin da CLI também retorna `true`. Nesse caso os hooks na nova solicitação substituem os hooks registrados anteriormente.

747* `false`: Claude Code ignorou os hooks. Uma inicialização repetida enviada para uma sessão remota retorna esse valor, então um segundo cliente que se junta a uma sessão não pode substituir os hooks que o primeiro cliente registrou.747* `false`: Claude Code ignorou os hooks. Uma inicialização repetida enviada para uma sessão remota retorna esse valor, então um segundo cliente que se junta a uma sessão não pode substituir os hooks que o primeiro cliente registrou.

748 748 

749Antes do Agent SDK v0.3.238, a resposta nunca carregava o campo, e Claude Code ignorava `hooks` em cada inicialização repetida.749Antes do Agent SDK v0.3.238, a resposta nunca carregava o campo, e Claude Code ignorava `hooks` em cada inicialização repetida.


960 initialPrompt?: string;960 initialPrompt?: string;

961 maxTurns?: number;961 maxTurns?: number;

962 background?: boolean;962 background?: boolean;

963 omitClaudeMd?: boolean;

963 memory?: "user" | "project" | "local";964 memory?: "user" | "project" | "local";

964 effort?: "low" | "medium" | "high" | "xhigh" | "max" | number;965 effort?: "low" | "medium" | "high" | "xhigh" | "max" | number;

965 permissionMode?: PermissionMode;966 permissionMode?: PermissionMode;


968```969```

969 970 

970| Campo | Obrigatório | Descrição |971| Campo | Obrigatório | Descrição |

971| :------------------------------------ | :---------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |972| :------------------------------------ | :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

972| `description` | Sim | Descrição em linguagem natural de quando usar este agente |973| `description` | Sim | Descrição em linguagem natural de quando usar este agente |

973| `tools` | Não | Array de nomes de ferramentas permitidas. Se omitido, herda cada [ferramenta disponível para subagentes](/docs/pt/sub-agents#available-tools). Para pré-carregar Skills no contexto do agente, use o campo `skills` em vez de listar `'Skill'` aqui |974| `tools` | Não | Array de nomes de ferramentas permitidas. Se omitido, herda cada [ferramenta disponível para subagentes](/docs/pt/sub-agents#available-tools). Para pré-carregar Skills no contexto do agente, use o campo `skills` em vez de listar `'Skill'` aqui |

974| `disallowedTools` | Não | Array de nomes de ferramentas para explicitamente desallocar para este agente. Padrões de nível de servidor MCP também são aceitos: `mcp__server` ou `mcp__server__*` remove cada ferramenta desse servidor, e `mcp__*` remove cada ferramenta MCP de qualquer servidor |975| `disallowedTools` | Não | Array de nomes de ferramentas para explicitamente desallocar para este agente. Padrões de nível de servidor MCP também são aceitos: `mcp__server` ou `mcp__server__*` remove cada ferramenta desse servidor, e `mcp__*` remove cada ferramenta MCP de qualquer servidor |


979| `initialPrompt` | Não | Auto-enviado como o primeiro turno de usuário quando este agente é executado como o agente da thread principal |980| `initialPrompt` | Não | Auto-enviado como o primeiro turno de usuário quando este agente é executado como o agente da thread principal |

980| `maxTurns` | Não | Número máximo de turnos agênticos (round-trips de API) antes de parar |981| `maxTurns` | Não | Número máximo de turnos agênticos (round-trips de API) antes de parar |

981| `background` | Não | Executar este agente como uma tarefa de fundo não-bloqueante quando invocado |982| `background` | Não | Executar este agente como uma tarefa de fundo não-bloqueante quando invocado |

983| `omitClaudeMd` | Não | Executar este agente sem os arquivos CLAUDE.md de usuário, projeto e local quando ele é executado como um subagente; arquivos de política gerenciada ainda carregam. Use-o para agentes que pegam tudo o que precisam do prompt da ferramenta Agent. Ignorado quando este agente é executado como o agente da thread principal. Requer TypeScript Agent SDK v0.3.271 ou posterior |

982| `memory` | Não | Fonte de memória para este agente: `'user'`, `'project'`, ou `'local'` |984| `memory` | Não | Fonte de memória para este agente: `'user'`, `'project'`, ou `'local'` |

983| `effort` | Não | Nível de esforço de raciocínio para este agente. Aceita um nível nomeado ou um inteiro |985| `effort` | Não | Nível de esforço de raciocínio para este agente. Aceita um nível nomeado ou um inteiro |

984| `permissionMode` | Não | Modo de permissão para execução de ferramenta dentro deste agente. As [regras de herança de subagente](/docs/pt/agent-sdk/permissions#available-modes) decidem quando se aplica. Veja [`PermissionMode`](#permissionmode) |986| `permissionMode` | Não | Modo de permissão para execução de ferramenta dentro deste agente. As [regras de herança de subagente](/docs/pt/agent-sdk/permissions#available-modes) decidem quando se aplica. Veja [`PermissionMode`](#permissionmode) |


1094 signal: AbortSignal;1096 signal: AbortSignal;

1095 suggestions?: PermissionUpdate[];1097 suggestions?: PermissionUpdate[];

1096 blockedPath?: string;1098 blockedPath?: string;

1099 mcpServer?: { name: string; source: string };

1097 decisionReason?: string;1100 decisionReason?: string;

1098 toolUseID: string;1101 toolUseID: string;

1099 agentID?: string;1102 agentID?: string;


1107| `signal` | `AbortSignal` | Sinalizado se a operação deve ser abortada |1110| `signal` | `AbortSignal` | Sinalizado se a operação deve ser abortada |

1108| `suggestions` | [`PermissionUpdate`](#permissionupdate)`[]` | Atualizações de permissão sugeridas para que o usuário não seja solicitado novamente para esta ferramenta. Prompts de Bash incluem uma sugestão com o destino `localSettings` [destination](#permissionupdatedestination), então retorná-la em `updatedPermissions` escreve a regra em `.claude/settings.local.json` e persiste entre sessões. |1111| `suggestions` | [`PermissionUpdate`](#permissionupdate)`[]` | Atualizações de permissão sugeridas para que o usuário não seja solicitado novamente para esta ferramenta. Prompts de Bash incluem uma sugestão com o destino `localSettings` [destination](#permissionupdatedestination), então retorná-la em `updatedPermissions` escreve a regra em `.claude/settings.local.json` e persiste entre sessões. |

1109| `blockedPath` | `string` | O caminho do arquivo que acionou a solicitação de permissão, se aplicável |1112| `blockedPath` | `string` | O caminho do arquivo que acionou a solicitação de permissão, se aplicável |

1113| `mcpServer` | `{ name: string; source: string }` | Para uma ferramenta `mcp__*`, o servidor MCP que a serve e de onde a definição desse servidor veio, com os campos de [`McpServerProvenance`](#mcpserverprovenance). Ausente para outras ferramentas. Requer Agent SDK v0.3.274 ou posterior |

1110| `decisionReason` | `string` | Explica por que esta solicitação de permissão foi acionada |1114| `decisionReason` | `string` | Explica por que esta solicitação de permissão foi acionada |

1111| `toolUseID` | `string` | Identificador único para esta chamada de ferramenta específica dentro da mensagem do assistente |1115| `toolUseID` | `string` | Identificador único para esta chamada de ferramenta específica dentro da mensagem do assistente |

1112| `agentID` | `string` | Se executando dentro de um sub-agente, o ID do sub-agente |1116| `agentID` | `string` | Se executando dentro de um sub-agente, o ID do sub-agente |


1463 permission_denials: SDKPermissionDenial[];1467 permission_denials: SDKPermissionDenial[];

1464 queued_turn_count?: number;1468 queued_turn_count?: number;

1465 errors: string[];1469 errors: string[];

1470 startup_failure_reason?: SDKStartupFailureReason;

1466 user_message_uuid?: string;1471 user_message_uuid?: string;

1467 user_message_uuids?: string[];1472 user_message_uuids?: string[];

1468 terminal_reason?: TerminalReason;1473 terminal_reason?: TerminalReason;


1486* `modelUsage`: totais por modelo para cada chamada de modelo feita através do pipeline de consulta durante esta chamada `query()`, incluindo o loop principal, subagentes e chamadas internas como compactação e agentes Workflow. Chamadas auxiliares fora desse pipeline, como o classificador de permissão e solicitações de contagem de tokens, são excluídas. Em sessões de entrada de fluxo os totais são cumulativos entre turnos, portanto leia o resultado mais recente em vez de somar entre resultados. Veja [Rastrear custos no modo de entrada de fluxo](/docs/pt/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) para redefinições e [Recuperar totais após uma falha de sessão](/docs/pt/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) para resultados zerados.1491* `modelUsage`: totais por modelo para cada chamada de modelo feita através do pipeline de consulta durante esta chamada `query()`, incluindo o loop principal, subagentes e chamadas internas como compactação e agentes Workflow. Chamadas auxiliares fora desse pipeline, como o classificador de permissão e solicitações de contagem de tokens, são excluídas. Em sessões de entrada de fluxo os totais são cumulativos entre turnos, portanto leia o resultado mais recente em vez de somar entre resultados. Veja [Rastrear custos no modo de entrada de fluxo](/docs/pt/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) para redefinições e [Recuperar totais após uma falha de sessão](/docs/pt/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) para resultados zerados.

1487* `total_cost_usd`: custo estimado cumulativo em USD para esta chamada `query()`, cobrindo as mesmas chamadas que `modelUsage` e redefinindo nos mesmos pontos. É uma estimativa, não uma declaração de faturamento. Veja [Rastrear custo e uso](/docs/pt/agent-sdk/cost-tracking) para ressalvas de precisão.1492* `total_cost_usd`: custo estimado cumulativo em USD para esta chamada `query()`, cobrindo as mesmas chamadas que `modelUsage` e redefinindo nos mesmos pontos. É uma estimativa, não uma declaração de faturamento. Veja [Rastrear custo e uso](/docs/pt/agent-sdk/cost-tracking) para ressalvas de precisão.

1488* `queued_turn_count`: o número de mensagens que você enviou com `origin: { kind: "human" }` que ainda estão esperando quando Claude Code produziu o resultado. Veja [`queued_turn_count`](#queued_turn_count) para o que `0` e um campo ausente dizem a você.1493* `queued_turn_count`: o número de mensagens que você enviou com `origin: { kind: "human" }` que ainda estão esperando quando Claude Code produziu o resultado. Veja [`queued_turn_count`](#queued_turn_count) para o que `0` e um campo ausente dizem a você.

1494* `startup_failure_reason`: por que Claude Code recusou iniciar, na mensagem de resultado `error_during_execution` que escreve antes de sair em uma falha de inicialização conhecida. Veja [`startup_failure_reason`](#startup_failure_reason) para os valores e quais falhas o carregam. Requer Agent SDK v0.3.274 ou posterior.

1489* `terminal_reason`: por que o loop terminou. Um de `"completed"`, `"max_turns"`, `"tool_deferred"`, `"aborted_streaming"`, `"aborted_tools"`, `"hook_stopped"`, `"stop_hook_prevented"`, `"background_requested"`, `"blocking_limit"`, `"rapid_refill_breaker"`, `"prompt_too_long"`, `"image_error"`, `"model_error"`, `"api_error"`, `"malformed_tool_use_exhausted"`, `"budget_exhausted"`, `"structured_output_retry_exhausted"`, `"tool_deferred_unavailable"`, ou `"turn_setup_failed"`.1495* `terminal_reason`: por que o loop terminou. Um de `"completed"`, `"max_turns"`, `"tool_deferred"`, `"aborted_streaming"`, `"aborted_tools"`, `"hook_stopped"`, `"stop_hook_prevented"`, `"background_requested"`, `"blocking_limit"`, `"rapid_refill_breaker"`, `"prompt_too_long"`, `"image_error"`, `"model_error"`, `"api_error"`, `"malformed_tool_use_exhausted"`, `"budget_exhausted"`, `"structured_output_retry_exhausted"`, `"tool_deferred_unavailable"`, ou `"turn_setup_failed"`.

1490* `fast_mode_state`: um de `"on"`, `"off"`, ou `"cooldown"`.1496* `fast_mode_state`: um de `"on"`, `"off"`, ou `"cooldown"`.

1491* `fast_mode_disabled_reason`: por que [modo rápido](/docs/pt/fast-mode) não está disponível agora. Ausente quando nada bloqueia o modo rápido, embora uma solicitação ainda possa ser executada em velocidade padrão. Durante o resfriamento após um limite de taxa de modo rápido, Claude Code relata `fast_mode_state: "cooldown"` sem código de razão e reativa o modo rápido quando o resfriamento expira. Requer Claude Code v2.1.219 ou posterior.1497* `fast_mode_disabled_reason`: por que [modo rápido](/docs/pt/fast-mode) não está disponível agora. Ausente quando nada bloqueia o modo rápido, embora uma solicitação ainda possa ser executada em velocidade padrão. Durante o resfriamento após um limite de taxa de modo rápido, Claude Code relata `fast_mode_state: "cooldown"` sem código de razão e reativa o modo rápido quando o resfriamento expira. Requer Claude Code v2.1.219 ou posterior.


1561* **`0`**: Claude Code não conta mensagens que você enviou sem esse `origin`, e não conta notificações de tarefa, portanto um turno ainda pode seguir.1567* **`0`**: Claude Code não conta mensagens que você enviou sem esse `origin`, e não conta notificações de tarefa, portanto um turno ainda pode seguir.

1562* **Ausente**: o resultado final que Claude Code emite após uma falha ou erro fatal de inicialização omite o campo, e [pode carregar totais zerados](/docs/pt/agent-sdk/cost-tracking#recover-totals-after-a-session-crash).1568* **Ausente**: o resultado final que Claude Code emite após uma falha ou erro fatal de inicialização omite o campo, e [pode carregar totais zerados](/docs/pt/agent-sdk/cost-tracking#recover-totals-after-a-session-crash).

1563 1569 

1570<h4 id="startup_failure_reason">

1571 `startup_failure_reason`

1572</h4>

1573 

1574Por que Claude Code recusou iniciar, para que sua aplicação possa oferecer a correção em vez de uma tentativa. Claude Code o define na mensagem de resultado `error_during_execution` que escreve antes de sair em uma falha de inicialização conhecida. Esse resultado carrega totais zerados, e seu array `errors` carrega o mesmo texto que stderr. O campo está ausente em todos os outros resultados. Requer Agent SDK v0.3.274 ou posterior.

1575 

1576Defina `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` como `1` em [`env`](#options) para receber este resultado para cada valor `SDKStartupFailureReason`. Sem essa variável, Claude Code escreve o resultado apenas para essas falhas, e o resto termina com saída stderr, uma saída não-zero e nenhuma mensagem de resultado:

1577 

1578* Uma retomada que Claude Code para porque não consegue [retornar a sessão para sua worktree](/docs/pt/worktrees#the-session-resumes-outside-its-worktree), com `worktree_unverified` ou `worktree_resume_refused`. Essa seção diz qual erro carrega qual valor.

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

1580 

1581```typescript theme={null}

1582type SDKStartupFailureReason =

1583 | "org_pin_api_key_conflict"

1584 | "org_verify_failed"

1585 | "org_pin_mismatch"

1586 | "managed_settings_invalid"

1587 | "remote_settings_required_unavailable"

1588 | "gateway_signin_required"

1589 | "gateway_access_denied"

1590 | "proxy_invalid"

1591 | "temp_dir_unusable"

1592 | "cwd_unavailable"

1593 | "shell_tool_missing"

1594 | "session_held_by_background"

1595 | "worktree_resume_refused"

1596 | "worktree_unverified"

1597 | "cli_version_too_old"

1598 | "bypass_root";

1599```

1600 

1601Cada valor nomeia uma recusa:

1602 

1603| Valor | O que parou a sessão |

1604| :------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1605| `org_pin_api_key_conflict` | Configurações gerenciadas [requerem um login de gateway de primeira parte ou Cloud](/docs/pt/authentication#restrict-login-to-your-organization), e uma chave de API Anthropic, token de autenticação ou `apiKeyHelper` está configurado em vez disso |

1606| `org_verify_failed` | A organização do login não pôde ser verificada contra o pin, por exemplo devido a uma falha de rede ou um token revogado |

1607| `org_pin_mismatch` | O login pertence a uma organização que o pin não permite |

1608| `managed_settings_invalid` | Configurações de política gerenciada não puderam ser lidas, ou o pin não nomeia nenhuma organização |

1609| `remote_settings_required_unavailable` | Configurações gerenciadas que a organização requer não puderam ser carregadas |

1610| `gateway_signin_required` | O [gateway Cloud](/docs/pt/claude-apps-gateway) encerrou este login |

1611| `gateway_access_denied` | A solicitação de configurações gerenciadas para o gateway Cloud voltou com um 403, que a [tabela de solução de problemas](/docs/pt/claude-apps-gateway-deploy#troubleshooting) do gateway cobre |

1612| `proxy_invalid` | Uma configuração de proxy não é uma URL completa |

1613| `temp_dir_unusable` | O diretório temporário por usuário é inseguro ou não pôde ser criado |

1614| `cwd_unavailable` | O diretório de trabalho foi deletado, movido ou não pode ser lido |

1615| `shell_tool_missing` | No Windows, nenhuma ferramenta shell está disponível: Git Bash está faltando, e PowerShell está faltando ou desativado com `CLAUDE_CODE_USE_POWERSHELL_TOOL` |

1616| `session_held_by_background` | A conversa para retomar ou continuar está sendo executada como uma [sessão em segundo plano](/docs/pt/agent-view) |

1617| `worktree_resume_refused` | A worktree da sessão falhou em suas verificações de segurança, ou a retomada foi lançada de dentro dela. `errors` diz se executar a mesma retomada novamente continua sem a worktree |

1618| `worktree_unverified` | A worktree da sessão não pôde ser verificada agora, e tentar novamente pode ter sucesso |

1619| `cli_version_too_old` | Esta versão de Claude Code está abaixo do mínimo que Anthropic requer |

1620| `bypass_root` | Modo de permissões de bypass foi solicitado enquanto executava como root |

1621 

1564<h3 id="sdksystemmessage">1622<h3 id="sdksystemmessage">

1565 `SDKSystemMessage`1623 `SDKSystemMessage`

1566</h3>1624</h3>


1582 mcp_servers: {1640 mcp_servers: {

1583 name: string;1641 name: string;

1584 status: string;1642 status: string;

1643 source?: string;

1585 }[];1644 }[];

1586 model: string;1645 model: string;

1587 permissionMode: PermissionMode;1646 permissionMode: PermissionMode;


1603 1662 

1604*1663*

1605 1664 

1665`source` em cada entrada `mcp_servers`: de onde veio a definição do servidor, com os mesmos valores que [`McpServerStatus`](#mcpserverstatus)'s `source`. Requer Agent SDK v0.3.274 ou posterior.

1666 

1667*

1668 

1606`effort`: o [nível de esforço](/docs/pt/model-config#adjust-effort-level) que Claude Code envia na próxima solicitação da sessão, ou `null` quando não envia nenhum. Claude Code define o campo apenas na mensagem de inicialização que envia para clientes [Remote Control](/docs/pt/remote-control), e o omite da mensagem de inicialização que sua aplicação lê. Requer Agent SDK v0.3.234 ou posterior.1669`effort`: o [nível de esforço](/docs/pt/model-config#adjust-effort-level) que Claude Code envia na próxima solicitação da sessão, ou `null` quando não envia nenhum. Claude Code define o campo apenas na mensagem de inicialização que envia para clientes [Remote Control](/docs/pt/remote-control), e o omite da mensagem de inicialização que sua aplicação lê. Requer Agent SDK v0.3.234 ou posterior.

1607 1670 

1608O array `capabilities` nomeia os comportamentos de protocolo que esta CLI implementa, para que você possa fazer detecção de recursos em vez de comparar strings `claude_code_version`. É um conjunto aberto: ignore valores que você não reconhecer, e verifique a capacidade específica cujo comportamento você depende. O campo requer Claude Code v2.1.205 ou posterior e está ausente em CLIs anteriores.1671O array `capabilities` nomeia os comportamentos de protocolo que esta CLI implementa, para que você possa fazer detecção de recursos em vez de comparar strings `claude_code_version`. É um conjunto aberto: ignore valores que você não reconhecer, e verifique a capacidade específica cujo comportamento você depende. O campo requer Claude Code v2.1.205 ou posterior e está ausente em CLIs anteriores.


2084 tool_name: string;2147 tool_name: string;

2085 tool_input: unknown;2148 tool_input: unknown;

2086 tool_use_id: string;2149 tool_use_id: string;

2150 mcp_server?: McpServerProvenance;

2087};2151};

2088```2152```

2089 2153 

2154`mcp_server` está presente quando a ferramenta vem de um servidor MCP; veja [`McpServerProvenance`](#mcpserverprovenance). As entradas `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` e `PermissionDenied` carregam o mesmo campo. O campo requer Agent SDK v0.3.274 ou posterior.

2155 

2090<h4 id="posttoolusehookinput">2156<h4 id="posttoolusehookinput">

2091 `PostToolUseHookInput`2157 `PostToolUseHookInput`

2092</h4>2158</h4>


2099 tool_response: unknown;2165 tool_response: unknown;

2100 tool_use_id: string;2166 tool_use_id: string;

2101 duration_ms?: number;2167 duration_ms?: number;

2168 mcp_server?: McpServerProvenance;

2102};2169};

2103```2170```

2104 2171 


2115 error: string;2182 error: string;

2116 is_interrupt?: boolean;2183 is_interrupt?: boolean;

2117 duration_ms?: number;2184 duration_ms?: number;

2185 mcp_server?: McpServerProvenance;

2118};2186};

2119```2187```

2120 2188 


2149 tool_input: unknown;2217 tool_input: unknown;

2150 tool_use_id: string;2218 tool_use_id: string;

2151 reason: string;2219 reason: string;

2220 mcp_server?: McpServerProvenance;

2152};2221};

2153```2222```

2154 2223 


2368 tool_name: string;2437 tool_name: string;

2369 tool_input: unknown;2438 tool_input: unknown;

2370 permission_suggestions?: PermissionUpdate[];2439 permission_suggestions?: PermissionUpdate[];

2440 mcp_server?: McpServerProvenance;

2371};2441};

2372```2442```

2373 2443 


2880 2950 

2881```typescript theme={null}2951```typescript theme={null}

2882type MonitorInput = {2952type MonitorInput = {

2953 description: string;

2954 timeout_ms: number;

2883 command?: string;2955 command?: string;

2884 ws?: {2956 ws?: {

2885 url: string;2957 url: string;

2886 protocols?: string[];2958 protocols?: string[];

2887 };2959 };

2888 description: string;

2889 timeout_ms: number;

2890 persistent: boolean;

2891};2960};

2892```2961```

2893 2962 

2894Executa uma fonte de background e entrega cada evento para Claude para que possa reagir sem polling: `command` executa um script e emite um evento por linha stdout, e `ws` abre um WebSocket e emite um evento por frame de texto. Forneça exatamente um de `command` ou `ws`. A fonte `ws` requer Claude Code v2.1.195 ou posterior.2963Executa uma fonte de background e entrega cada evento para Claude para que possa reagir sem polling: `command` executa um script e emite um evento por linha stdout, e `ws` abre um WebSocket e emite um evento por frame de texto. Forneça exatamente um de `command` ou `ws`. A fonte `ws` requer Claude Code v2.1.195 ou posterior.

2895 2964 

2896Defina `persistent: true` para watches de comprimento de sessão, como tails de log. Quando Monitor executa um comando, ele segue as mesmas regras de permissão que Bash; um watch de WebSocket solicita aprovação separadamente. Veja a [referência da ferramenta Monitor](/docs/pt/tools-reference#monitor-tool) para comportamento e disponibilidade de provedor. O tipo exportado marca `timeout_ms` e `persistent` como obrigatórios porque o esquema preenche seus padrões, 300000 e `false`; uma chamada que os omite valida.2965`timeout_ms` é o prazo do watch em milissegundos. O padrão é 300000, e o prazo efetivo é no máximo 1800000, que é 30 minutos. No prazo, o watch termina e Claude recebe um aviso para que possa iniciar um novo watch se ainda precisar de um.

2966 

2967O tipo exportado marca `timeout_ms` como obrigatório porque o esquema preenche o padrão; uma chamada que o omite valida.

2968 

2969Quando Monitor executa um comando, ele segue as mesmas regras de permissão que Bash; um watch de WebSocket solicita aprovação separadamente. Veja a [referência da ferramenta Monitor](/docs/pt/tools-reference#monitor-tool) para comportamento e disponibilidade de provedor.

2897 2970 

2898<h3 id="taskoutput">2971<h3 id="taskoutput">

2899 TaskOutput2972 TaskOutput


4884| `description` | `string` | Descrição de quando usar este agente |4957| `description` | `string` | Descrição de quando usar este agente |

4885| `model` | `string \| undefined` | Modelo que este agente usa: um alias ou ID de modelo, ou `'inherit'` para o modelo do pai. Quando é `undefined`, Claude Code escolhe o modelo na [ordem de modelo de subagente](/docs/pt/sub-agents#choose-a-model) |4958| `model` | `string \| undefined` | Modelo que este agente usa: um alias ou ID de modelo, ou `'inherit'` para o modelo do pai. Quando é `undefined`, Claude Code escolhe o modelo na [ordem de modelo de subagente](/docs/pt/sub-agents#choose-a-model) |

4886 4959 

4960<h3 id="mcpserverprovenance">

4961 `McpServerProvenance`

4962</h3>

4963 

4964O servidor MCP que serve uma ferramenta `mcp__*`, e de onde a definição desse servidor veio. As entradas de hook [`PreToolUse`](#pretoolusehookinput), `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` e `PermissionDenied` a carregam como `mcp_server`, e as opções [`CanUseTool`](#canusetool) a carregam como `mcpServer`. Ambas a omitem para ferramentas que não vêm de um servidor MCP.

4965 

4966```typescript theme={null}

4967type McpServerProvenance = {

4968 name: string;

4969 source: string;

4970};

4971```

4972 

4973| Campo | Tipo | Descrição |

4974| :------- | :------- | :------------------------------------------------------------------------------------------------------------------- |

4975| `name` | `string` | O nome sob o qual o servidor está registrado, o mesmo valor que [`mcpServerStatus()`](#query-object) relata para ele |

4976| `source` | `string` | De onde a definição do servidor veio: `sdk`, `plugin` ou um escopo de configuração |

4977 

4978`source` assume um dos seguintes valores. O conjunto é aberto, então trate um valor que você não reconheça como uma fonte configurada, nunca como `sdk`:

4979 

4980* **`sdk`**: um servidor em processo que sua aplicação registrou. Apenas a aplicação host do SDK pode registrar um, então um servidor configurado nunca relata `sdk`, qualquer que seja seu nome.

4981* **`plugin`**: um servidor que um [plugin](/docs/pt/agent-sdk/plugins) fornece. Seu `name` é a forma `plugin:<plugin-name>:<server-name>` com escopo descrita em [servidores MCP fornecidos por plugin](/docs/pt/mcp#plugin-provided-mcp-servers).

4982* **Um escopo de configuração**: `user`, `project`, `local`, `dynamic`, `managed`, `enterprise`, `claudeai` ou `agent`. Um servidor `.mcp.json` relata `project`, e [escopos de instalação MCP](/docs/pt/mcp#mcp-installation-scopes) define `local`, `project` e `user`. Servidores que sua aplicação passa na opção [`mcpServers`](#options), outros que servidores SDK em processo, relatam `dynamic`.

4983 

4984Baseie decisões de confiança em `source`, não em `name` ou no prefixo de nome de ferramenta `mcp__<server>__`. Para qualquer fonte que não seja `sdk`, `name` é texto não confiável: escape-o antes de exibir.

4985 

4986`McpServerProvenance` e os campos que a carregam requerem Agent SDK v0.3.274 ou posterior.

4987 

4887<h3 id="mcpserverstatus">4988<h3 id="mcpserverstatus">

4888 `McpServerStatus`4989 `McpServerStatus`

4889</h3>4990</h3>


4901 error?: string;5002 error?: string;

4902 config?: McpServerStatusConfig;5003 config?: McpServerStatusConfig;

4903 scope?: string;5004 scope?: string;

5005 source?: string;

4904 tools?: {5006 tools?: {

4905 name: string;5007 name: string;

4906 description?: string;5008 description?: string;


4913};5015};

4914```5016```

4915 5017 

5018`source` diz de onde a definição do servidor veio, com os mesmos valores e regra de confiança que o `source` de [`McpServerProvenance`](#mcpserverprovenance). O campo requer Agent SDK v0.3.274 ou posterior e está ausente em versões anteriores.

5019 

4916<h3 id="mcpserverstatusconfig">5020<h3 id="mcpserverstatusconfig">

4917 `McpServerStatusConfig`5021 `McpServerStatusConfig`

4918</h3>5022</h3>


5639 `SandboxSettings`5743 `SandboxSettings`

5640</h3>5744</h3>

5641 5745 

5642Configuração para comportamento de sandbox. Use isso para ativar sandboxing de comando e configurar restrições de rede programaticamente.5746Configuração para o comportamento do sandbox. Use isso para habilitar sandboxing de comandos e configurar restrições de rede programaticamente.

5643 5747 

5644```typescript theme={null}5748```typescript theme={null}

5645type SandboxSettings = {5749type SandboxSettings = {


5656};5760};

5657```5761```

5658 5762 

5659| Propriedade | Tipo | Padrão | Descrição |5763| Property | Type | Default | Description |

5660| :-------------------------- | :---------------------------------------------------- | :---------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |5764| :-------------------------- | :---------------------------------------------------- | :---------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

5661| `enabled` | `boolean` | `false` | Ativar modo sandbox para execução de comando |5765| `enabled` | `boolean` | `false` | Habilitar modo sandbox para execução de comandos |

5662| `failIfUnavailable` | `boolean` | `true` | Parar na inicialização se `enabled` é `true` mas o sandbox não consegue iniciar. Defina `false` para voltar para execução sem sandbox com um aviso em stderr |5766| `failIfUnavailable` | `boolean` | `true` | Parar na inicialização se `enabled` for `true` mas o sandbox não conseguir iniciar. Defina como `false` para fazer fallback para execução sem sandbox com um aviso em stderr |

5663| `autoAllowBashIfSandboxed` | `boolean` | `true` | Auto-aprovar comandos bash quando sandbox está ativado |5767| `autoAllowBashIfSandboxed` | `boolean` | `true` | Aprovar automaticamente comandos Bash quando o sandbox está habilitado |

5664| `excludedCommands` | `string[]` | `[]` | Comandos que sempre contornam restrições de sandbox (por exemplo, `['docker']`). Esses executam sem sandbox automaticamente sem envolvimento do modelo |5768| `excludedCommands` | `string[]` | `[]` | Comandos que sempre contornam restrições de sandbox (por exemplo, `['docker']`). Esses são executados sem sandbox automaticamente sem envolvimento do modelo |

5665| `allowUnsandboxedCommands` | `boolean` | `true` | Permitir que o modelo solicite executar comandos fora do sandbox. Quando `true`, o modelo pode definir `dangerouslyDisableSandbox` na entrada da ferramenta, que volta para o [sistema de permissões](#permissions-fallback-for-unsandboxed-commands) |5769| `allowUnsandboxedCommands` | `boolean` | `true` | Permitir que o modelo solicite executar comandos fora do sandbox. Quando `true`, o modelo pode definir `dangerouslyDisableSandbox` na entrada da ferramenta, que faz fallback para o [sistema de permissões](#permissions-fallback-for-unsandboxed-commands) |

5666| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `undefined` | Configuração de sandbox específica de rede |5770| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `undefined` | Configuração de sandbox específica de rede |

5667| `filesystem` | [`SandboxFilesystemConfig`](#sandboxfilesystemconfig) | `undefined` | Configuração de sandbox específica do sistema de arquivos para restrições de leitura/escrita |5771| `filesystem` | [`SandboxFilesystemConfig`](#sandboxfilesystemconfig) | `undefined` | Configuração de sandbox específica do sistema de arquivos para restrições de leitura/escrita |

5668| `ignoreViolations` | `Record<string, string[]>` | `undefined` | Mapa de substrings de comando, ou `*` para cada comando, para substrings do texto de violação a ignorar, como `{ "*": ['/etc/hosts'] }`; veja [`sandbox.ignoreViolations`](/docs/pt/settings-reference#sandbox-ignoreviolations) |5772| `ignoreViolations` | `Record<string, string[]>` | `undefined` | Mapa de substrings de comando, ou `*` para cada comando, para substrings do texto de violação a ignorar, como `{ "*": ['/etc/hosts'] }`; veja [`sandbox.ignoreViolations`](/docs/pt/settings-reference#sandbox-ignoreviolations) |

5669| `enableWeakerNestedSandbox` | `boolean` | `false` | Ativar um sandbox aninhado mais fraco para compatibilidade |5773| `enableWeakerNestedSandbox` | `boolean` | `false` | Habilitar um sandbox aninhado mais fraco para compatibilidade |

5670| `ripgrep` | `{ command: string; args?: string[] }` | `undefined` | Configuração de binário ripgrep personalizado para ambientes sandbox |5774| `ripgrep` | `{ command: string; args?: string[] }` | `undefined` | Configuração de binário ripgrep personalizado para ambientes sandbox |

5671 5775 

5672<Note>5776<Note>

5673 O sandbox depende do suporte de plataforma e, no Linux, ferramentas como `bubblewrap` e `socat`. Quando `enabled` é `true` e o sandbox não consegue iniciar, `query()` relata uma mensagem `result` com `subtype: "error_during_execution"` e o motivo em `errors`. Para uma única chamada de mensagem `query()`, o SDK lança após gerar esse resultado de erro, então envolva o loop em um bloco try para continuar além dele. Veja [Lidar com o resultado](/docs/pt/agent-sdk/agent-loop#handle-the-result) para o contrato de erro.5777 O sandbox depende do suporte da plataforma e, no Linux, de ferramentas como `bubblewrap` e `socat`. Quando `enabled` é `true` e o sandbox não consegue iniciar, `query()` relata uma mensagem `result` com `subtype: "error_during_execution"` e o motivo em `errors`. Para uma única chamada de mensagem `query()`, o SDK lança uma exceção após gerar esse resultado de erro, então envolva o loop em um bloco try para continuar além dele. Veja [Handle the result](/docs/pt/agent-sdk/agent-loop#handle-the-result) para o contrato de erro.

5674 5778 

5675 Para executar sem sandbox, defina `failIfUnavailable: false`.5779 Para executar sem sandbox, defina `failIfUnavailable: false`.

5676</Note>5780</Note>


5698 if ("result" in message) console.log(message.result);5802 if ("result" in message) console.log(message.result);

5699 }5803 }

5700} catch (error) {5804} catch (error) {

5701 // Uma query() de uma única vez lança após gerar um resultado de erro,5805 // A single-shot query() throws after yielding an error result,

5702 // como quando o sandbox não consegue iniciar (failIfUnavailable padrão é true).5806 // such as when the sandbox can't start (failIfUnavailable defaults to true).

5703 console.log(`Session ended with an error: ${error}`);5807 console.log(`Session ended with an error: ${error}`);

5704}5808}

5705```5809```

5706 5810 

5707<Warning>5811<Warning>

5708 **Segurança de socket Unix:** A opção `allowUnixSockets` pode conceder acesso a serviços de sistema que alcançam fora do sandbox. Por exemplo, permitir `/var/run/docker.sock` efetivamente concede acesso completo ao sistema host através da API Docker, contornando isolamento de sandbox. Apenas permita sockets Unix que são estritamente necessários e entenda as implicações de segurança de cada um.5812 **Segurança de socket Unix:** A opção `allowUnixSockets` pode conceder acesso a serviços do sistema que alcançam fora do sandbox. Por exemplo, permitir `/var/run/docker.sock` efetivamente concede acesso completo ao sistema host através da API Docker, contornando o isolamento do sandbox. Permita apenas sockets Unix que são estritamente necessários e compreenda as implicações de segurança de cada um.

5709</Warning>5813</Warning>

5710 5814 

5711<h3 id="sandboxnetworkconfig">5815<h3 id="sandboxnetworkconfig">

5712 `SandboxNetworkConfig`5816 `SandboxNetworkConfig`

5713</h3>5817</h3>

5714 5818 

5715Configuração específica de rede para modo sandbox. Essas configurações se aplicam a comandos Bash sandboxed quando `enabled` é `true` na [`SandboxSettings`](#sandboxsettings) pai. Elas não restringem a ferramenta WebFetch, que usa [regras de permissão](/docs/pt/permissions#webfetch) em vez disso.5819Configuração específica de rede para modo sandbox. Essas configurações se aplicam a comandos Bash em sandbox quando `enabled` é `true` na [`SandboxSettings`](#sandboxsettings) pai. Elas não restringem a ferramenta WebFetch, que usa [regras de permissão](/docs/pt/permissions#webfetch) em vez disso.

5716 5820 

5717```typescript theme={null}5821```typescript theme={null}

5718type SandboxNetworkConfig = {5822type SandboxNetworkConfig = {


5728};5832};

5729```5833```

5730 5834 

5731| Propriedade | Tipo | Padrão | Descrição |5835| Property | Type | Default | Description |

5732| :------------------------ | :--------- | :---------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |5836| :------------------------ | :--------- | :---------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

5733| `allowedDomains` | `string[]` | `[]` | Nomes de domínio que processos sandboxed podem acessar |5837| `allowedDomains` | `string[]` | `[]` | Nomes de domínio que processos em sandbox podem acessar |

5734| `deniedDomains` | `string[]` | `[]` | Nomes de domínio que processos sandboxed não podem acessar. Tem precedência sobre `allowedDomains` |5838| `deniedDomains` | `string[]` | `[]` | Nomes de domínio que processos em sandbox não podem acessar. Tem precedência sobre `allowedDomains` |

5735| `strictAllowlist` | `boolean` | `false` | Negar acesso de comandos sandboxed a hosts fora da [lista de permissões de rede](/docs/pt/sandboxing#network-isolation) em vez de solicitar. Aplicado apenas para comandos sandboxed; ferramentas em processo como WebFetch não são controladas por isso. Apenas honrado de configurações de usuário, gerenciadas ou CLI `--settings`; configurações de projeto são ignoradas. Requer Claude Code v2.1.219 ou posterior |5839| `strictAllowlist` | `boolean` | `false` | Negar acesso de comandos em sandbox a hosts fora da [lista de permissões de rede](/docs/pt/sandboxing#network-isolation) em vez de solicitar. Aplicado apenas para comandos em sandbox; ferramentas em processo como WebFetch não são controladas por isso. Apenas honrado a partir de configurações de usuário, gerenciadas ou CLI `--settings`; configurações de projeto são ignoradas. Requer Claude Code v2.1.219 ou posterior |

5736| `allowManagedDomainsOnly` | `boolean` | `false` | Apenas configurações gerenciadas. Quando definido em [configurações gerenciadas](/docs/pt/managed-settings), apenas entradas `allowedDomains` e regras de permissão `WebFetch(domain:...)` de configurações gerenciadas são honradas, e entradas de permissão de configurações de usuário, projeto ou local são ignoradas. Não tem efeito quando definido via opções SDK |5840| `allowManagedDomainsOnly` | `boolean` | `false` | Apenas configurações gerenciadas. Quando definido em [configurações gerenciadas](/docs/pt/managed-settings), apenas entradas `allowedDomains` e regras de permissão `WebFetch(domain:...)` de configurações gerenciadas são honradas, e entradas de permissão de configurações de usuário, projeto ou local são ignoradas. Não tem efeito quando definido via opções SDK |

5737| `allowLocalBinding` | `boolean` | `false` | Permitir que processos se vinculem a portas locais (por exemplo, para servidores dev) |5841| `allowLocalBinding` | `boolean` | `false` | Permitir que processos se vinculem a portas locais (por exemplo, para servidores de desenvolvimento) |

5738| `allowUnixSockets` | `string[]` | `[]` | Caminhos de socket Unix que processos podem acessar (por exemplo, socket Docker) |5842| `allowUnixSockets` | `string[]` | `[]` | Caminhos de socket Unix que processos podem acessar (por exemplo, socket Docker) |

5739| `allowAllUnixSockets` | `boolean` | `false` | Permitir acesso a todos os sockets Unix |5843| `allowAllUnixSockets` | `boolean` | `false` | Permitir acesso a todos os sockets Unix |

5740| `httpProxyPort` | `number` | `undefined` | Porta de proxy HTTP para requisições de rede |5844| `httpProxyPort` | `number` | `undefined` | Porta de proxy HTTP para requisições de rede |

5741| `socksProxyPort` | `number` | `undefined` | Porta de proxy SOCKS para requisições de rede |5845| `socksProxyPort` | `number` | `undefined` | Porta de proxy SOCKS para requisições de rede |

5742 5846 

5743<Note>5847<Note>

5744 O proxy de sandbox integrado impõe `allowedDomains` com base no nome de host solicitado e não encerra ou inspeciona tráfego TLS, portanto técnicas como [domain fronting](https://en.wikipedia.org/wiki/Domain_fronting) podem potencialmente contorná-lo. Veja [Limitações de segurança de sandboxing](/docs/pt/sandboxing#security-limitations) para detalhes e [Implantação segura](/docs/pt/agent-sdk/secure-deployment#traffic-forwarding) para configurar um proxy que encerra TLS.5848 O proxy de sandbox integrado aplica `allowedDomains` com base no nome de host solicitado e não encerra ou inspeciona tráfego TLS, então técnicas como [domain fronting](https://en.wikipedia.org/wiki/Domain_fronting) podem potencialmente contorná-lo. Veja [Limitações de segurança do sandboxing](/docs/pt/sandboxing#security-limitations) para detalhes e [Implantação segura](/docs/pt/agent-sdk/secure-deployment#traffic-forwarding) para configurar um proxy que encerra TLS.

5745</Note>5849</Note>

5746 5850 

5747<h3 id="sandboxfilesystemconfig">5851<h3 id="sandboxfilesystemconfig">


5758};5862};

5759```5863```

5760 5864 

5761| Propriedade | Tipo | Padrão | Descrição |5865| Property | Type | Default | Description |

5762| :----------- | :--------- | :----- | :------------------------------------------------------------ |5866| :----------- | :--------- | :------ | :------------------------------------------------------------ |

5763| `allowWrite` | `string[]` | `[]` | Padrões de caminho de arquivo para permitir acesso de escrita |5867| `allowWrite` | `string[]` | `[]` | Padrões de caminho de arquivo para permitir acesso de escrita |

5764| `denyWrite` | `string[]` | `[]` | Padrões de caminho de arquivo para negar acesso de escrita |5868| `denyWrite` | `string[]` | `[]` | Padrões de caminho de arquivo para negar acesso de escrita |

5765| `denyRead` | `string[]` | `[]` | Padrões de caminho de arquivo para negar acesso de leitura |5869| `denyRead` | `string[]` | `[]` | Padrões de caminho de arquivo para negar acesso de leitura |


5768 Fallback de Permissões para Comandos Sem Sandbox5872 Fallback de Permissões para Comandos Sem Sandbox

5769</h3>5873</h3>

5770 5874 

5771Quando `allowUnsandboxedCommands` está ativado, o modelo pode solicitar executar comandos fora do sandbox definindo `dangerouslyDisableSandbox: true` na entrada da ferramenta. Essas solicitações voltam para o sistema de permissões existente, significando que seu handler `canUseTool` é invocado, permitindo que você implemente lógica de autorização personalizada. Comandos listados em `excludedCommands` em vez disso contornam o sandbox automaticamente, sem envolvimento do modelo; veja [`SandboxSettings`](#sandboxsettings).5875Quando `allowUnsandboxedCommands` está habilitado, o modelo pode solicitar executar comandos fora do sandbox definindo `dangerouslyDisableSandbox: true` na entrada da ferramenta. Essas solicitações fazem fallback para o sistema de permissões existente, significando que seu manipulador `canUseTool` é invocado, permitindo que você implemente lógica de autorização personalizada. Comandos listados em `excludedCommands` em vez disso contornam o sandbox automaticamente, sem envolvimento do modelo; veja [`SandboxSettings`](#sandboxsettings).

5772 5876 

5773No exemplo abaixo, `isCommandAuthorized` representa uma verificação de autorização que você define.5877No exemplo abaixo, `isCommandAuthorized` representa uma verificação de autorização que você define.

5774 5878 


5780 options: {5884 options: {

5781 sandbox: {5885 sandbox: {

5782 enabled: true,5886 enabled: true,

5783 allowUnsandboxedCommands: true // Modelo pode solicitar execução sem sandbox5887 allowUnsandboxedCommands: true // Model can request unsandboxed execution

5784 },5888 },

5785 permissionMode: "default",5889 permissionMode: "default",

5786 canUseTool: async (tool, input) => {5890 canUseTool: async (tool, input) => {

5787 // Verificar se o modelo está solicitando bypass do sandbox5891 // Check if the model is requesting to bypass the sandbox

5788 if (tool === "Bash" && input.dangerouslyDisableSandbox) {5892 if (tool === "Bash" && input.dangerouslyDisableSandbox) {

5789 // O modelo está solicitando executar este comando fora do sandbox5893 // The model is requesting to run this command outside the sandbox

5790 console.log(`Unsandboxed command requested: ${input.command}`);5894 console.log(`Unsandboxed command requested: ${input.command}`);

5791 5895 

5792 if (isCommandAuthorized(input.command)) {5896 if (isCommandAuthorized(input.command)) {


5806```5910```

5807 5911 

5808<Warning>5912<Warning>

5809 Comandos executando com `dangerouslyDisableSandbox: true` têm acesso completo ao sistema. Garanta que seu handler `canUseTool` valide essas solicitações cuidadosamente.5913 Comandos em execução com `dangerouslyDisableSandbox: true` têm acesso completo ao sistema. Certifique-se de que seu manipulador `canUseTool` valida essas solicitações cuidadosamente.

5810 5914 

5811 Se `permissionMode` está definido como `bypassPermissions` e `allowUnsandboxedCommands` está ativado, o modelo pode autonomamente executar comandos fora do sandbox sem quaisquer prompts de aprovação, além das [ações que nenhum modo auto-aprova](/docs/pt/permission-modes#actions-no-mode-auto-approves). Esta combinação efetivamente permite que o modelo escape do isolamento de sandbox silenciosamente.5915 Se `permissionMode` for definido como `bypassPermissions` e `allowUnsandboxedCommands` estiver habilitado, o modelo pode executar autonomamente comandos fora do sandbox sem prompts de aprovação, exceto pelas [ações que nenhum modo aprova automaticamente](/docs/pt/permission-modes#actions-no-mode-auto-approves). Essa combinação efetivamente permite que o modelo escape do isolamento do sandbox silenciosamente.

5812</Warning>5916</Warning>

5813 5917 

5814<h2 id="see-also">5918<h2 id="see-also">

Details

12 Para migrar, use a [API `query()`](/docs/pt/agent-sdk/typescript) e as [opções de sessão](/docs/pt/agent-sdk/sessions) que ela aceita. Passe um `AsyncIterable<SDKUserMessage>` para conversas multi-turno, ou `options.resume` para continuar uma sessão salva. Esta página é mantida como referência se você mantém código no Agent SDK 0.2.x ou anterior.12 Para migrar, use a [API `query()`](/docs/pt/agent-sdk/typescript) e as [opções de sessão](/docs/pt/agent-sdk/sessions) que ela aceita. Passe um `AsyncIterable<SDKUserMessage>` para conversas multi-turno, ou `options.resume` para continuar uma sessão salva. Esta página é mantida como referência se você mantém código no Agent SDK 0.2.x ou anterior.

13</Warning>13</Warning>

14 14 

15V2 era uma API de sessão experimental que removeu a necessidade de geradores assíncronos e coordenação de yield. Em vez de gerenciar o estado do gerador entre turnos, cada turno era um ciclo `send()`/`stream()` separado. A superfície da API se reduzia a três conceitos:15V2 era uma API de sessão experimental que removeu a necessidade de geradores assíncronos e coordenação de yield. Em vez de gerenciar o estado do gerador entre turnos, cada turno era um ciclo `send()`/`stream()` separado. A superfície da API se reduzia a criar uma sessão, enviar uma mensagem e transmitir a resposta:

16 16 

17* `createSession()` / `resumeSession()`: Iniciar ou continuar uma conversa17* `createSession()` / `resumeSession()`: Iniciar ou continuar uma conversa

18* `session.send()`: Enviar uma mensagem18* `session.send()`: Enviar uma mensagem

Details

555A entrada contém as perguntas geradas pelo Claude em um array `questions`. Cada pergunta tem estes campos:555A entrada contém as perguntas geradas pelo Claude em um array `questions`. Cada pergunta tem estes campos:

556 556 

557| Campo | Descrição |557| Campo | Descrição |

558| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |558| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |

559| `question` | O texto completo da pergunta a exibir |559| `question` | O texto completo da pergunta a exibir |

560| `header` | Rótulo curto para a pergunta (máximo 12 caracteres) |560| `header` | Rótulo curto para a pergunta (máximo 12 caracteres) |

561| `options` | Array de 2-4 escolhas, cada uma com `label` e `description`. TypeScript: opcionalmente `preview` (veja [abaixo](#option-previews-typescript)) |561| `options` | Array de 2-4 escolhas, cada uma com `label` e `description`. TypeScript: opcionalmente `preview`. Veja [Visualizações de opção](#option-previews-typescript). |

562| `multiSelect` | Se `true`, os usuários podem selecionar múltiplas opções |562| `multiSelect` | Se `true`, os usuários podem selecionar múltiplas opções |

563 563 

564A estrutura que seu callback recebe:564A estrutura que seu callback recebe:

agent-teams.md +5 −1

Details

120 `tmux` tem limitações conhecidas em certos sistemas operacionais e tradicionalmente funciona melhor no macOS. Usar `tmux -CC` no iTerm2 é o ponto de entrada sugerido para `tmux`.120 `tmux` tem limitações conhecidas em certos sistemas operacionais e tradicionalmente funciona melhor no macOS. Usar `tmux -CC` no iTerm2 é o ponto de entrada sugerido para `tmux`.

121</Note>121</Note>

122 122 

123O padrão é `"in-process"`. Antes da v2.1.179, o padrão era `"auto"`, portanto sessões atualizadas que anteriormente abriam split panes agora permanecem em um terminal, a menos que você defina o modo explicitamente. Defina `"auto"` para ativar split panes quando você já estiver executando dentro de uma sessão tmux ou seu terminal for iTerm2, voltando para in-process caso contrário. A configuração `"tmux"` ativa o modo split-pane e detecta automaticamente se deve usar tmux ou iTerm2 com base no seu terminal.123O padrão é `"in-process"`. Defina `"auto"` para ativar split panes quando você já estiver executando dentro de uma sessão tmux, ou quando seu terminal for iTerm2 com o CLI `it2` instalado, voltando para in-process caso contrário. A configuração `"tmux"` ativa o modo split-pane e detecta automaticamente se deve usar tmux ou iTerm2 com base no seu terminal.

124 124 

125A partir da v2.1.186, defina `"iterm2"` para usar explicitamente split panes nativos do iTerm2. Este modo requer o [CLI `it2`](https://github.com/mkusaka/it2) e mostra um erro com o comando de instalação se `it2` estiver faltando. O prompt de configuração que oferece instalar `it2` ou mudar para tmux aparece em `"auto"` ou `"tmux"` quando seu terminal é iTerm2 e tmux está disponível como fallback.125A partir da v2.1.186, defina `"iterm2"` para usar explicitamente split panes nativos do iTerm2. Este modo requer o [CLI `it2`](https://github.com/mkusaka/it2) e mostra um erro com o comando de instalação se `it2` estiver faltando. O prompt de configuração que oferece instalar `it2` ou mudar para tmux aparece em `"auto"` ou `"tmux"` quando seu terminal é iTerm2 e tmux está disponível como fallback.

126 126 


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

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

312 312 

313Quando Claude envia uma mensagem para um companheiro de equipe em processo que não está mais em execução, Claude Code o traz de volta na mesma sessão, restaura qualquer conversa salva para ele e lhe dá a mensagem como seu próximo prompt. Depois que você retoma uma sessão, os companheiros de equipe não são trazidos de volta dessa forma, de acordo com [a limitação de retomada](#limitations).

314 

315Para um companheiro de equipe que ele traz de volta, Claude Code reaplicará uma definição que veio do diretório `.claude/agents/` de um projeto ou de um diretório `--add-dir` apenas se você tiver [confiado na pasta em que o arquivo do agente está](/docs/pt/permissions#what-runs-before-you-trust-a-folder). Confiar em uma pasta pai não conta. Até então, o companheiro de equipe volta com nenhuma das ferramentas ou instruções da definição, mantendo apenas as ferramentas que Claude Code adiciona a cada companheiro de equipe em processo. Veja [a definição de agente do companheiro de equipe não foi restaurada](/docs/pt/errors#teammate-agent-definition-not-restored) para o texto do aviso.

316 

313<h3 id="permissions">317<h3 id="permissions">

314 Permissões318 Permissões

315</h3>319</h3>

agent-view.md +4 −2

Details

16 16 

17Quando você quer trabalhar de forma mais direta em qualquer sessão de um agente, anexe-se à linha para entrar na conversa completa.17Quando você quer trabalhar de forma mais direta em qualquer sessão de um agente, anexe-se à linha para entrar na conversa completa.

18 18 

19Para comparar agent view com subagentes, equipes de agentes e worktrees, consulte [Executar agentes em paralelo](/docs/pt/agents).19Para comparar agent view com subagentes, equipes de agentes e worktrees, consulte [Executar agentes em paralelo](/docs/pt/agents). Agent view executa sessões em sua máquina e você despacha cada uma; para ter Claude iniciar e rastrear sessões paralelas na nuvem a partir de uma conversa em vez disso, consulte [Projects](/docs/pt/claude-projects).

20 20 

21<Note>21<Note>

22 Agent view está em visualização de pesquisa. A interface e os atalhos de teclado podem mudar conforme o recurso evolui.22 Agent view está em visualização de pesquisa. A interface e os atalhos de teclado podem mudar conforme o recurso evolui.


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

1038* [Mensagens entre sessões](/docs/pt/cross-session-messaging): tenha suas sessões passando descobertas uma para a outra1038* [Mensagens entre sessões](/docs/pt/cross-session-messaging): tenha suas sessões passando descobertas uma para a outra

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

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

1041* [Projects](/docs/pt/claude-projects): tenha Claude coordenar sessões de nuvem paralelas de uma conversa e diga a você quais você precisa

1041 1042 

1042<h2 id="version-history">1043<h2 id="version-history">

1043 Histórico de versões1044 Histórico de versões


1048| Versão | Mudança |1049| Versão | Mudança |

1049| -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1050| -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1050| v2.1.268 | Quando uma [exclusão é recusada](#what-deleting-a-session-removes) porque git ou seu hook `WorktreeRemove` não conseguiu remover o worktree, a mensagem nomeia a causa, incluindo como um hook terminou e o início de seu stderr. Para um worktree vinculado sob o diretório `.claude/worktrees/` do repositório sem alterações não confirmadas em arquivos rastreados, nenhum repositório aninhado dentro dele e nenhum registro de outra sessão nomeando-o, deletar a sessão novamente remove o diretório mesmo assim, a partir de agent view ou com `claude rm <id> --force-remove-worktree <worktree-id>`. Antes desta versão, a linha mostrava apenas `worktree could not be removed (WorktreeRemove hook failed)` ou o erro do git, o stderr do hook ia apenas para o log de depuração, e deletar novamente era recusado da mesma forma. |1051| v2.1.268 | Quando uma [exclusão é recusada](#what-deleting-a-session-removes) porque git ou seu hook `WorktreeRemove` não conseguiu remover o worktree, a mensagem nomeia a causa, incluindo como um hook terminou e o início de seu stderr. Para um worktree vinculado sob o diretório `.claude/worktrees/` do repositório sem alterações não confirmadas em arquivos rastreados, nenhum repositório aninhado dentro dele e nenhum registro de outra sessão nomeando-o, deletar a sessão novamente remove o diretório mesmo assim, a partir de agent view ou com `claude rm <id> --force-remove-worktree <worktree-id>`. Antes desta versão, a linha mostrava apenas `worktree could not be removed (WorktreeRemove hook failed)` ou o erro do git, o stderr do hook ia apenas para o log de depuração, e deletar novamente era recusado da mesma forma. |

1052| v2.1.268 | Após o primeiro `←` mostrar `Press ← again to open agents`, ou `Press ← again to go back to agents` em uma sessão anexada, [o primeiro pressionamento que chega pelo menos um segundo depois muda](#switch-sessions-without-leaving-the-terminal), mesmo quando pressionamentos mais rápidos no meio foram ignorados. Antes desta versão, cada pressionamento ignorado reiniciava a espera, então pressionar `←` novamente em um ritmo constante não mudava até que você pausasse por mais de um segundo. |

1051| v2.1.260 | Quando você [coloca uma sessão em background](#from-inside-a-session), a [listagem de agentes](/docs/pt/cross-session-messaging#see-which-sessions-claude-can-reach) de suas outras sessões mostra a conversa uma vez, como sua sessão em background, e suas mensagens para ela não chegam mais ao terminal de onde você a moveu. Antes desta versão, esse terminal poderia ficar listado como uma segunda sessão interativa sob o nome da conversa, e uma sessão que tinha enviado mensagens para a conversa antes da mudança continuava entregando a esse terminal. |1053| v2.1.260 | Quando você [coloca uma sessão em background](#from-inside-a-session), a [listagem de agentes](/docs/pt/cross-session-messaging#see-which-sessions-claude-can-reach) de suas outras sessões mostra a conversa uma vez, como sua sessão em background, e suas mensagens para ela não chegam mais ao terminal de onde você a moveu. Antes desta versão, esse terminal poderia ficar listado como uma segunda sessão interativa sob o nome da conversa, e uma sessão que tinha enviado mensagens para a conversa antes da mudança continuava entregando a esse terminal. |

1052| v2.1.260 | Quando uma [exclusão é recusada sobre commits não enviados](#what-deleting-a-session-removes), a mensagem nomeia a branch do worktree e quantos commits não foram enviados, e deletar a sessão novamente descarta o worktree e seus commits. Antes desta versão, a recusa dizia apenas `worktree has commits that are not pushed anywhere`, deletar novamente era recusado da mesma forma, e deletar a sessão exigia enviar os commits ou remover o worktree manualmente. |1054| v2.1.260 | Quando uma [exclusão é recusada sobre commits não enviados](#what-deleting-a-session-removes), a mensagem nomeia a branch do worktree e quantos commits não foram enviados, e deletar a sessão novamente descarta o worktree e seus commits. Antes desta versão, a recusa dizia apenas `worktree has commits that are not pushed anywhere`, deletar novamente era recusado da mesma forma, e deletar a sessão exigia enviar os commits ou remover o worktree manualmente. |

1053| v2.1.257 | `←` [desanexa de uma sessão anexada enquanto a sobreposição `/btw` está aberta](#attach-to-a-session), até mesmo no meio de uma resposta, e a sobreposição reabre quando você se anexa novamente. Antes desta versão, `←` não desanexava enquanto a sobreposição estava aberta. |1055| v2.1.257 | `←` [desanexa de uma sessão anexada enquanto a sobreposição `/btw` está aberta](#attach-to-a-session), até mesmo no meio de uma resposta, e a sobreposição reabre quando você se anexa novamente. Antes desta versão, `←` não desanexava enquanto a sobreposição estava aberta. |

agents.md +5 −4

Details

4 4 

5# Executar agentes em paralelo5# Executar agentes em paralelo

6 6 

7> Compare as formas como Claude Code pode assumir múltiplas tarefas simultaneamente: subagentes, visualização de agentes, equipes de agentes e workflows dinâmicos.7> Compare as formas como Claude Code pode assumir múltiplas tarefas simultaneamente: subagentes, visualização de agentes, equipes de agentes, workflows dinâmicos e projetos.

8 8 

9[Subagentes](/docs/pt/sub-agents), [visualização de agentes](/docs/pt/agent-view), [equipes de agentes](/docs/pt/agent-teams) e [workflows dinâmicos](/docs/pt/workflows) cada um paraleliza o trabalho de uma forma diferente. O correto depende de se você quer permanecer em cada conversa você mesmo, delegar tarefas e verificar depois, ou ter Claude coordenando um grupo de trabalhadores para você.9Claude Code tem cinco formas de trabalhar em várias tarefas ao mesmo tempo: [subagentes](/docs/pt/sub-agents), [visualização de agentes](/docs/pt/agent-view), [equipes de agentes](/docs/pt/agent-teams), [workflows dinâmicos](/docs/pt/workflows) e [projetos](/docs/pt/claude-projects). Eles diferem em quanto você permanece envolvido, desde orientar cada conversa você mesmo até deixar Claude coordenar um grupo de trabalhadores, e se o trabalho é executado em sua máquina ou na nuvem.

10 10 

11| Abordagem | O que oferece | Use quando |11| Abordagem | O que oferece | Use quando |

12| :---------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |12| :---------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

13| [Subagentes](/docs/pt/sub-agents) | Trabalhadores delegados dentro de uma sessão que fazem uma tarefa secundária em seu próprio contexto e retornam um resumo | Uma tarefa secundária inundaria sua conversa principal com resultados de pesquisa, logs ou conteúdos de arquivo que você não consultará novamente |13| [Subagentes](/docs/pt/sub-agents) | Trabalhadores delegados dentro de uma sessão que fazem uma tarefa secundária em seu próprio contexto e retornam um resumo | Uma tarefa secundária inundaria sua conversa principal com resultados de pesquisa, logs ou conteúdos de arquivo que você não consultará novamente |

14| [Visualização de agentes](/docs/pt/agent-view) | Uma tela para despachar e monitorar sessões em execução em segundo plano, aberta com `claude agents`. Visualização de pesquisa | Você tem várias tarefas independentes e quer delegá-las, verificar o status rapidamente e intervir apenas quando uma precisar de você |14| [Visualização de agentes](/docs/pt/agent-view) | Uma tela para despachar e monitorar sessões em execução em segundo plano, aberta com `claude agents`. Visualização de pesquisa | Você tem várias tarefas independentes e quer delegá-las, verificar o status rapidamente e intervir apenas quando uma precisar de você |

15| [Equipes de agentes](/docs/pt/agent-teams) | Múltiplas sessões coordenadas com uma lista de tarefas compartilhada e mensagens entre agentes, gerenciadas por um líder. Experimental e desabilitado por padrão | Você quer que Claude divida um projeto em partes, as atribua e mantenha os trabalhadores sincronizados |15| [Equipes de agentes](/docs/pt/agent-teams) | Múltiplas sessões coordenadas com uma lista de tarefas compartilhada e mensagens entre agentes, gerenciadas por um líder. Experimental e desabilitado por padrão | Você quer que Claude divida um projeto em partes, as atribua e mantenha os trabalhadores sincronizados |

16| [Projetos](/docs/pt/claude-projects) | Uma conversa contínua em claude.ai/code ou no aplicativo desktop. Claude inicia sessões paralelas na nuvem chamadas threads, fornece a cada uma os repositórios, instruções e memória do projeto, e mostra quais precisam de você. Beta público em Pro e Max | O trabalho abrange muitas tarefas ao longo de dias ou semanas, deve continuar em execução quando sua máquina está desligada, e você prefere descrevê-lo uma vez em vez de despachar e rastrear cada sessão |

16| [Workflows dinâmicos](/docs/pt/workflows) | Um script que executa muitos subagentes e verifica seus resultados, para um trabalho muito grande para coordenar em um único turno ou que precisa de mais de uma passagem | Uma tarefa cresce além de um punhado de subagentes, ou você quer que as descobertas sejam verificadas uma contra a outra: uma auditoria em toda a base de código, uma migração de 500 arquivos, pesquisa com verificação cruzada ou um plano elaborado de vários ângulos |17| [Workflows dinâmicos](/docs/pt/workflows) | Um script que executa muitos subagentes e verifica seus resultados, para um trabalho muito grande para coordenar em um único turno ou que precisa de mais de uma passagem | Uma tarefa cresce além de um punhado de subagentes, ou você quer que as descobertas sejam verificadas uma contra a outra: uma auditoria em toda a base de código, uma migração de 500 arquivos, pesquisa com verificação cruzada ou um plano elaborado de vários ângulos |

17 18 

18Em cada abordagem, os trabalhadores são sessões Claude. Para envolver uma ferramenta diferente, exponha-a ao Claude como um [servidor MCP](/docs/pt/mcp).19Em cada abordagem, os trabalhadores são sessões Claude. Para envolver uma ferramenta diferente, exponha-a ao Claude como um [servidor MCP](/docs/pt/mcp).


20Três ferramentas adicionais suportam este trabalho sem serem uma forma de executar agentes em si:21Três ferramentas adicionais suportam este trabalho sem serem uma forma de executar agentes em si:

21 22 

22* [Worktrees](/docs/pt/worktrees) dão a cada sessão um checkout git separado, para que sessões paralelas nunca editem os mesmos arquivos. Use-as para sessões que você executa você mesmo. Uma sessão que você despacha da visualização de agentes [move para seu próprio worktree antes de editar arquivos](/docs/pt/agent-view#how-file-edits-are-isolated), e subagentes que você gera podem cada um receber um também.23* [Worktrees](/docs/pt/worktrees) dão a cada sessão um checkout git separado, para que sessões paralelas nunca editem os mesmos arquivos. Use-as para sessões que você executa você mesmo. Uma sessão que você despacha da visualização de agentes [move para seu próprio worktree antes de editar arquivos](/docs/pt/agent-view#how-file-edits-are-isolated), e subagentes que você gera podem cada um receber um também.

23* [Mensagens entre sessões](/docs/pt/cross-session-messaging) permite que Claude liste e envie mensagens para suas outras sessões Claude Code nesta máquina, em outra máquina ou em [Claude Code na web](/docs/pt/claude-code-on-the-web), para que sessões que você executa você mesmo possam passar descobertas e status entre si.24* [Mensagens entre sessões](/docs/pt/cross-session-messaging) permite que Claude liste e envie mensagens para suas outras sessões Claude Code nesta máquina, em outra máquina ou [na nuvem](/docs/pt/claude-code-on-the-web), para que sessões que você executa você mesmo possam passar descobertas e status entre si.

24* [`/batch`](/docs/pt/commands) é uma [skill](/docs/pt/skills) que tem Claude dividir uma grande mudança em 5 a 30 subagentes isolados em worktree que cada um abre um pull request. É um uso empacotado de subagentes e worktrees, não um estilo de coordenação separado.25* [`/batch`](/docs/pt/commands) é uma [skill](/docs/pt/skills) que tem Claude dividir uma grande mudança em 5 a 30 subagentes isolados em worktree que cada um abre um pull request. É um uso empacotado de subagentes e worktrees, não um estilo de coordenação separado.

25 26 

26Alguns outros recursos executam Claude sem você dirigir cada passo, mas resolvem um problema diferente do que dividir trabalho entre agentes:27Alguns outros recursos executam Claude sem você dirigir cada passo, mas resolvem um problema diferente do que dividir trabalho entre agentes:

Details

237}237}

238```238```

239 239 

240A partir do Claude Code v2.1.181, a saída plana de `aws configure export-credentials --format process` também é aceita, com as mesmas chaves no nível superior em vez de aninhadas sob `Credentials`.240A saída plana de `aws configure export-credentials --format process` também é aceita, com as mesmas chaves no nível superior em vez de aninhadas sob `Credentials`.

241 241 

242`Expiration` é opcional. Quando o comando retorna um `Expiration` ISO 8601 válido, Claude Code armazena em cache as credenciais até cinco minutos antes desse tempo. Sem ele, as credenciais são armazenadas em cache por uma hora.242`Expiration` é opcional. Quando o comando retorna um `Expiration` ISO 8601 válido, Claude Code armazena em cache as credenciais até cinco minutos antes desse tempo. Sem ele, as credenciais são armazenadas em cache por uma hora.

243 243 


518 Usar o endpoint Mantle518 Usar o endpoint Mantle

519</h2>519</h2>

520 520 

521Mantle é um endpoint do Amazon Bedrock que serve modelos Claude através da forma de API Anthropic nativa em vez da API Invoke do Amazon Bedrock. Ele usa as mesmas credenciais AWS, permissões IAM e configuração `awsAuthRefresh` descritas anteriormente nesta página.521Mantle é um endpoint do Amazon Bedrock que serve modelos Claude através da forma de API Anthropic nativa em vez da API Invoke do Amazon Bedrock. Ele usa as mesmas [credenciais AWS](#2-configure-aws-credentials), [permissões IAM](#iam-configuration), e [configuração `awsAuthRefresh`](#advanced-credential-configuration).

522 522 

523<h3 id="enable-mantle">523<h3 id="enable-mantle">

524 Habilitar Mantle524 Habilitar Mantle

artifacts.md +4 −4

Details

10 Artifacts estão disponíveis nos planos Pro, Max, Team e Enterprise e exigem uma sessão conectada com [`/login`](/docs/pt/setup#authenticate). Consulte [Disponibilidade](#availability) para o conjunto completo de requisitos.10 Artifacts estão disponíveis nos planos Pro, Max, Team e Enterprise e exigem uma sessão conectada com [`/login`](/docs/pt/setup#authenticate). Consulte [Disponibilidade](#availability) para o conjunto completo de requisitos.

11</Note>11</Note>

12 12 

13Um artifact é uma página web ao vivo e interativa que Claude Code publica de sua sessão para uma URL privada no claude.ai. Você a abre em um navegador e ela é atualizada no local conforme a sessão continua. Compartilhe-a a partir do cabeçalho da página quando quiser que outra pessoa a veja também.13Um [artifact](https://claude.com/features/artifacts) é uma página web ao vivo e interativa que Claude Code publica de sua sessão para uma URL privada no claude.ai. Você a abre em um navegador e ela é atualizada no local conforme a sessão continua. Compartilhe-a a partir do cabeçalho da página quando quiser que outra pessoa a veja também.

14 14 

15<Frame>15<Frame>

16 <img src="https://mintcdn.com/claude-code/kaHIYYMIYMYPxQg9/images/artifacts-viewer.png?fit=max&auto=format&n=kaHIYYMIYMYPxQg9&q=85&s=dbfd671cdb0d15f49f808b9e89778fe1" alt="Um artifact aberto em um navegador em claude.ai/code/artifact. O cabeçalho do visualizador mostra o título do artifact acme-funnel-fix, um botão Compartilhar e o avatar do autor. O menu Compartilhar está aberto com a alternância Sempre compartilhar a versão mais recente, um seletor de versão lendo Compartilhando versão 2, um seletor de público Todos na Acme e um botão Copiar link. Abaixo do cabeçalho, a página do artifact mostra dois mockups de dispositivos móveis lado a lado, um gráfico de funil e uma linha de cartões de métricas." width="2511" height="1890" data-path="images/artifacts-viewer.png" />16 <img src="https://mintcdn.com/claude-code/kaHIYYMIYMYPxQg9/images/artifacts-viewer.png?fit=max&auto=format&n=kaHIYYMIYMYPxQg9&q=85&s=dbfd671cdb0d15f49f808b9e89778fe1" alt="Um artifact aberto em um navegador em claude.ai/code/artifact. O cabeçalho do visualizador mostra o título do artifact acme-funnel-fix, um botão Compartilhar e o avatar do autor. O menu Compartilhar está aberto com a alternância Sempre compartilhar a versão mais recente, um seletor de versão lendo Compartilhando versão 2, um seletor de público Todos na Acme e um botão Copiar link. Abaixo do cabeçalho, a página do artifact mostra dois mockups de dispositivos móveis lado a lado, um gráfico de funil e uma linha de cartões de métricas." width="2511" height="1890" data-path="images/artifacts-viewer.png" />


142Read the comments on https://claude.ai/code/artifact/5fbea6f3-... and make the changes the commenters ask for.142Read the comments on https://claude.ai/code/artifact/5fbea6f3-... and make the changes the commenters ask for.

143```143```

144 144 

145Se Claude disser que não consegue ler comentários, verifique três coisas:145Se Claude disser que não consegue ler comentários, confirme sua versão, sua sessão e sua configuração de feature-flag:

146 146 

147* Você está executando Claude Code v2.1.221 ou posterior.147* Você está executando Claude Code v2.1.221 ou posterior.

148* Você não está em sua primeira sessão desde que instalou Claude Code ou atualizou de uma versão anterior à v2.1.221. Nessa [primeira sessão após uma instalação ou atualização](/docs/pt/env-vars#first-session-after-an-install-or-upgrade), Claude pode não conseguir ler comentários ainda; inicie uma nova sessão e peça novamente.148* Você não está em sua primeira sessão desde que instalou Claude Code ou atualizou de uma versão anterior à v2.1.221. Nessa [primeira sessão após uma instalação ou atualização](/docs/pt/env-vars#first-session-after-an-install-or-upgrade), Claude pode não conseguir ler comentários ainda; inicie uma nova sessão e peça novamente.


291 Melhorar o design visual291 Melhorar o design visual

292</h2>292</h2>

293 293 

294Claude aplica uma skill de design integrada quando constrói um artefato, portanto as páginas recebem uma paleta deliberada, tipografia e layout sem prompting extra. Requer Claude Code v2.1.182 ou posterior. Essa skill também procura por um sistema de design existente em seu projeto antes de escolher o seu próprio. Design tokens são os valores nomeados de cor, tipografia e espaçamento que seu sistema de design reutiliza. Para manter os artefatos consistentes com a marca do seu produto, registre-os onde Claude possa encontrá-los, como o [CLAUDE.md](/docs/pt/memory) do projeto ou um arquivo de tema em seu repositório:294Claude aplica uma skill de design integrada quando constrói um artefato, portanto as páginas recebem uma paleta deliberada, tipografia e layout sem prompting extra. Essa skill também procura por um sistema de design existente em seu projeto antes de escolher o seu próprio. Design tokens são os valores nomeados de cor, tipografia e espaçamento que seu sistema de design reutiliza. Para manter os artefatos consistentes com a marca do seu produto, registre-os onde Claude possa encontrá-los, como o [CLAUDE.md](/docs/pt/memory) do projeto ou um arquivo de tema em seu repositório:

295 295 

296```markdown theme={null}296```markdown theme={null}

297## Design system297## Design system


331| Sem backend | Um artefato é uma página estática. Ele não pode autenticar visualizadores por si só. |331| Sem backend | Um artefato é uma página estática. Ele não pode autenticar visualizadores por si só. |

332| Downloads | A página não pode iniciar um download por si só. Para permitir que visualizadores salvem um arquivo que a página gera, Claude declara a capacidade de downloads. Consulte [Oferecer um download de arquivo](#offer-a-file-download). |332| Downloads | A página não pode iniciar um download por si só. Para permitir que visualizadores salvem um arquivo que a página gera, Claude declara a capacidade de downloads. Consulte [Oferecer um download de arquivo](#offer-a-file-download). |

333| Página única | Links relativos não são resolvidos, porque nada é implantado junto com a página. Para conteúdo com múltiplas seções, Claude usa âncoras na página em vez de arquivos separados. |333| Página única | Links relativos não são resolvidos, porque nada é implantado junto com a página. Para conteúdo com múltiplas seções, Claude usa âncoras na página em vez de arquivos separados. |

334| Tipos de arquivo de origem | O arquivo publicado deve ser `.html`, `.htm` ou `.md`, e deve ser decodificado como UTF-8, ou como UTF-16 little-endian pela sua marca de ordem de bytes. Arquivos Markdown são renderizados como HTML estilizado. Um arquivo que não é decodificado, ou que contém o caractere de substituição `U+FFFD`, é [recusado com a linha e coluna a corrigir](/docs/pt/errors#the-source-file-is-not-valid-utf-8-text). |334| Tipos de arquivo de origem | O arquivo publicado deve ser `.html`, `.htm` ou `.md`, e deve ser decodificado como UTF-8, ou como UTF-16 little-endian pela sua marca de ordem de bytes. Arquivos Markdown são renderizados como páginas de documento estilizadas com código com destaque de sintaxe. Um arquivo que não é decodificado, ou que contém o caractere de substituição `U+FFFD`, é [recusado com a linha e coluna a corrigir](/docs/pt/errors#the-source-file-is-not-valid-utf-8-text). |

335| Tamanho renderizado | A página renderizada deve ter 16 MiB ou menos. Imagens incorporadas grandes são a causa usual quando uma publicação falha por tamanho. |335| Tamanho renderizado | A página renderizada deve ter 16 MiB ou menos. Imagens incorporadas grandes são a causa usual quando uma publicação falha por tamanho. |

336 336 

337Gerar um artefato usa tokens de saída como qualquer outra resposta, e uma página estilizada é mais intensiva em tokens do que o mesmo conteúdo como texto de terminal. CSS incorporado, JavaScript para controles interativos e especialmente imagens incorporadas como data URIs são os principais contribuintes. Para reduzir o custo de tokens de um artefato:337Gerar um artefato usa tokens de saída como qualquer outra resposta, e uma página estilizada é mais intensiva em tokens do que o mesmo conteúdo como texto de terminal. CSS incorporado, JavaScript para controles interativos e especialmente imagens incorporadas como data URIs são os principais contribuintes. Para reduzir o custo de tokens de um artefato:

Details

22 22 

23Você pode se autenticar com qualquer um destes tipos de conta:23Você pode se autenticar com qualquer um destes tipos de conta:

24 24 

25* **Assinatura Claude Pro ou Max**: faça login com sua conta Claude.ai. Assine em [claude.com/pricing](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_pro_max).25* **Assinatura Claude Pro ou Max**: faça login com sua conta claude.ai. Assine em [claude.com/pricing](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_pro_max).

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

27* **Claude Console**: faça login com suas credenciais do Console. Seu administrador deve ter [o convidado](#claude-console-authentication) primeiro. Você pode se conectar com ou sem [criar uma chave de API](#sign-in-without-an-api-key).27* **Claude Console**: faça login com suas credenciais do Console. Seu administrador deve ter [o convidado](#claude-console-authentication) primeiro. Você pode se conectar com ou sem [criar uma chave de API](#sign-in-without-an-api-key).

28* **Provedores de nuvem**: se sua organização usa [Amazon Bedrock](/docs/pt/amazon-bedrock), [Google Cloud's Agent Platform](/docs/pt/google-vertex-ai) ou [Microsoft Foundry](/docs/pt/microsoft-foundry), defina as variáveis de ambiente necessárias antes de executar `claude`, ou selecione **plataforma de terceiros** no prompt de login, que inicia um assistente de configuração interativa para Bedrock e Vertex AI. Nenhum login do navegador é necessário.28* **Provedores de nuvem**: se sua organização usa [Amazon Bedrock](/docs/pt/amazon-bedrock), [Google Cloud's Agent Platform](/docs/pt/google-vertex-ai) ou [Microsoft Foundry](/docs/pt/microsoft-foundry), defina as variáveis de ambiente necessárias antes de executar `claude`, ou selecione **plataforma de terceiros** no prompt de login, que inicia um assistente de configuração interativa para Bedrock e Vertex AI. Nenhum login do navegador é necessário.

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


66 </Step>66 </Step>

67 67 

68 <Step title="Instale e faça login">68 <Step title="Instale e faça login">

69 Os membros da equipe instalam Claude Code e fazem login com suas contas Claude.ai.69 Os membros da equipe instalam Claude Code e fazem login com suas contas claude.ai.

70 </Step>70 </Step>

71</Steps>71</Steps>

72 72 


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

191 * Se você definiu a variável de ambiente `CLAUDE_CONFIG_DIR`, Claude Code mantém o arquivo `.credentials.json` sob esse diretório em vez disso, incluindo o arquivo que o fallback do macOS escreve, e chaves a entrada do Keychain do macOS para esse diretório também, então uma sessão com um `CLAUDE_CONFIG_DIR` diferente lê uma entrada diferente.191 * Se você definiu a variável de ambiente `CLAUDE_CONFIG_DIR`, Claude Code mantém o arquivo `.credentials.json` sob esse diretório em vez disso, incluindo o arquivo que o fallback do macOS escreve, e chaves a entrada do Keychain do macOS para esse diretório também, então uma sessão com um `CLAUDE_CONFIG_DIR` diferente lê uma entrada diferente.

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

193* **Tipos de autenticação suportados**: credenciais Claude.ai, credenciais da API Claude, Microsoft Foundry Auth, Bedrock Auth, Vertex Auth, credenciais de perfil Anthropic e [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation), e tokens de sessão do [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway).193* **Tipos de autenticação suportados**: credenciais claude.ai, credenciais da API Claude, Microsoft Foundry Auth, Bedrock Auth, Vertex Auth, credenciais de perfil Anthropic e [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation), e tokens de sessão do [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway).

194* **Scripts de credenciais personalizados**: configure a configuração [`apiKeyHelper`](/docs/pt/settings-reference#apikeyhelper) para executar um script de shell que retorna uma chave de API.194* **Scripts de credenciais personalizados**: configure a configuração [`apiKeyHelper`](/docs/pt/settings-reference#apikeyhelper) para executar um script de shell que retorna uma chave de API.

195* **Intervalos de atualização**: Claude Code executa novamente `apiKeyHelper` após cinco minutos por padrão. Defina a variável de ambiente `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` para intervalos de atualização personalizados. Consulte [`apiKeyHelper`](/docs/pt/settings-reference#apikeyhelper) para os outros casos em que Claude Code executa novamente o helper.195* **Intervalos de atualização**: Claude Code executa novamente `apiKeyHelper` após cinco minutos por padrão. Defina a variável de ambiente `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` para intervalos de atualização personalizados. Consulte [`apiKeyHelper`](/docs/pt/settings-reference#apikeyhelper) para os outros casos em que Claude Code executa novamente o helper.

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


236 236 

237Execute `unset ANTHROPIC_API_KEY` para voltar à sua assinatura e verifique `/status` para confirmar qual método está ativo. Quando um login e uma chave de API estão ambos configurados, `/status` marca a credencial que não está em uso.237Execute `unset ANTHROPIC_API_KEY` para voltar à sua assinatura e verifique `/status` para confirmar qual método está ativo. Quando um login e uma chave de API estão ambos configurados, `/status` marca a credencial que não está em uso.

238 238 

239[Claude Code na Web](/docs/pt/claude-code-on-the-web) sempre usa suas credenciais de assinatura. Se você definir `ANTHROPIC_API_KEY` ou `ANTHROPIC_AUTH_TOKEN` no ambiente sandbox, isso não substitui suas credenciais de assinatura.239[Sessões na nuvem](/docs/pt/claude-code-on-the-web) sempre usam suas credenciais de assinatura. Se você definir `ANTHROPIC_API_KEY` ou `ANTHROPIC_AUTH_TOKEN` no ambiente na nuvem, isso não substitui suas credenciais de assinatura.

240 240 

241<h4 id="anthropic-profiles-and-federation-credentials">241<h4 id="anthropic-profiles-and-federation-credentials">

242 Perfis Anthropic e credenciais de federação242 Perfis Anthropic e credenciais de federação

Details

99 * **Organization**99 * **Organization**

100 * **Primary use of Claude Code**: padronizado para desenvolvimento de software100 * **Primary use of Claude Code**: padronizado para desenvolvimento de software

101 * **Cloud provider(s)**101 * **Cloud provider(s)**

102 * **Repository visibility**: um repositório é assumido como privado a menos que seu host remoto e nome indiquem o contrário, ou uma verificação de visibilidade anterior na conversa que o classificador lê mostre que é público. O classificador lê suas mensagens e os comandos que Claude executa, não sua saída, portanto a evidência deve ser algo que ele possa ler, como sua própria mensagem nomeando o repositório como público; a saída de um `gh repo view` por si só não o alcança. A verificação de evidência de transcrição requer Claude Code v2.1.200 ou posterior102 * **Repository visibility**: um repositório é assumido como privado a menos que seu host remoto e nome indiquem o contrário, ou o classificador leia uma verificação de visibilidade anterior na conversa mostrando que é público.

103 

104 Nas solicitações do classificador enviadas pelo Claude Code em si, o classificador lê suas mensagens e os comandos que Claude executa, não sua saída. A evidência deve ser algo que o classificador possa ler, como sua própria mensagem nomeando o repositório como público; a saída de um `gh repo view` por si só não o alcança. A verificação de evidência de transcrição requer Claude Code v2.1.200 ou posterior

103 * **Internal sharing / snippet hosting**: serviços públicos de paste e gist são tratados como fora do limite de confiança até você nomear um105 * **Internal sharing / snippet hosting**: serviços públicos de paste e gist são tratados como fora do limite de confiança até você nomear um

104 * **Org-specific CLIs**106 * **Org-specific CLIs**

105 * **Secrets management**107 * **Secrets management**


305 Rotear todos os comandos shell através do classificador307 Rotear todos os comandos shell através do classificador

306</h2>308</h2>

307 309 

308Por padrão, as regras estreitas de Bash e PowerShell, como `Bash(npm test)`, permanecem em vigor no modo automático, e Claude Code as resolve antes do classificador ser executado. Claude Code suspende apenas as regras amplas que concedem execução arbitrária de código, como `Bash(*)` ou intérpretes com caracteres curinga, juntamente com cada regra que nomeia [`Monitor`](/docs/pt/tools-reference#monitor-tool), porque os comandos Monitor são executados através do shell. Isso significa que uma regra estreita ainda pode deixar um argumento destrutivo passar sem o classificador vê-lo, por exemplo um caminho de script ou sinalizador que o prefixo da regra não antecipou.310Por padrão, as regras estreitas de Bash e PowerShell, como `Bash(npm test)`, permanecem em vigor no modo automático. Claude Code as resolve antes do classificador ser executado, a menos que o comando tenha [domínios permitidos por comando](/docs/pt/sandboxing#per-command-allowed-domains-in-auto-mode). Claude Code suspende apenas as regras amplas que concedem execução arbitrária de código, como `Bash(*)` ou intérpretes com caracteres curinga, juntamente com cada regra que nomeia [`Monitor`](/docs/pt/tools-reference#monitor-tool), porque os comandos Monitor são executados através do shell. Isso significa que uma regra estreita ainda pode deixar um argumento destrutivo passar sem o classificador vê-lo, por exemplo um caminho de script ou sinalizador que o prefixo da regra não antecipou.

309 311 

310Defina `autoMode.classifyAllShell` como `true` para suspender cada regra de permissão de Bash e PowerShell enquanto o modo automático estiver ativo, para que o classificador avalie cada comando shell independentemente da sua lista de permissões.312Defina `autoMode.classifyAllShell` como `true` para suspender cada regra de permissão de Bash e PowerShell enquanto o modo automático estiver ativo, para que o classificador avalie cada comando shell independentemente da sua lista de permissões.

311 313 

Details

12 12 

13Mas essa autonomia ainda vem com uma curva de aprendizado. Claude trabalha dentro de certas restrições que você precisa entender.13Mas essa autonomia ainda vem com uma curva de aprendizado. Claude trabalha dentro de certas restrições que você precisa entender.

14 14 

15Este guia cobre padrões que se mostraram eficazes nas equipes internas da Anthropic e para engenheiros usando Claude Code em vários codebases, linguagens e ambientes. Para saber como o loop agentic funciona nos bastidores, consulte [How Claude Code works](/docs/pt/how-claude-code-works).15Este guia cobre padrões que se mostraram eficazes nas equipes internas da Anthropic e para engenheiros usando Claude Code em vários codebases, linguagens e ambientes. Para saber como o loop agentic funciona, consulte [How Claude Code works](/docs/pt/how-claude-code-works).

16 16 

17***17***

18 18 

channels.md +6 −4

Details

247 * `Marketplace "claude-plugins-official" not found`: adicione o marketplace com `/plugin marketplace add anthropics/claude-plugins-official`, depois tente novamente a instalação.247 * `Marketplace "claude-plugins-official" not found`: adicione o marketplace com `/plugin marketplace add anthropics/claude-plugins-official`, depois tente novamente a instalação.

248 * O plugin é [não encontrado no marketplace](/docs/pt/discover-plugins#install-plugins): verifique o nome do plugin.248 * O plugin é [não encontrado no marketplace](/docs/pt/discover-plugins#install-plugins): verifique o nome do plugin.

249 249 

250 Quando a instalação solicitar um escopo de instalação, escolha a opção de escopo do usuário para que o plugin esteja disponível em todos os seus projetos. Se o resumo da instalação relatar `Run /reload-plugins to activate.`, você pode pular isso aqui, porque reiniciar na próxima etapa seleciona o plugin.250 Quando a instalação solicitar um escopo de instalação, escolha a opção de escopo do usuário para que o plugin esteja disponível em todos os seus projetos.

251 

252 Se o resumo da instalação relatar `Run /reload-plugins to activate.`, você não precisa agir sobre isso aqui, porque reiniciar na próxima etapa seleciona o plugin.

251 </Step>253 </Step>

252 254 

253 <Step title="Reiniciar com o canal habilitado">255 <Step title="Reiniciar com o canal habilitado">


368Vários recursos do Claude Code se conectam a sistemas fora do terminal, cada um adequado para um tipo diferente de trabalho:370Vários recursos do Claude Code se conectam a sistemas fora do terminal, cada um adequado para um tipo diferente de trabalho:

369 371 

370| Recurso | O que faz | Bom para |372| Recurso | O que faz | Bom para |

371| ------------------------------------------------ | -------------------------------------------------------------------------- | ----------------------------------------------------------------- |373| -------------------------------------------- | ------------------------------------------------------------------------------- | ----------------------------------------------------------------- |

372| [Claude Code na web](/docs/pt/claude-code-on-the-web) | Executa tarefas em uma nova sandbox na nuvem, clonada do GitHub | Delegar trabalho assíncrono independente que você verifica depois |374| [Cloud sessions](/docs/pt/claude-code-on-the-web) | Executa tarefas em uma nova sandbox na nuvem, clonada do GitHub | Delegar trabalho assíncrono independente que você verifica depois |

373| [Claude no Slack](/docs/pt/slack) | Gera uma sessão web a partir de uma menção `@Claude` em um canal ou thread | Iniciar tarefas diretamente do contexto de conversa da equipe |375| [Claude no Slack](/docs/pt/slack) | Gera uma sessão na nuvem a partir de uma menção `@Claude` em um canal ou thread | Iniciar tarefas diretamente do contexto de conversa da equipe |

374| Servidor [MCP](/docs/pt/mcp) padrão | Claude o consulta durante uma tarefa; nada é enviado para a sessão | Dar ao Claude acesso sob demanda para ler ou consultar um sistema |376| Servidor [MCP](/docs/pt/mcp) padrão | Claude o consulta durante uma tarefa; nada é enviado para a sessão | Dar ao Claude acesso sob demanda para ler ou consultar um sistema |

375| [Remote Control](/docs/pt/remote-control) | Você dirige sua sessão local de claude.ai ou do aplicativo móvel Claude | Dirigir uma sessão em andamento enquanto está longe de sua mesa |377| [Remote Control](/docs/pt/remote-control) | Você dirige sua sessão local de claude.ai ou do aplicativo móvel Claude | Dirigir uma sessão em andamento enquanto está longe de sua mesa |

376 378 

Details

66 66 

67<Steps>67<Steps>

68 <Step title="Criar o projeto">68 <Step title="Criar o projeto">

69 Os exemplos de retransmissão de permissão mais adiante nesta página importam `zod` diretamente, então ele é instalado junto com o MCP SDK. Crie um novo diretório e instale ambos:69 Os exemplos de [retransmissão de permissão](#relay-permission-prompts) importam `zod` diretamente, então ele é instalado junto com o MCP SDK. Crie um novo diretório e instale ambos:

70 70 

71 ```bash theme={null}71 ```bash theme={null}

72 mkdir webhook-channel && cd webhook-channel72 mkdir webhook-channel && cd webhook-channel


116 })116 })

117 ```117 ```

118 118 

119 O arquivo faz três coisas em ordem:119 O arquivo configura o servidor, conecta via stdio e inicia um listener HTTP, nessa ordem:

120 120 

121 * **Configuração do servidor**: cria o servidor MCP com `claude/channel` em suas capacidades, o que é o que diz a Claude Code que este é um channel. Claude Code entrega a string [`instructions`](#server-options) a Claude como contexto quando o servidor se conecta: diga a Claude quais eventos esperar, se deve responder e como rotear respostas se deve.121 * **Configuração do servidor**: cria o servidor MCP com `claude/channel` em suas capacidades, o que é o que diz a Claude Code que este é um channel. Claude Code entrega a string [`instructions`](#server-options) a Claude como contexto quando o servidor se conecta: diga a Claude quais eventos esperar, se deve responder e como rotear respostas se deve.

122 * **Conexão stdio**: conecta a Claude Code via stdin/stdout. Isto é padrão para qualquer [servidor MCP](https://modelcontextprotocol.io/docs/concepts/transports#standard-io).122 * **Conexão stdio**: conecta a Claude Code via stdin/stdout. Isto é padrão para qualquer [servidor MCP](https://modelcontextprotocol.io/docs/concepts/transports#standard-io).


509 509 

510O mascaramento não muda quem recebe os campos. O que quer que permaneça sem mascaramento vai apenas para servidores que você optou com `--channels` ou a flag de desenvolvimento. Trate ambos os campos como não confiáveis a menos que você controle a frota de clientes.510O mascaramento não muda quem recebe os campos. O que quer que permaneça sem mascaramento vai apenas para servidores que você optou com `--channels` ou a flag de desenvolvimento. Trate ambos os campos como não confiáveis a menos que você controle a frota de clientes.

511 511 

512O veredicto que seu servidor envia de volta é `notifications/claude/channel/permission` com dois campos: `request_id` ecoando o ID acima, e `behavior` definido como `'allow'` ou `'deny'`. Allow deixa a chamada de ferramenta prosseguir; deny a rejeita, o mesmo que responder Não no diálogo local. Nenhum veredicto afeta chamadas futuras.512O veredicto que seu servidor envia de volta é `notifications/claude/channel/permission` com dois campos: `request_id` ecoando o ID acima, e `behavior` definido como `'allow'` ou `'deny'`. Allow deixa a chamada de ferramenta prosseguir; deny a rejeita. Nenhum veredicto afeta chamadas futuras.

513 513 

514<h3 id="add-relay-to-a-chat-bridge">514<h3 id="add-relay-to-a-chat-bridge">

515 Adicionar retransmissão a uma ponte de chat515 Adicionar retransmissão a uma ponte de chat

Details

85 Alterações de comando Bash não rastreadas85 Alterações de comando Bash não rastreadas

86</h3>86</h3>

87 87 

88O checkpointing não rastreia arquivos modificados por comandos bash. Por exemplo, se Claude Code executar:88O checkpointing não rastreia arquivos modificados por comandos Bash. Por exemplo, se Claude Code executar:

89 89 

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

91rm file.txt91rm file.txt

Details

62Este guia de início rápido percorre o caminho mínimo: registre um cliente OAuth em seu IdP, escreva um `gateway.yaml`, execute o gateway junto com Postgres usando Docker Compose, e verifique o sign-in de ponta a ponta. Usa um upstream Amazon Bedrock; Claude Platform on AWS, Agent Platform do Google Cloud, Microsoft Foundry e a API Anthropic são igualmente suportados trocando o bloco `upstreams` conforme mostrado na [referência de configuração](/docs/pt/claude-apps-gateway-config#upstreams). No final você tem um gateway que um desenvolvedor pode fazer `/login`.62Este guia de início rápido percorre o caminho mínimo: registre um cliente OAuth em seu IdP, escreva um `gateway.yaml`, execute o gateway junto com Postgres usando Docker Compose, e verifique o sign-in de ponta a ponta. Usa um upstream Amazon Bedrock; Claude Platform on AWS, Agent Platform do Google Cloud, Microsoft Foundry e a API Anthropic são igualmente suportados trocando o bloco `upstreams` conforme mostrado na [referência de configuração](/docs/pt/claude-apps-gateway-config#upstreams). No final você tem um gateway que um desenvolvedor pode fazer `/login`.

63 63 

64<Note>64<Note>

65 **Implante em sua rede privada.** Claude Code só se conecta a um gateway cujo endereço é privado. Esta é uma proteção de segurança, porque um gateway confiável pode enviar configurações que executam comandos em máquinas de desenvolvedores. Coloque o gateway atrás de um balanceador de carga interno ou VPN e dê a ele um nome de host que resolve apenas para IPs privados.65 **Implante em sua rede privada.** Claude Code só se conecta a um gateway cujo endereço é privado. Esta é uma proteção de segurança, porque um gateway confiável pode enviar configurações que executam comandos em máquinas de desenvolvedores. Coloque o gateway atrás de um balanceador de carga interno ou VPN e dê a ele um nome de host que resolve apenas para IPs privados. Se sua rede interna for numerada a partir do espaço IPv4 público que sua organização possui, consulte [Permitir um gateway em espaço de endereço público que você possui](#allow-a-gateway-on-public-address-space-you-own).

66</Note>66</Note>

67 67 

68<h3 id="prerequisites">68<h3 id="prerequisites">


72Tenha estes em vigor antes de começar:72Tenha estes em vigor antes de começar:

73 73 

74| Você precisa | Detalhes |74| Você precisa | Detalhes |

75| -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |75| -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

76| Claude Code v2.1.195 ou posterior | O subcomando `claude gateway` e o fluxo de sign-in do gateway são enviados na v2.1.195. Compilações públicas anteriores não as incluem. Tanto a máquina executando o servidor gateway quanto a máquina de cada desenvolvedor devem estar na v2.1.195 ou posterior; execute `claude update` para obter a versão mais recente. O [upstream Claude Platform on AWS](/docs/pt/claude-apps-gateway-config#claude-platform-on-aws) requer Claude Code v2.1.198 ou posterior no servidor gateway. |76| Claude Code v2.1.195 ou posterior | O subcomando `claude gateway` e o fluxo de sign-in do gateway são enviados na v2.1.195. Compilações públicas anteriores não as incluem. Tanto a máquina executando o servidor gateway quanto a máquina de cada desenvolvedor devem estar na v2.1.195 ou posterior; execute `claude update` para obter a versão mais recente. O [upstream Claude Platform on AWS](/docs/pt/claude-apps-gateway-config#claude-platform-on-aws) requer Claude Code v2.1.198 ou posterior no servidor gateway. |

77| Provedor de identidade OpenID Connect (OIDC) | Okta, Microsoft Entra ID, Google Workspace, Keycloak ou Dex, ou qualquer outro IdP compatível com OIDC, como PingFederate. O gateway executa descoberta OIDC padrão e o fluxo de código de autorização contra ele. SAML e LDAP não são suportados. |77| Provedor de identidade OpenID Connect (OIDC) | Okta, Microsoft Entra ID, Google Workspace, Keycloak ou Dex, ou qualquer outro IdP compatível com OIDC, como PingFederate. O gateway executa descoberta OIDC padrão e o fluxo de código de autorização contra ele. SAML e LDAP não são suportados. |

78| PostgreSQL 14 ou posterior | Faz backup do fluxo de sign-in do dispositivo, onde o callback do navegador escreve e a CLI de polling lê, além de contadores de limite de taxa. Qualquer Postgres gerenciado funciona, incluindo o menor nível. Sem limites de gastos configurados, o gateway armazena alguns KB de estado de autenticação de curta duração; com [limites de gastos](/docs/pt/claude-apps-gateway-spend-limits), também mantém tabelas de gastos, auditoria e identidade duráveis que devem ser feitas backup. TLS via `?sslmode=require` é recomendado. |78| PostgreSQL 14 ou posterior | Faz backup do fluxo de sign-in do dispositivo, onde o callback do navegador escreve e a CLI de polling lê, além de contadores de limite de taxa. Qualquer Postgres gerenciado funciona, incluindo o menor nível. Sem limites de gastos configurados, o gateway armazena alguns KB de estado de autenticação de curta duração; com [limites de gastos](/docs/pt/claude-apps-gateway-spend-limits), também mantém tabelas de gastos, auditoria e identidade duráveis que devem ser feitas backup. TLS via `?sslmode=require` é recomendado. |

79| Upstream de modelo | Credenciais do Amazon Bedrock, credenciais do Claude Platform on AWS, credenciais do Google Cloud, um recurso Microsoft Foundry ou uma chave de API Anthropic. Múltiplos upstreams são suportados com failover. |79| Upstream de modelo | Credenciais do Amazon Bedrock, credenciais do Claude Platform on AWS, credenciais do Google Cloud, um recurso Microsoft Foundry ou uma chave de API Anthropic. Múltiplos upstreams são suportados com failover. |

80| HTTPS | O gateway deve ser acessível via `https://` de laptops de desenvolvedores e de qualquer navegador usado para sign-in; o gateway serve a página de verificação do dispositivo no mesmo listener. Forneça um certificado TLS via `listen.tls` ou execute atrás de um ingress que termina TLS e defina `listen.public_url` para a origem externa em ambos os casos. Uma origem `http://` simples é aceita apenas quando o host do gateway é loopback: `localhost`, `127.0.0.1` ou `::1`. |80| HTTPS | O gateway deve ser acessível via `https://` de laptops de desenvolvedores e de qualquer navegador usado para sign-in; o gateway serve a página de verificação do dispositivo no mesmo listener. Forneça um certificado TLS via `listen.tls` ou execute atrás de um ingress que termina TLS e defina `listen.public_url` para a origem externa em ambos os casos. Uma origem `http://` simples é aceita apenas quando o host do gateway é loopback: `localhost`, `127.0.0.1` ou `::1`. |

81| Endereço de rede privada | Em `/login`, Claude Code requer que o nome de host ou endereço IP do gateway resolva apenas para endereços privados: RFC 1918, link-local, CGNAT `100.64.0.0/10`, ULA IPv6 `fc00::/7` ou loopback. Para um gateway que você hospeda, qualquer endereço público é rejeitado; consulte o [modelo de ameaça](/docs/pt/claude-apps-gateway-deploy#threat-model-summary) no guia de implantação. A verificação é executada em cada IP resolvido, então se qualquer endereço para o qual o nome resolve for público, `/login` rejeita a URL. Se máquinas de desenvolvedores rotear HTTPS através de um proxy corporativo, o sign-in também requer que o host proxy resolva para endereços privados; se não resolver, adicione o host do gateway a `NO_PROXY` para que a CLI se conecte diretamente. |81| Endereço de rede privada | Em `/login`, Claude Code requer que o nome de host ou endereço IP do gateway resolva apenas para endereços privados: RFC 1918, link-local, CGNAT `100.64.0.0/10`, ULA IPv6 `fc00::/7` ou loopback. Para um gateway que você hospeda, qualquer endereço público fora de um bloco que você declara é rejeitado; consulte o [modelo de ameaça](/docs/pt/claude-apps-gateway-deploy#threat-model-summary) no guia de implantação. Se máquinas de desenvolvedores rotear HTTPS através de um proxy corporativo, o sign-in também requer que o host proxy resolva para endereços privados; se não resolver, adicione o host do gateway a `NO_PROXY` para que a CLI se conecte diretamente. Se sua rede interna for numerada a partir do espaço IPv4 público que sua organização possui, [declare esses blocos](#allow-a-gateway-on-public-address-space-you-own) para que `/login` aceite um gateway lá. |

82| Runtime Linux | O servidor gateway é executado apenas no binário Linux nativo. macOS funciona para desenvolvimento local. Windows não é suportado como plataforma de servidor. |82| Runtime Linux | O servidor gateway é executado apenas no binário Linux nativo. macOS funciona para desenvolvimento local. Windows não é suportado como plataforma de servidor. |

83 83 

84<h3 id="steps">84<h3 id="steps">


135 Esta configuração é suficiente para um loop de sign-in funcionando com o catálogo de modelos Bedrock padrão. Uma vez em execução, adicione RBAC por grupo e configurações gerenciadas via [`managed.policies`](/docs/pt/claude-apps-gateway-config#managed), fan-out de telemetria via [`telemetry`](/docs/pt/claude-apps-gateway-config#telemetry), e failover multi-upstream, ARNs de throughput provisionado ou regiões não-US via [`models`](/docs/pt/claude-apps-gateway-config#models).135 Esta configuração é suficiente para um loop de sign-in funcionando com o catálogo de modelos Bedrock padrão. Uma vez em execução, adicione RBAC por grupo e configurações gerenciadas via [`managed.policies`](/docs/pt/claude-apps-gateway-config#managed), fan-out de telemetria via [`telemetry`](/docs/pt/claude-apps-gateway-config#telemetry), e failover multi-upstream, ARNs de throughput provisionado ou regiões não-US via [`models`](/docs/pt/claude-apps-gateway-config#models).

136 136 

137 <Note>137 <Note>

138 O upstream Amazon Bedrock precisa de um principal AWS com `bedrock:InvokeModel` e `bedrock:InvokeModelWithResponseStream` nos ARNs `inference-profile/us.anthropic.*` e nos ARNs `foundation-model/anthropic.*` subjacentes. Ele também precisa do formulário de caso de uso único da Anthropic enviado para a conta a partir do catálogo de modelos do console Bedrock. Forneça a credencial com IRSA no EKS, uma função de tarefa ECS ou um perfil de instância EC2 em vez de chaves estáticas. A [referência `upstreams`](/docs/pt/claude-apps-gateway-config#upstreams) tem os detalhes completos do IAM, a matriz de credencial entre nuvens e os blocos `auth` para os outros provedores.138 O upstream Amazon Bedrock precisa de um principal AWS com `bedrock:InvokeModel` e `bedrock:InvokeModelWithResponseStream` nos ARNs `inference-profile/us.anthropic.*` e nos ARNs `foundation-model/anthropic.*` subjacentes. Ele também precisa do formulário de caso de uso único da Anthropic enviado para a conta a partir do catálogo de modelos do console Bedrock.

139 

140 Forneça a credencial com IRSA no EKS, uma função de tarefa ECS ou um perfil de instância EC2 em vez de chaves estáticas. A [referência `upstreams`](/docs/pt/claude-apps-gateway-config#upstreams) tem os detalhes completos do IAM, a matriz de credencial entre nuvens e os blocos `auth` para os outros provedores.

139 </Note>141 </Note>

140 </Step>142 </Step>

141 143 


185 [gateway] 2026-06-10T17:03:21.512Z info claude gateway listening on http://0.0.0.0:8080187 [gateway] 2026-06-10T17:03:21.512Z info claude gateway listening on http://0.0.0.0:8080

186 ```188 ```

187 189 

190 O gateway também registra um aviso de que `access_control.allow_cidrs` está vazio. Isso é esperado aqui, porque nada limita quais endereços de cliente o gateway serve até que você defina uma lista de permissões. A [referência `access_control`](/docs/pt/claude-apps-gateway-config#http-tuning) tem os intervalos recomendados.

191 

188 Se a inicialização sair antes da linha `claude gateway listening on`, a última linha de stderr nomeia o problema:192 Se a inicialização sair antes da linha `claude gateway listening on`, a última linha de stderr nomeia o problema:

189 193 

190 * um Postgres inacessível194 * um Postgres inacessível


198 </Step>202 </Step>

199 203 

200 <Step title="Verifique a superfície de autenticação">204 <Step title="Verifique a superfície de autenticação">

201 Três verificações confirmam que o gateway pode autenticar um usuário real antes de entregá-lo a um desenvolvedor.205 Três verificações confirmam que o gateway pode autenticar um usuário real antes de você compartilhá-lo com um desenvolvedor.

202 206 

203 Os exemplos usam a URL pública do gateway; para a configuração local do Compose sem um ingress, substitua `http://localhost:8080` nas duas primeiras verificações. A terceira verificação abre `verification_uri_complete`, que é construída a partir de `public_url`, então para Compose local defina `public_url: http://localhost:8080` em `gateway.yaml` e adicione `http://localhost:8080/oauth/callback` como um segundo URI de redirecionamento no cliente OAuth da etapa 1, porque o gateway constrói o `redirect_uri` do IdP a partir de `public_url`. O link de verificação então abre em seu navegador local.207 Os exemplos usam a URL pública do gateway; para a configuração local do Compose sem um ingress, substitua `http://localhost:8080` nas duas primeiras verificações. A terceira verificação abre `verification_uri_complete`, que é construída a partir de `public_url`, então para Compose local defina `public_url: http://localhost:8080` em `gateway.yaml` e adicione `http://localhost:8080/oauth/callback` como um segundo URI de redirecionamento no cliente OAuth da etapa 1, porque o gateway constrói o `redirect_uri` do IdP a partir de `public_url`. O link de verificação então abre em seu navegador local.

204 208 


291 295 

292Um desenvolvedor não pode configurar isso manualmente. O seletor de login não tem opção de gateway, e `forceLoginGatewayUrl` é ignorado nos arquivos de configurações próprias de um desenvolvedor. `forceLoginMethod` sozinho, sem uma URL, deixa o desenvolvedor em uma mensagem "Entre em contato com seu administrador de TI". As chaves de login pertencem ao arquivo que você envia para máquinas, não ao bloco `managed.policies[].cli` do gateway, que só alcança clientes que já estão conectados.296Um desenvolvedor não pode configurar isso manualmente. O seletor de login não tem opção de gateway, e `forceLoginGatewayUrl` é ignorado nos arquivos de configurações próprias de um desenvolvedor. `forceLoginMethod` sozinho, sem uma URL, deixa o desenvolvedor em uma mensagem "Entre em contato com seu administrador de TI". As chaves de login pertencem ao arquivo que você envia para máquinas, não ao bloco `managed.policies[].cli` do gateway, que só alcança clientes que já estão conectados.

293 297 

298<h3 id="allow-a-gateway-on-public-address-space-you-own">

299 Permitir um gateway em espaço de endereço público que você possui

300</h3>

301 

302Algumas organizações numerem sua rede interna a partir de um bloco IPv4 público que possuem, como o espaço de endereço próprio de uma operadora ou um `/8` legado, então seu gateway não pode ter um endereço privado. Liste esses blocos na configuração gerenciada `gatewayInternalNetworks`. `/login` então aceita um gateway dentro de um bloco listado quando a máquina do desenvolvedor se conecta a ele a partir de um endereço dentro do mesmo bloco. Isso requer Claude Code v2.1.268 ou posterior na máquina do desenvolvedor; versões anteriores ignoram a chave e aplicam a regra de endereço privado.

303 

304<Warning>

305 `gatewayInternalNetworks` é para redes internas que acontecem de ser numeradas a partir de espaço de endereço público. Não torna seguro expor um gateway para a internet: um gateway confiável pode enviar configurações que executam comandos em máquinas de desenvolvedores.

306 

307 Mantenha o gateway inacessível de fora de sua rede com suas regras de firewall ou balanceador de carga. Defina o [`access_control.allow_cidrs`](/docs/pt/claude-apps-gateway-config#http-tuning) do gateway para os mesmos blocos que você declara aqui, então o gateway em si recusa clientes de qualquer outro lugar. Atrás de um balanceador de carga ou ingress, defina `listen.trusted_proxies` para esse front end também, porque o gateway de outra forma corresponde `allow_cidrs` contra o próprio endereço do front end em vez do desenvolvedor.

308</Warning>

309 

310Adicione a chave à mesma fonte de configurações gerenciadas que as chaves de login: o arquivo de configurações gerenciadas, perfil MDM ou política de registro. Claude Code a ignora em configurações de usuário, projeto e gerenciadas pelo servidor.

311 

312Este exemplo declara um bloco. Substitua `203.0.113.0/24` pelo seu próprio bloco. É um intervalo de documentação, e Claude Code recusa aqueles.

313 

314```json theme={null}

315{

316 "gatewayInternalNetworks": ["203.0.113.0/24"]

317}

318```

319 

320Claude Code valida a lista em `/login` antes de contatar qualquer gateway:

321 

322* Cada entrada é um bloco IPv4 escrito como seu primeiro endereço e um prefixo de `/8` a `/32`.

323* A lista contém no máximo quatro blocos, e nenhum dois se sobrepõem.

324* Nenhum bloco se sobrepõe ao espaço de endereço privado: `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`, `127.0.0.0/8`, `169.254.0.0/16` e `100.64.0.0/10`. `/login` já aceita um gateway lá sem essa chave.

325* Nenhum bloco se sobrepõe ao espaço que nunca é a rede de uma organização: `198.18.0.0/15` e `192.0.0.0/24`, que clientes VPN e NAT64 mantêm como endereços locais; os intervalos de documentação `192.0.2.0/24`, `198.51.100.0/24` e `203.0.113.0/24`; e os intervalos reservados `0.0.0.0/8`, `192.88.99.0/24` e multicast `224.0.0.0/4`. Você pode declarar blocos dentro de `240.0.0.0/4`, que algumas redes grandes usam como espaço unicast interno.

326 

327Blocos de `managed-settings.json` e seus arquivos drop-in `managed-settings.d/` se combinam em uma lista, e esses limites se aplicam à lista combinada. Para estreitar um bloco, substitua sua entrada em vez de adicionar uma segunda, sobreposta em um drop-in; `/login` recusa a sobreposição.

328 

329Se uma entrada quebra uma regra, ou o valor não é uma lista de strings, Claude Code recusa cada novo sign-in de gateway nessa máquina e nomeia o problema na mensagem. O sign-in para um gateway em um endereço privado também falha, e sign-ins existentes continuam funcionando. Tente o valor em uma máquina antes de implantá-lo. Claude Code também lista um valor digitado incorretamente entre as [configurações gerenciadas inválidas que relata](/docs/pt/managed-settings#keys-that-fail-closed).

330 

331Com uma lista válida, `/login` aplica três verificações a um gateway cujo endereço está dentro de um bloco listado:

332 

333* Cada endereço para o qual o nome de host do gateway é resolvido está dentro daquele bloco. Claude Code recusa um nome que também tem registros fora dele, endereços privados e IPv6 incluídos.

334* A máquina do desenvolvedor se conecta de dentro do mesmo bloco. Claude Code recusa uma máquina atrás de NAT, dentro de um container ou WSL2, ou em uma VPN cujo pool de endereços fica fora do bloco, e nomeia o endereço a partir do qual a máquina se conectou.

335* A conexão é direta. Se `HTTPS_PROXY` se aplica ao host do gateway, `/login` recusa e nomeia a entrada `NO_PROXY` a adicionar.

336 

337Quando todos os três passam, o [prompt de confiança](#connect-developers) adiciona uma linha nomeando o endereço da máquina, o endereço do gateway e o bloco declarado que contém ambos.

338 

339A chave não muda nada para outros gateways: o sign-in para um em um endereço privado funciona como antes, e o sign-in para um em um endereço público fora de cada bloco listado é recusado como antes.

340 

341Um bloco declarado estreita quem pode fazer sign-in mas não prova onde uma máquina está, então declare apenas espaço de endereço que sua organização controla. Um bloco compartilhado com outros tenants, como um intervalo público de um provedor de nuvem, deixa qualquer um nele passar na mesma verificação.

342 

294<h3 id="deliver-policy-to-claude-desktop-sessions">343<h3 id="deliver-policy-to-claude-desktop-sessions">

295 Entregar política para sessões Claude Desktop344 Entregar política para sessões Claude Desktop

296</h3>345</h3>


381 Comportamento de bloqueio entre fontes430 Comportamento de bloqueio entre fontes

382</h4>431</h4>

383 432 

384Definir um bloqueio não restringe os outros; cada chave é documentada na [referência de configurações](/docs/pt/settings-reference#all-settings). De uma fonte de administrador abaixo do vencedor, os dois bloqueios de sandbox ainda se aplicam, e `allowManagedPermissionRulesOnly` ainda bloqueia regras de acesso fornecidas pelo pai e `additionalDirectories`. Os bloqueios de hooks e servidor MCP, e o efeito de `allowManagedPermissionRulesOnly` nas regras próprias do desenvolvedor, precisam da fonte vencedora por padrão; sob a aceitação de mesclagem `managedSourcesBehavior` em [como Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#how-claude-code-combines-managed-sources), Claude Code aplica o valor mais rigoroso que qualquer fonte define para cada bloqueio. Em frotas [`policyHelper`](/docs/pt/settings-reference#policyhelper), os bloqueios são lidos apenas da saída do helper.433Definir um bloqueio não restringe os outros; cada chave é documentada na [referência de configurações](/docs/pt/settings-reference#all-settings). De uma fonte de administrador abaixo do vencedor, os dois bloqueios de sandbox ainda se aplicam, e `allowManagedPermissionRulesOnly` ainda bloqueia regras de acesso fornecidas pelo pai e `additionalDirectories`. No Claude Code v2.1.273 ou posterior, o bloqueio de servidor MCP também se aplica de uma fonte abaixo do vencedor, e enquanto estiver ativado, a lista gerenciada `allowedMcpServers` vem da fonte de administrador de prioridade mais alta que define uma.

434 

435O bloqueio de hooks e o efeito de `allowManagedPermissionRulesOnly` nas regras próprias do desenvolvedor precisam da fonte vencedora por padrão; sob a aceitação de mesclagem `managedSourcesBehavior` em [como Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#how-claude-code-combines-managed-sources), Claude Code aplica o valor mais rigoroso que qualquer fonte define para cada bloqueio. Em frotas [`policyHelper`](/docs/pt/settings-reference#policyhelper), Claude Code lê os bloqueios apenas da saída do helper.

436 

437Cada bloqueio faz Claude Code ignorar as entradas próprias do desenvolvedor para essa configuração, então inclua as listas de permissões da sua organização ao lado dos bloqueios:

385 438 

386Cada bloqueio faz Claude Code ignorar as entradas próprias do desenvolvedor para essa configuração, então inclua as listas de permissões da sua organização ao lado dos bloqueios. Bloquear domínios de rede com uma lista de domínios gerenciados vazia bloqueia todo o tráfego de saída em sandbox, e bloquear servidores MCP sem `allowedMcpServers` gerenciado ou fornecido pelo pai carrega cada servidor que `deniedMcpServers` não bloqueia. Entradas `allowRead` apenas re-permitem caminhos dentro de regiões `denyRead`, então emparelhe-as com um `denyRead` gerenciado.439* **Domínios de rede**: bloquear com uma lista de domínios gerenciados vazia bloqueia todo o tráfego de saída em sandbox.

440* **Servidores MCP**: bloquear sem `allowedMcpServers` em qualquer fonte de administrador ou nas configurações fornecidas pelo pai carrega cada servidor que `deniedMcpServers` não bloqueia.

441* **Caminhos de leitura**: entradas `allowRead` apenas re-permitem caminhos dentro de regiões `denyRead`, então emparelhe-as com um `denyRead` gerenciado.

387 442 

388<h4 id="settings-the-locks-don’t-cover">443<h4 id="settings-the-locks-don’t-cover">

389 Configurações que os bloqueios não cobrem444 Configurações que os bloqueios não cobrem

390</h4>445</h4>

391 446 

392Quatro configurações fornecidas pelo pai passam pelo filtro mesmo com todos os cinco bloqueios definidos. Sob a configuração padrão de primeiro vencedor, o valor de administrador que bloqueia o do pai é aquele na fonte de administrador de prioridade mais alta. Sob a aceitação de mesclagem `managedSourcesBehavior`, [como Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#how-claude-code-combines-managed-sources) diz qual valor da fonte se aplica em vez disso.447Quatro configurações fornecidas pelo pai passam pelo filtro mesmo com todos os cinco bloqueios definidos. Sob a configuração padrão de primeiro vencedor, o valor de administrador que bloqueia o do pai é aquele na fonte de administrador de prioridade mais alta, exceto para `allowedMcpServers` enquanto o [bloqueio de servidor MCP](#lock-behavior-across-sources) está ativado. Sob a aceitação de mesclagem `managedSourcesBehavior`, [como Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#how-claude-code-combines-managed-sources) diz qual valor da fonte se aplica em vez disso.

393 448 

394* **`forceLoginOrgUUID`**: Claude Code honra um valor fornecido pelo pai quando a fonte de administrador de prioridade mais alta não define um UUID de organização. O sign-in do gateway não verifica essa chave, então importa apenas para frotas que também usam logins Anthropic de primeira parte. Um UUID de organização na fonte de administrador de prioridade mais alta bloqueia o valor do pai e é aquele que Claude Code aplica, então defina `forceLoginOrgUUID` lá.449* **`forceLoginOrgUUID`**: Claude Code honra um valor fornecido pelo pai quando a fonte de administrador de prioridade mais alta não define um UUID de organização. O sign-in do gateway não verifica essa chave, então importa apenas para frotas que também usam logins Anthropic de primeira parte. Um UUID de organização na fonte de administrador de prioridade mais alta bloqueia o valor do pai e é aquele que Claude Code aplica, então defina `forceLoginOrgUUID` lá.

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

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

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

398 453 

Details

435 `admin`435 `admin`

436</h3>436</h3>

437 437 

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

439 439 

440```yaml theme={null}440```yaml theme={null}

441admin:441admin:

442 # Chaves de API estáticas nomeadas para os endpoints de administração, enviadas como x-api-key.442 # Named static API keys for the admin endpoints, sent as x-api-key.

443 # O id aparece no log de auditoria como admin-key:<id> portanto cada chave é443 # The id appears in the audit log as admin-key:<id> so each key is

444 # atribuível. Array para rotação: adicione a nova chave, role clientes,444 # attributable. Array for rotation: add the new key, roll clients,

445 # remova a antiga.445 # remove the old.

446 write_keys:446 write_keys:

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

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

449 read_keys:449 read_keys:

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

451 # Grupos IdP concedidos acesso total de administrador através do JWT normal do gateway (sem chave de API).451 # IdP groups granted full admin via the normal gateway JWT (no API key).

452 admin_groups: [platform-finops]452 admin_groups: [platform-finops]

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

454```454```

455 455 

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

457| ------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |457| ------------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

460| `admin_groups` | Não | Nomes de grupos IdP. Um JWT do gateway cuja declaração `groups` inclui um desses tem acesso total de administrador, leitura e escrita, e audita como `oidc:<sub>`. Use isso para administradores humanos; use chaves de API para máquinas. Uma entrada vazia nesta lista para o gateway na inicialização. Consulte [Valores de correspondência que param o gateway na inicialização](#matcher-values-that-stop-the-gateway-at-boot). |460| `admin_groups` | Não | Nomes de grupos do IdP. Um gateway JWT cuja declaração `groups` inclui um destes tem acesso administrativo completo, leitura e escrita, e audita como `oidc:<sub>`. Use isto para administradores humanos; use chaves de API para máquinas. Uma entrada vazia nesta lista interrompe o gateway na inicialização. Veja [Valores de correspondência que interrompem o gateway na inicialização](#matcher-values-that-stop-the-gateway-at-boot). |

461| `blocked_message` | Não | Anexado literalmente ao `429 billing_error` que um desenvolvedor bloqueado vê. Escreva a instrução completa, como uma URL ou canal Slack. Quando não definido, o gateway envia apenas a mensagem padrão. Consulte [Como a aplicação funciona](/docs/pt/claude-apps-gateway-spend-limits#how-enforcement-works). |461| `blocked_message` | Não | Anexado literalmente ao `429 billing_error` que um desenvolvedor bloqueado vê. Escreva a instrução completa, como uma URL ou um canal do Slack. Quando não definido, o gateway envia apenas a mensagem padrão. Veja [Como a aplicação funciona](/docs/pt/claude-apps-gateway-spend-limits#how-enforcement-works). |

462| `audit_retention_days` | Não | Padrão `365`. Linhas `admin_audit` mais antigas são varridas. |462| `audit_retention_days` | Não | Padrão `365`. Linhas `admin_audit` mais antigas são removidas. |

463| `spend_retention_months` | Não | Padrão `13`. Linhas do contador `spend` mais antigas que isso são varridas. O padrão mantém um ano completo mais o mês parcial atual para relatórios ano a ano. |463| `spend_retention_months` | Não | Padrão `13`. Linhas do contador `spend` mais antigas que isto são removidas. O padrão mantém um ano completo mais o mês parcial atual para relatórios ano a ano. |

464| `identity_retention_days` | Não | Padrão `90`. TTL de última visualização para linhas `principal_emails`, que contêm email, nome de exibição e grupos de cada desenvolvedor (PII). Deliberadamente mais curto que retenção de gastos para que uma identidade desprovisionada envelheça enquanto seus contadores de gastos anônimos permanecem. |464| `identity_retention_days` | Não | Padrão `90`. TTL de última visualização para linhas `principal_emails`, que contêm o email, nome de exibição e grupos de cada desenvolvedor (PII). Deliberadamente mais curto que a retenção de gastos para que uma identidade desprovisionada expire enquanto seus contadores de gastos anônimos permanecem. |

465| `group_limit_mode` | Não | `min` (padrão) ou `max`. Quando um desenvolvedor está em vários grupos com limites, `min` aplica o mais restritivo e `max` o menos. Usado tanto por aplicação quanto por `/effective`. |465| `group_limit_mode` | Não | `min` (padrão) ou `max`. Quando um desenvolvedor está em vários grupos com limites, `min` aplica o mais restritivo e `max` o menos restritivo. Usado tanto pela aplicação quanto por `/effective`. |

466 466 

467<h3 id="enforcement">467<h3 id="enforcement">

468 `enforcement`468 `enforcement`


471O bloco `enforcement` controla como as verificações de limite de gastos se comportam quando o armazenamento está indisponível.471O bloco `enforcement` controla como as verificações de limite de gastos se comportam quando o armazenamento está indisponível.

472 472 

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

474| ---------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |474| ---------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

475| `fail_closed_on_error` | Não | Padrão `false`. A aplicação de gastos falha aberta em uma interrupção do Postgres, portanto a inferência fica ativa. Defina `true` para falhar fechado: desenvolvedores acima do limite são bloqueados, mas também todos se o armazenamento estiver inacessível. Requer um bloco [`admin:`](#admin): a aplicação de gastos só é executada quando `admin` é configurado, e o gateway recusa iniciar se você definir isso como `true` sem um. |475| `fail_closed_on_error` | Não | Padrão `false`. A aplicação de limite de gastos falha aberta em uma interrupção do Postgres, para que a inferência permaneça ativa. Defina como `true` para falhar fechada: desenvolvedores acima do limite são bloqueados, mas todos também são se o armazenamento estiver inacessível. Requer um bloco [`admin:`](#admin): a aplicação de limite de gastos só é executada quando `admin` está configurado, e o gateway se recusa a iniciar se você definir isto como `true` sem um. |

476 476 

477<h3 id="pricing">477<h3 id="pricing">

478 `pricing`478 `pricing`

479</h3>479</h3>

480 480 

481O bloco `pricing` diz ao medidor de gastos o que cobrar em vez do preço de lista em USD, portanto os limites e [`/effective`](/docs/pt/claude-apps-gateway-spend-limits#%2Feffective) refletem suas taxas contratadas. Os valores permanecem em USD e permanecem uma estimativa, não uma fatura. Dois pré-requisitos:481O bloco `pricing` informa ao medidor de gastos o que cobrar em vez do preço de lista em USD, para que os limites e [`/effective`](/docs/pt/claude-apps-gateway-spend-limits#%2Feffective) reflitam suas taxas contratadas. Os valores permanecem em USD e continuam sendo uma estimativa, não uma fatura. Dois pré-requisitos:

482 482 

483* Claude Code v2.1.227 ou posterior no servidor do gateway. Versões anteriores rejeitam a chave desconhecida na inicialização.483* Claude Code v2.1.227 ou posterior no servidor do gateway. Versões anteriores rejeitam a chave desconhecida na inicialização.

484* Um bloco [`admin:`](#admin) ou, em v2.1.268 ou posterior, um bloco [`managed:`](#managed) com pelo menos uma política. O gateway recusa iniciar com `pricing` definido e nenhum bloco, porque nada o leria.484* Um bloco [`admin:`](#admin) ou, em v2.1.268 ou posterior, um bloco [`managed:`](#managed) com pelo menos uma política. O gateway se recusa a iniciar com `pricing` definido e nenhum bloco, porque nada o leria.

485 485 

486```yaml theme={null}486```yaml theme={null}

487pricing:487pricing:


496```496```

497 497 

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

499| ------------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |499| ------------ | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

500| `multiplier` | Não | Padrão `1`. O medidor multiplica cada valor medido por isso, seja com preço de lista ou substituído, portanto `0.85` cobra 85% do preço. Deve ser maior que 0 e no máximo 1. |500| `multiplier` | Não | Padrão `1`. O medidor multiplica cada valor medido por isto, seja com preço de lista ou substituído, então `0.85` cobra 85% do preço. Deve ser maior que 0 e no máximo 10, e um valor acima de 1 é uma [marcação](#mark-prices-up). |

501| `overrides` | Não | Linhas de `{upstream, model, input, output, cache_read, cache_write}` em USD por milhão de tokens. Todas as quatro taxas são obrigatórias. Cada uma deve ser maior que 0 e no máximo 10000. |501| `overrides` | Não | Linhas de `{upstream, model, input, output, cache_read, cache_write}` em USD por milhão de tokens. Todas as quatro taxas são obrigatórias. Cada uma deve ser maior que 0 e no máximo 10000. |

502 502 

503Como o medidor corresponde a uma linha de substituição:503Como o medidor corresponde a uma linha de substituição:

504 504 

505* Uma linha substitui o preço de lista para solicitações que `upstream`, um [`upstreams[].name`](#upstreams), serve para `model`. Isso inclui a taxa de [modo rápido](/docs/pt/fast-mode#understand-the-cost-tradeoff) mais alta, portanto solicitações de modo rápido e padrão medem as mesmas quatro taxas.505* Uma linha substitui o preço de lista para solicitações que `upstream`, um [`upstreams[].name`](#upstreams), serve para `model`. Isto inclui a taxa de [modo rápido](/docs/pt/fast-mode#understand-the-cost-tradeoff) mais alta, então solicitações de modo rápido e padrão medem as mesmas quatro taxas.

506* Um ID integrado como `claude-sonnet-4-6`, correspondido como [`models[].id`](#models), cobre cada forma datada, forma regional Amazon Bedrock, ou forma da Plataforma de Agentes do Google Cloud que o medidor precifica como esse modelo. Qualquer outra string, como um alias ou um ARN de perfil de inferência, corresponde ao ID que o cliente enviou ou a string enviada upstream, insensível a maiúsculas/minúsculas.506* Um ID integrado como `claude-sonnet-4-6`, correspondido como [`models[].id`](#models), cobre cada forma datada, forma regional do Amazon Bedrock, ou forma da Plataforma de Agentes do Google Cloud que o medidor precifica como esse modelo. Qualquer outra string, como um alias ou um ARN de perfil de inferência, corresponde ao ID que o cliente enviou ou à string enviada upstream, sem distinção de maiúsculas e minúsculas.

507* Onde as linhas se sobrepõem, o medidor escolhe a linha mais específica em vez da primeira linha: uma linha cujo `model` é a string de modelo exata enviada upstream, depois uma linha correspondendo ao ID exato que o cliente enviou, depois uma linha nomeando o modelo integrado.507* Onde as linhas se sobrepõem, o medidor escolhe a linha mais específica em vez da primeira linha: uma linha cujo `model` é a string de modelo exata enviada upstream, depois uma linha correspondendo ao ID exato que o cliente enviou, depois uma linha nomeando o modelo integrado.

508* Um nome de upstream desconhecido falha na inicialização, assim como duas linhas para um upstream que nomeiam o mesmo modelo, incluindo duas grafias de um modelo integrado. O gateway avisa na inicialização sobre uma linha que nenhum modelo solicitável pode usar.508* Um nome de upstream desconhecido falha na inicialização, assim como duas linhas para um upstream que nomeiam o mesmo modelo, incluindo duas grafias de um modelo integrado. O gateway avisa na inicialização sobre uma linha que nenhum modelo solicitável pode usar.

509* Solicitações de busca na web permanecem no preço de lista de \$0.01; o multiplicador ainda se aplica a elas.509* Solicitações de busca na web permanecem no preço de lista de \$0,01; o multiplicador ainda se aplica a elas.

510 510 

511Para taxas por região, dê a cada região seu próprio upstream nomeado e uma linha por upstream.511Para taxas por região, dê a cada região seu próprio upstream nomeado e uma linha por upstream.

512 512 

513<h4 id="mark-prices-up">

514 Marcar preços para cima

515</h4>

516 

517Com v2.1.271 ou posterior no servidor do gateway, você pode definir `multiplier` acima de 1, até 10, para medir mais do que o provedor cobra, por exemplo uma taxa de reembolso interno. Este exemplo mede cada solicitação em 120% do preço:

518 

519```yaml theme={null}

520pricing:

521 multiplier: 1.2

522```

523 

524Com um bloco [`admin:`](#admin), a marcação também se aplica aos limites de gastos. O medidor conta 120% do preço, então desenvolvedores atingem seus limites mais cedo. O gateway registra um aviso na inicialização que diz isto.

525 

526O multiplicador não muda o que o provedor upstream cobra pelas solicitações.

527 

528Se o gateway também [envia as taxas para clientes conectados](#send-the-rates-to-signed-in-clients), desenvolvedores precisam de Claude Code v2.1.271 ou posterior para ver a marcação. Clientes anteriores ignoram um `multiplier` acima de 1 e mostram custos sem ele.

529 

530Um servidor de gateway anterior a v2.1.271 se recusa a iniciar se você definir um `multiplier` acima de 1.

531 

513<h4 id="send-the-rates-to-signed-in-clients">532<h4 id="send-the-rates-to-signed-in-clients">

514 Enviar as taxas para clientes conectados533 Enviar as taxas para clientes conectados

515</h4>534</h4>

516 535 

517Com v2.1.268 ou posterior no servidor do gateway, o gateway também coloca as taxas de `pricing` nas políticas [`managed`](#managed) que serve, como a configuração gerenciada [`modelPricing`](/docs/pt/settings-reference#modelpricing). Desenvolvedores correspondidos por uma política então veem as taxas de `pricing` para o primeiro upstream que serve cada ID de modelo em `/usage`, a linha de status e OpenTelemetry. Um desenvolvedor que não corresponde a nenhuma política recebe nenhuma configuração gerenciada, portanto suas figuras permanecem no preço de lista. Clientes aplicam a configuração em Claude Code v2.1.242 ou posterior.536Com v2.1.268 ou posterior no servidor do gateway, o gateway também coloca as taxas de `pricing` nas políticas [`managed`](#managed) que serve, como a configuração gerenciada [`modelPricing`](/docs/pt/settings-reference#modelpricing). Desenvolvedores correspondidos por uma política então veem as taxas de `pricing` para o primeiro upstream que serve cada ID de modelo em `/usage`, a linha de status e 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 lista. Clientes aplicam a configuração em Claude Code v2.1.242 ou posterior.

518 537 

519* 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 substituição do primeiro upstream que serve esse ID. Uma taxa que apenas um upstream de failover cobra permanece no gateway.538* 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 substituição do primeiro upstream que serve esse ID. Uma taxa que apenas um upstream de failover cobra permanece no gateway.

520* Optar uma política para fora: defina `modelPricing` para `{}` no bloco `cli` dessa política, e seus desenvolvedores permanecem no preço de lista.539* Optar uma política por: defina `modelPricing` como `{}` no bloco `cli` dessa política, e seus desenvolvedores permanecem no preço de lista.

521* Manter as próprias taxas 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 taxa de sua própria a ele.540* Manter as próprias taxas 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 taxa de sua própria a ele.

522 541 

523<h3 id="models">542<h3 id="models">

524 `models`543 `models`

525</h3>544</h3>

526 545 

527O bloco `models` é uma lista de modelos curada pelo administrador opcional, servida em `/v1/models` e usada para traduzir IDs de modelo por upstream. É obrigatório para regiões Amazon Bedrock fora dos EUA, ARNs de throughput provisionado Amazon Bedrock e nomes de implantação Microsoft Foundry.546O bloco `models` é uma lista de modelos opcional curada por administrador, servida em `/v1/models` e usada para traduzir IDs de modelo por upstream. É obrigatório para regiões não-US do Amazon Bedrock, ARNs de throughput provisionado do Amazon Bedrock e nomes de implantação do Microsoft Foundry.

528 547 

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

530auto_include_builtin_models: true # false: expor apenas a lista abaixo549auto_include_builtin_models: true # false: expose only the list below

531models:550models:

532 - id: claude-opus-4-8551 - id: claude-opus-4-8

533 label: Claude Opus 4.8552 label: Claude Opus 4.8

534 # description: texto opcional mostrado em clientes que o exibem553 # description: optional text shown in clients that surface it

535 upstream_model:554 upstream_model:

536 anthropic: claude-opus-4-8555 anthropic: claude-opus-4-8

537 bedrock: us.anthropic.claude-opus-4-8 # ou um ARN de perfil de inferência556 bedrock: us.anthropic.claude-opus-4-8 # or an inference-profile ARN

538 foundry: your-opus-deployment-name557 foundry: your-opus-deployment-name

539```558```

540 559 

541Cada chave sob `upstream_model` deve corresponder ao `name` de um upstream configurado, que padrão é o nome do provedor. Uma chave que não corresponde a nenhum upstream falha na inicialização, portanto omita as linhas para provedores que você não usa.560Cada chave sob `upstream_model` deve corresponder ao `name` de um upstream configurado, que é padrão para o nome do provedor. Uma chave que não corresponde a nenhum upstream falha na inicialização, então omita as linhas para provedores que você não usa.

542 561 

543<h3 id="managed">562<h3 id="managed">

544 `managed`563 `managed`

545</h3>564</h3>

546 565 

547O bloco `managed` define políticas de acesso baseadas em função codificadas em grupos IdP ou domínio de email. As políticas são avaliadas em ordem; a primeira correspondência é selecionada, depois mesclada na base `match: {}` catch-all descrita abaixo. Elas são servidas por usuário em `GET /managed/settings` com cache ETag/304.566O bloco `managed` define políticas de acesso baseadas em funções com chave em grupos do IdP ou domínio de email. As políticas são avaliadas em ordem; a primeira correspondência é selecionada, depois mesclada na base de captura `match: {}`. Elas são servidas por usuário em `GET /managed/settings` com cache ETag/304.

548 567 

549```yaml theme={null}568```yaml theme={null}

550managed:569managed:

551 policies:570 policies:

552 # Grupos específicos primeiro.571 # Specific groups first.

553 - match: { groups: [eng-contractors] }572 - match: { groups: [eng-contractors] }

554 cli:573 cli:

555 availableModels: [claude-sonnet-4-6]574 availableModels: [claude-sonnet-4-6]

556 permissions: { deny: ["WebFetch", "WebSearch"] }575 permissions: { deny: ["WebFetch", "WebSearch"] }

557 # Catch-all padrão por último: corresponde a todos que se autenticaram.576 # Default catch-all last: matches everyone who authenticated.

558 - match: {}577 - match: {}

559 cli:578 cli:

560 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]579 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]

561```580```

562 581 

563Um catch-all `match: {}`, convencionalmente listado por último, é tratado como uma camada base. Cada outra política herda qualquer chave que não defina do catch-all, portanto entradas por função apenas precisam listar o que difere do padrão da organização. As regras de mesclagem dependem do tipo de chave:582Uma captura `match: {}`, convencionalmente listada por último, é tratada como uma camada base. Cada outra política herda qualquer chave que não define da captura, então entradas por função só precisam listar o que difere do padrão da organização. As regras de mesclagem dependem do tipo de chave:

564 583 

565* **Listas de permissão**: `availableModels` e `permissions.allow`. A lista de uma política específica substitui completamente a da base.584* **Listas de permissão**: `availableModels` e `permissions.allow`. A lista de uma política específica substitui completamente a da base.

566* **Listas de negação e arrays de hook**: `permissions.deny`, `permissions.ask`, `disabledMcpjsonServers`, `deniedMcpServers`, `blockedMarketplaces` e cada array de tipo de evento `hooks`. Estes tomam a união de base e política, portanto uma negação em toda a organização ou hook de auditoria não pode ser acidentalmente descartada por uma substituição por função.585* **Listas de negação e arrays de hook**: `permissions.deny`, `permissions.ask`, `disabledMcpjsonServers`, `deniedMcpServers`, `blockedMarketplaces` e cada array de tipo de evento `hooks`. Estes tomam a união de base e política, então um hook de negação ou auditoria em toda a organização não pode ser acidentalmente descartado por uma substituição por função.

567* **Chaves do tipo registro**: `env`, `modelOverrides` e `skillOverrides`. Estes mesclam superficialmente, portanto um bloco `env` por função substitui as chaves que define e herda o resto da base.586* **Chaves de tipo registro**: `env`, `modelOverrides` e `skillOverrides`. Estas mesclam superficialmente, então um bloco `env` por função substitui as chaves que define e herda o resto da base.

568 587 

569`availableModels` também é aplicado no servidor em `/v1/messages`, portanto um modelo negado retorna `400` independentemente do que o cliente envia.588`availableModels` também é aplicado no lado do servidor em `/v1/messages`, então um modelo negado retorna `400` independentemente do que o cliente envia.

570 589 

571O gateway valida o valor `model` em si antes de retransmitir uma solicitação, portanto um valor malformado nunca atinge um upstream. Ele rejeita a solicitação com um `400` em dois casos:590O gateway valida o valor `model` em si antes de retransmitir uma solicitação, então um valor malformado nunca atinge um upstream. Ele rejeita a solicitação com um `400` em dois casos:

572 591 

573* Quando o valor está faltando ou vazio, o gateway rejeita a solicitação com a mensagem `model is required`. Essa verificação requer um gateway executando Claude Code v2.1.228 ou posterior.592* Quando o valor está faltando ou vazio, o gateway rejeita a solicitação com a mensagem `model is required`. Essa verificação requer um gateway executando Claude Code v2.1.228 ou posterior.

574* Quando o valor está presente mas não é uma string, o gateway rejeita a solicitação com a mensagem `model must be a string`. Requer um gateway executando Claude Code v2.1.221 ou posterior.593* Quando o valor está presente mas não é uma string, o gateway rejeita a solicitação com a mensagem `model must be a string`. Requer um gateway executando Claude Code v2.1.221 ou posterior.

575 594 

576| Correspondente | Comportamento |595| Correspondência | Comportamento |

577| --------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |596| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

578| `match: {}` | Corresponde a cada usuário autenticado. Comece com um desses e adicione políticas com escopo de grupo acima mais tarde. |597| `match: {}` | Corresponde a cada usuário autenticado. Comece com um destes e adicione políticas com escopo de grupo acima dele depois. |

579| `match: { groups: [a, b] }` | Corresponde se a declaração `groups` do JWT contiver qualquer um dos grupos listados. Sensível a maiúsculas/minúsculas: grupos devem corresponder ao invólucro exato do IdP. |598| `match: { groups: [a, b] }` | Corresponde se a declaração `groups` do JWT contém qualquer um dos grupos listados. Sensível a maiúsculas e minúsculas: grupos devem corresponder à grafia exata do IdP. |

580| `match: { email_domain: example.com }` | Corresponde à parte após o último `@` na declaração `email` do JWT, insensível a maiúsculas/minúsculas. Aceita um domínio por política. |599| `match: { email_domain: example.com }` | Corresponde à parte após o último `@` na declaração `email` do JWT, sem distinção de maiúsculas e minúsculas. Aceita um domínio por política. |

581| `match: { groups: [a], email_domain: example.com }` | Ambas as condições devem corresponder |600| `match: { groups: [a], email_domain: example.com }` | Ambas as condições devem corresponder |

582 601 

583Um usuário autenticado que não corresponde a nenhuma política obtém os padrões do gateway, o que significa cada modelo no catálogo e nenhuma configuração gerenciada. Adicione um catch-all `match: {}` por último se quiser uma política padrão garantida.602Um usuário autenticado que não corresponde a nenhuma política obtém os padrões do gateway, o que significa cada modelo no catálogo e nenhuma configuração gerenciada. Adicione uma captura `match: {}` por último se você quiser uma política padrão garantida.

584 603 

585<Note>604<Note>

586 O gateway não mantém seu próprio diretório de usuários. Ele autoriza cada solicitação do token IdP do usuário, lendo associação de grupo da declaração `groups` do token e avaliando políticas contra ela. Não há lista para enumerar e nenhuma conta para pré-criar, e portanto nenhum endpoint SCIM, porque não há nada para SCIM sincronizar.605 O gateway não mantém seu próprio diretório de usuários. Ele autoriza cada solicitação do token do IdP do usuário, lendo a associação de grupo da declaração `groups` do token e avaliando políticas contra ela. Não há lista para enumerar e nenhuma conta para pré-criar, e portanto nenhum endpoint SCIM, porque não há nada para SCIM sincronizar.

587 606 

588 Execute gerenciamento de ciclo de vida de usuário e grupo na fonte de verdade, que é o provisionamento SCIM nativo do seu IdP ou uma plataforma dedicada de governança de identidade. Associação e desprovisionamento governados lá fluem para o gateway automaticamente através do token. Se você quiser provisionamento SCIM de contas Claude em si, essa é uma capacidade [Claude for Enterprise](/docs/pt/admin-setup).607 Execute gerenciamento de ciclo de vida de usuário e grupo na fonte de verdade, que é o provisionamento SCIM nativo do seu IdP ou uma plataforma dedicada de governança de identidade. A associação e desprovisionamento governados lá fluem para o gateway automaticamente através do token. Se você quiser provisionamento SCIM de contas Claude em si, essa é uma capacidade de [Claude for Enterprise](/docs/pt/admin-setup).

589 608 

590 Dois relógios de propagação se aplicam:609 Dois relógios de propagação se aplicam:

591 610 

592 * **Conteúdo da política**: editar uma política e reimplantar alcança clientes conectados em sua próxima sondagem de configurações gerenciadas, dentro de uma hora, além das [mudanças que se aplicam apenas no próximo lançamento](/docs/pt/server-managed-settings#fetch-and-caching-behavior)611 * **Conteúdo da política**: editar uma política e reimplantar atinge clientes conectados em sua próxima pesquisa de configurações gerenciadas, dentro de uma hora, além das [mudanças que se aplicam apenas no próximo lançamento](/docs/pt/server-managed-settings#fetch-and-caching-behavior)

593 * **Associação de grupo**: mudar a associação de grupo de um usuário muda qual política os corresponde. Isso entra em vigor na próxima re-cunhagem de sessão, significando a próxima atualização silenciosa, limitada por `session.ttl_hours`.612 * **Associação de grupo**: mudar a associação de grupo de um usuário muda qual política o corresponde. Isto entra em vigor na próxima remintagem de sessão, significando o próximo refresh silencioso, limitado por `session.ttl_hours`.

594</Note>613</Note>

595 614 

596<h4 id="matcher-values-that-stop-the-gateway-at-boot">615<h4 id="matcher-values-that-stop-the-gateway-at-boot">

597 Valores de correspondência que param o gateway na inicialização616 Valores de correspondência que interrompem o gateway na inicialização

598</h4>617</h4>

599 618 

600Na inicialização, o gateway verifica o bloco `match` de cada política e a lista [`admin_groups`](#admin). Qualquer um desses valores para o gateway com um erro que nomeia o campo:619Na inicialização, o gateway verifica o bloco `match` de cada política e a lista [`admin_groups`](#admin). Qualquer um destes valores interrompe o gateway com um erro que nomeia o campo:

601 620 

602* Uma lista `groups` vazia621* Uma lista `groups` vazia

603* Uma entrada vazia em `groups` ou em `admin_groups`622* Uma entrada vazia em `groups` ou em `admin_groups`

604* Um `email_domain` vazio623* Um `email_domain` vazio

605* Um `email_domain` que contém `@`, espaço em branco ou uma vírgula. O gateway aparenta o valor e remove um `@` inicial antes dessa verificação. Escreva um domínio simples, como `example.com`.624* Um `email_domain` que contém `@`, espaço em branco ou uma vírgula. O gateway remove espaço em branco do valor e remove um `@` inicial antes desta verificação. Escreva um domínio simples, como `example.com`.

606 625 

607Antes da v2.1.232, o gateway iniciava com esses valores. Cada valor tinha esse efeito:626Antes de v2.1.232, o gateway iniciava com estes valores. Cada valor tinha este efeito:

608 627 

609* Um `email_domain` vazio: o gateway pulava a verificação de domínio, portanto uma política com um `email_domain` vazio e nenhuma lista `groups` correspondia a cada usuário autenticado628* Um `email_domain` vazio: o gateway pulava a verificação de domínio, então uma política com um `email_domain` vazio e nenhuma lista `groups` correspondia a cada usuário autenticado

610* Uma lista `groups` vazia: a política não correspondia a ninguém629* Uma lista `groups` vazia: a política não correspondia a ninguém

611* Um `email_domain` contendo `@`, espaço em branco ou uma vírgula: a política não correspondia a ninguém630* Um `email_domain` contendo `@`, espaço em branco ou uma vírgula: a política não correspondia a ninguém

612* Uma entrada vazia em `groups` ou em `admin_groups`: a entrada correspondia a um usuário apenas quando a declaração `groups` do IdP desse usuário também continha uma entrada vazia. Em `admin_groups`, essa correspondência concedia acesso de administrador. Se sua lista `admin_groups` nunca continha uma entrada vazia, ninguém ganhava acesso de administrador dessa forma.631* Uma entrada vazia em `groups` ou em `admin_groups`: a entrada correspondia a um usuário apenas quando a declaração `groups` do IdP desse usuário também continha uma entrada vazia. Em `admin_groups`, essa correspondência concedia acesso administrativo. Se sua lista `admin_groups` nunca continha uma entrada vazia, ninguém ganhava acesso administrativo desta forma.

613 632 

614<h4 id="what-goes-in-cli">633<h4 id="what-goes-in-cli">

615 O que vai em `cli`634 O que vai em `cli`

616</h4>635</h4>

617 636 

618Cada valor `cli` é um documento `managed-settings.json` completo do Claude Code, o mesmo esquema que você implantaria via MDM ou `/etc/claude-code/managed-settings.json`, expresso aqui como YAML. O CLI aplica o documento entregue na camada gerenciada, acima das configurações de usuário e projeto, no lugar das configurações gerenciadas pelo servidor. Portanto, ele ignora as configurações [restritas a fontes de política de nível do SO](/docs/pt/server-managed-settings#current-limitations), como `policyHelper` e `wslInheritsWindowsSettings`.637Cada valor `cli` é um documento completo de `managed-settings.json` do Claude Code, o mesmo esquema que você implantaria via MDM ou `/etc/claude-code/managed-settings.json`, expresso aqui como YAML. O CLI aplica o documento entregue na camada gerenciada, acima das configurações de usuário e projeto, no lugar das configurações gerenciadas pelo servidor. Portanto, ignora as configurações [restritas a fontes de política no nível do SO](/docs/pt/server-managed-settings#current-limitations), como `policyHelper` e `wslInheritsWindowsSettings`.

619 638 

620O gateway valida cada documento contra o esquema de configurações do CLI na inicialização, portanto uma chave de nível superior não reconhecida falha na inicialização com um erro nomeando cada chave ofensiva. Partes deliberadamente abertas do esquema ainda aceitam valores arbitrários, porque clientes mais novos podem reconhecer entradas que o esquema do gateway não reconhece. Essas chaves abertas são `env`, `pluginConfigs` e chaves aninhadas sob `permissions`.639O gateway valida cada documento contra o esquema de configurações do CLI na inicialização, então uma chave de nível superior não reconhecida falha na inicialização com um erro nomeando cada chave ofensiva. Partes deliberadamente abertas do esquema ainda aceitam valores arbitrários, porque clientes mais novos podem reconhecer entradas que o esquema do gateway não. Estas chaves abertas incluem `env`, `pluginConfigs` e chaves aninhadas sob `permissions`.

621 640 

622Como a validação usa o esquema agrupado com a versão instalada do gateway, colocar uma chave de configurações de nível superior introduzida por uma versão mais nova do Claude Code na configuração gerenciada requer atualizar o gateway primeiro. Teste uma nova política em um cliente antes de implantá-la.641Como a validação usa o esquema agrupado com a versão instalada do gateway, colocar uma chave de configurações de nível superior introduzida por um lançamento mais novo do Claude Code em configuração gerenciada requer atualizar o gateway primeiro. Teste uma nova política em um cliente antes de implantá-la amplamente.

623 642 

624A referência de chave completa está em [Configurações do Claude Code](/docs/pt/settings-reference#all-settings). As chaves que os operadores mais procuram primeiro:643A referência de chave completa está em [Claude Code settings](/docs/pt/settings-reference#all-settings). As chaves que operadores mais procuram primeiro:

625 644 

626```yaml theme={null}645```yaml theme={null}

627managed:646managed:

628 policies:647 policies:

629 - match: {}648 - match: {}

630 cli:649 cli:

631 # Acesso ao modelo (também aplicado no servidor em /v1/messages)650 # Model access (also enforced server-side at /v1/messages)

632 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]651 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]

633 652 

634 # Política de permissão653 # Permission policy

635 permissions:654 permissions:

636 deny:655 deny:

637 - "WebFetch"656 - "WebFetch"

638 - "Read(./.env)"657 - "Read(./.env)"

639 - "Read(./secrets/**)"658 - "Read(./secrets/**)"

640 disableBypassPermissionsMode: disable # bloqueia --dangerously-skip-permissions659 disableBypassPermissionsMode: disable # blocks --dangerously-skip-permissions

641 allowManagedPermissionRulesOnly: true # ignora regras de permissão de usuário/projeto660 allowManagedPermissionRulesOnly: true # ignore user/project permission rules

642 661 

643 # Ambiente empurrado para o processo CLI. DISABLE_UPDATES bloqueia662 # Environment pushed into the CLI process. DISABLE_UPDATES blocks

644 # atualizações de fundo e manuais; DISABLE_AUTOUPDATER para apenas663 # background and manual updates; DISABLE_AUTOUPDATER stops only

645 # atualizações de fundo.664 # background updates.

646 env:665 env:

647 DISABLE_UPDATES: "1" # fixe versões através de sua própria distribuição666 DISABLE_UPDATES: "1" # pin versions via your own distribution

648 667 

649 # Hooks em toda a organização. Comandos de hook executam em máquinas de desenvolvedor, não no668 # Org-wide hooks. Hook commands run on developer machines, not the

650 # gateway, portanto o caminho deve existir em cada SO do cliente na política.669 # gateway, so the path must exist on every client OS in the policy.

651 hooks:670 hooks:

652 PostToolUse:671 PostToolUse:

653 - matcher: "Edit|Write"672 - matcher: "Edit|Write"


656```675```

657 676 

658| Chave | Aplicada por | Efeito |677| Chave | Aplicada por | Efeito |

659| ------------------------------------------ | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |678| ------------------------------------------ | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

660| `availableModels` | Gateway + CLI | Lista de permissão de modelo. Também verificada em `/v1/messages`, portanto um cliente corrigido não pode contorná-la. |679| `availableModels` | Gateway + CLI | Lista de permissão de modelo. Também verificada em `/v1/messages`, então um cliente corrigido não pode contorná-la. |

661| `permissions.allow` / `.deny` | CLI | Regras de ferramenta e comando. Consulte [Permissões](/docs/pt/permissions). |680| `permissions.allow` / `.deny` | CLI | Regras de ferramenta e comando. Veja [Permissions](/docs/pt/permissions). |

662| `permissions.disableBypassPermissionsMode` | CLI | Defina como `disable` para bloquear [`bypassPermissions`](/docs/pt/permission-modes#skip-all-checks-with-bypasspermissions-mode), o modo que aprova automaticamente cada chamada de ferramenta, e a flag `--dangerously-skip-permissions` |681| `permissions.disableBypassPermissionsMode` | CLI | Defina como `disable` para bloquear [`bypassPermissions`](/docs/pt/permission-modes#skip-all-checks-with-bypasspermissions-mode), o modo que pula prompts de permissão, e a flag `--dangerously-skip-permissions` |

663| `allowManagedPermissionRulesOnly` | CLI | Quando `true`, configurações gerenciadas se tornam a única fonte de configurações de regras de permissão. A entrada [`allowManagedPermissionRulesOnly`](/docs/pt/settings-reference#allowmanagedpermissionrulesonly) lista cada fonte que Claude Code então ignora. |682| `allowManagedPermissionRulesOnly` | CLI | Quando `true`, as configurações gerenciadas se tornam a única fonte de configurações de regras de permissão. A entrada [`allowManagedPermissionRulesOnly`](/docs/pt/settings-reference#allowmanagedpermissionrulesonly) lista cada fonte que Claude Code então ignora. |

664| `env` | CLI | Variáveis de ambiente mescladas no processo CLI. Use para telemetria, atualização automática e substituições de nome de modelo. |683| `env` | CLI | Variáveis de ambiente mescladas no processo do CLI. Use para telemetria, atualização automática e substituições de nome de modelo. |

665| `hooks` | CLI | [Hooks](/docs/pt/hooks) em toda a organização |684| `hooks` | CLI | [hooks](/docs/pt/hooks) em toda a organização |

666| `managedMcpServers` | CLI | Servidores MCP remotos [fornecidos a cada desenvolvedor correspondente](/docs/pt/managed-mcp#provide-servers-through-managed-settings) junto com os servidores que eles adicionam a si mesmos, `http` e `sse` apenas. Consulte [Servidores MCP em uma política](#mcp-servers-in-a-policy). Requer Claude Code v2.1.259 ou posterior no servidor do gateway e nos clientes. Clientes anteriores ignoram a chave. |685| `managedMcpServers` | CLI | Servidores MCP remotos [fornecidos a cada desenvolvedor correspondido](/docs/pt/managed-mcp#provide-servers-through-managed-settings) ao lado dos servidores que eles adicionam a si mesmos, `http` e `sse` apenas. Veja [MCP servers in a policy](#mcp-servers-in-a-policy). Requer Claude Code v2.1.259 ou posterior no servidor do gateway e nos clientes. Clientes anteriores ignoram a chave. |

667 686 

668Como essas configurações chegam pela rede, o CLI mostra a cada desenvolvedor um diálogo de aprovação de segurança antes de aplicar as configurações listadas abaixo:687Como estas configurações chegam pela rede, o CLI mostra a cada desenvolvedor um diálogo de aprovação de segurança antes de aplicar as configurações listadas abaixo:

669 688 

670* `hooks`689* `hooks`

671* Variáveis `env` que requerem aprovação do desenvolvedor, como variáveis de proxy e URL base690* Variáveis `env` que requerem aprovação do desenvolvedor, como variáveis de proxy e URL base

672* Configurações de execução de shell como `apiKeyHelper` e `statusLine`691* configurações de execução de shell como `apiKeyHelper` e `statusLine`

673* As configurações de binário sandbox `sandbox.bwrapPath`, `sandbox.socatPath` e `sandbox.ripgrep`692* as configurações de binário sandbox `sandbox.bwrapPath`, `sandbox.socatPath` e `sandbox.ripgrep`

674* Configurações de Sandbox que interceptam tráfego, injetam credenciais ou enfraquecem isolamento, como `sandbox.network.tlsTerminate` e as configurações de porta de proxy. [Diálogos de aprovação de segurança](/docs/pt/server-managed-settings#security-approval-dialogs) lista todos eles.693* Configurações de Sandbox que interceptam tráfego, injetam credenciais ou enfraquecem isolamento, como `sandbox.network.tlsTerminate` e as configurações de porta de proxy. [Security approval dialogs](/docs/pt/server-managed-settings#security-approval-dialogs) lista todas elas.

675 694 

676[Memória de aprovação](/docs/pt/server-managed-settings#approval-memory) cobre quanto tempo uma aprovação dura e quando o diálogo aparece novamente.695[Approval memory](/docs/pt/server-managed-settings#approval-memory) cobre quanto tempo uma aprovação dura e quando o diálogo aparece novamente.

677 696 

678Claude Code aplica algumas variáveis `env` entregues sem mostrar ao desenvolvedor o diálogo de aprovação, como configurações de seleção de modelo e limites numéricos. Outras variáveis entregues podem exigir aprovação do desenvolvedor antes de entrarem em vigor; um valor de proxy, URL base ou `OTEL_EXPORTER_OTLP_ENDPOINT` não vazio sempre faz. Quando uma variável entregue precisa de aprovação, o diálogo a nomeia.697Claude Code aplica algumas variáveis `env` entregues sem mostrar ao desenvolvedor o diálogo de aprovação, como configurações de seleção de modelo e limites numéricos. Outras variáveis entregues podem exigir aprovação do desenvolvedor antes de entrarem em vigor; um valor de proxy, URL base ou `OTEL_EXPORTER_OTLP_ENDPOINT` não vazio sempre faz. Quando uma variável entregue precisa de aprovação, o diálogo a nomeia.

679 698 

680[Variáveis de ambiente e o diálogo de aprovação](/docs/pt/server-managed-settings#environment-variables-and-the-approval-dialog) tem os detalhes, incluindo quatro alternâncias de privacidade cujo valor entregue decide se precisam de aprovação. Antes da v2.1.218, Claude Code aplicava menos variáveis sem perguntar ao desenvolvedor, portanto mais variáveis entregues disparavam o diálogo.699[Environment variables and the approval dialog](/docs/pt/server-managed-settings#environment-variables-and-the-approval-dialog) tem os detalhes, incluindo quatro toggles de privacidade cujo valor entregue decide se precisam de aprovação. Antes de v2.1.218, Claude Code aplicava menos variáveis sem perguntar ao desenvolvedor, então mais variáveis entregues acionavam o diálogo.

681 700 

682A configuração de [telemetria](#telemetry) do gateway empurra `OTEL_EXPORTER_OTLP_ENDPOINT`, portanto definir `telemetry.forward_to` dispara o diálogo em cada cliente interativo. O diálogo protege a máquina do desenvolvedor de um gateway comprometido ou hostil, não a organização do desenvolvedor.701A configuração de [telemetry](#telemetry) do gateway empurra `OTEL_EXPORTER_OTLP_ENDPOINT`, então definir `telemetry.forward_to` aciona o diálogo em cada cliente interativo. O diálogo protege a máquina do desenvolvedor de um gateway comprometido ou hostil, não a organização do desenvolvedor.

683 702 

684Uma execução não interativa com a flag `-p` não pode mostrar o diálogo. Ela aplica as configurações empurradas apenas para essa execução e não as registra como aprovadas, portanto a próxima sessão interativa do desenvolvedor ainda mostra o diálogo. Antes da v2.1.207, uma execução não interativa salvava as configurações como aprovadas e nenhuma sessão interativa posterior mostrava o diálogo para elas.703Uma execução não interativa com a flag `-p` não pode mostrar o diálogo. Ela aplica as configurações empurradas para essa execução apenas e não as registra como aprovadas, então a próxima sessão interativa do desenvolvedor ainda mostra o diálogo para elas. Antes de v2.1.207, uma execução não interativa salvava as configurações como aprovadas e nenhuma sessão interativa posterior mostrava o diálogo para elas.

685 704 

686Se um desenvolvedor recusar, Claude Code sai dessa sessão em vez de aplicar a política. Quando você empurra um novo hook, ou qualquer variável env que dispara o diálogo, para uma política ampla, Claude Code portanto mostra o diálogo a cada desenvolvedor correspondente. Ele mostra o diálogo em uma sessão em execução na próxima sondagem horária, e caso contrário no próximo início do desenvolvedor.705Se um desenvolvedor recusa, Claude Code sai dessa sessão em vez de aplicar a política. Quando você empurra um novo hook, ou qualquer variável env que aciona o diálogo, para uma política ampla, Claude Code portanto mostra o diálogo a cada desenvolvedor correspondido. Ele mostra o diálogo em uma sessão em execução na próxima pesquisa horária, e caso contrário na próxima inicialização do desenvolvedor.

687 706 

688A chave `cli` foi nomeada `settings` em versões anteriores. Essa ortografia ainda é aceita como um alias, mas novas implantações devem usar `cli`.707A chave `cli` foi nomeada `settings` em lançamentos anteriores. Essa grafia ainda é aceita como um alias, mas novas implantações devem usar `cli`.

689 708 

690<h4 id="mcp-servers-in-a-policy">709<h4 id="mcp-servers-in-a-policy">

691 Servidores MCP em uma política710 MCP servers in a policy

692</h4>711</h4>

693 712 

694Para fornecer servidores MCP aos clientes Claude Code que uma política corresponde, defina [`managedMcpServers`](/docs/pt/managed-mcp#provide-servers-through-managed-settings) no bloco `cli` dessa política. Você precisa de Claude Code v2.1.259 ou posterior no servidor do gateway e nos clientes.713Para fornecer servidores MCP aos clientes Claude Code que uma política corresponde, defina [`managedMcpServers`](/docs/pt/managed-mcp#provide-servers-through-managed-settings) no bloco `cli` dessa política. Você precisa de Claude Code v2.1.259 ou posterior no servidor do gateway e nos clientes.

695 714 

696O gateway verifica cada entrada na inicialização com [as mesmas regras que Claude Code aplica no cliente](/docs/pt/managed-mcp#what-an-entry-can-contain), e se uma entrada falhar uma verificação, o gateway recusa iniciar e nomeia a entrada.715O gateway verifica cada entrada na inicialização com [as mesmas regras que Claude Code aplica no cliente](/docs/pt/managed-mcp#what-an-entry-can-contain), e se uma entrada falha uma verificação, o gateway se recusa a iniciar e nomeia a entrada.

697 716 

698Se você escrever uma referência `${VAR}` em `gateway.yaml`, o gateway a resolve de seu ambiente na inicialização através de [expansão de segredo](#secret-expansion) antes de executar as verificações de entrada, portanto cada cliente correspondente recebe o valor literal e pode lê-lo. A [orientação de cabeçalho para servidores fornecidos](/docs/pt/managed-mcp#provide-servers-through-managed-settings) se aplica ao valor expandido.717Se você escrever uma referência `${VAR}` em `gateway.yaml`, o gateway a resolve de seu ambiente na inicialização através de [secret expansion](#secret-expansion) antes de executar as verificações de entrada, então cada cliente correspondido recebe o valor literal e pode lê-lo. A [header guidance for provided servers](/docs/pt/managed-mcp#provide-servers-through-managed-settings) se aplica ao valor expandido.

699 718 

700O gateway rejeita a ortografia `.mcp.json` `mcpServers` em um bloco `cli`, e seu erro de inicialização nomeia `managedMcpServers` como a chave a usar. Antes da v2.1.259, o gateway rejeitava qualquer definição de servidor MCP em um bloco `cli`.719O gateway rejeita a grafia `.mcp.json` `mcpServers` em um bloco `cli`, e seu erro de inicialização nomeia `managedMcpServers` como a chave a usar. Antes de v2.1.259, o gateway rejeitava qualquer definição de servidor MCP em um bloco `cli`.

701 720 

702<h4 id="claude-desktop-overlay">721<h4 id="claude-desktop-overlay">

703 Sobreposição do Claude Desktop722 Claude Desktop overlay

704</h4>723</h4>

705 724 

706Se sua organização também implanta [Claude Desktop](/docs/pt/desktop), o mesmo gateway serve ambos os clientes. Aponte `bootstrapUrl`, na [configuração gerenciada](https://claude.com/docs/third-party/claude-desktop/configuration) do Claude Desktop, para `<listen.public_url>/user/bootstrap`. Claude Desktop deriva o emissor OAuth dessa URL, executa o mesmo login de código de dispositivo contra este gateway e busca sua configuração da resposta.725Se sua organização também implanta [Claude Desktop](/docs/pt/desktop), o mesmo gateway serve ambos os clientes. Aponte `bootstrapUrl`, na [managed configuration](https://claude.com/docs/third-party/claude-desktop/configuration) do Claude Desktop, para `<listen.public_url>/user/bootstrap`. Claude Desktop deriva o emissor OAuth dessa URL, executa o mesmo sign-in de código de dispositivo contra este gateway e busca sua configuração da resposta.

707 726 

708<Note>727<Note>

709 Requer Claude Code v2.1.203 ou posterior no servidor do gateway, e uma aceitação explícita: `/user/bootstrap` retorna 404 a menos que a política correspondente ao usuário carregue uma chave `desktop`. Um `desktop: {}` vazio aceita uma política, e uma chave `desktop` na camada base `match: {}` aceita cada política que a herda. O log de auditoria registra cada solicitação como `desktop_bootstrap.serve` ou `desktop_bootstrap.denied`.728 Requer Claude Code v2.1.203 ou posterior no servidor do gateway, e uma opção explícita: `/user/bootstrap` retorna 404 a menos que a política correspondendo o usuário carregue uma chave `desktop`. Um `desktop: {}` vazio opta uma política, e uma chave `desktop` na camada base `match: {}` opta em cada política que a herda. O log de auditoria registra cada solicitação como `desktop_bootstrap.serve` ou `desktop_bootstrap.denied`.

710</Note>729</Note>

711 730 

712O gateway deriva muito da resposta do bloco `cli` da política correspondente e da configuração do gateway de nível superior:731O gateway deriva muito da resposta do bloco `cli` da política correspondida e da configuração do gateway de nível superior:

713 732 

714* A lista de modelos, de `availableModels`733* A lista de modelos, de `availableModels`

715* Ferramentas desabilitadas, de entradas `permissions.deny` de nome de ferramenta simples. Se você definir `disabledBuiltinTools` no bloco `desktop` da política, o gateway serve a união de seu valor e a lista derivada, portanto você pode desabilitar mais ferramentas dessa forma mas não pode reabilitar uma que você desabilitou através de `permissions.deny`734* Ferramentas desabilitadas, de entradas `permissions.deny` de nome de ferramenta simples. Se você definir `disabledBuiltinTools` no bloco `desktop` da política, o gateway serve a união de seu valor e a lista derivada, então você pode desabilitar mais ferramentas desta forma mas não pode reabilitar uma que você desabilitou através de `permissions.deny`

716* A lista de permissão de saída, de `sandbox.network.allowedDomains`. Se você definir `coworkEgressAllowedHosts` no bloco `desktop` da política, o gateway usa esse valor em vez da lista derivada735* A lista de permissão de egresso, de `sandbox.network.allowedDomains`. Se você definir `coworkEgressAllowedHosts` no bloco `desktop` da política, o gateway usa esse valor em vez da lista derivada

717* Um endpoint OTLP que aponta para o gateway em si, e os atributos de identidade do usuário conectado. O gateway retransmite as exportações que recebe nesse endpoint para seus destinos `forward_to`. Ele inclui o endpoint e os atributos quando você define tanto [`telemetry.forward_to`](#telemetry) quanto `listen.public_url`.736* Um endpoint OTLP que aponta para o próprio gateway, e os atributos de identidade do usuário conectado. O gateway retransmite as exportações que recebe nesse endpoint para seus destinos `forward_to`. Ele inclui o endpoint e os atributos quando você define tanto [`telemetry.forward_to`](#telemetry) quanto `listen.public_url`.

718 737 

719 Claude Desktop exporta cada sinal com uma codificação: `http/protobuf`, ou `http/json` quando você define `OTEL_EXPORTER_OTLP_PROTOCOL` ou uma de suas variantes por sinal para `http/json` no `env` da política. Antes de Claude Code v2.1.261 no servidor do gateway, a resposta definiu `http/json` independentemente, portanto um coletor que aceita apenas protobuf rejeitou as exportações do Claude Desktop738 Claude Desktop exporta cada sinal com uma codificação: `http/protobuf`, ou `http/json` quando você define `OTEL_EXPORTER_OTLP_PROTOCOL` ou uma de suas variantes por sinal para `http/json` no `env` da política. Antes de Claude Code v2.1.261 no servidor do gateway, a resposta definia `http/json` independentemente, então um coletor que aceita apenas protobuf rejeitava as exportações do Claude Desktop

720 739 

721Para definir `disabledBuiltinTools`, `coworkEgressAllowedHosts` ou a configuração `managedMcpServers` própria do Claude Desktop em um bloco `desktop` de uma política, você precisa de Claude Code v2.1.232 ou posterior no servidor do gateway. O `managedMcpServers` do Claude Desktop leva um valor de array em vez de um objeto.740Para definir `disabledBuiltinTools`, `coworkEgressAllowedHosts` ou a configuração `managedMcpServers` própria do Claude Desktop em um bloco `desktop` de uma política, você precisa de Claude Code v2.1.232 ou posterior no servidor do gateway. O `managedMcpServers` do Claude Desktop toma um valor de array em vez de um objeto.

722 741 

723O gateway omite chaves sem equivalente do Claude Desktop, como `hooks` e regras de permissão com escopo como `Bash(npm *)`, da resposta de inicialização.742O gateway omite chaves sem equivalente do Claude Desktop, como `hooks` e regras de permissão com escopo como `Bash(npm *)`, da resposta de bootstrap.

724 743 

725Adicione o bloco `desktop` opcional ao lado de `cli` para definir configurações do Claude Desktop diretamente. Escreva configurações da [referência de configuração gerenciada](https://claude.com/docs/third-party/claude-desktop/configuration) do Claude Desktop como nomes de chave simples. Deixe de fora chaves que Claude Desktop lê apenas de MDM ou arquivos locais, como `bootstrapUrl`; o gateway as rejeita na inicialização. Antes da v2.1.232, o gateway aceitava uma lista fixa de 11 chaves de portão de recurso, como `chatTabEnabled` e `disableAutoUpdates`, e rejeitava cada outra chave na inicialização. Antes da v2.1.227, o gateway também rejeitava `chatTabEnabled` e `chatAdvancedFileAnalysisEnabled` na inicialização.744Adicione o bloco `desktop` opcional ao lado de `cli` para definir configurações do Claude Desktop diretamente. Escreva configurações da [managed configuration reference](https://claude.com/docs/third-party/claude-desktop/configuration) do Claude Desktop como nomes de chave simples. Deixe de fora chaves que Claude Desktop lê apenas de MDM ou arquivos locais, como `bootstrapUrl`; o gateway as rejeita na inicialização. Antes de v2.1.232, o gateway aceitava uma lista fixa de 11 chaves de portão de recurso, como `chatTabEnabled` e `disableAutoUpdates`, e rejeitava cada outra chave na inicialização. Antes de v2.1.227, o gateway também rejeitava `chatTabEnabled` e `chatAdvancedFileAnalysisEnabled` na inicialização.

726 745 

727```yaml theme={null}746```yaml theme={null}

728managed:747managed:


736 banner: { text: "Contractor build: internal use only" }755 banner: { text: "Contractor build: internal use only" }

737```756```

738 757 

739Cada chave é opcional; Claude Desktop aplica seu próprio padrão para qualquer chave que você omita. O gateway valida cada bloco `desktop` na inicialização contra o esquema de configuração que o próprio Claude Desktop usa, portanto um erro aparece no início do gateway como um erro nomeando a chave em vez de alcançar cada desktop conectado. O gateway falha na inicialização quando um bloco contém:758Cada chave é opcional; Claude Desktop aplica seu próprio padrão para qualquer chave que você omita. O gateway valida cada bloco `desktop` na inicialização contra o esquema de configuração que o próprio Claude Desktop usa, então um erro aparece na inicialização do gateway como um erro nomeando a chave em vez de atingir cada desktop conectado. O gateway falha na inicialização quando um bloco contém:

740 759 

741* Uma chave desconhecida760* Uma chave desconhecida

742* Uma chave reconhecida cujo valor Claude Desktop rejeitaria ou descartaria silenciosamente, como um valor vazio ou uma sub-chave digitada incorretamente dentro de uma entrada aninhada. Antes da v2.1.260, o gateway descartava silenciosamente um campo digitado incorretamente dentro de um objeto aninhado de uma entrada `managedMcpServers` ou `orgPluginSettings` em vez de falhar na inicialização.761* Uma chave reconhecida cujo valor Claude Desktop rejeitaria ou descartaria silenciosamente, como um valor vazio ou uma sub-chave digitada incorretamente dentro de uma entrada aninhada. Antes de v2.1.260, o gateway descartava silenciosamente um campo digitado incorretamente dentro de um objeto aninhado de uma entrada `managedMcpServers` ou `orgPluginSettings` em vez de falhar na inicialização.

743* Uma chave que o gateway computa em si: a conexão de inferência, a lista de modelos e a retransmissão OTLP. Configure aqueles através de [`upstreams`](#upstreams), [`models`](#models) e a seção [`telemetry`](#telemetry) `forward_to`.762* Uma chave que o gateway computa a si mesmo: a conexão de inferência, a lista de modelos e o relé OTLP. Configure aqueles através de [`upstreams`](#upstreams), [`models`](#models) e a seção [`telemetry`](#telemetry) `forward_to`.

744* Um alias legado de uma chave atual. No erro de inicialização, o gateway nomeia a chave canônica a escrever.763* Um alias legado de uma chave atual. No erro de inicialização, o gateway nomeia a chave canônica a escrever.

745 764 

746Se você usar um valor ou forma de entrada descontinuada, como uma entrada `managedMcpServers` sem `transport`, o gateway inicia e registra um aviso que nomeia a substituição.765Se você usar um valor ou forma de entrada descontinuada, como uma entrada `managedMcpServers` sem `transport`, o gateway inicia e registra um aviso nomeando a substituição.

747 766 

748O gateway valida um bloco `desktop` contra o esquema agrupado com sua versão instalada, como faz o bloco `cli`. Para entregar uma configuração introduzida por uma versão mais nova do Claude Desktop, atualize o gateway primeiro. Por exemplo, `userPluginMarketplacesEnabled` e `userPluginUploadsEnabled` precisam de Claude Code v2.1.260 ou posterior no servidor do gateway e Claude Desktop 1.37937.0 ou posterior nas máquinas dos membros.767O gateway valida um bloco `desktop` contra o esquema agrupado com sua versão instalada, como faz com o bloco `cli`. Para entregar uma configuração introduzida por um lançamento mais novo do Claude Desktop, atualize o gateway primeiro. Por exemplo, `userPluginMarketplacesEnabled` e `userPluginUploadsEnabled` precisam de Claude Code v2.1.260 ou posterior no servidor do gateway e Claude Desktop 1.37937.0 ou posterior nas máquinas dos membros.

749 768 

750Se você definir `orgPluginSettings` em um bloco `desktop` de uma política, o gateway o serve na forma de array que Claude Desktop 1.15200.0 e posterior lê. Desktops mais antigos ignoram o array e não aplicam nenhuma política de ferramenta de plugin, portanto atualize membros para 1.15200.0 ou posterior antes de confiar nisso.769Se você definir `orgPluginSettings` em um bloco `desktop` de uma política, o gateway o serve na forma de array que Claude Desktop 1.15200.0 e posterior lê. Desktops mais antigos ignoram o array e não aplicam nenhuma política de ferramenta de plugin, então atualize membros para 1.15200.0 ou posterior antes de confiar nisso.

751 770 

752O gateway preenche chaves que um bloco `desktop` de uma política não define a partir do bloco `desktop` do catch-all `match: {}`, da mesma forma que preenche um bloco `cli` de uma política a partir da base. Se você definir `disabledBuiltinTools` ou `builtinToolPolicy` tanto na base quanto em uma política de função, o gateway mantém a restrição da base:771O gateway preenche chaves que um bloco `desktop` de uma política não define a partir do bloco `desktop` da captura `match: {}`, da mesma forma que preenche um bloco `cli` de uma política a partir da base. Se você definir `disabledBuiltinTools` ou `builtinToolPolicy` tanto na base quanto em uma política de função, o gateway mantém a restrição da base:

753 772 

754* `disabledBuiltinTools`: o gateway usa a união da lista da base e da lista da política773* `disabledBuiltinTools`: o gateway usa a união da lista da base e da lista da política

755* `builtinToolPolicy`: se você definir uma ferramenta para um valor diferente de `allow` na base, o gateway mantém esse valor mesmo se você definir `allow` para a mesma ferramenta em uma política de função774* `builtinToolPolicy`: se você definir uma ferramenta para um valor diferente de `allow` na base, o gateway mantém esse valor mesmo se você definir `allow` para a mesma ferramenta em uma política de função

756 775 

757Para cada outra chave, se você a definir na política de função, o gateway usa o valor da política de função. O gateway substitui um array ou um objeto aninhado como `banner` inteiro, portanto se você definir `banner.text` em uma política de função, o gateway descarta o `banner.backgroundColor` da base.776Para cada outra chave, se você a definir na política de função, o gateway usa o valor da política de função. O gateway substitui um array ou um objeto aninhado como `banner` inteiro, então se você definir `banner.text` em uma política de função, o gateway descarta o `banner.backgroundColor` da base.

758 777 

759Se você não implantar Claude Desktop, deixe `desktop` completamente fora de suas políticas; o gateway então retorna 404 de `/user/bootstrap` para cada usuário.778Se você não implanta Claude Desktop, deixe `desktop` de fora de suas políticas inteiramente; o gateway então retorna 404 de `/user/bootstrap` para cada usuário.

760 779 

761<h4 id="precedence-with-other-managed-sources">780<h4 id="precedence-with-other-managed-sources">

762 Precedência com outras fontes gerenciadas781 Precedência com outras fontes gerenciadas

763</h4>782</h4>

764 783 

765Se um dispositivo também tiver uma política entregue por MDM ou um `managed-settings.json` local, as configurações entregues pelo gateway têm classificação primeiro. [Precedência dentro da camada gerenciada](/docs/pt/managed-settings#precedence-within-the-managed-tier) na página de configurações gerenciadas diz quando as fontes locais se aplicam, e tem as [chaves que Claude Code lê de cada fonte de administrador](/docs/pt/managed-settings#keys-read-from-every-admin-source) independentemente de qual fonte selecionou, como as chaves de bloqueio de sandbox, `forceRemoteSettingsRefresh` e a mesclagem `env` por variável. Um [`policyHelper`](/docs/pt/settings-reference#policyhelper) configurado em um perfil MDM ou arquivo de configurações gerenciadas é executado apenas quando o gateway não entrega configurações; a entrada diz o que sua saída substitui.784Se um dispositivo também tem uma política entregue por MDM ou um `managed-settings.json` local, as configurações entregues pelo gateway classificam primeiro. [Precedence within the managed tier](/docs/pt/managed-settings#precedence-within-the-managed-tier) na página de configurações gerenciadas diz quando as fontes locais se aplicam, e tem as [chaves que Claude Code lê de cada fonte de administrador](/docs/pt/managed-settings#keys-read-from-every-admin-source) independentemente de qual fonte selecionou, como as chaves de bloqueio de sandbox, `forceRemoteSettingsRefresh` e o `env` por variável mesclado. Um [`policyHelper`](/docs/pt/settings-reference#policyhelper) configurado em um perfil MDM ou no arquivo de configurações gerenciadas é executado apenas quando o gateway não entrega configurações; a entrada diz o que sua saída substitui.

766 785 

767Hosts de incorporação como [Claude Desktop](/docs/pt/desktop) podem fornecer política através da opção SDK `managedSettings`. [Configurações pai de hosts de incorporação](/docs/pt/managed-settings#parent-settings-from-embedding-hosts) diz quando Claude Code a aplica, e [Restringir configurações pai](/docs/pt/claude-apps-gateway#restrict-parent-settings) lista quais configurações de direção de permissão ainda se aplicam sem os bloqueios `allowManaged*Only`.786Hosts de incorporação como [Claude Desktop](/docs/pt/desktop) podem fornecer política através da opção SDK `managedSettings`. [Parent settings from embedding hosts](/docs/pt/managed-settings#parent-settings-from-embedding-hosts) diz quando Claude Code a aplica, e [Restrict parent settings](/docs/pt/claude-apps-gateway#restrict-parent-settings) lista quais configurações de direção de permissão ainda se aplicam sem os bloqueios `allowManaged*Only`.

768 787 

769As políticas do gateway se aplicam a cada invocação do Claude Code na máquina, incluindo execuções não interativas `claude -p` e sessões geradas pelo Agent SDK. Se o gateway estiver inacessível na inicialização, sessões assinadas saem com um erro em vez de executar sem sua política.788As políticas do gateway se aplicam a cada invocação do Claude Code na máquina, incluindo execuções não interativas `claude -p` e sessões geradas pelo Agent SDK. Se o gateway estiver inacessível na inicialização, sessões conectadas saem com um erro em vez de executar sem sua política.

770 789 

771<h3 id="telemetry">790<h3 id="telemetry">

772 `telemetry`791 `telemetry`

773</h3>792</h3>

774 793 

775O CLI envia métricas, logs e, quando habilitado, rastreamentos para o gateway, que os retransmite literalmente para cada destino configurado. As exportações usam OpenTelemetry Protocol (OTLP) sobre HTTP. Para pular a retransmissão e ter sessões exportarem diretamente para seu coletor, [nomeie o coletor em uma política](#export-directly-to-your-collector). Consulte [Monitoramento de uso](/docs/pt/monitoring-usage) para as métricas e eventos que o CLI emite.794O CLI envia métricas, logs e, quando habilitado, rastreamentos para o gateway, que os retransmite verbatim para cada destino configurado. As exportações usam OpenTelemetry Protocol (OTLP) sobre HTTP. Para pular o relé e ter sessões exportar diretamente para seu coletor, [nomeie o coletor em uma política](#export-directly-to-your-collector). Veja [Monitoring usage](/docs/pt/monitoring-usage) para as métricas e eventos que o CLI emite.

776 795 

777O CLI carimba cada exportação com a identidade do usuário autenticado, lida do JWT emitido pelo gateway: os atributos `user.id`, `user.email` e `user.groups`. A atribuição de custo e uso por desenvolvedor portanto funciona sem nenhuma configuração do lado do desenvolvedor.796O CLI carimba cada exportação com a identidade do usuário autenticado, lida do JWT emitido pelo gateway: os atributos `user.id`, `user.email` e `user.groups`. A atribuição de custo e uso por desenvolvedor portanto funciona sem nenhuma configuração no lado do desenvolvedor.

778 797 

779[Claude Desktop](#claude-desktop-overlay) e sessões Cowork conectadas através do gateway carimbam sua telemetria com `user.email` e `user.groups` ao lado de `enduser.id`, portanto você pode cobrir uso de terminal, Desktop e Cowork com uma consulta em `user.email` ou `user.groups`. `user.groups` é a lista de grupos IdP separada por vírgula.798[Claude Desktop](#claude-desktop-overlay) e sessões Cowork conectadas através do gateway carimbam sua telemetria com `user.email` e `user.groups` ao lado de `enduser.id`, então você pode cobrir uso de terminal, Desktop e Cowork com uma consulta em `user.email` ou `user.groups`. `user.groups` é a lista de grupo do IdP separada por vírgula.

780 799 

781Como todos os dados OpenTelemetry do Claude Code, esses atributos vão apenas para destinos que sua organização configura, nunca para Anthropic.800Como todos os dados OpenTelemetry do Claude Code, estes atributos vão apenas para destinos que sua organização configura, nunca para Anthropic.

782 801 

783Se a lista de grupos de um usuário for maior que 255 caracteres uma vez codificada em percentual, ou um nome de grupo contiver uma vírgula ou sinal de igual, o gateway deixa `user.groups` fora da telemetria Desktop e Cowork desse usuário em vez de truncá-la. As sessões de terminal desse usuário ainda carregam a lista completa.802Se a lista de grupos de um usuário é mais longa que 255 caracteres uma vez codificada em percentual, ou um nome de grupo contém uma vírgula ou sinal de igual, o gateway deixa `user.groups` de fora da telemetria Desktop e Cowork desse usuário em vez de truncá-la. As sessões de terminal desse usuário ainda carregam a lista completa.

784 803 

785Você precisa de Claude Code v2.1.265 ou posterior no servidor do gateway para `user.email` e `user.groups` na telemetria Desktop e Cowork, e Claude Desktop 1.24012 ou posterior em cada máquina do desenvolvedor para `user.groups`.804Você precisa de Claude Code v2.1.265 ou posterior no servidor do gateway para `user.email` e `user.groups` na telemetria Desktop e Cowork, e Claude Desktop 1.24012 ou posterior em cada máquina do desenvolvedor para `user.groups`.

786 805 


790 - url: https://otel-collector.internal.example.com809 - url: https://otel-collector.internal.example.com

791 headers:810 headers:

792 Authorization: ${OTLP_TOKEN}811 Authorization: ${OTLP_TOKEN}

793 # Opt-in por sinal. Padrão: apenas métricas.812 # Per-signal opt-in. Default: metrics only.

794 metrics: true813 metrics: true

795 logs: false814 logs: false

796 traces: false815 traces: false


800```819```

801 820 

802<Warning>821<Warning>

803 Cada destino opta por `metrics`, `logs` e `traces` independentemente, e o padrão é apenas métricas. Os sinais diferem em sensibilidade:822 Cada destino opta em `metrics`, `logs` e `traces` independentemente, e o padrão é apenas métricas. Os sinais diferem em sensibilidade:

804 823 

805 * **Métricas**: contadores agregados como contagens de token, contagens de solicitação e latência824 * **Metrics**: contadores agregados como contagens de tokens, contagens de solicitações e latência

806 * **Logs e rastreamentos**: podem carregar comandos bash completos, entradas de ferramenta e caminhos de arquivo, cobrindo qualquer coisa que Claude Code faz na máquina de um desenvolvedor825 * **Logs and traces**: podem carregar comandos Bash completos, entradas de ferramentas e caminhos de arquivo, cobrindo qualquer coisa que Claude Code faz na máquina de um desenvolvedor

807 826 

808 Habilite logs e rastreamentos apenas em destinos com os controles de acesso e política de retenção que os dados justificam.827 Habilite logs e rastreamentos apenas em destinos com os controles de acesso e política de retenção que os dados justificam.

809</Warning>828</Warning>

810 829 

811Cada URL `forward_to` deve usar `https://`, com uma exceção para um coletor na interface de loopback do próprio gateway:830Cada URL `forward_to` deve usar `https://`, com uma exceção para um coletor na própria interface de loopback do gateway:

812 831 

813* `http://localhost:<port>` passa validação de configuração, mas a [proteção SSRF](/docs/pt/claude-apps-gateway-deploy#threat-model-summary) bloqueia cada exportação com `ECONNREFUSED_SSRF` a menos que você defina `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` no ambiente do gateway832* `http://localhost:<port>` passa validação de configuração, mas a [SSRF guard](/docs/pt/claude-apps-gateway-deploy#threat-model-summary) bloqueia cada exportação com `ECONNREFUSED_SSRF` a menos que você defina `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` no ambiente do gateway

814* `http://127.0.0.1:<port>` ou `http://[::1]:<port>` falha na inicialização a menos que essa variável seja definida833* `http://127.0.0.1:<port>` ou `http://[::1]:<port>` falha na inicialização a menos que essa variável esteja definida

815 834 

816Para um coletor em cluster, exponha-o sobre HTTPS em seu próprio endereço interno, ou execute-o como um sidecar com a variável definida.835Para um coletor em cluster, exponha-o sobre HTTPS em seu próprio endereço interno, ou execute-o como um sidecar com a variável definida.

817 836 

818A telemetria está desativada no CLI por padrão. Quando você define tanto `telemetry.forward_to` quanto `listen.public_url`, o gateway a ativa para clientes conectados empurrando seis variáveis de ambiente através de `/managed/settings`:837Telemetria está desligada no CLI por padrão. Quando você define tanto `telemetry.forward_to` quanto `listen.public_url`, o gateway a liga para clientes conectados empurrando seis variáveis de ambiente através de `/managed/settings`:

819 838 

820* `CLAUDE_CODE_ENABLE_TELEMETRY=1`839* `CLAUDE_CODE_ENABLE_TELEMETRY=1`

821* `OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER` e `OTEL_TRACES_EXPORTER`, cada um definido para `otlp` se pelo menos um destino `forward_to` habilita esse sinal e para `none` caso contrário840* `OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER` e `OTEL_TRACES_EXPORTER`, cada um definido para `otlp` se pelo menos um destino `forward_to` habilita esse sinal e para `none` caso contrário


824 843 

825Antes de Claude Code v2.1.265 no servidor do gateway, o gateway empurrava todos os três seletores de exportador como `otlp`, incluindo para sinais que nenhum destino optou.844Antes de Claude Code v2.1.265 no servidor do gateway, o gateway empurrava todos os três seletores de exportador como `otlp`, incluindo para sinais que nenhum destino optou.

826 845 

827O endpoint empurrado é construído a partir da URL pública, portanto métricas e logs não precisam de nenhuma configuração OTEL de desenvolvedores ou políticas.846O endpoint empurrado é construído a partir da URL pública, então métricas e logs não precisam de nenhuma configuração OTEL de desenvolvedores ou políticas.

828 847 

829Desenvolvedores conectados através de `/login` não podem redirecionar exportações com sua própria configuração OTEL:848Desenvolvedores conectados através de `/login` não podem redirecionar exportações com sua própria configuração OTEL:

830 849 

831* **Variáveis definidas localmente**: Claude Code aplica as variáveis empurradas na camada gerenciada, portanto cada uma substitui o valor que um desenvolvedor define para ela localmente.850* **Variáveis definidas localmente**: Claude Code aplica as variáveis empurradas na camada gerenciada, então cada uma substitui o valor que um desenvolvedor define para ela localmente.

832* **Endpoints configurados localmente**: com exportação OTLP/HTTP habilitada, o CLI ignora qualquer endpoint configurado localmente, independentemente de o gateway ter empurrado as variáveis de telemetria. Suas exportações vão para o gateway a menos que uma política [nomeie seu coletor como o endpoint](#export-directly-to-your-collector).851* **Endpoints configurados localmente**: com exportação OTLP/HTTP habilitada, o CLI ignora qualquer endpoint configurado localmente, independentemente de o gateway ter empurrado as variáveis de telemetria. Suas exportações vão para o gateway a menos que uma política [nomeie seu coletor como o endpoint](#export-directly-to-your-collector).

833 852 

834Sem um destino `forward_to` para um sinal, o gateway aceita e descarta. Se desenvolvedores já exportam telemetria do Claude Code para um de seus coletores, adicione-o como um destino `forward_to`, com logs ou rastreamentos habilitados se exportarem aqueles, portanto continua recebendo seus dados depois que eles se conectam. Para pular a retransmissão em vez disso, [nomeie o coletor em uma política](#export-directly-to-your-collector).853Sem um destino `forward_to` para um sinal, o gateway o aceita e descarta. Se desenvolvedores já exportam telemetria do Claude Code para um de seus coletores, adicione-o como um destino `forward_to`, com logs ou rastreamentos habilitados se eles exportarem aqueles, então continua recebendo seus dados depois que eles se conectam. Para pular o relé em vez disso, [nomeie o coletor em uma política](#export-directly-to-your-collector).

835 854 

836[Rastreamentos](/docs/pt/monitoring-usage#traces-beta) também requerem `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1` em cada cliente. Defina-o no bloco `env` de uma política gerenciada, já que o gateway não o empurra. Desenvolvedores o aprovam no mesmo [diálogo de aprovação de segurança](#managed) que o endpoint empurrado já dispara.855[Traces](/docs/pt/monitoring-usage#traces-beta) também requerem `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1` em cada cliente. Defina-o no bloco `env` de uma política gerenciada, já que o gateway não o empurra. Desenvolvedores o aprovam no mesmo [security approval dialog](#managed) que o endpoint empurrado já aciona.

837 856 

838Defina-o para `1` apenas nas políticas cujos grupos você quer rastreados. Uma política que não o define herda o valor de sua política `match: {}` catch-all se essa política define um, por [regras de mesclagem](#managed). Para manter os clientes de um grupo de enviar rastreamentos mesmo quando um desenvolvedor define a variável localmente, defina-a para `0` na política desse grupo.857Defina-o para `1` apenas nas políticas cujos grupos você quer rastreados. Uma política que não o define herda o valor de sua política de captura `match: {}` se essa política define um, por [merge rules](#managed). Para impedir que os clientes de um grupo enviem rastreamentos mesmo quando um desenvolvedor define a variável localmente, defina-a para `0` na política desse grupo.

839 858 

840Ambas as codificações OTLP protobuf e JSON são retransmitidas, e qualquer backend compatível com OpenTelemetry funciona como destino.859Ambas as codificações OTLP protobuf e JSON são retransmitidas, e qualquer backend compatível com OpenTelemetry funciona como um destino.

841 860 

842<h4 id="export-directly-to-your-collector">861<h4 id="export-directly-to-your-collector">

843 Exportar diretamente para seu coletor862 Exportar diretamente para seu coletor

844</h4>863</h4>

845 864 

846Para ter sessões conectadas através de `/login` enviar telemetria diretamente para seu coletor em vez de através da retransmissão, defina `OTEL_EXPORTER_OTLP_ENDPOINT` para a URL base `https://` do coletor no bloco `env` de uma [política gerenciada](#managed). Claude Code anexa `/v1/metrics`, `/v1/logs` ou `/v1/traces` à URL que você define, como `https://otel-collector.example.com:4318`, e exporta cada sinal lá sobre OTLP/HTTP. Requer Claude Code v2.1.265 ou posterior em cada máquina do desenvolvedor. Clientes anteriores exportam através da retransmissão.865Para ter sessões conectadas através de `/login` enviar telemetria diretamente para seu coletor em vez de através do relé, defina `OTEL_EXPORTER_OTLP_ENDPOINT` para a URL base `https://` do coletor no bloco `env` de uma [managed policy](#managed). Claude Code anexa `/v1/metrics`, `/v1/logs` ou `/v1/traces` à URL que você define, como `https://otel-collector.example.com:4318`, e exporta cada sinal lá sobre OTLP/HTTP. Requer Claude Code v2.1.265 ou posterior em cada máquina do desenvolvedor. Clientes anteriores exportam através do relé.

847 866 

848Para autenticar para o coletor, defina `OTEL_EXPORTER_OTLP_HEADERS` no mesmo bloco `env`. Sessões nunca enviam o token de sessão do gateway do desenvolvedor para um coletor nomeado dessa forma.867Para autenticar para o coletor, defina `OTEL_EXPORTER_OTLP_HEADERS` no mesmo bloco `env`. Sessões nunca enviam o token de sessão do gateway do desenvolvedor para um coletor nomeado desta forma.

849 868 

850Quando você adiciona ou muda esse endpoint em uma política, Claude Code pede a cada desenvolvedor para aprová-lo no [diálogo de aprovação de segurança](#managed) antes de aplicá-lo em uma sessão interativa.869Quando você adiciona ou muda este endpoint em uma política, Claude Code pede a cada desenvolvedor para aprová-lo no [security approval dialog](#managed) antes de aplicá-lo em uma sessão interativa.

851 870 

852Claude Code verifica o endpoint antes de exportar um sinal diretamente, e mantém esse sinal na retransmissão quando uma verificação falha. As verificações incluem:871Claude Code verifica o endpoint antes de exportar um sinal diretamente, e mantém esse sinal no relé quando uma verificação falha. As verificações incluem:

853 872 

854* O endpoint vem do próprio gateway. Se você definir a mesma variável em um perfil MDM ou um `managed-settings.json` local, exportações permanecem na retransmissão.873* O endpoint vem do próprio gateway. Se você definir a mesma variável em um perfil MDM ou um `managed-settings.json` local, exportações permanecem no relé.

855* A URL usa `https://`, ou `http://` para um endereço de loopback874* A URL usa `https://`, ou `http://` para um endereço de loopback

856* A URL resolve para um caminho terminando em `/v1/<signal>`, sem consulta ou fragmento. Claude Code constrói esse caminho em si a partir da variável genérica. Ele usa uma variável por sinal como `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` conforme escrito, portanto inclua o caminho completo lá.875* A URL resolve para um caminho terminando em `/v1/<signal>`, sem consulta ou fragmento. Claude Code constrói esse caminho a si mesmo a partir da variável genérica. Ele usa uma variável por sinal como `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` conforme escrito, então inclua o caminho completo lá.

857* A URL não é o próprio host do gateway. Um endpoint endereçado ao gateway mantém o caminho de retransmissão e seu token de sessão.876* A URL não é o próprio host do gateway. Um endpoint endereçado ao gateway mantém o caminho de relé e seu token de sessão.

858* Nem você nem o desenvolvedor configurou [`otelHeadersHelper`](/docs/pt/settings-reference#otelheadershelper) em nenhuma fonte de configurações. Com um helper configurado, cada sinal permanece na retransmissão.877* Nem você nem o desenvolvedor configurou [`otelHeadersHelper`](/docs/pt/settings-reference#otelheadershelper) em nenhuma fonte de configurações. Com um helper configurado, cada sinal permanece no relé.

859 878 

860O endpoint que você nomeia muda apenas para onde as exportações vão. Você ainda escolhe quais sinais exportam em tudo com os seletores `OTEL_*_EXPORTER`.879O endpoint que você nomeia muda apenas para onde as exportações vão. Você ainda escolhe quais sinais exportam em tudo com os seletores `OTEL_*_EXPORTER`.

861 880 

862O endpoint sozinho não ativa exportação, portanto também defina as variáveis que fazem, a menos que o gateway já as empurre:881O endpoint sozinho não liga a exportação, então também defina as variáveis que fazem, a menos que o gateway já as empurre:

863 882 

864* Se o gateway já [empurra as variáveis de telemetria](#telemetry), elas cobrem habilitação, seletores e protocolo, e seu endpoint explícito substitui o valor `<public_url>` empurrado. Defina um seletor `OTEL_*_EXPORTER` para `otlp` você mesmo apenas para um sinal que nenhum destino `forward_to` habilita.883* Se o gateway já [empurra as variáveis de telemetria](#telemetry), elas cobrem habilitação, seletores e protocolo, e seu endpoint explícito substitui o valor `<public_url>` empurrado. Defina um seletor `OTEL_*_EXPORTER` para `otlp` você mesmo apenas para um sinal que nenhum destino `forward_to` habilita.

865* Se não, também defina `CLAUDE_CODE_ENABLE_TELEMETRY=1`, os seletores `OTEL_*_EXPORTER` e `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`.884* Se não, também defina `CLAUDE_CODE_ENABLE_TELEMETRY=1`, os seletores `OTEL_*_EXPORTER` e `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`.


870 Quando um destino falha889 Quando um destino falha

871</h4>890</h4>

872 891 

873O gateway não armazena em buffer, tenta novamente ou armazena telemetria, portanto descarta uma exportação que não atinge um destino em vez de entregá-la tarde. Cada destino sucede ou falha por conta própria, e o cliente exportador recebe uma resposta de sucesso de qualquer forma, portanto uma entrega falhada aparece apenas no log do gateway.892O gateway não armazena em buffer, tenta novamente ou armazena telemetria, então descarta uma exportação que não atinge um destino em vez de entregá-la tarde. Cada destino sucede ou falha por conta própria, e o cliente exportador recebe uma resposta de sucesso de qualquer forma, então uma entrega falhada aparece apenas no log do gateway.

874 893 

875Após cinco falhas consecutivas de entrega para um destino, o gateway pausa o encaminhamento para ele em trechos de 30 segundos, registrando cada pausa, até que uma entrega suceda. Qualquer resposta de erro, timeout ou erro de conexão conta como uma entrega falhada, exceto `400`, `413`, `415`, `422` e `431`, que significam que o coletor recusou a carga dessa exportação como malformada ou muito grande.894Após cinco falhas consecutivas de entrega para um destino, o gateway pausa o encaminhamento para ele em trechos de 30 segundos, registrando cada pausa, até que uma entrega suceda. Qualquer resposta de erro, timeout ou erro de conexão conta como uma falha de entrega, exceto `400`, `413`, `415`, `422` e `431`, que significam que o coletor rejeitou a carga dessa exportação como malformada ou muito grande.

876 895 

877Uma carga recusada nem avança nem reseta a contagem de falhas: o gateway continua encaminhando para o destino e registra um aviso nomeando-o e o status, na primeira recusa do destino e a cada centésima depois.896Uma carga rejeitada nem avança nem reseta a contagem de falhas: o gateway continua encaminhando para o destino e registra um aviso nomeando-o e o status, na primeira recusa do destino e a cada centésima depois.

878 897 

879<h3 id="http-tuning">898<h3 id="http-tuning">

880 Ajuste HTTP899 HTTP tuning

881</h3>900</h3>

882 901 

883Quatro blocos opcionais de nível superior, `access_control`, `limits`, `timeouts` e `rate_limits`, ajustam a superfície HTTP. Os padrões se adequam à maioria das implantações.902Quatro blocos opcionais de nível superior, `access_control`, `limits`, `timeouts` e `rate_limits`, ajustam a superfície HTTP. Os padrões se adequam à maioria das implantações.

884 903 

885| Bloco | Chave | Padrão | Descrição |904| Bloco | Chave | Padrão | Descrição |

886| ---------------- | ---------------------------------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |905| ---------------- | ---------------------------------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

889| `limits` | `max_request_header_bytes` | não definido | Quando definido, cabeçalhos de tamanho excessivo retornam `431` |908| `limits` | `max_request_header_bytes` | não definido | Quando definido, cabeçalhos de tamanho excessivo retornam `431` |

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

891| `timeouts` | `upstream_ttfb_ms` | 120000 | Espera máxima pelos cabeçalhos de resposta do upstream (tempo até o primeiro byte). O corpo da resposta então flui sem limite de relógio de parede. Aplica-se ao caminho upstream Anthropic direto; cada outro provedor é limitado pelo próprio timeout do SDK do provedor. |910| `timeouts` | `upstream_ttfb_ms` | 120000 | Espera máxima pelos cabeçalhos de resposta do upstream (tempo até o primeiro byte). O corpo da resposta então flui sem limite de relógio de parede. Aplica-se ao caminho direto do upstream Anthropic; cada outro provedor é limitado pelo próprio timeout do SDK do provedor. |

892| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Limite de taxa por IP no endpoint de autorização de dispositivo não autenticado. Aumente para uma grande organização atrás de um IP de saída compartilhado ou NAT. Esses limites se aplicam apenas ao fluxo de concessão de dispositivo de login, não a `/v1/messages` inferência. Consulte [Resistência de força bruta de código de usuário](/docs/pt/claude-apps-gateway-deploy#user-code-brute-force-resistance). |911| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Limite de taxa por IP no endpoint de autorização de dispositivo não autenticado. Aumente para uma grande organização atrás de um IP de egresso compartilhado ou NAT. Estes limites se aplicam apenas ao fluxo de concessão de dispositivo de sign-in, não à inferência `/v1/messages`. Veja [User-code brute-force resistance](/docs/pt/claude-apps-gateway-deploy#user-code-brute-force-resistance). |

893| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | Limite de taxa por IP em envios `user_code` em `/device` |912| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | Limite de taxa por IP em envios de `user_code` em `/device` |

913 

914Se você deixar ambas as listas `access_control` vazias, que é o padrão, o gateway serve qualquer endereço de cliente, então apenas sua rede restringe quem pode alcançá-lo. Isto importa porque um gateway pode empurrar [managed settings](#managed) que executam comandos em máquinas de desenvolvedores.

915 

916Enquanto `allow_cidrs` está vazio, o gateway avisa em dois lugares, sem mudar como responde a qualquer solicitação:

917 

918* **Na inicialização**: um aviso no log operacional recomenda permitir apenas os intervalos privados `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`, `100.64.0.0/10`, `127.0.0.0/8`, `::1/128` e `fc00::/7`, mais qualquer outro intervalo interno de onde seus desenvolvedores se conectam. Se você vincular o gateway a um endereço de loopback e não definir nem `trusted_proxies` nem `public_url`, como em desenvolvimento local, o aviso não aparece.

919* **Em tempo de execução**: a primeira vez que uma solicitação chega de um endereço fora desses intervalos privados, o gateway registra um aviso e emite um [`access.public_client` audit event](/docs/pt/claude-apps-gateway-deploy#logs) carregando o IP do cliente. Ambos disparam uma vez por processo. Endereços link-local, `169.254.0.0/16` e `fe80::/10`, não contam como públicos. O gateway responde `/healthz` e `/readyz` antes desta verificação ser executada, então sondas de saúde de intervalos públicos não a acionam.

920 

921Ambos os sinais usam o endereço do cliente conforme o gateway o resolve. Se um balanceador de carga, port-forward ou túnel retransmite tráfego e não está listado em `listen.trusted_proxies`, o gateway vê o endereço do relé, que é geralmente privado, então nem o aviso em tempo de execução nem uma lista de permissão privada o captura.

922 

923Atrás de tal front end, defina [`listen.trusted_proxies`](#listen) primeiro para que o gateway veja endereços de cliente reais, e mantenha o gateway e tudo na frente dele inacessível da internet pública independentemente.

894 924 

895<h2 id="complete-example">925<h2 id="complete-example">

896 Exemplo completo926 Exemplo completo


962# enforcement:992# enforcement:

963# fail_closed_on_error: false993# fail_closed_on_error: false

964 994 

965# Medir em taxas contratadas em vez de preço de lista USD. Requer admin:.995# Medir em taxas contratadas em vez de preço de lista USD. Requer admin: ou uma

966# Com managed:, as mesmas taxas também vão para clientes conectados.996# política managed:. Com managed:, as mesmas taxas também vão para clientes conectados.

967# As taxas abaixo são espaços reservados, não preços de contrato reais.997# As taxas abaixo são espaços reservados, não preços de contrato reais.

968# pricing:998# pricing:

969# multiplier: 0.85999# multiplier: 0.85


1040```1070```

1041 1071 

1042<h2 id="client-side-managed-settings">1072<h2 id="client-side-managed-settings">

1043 Configurações gerenciadas do lado do cliente1073 Configurações gerenciadas no lado do cliente

1044</h2>1074</h2>

1045 1075 

1046Tudo acima configura o servidor gateway. Apontar máquinas de desenvolvedor para ele é configurado separadamente, em cada dispositivo, através das [configurações gerenciadas](/docs/pt/managed-settings) do Claude Code. O gateway não pode enviar as chaves de login em si, porque são elas que dizem ao cliente onde o gateway está.1076Tudo acima configura o servidor gateway. Você aponta máquinas de desenvolvedores para o gateway separadamente, em cada dispositivo, através das [configurações gerenciadas](/docs/pt/managed-settings) do Claude Code. O gateway não pode enviar as chaves de login por si só, porque são elas que dizem ao cliente onde o gateway está.

1047 1077 

1048Para o CLI, defina essas chaves no `managed-settings.json` por SO:1078Para a CLI, defina essas chaves no `managed-settings.json` por SO. As duas chaves de login encaminham cada `/login` do desenvolvedor para seu gateway:

1049 1079 

1050```json theme={null}1080```json theme={null}

1051{1081{


1055}1085}

1056```1086```

1057 1087 

1058`parentSettingsBehavior: "merge"` mantém a entrega da lista de permissões de saída do Claude Desktop para suas sessões incorporadas do Claude Code funcionando; [Entregar política para sessões do Claude Desktop](/docs/pt/claude-apps-gateway#deliver-policy-to-claude-desktop-sessions) explica o mecanismo e onde a aceitação deve estar.1088`parentSettingsBehavior: "merge"` mantém a entrega da lista de permissões de saída do Claude Desktop para suas sessões incorporadas do Claude Code funcionando; [Deliver policy to Claude Desktop sessions](/docs/pt/claude-apps-gateway#deliver-policy-to-claude-desktop-sessions) explica o mecanismo e onde a aceitação deve estar.

1059 1089 

1060Implante o arquivo `managed-settings.json` em cada dispositivo, tipicamente via sua plataforma MDM. O caminho do arquivo difere por plataforma. Veja [onde cada mecanismo armazena a política](/docs/pt/managed-settings#where-each-mechanism-stores-the-policy).1090Implante o arquivo `managed-settings.json` em cada dispositivo, normalmente através de sua plataforma MDM. O caminho do arquivo difere por plataforma. Veja [onde cada mecanismo armazena a política](/docs/pt/managed-settings#where-each-mechanism-stores-the-policy).

1061 1091 

1062Por padrão, uma política de registro no Windows ou um plist de preferências gerenciadas no macOS substitui o arquivo `managed-settings.json` em vez de mesclar com ele, exceto pelas [chaves de exceção e verificações entre fontes acima](#precedence-with-other-managed-sources). Todas as três chaves neste trecho seguem a regra de fonte de prioridade mais alta, portanto frotas que entregam política através de Group Policy ou perfis de configuração devem colocar todas as três nesse mecanismo em vez disso.1092Por padrão, uma política de registro no Windows ou um plist de preferências gerenciadas no macOS substitui o arquivo `managed-settings.json` em vez de mesclar com ele, exceto pelas [chaves de exceção e verificações entre fontes acima](#precedence-with-other-managed-sources). Todas as três chaves neste trecho seguem a regra de fonte de prioridade mais alta, portanto frotas que entregam política através de Group Policy ou perfis de configuração devem colocar todas as três nesse mecanismo.

1063 1093 

1064Para Claude Desktop, defina a chave `bootstrapUrl` na própria [configuração gerenciada](https://claude.com/docs/third-party/claude-desktop/configuration) do Claude Desktop como `<listen.public_url>/user/bootstrap`. O fluxo de entrada e a política por grupo correspondem aos do CLI uma vez que uma política aceita no servidor com uma chave `desktop`; sem a aceitação, `/user/bootstrap` retorna 404. Veja [Claude Desktop overlay](#claude-desktop-overlay) para a metade do servidor.1094Para Claude Desktop, defina a chave `bootstrapUrl` na própria [configuração gerenciada](https://claude.com/docs/third-party/claude-desktop/configuration) do Claude Desktop como `<listen.public_url>/user/bootstrap`. O fluxo de entrada e a política por grupo correspondem aos da CLI uma vez que uma política aceita no servidor com uma chave `desktop`; sem a aceitação, `/user/bootstrap` retorna 404. Veja [Claude Desktop overlay](#claude-desktop-overlay) para a metade do servidor.

1065 1095 

1066[`forceLoginGatewayUrl`](/docs/pt/settings-reference#forcelogingatewayurl) e o valor `"gateway"` de [`forceLoginMethod`](/docs/pt/settings-reference#forceloginmethod) são honrados apenas de uma fonte gerenciada na máquina: `managed-settings.json`, o plist do macOS ou registro HKLM do Windows, ou um auxiliar de política. Um desenvolvedor definindo-os em seu próprio `~/.claude/settings.json` não tem efeito, e nem define-os na carga útil do gateway.1096Claude Code honra [`forceLoginGatewayUrl`](/docs/pt/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](/docs/pt/settings-reference#gatewayinternalnetworks) e o valor `"gateway"` de [`forceLoginMethod`](/docs/pt/settings-reference#forceloginmethod) apenas de uma fonte gerenciada na máquina: `managed-settings.json`, o plist do macOS ou registro HKLM do Windows, ou um auxiliar de política. Um desenvolvedor configurando-os em seu próprio `~/.claude/settings.json` não tem efeito, e tampouco tem efeito configurá-los na carga útil do gateway.

1067 1097 

1068<h2 id="related">1098<h2 id="related">

1069 Relacionado1099 Relacionado

Details

18Se uma entrada ou inicialização falhar no caminho, vá direto para [Solução de problemas](#troubleshooting), que é indexada no erro que você vê.18Se uma entrada ou inicialização falhar no caminho, vá direto para [Solução de problemas](#troubleshooting), que é indexada no erro que você vê.

19 19 

20<Note>20<Note>

21 **Implante em sua rede privada.** Claude Code apenas se conecta a um gateway cujo endereço é privado. Esta é uma proteção de segurança, porque um gateway confiável pode enviar configurações que executam comandos em máquinas de desenvolvedor. Coloque o gateway que você implanta atrás de um balanceador de carga interno ou VPN e dê a ele um nome de host que seja resolvido apenas para IPs privados.21 **Implante em sua rede privada.** Claude Code apenas se conecta a um gateway cujo endereço é privado. Esta é uma proteção de segurança, porque um gateway confiável pode enviar configurações que executam comandos em máquinas de desenvolvedor. Coloque o gateway que você implanta atrás de um balanceador de carga interno ou VPN e dê a ele um nome de host que seja resolvido apenas para IPs privados. Se sua rede interna for numerada a partir do espaço IPv4 público que sua organização possui, consulte [Permitir um gateway em espaço de endereço público que você possui](/docs/pt/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own).

22</Note>22</Note>

23 23 

24<h2 id="identity-provider-setup">24<h2 id="identity-provider-setup">


136 136 

137O gateway escreve dois fluxos para stderr, ambos amigáveis a JSON:137O gateway escreve dois fluxos para stderr, ambos amigáveis a JSON:

138 138 

139* **Eventos de auditoria**: JSON de linha única por evento relevante para segurança. Canalize stderr para seu agregador de logs. Os eventos emitidos incluem `config.load`, `session.mint`, `session.refresh`, `device.authorize`, `device.verify`, `device.callback`, `auth.denied`, `access.denied`, `inference`, `managed.serve`, `desktop_bootstrap.serve`, `desktop_bootstrap.denied`, `spend.blocked`, `admin.denied`, `admin.limit.upsert` e `admin.limit.delete`. Os campos variam por evento:139* **Eventos de auditoria**: JSON de linha única por evento relevante para segurança. Canalize stderr para seu agregador de logs.

140 

141 Os eventos emitidos incluem `config.load`, `session.mint`, `session.refresh`, `device.authorize`, `device.verify`, `device.callback`, `auth.denied`, `access.denied`, `access.public_client`, `inference`, `managed.serve`, `desktop_bootstrap.serve`, `desktop_bootstrap.denied`, `spend.blocked`, `admin.denied`, `admin.limit.upsert` e `admin.limit.delete`. Os campos variam por evento:

142 

140 * Eventos de mint e refresh bem-sucedidos carregam `sub`, `email`, `client_ip` e o resultado143 * Eventos de mint e refresh bem-sucedidos carregam `sub`, `email`, `client_ip` e o resultado

141 * `auth.denied` e `access.denied` carregam o motivo e IP do cliente, mais o caminho da solicitação para `auth.denied`, já que nenhuma identidade de usuário existe nessas negações. Dois motivos de `access.denied` mudam o que o evento carrega:144 * `auth.denied` e `access.denied` carregam o motivo e IP do cliente, mais o caminho da solicitação para `auth.denied`, já que nenhuma identidade de usuário existe nessas negações. Dois motivos de `access.denied` mudam o que o evento carrega:

142 * `xff_unparseable`: o evento também carrega a entrada `X-Forwarded-For` que não pôde ser lida145 * `xff_unparseable`: o evento também carrega a entrada `X-Forwarded-For` que não pôde ser lida

143 * `client_ip_unknown`: o evento não carrega IP do cliente, porque a conexão não tinha endereço de peer enquanto uma lista de `access_control` estava definida146 * `client_ip_unknown`: o evento não carrega IP do cliente, porque a conexão não tinha endereço de peer enquanto uma lista de `access_control` estava definida

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

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

145 * `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ário149 * `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

146 * `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 apresentado150 * `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


171 Rotação de segredo JWT175 Rotação de segredo JWT

172</h3>176</h3>

173 177 

174Gire o segredo de assinatura em três etapas para que as sessões existentes permaneçam válidas:178Gire o segredo de assinatura em etapas para que as sessões existentes permaneçam válidas:

175 179 

1761. Gere um novo segredo. Coloque-o no início da matriz `session.jwt_secret`.1801. Gere um novo segredo. Coloque-o no início da matriz `session.jwt_secret`.

1772. Implante a implantação. Novos tokens assinam com o novo segredo; tokens antigos ainda verificam.1812. Implante a implantação. Novos tokens assinam com o novo segredo; tokens antigos ainda verificam.


269 Troubleshooting273 Troubleshooting

270</h2>274</h2>

271 275 

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

273 277 

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

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

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

277 281 

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

279 283 

280| Sintoma | Causa | Correção |284| Symptom | Cause | Fix |

281| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |285| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

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

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

286| A inicialização ou `/login` relata `Claude Code may not be enabled for your organization` após um 403 no carregamento de configurações gerenciadas | O gateway, ou algo na frente dele, respondeu à solicitação `/managed/settings` com 403. A rota de configurações próprias do gateway nunca responde 403. O status vem das verificações de IP do [`access_control`](/docs/pt/claude-apps-gateway-config#http-tuning) ou de um proxy ou WAF na frente do gateway. O log de auditoria registra uma negação de verificação de IP como `access.denied` com o motivo. O desenvolvedor permanece conectado. | Verifique o log de auditoria para `access.denied` no momento da falha e corrija as listas `access_control` ou o front end, então peça ao desenvolvedor para iniciar `claude` novamente |290| A inicialização sai com `Administrator policy requires a Cloud gateway sign-in on this machine` | O ambiente do desenvolvedor define `ANTHROPIC_API_KEY` ou `ANTHROPIC_AUTH_TOKEN`, suas configurações configuram um [`apiKeyHelper`](/docs/pt/settings-reference#apikeyhelper), ou uma chave de API de um login anterior do Claude Console ainda está salva | Peça ao desenvolvedor para limpar cada um que se aplica: desdefina a variável, remova a entrada `apiKeyHelper`, ou execute `claude auth logout` para remover a chave salva. Depois peça para iniciar `claude` e fazer login com `/login`. Veja também [Administrator policy requires a Cloud gateway sign-in](/docs/pt/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |

287| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | O nome de host do gateway se resolve para pelo menos um endereço IP público. Claude Code verifica cada endereço resolvido e requer que cada um seja privado. Uma causa comum é um nome de pilha dupla onde uma família se resolve para um endereço público, incluindo balanceadores de carga de pilha dupla internos da AWS, que retornam endereços AAAA de intervalo público. | Faça o nome do gateway se resolver apenas para endereços privados em máquinas de desenvolvedores. Para um nome de pilha dupla, solte o registro de intervalo público ou sirva um nome DNS apenas interno separado. Consulte o [pré-requisito de rede privada](/docs/pt/claude-apps-gateway#prerequisites). |291| A inicialização ou `/login` relata `Claude Code may not be enabled for your organization` após um 403 no carregamento de configurações gerenciadas | O gateway, ou algo na frente dele, respondeu à solicitação `/managed/settings` com 403. A rota de configurações do próprio gateway nunca responde com 403. O status vem das verificações de IP [`access_control`](/docs/pt/claude-apps-gateway-config#http-tuning) ou de um proxy ou WAF na frente do gateway. O log de auditoria registra uma negação de verificação de IP como `access.denied` com o motivo. O desenvolvedor permanece conectado. | Verifique o log de auditoria para `access.denied` no momento da falha e corrija as listas `access_control` ou o front end, depois peça ao desenvolvedor para iniciar `claude` novamente |

288| CLI `/login`: `Gateway login would go through proxy <proxy>, which is not on a private network` | Um `HTTPS_PROXY` ou `HTTP_PROXY` se aplica ao host do gateway e o nome de host do proxy se resolve para um endereço público. Um proxy cujo host se resolve apenas para endereços privados é permitido e não dispara esse erro | Adicione o host do gateway a `NO_PROXY` na máquina do desenvolvedor para que a conexão seja direta, ou use um proxy cujo nome de host se resolve para endereços privados. A mensagem nomeia a entrada exata de `NO_PROXY` a adicionar |292| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | O nome do host do gateway resolve para pelo menos um endereço IP público. Claude Code verifica cada endereço resolvido e requer que todos sejam privados. Uma causa comum é um nome dual-stack onde uma família resolve para um endereço público, incluindo balanceadores de carga dual-stack internos da AWS, que retornam endereços AAAA de intervalo público. | Faça com que o nome do gateway resolva apenas para endereços privados nas máquinas dos desenvolvedores. Para um nome dual-stack, remova o registro de intervalo público ou sirva um nome DNS separado apenas para interno. Veja o [pré-requisito de rede privada](/docs/pt/claude-apps-gateway#prerequisites). Se o endereço é espaço público que sua organização possui e usa internamente, [declare esse bloco](/docs/pt/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) em vez disso. |

289| CLI `/login`: `Could not resolve the configured HTTP proxy` | O nome de host em `HTTPS_PROXY` ou `HTTP_PROXY` não se resolve da máquina do desenvolvedor, normalmente porque não está conectado à rede corporativa | Peça ao desenvolvedor para se conectar à sua rede ou VPN e tente novamente, ou corrija a URL do proxy |293| CLI `/login`: `Gateway login would go through proxy <proxy>, which is not on a private network` | Um `HTTPS_PROXY` ou `HTTP_PROXY` se aplica ao host do gateway e o nome do host do proxy resolve para um endereço público. Um proxy cujo host resolve apenas para endereços privados é permitido e não dispara esse erro | Adicione o host do gateway a `NO_PROXY` na máquina do desenvolvedor para que a conexão seja direta, ou use um proxy cujo nome do host resolve para endereços privados. A mensagem nomeia a entrada exata `NO_PROXY` a adicionar |

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

291| A inicialização sai com um erro de validação de configuração nomeando `store.postgres_url` | Nenhum Postgres configurado; o gateway requer Postgres | Defina `store.postgres_url`. Para desenvolvimento local, use um contêiner descartável: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |295| CLI `/login`: `Every address for gateway host <host> must be inside its declared network <block>, and it also resolves to <ip>` | O nome do gateway resolve para um endereço fora do bloco declarado em [`gatewayInternalNetworks`](/docs/pt/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own): um segundo site, ou um registro IPv6 em um nome dual-stack. Sob um bloco declarado, cada registro deve estar dentro desse único bloco IPv4, endereços privados e IPv6 inclusos | Publique apenas registros dentro do bloco para o nome do gateway nas máquinas dos desenvolvedores, ou sirva um nome separado apenas para interno |

292| A inicialização sai: `requires the native binary` | Executando sob Node em vez do binário nativo | Instale o Claude Code com um dos [métodos de instalação autônoma](/docs/pt/setup) |296| CLI `/login`: `<host> is on the declared network <block>, which Claude Code checks over a direct connection, not through an HTTP proxy` | Um `HTTPS_PROXY` ou `HTTP_PROXY` se aplica a um gateway em um bloco declarado | Na máquina do desenvolvedor, adicione a entrada `NO_PROXY` que a mensagem nomeia |

293| A inicialização sai com um erro de descoberta OIDC após `config.load` | `oidc.issuer` inacessível, ou cadeia TLS não confiável | Verifique se o emissor é alcançável do pod e serve `/.well-known/openid-configuration`. Defina `ca_cert_pem` para PKI privada. Se o pod alcança o IdP apenas através de um proxy de encaminhamento, defina [`oidc.use_proxy: true`](/docs/pt/claude-apps-gateway-config#idp-requests-through-a-forward-proxy); em versões anteriores à v2.1.227, dê ao pod uma rota direta para cada um dos endpoints do IdP. |297| CLI `/login`: uma mensagem começando `gatewayInternalNetworks in managed settings` | O valor quebra uma das [regras de validação](/docs/pt/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), e a mensagem nomeia qual. Até você corrigir, Claude Code recusa cada novo `/login` de gateway na máquina, gateways em endereços privados inclusos; logins existentes continuam funcionando | Na fonte de configurações gerenciadas que você implanta, corrija a entrada que a mensagem nomeia, depois execute `/login` novamente |

294| A inicialização sai com um erro de permissão do Postgres | A função de banco de dados carece de direitos DDL em seu esquema | Conceda à função `CREATE` no esquema do gateway para que ela possa criar e alterar suas tabelas na inicialização |298| CLI `/login`: `Could not resolve the configured HTTP proxy` | O nome do host em `HTTPS_PROXY` ou `HTTP_PROXY` não resolve da máquina do desenvolvedor, tipicamente porque não está conectado à rede corporativa | Peça ao desenvolvedor para conectar à sua rede ou VPN e tentar novamente, ou corrija a URL do proxy |

295| `/oauth/callback` mostra "Sign-in could not be completed" | Domínio de email rejeitado, validação de id\_token falhou, ou `email_verified` é explicitamente `false`, que o gateway sempre rejeita sem substituição | Verifique `allowed_email_domains` e que o IdP retorna uma reivindicação `email` verificada. Para `email_verified: false`, corrija a verificação do lado do IdP. Se seu IdP emite email sob um nome de reivindicação diferente, defina `oidc.email_claim`. |299| CLI `/login`: `Could not resolve gateway host <host>` | A máquina não consegue resolver o nome DNS interno do gateway, tipicamente porque não está na rede corporativa | Peça ao desenvolvedor para conectar à sua rede ou VPN, depois execute `/login` novamente |

296| Log: `token exchange failed request_id=<id>: id_token missing email claim` | O IdP não está incluindo `email` no id\_token por padrão. Esta rejeição dispara apenas quando `allowed_email_domains` está definido; sem ele, um email ausente cunha uma sessão sem email | Configure o IdP para emitir `email` no id\_token. Okta: adicione `email` às reivindicações de token de ID de um servidor de autorização personalizado. Entra: adicione `email` como uma reivindicação opcional no registro do aplicativo. PingFederate: ative uma Política OpenID Connect que emite `email`. Se o IdP serve `email` do endpoint userinfo mas não o incluirá no id\_token, como o servidor de autorização da organização Okta, defina `oidc.userinfo_fallback: true`. |300| Boot exits with a config validation error naming `store.postgres_url` | Nenhum Postgres configurado; o gateway requer Postgres | Defina `store.postgres_url`. Para desenvolvimento local, use um container descartável: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |

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

298| Cada solicitação do Amazon Bedrock retorna 502; o log mostra `Could not load credentials from any providers` | No EC2, o hop limit padrão do IMDSv2 de 1 bloqueia a solicitação de metadados de instância de dentro do contêiner. A inicialização e `/readyz` passam mesmo assim porque o AWS SDK resolve credenciais de instância na primeira solicitação, não na construção do cliente | Aumente o hop limit com `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2`, ou defina-o no modelo de lançamento. A mudança se aplica a cada contêiner na instância. Prefira funções de tarefa ECS onde disponível, que leem credenciais do endpoint de credenciais do contêiner ECS e evitam a mudança completamente, ou aplique a mudança em uma instância de gateway dedicada para limitar a exposição. |302| Boot exits with an OIDC discovery error after `config.load` | `oidc.issuer` inacessível, ou cadeia TLS não confiável | Verifique se o emissor é acessível do pod e serve `/.well-known/openid-configuration`. Defina `ca_cert_pem` para PKI privada. Se o pod alcança o IdP apenas através de um proxy direto, defina [`oidc.use_proxy: true`](/docs/pt/claude-apps-gateway-config#idp-requests-through-a-forward-proxy); em versões anteriores a v2.1.227, dê ao pod uma rota direta para cada um dos endpoints do IdP em vez disso. |

299| 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`. |303| Boot exits with a Postgres permission error | O papel do banco de dados carece de direitos DDL em seu schema | Conceda ao papel `CREATE` no schema do gateway para que possa criar e alterar suas tabelas na inicialização |

300| As sessões não se renovam silenciosamente após definir `oidc.scopes` | `offline_access` foi removido da substituição | Adicione `offline_access` de volta se seu IdP o suportar. Sem um token de atualização, os desenvolvedores executam novamente o login do navegador a cada `session.ttl_hours`. |304| `/oauth/callback` shows "Sign-in could not be completed" | Domínio de email rejeitado, validação de id\_token falhou, ou `email_verified` é explicitamente `false`, que o gateway sempre rejeita sem override | Verifique `allowed_email_domains` e que o IdP retorna uma reivindicação `email` verificada. Para `email_verified: false`, corrija a verificação do lado do IdP. Se seu IdP emite email sob um nome de reivindicação diferente, defina `oidc.email_claim`. |

301| O navegador mostra "This request came from another site and was blocked" | POST de formulário entre sites, bloqueado como proteção CSRF. Esperado para páginas incorporadas ou proxied | Abra o link de verificação diretamente |305| Log: `token exchange failed request_id=<id>: id_token missing email claim` | O IdP não está incluindo `email` no id\_token por padrão. Essa rejeição dispara apenas quando `allowed_email_domains` está definido; sem ele, um email ausente cria uma sessão sem email | Configure o IdP para emitir `email` no id\_token. Okta: adicione `email` às reivindicações de token de ID de um servidor de autorização personalizado. Entra: adicione `email` como uma reivindicação opcional no registro do aplicativo. PingFederate: ative uma Política OpenID Connect que emita `email`. Se o IdP serve `email` do endpoint userinfo mas não incluirá no id\_token, como o servidor de autorização da organização Okta, defina `oidc.userinfo_fallback: true`. |

302| Chrome bloqueia o botão Approve com "Refused to send form data … violates … Content Security Policy directive: form-action", mas a mesma página funciona no Safari ou Firefox | Chrome impõe `form-action` contra toda a cadeia de redirecionamento. Seu IdP redireciona para um segundo host que não está na lista de permissões. | Adicione cada origem adicional na cadeia de redirecionamento a `oidc.form_action_origins`. Abra Chrome DevTools → Console na página Approve para ver qual origem foi bloqueada. |306| Log: `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, e desenvolvedores veem `Cloud gateway session expired` a cada `session.ttl_hours` | O IdP aceitou o token de atualização mas não retornou id\_token com ele, então o gateway perguntou ao endpoint userinfo do IdP pelas reivindicações do usuário. O IdP rejeitou o token de acesso atualizado lá. O gateway responde `temporarily_unavailable`, então Claude Code mantém o token de atualização mas não consegue renovar a sessão. Versões do gateway anteriores a v2.1.260 registram a mesma linha sem o detalhe `(at …)`. | Defina [`oidc.scope_on_refresh: true`](/docs/pt/claude-apps-gateway-config#oidc), disponível no gateway v2.1.260 ou posterior, para que a solicitação de atualização peça por `openid` novamente. Alguns IdPs, como Okta, retornam um id\_token na atualização apenas quando solicitado. No PingFederate, ative **Return ID Token On Refresh Grant** sob **Applications > OAuth > OpenID Connect Policy Management** em vez disso. A chave não muda o comportamento do PingFederate. Para outros IdPs que ainda o omitem, verifique se o endpoint userinfo aceita tokens de acesso emitidos por uma atualização. Como uma solução temporária, aumente [`session.ttl_hours`](/docs/pt/claude-apps-gateway-config#session). Veja [Identity provider setup](#identity-provider-setup) para o tradeoff de desprovisionamento. |

303| A entrada é concluída no IdP, mas o callback falha, com um erro de CSP no Chrome ou "this sign-in link has expired" no Safari | O IdP retornou o código via `response_mode=form_post`, que o auto-envia entre origens via POST para `/oauth/callback`. Chrome bloqueia isso sob um CSP estrito; Safari permite o envio, mas o callback lê apenas a string de consulta. | Certifique-se de que seu IdP honra `response_mode=query`, que o gateway solicita explicitamente para que o callback seja um redirecionamento simples |307| Every Amazon Bedrock request returns 502; log shows `Could not load credentials from any providers` | No EC2, o hop limit padrão do IMDSv2 de 1 bloqueia a solicitação de metadados de instância de dentro do container. Boot e `/readyz` passam mesmo assim porque o AWS SDK resolve credenciais de instância na primeira solicitação, não na construção do cliente | Aumente o hop limit com `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2`, ou defina-o no modelo de lançamento. A mudança se aplica a cada container na instância. Prefira funções de tarefa ECS onde disponível, que leem credenciais do endpoint de credenciais do container ECS e evitam a mudança inteiramente, ou aplique a mudança em uma instância de gateway dedicada para limitar a exposição. |

304| O login funciona localmente, mas falha atrás de um ALB | `public_url` ainda nomeia a origem local ou interna `http://`, então o IdP obtém o `redirect_uri` errado | Defina `listen.public_url` para a origem externa `https://` e registre `<public_url>/oauth/callback` com o IdP |308| IdP error: unknown or unsupported scope | O IdP rejeita escopos que não reconhece | Defina `oidc.scopes` para exatamente a lista que seu IdP aceita; deve incluir `openid`. O padrão é `openid profile email offline_access`. |

305| O desenvolvedor vê o prompt de confiança repetidamente | O certificado TLS está girando por réplica ou por solicitação | Use um certificado estável no ingress, ou termine TLS uma vez e execute réplicas sobre HTTP simples internamente |309| Sessions don't silently renew after setting `oidc.scopes` | `offline_access` foi removido da substituição | Adicione `offline_access` de volta se seu IdP o suporta. Sem um token de atualização, desenvolvedores executam novamente o login do navegador a cada `session.ttl_hours`. |

306| CLI `/login`: "Could not verify the gateway's TLS certificate" ou `SELF_SIGNED_CERT_IN_CHAIN` | A cadeia TLS do gateway é assinada por uma CA privada não no armazenamento de confiança do host CLI | Claude Code lê o armazenamento de confiança do SO por padrão no binário nativo e no Node 22.15 ou posterior; [`CLAUDE_CODE_CERT_STORE`](/docs/pt/network-config#ca-certificate-store) controla esse comportamento. Se a CA está instalada no armazenamento de confiança do SO, certifique-se de que os desenvolvedores estão em um tempo de execução atual. Caso contrário, defina `NODE_EXTRA_CA_CERTS` para o PEM do certificado CA antes de iniciar. O prompt de impressão digital de primeira conexão ainda se aplica. |310| Browser shows "This request came from another site and was blocked" | POST de formulário entre sites, bloqueado como proteção CSRF. Esperado para páginas incorporadas ou proxied | Abra o link de verificação diretamente |

307| CLI `/login` completa a entrada do navegador, então a sessão termina com `Cloud gateway sign-in was not completed` e uma incompatibilidade de certificado TLS | Na primeira solicitação após a entrada, o gateway apresentou um certificado que não corresponde à impressão digital que Claude Code fixou, então Claude Code não manteve nenhuma credencial de gateway. As causas usuais são réplicas atrás de um endereço que servem certificados diferentes, ou algo no caminho da rede que intercepta TLS. | Sirva um certificado para o nome de host, por exemplo, terminando TLS uma vez no ingress, então peça ao desenvolvedor para executar `/login` novamente. Se esse certificado diferir do fixado, Claude Code mostra o [prompt de confiança](/docs/pt/claude-apps-gateway#connect-developers) novamente com um aviso de que o certificado mudou. |311| Chrome blocks the Approve button with "Refused to send form data … violates … Content Security Policy directive: form-action", but the same page works in Safari or Firefox | Chrome impõe `form-action` contra toda a cadeia de redirecionamento. Seu IdP redireciona para um segundo host que não está na lista de permissões. | Adicione cada origem adicional na cadeia de redirecionamento a `oidc.form_action_origins`. Abra Chrome DevTools → Console na página Approve para ver qual origem foi bloqueada. |

308| CLI `/login` para com `The gateway's TLS certificate changed during sign-in: it no longer matches the one you trusted` | Uma solicitação de entrada alcançou um servidor cujo certificado não corresponde ao que o desenvolvedor aceitou quando `/login` começou: réplicas atrás de um endereço servindo certificados diferentes, interceptação TLS no caminho, ou uma rotação de certificado enquanto a entrada estava em andamento. | Sirva um certificado para o nome de host, então peça ao desenvolvedor para iniciar a entrada novamente e revisar o novo certificado no [prompt de confiança](/docs/pt/claude-apps-gateway#connect-developers). |312| Sign-in completes at the IdP but the callback fails, with a CSP error in Chrome or "this sign-in link has expired" in Safari | O IdP retornou o código via `response_mode=form_post`, que o envia automaticamente entre origens via POST para `/oauth/callback`. Chrome bloqueia isso sob uma CSP rigorosa; Safari permite o envio mas o callback lê apenas a string de consulta. | Certifique-se de que seu IdP honra `response_mode=query`, que o gateway solicita explicitamente para que o callback seja um redirecionamento simples |

309 313| Login works locally but fails behind an ALB | `public_url` ainda nomeia a origem `http://` local ou interna, então o IdP obtém o `redirect_uri` errado | Defina `listen.public_url` para a origem `https://` externa e registre `<public_url>/oauth/callback` com o IdP |

310A mensagem `Cloud gateway sign-in was not completed` nomeia o nome de host do gateway. Quando Claude Code tem ambas as impressões digitais fixada e apresentada, a mensagem também mostra os primeiros 16 caracteres de cada uma.314| Developer sees the trust prompt repeatedly | TLS cert is rotating per replica or per request | Use a stable cert at the ingress, or terminate TLS once and run replicas over plain HTTP internally |

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

312Se Claude Code relatar `couldn't load your organization's managed settings` após uma entrada do gateway, Claude Code nomeia o motivo, reinicia no local e retoma a conversa. Se Claude Code não conseguir reiniciar, por exemplo em uma sessão em segundo plano, Claude Code encerra a sessão e mantém a entrada.316| CLI `/login` completes the browser sign-in, then the session ends with `Cloud gateway sign-in was not completed` and a TLS certificate mismatch | Na primeira solicitação após o login, o gateway apresentou um certificado que não corresponde à impressão digital que Claude Code fixou, então Claude Code não manteve nenhuma credencial de gateway. As causas usuais são réplicas atrás de um endereço que servem certificados diferentes, ou algo no caminho de rede que intercepta TLS. | Sirva um certificado para o nome do host, por exemplo terminando TLS uma vez no ingress, depois peça ao desenvolvedor para executar `/login` novamente. Se esse certificado diferir do fixado, Claude Code mostra o [prompt de confiança](/docs/pt/claude-apps-gateway#connect-developers) novamente com um aviso de que o certificado mudou. |

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

318 

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

320 

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

313 322 

314<h2 id="related">323<h2 id="related">

315 Relacionado324 Relacionado

Details

7> Um exemplo prático de execução do gateway de aplicativos Claude no Google Cloud: Cloud Run ou GKE, Cloud SQL para PostgreSQL, Secret Manager e autenticação de conta de serviço para Agent Platform do Google Cloud.7> Um exemplo prático de execução do gateway de aplicativos Claude no Google Cloud: Cloud Run ou GKE, Cloud SQL para PostgreSQL, Secret Manager e autenticação de conta de serviço para Agent Platform do Google Cloud.

8 8 

9<Note>9<Note>

10 Esta página apresenta uma forma de executar o gateway de aplicativos Claude no Google Cloud. A configuração é um exemplo funcional para infraestrutura gerenciada pelo cliente em vez de uma implantação de produção suportada; use-a para ver como as peças se encaixam antes de adaptá-la ao seu próprio ambiente. Para os requisitos independentes de plataforma, consulte o [guia de implantação](/pt/claude-apps-gateway-deploy).10 Esta página apresenta uma forma de executar o gateway de aplicativos Claude no Google Cloud. A configuração é um exemplo funcional para infraestrutura gerenciada pelo cliente em vez de uma implantação de produção suportada; use-a para ver como as peças se encaixam antes de adaptá-la ao seu próprio ambiente. Para os requisitos independentes de plataforma, consulte o [guia de implantação](/docs/pt/claude-apps-gateway-deploy).

11</Note>11</Note>

12 12 

13Este exemplo provisiona o gateway de aplicativos Claude no Google Cloud com o Agent Platform do Google Cloud como upstream de modelo, usando Cloud Run ou GKE para computação. Google Workspace é o exemplo de provedor de identidade (IdP), mas qualquer IdP compatível com OpenID Connect (OIDC) funciona; apenas o bloco `oidc` muda. Consulte [Configuração do provedor de identidade](/pt/claude-apps-gateway-deploy#identity-provider-setup) para detalhes específicos por IdP.13Este exemplo provisiona o gateway de aplicativos Claude no Google Cloud com o Agent Platform do Google Cloud como upstream de modelo, usando Cloud Run ou GKE para computação. Google Workspace é o exemplo de provedor de identidade (IdP), mas qualquer IdP compatível com OpenID Connect (OIDC) funciona; apenas o bloco `oidc` muda. Consulte [Configuração do provedor de identidade](/docs/pt/claude-apps-gateway-deploy#identity-provider-setup) para detalhes específicos por IdP.

14 14 

15<h2 id="what-you’ll-build">15<h2 id="what-you’ll-build">

16 O que você construirá16 O que você construirá


24 24 

25* Serviço **Cloud Run** ou **GKE** Deployment executando o contêiner do gateway25* Serviço **Cloud Run** ou **GKE** Deployment executando o contêiner do gateway

26* Repositório **Artifact Registry** para a imagem do gateway26* Repositório **Artifact Registry** para a imagem do gateway

27* Instância **Cloud SQL para PostgreSQL**, apenas IP privado, para o [store](/pt/claude-apps-gateway-config#store) do gateway27* Instância **Cloud SQL para PostgreSQL**, apenas IP privado, para o [store](/docs/pt/claude-apps-gateway-config#store) do gateway

28* Segredos **Secret Manager** para `gateway.yaml`, a chave de assinatura JWT, o segredo do cliente OIDC e a URL do Postgres28* Segredos **Secret Manager** para `gateway.yaml`, a chave de assinatura JWT, o segredo do cliente OIDC e a URL do Postgres

29* **Conta de serviço** com `roles/aiplatform.user`, anexada diretamente no Cloud Run ou vinculada via Workload Identity no GKE29* **Conta de serviço** com `roles/aiplatform.user`, anexada diretamente no Cloud Run ou vinculada via Workload Identity no GKE

30* **Internal Application Load Balancer** no Cloud Run, ou um **GKE Ingress** interno de classe `gce-internal` no GKE, para HTTPS30* **Internal Application Load Balancer** no Cloud Run, ou um **GKE Ingress** interno de classe `gce-internal` no GKE, para HTTPS


37* A CLI `gcloud`, autenticada com `gcloud auth login`, e Docker instalado localmente37* A CLI `gcloud`, autenticada com `gcloud auth login`, e Docker instalado localmente

38* Para o caminho GKE: `kubectl` e um cluster GKE no VPC criado no passo a passo abaixo38* Para o caminho GKE: `kubectl` e um cluster GKE no VPC criado no passo a passo abaixo

39* Acesso aos modelos Claude que você precisa no Model Garden, em uma região que os publica39* Acesso aos modelos Claude que você precisa no Model Garden, em uma região que os publica

40* Um cliente de aplicação web OAuth 2.0 do Google Workspace com URI de redirecionamento `https://<gateway-host>/oauth/callback`; consulte [Configuração do provedor de identidade](/pt/claude-apps-gateway-deploy#identity-provider-setup)40* Um cliente de aplicação web OAuth 2.0 do Google Workspace com URI de redirecionamento `https://<gateway-host>/oauth/callback`; consulte [Configuração do provedor de identidade](/docs/pt/claude-apps-gateway-deploy#identity-provider-setup)

41* Um nome de host TLS para o gateway, normalmente um nome DNS interno apontando para o balanceador de carga41* Um nome de host TLS para o gateway, normalmente um nome DNS interno apontando para o balanceador de carga

42 42 

43Defina o projeto e a região uma vez:43Defina o projeto e a região uma vez:


94 </Step>94 </Step>

95 95 

96 <Step title="Construir e enviar a imagem para Artifact Registry">96 <Step title="Construir e enviar a imagem para Artifact Registry">

97 Construa a imagem de acordo com os [requisitos de imagem de contêiner](/pt/claude-apps-gateway-deploy#container-image), usando o binário glibc `linux-x64`, e envie-a:97 Construa a imagem de acordo com os [requisitos de imagem de contêiner](/docs/pt/claude-apps-gateway-deploy#container-image), usando o binário glibc `linux-x64`, e envie-a:

98 98 

99 ```bash theme={null}99 ```bash theme={null}

100 gcloud artifacts repositories create claude-gateway \100 gcloud artifacts repositories create claude-gateway \


141 </Step>141 </Step>

142 142 

143 <Step title="Escrever gateway.yaml">143 <Step title="Escrever gateway.yaml">

144 O bloco `upstreams` aponta para Agent Platform com `auth: {}`, portanto o gateway autentica via Application Default Credentials da conta de serviço do runtime. Consulte a [referência de configuração](/pt/claude-apps-gateway-config) para cada campo.144 O bloco `upstreams` aponta para Agent Platform com `auth: {}`, portanto o gateway autentica via Application Default Credentials da conta de serviço do runtime. Consulte a [referência de configuração](/docs/pt/claude-apps-gateway-config) para cada campo.

145 145 

146 Dois campos `listen` dependem do que está na frente do gateway:146 Dois campos `listen` dependem do que está na frente do gateway:

147 147 

148 * `public_url`: necessário atrás de Cloud Run ou um GKE Ingress. O gateway constrói o `redirect_uri` do IdP e seu documento de descoberta apenas a partir deste valor, nunca a partir de cabeçalhos `X-Forwarded-*`.148 * `public_url`: necessário atrás de Cloud Run ou um GKE Ingress. O gateway constrói o `redirect_uri` do IdP e seu documento de descoberta apenas a partir deste valor, nunca a partir de cabeçalhos `X-Forwarded-*`.

149 * `trusted_proxies`: os intervalos de origem do front-end. O gateway honra `X-Forwarded-For` apenas quando o par TCP está nesta lista, depois percorre a cadeia passando hops confiáveis, portanto os limites de taxa de login por IP e eventos de auditoria registram IPs de desenvolvedores em vez do balanceador de carga.149 * `trusted_proxies`: os intervalos de origem do front-end. O gateway honra `X-Forwarded-For` apenas quando o par TCP está nesta lista, depois percorre a cadeia passando hops confiáveis, portanto os limites de taxa de login por IP e eventos de auditoria registram IPs de desenvolvedores em vez do balanceador de carga.

150 150 

151 Defina `trusted_proxies` para corresponder ao seu front-end. Um GKE Ingress externo de classe `gce` não está listado: ele provisiona um endereço de regra de encaminhamento público, que a verificação [rede privada](/pt/claude-apps-gateway#prerequisites) do `/login` rejeita.151 Defina `trusted_proxies` para corresponder ao seu front-end. Um GKE Ingress externo de classe `gce` não está listado: ele provisiona um endereço de regra de encaminhamento público, que a verificação [rede privada](/docs/pt/claude-apps-gateway#prerequisites) do `/login` rejeita.

152 152 

153 | Front-end | `trusted_proxies` |153 | Front-end | `trusted_proxies` |

154 | --------------------------------------------------------- | -------------------------------------------------------- |154 | --------------------------------------------------------- | -------------------------------------------------------- |


188 ```188 ```

189 189 

190 <Note>190 <Note>

191 Os id\_tokens do Google não carregam nenhuma reivindicação `groups`. Para usar políticas baseadas em grupos em [`managed.policies`](/pt/claude-apps-gateway-config#managed) com Google Workspace como IdP, configure [`oidc.google_groups`](/pt/claude-apps-gateway-config#oidc), que procura os grupos de cada usuário através da API Admin SDK Directory usando uma conta de serviço com delegação em todo o domínio. Sem isso, corresponda em `email_domain` em vez disso.191 Os id\_tokens do Google não carregam nenhuma reivindicação `groups`. Para usar políticas baseadas em grupos em [`managed.policies`](/docs/pt/claude-apps-gateway-config#managed) com Google Workspace como IdP, configure [`oidc.google_groups`](/docs/pt/claude-apps-gateway-config#oidc), que procura os grupos de cada usuário através da API Admin SDK Directory usando uma conta de serviço com delegação em todo o domínio. Sem isso, corresponda em `email_domain` em vez disso.

192 </Note>192 </Note>

193 </Step>193 </Step>

194 194 


237 237 

238 Restrição de ingresso via `--ingress` é uma camada separada e independente da verificação de invoker; mantenha-a definida para limitar o serviço à sua rede corporativa.238 Restrição de ingresso via `--ingress` é uma camada separada e independente da verificação de invoker; mantenha-a definida para limitar o serviço à sua rede corporativa.

239 239 

240 Por padrão, a URL `*.run.app` do Cloud Run resolve para um endereço público, que a verificação [rede privada](/pt/claude-apps-gateway#prerequisites) do `/login` rejeita. Duas topologias fornecem aos desenvolvedores um nome de host resolvível privadamente, e o Cloud Run não provisiona nenhuma para você:240 Por padrão, a URL `*.run.app` do Cloud Run resolve para um endereço público, que a verificação [rede privada](/docs/pt/claude-apps-gateway#prerequisites) do `/login` rejeita. Duas topologias fornecem aos desenvolvedores um nome de host resolvível privadamente, e o Cloud Run não provisiona nenhuma para você:

241 241 

242 * **Internal Application Load Balancer**, a topologia que o comando de implantação acima assume: implante com `--ingress=internal-and-cloud-load-balancing`, provisione um Internal Application Load Balancer na frente do serviço com um nome DNS interno e certificado, e defina `listen.public_url` para esse nome de host.242 * **Internal Application Load Balancer**, a topologia que o comando de implantação acima assume: implante com `--ingress=internal-and-cloud-load-balancing`, provisione um Internal Application Load Balancer na frente do serviço com um nome DNS interno e certificado, e defina `listen.public_url` para esse nome de host.

243 * **Ingresso somente interno sem balanceador de carga**: implante com `--ingress=internal` e deixe `listen.public_url` como a URL `*.run.app`, o padrão nos [ativos de referência](#terraform-reference) abaixo. Para `*.run.app` resolver privadamente, sua equipe de rede deve já operar um endpoint Private Service Connect para APIs do Google, uma zona privada Cloud DNS resolvendo `*.run.app` para ele, e roteamento no local para esse endpoint.243 * **Ingresso somente interno sem balanceador de carga**: implante com `--ingress=internal` e deixe `listen.public_url` como a URL `*.run.app`, o padrão nos [ativos de referência](#terraform-reference) abaixo. Para `*.run.app` resolver privadamente, sua equipe de rede deve já operar um endpoint Private Service Connect para APIs do Google, uma zona privada Cloud DNS resolvendo `*.run.app` para ele, e roteamento no local para esse endpoint.


272 iam.gke.io/gcp-service-account="claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com"272 iam.gke.io/gcp-service-account="claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com"

273 ```273 ```

274 274 

275 Implante o gateway como um Deployment padrão mais um Service e um Ingress interno, classe `gce-internal`, conforme descrito em [Implantação Kubernetes](/pt/claude-apps-gateway-deploy#kubernetes), com:275 Implante o gateway como um Deployment padrão mais um Service e um Ingress interno, classe `gce-internal`, conforme descrito em [Implantação Kubernetes](/docs/pt/claude-apps-gateway-deploy#kubernetes), com:

276 276 

277 * `serviceAccountName: gateway`277 * `serviceAccountName: gateway`

278 * o driver CSI do Secret Manager montando segredos em `/secrets`278 * o driver CSI do Secret Manager montando segredos em `/secrets`


280 280 

281 Anexe um BackendConfig com um `timeoutSec` elevado ao Service do gateway: o serviço backend do balanceador de carga atrás do GKE Ingress padrão para um tempo limite de 30 segundos, que corta respostas de streaming longas.281 Anexe um BackendConfig com um `timeoutSec` elevado ao Service do gateway: o serviço backend do balanceador de carga atrás do GKE Ingress padrão para um tempo limite de 30 segundos, que corta respostas de streaming longas.

282 282 

283 Não aplique uma NetworkPolicy de egresso que bloqueie `169.254.169.254` em um cluster Workload Identity; o pod deve alcançar o servidor de metadados para credenciais. A [proteção SSRF](/pt/claude-apps-gateway-deploy#threat-model-summary) integrada do gateway é a defesa lá.283 Não aplique uma NetworkPolicy de egresso que bloqueie `169.254.169.254` em um cluster Workload Identity; o pod deve alcançar o servidor de metadados para credenciais. A [proteção SSRF](/docs/pt/claude-apps-gateway-deploy#threat-model-summary) integrada do gateway é a defesa lá.

284 284 

285 O gateway registra um aviso de inicialização que o endpoint de metadados é alcançável e sugere aplicar uma NetworkPolicy de egresso. Sob Workload Identity esse aviso é esperado, porque o pod precisa do endpoint.285 O gateway registra um aviso de inicialização que o endpoint de metadados é alcançável e sugere aplicar uma NetworkPolicy de egresso. Sob Workload Identity esse aviso é esperado, porque o pod precisa do endpoint.

286 </Tab>286 </Tab>


288 </Step>288 </Step>

289 289 

290 <Step title="Enviar a URL do gateway para máquinas de desenvolvedores">290 <Step title="Enviar a URL do gateway para máquinas de desenvolvedores">

291 O gateway agora está em execução, mas os desenvolvedores não podem alcançá-lo a partir de `/login` até que a URL do gateway esteja em suas máquinas. Defina `forceLoginMethod` e `forceLoginGatewayUrl` no [arquivo de configurações gerenciadas](/pt/claude-apps-gateway#set-the-gateway-url) que você implanta em cada dispositivo via MDM. Não há opção de gateway no seletor de login para um desenvolvedor selecionar manualmente.291 O gateway agora está em execução, mas os desenvolvedores não podem alcançá-lo a partir de `/login` até que a URL do gateway esteja em suas máquinas. Defina `forceLoginMethod` e `forceLoginGatewayUrl` no [arquivo de configurações gerenciadas](/docs/pt/claude-apps-gateway#set-the-gateway-url) que você implanta em cada dispositivo via MDM. Não há opção de gateway no seletor de login para um desenvolvedor selecionar manualmente.

292 </Step>292 </Step>

293</Steps>293</Steps>

294 294 


310 Troubleshooting310 Troubleshooting

311</h2>311</h2>

312 312 

313Para erros de inicialização e login do gateway, consulte a [tabela de troubleshooting](/pt/claude-apps-gateway-deploy#troubleshooting) independente de plataforma. As entradas abaixo são específicas do Google Cloud.313Para erros de inicialização e login do gateway, consulte a [tabela de troubleshooting](/docs/pt/claude-apps-gateway-deploy#troubleshooting) independente de plataforma. As entradas abaixo são específicas do Google Cloud.

314 314 

315| Sintoma | Causa | Correção |315| Sintoma | Causa | Correção |

316| ------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |316| ------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |


325 Próximos passos325 Próximos passos

326</h2>326</h2>

327 327 

328* [Referência de configuração](/pt/claude-apps-gateway-config): cada opção `gateway.yaml`, incluindo `managed.policies` e `telemetry`328* [Referência de configuração](/docs/pt/claude-apps-gateway-config): cada opção `gateway.yaml`, incluindo `managed.policies` e `telemetry`

329* [Implantação e operações](/pt/claude-apps-gateway-deploy): configuração de IdP, verificações de saúde, rotação de segredo JWT, upgrades e o modelo de segurança329* [Implantação e operações](/docs/pt/claude-apps-gateway-deploy): configuração de IdP, verificações de saúde, rotação de segredo JWT, upgrades e o modelo de segurança

330* [Visão geral do gateway de aplicativos Claude](/pt/claude-apps-gateway): quickstart e conectando desenvolvedores330* [Visão geral do gateway de aplicativos Claude](/docs/pt/claude-apps-gateway): quickstart e conectando desenvolvedores

Details

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

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

4 4 

5# Use Claude Code na web5# Use Claude Code na nuvem

6 6 

7> Mova sessões entre web e terminal com `--cloud` e `--teleport`, gerencie e compartilhe sessões, e corrija automaticamente pull requests da nuvem.7> Execute sessões Claude Code na nuvem a partir do seu navegador, telefone, aplicativo desktop ou terminal, mova-as com --cloud e --teleport, e corrija automaticamente pull requests.

8 8 

9<Note>9<Note>

10 Claude Code na web está em visualização de pesquisa para usuários Pro, Max e Team, e para usuários Enterprise com assentos premium ou assentos Chat + Claude Code.10 As sessões em nuvem estão em visualização de pesquisa para usuários Pro, Max e Team, e para usuários Enterprise com assentos premium ou assentos Chat + Claude Code.

11</Note>11</Note>

12 12 

13Claude Code na web executa tarefas em infraestrutura em nuvem gerenciada pela Anthropic em [claude.ai/code](https://claude.ai/code), ou no [ambiente auto-hospedado](/docs/pt/self-hosted-environments) da sua organização quando roteado para lá. As sessões persistem mesmo se você fechar seu navegador, e você pode monitorá-las a partir do aplicativo móvel Claude.13Uma sessão em nuvem é uma sessão Claude Code que é executada em infraestrutura em nuvem em vez de em sua máquina. Por padrão, ela é executada em infraestrutura que a Anthropic gerencia, ou no [ambiente auto-hospedado](/docs/pt/self-hosted-environments) da sua organização quando roteada para lá. A sessão continua em execução depois que você fecha seu laptop, e você pode verificá-la ou direcioná-la a partir de qualquer dispositivo.

14 

15Você pode iniciar uma sessão em nuvem a partir de qualquer uma dessas superfícies:

16 

17* **Navegador**: [claude.ai/code](https://claude.ai/code), também chamado Claude Code na web

18* **Móvel**: a aba **Code** no [aplicativo Claude](/docs/pt/mobile)

19* **Aplicativo desktop**: selecione **Cloud** em vez de **Local** quando você [inicia uma sessão](/docs/pt/desktop#run-long-running-tasks-in-the-cloud)

20* **Terminal**: [`claude --cloud`](#from-terminal-to-cloud)

21* **Rotinas**: [execuções agendadas e acionadas](/docs/pt/routines) cada uma é executada como uma sessão em nuvem

22 

23Para que Claude inicie e acompanhe muitas sessões em nuvem para um corpo de trabalho, use um [projeto](/docs/pt/claude-projects). Uma sessão em seu terminal, seu IDE, ou o aplicativo Desktop com **Local** selecionado é executada em sua própria máquina. Para direcionar uma dessas sessões locais a partir do seu telefone ou navegador, use [Controle Remoto](/docs/pt/remote-control).

14 24 

15<Tip>25<Tip>

16 Novo no Claude Code na web? Comece com [Começar](/docs/pt/web-quickstart) para conectar sua conta GitHub e enviar sua primeira tarefa.26 Novo em sessões em nuvem? Comece com [Começar](/docs/pt/web-quickstart) para conectar sua conta GitHub e enviar sua primeira tarefa.

17</Tip>27</Tip>

18 28 

19Esta página cobre o produto web em si:29Esta página cobre:

20 30 

21* [Ambientes em nuvem](#cloud-environments): onde as sessões são executadas e onde configurar isso31* [Ambientes em nuvem](#cloud-environments): onde as sessões são executadas e onde configurar isso

22* [Opções de autenticação do GitHub](#github-authentication-options): duas maneiras de conectar o GitHub32* [Opções de autenticação do GitHub](#github-authentication-options): duas maneiras de conectar o GitHub

23* [Mover tarefas entre web e terminal](#move-tasks-between-web-and-terminal) com `--cloud` e `--teleport`33* [Mover tarefas entre terminal e nuvem](#move-tasks-between-terminal-and-cloud) com `--cloud` e `--teleport`

24* [Trabalhar com sessões](#work-with-sessions): modos de permissão, revisão, compartilhamento, arquivamento, exclusão34* [Trabalhar com sessões](#work-with-sessions): modos de permissão, revisão, compartilhamento, arquivamento, exclusão

25* [Corrigir automaticamente pull requests](#auto-fix-pull-requests): responder automaticamente a falhas de CI e comentários de revisão35* [Corrigir automaticamente pull requests](#auto-fix-pull-requests): responder automaticamente a falhas de CI e comentários de revisão

26* [Segurança e isolamento](#security-and-isolation): como as sessões são isoladas36* [Segurança e isolamento](#security-and-isolation): como as sessões são isoladas


43As sessões em nuvem precisam de acesso aos seus repositórios GitHub para clonar código e enviar branches. Você pode conceder acesso de duas maneiras:53As sessões em nuvem precisam de acesso aos seus repositórios GitHub para clonar código e enviar branches. Você pode conceder acesso de duas maneiras:

44 54 

45| Método | Como você se conecta | Repositórios que as sessões podem alcançar | Melhor para |55| Método | Como você se conecta | Repositórios que as sessões podem alcançar | Melhor para |

46| :--------------- | :---------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------- |56| :--------------- | :---------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------- |

47| **GitHub App** | Autorize o Claude GitHub App durante [onboarding na web](/docs/pt/web-quickstart) | Qualquer repositório público e repositórios privados nos quais o Claude GitHub App está instalado | Onboarding no navegador; equipes que desejam [Auto-fix](#auto-fix-pull-requests) |57| **GitHub App** | Autorize o Claude GitHub App durante [onboarding na web](/docs/pt/web-quickstart) | Qualquer repositório público e repositórios privados nos quais o Claude GitHub App está instalado | Onboarding no navegador; equipes que desejam [Auto-fix](#auto-fix-pull-requests) |

48| **`/web-setup`** | Execute `/web-setup` em seu terminal para enviar seu token CLI `gh` local para sua conta Claude | Qualquer repositório que seu token `gh` possa acessar, independentemente de o App estar instalado ou não | Desenvolvedores individuais que já usam `gh` |58| **`/web-setup`** | Execute `/web-setup` em seu terminal para enviar seu token CLI `gh` local para sua conta Claude | Qualquer repositório que seu token `gh` possa acessar, independentemente de o Claude GitHub App estar instalado | Desenvolvedores individuais que já usam `gh` |

49 59 

50A instalação do Claude GitHub App em um repositório também habilita [Auto-fix](#auto-fix-pull-requests) para pull requests nele.60A instalação do Claude GitHub App em um repositório também habilita [Auto-fix](#auto-fix-pull-requests) para pull requests nele.

51 61 

62As threads em um [projeto](/docs/pt/claude-projects) precisam que o Claude GitHub App esteja instalado em cada repositório que elas clonam, independentemente do método com o qual você se conectou. Consulte [Configurar acesso ao GitHub](/docs/pt/claude-projects#set-up-github-access).

63 

52Para saber como `/schedule` verifica o acesso ao repositório antes de criar uma routine, consulte [Repositórios e permissões de branch](/docs/pt/routines#repositories-and-branch-permissions). Consulte [Conectar a partir do seu terminal](/docs/pt/web-quickstart#connect-from-your-terminal) para o passo a passo de `/web-setup`, incluindo o que `/web-setup` armazena e como removê-lo.64Para saber como `/schedule` verifica o acesso ao repositório antes de criar uma routine, consulte [Repositórios e permissões de branch](/docs/pt/routines#repositories-and-branch-permissions). Consulte [Conectar a partir do seu terminal](/docs/pt/web-quickstart#connect-from-your-terminal) para o passo a passo de `/web-setup`, incluindo o que `/web-setup` armazena e como removê-lo.

53 65 

54Quick web setup é uma configuração de organização que permite que membros conectem o GitHub com `/web-setup`, pula o prompt de instalação do Claude GitHub App durante o onboarding do navegador e faz com que o onboarding do navegador crie o [ambiente **Default**](/docs/pt/cloud-environments#the-default-environment) para eles em vez de mostrar o formulário de ambiente. Nos planos Team e Enterprise está desabilitado por padrão, o que oculta `/web-setup`. Um [Owner](/docs/pt/server-managed-settings#access-control) o ativa com o toggle **Quick web setup** em [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code).66Quick web setup é uma configuração de organização que permite que membros conectem o GitHub com `/web-setup`, pula o prompt de instalação do Claude GitHub App durante o onboarding do navegador e faz com que o onboarding do navegador crie o [ambiente **Default**](/docs/pt/cloud-environments#the-default-environment) para eles em vez de mostrar o formulário de ambiente. Nos planos Team e Enterprise está desabilitado por padrão, o que oculta `/web-setup`. Um [Owner](/docs/pt/server-managed-settings#access-control) o ativa com o toggle **Quick web setup** em [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code).


57 Organizações com [Zero Data Retention](/docs/pt/zero-data-retention) habilitado não podem usar `/web-setup` ou outros recursos de sessão em nuvem.69 Organizações com [Zero Data Retention](/docs/pt/zero-data-retention) habilitado não podem usar `/web-setup` ou outros recursos de sessão em nuvem.

58</Note>70</Note>

59 71 

60<h2 id="move-tasks-between-web-and-terminal">72<h2 id="move-tasks-between-terminal-and-cloud">

61 Mover tarefas entre web e terminal73 Mover tarefas entre terminal e nuvem

62</h2>74</h2>

63 75 

64Esses fluxos de trabalho requerem o [Claude Code CLI](/docs/pt/quickstart) conectado à mesma conta claude.ai. Você pode iniciar novas sessões em nuvem a partir do seu terminal, ou puxar sessões em nuvem para seu terminal para continuar localmente. As sessões em nuvem persistem mesmo se você fechar seu laptop, e você pode monitorá-las de qualquer lugar, incluindo o aplicativo móvel Claude.76Esses fluxos de trabalho requerem o [Claude Code CLI](/docs/pt/quickstart) conectado à mesma conta claude.ai. Você pode iniciar novas sessões em nuvem a partir do seu terminal, ou puxar sessões em nuvem para seu terminal para continuar localmente. As sessões em nuvem persistem mesmo se você fechar seu laptop, e você pode monitorá-las de qualquer lugar, incluindo o aplicativo móvel Claude.

65 77 

66<Note>78<Note>

67 A partir do CLI, a transferência de sessão é unidirecional: você pode puxar sessões em nuvem para seu terminal com `--teleport`, mas não pode enviar uma sessão de terminal existente para a web. O sinalizador `--cloud` com uma descrição de tarefa cria uma nova sessão em nuvem para seu repositório atual; com `-p` e um ID de sessão ou URL claude.ai/code, ele [enfileira uma mensagem naquela sessão existente](/docs/pt/claude-code-on-the-web#send-follow-ups-from-the-cli). O [aplicativo Desktop](/docs/pt/desktop#continue-in-another-surface) fornece um menu Continue in que pode enviar uma sessão local para a web.79 A partir do CLI, a transferência de sessão é unidirecional: você pode puxar sessões em nuvem para seu terminal com `--teleport`, mas não pode enviar uma sessão de terminal existente para a nuvem. O sinalizador `--cloud` com uma descrição de tarefa cria uma nova sessão em nuvem para seu repositório atual; com `-p` e um ID de sessão ou URL claude.ai/code, ele [enfileira uma mensagem naquela sessão existente](/docs/pt/claude-code-on-the-web#send-follow-ups-from-the-cli). O [aplicativo Desktop](/docs/pt/desktop#continue-in-another-surface) fornece um menu **Continue in** que pode enviar uma sessão local para a nuvem.

68</Note>80</Note>

69 81 

70<h3 id="from-terminal-to-web">82<h3 id="from-terminal-to-cloud">

71 Do terminal para a web83 Do terminal para a nuvem

72</h3>84</h3>

73 85 

74Inicie uma sessão em nuvem a partir da linha de comando com o sinalizador `--cloud`:86Inicie uma sessão em nuvem a partir da linha de comando com o sinalizador `--cloud`:


84Enquanto o contêiner em nuvem inicia, o CLI mostra uma lista de verificação ao vivo das etapas de configuração, como clonar o repositório e executar seu [script de configuração](/docs/pt/cloud-environments#setup-scripts). Ele enfileira mensagens que você digita durante o provisionamento e as envia assim que a sessão estiver pronta.96Enquanto o contêiner em nuvem inicia, o CLI mostra uma lista de verificação ao vivo das etapas de configuração, como clonar o repositório e executar seu [script de configuração](/docs/pt/cloud-environments#setup-scripts). Ele enfileira mensagens que você digita durante o provisionamento e as envia assim que a sessão estiver pronta.

85 97 

86<Note>98<Note>

87 `--cloud` cria sessões em nuvem. `--remote-control` não está relacionado: expõe uma sessão CLI local para monitoramento a partir da web. Veja [Remote Control](/docs/pt/remote-control).99 `--cloud` cria sessões em nuvem. `--remote-control` não está relacionado: permite que você monitore e dirija uma sessão CLI local a partir de claude.ai ou do aplicativo Claude. Veja [Remote Control](/docs/pt/remote-control).

88</Note>100</Note>

89 101 

90Abra a sessão em claude.ai ou no aplicativo móvel Claude para verificar o progresso ou interagir diretamente. De lá você pode orientar Claude, fornecer feedback ou responder perguntas como em qualquer outra conversa.102Abra a sessão em claude.ai ou no aplicativo móvel Claude para verificar o progresso ou interagir diretamente. De lá você pode orientar Claude, fornecer feedback ou responder perguntas como em qualquer outra conversa.


95 Dicas para tarefas em nuvem107 Dicas para tarefas em nuvem

96</h4>108</h4>

97 109 

98**Planeje localmente, execute remotamente**: para tarefas complexas, inicie Claude em plan mode para colaborar na abordagem, depois envie o trabalho para a nuvem:110**Planeje localmente, execute na nuvem**: para tarefas complexas, inicie Claude em plan mode para colaborar na abordagem, depois envie o trabalho para a nuvem:

99 111 

100```bash theme={null}112```bash theme={null}

101claude --permission-mode plan113claude --permission-mode plan


115claude --cloud "Refactor the logger to use structured output"127claude --cloud "Refactor the logger to use structured output"

116```128```

117 129 

118Quando uma sessão é concluída, você pode criar um PR a partir da interface web ou [teleportar](#from-web-to-terminal) a sessão para seu terminal para continuar trabalhando.130Quando uma sessão é concluída, você pode criar um PR a partir de claude.ai/code ou [teleportar](#from-cloud-to-terminal) a sessão para seu terminal para continuar trabalhando.

119 131 

120<h4 id="send-local-repositories-without-github">132<h4 id="send-local-repositories-without-github">

121 Envie repositórios locais sem GitHub133 Envie repositórios locais sem GitHub


183| `Session not found: <id>` | O ID ou URL não corresponde a uma sessão que você pode acessar. Verifique-o contra a URL claude.ai/code da sessão. |195| `Session not found: <id>` | O ID ou URL não corresponde a uma sessão que você pode acessar. Verifique-o contra a URL claude.ai/code da sessão. |

184| `cloud session <id> is archived and cannot accept new messages` | A sessão foi arquivada. Inicie uma nova sessão em vez disso. |196| `cloud session <id> is archived and cannot accept new messages` | A sessão foi arquivada. Inicie uma nova sessão em vez disso. |

185 197 

186<h3 id="from-web-to-terminal">198<h3 id="from-cloud-to-terminal">

187 Da web para o terminal199 Da nuvem para o terminal

188</h3>200</h3>

189 201 

190Puxe uma sessão em nuvem para seu terminal usando qualquer um destes:202Puxe uma sessão em nuvem para seu terminal usando qualquer um destes:


192* **Usando `--teleport`**: a partir da linha de comando, execute `claude --teleport` para um seletor de sessão interativo, ou `claude --teleport <session-id>` para retomar uma sessão específica diretamente. Se você tiver alterações não confirmadas, será solicitado que você as guarde primeiro.204* **Usando `--teleport`**: a partir da linha de comando, execute `claude --teleport` para um seletor de sessão interativo, ou `claude --teleport <session-id>` para retomar uma sessão específica diretamente. Se você tiver alterações não confirmadas, será solicitado que você as guarde primeiro.

193* **Usando `/teleport`**: dentro de uma sessão CLI existente, execute `/teleport` ou `/tp` para abrir o mesmo seletor de sessão sem reiniciar Claude Code.205* **Usando `/teleport`**: dentro de uma sessão CLI existente, execute `/teleport` ou `/tp` para abrir o mesmo seletor de sessão sem reiniciar Claude Code.

194* **De `/tasks`**: execute `/tasks` para ver suas sessões em segundo plano, depois pressione `t` para teleportar para uma.206* **De `/tasks`**: execute `/tasks` para ver suas sessões em segundo plano, depois pressione `t` para teleportar para uma.

195* **Da interface web**: selecione **Open in > Terminal** no menu de sessão para copiar um comando que você pode colar em seu terminal.207* **De claude.ai/code**: selecione **Open in > Terminal** no menu de sessão para copiar um comando que você pode colar em seu terminal.

196* **De dentro da sessão em nuvem**: digite `/teleport` e Claude Code responde com o comando exato `claude --teleport <session-id>` para essa sessão, pronto para ser executado a partir de um checkout do repositório. Requer Claude Code v2.1.223 ou posterior no ambiente da sessão.208* **De dentro da sessão em nuvem**: digite `/teleport` e Claude Code responde com o comando exato `claude --teleport <session-id>` para essa sessão, pronto para ser executado a partir de um checkout do repositório. Requer Claude Code v2.1.223 ou posterior no ambiente da sessão.

197 209 

198Quando você teleporta uma sessão, Claude verifica se você está no repositório correto, busca e faz checkout da branch da sessão em nuvem e carrega o histórico completo da conversa em seu terminal. O terminal obtém sua própria cópia da sessão: novo trabalho lá fica local e não aparece na sessão em nuvem em claude.ai ou no aplicativo móvel Claude. Para continuar orientando a partir do seu telefone após teleportar, inicie [`/remote-control`](/docs/pt/remote-control) na sessão local.210Quando você teleporta uma sessão, Claude verifica se você está no repositório correto, busca e faz checkout da branch da sessão em nuvem e carrega o histórico completo da conversa em seu terminal. O terminal obtém sua própria cópia da sessão: novo trabalho lá fica local e não aparece na sessão em nuvem em claude.ai ou no aplicativo móvel Claude. Para continuar orientando a partir do seu telefone após teleportar, inicie [`/remote-control`](/docs/pt/remote-control) na sessão local.


224 236 

225As sessões aparecem na barra lateral em claude.ai/code. De lá, você pode revisar alterações, compartilhar com colegas de equipe, arquivar trabalho concluído ou excluir sessões permanentemente.237As sessões aparecem na barra lateral em claude.ai/code. De lá, você pode revisar alterações, compartilhar com colegas de equipe, arquivar trabalho concluído ou excluir sessões permanentemente.

226 238 

239<h3 id="take-back-a-queued-message">

240 Recuperar uma mensagem enfileirada

241</h3>

242 

243Se você enviar uma mensagem enquanto Claude está trabalhando, a mensagem fica enfileirada até que Claude a leia. Para recuperar uma mensagem enfileirada, clique no ✕ nela. O texto retorna à caixa de mensagem para que você possa editá-lo ou enviar algo diferente.

244 

245Se Claude já tiver lido a mensagem, ela permanece na conversa.

246 

227<h3 id="manage-context">247<h3 id="manage-context">

228 Gerenciar contexto248 Gerenciar contexto

229</h3>249</h3>

230 250 

231As sessões em nuvem suportam [comandos integrados](/docs/pt/commands) que produzem saída de texto. Comandos que só funcionam na interface do terminal, como `/plugin` ou `/resume`, não estão disponíveis. Comandos que abrem um seletor ou painel no terminal se comportam de forma diferente nas sessões em nuvem:251As sessões em nuvem suportam [comandos integrados](/docs/pt/commands) que produzem saída de texto. Comandos que só funcionam na interface do terminal, como `/plugin` ou `/resume`, não estão disponíveis. Comandos que abrem um seletor ou painel no terminal se comportam de forma diferente nas sessões em nuvem:

232 252 

233* **`/model`, `/effort`, `/fast`, `/color` e `/rename`**: passe o valor como um argumento, por exemplo `/model sonnet`, em vez de abrir o seletor do terminal ou controle deslizante. Os formulários de argumento exigem Claude Code v2.1.205 ou posterior no ambiente da sessão e seguem as [notas de disponibilidade](/docs/pt/commands#all-commands) de cada comando: `/effort` relata `Not applied` enquanto um [launch-default effort hold](/docs/pt/model-config#adjust-effort-level) do modelo está em vigor, e `/fast` funciona apenas em uma sessão que começou com o modo rápido ativado.253* **`/model`, `/effort`, `/color` e `/rename`**: passe o valor como um argumento, por exemplo `/model sonnet`, em vez de abrir o seletor do terminal ou controle deslizante. Os formulários de argumento exigem Claude Code v2.1.205 ou posterior no ambiente da sessão e seguem as [notas de disponibilidade](/docs/pt/commands#all-commands) de cada comando: `/effort` relata `Not applied` enquanto um [launch-default effort hold](/docs/pt/model-config#adjust-effort-level) do modelo está em vigor.

234* **`/config`**: na web, abre a seção Claude Code de suas configurações em vez de definir um valor, e o texto após o comando, incluindo `key=value`, é ignorado. Para alterar as configurações de uma sessão em nuvem, use [variáveis de ambiente](/docs/pt/cloud-environments#set-environment-variables) ou confirme [arquivos de configurações](/docs/pt/settings) no repositório.254* **`/fast`**: alterna o [modo rápido](/docs/pt/fast-mode#use-fast-mode-in-cloud-sessions) para a sessão quando o modo rápido está [disponível em sua conta](/docs/pt/fast-mode#requirements). Requer Claude Code v2.1.271 ou posterior no ambiente da sessão.

255* **`/config`**: no seu navegador em claude.ai/code, abre a seção Claude Code de suas configurações em vez de definir um valor, e o texto após o comando, incluindo `key=value`, é ignorado. Para alterar uma configuração para uma sessão em nuvem, defina uma [variável de ambiente](/docs/pt/cloud-environments#set-environment-variables) no ambiente, ou em uma sessão com um repositório, confirme a chave no `.claude/settings.json` desse repositório. [Configurações em sessões em nuvem](/docs/pt/settings#settings-in-cloud-sessions) lista o que cada sessão lê.

235 256 

236Para gerenciamento de contexto especificamente:257Para gerenciamento de contexto especificamente:

237 258 


241| `/context` | Sim | Mostra o que está atualmente na janela de contexto |262| `/context` | Sim | Mostra o que está atualmente na janela de contexto |

242| `/clear` | Não | Inicie uma nova sessão na barra lateral |263| `/clear` | Não | Inicie uma nova sessão na barra lateral |

243 264 

244A compactação automática é executada automaticamente quando a janela de contexto se aproxima da capacidade. Claude Code na web define [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/pt/env-vars) em sessões em nuvem por si só, portanto a compactação é acionada no meio da [janela de compactação automática](/docs/pt/model-config#set-the-auto-compact-window) em vez de quando a janela se enche. Esse valor substitui um que você adiciona em suas [variáveis de ambiente](/docs/pt/cloud-environments#set-environment-variables), portanto adicionar a variável lá não altera quando a compactação é acionada.265A compactação automática é executada automaticamente quando a janela de contexto se aproxima da capacidade. As sessões em nuvem definem [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/pt/env-vars) por si só, portanto a compactação é acionada no meio da [janela de compactação automática](/docs/pt/model-config#set-the-auto-compact-window) em vez de quando a janela se enche. Esse valor substitui um que você adiciona em suas [variáveis de ambiente](/docs/pt/cloud-environments#set-environment-variables), portanto adicionar a variável lá não altera quando a compactação é acionada.

245 266 

246Para alterar a janela de compactação automática, defina [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/pt/env-vars) em suas variáveis de ambiente ou execute [`/autocompact`](/docs/pt/commands#all-commands) com uma contagem de tokens em uma sessão onde a variável não está definida.267Para alterar a janela de compactação automática, defina [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/pt/env-vars) em suas variáveis de ambiente, ou execute [`/autocompact`](/docs/pt/commands#all-commands) com uma contagem de tokens em uma sessão onde a variável não está definida.

247 268 

248[Subagentes](/docs/pt/sub-agents) funcionam da mesma forma que funcionam localmente. Claude pode gerá-los com a ferramenta Agent para descarregar pesquisa ou trabalho paralelo em uma janela de contexto separada, mantendo a conversa principal mais leve. Subagentes definidos no `.claude/agents/` do seu repositório são detectados automaticamente.269[Subagentes](/docs/pt/sub-agents) funcionam da mesma forma que funcionam localmente. Claude pode gerá-los com a ferramenta Agent para descarregar pesquisa ou trabalho paralelo em uma janela de contexto separada, mantendo a conversa principal mais leve. Subagentes definidos no `.claude/agents/` do seu repositório são detectados automaticamente.

249 270 


320 341 

321Existem algumas maneiras de ativar auto-fix dependendo de onde o PR veio e qual dispositivo você está usando:342Existem algumas maneiras de ativar auto-fix dependendo de onde o PR veio e qual dispositivo você está usando:

322 343 

323* **PRs criados em Claude Code na web**: abra a barra de status de CI e selecione **Auto-fix**344* **PRs criados em uma sessão na nuvem**: abra a sessão em claude.ai/code, abra a barra de status de CI e selecione **Auto-fix**

324* **A partir do seu terminal**: execute [`/autofix-pr`](/docs/pt/commands) enquanto estiver na branch do PR. Claude Code detecta o PR aberto com `gh`, gera uma sessão web e ativa auto-fix em uma etapa345* **A partir do seu terminal**: execute [`/autofix-pr`](/docs/pt/commands) enquanto estiver na branch do PR. Claude Code detecta o PR aberto com `gh`, gera uma sessão na nuvem e ativa auto-fix em uma etapa

325* **A partir do aplicativo móvel**: diga a Claude para corrigir automaticamente o PR, por exemplo "watch this PR and fix any CI failures or review comments"346* **A partir do aplicativo móvel**: diga a Claude para corrigir automaticamente o PR, por exemplo "watch this PR and fix any CI failures or review comments"

326* **Qualquer PR existente**: cole a URL do PR em uma sessão e diga a Claude para corrigir automaticamente347* **Qualquer PR existente**: cole a URL do PR em uma sessão e diga a Claude para corrigir automaticamente

327 348 

328Auto-fix é um toggle por PR. Para parar de monitorar, abra a barra de status de CI na sessão web e desmarque o toggle **Auto-fix**, ou diga a Claude para parar de observar o PR.349Auto-fix é um toggle por PR. Para parar de monitorar, abra a barra de status de CI na sessão em claude.ai/code e desmarque o toggle **Auto-fix**, ou diga a Claude para parar de observar o PR.

329 350 

330<h3 id="how-claude-responds-to-pr-activity">351<h3 id="how-claude-responds-to-pr-activity">

331 Como Claude responde à atividade de PR352 Como Claude responde à atividade de PR


395 Environment expired416 Environment expired

396</h3>417</h3>

397 418 

398As sessões em nuvem param após um período de inatividade e a VM da sessão é recuperada. Uma sessão é considerada inativa enquanto aguarda você aprovar uma chamada de ferramenta [MCP connector](/docs/pt/cloud-environments#network-access) ou entrar em um servidor MCP, e pode expirar durante essa espera. Na web, a sessão é marcada como expirada na lista de sessões.419As sessões em nuvem param após um período de inatividade e a VM da sessão é recuperada. Uma sessão é considerada inativa enquanto aguarda você aprovar uma chamada de ferramenta [MCP connector](/docs/pt/cloud-environments#network-access) ou entrar em um servidor MCP, e pode expirar durante essa espera.

399 420 

400Reabra a sessão de [claude.ai/code](https://claude.ai/code) para provisionar uma VM fresca com seu histórico de conversa restaurado. O trabalho em segundo plano que ainda estava em execução quando a VM foi recuperada, como subagentes e comandos shell, não é restaurado.421Reabra a sessão de [claude.ai/code](https://claude.ai/code) para provisionar uma VM fresca com seu histórico de conversa restaurado. O trabalho em segundo plano que ainda estava em execução quando a VM foi recuperada, como subagentes e comandos shell, não é restaurado.

401 422 


405 426 

406Antes de confiar em sessões em nuvem para um fluxo de trabalho, leve em conta essas restrições:427Antes de confiar em sessões em nuvem para um fluxo de trabalho, leve em conta essas restrições:

407 428 

408* **Limites de taxa**: Claude Code na web compartilha limites de taxa com todo o outro uso de Claude e Claude Code dentro de sua conta. Executar múltiplas tarefas em paralelo consome mais limites de taxa proporcionalmente. Não há cobrança de computação separada para a VM em nuvem.429* **Limites de taxa**: sessões em nuvem compartilham limites de taxa com todo o outro uso de Claude e Claude Code dentro de sua conta. Executar múltiplas tarefas em paralelo consome mais limites de taxa proporcionalmente. Não há cobrança de computação separada para a VM em nuvem.

409* **Autenticação de repositório**: você pode apenas mover sessões de web para local quando está autenticado na mesma conta430* **Autenticação de repositório**: você pode apenas mover uma sessão em nuvem para seu terminal quando está autenticado na mesma conta

410* **Restrições de plataforma**: clonagem de repositório e criação de pull request requerem GitHub. Instâncias [GitHub Enterprise Server](/docs/pt/github-enterprise-server) auto-hospedadas são suportadas para planos Team e Enterprise. Você pode enviar um repositório GitLab, Bitbucket ou outro repositório não-GitHub para uma sessão em nuvem como um [pacote local](#send-local-repositories-without-github) definindo `CCR_FORCE_BUNDLE=1`, mas a sessão não pode enviar resultados de volta para esse remoto431* **Restrições de plataforma**: clonagem de repositório e criação de pull request requerem GitHub. Instâncias [GitHub Enterprise Server](/docs/pt/github-enterprise-server) auto-hospedadas são suportadas para planos Team e Enterprise. Você pode enviar um repositório GitLab, Bitbucket ou outro repositório não-GitHub para uma sessão em nuvem como um [pacote local](#send-local-repositories-without-github) definindo `CCR_FORCE_BUNDLE=1`, mas a sessão não pode enviar resultados de volta para esse remoto

411* **IP allowlist da organização**: as sessões em nuvem chamam a API Anthropic a partir de infraestrutura gerenciada pela Anthropic, não de sua rede, enquanto as sessões em um [ambiente auto-hospedado](/docs/pt/self-hosted-environments) a chamam a partir de sua própria rede. Se sua organização tem [IP allowlisting](https://support.claude.com/en/articles/13200993-restrict-access-to-claude-with-ip-allowlisting) habilitado, cada sessão em nuvem hospedada pela Anthropic falha com um erro de autenticação. O mesmo se aplica a [Code Review](/docs/pt/code-review) e a [routines](/docs/pt/routines) que são executadas em ambientes hospedados pela Anthropic; uma routine roteada para um ambiente auto-hospedado chama a API a partir de sua própria rede. Entre em contato com [suporte Anthropic](https://support.claude.com/) para isentar serviços hospedados pela Anthropic do allowlist de IP de sua organização.432* **IP allowlist da organização**: sessões em nuvem chamam a API Anthropic a partir de infraestrutura gerenciada pela Anthropic, não de sua rede, enquanto sessões em um [ambiente auto-hospedado](/docs/pt/self-hosted-environments) a chamam a partir de sua própria rede. Se sua organização tem [IP allowlisting](https://support.claude.com/en/articles/13200993-restrict-access-to-claude-with-ip-allowlisting) habilitado, cada sessão em nuvem hospedada pela Anthropic falha com um erro de autenticação. O mesmo se aplica a [Code Review](/docs/pt/code-review) e a [routines](/docs/pt/routines) que são executadas em ambientes hospedados pela Anthropic; uma routine roteada para um ambiente auto-hospedado chama a API a partir de sua própria rede. Entre em contato com [suporte Anthropic](https://support.claude.com/) para isentar serviços hospedados pela Anthropic do allowlist de IP de sua organização.

412 433 

413<h2 id="related-resources">434<h2 id="related-resources">

414 Recursos relacionados435 Recursos relacionados

415</h2>436</h2>

416 437 

417* [Ambientes em nuvem](/docs/pt/cloud-environments): configure acesso à rede, variáveis de ambiente e scripts de configuração para sessões em nuvem438* [Ambientes em nuvem](/docs/pt/cloud-environments): configure acesso à rede, variáveis de ambiente e scripts de configuração para sessões em nuvem

439* [Projetos](/docs/pt/claude-projects): uma conversa onde Claude coordena sessões em nuvem paralelas em seus repositórios e relata de volta

418* [Ultrareview](/docs/pt/ultrareview): execute uma revisão de código profunda multi-agente em uma sandbox em nuvem440* [Ultrareview](/docs/pt/ultrareview): execute uma revisão de código profunda multi-agente em uma sandbox em nuvem

419* [Routines](/docs/pt/routines): automatize trabalho em um cronograma, via chamada de API ou em resposta a eventos do GitHub441* [Routines](/docs/pt/routines): automatize trabalho em um cronograma, via chamada de API ou em resposta a eventos do GitHub

420* [Configuração de hooks](/docs/pt/hooks): execute scripts em eventos do ciclo de vida da sessão442* [Configuração de hooks](/docs/pt/hooks): execute scripts em eventos do ciclo de vida da sessão

Details

34 oneLiner: 'Project instructions Claude reads every session',34 oneLiner: 'Project instructions Claude reads every session',

35 when: 'Loaded into context at the start of every session',35 when: 'Loaded into context at the start of every session',

36 description: 'Project-specific instructions that shape how Claude works in this repository. Put your conventions, common commands, and architectural context here so Claude operates with the same assumptions your team does.',36 description: 'Project-specific instructions that shape how Claude works in this repository. Put your conventions, common commands, and architectural context here so Claude operates with the same assumptions your team does.',

37 tips: ['Target under 200 lines. Longer files still load in full but may reduce adherence', <>CLAUDE.md loads into every session. If something only matters for specific tasks, move it to a <A href="/docs/en/skills">skill</A> or a path-scoped <A href="/docs/en/memory#organize-rules-with-claude/rules/">rule</A> so it loads only when needed</>, 'List the commands you run most, like build, test, and format, so Claude knows them without you spelling them out each time', <>Run <C>/memory</C> to open and edit CLAUDE.md from within a session</>, <>Also works at <C>.claude/CLAUDE.md</C> if you prefer to keep the project root clean</>],37 tips: ['Target under 200 lines. Longer files still load in full but may reduce adherence', <>CLAUDE.md loads into every session. If something only matters for specific tasks, move it to a <A href="/docs/en/skills">skill</A> or a path-scoped <A href="/docs/en/memory#organize-rules-with-claude/rules/">rule</A> so it loads only when needed</>, 'List the commands you run most, like build, test, and format, so Claude knows them without you spelling them out each time', <>Run <C>/memory</C> to open and edit CLAUDE.md from within a session</>, <>Also works at <C>.claude/CLAUDE.md</C> if you prefer to keep the project root clean</>, <>If your repo already has an <C>AGENTS.md</C> for other coding agents, Claude Code <A href="/docs/en/memory#agents-md">can read that</A> on its own or alongside CLAUDE.md</>],

38 exampleIntro: 'This example is for a TypeScript and React project. It lists the build and test commands, the framework conventions Claude should follow, and project-specific rules like export style and file layout.',38 exampleIntro: 'This example is for a TypeScript and React project. It lists the build and test commands, the framework conventions Claude should follow, and project-specific rules like export style and file layout.',

39 example: `# Project conventions39 example: `# Project conventions

40 40 


640 color: '#5AA7A7',640 color: '#5AA7A7',

641 oneLiner: 'Custom instruction sets that adjust how Claude works',641 oneLiner: 'Custom instruction sets that adjust how Claude works',

642 when: 'Files read at startup; the style you select with outputStyle applies to every response',642 when: 'Files read at startup; the style you select with outputStyle applies to every response',

643 description: [<>Each markdown file defines an output style: a set of instructions for Claude that, by default, also replaces the built-in software-engineering task instructions. Use this to adapt Claude Code for uses beyond coding, or to add teaching or review modes.</>, <>Select a built-in or custom style with <C>/config</C> or the <C>outputStyle</C> key in settings. Styles here are available in every project; project-level styles with the same name take precedence.</>],643 description: [<>Each markdown file defines an output style: a set of instructions for Claude that, by default, also replaces the built-in software-engineering task instructions. Use this to adapt Claude Code for uses beyond coding, or to add teaching or review modes.</>, <>Select a built-in or custom style with <C>/output-style</C>, <C>/config</C>, or the <C>outputStyle</C> key in settings. Styles here are available in every project; project-level styles with the same name take precedence.</>],

644 tips: ['Built-in styles Default, Proactive, Concise, Explanatory, and Learning are included with Claude Code; custom styles go here', <>Set <C>keep-coding-instructions: true</C> in frontmatter to keep the default task instructions alongside your additions</>, 'Switching styles mid-session applies from your next message; in the terminal, a style file you create or edit mid-session is picked up after a restart'],644 tips: ['Built-in styles Default, Proactive, Concise, Explanatory, and Learning are included with Claude Code; custom styles go here', <>Set <C>keep-coding-instructions: true</C> in frontmatter to keep the default task instructions alongside your additions</>, 'Switching styles mid-session applies from your next message; in the terminal, a style file you create or edit mid-session is picked up after a restart'],

645 docsLink: '/en/output-styles',645 docsLink: '/en/output-styles',

646 children: [{646 children: [{


1434 1434 

1435No Windows, `~/.claude` é resolvido para `%USERPROFILE%\.claude`. Se você definir [`CLAUDE_CONFIG_DIR`](/docs/pt/env-vars), cada caminho `~/.claude` nesta página fica sob esse diretório.1435No Windows, `~/.claude` é resolvido para `%USERPROFILE%\.claude`. Se você definir [`CLAUDE_CONFIG_DIR`](/docs/pt/env-vars), cada caminho `~/.claude` nesta página fica sob esse diretório.

1436 1436 

1437A maioria dos usuários apenas edita `CLAUDE.md` e `settings.json`. O resto do diretório é opcional: adicione skills, rules ou subagents conforme necessário.1437A maioria dos usuários apenas edita `CLAUDE.md` e `settings.json`. Se seu repositório já tiver um `AGENTS.md` para outros agentes de codificação, Claude Code [pode ler isso](/docs/pt/memory#agents-md) por conta própria ou junto com `CLAUDE.md`. O resto do diretório é opcional: adicione skills, rules ou subagents conforme necessário.

1438 1438 

1439<h2 id="explore-the-directory">1439<h2 id="explore-the-directory">

1440 Explore o diretório1440 Explore o diretório


1451O explorador cobre arquivos que você cria e edita. Alguns arquivos relacionados vivem em outro lugar:1451O explorador cobre arquivos que você cria e edita. Alguns arquivos relacionados vivem em outro lugar:

1452 1452 

1453| Arquivo | Localização | Propósito |1453| Arquivo | Localização | Propósito |

1454| ----------------------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1454| ----------------------- | -------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1455| `managed-settings.json` | Nível do sistema, varia por SO | Configurações impostas pela empresa que você não pode substituir, exceto por [exceções limitadas](/docs/pt/settings#security-keys-where-the-stricter-value-applies). Veja [onde salvar o arquivo](/docs/pt/managed-settings#deploy-a-managed-settings-file) e [qual fonte gerenciada Claude Code usa](/docs/pt/managed-settings#precedence-within-the-managed-tier). |1455| `managed-settings.json` | Nível do sistema, varia por SO | Configurações impostas pela empresa que você não pode substituir, exceto por [exceções limitadas](/docs/pt/settings#security-keys-where-the-stricter-value-applies). Veja [onde salvar o arquivo](/docs/pt/managed-settings#deploy-a-managed-settings-file) e [qual fonte gerenciada Claude Code usa](/docs/pt/managed-settings#precedence-within-the-managed-tier). |

1456| `CLAUDE.local.md` | Raiz do projeto | Suas preferências privadas para este projeto, carregadas junto com CLAUDE.md. Crie manualmente e adicione a `.gitignore`. |1456| `CLAUDE.local.md` | Raiz do projeto | Suas preferências privadas para este projeto, carregadas junto com CLAUDE.md. Crie manualmente e adicione a `.gitignore`. |

1457| Plugins instalados | `~/.claude/plugins` | Marketplaces clonados, versões de plugins instalados e dados por plugin, gerenciados por comandos `claude plugin`. Para um plugin instalado de um marketplace com [fonte `command`](/docs/pt/plugin-marketplaces#command-sources) em modo de link, Claude Code armazena links aqui em vez de uma cópia, e os arquivos do plugin permanecem no diretório que o comando imprime. Uma fonte `command` requer Claude Code v2.1.229 ou posterior. Veja [cache de plugins](/docs/pt/plugins-reference#plugin-caching-and-file-resolution) para saber como versões órfãs são limpas. |1457| `AGENTS.md` | Raiz do projeto, `.claude/`, ou qualquer diretório | Instruções do projeto que você escreve para agentes de codificação de IA. Claude Code pode [carregá-lo](/docs/pt/memory#agents-md) por conta própria ou junto com `CLAUDE.md`. |

1458| Plugins instalados | `~/.claude/plugins` | Marketplaces clonados, versões de plugins instalados e dados por plugin, gerenciados por comandos `claude plugin`. Para um plugin instalado de um marketplace com [fonte `command`](/docs/pt/plugin-marketplaces#command-sources) em modo de link, Claude Code armazena links aqui em vez de uma cópia, e os arquivos do plugin permanecem no diretório que o comando imprime. Uma fonte `command` requer Claude Code v2.1.229 ou posterior. Um plugin listado por caminho relativo em um marketplace de diretório local também [carrega no local](/docs/pt/plugins-reference#plugin-caching-and-file-resolution) de seu diretório de origem em vez de uma cópia em cache. Veja [cache de plugins](/docs/pt/plugins-reference#plugin-caching-and-file-resolution) para saber como versões órfãs são limpas. |

1458 1459 

1459`~/.claude` também contém dados que Claude Code escreve conforme você trabalha: transcrições, histórico de prompts, snapshots de arquivos, caches e logs. Veja [dados da aplicação](#application-data) abaixo.1460`~/.claude` também contém dados que Claude Code escreve conforme você trabalha: transcrições, histórico de prompts, snapshots de arquivos, caches e logs. Veja [dados da aplicação](#application-data) abaixo.

1460 1461 


1524 Dados da aplicação1525 Dados da aplicação

1525</h2>1526</h2>

1526 1527 

1527Além da configuração que você cria, `~/.claude` contém dados que Claude Code escreve durante sessões. Esses arquivos são texto simples. Qualquer coisa que passa por uma ferramenta aterrissa em uma transcrição no disco: conteúdo de arquivos, saída de comando, texto colado.1528Além da configuração que você cria, `~/.claude` contém dados que Claude Code escreve durante as sessões. Esses arquivos são texto simples. Qualquer coisa que passa por uma ferramenta é escrita em uma transcrição no disco: conteúdo de arquivos, saída de comandos, texto colado.

1528 1529 

1529<h3 id="cleaned-up-automatically">1530<h3 id="cleaned-up-automatically">

1530 Limpos automaticamente1531 Limpeza automática

1531</h3>1532</h3>

1532 1533 

1533Claude Code deleta os arquivos nos caminhos abaixo uma vez que têm mais de [`cleanupPeriodDays`](/docs/pt/settings-reference#cleanupperioddays), desde que possa determinar com segurança o período de retenção. O padrão é 30 dias e o mínimo é 1; definir `0` falha com um erro de validação. O mesmo limite de idade se aplica à remoção automática de [worktrees órfãs](/docs/pt/worktrees#clean-up-subagent-and-background-session-worktrees).1534Claude Code deleta os arquivos nos caminhos abaixo uma vez que tenham mais de [`cleanupPeriodDays`](/docs/pt/settings-reference#cleanupperioddays) de idade, desde que possa determinar com segurança o período de retenção. O padrão é 30 dias e o mínimo é 1; definir `0` falha com um erro de validação. O mesmo limite de idade se aplica à remoção automática de [worktrees órfãs](/docs/pt/worktrees#clean-up-subagent-and-background-session-worktrees).

1534 1535 

1535| Caminho sob `~/.claude/` | Conteúdo |1536| Caminho sob `~/.claude/` | Conteúdo |

1536| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1537| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1537| `projects/<project>/<session>.jsonl` | Transcrição de conversa completa: cada mensagem, chamada de ferramenta e resultado de ferramenta |1538| `projects/<project>/<session>.jsonl` | Transcrição completa da conversa: cada mensagem, chamada de ferramenta e resultado de ferramenta |

1538| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`, `projects/<project>/<session>.jsonl.superseded-<timestamp>` | Uma transcrição anterior para a sessão que Claude Code colocou de lado em vez de sobrescrever ou deletar. Não aparece no seletor de sessão |1539| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`, `projects/<project>/<session>.jsonl.superseded-<timestamp>` | Uma transcrição anterior da sessão que Claude Code separou em vez de sobrescrever ou deletar. Não aparece no seletor de sessão |

1539| `projects/<project>/<session>/subagents/` | Transcrições de conversa de [subagent](/docs/pt/sub-agents), removidas com a transcrição de sessão pai quando envelhecem |1540| `projects/<project>/<session>/subagents/` | Transcrições de conversa de [Subagent](/docs/pt/sub-agents), removidas com a transcrição da sessão pai quando envelhece |

1540| `projects/<project>/<session>/tool-results/` | Grandes saídas de ferramentas derramadas em arquivos separados |1541| `projects/<project>/<session>/tool-results/` | Grandes saídas de ferramentas derramadas em arquivos separados |

1541| `file-history/<session>/` | Snapshots pré-edição de arquivos que Claude alterou, usados para [restauração de checkpoint](/docs/pt/checkpointing). Mantém snapshots para os 100 checkpoints mais recentes; arquivos de snapshot que nenhum checkpoint retido referencia são deletados, exceto o primeiro snapshot de cada arquivo |1542| `file-history/<session>/` | Snapshots pré-edição de arquivos que Claude alterou, usados para [restauração de checkpoint](/docs/pt/checkpointing). Contém snapshots dos 100 checkpoints mais recentes; arquivos de snapshot que nenhum checkpoint retido referencia são deletados, exceto o primeiro snapshot de cada arquivo |

1542| `plans/` | Arquivos de plano escritos durante [plan mode](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode) |1543| `plans/` | Arquivos de plano escritos durante [plan mode](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode) |

1543| `debug/` | Logs de debug por sessão, escritos enquanto o debug logging está ativado, como quando você inicia com [`--debug`](/docs/pt/cli-reference#cli-flags) ou executa `/debug` |1544| `debug/` | Logs de debug por sessão, escritos enquanto o debug logging está ativado, como quando você inicia com [`--debug`](/docs/pt/cli-reference#cli-flags) ou executa `/debug` |

1544| `paste-cache/` | Conteúdo de pastes grandes |1545| `paste-cache/` | Conteúdo de grandes colagens |

1545| `image-cache/<session>/` | Imagens anexadas. Em cada varredura, Claude Code remove os diretórios de todas as outras sessões, independentemente de sua idade. |1546| `image-cache/<session>/` | Imagens anexadas. Em cada varredura, Claude Code remove os diretórios de todas as outras sessões, independentemente da idade. |

1546| `uploads/<session>/` | Arquivos que você anexa da web ou aplicativo móvel, e fotos que você anexa do aplicativo móvel, ao enviar mensagens para uma sessão de [Remote Control](/docs/pt/remote-control). Um anexo para uma [sessão em nuvem](/docs/pt/claude-code-on-the-web) é salvo no próprio ambiente em nuvem dessa sessão, não em sua máquina. |1547| `uploads/<session>/` | Arquivos que você anexa da web ou do aplicativo móvel, e fotos que você anexa do aplicativo móvel, ao enviar mensagens para uma sessão de [Remote Control](/docs/pt/remote-control). Um anexo a uma [sessão em nuvem](/docs/pt/claude-code-on-the-web) é salvo no próprio ambiente em nuvem dessa sessão, não na sua máquina. |

1547| `session-env/` | Metadados de ambiente por sessão |1548| `session-env/` | Metadados de ambiente por sessão |

1548| `tasks/` | Listas de tarefas escritas pelas ferramentas de tarefa, um diretório por lista |1549| `tasks/` | Listas de tarefas escritas pelas ferramentas de tarefa, um diretório por lista |

1549| `shell-snapshots/` | Aliases, funções e opções de shell capturadas na inicialização e aplicadas pela [ferramenta Bash](/docs/pt/tools-reference#bash-tool-behavior) a cada comando. Removido na saída limpa. A limpeza remove qualquer um deixado após um crash. |1550| `shell-snapshots/` | Aliases, funções e opções de shell capturadas na inicialização e aplicadas pela [ferramenta Bash](/docs/pt/tools-reference#bash-tool-behavior) a cada comando. Removidas na saída limpa. A varredura limpa qualquer uma deixada após um crash. |

1550| `backups/` | Versões anteriores de `~/.claude.json`, copiadas quando Claude Code reescreve o arquivo. Claude Code mantém os cinco mais novos, mais uma cópia de qualquer versão que não conseguiu analisar. |1551| `backups/` | Versões anteriores de `~/.claude.json`, copiadas quando Claude Code reescreve o arquivo. Claude Code mantém as cinco mais novas, mais uma cópia de qualquer versão que não conseguiu analisar. |

1551| `feedback-bundles/` | Arquivos de transcrição reduzidos escritos por `/feedback` em provedores de terceiros ou quando nenhuma credencial Anthropic está configurada, para enviar à sua equipe de conta Anthropic |1552| `feedback-bundles/` | Arquivos de transcrição reduzidos escritos por `/feedback` em provedores de terceiros ou quando nenhuma credencial Anthropic está configurada, para enviar à sua equipe de conta Anthropic |

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

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

1554| `todos/`, `statsig/`, `logs/` | Diretórios legados de versões mais antigas. Não mais escritos. A limpeza remove seu conteúdo e depois o diretório vazio. |1555| `skills/.trash/`, `plugins/.trash/` | [Skills](/docs/pt/skills#how-synced-skills-behave) e [plugins](/docs/pt/plugins-reference#synced-plugins) sincronizados de claude.ai que Claude Code removeu. Movidos aqui em vez de deletados para que você possa recuperar os arquivos |

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

1555 1557 

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

1557 1559 

1558* **`sessions/`**: contém um pequeno arquivo por sessão em execução, usado para detectar sessões simultâneas e crashes. Não faz parte da varredura baseada em idade: Claude Code remove cada arquivo quando sua sessão sai e limpa resíduos de crash no próximo lançamento.1560* **`sessions/`**: contém um pequeno arquivo por sessão em execução, usado para detectar sessões simultâneas e crashes. Não faz parte da varredura baseada em idade: Claude Code remove cada arquivo quando sua sessão sai e limpa resíduos de crash no próximo lançamento.

1559* **Memória automática**: a varredura não deleta os arquivos de memória no diretório de [memória automática](/docs/pt/memory#auto-memory) de um projeto, `projects/<project>/memory/`. Claude Code remove esse diretório apenas se ele esteve vazio durante todo o período de retenção. Antes da v2.1.228, a varredura tratava pastas dentro do diretório de memória como dados de sessão e podia deletar arquivos antigos sob ele.1561* **Memória automática**: a varredura não deleta os arquivos de memória no diretório de [memória automática](/docs/pt/memory#auto-memory) de um projeto, `projects/<project>/memory/`. Claude Code remove esse diretório apenas se ele esteve vazio durante todo o período de retenção. Antes da v2.1.228, a varredura tratava pastas dentro do diretório de memória como dados de sessão e podia deletar arquivos antigos sob ele.

1560* **Transcrições de Claude Desktop e Cowork**: Claude Code mantém a transcrição de uma sessão que você iniciou ou continuou mais recentemente em Claude Desktop ou Cowork em qualquer idade. Para dar a essas transcrições um limite de idade, defina [`desktopSessionCleanupPeriodDays`](/docs/pt/settings-reference#desktopsessioncleanupperioddays). Quando [configurações gerenciadas](/docs/pt/managed-settings) definem `cleanupPeriodDays`, Claude Code deleta essas transcrições após esse período. Requer Claude Code v2.1.248 ou posterior; versões anteriores as deletam após `cleanupPeriodDays`.1562* **Transcrições de Claude Desktop e Cowork**: Claude Code mantém a transcrição de uma sessão que você iniciou ou continuou mais recentemente em Claude Desktop ou Cowork em qualquer idade. Para dar a essas transcrições um limite de idade, defina [`desktopSessionCleanupPeriodDays`](/docs/pt/settings-reference#desktopsessioncleanupperioddays). Quando [configurações gerenciadas](/docs/pt/managed-settings) definem `cleanupPeriodDays`, Claude Code deleta essas transcrições após esse período em vez disso. Requer Claude Code v2.1.248 ou posterior; versões anteriores as deletam após `cleanupPeriodDays`.

1561 1563 

1562Claude Code pula a varredura inteiramente nestes casos:1564Claude Code pula a varredura baseada em idade nestes casos:

1563 1565 

1564* **Modo bare**: quando você executa `claude -p` com [`--bare`](/docs/pt/headless#start-faster-with-bare-mode), Claude Code não executa a varredura nessa sessão.1566* **Modo bare**: quando você executa `claude -p` com [`--bare`](/docs/pt/headless#start-faster-with-bare-mode), Claude Code não executa a varredura nessa sessão.

1565* **Varredura pausada**: se Claude Code não conseguir determinar com segurança o período de retenção, ele pausa a varredura de limpeza de retenção; o evento [`retention_sweep`](/docs/pt/monitoring-usage#retention-sweep-event) lista cada configuração que a pausa. Quando a causa é um arquivo de configurações que não pode ser lido ou analisado, ou erros de configurações com `cleanupPeriodDays` ou `desktopSessionCleanupPeriodDays` explicitamente definidos, Claude Code também mostra um aviso em `/status` até você corrigir os erros de configurações. Quando [configurações gerenciadas](/docs/pt/server-managed-settings) fornecem `cleanupPeriodDays`, Claude Code executa a varredura no valor gerenciado em qualquer caso.1567* **Varredura pausada**: se Claude Code não conseguir determinar com segurança o período de retenção, ele pausa a varredura de limpeza de retenção; o [evento `retention_sweep`](/docs/pt/monitoring-usage#retention-sweep-event) lista cada configuração que a pausa. Quando a causa é um arquivo de configurações que não pode ser lido ou analisado, ou erros de configurações com `cleanupPeriodDays` ou `desktopSessionCleanupPeriodDays` explicitamente definidos, Claude Code também mostra um aviso em `/status` até você corrigir os erros de configurações. Quando [configurações gerenciadas](/docs/pt/server-managed-settings) fornecem `cleanupPeriodDays`, Claude Code executa a varredura no valor gerenciado em qualquer caso.

1566 1568 

1567<h3 id="kept-until-you-delete-them">1569<h3 id="kept-until-you-delete-them">

1568 Mantidos até você deletá-los1570 Mantido até você deletar

1569</h3>1571</h3>

1570 1572 

1571A varredura de limpeza de retenção não remove os caminhos abaixo. Claude Code os mantém até você deletá-los, exceto pelos dois caches que deleta quando você faz logout.1573A varredura de limpeza de retenção não remove os caminhos abaixo. Claude Code os mantém até você deletá-los, além dos dois caches que deleta quando você faz logout.

1572 1574 

1573| Caminho sob `~/.claude/` | Conteúdo |1575| Caminho sob `~/.claude/` | Conteúdo |

1574| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1576| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1575| `history.jsonl` | Cada prompt que você digitou, com timestamp e caminho do projeto. Usado para recall de seta para cima, busca de histórico `Ctrl+R` e conclusão de comando shell `!`. |1577| `history.jsonl` | Cada prompt que você digitou, com timestamp e caminho do projeto. Usado para recall de seta para cima, busca de histórico `Ctrl+R` e conclusão de comando shell `!`. |

1576| `stats-cache.json` | Contagens agregadas de token e custo mostradas por `/usage` |1578| `stats-cache.json` | Contagens agregadas de token e custo mostradas por `/usage` |

1577| `remote-settings.json` | Cópia em cache de [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) para sua organização, ou `{}` quando sua organização não configurou nenhuma. Presente apenas quando a sessão as [busca](/docs/pt/server-managed-settings#platform-availability). Claude Code verifica atualizações na inicialização e a cada hora durante uma sessão. Claude Code deleta quando você faz logout. |1579| `remote-settings.json` | Cópia em cache de [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) para sua organização, ou `{}` quando sua organização não configurou nenhuma. Presente apenas quando a sessão as [busca](/docs/pt/server-managed-settings#platform-availability). Claude Code verifica atualizações na inicialização e a cada hora durante uma sessão. Claude Code a deleta quando você faz logout. |

1578| `cache/changelog.md` | Cópia em cache do changelog de Claude Code, mostrada por `/release-notes`. Atualizada em segundo plano. |1580| `cache/changelog.md` | Cópia em cache do changelog de Claude Code, mostrada por `/release-notes`. Atualizada em segundo plano. |

1579| `policy-limits.json` | Configurações de política de recursos em cache para sua organização. Presente apenas para alguns tipos de conta. Atualizado automaticamente. Claude Code deleta quando você faz logout. |1581| `policy-limits.json` | Configurações de política de recursos em cache para sua organização. Presente apenas para alguns tipos de conta. Atualizada automaticamente. Um sidecar `policy-limits.json.stamp.json` registra qual conta ou chave de API o cache pertence. Claude Code deleta ambos os arquivos quando você faz logout. |

1580 1582 

1581<span id="state-files-to-keep" />1583<span id="state-files-to-keep" />

1582 1584 

1583Outros arquivos aparecem dependendo de quais recursos você usa. Caches e arquivos de lock são seguros para deletar. Mantenha estes arquivos de estado:1585Outros arquivos aparecem dependendo de quais recursos você usa. Caches e arquivos de lock são seguros para deletar. Mantenha esses arquivos de estado:

1584 1586 

1585* `.credentials.json`: suas [credenciais de login](/docs/pt/authentication#credential-management)1587* `.credentials.json`: suas [credenciais de login](/docs/pt/authentication#credential-management)

1586* `agent-memory/`: [memória de subagent](/docs/pt/sub-agents#enable-persistent-memory)1588* `agent-memory/`: [memória de subagent](/docs/pt/sub-agents#enable-persistent-memory)


1590 Armazenamento em texto simples1592 Armazenamento em texto simples

1591</h3>1593</h3>

1592 1594 

1593Transcrições e histórico não são criptografados em repouso. Permissões de arquivo do SO são a única proteção. Se uma ferramenta lê um arquivo `.env` ou um comando imprime uma credencial, esse valor é escrito em `projects/<project>/<session>.jsonl`. Para reduzir exposição:1595Transcrições e histórico não são criptografados em repouso. As permissões de arquivo do SO são a única proteção. Se uma ferramenta ler um arquivo `.env` ou um comando imprimir uma credencial, esse valor é escrito em `projects/<project>/<session>.jsonl`. Para reduzir a exposição:

1594 1596 

1595* Diminua `cleanupPeriodDays` para encurtar quanto tempo Claude Code mantém transcrições1597* Reduza `cleanupPeriodDays` para encurtar quanto tempo Claude Code mantém transcrições

1596* Defina [`desktopSessionCleanupPeriodDays`](/docs/pt/settings-reference#desktopsessioncleanupperioddays) para dar a transcrições de Claude Desktop e Cowork um limite de idade também1598* Defina [`desktopSessionCleanupPeriodDays`](/docs/pt/settings-reference#desktopsessioncleanupperioddays) para dar também um limite de idade às transcrições de Claude Desktop e Cowork

1597* Defina a variável de ambiente [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/pt/env-vars) para pular a escrita de transcrições e histórico de prompts em qualquer modo. Em modo não-interativo, você pode passar `--no-session-persistence` junto com `-p`, ou definir `persistSession: false` no Agent SDK TypeScript; o SDK Python não tem opção equivalente.1599* Defina a variável de ambiente [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/pt/env-vars) para pular a escrita de transcrições e histórico de prompt em qualquer modo. Em modo não interativo, você pode passar `--no-session-persistence` junto com `-p`, ou definir `persistSession: false` no TypeScript Agent SDK; o Python SDK não tem opção equivalente.

1598* Use [regras de permissão](/docs/pt/permissions) para negar leituras de arquivos de credencial1600* Use [regras de permissão](/docs/pt/permissions) para negar leituras de arquivos de credenciais

1599 1601 

1600<h3 id="clear-local-data">1602<h3 id="clear-local-data">

1601 Limpar dados locais1603 Limpar dados locais

1602</h3>1604</h3>

1603 1605 

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

1605 1607 

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

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

1608* Linhas de prompt correspondentes em `history.jsonl`1610* Linhas de prompt correspondentes em `history.jsonl`

1609* A entrada do projeto em `~/.claude.json`1611* A entrada do projeto em `~/.claude.json`

1610 1612 

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

1612 1614 

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

1614 1616 

1615Visualize o plano sem deletar nada:1617Visualize o plano sem deletar nada:

1616 1618 


1651claude project purge ~/work/my-repo --yes1653claude project purge ~/work/my-repo --yes

1652```1654```

1653 1655 

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

1655 1657 

1656O comando deixa `shell-snapshots/` e `backups/` sozinhos porque esses não têm escopo de projeto, e avisa sobre eles na saída do plano.1658O comando deixa `shell-snapshots/` e `backups/` sozinhos porque não têm escopo de projeto, e avisa sobre eles na saída do plano.

1657 1659 

1658Você também pode deletar qualquer um dos caminhos de dados da aplicação acima manualmente, exceto pelos [arquivos de estado para manter](#state-files-to-keep). Novas sessões não são afetadas. A tabela abaixo mostra o que você perde para sessões passadas.1660Você também pode deletar qualquer um dos caminhos de dados da aplicação acima manualmente, além dos [arquivos de estado para manter](#state-files-to-keep). Novas sessões não são afetadas. A tabela abaixo mostra o que você perde para sessões passadas.

1659 1661 

1660| Deletar | Você perde |1662| Deletar | Você perde |

1661| ---------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |1663| ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1662| `~/.claude/projects/` | Resume, continue e rewind para sessões passadas, e memória automática para cada projeto |1664| `~/.claude/projects/` | Retomar, continuar e retroceder para sessões passadas, e memória automática para cada projeto |

1663| `~/.claude/history.jsonl` | Recall de prompt de seta para cima, busca de histórico `Ctrl+R` e conclusão de comando shell `!` |1665| `~/.claude/history.jsonl` | Recall de prompt com seta para cima, busca de histórico `Ctrl+R` e conclusão de comando shell `!` |

1664| `~/.claude/paste-cache/` | Texto colado em prompts recuperados; veja [colar conteúdo grande](/docs/pt/terminal-config#paste-large-content) |1666| `~/.claude/paste-cache/` | Texto colado em prompts recuperados; veja [colar conteúdo grande](/docs/pt/terminal-config#paste-large-content) |

1665| `~/.claude/uploads/` | Anexos que sessões passadas de [Remote Control](/docs/pt/remote-control) referem por caminho |1667| `~/.claude/uploads/` | Anexos que sessões passadas de [Remote Control](/docs/pt/remote-control) referem por caminho |

1666| `~/.claude/file-history/` | Restauração de checkpoint para sessões passadas |1668| `~/.claude/file-history/` | Restauração de checkpoint para sessões passadas |

1667| `~/.claude/stats-cache.json` | Totais históricos mostrados por `/usage` |1669| `~/.claude/stats-cache.json` | Totais históricos mostrados por `/usage` |

1668| `~/.claude/usage-data/` | Relatórios passados de [`/insights`](/docs/pt/costs#analyze-your-usage-patterns) e os dados de análise em cache usados para construí-los |1670| `~/.claude/usage-data/` | Relatórios passados de [`/insights`](/docs/pt/costs#analyze-your-usage-patterns) e os dados de análise em cache usados para construí-los |

1669| `~/.claude/feedback-bundles/` | Feedback e arquivos de relatório de bug que você ainda não enviou para sua equipe de conta Anthropic |1671| `~/.claude/feedback-bundles/` | Feedback e arquivos de relatório de bug que você ainda não enviou à sua equipe de conta Anthropic |

1670| `~/.claude/feedback/drafts/` | [Feedback redigido por Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior) que você não enviou |1672| `~/.claude/feedback/drafts/` | [Feedback redigido por Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior) que você não enviou |

1671| `~/.claude/remote-settings.json` | Nada. Re-buscado na próxima inicialização. |1673| `~/.claude/remote-settings.json` | Nada. Re-buscado no próximo lançamento. |

1672| `~/.claude/cache/changelog.md` | Nada. Atualizado em segundo plano. |1674| `~/.claude/cache/changelog.md` | Nada. Atualizado em segundo plano. |

1673| `~/.claude/policy-limits.json` | Nada. Atualizado automaticamente. |1675| `~/.claude/policy-limits.json` | Nada. Atualizado automaticamente. |

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

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

1675| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/image-cache/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Nada voltado para o usuário |1678| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/image-cache/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Nada voltado para o usuário |

1676| `~/.claude/todos/`, `~/.claude/statsig/`, `~/.claude/logs/` | Nada. Diretórios legados não escritos por versões atuais. |1679| `~/.claude/todos/`, `~/.claude/statsig/`, `~/.claude/logs/` | Nada. Diretórios legados não escritos pelas versões atuais. |

1677 1680 

1678Não delete `~/.claude.json`, `~/.claude/settings.json` ou `~/.claude/plugins/`: esses contêm sua autenticação, preferências e plugins instalados.1681Não delete `~/.claude.json`, `~/.claude/settings.json` ou `~/.claude/plugins/`: esses mantêm sua autenticação, preferências e plugins instalados.

1679 1682 

1680<h2 id="related-resources">1683<h2 id="related-resources">

1681 Recursos relacionados1684 Recursos relacionados

claude-projects.md +538 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Deixe Claude coordenar trabalho contínuo com Projects

6 

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

8 

9<Note>

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

11</Note>

12 

13Um projeto é uma conversa contínua onde Claude coordena um fluxo de trabalho relacionado para você. Você diz o que precisa ser feito e ele inicia uma thread para cada tarefa. Cada thread é uma [sessão em nuvem](/docs/pt/claude-code-on-the-web): Claude Code executando na nuvem em vez de na sua máquina. As threads são executadas em paralelo e continuam funcionando depois que você fecha o laptop, e você pode verificá-las e direcioná-las do seu telefone.

14 

15Sem um projeto, executar várias sessões significa fazer a coordenação você mesmo: você decide no que cada uma trabalha, repete o mesmo contexto no início de cada uma e verifica qual terminou ou precisa de uma resposta. Com um projeto, você:

16 

17* **Envia trabalho para um único lugar**: cole um relatório de bug, um rastreamento de pilha ou uma lista de tarefas na conversa sempre que surgir. Claude inicia uma thread para cada peça de trabalho ou a passa para a thread já trabalhando nessa área, e responde perguntas rápidas no local.

18* **Define o contexto uma vez**: cada nova thread começa com os repositórios, instruções e memória do projeto, então uma regra que você declara uma vez, como qual branch direcionar, alcança todas elas.

19* **Saia e volte para o trabalho concluído**: quando você voltar uma hora depois ou na manhã seguinte, o painel **Overview** mostra quais threads terminaram, quais pull requests estão prontos para revisão e qual thread está aguardando sua resposta.

20 

21Se você já sabe o trabalho que deseja que um projeto execute, vá direto para [Criar um projeto](#create-a-project).

22 

23<h2 id="when-to-use-a-project">

24 Quando usar um projeto

25</h2>

26 

27Um projeto vale a pena criar quando o trabalho tem um objetivo que dura mais de uma sessão e continua produzindo tarefas. Esses tipos de trabalho funcionam bem em um projeto:

28 

29* **Um objetivo em muitos repositórios**: "Trazer cada serviço para a nova configuração de lint." Claude pode executar uma thread por repositório, cada uma com seu próprio pull request, e o painel [**Overview**](#see-what-needs-you-in-overview) mostra quais estão prontos para revisão.

30* **Uma área que você continua alimentando**: os bugs, rastreamentos de pilha e solicitações de revisão para um serviço, colados na conversa conforme chegam até você. Uma armadilha que você diz a Claude para lembrar após uma correção está na [memória do projeto](#give-a-project-standing-context) para a próxima.

31* **Uma compilação ou migração maior que uma sessão**: "Construir o que `docs/spec.md` descreve" ou "Mover o aplicativo do ORM descontinuado." O trabalho se divide em threads que cada uma pega uma parte, decisões que você pede a Claude para lembrar no início chegam às threads posteriores, e a especificação muda e bugs que você encontra durante a compilação vão para a mesma conversa.

32* **Trabalho que não é código**: uma pasta de contratos ou uma exportação de ticket de suporte que você continua voltando com novas perguntas, como "encontre os dez erros de integração mais comuns nesses tickets." Carregue os documentos em vez de adicionar um repositório, e as threads entregam cada relatório como um arquivo na aba [**Library**](#see-what-needs-you-in-overview) do projeto.

33 

34Em qualquer um deles você pode enviar um lote de tarefas, dizer a Claude para começar sem pedir que você confirme, sair e encontrar as threads que precisam de você em [**Waiting on you**](#see-what-needs-you-in-overview) quando voltar, ou pedir a Claude para colocar parte do trabalho em um cronograma como uma [routine](/docs/pt/routines). Se uma dessas é sua situação, [crie um projeto](#create-a-project).

35 

36<h3 id="when-something-else-fits-better">

37 Quando algo mais se encaixa melhor

38</h3>

39 

40As threads funcionam em repositórios GitHub e nos arquivos, pastas e pastas do Google Drive que você carrega no projeto, não em arquivos ou ferramentas que existem apenas na sua máquina. Algo mais se encaixa melhor nestes casos:

41 

42* **Uma tarefa que cabe em uma sessão**: "Corrigir o teste de login instável." Inicie uma [sessão em nuvem](/docs/pt/claude-code-on-the-web) você mesmo.

43* **Trabalho que precisa de ferramentas ou serviços que apenas sua máquina pode alcançar**: um banco de dados local, um emulador de dispositivo, uma API atrás de sua VPN. Use uma sessão local ou [agent view](/docs/pt/agent-view) para executar várias de uma vez. Se o trabalho só precisa de arquivos locais, carregue-os no projeto.

44* **Uma tarefa que se repete em um cronograma sem conversa ao redor**: "Postar um relatório de dependência toda segunda-feira." Crie uma [routine](/docs/pt/routines) por conta própria.

45* **Várias pessoas dando trabalho a Claude e direcionando-o juntas em um canal Slack**: veja [Claude Tag](https://claude.com/docs/claude-tag/overview).

46 

47Um projeto usa os mesmos limites de plano que suas outras sessões Claude Code e os usa mais rapidamente. [Uso e custo](#usage-and-cost) cobre o que usa seu plano e como mantê-lo baixo.

48 

49<h2 id="how-a-project-is-organized">

50 Como um projeto é organizado

51</h2>

52 

53Um projeto é uma conversa coordenadora com Claude mais as threads que ele inicia para fazer o trabalho. Estas são suas partes:

54 

55* **A conversa do projeto**: uma sessão de longa duração onde Claude atua como coordenador. Ele pega o que você envia, decide o que se torna uma thread e acompanha cada thread que iniciou. Ele vê o que as threads relatam, não cada passo que elas dão.

56* **Threads**: os trabalhadores. Cada uma é uma [sessão em nuvem](/docs/pt/claude-code-on-the-web) separada com sua própria janela de contexto que faz uma peça de trabalho em seu próprio branch, abre um pull request quando o trabalho exigir e relata de volta à conversa quando termina.

57* **O que cada thread começa com**:

58 * Os repositórios e arquivos do projeto, mais suas [instruções e memória](#give-a-project-standing-context)

59 * O `CLAUDE.md`, skills e plugins em [cada um dos repositórios do projeto](#what-threads-pick-up-from-your-repositories), e em um projeto com um repositório, as regras de permissão e hooks desse repositório também

60 * Os [connectors](#get-skills-plugins-connectors-and-tools-into-threads) na sua conta claude.ai

61 * Um [ambiente em nuvem](#choose-an-environment-for-threads) que define seu acesso à rede, variáveis de ambiente, credenciais de API e ferramentas instaladas

62* **O painel Overview**: onde você [vê todas as threads de uma vez](#see-what-needs-you-in-overview) e quais delas precisam de você. Suas outras abas são **Library** para os arquivos que você adicionou e os arquivos que as threads produziram, **Pull requests** para os que as threads abriram, e **Routines** para trabalho agendado no projeto.

63 

64As threads não pegam nada da configuração Claude Code na sua própria máquina. [Obter skills, plugins, connectors e ferramentas em threads](#get-skills-plugins-connectors-and-tools-into-threads) cobre como dar a elas o que de outra forma estariam faltando.

65 

66Aqui está como essas partes se conectam, de você através da conversa para as threads fazendo o trabalho, com **Overview** rastreando seu estado:

67 

68<Frame>

69 <img src="https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview.svg?fit=max&auto=format&n=e8CLbxM17eD7cAiv&q=85&s=dbf446f69f0bbdb9961d21af207cb93b" className="dark:hidden" alt="Diagrama de um projeto. Você escreve na conversa do projeto, onde Claude responde ou inicia uma thread. Cada thread é uma sessão em nuvem trabalhando em seu próprio branch e pull request. O painel Overview lista threads por estado, como pronto para revisão, aguardando você e trabalhando." width="600" height="250" data-path="images/claude-projects-overview.svg" />

70 

71 <img src="https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview-dark.svg?fit=max&auto=format&n=e8CLbxM17eD7cAiv&q=85&s=549a5ba9fea8433729babc37a1f6e9c8" className="hidden dark:block" alt="Diagrama de um projeto. Você escreve na conversa do projeto, onde Claude responde ou inicia uma thread. Cada thread é uma sessão em nuvem trabalhando em seu próprio branch e pull request. O painel Overview lista threads por estado, como pronto para revisão, aguardando você e trabalhando." width="600" height="250" data-path="images/claude-projects-overview-dark.svg" />

72</Frame>

73 

74<h2 id="create-a-project">

75 Criar um projeto

76</h2>

77 

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

79 

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

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

82 

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

84 

85<h3 id="check-the-prerequisites">

86 Verificar os pré-requisitos

87</h3>

88 

89Antes de criar um projeto, verifique seu plano, sua configuração do GitHub e o que o trabalho precisa alcançar:

90 

91* **Plano**: você está no Pro ou Max e **Projects** aparece na sua barra lateral.

92* **GitHub, se o projeto funcionará em código**: seu código está em github.com em vez de GitHub Enterprise Server, GitLab ou Bitbucket, sua conta GitHub conectada tem acesso push a ele, e o Claude GitHub App está instalado nele. Se você conectou GitHub com [`/web-setup`](/docs/pt/web-quickstart#connect-from-your-terminal), esse token permite que suas outras sessões em nuvem alcancem um repositório, mas não é suficiente para threads de projeto, que precisam do Claude GitHub App. [Configurar acesso ao GitHub](#set-up-github-access) tem os passos.

93* **Rede, credenciais e ferramentas**: estes vêm do [ambiente em nuvem](#choose-an-environment-for-threads) do projeto. O ambiente padrão já alcança [registros de pacotes comuns](/docs/pt/cloud-environments#default-allowed-domains), então verifique isso apenas se o trabalho precisar de outros domínios, um segredo ou uma ferramenta que não está pré-instalada. Se o trabalho precisa de um servidor MCP, verifique se ele aparece como conectado em seus [connectors claude.ai](https://claude.ai/customize/connectors).

94 

95<h3 id="start-a-new-project-from-scratch">

96 Iniciar um novo projeto do zero

97</h3>

98 

99Iniciar um projeto do zero significa abrir o diálogo **New project**, nomear o fluxo de trabalho e opcionalmente dar a ele um objetivo e os repositórios e arquivos em que funciona. Apenas o nome é obrigatório, então você pode criar o projeto primeiro e preencher o resto conforme o trabalho toma forma.

100 

101<Steps>

102 <Step title="Abrir Projects">

103 Em [claude.ai/code](https://claude.ai/code) ou na aba Code do aplicativo desktop, selecione **Projects** na barra lateral esquerda e depois selecione **New project**. Em um navegador você também pode ir direto para [claude.ai/code/projects/browse](https://claude.ai/code/projects/browse).

104 </Step>

105 

106 <Step title="Preencher o diálogo New project">

107 Escopo do projeto para um fluxo de trabalho que você continuará adicionando, como tudo o que é necessário para manter uma API sob seu alvo de latência. [Quando usar um projeto](#when-to-use-a-project) tem mais exemplos. Então preencha os campos do diálogo:

108 

109 * **Name**: como o projeto aparece na lista **Projects**.

110 * **Goal** (opcional): uma linha do que você está tentando realizar, como "Manter latência p95 da API abaixo de 200 ms". Claude na conversa trabalha em direção a isso. Sem um objetivo, Claude trabalha a partir das tarefas que você envia, e você pode adicionar um objetivo mais tarde em **Project settings > General**.

111 * **Context** (opcional): os repositórios GitHub em que este projeto funciona, mais quaisquer arquivos, pastas ou pastas do Google Drive que as threads devem ler. Clique **Add** para cada um. Adicione os repositórios que a maioria das tarefas precisa em vez de cada um que o trabalho pode tocar; [Decidir quais repositórios adicionar](#decide-which-repositories-to-add) cobre a escolha, e você pode adicionar mais tarde em **Project settings > Environment**.

112 

113 Regras permanentes para como as threads devem funcionar vão em [instruções do projeto](#give-a-project-standing-context), que você define após o projeto existir.

114 </Step>

115 

116 <Step title="Criar o projeto">

117 Clique **Create project**. A conversa do projeto abre com uma caixa de mensagem na parte inferior, onde você descreve trabalho para Claude.

118 

119 No seu primeiro projeto, Claude toma uma volta por conta própria assim que o projeto é criado, a menos que você envie uma mensagem primeiro. Essa volta usa seu plano. Nela, Claude pode:

120 

121 * Iniciar uma thread que explora o repositório sem fazer alterações e propõe próximos passos, se o projeto tiver um repositório que ele possa ler.

122 * Postar **Setup recommendations** extraídas de suas sessões em nuvem recentes: repositórios para adicionar, routines para criar e threads que ele poderia iniciar. Cada repositório e routine recomendados começam ligados. Desligue os que você não quer, depois clique **Update setup** para adicionar o resto, ou ignore as recomendações e descreva o trabalho você mesmo.

123 </Step>

124</Steps>

125 

126O projeto agora está listado em **Projects** na barra lateral, e sua conversa está aberta. [Seu primeiro lote](#your-first-batch) cobre o que configurar antes de enviar trabalho a ele.

127 

128<h3 id="start-from-an-existing-cloud-session">

129 Iniciar a partir de uma sessão em nuvem existente

130</h3>

131 

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

133 

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

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

136 

137<h3 id="set-up-github-access">

138 Configurar acesso ao GitHub

139</h3>

140 

141A maioria da configuração do GitHub acontece uma vez, não por projeto. Você conecta sua conta GitHub a Claude uma vez, e o Claude GitHub App é instalado uma vez por repositório, ou uma vez para toda uma organização GitHub se você der a ela todos os repositórios. Você volta a essas etapas quando adiciona um repositório que o Claude GitHub App ainda não cobre ou um em uma organização GitHub que impõe SSO.

142 

143<Steps>

144 <Step title="Conectar sua conta GitHub">

145 Se você nunca usou claude.ai/code antes, sua primeira visita o orienta através da conexão do GitHub; veja [Conectar GitHub](/docs/pt/web-quickstart#connect-github). Caso contrário, use uma das [opções de autenticação do GitHub](/docs/pt/claude-code-on-the-web#github-authentication-options).

146 </Step>

147 

148 <Step title="Instalar o Claude GitHub App nos repositórios do projeto">

149 Instale o [Claude GitHub App](https://github.com/apps/claude) e conceda a ele os repositórios que o projeto usará. Em um repositório pertencente a uma organização GitHub, apenas um proprietário da organização pode concluir a instalação; se você não for um, o GitHub envia ao proprietário uma solicitação de instalação e o projeto não pode usar o repositório até que ele aprove.

150 </Step>

151 

152 <Step title="Autorizar SSO para organizações que o impõem">

153 Se uma organização GitHub impõe SAML SSO, reconecte GitHub e autorize o aplicativo Claude para essa organização. Até que você faça isso, os repositórios privados dessa organização não aparecem no diálogo **New project** ou **Project settings > Environment**.

154 </Step>

155</Steps>

156 

157Quando uma dessas etapas está incompleta, o diálogo **New project** e a página do projeto nomeiam a etapa ausente e vinculam a onde você a conclui. Conclua a etapa lá, depois clique **Check again** se o diálogo oferecer. Se um repositório ainda estiver faltando na lista depois, abra a instalação do Claude GitHub App no GitHub, em [github.com/settings/installations](https://github.com/settings/installations) para uma conta pessoal, e confirme que o repositório está listado em **Repository access**. Para as mensagens de erro que uma thread ou o projeto relata quando o acesso ainda está errado, veja [Erros de acesso ao repositório](#repository-access-errors).

158 

159<h2 id="work-in-a-project">

160 Trabalhar em um projeto

161</h2>

162 

163Dê trabalho a Claude através da conversa do projeto: tarefas uma de cada vez ou várias de uma vez, mais atualizações e pensamentos soltos conforme surgem. Claude roteia cada mensagem, e as threads fazem o trabalho e relatam de volta.

164 

165<h3 id="your-first-batch">

166 Seu primeiro lote

167</h3>

168 

169Antes de enviar a um novo projeto um lote de trabalho, configure-o para que as primeiras threads voltem da maneira que você quer:

170 

1711. [Escrever instruções do projeto](#write-project-instructions): o resumo que cada thread começa, como qual branch direcionar, como uma thread verifica seu trabalho e o que precisa de sua aprovação.

1722. Envie uma pequena peça do trabalho real, ou inicie uma das threads que Claude sugeriu, e abra a thread quando terminar para ver como ela relata de volta e o que fez em seu branch. Se ela assumiu algo errado ou não conseguiu alcançar o que precisava, [Threads adivinharam ou travaram em vez de perguntar](#threads-guessed-or-stalled-instead-of-asking) cobre onde corrigir isso.

1733. Verifique **Thread model** e **Thread effort** em **Project settings > General**. Um novo projeto executa cada thread em Opus com alto esforço, que usa seu plano mais rapidamente; [Escolher modelos e deixar Claude gerenciar contexto](#choose-models-and-let-claude-manage-context) cobre as alternativas.

1744. Peça a Claude para [propor threads antes de iniciá-las e executar algumas de cada vez](#tune-how-claude-runs-a-project), e solte esses limites uma vez que algumas threads voltem da maneira que você quer.

175 

176<h3 id="send-work-and-read-results">

177 Enviar trabalho e ler resultados

178</h3>

179 

180Claude decide para onde cada mensagem que você envia na conversa vai:

181 

182* Uma pergunta rápida geralmente recebe uma resposta na conversa.

183* Novo trabalho vai para uma nova thread ou para uma thread já trabalhando nessa área, e Claude diz qual. Cada nova thread aparece sob sua mensagem como um cartão: uma caixa com o título e status da thread, que você clica para abrir a thread.

184* Várias tarefas não relacionadas em uma mensagem se tornam threads separadas.

185 

186Se Claude rotear algo diferente do que você queria, diga. [Ajustar como Claude executa um projeto](#tune-how-claude-runs-a-project) lista coisas que você pode dizer a ele, como reutilizar uma thread existente para acompanhamentos ou responder no local em vez de iniciar uma thread.

187 

188Os resultados completos de uma thread permanecem na thread, e você abre seu cartão na conversa para lê-los. Os arquivos que uma thread produziu também estão na aba **Library** em **Overview**.

189 

190Às vezes Claude propõe threads em vez de iniciá-las, em uma lista **Suggested threads**. Clique na seta em uma sugestão para iniciar essa thread. Quando várias estão listadas, um botão sob a lista inicia todas elas.

191 

192<h3 id="review-a-thread’s-pull-request">

193 Revisar o pull request de uma thread

194</h3>

195 

196Quando uma thread muda código, é isso que ela faz a menos que você diga o contrário:

197 

198* **Branch**: funciona em um novo branch, iniciado a partir do branch padrão do repositório.

199* **Pull request**: abre um quando você pede, e pode abrir um por conta própria para uma correção de bug ou outra mudança concreta.

200* **Depois que abre**: observa o pull request com [auto-fix](/docs/pt/claude-code-on-the-web#auto-fix-pull-requests) ligado, independentemente de auto-fix estar ligado para suas outras sessões em nuvem. Ele empurra correções quando CI falha, aborda comentários de revisão e responde na thread quando as verificações passam e o pull request está pronto para você.

201 

202Quando uma thread empurrou um branch ou abriu um pull request, seu cartão na conversa pode mostrar um botão para o próximo passo:

203 

204* **Resolve conflicts**, **Fix CI**, **Address comments** e **Merge it** enviam essa instrução para a thread como uma mensagem sua, então você pode solicitar a thread você mesmo em vez de esperar que ela reaja ao pull request.

205* **Review PR** abre o pull request no GitHub.

206* **Create PR** aparece quando uma thread ociosa empurrou um branch mas não abriu um pull request. Clicar nele cria o pull request desse branch diretamente em vez de enviar à thread uma instrução para abrir um.

207 

208Para mudar quando as threads abrem pull requests, por exemplo apenas quando você pede, ou qual branch elas começam, diga na tarefa ou em [instruções do projeto](#write-project-instructions).

209 

210<h3 id="see-what-needs-you-in-overview">

211 Ver o que precisa de você em Overview

212</h3>

213 

214O painel **Overview** ao lado da conversa rastreia as threads do projeto. Ele já está aberto na primeira vez que você abre um novo projeto. O botão **Overview** no cabeçalho do projeto o fecha e reabre, e mostra um ponto quando uma thread está aguardando você.

215 

216No aplicativo desktop, você também recebe uma notificação desktop quando Claude posta na conversa, uma thread atinge um erro ou uma thread precisa de sua entrada, então você não precisa manter o projeto aberto para descobrir. Para também receber uma cada vez que uma thread termina uma volta, ou para desligá-las para um projeto, escolha **Notifications** no menu da barra lateral do projeto. Essas notificações são apenas desktop: em um navegador, verifique o ponto no botão **Overview**.

217 

218A aba **Threads** do painel agrupa threads por estado:

219 

220| Grupo | O que está nele |

221| :------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

222| **Ready for review** | Threads cujo pull request está aberto e aguardando revisão |

223| **Waiting on you** | Threads que precisam de sua resposta ou aprovação, ou que falharam |

224| **Working** | Threads ainda em execução |

225| **Landing** | Threads cujo pull request é aprovado ou enfileirado para mesclar |

226| **Idle** | Threads que terminaram e não estão aguardando nada |

227| **Resolved** | Threads marcadas como concluídas: por você no menu da thread, por Claude uma vez que você tenha tomado o último passo, como mesclar seu pull request, ou automaticamente após uma semana sem atividade. Você pode reabrir uma no mesmo menu |

228 

229As outras abas do painel são **Library** para os arquivos e pastas que você adicionou e os arquivos que as threads produziram, **Pull requests** uma vez que as threads abriram algum, e **Routines** para as [routines](/docs/pt/routines) que Claude configurou a partir deste projeto.

230 

231<h3 id="open-a-thread-when-you-need-control">

232 Abrir uma thread quando você precisa de controle

233</h3>

234 

235Clique no cartão de uma thread na conversa ou sua linha em **Overview** para abrir sua transcrição no painel Overview. De lá você pode:

236 

237* Ler o que Claude fez, passo a passo.

238* Direcionar a tarefa escrevendo na caixa de mensagem própria da thread. Uma mensagem lá vai direto para essa thread, enquanto um acompanhamento na conversa do projeto a alcança apenas quando Claude corresponde o acompanhamento a essa thread.

239* Responder a um prompt de permissão que a thread está aguardando.

240* Interromper a thread com **Stop**, que substitui o botão enviar enquanto a thread está funcionando, ou pressionando Esc.

241 

242<h3 id="choose-models-and-let-claude-manage-context">

243 Escolher modelos e deixar Claude gerenciar contexto

244</h3>

245 

246Defina modelos e esforço em **Project settings > General**. Um novo projeto executa Opus em todos os lugares, com alto [esforço](/docs/pt/model-config#adjust-effort-level) para threads e baixo esforço para a conversa:

247 

248* **Thread model** e **Thread effort** se aplicam a threads. Para usar um modelo diferente para uma tarefa, peça na tarefa; para uma thread já em execução, use o seletor de modelo dessa thread.

249* **Coordinator model** e **Coordinator effort** se aplicam a Claude na conversa do projeto.

250 

251Você não gerencia janelas de contexto em um projeto. As threads compactam automaticamente, e a conversa funciona a partir de mensagens recentes, threads recentes e memória do projeto em vez de seu histórico completo, então continua enquanto o projeto funciona. Coloque qualquer coisa que nunca deve ser descartada em [memória do projeto](#give-a-project-standing-context). Se uma thread ultrapassar seu contexto, ela mostra [Claude ficou sem contexto nesta volta](#context-limit).

252 

253<h3 id="tune-how-claude-runs-a-project">

254 Ajustar como Claude executa um projeto

255</h3>

256 

257Diga a Claude na conversa quantas threads executar de uma vez, quando postar atualizações e quando abrir pull requests. Se Claude está coordenando de uma maneira que você não quer, diga. Por exemplo, você pode dizer:

258 

259* "Proponha threads e aguarde minha aprovação antes de iniciá-las" ou "Inicie estas agora sem me pedir para confirmar"

260* "Execute no máximo duas threads de uma vez" ou "Reutilize uma thread existente para acompanhamentos na mesma área"

261* "Poste atualizações mais curtas" ou "Apenas poste quando algo terminar ou ficar bloqueado"

262* "Dê-me uma atualização de status em cada thread"

263* "Faça esta tarefa com um modelo menor"

264* "Não abra um pull request até que eu tenha visto o plano"

265* "Diga-me o que está errado nesses repositórios e não corrija nada ainda", quando você quer passar pelos achados antes que qualquer um deles se torne uma thread

266* "Responda isso aqui em vez de iniciar uma thread", quando Claude inicia uma thread para algo que você quis dizer como uma pergunta rápida

267 

268Claude salva preferências como essas em [memória do projeto](#give-a-project-standing-context) por conta própria e as segue em threads posteriores. São instruções que Claude segue, não configurações impostas, então um limite de thread que você dá dessa maneira não é um limite rígido. Adicione um às instruções do projeto quando quiser que seja redigido exatamente e aplicado a cada thread desde o início.

269 

270<h3 id="unblock-a-thread-waiting-on-approval">

271 Desbloquear uma thread aguardando aprovação

272</h3>

273 

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

275 

276Cada aprovação cobre esse prompt, ou o resto dessa thread se você escolher a opção mais ampla. Para deixar cada thread executar certos comandos sem perguntar, ou para bloquear alguns, adicione [regras de permissão](/docs/pt/permissions) ao `.claude/settings.json` do repositório. As threads as aplicam apenas em um projeto com um repositório; veja [O que as threads pegam de seus repositórios](#what-threads-pick-up-from-your-repositories).

277 

278<h2 id="give-a-project-standing-context">

279 Dar contexto permanente a um projeto

280</h2>

281 

282Memória do projeto, instruções do projeto e os repositórios, arquivos e ambiente do projeto carregam contexto entre threads. Você define cada um uma vez e se aplica a cada nova thread.

283 

284| Contexto | O que carrega | Como você define |

285| :-------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

288| Repositórios, arquivos e ambiente | Os repositórios que cada thread clona, as pastas e arquivos que cada thread pode ler em `/mnt/project-files`, e o ambiente em nuvem em que as threads são executadas | Repositórios e ambiente em **Project settings > Environment**, ou peça a Claude na conversa para adicionar um repositório ao projeto. Arquivos e pastas de **Add** na aba **Library** em **Overview** |

289 

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

291 

292<h3 id="write-project-instructions">

293 Escrever instruções do projeto

294</h3>

295 

296As instruções do projeto são o resumo que cada nova thread começa. Clique no ícone de engrenagem no cabeçalho do projeto para abrir **Project settings**, depois vá para **Memory > Project instructions**. Um resumo útil cobre:

297 

298* Para que serve o projeto

299* Onde o trabalho acontece: quais repositórios, qual branch começar, como nomear pull requests

300* Como uma thread verifica seu próprio trabalho antes de chamá-lo de concluído

301* O que fazer quando algo que precisa está faltando

302* O que precisa de sua aprovação primeiro

303 

304Por exemplo:

305 

306```text theme={null}

307Este projeto mantém a latência p95 da API de pagamentos abaixo de 200 ms: criação de perfil, correções de consulta e cache, e as atualizações de dependência que vêm com elas, no repositório payments-api.

308 

309- Ramifique a partir de main e abra um pull request de rascunho por thread.

310- Antes de chamar o trabalho de concluído, execute `make test` e `make lint` e cole as linhas de resumo em sua mensagem final.

311- Se você não conseguir alcançar algo que precisa, como um repositório, um segredo, uma API ou um connector, diga exatamente o que está faltando em sua primeira mensagem e pare. Não substitua, simule ou adivinhe.

312- Não mescle, force-push ou mude a configuração de CI sem me perguntar na thread.

313```

314 

315Regras sobre um repositório, como seus comandos de compilação, pertencem ao `CLAUDE.md` desse repositório, que cada thread lê quando o repositório faz parte do projeto. Uma vez que o trabalho está em andamento, quando você corrige uma thread, também diga a Claude para lembrar da correção: ela vai para [memória do projeto](#give-a-project-standing-context) e threads posteriores começam com ela.

316 

317<h3 id="decide-which-repositories-to-add">

318 Decidir quais repositórios adicionar

319</h3>

320 

321Os repositórios que você adiciona a um projeto vêm com tudo neles, seu código, `CLAUDE.md` e skills, em cada thread. Repositórios que você não adiciona ainda estão ao alcance: uma thread pode adicionar um a si mesma quando sua tarefa precisa. A maioria dos projetos usa ambos:

322 

323* **Adicione-o ao projeto**, no diálogo **New project**, em **Project settings > Environment**, ou pedindo a Claude na conversa para adicionar ao projeto. Cada thread a partir de então clona e começa com seu `CLAUDE.md` e skills carregados, independentemente de a tarefa tocá-lo. Ir de um repositório para vários também muda o que as threads pegam do `.claude/settings.json` de cada repositório; veja [O que as threads pegam de seus repositórios](#what-threads-pick-up-from-your-repositories).

324* **Deixe-o de fora e deixe as threads adicionarem quando necessário.** Uma thread cuja tarefa precisa de um repositório que o projeto não tem pode adicioná-lo a si mesma, e uma nota na thread diz que foi adicionado apenas a essa thread. O clone acontece no meio da tarefa, então o `CLAUDE.md` e skills desse repositório não estavam lá quando a thread começou. A próxima thread começa sem ele novamente. Um repositório que uma thread adiciona precisa dos mesmos [pré-requisitos](#check-the-prerequisites) que um repositório de projeto: o Claude GitHub App instalado nele e acesso push de sua conta GitHub.

325 

326Um projeto não precisa de um repositório. Suas threads ainda podem pesquisar, escrever documentos e escrever e executar código em seu próprio sandbox, e entregam arquivos à aba **Library**. Uma thread lá também pode adicionar um repositório a si mesma quando uma tarefa exigir.

327 

328Uma vez que o projeto tem repositórios, Claude só pode adicionar repositórios de um proprietário GitHub que o projeto já usa, seja adicionando um ao projeto ou uma thread adicionando um a si mesma. Para trazer um repositório de um proprietário diferente, adicione-o ao projeto você mesmo em **Project settings > Environment**.

329 

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

331 

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

333 O que as threads pegam de seus repositórios

334</h3>

335 

336Cada thread clona cada repositório no projeto e carrega `CLAUDE.md`, skills e plugins de todos eles. Regras de permissão, hooks e `env` vêm apenas do `.claude/settings.json` no diretório em que a thread começa: dentro do repositório quando o projeto tem um, e acima dos clones quando tem vários, onde nenhum arquivo de repositório é lido para eles.

337 

338| Em cada repositório | Um repositório | Vários repositórios |

339| :---------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- |

340| `CLAUDE.md` | Carregado quando a thread começa | Carregado de cada repositório quando a thread começa |

341| Skills, agentes e comandos em `.claude/` | Carregado | Carregado de cada repositório |

342| Plugins habilitados em `.claude/settings.json` | Carregado | Carregado de cada repositório. Se dois repositórios discordarem sobre um plugin, defina-o em **Project settings > Plugins**, que tem precedência |

343| Regras de permissão, hooks e `env` definidos em `.claude/settings.json` | Aplicam-se à thread, exceto as chaves `env` que [nenhuma sessão em nuvem honra](/docs/pt/cloud-environments#what-carries-over-from-your-setup) | Não se aplicam |

344 

345Em um projeto com vários repositórios, cada clone é anexado à thread como um [diretório adicional](/docs/pt/memory#load-from-additional-directories) com carregamento de `CLAUDE.md` ligado, é por isso que o `CLAUDE.md` e skills de cada repositório carregam no início mesmo que a thread comece acima deles. Em qualquer caso, hooks que um plugin habilitado fornece ainda são executados, já que plugins carregam de cada repositório. Em um projeto com vários repositórios, coloque regras permanentes em instruções do projeto e dê às threads variáveis de ambiente através do [ambiente em nuvem](#choose-an-environment-for-threads).

346 

347<h3 id="choose-an-environment-for-threads">

348 Escolher um ambiente para threads

349</h3>

350 

351Cada nova thread começa no [ambiente em nuvem](/docs/pt/cloud-environments) do projeto. O ambiente define quais domínios as threads podem alcançar, quais variáveis de ambiente elas têm, quais credenciais de API são adicionadas a suas solicitações e o que o script de configuração instala antes de Claude começar. As threads usam um ambiente padrão hospedado pela Anthropic até que você escolha um em **Project settings > Environment**.

352 

353Se as threads precisam alcançar uma API interna ou um registro de pacotes privado, ou precisam de um token que sua máquina normalmente mantém, mude o ambiente em vez do projeto: veja [Acesso à rede](/docs/pt/cloud-environments#network-access), [Adicionar credenciais de API](/docs/pt/cloud-environments#add-api-credentials) e [Scripts de configuração](/docs/pt/cloud-environments#setup-scripts).

354 

355<h3 id="get-skills-plugins-connectors-and-tools-into-threads">

356 Obter skills, plugins, connectors e ferramentas em threads

357</h3>

358 

359As threads são sessões em nuvem, então não têm os skills, servidores MCP, plugins e ferramentas instalados apenas na sua máquina. Para disponibilizar cada um desses para threads:

360 

361* Skills, subagentes e comandos: confirme-os em um repositório que você adicionou ao projeto, por exemplo um skill em `.claude/skills/<skill-name>/SKILL.md`. Cada thread clona cada repositório no projeto e carrega `.claude/skills/`, `.claude/agents/` e `.claude/commands/` de cada um deles, então um skill confirmado em um repositório está disponível em cada nova thread. As threads também carregam os skills que você habilita para sua conta claude.ai.

362* Plugins: adicione-os em **Project settings > Plugins**; eles carregam em cada nova thread. Plugins que um repositório declara em seu `.claude/settings.json` também carregam; veja [O que se carrega de sua configuração](/docs/pt/cloud-environments#what-carries-over-from-your-setup).

363* Servidores MCP: as threads obtêm suas ferramentas MCP dos connectors em sua conta claude.ai, que são servidores MCP que você conecta uma vez em [claude.ai/customize/connectors](https://claude.ai/customize/connectors) ou através do link **Manage connectors** em **Project settings > Environment**. Cada thread pode usar todos eles sem configuração por projeto. A conversa do projeto em si não tem connectors, então envie trabalho que precisa de um como uma tarefa para uma thread. Em um projeto com um repositório, as threads também carregam servidores MCP do [`.mcp.json`](/docs/pt/cloud-environments#what-carries-over-from-your-setup) desse repositório. [Como connectors alcançam Claude Code](/docs/pt/mcp#how-connectors-reach-claude-code) lista as regras para sessões em nuvem e as configurações que desligam connectors.

364* Ferramentas de linha de comando e pacotes: instale-os no [script de configuração](/docs/pt/cloud-environments#setup-scripts) do ambiente.

365 

366Para ver quais connectors uma thread em execução tem em claude.ai/code, abra a thread e selecione **Connectors** no menu **+** ao lado de sua caixa de mensagem. Desligar um connector lá o remove dessa thread, e permanece desligado para threads iniciadas depois até que você o ligue novamente. Uma thread pega um connector que você adiciona ou reconecta após a próxima mensagem que você envia a ela.

367 

368<h2 id="project-settings-reference">

369 Referência de configurações do projeto

370</h2>

371 

372Você muda as configurações do projeto em claude.ai/code ou no aplicativo desktop, não em `settings.json`. Abra **Project settings** de **Settings** no menu da barra lateral do projeto ou do ícone de engrenagem no cabeçalho do projeto.

373 

374As configurações são salvas conforme você as altera; um campo de texto que você está editando, como o objetivo ou instruções, mostra **Save changes** e **Discard** até que você o deixe. Mudanças em instruções, repositórios, plugins e ambiente em **Project settings** alcançam novas threads, não threads já em execução.

375 

376| Configuração | Seção | O que controla |

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

378| Nome, ícone e objetivo | General | O nome e ícone do projeto na barra lateral e seu objetivo de uma linha |

379| Modelo e esforço do coordenador | General | O modelo e [nível de esforço](/docs/pt/model-config#adjust-effort-level) para Claude na conversa do projeto |

380| Modelo e esforço da thread | General | O modelo e nível de esforço para threads |

381| Instruções do projeto | Memory | [Regras permanentes](#give-a-project-standing-context) que cada nova thread recebe |

382| Repositórios do projeto | Environment | Os repositórios que novas threads clonam |

383| Ambiente em nuvem | Environment | O [ambiente em nuvem](#choose-an-environment-for-threads) em que novas threads são executadas |

384| Connectors | Environment | Um link para gerenciar os connectors claude.ai que as threads obtêm |

385| Plugins | Plugins | Os plugins que carregam em cada nova thread |

386| Usage | Usage | [Uso de token](#usage-and-cost) por thread e por modelo |

387| Memory | Memory | Os [arquivos de memória](#give-a-project-standing-context) do projeto |

388| Restart Claude | General | Reinicia a conversa do projeto quando [Claude para de responder lá](#claude-hasnt-responded) |

389| Pause, Archive, Delete | General | Para, oculta ou remove o projeto; veja [Pausar, arquivar ou deletar um projeto](#pause-archive-or-delete-a-project) |

390 

391<h3 id="pause-archive-or-delete-a-project">

392 Pausar, arquivar ou deletar um projeto

393</h3>

394 

395Todos os três controles estão na parte inferior de **Project settings > General**:

396 

397* **Pause**: para tudo de uma vez. Cada thread em execução e a conversa são interrompidas, nenhuma nova thread começa, routines não são executadas e o projeto não aceita mensagens até que você o retome. Clique **Resume** no mesmo lugar ou no banner acima da caixa de mensagem do projeto; uma thread pausada continua quando você envia uma mensagem a ela depois disso.

398* **Archive**: oculta o projeto da barra lateral e arquiva suas threads, o que para qualquer thread que estava em execução ou observando um pull request. Routines no projeto não são executadas enquanto está arquivado. Para trazer o projeto de volta, abra-o na página Projects e clique **Unarchive**. Suas threads permanecem arquivadas até que você as desarquive individualmente da lista de sessões.

399* **Delete**: remove permanentemente o projeto junto com suas threads, sua memória e seus arquivos, e desliga as routines do projeto. Isso não pode ser desfeito. Branches e pull requests que as threads empurraram para o GitHub não são afetados.

400 

401<h2 id="usage-and-cost">

402 Uso e custo

403</h2>

404 

405O uso do projeto conta contra os mesmos [limites de plano](/docs/pt/errors#youve-hit-your-session-limit) que suas outras sessões Claude Code, e um projeto não pode gastar além desses limites por conta própria.

406 

407Uma thread que atinge o limite do seu plano aguarda e continua por conta própria quando o limite é redefinido, então o trabalho que você deixou em execução começa a usar sua próxima janela de uso sem uma mensagem sua. [Uma thread atingiu o limite de uso](#usage-limit-reached) cobre o que você vê, como pará-la e o único caso que não aguarda.

408 

409O trabalho vai além dos limites do seu plano apenas se você tiver ligado [créditos de uso](/docs/pt/costs#add-usage-credits-to-your-subscription) para sua conta. Uma thread não pode ligá-los para você.

410 

411<h3 id="what-draws-on-your-plan">

412 O que usa seu plano

413</h3>

414 

415Um projeto usa seus limites mais rapidamente que uma única sessão, e em um plano Pro em particular você deve esperar atingir seu limite mais cedo em dias em que executa um. Estas são as partes de um projeto que usam seu plano:

416 

417* **Threads em execução**: cada uma é uma sessão completa, e várias podem ser executadas ao mesmo tempo. Não há um número fixo; Claude inicia quantas o trabalho exigir, e um limite que você [pede](#tune-how-claude-runs-a-project) é uma preferência em vez de um limite. O limite imposto é 200 novas threads por dia em seus projetos.

418* **A conversa**: Claude usa tokens lendo o que as threads relatam e decidindo o que fazer a seguir.

419* **Threads observando um pull request**: uma thread ociosa acorda e usa seu plano novamente quando CI falha ou um comentário de revisão chega em seu pull request. Para parar isso, peça na thread para ela parar de observar o pull request.

420 

421Um projeto sem threads em execução, sem pull requests observados e sem novas mensagens não usa seu plano enquanto fica ocioso, e nem um projeto arquivado.

422 

423<h3 id="see-and-reduce-a-project’s-usage">

424 Ver e reduzir o uso de um projeto

425</h3>

426 

427Abra **Usage** em **Project settings** para ver o uso de token por thread e por modelo, e quanto foi para a conversa do projeto. Para reduzi-lo:

428 

429* Um acompanhamento roteado para uma thread que está ociosa há mais tempo que o [tempo de vida do cache](/docs/pt/prompt-caching#cache-lifetime), uma hora em Pro e Max dentro dos limites do seu plano, relê toda a conversa dessa thread antes de fazer qualquer coisa. Para novo trabalho, pedir a Claude para iniciar uma thread fresca pode usar menos que reviver uma grande antiga.

430* Para trabalho que não precisa do maior modelo, [escolha um modelo menor ou um nível de esforço mais baixo](#choose-models-and-let-claude-manage-context) para threads, a conversa ou ambos.

431* Peça a Claude na conversa do projeto para executar menos threads de uma vez, ou para responder pequenas perguntas ela mesma em vez de iniciar uma thread.

432 

433<h2 id="how-projects-relate-to-other-claude-code-features">

434 Como projetos se relacionam com outros recursos Claude Code

435</h2>

436 

437Vários recursos Claude Code permitem que mais de uma sessão funcione ao mesmo tempo, então executar trabalho em paralelo não é por si só para que um projeto serve. Em um projeto, Claude inicia e rastreia as sessões em vez de você, cada uma começa a partir dos mesmos repositórios, instruções e memória, e o trabalho vive na nuvem enquanto durar. É assim que cada recurso vizinho se conecta a um projeto:

438 

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

440* **Sessões em nuvem**: cada thread é uma [sessão em nuvem](/docs/pt/claude-code-on-the-web), iniciada e rastreada por Claude em vez de por você. Uma sessão em nuvem que você iniciou pode se tornar um projeto ou alimentar um através de [**Continue as a project** ou **Move to project**](#start-from-an-existing-cloud-session).

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

442* **Sessões locais e agent view**: sessões em seu terminal, IDE ou ambiente local do aplicativo desktop são executadas na sua máquina e não podem fazer parte de um projeto. [Agent view](/docs/pt/agent-view) é uma tela para rastrear várias dessas sessões locais; não tem coordenador.

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

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

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

446 

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

448 

449<h2 id="limitations">

450 Limitações

451</h2>

452 

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

454* As threads do projeto são [sessões em nuvem](/docs/pt/claude-code-on-the-web) com Anthropic como provedor de modelo. [Segurança](/docs/pt/security) e [Uso de dados](/docs/pt/data-usage) cobrem como as sessões em nuvem são isoladas e o que é retido.

455* Uma sessão local não pode fazer parte de um projeto.

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

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

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

459 

460<h2 id="troubleshooting">

461 Solução de problemas

462</h2>

463 

464Para os prompts de configuração do GitHub no diálogo **New project**, veja [Configurar acesso ao GitHub](#set-up-github-access).

465 

466<h3 id="a-thread-looks-stuck">

467 Uma thread parece estar travada

468</h3>

469 

470Claude não posta cada passo que uma thread toma, então uma thread que mostra como em execução sem novas mensagens na conversa do projeto geralmente ainda está funcionando. Uma nova thread também provisiona seu [ambiente em nuvem](/docs/pt/cloud-environments) antes de Claude começar, então sua primeira atualização leva um momento. Abra a thread para ler sua transcrição. Se a thread está aguardando um prompt de permissão, responda lá.

471 

472<h3 id="threads-guessed-or-stalled-instead-of-asking">

473 Threads adivinharam ou travaram em vez de perguntar

474</h3>

475 

476Quando várias threads voltam tendo assumido algo errado, contornado acesso ausente ou parado com "bloqueado", a causa geralmente é a mesma lacuna na configuração do projeto em vez de um problema com cada tarefa. Classifique quais threads são sólidas antes de corrigir qualquer coisa:

477 

4781. Peça a Claude na conversa: "Para cada thread aberta, liste o que você pediu a ela para fazer, o que ela assumiu ou não conseguiu alcançar e no que está aguardando." Claude lê cada thread e responde na conversa.

4792. Para threads que começaram de uma suposição errada, abra a thread de **Overview** e marque-a como resolvida de seu menu, ou diga a ela o que fazer em vez disso em sua caixa de mensagem. Seu branch e qualquer pull request permanecem no GitHub até que você os delete.

4803. Corrija a lacuna uma vez, em [instruções do projeto](#give-a-project-standing-context) ou no [ambiente](#choose-an-environment-for-threads), depois envie uma thread antes de enviar o resto do trabalho novamente como novas threads.

481 

482<h3 id="claude-hasnt-responded">

483 Claude não respondeu

484</h3>

485 

486A conversa do projeto mostra um banner "Claude hasn't responded" quando Claude está em execução mas suas respostas não estão alcançando o projeto. Clique **Restart Claude** no banner, ou vá para **Project settings > General** e clique **Restart** na linha **Restart Claude**. Claude se reconecta à conversa; qualquer resposta que estava no meio de escrever é perdida, e as threads não são afetadas.

487 

488<h3 id="repository-access-errors">

489 Erros de acesso ao repositório

490</h3>

491 

492Três mensagens significam que uma thread ou o projeto não consegue alcançar um de seus repositórios. Uma thread de projeto precisa dos [pré-requisitos do GitHub](#check-the-prerequisites) mesmo quando suas outras sessões em nuvem clonam o mesmo repositório sem problemas.

493 

494* **"Couldn't start the session — Claude doesn't have GitHub access to this project's repository"**, relatado antes da thread começar, quando o Claude GitHub App não está instalado nesse repositório, está suspenso ou não está vinculado à conta GitHub que você conectou.

495* **"Unable to access your repository"**, relatado por uma thread quando seu clone falha: GitHub rejeitou o clone, o repositório não foi encontrado sob o nome que o projeto tem, ou o branch do qual a thread foi pedida para começar não existe.

496* **"Claude can't access"** um repositório, mostrado quando você salva repositórios no diálogo **New project** ou **Project settings**. A mensagem continua com um link de instalação e um link de reconexão. Use o link de instalação se o Claude GitHub App não estiver nesse repositório, e o link de reconexão se estiver, já que o GitHub App pode ser instalado no GitHub sem estar vinculado à conta que você conectou a Claude. Se a mensagem disser que o GitHub App está suspenso ou não inclui esse repositório, siga seu link para o GitHub para corrigir isso.

497 

498Para corrigir qualquer um deles, clique no botão que a mensagem oferece, como **Install GitHub App** ou **Select repositories on GitHub**, depois **Check again**. Quando o bloqueio está no lado da organização GitHub, como um proprietário que não aprovou o app ou uma lista de permissão de IP que exclui Claude, a mensagem mostra um link **See how to fix**. Se não houver botão, siga [Configurar acesso ao GitHub](#set-up-github-access), depois envie outra mensagem para tentar novamente.

499 

500<h3 id="usage-limit-reached">

501 Uma thread atingiu o limite de uso

502</h3>

503 

504Quando uma thread ou a conversa do projeto atinge o limite de cinco horas ou semanal do seu plano, ela continua tentando por conta própria e continua quando o limite é redefinido. Enquanto aguarda, a thread mostra **Service is busy** com "Claude is still retrying and will continue automatically." Você não precisa fazer nada para o trabalho continuar. Se preferir que não use sua próxima janela de uso, clique **Stop** na thread, ou [pause o projeto](#pause-archive-or-delete-a-project) para manter cada thread. Uma thread que uma routine iniciou não aguarda: sua volta para com um erro de limite, e você envia uma mensagem a ela após o limite ser redefinido.

505 

506[Erros de limite de uso](/docs/pt/errors#youve-hit-your-session-limit) explicam os limites e quando eles são redefinidos.

507 

508<h3 id="additional-usage-credits-are-required">

509 Créditos de uso adicionais são necessários

510</h3>

511 

512Uma thread ou a conversa do projeto fez uma solicitação que seu plano cobre apenas com créditos de uso, como uma para um modelo ou tamanho de contexto que seu plano não inclui, e créditos de uso não estão ligados para sua conta. [Adicionar créditos de uso à sua assinatura](/docs/pt/costs#add-usage-credits-to-your-subscription) cobre quem pode ligá-los ou comprá-los em cada plano. Uma vez que créditos estão disponíveis, envie outra mensagem para tentar novamente.

513 

514<h3 id="context-limit">

515 Outras mensagens

516</h3>

517 

518Essas mensagens nomeiam sua própria causa. A tabela dá o próximo passo para cada uma.

519 

520| Mensagem | O que fazer |

521| :-------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

522| "Unable to connect to repository" com "Claude couldn't reach GitHub to fetch your repository" | Aguarde um momento, depois envie outra mensagem para tentar novamente |

523| "Unable to connect to repository" com "Claude couldn't access your repository or environment" | Sua conta GitHub precisa de acesso push ao repositório, e o ambiente ainda deve existir. Verifique ambos em **Project settings > Environment**, depois tente novamente |

524| "Couldn't show the setup proposal" | O app que você tem aberto é mais antigo que as **Setup recommendations** que Claude enviou. Atualize a página ou reinicie o aplicativo desktop, ou peça a Claude para propor a configuração novamente |

525| "The project's environment was removed" | Escolha um ambiente diferente em **Project settings > Environment**; a mudança se aplica a novas threads |

526| "Setup script failed" | Clique **Edit setup script** no erro, corrija o script no ambiente, depois envie outra mensagem. [Setup script failed](/docs/pt/web-quickstart#setup-script-failed) lista causas comuns |

527| "Claude ran out of context on this turn" | A thread preencheu sua janela de contexto. Se a mensagem disser que a thread continua em uma sessão fresca, ela continua por conta própria; caso contrário, peça a Claude na conversa do projeto para iniciar uma nova thread para o trabalho restante |

528| "Reached the turn limit" | A thread atingiu o limite de passos agentic que [`CLAUDE_CODE_MAX_TURNS`](/docs/pt/env-vars) define. Envie outra mensagem para continuar, ou aumente ou remova essa variável onde está definida |

529 

530<h2 id="related-resources">

531 Recursos relacionados

532</h2>

533 

534* [Usar Claude Code na nuvem](/docs/pt/claude-code-on-the-web): como as sessões em nuvem por trás de cada thread funcionam, incluindo opções de acesso ao GitHub e auto-fix em pull requests

535* [Configurar ambientes em nuvem](/docs/pt/cloud-environments): mude o que as threads podem alcançar na rede, dê a elas variáveis de ambiente e credenciais de API, e instale ferramentas com um script de configuração

536* [Automatizar trabalho com routines](/docs/pt/routines): cronogramas, gatilhos e gerenciamento para routines, incluindo as que Claude cria a partir de um projeto

537* [Gerenciar múltiplos agentes com agent view](/docs/pt/agent-view): execute e rastreie várias sessões na sua própria máquina quando o trabalho precisa de ferramentas ou serviços que apenas sua máquina pode alcançar

538* [Projects redesigned: from folder to conversation](https://claude.com/blog/projects-redesigned): o anúncio de lançamento, com o raciocínio por trás de tornar um projeto uma conversa com Claude

Details

78| `--bg`, `--background` | Iniciar a sessão como um [agente de fundo](/docs/pt/agent-view) e retornar imediatamente. Imprime o ID da sessão e comandos de gerenciamento. Combine com `--exec` para executar um comando shell como um trabalho de fundo em vez de uma sessão Claude, ou com `--agent` para executar um subagent específico. Não pode ser combinado com `-p`/`--print`; veja a [referência de erro](/docs/pt/errors#command-line-errors) | `claude --bg "investigate the flaky test"` |78| `--bg`, `--background` | Iniciar a sessão como um [agente de fundo](/docs/pt/agent-view) e retornar imediatamente. Imprime o ID da sessão e comandos de gerenciamento. Combine com `--exec` para executar um comando shell como um trabalho de fundo em vez de uma sessão Claude, ou com `--agent` para executar um subagent específico. Não pode ser combinado com `-p`/`--print`; veja a [referência de erro](/docs/pt/errors#command-line-errors) | `claude --bg "investigate the flaky test"` |

79| `--channels` | (Visualização de pesquisa) Servidores MCP cujas notificações de [channel](/docs/pt/channels) Claude deve ouvir nesta sessão. Lista separada por espaço de entradas `plugin:<name>@<marketplace>`. Requer autenticação Anthropic através de claude.ai ou uma chave de API do Console | `claude --channels plugin:my-notifier@my-marketplace` |79| `--channels` | (Visualização de pesquisa) Servidores MCP cujas notificações de [channel](/docs/pt/channels) Claude deve ouvir nesta sessão. Lista separada por espaço de entradas `plugin:<name>@<marketplace>`. Requer autenticação Anthropic através de claude.ai ou uma chave de API do Console | `claude --channels plugin:my-notifier@my-marketplace` |

80| `--chrome` | Ativar [integração do navegador Chrome](/docs/pt/chrome) para automação web e testes | `claude --chrome` |80| `--chrome` | Ativar [integração do navegador Chrome](/docs/pt/chrome) para automação web e testes | `claude --chrome` |

81| `--cloud` | Com uma descrição de tarefa, criar uma nova [sessão web](/docs/pt/claude-code-on-the-web) em claude.ai. Com um ID de sessão (`session_...` ou `cse_...`) ou uma URL claude.ai/code, enfileirar uma mensagem nessa sessão existente em vez disso, com `-p`. Veja [enviar uma mensagem de acompanhamento](/docs/pt/claude-code-on-the-web#send-follow-ups-from-the-cli). | `claude --cloud "Fix the login bug"` |81| `--cloud` | Com uma descrição de tarefa, criar uma nova [sessão web](/docs/pt/claude-code-on-the-web). Com um ID de sessão (`session_...` ou `cse_...`) ou uma URL claude.ai/code, enfileirar uma mensagem nessa sessão existente em vez disso, com `-p`. Veja [enviar uma mensagem de acompanhamento](/docs/pt/claude-code-on-the-web#send-follow-ups-from-the-cli). | `claude --cloud "Fix the login bug"` |

82| `--continue`, `-c` | Carregar a conversa mais recente no diretório atual, incluindo uma [sessão de fundo que terminou](/docs/pt/sessions#resume-a-session); abrir sessões de fundo terminadas requer Claude Code v2.1.257 ou posterior. Pula sessões criadas com `claude -p` ou o Agent SDK, e sessões cujo primeiro prompt foi `/loop`. `claude -p --continue` inclui sessões `-p`, SDK e `/loop`. Inclui sessões que adicionaram este diretório com `/add-dir` | `claude --continue` |82| `--continue`, `-c` | Carregar a conversa mais recente no diretório atual, incluindo uma [sessão de fundo que terminou](/docs/pt/sessions#resume-a-session); abrir sessões de fundo terminadas requer Claude Code v2.1.257 ou posterior. Pula sessões criadas com `claude -p` ou o Agent SDK, e sessões cujo primeiro prompt foi `/loop`. `claude -p --continue` inclui sessões `-p`, SDK e `/loop`. Inclui sessões que adicionaram este diretório com `/add-dir` | `claude --continue` |

83| `--dangerously-load-development-channels` | Ativar [channels](/docs/pt/channels-reference#test-during-the-research-preview) que não estão na lista de permissões aprovada, para desenvolvimento local. Aceita entradas `plugin:<name>@<marketplace>` e `server:<name>`. Solicita confirmação | `claude --dangerously-load-development-channels server:webhook` |83| `--dangerously-load-development-channels` | Ativar [channels](/docs/pt/channels-reference#test-during-the-research-preview) que não estão na lista de permissões aprovada, para desenvolvimento local. Aceita entradas `plugin:<name>@<marketplace>` e `server:<name>`. Solicita confirmação | `claude --dangerously-load-development-channels server:webhook` |

84| `--dangerously-skip-permissions` | Pular prompts de permissão. Equivalente a `--permission-mode bypassPermissions`. Veja [modos de permissão](/docs/pt/permission-modes#skip-all-checks-with-bypasspermissions-mode) para o que isso faz e não faz. Para sessões iniciadas com `--bg`, o modo [persiste quando o supervisor reinicia a sessão](/docs/pt/agent-view#permission-mode-model-and-effort) | `claude --dangerously-skip-permissions` |84| `--dangerously-skip-permissions` | Pular prompts de permissão. Equivalente a `--permission-mode bypassPermissions`. Veja [modos de permissão](/docs/pt/permission-modes#skip-all-checks-with-bypasspermissions-mode) para o que isso faz e não faz. Para sessões iniciadas com `--bg`, o modo [persiste quando o supervisor reinicia a sessão](/docs/pt/agent-view#permission-mode-model-and-effort) | `claude --dangerously-skip-permissions` |


167 167 

168Por padrão, Claude Code constrói o prompt do sistema uma vez, na primeira solicitação de uma conversa, com o texto de quaisquer sinalizadores de prompt do sistema aplicados, e o registra na sessão. Até que a conversa seja compactada, cada solicitação posterior usa esse prompt registrado, incluindo depois que você retorna à conversa com `--resume` ou `--continue`. Se você passar texto de sinalizador de prompt do sistema diferente, ou nenhum, nesse lançamento posterior, ele entra em vigor uma vez que a conversa é compactada ou quando você inicia uma nova conversa.168Por padrão, Claude Code constrói o prompt do sistema uma vez, na primeira solicitação de uma conversa, com o texto de quaisquer sinalizadores de prompt do sistema aplicados, e o registra na sessão. Até que a conversa seja compactada, cada solicitação posterior usa esse prompt registrado, incluindo depois que você retorna à conversa com `--resume` ou `--continue`. Se você passar texto de sinalizador de prompt do sistema diferente, ou nenhum, nesse lançamento posterior, ele entra em vigor uma vez que a conversa é compactada ou quando você inicia uma nova conversa.

169 169 

170Se você iniciar Claude Code em [modo bare](/docs/pt/headless#start-faster-with-bare-mode), passando `--bare` ou definindo `CLAUDE_CODE_SIMPLE=1`, o registro permanece desativado a menos que você passe `--system-prompt-snapshot on`. Antes de v2.1.268, sessões que não [buscam sinalizadores de recurso](/docs/pt/env-vars#features-that-need-feature-flag-fetching), incluindo sessões no Amazon Bedrock, na Plataforma de Agentes do Google Cloud e no Microsoft Foundry, reconstruíram o prompt em cada solicitação e `--system-prompt-snapshot` não tinha efeito.170Fora de [sessões em nuvem](/docs/pt/cloud-environments), se você iniciar Claude Code em [modo bare](/docs/pt/headless#start-faster-with-bare-mode), passando `--bare` ou definindo `CLAUDE_CODE_SIMPLE=1`, o registro permanece desativado a menos que você passe `--system-prompt-snapshot on`. Antes de v2.1.268, sessões que não [buscam sinalizadores de recurso](/docs/pt/env-vars#features-that-need-feature-flag-fetching), incluindo sessões no Amazon Bedrock, na Plataforma de Agentes do Google Cloud e no Microsoft Foundry, reconstruíram o prompt em cada solicitação e `--system-prompt-snapshot` não tinha efeito.

171 171 

172Para reconstruir o prompt em cada solicitação em vez disso, por exemplo enquanto você itera em sua redação em execuções `--continue`, passe `--system-prompt-snapshot off`. Antes de v2.1.265, passar qualquer um dos sinalizadores de prompt do sistema também desativava o registro a menos que você passasse `--system-prompt-snapshot on`.172Para reconstruir o prompt em cada solicitação em vez disso, por exemplo enquanto você itera em sua redação em execuções `--continue`, passe `--system-prompt-snapshot off`. Antes de v2.1.265, passar qualquer um dos sinalizadores de prompt do sistema também desativava o registro a menos que você passasse `--system-prompt-snapshot on`.

173 173 

Details

7> Configure ambientes na nuvem para sessões na nuvem do Claude Code: níveis de acesso à rede, variáveis de ambiente, scripts de configuração e cache de ambiente.7> Configure ambientes na nuvem para sessões na nuvem do Claude Code: níveis de acesso à rede, variáveis de ambiente, scripts de configuração e cache de ambiente.

8 8 

9<Note>9<Note>

10 Ambientes na nuvem requerem [Claude Code na web](/docs/pt/claude-code-on-the-web), que está em visualização de pesquisa para usuários Pro, Max e Team, e para usuários Enterprise com [assentos premium ou assentos Chat + Claude Code](https://support.claude.com/en/articles/11845131-use-claude-code-with-your-team-or-enterprise-plan).10 Ambientes na nuvem se aplicam a [sessões na nuvem](/docs/pt/claude-code-on-the-web), que estão em visualização de pesquisa para usuários Pro, Max e Team, e para usuários Enterprise com [assentos premium ou assentos Chat + Claude Code](https://support.claude.com/en/articles/11845131-use-claude-code-with-your-team-or-enterprise-plan).

11</Note>11</Note>

12 12 

13Cada [sessão na nuvem](/docs/pt/claude-code-on-the-web) é executada em um ambiente na nuvem. Você pode configurar um ambiente para permitir ou negar [acesso à rede](#access-levels), [definir variáveis de ambiente](#set-environment-variables) para a sessão, em planos Pro e Max armazenar [credenciais de API](#add-api-credentials) que as sessões usam sem vê-las, e executar um [script de configuração](#setup-scripts) antes de Claude começar a trabalhar.13Cada [sessão na nuvem](/docs/pt/claude-code-on-the-web) é executada em um ambiente na nuvem. Você pode configurar um ambiente para permitir ou negar [acesso à rede](#access-levels), [definir variáveis de ambiente](#set-environment-variables) para a sessão, em planos Pro e Max armazenar [credenciais de API](#add-api-credentials) que as sessões usam sem vê-las, e executar um [script de configuração](#setup-scripts) antes de Claude começar a trabalhar.

14 14 

15Os mesmos ambientes se aplicam em qualquer lugar onde você inicie uma sessão na nuvem: [Claude Code na web](/docs/pt/claude-code-on-the-web), o terminal com [`claude --cloud`](/docs/pt/claude-code-on-the-web#from-terminal-to-web), [Claude Tag](https://claude.com/docs/claude-tag/overview), [rotinas](/docs/pt/routines), o [aplicativo móvel Claude](/docs/pt/mobile) e o [aplicativo Desktop](/docs/pt/desktop). Cada uma dessas superfícies também pode rotear para um [ambiente auto-hospedado](/docs/pt/self-hosted-environments). [Disponibilidade e limitações](/docs/pt/self-hosted-environments#availability-and-limitations) cobre o que Claude ainda não pode usar quando uma sessão do Claude Tag é executada em um.15Os mesmos ambientes se aplicam em qualquer lugar onde você inicie uma sessão na nuvem: o [aplicativo Desktop](/docs/pt/desktop), o [aplicativo móvel Claude](/docs/pt/mobile), seu navegador em [claude.ai/code](https://claude.ai/code), o terminal com [`claude --cloud`](/docs/pt/claude-code-on-the-web#from-terminal-to-cloud), [rotinas](/docs/pt/routines) e [Claude Tag](https://claude.com/docs/claude-tag/overview). Cada uma dessas superfícies também pode rotear para um [ambiente auto-hospedado](/docs/pt/self-hosted-environments). [Disponibilidade e limitações](/docs/pt/self-hosted-environments#availability-and-limitations) cobre o que Claude ainda não pode usar quando uma sessão do Claude Tag é executada em um.

16 16 

17<Info>17<Info>

18 Sessões de [Remote Control](/docs/pt/remote-control) conectam as interfaces web e móvel a uma sessão em sua própria máquina, que usa a rede e os arquivos da sua máquina, não um ambiente na nuvem. Sessões de canal do Claude Tag usam ambientes no nível da organização apenas, seja [ambientes compartilhados](#organization-shared-environments) ou [ambientes auto-hospedados](/docs/pt/self-hosted-environments).18 Sessões de [Remote Control](/docs/pt/remote-control) conectam as interfaces web e móvel a uma sessão em sua própria máquina, que usa a rede e os arquivos da sua máquina, não um ambiente na nuvem. Sessões de canal do Claude Tag usam ambientes no nível da organização apenas, seja [ambientes compartilhados](#organization-shared-environments) ou [ambientes auto-hospedados](/docs/pt/self-hosted-environments).


35 35 

36Com apenas **Default** disponível, cada sessão é executada nele. Quando você tem mais de um ambiente, as sessões escolhem um por superfície:36Com apenas **Default** disponível, cada sessão é executada nele. Quando você tem mais de um ambiente, as sessões escolhem um por superfície:

37 37 

38* Na web, no aplicativo Desktop e no aplicativo móvel, as sessões usam o ambiente mostrado no [seletor](#configure-your-environment). Um [padrão da organização](#organization-shared-environments) definido por um Proprietário preenche a seleção quando você não escolheu um.38* No aplicativo Desktop, no aplicativo móvel e em claude.ai/code, as sessões que você inicia usam o ambiente mostrado no [seletor](#configure-your-environment). Um [padrão da organização](#organization-shared-environments) definido por um Proprietário preenche a seleção quando você não escolheu um. Threads em um [projeto](/docs/pt/claude-projects#project-settings-reference) usam o ambiente definido nas configurações do projeto.

39* A partir da CLI, Claude Code usa sua escolha [`/remote-env`](#select-an-environment-from-the-cli), ou volta para o ambiente hospedado pela Anthropic quando sua lista tem um, e caso contrário para o primeiro ambiente em sua lista que não é um ambiente bridge, uma entrada [Remote Control](/docs/pt/remote-control) registra para representar sua própria máquina em vez de um ambiente na nuvem. Para um [ambiente auto-hospedado](/docs/pt/self-hosted-environments), passar `--environment <environment-id>` com seu ID `ccpool_` [quando você despacha uma sessão](/docs/pt/self-hosted-environments-testing#run-the-test-loop) substitui a escolha `/remote-env` e o fallback para essa invocação. Claude Code rejeita IDs `env_` hospedados pela Anthropic passados para a flag, portanto use `/remote-env` para direcioná-los. A flag requer Claude Code v2.1.224 ou posterior.39* A partir da CLI, Claude Code usa sua escolha [`/remote-env`](#select-an-environment-from-the-cli), ou volta para o ambiente hospedado pela Anthropic quando sua lista tem um, e caso contrário para o primeiro ambiente em sua lista que não é um ambiente bridge, uma entrada [Remote Control](/docs/pt/remote-control) registra para representar sua própria máquina em vez de um ambiente na nuvem. Para um [ambiente auto-hospedado](/docs/pt/self-hosted-environments), passar `--environment <environment-id>` com seu ID `ccpool_` [quando você despacha uma sessão](/docs/pt/self-hosted-environments-testing#run-the-test-loop) substitui a escolha `/remote-env` e o fallback para essa invocação. Claude Code rejeita IDs `env_` hospedados pela Anthropic passados para a flag, portanto use `/remote-env` para direcioná-los. A flag requer Claude Code v2.1.224 ou posterior.

40 40 

41Configure um ambiente quando o padrão não for suficiente: quando Claude precisa alcançar domínios fora da [lista de permissões padrão](#default-allowed-domains), precisa de variáveis de ambiente definidas para suas sessões, ou precisa de dependências instaladas antes de começar a trabalhar.41Configure um ambiente quando o padrão não for suficiente: quando Claude precisa alcançar domínios fora da [lista de permissões padrão](#default-allowed-domains), precisa de variáveis de ambiente definidas para suas sessões, ou precisa de dependências instaladas antes de começar a trabalhar.


80 80 

81Cada sessão copia os valores do ambiente uma vez, na inicialização, em variáveis de ambiente ordinárias que qualquer comando que Claude execute pode ler. Como as sessões em execução não releem a configuração, editar ou adicionar variáveis afeta as sessões que você inicia depois; as sessões já em execução mantêm os valores com os quais começaram.81Cada sessão copia os valores do ambiente uma vez, na inicialização, em variáveis de ambiente ordinárias que qualquer comando que Claude execute pode ler. Como as sessões em execução não releem a configuração, editar ou adicionar variáveis afeta as sessões que você inicia depois; as sessões já em execução mantêm os valores com os quais começaram.

82 82 

83Claude Code na web também define algumas variáveis em si mesmo quando inicia uma sessão. Para [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/pt/claude-code-on-the-web#manage-context), o valor que Claude Code na web define substitui um que você adiciona aqui, portanto adicionar essa chave aqui não tem efeito.83Uma sessão na nuvem também define algumas variáveis em si mesma quando inicia. Para [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/pt/claude-code-on-the-web#manage-context), o valor que a sessão define substitui um que você adiciona aqui, portanto adicionar essa chave aqui não tem efeito.

84 84 

85Qualquer pessoa que use o ambiente pode ler os valores. Em planos Pro e Max, use uma [credencial de API](#add-api-credentials) em vez disso para uma chave que o proxy do agente pode anexar a uma solicitação. As [solicitações que nunca recebem uma credencial](#requests-that-never-get-the-credential) estão listadas lá.85Qualquer pessoa que use o ambiente pode ler os valores. Em planos Pro e Max, use uma [credencial de API](#add-api-credentials) em vez disso para uma chave que o proxy do agente pode anexar a uma solicitação. As [solicitações que nunca recebem uma credencial](#requests-that-never-get-the-credential) estão listadas lá.

86 86 


154 Selecione um ambiente a partir da CLI154 Selecione um ambiente a partir da CLI

155</h3>155</h3>

156 156 

157Execute `/remote-env` em seu terminal para escolher o ambiente padrão para sessões na nuvem que você cria a partir da CLI, como [`claude --cloud`](/docs/pt/claude-code-on-the-web#from-terminal-to-web). O comando abre um seletor de seus ambientes existentes e salva sua escolha na chave `remote.defaultEnvironmentId` em suas [configurações de usuário](/docs/pt/settings#where-settings-live), portanto se aplica em cada projeto em sua máquina até você alterar, a menos que a mesma chave seja definida em uma [camada de configurações](/docs/pt/settings#settings-precedence) de precedência mais alta, como as configurações do projeto de um repositório.157Execute `/remote-env` em seu terminal para escolher o ambiente padrão para sessões na nuvem que você cria a partir da CLI, como [`claude --cloud`](/docs/pt/claude-code-on-the-web#from-terminal-to-cloud). O comando abre um seletor de seus ambientes existentes e salva sua escolha na chave `remote.defaultEnvironmentId` em suas [configurações de usuário](/docs/pt/settings#where-settings-live), portanto se aplica em cada projeto em sua máquina até você alterar, a menos que a mesma chave seja definida em uma [camada de configurações](/docs/pt/settings#settings-precedence) de precedência mais alta, como as configurações do projeto de um repositório.

158 158 

159Um ID de [ambiente auto-hospedado](/docs/pt/self-hosted-environments), que tem a forma `ccpool_...`, segue uma regra de origem mais rigorosa. Veja [`remote.defaultEnvironmentId`](/docs/pt/settings-reference#remote-defaultenvironmentid) para as camadas de configurações que Claude Code honra isso.159Um ID de [ambiente auto-hospedado](/docs/pt/self-hosted-environments), que tem a forma `ccpool_...`, segue uma regra de origem mais rigorosa. Veja [`remote.defaultEnvironmentId`](/docs/pt/settings-reference#remote-defaultenvironmentid) para as camadas de configurações que Claude Code honra isso.

160 160 


201Para alterar o acesso à rede de um ambiente, [abra-o para edição](#configure-your-environment) e use o seletor **Network access** no diálogo. O ícone de nuvem que abre o seletor aparece nas superfícies do aplicativo listadas em [O ambiente Default](#the-default-environment) e no [editor de rotina](/docs/pt/routines#environments-and-network-access); os ambientes pessoais não têm uma página separada nas configurações de sua conta claude.ai.201Para alterar o acesso à rede de um ambiente, [abra-o para edição](#configure-your-environment) e use o seletor **Network access** no diálogo. O ícone de nuvem que abre o seletor aparece nas superfícies do aplicativo listadas em [O ambiente Default](#the-default-environment) e no [editor de rotina](/docs/pt/routines#environments-and-network-access); os ambientes pessoais não têm uma página separada nas configurações de sua conta claude.ai.

202 202 

203<Note>203<Note>

204 Os conectores MCP que você ativa em uma sessão ou rotina funcionam sem adicionar seus hosts aos **Allowed domains**, porque o tráfego do conector viaja através dos servidores da Anthropic em vez da rede da sessão. Você configura conectores por sessão ou por rotina; remova qualquer um que não precise para limitar quais ferramentas Claude pode alcançar. Isso depende do mesmo canal vinculado à Anthropic observado em [Segurança e isolamento](/docs/pt/claude-code-on-the-web#security-and-isolation).204 Os conectores MCP que você ativa em uma sessão ou rotina funcionam sem adicionar seus hosts aos **Allowed domains**, porque o tráfego do conector viaja através dos servidores da Anthropic em vez da rede da sessão. Isso depende do mesmo canal vinculado à Anthropic observado em [Segurança e isolamento](/docs/pt/claude-code-on-the-web#security-and-isolation). Desative qualquer conector que você não precise para limitar quais ferramentas Claude pode alcançar.

205</Note>205</Note>

206 206 

207<h3 id="access-levels">207<h3 id="access-levels">


243* **Sessões neste ambiente abrem artefatos públicos de outra organização**: Claude Code busca aqueles do host diretamente, portanto adicione-o a esta lista.243* **Sessões neste ambiente abrem artefatos públicos de outra organização**: Claude Code busca aqueles do host diretamente, portanto adicione-o a esta lista.

244* **Você está configurando a CLI local ou um executor auto-hospedado**: mantenha o host nessa lista de permissões. Veja [requisitos de acesso à rede](/docs/pt/network-config#network-access-requirements) e os [requisitos de rede](/docs/pt/self-hosted-environments-deploy#network-requirements) auto-hospedados.244* **Você está configurando a CLI local ou um executor auto-hospedado**: mantenha o host nessa lista de permissões. Veja [requisitos de acesso à rede](/docs/pt/network-config#network-access-requirements) e os [requisitos de rede](/docs/pt/self-hosted-environments-deploy#network-requirements) auto-hospedados.

245 245 

246Cada ambiente tem sua própria lista de domínios permitidos; não há uma lista de permissões no nível da organização que os administradores possam enviar para os ambientes de cada membro. As [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) ainda se aplicam dentro de sessões na nuvem, mas nenhuma delas adiciona domínios à lista de permissões de rede do ambiente.246Cada ambiente tem sua própria lista de domínios permitidos; não há uma lista de permissões no nível da organização que os administradores possam enviar para os ambientes de cada membro. As [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) ainda se aplicam dentro de sessões na nuvem, mas nenhuma delas adiciona domínios à lista de permissões de rede do ambiente. Para dar a um time uma lista padrão, um Owner pode criar um [ambiente compartilhado pela organização](#organization-shared-environments) com acesso à rede **Custom** e essa lista.

247 247 

248<h3 id="github-proxy">248<h3 id="github-proxy">

249 Proxy do GitHub249 Proxy do GitHub


289| | Disponível em sessões na nuvem | Por quê |289| | Disponível em sessões na nuvem | Por quê |

290| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |290| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

291| Seu `CLAUDE.md` do repositório | Sim | Parte do clone |291| Seu `CLAUDE.md` do repositório | Sim | Parte do clone |

292| Seus hooks `.claude/settings.json` do repositório | Sim | Parte do clone |292| Seus hooks `.claude/settings.json` do repositório e regras de permissão | Sim, em uma sessão com um repositório | Parte do clone. Uma sessão com vários repositórios, incluindo um thread de [projeto](/docs/pt/claude-projects#what-threads-pick-up-from-your-repositories), começa acima dos clones e não os lê |

293| Seus servidores MCP `.mcp.json` do repositório | Sim | Parte do clone |293| Seus servidores MCP `.mcp.json` do repositório | Sim, em uma sessão com um repositório | Parte do clone, encontrado a partir do diretório de trabalho da sessão |

294| Seu `.claude/rules/` do repositório | Sim | Parte do clone |294| Seu `.claude/rules/` do repositório | Sim | Parte do clone |

295| Seu `.claude/skills/`, `.claude/agents/`, `.claude/commands/` do repositório | Sim | Parte do clone |295| Seu `.claude/skills/`, `.claude/agents/`, `.claude/commands/` do repositório | Sim | Parte do clone |

296| Plugins declarados em `.claude/settings.json` | Sim | Instalados no início da sessão a partir do [marketplace](/docs/pt/plugin-marketplaces) que você declarou. Requer acesso à rede para alcançar a fonte do marketplace |296| Plugins declarados em `.claude/settings.json` | Sim | Instalados no início da sessão a partir do [marketplace](/docs/pt/plugin-marketplaces) que você declarou. Requer acesso à rede para alcançar a fonte do marketplace |


298| Seu `~/.claude/CLAUDE.md` do usuário | Não | Vive em sua máquina, não no repositório |298| Seu `~/.claude/CLAUDE.md` do usuário | Não | Vive em sua máquina, não no repositório |

299| Seu `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` do usuário | Não | Vivem em sua máquina, não no repositório. Confirme-os no diretório `.claude/` do repositório em vez disso. As sessões na nuvem carregam automaticamente skills que você ativa em claude.ai |299| Seu `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` do usuário | Não | Vivem em sua máquina, não no repositório. Confirme-os no diretório `.claude/` do repositório em vez disso. As sessões na nuvem carregam automaticamente skills que você ativa em claude.ai |

300| Plugins ativados apenas em suas configurações de usuário | Não | O `enabledPlugins` com escopo de usuário vive em `~/.claude/settings.json`. Declare-os em `.claude/settings.json` do repositório em vez disso, ou ative-os para sua conta claude.ai para que Claude Code os carregue como [plugins sincronizados](/docs/pt/plugins-reference#synced-plugins) |300| Plugins ativados apenas em suas configurações de usuário | Não | O `enabledPlugins` com escopo de usuário vive em `~/.claude/settings.json`. Declare-os em `.claude/settings.json` do repositório em vez disso, ou ative-os para sua conta claude.ai para que Claude Code os carregue como [plugins sincronizados](/docs/pt/plugins-reference#synced-plugins) |

301| Servidores MCP que você adicionou com `claude mcp add` no escopo local padrão ou no escopo de usuário | Não | Aqueles escrevem em `~/.claude.json` em sua máquina, não no repositório. Adicione o servidor com `claude mcp add --scope project`, que escreve o [`.mcp.json`](/docs/pt/mcp#project-scope) do repositório, e confirme esse arquivo |301| Servidores MCP que você adicionou com `claude mcp add` no escopo local padrão ou no escopo de usuário | Não | Aqueles escrevem em `~/.claude.json` em sua máquina, não no repositório. Adicione o servidor com `claude mcp add --scope project`, que escreve o [`.mcp.json`](/docs/pt/mcp#project-scope) do repositório, e confirme esse arquivo. Uma sessão com um repositório o carrega |

302| Variáveis de transporte em seu bloco `env` `.claude/settings.json` do repositório, como `NODE_EXTRA_CA_CERTS` e as [variáveis de certificado de cliente mTLS](/docs/pt/network-config#mtls-authentication) | Não | O ambiente de hospedagem gerencia a conexão de API da sessão, portanto Claude Code ignora essas chaves e anota cada chave ignorada no log de depuração da sessão |302| Variáveis de transporte em seu bloco `env` `.claude/settings.json` do repositório, como `NODE_EXTRA_CA_CERTS` e as [variáveis de certificado de cliente mTLS](/docs/pt/network-config#mtls-authentication) | Não | O ambiente de hospedagem gerencia a conexão de API da sessão, portanto Claude Code ignora essas chaves e anota cada chave ignorada no log de depuração da sessão |

303| Chaves de API e tokens para serviços que Claude chama | Em planos Pro e Max, como [credenciais de API](#add-api-credentials) | Você adiciona a chave uma vez no ambiente e o proxy do agente a anexa às solicitações para os hosts que você lista. Uma chave que o proxy do agente [não pode anexar](#requests-that-never-get-the-credential), ou qualquer chave em um plano Team ou Enterprise, fica em uma variável de ambiente |303| Chaves de API e tokens para serviços que Claude chama | Em planos Pro e Max, como [credenciais de API](#add-api-credentials) | Você adiciona a chave uma vez no ambiente e o proxy do agente a anexa às solicitações para os hosts que você lista. Uma chave que o proxy do agente [não pode anexar](#requests-that-never-get-the-credential), ou qualquer chave em um plano Team ou Enterprise, fica em uma variável de ambiente |

304| Autenticação interativa como AWS SSO | Não | Não suportado. SSO requer login baseado em navegador que não pode ser executado em uma sessão na nuvem |304| Autenticação interativa como AWS SSO | Não | Não suportado. SSO requer login baseado em navegador que não pode ser executado em uma sessão na nuvem |


329 329 

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

331 331 

332Para obter as versões da maioria das ferramentas nesta tabela, peça a Claude para executar `check-tools` em uma sessão na nuvem. É um comando shell instalado na VM da sessão, não um comando slash; você pede a Claude porque [Claude executa todos os comandos da VM para você](#run-tests-start-services-and-add-packages). Para uma ferramenta que não relata, como Ruby, PHP, bun, PostgreSQL ou Redis, peça a Claude para executar o comando de versão próprio da ferramenta, por exemplo `psql --version`.332Para obter as versões da maioria das ferramentas nesta tabela, peça a Claude para executar `check-tools` em uma sessão na nuvem. É um comando shell instalado na VM da sessão, não um comando que você digita com `/`; você pede a Claude porque [Claude executa todos os comandos da VM para você](#run-tests-start-services-and-add-packages). Para uma ferramenta que não relata, como Ruby, PHP, bun, PostgreSQL ou Redis, peça a Claude para executar o comando de versão próprio da ferramenta, por exemplo `psql --version`.

333 333 

334As versões do Node.js estão instaladas em `/opt/node20`, `/opt/node21` e `/opt/node22`, com 22 em `PATH` por padrão. Para trabalhar com uma versão diferente, peça a Claude para prepender o diretório `bin` dessa versão, como `/opt/node20/bin`, a `PATH`.334As versões do Node.js estão instaladas em `/opt/node20`, `/opt/node21` e `/opt/node22`, com 22 em `PATH` por padrão. Para trabalhar com uma versão diferente, peça a Claude para prepender o diretório `bin` dessa versão, como `/opt/node20/bin`, a `PATH`.

335 335 


358 358 

359Cada sessão na nuvem tem uma URL de transcrição em claude.ai, e a sessão pode ler seu próprio ID a partir da variável de ambiente `CLAUDE_CODE_REMOTE_SESSION_ID`. Use isso para colocar um link rastreável em corpos de PR, mensagens de commit, posts do Slack ou relatórios gerados para que um revisor possa abrir a execução que os produziu.359Cada sessão na nuvem tem uma URL de transcrição em claude.ai, e a sessão pode ler seu próprio ID a partir da variável de ambiente `CLAUDE_CODE_REMOTE_SESSION_ID`. Use isso para colocar um link rastreável em corpos de PR, mensagens de commit, posts do Slack ou relatórios gerados para que um revisor possa abrir a execução que os produziu.

360 360 

361Os commits que Claude cria em uma sessão na nuvem incluem um trailer git `Claude-Session: <url>`, e os corpos de PR incluem a URL da sessão em sua própria linha. Isso requer v2.1.179 ou posterior. Para omitir o trailer e o link do corpo de PR, defina [`attribution.sessionUrl`](/docs/pt/settings-reference#attribution-sessionurl) como `false`. A configuração requer v2.1.182 ou posterior.361Os commits que Claude cria em uma sessão na nuvem incluem um trailer git `Claude-Session: <url>`, e os corpos de PR incluem a URL da sessão em sua própria linha. Para omitir o trailer e o link do corpo de PR, defina [`attribution.sessionUrl`](/docs/pt/settings-reference#attribution-sessionurl) como `false`.

362 362 

363Para incluir o link da sessão em algo diferente de um commit ou PR, como uma mensagem do Slack que Claude posta ou um arquivo de relatório que ele escreve, peça a Claude para executar o seguinte comando e use sua saída. O comando converte o prefixo `cse_` no valor da variável de ambiente para o prefixo `session_` que a URL de transcrição espera:363Para incluir o link da sessão em algo diferente de um commit ou PR, como uma mensagem do Slack que Claude posta ou um arquivo de relatório que ele escreve, peça a Claude para executar o seguinte comando e use sua saída. O comando converte o prefixo `cse_` no valor da variável de ambiente para o prefixo `session_` que a URL de transcrição espera:

364 364 


524 524 

525Os hooks SessionStart se comportam da mesma forma na nuvem que localmente, com essas ressalvas:525Os hooks SessionStart se comportam da mesma forma na nuvem que localmente, com essas ressalvas:

526 526 

527* **Sem escopo apenas na nuvem**: os hooks são executados em sessões locais e na nuvem. Para pular a execução local, verifique a variável de ambiente `CLAUDE_CODE_REMOTE` conforme mostrado acima.527* **Um repositório por sessão**: uma sessão com vários repositórios não carrega hooks de nenhum `.claude/settings.json` do repositório, portanto um hook SessionStart que você define lá não é executado. Instale dependências para essas sessões com um [script de configuração](#setup-scripts) em vez disso.

528* **Sem escopo apenas na nuvem**: os hooks são executados em sessões locais e na nuvem. Para pular a execução local, saia cedo a menos que a variável de ambiente `CLAUDE_CODE_REMOTE` seja `true`, da forma que o [script de instalação de dependência](#install-dependencies-with-a-sessionstart-hook) faz.

528* **Requer acesso à rede**: os comandos de instalação precisam alcançar registros de pacotes. Se seu ambiente usa acesso à rede **None**, esses hooks falham. A [lista de permissões padrão](#default-allowed-domains) em **Trusted** cobre npm, PyPI, RubyGems e crates.io.529* **Requer acesso à rede**: os comandos de instalação precisam alcançar registros de pacotes. Se seu ambiente usa acesso à rede **None**, esses hooks falham. A [lista de permissões padrão](#default-allowed-domains) em **Trusted** cobre npm, PyPI, RubyGems e crates.io.

529* **Compatibilidade de proxy**: em ambientes hospedados pela Anthropic, todo o tráfego de saída passa por um [proxy de segurança](#security-proxy), e alguns gerenciadores de pacotes não funcionam corretamente com isso; Bun é um exemplo conhecido. Em um [ambiente auto-hospedado](/docs/pt/self-hosted-environments-deploy#default-deny-egress), o tráfego de saída vai através de seu próprio limite de rede em vez disso.530* **Compatibilidade de proxy**: em ambientes hospedados pela Anthropic, todo o tráfego de saída passa por um [proxy de segurança](#security-proxy), e alguns gerenciadores de pacotes não funcionam corretamente com isso; Bun é um exemplo conhecido. Em um [ambiente auto-hospedado](/docs/pt/self-hosted-environments-deploy#default-deny-egress), o tráfego de saída vai através de seu próprio limite de rede em vez disso.

530* **Adiciona latência de inicialização**: os hooks são executados cada vez que uma sessão é iniciada ou retomada, ao contrário dos scripts de configuração que se beneficiam do [cache do ambiente](#environment-caching). Mantenha os scripts de instalação rápidos verificando se as dependências já estão presentes antes de reinstalar.531* **Adiciona latência de inicialização**: os hooks são executados cada vez que uma sessão é iniciada ou retomada, ao contrário dos scripts de configuração que se beneficiam do [cache do ambiente](#environment-caching). Mantenha os scripts de instalação rápidos verificando se as dependências já estão presentes antes de reinstalar.


793 Recursos relacionados794 Recursos relacionados

794</h2>795</h2>

795 796 

796* [Claude Code na web](/docs/pt/claude-code-on-the-web): inicie, gerencie e compartilhe sessões na nuvem797* [Referência de sessões na nuvem](/docs/pt/claude-code-on-the-web): inicie, gerencie e compartilhe sessões na nuvem

797* [Guia de início rápido da web](/docs/pt/web-quickstart): conecte GitHub e inicie sua primeira sessão na nuvem798* [Guia de início rápido de sessões na nuvem](/docs/pt/web-quickstart): conecte GitHub e inicie sua primeira sessão na nuvem

798* [Claude Tag](https://claude.com/docs/claude-tag/overview): as sessões que Claude inicia do Slack são executadas nos mesmos ambientes799* [Claude Tag](https://claude.com/docs/claude-tag/overview): as sessões que Claude inicia do Slack são executadas nos mesmos ambientes

799* [Rotinas](/docs/pt/routines): as execuções agendadas usam os mesmos ambientes e níveis de acesso à rede800* [Rotinas](/docs/pt/routines): as execuções agendadas usam os mesmos ambientes e níveis de acesso à rede

800* [Remote Control](/docs/pt/remote-control): execute sessões na rede e nos arquivos de sua própria máquina em vez disso801* [Remote Control](/docs/pt/remote-control): execute sessões na rede e nos arquivos de sua própria máquina em vez disso

code-review.md +4 −2

Details

58 58 

59Responder a um comentário inline não solicita que Claude responda ou atualize o PR. Para agir em uma descoberta, corrija o código e faça push. Se o PR estiver inscrito em revisões acionadas por push, a próxima execução resolve a thread quando o problema for corrigido. Para solicitar uma revisão nova sem fazer push, comente `@claude review` como um [comentário de PR de nível superior](#manually-trigger-reviews).59Responder a um comentário inline não solicita que Claude responda ou atualize o PR. Para agir em uma descoberta, corrija o código e faça push. Se o PR estiver inscrito em revisões acionadas por push, a próxima execução resolve a thread quando o problema for corrigido. Para solicitar uma revisão nova sem fazer push, comente `@claude review` como um [comentário de PR de nível superior](#manually-trigger-reviews).

60 60 

61Para descartar uma descoberta sem uma alteração de código, resolva sua thread; responder não a descarta.

62 

61<h3 id="check-run-output">63<h3 id="check-run-output">

62 Saída de execução de verificação64 Saída de execução de verificação

63</h3>65</h3>


195 197 

196`REVIEW.md` é um arquivo na raiz do seu repositório que personaliza Code Review para seu repo. Os agentes no pipeline de revisão que encontram e verificam descobertas recebem seu conteúdo como instruções de revisão do seu repositório, ao lado da orientação de revisão padrão do Code Review, e os agentes que classificam e relatam descobertas o consultam antes de definir severidade e escrever a revisão.198`REVIEW.md` é um arquivo na raiz do seu repositório que personaliza Code Review para seu repo. Os agentes no pipeline de revisão que encontram e verificam descobertas recebem seu conteúdo como instruções de revisão do seu repositório, ao lado da orientação de revisão padrão do Code Review, e os agentes que classificam e relatam descobertas o consultam antes de definir severidade e escrever a revisão.

197 199 

198Os agentes leem o texto do arquivo como está, portanto `REVIEW.md` é instruções simples: a [sintaxe `@` import](/docs/pt/memory#import-additional-files) não é expandida e os arquivos referenciados não são lidos junto com ele. Coloque as regras que você deseja aplicadas diretamente no arquivo.200Coloque as regras que você deseja aplicadas diretamente em `REVIEW.md`.

199 201 

200<h4 id="what-you-can-tune">202<h4 id="what-you-can-tune">

201 O que você pode ajustar203 O que você pode ajustar


357 </Step>359 </Step>

358</Steps>360</Steps>

359 361 

360Claude relata as descobertas como texto na resposta em ambas essas execuções, mesmo quando um aplicativo host solicita a lista de descobertas descrita abaixo:362Claude relata as descobertas como texto na resposta em ambas essas execuções, mesmo quando um aplicativo host solicita uma lista de descobertas:

361 363 

362* Em uma sessão de terminal, onde `/code-review` executa a revisão como um [subagent bifurcado](/docs/pt/skills#run-skills-in-a-subagent)364* Em uma sessão de terminal, onde `/code-review` executa a revisão como um [subagent bifurcado](/docs/pt/skills#run-skills-in-a-subagent)

363* Em uma execução `-p` com saída de texto ou JSON365* Em uma execução `-p` com saída de texto ou JSON

commands.md +4 −3

Details

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

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

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

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

76| `/context [all]` | Visualize o uso de contexto atual como uma grade colorida. Mostra sugestões de otimização para ferramentas pesadas em contexto, inchaço de memória e avisos de capacidade. Quando a conversa excede a janela de contexto, a saída inclui um [aviso](/docs/pt/errors#context-exceeds-the-token-limit) mostrando o quão longe você está do limite e qual comando libera espaço. Em [modo tela cheia](/docs/pt/fullscreen), `/context` recolhe o detalhamento por item para manter a grade visível. Passe `all` para expandi-lo |76| `/context [all]` | Visualize o uso de contexto atual como uma grade colorida. Mostra sugestões de otimização para ferramentas pesadas em contexto, inchaço de memória e avisos de capacidade. Quando a conversa excede a janela de contexto, a saída inclui um [aviso](/docs/pt/errors#context-exceeds-the-token-limit) mostrando o quão longe você está do limite e qual comando libera espaço. Em [modo tela cheia](/docs/pt/fullscreen), `/context` recolhe o detalhamento por item para manter a grade visível. Passe `all` para expandi-lo |

77| `/copy [N]` | Copie a última resposta do assistente para a área de transferência. Passe um número `N` para copiar a resposta N-ésima mais recente: `/copy 2` copia a segunda mais recente. Quando blocos de código estão presentes, mostra um seletor interativo para selecionar blocos individuais ou a resposta completa. Pressione `w` no seletor para escrever a seleção em um arquivo em vez da área de transferência, o que é útil via SSH |77| `/copy [N]` | Copie a última resposta do assistente para a área de transferência. Passe um número `N` para copiar a resposta N-ésima mais recente: `/copy 2` copia a segunda mais recente. Quando blocos de código estão presentes, mostra um seletor interativo para selecionar blocos individuais ou a resposta completa. Pressione `w` no seletor para escrever a seleção em um arquivo em vez da área de transferência, o que é útil via SSH |

78| `/cost` | Alias para `/usage` |78| `/cost` | Alias para `/usage` |


112| `/memory` | Edite arquivos `CLAUDE.md`, ative ou desative [memória automática](/docs/pt/memory#auto-memory) e veja entradas de memória automática |112| `/memory` | Edite arquivos `CLAUDE.md`, ative ou desative [memória automática](/docs/pt/memory#auto-memory) e veja entradas de memória automática |

113| `/mobile` | Mostre código QR para baixar o app móvel Claude. Aliases: `/ios`, `/android` |113| `/mobile` | Mostre código QR para baixar o app móvel Claude. Aliases: `/ios`, `/android` |

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](/docs/pt/model-config#adjust-effort-level). Sem argumento, abre um seletor; pressione `s` em uma linha para mudar apenas para a sessão atual. Consulte [quando Claude Code pede que você confirme a mudança](/docs/pt/prompt-caching#switching-models). Uma vez que você confirme a mudança, se Claude Code pedir, Claude Code aplica a mudança sem esperar que a resposta atual termine. Antes da v2.1.242, Claude Code decidiu de um sinalizador de recurso que buscou do Anthropic se executaria o comando no meio da volta ou o enfileiraria até que a volta terminasse, e sempre o enfileirava em uma sessão que não [busca sinalizadores de recurso](/docs/pt/env-vars#features-that-need-feature-flag-fetching), como em um [provedor de terceiros](/docs/pt/third-party-integrations). Também disponível em modo não interativo (`-p`) com um argumento de modelo em vez do seletor, onde se aplica apenas à sessão atual e não é salvo como seu padrão; requer Claude Code 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](/docs/pt/model-config#adjust-effort-level). Sem argumento, abre um seletor; pressione `s` em uma linha para mudar apenas para a sessão atual. Consulte [quando Claude Code pede que você confirme a mudança](/docs/pt/prompt-caching#switching-models). Uma vez que você confirme a mudança, se Claude Code pedir, Claude Code aplica a mudança sem esperar que a resposta atual termine. Antes da v2.1.242, Claude Code decidiu de um sinalizador de recurso que buscou do Anthropic se executaria o comando no meio da volta ou o enfileiraria até que a volta terminasse, e sempre o enfileirava em uma sessão que não [busca sinalizadores de recurso](/docs/pt/env-vars#features-that-need-feature-flag-fetching), como em um [provedor de terceiros](/docs/pt/third-party-integrations). Também disponível em modo não interativo (`-p`) com um argumento de modelo em vez do seletor, onde se aplica apenas à sessão atual e não é salvo como seu padrão; requer Claude Code v2.1.205 ou posterior |

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

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

116| `/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 de modo automático recentes](/docs/pt/auto-mode-config#review-denials). Você também pode visualizar e editar [regras do classificador de modo automático](/docs/pt/auto-mode-config#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 na mesma volta. Antes da v2.1.234, Claude Code enfileirava o comando até que a volta 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 de modo automático recentes](/docs/pt/auto-mode-config#review-denials). Você também pode visualizar e editar [regras do classificador de modo automático](/docs/pt/auto-mode-config#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 na mesma volta. Antes da v2.1.234, Claude Code enfileirava o comando até que a volta terminasse. Alias: `/allowed-tools` |

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


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

127| `/reload-skills` | Rescaneie diretórios [skill](/docs/pt/skills) e comando para que skills adicionadas ou alteradas no disco durante a sessão fiquem disponíveis sem reiniciar. Relata quantas skills estão disponíveis e quantas foram adicionadas ou removidas |128| `/reload-skills` | Rescaneie diretórios [skill](/docs/pt/skills) e comando para que skills adicionadas ou alteradas no disco durante a sessão fiquem disponíveis sem reiniciar. Relata quantas skills estão disponíveis e quantas foram adicionadas ou removidas |

128| `/remote-control` | Disponibilize esta sessão para [Remote Control](/docs/pt/remote-control) de claude.ai. Executá-lo enquanto desconectado imprime que Remote Control requer uma assinatura claude.ai e diz como conectar; antes da v2.1.206 relatava `Unknown command: /remote-control`. Alias: `/rc` |129| `/remote-control` | Disponibilize esta sessão para [Remote Control](/docs/pt/remote-control) de claude.ai. Executá-lo enquanto desconectado imprime que Remote Control requer uma assinatura claude.ai e diz como conectar; antes da v2.1.206 relatava `Unknown command: /remote-control`. Alias: `/rc` |

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

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

131| `/resume [session]` | Retome uma conversa por ID ou nome, ou abra o seletor de sessão. [Sessões de fundo](/docs/pt/agent-view) aparecem no seletor marcadas com `bg`; uma que ainda está em execução não pode ser retomada aqui, então anexe-a de `claude agents` ou pare-a lá primeiro. Alias: `/continue` |132| `/resume [session]` | Retome uma conversa por ID ou nome, ou abra o seletor de sessão. [Sessões de fundo](/docs/pt/agent-view) aparecem no seletor marcadas com `bg`; uma que ainda está em execução não pode ser retomada aqui, então anexe-a de `claude agents` ou pare-a lá primeiro. Alias: `/continue` |

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


150| `/subtask <task>` | Inicie um [subagente bifurcado](/docs/pt/sub-agents#fork-the-current-conversation): um subagente de fundo que herda a conversa completa e trabalha na tarefa enquanto você continua trabalhando. Seu resultado retorna para esta conversa quando termina. Para copiar a conversa em uma sessão de fundo separada em vez disso, use `/fork`. Requer Claude Code v2.1.212 ou posterior; na v2.1.161 através v2.1.211 este comando é `/fork`. Quando [agent view está desativado](/docs/pt/agent-view#turn-off-agent-view), `/subtask` não está disponível e `/fork` mantém o comportamento de subagente bifurcado |151| `/subtask <task>` | Inicie um [subagente bifurcado](/docs/pt/sub-agents#fork-the-current-conversation): um subagente de fundo que herda a conversa completa e trabalha na tarefa enquanto você continua trabalhando. Seu resultado retorna para esta conversa quando termina. Para copiar a conversa em uma sessão de fundo separada em vez disso, use `/fork`. Requer Claude Code v2.1.212 ou posterior; na v2.1.161 através v2.1.211 este comando é `/fork`. Quando [agent view está desativado](/docs/pt/agent-view#turn-off-agent-view), `/subtask` não está disponível e `/fork` mantém o comportamento de subagente bifurcado |

151| `/tasks` | Veja e gerencie trabalho de fundo na sessão atual, incluindo subagentes que terminaram. Também disponível como `/bashes` |152| `/tasks` | Veja e gerencie trabalho de fundo na sessão atual, incluindo subagentes que terminaram. Também disponível como `/bashes` |

152| `/team-onboarding` | Gere um guia de integração de equipe a partir do seu histórico de uso Claude Code. Claude analisa suas sessões, comandos e uso de servidor MCP dos últimos 30 dias e produz um guia markdown que um colega pode colar como primeira mensagem para se configurar rapidamente. Para assinantes claude.ai em planos Pro, Max, Team e Enterprise, também retorna um link de compartilhamento que colegas podem abrir diretamente em Claude Code |153| `/team-onboarding` | Gere um guia de integração de equipe a partir do seu histórico de uso Claude Code. Claude analisa suas sessões, comandos e uso de servidor MCP dos últimos 30 dias e produz um guia markdown que um colega pode colar como primeira mensagem para se configurar rapidamente. Para assinantes claude.ai em planos Pro, Max, Team e Enterprise, também retorna um link de compartilhamento que colegas podem abrir diretamente em Claude Code |

153| `/teleport` | Puxe uma sessão [Claude Code na web](/docs/pt/claude-code-on-the-web#from-web-to-terminal) para este terminal. Abre um seletor, depois busca o branch e conversa. Também disponível como `/tp`. Requer uma assinatura claude.ai |154| `/teleport` | Puxe uma sessão [Claude Code na web](/docs/pt/claude-code-on-the-web#from-cloud-to-terminal) para este terminal. Abre um seletor, depois busca o branch e conversa. Também disponível como `/tp`. Requer uma assinatura claude.ai |

154| `/terminal-setup` | [Instale um atalho de teclado Shift+Enter para novas linhas](/docs/pt/terminal-config#enter-multiline-prompts) em VS Code, Cursor, Devin Desktop, Alacritty ou Zed. No Apple Terminal, [ative Option+Enter para novas linhas e desative o sino audível](/docs/pt/terminal-config#enable-option-key-shortcuts-on-macos) em vez disso. No iTerm2, [ative acesso à área de transferência para que `/copy` funcione](/docs/pt/terminal-config#enable-option-key-shortcuts-on-macos) |155| `/terminal-setup` | [Instale um atalho de teclado Shift+Enter para novas linhas](/docs/pt/terminal-config#enter-multiline-prompts) em VS Code, Cursor, Devin Desktop, Alacritty ou Zed. No Apple Terminal, [ative Option+Enter para novas linhas e desative o sino audível](/docs/pt/terminal-config#enable-option-key-shortcuts-on-macos) em vez disso. No iTerm2, [ative acesso à área de transferência para que `/copy` funcione](/docs/pt/terminal-config#enable-option-key-shortcuts-on-macos) |

155| `/theme` | Mude o tema de cor. Inclui uma opção `auto` que corresponde ao fundo claro ou escuro do seu terminal, variantes claras e escuras, temas acessíveis para daltônicos (daltonizados), temas ANSI que usam a paleta de cores do seu terminal e qualquer [tema personalizado](/docs/pt/terminal-config#create-a-custom-theme) de `~/.claude/themes/` ou plugins. Selecione **New custom theme…** para criar um |156| `/theme` | Mude o tema de cor. Inclui uma opção `auto` que corresponde ao fundo claro ou escuro do seu terminal, variantes claras e escuras, temas acessíveis para daltônicos (daltonizados), temas ANSI que usam a paleta de cores do seu terminal e qualquer [tema personalizado](/docs/pt/terminal-config#create-a-custom-theme) de `~/.claude/themes/` ou plugins. Selecione **New custom theme…** para criar um |

156| `/tui [default\|fullscreen]` | Defina o renderizador de UI de terminal e relance nele com sua conversa intacta. `fullscreen` ativa o [renderizador alt-screen sem cintilação](/docs/pt/fullscreen). Sem argumento, imprime o renderizador ativo |157| `/tui [default\|fullscreen]` | Defina o renderizador de UI de terminal e relance nele com sua conversa intacta. `fullscreen` ativa o [renderizador alt-screen sem cintilação](/docs/pt/fullscreen). Sem argumento, imprime o renderizador ativo |

Details

1586 1586 

1587A sessão percorre um fluxo realista com contagens de tokens representativas:1587A sessão percorre um fluxo realista com contagens de tokens representativas:

1588 1588 

1589* **Antes de você digitar qualquer coisa**: CLAUDE.md, memória automática, nomes de ferramentas MCP e descrições de skills são todos carregados no contexto. Sua própria configuração pode adicionar mais aqui, como um [estilo de saída](/docs/pt/output-styles) ou texto de [`--append-system-prompt`](/docs/pt/cli-reference).1589* **Antes de você digitar qualquer coisa**: CLAUDE.md, memória automática, nomes de ferramentas MCP e descrições de skills são todos carregados no contexto. [Arquivos AGENTS.md](/docs/pt/memory#agents-md) também podem ser carregados, por conta própria ou junto com CLAUDE.md. Sua própria configuração pode adicionar mais aqui, como um [estilo de saída](/docs/pt/output-styles) ou texto de [`--append-system-prompt`](/docs/pt/cli-reference).

1590* **Conforme Claude trabalha**: cada leitura de arquivo adiciona ao contexto, [regras com escopo de caminho](/docs/pt/memory#path-specific-rules) são carregadas automaticamente junto com arquivos correspondentes, e um [hook PostToolUse](/docs/pt/hooks-guide) é acionado após cada edição.1590* **Conforme Claude trabalha**: cada leitura de arquivo adiciona ao contexto, [regras com escopo de caminho](/docs/pt/memory#path-specific-rules) são carregadas automaticamente junto com arquivos correspondentes, e um [hook PostToolUse](/docs/pt/hooks-guide) é acionado após cada edição.

1591* **O prompt de acompanhamento**: um [subagent](/docs/pt/sub-agents) lida com a pesquisa em sua própria janela de contexto separada, então as leituras de arquivo grandes ficam fora da sua. Apenas o resumo e um pequeno trailer de metadados voltam.1591* **O prompt de acompanhamento**: um [subagent](/docs/pt/sub-agents) lida com a pesquisa em sua própria janela de contexto separada, então as leituras de arquivo grandes ficam fora da sua. Apenas o resumo e um pequeno trailer de metadados voltam.

1592* **No final**: `/compact` substitui a conversa por um resumo estruturado. A maioria do conteúdo de inicialização é recarregada automaticamente; a tabela abaixo mostra o que acontece com cada mecanismo.1592* **No final**: `/compact` substitui a conversa por um resumo estruturado. A maioria do conteúdo de inicialização é recarregada automaticamente; a tabela abaixo mostra o que acontece com cada mecanismo.


1598Quando uma sessão longa é compactada, Claude Code resume o histórico de conversa para caber na janela de contexto. A partir da v2.1.198, a solicitação de resumo herda a configuração de [extended thinking](/docs/pt/model-config#extended-thinking) da sua sessão, portanto ela raciocina com o thinking habilitado quando sua sessão o tem habilitado e permanece desativado caso contrário. O thinking afeta apenas como o resumo é produzido; suas configurações de sessão permanecem inalteradas depois. O que acontece com cada tipo de conteúdo depende de como foi carregado:1598Quando uma sessão longa é compactada, Claude Code resume o histórico de conversa para caber na janela de contexto. A partir da v2.1.198, a solicitação de resumo herda a configuração de [extended thinking](/docs/pt/model-config#extended-thinking) da sua sessão, portanto ela raciocina com o thinking habilitado quando sua sessão o tem habilitado e permanece desativado caso contrário. O thinking afeta apenas como o resumo é produzido; suas configurações de sessão permanecem inalteradas depois. O que acontece com cada tipo de conteúdo depende de como foi carregado:

1599 1599 

1600| Mecanismo | Após compactação |1600| Mecanismo | Após compactação |

1601| :---------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------- |1601| :------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------- |

1602| Prompt do sistema e estilo de saída | Ambos ainda se aplicam |1602| Prompt do sistema e estilo de saída | Ambos ainda se aplicam |

1603| CLAUDE.md na raiz do projeto e regras sem escopo | Re-injetado do disco |1603| CLAUDE.md na raiz do projeto e regras sem escopo | Re-injetado do disco |

1604| Memória automática | Re-injetado do disco |1604| Memória automática | Re-injetado do disco |


1607| CLAUDE.md aninhado em subdiretórios | Claude Code as recarrega conforme Claude lê arquivos nesse subdiretório |1607| CLAUDE.md aninhado em subdiretórios | Claude Code as recarrega conforme Claude lê arquivos nesse subdiretório |

1608| Arquivos que Claude leu ou editou | Claude Code relê até cinco, os mais recentemente modificados primeiro |1608| Arquivos que Claude leu ou editou | Claude Code relê até cinco, os mais recentemente modificados primeiro |

1609| Corpos de skills invocados | Re-injetado, limitado a 5.000 tokens por skill e 25.000 tokens no total; os mais antigos são descartados primeiro |1609| Corpos de skills invocados | Re-injetado, limitado a 5.000 tokens por skill e 25.000 tokens no total; os mais antigos são descartados primeiro |

1610| [Background commands](/docs/pt/interactive-mode#background-bash-commands) e background [subagents](/docs/pt/sub-agents#run-subagents-in-foreground-or-background) | Continuam em execução. Claude Code lembra Claude quais ainda estão em execução para que ele não inicie uma duplicata |

1610| Contexto que hooks adicionaram anteriormente | Resumido junto com o resto da conversa |1611| Contexto que hooks adicionaram anteriormente | Resumido junto com o resto da conversa |

1611| [SessionStart hooks](/docs/pt/hooks-guide#re-inject-context-after-compaction) que correspondem à fonte `compact` | Claude Code os executa e adiciona sua saída ao contexto compactado |1612| [SessionStart hooks](/docs/pt/hooks-guide#re-inject-context-after-compaction) que correspondem à fonte `compact` | Claude Code os executa e adiciona sua saída ao contexto compactado |

1612 1613 

1613Regras com escopo de caminho e arquivos CLAUDE.md aninhados são carregados no histórico de mensagens quando seu arquivo de gatilho é lido, portanto a compactação os resume junto com tudo mais. Logo após a compactação, Claude Code relê até cinco dos arquivos que Claude leu ou editou na sessão, escolhendo os modificados mais recentemente, e recarrega as regras e arquivos CLAUDE.md aninhados que se aplicam a esses arquivos. Um arquivo com mais de 5.000 tokens volta como uma referência de caminho sem seu conteúdo, mostrado como `Referenced file` em vez de `Read`. Suas regras ainda são recarregadas. Se uma regra deve persistir através da compactação, remova o frontmatter `paths:` ou mova-o para o CLAUDE.md na raiz do projeto.1614Logo após a compactação, Claude Code relê até cinco dos arquivos que Claude leu ou editou na sessão, escolhendo os modificados mais recentemente. Um arquivo com mais de 5.000 tokens volta como uma referência de caminho sem seu conteúdo, mostrado como `Referenced file` em vez de `Read`.

1615 

1616Regras com escopo de caminho e arquivos CLAUDE.md aninhados são carregados no histórico de mensagens quando seu arquivo de gatilho é lido, portanto a compactação os resume junto com tudo mais. Se uma regra deve persistir através da compactação, remova o frontmatter `paths:` ou mova-o para o CLAUDE.md na raiz do projeto.

1614 1617 

1615Corpos de skills são re-injetados após compactação, mas skills grandes são truncados para caber no limite por skill, e os skills invocados mais antigos são descartados uma vez que o orçamento total é excedido. O truncamento mantém o início do arquivo, então coloque as instruções mais importantes perto do topo de `SKILL.md`.1618Corpos de skills são re-injetados após compactação, mas skills grandes são truncados para caber no limite por skill, e os skills invocados mais antigos são descartados uma vez que o orçamento total é excedido. O truncamento mantém o início do arquivo, então coloque as instruções mais importantes perto do topo de `SKILL.md`.

1616 1619 

Details

10 10 

11`CLAUDE_CODE_PROCESS_WRAPPER` inicia cada processo que Claude Code lança a partir de seu próprio binário através do seu launcher: o serviço de fundo, cada sessão que hospeda em [agent view](/docs/pt/agent-view), e os relançamentos do Claude Code após uma atualização. Defina-o como o caminho absoluto do seu launcher, e Claude Code executa o launcher com o comando Claude Code como seus argumentos.11`CLAUDE_CODE_PROCESS_WRAPPER` inicia cada processo que Claude Code lança a partir de seu próprio binário através do seu launcher: o serviço de fundo, cada sessão que hospeda em [agent view](/docs/pt/agent-view), e os relançamentos do Claude Code após uma atualização. Defina-o como o caminho absoluto do seu launcher, e Claude Code executa o launcher com o comando Claude Code como seus argumentos.

12 12 

13Um launcher que envolve o comando `claude` no seu `PATH` não consegue alcançar esses processos, porque eles iniciam a partir do caminho direto do binário sem consultar `claude`.13Um launcher que envolve o comando `claude` no seu `PATH` não consegue alcançar o serviço de fundo ou as sessões que ele hospeda, porque eles iniciam a partir do caminho direto do binário sem consultar `claude`.

14 14 

15<Note>15<Note>

16 `CLAUDE_CODE_PROCESS_WRAPPER` requer Claude Code v2.1.208 ou posterior. Versões anteriores ignoram a variável e iniciam cada processo sem envolvimento. A configuração equivalente [`processWrapper`](/docs/pt/settings-reference#processwrapper) requer v2.1.210 ou posterior. Versões anteriores a ignoram como uma chave desconhecida, não aplicam nenhum launcher e não relatam nenhum erro.16 `CLAUDE_CODE_PROCESS_WRAPPER` requer Claude Code v2.1.208 ou posterior. Versões anteriores ignoram a variável e iniciam cada processo sem envolvimento. A configuração equivalente [`processWrapper`](/docs/pt/settings-reference#processwrapper) requer v2.1.210 ou posterior. Versões anteriores a ignoram como uma chave desconhecida, não aplicam nenhum launcher e não relatam nenhum erro.


40Os seguintes processos não iniciam através do launcher:40Os seguintes processos não iniciam através do launcher:

41 41 

42* Um [serviço de fundo instalado](/docs/pt/agent-view#the-supervisor-process) cuja unidade foi escrita antes do launcher ser configurado: `launchd` ou `systemd` inicia esse processo a partir de seu arquivo de unidade. `/status` e `claude daemon status` avisam quando o serviço em execução e o launcher configurado não correspondem, e as sessões que o serviço gera ainda iniciam através do launcher uma vez que o serviço reinicia com a variável em suas configurações.42* Um [serviço de fundo instalado](/docs/pt/agent-view#the-supervisor-process) cuja unidade foi escrita antes do launcher ser configurado: `launchd` ou `systemd` inicia esse processo a partir de seu arquivo de unidade. `/status` e `claude daemon status` avisam quando o serviço em execução e o launcher configurado não correspondem, e as sessões que o serviço gera ainda iniciam através do launcher uma vez que o serviço reinicia com a variável em suas configurações.

43* Uma sessão que você inicia você mesmo em um terminal, que executa da forma como você a invocou. Para cobrir essas sessões, coloque um script chamado `claude` em um diretório anterior no `PATH` que executa seu launcher com o binário real; não substitua o symlink gerenciado. Self-spawns não consultam `PATH`, então os dois launchers nunca se empilham.43* Uma sessão que você inicia você mesmo em um terminal, que executa da forma como você a invocou. Para cobrir essas sessões, coloque um script chamado `claude` em um diretório anterior no `PATH` que executa seu launcher com o binário real; não substitua o symlink gerenciado. O serviço de fundo e suas sessões iniciam sem uma consulta `PATH`, então os dois launchers não se empilham lá.

44* O primeiro processo de um deep link `claude-cli://`, que o manipulador de protocolo do sistema operacional inicia diretamente. Tudo que essa sessão inicia em segundo plano depois executa através do launcher. Para fechar esse caminho completamente, [impeça o registro do manipulador](/docs/pt/deep-links#registration-and-supported-platforms) com a configuração `disableDeepLinkRegistration`.44* O primeiro processo de um deep link `claude-cli://`, que o manipulador de protocolo do sistema operacional inicia diretamente. Tudo que essa sessão inicia em segundo plano depois executa através do launcher. Para fechar esse caminho completamente, [impeça o registro do manipulador](/docs/pt/deep-links#registration-and-supported-platforms) com a configuração `disableDeepLinkRegistration`.

45* O relançamento que `--worktree` combinado com `--tmux` realiza: o multiplexador de terminal inicia esse painel, não o binário do Claude Code.45* O relançamento que `--worktree` combinado com `--tmux` realiza: o multiplexador de terminal inicia esse painel, não o binário do Claude Code.

46* O host de native-messaging que [Claude in Chrome](/docs/pt/chrome) registra: o navegador o inicia, não o binário do Claude Code.46* O host de native-messaging que [Claude in Chrome](/docs/pt/chrome) registra: o navegador o inicia, não o binário do Claude Code.

costs.md +1 −1

Details

146 </Step>146 </Step>

147 147 

148 <Step title="Escreva a configuração">148 <Step title="Escreva a configuração">

149 Defina `multiplier` para um desconto percentual fixo do preço de tabela, liste as quatro taxas por token de cada modelo em `overrides`, ou faça ambos. A [entrada `modelPricing`](/docs/pt/settings-reference#modelpricing) tem a forma e um exemplo pronto para colar.149 Defina `multiplier` abaixo de 1 para um desconto fixo ou acima de 1 para uma margem, liste as quatro taxas por token de cada modelo em `overrides`, ou faça ambos. Uma margem requer Claude Code v2.1.271 ou posterior. A [entrada `modelPricing`](/docs/pt/settings-reference#modelpricing) tem a forma e um exemplo pronto para colar.

150 </Step>150 </Step>

151 151 

152 <Step title="Implante através de configurações gerenciadas">152 <Step title="Implante através de configurações gerenciadas">

Details

25* **Entregar uma descoberta**: quando uma sessão descobre uma mudança quebrada ou toma uma decisão, Claude a resume para a sessão trabalhando na área afetada, em vez de você re-explicá-la lá.25* **Entregar uma descoberta**: quando uma sessão descobre uma mudança quebrada ou toma uma decisão, Claude a resume para a sessão trabalhando na área afetada, em vez de você re-explicá-la lá.

26* **Coordenar worktrees paralelos**: quando sessões trabalham o mesmo repositório em [worktrees](/docs/pt/worktrees) separadas, Claude pode dizer às outras sessões o que foi entregue.26* **Coordenar worktrees paralelos**: quando sessões trabalham o mesmo repositório em [worktrees](/docs/pt/worktrees) separadas, Claude pode dizer às outras sessões o que foi entregue.

27* **Obter status de trabalho de longa duração**: ter uma migração ou execução de teste relatar de volta para a sessão que você está observando, ou pedir você mesmo de lá. Se essa sessão estiver nesta máquina, Claude também pode [pedir a ela um aviso quando ela próxima ficar ociosa ou sair](#get-a-notice-when-another-session-goes-idle).27* **Obter status de trabalho de longa duração**: ter uma migração ou execução de teste relatar de volta para a sessão que você está observando, ou pedir você mesmo de lá. Se essa sessão estiver nesta máquina, Claude também pode [pedir a ela um aviso quando ela próxima ficar ociosa ou sair](#get-a-notice-when-another-session-goes-idle).

28* **Mensagem entre máquinas**: alcance uma de suas sessões em outra máquina ou na web.28* **Mensagem entre máquinas**: alcance uma de suas sessões em outra máquina ou na nuvem.

29 29 

30Use messaging entre sessões independentes que você inicia e direciona você mesmo. Claude Code tem um recurso dedicado para cada uma das outras maneiras de executar ou alcançar múltiplas sessões, então use o construído para o que você está fazendo em vez disso:30Use messaging entre sessões independentes que você inicia e direciona você mesmo. Claude Code tem um recurso dedicado para cada uma das outras maneiras de executar ou alcançar múltiplas sessões, então use o construído para o que você está fazendo em vez disso:

31 31 


61 61 

62O typeahead lista suas outras sessões ao vivo nesta máquina. Dois casos precisam de mais do que as primeiras letras de um nome:62O typeahead lista suas outras sessões ao vivo nesta máquina. Dois casos precisam de mais do que as primeiras letras de um nome:

63 63 

64* **Uma sessão além desta máquina**: uma sessão na nuvem ou Controle Remoto aparece no typeahead apenas depois que Claude listou ou enviou mensagem para suas sessões além desta máquina, então peça a Claude para listá-las primeiro.64* **Uma sessão além desta máquina**: uma sessão na nuvem ou Remote Control aparece no typeahead apenas depois que Claude listou ou enviou mensagem para suas sessões além desta máquina, então peça a Claude para listá-las primeiro.

65* **Um nome com espaço ou outros caracteres fora de letras, dígitos, hífens e sublinhados**: digite-o entre aspas duplas, como `@"release notes"`. Quando você escolhe a sessão do typeahead, Claude Code insere as aspas para você.65* **Um nome com espaço ou outros caracteres fora de letras, dígitos, hífens e sublinhados**: digite-o entre aspas duplas, como `@"release notes"`. Quando você escolhe a sessão do typeahead, Claude Code insere as aspas para você.

66 66 

67Você também pode digitar a menção sem o seletor. Quando mais de uma sessão ao vivo responde ao nome mencionado, Claude pergunta qual você quer dizer antes de enviar.67Você também pode digitar a menção sem o seletor. Quando mais de uma sessão ao vivo responde ao nome mencionado, Claude pergunta qual você quer dizer antes de enviar.


139* **Subagentes**: agentes executando dentro da sessão atual.139* **Subagentes**: agentes executando dentro da sessão atual.

140* **Colegas**: os próprios colegas de [equipe de agentes](/docs/pt/agent-teams) dessa sessão. Antes de v2.1.239, colegas não apareciam na listagem, embora Claude já pudesse enviá-los mensagem pelo nome.140* **Colegas**: os próprios colegas de [equipe de agentes](/docs/pt/agent-teams) dessa sessão. Antes de v2.1.239, colegas não apareciam na listagem, embora Claude já pudesse enviá-los mensagem pelo nome.

141* **Suas outras sessões locais**: sessões Claude Code executando na mesma máquina, incluindo [sessões em background](/docs/pt/agent-view). Uma sessão aparece apenas quando vincula um [socket de caixa de entrada](#the-sessions-inbox-socket).141* **Suas outras sessões locais**: sessões Claude Code executando na mesma máquina, incluindo [sessões em background](/docs/pt/agent-view). Uma sessão aparece apenas quando vincula um [socket de caixa de entrada](#the-sessions-inbox-socket).

142* **Suas sessões na nuvem**: suas sessões [Claude Code na web](/docs/pt/claude-code-on-the-web), mostradas enquanto essa sessão está conectada a [Controle Remoto](/docs/pt/remote-control). Claude Code as rotula `cloud` na listagem.142* **Suas sessões na nuvem**: suas sessões [Claude Code na web](/docs/pt/claude-code-on-the-web), mostradas enquanto essa sessão está conectada a [Remote Control](/docs/pt/remote-control). Claude Code as rotula `cloud` na listagem.

143* **Suas sessões Controle Remoto em outras máquinas**: mostradas enquanto essa sessão está conectada a [Controle Remoto](/docs/pt/remote-control), e rotuladas `Remote Control`. Claude Code mostra `offline` como o status de uma sessão cuja conexão Controle Remoto caiu.143* **Suas sessões Remote Control em outras máquinas**: mostradas enquanto essa sessão está conectada a [Remote Control](/docs/pt/remote-control), e rotuladas `Remote Control`. Claude Code mostra `offline` como o status de uma sessão cuja conexão Remote Control caiu.

144 144 

145Esta sessão não é uma das linhas. Se Claude endereça uma mensagem ao nome da própria sessão, Claude Code a recusa e diz a Claude que o alvo é a sessão atual. Antes de v2.1.239, a listagem não mostrava o nome dessa sessão, e Claude Code relatava uma mensagem enviada a ela como um agente que não conseguia encontrar.145Esta sessão não é uma das linhas. Se Claude endereça uma mensagem ao nome da própria sessão, Claude Code a recusa e diz a Claude que o alvo é a sessão atual. Antes de v2.1.239, a listagem não mostrava o nome dessa sessão, e Claude Code relatava uma mensagem enviada a ela como um agente que não conseguia encontrar.

146 146 

147Enquanto essa sessão está conectada a [Controle Remoto](/docs/pt/remote-control), Claude Code retém alguns detalhes de suas sessões locais da saída `/list-agents`, sem mudar o que Claude em si vê quando procura uma sessão para enviar mensagem:147Enquanto essa sessão está conectada a [Remote Control](/docs/pt/remote-control), Claude Code retém alguns detalhes de suas sessões locais da saída `/list-agents`, sem mudar o que Claude em si vê quando procura uma sessão para enviar mensagem:

148 148 

149* **Diretórios de trabalho**: deixa de fora o diretório de trabalho de cada sessão local.149* **Diretórios de trabalho**: deixa de fora o diretório de trabalho de cada sessão local.

150* **Nomes de sessão**: deixa de fora qualquer nome de sessão que não possa atribuir a uma pessoa, então uma linha deixada sem nome lê `(unnamed session)`.150* **Nomes de sessão**: deixa de fora qualquer nome de sessão que não possa atribuir a uma pessoa, então uma linha deixada sem nome lê `(unnamed session)`.


152 152 

153Quando a saída lista qualquer coisa, termina com uma nota dizendo que detalhes foram retidos. Executar `/rename` seguido de um nome não utilizado em um teclado da própria sessão dá a essa sessão um nome que aparece na saída.153Quando a saída lista qualquer coisa, termina com uma nota dizendo que detalhes foram retidos. Executar `/rename` seguido de um nome não utilizado em um teclado da própria sessão dá a essa sessão um nome que aparece na saída.

154 154 

155Claude Code lê suas listas de sessão na nuvem e Controle Remoto mais recentes primeiro e para após um número limitado de páginas para cada. Se sua conta tiver mais dessas sessões do que cabem, Claude Code não lista as mais antigas, e Claude não pode enviá-las mensagem pelo nome. Quando isso acontece, Claude Code diz assim na listagem, e Claude vê a mesma nota quando envia uma mensagem.155Claude Code lê suas listas de sessão na nuvem e Remote Control mais recentes primeiro e para após um número limitado de páginas para cada. Se sua conta tiver mais dessas sessões do que cabem, Claude Code não lista as mais antigas, e Claude não pode enviá-las mensagem pelo nome. Quando isso acontece, Claude Code diz assim na listagem, e Claude vê a mesma nota quando envia uma mensagem.

156 156 

157Claude endereça uma sessão além desta máquina pelo nome, da mesma forma que uma sessão local. Veja [Mensagem para sessões em outras máquinas](#message-sessions-on-other-machines) para como essas mensagens viajam.157Claude endereça uma sessão além desta máquina pelo nome, da mesma forma que uma sessão local. Veja [Mensagem para sessões em outras máquinas](#message-sessions-on-other-machines) para como essas mensagens viajam.

158 158 


160 160 

161Quando você renomeia uma sessão, Claude Code também atualiza o registro compartilhado que suas outras sessões usam para procurar o nome da sessão. Se não conseguir atualizar esse registro, avisa você na saída `/rename` que outras sessões ainda podem mostrar o nome antigo. Execute a sessão com [`--debug`](/docs/pt/cli-reference#cli-flags), e Claude Code registra a causa da atualização falhada.161Quando você renomeia uma sessão, Claude Code também atualiza o registro compartilhado que suas outras sessões usam para procurar o nome da sessão. Se não conseguir atualizar esse registro, avisa você na saída `/rename` que outras sessões ainda podem mostrar o nome antigo. Execute a sessão com [`--debug`](/docs/pt/cli-reference#cli-flags), e Claude Code registra a causa da atualização falhada.

162 162 

163Quando você renomeia uma sessão, ou inicia ou retoma uma interativa, com um nome que outra sessão ao vivo nesta máquina já usa, Claude Code deixa o nome com a sessão que já o tem e [renomeia o seu para uma variante](/docs/pt/sessions#name-your-sessions). Sessões ainda podem compartilhar um nome, por exemplo quando uma delas executa uma versão anterior de Claude Code ou o nome compartilhado é um que Claude Code gerou. A menos que essa sessão esteja conectada a Controle Remoto, Claude Code mostra o diretório de trabalho de cada sessão local na saída `/list-agents`, então você pode distinguir sessões com mesmo nome quando executam em diretórios diferentes. Claude endereça a mensagem de uma das duas formas, dependendo de quantas sessões ao vivo respondem ao nome:163Quando você renomeia uma sessão, ou inicia ou retoma uma interativa, com um nome que outra sessão ao vivo nesta máquina já usa, Claude Code deixa o nome com a sessão que já o tem e [renomeia o seu para uma variante](/docs/pt/sessions#name-your-sessions). Sessões ainda podem compartilhar um nome, por exemplo quando uma delas executa uma versão anterior de Claude Code ou o nome compartilhado é um que Claude Code gerou. A menos que essa sessão esteja conectada a Remote Control, Claude Code mostra o diretório de trabalho de cada sessão local na saída `/list-agents`, então você pode distinguir sessões com mesmo nome quando executam em diretórios diferentes. Claude endereça a mensagem de uma das duas formas, dependendo de quantas sessões ao vivo respondem ao nome:

164 164 

165* **Uma sessão responde ao nome**: Claude Code entrega a mensagem apenas no nome.165* **Uma sessão responde ao nome**: Claude Code entrega a mensagem apenas no nome.

166* **Várias sessões compartilham o nome, ou Claude Code não conseguiu verificar em todos os lugares onde suas sessões executam**: Claude adiciona um identificador curto a cada linha de sua listagem e usa o identificador no endereço.166* **Várias sessões compartilham o nome, ou Claude Code não conseguiu verificar em todos os lugares onde suas sessões executam**: Claude adiciona um identificador curto a cada linha de sua listagem e usa o identificador no endereço.


174| Onde a outra sessão executa | Como a mensagem viaja |174| Onde a outra sessão executa | Como a mensagem viaja |

175| :-------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------- |175| :-------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------- |

176| Nesta máquina | Sobre um socket por sessão em macOS e Linux, ou um pipe nomeado por sessão no Windows nativo, nunca através de servidores Anthropic |176| Nesta máquina | Sobre um socket por sessão em macOS e Linux, ou um pipe nomeado por sessão no Windows nativo, nunca através de servidores Anthropic |

177| Em outra de suas máquinas | Através de servidores Anthropic, chegando sobre a conexão [Controle Remoto](/docs/pt/remote-control) dessa máquina |177| Em outra de suas máquinas | Através de servidores Anthropic, chegando sobre a conexão [Remote Control](/docs/pt/remote-control) dessa máquina |

178| Em [Claude Code na web](/docs/pt/claude-code-on-the-web) | Através de servidores Anthropic, direto para a sessão na nuvem |178| Em [Claude Code na web](/docs/pt/claude-code-on-the-web) | Através de servidores Anthropic, direto para a sessão na nuvem |

179 179 

180Iniciar uma conversa com uma sessão em outra de suas máquinas requer Claude Code v2.1.225 ou posterior e um alvo que [aparece na listagem](#see-which-sessions-claude-can-reach). Antes de v2.1.225, Claude só podia responder a uma mensagem que chegou de uma.180Iniciar uma conversa com uma sessão em outra de suas máquinas requer Claude Code v2.1.225 ou posterior e um alvo que [aparece na listagem](#see-which-sessions-claude-can-reach). Antes de v2.1.225, Claude só podia responder a uma mensagem que chegou de uma.

181 181 

182Você pode enviar mensagem para uma sessão mostrada como `offline` na [listagem](#see-which-sessions-claude-can-reach), uma cuja conexão Controle Remoto caiu. O envio passa, mas a mensagem chega apenas depois que a máquina dessa sessão se reconecta. Claude é informado disso quando envia.182Você pode enviar mensagem para uma sessão mostrada como `offline` na [listagem](#see-which-sessions-claude-can-reach), uma cuja conexão Remote Control caiu. O envio passa, mas a mensagem chega apenas depois que a máquina dessa sessão se reconecta. Claude é informado disso quando envia.

183 183 

184A entrega na mesma máquina funciona onde quer que o recurso esteja habilitado. Cada sessão se registra em arquivos no disco. Quando Claude lista ou envia mensagem para suas sessões locais, Claude Code lê esses arquivos para encontrar as sessões, então duas sessões podem alcançar uma à outra apenas quando conseguem ver os mesmos arquivos.184A entrega na mesma máquina funciona onde quer que o recurso esteja habilitado. Cada sessão se registra em arquivos no disco. Quando Claude lista ou envia mensagem para suas sessões locais, Claude Code lê esses arquivos para encontrar as sessões, então duas sessões podem alcançar uma à outra apenas quando conseguem ver os mesmos arquivos.

185 185 

186Um contêiner tem seu próprio sistema de arquivos, então uma sessão dentro dele e uma sessão no host não podem alcançar uma à outra. Duas sessões dentro do mesmo contêiner ainda podem enviar mensagens uma à outra, incluindo em um [executor auto-hospedado](/docs/pt/self-hosted-environments). Uma sessão dentro de WSL 2 e uma sessão Windows nativa no mesmo computador também não podem alcançar uma à outra, porque se registram em diretórios home diferentes e escutam em tipos de socket diferentes.186Um contêiner tem seu próprio sistema de arquivos, então uma sessão dentro dele e uma sessão no host não podem alcançar uma à outra. Duas sessões dentro do mesmo contêiner ainda podem enviar mensagens uma à outra, incluindo em um [executor auto-hospedado](/docs/pt/self-hosted-environments). Uma sessão dentro de WSL 2 e uma sessão Windows nativa no mesmo computador também não podem alcançar uma à outra, porque se registram em diretórios home diferentes e escutam em tipos de socket diferentes.

187 187 

188Enquanto essa sessão está conectada a Controle Remoto, quando você envia mensagem para uma sessão em outra de suas máquinas, Claude Code mostra a mensagem na conversa dessa sessão sob o nome Controle Remoto dessa sessão. O Claude naquela máquina pode responder a esse nome. Por exemplo, quando essa sessão está conectada a Controle Remoto como `laptop-graceful-unicorn` e você envia mensagem para seu desktop, você vê a mensagem na sessão desktop sob `laptop-graceful-unicorn`.188Enquanto essa sessão está conectada a Remote Control, quando você envia mensagem para uma sessão em outra de suas máquinas, Claude Code mostra a mensagem na conversa dessa sessão sob o nome Remote Control dessa sessão. O Claude naquela máquina pode responder a esse nome. Por exemplo, quando essa sessão está conectada a Remote Control como `laptop-graceful-unicorn` e você envia mensagem para seu desktop, você vê a mensagem na sessão desktop sob `laptop-graceful-unicorn`.

189 189 

190Se essa sessão não estiver conectada a Controle Remoto quando Claude envia para uma sessão além desta máquina, a mensagem ainda passa, mas sem um [endereço de resposta](#what-a-message-looks-like), então o Claude receptor não pode respondê-la. Claude é informado disso quando envia.190Se essa sessão não estiver conectada a Remote Control quando Claude envia para uma sessão além desta máquina, a mensagem ainda passa, mas sem um [endereço de resposta](#what-a-message-looks-like), então o Claude receptor não pode respondê-la. Claude é informado disso quando envia.

191 191 

192Para exigir sua aprovação antes de qualquer mensagem ir além desta máquina, defina [`isolatePeerMachines`](#require-approval-for-cross-machine-messages).192Para exigir sua aprovação antes de qualquer mensagem ir além desta máquina, defina [`isolatePeerMachines`](#require-approval-for-cross-machine-messages).

193 193 


240 240 

241Além de editar um arquivo de configurações, você pode selecionar o valor na linha `/config` **Messages from your other sessions**. Claude Code escreve o valor que você seleciona para suas configurações de usuário. A linha requer Claude Code v2.1.232 ou posterior e não aparece enquanto configurações gerenciadas ou a flag `--settings` define a chave, já que um valor de configurações de usuário não se aplicaria então. Claude Code rejeita o atalho `/config crossSessionInbound=value` para essa chave.241Além de editar um arquivo de configurações, você pode selecionar o valor na linha `/config` **Messages from your other sessions**. Claude Code escreve o valor que você seleciona para suas configurações de usuário. A linha requer Claude Code v2.1.232 ou posterior e não aparece enquanto configurações gerenciadas ou a flag `--settings` define a chave, já que um valor de configurações de usuário não se aplicaria então. Claude Code rejeita o atalho `/config crossSessionInbound=value` para essa chave.

242 242 

243Para ver qual valor se aplica, siga as regras de precedência `crossSessionInbound` na [referência de configurações](/docs/pt/settings-reference#crosssessioninbound). Quando nenhum valor se aplica, Claude Code decide por mensagem das duas classes de modo de permissão das sessões. Agrupa sessões que [contornam prompts de permissão](/docs/pt/permission-modes#skip-all-checks-with-bypasspermissions-mode) em uma classe, e toda outra sessão na outra. Plan mode conta como contornando em sessões com permissões de bypass disponíveis, e [auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), `acceptEdits` e `dontAsk` contam como solicitando:243Para ver qual valor se aplica, siga as regras de precedência `crossSessionInbound` na [referência de configurações](/docs/pt/settings-reference#crosssessioninbound).

244 

245Quando nenhum valor se aplica, Claude Code decide por mensagem das duas classes de modo de permissão das sessões. Agrupa sessões que [contornam prompts de permissão](/docs/pt/permission-modes#skip-all-checks-with-bypasspermissions-mode) em uma classe, e toda outra sessão na outra. Plan mode conta como contornando em sessões com permissões de bypass disponíveis, e [auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), `acceptEdits` e `dontAsk` contam como solicitando:

244 246 

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

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


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

255* Se uma mudança de configurações faz `refuse` se aplicar enquanto mensagens estão retidas, Claude Code descarta cada mensagem retida e relata uma recusa a cada remetente que pode alcançar.257* Se uma mudança de configurações faz `refuse` se aplicar enquanto mensagens estão retidas, Claude Code descarta cada mensagem retida e relata uma recusa a cada remetente que pode alcançar.

256 258 

257Quando o remetente é uma sessão interativa na mesma máquina, Claude Code mostra um aviso lá quando o receptor retém a mensagem, e um acompanhamento quando o receptor depois entrega, nega ou expira. Se o receptor a recusa, Claude Code mostra um aviso lá que o receptor não está aceitando mensagens cross-session e diz ao Claude do remetente não esperar ou reenviar.259Quando o remetente é uma sessão na mesma máquina, Claude Code envia um aviso de volta para ela quando o receptor retém a mensagem, e um acompanhamento quando o receptor depois entrega, nega ou expira. O aviso alcança o Claude de envio, então ele sabe não continuar esperando por uma mensagem que a outra sessão não leu.

260 

261Em uma sessão de envio interativa, o aviso aparece na transcrição. Um remetente [`claude -p`](/docs/pt/headless) recebe em [saída transmitida](/docs/pt/headless#stream-responses) como uma [mensagem `system` informacional](/docs/pt/agent-sdk/typescript#sdkinformationalmessage). Avisos para remetentes `claude -p` requerem Claude Code v2.1.271 ou posterior.

262 

263Se o receptor recusa a mensagem, o aviso do remetente diz que o receptor não está aceitando mensagens cross-session e diz ao Claude do remetente não esperar ou reenviar.

258 264 

259Claude Code retém no máximo 100 mensagens, separadamente da fila de entrega, e além disso descarta a mais antiga.265Claude Code retém no máximo 100 mensagens, separadamente da fila de entrega, e além disso descarta a mais antiga.

260 266 

data-usage.md +1 −1

Details

108 Cloud execution: Fluxo de dados e dependências108 Cloud execution: Fluxo de dados e dependências

109</h3>109</h3>

110 110 

111Ao usar [Claude Code on the web](/docs/pt/claude-code-on-the-web), as sessões são executadas em máquinas virtuais gerenciadas pela Anthropic por padrão em vez de localmente. As sessões que sua organização roteia para um [ambiente auto-hospedado](/docs/pt/self-hosted-environments) são executadas em infraestrutura que você controla; para saber o que permanece em suas máquinas e o que ainda vai para a Anthropic, consulte [O que permanece em sua infraestrutura](/docs/pt/self-hosted-environments#what-stays-on-your-infrastructure). Em sessões de nuvem hospedadas pela Anthropic:111[Cloud sessions](/docs/pt/claude-code-on-the-web) são executadas em máquinas virtuais gerenciadas pela Anthropic por padrão em vez de localmente. As sessões que sua organização roteia para um [ambiente auto-hospedado](/docs/pt/self-hosted-environments) são executadas em infraestrutura que você controla; para saber o que permanece em suas máquinas e o que ainda vai para a Anthropic, consulte [O que permanece em sua infraestrutura](/docs/pt/self-hosted-environments#what-stays-on-your-infrastructure). Em sessões de nuvem hospedadas pela Anthropic:

112 112 

113* **Armazenamento de código e dados:** Seu repositório é clonado para uma VM isolada. Código e dados de sessão estão sujeitos às políticas de retenção e uso para seu tipo de conta (consulte a seção Retenção de dados acima)113* **Armazenamento de código e dados:** Seu repositório é clonado para uma VM isolada. Código e dados de sessão estão sujeitos às políticas de retenção e uso para seu tipo de conta (consulte a seção Retenção de dados acima)

114* **Credenciais:** A autenticação do GitHub é tratada através de um proxy seguro; suas credenciais do GitHub nunca entram na sandbox114* **Credenciais:** A autenticação do GitHub é tratada através de um proxy seguro; suas credenciais do GitHub nunca entram na sandbox

Details

105A maioria das surpresas de configuração rastreia um pequeno conjunto de regras de localização e sintaxe. Verifique estas antes de assumir um bug:105A maioria das surpresas de configuração rastreia um pequeno conjunto de regras de localização e sintaxe. Verifique estas antes de assumir um bug:

106 106 

107| Sintoma | Causa | Correção |107| Sintoma | Causa | Correção |

108| :---------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |108| :---------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

109| Hook nunca dispara | `matcher` é um array JSON em vez de uma string | Use uma única string com `\|` para corresponder a várias ferramentas, por exemplo `"Edit\|Write"`. Consulte [padrões de matcher](/docs/pt/hooks#matcher-patterns). |109| Hook nunca dispara | `matcher` é um array JSON em vez de uma string | Use uma única string com `\|` para corresponder a várias ferramentas, por exemplo `"Edit\|Write"`. Consulte [padrões de matcher](/docs/pt/hooks#matcher-patterns). |

110| Hook nunca dispara | `matcher` usa `,` como separador em uma versão anterior a v2.1.191 | Claude Code v2.1.191 ou posterior trata `,` como um separador de lista como `\|`. Versões anteriores avaliam uma vírgula como um caractere literal, então `"Edit,Write"` não corresponde a nada. Use `\|` em vez disso, ou atualize Claude Code. |110| Hook nunca dispara | `matcher` usa `,` como separador em uma versão anterior a v2.1.191 | Claude Code v2.1.191 ou posterior trata `,` como um separador de lista como `\|`. Versões anteriores avaliam uma vírgula como um caractere literal, então `"Edit,Write"` não corresponde a nada. Use `\|` em vez disso, ou atualize Claude Code. |

111| Hook nunca dispara | O valor de `matcher` está em minúsculas, por exemplo `"bash"` | A correspondência diferencia maiúsculas de minúsculas. Os nomes das ferramentas são capitalizados: `Bash`, `Edit`, `Write`, `Read`. |111| Hook nunca dispara | O valor de `matcher` está em minúsculas, por exemplo `"bash"` | A correspondência diferencia maiúsculas de minúsculas. Os nomes das ferramentas são capitalizados: `Bash`, `Edit`, `Write`, `Read`. |


115| Skill não aparece em `/skills` | O arquivo de skill está em `.claude/skills/name.md` em vez de em uma pasta | Use uma pasta com `SKILL.md` dentro: `.claude/skills/name/SKILL.md`. |115| Skill não aparece em `/skills` | O arquivo de skill está em `.claude/skills/name.md` em vez de em uma pasta | Use uma pasta com `SKILL.md` dentro: `.claude/skills/name/SKILL.md`. |

116| Skill aparece em `/skills` mas Claude nunca o invoca | Skill tem `disable-model-invocation: true` em seu frontmatter, ou sua descrição não corresponde a como você frasa a solicitação | Verifique o badge em `/skills`: um rótulo "user-only" significa que Claude não o acionará por conta própria. Consulte [invocação de skill](/docs/pt/skills). |116| Skill aparece em `/skills` mas Claude nunca o invoca | Skill tem `disable-model-invocation: true` em seu frontmatter, ou sua descrição não corresponde a como você frasa a solicitação | Verifique o badge em `/skills`: um rótulo "user-only" significa que Claude não o acionará por conta própria. Consulte [invocação de skill](/docs/pt/skills). |

117| As instruções de `CLAUDE.md` do subdiretório parecem ser ignoradas | Os arquivos do subdiretório são carregados sob demanda, não no início da sessão | Eles são carregados quando Claude lê um arquivo nesse diretório com a ferramenta Read, não no lançamento e não ao escrever ou criar arquivos lá. Consulte [como os arquivos CLAUDE.md são carregados](/docs/pt/memory#how-claude-md-files-load). |117| As instruções de `CLAUDE.md` do subdiretório parecem ser ignoradas | Os arquivos do subdiretório são carregados sob demanda, não no início da sessão | Eles são carregados quando Claude lê um arquivo nesse diretório com a ferramenta Read, não no lançamento e não ao escrever ou criar arquivos lá. Consulte [como os arquivos CLAUDE.md são carregados](/docs/pt/memory#how-claude-md-files-load). |

118| Subagente ignora as instruções de `CLAUDE.md` | Os agentes Explore e Plan integrados pulam `CLAUDE.md`. Subagentes personalizados o carregam da mesma forma que a conversa principal | Para Explore ou Plan, reafirme a instrução em seu prompt de delegação. Para um subagente personalizado, coloque instruções críticas no corpo do arquivo do agente, que se torna o prompt do sistema do agente. Consulte [o que é carregado na inicialização](/docs/pt/sub-agents#what-loads-at-startup). |118| Subagente ignora as instruções de `CLAUDE.md` | Os agentes Explore e Plan integrados pulam `CLAUDE.md`. Um subagente personalizado o carrega da mesma forma que a conversa principal, a menos que sua definição defina [`omitClaudeMd`](/docs/pt/sub-agents#supported-frontmatter-fields) | Para Explore ou Plan, reafirme a instrução em seu prompt de delegação. Para um subagente que define `omitClaudeMd`, remova o campo. Para qualquer outro subagente personalizado, coloque instruções críticas no corpo do arquivo do agente, que se torna o prompt do sistema do agente. Consulte [o que é carregado na inicialização](/docs/pt/sub-agents#what-loads-at-startup). |

119| A lógica de limpeza nunca é executada no final da sessão | Nenhum hook `SessionEnd` configurado | Adicione um hook `SessionEnd` em `settings.json`. Consulte a [lista de eventos de hook](/docs/pt/hooks#hook-events). |119| A lógica de limpeza nunca é executada no final da sessão | Nenhum hook `SessionEnd` configurado | Adicione um hook `SessionEnd` em `settings.json`. Consulte a [lista de eventos de hook](/docs/pt/hooks#hook-events). |

120| Servidores MCP em `.mcp.json` nunca são carregados | O arquivo está sob `.claude/`, ou seus servidores estão sob uma chave `servers` de nível superior, como no `mcp.json` do VS Code, em vez de `mcpServers` | A configuração MCP do projeto vai na raiz do repositório como `.mcp.json`, não dentro de `.claude/`, com servidores sob a chave `mcpServers`. Consulte [configuração MCP](/docs/pt/mcp). |120| Servidores MCP em `.mcp.json` nunca são carregados | O arquivo está sob `.claude/`, ou seus servidores estão sob uma chave `servers` de nível superior, como no `mcp.json` do VS Code, em vez de `mcpServers` | A configuração MCP do projeto vai na raiz do repositório como `.mcp.json`, não dentro de `.claude/`, com servidores sob a chave `mcpServers`. Consulte [configuração MCP](/docs/pt/mcp). |

121| Servidores MCP adicionados sob `mcpServers` em `settings.json` nunca aparecem | `settings.json` não lê uma chave `mcpServers` | Defina servidores de projeto em `.mcp.json` na raiz do repositório, ou execute `claude mcp add --scope user` para servidores com escopo de usuário. Consulte [configuração MCP](/docs/pt/mcp). |121| Servidores MCP adicionados sob `mcpServers` em `settings.json` nunca aparecem | `settings.json` não lê uma chave `mcpServers` | Defina servidores de projeto em `.mcp.json` na raiz do repositório, ou execute `claude mcp add --scope user` para servidores com escopo de usuário. Consulte [configuração MCP](/docs/pt/mcp). |

desktop.md +28 −18

Details

36* Permitir que Claude [verifique, envie mensagens ou arquive suas outras sessões](#work-across-sessions)36* Permitir que Claude [verifique, envie mensagens ou arquive suas outras sessões](#work-across-sessions)

37* [Conectar ferramentas externas](#connect-external-tools) como GitHub, Slack e Linear37* [Conectar ferramentas externas](#connect-external-tools) como GitHub, Slack e Linear

38* Permitir que Claude [abra aplicativos e controle sua tela](#let-claude-use-your-computer)38* Permitir que Claude [abra aplicativos e controle sua tela](#let-claude-use-your-computer)

39* Executar em sua máquina, na [nuvem](#run-long-running-tasks-remotely), ou sobre [SSH](#ssh-sessions)39* Executar em sua máquina, na [nuvem](#run-long-running-tasks-in-the-cloud), ou sobre [SSH](#ssh-sessions)

40 40 

41Para [trabalho recorrente agendado](/docs/pt/desktop-scheduled-tasks), [atalhos de teclado](#keyboard-shortcuts), ou [envio de tarefas do seu telefone](#sessions-from-dispatch), consulte as páginas e seções vinculadas. Se você já usa o CLI baseado em terminal, consulte a [comparação CLI](#coming-from-the-cli) para ver o que é transferido.41Para [trabalho recorrente agendado](/docs/pt/desktop-scheduled-tasks), [atalhos de teclado](#keyboard-shortcuts), ou [envio de tarefas do seu telefone](#sessions-from-dispatch), consulte as páginas e seções vinculadas. Se você já usa o CLI baseado em terminal, consulte a [comparação CLI](#coming-from-the-cli) para ver o que é transferido.

42 42 


47Antes de enviar sua primeira mensagem, configure quatro coisas na área de prompt:47Antes de enviar sua primeira mensagem, configure quatro coisas na área de prompt:

48 48 

49* **Ambiente**: escolha onde Claude é executado. Selecione **Local** para sua máquina, **Cloud** para uma [sessão em nuvem](#cloud-sessions) que continua após você fechar o aplicativo, uma [**conexão SSH**](#ssh-sessions) para uma máquina remota que você gerencia, ou no Windows uma [**distribuição WSL**](/docs/pt/desktop-wsl). Veja [configuração de ambiente](#environment-configuration).49* **Ambiente**: escolha onde Claude é executado. Selecione **Local** para sua máquina, **Cloud** para uma [sessão em nuvem](#cloud-sessions) que continua após você fechar o aplicativo, uma [**conexão SSH**](#ssh-sessions) para uma máquina remota que você gerencia, ou no Windows uma [**distribuição WSL**](/docs/pt/desktop-wsl). Veja [configuração de ambiente](#environment-configuration).

50* **Pasta do projeto**: selecione a pasta ou repositório em que Claude trabalha. Para sessões em nuvem, você pode adicionar [múltiplos repositórios](#run-long-running-tasks-remotely).50* **Pasta do projeto**: selecione a pasta ou repositório em que Claude trabalha. Para sessões em nuvem, você pode adicionar [múltiplos repositórios](#run-long-running-tasks-in-the-cloud).

51* **Modelo**: escolha um [modelo](/docs/pt/model-config#available-models) no menu suspenso ao lado do botão enviar. Você pode alterar isso durante a sessão.51* **Modelo**: escolha um [modelo](/docs/pt/model-config#available-models) no menu suspenso ao lado do botão enviar. Você pode alterar isso durante a sessão.

52* **Modo de permissão**: escolha quanto de autonomia Claude tem no [seletor de modo](#choose-a-permission-mode). Você pode alterar isso durante a sessão.52* **Modo de permissão**: escolha quanto de autonomia Claude tem no [seletor de modo](#choose-a-permission-mode). Você pode alterar isso durante a sessão.

53 53 


207 207 

208A aba Code é construída em torno de painéis que você pode organizar em qualquer layout: chat, diff, browser, terminal, file, plan, tasks e subagent, junto com o [iOS Simulator](/docs/pt/desktop-ios-simulator) no macOS. Arraste um painel por seu cabeçalho para reposicioná-lo, ou arraste uma borda de painel para redimensioná-lo. Pressione **Cmd+\\** no macOS ou **Ctrl+\\** no Windows para fechar o painel focado. Abra painéis adicionais no menu **Views** na barra de ferramentas da sessão.208A aba Code é construída em torno de painéis que você pode organizar em qualquer layout: chat, diff, browser, terminal, file, plan, tasks e subagent, junto com o [iOS Simulator](/docs/pt/desktop-ios-simulator) no macOS. Arraste um painel por seu cabeçalho para reposicioná-lo, ou arraste uma borda de painel para redimensioná-lo. Pressione **Cmd+\\** no macOS ou **Ctrl+\\** no Windows para fechar o painel focado. Abra painéis adicionais no menu **Views** na barra de ferramentas da sessão.

209 209 

210Para trabalhar em várias telas, extraia um painel como o diff ou terminal para sua própria janela e encaixe-o novamente quando terminar. Claude continua trabalhando na janela principal.

211 

210<Note>212<Note>

211 O layout do painel, terminal, editor de arquivo e modos de visualização nesta seção requerem Claude Desktop v1.2581.0 ou posterior. Abra **Claude → Check for Updates** no macOS ou **Help → Check for Updates** no Windows para atualizar.213 O layout do painel, terminal, editor de arquivo e modos de visualização nesta seção requerem Claude Desktop v1.2581.0 ou posterior. Abra **Claude → Check for Updates** no macOS ou **Help → Check for Updates** no Windows para atualizar.

212</Note>214</Note>


240 Alternar modos de visualização242 Alternar modos de visualização

241</h3>243</h3>

242 244 

243Os modos de visualização controlam quanto detalhe aparece na transcrição do chat. Alterne modos no menu suspenso **Transcript view** ao lado do botão enviar, ou pressione **Ctrl+O** no macOS ou Windows para ciclar através deles.245Os modos de visualização controlam quanto detalhe aparece na transcrição do chat. Alterne modos no menu suspenso **Transcript view** ao lado do botão enviar, ou pressione **Ctrl+O** no macOS ou Windows para ciclar através deles. O modo Thinking aparece no menu suspenso apenas depois que Claude produziu thinking na sessão que você está visualizando.

244 246 

245| Modo | O que mostra |247| Modo | O que mostra |

246| ----------- | ------------------------------------------------------------------------------------ |248| ------------ | --------------------------------------------------------------------------------------------------------------- |

247| **Normal** | Chamadas de ferramenta recolhidas em resumos, com respostas de texto completo |249| **Normal** | Chamadas de ferramenta recolhidas em resumos, com respostas de texto completo |

248| **Verbose** | Cada chamada de ferramenta, leitura de arquivo e passo intermediário que Claude toma |250| **Thinking** | Chamadas de ferramenta recolhidas em resumos, mais o thinking de Claude |

249| **Summary** | Apenas as respostas finais de Claude e as alterações que fez |251| **Verbose** | Cada chamada de ferramenta, leitura de arquivo e passo intermediário que Claude toma, mais o thinking de Claude |

250 252 

251Use Verbose ao depurar por que Claude tomou uma ação particular. Use Summary quando você está executando múltiplas sessões e quer escanear resultados rapidamente.253Use Thinking para seguir o raciocínio de Claude com chamadas de ferramenta ainda recolhidas. Use Verbose ao depurar por que Claude tomou uma ação particular. As versões do Claude Desktop anteriores a 1.46388.1 também listam um modo Summary, e uma sessão ainda definida para Summary abre em Normal assim que você atualiza.

252 254 

253<h3 id="keyboard-shortcuts">255<h3 id="keyboard-shortcuts">

254 Atalhos de teclado256 Atalhos de teclado


296 298 

297Computer use está desativado por padrão. [Ative-o em Configurações](#enable-computer-use) antes que Claude possa controlar sua tela. No macOS, você também precisa conceder permissões de Acessibilidade e Gravação de Tela.299Computer use está desativado por padrão. [Ative-o em Configurações](#enable-computer-use) antes que Claude possa controlar sua tela. No macOS, você também precisa conceder permissões de Acessibilidade e Gravação de Tela.

298 300 

301No macOS, computer use também pode ser executado em segundo plano: Claude trabalha nos aplicativos que você aprovou enquanto você continua trabalhando.

302 

299<Warning>303<Warning>

300 Diferentemente da [ferramenta Bash sandboxed](/docs/pt/sandboxing), computer use é executado em seu desktop real com acesso a tudo que você aprova. Claude verifica cada ação e sinaliza possível injeção de prompt do conteúdo na tela, mas o limite de confiança é diferente. Veja o [guia de segurança de computer use](https://support.claude.com/en/articles/14128542) para melhores práticas.304 Diferentemente da [ferramenta Bash sandboxed](/docs/pt/sandboxing), computer use é executado em seu desktop real com acesso a tudo que você aprova. Claude verifica cada ação e sinaliza possível injeção de prompt do conteúdo na tela, mas o limite de confiança é diferente. Veja o [guia de segurança de computer use](https://support.claude.com/en/articles/14128542) para melhores práticas.

301</Warning>305</Warning>


360Você pode configurar duas configurações em **Configurações > Geral** (em **Aplicativo Desktop**):364Você pode configurar duas configurações em **Configurações > Geral** (em **Aplicativo Desktop**):

361 365 

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

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

364 368 

365<h2 id="manage-sessions">369<h2 id="manage-sessions">

366 Gerenciar sessões370 Gerenciar sessões


388 392 

389Para verificar o uso de contexto, veja [Verificar uso](#check-usage). Quando o contexto se enche, Claude automaticamente resume a conversa e continua trabalhando. Você também pode digitar `/compact` para disparar a sumarização mais cedo e liberar espaço de contexto. Veja [a janela de contexto](/docs/pt/how-claude-code-works#the-context-window) para detalhes sobre como a compactação funciona.393Para verificar o uso de contexto, veja [Verificar uso](#check-usage). Quando o contexto se enche, Claude automaticamente resume a conversa e continua trabalhando. Você também pode digitar `/compact` para disparar a sumarização mais cedo e liberar espaço de contexto. Veja [a janela de contexto](/docs/pt/how-claude-code-works#the-context-window) para detalhes sobre como a compactação funciona.

390 394 

391O aplicativo desktop envia uma notificação do SO quando uma sessão de Code termina uma tarefa e você não está visualizando essa sessão no momento.395O aplicativo desktop envia uma notificação do SO quando uma sessão de Code termina uma tarefa e você não está visualizando essa sessão no momento. Para sessões que pertencem a um [projeto](/docs/pt/claude-projects#see-what-needs-you-in-overview), você recebe as notificações do projeto em vez disso.

392 396 

393<h3 id="ask-a-side-question-without-derailing-the-session">397<h3 id="ask-a-side-question-without-derailing-the-session">

394 Fazer uma pergunta lateral sem descarrilar a sessão398 Fazer uma pergunta lateral sem descarrilar a sessão


427 431 

428Claude também pode sugerir novas sessões. Quando ele nota algo que vale a pena corrigir que está fora do escopo da tarefa atual, ele oferece o trabalho como um chip de tarefa no chat. Clique no chip para iniciar esse trabalho em uma nova sessão com seu próprio worktree; Claude continua sua sessão atual ininterruptamente.432Claude também pode sugerir novas sessões. Quando ele nota algo que vale a pena corrigir que está fora do escopo da tarefa atual, ele oferece o trabalho como um chip de tarefa no chat. Clique no chip para iniciar esse trabalho em uma nova sessão com seu próprio worktree; Claude continua sua sessão atual ininterruptamente.

429 433 

430<h3 id="run-long-running-tasks-remotely">434<h3 id="run-long-running-tasks-in-the-cloud">

431 Executar tarefas de longa duração remotamente435 Executar tarefas de longa duração na nuvem

432</h3>436</h3>

433 437 

434Para grandes refatorações, suites de teste, migrações ou outras tarefas de longa duração, selecione **Cloud** em vez de **Local** ao iniciar uma sessão. Sessões em nuvem são executadas na infraestrutura gerenciada pela Anthropic por padrão e continuam mesmo se você fechar o aplicativo ou desligar seu computador. Verifique a qualquer momento para ver o progresso ou direcionar Claude em uma direção diferente. Você também pode monitorar sessões em nuvem de [claude.ai/code](https://claude.ai/code) ou do [aplicativo Claude mobile](/docs/pt/mobile).438Para grandes refatorações, suites de teste, migrações ou outras tarefas de longa duração, selecione **Cloud** em vez de **Local** ao iniciar uma sessão. Sessões em nuvem são executadas na infraestrutura gerenciada pela Anthropic por padrão e continuam mesmo se você fechar o aplicativo ou desligar seu computador. Verifique a qualquer momento para ver o progresso ou direcionar Claude em uma direção diferente. Você também pode monitorar sessões em nuvem de [claude.ai/code](https://claude.ai/code) ou do [aplicativo Claude mobile](/docs/pt/mobile).

435 439 

436Sessões em nuvem também suportam múltiplos repositórios. Depois de selecionar um ambiente em nuvem, clique no botão **+** ao lado do pill de repo para adicionar repositórios adicionais à sessão. Cada repo obtém seu próprio seletor de branch. Isso é útil para tarefas que abrangem múltiplas bases de código, como atualizar uma biblioteca compartilhada e seus consumidores.440Sessões em nuvem também suportam múltiplos repositórios. Depois de selecionar um ambiente em nuvem, clique no botão **+** ao lado do repositório selecionado para adicionar mais repositórios à sessão. Cada repo obtém seu próprio seletor de branch. Isso é útil para tarefas que abrangem múltiplas bases de código, como atualizar uma biblioteca compartilhada e seus consumidores.

437 441 

438Veja [Claude Code na web](/docs/pt/claude-code-on-the-web) para mais sobre como sessões em nuvem funcionam.442Veja [Use Claude Code na nuvem](/docs/pt/claude-code-on-the-web) para mais sobre como sessões em nuvem funcionam. Quando um corpo de trabalho precisa de muitas sessões em nuvem, selecione **Projects** na barra lateral para criar um [projeto](/docs/pt/claude-projects), onde Claude inicia e rastreia as sessões para você de uma conversa.

439 443 

440<h3 id="continue-in-another-surface">444<h3 id="continue-in-another-surface">

441 Continuar em outra superfície445 Continuar em outra superfície


443 447 

444O menu **Continue in**, acessível do ícone VS Code no canto inferior direito da barra de ferramentas da sessão, permite que você mova sua sessão para outra superfície:448O menu **Continue in**, acessível do ícone VS Code no canto inferior direito da barra de ferramentas da sessão, permite que você mova sua sessão para outra superfície:

445 449 

446* **Claude Code on the Web**: envia sua sessão local para continuar executando remotamente. Desktop envia seu branch, gera um resumo da conversa e cria uma nova sessão em nuvem com o contexto completo. Você pode então escolher arquivar a sessão local ou mantê-la. Isso requer uma árvore de trabalho limpa e não está disponível para sessões SSH.450* **Claude Code on the Web**: envia sua sessão local para continuar executando na nuvem. Desktop envia seu branch, gera um resumo da conversa e cria uma nova sessão em nuvem com o contexto completo. Você pode então escolher arquivar a sessão local ou mantê-la. Isso requer uma árvore de trabalho limpa e não está disponível para sessões SSH.

447* **Your IDE**: abre seu projeto em um IDE suportado no diretório de trabalho atual.451* **Your IDE**: abre seu projeto em um IDE suportado no diretório de trabalho atual.

448 452 

449<h3 id="sessions-from-dispatch">453<h3 id="sessions-from-dispatch">


468 472 

469Conecte serviços externos, adicione fluxos de trabalho reutilizáveis, customize o comportamento de Claude e configure servidores de visualização. Para gerenciar conectores, skills e plugins em um único lugar, clique em **Customize** na barra lateral. A aba [Cowork](https://claude.com/product/cowork) no aplicativo Desktop obtém seus skills, plugins e conectores dessa configuração de Customize, que sincroniza através de sua conta claude.ai, não do diretório `~/.claude` da CLI.473Conecte serviços externos, adicione fluxos de trabalho reutilizáveis, customize o comportamento de Claude e configure servidores de visualização. Para gerenciar conectores, skills e plugins em um único lugar, clique em **Customize** na barra lateral. A aba [Cowork](https://claude.com/product/cowork) no aplicativo Desktop obtém seus skills, plugins e conectores dessa configuração de Customize, que sincroniza através de sua conta claude.ai, não do diretório `~/.claude` da CLI.

470 474 

475Claude Code também carrega os skills e plugins habilitados para sua conta claude.ai em sessões de terminal onde você se conecta com a mesma conta. Veja [Skills sincronizados de claude.ai](/docs/pt/skills#how-synced-skills-behave) e [Plugins sincronizados de claude.ai](/docs/pt/plugins-reference#synced-plugins).

476 

471<h3 id="connect-external-tools">477<h3 id="connect-external-tools">

472 Conectar ferramentas externas478 Conectar ferramentas externas

473</h3>479</h3>


488 494 

489Você pode enviar um comando enquanto Claude está trabalhando, da mesma forma que qualquer outra mensagem, e a sessão retorna ao estado ocioso uma vez que a rodada termina. Antes da v2.1.206, um comando enviado no meio da rodada poderia deixar a sessão mostrando como em execução e as mensagens que você enviou depois não eram entregues.495Você pode enviar um comando enquanto Claude está trabalhando, da mesma forma que qualquer outra mensagem, e a sessão retorna ao estado ocioso uma vez que a rodada termina. Antes da v2.1.206, um comando enviado no meio da rodada poderia deixar a sessão mostrando como em execução e as mensagens que você enviou depois não eram entregues.

490 496 

491Personal skills em `~/.claude/skills/` se aplicam a sessões locais; uma sessão [SSH](#ssh-sessions) lê `~/.claude/skills/` do diretório home do host remoto, não de sua máquina. Sessões cloud carregam os skills habilitados para sua conta claude.ai em vez disso. Veja [Skills em sessões Cowork e cloud](/docs/pt/skills#skills-in-cowork-and-cloud-sessions).497Sessões locais carregam seus skills pessoais de `~/.claude/skills/`. Uma sessão [SSH](#ssh-sessions) lê `~/.claude/skills/` do diretório home do host remoto, não de sua máquina.

498 

499Sessões locais e cloud também carregam os skills habilitados para sua conta claude.ai. Sessões cloud os carregam em vez de `~/.claude/skills/`, como [Skills em sessões Cowork e cloud](/docs/pt/skills#skills-in-cowork-and-cloud-sessions) descreve.

492 500 

493<h3 id="install-plugins">501<h3 id="install-plugins">

494 Instalar plugins502 Instalar plugins


565| `port` | number | A porta em que seu servidor escuta. Padrão é 3000 |573| `port` | number | A porta em que seu servidor escuta. Padrão é 3000 |

566| `cwd` | string | Diretório de trabalho relativo à raiz do seu projeto. Padrão é a raiz do projeto. Use `${workspaceFolder}` para referenciar a raiz do projeto explicitamente |574| `cwd` | string | Diretório de trabalho relativo à raiz do seu projeto. Padrão é a raiz do projeto. Use `${workspaceFolder}` para referenciar a raiz do projeto explicitamente |

567| `env` | object | Variáveis de ambiente adicionais como pares chave-valor, como `{ "NODE_ENV": "development" }`. Não coloque segredos aqui já que este arquivo é commitado em seu repo. Para passar segredos ao seu servidor de desenvolvimento, defina-os no [editor de ambiente local](#local-sessions) em vez disso. |575| `env` | object | Variáveis de ambiente adicionais como pares chave-valor, como `{ "NODE_ENV": "development" }`. Não coloque segredos aqui já que este arquivo é commitado em seu repo. Para passar segredos ao seu servidor de desenvolvimento, defina-os no [editor de ambiente local](#local-sessions) em vez disso. |

568| `autoPort` | boolean | Como lidar com conflitos de porta. Veja abaixo |576| `autoPort` | boolean | Como lidar com conflitos de porta. Veja [Conflitos de porta](#port-conflicts) |

569| `program` | string | Um script a executar com `node`. Veja [quando usar `program` vs `runtimeExecutable`](#when-to-use-program-vs-runtimeexecutable) |577| `program` | string | Um script a executar com `node`. Veja [quando usar `program` vs `runtimeExecutable`](#when-to-use-program-vs-runtimeexecutable) |

570| `args` | string\[] | Argumentos passados para `program`. Usado apenas quando `program` está definido |578| `args` | string\[] | Argumentos passados para `program`. Usado apenas quando `program` está definido |

571| `url` | string | O endereço que a visualização abre em vez de `http://localhost:<port>`. Veja [abrir a visualização em uma URL específica](#open-the-preview-at-a-specific-url) |579| `url` | string | O endereço que a visualização abre em vez de `http://localhost:<port>`. Veja [abrir a visualização em uma URL específica](#open-the-preview-at-a-specific-url) |


949 Vindo do CLI?957 Vindo do CLI?

950</h2>958</h2>

951 959 

952Se você já usa o CLI do Claude Code, Desktop executa o mesmo mecanismo subjacente com uma interface gráfica. Você pode executar ambos simultaneamente na mesma máquina, até mesmo no mesmo projeto. Cada um mantém histórico de sessão separado, mas compartilham configuração e memória de projeto via arquivos CLAUDE.md.960Se você já usa o CLI do Claude Code, Desktop executa o mesmo mecanismo subjacente com uma interface gráfica. Você pode executar ambos simultaneamente na mesma máquina, até mesmo no mesmo projeto. Cada um mantém sua própria lista de sessão, e você pode trazer uma sessão CLI para Desktop. Eles compartilham configuração e memória de projeto via arquivos CLAUDE.md.

953 961 

954Para mover uma sessão CLI para Desktop, execute `/desktop` no terminal. Claude salva sua sessão e a abre no aplicativo desktop, depois sai do CLI. Este comando está disponível em macOS e Windows x64 quando você está conectado com uma assinatura Claude. Não está disponível com autenticação de chave de API ou em Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry.962Para mover uma sessão CLI para Desktop, execute `/desktop` no terminal. Claude salva sua sessão e a abre no aplicativo desktop, depois sai do CLI. Este comando está disponível em macOS e Windows x64 quando você está conectado com uma assinatura Claude. Não está disponível com autenticação de chave de API ou em Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry.

955 963 

964Para retomar uma sessão CLI de dentro do Desktop, digite `/resume` na caixa de prompt. Desktop lista as sessões que você iniciou a partir do CLI, e você pode pesquisá-las por título, pasta ou branch e visualizar onde cada uma parou. Selecione uma sessão e ela continua no aplicativo com sua conversa completa e contexto.

965 

956<Tip>966<Tip>

957 Quando usar Desktop vs CLI: use Desktop quando você quer gerenciar sessões paralelas em uma janela, organizar painéis lado a lado ou revisar alterações visualmente. Use o CLI quando você precisa de scripting, automação ou prefere um fluxo de trabalho de terminal.967 Quando usar Desktop vs CLI: use Desktop quando você quer gerenciar sessões paralelas em uma janela, organizar painéis lado a lado ou revisar alterações visualmente. Use o CLI quando você precisa de scripting, automação ou prefere um fluxo de trabalho de terminal.

958</Tip>968</Tip>


966| CLI | Equivalente desktop |976| CLI | Equivalente desktop |

967| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |977| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

968| `--model sonnet` | Menu suspenso de modelo ao lado do botão enviar |978| `--model sonnet` | Menu suspenso de modelo ao lado do botão enviar |

969| `--resume`, `--continue` | Clique em uma sessão na barra lateral |979| `--resume`, `--continue` | Clique em uma sessão na barra lateral, ou digite `/resume` na caixa de prompt para retomar uma sessão que você iniciou a partir do CLI |

970| `--permission-mode` | Seletor de modo ao lado do botão enviar |980| `--permission-mode` | Seletor de modo ao lado do botão enviar |

971| `--dangerously-skip-permissions` | Modo Bypass permissions. Em planos Pro e Max, ative em Configurações → Claude Code → "Allow bypass permissions mode"; em planos Team e Enterprise, a política organizacional controla |981| `--dangerously-skip-permissions` | Modo Bypass permissions. Em planos Pro e Max, ative em Configurações → Claude Code → "Allow bypass permissions mode"; em planos Team e Enterprise, a política organizacional controla |

972| `--add-dir` | Adicione múltiplos repos com o botão **+** em sessões na nuvem |982| `--add-dir` | Adicione múltiplos repos com o botão **+** em sessões na nuvem |

Details

29 Nesta página, "dispositivo" refere-se a um iPhone ou iPad simulado, um dos mesmos dispositivos simuladores que você gerencia no Xcode em **Window → Devices and Simulators**, não hardware físico.29 Nesta página, "dispositivo" refere-se a um iPhone ou iPad simulado, um dos mesmos dispositivos simuladores que você gerencia no Xcode em **Window → Devices and Simulators**, não hardware físico.

30</Note>30</Note>

31 31 

32O painel do simulador está disponível apenas em sessões locais. Em sessões [cloud](/docs/pt/desktop#run-long-running-tasks-remotely) e [SSH](/docs/pt/desktop#ssh-sessions), Claude é executado em uma máquina que não consegue alcançar os simuladores em seu Mac.32O painel do simulador está disponível apenas em sessões locais. Em sessões [cloud](/docs/pt/desktop#run-long-running-tasks-in-the-cloud) e [SSH](/docs/pt/desktop#ssh-sessions), Claude é executado em uma máquina que não consegue alcançar os simuladores em seu Mac.

33 33 

34<h2 id="run-your-app-in-the-simulator">34<h2 id="run-your-app-in-the-simulator">

35 Execute seu aplicativo no simulador35 Execute seu aplicativo no simulador

Details

70 70 

71 Você também pode selecionar:71 Você também pode selecionar:

72 72 

73 * **Cloud**: Execute sessões na nuvem que continuam mesmo se você fechar o aplicativo. As sessões na nuvem usam a mesma infraestrutura que [Claude Code na web](/docs/pt/claude-code-on-the-web).73 * **Cloud**: Execute sessões na nuvem que continuam mesmo se você fechar o aplicativo. Veja [Use Claude Code in the cloud](/docs/pt/claude-code-on-the-web) para saber como as sessões na nuvem funcionam.

74 * **SSH**: Conecte-se a uma máquina remota via SSH, como seus próprios servidores, VMs na nuvem ou contêineres de desenvolvimento. O Desktop instala Claude Code na máquina remota automaticamente na primeira vez que você se conecta.74 * **SSH**: Conecte-se a uma máquina remota via SSH, como seus próprios servidores, VMs na nuvem ou contêineres de desenvolvimento. O Desktop instala Claude Code na máquina remota automaticamente na primeira vez que você se conecta.

75 * **WSL** (Windows): Execute a sessão dentro de uma [distribuição WSL 2](/docs/pt/desktop-wsl); Claude Code, ferramentas e git são executados no lado Linux com caminhos nativos.75 * **WSL** (Windows): Execute a sessão dentro de uma [distribuição WSL 2](/docs/pt/desktop-wsl); Claude Code, ferramentas e git são executados no lado Linux com caminhos nativos.

76 </Step>76 </Step>


134 134 

135**Coloque Claude em um cronograma.** Configure [scheduled tasks](/docs/pt/desktop-scheduled-tasks) para executar Claude automaticamente em uma base recorrente: uma revisão de código diária todas as manhãs, uma auditoria de dependência semanal, ou um briefing que extrai de suas ferramentas conectadas.135**Coloque Claude em um cronograma.** Configure [scheduled tasks](/docs/pt/desktop-scheduled-tasks) para executar Claude automaticamente em uma base recorrente: uma revisão de código diária todas as manhãs, uma auditoria de dependência semanal, ou um briefing que extrai de suas ferramentas conectadas.

136 136 

137**Escale quando estiver pronto.** Abra [parallel sessions](/docs/pt/desktop#work-in-parallel-with-sessions) na barra lateral para trabalhar em várias tarefas ao mesmo tempo, cada uma em seu próprio Git worktree, e abra o [tasks pane](/docs/pt/desktop#watch-background-tasks) para observar os subagentes e comandos em segundo plano que uma sessão está executando. Abra um [side chat](/docs/pt/desktop#ask-a-side-question-without-derailing-the-session) para fazer uma pergunta sem descarrilar a thread principal. Envie [long-running work to the cloud](/docs/pt/desktop#run-long-running-tasks-remotely) para que continue mesmo se você fechar o aplicativo, ou [continue a session on the web or in your IDE](/docs/pt/desktop#continue-in-another-surface) se uma tarefa levar mais tempo do que o esperado. [Connect external tools](/docs/pt/desktop#extend-claude-code) como GitHub, Slack e Linear para reunir seu fluxo de trabalho.137**Escale quando estiver pronto.** Abra [parallel sessions](/docs/pt/desktop#work-in-parallel-with-sessions) na barra lateral para trabalhar em várias tarefas ao mesmo tempo, opcionalmente cada uma em seu próprio Git worktree, e abra o [tasks pane](/docs/pt/desktop#watch-background-tasks) para observar os subagentes e comandos em segundo plano que uma sessão está executando. Abra um [side chat](/docs/pt/desktop#ask-a-side-question-without-derailing-the-session) para fazer uma pergunta sem descarrilar a thread principal. Envie [long-running work to the cloud](/docs/pt/desktop#run-long-running-tasks-in-the-cloud) para que continue mesmo se você fechar o aplicativo, ou [continue a session on the web or in your IDE](/docs/pt/desktop#continue-in-another-surface) se uma tarefa levar mais tempo do que o esperado. [Connect external tools](/docs/pt/desktop#extend-claude-code) como GitHub, Slack e Linear para reunir seu fluxo de trabalho.

138 138 

139<h2 id="what’s-next">139<h2 id="what’s-next">

140 O que vem a seguir140 O que vem a seguir

devcontainer.md +1 −1

Details

138 138 

139`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` também desativa a avaliação de sinalizador de recurso da qual [Remote Control](/docs/pt/remote-control#requirements) e os outros [recursos que precisam de busca de sinalizador de recurso](/docs/pt/env-vars#features-that-need-feature-flag-fetching) dependem, então sessões no contêiner não podem usá-los.139`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` também desativa a avaliação de sinalizador de recurso da qual [Remote Control](/docs/pt/remote-control#requirements) e os outros [recursos que precisam de busca de sinalizador de recurso](/docs/pt/env-vars#features-that-need-feature-flag-fetching) dependem, então sessões no contêiner não podem usá-los.

140 140 

141O Dev Container Feature sempre instala a versão mais recente do Claude Code. Para fixar uma versão específica do Claude Code para compilações reproduzíveis, instale-o a partir do seu Dockerfile com `npm install -g @anthropic-ai/claude-code@X.Y.Z` em vez de usar o feature, e defina `DISABLE_AUTOUPDATER` como mostrado acima.141O Dev Container Feature sempre instala a versão mais recente do Claude Code. Para fixar uma versão específica do Claude Code para compilações reproduzíveis, instale-o a partir do seu Dockerfile com `npm install -g @anthropic-ai/claude-code@X.Y.Z` em vez de usar o feature, e defina `DISABLE_AUTOUPDATER` como `1` em `containerEnv`.

142 142 

143Para a lista completa de controles de política incluindo regras de permissão, restrições de ferramentas e listas de permissão de servidores MCP, veja [Configure Claude Code para sua organização](/docs/pt/admin-setup).143Para a lista completa de controles de política incluindo regras de permissão, restrições de ferramentas e listas de permissão de servidores MCP, veja [Configure Claude Code para sua organização](/docs/pt/admin-setup).

144 144 

Details

8 8 

9Plugins estendem Claude Code com skills, agentes, hooks e MCP servers. Marketplaces de plugins são catálogos que ajudam você a descobrir e instalar essas extensões sem construí-las você mesmo.9Plugins estendem Claude Code com skills, agentes, hooks e MCP servers. Marketplaces de plugins são catálogos que ajudam você a descobrir e instalar essas extensões sem construí-las você mesmo.

10 10 

11Você também pode ativar plugins no claude.ai, para você mesmo ou através de sua organização. Claude Code sincroniza aqueles em suas sessões sem uma instalação de marketplace, como [Plugins sincronizados do claude.ai](/docs/pt/plugins-reference#synced-plugins) descreve.

12 

11Procurando criar e distribuir seu próprio marketplace? Veja [Criar e distribuir um marketplace de plugins](/docs/pt/plugin-marketplaces).13Procurando criar e distribuir seu próprio marketplace? Veja [Criar e distribuir um marketplace de plugins](/docs/pt/plugin-marketplaces).

12 14 

13<h2 id="how-marketplaces-work">15<h2 id="how-marketplaces-work">


78Você também pode [criar seu próprio plugin LSP](/docs/pt/plugins-reference#lsp-servers) para outras linguagens.80Você também pode [criar seu próprio plugin LSP](/docs/pt/plugins-reference#lsp-servers) para outras linguagens.

79 81 

80<Note>82<Note>

81 Se você vir `Executable not found in $PATH` na aba Errors do `/plugin` após instalar um plugin, instale o binário necessário da tabela acima.83 Se você vir `Executable not found in $PATH` na aba Errors do `/plugin` após instalar um plugin, instale o binário que a tabela [code intelligence](#code-intelligence) lista para esse plugin.

82</Note>84</Note>

83 85 

84<h4 id="what-claude-gains-from-code-intelligence-plugins">86<h4 id="what-claude-gains-from-code-intelligence-plugins">


237* **URLs Git**: qualquer URL de repositório git, incluindo GitLab, Bitbucket e servidores auto-hospedados239* **URLs Git**: qualquer URL de repositório git, incluindo GitLab, Bitbucket e servidores auto-hospedados

238* **Caminhos locais**: diretórios ou caminhos diretos para arquivos `marketplace.json`240* **Caminhos locais**: diretórios ou caminhos diretos para arquivos `marketplace.json`

239* **URLs remotas**: URLs diretas para arquivos `marketplace.json` hospedados241* **URLs remotas**: URLs diretas para arquivos `marketplace.json` hospedados

242* **claude.ai**: marketplaces hospedados em claude.ai para sua conta, como a biblioteca de plugins da sua organização, que você [adiciona pelo nome na aba **Marketplaces** ou seu shell](#add-from-claude-ai) em vez de pela fonte

240 243 

241<h3 id="add-from-github">244<h3 id="add-from-github">

242 Adicione do GitHub245 Adicione do GitHub


314 Marketplaces baseados em URL têm algumas limitações comparadas a marketplaces baseados em Git. Se os installs de plugins de um marketplace baseado em URL falharem, veja [Troubleshooting](/docs/pt/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces).317 Marketplaces baseados em URL têm algumas limitações comparadas a marketplaces baseados em Git. Se os installs de plugins de um marketplace baseado em URL falharem, veja [Troubleshooting](/docs/pt/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces).

315</Note>318</Note>

316 319 

320<h3 id="add-from-claude-ai">

321 Adicione de claude.ai

322</h3>

323 

324Em sessões de terminal onde [plugins sincronizam de sua conta claude.ai](/docs/pt/plugins-reference#synced-plugins), claude.ai também pode listar marketplaces para você, como a biblioteca de plugins da sua organização e seus uploads claude.ai. `claude plugin marketplace list` os imprime em uma seção `From claude.ai:`, e a aba **Marketplaces** do `/plugin` os lista. Selecione um lá para adicioná-lo. Adicionar um marketplace de claude.ai requer Claude Code v2.1.273 ou posterior.

325 

326Para adicionar um do seu shell, execute `claude plugin marketplace add` com a flag `--claudeai` e o nome mostrado na lista:

327 

328```bash theme={null}

329claude plugin marketplace add --claudeai claudeai-organization-library

330```

331 

332Claude Code registra o marketplace sob um nome local que começa com `claudeai-`, derivado do nome que claude.ai o lista: um marketplace listado como "Organization library" se registra como `claudeai-organization-library`. Instale seus plugins por esse nome, por exemplo com `claude plugin install <plugin>@claudeai-organization-library`.

333 

334Se você sair ou entrar com uma conta diferente, o marketplace permanece configurado mas não mostra plugins, e os plugins que você já instalou dele continuam carregando.

335 

336A seção `From claude.ai:` também pode listar marketplaces baseados em git compartilhados através de claude.ai. Você adiciona aqueles com o comando `marketplace add` ordinário, usando a fonte que a lista imprime.

337 

317<h2 id="install-plugins">338<h2 id="install-plugins">

318 Instale plugins339 Instale plugins

319</h2>340</h2>

320 341 

321Uma vez que você adicionou marketplaces, você pode instalar um plugin pelo nome:342Uma vez que você adicionou marketplaces, você pode instalar um plugin pelo nome. Para um marketplace que você ainda não adicionou, você pode em vez disso [adicioná-lo e instalar em um comando](#add-a-marketplace-and-install-in-one-command).

343 

344Para instalar pelo nome:

322 345 

323```shell theme={null}346```shell theme={null}

324/plugin install plugin-name@marketplace-name347/plugin install plugin-name@marketplace-name


360 Certifique-se de confiar em um plugin antes de instalá-lo. Anthropic não controla quais MCP servers, arquivos ou outro software estão incluídos em plugins e não pode verificar que funcionam conforme pretendido. Verifique a página inicial de cada plugin para mais informações.383 Certifique-se de confiar em um plugin antes de instalá-lo. Anthropic não controla quais MCP servers, arquivos ou outro software estão incluídos em plugins e não pode verificar que funcionam conforme pretendido. Verifique a página inicial de cada plugin para mais informações.

361</Warning>384</Warning>

362 385 

386<h3 id="add-a-marketplace-and-install-in-one-command">

387 Adicione um marketplace e instale em um comando

388</h3>

389 

390Para instalar um plugin de um marketplace que você ainda não adicionou, nomeie a fonte do marketplace com `--marketplace`. Requer Claude Code v2.1.275 ou posterior.

391 

392```shell theme={null}

393/plugin install quality-review-plugin --marketplace your-org/plugins

394```

395 

396A fonte assume [as mesmas formas que `/plugin marketplace add`](#add-marketplaces), como GitHub `owner/repo`, uma URL git ou um caminho local, exceto que não pode conter espaços. Dê o nome do plugin sem um sufixo `@marketplace`.

397 

398Se você ainda não adicionou esse marketplace, Claude Code mostra a fonte que resolveu e pede que você confirme antes de adicioná-lo. Recusar cancela a instalação e não adiciona nada. Uma vez que o marketplace é adicionado, os detalhes do plugin abrem e você escolhe um [escopo de instalação](/docs/pt/settings#where-settings-live).

399 

363<h2 id="manage-installed-plugins">400<h2 id="manage-installed-plugins">

364 Gerencie plugins instalados401 Gerencie plugins instalados

365</h2>402</h2>


372* digitar para filtrar por nome ou descrição do plugin409* digitar para filtrar por nome ou descrição do plugin

373* pressionar Enter para abrir a visualização de detalhes de um plugin e habilitar, desabilitar ou desinstalá-lo410* pressionar Enter para abrir a visualização de detalhes de um plugin e habilitar, desabilitar ou desinstalá-lo

374 411 

412Claude Code também lista os [plugins sincronizados da sua conta claude.ai](/docs/pt/plugins-reference#synced-plugins) na aba **Installed**, com `synced` como sua fonte. Você pode habilitar ou desabilitar um lá, a menos que sua organização o tenha marcado como obrigatório. Para remover um, desative-o em claude.ai. Plugins sincronizados aparecem em sessões de terminal no Claude Code v2.1.273 ou posterior.

413 

375Quando você desinstala um plugin que o `.claude/settings.json` de um projeto habilita, Claude Code pergunta qual escopo você quer dizer: desabilitá-lo apenas para você, o que escreve uma substituição em seu `.claude/settings.local.json` e deixa o plugin instalado para o projeto, ou desinstalá-lo para todos, o que o remove do `.claude/settings.json` compartilhado.414Quando você desinstala um plugin que o `.claude/settings.json` de um projeto habilita, Claude Code pergunta qual escopo você quer dizer: desabilitá-lo apenas para você, o que escreve uma substituição em seu `.claude/settings.local.json` e deixa o plugin instalado para o projeto, ou desinstalá-lo para todos, o que o remove do `.claude/settings.json` compartilhado.

376 415 

377A visualização de detalhes mostra os componentes que o plugin contribui: comandos, skills, agentes, hooks, servidores MCP e servidores LSP. O mesmo inventário está disponível na linha de comando com `claude plugin details`.416A visualização de detalhes mostra os componentes que o plugin contribui: comandos, skills, agentes, hooks, servidores MCP e servidores LSP. O mesmo inventário está disponível na linha de comando com `claude plugin details`.


444* Um comando `claude plugin` que você executou em outro terminal483* Um comando `claude plugin` que você executou em outro terminal

445* Edições em um plugin que você carregou com [`--plugin-dir`](/docs/pt/plugins#test-your-plugins-locally) enquanto você o desenvolve484* Edições em um plugin que você carregou com [`--plugin-dir`](/docs/pt/plugins#test-your-plugins-locally) enquanto você o desenvolve

446* Um plugin [auto-atualização](#configure-auto-updates) cuja notificação pede que você recarregue485* Um plugin [auto-atualização](#configure-auto-updates) cuja notificação pede que você recarregue

486* Uma [sincronização da sua conta claude.ai](/docs/pt/plugins-reference#synced-plugins) que adicionou, atualizou ou removeu um plugin e mostrou uma notificação pedindo que você recarregue

447* Uma mudança em uma pasta [`--plugin-dir`](/docs/pt/plugins#test-your-plugins-locally) que Claude Code manteve porque aplicá-la invalidaria o cache de prompt487* Uma mudança em uma pasta [`--plugin-dir`](/docs/pt/plugins#test-your-plugins-locally) que Claude Code manteve porque aplicá-la invalidaria o cache de prompt

448 488 

449Antes de v2.1.268, plugins que você habilitou, desabilitou ou desinstalou no menu, e instalações que não foram ativadas durante a instalação, permaneceram pendentes até que você executasse `/reload-plugins`.489Antes de v2.1.268, plugins que você habilitou, desabilitou ou desinstalou no menu, e instalações que não foram ativadas durante a instalação, permaneceram pendentes até que você executasse `/reload-plugins`.


5213. Escolha um marketplace da lista5613. Escolha um marketplace da lista

5224. Selecione **Enable auto-update** ou **Disable auto-update**5624. Selecione **Enable auto-update** ou **Disable auto-update**

523 563 

524`claude-plugins-official` e a maioria dos outros marketplaces oficiais da Anthropic têm atualização automática habilitada por padrão. Marketplaces de terceiros e de desenvolvimento local têm atualização automática desabilitada por padrão.564`claude-plugins-official`, a maioria dos outros marketplaces oficiais da Anthropic e [marketplaces adicionados do claude.ai](#add-from-claude-ai) têm atualização automática habilitada por padrão. Outros marketplaces de terceiros e marketplaces de desenvolvimento local têm atualização automática desabilitada por padrão.

525 565 

526Os administradores também podem definir `"autoUpdate": true` em cada entrada [`extraKnownMarketplaces`](/docs/pt/settings-reference#extraknownmarketplaces) nas configurações gerenciadas para habilitar a atualização automática para um marketplace da organização sem exigir que cada usuário alterne.566Os administradores também podem definir `"autoUpdate": true` em cada entrada [`extraKnownMarketplaces`](/docs/pt/settings-reference#extraknownmarketplaces) nas configurações gerenciadas para habilitar a atualização automática para um marketplace da organização sem exigir que cada usuário alterne.

527 567 

env-vars.md +176 −167

Details

124 Variáveis124 Variáveis

125</h2>125</h2>

126 126 

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

128 128 

129<Note>129<Note>

130 Para variáveis que ativam ou desativam um comportamento, defina `1` ou `true` para ativar e `0` ou `false` para desativar, em qualquer capitalização.130 Para variáveis que ativam ou desativam um comportamento, defina `1` ou `true` para ativar e `0` ou `false` para desativar, em qualquer capitalização.

131 131 

132 Algumas variáveis leem apenas se você as definiu, então qualquer valor não vazio, incluindo `0`, ativa o comportamento, e você desativa o comportamento desconfigurado a variável ou definindo-a como um valor vazio. Essas variáveis funcionam dessa forma:132 Algumas variáveis leem apenas se você as definiu, então qualquer valor não vazio, incluindo `0`, ativa o comportamento, e você desativa o comportamento ao desconfigurar a variável ou defini-la como um valor vazio. Essas variáveis funcionam dessa forma:

133 133 

134 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`134 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

135 * `DISABLE_TELEMETRY`135 * `DISABLE_TELEMETRY`


142</Note>142</Note>

143 143 

144| Variável | Propósito |144| Variável | Propósito |

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

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

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

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

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

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

151| `ANTHROPIC_BASE_URL` | Substitua o endpoint da API para rotear solicitações através de um proxy ou gateway. Quando definido para um host que não é de primeira parte, [busca de ferramentas MCP](/docs/pt/mcp#scale-with-mcp-tool-search) é desabilitada por padrão. Defina `ENABLE_TOOL_SEARCH=true` se seu proxy encaminha blocos `tool_reference`. A partir da v2.1.196, [Remote Control](/docs/pt/remote-control#requirements) é desabilitado quando isso aponta para um host diferente de `api.anthropic.com`, correspondendo ao seu comportamento no Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry |151| `ANTHROPIC_BASE_URL` | Substitua o endpoint da API para rotear solicitações através de um proxy ou gateway. Quando definido para um host que não é de primeira parte, [busca de ferramentas MCP](/docs/pt/mcp#scale-with-mcp-tool-search) é desabilitada por padrão. Defina `ENABLE_TOOL_SEARCH=true` se seu proxy encaminha blocos `tool_reference`. A partir da v2.1.196, [Remote Control](/docs/pt/remote-control#requirements) é desabilitado quando isso aponta para um host diferente de `api.anthropic.com`, correspondendo ao seu comportamento no Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry |

152| `ANTHROPIC_BEDROCK_BASE_URL` | Substitua a URL do endpoint Amazon Bedrock. Use para endpoints Amazon Bedrock personalizados ou ao rotear através de um [gateway LLM](/docs/pt/llm-gateway). Veja [Amazon Bedrock](/docs/pt/amazon-bedrock) |152| `ANTHROPIC_BEDROCK_BASE_URL` | Substitua a URL do endpoint do Amazon Bedrock. Use para endpoints personalizados do Amazon Bedrock ou ao rotear através de um [gateway LLM](/docs/pt/llm-gateway). Veja [Amazon Bedrock](/docs/pt/amazon-bedrock) |

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

171| `ANTHROPIC_DEFAULT_OPUS_MODEL` | ID do modelo que o alias `opus` resolve, e que `opusplan` usa enquanto Plan Mode está ativo. Veja [Configuração de modelo](/docs/pt/model-config#environment-variables) |171| `ANTHROPIC_DEFAULT_OPUS_MODEL` | ID do modelo que o alias `opus` resolve para, e que `opusplan` usa enquanto Plan Mode está ativo. Veja [Configuração de modelo](/docs/pt/model-config#environment-variables) |

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

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

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

175| `ANTHROPIC_DEFAULT_SONNET_MODEL` | ID do modelo que o alias `sonnet` resolve, e que `opusplan` usa quando Plan Mode não está ativo. Veja [Configuração de modelo](/docs/pt/model-config#environment-variables) |175| `ANTHROPIC_DEFAULT_SONNET_MODEL` | ID do modelo que o alias `sonnet` resolve para, e que `opusplan` usa quando Plan Mode não está ativo. Veja [Configuração de modelo](/docs/pt/model-config#environment-variables) |

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

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

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

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

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

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

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

183| `ANTHROPIC_FOUNDRY_RESOURCE` | Nome do recurso Microsoft Foundry (por exemplo, `my-resource`). Obrigatório se `ANTHROPIC_FOUNDRY_BASE_URL` não estiver definido (veja [Microsoft Foundry](/docs/pt/microsoft-foundry)) |183| `ANTHROPIC_FOUNDRY_RESOURCE` | Nome do recurso do Microsoft Foundry (por exemplo, `my-resource`). Obrigatório se `ANTHROPIC_FOUNDRY_BASE_URL` não estiver definido (veja [Microsoft Foundry](/docs/pt/microsoft-foundry)) |

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

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

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

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

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

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

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

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

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

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

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

195| `BASH_DEFAULT_TIMEOUT_MS` | Timeout padrão para comandos bash de longa duração (padrão: 120000, ou 2 minutos) |195| `BASH_DEFAULT_TIMEOUT_MS` | Timeout padrão para comandos bash de longa duração (padrão: 120000, ou 2 minutos) |

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

197| `BASH_MAX_TIMEOUT_MS` | Timeout máximo que o modelo pode definir para comandos bash de longa duração (padrão: 600000, ou 10 minutos). O teto efetivo é o maior entre isso e `BASH_DEFAULT_TIMEOUT_MS` |197| `BASH_MAX_TIMEOUT_MS` | Timeout máximo que o modelo pode definir para comandos bash de longa duração (padrão: 600000, ou 10 minutos). O teto efetivo é o maior entre isso e `BASH_DEFAULT_TIMEOUT_MS` |

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

199| `CCR_FORCE_BUNDLE` | Defina como `1` para forçar [`claude --cloud`](/docs/pt/claude-code-on-the-web#send-local-repositories-without-github) a agrupar e carregar seu repositório local em vez de clonar de seu remoto |199| `CCR_FORCE_BUNDLE` | Defina como `1` para forçar [`claude --cloud`](/docs/pt/claude-code-on-the-web#send-local-repositories-without-github) a agrupar e carregar seu repositório local em vez de clonar de seu remoto |

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

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

202| `CLAUDE_AFK_TIMEOUT_MS` | Quantos milissegundos de tempo ocioso antes de um diálogo [`AskUserQuestion`](/docs/pt/tools-reference) não respondido auto-continuar sem você. Auto-continuação está desativada por padrão; opte por ela com a configuração [`askUserQuestionTimeout`](/docs/pt/settings-reference#askuserquestiontimeout). Essa variável é uma substituição para demos e testes automatizados: quando definida, tem precedência sobre essa configuração e ativa auto-continuação mesmo quando a configuração não está definida ou é `never`. Definir `0` não desativa o timeout; fecha o diálogo imediatamente. Na v2.1.198 e v2.1.199, auto-continuação estava ativa por padrão com um timeout de `60000` (60 segundos). Requer Claude Code v2.1.198 ou posterior |202| `CLAUDE_AFK_TIMEOUT_MS` | Quantos milissegundos de tempo ocioso antes de um diálogo [`AskUserQuestion`](/docs/pt/tools-reference) sem resposta auto-continuar sem você. Auto-continuação está desativada por padrão; opte por ela com a configuração [`askUserQuestionTimeout`](/docs/pt/settings-reference#askuserquestiontimeout). Essa variável é uma substituição para demos e testes automatizados: quando definida, tem precedência sobre essa configuração e ativa auto-continuação mesmo quando a configuração não está definida ou é `never`. Definir `0` não desativa o timeout; fecha o diálogo imediatamente. Na v2.1.198 e v2.1.199, auto-continuação estava ativa por padrão com um timeout de `60000` (60 segundos). Requer Claude Code v2.1.198 ou posterior |

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

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

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

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

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

208| `CLAUDE_AX_PREPARK_MS` | Em [modo leitor de tela](/docs/pt/accessibility#what-your-screen-reader-hears), quantos milissegundos Claude Code aguarda, com o cursor no início da linha, antes de escrever uma linha nova ou alterada. Padrão `50`. Defina `0` para escrever imediatamente. Claude Code limita a espera a `5000`. Requer Claude Code v2.1.233 ou posterior |208| `CLAUDE_AX_PREPARK_MS` | No [modo leitor de tela](/docs/pt/accessibility#what-your-screen-reader-hears), quantos milissegundos Claude Code aguarda, com o cursor no início da linha, antes de escrever uma linha nova ou alterada. Padrão `50`. Defina `0` para escrever imediatamente. Claude Code limita a espera a `5000`. Requer Claude Code v2.1.233 ou posterior |

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

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

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

212| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | Timeout em milissegundos para o watchdog de inatividade de streaming em nível de byte; quando definido, tem precedência sobre `CLAUDE_STREAM_IDLE_TIMEOUT_MS` para esse watchdog e deixa o watchdog em nível de evento inalterado. Claude Code limita essa variável entre 10 segundos e 30 minutos. Requer Claude Code v2.1.210 ou posterior |212| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | Timeout em milissegundos para o watchdog de inatividade de streaming em nível de byte; quando definido, tem precedência sobre `CLAUDE_STREAM_IDLE_TIMEOUT_MS` para esse watchdog e deixa o watchdog em nível de evento inalterado. Claude Code limita essa variável entre 10 segundos e 30 minutos. Requer Claude Code v2.1.210 ou posterior |

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

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

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

216| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Defina como `1` para repintar a tela inteira em cada quadro em [renderização fullscreen](/docs/pt/fullscreen) em vez de enviar atualizações incrementais. Use isso se o modo fullscreen mostrar fragmentos de texto obsoletos ou deslocados. Claude Code ativa isso automaticamente para sessões em segundo plano e [agent view](/docs/pt/agent-view) no Windows |216| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Defina como `1` para repintar a tela inteira em cada quadro em [renderização fullscreen](/docs/pt/fullscreen) em vez de enviar atualizações incrementais. Use isso se o modo fullscreen mostrar fragmentos de texto obsoletos ou deslocados. Claude Code ativa isso automaticamente para sessões em segundo plano e [agent view](/docs/pt/agent-view) no Windows |

217| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Defina como `1` para enviar o parâmetro [effort](/docs/pt/model-config#adjust-effort-level) com cada solicitação, mesmo quando Claude Code não reconhece o ID do modelo como capaz de effort. Use isso ao rotear através de um [gateway LLM](/docs/pt/llm-gateway) ou provedor de terceiros que serve modelos sob identificadores personalizados. Modelos que rejeitam o parâmetro effort na API, incluindo modelos Claude 3, Sonnet 4.0 e 4.5, Opus 4.0 e 4.1, e Haiku 4.5, ainda são excluídos para que as solicitações não falhem |217| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Defina como `1` para enviar o parâmetro [effort](/docs/pt/model-config#adjust-effort-level) com cada solicitação, mesmo quando Claude Code não reconhece o ID do modelo como capaz de effort. Use isso ao rotear através de um [gateway LLM](/docs/pt/llm-gateway) ou provedor de terceiros que serve modelos sob identificadores personalizados. Modelos que rejeitam o parâmetro effort na API, incluindo modelos Claude 3, Sonnet 4.0 e 4.5, Opus 4.0 e 4.1, e Haiku 4.5, ainda são excluídos para que as solicitações não falhem |

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

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

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

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

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

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

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

225| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Substitua a [conexão IDE](/docs/pt/vs-code) automática. Por padrão, Claude Code se conecta automaticamente quando iniciado dentro de um terminal integrado de IDE suportado. Defina como `false` para evitar isso. Defina como `true` para forçar uma tentativa de conexão quando a auto-detecção falha, como quando tmux obscurece o terminal pai. Tem precedência sobre a configuração global [`autoConnectIde`](/docs/pt/settings-reference#autoconnectide) |225| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Substitua a [conexão IDE](/docs/pt/vs-code) automática. Por padrão, Claude Code se conecta automaticamente quando iniciado dentro de um terminal integrado de um IDE suportado. Defina como `false` para evitar isso. Defina como `true` para forçar uma tentativa de conexão quando a detecção automática falha, como quando tmux obscurece o terminal pai. Tem precedência sobre a configuração global [`autoConnectIde`](/docs/pt/settings-reference#autoconnectide) |

226| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Tempo em milissegundos que Claude Code aguarda o provedor de credencial padrão AWS produzir credenciais antes da solicitação falhar com [`AWS default-chain credential resolve timed out`](/docs/pt/errors#aws-default-chain-credential-resolve-timed-out) (padrão: `60000`). Aumente quando uma etapa em sua cadeia legitimamente precisa de mais tempo, como um sign-in baseado em navegador com MFA através de um wrapper como `aws-vault`. Aplica-se em qualquer lugar que Claude Code assine com a cadeia padrão: [Amazon Bedrock](/docs/pt/amazon-bedrock#credential-caching-and-resolution-timeout), [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), e o [endpoint Mantle](/docs/pt/amazon-bedrock#use-the-mantle-endpoint). Requer Claude Code v2.1.207 ou posterior |226| `CLAUDE_CODE_AUTO_MODE_SERVER` | No Amazon Bedrock, Google Cloud's Agent Platform, e Microsoft Foundry, defina como `1` para ter o classificador do lado do servidor da plataforma revisar ações [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode); onde a plataforma não executa o classificador, Claude Code volta para suas próprias solicitações de classificador. Quando não definido ou `0`, o classificador executa através de solicitações que Claude Code envia. Não tem efeito em outros provedores, incluindo a API Anthropic. Requer Claude Code v2.1.271 ou posterior |

227| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Tempo em milissegundos que Claude Code aguarda a cadeia de provedor de credenciais padrão AWS produzir credenciais antes da solicitação falhar com [`AWS default-chain credential resolve timed out`](/docs/pt/errors#aws-default-chain-credential-resolve-timed-out) (padrão: `60000`). Aumente quando uma etapa em sua cadeia legitimamente precisa de mais tempo, como uma entrada SSO baseada em navegador com MFA através de um wrapper como `aws-vault`. Aplica-se onde quer que Claude Code assine com a cadeia padrão: [Amazon Bedrock](/docs/pt/amazon-bedrock#credential-caching-and-resolution-timeout), [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), e o [endpoint Mantle](/docs/pt/amazon-bedrock#use-the-mantle-endpoint). Requer Claude Code v2.1.207 ou posterior |

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

229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Defina como `0` para fazer uma sessão não interativa relatar um status ocioso para seu host em cada final de volta, mesmo enquanto trabalho em segundo plano ainda está em execução. Por padrão, a sessão continua relatando um status em execução após o final da volta enquanto trabalho em segundo plano como um agente em segundo plano ou uma execução [fluxo de trabalho](/docs/pt/workflows) ainda está ativo. Isso mantém um host que observa o status, como uma lista de sessão remota, de anunciar que Claude está esperando sua entrada no meio do trabalho. Comandos de shell em segundo plano, como um servidor dev, não mantêm o status em execução. O padrão de status em execução e o opt-out `0` requerem Claude Code v2.1.269 ou posterior; em versões anteriores, defina `1` para manter o status em execução |

227| `CLAUDE_CODE_BRIDGE_SESSION_ID` | Defina automaticamente em subprocessos de ferramenta Bash e [comando hook](/docs/pt/hooks) enquanto a sessão tem uma conexão [Remote Control](/docs/pt/remote-control) ativa, e removido quando a conexão termina. O valor é o ID da sessão em forma `session_`, o mesmo identificador que aparece na URL `claude.ai/code` da sessão, para que um script possa vincular de volta à sessão que o executou. Requer Claude Code v2.1.199 ou posterior. Em [sessões em nuvem](/docs/pt/claude-code-on-the-web), leia `CLAUDE_CODE_REMOTE_SESSION_ID` |230| `CLAUDE_CODE_BRIDGE_SESSION_ID` | Defina automaticamente em subprocessos de ferramenta Bash e [comando hook](/docs/pt/hooks) enquanto a sessão tem uma conexão [Remote Control](/docs/pt/remote-control) ativa, e removido quando a conexão termina. O valor é o ID da sessão em forma `session_`, o mesmo identificador que aparece na URL `claude.ai/code` da sessão, para que um script possa vincular de volta à sessão que o executou. Requer Claude Code v2.1.199 ou posterior. Em [sessões em nuvem](/docs/pt/claude-code-on-the-web), leia `CLAUDE_CODE_REMOTE_SESSION_ID` |

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

229| `CLAUDE_CODE_CERT_STORE` | Lista separada por vírgulas de fontes de certificado CA para conexões TLS. `bundled` é o conjunto Mozilla CA enviado com Claude Code. `system` é o armazenamento de confiança do sistema operacional, lido apenas em runtimes com `tls.getCACertificates`: o binário nativo, ou Node 22.15 ou posterior para instalações npm. Veja [Armazenamento de certificado CA](/docs/pt/network-config#ca-certificate-store). Padrão é `bundled,system` |232| `CLAUDE_CODE_CERT_STORE` | Lista separada por vírgulas de fontes de certificado CA para conexões TLS. `bundled` é o conjunto Mozilla CA enviado com Claude Code. `system` é o armazenamento de confiança do sistema operacional, lido apenas em runtimes com `tls.getCACertificates`: o binário nativo, ou Node 22.15 ou posterior para instalações npm. Veja [Armazenamento de certificado CA](/docs/pt/network-config#ca-certificate-store). Padrão é `bundled,system` |

230| `CLAUDE_CODE_CHILD_SESSION` | Defina como `1` em subprocessos que Claude Code gera via ferramentas Bash, PowerShell e Monitor, comandos [hook](/docs/pt/hooks), e comandos [status line](/docs/pt/statusline). Não definido para subprocessos [servidor MCP](/docs/pt/mcp) stdio, que são de longa duração e sobrevivem à sessão que os gerou. Diferentemente de `CLAUDECODE`, isso é definido apenas por Claude Code quando ele inicia um subprocesso e não por extensões IDE, então distingue confiável uma sessão aninhada de um `claude` de nível superior iniciado em um terminal integrado IDE. Um `claude` TUI interativo aninhado iniciado dessa forma é automaticamente excluído de `--resume`, `--continue`, histórico de seta para cima, e a lista `claude agents`. Sessões `claude -p` não interativas ainda persistem. Defina `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` para substituir essa exclusão. Requer Claude Code v2.1.172 ou posterior |233| `CLAUDE_CODE_CHILD_SESSION` | Defina como `1` em subprocessos que Claude Code gera via ferramentas Bash, PowerShell e Monitor, comandos [hook](/docs/pt/hooks), e comandos [status line](/docs/pt/statusline). Não definido para subprocessos [servidor MCP](/docs/pt/mcp) stdio, que são de longa duração e sobrevivem à sessão que os gerou. Diferentemente de `CLAUDECODE`, isso é definido apenas por Claude Code quando ele inicia um subprocesso e não por extensões IDE, então distingue confiável uma sessão aninhada de um `claude` de nível superior iniciado em um terminal integrado IDE. Um `claude` TUI interativo aninhado iniciado dessa forma é automaticamente excluído de `--resume`, `--continue`, histórico de seta para cima, e a lista `claude agents`. Sessões não interativas `claude -p` ainda persistem. Defina `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` para substituir essa exclusão. Requer Claude Code v2.1.172 ou posterior |

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

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

233| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Frase-passe para CLAUDE\_CODE\_CLIENT\_KEY criptografado (opcional) |236| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Frase-passe para CLAUDE\_CODE\_CLIENT\_KEY criptografado (opcional) |

234| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Removido na v2.1.186 e agora é um no-op. Anteriormente definia um timeout separado para a fase de conexão, TLS e cabeçalho de resposta de uma solicitação de API de streaming. Use `API_TIMEOUT_MS` para o timeout por solicitação. Para a fase de cabeçalho de resposta de uma solicitação de streaming, veja `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |237| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Removido na v2.1.186 e agora é um no-op. Anteriormente definia um timeout separado para a fase de conexão, TLS e cabeçalho de resposta de uma solicitação de API de streaming. Use `API_TIMEOUT_MS` para o timeout por solicitação. Para a fase de cabeçalho de resposta de uma solicitação de streaming, veja `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |

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

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

237| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Defina como `1` para desabilitar suporte a [janela de contexto 1M](/docs/pt/model-config#extended-context). Quando definido, variantes de modelo 1M não estão disponíveis no seletor de modelo, e Claude Code mantém sessões em modelos com uma janela nativa 1M, como [Sonnet 5](/docs/pt/model-config#sonnet-5-context-window) e os modelos Fable, para uma janela 200K; veja [Contexto estendido](/docs/pt/model-config#extended-context) para como a retenção é aplicada. Útil para ambientes empresariais com requisitos de conformidade. Para seu papel em corrigir a janela para um ID de modelo `[1m]` não reconhecido, veja [Corrigir a janela para um ID de modelo gateway ou personalizado](/docs/pt/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |240| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Defina como `1` para desabilitar suporte a [janela de contexto 1M](/docs/pt/model-config#extended-context). Quando definido, variantes de modelo 1M não estão disponíveis no seletor de modelo, e Claude Code mantém sessões em modelos com uma janela nativa 1M, como [Sonnet 5](/docs/pt/model-config#sonnet-5-context-window) e os modelos Fable, para uma janela 200K; veja [Contexto estendido](/docs/pt/model-config#extended-context) para como a retenção é aplicada. Útil para ambientes empresariais com requisitos de conformidade. Para seu papel em corrigir a janela para um ID de modelo não reconhecido `[1m]`, veja [Corrigir a janela para um ID de modelo gateway ou personalizado](/docs/pt/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

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

239| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Defina como `1` para parar Claude Code de mesclar blocos `env` de [configurações gerenciadas](/docs/pt/managed-settings#precedence-within-the-managed-tier) por chave em fontes de admin, para que apenas o bloco `env` da fonte de prioridade mais alta se aplique, como antes da v2.1.223. Defina no ambiente que inicia Claude Code, já que Claude Code ignora uma cópia entregue através de um bloco `env` de configurações. Requer Claude Code v2.1.223 ou posterior |242| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Defina como `1` para impedir que Claude Code mescle blocos `env` de [configurações gerenciadas](/docs/pt/managed-settings#precedence-within-the-managed-tier) por chave em fontes de admin, para que apenas o bloco `env` da fonte de prioridade mais alta se aplique, como antes da v2.1.223. Defina no ambiente que inicia Claude Code, já que Claude Code ignora uma cópia entregue através de um bloco `env` de configurações. Requer Claude Code v2.1.223 ou posterior |

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

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

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

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

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

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

246| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Defina como `1` para desabilitar toda funcionalidade de tarefa em segundo plano, incluindo o parâmetro `run_in_background` em ferramentas Bash e subagente, auto-backgrounding, e o atalho Ctrl+B |249| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Defina como `1` para desabilitar toda funcionalidade de tarefa em segundo plano, incluindo o parâmetro `run_in_background` em ferramentas Bash e subagente, auto-backgrounding, e o atalho Ctrl+B |

247| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Defina como `1` para parar Claude Code de tratar uma resposta de streaming [Amazon Bedrock](/docs/pt/amazon-bedrock) com cabeçalho `Content-Type` ausente ou vazio como fluxo de evento binário Amazon Bedrock. Por padrão, Claude Code assume que um gateway descartou o cabeçalho de uma resposta caso contrário não modificada, para que o streaming continue funcionando. Defina isso apenas para um gateway que também re-emite o stream como server-sent events; Claude Code então lê o corpo sem cabeçalho como server-sent events. Requer Claude Code v2.1.239 ou posterior |250| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Defina como `1` para impedir que Claude Code trate uma resposta de streaming [Amazon Bedrock](/docs/pt/amazon-bedrock) com cabeçalho `Content-Type` ausente ou vazio como fluxo de evento binário do Amazon Bedrock. Por padrão, Claude Code assume que um gateway descartou o cabeçalho de uma resposta caso contrário não modificada, para que o streaming continue funcionando. Defina isso apenas para um gateway que também re-emite o fluxo como eventos enviados pelo servidor; Claude Code então lê o corpo sem cabeçalho como eventos enviados pelo servidor. Requer Claude Code v2.1.239 ou posterior |

248| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Defina como `1` para pular a verificação de que uma resposta de streaming [Amazon Bedrock](/docs/pt/amazon-bedrock) carrega o tipo de conteúdo `application/vnd.amazon.eventstream`. Sem essa variável, quando uma resposta carrega um tipo de conteúdo diferente, Claude Code falha a solicitação com um erro nomeando esse tipo, o que significa um [gateway ou proxy está transformando a resposta](/docs/pt/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Configure o gateway para encaminhar o cabeçalho `Content-Type` e o corpo não modificados em vez de definir essa variável. Requer Claude Code v2.1.208 ou posterior |251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Defina como `1` para pular a verificação de que uma resposta de streaming [Amazon Bedrock](/docs/pt/amazon-bedrock) carrega o tipo de conteúdo `application/vnd.amazon.eventstream`. Sem essa variável, quando uma resposta carrega um tipo de conteúdo diferente, Claude Code falha a solicitação com um erro nomeando esse tipo, o que significa que um [gateway ou proxy está transformando a resposta](/docs/pt/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Configure o gateway para encaminhar o cabeçalho `Content-Type` e o corpo não modificados em vez de definir essa variável. Requer Claude Code v2.1.208 ou posterior |

249| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Defina como `1` para parar comandos de shell em segundo plano em execução de uma [sessão em segundo plano](/docs/pt/agent-view), fluxos de trabalho dinâmicos, e, a partir da v2.1.198, subagentes em segundo plano quando o [supervisor](/docs/pt/agent-view#the-supervisor-process) para, reinicia ou atualiza o processo dessa sessão, em vez de entregá-los ao próximo processo da sessão. Afeta apenas esse handoff: backgrounding uma sessão com `←` ou [`/background`](/docs/pt/agent-view#from-inside-a-session) ainda carrega trabalho em voo, e `CLAUDE_DISABLE_ADOPT` desativa ambos. Requer Claude Code v2.1.196 ou posterior |252| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Defina como `1` para impedir que comandos de shell em segundo plano em execução de uma [sessão em segundo plano](/docs/pt/agent-view), fluxos de trabalho dinâmicos, e, a partir da v2.1.198, subagentes em segundo plano quando o [supervisor](/docs/pt/agent-view#the-supervisor-process) para, reinicia ou atualiza o processo dessa sessão, em vez de entregá-los ao próximo processo da sessão. Afeta apenas esse handoff: backgrounding uma sessão com `←` ou [`/background`](/docs/pt/agent-view#from-inside-a-session) ainda carrega trabalho em voo, e `CLAUDE_DISABLE_ADOPT` desativa ambos. Requer Claude Code v2.1.196 ou posterior |

250| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Defina como `1` para parar Claude Code de encerrar [comandos de shell em segundo plano](/docs/pt/interactive-mode#background-bash-commands) quando o sistema operacional relata pressão de memória. Por padrão, no macOS e Linux, Claude Code encerra um shell em segundo plano iniciado na sessão principal em um sinal de pressão de memória uma vez que a sessão ficou ociosa por 30 minutos e nenhuma volta ou subagente está em execução. Windows não tem sinal de pressão de memória, então essa variável não tem efeito lá. Requer Claude Code v2.1.193 ou posterior |253| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Defina como `1` para impedir que Claude Code termine [comandos de shell em segundo plano](/docs/pt/interactive-mode#background-bash-commands) quando o sistema operacional relata pressão de memória. Por padrão, no macOS e Linux, Claude Code termina um shell em segundo plano iniciado na sessão principal em um sinal de pressão de memória uma vez que a sessão ficou ociosa por 30 minutos e nenhuma volta ou subagente está em execução. Windows não tem sinal de pressão de memória, então essa variável não tem efeito lá. Requer Claude Code v2.1.193 ou posterior |

251| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Defina como `1` para desabilitar as [skills](/docs/pt/skills) e fluxos de trabalho inclusos com Claude Code: skills agrupadas e fluxos de trabalho são removidos inteiramente, enquanto comandos integrados como `/init` permanecem digitáveis mas são ocultados do modelo. `/doctor` permanece digitável como os comandos integrados; ocultá-lo com `DISABLE_DOCTOR_COMMAND`. Skills de plugins, `.claude/skills/`, e `.claude/commands/` não são afetadas. Equivalente à configuração [`disableBundledSkills`](/docs/pt/settings-reference#disablebundledskills) |254| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Defina como `1` para desabilitar as [skills](/docs/pt/skills) e fluxos de trabalho inclusos com Claude Code: skills inclusos e fluxos de trabalho são removidos inteiramente, enquanto comandos integrados como `/init` permanecem digitáveis mas ficam ocultos do modelo. `/doctor` permanece digitável como os comandos integrados; ocultá-lo com `DISABLE_DOCTOR_COMMAND`. Skills de plugins, `.claude/skills/`, e `.claude/commands/` não são afetadas. Equivalente à configuração [`disableBundledSkills`](/docs/pt/settings-reference#disablebundledskills) |

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

253| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Defina como `1` para evitar carregar qualquer arquivo de memória CLAUDE.md em contexto, incluindo arquivos de memória de usuário, projeto e automática |256| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Defina como `1` para evitar carregar qualquer arquivo de memória CLAUDE.md em contexto, incluindo arquivos de memória de usuário, projeto e automática |

254| `CLAUDE_CODE_DISABLE_CRON` | Defina como `1` para desabilitar [tarefas agendadas](/docs/pt/scheduled-tasks). A skill `/loop` e ferramentas cron ficam indisponíveis e qualquer tarefa já agendada para de disparar, incluindo tarefas que já estão em execução no meio da sessão |257| `CLAUDE_CODE_DISABLE_CRON` | Defina como `1` para desabilitar [tarefas agendadas](/docs/pt/scheduled-tasks). A skill `/loop` e ferramentas cron ficam indisponíveis e qualquer tarefa já agendada para de disparar, incluindo tarefas que já estão em execução no meio da sessão |

255| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Defina como `1` para remover cabeçalhos de solicitação `anthropic-beta` específicos de Anthropic e campos de esquema de ferramenta beta (como `defer_loading` e `eager_input_streaming`) de solicitações de API. Use isso quando um gateway proxy rejeita solicitações com erros como "Unexpected value(s) for the `anthropic-beta` header" ou "Extra inputs are not permitted". Campos padrão (`name`, `description`, `input_schema`, `cache_control`) são preservados. [Busca de ferramentas MCP](/docs/pt/mcp#scale-with-mcp-tool-search) é desabilitada e todas as ferramentas MCP carregam antecipadamente, mesmo quando você define `ENABLE_TOOL_SEARCH`. No Claude Code v2.1.227 ou posterior, [configurações gerenciadas](/docs/pt/managed-settings) podem manter a busca de ferramentas ativa. [Desabilitar capacidades de pré-lançamento](/docs/pt/llm-gateway-protocol#disable-pre-release-capabilities) cobre onde a substituição se aplica |258| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Defina como `1` para remover cabeçalhos de solicitação `anthropic-beta` específicos da Anthropic e campos de esquema de ferramenta beta (como `defer_loading` e `eager_input_streaming`) de solicitações de API. Use isso quando um gateway proxy rejeita solicitações com erros como "Unexpected value(s) for the `anthropic-beta` header" ou "Extra inputs are not permitted". Campos padrão (`name`, `description`, `input_schema`, `cache_control`) são preservados. [Busca de ferramentas MCP](/docs/pt/mcp#scale-with-mcp-tool-search) é desabilitada e todas as ferramentas MCP carregam antecipadamente, mesmo quando você define `ENABLE_TOOL_SEARCH`. No Claude Code v2.1.227 ou posterior, [configurações gerenciadas](/docs/pt/managed-settings) podem manter a busca de ferramentas ativa. [Desabilitar capacidades de pré-lançamento](/docs/pt/llm-gateway-protocol#disable-pre-release-capabilities) cobre onde a substituição se aplica |

256| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Defina como `1` para desabilitar os [subagentes Explore e Plan](/docs/pt/sub-agents#built-in-subagents) integrados. Claude explora com suas ferramentas de busca ou o subagente de propósito geral, e [modo plan](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode) lê arquivos diretamente em vez de iniciar agentes Explore e Plan. Subagentes personalizados nomeados `Explore` ou `Plan` não são afetados. Para remover todo tipo de subagente integrado no Agent SDK ou modo não interativo, use `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`. Requer Claude Code v2.1.198 ou posterior |259| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Defina como `1` para desabilitar os [subagentes Explore e Plan integrados](/docs/pt/sub-agents#built-in-subagents). Claude explora com suas ferramentas de busca ou o subagente de propósito geral, e [modo plan](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode) lê arquivos diretamente em vez de iniciar agentes Explore e Plan. Subagentes personalizados nomeados `Explore` ou `Plan` não são afetados. Para remover todo tipo de subagente integrado no Agent SDK ou modo não interativo, use `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`. Requer Claude Code v2.1.198 ou posterior |

257| `CLAUDE_CODE_DISABLE_FAST_MODE` | Defina como `1` para desabilitar [modo rápido](/docs/pt/fast-mode) |260| `CLAUDE_CODE_DISABLE_FAST_MODE` | Defina como `1` para desabilitar [modo rápido](/docs/pt/fast-mode) |

258| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Defina como `1` para desabilitar as pesquisas de qualidade de sessão "How is Claude doing?". As pesquisas também são desabilitadas quando `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, ou `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` está definido, a menos que `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` opte por voltar. Para definir uma taxa de amostra em vez de desabilitar completamente, use a configuração [`feedbackSurveyRate`](/docs/pt/settings-reference#feedbacksurveyrate). Veja [Pesquisas de qualidade de sessão](/docs/pt/data-usage#session-quality-surveys) |261| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Defina como `1` para desabilitar as pesquisas de qualidade de sessão "How is Claude doing?". As pesquisas também são desabilitadas quando `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, ou `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` está definido, a menos que `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` opte por voltar. Para definir uma taxa de amostra em vez de desabilitar completamente, use a configuração [`feedbackSurveyRate`](/docs/pt/settings-reference#feedbacksurveyrate). Veja [Pesquisas de qualidade de sessão](/docs/pt/data-usage#session-quality-surveys) |

259| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Defina como `1` para desabilitar [checkpointing](/docs/pt/checkpointing) de arquivo. O comando `/rewind` não será capaz de restaurar alterações de código. Substitui a configuração [`fileCheckpointingEnabled`](/docs/pt/settings-reference#filecheckpointingenabled) |262| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Defina como `1` para desabilitar [checkpointing](/docs/pt/checkpointing) de arquivo. O comando `/rewind` não será capaz de restaurar alterações de código. Substitui a configuração [`fileCheckpointingEnabled`](/docs/pt/settings-reference#filecheckpointingenabled) |

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

261| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Defina como `1` para evitar remapeamento automático de Opus 4.0 e 4.1 para a versão Opus atual na API Anthropic. Use quando você intencionalmente quer fixar um modelo mais antigo. O remapeamento não é executado no Amazon Bedrock, Google Cloud's Agent Platform, ou Microsoft Foundry |264| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Defina como `1` para evitar remapeamento automático de Opus 4.0 e 4.1 para a versão Opus atual na API Anthropic. Use quando você intencionalmente quer fixar um modelo mais antigo. O remapeamento não é executado no Amazon Bedrock, Google Cloud's Agent Platform, ou Microsoft Foundry |

262| `CLAUDE_CODE_DISABLE_MOUSE` | Defina como `1` para desabilitar rastreamento de mouse em [renderização fullscreen](/docs/pt/fullscreen). Rolagem de teclado com `PgUp` e `PgDn` ainda funciona. Use isso para manter o comportamento nativo de cópia ao selecionar do seu terminal |265| `CLAUDE_CODE_DISABLE_MOUSE` | Defina como `1` para desabilitar rastreamento de mouse em [renderização fullscreen](/docs/pt/fullscreen). Rolagem de teclado com `PgUp` e `PgDn` ainda funciona. Use isso para manter o comportamento nativo de cópia ao selecionar do seu terminal |

263| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Defina como `1` para desabilitar manipulação de clique, arrasto e hover em [renderização fullscreen](/docs/pt/fullscreen) enquanto mantém rolagem de roda do mouse. Use isso quando você quer que a rolagem de roda funcione dentro de Claude Code mas não quer que cliques posicionem o cursor, expandam saída de ferramenta ou abram links. `CLAUDE_CODE_DISABLE_MOUSE` tem precedência quando ambos estão definidos. Requer Claude Code v2.1.195 ou posterior |266| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Defina como `1` para desabilitar manipulação de clique, arrasto e hover em [renderização fullscreen](/docs/pt/fullscreen) enquanto mantém rolagem de roda de mouse. Use isso quando você quer que a rolagem de roda funcione dentro de Claude Code mas não quer que cliques posicionem o cursor, expandam saída de ferramenta ou abram links. `CLAUDE_CODE_DISABLE_MOUSE` tem precedência quando ambos estão definidos. Requer Claude Code v2.1.195 ou posterior |

264| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Defina como `1` para parar Claude Code de re-ler o [certificado de cliente mTLS e chave](/docs/pt/network-config#mtls-authentication) quando uma solicitação de API falha com um erro em nível de conexão, como uma redefinição de conexão ou erro de handshake TLS. Com o reload desabilitado, Claude Code carrega arquivos rotacionados apenas quando aplica configurações novamente ou na próxima inicialização. Requer Claude Code v2.1.232 ou posterior |267| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Defina como `1` para impedir que Claude Code releia o [certificado de cliente mTLS e chave](/docs/pt/network-config#mtls-authentication) quando uma solicitação de API falha com um erro em nível de conexão, como uma redefinição de conexão ou erro de handshake TLS. Com o recarregamento desabilitado, Claude Code carrega arquivos rotacionados apenas quando aplica configurações novamente ou na próxima inicialização. Requer Claude Code v2.1.232 ou posterior |

265| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Defina como qualquer valor não vazio, como `1`, para desabilitar tráfego de rede não essencial: auto-atualizações, telemetria, relatório de erros, o comando `/feedback`, [feedback redigido por Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior), notas de lançamento, as verificações de [badge de status PR e MR](/docs/pt/interactive-mode#pr-review-status), e verificações de disponibilidade como a verificação [modo rápido](/docs/pt/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways). Também para as [execuções em segundo plano de fontes de comando plugin](/docs/pt/plugin-marketplaces#when-claude-code-re-runs-the-command), que são comandos locais em vez de tráfego de rede, porque podem disparar instalações de dependência. **Defini-lo como `0` ou `false` ainda desabilita esse tráfego**, diferentemente da maioria das variáveis on/off; desconfigurar a variável para permitir novamente. Também desabilita busca de sinalizador de recurso, o que torna [Remote Control](/docs/pt/remote-control#requirements) e os outros [recursos que precisam de busca de sinalizador de recurso](#features-that-need-feature-flag-fetching) indisponíveis. A auto-instalação do marketplace de plugin oficial não é coberta; desabilite com `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`. Não afeta [descoberta de modelo gateway](/docs/pt/llm-gateway-connect#add-gateway-models-to-the-model-picker), que tem seu próprio opt-in |268| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Defina como qualquer valor não vazio, como `1`, para desabilitar tráfego de rede não essencial: auto-atualizações, telemetria, relatório de erros, comando `/feedback`, [feedback redigido por Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior), notas de lançamento, verificações de [badge de status de PR e MR](/docs/pt/interactive-mode#pr-review-status), e verificações de disponibilidade como a verificação [modo rápido](/docs/pt/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways). Também para as [execuções em segundo plano de fontes `command` de plugin](/docs/pt/plugin-marketplaces#when-claude-code-re-runs-the-command), que são comandos locais em vez de tráfego de rede, porque podem disparar instalações de dependência. **Defini-lo como `0` ou `false` ainda desabilita esse tráfego**, diferentemente da maioria das variáveis on/off; desconfigurar a variável para permitir novamente. Também desabilita busca de sinalizador de recurso, o que torna [Remote Control](/docs/pt/remote-control#requirements) e os outros [recursos que precisam de busca de sinalizador de recurso](#features-that-need-feature-flag-fetching) indisponíveis. Auto-instalação do marketplace de plugin oficial não é coberta; desabilite com `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`. Não afeta [descoberta de modelo de gateway](/docs/pt/llm-gateway-connect#add-gateway-models-to-the-model-picker), que tem seu próprio opt-in |

266| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Defina como `1` para desabilitar o fallback não-streaming quando uma solicitação de streaming falha no meio do stream. Erros de streaming se propagam para a camada de retry. Útil quando um proxy ou gateway causa o fallback produzir execução de ferramenta duplicada |269| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Defina como `1` para desabilitar o fallback não-streaming quando uma solicitação de streaming falha no meio do fluxo. Erros de streaming se propagam para a camada de retry. Útil quando um proxy ou gateway causa o fallback produzir execução de ferramenta duplicada |

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

268| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Defina como `1` para desabilitar registro automático do marketplace de plugin oficial. Claude Code lê a variável quando está prestes a registrar o marketplace, geralmente durante o primeiro lançamento interativo de uma máquina. Se a variável está definida nesse ponto, Claude Code pula o registro permanentemente. Desconfigurar a variável depois não desfaz o pulo. Execute `claude plugin marketplace add anthropics/claude-plugins-official` para registrar o marketplace a qualquer momento |271| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Defina como `1` para desabilitar registro automático do marketplace de plugin oficial. Claude Code lê a variável quando está prestes a registrar o marketplace, geralmente durante o primeiro lançamento interativo de uma máquina. Se a variável estiver definida nesse ponto, Claude Code pula o registro permanentemente. Desconfigurar a variável depois não desfaz o pulo. Execute `claude plugin marketplace add anthropics/claude-plugins-official` para registrar o marketplace a qualquer momento |

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

270| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Defina como `1` para pular carregamento de skills do diretório de skills gerenciado em todo o sistema. Útil para sessões de container ou CI que não devem carregar skills provisionadas por operador |273| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Defina como `1` para pular carregamento de skills do diretório de skills gerenciado em todo o sistema. Útil para sessões de container ou CI que não devem carregar skills provisionadas por operador |

271| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Defina como `1` para desabilitar atualizações automáticas de título de terminal baseadas em contexto de conversa. Em sessões Agent SDK e `claude -p`, isso também pula a solicitação de modelo pequeno/rápido em segundo plano que gera o título da sessão |274| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Defina como `1` para desabilitar atualizações automáticas de título de terminal com base no contexto de conversa. Em sessões Agent SDK e `claude -p`, isso também pula a solicitação de modelo pequeno/rápido em segundo plano que gera o título da sessão |

272| `CLAUDE_CODE_DISABLE_THINKING` | Defina como `1` para omitir o parâmetro `thinking` de solicitações de API inteiramente. Esta é uma opção de compatibilidade para proxies e gateways que rejeitam o parâmetro. Em modelos que pensam por padrão, omitir o parâmetro significa o modelo ainda pode pensar. Para desabilitar explicitamente [pensamento estendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) na API Anthropic, use `MAX_THINKING_TOKENS=0`. Nenhuma variável desativa pensamento em modelos Fable, que não podem ter pensamento desativado. Em [provedores de terceiros](/docs/pt/third-party-integrations), `MAX_THINKING_TOKENS=0` igualmente omite o parâmetro, para que as duas variáveis se comportem igual lá |275| `CLAUDE_CODE_DISABLE_THINKING` | Defina como `1` para omitir o parâmetro `thinking` de solicitações de API inteiramente. Esta é uma opção de compatibilidade para proxies e gateways que rejeitam o parâmetro. Em modelos que pensam por padrão, omitir o parâmetro significa que o modelo ainda pode pensar. Para desabilitar explicitamente [pensamento estendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) na API Anthropic, use `MAX_THINKING_TOKENS=0`. Nenhuma variável desativa pensamento em modelos Fable, que não podem ter pensamento desativado. Em [provedores de terceiros](/docs/pt/third-party-integrations), `MAX_THINKING_TOKENS=0` igualmente omite o parâmetro, para que as duas variáveis se comportem igual lá |

273| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Defina como `1` para pular [auto-compactação](/docs/pt/costs#reduce-token-usage) proativa quando Claude Code não reconhece o ID do modelo, como um alias [gateway LLM](/docs/pt/llm-gateway). Sem essa variável, Claude Code compacta na janela de contexto que assume para o ID. `CLAUDE_CODE_MAX_CONTEXT_TOKENS` pode corrigir a janela assumida; veja [Corrigir a janela para um ID de modelo gateway ou personalizado](/docs/pt/model-config#correct-the-window-for-a-gateway-or-custom-model-id) para quando cada variável se aplica. Requer Claude Code v2.1.223 ou posterior |276| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Defina como `1` para pular [auto-compactação](/docs/pt/costs#reduce-token-usage) proativa quando Claude Code não reconhece o ID do modelo, como um alias de [gateway LLM](/docs/pt/llm-gateway). Sem essa variável, Claude Code compacta na janela de contexto que assume para o ID. `CLAUDE_CODE_MAX_CONTEXT_TOKENS` pode corrigir a janela assumida; veja [Corrigir a janela para um ID de modelo gateway ou personalizado](/docs/pt/model-config#correct-the-window-for-a-gateway-or-custom-model-id) para quando cada variável se aplica. Requer Claude Code v2.1.223 ou posterior |

274| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Defina como `1` para desabilitar rolagem virtual em [renderização fullscreen](/docs/pt/fullscreen) e renderizar cada mensagem na transcrição. Use isso se a rolagem em modo fullscreen mostrar regiões em branco onde mensagens devem aparecer |277| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Defina como `1` para desabilitar rolagem virtual em [renderização fullscreen](/docs/pt/fullscreen) e renderizar cada mensagem na transcrição. Use isso se a rolagem no modo fullscreen mostrar regiões em branco onde mensagens deveriam aparecer |

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

275| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Defina como `1` para desabilitar [fluxos de trabalho](/docs/pt/workflows#turn-workflows-off). Equivalente à configuração [`disableWorkflows`](/docs/pt/settings-reference#disableworkflows) |279| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Defina como `1` para desabilitar [fluxos de trabalho](/docs/pt/workflows#turn-workflows-off). Equivalente à configuração [`disableWorkflows`](/docs/pt/settings-reference#disableworkflows) |

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

277| `CLAUDE_CODE_ENABLE_APPEND_SUBAGENT_PROMPT` | Defina como `1` para ativar anexação de texto extra ao final do prompt do sistema de cada [subagente](/docs/pt/sub-agents) diferente de um [subagente bifurcado](/docs/pt/sub-agents#fork-the-current-conversation). As flags [`--append-subagent-system-prompt`](/docs/pt/cli-reference#cli-flags) e [`--append-subagent-system-prompt-file`](/docs/pt/cli-reference#cli-flags) fornecem o texto anexado e definem essa variável automaticamente, para que você não precise defini-la. Requer Claude Code v2.1.205 ou posterior |281| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Aceito para compatibilidade com versões mais antigas e não tem efeito. Modo auto está disponível por padrão em cada provedor, incluindo Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, e sessões [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway) conectadas. Na v2.1.158 através v2.1.206, definir isso como `1` era necessário para tornar [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) disponível nesses provedores |

278| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Aceito para compatibilidade com lançamentos mais antigos e não tem efeito. Modo auto está disponível por padrão em cada provedor, incluindo Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, e sessões [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway) conectadas. Na v2.1.158 através v2.1.206, definir isso como `1` era necessário para tornar [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) disponível nesses provedores |

279| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Substitua disponibilidade de [recapitulação de sessão](/docs/pt/interactive-mode#session-recap). Defina como `0` para forçar recapitulações desativadas independentemente do toggle `/config`. Defina como `1` para forçar recapitulações ativas quando [`awaySummaryEnabled`](/docs/pt/settings-reference#awaysummaryenabled) é `false`. Tem precedência sobre a configuração e toggle `/config` |282| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Substitua disponibilidade de [recapitulação de sessão](/docs/pt/interactive-mode#session-recap). Defina como `0` para forçar recapitulações desativadas independentemente do toggle `/config`. Defina como `1` para forçar recapitulações ativas quando [`awaySummaryEnabled`](/docs/pt/settings-reference#awaysummaryenabled) é `false`. Tem precedência sobre a configuração e toggle `/config` |

280| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Defina como `1` para atualizar estado de plugin em limites de volta em [modo não interativo](/docs/pt/headless) após uma instalação em segundo plano completar. Desativado por padrão porque a atualização muda o prompt do sistema no meio da sessão, o que invalida [cache de prompt](/docs/pt/prompt-caching) para essa volta |283| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Defina como `1` para atualizar estado de plugin em limites de volta no [modo não interativo](/docs/pt/headless) após uma instalação em segundo plano ser concluída. Desativado por padrão porque a atualização muda o prompt do sistema no meio da sessão, o que invalida [cache de prompt](/docs/pt/prompt-caching) para essa volta |

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

282| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Controla se entradas de chamada de ferramenta fazem stream da API conforme Claude as gera. Com isso desativado, uma entrada de ferramenta grande como uma escrita de arquivo longa chega apenas após Claude terminar de gerá-la, o que pode parecer que está travando. Ativado por padrão na API Anthropic. No Amazon Bedrock e Google Cloud's Agent Platform, ativado por modelo onde o container implantado o suporta. Defina como `0` para optar por não participar. Defina como `1` para forçar ativo ao rotear através de um proxy via `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, ou `ANTHROPIC_BEDROCK_BASE_URL`. Desativado por padrão em Microsoft Foundry e conexões [gateway](/docs/pt/llm-gateway) |285| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Controla se entradas de chamada de ferramenta fluem da API conforme Claude as gera. Com isso desativado, uma entrada de ferramenta grande como uma escrita de arquivo longa chega apenas após Claude terminar de gerá-la, o que pode parecer que está travando. Ativado por padrão na API Anthropic. No Amazon Bedrock e Google Cloud's Agent Platform, ativado por modelo onde o contêiner implantado o suporta. Defina como `0` para optar por não participar. Defina como `1` para forçar ativo ao rotear através de um proxy via `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, ou `ANTHROPIC_BEDROCK_BASE_URL`. Desativado por padrão no Microsoft Foundry e conexões [gateway](/docs/pt/llm-gateway) |

283| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Defina como `1` para popular o seletor `/model` do endpoint `/v1/models` do seu gateway quando `ANTHROPIC_BASE_URL` aponta para um gateway compatível com Anthropic como LiteLLM, Kong, ou um proxy interno. Desativado por padrão porque gateways apoiados por uma chave de API compartilhada mostrariam cada usuário cada modelo que a chave pode acessar. Modelos descobertos ainda são filtrados por uma lista de permissão [`availableModels`](/docs/pt/settings-reference#availablemodels) que a sessão recebe; entregue a lista através de [MDM ou arquivo de configurações gerenciadas](/docs/pt/managed-settings#delivery-mechanisms), já que [entrega gerenciada pelo servidor não está disponível em configurações de gateway](/docs/pt/server-managed-settings#platform-availability) |286| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Defina como `1` para popular o seletor `/model` do endpoint `/v1/models` do seu gateway quando `ANTHROPIC_BASE_URL` aponta para um gateway compatível com Anthropic como LiteLLM, Kong, ou um proxy interno. Desativado por padrão porque gateways apoiados por uma chave de API compartilhada mostrariam a cada usuário cada modelo que a chave pode acessar. Modelos descobertos ainda são filtrados por uma lista de permissão [`availableModels`](/docs/pt/settings-reference#availablemodels) que a sessão recebe; entregue a lista através de [MDM ou arquivo de configurações gerenciadas](/docs/pt/managed-settings#delivery-mechanisms), já que [entrega gerenciada pelo servidor não está disponível em configurações de gateway](/docs/pt/server-managed-settings#platform-availability) |

284| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Removido na v2.1.142, quando o padrão [modo rápido](/docs/pt/fast-mode) se moveu de Opus 4.6 para Opus 4.7 |287| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Removido na v2.1.142, quando o padrão [modo rápido](/docs/pt/fast-mode) mudou de Opus 4.6 para Opus 4.7 |

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

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

287| `CLAUDE_CODE_ENABLE_TELEMETRY` | Defina como `1` para ativar coleta de dados OpenTelemetry para métricas e logging. Necessário antes de configurar exportadores OTel. Veja [Monitoramento](/docs/pt/monitoring-usage) |290| `CLAUDE_CODE_ENABLE_TELEMETRY` | Defina como `1` para ativar coleta de dados OpenTelemetry para métricas e logging. Necessário antes de configurar exportadores OTel. Veja [Monitoramento](/docs/pt/monitoring-usage) |

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

289| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Tempo em milissegundos para aguardar após o loop de consulta ficar ocioso antes de sair automaticamente. Útil para fluxos de trabalho automatizados e scripts usando modo SDK |292| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Tempo em milissegundos para aguardar após o loop de consulta ficar ocioso antes de sair automaticamente. Útil para fluxos de trabalho automatizados e scripts usando modo SDK |

290| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Defina como `1` para ativar [equipes de agentes](/docs/pt/agent-teams). Equipes de agentes são experimentais e desabilitadas por padrão |293| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Defina como `1` para ativar [equipes de agentes](/docs/pt/agent-teams). Equipes de agentes são experimentais e desabilitadas por padrão |

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

292| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Substitua o limite de token padrão para leituras de arquivo. Útil quando você precisa ler arquivos maiores integralmente |295| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Substitua o limite de token padrão para leituras de arquivo. Útil quando você precisa ler arquivos maiores integralmente |

293| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Defina como `1` para forçar persistência de transcrição, histórico de prompt, e registro `claude agents` mesmo quando este `claude` foi iniciado de dentro de outra sessão Claude Code. Use quando um valor `CLAUDE_CODE_CHILD_SESSION` herdado, por exemplo de uma sessão `screen` ou um lançador em segundo plano iniciado primeiro pela ferramenta Bash de Claude Code, causa uma sessão genuína de nível superior ser mal classificada como aninhada. A partir da v2.1.178, Claude Code detecta o caso tmux automaticamente e ignora o marcador herdado, para que tmux não precise mais dessa variável. Também honrado na v2.1.169 e anterior; não tem efeito na v2.1.170 e v2.1.171, onde a detecção de sessão aninhada que substitui foi removida |296| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Defina como `1` para forçar persistência de transcrição, histórico de prompt, e registro `claude agents` mesmo quando este `claude` foi iniciado de dentro de outra sessão Claude Code. Use quando um valor `CLAUDE_CODE_CHILD_SESSION` herdado, por exemplo de uma sessão `screen` ou um lançador em segundo plano iniciado primeiro pela ferramenta Bash de Claude Code, causa uma sessão genuína de nível superior ser mal classificada como aninhada. A partir da v2.1.178, Claude Code detecta o caso tmux automaticamente e ignora o marcador herdado, para que tmux não precise mais dessa variável. Também honrado na v2.1.169 e anterior; não tem efeito na v2.1.170 e v2.1.171, onde a detecção de sessão aninhada que substitui foi removida |

294| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Defina como `1` para forçar renderização de tachado para `~~text~~` nas respostas de Claude quando seu terminal o suporta mas não é auto-detectado, como sobre SSH sem `TERM_PROGRAM` encaminhado. Sem isso, terminais não detectados mostram os marcadores literais `~~` em vez de renderizar o texto como tachado. Requer Claude Code v2.1.186 ou posterior |297| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Defina como `1` para forçar renderização de tachado para `~~text~~` nas respostas de Claude quando seu terminal o suporta mas não é auto-detectado, como sobre SSH sem `TERM_PROGRAM` encaminhado. Sem isso, terminais não detectados mostram os marcadores `~~` literais em vez de renderizar o texto como tachado. Requer Claude Code v2.1.186 ou posterior |

295| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Defina como `1` para forçar-ativar modo privado DEC 2026 [saída sincronizada](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) quando seu terminal o suporta mas não é auto-detectado. Útil para emuladores como `eat` do Emacs que implementam BSU/ESU mas não respondem à sonda de capacidade. Não tem efeito sob tmux. Diferentemente de `CLAUDE_CODE_NO_FLICKER`, que muda para [renderização fullscreen](/docs/pt/fullscreen), isso não muda o renderizador |298| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Defina como `1` para forçar ativação do modo privado DEC 2026 [saída sincronizada](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) quando seu terminal o suporta mas não é auto-detectado. Útil para emuladores como `eat` do Emacs que implementam BSU/ESU mas não respondem à sonda de capacidade. Não tem efeito sob tmux. Diferentemente de `CLAUDE_CODE_NO_FLICKER`, que muda para [renderização fullscreen](/docs/pt/fullscreen), isso não muda o renderizador |

296| `CLAUDE_CODE_FORK_SUBAGENT` | Controla [modo fork](/docs/pt/sub-agents#turn-fork-mode-on-or-off), que deixa Claude gerar [subagentes bifurcados](/docs/pt/sub-agents#fork-the-current-conversation) e está ativo por padrão apenas em sessões interativas. Defina como `1` para ativá-lo em `claude -p` e Agent SDK também, ou `0` para desativá-lo em todo tipo de sessão. Você pode executar `/subtask` independentemente de modo fork estar ativo. O padrão interativo requer Claude Code v2.1.232 ou posterior; em versões anteriores, defina a variável como `1` para ativar modo fork |299| `CLAUDE_CODE_FORK_SUBAGENT` | Controla [modo fork](/docs/pt/sub-agents#turn-fork-mode-on-or-off), que permite Claude gerar [subagentes bifurcados](/docs/pt/sub-agents#fork-the-current-conversation) e está ativo por padrão apenas em sessões interativas. Defina como `1` para ativá-lo em `claude -p` e Agent SDK também, ou `0` para desativá-lo em todo tipo de sessão. Você pode executar `/subtask` independentemente de modo fork estar ativo. O padrão interativo requer Claude Code v2.1.232 ou posterior; em versões anteriores, defina a variável como `1` para ativar modo fork |

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

298| `CLAUDE_CODE_GIT_BASH_PATH` | Apenas Windows: caminho para o executável Git Bash (`bash.exe`). Use quando Git Bash está instalado mas não em seu PATH. Se o caminho não existe ou o arquivo não é nomeado `bash.exe`, `sh.exe`, `bash`, ou `sh`, Claude Code ignora a variável e auto-detecta Git Bash como se estivesse desconfigurada, registrando um aviso visível com `--debug`. Antes da v2.1.219, Claude Code saía na inicialização quando o caminho não existia, e usava qualquer arquivo existente como shell sem verificar que era bash ou sh. Veja [Configuração Windows](/docs/pt/setup#set-up-on-windows) |301| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | Timeout em milissegundos para a solicitação [descoberta de modelo de gateway](/docs/pt/llm-gateway-protocol#model-discovery) que `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` ativa (padrão: `3000`). Aumente quando seu gateway precisa de mais de três segundos para responder `/v1/models` na inicialização. Aceita apenas dígitos simples; `0`, valores negativos, e outras grafias mantêm o padrão. Requer Claude Code v2.1.269 ou posterior |

302| `CLAUDE_CODE_GIT_BASH_PATH` | Apenas Windows: caminho para o executável Git Bash (`bash.exe`). Use quando Git Bash está instalado mas não em seu PATH. Se o caminho não existir ou o arquivo não for nomeado `bash.exe`, `sh.exe`, `bash`, ou `sh`, Claude Code ignora a variável e auto-detecta Git Bash como se estivesse não definida, registrando um aviso visível com `--debug`. Antes da v2.1.219, Claude Code saía na inicialização quando o caminho não existia, e usava qualquer arquivo existente como shell sem verificar que era bash ou sh. Veja [Configuração Windows](/docs/pt/setup#set-up-on-windows) |

299| `CLAUDE_CODE_GLOB_HIDDEN` | Defina como `false` para excluir dotfiles de resultados quando Claude invoca a [ferramenta Glob](/docs/pt/tools-reference#glob-tool-behavior). Incluído por padrão. Não afeta autocompletar `@` de arquivo, `ls`, Grep, ou Read |303| `CLAUDE_CODE_GLOB_HIDDEN` | Defina como `false` para excluir dotfiles de resultados quando Claude invoca a [ferramenta Glob](/docs/pt/tools-reference#glob-tool-behavior). Incluído por padrão. Não afeta autocompletar `@` de arquivo, `ls`, Grep, ou Read |

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

301| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Timeout em segundos para descoberta de arquivo da ferramenta Glob. Padrão é 20 segundos na maioria das plataformas e 60 segundos no WSL |305| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Timeout em segundos para descoberta de arquivo da ferramenta Glob. Padrão é 20 segundos na maioria das plataformas e 60 segundos no WSL |


311| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Removido na v2.1.224 e agora é um no-op. Anteriormente limitava o número total de [subagentes](/docs/pt/sub-agents) que Claude poderia gerar com a ferramenta Agent em uma sessão (padrão: 200); gerar além do limite falhava com `Subagent spawn limit reached`. O [limite de subagente concorrente](/docs/pt/sub-agents#concurrent-subagent-limit) e o [limite de profundidade](/docs/pt/sub-agents#let-subagents-spawn-their-own-subagents) ainda se aplicam |315| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Removido na v2.1.224 e agora é um no-op. Anteriormente limitava o número total de [subagentes](/docs/pt/sub-agents) que Claude poderia gerar com a ferramenta Agent em uma sessão (padrão: 200); gerar além do limite falhava com `Subagent spawn limit reached`. O [limite de subagente concorrente](/docs/pt/sub-agents#concurrent-subagent-limit) e o [limite de profundidade](/docs/pt/sub-agents#let-subagents-spawn-their-own-subagents) ainda se aplicam |

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

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

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

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

316| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Defina como `1` para gerar servidores MCP stdio com apenas um ambiente de linha de base seguro mais o `env` configurado do servidor, em vez de herdar seu ambiente de shell |320| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Defina como `1` para gerar servidores MCP stdio com apenas um ambiente de linha de base segura mais o `env` configurado do servidor, em vez de herdar seu ambiente de shell |

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

318| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | Timeout de inatividade em milissegundos para chamadas de ferramenta MCP. Quando um servidor MCP stdio, HTTP, SSE, WebSocket, ou [conector claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai) não envia resposta e nenhuma notificação de progresso por esse tempo, a chamada de ferramenta aborta com um erro em vez de aguardar o `MCP_TOOL_TIMEOUT` geral. Substitui os padrões por transporte de 300000 (5 minutos) para servidores de rede e 1800000 (30 minutos) para servidores stdio. Defina como `0` para desabilitar a verificação de inatividade. Valores abaixo de 1000 são aumentados para um segundo, e o valor é limitado ao `MCP_TOOL_TIMEOUT` efetivo. Um `timeout` por servidor em `.mcp.json` de pelo menos 1000 aumenta a janela de inatividade desse servidor para pelo menos o valor `timeout`. Não se aplica a servidores IDE ou servidores em processo do SDK. Requer Claude Code v2.1.187 ou posterior. Antes da v2.1.203, servidores stdio eram isentos do timeout de inatividade |322| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Quanto tempo em milissegundos a primeira volta de uma sessão [não interativa](/docs/pt/headless) aguarda servidores MCP que ainda estão se conectando, no lugar da [espera de primeira volta](/docs/pt/agent-sdk/mcp#connection-timing) padrão. Quando definido, a espera cobre cada servidor pendente. Defina como `0` para pular a espera. Um servidor [`--permission-prompt-tool`](/docs/pt/cli-reference#cli-flags) mantém sua própria espera `MCP_TIMEOUT` independentemente do valor. Requer Claude Code v2.1.274 ou posterior |

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

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

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

321| `CLAUDE_CODE_NATIVE_CURSOR` | Defina como `1` para mostrar o cursor próprio do terminal no cursor de entrada em vez de um bloco desenhado. O cursor respeita as configurações de piscar, forma e foco do terminal |326| `CLAUDE_CODE_NATIVE_CURSOR` | Defina como `1` para mostrar o cursor próprio do terminal na marca de inserção em vez de um bloco desenhado. O cursor respeita as configurações de piscar, forma e foco do terminal |

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

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

324| `CLAUDE_CODE_NO_FLICKER` | Defina como `1` para ativar [renderização fullscreen](/docs/pt/fullscreen), uma visualização de pesquisa que reduz cintilação e mantém memória plana em conversas longas. Substitui a configuração [`tui`](/docs/pt/settings-reference#tui); você também pode alternar com `/tui fullscreen` |329| `CLAUDE_CODE_NO_FLICKER` | Defina como `1` para ativar [renderização fullscreen](/docs/pt/fullscreen), uma visualização de pesquisa que reduz cintilação e mantém memória plana em conversas longas. Substitui a configuração [`tui`](/docs/pt/settings-reference#tui); você também pode alternar com `/tui fullscreen` |

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

326| `CLAUDE_CODE_OAUTH_SCOPES` | Escopos OAuth separados por espaço que o token de atualização foi emitido com, como `"user:profile user:inference user:sessions:claude_code"`. Necessário quando `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` está definido |331| `CLAUDE_CODE_OAUTH_SCOPES` | Escopos OAuth separados por espaço que o token de atualização foi emitido com, como `"user:profile user:inference user:sessions:claude_code"`. Necessário quando `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` está definido |

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

328| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | Removido na v2.1.160 e agora é um no-op. Anteriormente fixava [modo rápido](/docs/pt/fast-mode) em Claude Opus 4.6 em vez do padrão atual. Opus 4.6 não suporta mais modo rápido |333| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | Removido na v2.1.160 e agora é um no-op. Anteriormente fixava [modo rápido](/docs/pt/fast-mode) para Claude Opus 4.6 em vez do padrão atual. Opus 4.6 não suporta mais modo rápido |

329| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Comprimento máximo de atributos OpenTelemetry que carregam conteúdo (respostas de modelo, conteúdo de ferramenta, prompts do sistema, corpos de API brutos), marcador de truncamento incluído, em unidades de código UTF-16 (padrão: 61440, ou seja, 60 KB). Aumente apenas se seu backend de telemetria aceita valores de atributo maiores que 64 KB, ou reduza para cortar volume de telemetria. Requer Claude Code v2.1.214 ou posterior. Veja [Monitoramento](/docs/pt/monitoring-usage) |334| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Comprimento máximo de atributos OpenTelemetry que carregam conteúdo (respostas de modelo, conteúdo de ferramenta, prompts do sistema, corpos de API brutos), marcador de truncamento incluído, em unidades de código UTF-16 (padrão: 61440, ou seja, 60 KB). Aumente apenas se seu backend de telemetria aceita valores de atributo maiores que 64 KB, ou reduza para cortar volume de telemetria. Requer Claude Code v2.1.214 ou posterior. Veja [Monitoramento](/docs/pt/monitoring-usage) |

330| `CLAUDE_CODE_OTEL_DIAG_STDERR` | Defina como `1` para escrever erros diagnósticos do exportador OpenTelemetry para stderr. Por padrão esses erros aparecem apenas com `--debug`, para que um exportador mal configurado como uma colisão de porta Prometheus falhe silenciosamente. Requer Claude Code v2.1.179 ou posterior. Veja [Monitoramento](/docs/pt/monitoring-usage) |335| `CLAUDE_CODE_OTEL_DIAG_STDERR` | Defina como `1` para escrever erros diagnósticos do exportador OpenTelemetry para stderr. Por padrão esses erros aparecem apenas com `--debug`, para que um exportador mal configurado como uma colisão de porta Prometheus falhe silenciosamente. Requer Claude Code v2.1.179 ou posterior. Veja [Monitoramento](/docs/pt/monitoring-usage) |

331| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Timeout em milissegundos para liberar spans OpenTelemetry pendentes (padrão: 5000). Veja [Monitoramento](/docs/pt/monitoring-usage) |336| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Timeout em milissegundos para liberar spans OpenTelemetry pendentes (padrão: 5000). Veja [Monitoramento](/docs/pt/monitoring-usage) |

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

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

334| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Defina como `1` para deixar Claude Code executar o comando de upgrade do seu gerenciador de pacotes em segundo plano quando uma nova versão está disponível. Aplica-se a instalações Homebrew e WinGet. Outros gerenciadores de pacotes continuam mostrando o comando de upgrade sem executá-lo. Veja [Auto-atualizações](/docs/pt/setup#auto-updates) |339| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Defina como `1` para deixar Claude Code executar o comando de atualização do seu gerenciador de pacotes em segundo plano quando uma nova versão está disponível. Aplica-se a instalações Homebrew e WinGet. Outros gerenciadores de pacotes continuam mostrando o comando de atualização sem executá-lo. Veja [Auto-atualizações](/docs/pt/setup#auto-updates) |

335| `CLAUDE_CODE_PERFORCE_MODE` | Defina como `1` para ativar proteção de escrita ciente de Perforce. Quando definido, Edit, Write, e NotebookEdit falham com uma dica `p4 edit <file>` se o arquivo alvo não tem o bit de escrita do proprietário, que Perforce limpa em arquivos sincronizados até `p4 edit` abri-los. Isso evita que Claude Code contorne rastreamento de mudança Perforce |340| `CLAUDE_CODE_PERFORCE_MODE` | Defina como `1` para ativar proteção de escrita ciente de Perforce. Quando definido, Edit, Write, e NotebookEdit falham com uma dica `p4 edit <file>` se o arquivo alvo não tiver o bit de escrita do proprietário, que Perforce limpa em arquivos sincronizados até `p4 edit` abri-los. Isso evita que Claude Code contorne rastreamento de mudança Perforce |

336| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Substitua o diretório raiz de plugins. Apesar do nome, isso define o diretório pai, não o cache em si: marketplaces e o cache de plugin vivem em subdiretórios sob esse caminho. Padrão é `~/.claude/plugins` |341| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Substitua o diretório raiz de plugins. Apesar do nome, isso define o diretório pai, não o cache em si: marketplaces e o cache de plugin vivem em subdiretórios sob esse caminho. Padrão é `~/.claude/plugins` |

337| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Timeout em milissegundos para operações git ao instalar ou atualizar plugins (padrão: 120000). Aumente esse valor para repositórios grandes ou conexões de rede lentas. Veja [Operações Git expiram](/docs/pt/plugin-marketplaces#git-operations-time-out) |342| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Timeout em milissegundos para operações git ao instalar ou atualizar plugins (padrão: 120000). Aumente esse valor para repositórios grandes ou conexões de rede lentas. Veja [Operações Git expiram](/docs/pt/plugin-marketplaces#git-operations-time-out) |

338| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Defina como `1` para pular a tentativa de re-clone e manter usando o cache de marketplace existente quando um `git pull` falha. Útil em ambientes offline ou airgapped onde re-cloning falharia da mesma forma. Veja [Atualizações de Marketplace falham em ambientes offline](/docs/pt/plugin-marketplaces#marketplace-updates-fail-in-offline-environments) |343| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Defina como `1` para pular a tentativa de re-clone e manter usando o cache de marketplace existente quando um `git pull` falha. Útil em ambientes offline ou airgapped onde re-clonar falharia da mesma forma. Veja [Atualizações de Marketplace falham em ambientes offline](/docs/pt/plugin-marketplaces#marketplace-updates-fail-in-offline-environments) |

339| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Defina como `1` para clonar abreviação de fonte GitHub `owner/repo` sobre HTTPS em vez de SSH. Aplica-se a instalação e atualização de plugin, e a `/plugin marketplace add` e `update`. Útil em corredores CI, containers, ou qualquer ambiente sem uma chave SSH configurada para `github.com` |344| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Defina como `1` para clonar atalhos `owner/repo` do GitHub sobre HTTPS em vez de SSH. Aplica-se a instalação e atualização de plugin, e a `/plugin marketplace add` e `update`. Útil em executores CI, containers, ou qualquer ambiente sem uma chave SSH configurada para `github.com` |

340| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Caminho para um ou mais diretórios de seed de plugin somente leitura, separados por `:` em Unix ou `;` no Windows. Use isso para agrupar um diretório de plugins pré-populado em uma imagem de container. Claude Code registra marketplaces desses diretórios na inicialização e usa plugins pré-em cache sem re-cloning. Veja [Pré-popular plugins para containers](/docs/pt/plugin-marketplaces#pre-populate-plugins-for-containers) |345| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Caminho para um ou mais diretórios de seed de plugin somente leitura, separados por `:` no Unix ou `;` no Windows. Use isso para agrupar um diretório de plugins pré-populado em uma imagem de container. Claude Code registra marketplaces desses diretórios na inicialização e usa plugins pré-em cache sem re-clonar. Veja [Pré-popular plugins para containers](/docs/pt/plugin-marketplaces#pre-populate-plugins-for-containers) |

341| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Defina como `1` para parar Claude Code de passar `-ExecutionPolicy Bypass` ao gerar PowerShell para chamadas de ferramenta, hooks e comandos de status line, e respeitar a política de execução efetiva da máquina. Por padrão Claude Code contorna política de execução em escopo de processo para que scripts `.ps1` e importações de módulo funcionem em instalações Windows padrão-Restricted. Bypass em escopo de processo nunca substitui `MachinePolicy` ou `UserPolicy` de Group Policy independentemente dessa configuração |346| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Defina como `1` para impedir que Claude Code passe `-ExecutionPolicy Bypass` ao gerar PowerShell para chamadas de ferramenta, hooks, e comandos de status line, e respeite a política de execução efetiva da máquina. Por padrão Claude Code contorna política de execução em escopo de processo para que scripts `.ps1` e importações de módulo funcionem em instalações Windows padrão-Restricted. Bypass em escopo de processo nunca substitui `MachinePolicy` ou `UserPolicy` de Group Policy independentemente dessa configuração |

342| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Teto em milissegundos em espera ociosa por subagentes em segundo plano e fluxos de trabalho após a volta final em [modo não interativo](/docs/pt/headless#background-tasks-at-exit) com a flag `-p`. Espera ociosa começa novamente cada vez que Claude toma uma volta para lidar com um resultado em segundo plano. Padrão: `600000`, ou 10 minutos. Quando espera ociosa atinge o teto, Claude Code para de aguardar as tarefas em segundo plano restantes e sai. Defina como `0` para aguardar indefinidamente. Esse limite é separado do período de graça de cinco segundos que se aplica a shells em segundo plano simples. Requer Claude Code v2.1.182 ou posterior |347| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Teto em milissegundos em espera ociosa para subagentes em segundo plano e fluxos de trabalho após a volta final em [modo não interativo](/docs/pt/headless#background-tasks-at-exit) com a flag `-p`. Espera ociosa começa novamente cada vez que Claude toma uma volta para lidar com um resultado em segundo plano. Padrão: `600000`, ou 10 minutos. Quando espera ociosa atinge o teto, Claude Code para de aguardar as tarefas em segundo plano restantes e sai. Defina como `0` para aguardar indefinidamente. Esse limite é separado do período de graça de cinco segundos que se aplica a shells em segundo plano simples. Requer Claude Code v2.1.182 ou posterior |

343| `CLAUDE_CODE_PROCESS_WRAPPER` | Inicie os processos que Claude Code começa de seu próprio binário, como o serviço em segundo plano que hospeda [agent view](/docs/pt/agent-view) sessões, através de um lançador corporativo dado como um prefixo argv como `/opt/corp/launcher`. Defina em um bloco `env` de configurações de usuário ou [gerenciadas](/docs/pt/managed-settings), não como exportação de shell, para que o serviço em segundo plano desacoplado o herde; configurações de projeto e local não podem defini-lo. Equivalente à configuração [`processWrapper`](/docs/pt/settings-reference#processwrapper), que requer Claude Code v2.1.210 ou posterior; essa variável tem precedência quando ambas estão definidas. A extensão VS Code configura seu próprio lançador separadamente através de sua configuração `claudeProcessWrapper`. Ignorado no Windows. Veja [Executar Claude Code atrás de um lançador corporativo](/docs/pt/corporate-launcher) para o formato de valor, o que o lançador cobre, e o contrato que o lançador deve satisfazer. Requer Claude Code v2.1.208 ou posterior |348| `CLAUDE_CODE_PROCESS_WRAPPER` | Inicie os processos que Claude Code começa de seu próprio binário, como o serviço em segundo plano que hospeda [agent view](/docs/pt/agent-view) sessões, através de um lançador corporativo dado como um prefixo argv como `/opt/corp/launcher`. Defina no bloco `env` de configurações de usuário ou [gerenciadas](/docs/pt/managed-settings), não como exportação de shell, para que o serviço em segundo plano desanexado o herde; configurações de projeto e local não podem defini-lo. Equivalente à configuração [`processWrapper`](/docs/pt/settings-reference#processwrapper), que requer Claude Code v2.1.210 ou posterior; essa variável tem precedência quando ambas estão definidas. A extensão VS Code configura seu próprio lançador separadamente através de sua configuração `claudeProcessWrapper`. Ignorado no Windows. Veja [Executar Claude Code atrás de um lançador corporativo](/docs/pt/corporate-launcher) para o formato de valor, o que o lançador cobre, e o contrato que o lançador deve satisfazer. Requer Claude Code v2.1.208 ou posterior |

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

345| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Defina `5m` ou `1h`, os únicos valores que Claude Code aceita, para escolher o [TTL de cache de prompt](/docs/pt/prompt-caching#cache-lifetime) para a conversa principal: suas voltas interativas, `-p` e SDK, mais os helpers que executam inline com elas. Tem precedência sobre a configuração `promptCacheTtl` e sobre `ENABLE_PROMPT_CACHING_1H`, e `FORCE_PROMPT_CACHING_5M` a substitui. Escritas de cache de 1 hora são faturadas a uma taxa mais alta. Requer Claude Code v2.1.242 ou posterior |350| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Defina `5m` ou `1h`, os únicos valores que Claude Code aceita, para escolher o [TTL de cache de prompt](/docs/pt/prompt-caching#cache-lifetime) para a conversa principal: suas voltas interativas, `-p`, e SDK, mais os helpers que executam inline com elas. Tem precedência sobre a configuração `promptCacheTtl` e sobre `ENABLE_PROMPT_CACHING_1H`, e `FORCE_PROMPT_CACHING_5M` a substitui. Escritas de cache de 1 hora são faturadas a uma taxa mais alta. Requer Claude Code v2.1.242 ou posterior |

346| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | Defina como `1` para propagar contexto de rastreamento W3C quando `ANTHROPIC_BASE_URL` aponta para um proxy personalizado. Propagação cobre o cabeçalho `traceparent` em solicitações de modelo e MCP HTTP e a variável de ambiente `TRACEPARENT` para subprocessos Bash, PowerShell e hook. Por padrão, propagação está ativada apenas quando conectado diretamente à API Anthropic. Adicionado na v2.1.152. Veja [Rastreamentos (beta)](/docs/pt/monitoring-usage#traces-beta) |351| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | Defina como `1` para propagar contexto de rastreamento W3C quando `ANTHROPIC_BASE_URL` aponta para um proxy personalizado. Propagação cobre o cabeçalho `traceparent` em solicitações de modelo e MCP HTTP e a variável de ambiente `TRACEPARENT` para subprocessos Bash, PowerShell, e hook. Por padrão, propagação está ativada apenas quando conectado diretamente à API Anthropic. Adicionado na v2.1.152. Veja [Rastreamentos (beta)](/docs/pt/monitoring-usage#traces-beta) |

347| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Defina por plataformas host que incorporam Claude Code e gerenciam roteamento de provedor de modelo em seu nome. Quando definido, Claude Code ignora variáveis de seleção de provedor, endpoint e autenticação como `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL`, e `ANTHROPIC_API_KEY` em arquivos de configurações, para que configurações de usuário não possam substituir o roteamento do host. Claude Code também ignora chaves de seleção de modelo como `model`, `fallbackModel`, e `modelOverrides` em [configurações gerenciadas](/docs/pt/managed-settings), qualquer fonte gerenciada que as entregue, para que a configuração de modelo do host tenha precedência sobre um pin de modelo desatualizado. Claude Code também ignora variáveis de seleção de modelo como `ANTHROPIC_MODEL` e a família `ANTHROPIC_DEFAULT_*_MODEL` em um bloco `env` gerenciado; uma lista de permissão [`availableModels`](/docs/pt/model-config#restrict-model-selection) em configurações gerenciadas ainda se aplica a menos que o host forneça a sua. Claude Code também pula o opt-out de telemetria automática que de outra forma se aplica em provedores de terceiros como Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform, e Microsoft Foundry, para que telemetria siga o opt-out padrão `DISABLE_TELEMETRY`. Veja [Comportamentos padrão por provedor de API](/docs/pt/data-usage#default-behaviors-by-api-provider) |352| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Defina por plataformas host que incorporam Claude Code e gerenciam roteamento de provedor de modelo em seu nome. Quando definido, Claude Code ignora variáveis de seleção de provedor, endpoint, e autenticação como `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL`, e `ANTHROPIC_API_KEY` em arquivos de configurações, para que configurações de usuário não possam substituir o roteamento do host. Claude Code também ignora chaves de seleção de modelo como `model`, `fallbackModel`, e `modelOverrides` em [configurações gerenciadas](/docs/pt/managed-settings), qualquer que seja a fonte gerenciada que as entregue, para que a configuração de modelo do host tenha precedência sobre um pin de modelo desatualizado. Claude Code também ignora variáveis de seleção de modelo como `ANTHROPIC_MODEL` e a família `ANTHROPIC_DEFAULT_*_MODEL` em um bloco `env` gerenciado; uma lista de permissão [`availableModels`](/docs/pt/model-config#restrict-model-selection) em configurações gerenciadas ainda se aplica a menos que o host forneça a sua. Claude Code também pula o opt-out de telemetria automática que de outra forma se aplica em provedores de terceiros como Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform, e Microsoft Foundry, para que telemetria siga o opt-out padrão `DISABLE_TELEMETRY`. Veja [Comportamentos padrão por provedor de API](/docs/pt/data-usage#default-behaviors-by-api-provider) |

348| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Defina como `1` para permitir que o proxy execute resolução DNS em vez do chamador. Opt-in para ambientes onde o proxy deve lidar com resolução de nome de host |353| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Defina como `1` para permitir que o proxy execute resolução DNS em vez do chamador. Opt-in para ambientes onde o proxy deve lidar com resolução de nome de host |

349| `CLAUDE_CODE_REMOTE` | Defina automaticamente como `true` quando Claude Code está em execução como uma [sessão em nuvem](/docs/pt/claude-code-on-the-web). Leia isso de um hook ou script de configuração para detectar se você está em uma sessão em nuvem |354| `CLAUDE_CODE_REMOTE` | Defina automaticamente como `true` quando Claude Code está em execução como uma [sessão em nuvem](/docs/pt/claude-code-on-the-web). Leia isso de um hook ou script de configuração para detectar se você está em uma sessão em nuvem |

350| `CLAUDE_CODE_REMOTE_SESSION_ID` | Defina automaticamente em [sessões em nuvem](/docs/pt/claude-code-on-the-web) para o ID da sessão atual. Leia isso para construir um link de volta para a transcrição da sessão. Veja [Vincule saída de volta à sessão](/docs/pt/cloud-environments#link-output-back-to-the-session) |355| `CLAUDE_CODE_REMOTE_SESSION_ID` | Defina automaticamente em [sessões em nuvem](/docs/pt/claude-code-on-the-web) para o ID da sessão atual. Leia isso para construir um link de volta para a transcrição da sessão. Veja [Vincule saída de volta à sessão](/docs/pt/cloud-environments#link-output-back-to-the-session) |

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

352| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Defina como `1` para retomar automaticamente se a sessão anterior terminou no meio de uma volta. Usado em modo SDK para que o modelo continue sem exigir que o SDK reenvie o prompt. Para desativar isso, desconfigurar a variável ou defini-la como `0`. Antes da v2.1.221, Claude Code ignorava `0` e outros valores falsos, para que definir `0` ainda acionasse a retomada em modo não interativo e desconfigurar a variável era a única forma de desativar |357| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Defina como `1` para retomar automaticamente se a sessão anterior terminou no meio de uma volta. Usado em modo SDK para que o modelo continue sem exigir que o SDK reenvie o prompt. Para desativar isso, desconfigurar a variável ou defini-la como `0`. Antes da v2.1.221, Claude Code ignorava `0` e outros valores falsos, para que definir `0` ainda acionasse a retomada no modo não interativo e desconfigurar a variável era a única forma de desativá-lo |

353| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Idade máxima em milissegundos da última mensagem de transcrição para uma sessão que terminou no meio de uma volta para continuar automaticamente na retomada. Quando a última mensagem é mais antiga que esse limite, Claude Code pula tanto a retomada automática `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` quanto a mensagem de continuação `CLAUDE_CODE_RESUME_PROMPT` injetada, e a sessão começa ociosa para que você continue explicitamente. Desconfigurado ou `0` significa sem limite; um valor negativo ou não numérico aplica um limite de uma hora. Scripts de spawn para agentes de longa duração podem definir isso para que uma reinicialização contra uma transcrição antiga não re-execute um prompt obsoleto. Claude Code define um limite de uma hora a si mesmo quando reinicia uma sessão [agent view](/docs/pt/agent-view) travada que herdou sua conversa de uma sessão interativa. Requer Claude Code v2.1.211 ou posterior |358| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Idade máxima em milissegundos da última mensagem de transcrição para uma sessão que terminou no meio de uma volta para continuar automaticamente na retomada. Quando a última mensagem é mais antiga que esse limite, Claude Code pula tanto a retomada automática `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` quanto a mensagem de continuação `CLAUDE_CODE_RESUME_PROMPT` injetada, e a sessão começa ociosa para que você continue explicitamente. Não definido ou `0` significa sem limite; um valor negativo ou não numérico aplica um limite de uma hora. Scripts de spawn para agentes de longa duração podem definir isso para que uma reinicialização contra uma transcrição antiga não re-execute um prompt obsoleto. Claude Code define um limite de uma hora a si mesmo quando reinicia uma sessão [agent view](/docs/pt/agent-view) travada que herdou sua conversa de uma sessão interativa. Requer Claude Code v2.1.211 ou posterior |

354| `CLAUDE_CODE_RESUME_PROMPT` | Substitua a mensagem de continuação injetada ao retomar uma sessão que terminou no meio de uma volta. Padrão é `Continue from where you left off.`. Scripts de spawn para agentes de longa duração podem definir isso para uma mensagem de boot mais diretiva. Uma string vazia usa o padrão |359| `CLAUDE_CODE_RESUME_PROMPT` | Substitua a mensagem de continuação injetada ao retomar uma sessão que terminou no meio de uma volta. Padrão é `Continue from where you left off.`. Scripts de spawn para agentes de longa duração podem definir isso para uma mensagem de boot mais diretiva. Uma string vazia usa o padrão |

355| `CLAUDE_CODE_RETRY_WATCHDOG` | Defina como `1` para sessões não supervisionadas como harnesses de avaliação, trabalhos CI ou workers remotos. Tenta novamente erros de capacidade `429` e `529` indefinidamente em vez de falhar após `CLAUDE_CODE_MAX_RETRIES` tentativas. Claude Code falha imediatamente em um `429` que relata um limite de gastos ou créditos de uso esgotados, mesmo um de um [limite de gastos gateway](/docs/pt/errors#spend-limit-reached) que reinicia em um cronograma. Antes da v2.1.239, o watchdog tentava novamente esses indefinidamente. O watchdog recua até 5 minutos entre tentativas, ou até o limite reiniciar quando a resposta carrega um tempo de reinicialização de limite de taxa, para que uma sessão que atinge um limite de uso aguarde a janela restante. Na v2.1.199 ou posterior também aumenta a contagem de tentativa padrão para outros erros transitórios, como erros de servidor, timeouts e conexões descartadas, para 300, aproximadamente três horas de recuo, e remove o limite de 15 em `CLAUDE_CODE_MAX_RETRIES` se você definir essa variável explicitamente. Requer Claude Code v2.1.186 ou posterior |360| `CLAUDE_CODE_RETRY_WATCHDOG` | Defina como `1` para sessões não supervisionadas como harnesses de avaliação, trabalhos CI, ou workers remotos. Tenta novamente erros de capacidade `429` e `529` indefinidamente em vez de falhar após `CLAUDE_CODE_MAX_RETRIES` tentativas. Claude Code falha imediatamente quando uma solicitação de velocidade padrão recebe um `429` que relata um limite de gastos ou créditos de uso esgotados, mesmo um de um [limite de gastos de gateway](/docs/pt/errors#spend-limit-reached) que reinicia em um cronograma. Antes da v2.1.239, o watchdog tentava novamente esses indefinidamente. Para solicitações de modo rápido, veja [Lidar com limites de taxa](/docs/pt/fast-mode#handle-rate-limits). O watchdog recua até 5 minutos entre tentativas, ou até o limite reiniciar quando a resposta carrega um tempo de reinicialização de limite de taxa, para que uma sessão que atinge um limite de uso aguarde a janela restante. Na v2.1.199 ou posterior também aumenta a contagem de retry padrão para outros erros transitórios, como erros de servidor, timeouts, e conexões descartadas, para 300, aproximadamente três horas de recuo, e remove o limite de 15 em `CLAUDE_CODE_MAX_RETRIES` se você definir essa variável explicitamente. Requer Claude Code v2.1.186 ou posterior |

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

357| `CLAUDE_CODE_SCRIPT_CAPS` | Objeto JSON limitando quantas vezes scripts específicos podem ser invocados por sessão quando `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` está definido. Chaves são substrings correspondidas contra o texto do comando; valores são limites de chamada inteiros. Por exemplo, `{"deploy.sh": 2}` permite `deploy.sh` ser chamado no máximo duas vezes. A correspondência é baseada em substring para que truques de expansão de shell como `./scripts/deploy.sh $(evil)` ainda contem contra o limite. Fan-out em tempo de execução via `xargs` ou `find -exec` não é detectado; isso é um controle de defesa em profundidade |362| `CLAUDE_CODE_SCRIPT_CAPS` | Objeto JSON limitando quantas vezes scripts específicos podem ser invocados por sessão quando `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` está definido. Chaves são substrings correspondidas contra o texto do comando; valores são limites de chamada inteiros. Por exemplo, `{"deploy.sh": 2}` permite que `deploy.sh` seja chamado no máximo duas vezes. Correspondência é baseada em substring para que truques de expansão de shell como `./scripts/deploy.sh $(evil)` ainda contem contra o limite. Fan-out em tempo de execução via `xargs` ou `find -exec` não é detectado; isso é um controle de defesa em profundidade |

358| `CLAUDE_CODE_SCROLL_SPEED` | Defina o multiplicador de velocidade de rolagem de roda do mouse em [renderização fullscreen](/docs/pt/fullscreen#mouse-wheel-scrolling). Aceita qualquer valor positivo até 20, incluindo valores fracionários abaixo de 1 como `0.5` para desacelerar rolagem de trackpad e roda acelerada em terminais que já amplificam eventos de roda. Defina como `3` para corresponder `vim` se seu terminal envia um evento de roda por entalhe sem amplificação. Ignorado no terminal IDE JetBrains, onde Claude Code usa seu próprio manuseio de rolagem |363| `CLAUDE_CODE_SCROLL_SPEED` | Defina o multiplicador de rolagem de roda de mouse em [renderização fullscreen](/docs/pt/fullscreen#mouse-wheel-scrolling). Aceita qualquer valor positivo até 20, incluindo valores fracionários abaixo de 1 como `0.5` para desacelerar rolagem de trackpad e roda acelerada em terminais que já amplificam eventos de roda. Defina como `3` para corresponder `vim` se seu terminal envia um evento de roda por entalhe sem amplificação. Ignorado no terminal IDE JetBrains, onde Claude Code usa seu próprio manuseio de rolagem |

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

360| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Substitua o orçamento de tempo em milissegundos para hooks [SessionEnd](/docs/pt/hooks#sessionend). Aplica-se a saída de sessão, `/clear`, e alternância de sessões via `/resume` interativo. Por padrão o orçamento é 1.5 segundos, automaticamente aumentado para o `timeout` por hook mais alto configurado em arquivos de configurações, até 60 segundos. Timeouts em hooks fornecidos por plugin não aumentam o orçamento |365| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Substitua o orçamento de tempo em milissegundos para hooks [SessionEnd](/docs/pt/hooks#sessionend). O valor é também o timeout para cada hook que não define seu próprio `timeout`. Aplica-se a saída de sessão, `/clear`, e alternância de sessões via `/resume` interativo. Por padrão o orçamento é 1.5 segundos, automaticamente aumentado para o `timeout` por hook mais alto configurado em arquivos de configurações, até 60 segundos. Timeouts em hooks fornecidos por plugin não aumentam o orçamento |

361| `CLAUDE_CODE_SESSION_ID` | Defina automaticamente para o ID da sessão atual em subprocessos de ferramenta Bash e PowerShell, subprocessos [comando hook](/docs/pt/hooks), e subprocessos [servidor MCP](/docs/pt/mcp) stdio. Para Bash, PowerShell e hooks isso corresponde ao campo `session_id` na entrada JSON do hook e é atualizado em `/clear`. Um subprocesso de servidor MCP retém o ID que foi gerado com. Em `--resume <session-id>` recebe o ID retomado, correspondendo hooks e Bash. Em `--continue` ou `--resume` sem um ID explícito pode receber o ID de inicialização inicial. Use para correlacionar scripts e ferramentas externas com a sessão Claude Code que os iniciou |366| `CLAUDE_CODE_SESSION_ID` | Defina automaticamente para o ID da sessão atual em subprocessos de ferramenta Bash e PowerShell, subprocessos [comando hook](/docs/pt/hooks), e subprocessos [servidor MCP](/docs/pt/mcp) stdio. Para Bash, PowerShell, e hooks isso corresponde ao campo `session_id` na entrada JSON do hook e é atualizado em `/clear`. Um subprocesso de servidor MCP retém o ID que foi gerado com. Em `--resume <session-id>` recebe o ID retomado, correspondendo hooks e Bash. Em `--continue` ou `--resume` sem um ID explícito pode receber o ID de inicialização inicial. Use para correlacionar scripts e ferramentas externas com a sessão Claude Code que as iniciou |

362| `CLAUDE_CODE_SHELL` | Defina o shell que Claude Code usa para executar comandos de ferramenta Bash. Aceita um caminho para um binário `bash` ou `zsh`, por exemplo `/opt/homebrew/bin/bash`. Outros shells como `fish` não são suportados. Se o valor não é um caminho `bash` ou `zsh` funcionando, Claude Code o ignora e volta para auto-detecção. Auto-detecção usa seu `$SHELL` quando aponta para `bash` ou `zsh`, caso contrário pega o primeiro `zsh` funcionando então `bash` encontrado em seu `PATH` e locais de instalação padrão |367| `CLAUDE_CODE_SHELL` | Defina o shell que Claude Code usa para executar comandos de ferramenta Bash. Aceita um caminho para um binário `bash` ou `zsh`, por exemplo `/opt/homebrew/bin/bash`. Outros shells como `fish` não são suportados. Se o valor não é um caminho `bash` ou `zsh` funcionando, Claude Code o ignora e volta para auto-detecção. Auto-detecção usa seu `$SHELL` quando aponta para `bash` ou `zsh`, caso contrário pega o primeiro `zsh` funcionando então `bash` encontrado em seu `PATH` e locais de instalação padrão |

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

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

365| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Defina como `1` para usar um prompt do sistema mais curto e descrições de ferramenta abreviadas em qualquer modelo. Defina como `0`, `false`, `no`, ou `off` para optar por não participar mesmo em modelos onde o experimento ou configuração do servidor a habilitaria. O conjunto completo de ferramentas, descoberta de hooks, servidores MCP e CLAUDE.md permanecem habilitados |370| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Defina como `1` para usar um prompt do sistema mais curto e descrições de ferramenta abreviadas em qualquer modelo. Defina como `0`, `false`, `no`, ou `off` para optar por não participar mesmo em modelos onde o experimento ou configuração do servidor a habilitaria. O conjunto completo de ferramentas, hooks, servidores MCP, e descoberta CLAUDE.md permanecem ativados |

366| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Pule autenticação do lado do cliente para [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), para gateways que assinam solicitações a si mesmos |371| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Pule autenticação do lado do cliente para [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), para gateways que assinam solicitações a si mesmos |

367| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Defina como `1` para desativar o cache em processo de credenciais resolvidas da cadeia de provedor de credencial padrão AWS, para que Claude Code resolva a cadeia em cada solicitação de API. Com o cache desativado, um perfil apoiado por SSO solicita credenciais do IAM Identity Center em cada solicitação. Veja [cache de credencial e timeout de resolução](/docs/pt/amazon-bedrock#credential-caching-and-resolution-timeout). Requer Claude Code v2.1.207 ou posterior |372| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Defina como `1` para desativar o cache em processo de credenciais resolvidas da cadeia de provedor de credenciais padrão AWS, para que Claude Code resolva a cadeia em cada solicitação de API. Com o cache desativado, um perfil apoiado por SSO solicita credenciais do IAM Identity Center em cada solicitação. Veja [cache de credenciais e timeout de resolução](/docs/pt/amazon-bedrock#credential-caching-and-resolution-timeout). Requer Claude Code v2.1.207 ou posterior |

368| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Pule autenticação AWS para Amazon Bedrock (por exemplo, ao usar um gateway LLM) |373| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Pule autenticação AWS para Amazon Bedrock (por exemplo, ao usar um gateway LLM) |

369| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | Defina como `1` para tratar uma verificação de disponibilidade [modo rápido](/docs/pt/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) falhada como disponível, para redes que bloqueiam a solicitação direta da verificação para `api.anthropic.com`. Claude Code ainda honra uma resposta "desabilitado pela sua organização" |374| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | Defina como `1` para tratar uma verificação de disponibilidade [modo rápido](/docs/pt/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) falhada como disponível, para redes que bloqueiam a solicitação direta da verificação para `api.anthropic.com`. Claude Code ainda honra uma resposta "desabilitado por sua organização" |

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

371| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Pule autenticação Azure para Microsoft Foundry, para um proxy ou gateway que injeta seu próprio cabeçalho `Authorization`. Claude Code envia solicitações sem uma credencial Azure e preserva o cabeçalho `Authorization` que você fornece, por exemplo através de `ANTHROPIC_CUSTOM_HEADERS`. Ignorado quando `ANTHROPIC_FOUNDRY_API_KEY` ou `ANTHROPIC_FOUNDRY_AUTH_TOKEN` está definido. Antes da v2.1.203, essa variável deixava o cliente Microsoft Foundry incapaz de enviar solicitações a menos que uma chave de API também estivesse definida |376| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Pule autenticação Azure para Microsoft Foundry, para um proxy ou gateway que injeta seu próprio cabeçalho `Authorization`. Claude Code envia solicitações sem uma credencial Azure e preserva o cabeçalho `Authorization` que você fornece, por exemplo através de `ANTHROPIC_CUSTOM_HEADERS`. Ignorado quando `ANTHROPIC_FOUNDRY_API_KEY` ou `ANTHROPIC_FOUNDRY_AUTH_TOKEN` está definido. Antes da v2.1.203, essa variável deixava o cliente Microsoft Foundry incapaz de enviar solicitações a menos que uma chave de API também estivesse definida |

372| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Pule autenticação AWS para Amazon Bedrock Mantle (por exemplo, ao usar um gateway LLM) |377| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Pule autenticação AWS para Amazon Bedrock Mantle (por exemplo, ao usar um gateway LLM) |

373| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Defina como `1` para pular escrita de histórico de prompt e transcrições de sessão em disco. Sessões iniciadas com essa variável definida não aparecem em `--resume`,`--continue`, ou histórico de seta para cima. Útil para sessões de script efêmeras |378| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Defina como `1` para pular escrita de histórico de prompt e transcrições de sessão para disco. Sessões iniciadas com essa variável definida não aparecem em `--resume`, `--continue`, ou histórico de seta para cima. Útil para sessões de script efêmeras |

374| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Pule autenticação Google para Google Cloud's Agent Platform (por exemplo, ao usar um gateway LLM) |379| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Pule autenticação Google para Google Cloud's Agent Platform (por exemplo, ao usar um gateway LLM) |

375| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Número máximo de vezes consecutivas que um hook [Stop](/docs/pt/hooks#stop) ou [SubagentStop](/docs/pt/hooks#subagentstop) pode bloquear a volta de terminar antes de Claude Code substituir e terminar a volta mesmo assim (padrão: 8). Defina como `0` para desabilitar o limite. Aumente isso se seu hook legitimamente precisa de mais iterações para resolver |380| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | Defina como `1` para ter uma sessão iniciada com `--output-format stream-json` escrever uma [mensagem de resultado nomeando por que Claude Code recusou iniciar](/docs/pt/agent-sdk/typescript#startup_failure_reason) para falhas de inicialização que de outra forma terminam apenas com stderr. Requer Claude Code v2.1.274 ou posterior |

376| `CLAUDE_CODE_SUBAGENT_MODEL` | O modelo padrão para [subagentes](/docs/pt/sub-agents#choose-a-model), [equipe de agentes](/docs/pt/agent-teams#specify-teammates-and-models) companheiros, e agentes [fluxo de trabalho](/docs/pt/workflows) que não são atribuídos a um modelo de outra forma. Aceita um alias como `haiku` ou um nome de modelo completo. Duas fontes têm precedência sobre ele: um modelo que Claude passa quando gera o agente, e um campo `model` na definição do agente, incluindo `inherit`. Para mudar isso, defina [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/pt/sub-agents#run-every-subagent-on-one-model). Veja [Escolha um modelo](/docs/pt/sub-agents#choose-a-model) para a ordem completa. Defini-lo como `inherit` é o mesmo que deixá-lo desconfigurado. Antes da v2.1.251, essa variável substituía tanto o modelo por invocação quanto o campo `model` da definição |381| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Número máximo de vezes consecutivas que um hook [Stop](/docs/pt/hooks#stop) ou [SubagentStop](/docs/pt/hooks#subagentstop) pode bloquear a volta de terminar antes de Claude Code substituí-lo e terminar a volta mesmo assim (padrão: 8). Defina como `0` para desabilitar o limite. Aumente isso se seu hook legitimamente precisa de mais iterações para resolver |

377| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | Defina como `1` para forçar um modelo em subagentes, companheiros e agentes de fluxo de trabalho. [Execute cada subagente em um modelo](/docs/pt/sub-agents#run-every-subagent-on-one-model) diz qual modelo é esse. Requer Claude Code v2.1.257 ou posterior |382| `CLAUDE_CODE_SUBAGENT_MODEL` | O modelo padrão para [subagentes](/docs/pt/sub-agents#choose-a-model), [equipe de agentes](/docs/pt/agent-teams#specify-teammates-and-models) companheiros, e agentes [fluxo de trabalho](/docs/pt/workflows) que não são atribuídos a um modelo de outra forma. Aceita um alias como `haiku` ou um nome de modelo completo. Duas fontes têm precedência sobre ele: um modelo que Claude passa quando gera o agente, e um campo `model` na definição do agente, incluindo `inherit`. Para mudar isso, defina [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/pt/sub-agents#run-every-subagent-on-one-model). Veja [Escolha um modelo](/docs/pt/sub-agents#choose-a-model) para a ordem completa. Defini-lo como `inherit` é o mesmo que deixá-lo não definido. Antes da v2.1.251, essa variável substituía tanto o modelo por invocação quanto o campo `model` da definição |

378| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Defina `5m` ou `1h`, os únicos valores que Claude Code aceita, para escolher o [TTL de cache de prompt](/docs/pt/prompt-caching#cache-lifetime) para solicitações fora da conversa principal, como [subagentes](/docs/pt/sub-agents), fluxos de trabalho e trabalho em segundo plano. Tem precedência sobre a configuração `subagentPromptCacheTtl` e sobre `ENABLE_PROMPT_CACHING_1H`, e `FORCE_PROMPT_CACHING_5M` a substitui. Escritas de cache de 1 hora são faturadas a uma taxa mais alta. Requer Claude Code v2.1.242 ou posterior |383| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | Defina como `1` para forçar um modelo em subagentes, companheiros, e agentes de fluxo de trabalho. [Executar cada subagente em um modelo](/docs/pt/sub-agents#run-every-subagent-on-one-model) diz qual modelo é esse. Requer Claude Code v2.1.257 ou posterior |

379| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Defina como `1` para remover credenciais de ambientes de subprocesso (ferramenta Bash, hooks, servidores MCP stdio): credenciais Anthropic e provedor de nuvem, qualquer outra variável que Claude Code reconhece como credencial, e credenciais incorporadas em URLs de registro de pacotes. O processo Claude pai mantém essas credenciais para chamadas de API, mas processos filhos não podem lê-las, reduzindo exposição a ataques de injeção de prompt que tentam exfiltrar segredos via expansão de shell. No Linux, isso também executa subprocessos Bash em um namespace PID isolado para que não possam ler ambientes de processo host via `/proc`; como efeito colateral, `ps`, `pgrep`, e `kill` não podem ver ou sinalizar processos host. `claude-code-action` define isso automaticamente quando `allowed_non_write_users` está configurado |384| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Defina `5m` ou `1h`, os únicos valores que Claude Code aceita, para escolher o [TTL de cache de prompt](/docs/pt/prompt-caching#cache-lifetime) para solicitações fora da conversa principal, como [subagentes](/docs/pt/sub-agents), fluxos de trabalho, e trabalho em segundo plano. Tem precedência sobre a configuração `subagentPromptCacheTtl` e sobre `ENABLE_PROMPT_CACHING_1H`, e `FORCE_PROMPT_CACHING_5M` a substitui. Escritas de cache de 1 hora são faturadas a uma taxa mais alta. Requer Claude Code v2.1.242 ou posterior |

380| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Defina como `1` em modo não interativo (a flag `-p`) para aguardar a conclusão da instalação de plugin antes da primeira consulta. Sem isso, plugins instalam em segundo plano e podem não estar disponíveis na primeira volta. Combine com `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` para limitar a espera |385| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Defina como `1` para remover credenciais de ambientes de subprocesso (ferramenta Bash, hooks, servidores MCP stdio): credenciais Anthropic e provedor de nuvem, qualquer outra variável que Claude Code reconhece como uma credencial, e credenciais incorporadas em URLs de registro de pacotes. O processo Claude pai mantém essas credenciais para chamadas de API, mas processos filhos não podem lê-las, reduzindo exposição a ataques de injeção de prompt que tentam exfiltrar segredos via expansão de shell. Na v2.1.251 ou posterior, o scrub também remove variáveis de ponteiro de armazenamento de configuração próprio de Claude Code (como `CLAUDE_CONFIG_DIR`), para que um processo filho não possa localizar um diretório de configuração realocado. Deixe o scrub não definido se um subprocesso precisa dessas variáveis. No Linux, isso também executa subprocessos Bash em um namespace PID isolado para que não possam ler ambientes de processo host via `/proc`; como efeito colateral, `ps`, `pgrep`, e `kill` não podem ver ou sinalizar processos host. `claude-code-action` define isso automaticamente quando `allowed_non_write_users` está configurado |

381| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Timeout em milissegundos para instalação de plugin síncrona. Quando excedido, Claude Code prossegue sem plugins e registra um erro. Sem padrão: sem essa variável, instalação síncrona aguarda até completar |386| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Defina como `1` no modo não interativo (flag `-p`) para aguardar a conclusão da instalação de plugin antes da primeira consulta. Sem isso, plugins instalam em segundo plano e podem não estar disponíveis na primeira volta. Combine com `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` para limitar a espera |

382| `CLAUDE_CODE_SYNC_SKILLS` | Defina como `1` para baixar suas skills claude.ai habilitadas em `~/.claude/skills/synced/` e ressincronizar a cada 10 minutos. Antes de executar a primeira consulta, Claude Code aguarda até `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` pela lista de suas skills. Os downloads em si terminam em segundo plano, e Claude aguarda o download de uma skill quando a invoca. O nome da pasta `synced` é [reservado para esse download](/docs/pt/skills#where-skills-live). Antes da v2.1.227, as skills baixavam em `~/.claude/skills/` diretamente. Aplica-se apenas em modo não interativo com a flag `-p`. Requer autenticação claude.ai. [Sessões Claude Code na web](/docs/pt/claude-code-on-the-web) recebem suas skills claude.ai habilitadas automaticamente; você não precisa definir isso lá. Claude Code aplica [regras extras às skills baixadas](/docs/pt/skills#how-synced-skills-behave), como não executar seus comandos `!` em sua máquina |387| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Timeout em milissegundos para instalação de plugin síncrona. Quando excedido, Claude Code prossegue sem plugins e registra um erro. Sem padrão: sem essa variável, instalação síncrona aguarda até conclusão |

383| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Timeout em milissegundos para uma ressincronização de skills no meio da sessão quando `CLAUDE_CODE_SYNC_SKILLS` está definido (padrão: 30000). Limita o download acionado quando o host solicita um recarregamento de skill durante a sessão. Quando excedido, a ressincronização para e downloads restantes continuam em segundo plano |388| `CLAUDE_CODE_SYNC_SKILLS` | Defina como `1` no modo não interativo com a flag `-p` para fazer Claude Code baixar as skills ativadas para sua conta claude.ai nessa execução e aguardar a lista delas, até `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`, antes de executar a primeira consulta. Os downloads em si terminam em segundo plano, e Claude aguarda o download de uma skill quando a invoca. Requer autenticação claude.ai. Sessões de terminal onde você entra com sua conta claude.ai [baixam essas skills](/docs/pt/skills#where-synced-skills-load) em `~/.claude/skills/synced/` e ressincronizam aproximadamente a cada 10 minutos sem essa variável, para que a defina apenas quando uma execução `-p` precisa de suas skills atuais em sua primeira consulta. Antes da v2.1.273, sessões de terminal as baixavam apenas em uma execução `-p` com essa variável definida. O nome da pasta `synced` é [reservado para esse download](/docs/pt/skills#where-skills-live). Antes da v2.1.227, as skills baixavam em `~/.claude/skills/` diretamente. Claude Code aplica [regras extras às skills baixadas](/docs/pt/skills#how-synced-skills-behave), como não executar seus comandos `!` em sua máquina |

384| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Timeout em milissegundos para a primeira consulta aguardar a lista de skill inicial quando `CLAUDE_CODE_SYNC_SKILLS` está definido (padrão: 5000). Quando excedido, a primeira consulta executa com quaisquer skills que chegaram. Os downloads terminam em segundo plano de qualquer forma, e Claude aguarda o download de uma skill quando a invoca |389| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Timeout em milissegundos para a ressincronização de skills que executa no meio da sessão quando um app construído no [Agent SDK](/docs/pt/agent-sdk/typescript#query-object) recarrega skills (padrão: 30000). Quando excedido, o recarregamento continua com quaisquer skills que chegaram, e os downloads restantes terminam em segundo plano |

385| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Defina como `false` para desabilitar destaque de sintaxe em saída de diff. Útil quando cores interferem com sua configuração de terminal. Para também desabilitar destaque em blocos de código e visualizações de arquivo, use a configuração [`syntaxHighlightingDisabled`](/docs/pt/settings-reference#syntaxhighlightingdisabled) |390| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Timeout em milissegundos para a primeira consulta aguardar a lista de skills inicial quando `CLAUDE_CODE_SYNC_SKILLS` está definido (padrão: 5000). Quando excedido, a primeira consulta executa com quaisquer skills que chegaram. Os downloads terminam em segundo plano de qualquer forma, e Claude aguarda o download de uma skill quando a invoca |

391| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Defina como `false` para desabilitar destaque de sintaxe em saída diff. Útil quando cores interferem com sua configuração de terminal. Para também desabilitar destaque em blocos de código e visualizações de arquivo, use a configuração [`syntaxHighlightingDisabled`](/docs/pt/settings-reference#syntaxhighlightingdisabled) |

386| `CLAUDE_CODE_TASK_LIST_ID` | Compartilhe uma lista de tarefas entre sessões. Defina o mesmo ID em múltiplas instâncias Claude Code para coordenar em uma lista de tarefas compartilhada, em [sessões que têm as ferramentas Task](/docs/pt/tools-reference#task-tool-availability). Veja [Lista de tarefas](/docs/pt/interactive-mode#task-list) |392| `CLAUDE_CODE_TASK_LIST_ID` | Compartilhe uma lista de tarefas entre sessões. Defina o mesmo ID em múltiplas instâncias Claude Code para coordenar em uma lista de tarefas compartilhada, em [sessões que têm as ferramentas Task](/docs/pt/tools-reference#task-tool-availability). Veja [Lista de tarefas](/docs/pt/interactive-mode#task-list) |

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

388| `CLAUDE_CODE_TMPDIR` | Substitua o diretório temp usado para arquivos temp internos. Claude Code anexa `/claude-{uid}/` em Unix ou `/claude/` no Windows a esse caminho. Padrão: `/tmp` em macOS, `os.tmpdir()` em Linux e Windows. Em macOS e Linux, subprocessos Bash [sandboxed](/docs/pt/sandboxing) recebem um fallback `$TMPDIR` curto sob o padrão do sistema quando sua substituição é um caminho longo, já que algumas ferramentas falham quando caminhos temp ficam muito longos. Comandos Bash não sandboxed herdam seu `$TMPDIR` de shell inalterado. Os próprios arquivos temp de Claude Code sempre usam sua substituição. Defina em seu shell, configurações de usuário ou configurações gerenciadas. Ignorado em [configurações de projeto e local](/docs/pt/settings-reference#variables-claude-code-ignores-in-env) |394| `CLAUDE_CODE_TMPDIR` | Substitua o diretório temp usado para arquivos temp internos. Claude Code anexa `/claude-{uid}/` no Unix ou `/claude/` no Windows a esse caminho. Padrão: `/tmp` no macOS, `os.tmpdir()` no Linux e Windows. No macOS e Linux, subprocessos Bash [sandboxed](/docs/pt/sandboxing) recebem um fallback `$TMPDIR` curto sob o padrão do sistema quando seu override é um caminho longo, já que algumas ferramentas falham quando caminhos temp ficam muito longos. Comandos Bash não sandboxed herdam seu `$TMPDIR` de shell inalterado. Arquivos temp próprios de Claude Code sempre usam seu override. Defina em seu shell, configurações de usuário, ou configurações gerenciadas. Ignorado em [configurações de projeto e local](/docs/pt/settings-reference#variables-claude-code-ignores-in-env) |

389| `CLAUDE_CODE_TMUX_TRUECOLOR` | Defina como qualquer valor não vazio, como `1`, para permitir saída truecolor de 24 bits dentro de tmux. **Defini-lo como `0` ou `false` ainda permite truecolor**, diferentemente da maioria das variáveis on/off; desconfigurar a variável para restaurar o limite de 256 cores. Por padrão, Claude Code limita a 256 cores quando `$TMUX` está definido porque tmux não passa sequências de escape truecolor a menos que configurado. Defina isso após adicionar `set -ga terminal-overrides ',*:Tc'` a seu `~/.tmux.conf`. Veja [Configuração de Terminal](/docs/pt/terminal-config) para outras configurações tmux |395| `CLAUDE_CODE_TMUX_TRUECOLOR` | Defina como qualquer valor não vazio, como `1`, para permitir saída truecolor de 24 bits dentro de tmux. **Defini-lo como `0` ou `false` ainda permite truecolor**, diferentemente da maioria das variáveis on/off; desconfigurar a variável para restaurar o limite de 256 cores. Por padrão, Claude Code limita a 256 cores quando `$TMUX` está definido porque tmux não passa sequências de escape truecolor a menos que configurado. Defina isso após adicionar `set -ga terminal-overrides ',*:Tc'` ao seu `~/.tmux.conf`. Veja [Configuração de Terminal](/docs/pt/terminal-config) para outras configurações tmux |

390| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | Em Linux e WSL, defina como uma lista separada por vírgulas dos tipos de processos que Claude Code [exclui do limite de memória de ferramenta](/docs/pt/tools-reference#memory-limit-on-linux-and-wsl), como `mcp` ou `lsp`. Defina `none` para limitar cada tipo, ou `all-new` para limitar apenas comandos de ferramentas Bash, PowerShell e Monitor. Claude Code mantém comandos de ferramentas Bash, PowerShell e Monitor sob o limite qualquer que você liste. Requer Claude Code v2.1.246 ou posterior |396| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | No Linux e WSL, defina como uma lista separada por vírgulas dos tipos de processos que Claude Code [exclui do limite de memória de ferramenta](/docs/pt/tools-reference#memory-limit-on-linux-and-wsl), como `mcp` ou `lsp`. Defina `none` para limitar cada tipo, ou `all-new` para limitar apenas comandos de ferramentas Bash, PowerShell, e Monitor. Claude Code mantém comandos de ferramentas Bash, PowerShell, e Monitor sob o limite qualquer que seja o que você liste. Requer Claude Code v2.1.246 ou posterior |

391| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | Em Linux e WSL, defina como um tamanho como `4G` para [limitar a memória que comandos de ferramentas Bash e PowerShell podem usar](/docs/pt/tools-reference#memory-limit-on-linux-and-wsl), e comandos de ferramenta Monitor na v2.1.246 ou posterior. Escreva o tamanho em dígitos simples, sozinho para um número de bytes ou com um sufixo `K`, `M`, `G`, ou `T`. Defina `0` ou `off` para desativar o limite. Uma vez que o primeiro processo que Claude Code começa tenha ativado ou desativado o limite, um valor alterado tem efeito na próxima vez que você inicia `claude`. Requer Claude Code v2.1.233 ou posterior |397| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | No Linux e WSL, defina como um tamanho como `4G` para [limitar a memória que comandos de ferramentas Bash e PowerShell podem usar](/docs/pt/tools-reference#memory-limit-on-linux-and-wsl), e comandos de ferramenta Monitor na v2.1.246 ou posterior. Escreva o tamanho em dígitos simples, sozinho para um número de bytes ou com um sufixo `K`, `M`, `G`, ou `T`. Defina `0` ou `off` para desativar o limite. Uma vez que o primeiro processo que Claude Code começa tenha ativado ou desativado o limite, um valor alterado tem efeito na próxima vez que você inicia `claude`. Requer Claude Code v2.1.233 ou posterior |

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

393| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Use [Claude Platform on AWS](/docs/pt/claude-platform-on-aws) |399| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Use [Claude Platform on AWS](/docs/pt/claude-platform-on-aws) |

394| `CLAUDE_CODE_USE_BEDROCK` | Use [Amazon Bedrock](/docs/pt/amazon-bedrock) |400| `CLAUDE_CODE_USE_BEDROCK` | Use [Amazon Bedrock](/docs/pt/amazon-bedrock) |

395| `CLAUDE_CODE_USE_FOUNDRY` | Use [Microsoft Foundry](/docs/pt/microsoft-foundry) |401| `CLAUDE_CODE_USE_FOUNDRY` | Use [Microsoft Foundry](/docs/pt/microsoft-foundry) |

396| `CLAUDE_CODE_USE_MANTLE` | Use o endpoint Amazon Bedrock [Mantle](/docs/pt/amazon-bedrock#use-the-mantle-endpoint) |402| `CLAUDE_CODE_USE_MANTLE` | Use o endpoint [Mantle](/docs/pt/amazon-bedrock#use-the-mantle-endpoint) do Amazon Bedrock |

397| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Defina como `1` para descobrir comandos personalizados, subagentes e estilos de saída usando APIs de arquivo Node.js em vez de ripgrep. Defina isso se o binário ripgrep agrupado não está disponível ou bloqueado em seu ambiente. Não afeta as ferramentas Grep ou busca de arquivo |403| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Defina como `1` para descobrir comandos personalizados, subagentes, e estilos de saída usando APIs de arquivo Node.js em vez de ripgrep. Defina isso se o binário ripgrep incluído não estiver disponível ou bloqueado em seu ambiente. Não afeta as ferramentas Grep ou busca de arquivo |

398| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Controla a ferramenta PowerShell. No Windows sem Git Bash, a ferramenta está ativada automaticamente; defina como `0` para desabilitá-la. No Windows com Git Bash instalado, a ferramenta está ativa por padrão para contas claude.ai e Console; defina como `1` para habilitá-la em sessões Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry, ou `0` para desativá-la. Em Linux, macOS e WSL, defina como `1` para habilitá-la, o que requer `pwsh` em seu `PATH`. Quando ativada no Windows, Claude pode executar comandos PowerShell nativamente em vez de rotear através de Git Bash. Veja [Ferramenta PowerShell](/docs/pt/tools-reference#powershell-tool) |404| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Controla a ferramenta PowerShell. No Windows sem Git Bash, a ferramenta está ativada automaticamente; defina como `0` para desabilitá-la. No Windows com Git Bash instalado, a ferramenta está ativa por padrão para contas claude.ai e Console; defina como `1` para habilitá-la em sessões Amazon Bedrock, Google Cloud's Agent Platform, e Microsoft Foundry, ou `0` para desativá-la. No Linux, macOS, e WSL, defina como `1` para habilitá-la, o que requer `pwsh` em seu `PATH`. Quando ativada no Windows, Claude pode executar comandos PowerShell nativamente em vez de rotear através de Git Bash. Veja [Ferramenta PowerShell](/docs/pt/tools-reference#powershell-tool) |

399| `CLAUDE_CODE_USE_VERTEX` | Use [Google Cloud's Agent Platform](/docs/pt/google-vertex-ai) |405| `CLAUDE_CODE_USE_VERTEX` | Use [Google Cloud's Agent Platform](/docs/pt/google-vertex-ai) |

400| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Defina como o número de milissegundos que [WebFetch](/docs/pt/tools-reference#webfetch-tool-behavior) mantém cada resposta de URL buscada em cache. O padrão é `900000`, que é 15 minutos. Aceita apenas dígitos simples; `0`, um decimal, ou qualquer outra grafia mantém o padrão. Claude Code lê o valor uma vez por lançamento, para que uma mudança em um bloco `env` de configurações se aplique quando você próximo inicia `claude`. Requer Claude Code v2.1.233 ou posterior |406| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Defina como o número de milissegundos que [WebFetch](/docs/pt/tools-reference#webfetch-tool-behavior) mantém a resposta de cada URL buscada em cache. O padrão é `900000`, que é 15 minutos. Aceita apenas dígitos simples; `0`, um decimal, ou qualquer outra grafia mantém o padrão. Claude Code lê o valor uma vez por lançamento, para que uma mudança em um bloco `env` de configurações se aplique quando você próximo inicia `claude`. Requer Claude Code v2.1.233 ou posterior |

401| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | Limite superior em milissegundos em quanto tempo [WebFetch](/docs/pt/tools-reference#webfetch-tool-behavior) aguarda uma página baixar, incluindo qualquer redirecionamento que segue. Um download que não completou até então falha com um erro de prazo. O padrão é `300000`, que é cinco minutos. Defina como `0` para remover o limite. Aceita apenas dígitos simples; um decimal ou qualquer outra grafia mantém o padrão. Requer Claude Code v2.1.268 ou posterior |407| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | Limite superior em milissegundos em quanto tempo [WebFetch](/docs/pt/tools-reference#webfetch-tool-behavior) aguarda uma página baixar, incluindo qualquer redirecionamento que segue. Um download que não foi concluído até então falha com um erro de prazo. O padrão é `300000`, que é cinco minutos. Defina como `0` para remover o limite. Aceita apenas dígitos simples; um decimal ou qualquer outra grafia mantém o padrão. Requer Claude Code v2.1.268 ou posterior |

402| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Limite superior em milissegundos em quanto tempo um agente [fluxo de trabalho](/docs/pt/workflows) aguarda a primeira resposta de um irmão de mesmo prefixo começar antes de enviar sua própria primeira solicitação. Quando um fan-out começa vários agentes que compartilham um [prefixo de cache de prompt](/docs/pt/workflows#prompt-caching-in-a-fan-out), Claude Code mantém todos exceto o primeiro agente por até esse tempo para que o resto leia o prefixo em cache em vez de cada processá-lo sem cache. Padrão `5000`. Defina como `0` para desabilitar a espera. Quando `DISABLE_PROMPT_CACHING` está definido, agentes nunca aguardam. Requer Claude Code v2.1.229 ou posterior |408| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Quantos agentes um único [fluxo de trabalho](/docs/pt/workflows) executa de uma vez, de `1` a `256`. Por padrão, uma execução executa até 16 agentes de uma vez, menos quando Claude Code tem menos CPUs disponíveis; chamadas `agent()` enfileiradas aguardam um slot livre. A transcrição de cada agente em execução fica na memória de Claude Code, para que valores mais altos aumentem o uso de memória. Aceita apenas dígitos simples; valores fora do intervalo e outras grafias mantêm o padrão. Requer Claude Code v2.1.269 ou posterior |

403| `CLAUDE_CONFIG_DIR` | Substitua o diretório de configuração (padrão: `~/.claude`). Todas as configurações, histórico de sessão e plugins são armazenados sob esse caminho. Para credenciais, veja [onde Claude Code armazena credenciais](/docs/pt/authentication#credential-management). Útil para executar múltiplas contas lado a lado: por exemplo, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Defina em seu shell, configurações de usuário ou configurações gerenciadas. Ignorado em [configurações de projeto e local](/docs/pt/settings-reference#variables-claude-code-ignores-in-env) |409| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Limite superior em milissegundos em quanto tempo um agente [fluxo de trabalho](/docs/pt/workflows) aguarda a primeira resposta de um irmão de mesmo prefixo começar antes de enviar sua própria primeira solicitação. Quando um fan-out começa vários agentes que compartilham um [prefixo de cache de prompt](/docs/pt/workflows#prompt-caching-in-a-fan-out), Claude Code mantém todos exceto o primeiro agente por até esse tempo para que o resto leia o prefixo em cache em vez de cada um processá-lo sem cache. Padrão `5000`. Defina como `0` para desabilitar a espera. Quando `DISABLE_PROMPT_CACHING` está definido, agentes nunca aguardam. Requer Claude Code v2.1.229 ou posterior |

404| `CLAUDE_DISABLE_ADOPT` | Defina como `1` para parar trabalho em segundo plano em voo em vez de carregá-lo quando você coloca uma sessão em segundo plano pressionando `←` ou com [`/background`](/docs/pt/agent-view#from-inside-a-session). Claude Code pede para você confirmar antes de colocar em segundo plano, então para as tarefas que de outra forma carregariam. Requer Claude Code v2.1.195 ou posterior |410| `CLAUDE_CONFIG_DIR` | Substitua o diretório de configuração (padrão: `~/.claude`). Todas as configurações, histórico de sessão, e plugins são armazenados sob esse caminho. Para credenciais, veja [onde Claude Code armazena credenciais](/docs/pt/authentication#credential-management). Útil para executar múltiplas contas lado a lado: por exemplo, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Defina em seu shell, configurações de usuário, ou configurações gerenciadas. Ignorado em [configurações de projeto e local](/docs/pt/settings-reference#variables-claude-code-ignores-in-env) |

405| `CLAUDE_EFFORT` | Defina automaticamente em subprocessos de ferramenta Bash e comandos hook para o [nível de effort](/docs/pt/model-config#adjust-effort-level) em efeito quando o subprocesso começa: `low`, `medium`, `high`, `xhigh`, ou `max`. Ultracode não é um nível distinto e relata como `xhigh`. Corresponde ao campo `effort.level` passado para [hooks](/docs/pt/hooks). Apenas definido quando o modelo atual suporta o parâmetro effort |411| `CLAUDE_DISABLE_ADOPT` | Defina como `1` para parar trabalho em segundo plano em voo em vez de carregá-lo quando você coloca uma sessão em segundo plano pressionando `←` ou com [`/background`](/docs/pt/agent-view#from-inside-a-session). Claude Code pede que você confirme antes de colocar em segundo plano, então para as tarefas que de outra forma carregariam. Requer Claude Code v2.1.195 ou posterior |

406| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Defina como `1` para forçar-ativar o watchdog de inatividade de streaming em nível de byte, ou defina como `0` para forçar-desativar. `0` também desativa o [prazo de primeiro byte](/docs/pt/network-config#streaming-idle-watchdogs) nas conexões onde esse prazo é executado. Quando desconfigurado, o watchdog está ativado por padrão para conexões API Anthropic diretas e [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), e para respostas de streaming em conexões [gateway](/docs/pt/gateways) alcançadas através de `ANTHROPIC_BASE_URL` ou `ANTHROPIC_AWS_BASE_URL`; antes da v2.1.222 não era executado nessas conexões de gateway, para que o watchdog em nível de evento pudesse relatar um travamento lá mesmo enquanto pings keep-alive estavam chegando. Para timeouts e como os timers interagem, veja [Watchdogs de inatividade de streaming](/docs/pt/network-config#streaming-idle-watchdogs) |412| `CLAUDE_EFFORT` | Defina automaticamente em subprocessos de ferramenta Bash e comandos hook para o [nível de esforço](/docs/pt/model-config#adjust-effort-level) em efeito quando o subprocesso começa: `low`, `medium`, `high`, `xhigh`, ou `max`. Ultracode não é um nível distinto e relata como `xhigh`. Corresponde ao campo `effort.level` passado para [hooks](/docs/pt/hooks). Apenas definido quando o modelo atual suporta o parâmetro effort |

413| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Defina como `1` para forçar ativação do watchdog de inatividade de streaming em nível de byte, ou defina como `0` para forçar desabilitação. `0` também desativa o [prazo de primeiro byte](/docs/pt/network-config#streaming-idle-watchdogs) nas conexões onde esse prazo executa. Quando não definido, o watchdog está ativado por padrão para conexões diretas de API Anthropic e [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), e para respostas de streaming em conexões [gateway](/docs/pt/gateways) alcançadas através de `ANTHROPIC_BASE_URL` ou `ANTHROPIC_AWS_BASE_URL`; antes da v2.1.222 não executava nessas conexões de gateway, para que o watchdog em nível de evento pudesse relatar um travamento lá mesmo enquanto pings keep-alive estavam chegando. Para timeouts e como os timers interagem, veja [Watchdogs de inatividade de streaming](/docs/pt/network-config#streaming-idle-watchdogs) |

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

408| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Defina como `0` para forçar-desativar o watchdog de inatividade de streaming em nível de evento, ou defina como `1` para forçar-ativar. Quando desconfigurado, o watchdog está ativado por padrão para todos os provedores. Antes da v2.1.196, o padrão desconfigurado era controlado pelo servidor na API Anthropic direta e desativado em outros provedores. Configure o timeout com `CLAUDE_STREAM_IDLE_TIMEOUT_MS`; para os outros timers de travamento que executam ao lado deste, veja [Watchdogs de inatividade de streaming](/docs/pt/network-config#streaming-idle-watchdogs) |415| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Defina como `0` para forçar desabilitação do watchdog de inatividade de streaming em nível de evento, ou defina como `1` para forçar ativação. Quando não definido, o watchdog está ativo por padrão para todos os provedores. Antes da v2.1.196, o padrão não definido era controlado pelo servidor na API Anthropic direta e desativado em outros provedores. Configure o timeout com `CLAUDE_STREAM_IDLE_TIMEOUT_MS`; para os outros timers de travamento que executam ao lado deste, veja [Watchdogs de inatividade de streaming](/docs/pt/network-config#streaming-idle-watchdogs) |

409| `CLAUDE_ENV_FILE` | Caminho para um script de shell cujo conteúdo Claude Code executa antes de cada comando Bash no mesmo processo de shell, para que exports no arquivo sejam visíveis ao comando. Use para persistir ativação de virtualenv ou conda entre comandos. Também populado dinamicamente por hooks [SessionStart](/docs/pt/hooks#persist-environment-variables), [Setup](/docs/pt/hooks#setup), [CwdChanged](/docs/pt/hooks#cwdchanged), e [FileChanged](/docs/pt/hooks#filechanged) |416| `CLAUDE_ENV_FILE` | Caminho para um script de shell cujo conteúdo Claude Code executa antes de cada comando Bash no mesmo processo de shell, para que exports no arquivo sejam visíveis ao comando. Use para persistir ativação de virtualenv ou conda entre comandos. Também populado dinamicamente por hooks [SessionStart](/docs/pt/hooks#persist-environment-variables), [Setup](/docs/pt/hooks#setup), [CwdChanged](/docs/pt/hooks#cwdchanged), e [FileChanged](/docs/pt/hooks#filechanged) |

410| `CLAUDE_JOB_DIR` | Defina por Claude Code em cada [sessão em segundo plano](/docs/pt/agent-view) para o diretório `~/.claude/jobs/<id>` dessa sessão. Comandos de shell que a sessão executa o herdam. Escreva arquivos scratch para [`$CLAUDE_JOB_DIR/tmp`](/docs/pt/agent-view#where-state-is-stored). Chamadas `Write` e `Edit` de Claude lá não solicitam permissão, e o diretório é removido quando a sessão é excluída |417| `CLAUDE_JOB_DIR` | Defina por Claude Code em cada [sessão em segundo plano](/docs/pt/agent-view) para o diretório `~/.claude/jobs/<id>` dessa sessão. Comandos de shell que a sessão executa o herdam. Escreva arquivos scratch para [`$CLAUDE_JOB_DIR/tmp`](/docs/pt/agent-view#where-state-is-stored). Chamadas `Write` e `Edit` de Claude lá não solicitam permissão, e o diretório é removido quando a sessão é excluída |

411| `CLAUDE_PID` | Claude Code define isso para seu próprio ID de processo nos subprocessos que gera: comandos de ferramentas Bash e PowerShell e comandos hook. No Linux, a integração de shell da ferramenta Bash o usa para recusar um padrão `pkill` que corresponderia ao próprio processo Claude Code; veja [a referência de erro](/docs/pt/errors#pkill-pattern-matches-the-claude-code-process). Leia de seus próprios scripts para identificar ou sinalizar o processo Claude Code pai deliberadamente. Requer Claude Code v2.1.214 ou posterior |418| `CLAUDE_PID` | Claude Code define isso para seu próprio ID de processo nos subprocessos que gera: comandos de ferramenta Bash e PowerShell e comandos hook. No Linux, a integração de shell da ferramenta Bash o usa para recusar um padrão `pkill` que corresponderia ao próprio processo Claude Code; veja [a referência de erro](/docs/pt/errors#pkill-pattern-matches-the-claude-code-process). Leia-o de seus próprios scripts para identificar ou sinalizar o processo Claude Code pai deliberadamente. Requer Claude Code v2.1.214 ou posterior |

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

413| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | Prazo em milissegundos para o primeiro byte de resposta de uma solicitação de streaming, nas conexões onde o [prazo de primeiro byte](/docs/pt/network-config#streaming-idle-watchdogs) é executado. Para como Claude Code o limita, o tempo extra que adiciona para corpos de solicitação grandes, e como escolhe o prazo quando você deixa isso desconfigurado, veja [Sem resposta da API](/docs/pt/errors#no-response-from-api). Requer Claude Code v2.1.242 ou posterior |420| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | Prazo em milissegundos para o primeiro byte de resposta de uma solicitação de streaming, nas conexões onde o [prazo de primeiro byte](/docs/pt/network-config#streaming-idle-watchdogs) executa. Para como Claude Code o limita, o tempo extra que adiciona para corpos de solicitação grandes, e como escolhe o prazo quando você deixa isso não definido, veja [Nenhuma resposta da API](/docs/pt/errors#no-response-from-api). Requer Claude Code v2.1.242 ou posterior |

414| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Timeout em milissegundos antes dos watchdogs de inatividade de streaming em nível de evento e byte fecharem uma conexão travada. Quando você define essa variável explicitamente, o mínimo é `300000` (5 minutos); valores mais baixos são silenciosamente limitados para absorver pausas de pensamento estendido e buffering de proxy, e o watchdog em nível de byte limita o valor a 30 minutos. `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` tem precedência sobre essa variável para o watchdog em nível de byte. Para os padrões desconfigurados por watchdog, veja [Watchdogs de inatividade de streaming](/docs/pt/network-config#streaming-idle-watchdogs) |421| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Timeout em milissegundos antes dos watchdogs de inatividade de streaming em nível de evento e byte fecharem uma conexão travada. Quando você define essa variável explicitamente, o mínimo é `300000` (5 minutos); valores mais baixos são silenciosamente limitados para absorver pausas de pensamento estendido e buffering de proxy, e o watchdog em nível de byte limita o valor a 30 minutos. `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` tem precedência sobre essa variável para o watchdog em nível de byte. Para os padrões não definidos por watchdog, veja [Watchdogs de inatividade de streaming](/docs/pt/network-config#streaming-idle-watchdogs) |

415| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Removido na v2.1.260 e agora é um no-op. Anteriormente limitava quanto tempo um [comando de shell em segundo plano](/docs/pt/interactive-mode#background-bash-commands) que um [subagente](/docs/pt/sub-agents) iniciou poderia executar, em milissegundos, com um padrão de 60 minutos. Veja [as regras de tempo de vida de comando em segundo plano](/docs/pt/tools-reference#background-commands) |422| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Removido na v2.1.260 e agora é um no-op. Anteriormente limitava quanto tempo um [comando de shell em segundo plano](/docs/pt/interactive-mode#background-bash-commands) que um [subagente](/docs/pt/sub-agents) iniciou poderia executar, em milissegundos, com um padrão de 60 minutos. Veja [as regras de tempo de vida de comando em segundo plano](/docs/pt/tools-reference#background-commands) |

416| `DEBUG` | Defina como `1` para ativar modo de depuração, equivalente a iniciar com [`--debug`](/docs/pt/cli-reference#cli-flags). Logs de depuração são escritos em `~/.claude/debug/<session-id>.txt`, ou para o caminho definido por `CLAUDE_CODE_DEBUG_LOGS_DIR`. Apenas os valores truthy `1`, `true`, `yes`, e `on` ativam modo de depuração, para que padrões de namespace como `DEBUG=express:*` definidos para outras ferramentas não o acionem |423| `DEBUG` | Defina como `1` para ativar modo de depuração, equivalente a iniciar com [`--debug`](/docs/pt/cli-reference#cli-flags). Logs de depuração são escritos para `~/.claude/debug/<session-id>.txt`, ou para o caminho definido por `CLAUDE_CODE_DEBUG_LOGS_DIR`. Apenas os valores truthy `1`, `true`, `yes`, e `on` ativam modo de depuração, para que padrões de namespace como `DEBUG=express:*` definidos para outras ferramentas não o acionem |

417| `DISABLE_AUTOUPDATER` | Defina como `1` para desabilitar atualizações automáticas em segundo plano. Manual `claude update` ainda funciona. Use `DISABLE_UPDATES` para bloquear ambos |424| `DISABLE_AUTOUPDATER` | Defina como `1` para desabilitar atualizações automáticas em segundo plano. Manual `claude update` ainda funciona. Use `DISABLE_UPDATES` para bloquear ambos |

418| `DISABLE_AUTO_COMPACT` | Defina como `1` para desabilitar compactação automática ao se aproximar do limite de contexto. O comando manual `/compact` permanece disponível. Use quando você quer controle explícito sobre quando a compactação ocorre. Substitui a configuração [`autoCompactEnabled`](/docs/pt/settings-reference#autocompactenabled) |425| `DISABLE_AUTO_COMPACT` | Defina como `1` para desabilitar compactação automática ao se aproximar do limite de contexto. O comando manual `/compact` permanece disponível. Use quando você quer controle explícito sobre quando a compactação ocorre. Substitui a configuração [`autoCompactEnabled`](/docs/pt/settings-reference#autocompactenabled) |

419| `DISABLE_COMPACT` | Defina como `1` para desabilitar toda compactação: tanto compactação automática quanto o comando manual `/compact` |426| `DISABLE_COMPACT` | Defina como `1` para desabilitar toda compactação: tanto compactação automática quanto o comando manual `/compact` |

420| `DISABLE_COST_WARNINGS` | Defina como `1` para desabilitar mensagens de aviso de custo |427| `DISABLE_COST_WARNINGS` | Defina como `1` para desabilitar mensagens de aviso de custo |

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

422| `DISABLE_ERROR_REPORTING` | Defina como qualquer valor não vazio, como `1`, para optar por não participar de relatório de erros. **Defini-lo como `0` ou `false` ainda opta por não participar**, diferentemente da maioria das variáveis on/off; desconfigurar a variável para ativar relatório de erros novamente |429| `DISABLE_ERROR_REPORTING` | Defina como qualquer valor não vazio, como `1`, para optar por não participar de relatório de erros. **Defini-lo como `0` ou `false` ainda opta por não participar**, diferentemente da maioria das variáveis on/off; desconfigurar a variável para ativar relatório de erros novamente |

423| `DISABLE_EXTRA_USAGE_COMMAND` | Defina como `1` para ocultar o comando `/usage-credits` que deixa usuários comprar uso adicional além de limites de taxa |430| `DISABLE_EXTRA_USAGE_COMMAND` | Defina como `1` para ocultar o comando `/usage-credits` que permite aos usuários comprar uso adicional além de limites de taxa |

424| `DISABLE_FEEDBACK_COMMAND` | Defina como `1` para desabilitar o comando `/feedback` e [feedback redigido por Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior). Também desabilita `/bug` e `/share`, que relatam através do mesmo caminho; antes da v2.1.212 eram aliases de `/feedback`, para que o comando fosse desabilitado sob cada nome. O nome mais antigo `DISABLE_BUG_COMMAND` também é aceito |431| `DISABLE_FEEDBACK_COMMAND` | Defina como `1` para desabilitar o comando `/feedback` e [feedback redigido por Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior). Também desabilita `/bug` e `/share`, que relatam através do mesmo caminho; antes da v2.1.212 eram aliases de `/feedback`, para que o comando fosse desabilitado sob cada nome. O nome mais antigo `DISABLE_BUG_COMMAND` também é aceito |

425| `DISABLE_GROWTHBOOK` | Defina como `1` ou `true` para desabilitar busca de sinalizador de recurso GrowthBook e usar padrões de código para cada sinalizador. Isso torna [Remote Control](/docs/pt/remote-control#requirements) e os outros [recursos que precisam de busca de sinalizador de recurso](#features-that-need-feature-flag-fetching) indisponíveis. Defini-lo como `0` ou `false` deixa busca ativa. Logging de evento de telemetria permanece ativo a menos que `DISABLE_TELEMETRY` também esteja definido |432| `DISABLE_GROWTHBOOK` | Defina como `1` ou `true` para desabilitar busca de sinalizador de recurso GrowthBook e usar padrões de código para cada sinalizador. Isso torna [Remote Control](/docs/pt/remote-control#requirements) e os outros [recursos que precisam de busca de sinalizador de recurso](#features-that-need-feature-flag-fetching) indisponíveis. Defini-lo como `0` ou `false` deixa busca ativa. Logging de evento de telemetria permanece ativo a menos que `DISABLE_TELEMETRY` também esteja definido |

426| `DISABLE_INSTALLATION_CHECKS` | Defina como `1` para desabilitar avisos de instalação. Use apenas ao gerenciar manualmente o local de instalação, já que isso pode mascarar problemas com instalações padrão |433| `DISABLE_INSTALLATION_CHECKS` | Defina como `1` para desabilitar avisos de instalação. Use apenas ao gerenciar manualmente o local de instalação, já que isso pode mascarar problemas com instalações padrão |


433| `DISABLE_PROMPT_CACHING_HAIKU` | Defina como `1` para desabilitar cache de prompt para modelos Haiku |440| `DISABLE_PROMPT_CACHING_HAIKU` | Defina como `1` para desabilitar cache de prompt para modelos Haiku |

434| `DISABLE_PROMPT_CACHING_OPUS` | Defina como `1` para desabilitar cache de prompt para modelos Opus |441| `DISABLE_PROMPT_CACHING_OPUS` | Defina como `1` para desabilitar cache de prompt para modelos Opus |

435| `DISABLE_PROMPT_CACHING_SONNET` | Defina como `1` para desabilitar cache de prompt para modelos Sonnet |442| `DISABLE_PROMPT_CACHING_SONNET` | Defina como `1` para desabilitar cache de prompt para modelos Sonnet |

436| `DISABLE_TELEMETRY` | Defina como qualquer valor não vazio, como `1`, para optar por não participar de telemetria. **Defini-lo como `0` ou `false` ainda opta por não participar**, diferentemente da maioria das variáveis on/off; desconfigurar a variável para ativar telemetria novamente. Eventos de telemetria não incluem dados de usuário como código, caminhos de arquivo ou comandos bash. Também desabilita busca de sinalizador de recurso com o mesmo efeito que `DISABLE_GROWTHBOOK`, o que torna [Remote Control](/docs/pt/remote-control#requirements) e os outros [recursos que precisam de busca de sinalizador de recurso](#features-that-need-feature-flag-fetching) indisponíveis. Veja [Desativar telemetria para sua organização](/docs/pt/managed-settings#turn-telemetry-off-for-your-organization) |443| `DISABLE_TELEMETRY` | Defina como qualquer valor não vazio, como `1`, para optar por não participar de telemetria. **Defini-lo como `0` ou `false` ainda opta por não participar**, diferentemente da maioria das variáveis on/off; desconfigurar a variável para ativar telemetria novamente. Eventos de telemetria não incluem dados de usuário como código, caminhos de arquivo, ou comandos bash. Também desabilita busca de sinalizador de recurso com o mesmo efeito que `DISABLE_GROWTHBOOK`, o que torna [Remote Control](/docs/pt/remote-control#requirements) e os outros [recursos que precisam de busca de sinalizador de recurso](#features-that-need-feature-flag-fetching) indisponíveis. Veja [Desativar telemetria para sua organização](/docs/pt/managed-settings#turn-telemetry-off-for-your-organization) |

437| `DISABLE_UPDATES` | Defina como `1` para bloquear todas as atualizações incluindo manual `claude update` e `claude install`. Mais rigoroso que `DISABLE_AUTOUPDATER`. Use ao distribuir Claude Code através de seus próprios canais e usuários não devem auto-atualizar |444| `DISABLE_UPDATES` | Defina como `1` para bloquear todas as atualizações incluindo manual `claude update` e `claude install`. Mais rigoroso que `DISABLE_AUTOUPDATER`. Use ao distribuir Claude Code através de seus próprios canais e usuários não devem auto-atualizar |

438| `DISABLE_UPGRADE_COMMAND` | Defina como `1` para ocultar o comando `/upgrade` |445| `DISABLE_UPGRADE_COMMAND` | Defina como `1` para ocultar o comando `/upgrade` |

439| `DO_NOT_TRACK` | Defina como `1` para optar por não participar de telemetria, com o mesmo efeito que `DISABLE_TELEMETRY`, incluindo tornar [Remote Control](/docs/pt/remote-control#requirements) e os outros [recursos que precisam de busca de sinalizador de recurso](#features-that-need-feature-flag-fetching) indisponíveis. Claude Code lê essa variável como um booleano padrão, para que `0` deixe telemetria ativa, e a honra como a convenção entre ferramentas reconhecida por muitos CLIs de desenvolvedor |446| `DO_NOT_TRACK` | Defina como `1` para optar por não participar de telemetria, com o mesmo efeito que `DISABLE_TELEMETRY`, incluindo tornar [Remote Control](/docs/pt/remote-control#requirements) e os outros [recursos que precisam de busca de sinalizador de recurso](#features-that-need-feature-flag-fetching) indisponíveis. Claude Code lê essa variável como um booleano padrão, para que `0` deixe telemetria ativa, e a honra como a convenção entre ferramentas reconhecida por muitos CLIs de desenvolvedor |

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

441| `ENABLE_CLAUDEAI_MCP_SERVERS` | Defina como `false` para parar Claude Code de buscar [servidores MCP claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai). Ativado por padrão para usuários conectados. Para desabilitar por projeto ou por org, defina [`disableClaudeAiConnectors`](/docs/pt/settings-reference#disableclaudeaiconnectors) em configurações |448| `ENABLE_CLAUDEAI_MCP_SERVERS` | Defina como `false` para impedir que Claude Code busque [servidores MCP claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai). Ativado por padrão para usuários conectados. Para desabilitar por projeto ou por org, defina [`disableClaudeAiConnectors`](/docs/pt/settings-reference#disableclaudeaiconnectors) em configurações |

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

443| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Deprecated. Use `ENABLE_PROMPT_CACHING_1H` |450| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Descontinuado. Use `ENABLE_PROMPT_CACHING_1H` |

444| `ENABLE_TOOL_SEARCH` | Controla [busca de ferramentas MCP](/docs/pt/mcp#scale-with-mcp-tool-search). Desconfigurado, Claude Code adia todas as ferramentas MCP por padrão. Ainda as carrega antecipadamente em modelos Google Cloud's Agent Platform anteriores à geração Claude 4.5, em uma implantação Microsoft Foundry hospedada no Azure, e quando `ANTHROPIC_BASE_URL` aponta para um host que não é de primeira parte. `true` sempre adia e envia o cabeçalho beta, exceto nesses mesmos modelos Agent Platform e implantações Microsoft Foundry; solicitações falham em proxies que não suportam `tool_reference`. `auto` carrega antecipadamente quando definições de ferramenta cabem dentro de 10% do contexto. `auto:N` define um limite personalizado, como `auto:5` para 5%. `false` carrega todas as ferramentas antecipadamente. Um valor que você define é ignorado quando `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` está definido. Antes da v2.1.221, Claude Code desabilitava busca de ferramentas para todos os modelos em Google Cloud's Agent Platform a menos que você definisse essa variável como `true` |451| `ENABLE_TOOL_SEARCH` | Controla [busca de ferramentas MCP](/docs/pt/mcp#scale-with-mcp-tool-search). Não definido, Claude Code adia todas as ferramentas MCP por padrão. Ainda as carrega antecipadamente em modelos Google Cloud's Agent Platform anteriores à geração Claude 4.5, em uma implantação Microsoft Foundry hospedada no Azure, e quando `ANTHROPIC_BASE_URL` aponta para um host que não é de primeira parte. `true` sempre adia e envia o cabeçalho beta, exceto nesses mesmos modelos Agent Platform e implantações Microsoft Foundry; solicitações falham em proxies que não suportam `tool_reference`. `auto` carrega antecipadamente quando definições de ferramenta cabem dentro de 10% do contexto. `auto:N` define um limite personalizado, como `auto:5` para 5%. `false` carrega todas as ferramentas antecipadamente. Um valor que você define é ignorado quando `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` está definido. Antes da v2.1.221, Claude Code desabilitava busca de ferramentas para todos os modelos em Google Cloud's Agent Platform a menos que você definisse essa variável como `true` |

445| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Defina como qualquer valor não vazio, como `1`, para fazer Claude Code parar de tentar novamente em erros de sobrecarga repetidos para cada modelo quando nenhum modelo fallback está configurado. **Defini-lo como `0` ou `false` ainda ativa isso**, diferentemente da maioria das variáveis on/off; desconfigurar a variável para restaurar o comportamento de retry padrão. Sem isso, Claude Code para de tentar novamente dessa forma em modelos que reconhece como modelos Opus, Fable ou Mythos quando você autentica com uma chave de API ou um [provedor de terceiros](/docs/pt/third-party-integrations) em vez de uma assinatura Claude. No Claude Code v2.1.160 ou posterior, Claude Code muda para sua [cadeia de modelo fallback](/docs/pt/model-config#fallback-model-chains) configurada em erros de sobrecarga repetidos para qualquer modelo primário, para que essa variável não afete a mudança para um modelo fallback |452| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Defina como qualquer valor não vazio, como `1`, para fazer Claude Code parar de tentar novamente em erros de sobrecarga repetidos para cada modelo quando nenhum modelo fallback está configurado. **Defini-lo como `0` ou `false` ainda ativa isso**, diferentemente da maioria das variáveis on/off; desconfigurar a variável para restaurar o comportamento de retry padrão. Sem isso, Claude Code para de tentar novamente dessa forma em modelos que reconhece como modelos Opus, Fable, ou Mythos quando você autentica com uma chave de API ou um [provedor de terceiros](/docs/pt/third-party-integrations) em vez de uma assinatura Claude. No Claude Code v2.1.160 ou posterior, Claude Code muda para sua [cadeia de modelo fallback](/docs/pt/model-config#fallback-model-chains) configurada em erros de sobrecarga repetidos para qualquer modelo primário, para que essa variável não afete a mudança para um modelo fallback |

446| `FORCE_AUTOUPDATE_PLUGINS` | Defina como `1` para forçar auto-atualizações de plugin mesmo quando o auto-atualizador principal está desabilitado via `DISABLE_AUTOUPDATER` |453| `FORCE_AUTOUPDATE_PLUGINS` | Defina como `1` para forçar auto-atualizações de plugin mesmo quando o auto-atualizador principal está desabilitado via `DISABLE_AUTOUPDATER` |

447| `FORCE_HYPERLINK` | Defina como `1` para ativar hyperlinks OSC 8 clicáveis quando seu terminal os suporta mas não é auto-detectado, ou `0` para desabilitá-los. Quando desconfigurado, Claude Code ativa hyperlinks apenas quando detecta suporte de terminal. Claude Code analisa esse valor como um número, não um Booleano, para que um valor como `false`, `no`, ou `off` ative hyperlinks em vez de desabilitá-los. O [badge de status PR ou merge request](/docs/pt/interactive-mode#pr-review-status) do rodapé renderiza como um hyperlink mesmo quando Claude Code não pode detectar suporte de terminal, como sobre SSH. Defina `0` para renderizar o badge como texto simples |454| `FORCE_HYPERLINK` | Defina como `1` para ativar hyperlinks OSC 8 clicáveis quando seu terminal os suporta mas não é auto-detectado, ou `0` para desabilitá-los. Quando não definido, Claude Code ativa hyperlinks apenas quando detecta suporte de terminal. Claude Code analisa esse valor como um número, não um Booleano, para que um valor como `false`, `no`, ou `off` ative hyperlinks em vez de desabilitá-los. O badge [PR ou merge request](/docs/pt/interactive-mode#pr-review-status) no rodapé renderiza como um hyperlink mesmo quando Claude Code não pode detectar suporte de terminal, como sobre SSH. Defina `0` para renderizar o badge como texto simples |

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

449| `HTTP_PROXY` | Especifique servidor proxy HTTP para conexões de rede |456| `HTTP_PROXY` | Especifique servidor proxy HTTP para conexões de rede |

450| `HTTPS_PROXY` | Especifique servidor proxy HTTPS para conexões de rede |457| `HTTPS_PROXY` | Especifique servidor proxy HTTPS para conexões de rede |

451| `IS_DEMO` | Defina como qualquer valor não vazio, como `1`, para ativar modo demo: oculta seu email e nome da organização do cabeçalho e saída `/status`, e pula onboarding. **Defini-lo como `0` ou `false` ainda ativa modo demo**, diferentemente da maioria das variáveis on/off; desconfigurar a variável para desativá-lo. Útil ao fazer stream ou gravar uma sessão |458| `IS_DEMO` | Defina como qualquer valor não vazio, como `1`, para ativar modo demo: oculta seu email e nome da organização do cabeçalho e saída `/status`, e pula onboarding. **Defini-lo como `0` ou `false` ainda ativa modo demo**, diferentemente da maioria das variáveis on/off; desconfigurar a variável para desativá-lo. Útil ao fazer streaming ou gravar uma sessão |

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

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

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

455| `MCP_CLIENT_SECRET` | Segredo de cliente OAuth para servidores MCP que requerem [credenciais pré-configuradas](/docs/pt/mcp#use-pre-configured-oauth-credentials). Evita o prompt interativo ao adicionar um servidor com `--client-secret` |462| `MCP_CLIENT_SECRET` | Segredo de cliente OAuth para servidores MCP que requerem [credenciais pré-configuradas](/docs/pt/mcp#use-pre-configured-oauth-credentials). Evita o prompt interativo ao adicionar um servidor com `--client-secret` |

456| `MCP_CONNECTION_NONBLOCKING` | Controla se inicialização aguarda servidores MCP se conectarem antes da primeira consulta. Inicialização MCP é não bloqueante por padrão: servidores se conectam em segundo plano e suas ferramentas ficam disponíveis conforme terminam. Defina como `0` para fazer Claude Code aguardar servidores se conectarem antes da primeira consulta. Servidores configurados com [`alwaysLoad: true`](/docs/pt/mcp#exempt-a-server-from-deferral) ainda fazem inicialização aguardar independentemente, exceto quando servidos do [cache de descoberta](/docs/pt/mcp#server-status-detail), já que suas ferramentas devem estar presentes quando o primeiro prompt é construído. Em modo não interativo (`-p`), Claude Code também aguarda servidores ainda pendentes antes da primeira volta independentemente dessa variável, com um prazo mais longo quando você passa [`--mcp-config`](/docs/pt/cli-reference#cli-flags) explicitamente; veja a entrada dessa flag para a exceção de servidor em cache |463| `MCP_CONNECTION_NONBLOCKING` | Controla se inicialização aguarda servidores MCP se conectarem antes da primeira consulta. Inicialização MCP é não bloqueante por padrão: servidores se conectam em segundo plano e suas ferramentas ficam disponíveis conforme terminam. Defina como `0` para fazer Claude Code aguardar servidores se conectarem antes da primeira consulta. Servidores configurados com [`alwaysLoad: true`](/docs/pt/mcp#exempt-a-server-from-deferral) ainda fazem inicialização aguardar independentemente, exceto quando servidos do [cache de descoberta](/docs/pt/mcp#server-status-detail), já que suas ferramentas devem estar presentes quando o primeiro prompt é construído. No modo não interativo (`-p`), Claude Code também aguarda servidores ainda pendentes antes da primeira volta independentemente dessa variável, com um prazo mais longo quando você passa [`--mcp-config`](/docs/pt/cli-reference#cli-flags) explicitamente; veja essa entrada de flag para a exceção de servidor em cache |

457| `MCP_CONNECT_TIMEOUT_MS` | Quanto tempo inicialização MCP bloqueante aguarda, em milissegundos, para o lote de conexão antes de tirar um snapshot da lista de ferramentas (padrão: 5000). Aplica-se quando `MCP_CONNECTION_NONBLOCKING=0` ou para servidores marcados [`alwaysLoad: true`](/docs/pt/mcp#exempt-a-server-from-deferral). Servidores ainda pendentes no prazo continuam se conectando em segundo plano. Distinto de `MCP_TIMEOUT`, que limita a tentativa de conexão de um servidor individual |464| `MCP_CONNECT_TIMEOUT_MS` | Quanto tempo inicialização MCP bloqueante aguarda, em milissegundos, para o lote de conexão antes de tirar um snapshot da lista de ferramentas (padrão: 5000). Aplica-se quando `MCP_CONNECTION_NONBLOCKING=0` ou para servidores marcados [`alwaysLoad: true`](/docs/pt/mcp#exempt-a-server-from-deferral). Servidores ainda pendentes no prazo continuam se conectando em segundo plano. Distinto de `MCP_TIMEOUT`, que limita a tentativa de conexão de um servidor individual |

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

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

460| `MCP_DISCOVERY_CACHE_STRIKES` | Em um início onde uma entrada [cache de descoberta](/docs/pt/mcp#server-status-detail) é mais antiga que `MCP_DISCOVERY_CACHE_TTL_S`, Claude Code a atualiza em segundo plano. Essa variável define quantas atualizações seguidas podem falhar antes de Claude Code descartar a entrada e conectar o servidor no próximo início (padrão: 1). Aumente se sua conexão de rede cai ocasionalmente, para que uma atualização falhada não descarte a entrada. Requer Claude Code v2.1.238 ou posterior |467| `MCP_DISCOVERY_CACHE_STRIKES` | Em um início onde uma entrada [cache de descoberta](/docs/pt/mcp#server-status-detail) é mais antiga que `MCP_DISCOVERY_CACHE_TTL_S`, Claude Code a atualiza em segundo plano. Essa variável define quantas atualizações em uma linha podem falhar antes de Claude Code descartar a entrada e conectar o servidor no próximo início (padrão: 1). Aumente se sua conexão de rede cai ocasionalmente, para que uma atualização falhada não descarte a entrada. Requer Claude Code v2.1.238 ou posterior |

461| `MCP_DISCOVERY_CACHE_TTL_S` | Segundos pelos quais Claude Code usa uma entrada [cache de descoberta](/docs/pt/mcp#server-status-detail) sem atualizá-la (padrão: 900). Em um início onde a entrada é mais antiga que isso, Claude Code ainda a usa mas a atualiza em segundo plano. Uma vez que a entrada é mais antiga que `MCP_DISCOVERY_CACHE_MAX_STALE_S`, Claude Code a descarta. Claude Code limita o valor a `MCP_DISCOVERY_CACHE_MAX_STALE_S`, que é 4 horas por padrão. Antes da v2.1.238, Claude Code não limitava o valor |468| `MCP_DISCOVERY_CACHE_TTL_S` | Segundos pelos quais Claude Code usa uma entrada [cache de descoberta](/docs/pt/mcp#server-status-detail) sem atualizá-la (padrão: 900). Em um início onde a entrada é mais antiga que isso, Claude Code ainda a usa mas a atualiza em segundo plano. Uma vez que a entrada é mais antiga que `MCP_DISCOVERY_CACHE_MAX_STALE_S`, Claude Code a descarta. Claude Code limita o valor a `MCP_DISCOVERY_CACHE_MAX_STALE_S`, que é 4 horas por padrão. Antes da v2.1.238, Claude Code não limitava o valor |

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

463| `MCP_PROTOCOL_NEGOTIATION` | No [runtime de cliente MCP v2](/docs/pt/mcp#mcp-client-runtimes) apenas, se Claude Code sonda servidores para revisão de protocolo MCP 2026-07-28. Defina `auto` para sondar servidores HTTP, conector claude.ai e stdio; um servidor que não responde à sonda se conecta no protocolo anterior, como servidores SSE e WebSocket sempre fazem. Defina `legacy` para pular a sonda para cada servidor. Sem a variável, Claude Code sonda servidores HTTP e conector claude.ai no Claude Code v2.1.232 ou posterior, com as exceções que a seção [runtimes de cliente MCP](/docs/pt/mcp#mcp-client-runtimes) lista. Qualquer outro valor é ignorado com um aviso no log de depuração. Requer Claude Code v2.1.221 ou posterior |470| `MCP_PROTOCOL_NEGOTIATION` | No [runtime de cliente MCP v2](/docs/pt/mcp#mcp-client-runtimes) apenas, se Claude Code sonda servidores para revisão de protocolo MCP 2026-07-28. Defina `auto` para sondar servidores HTTP, conector claude.ai, e stdio; um servidor que não responde à sonda se conecta no protocolo anterior, como servidores SSE e WebSocket sempre fazem. Defina `legacy` para pular a sonda para cada servidor. Sem a variável, Claude Code sonda servidores HTTP e conector claude.ai no Claude Code v2.1.232 ou posterior, com as exceções que a seção [runtimes de cliente MCP](/docs/pt/mcp#mcp-client-runtimes) lista. Qualquer outro valor é ignorado com um aviso no log de depuração. Requer Claude Code v2.1.221 ou posterior |

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

465| `MCP_SDK_GENERATION` | Fixe qual [runtime de cliente MCP](/docs/pt/mcp#mcp-client-runtimes) este processo se conecta a servidores MCP com: `v1`, construído em MCP TypeScript SDK 1.x, ou `v2`, construído em [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/). Sem a variável, Claude Code usa v2 no Claude Code v2.1.232 ou posterior, exceto onde essa seção diz que usa v1. No Claude Code v2.1.221 ou posterior, o runtime v2 verifica o emissor que um servidor MCP OAuth retorna em sua resposta de autorização e falha o sign-in com um erro que começa `Issuer mismatch in authorization response` quando não corresponde. O runtime v1 não executa essa verificação. Se você definir um valor não reconhecido, Claude Code o ignora e escreve um aviso no log de depuração. Claude Code lê o valor uma vez por processo. Requer Claude Code v2.1.218 ou posterior |472| `MCP_SDK_GENERATION` | Fixe qual [runtime de cliente MCP](/docs/pt/mcp#mcp-client-runtimes) este processo se conecta a servidores MCP com: `v1`, construído no MCP TypeScript SDK 1.x, ou `v2`, construído no [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/). Sem a variável, Claude Code usa v2 no Claude Code v2.1.232 ou posterior, exceto onde essa seção diz que usa v1. No Claude Code v2.1.221 ou posterior, o runtime v2 verifica o emissor que um servidor MCP OAuth retorna em sua resposta de autorização e falha a entrada com um erro que começa `Issuer mismatch in authorization response` quando não corresponde. O runtime v1 não executa essa verificação. Se você definir um valor não reconhecido, Claude Code o ignora e escreve um aviso no log de depuração. Claude Code lê o valor uma vez por processo. Requer Claude Code v2.1.218 ou posterior |

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

467| `MCP_TIMEOUT` | Timeout em milissegundos para inicialização de servidor MCP (padrão: 30000, ou 30 segundos) |474| `MCP_TIMEOUT` | Timeout em milissegundos para inicialização de servidor MCP (padrão: 30000, ou 30 segundos) |

468| `MCP_TOOL_TIMEOUT` | Timeout em milissegundos para execução de ferramenta MCP (padrão: 100000000, aproximadamente 28 horas). Para um servidor HTTP, SSE ou conector claude.ai, cada solicitação também expira após 60 segundos por padrão; defina essa variável, ou o `timeout` por servidor, acima de 60000 para aumentar esse limite por solicitação. Um valor mais baixo ainda encurta o timeout de execução de ferramenta geral mas deixa o timer por solicitação em 60 segundos. Servidores stdio e WebSocket não têm timer por solicitação. Um campo `timeout` por servidor em `.mcp.json` substitui isso para esse servidor. Um `timeout` por servidor de pelo menos 1000 também define a janela de inatividade mínima para chamadas de ferramenta desse servidor, para que `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` nunca as aborte mais cedo; este piso requer Claude Code v2.1.203 ou posterior. Para a variável env, valores abaixo de 1000 são limitados a um segundo; para o campo por servidor, valores abaixo de 1000 são ignorados |475| `MCP_TOOL_TIMEOUT` | Timeout em milissegundos para execução de ferramenta MCP (padrão: 100000000, aproximadamente 28 horas). Para um servidor HTTP, SSE, ou conector claude.ai, cada solicitação também expira após 60 segundos por padrão; defina essa variável, ou o `timeout` por servidor, acima de 60000 para aumentar esse limite por solicitação. Um valor mais baixo ainda encurta o timeout de execução de ferramenta geral mas deixa o timer por solicitação em 60 segundos. Servidores stdio e WebSocket não têm timer por solicitação. Um campo `timeout` por servidor em `.mcp.json` substitui isso para esse servidor. Um `timeout` por servidor de pelo menos 1000 também define a janela de inatividade mínima para chamadas de ferramenta desse servidor, para que `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` nunca as aborte mais cedo; este piso requer Claude Code v2.1.203 ou posterior. Para a variável env, valores abaixo de 1000 são limitados a um segundo; para o campo por servidor, valores abaixo de 1000 são ignorados |

469| `NO_PROXY` | Lista de domínios e IPs para os quais solicitações serão emitidas diretamente, contornando proxy |476| `NO_PROXY` | Lista de domínios e IPs para os quais solicitações serão emitidas diretamente, contornando proxy |

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

471| `OTEL_LOG_ASSISTANT_RESPONSES` | Defina como `1` para incluir o texto de resposta do modelo em eventos de log OpenTelemetry `assistant_response`. Quando desconfigurado, o valor de `OTEL_LOG_USER_PROMPTS` é usado. Defina como `0` para manter respostas redatadas mesmo quando `OTEL_LOG_USER_PROMPTS` está definido. Requer Claude Code v2.1.193 ou posterior. Veja [Monitoramento](/docs/pt/monitoring-usage#assistant-response-event) |478| `OTEL_LOG_ASSISTANT_RESPONSES` | Defina como `1` para incluir o texto de resposta do modelo em eventos de log OpenTelemetry `assistant_response`. Quando não definido, o valor de `OTEL_LOG_USER_PROMPTS` é usado. Defina como `0` para manter respostas redatadas mesmo quando `OTEL_LOG_USER_PROMPTS` está definido. Requer Claude Code v2.1.193 ou posterior. Veja [Monitoramento](/docs/pt/monitoring-usage#assistant-response-event) |

472| `OTEL_LOG_RAW_API_BODIES` | Emita JSON de solicitação e resposta da API Anthropic Messages como eventos de log `api_request_body` / `api_response_body`. Defina como `1` para corpos inline truncados no limite de conteúdo, ou `file:<dir>` para escrever corpos não truncados em disco e emitir um caminho `body_ref`. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` configura o limite de conteúdo, 60 KB por padrão. Desabilitado por padrão; corpos incluem todo o histórico de conversa. Defina em seu shell, configurações de usuário ou configurações gerenciadas. Ignorado em [configurações de projeto e local](/docs/pt/settings-reference#variables-claude-code-ignores-in-env). Veja [Evento de corpo de solicitação de API](/docs/pt/monitoring-usage#api-request-body-event) |479| `OTEL_LOG_RAW_API_BODIES` | Emita JSON de solicitação e resposta da API Anthropic Messages como eventos de log `api_request_body` / `api_response_body`. Defina como `1` para corpos inline truncados no limite de conteúdo, ou `file:<dir>` para escrever corpos não truncados em disco e emitir um caminho `body_ref`. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` configura o limite de conteúdo, 60 KB por padrão. Desabilitado por padrão; corpos incluem todo o histórico de conversa. Defina em seu shell, configurações de usuário, ou configurações gerenciadas. Ignorado em [configurações de projeto e local](/docs/pt/settings-reference#variables-claude-code-ignores-in-env). Veja [Monitoramento](/docs/pt/monitoring-usage#api-request-body-event) |

473| `OTEL_LOG_TOOL_CONTENT` | Defina como `1` para incluir conteúdo de entrada e saída de ferramenta em eventos de span OpenTelemetry. Desabilitado por padrão para proteger dados sensíveis. Veja [Monitoramento](/docs/pt/monitoring-usage) |480| `OTEL_LOG_TOOL_CONTENT` | Defina como `1` para incluir conteúdo de ferramenta no evento de span OpenTelemetry `tool.output`. Atributos de span carregam conteúdo de ferramenta sob [seus próprios gates](/docs/pt/monitoring-usage#new-context-gates). Requer [rastreamento](/docs/pt/monitoring-usage#traces-beta). Desabilitado por padrão para proteger dados sensíveis. Veja [Monitoramento](/docs/pt/monitoring-usage#tool-output-span-event) |

474| `OTEL_LOG_TOOL_DETAILS` | Defina como `1` para incluir argumentos de entrada de ferramenta, nomes de servidor MCP, nomes de fluxo de trabalho criados pelo usuário, strings de erro bruto em falhas de ferramenta, a `category` de recusa em eventos `api_refusal`, e outros detalhes de ferramenta em rastreamentos e logs OpenTelemetry. Desabilitado por padrão para proteger PII. Veja [Monitoramento](/docs/pt/monitoring-usage) |481| `OTEL_LOG_TOOL_DETAILS` | Defina como `1` para incluir argumentos de entrada de ferramenta, nomes de servidor MCP, nomes de fluxo de trabalho redigidos pelo usuário, strings de erro bruto em falhas de ferramenta, a `category` de recusa em eventos `api_refusal`, e outros detalhes de ferramenta em rastreamentos e logs OpenTelemetry. Desabilitado por padrão para proteger PII. Veja [Monitoramento](/docs/pt/monitoring-usage) |

475| `OTEL_LOG_USER_PROMPTS` | Defina como `1` para incluir texto de prompt do usuário em rastreamentos e logs OpenTelemetry. Desabilitado por padrão (prompts são redatados). Veja [Monitoramento](/docs/pt/monitoring-usage) |482| `OTEL_LOG_USER_PROMPTS` | Defina como `1` para incluir texto de prompt do usuário em rastreamentos e logs OpenTelemetry. Desabilitado por padrão (prompts são redatados). Veja [Monitoramento](/docs/pt/monitoring-usage) |

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

477| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Defina como `true` para incluir o ponto de entrada da sessão em atributos de métricas (padrão: excluído). Adicionado na v2.1.152. Veja [Monitoramento](/docs/pt/monitoring-usage) |484| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Defina como `true` para incluir o ponto de entrada da sessão em atributos de métricas (padrão: excluído). Adicionado na v2.1.152. Veja [Monitoramento](/docs/pt/monitoring-usage) |

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

479| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | A partir da v2.1.161, Claude Code anexa chaves `OTEL_RESOURCE_ATTRIBUTES` a rótulos de ponto de dados de métrica. Defina como `false` para excluí-las (padrão: incluído). Veja [Monitoramento](/docs/pt/monitoring-usage#multi-team-organization-support) |486| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | A partir da v2.1.161, Claude Code anexa chaves `OTEL_RESOURCE_ATTRIBUTES` a rótulos de ponto de dados de métrica. Defina como `false` para excluí-las (padrão: incluído). Veja [Monitoramento](/docs/pt/monitoring-usage#multi-team-organization-support) |

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

481| `OTEL_METRICS_INCLUDE_VERSION` | Defina como `true` para incluir versão Claude Code em atributos de métricas (padrão: excluído). Veja [Monitoramento](/docs/pt/monitoring-usage) |488| `OTEL_METRICS_INCLUDE_VERSION` | Defina como `true` para incluir versão de Claude Code em atributos de métricas (padrão: excluído). Veja [Monitoramento](/docs/pt/monitoring-usage) |

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

483| `TASK_MAX_OUTPUT_LENGTH` | Número máximo de caracteres de saída de uma [tarefa em segundo plano](/docs/pt/tools-reference#background-commands) que a ferramenta `TaskOutput` mantém (padrão: 32000; máximo: 160000). Se você definir a configuração [`taskOutputMaxChars`](/docs/pt/settings-reference#taskoutputmaxchars), Claude Code ignora essa variável |490| `TASK_MAX_OUTPUT_LENGTH` | Número máximo de caracteres de saída de uma [tarefa em segundo plano](/docs/pt/tools-reference#background-commands) que a ferramenta `TaskOutput` mantém (padrão: 32000; máximo: 160000). Se você definir a configuração [`taskOutputMaxChars`](/docs/pt/settings-reference#taskoutputmaxchars), Claude Code ignora essa variável |

484| `USE_BUILTIN_RIPGREP` | Defina como `0` para usar `rg` instalado no sistema em vez de `rg` incluído com Claude Code |491| `USE_BUILTIN_RIPGREP` | Defina como `0` para usar `rg` instalado no sistema em vez de `rg` incluído com Claude Code |


514 521 

515Com a busca desativada, você não pode:522Com a busca desativada, você não pode:

516 523 

524* Ter Claude Code [ler arquivos `AGENTS.md`](/docs/pt/memory#agents-md) como instruções de projeto; ele carrega apenas arquivos `CLAUDE.md`

517* [Iniciar sessões em modo automático por padrão](/docs/pt/permission-modes#which-mode-a-session-starts-in) em planos Pro, Max e Team525* [Iniciar sessões em modo automático por padrão](/docs/pt/permission-modes#which-mode-a-session-starts-in) em planos Pro, Max e Team

518* Ter a extensão VS Code [ler arquivos de configuração para o modo de permissão inicial](/docs/pt/permission-modes#switch-permission-modes)526* Ter a extensão VS Code [ler arquivos de configuração para o modo de permissão inicial](/docs/pt/permission-modes#switch-permission-modes)

519* Executar [`/auto-mode-setup`](/docs/pt/auto-mode-config#generate-environment-entries) para rascunhar entradas `autoMode.environment`527* Executar [`/auto-mode-setup`](/docs/pt/auto-mode-config#generate-environment-entries) para rascunhar entradas `autoMode.environment`


521* [Enviar mensagens de sessões além desta máquina](/docs/pt/cross-session-messaging#message-sessions-on-other-machines); mensagens entre sessões nesta máquina funcionam com a busca desativada529* [Enviar mensagens de sessões além desta máquina](/docs/pt/cross-session-messaging#message-sessions-on-other-machines); mensagens entre sessões nesta máquina funcionam com a busca desativada

522* Executar [`claude import` ou o comando `/import`](/docs/pt/cli-reference#cli-commands)530* Executar [`claude import` ou o comando `/import`](/docs/pt/cli-reference#cli-commands)

523* Executar [`/skill-doctor`](/docs/pt/skills#find-unused-skills) ou abrir seu relatório na aba **Stats** do `/plugin`531* Executar [`/skill-doctor`](/docs/pt/skills#find-unused-skills) ou abrir seu relatório na aba **Stats** do `/plugin`

532* Sincronizar as [skills](/docs/pt/skills#where-synced-skills-load) e [plugins](/docs/pt/plugins-reference#synced-plugins) ativados para sua conta claude.ai em suas sessões de terminal

524* Usar [a ferramenta advisor](/docs/pt/advisor#requirements)533* Usar [a ferramenta advisor](/docs/pt/advisor#requirements)

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

526* Obter o [runtime do cliente MCP v2](/docs/pt/mcp#mcp-client-runtimes) e sua sonda de protocolo sem definir `MCP_SDK_GENERATION` e `MCP_PROTOCOL_NEGOTIATION`; Claude Code usa o runtime v1 a menos que você defina `MCP_SDK_GENERATION=v2`, e pula a sonda a menos que você defina `MCP_PROTOCOL_NEGOTIATION=auto`535* Ter Claude Code sondar servidores de conector claude.ai para [revisão de protocolo MCP 2026-07-28](/docs/pt/mcp#mcp-client-runtimes) a menos que você defina `MCP_PROTOCOL_NEGOTIATION=auto`

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

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

529* Ter Claude Code [excluir ferramentas MCP cujo esquema de entrada a API rejeitaria](/docs/pt/mcp#tools-with-invalid-input-schemas); ele envia o esquema mesmo assim, e uma solicitação que o inclui falha com [um erro 400 nomeando a ferramenta por sua posição](/docs/pt/errors#tool-input-schema-is-invalid)538* Ter Claude Code [excluir ferramentas MCP cujo esquema de entrada a API rejeitaria](/docs/pt/mcp#tools-with-invalid-input-schemas); ele envia o esquema mesmo assim, e uma solicitação que o inclui falha com [um erro 400 nomeando a ferramenta por sua posição](/docs/pt/errors#tool-input-schema-is-invalid)

fast-mode.md +16 −3

Details

32* Digite `/fast` e pressione Tab para alternar ativado ou desativado32* Digite `/fast` e pressione Tab para alternar ativado ou desativado

33* Defina `"fastMode": true` no seu [arquivo de configurações do usuário](/docs/pt/settings)33* Defina `"fastMode": true` no seu [arquivo de configurações do usuário](/docs/pt/settings)

34 34 

35Por padrão, o modo rápido que você ativa em uma sessão interativa persiste entre sessões. No [modo não interativo](/docs/pt/headless), com a flag `-p`, `/fast` funciona apenas em uma sessão iniciada com modo rápido em seu valor [`--settings`](/docs/pt/cli-reference#cli-flags), por exemplo `claude -p --settings '{"fastMode": true}'`; a alternância então se aplica apenas a essa sessão e não é salva como seu padrão, e em qualquer outra sessão não interativa o comando relata que o modo rápido não está disponível. Você pode configurar o modo rápido para ser redefinido a cada sessão. Consulte [require per-session opt-in](#require-per-session-opt-in) para obter detalhes.35Por padrão, o modo rápido que você ativa em uma sessão interativa persiste entre sessões. Você pode configurar o modo rápido para ser redefinido a cada sessão. Consulte [require per-session opt-in](#require-per-session-opt-in) para obter detalhes.

36 

37Fora de uma [sessão em nuvem](#use-fast-mode-in-cloud-sessions), no [modo não interativo](/docs/pt/headless) com a flag `-p`, `/fast` funciona apenas em uma sessão iniciada com modo rápido em seu valor [`--settings`](/docs/pt/cli-reference#cli-flags), por exemplo `claude -p --settings '{"fastMode": true}'`; a alternância então se aplica apenas a essa sessão e não é salva como seu padrão. O formulário `-p` requer Claude Code v2.1.205 ou posterior. Em qualquer outro lugar no modo não interativo, o comando relata que o modo rápido não está disponível.

36 38 

37Você pode executar `/fast` enquanto Claude está trabalhando, e Claude Code alterna o modo rápido sem esperar que o turno termine. Claude Code conclui o turno em execução em sua velocidade original, portanto a mudança de velocidade entra em vigor a partir do seu próximo turno. Se seu modelo atual não suportar modo rápido, ativá-lo também alterna seu modelo, e Claude Code usa o novo modelo a partir de sua próxima solicitação naquele turno.39Você pode executar `/fast` enquanto Claude está trabalhando, e Claude Code alterna o modo rápido sem esperar que o turno termine. Claude Code conclui o turno em execução em sua velocidade original, portanto a mudança de velocidade entra em vigor a partir do seu próximo turno. Se seu modelo atual não suportar modo rápido, ativá-lo também alterna seu modelo, e Claude Code usa o novo modelo a partir de sua próxima solicitação naquele turno.

38 40 


62 64 

63Claude Code reenvia o status do modo rápido da sessão para dispositivos conectados através de Remote Control após uma alternância de modelo, uma reconexão, ou uma [verificação de disponibilidade](#use-fast-mode-behind-proxies-and-llm-gateways) falhada.65Claude Code reenvia o status do modo rápido da sessão para dispositivos conectados através de Remote Control após uma alternância de modelo, uma reconexão, ou uma [verificação de disponibilidade](#use-fast-mode-behind-proxies-and-llm-gateways) falhada.

64 66 

67<h3 id="use-fast-mode-in-cloud-sessions">

68 Usar modo rápido em sessões em nuvem

69</h3>

70 

71O modo rápido funciona em [sessões em nuvem](/docs/pt/claude-code-on-the-web) quando está disponível em sua conta, seja a sessão executada em infraestrutura gerenciada pela Anthropic ou em um [executor auto-hospedado](/docs/pt/self-hosted-environments). Requer Claude Code v2.1.271 ou posterior no ambiente da sessão.

72 

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

74 

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

66 Entender o tradeoff de custo76 Entender o tradeoff de custo

67</h2>77</h2>


135* **Habilitação de proprietário para Team e Enterprise**: o modo rápido está desativado por padrão para organizações Team e Enterprise. Um proprietário deve explicitamente [ativar o modo rápido](#enable-fast-mode-for-your-organization) antes que os usuários possam acessá-lo.145* **Habilitação de proprietário para Team e Enterprise**: o modo rápido está desativado por padrão para organizações Team e Enterprise. Um proprietário deve explicitamente [ativar o modo rápido](#enable-fast-mode-for-your-organization) antes que os usuários possam acessá-lo.

136 146 

137<Note>147<Note>

138 Se o modo rápido não tiver sido ativado para sua organização, o comando `/fast` mostrará "Fast mode has been disabled by your organization." Se a lista de permissões [`availableModels`](/docs/pt/model-config#restrict-model-selection) da sua organização excluir o modelo Opus do modo rápido, `/fast` é recusado com "is not in your organization's allowed models". A exceção é uma sessão já em execução em um modelo Opus permitido que suporte modo rápido: `/fast` ativa o modo rápido no seu modelo atual em vez de alternar modelos.148 Duas configurações de organização podem bloquear a ativação do modo rápido com `/fast`:

149 

150 * **Modo rápido não ativado**: se o modo rápido não tiver sido ativado para sua organização, ativar o modo rápido com `/fast` mostra "Fast mode has been disabled by your organization."

151 * **Modelo de modo rápido não permitido**: se a lista de permissões [`availableModels`](/docs/pt/model-config#restrict-model-selection) da sua organização excluir o modelo Opus do modo rápido, ativá-lo é recusado com "is not in your organization's allowed models". Em uma sessão já em execução em um modelo Opus permitido que suporte modo rápido, `/fast` ativa o modo rápido no seu modelo atual sem alternar modelos.

139</Note>152</Note>

140 153 

141<h3 id="enable-fast-mode-for-your-organization">154<h3 id="enable-fast-mode-for-your-organization">


173 186 

174Em ambos os casos, defina `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1` para restaurar o modo rápido. `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` não se aplica a nenhum dos dois casos, já que apenas ignora verificações falhadas e ambos produzem uma resposta desativada. Colocar na lista de permissões a saída direta não ajuda no caso de token de portador, que nunca envia a solicitação.187Em ambos os casos, defina `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1` para restaurar o modo rápido. `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` não se aplica a nenhum dos dois casos, já que apenas ignora verificações falhadas e ambos produzem uma resposta desativada. Colocar na lista de permissões a saída direta não ajuda no caso de token de portador, que nunca envia a solicitação.

175 188 

176As variáveis afetam apenas a verificação do lado do cliente. Quando sua organização tem modo rápido desativado, a API rejeita solicitações de modo rápido independentemente de estarem definidas ou não.189As variáveis afetam apenas a verificação do lado do cliente. Quando sua organização tem modo rápido desativado, a API rejeita solicitações de modo rápido independentemente de estarem definidas ou não. Uma rejeição da API permanece mesmo com uma variável de pulo definida. Claude Code tenta novamente a solicitação rejeitada em velocidade padrão, desativa o modo rápido e `/fast` relata que sua organização desativou o modo rápido.

177 190 

178Definir `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` também suprime a verificação de disponibilidade. Sem uma verificação bem-sucedida em cache anterior, `/fast` relata "Fast mode is currently unavailable"; ambas as variáveis de pulo restauram o modo rápido nessa configuração também.191Definir `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` também suprime a verificação de disponibilidade. Sem uma verificação bem-sucedida em cache anterior, `/fast` relata "Fast mode is currently unavailable"; ambas as variáveis de pulo restauram o modo rápido nessa configuração também.

179 192 

Details

36* [Checkpoints](/docs/pt/checkpointing), [sandboxing](/docs/pt/sandboxing) e [Workflows](/docs/pt/workflows)36* [Checkpoints](/docs/pt/checkpointing), [sandboxing](/docs/pt/sandboxing) e [Workflows](/docs/pt/workflows)

37* Métricas [OpenTelemetry](/docs/pt/monitoring-usage) e o [arquivo de configurações gerenciado](/docs/pt/managed-settings#delivery-mechanisms)37* Métricas [OpenTelemetry](/docs/pt/monitoring-usage) e o [arquivo de configurações gerenciado](/docs/pt/managed-settings#delivery-mechanisms)

38 38 

39Três destes têm diferenças específicas do provedor:39Estes têm diferenças específicas do provedor:

40 40 

41* **Memória CLAUDE.md**: arquivos `CLAUDE.md` carregam em todos os provedores. Ler [arquivos `AGENTS.md`](/docs/pt/memory#agents-md) como instruções de projeto também requer uma sessão que [busca sinalizadores de recursos](/docs/pt/env-vars#features-that-need-feature-flag-fetching)

41* **Servidores MCP**: [conectores do claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai) carregam apenas quando sua assinatura claude.ai é o método de autenticação ativo. [Busca de ferramentas](/docs/pt/mcp#configure-tool-search) está desativada por padrão quando `ANTHROPIC_BASE_URL` aponta para um host não-first-party, e não é suportada em modelos do Google Cloud's Agent Platform anteriores à geração Claude 4.5 ou no Microsoft Foundry [implantações hospedadas no Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)42* **Servidores MCP**: [conectores do claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai) carregam apenas quando sua assinatura claude.ai é o método de autenticação ativo. [Busca de ferramentas](/docs/pt/mcp#configure-tool-search) está desativada por padrão quando `ANTHROPIC_BASE_URL` aponta para um host não-first-party, e não é suportada em modelos do Google Cloud's Agent Platform anteriores à geração Claude 4.5 ou no Microsoft Foundry [implantações hospedadas no Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)

42* **Subagents**: o [Explore subagent](/docs/pt/sub-agents#built-in-subagents) integrado limita seu modelo herdado a Opus na Claude API, e herda o modelo da conversa principal diretamente em qualquer outro provedor, incluindo Claude Platform on AWS43* **Subagents**: o [Explore subagent](/docs/pt/sub-agents#built-in-subagents) integrado limita seu modelo herdado a Opus na Claude API, e herda o modelo da conversa principal diretamente em qualquer outro provedor, incluindo Claude Platform on AWS

43* **[Commands](/docs/pt/commands#all-commands)**:44* **[Commands](/docs/pt/commands#all-commands)**:


222<span id="fn2" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>2</sup> Nesses provedores, auto mode suporta apenas Claude Sonnet 5, Opus 4.7 ou posterior e os modelos Fable. Consulte [Configuração de Auto mode](/docs/pt/auto-mode-config). O modo de permissão inicial integrado nesses provedores é Manual. Consulte [qual modo uma sessão inicia](/docs/pt/permission-modes#which-mode-a-session-starts-in). Na v2.1.158 até v2.1.206, auto mode nesses provedores também exigia definir `CLAUDE_CODE_ENABLE_AUTO_MODE=1`; v2.1.207 removeu o requisito.<br />223<span id="fn2" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>2</sup> Nesses provedores, auto mode suporta apenas Claude Sonnet 5, Opus 4.7 ou posterior e os modelos Fable. Consulte [Configuração de Auto mode](/docs/pt/auto-mode-config). O modo de permissão inicial integrado nesses provedores é Manual. Consulte [qual modo uma sessão inicia](/docs/pt/permission-modes#which-mode-a-session-starts-in). Na v2.1.158 até v2.1.206, auto mode nesses provedores também exigia definir `CLAUDE_CODE_ENABLE_AUTO_MODE=1`; v2.1.207 removeu o requisito.<br />

223<span id="fn3" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>3</sup> Sujeito ao seu acordo com o provedor de nuvem.<br />224<span id="fn3" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>3</sup> Sujeito ao seu acordo com o provedor de nuvem.<br />

224<span id="fn4" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>4</sup> Dashboard e API apenas. [Contribution metrics](/docs/pt/analytics#enable-contribution-metrics) requer uma organização Claude.ai Team ou Enterprise.<br />225<span id="fn4" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>4</sup> Dashboard e API apenas. [Contribution metrics](/docs/pt/analytics#enable-contribution-metrics) requer uma organização Claude.ai Team ou Enterprise.<br />

225<span id="fn5" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>5</sup> Requer Claude Code v2.1.224 ou posterior em macOS e Linux, incluindo Linux dentro do WSL 2. No Windows nativo, requer Claude Code v2.1.234 ou posterior. Com autenticação de chave de API, mensagens são apenas na mesma máquina. No Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform e Microsoft Foundry, mensagens são apenas na mesma máquina e requerem Claude Code v2.1.248 ou posterior. Claude pode encontrar suas sessões do [Claude Code na web](/docs/pt/claude-code-on-the-web) e suas sessões em outras máquinas apenas a partir de uma sessão que está conectada ao [Remote Control](/docs/pt/remote-control). Para conectar, você precisa de um login claude.ai e dos outros [requisitos do Remote Control](/docs/pt/remote-control#requirements). Consulte [Mensagens em sessões em outras máquinas](/docs/pt/cross-session-messaging#message-sessions-on-other-machines).226<span id="fn5" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>5</sup> Requer Claude Code v2.1.224 ou posterior em macOS e Linux, incluindo Linux dentro do WSL 2. No Windows nativo, requer Claude Code v2.1.234 ou posterior. Com autenticação de chave de API, mensagens são apenas na mesma máquina. No Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform e Microsoft Foundry, mensagens são apenas na mesma máquina e requerem Claude Code v2.1.248 ou posterior. Claude pode encontrar suas [sessões em nuvem](/docs/pt/claude-code-on-the-web) e suas sessões em outras máquinas apenas a partir de uma sessão que está conectada ao [Remote Control](/docs/pt/remote-control). Para conectar, você precisa de um login claude.ai e dos outros [requisitos do Remote Control](/docs/pt/remote-control#requirements). Consulte [Mensagens em sessões em outras máquinas](/docs/pt/cross-session-messaging#message-sessions-on-other-machines).

226 227 

227<Note>228<Note>

228 Se você se autenticar através de um [LLM gateway](/docs/pt/llm-gateway), a disponibilidade de recursos corresponde ao provedor subjacente para o qual o gateway encaminha, exceto pelos recursos que o Claude Code desativa. Sempre que `ANTHROPIC_BASE_URL` aponta para um host diferente de `api.anthropic.com`, Claude Code desativa recursos como [Remote Control](/docs/pt/remote-control#requirements) e [server-managed settings](/docs/pt/server-managed-settings#platform-availability), independentemente do que o gateway encaminha. Alguns recursos exclusivos da Anthropic, como o [Advisor](/docs/pt/advisor), funcionam apenas se o gateway encaminha solicitações intactas para a API Anthropic.229 Se você se autenticar através de um [LLM gateway](/docs/pt/llm-gateway), a disponibilidade de recursos corresponde ao provedor subjacente para o qual o gateway encaminha, exceto pelos recursos que o Claude Code desativa. Sempre que `ANTHROPIC_BASE_URL` aponta para um host diferente de `api.anthropic.com`, Claude Code desativa recursos como [Remote Control](/docs/pt/remote-control#requirements) e [server-managed settings](/docs/pt/server-managed-settings#platform-availability), independentemente do que o gateway encaminha. Alguns recursos exclusivos da Anthropic, como o [Advisor](/docs/pt/advisor), funcionam apenas se o gateway encaminha solicitações intactas para a API Anthropic.

230 

231 Para como as solicitações que Claude Code envia diferem entre um gateway no formato Amazon Bedrock ou Agent Platform, um gateway `ANTHROPIC_BASE_URL` e um login de gateway de aplicativos Claude, consulte [comportamento do cliente por método de conexão](/docs/pt/llm-gateway-protocol#how-the-connection-method-changes-client-behavior).

229</Note>232</Note>

230 233 

231<h3 id="summary-by-provider">234<h3 id="summary-by-provider">


303 306 

304| Recurso | Pro | Max | Team | Enterprise |307| Recurso | Pro | Max | Team | Enterprise |

305| :-------------------------------------------------------------------------- | :-- | :-- | :------------ | :-------------------------------- |308| :-------------------------------------------------------------------------- | :-- | :-- | :------------ | :-------------------------------- |

306| [Claude Code na web](/docs/pt/claude-code-on-the-web) | ✓ | ✓ | ✓ | ✓ <sup><a href="#fn6">6</a></sup> |309| [Cloud sessions](/docs/pt/claude-code-on-the-web) | ✓ | ✓ | ✓ | ✓ <sup><a href="#fn6">6</a></sup> |

307| [Routines](/docs/pt/routines) | ✓ | ✓ | ✓ | ✓ |310| [Routines](/docs/pt/routines) | ✓ | ✓ | ✓ | ✓ |

308| [Remote Control](/docs/pt/remote-control) | ✓ | ✓ | Admin-enabled | Admin-enabled |311| [Remote Control](/docs/pt/remote-control) | ✓ | ✓ | Admin-enabled | Admin-enabled |

309| [Channels](/docs/pt/channels) | ✓ | ✓ | Admin-enabled | Admin-enabled |312| [Channels](/docs/pt/channels) | ✓ | ✓ | Admin-enabled | Admin-enabled |


319| [Compliance API](https://platform.claude.com/docs/en/api/compliance) | ✗ | ✗ | ✗ | ✓ |322| [Compliance API](https://platform.claude.com/docs/en/api/compliance) | ✗ | ✗ | ✗ | ✓ |

320| [Zero Data Retention](/docs/pt/zero-data-retention) | ✗ | ✗ | ✗ | ✓ <sup><a href="#fn7">7</a></sup> |323| [Zero Data Retention](/docs/pt/zero-data-retention) | ✗ | ✗ | ✗ | ✓ <sup><a href="#fn7">7</a></sup> |

321 324 

322<span id="fn6" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>6</sup> No Enterprise, requer um assento premium ou um assento Chat + Claude Code. Consulte [Claude Code na web](/docs/pt/claude-code-on-the-web).<br />325<span id="fn6" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>6</sup> No Enterprise, requer um assento premium ou um assento Chat + Claude Code. Consulte [Use Claude Code in the cloud](/docs/pt/claude-code-on-the-web).<br />

323<span id="fn7" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>7</sup> Não incluído no plano Enterprise padrão. Requer habilitação separada pela Anthropic para contas qualificadas. Consulte [Zero Data Retention](/docs/pt/zero-data-retention).326<span id="fn7" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>7</sup> Não incluído no plano Enterprise padrão. Requer habilitação separada pela Anthropic para contas qualificadas. Consulte [Zero Data Retention](/docs/pt/zero-data-retention).

324 327 

325Para preços e a comparação completa de planos, consulte [Planos Team](https://support.claude.com/en/articles/9266767-what-is-the-team-plan) e [Planos Enterprise](https://support.claude.com/en/articles/9797531-what-is-the-enterprise-plan).328Para preços e a comparação completa de planos, consulte [Planos Team](https://support.claude.com/en/articles/9266767-what-is-the-team-plan) e [Planos Enterprise](https://support.claude.com/en/articles/9797531-what-is-the-enterprise-plan).

Details

294 294 

295 * O prompt do sistema do agente, não o prompt do sistema de Claude Code295 * O prompt do sistema do agente, não o prompt do sistema de Claude Code

296 * Conteúdo completo de skills listadas no campo `skills:` do agente296 * Conteúdo completo de skills listadas no campo `skills:` do agente

297 * CLAUDE.md e status git, exceto os agentes Explore e Plan integrados [omitem ambos](/docs/pt/sub-agents#what-loads-at-startup)297 * CLAUDE.md e status git, exceto os agentes Explore e Plan integrados [omitem ambos](/docs/pt/sub-agents#what-loads-at-startup), e um agente cuja definição define [`omitClaudeMd`](/docs/pt/sub-agents#supported-frontmatter-fields) pula os arquivos CLAUDE.md de usuário, projeto e local

298 * Qualquer contexto que o agente principal passa no prompt298 * Qualquer contexto que o agente principal passa no prompt

299 299 

300 Para um [fork](/docs/pt/sub-agents#fork-the-current-conversation), Claude Code carrega a conversa pai até agora, prompt do sistema e ferramentas em vez disso.300 Para um [fork](/docs/pt/sub-agents#fork-the-current-conversation), Claude Code carrega a conversa pai até agora, prompt do sistema e ferramentas em vez disso.

fullscreen.md +1 −0

Details

102* **Click a suggestion in the `/` command or `@` file list** to accept it. Hovering highlights the row under your cursor.102* **Click a suggestion in the `/` command or `@` file list** to accept it. Hovering highlights the row under your cursor.

103* **Click an option in a select menu** to choose it. This covers permission prompts, `/model`, `/config`, and other dialogs that show a list of options. Hovering shows a pointer on the row under your cursor. Requires Claude Code v2.1.187 or later.103* **Click an option in a select menu** to choose it. This covers permission prompts, `/model`, `/config`, and other dialogs that show a list of options. Hovering shows a pointer on the row under your cursor. Requires Claude Code v2.1.187 or later.

104* **Click an option in a multi-select menu** to toggle it, and click the submit button to confirm your choices. Clicking a free-text row, such as the `Other` row in a multiple-choice question, focuses its input field so you can type an answer. Requires Claude Code v2.1.208 or later.104* **Click an option in a multi-select menu** to toggle it, and click the submit button to confirm your choices. Clicking a free-text row, such as the `Other` row in a multiple-choice question, focuses its input field so you can type an answer. Requires Claude Code v2.1.208 or later.

105* **Click a setting's value in the `/config` panel** to change it, and scroll the settings list with the mouse wheel. Requires Claude Code v2.1.271 or later.

105* **Click a collapsed tool result** to expand it and see the full output. Click again to collapse. The tool call and its result expand together. Only messages that have more to show are clickable.106* **Click a collapsed tool result** to expand it and see the full output. Click again to collapse. The tool call and its result expand together. Only messages that have more to show are clickable.

106 * Clicking also expands the output of a `!` shell command, whether an older truncated result or the live progress row while the command runs. Requires Claude Code v2.1.257 or later.107 * Clicking also expands the output of a `!` shell command, whether an older truncated result or the live progress row while the command runs. Requires Claude Code v2.1.257 or later.

107* **Hold `Cmd` on macOS, or `Ctrl` on Linux and Windows, and click a URL or file path** to open it. Plain `http://` and `https://` URLs open in your browser, and file paths in tool output, like the ones printed after an Edit or Write, open in your default application. A plain click without the modifier doesn't open links, matching native terminal behavior.108* **Hold `Cmd` on macOS, or `Ctrl` on Linux and Windows, and click a URL or file path** to open it. Plain `http://` and `https://` URLs open in your browser, and file paths in tool output, like the ones printed after an Edit or Write, open in your default application. A plain click without the modifier doesn't open links, matching native terminal behavior.

Details

11Vários produtos compartilham o nome Claude Code. Esta página cobre a integração de fluxo de trabalho `claude-code-action`, que você configura com arquivos de fluxo de trabalho em seu repositório. Para os produtos relacionados, consulte:11Vários produtos compartilham o nome Claude Code. Esta página cobre a integração de fluxo de trabalho `claude-code-action`, que você configura com arquivos de fluxo de trabalho em seu repositório. Para os produtos relacionados, consulte:

12 12 

13* [Code Review](/docs/pt/code-review): revisão automática em cada pull request, sem escrever um fluxo de trabalho13* [Code Review](/docs/pt/code-review): revisão automática em cada pull request, sem escrever um fluxo de trabalho

14* [Claude Code na web](/docs/pt/claude-code-on-the-web): sessões de Claude Code do seu navegador ou telefone14* [Claude Code na web](/docs/pt/claude-code-on-the-web): sessões de Claude Code que executam em infraestrutura em nuvem em vez de sua máquina

15* [Claude Agent SDK](/docs/pt/agent-sdk/overview): automação personalizada fora do GitHub Actions. A Claude Code GitHub Action é construída sobre o SDK15* [Claude Agent SDK](/docs/pt/agent-sdk/overview): automação personalizada fora do GitHub Actions. A Claude Code GitHub Action é construída sobre o SDK

16* [GitHub Enterprise Server](/docs/pt/github-enterprise-server): Claude Code com GitHub auto-hospedado16* [GitHub Enterprise Server](/docs/pt/github-enterprise-server): Claude Code com GitHub auto-hospedado

17 17 


131 Permissões da GitHub App131 Permissões da GitHub App

132</h3>132</h3>

133 133 

134A [Claude GitHub App](https://github.com/apps/claude) é compartilhada por cada recurso Claude que se integra com o GitHub, incluindo a Claude Code GitHub Action, [Code Review](/docs/pt/code-review) e [auto-fix para pull requests](/docs/pt/claude-code-on-the-web#auto-fix-pull-requests) no Claude Code na web. Uma GitHub App tem um único conjunto de permissões cobrindo todos os seus recursos, então o conjunto inclui algumas permissões que a Claude Code GitHub Action não usa.134A [Claude GitHub App](https://github.com/apps/claude) é compartilhada por cada recurso Claude que se integra com o GitHub, incluindo a Claude Code GitHub Action, [Code Review](/docs/pt/code-review) e [auto-fix para pull requests](/docs/pt/claude-code-on-the-web#auto-fix-pull-requests) em sessões na nuvem. Uma GitHub App tem um único conjunto de permissões cobrindo todos os seus recursos, então o conjunto inclui algumas permissões que a Claude Code GitHub Action não usa.

135 135 

136Quando você instala a app, você concede as seguintes permissões:136Quando você instala a app, você concede as seguintes permissões:

137 137 

Details

41 Configurar a integração41 Configurar a integração

42</h2>42</h2>

43 43 

44Além dos pré-requisitos, você cria quatro coisas: uma identidade GitHub para a Claude Code GitHub Action, a configuração de confiança do lado da nuvem, os segredos do repositório e o arquivo de fluxo de trabalho. As etapas abaixo orientam você em cada uma.44Além dos pré-requisitos, você cria uma identidade GitHub para a Claude Code GitHub Action, a configuração de confiança do lado da nuvem, os segredos do repositório e o arquivo de fluxo de trabalho. As etapas abaixo orientam você em cada uma.

45 45 

46<Steps>46<Steps>

47 <Step title="Escolha uma identidade GitHub">47 <Step title="Escolha uma identidade GitHub">

48 A Claude Code GitHub Action envia commits e publica comentários através de uma identidade GitHub. A [configuração rápida](/docs/pt/github-actions#quick-setup) instala o Claude GitHub App oficial para isso. Com um provedor de nuvem, você escolhe a identidade você mesmo:48 A Claude Code GitHub Action envia commits e publica comentários através de uma identidade GitHub. A [configuração rápida](/docs/pt/github-actions#quick-setup) instala o Claude GitHub App oficial para isso. Com um provedor de nuvem, você escolhe a identidade você mesmo:

49 49 

50 * **[Claude GitHub App](https://github.com/apps/claude) oficial**: instale-a no repositório, ou pule para a próxima etapa se já estiver instalada50 * **[Claude GitHub App](https://github.com/apps/claude) oficial**: instale-a no repositório, ou pule para a próxima etapa se já estiver instalada

51 * **GitHub App personalizado**: crie seu próprio app, descrito abaixo, quando você quiser apenas as três permissões que a Claude Code GitHub Action usa em vez do [conjunto completo do app oficial](/docs/pt/github-actions#github-app-permissions)51 * **GitHub App personalizado**: crie seu próprio app quando você quiser apenas as três permissões que a Claude Code GitHub Action usa em vez do [conjunto completo do app oficial](/docs/pt/github-actions#github-app-permissions)

52 * **Token automático `GITHUB_TOKEN` do GitHub**: nenhum app para criar ou instalar, mas o GitHub não dispara seus fluxos de trabalho de CI em commits feitos com ele52 * **Token automático `GITHUB_TOKEN` do GitHub**: nenhum app para criar ou instalar, mas o GitHub não dispara seus fluxos de trabalho de CI em commits feitos com ele

53 53 

54 Os exemplos de fluxo de trabalho na quarta etapa se autenticam com um app personalizado. Essa etapa também diz o que mudar para as outras duas opções.54 Os exemplos de fluxo de trabalho na quarta etapa se autenticam com um app personalizado. Essa etapa também diz o que mudar para as outras duas opções.

Details

4 4 

5# Claude Code com GitHub Enterprise Server5# Claude Code com GitHub Enterprise Server

6 6 

7> Conecte Claude Code à sua instância auto-hospedada do GitHub Enterprise Server para sessões web, revisão de código e marketplaces de plugins.7> Conecte Claude Code à sua instância auto-hospedada do GitHub Enterprise Server para sessões na nuvem, revisão de código e marketplaces de plugins.

8 8 

9<Note>9<Note>

10 O suporte ao GitHub Enterprise Server está disponível para planos Team e Enterprise.10 O suporte ao GitHub Enterprise Server está disponível para planos Team e Enterprise.

11</Note>11</Note>

12 12 

13O suporte ao GitHub Enterprise Server (GHES) permite que sua organização use Claude Code com repositórios hospedados em sua instância GitHub auto-gerenciada em vez de github.com. Depois que um Proprietário conecta sua instância GHES, os desenvolvedores podem executar sessões web e obter revisões de código automatizadas sem nenhuma configuração por repositório. Os marketplaces de plugins hospedados em sua instância também são suportados; os requisitos de credenciais variam por superfície, conforme descrito em [Plugin marketplaces on GHES](#plugin-marketplaces-on-ghes).13O suporte ao GitHub Enterprise Server (GHES) permite que sua organização use Claude Code com repositórios hospedados em sua instância GitHub auto-gerenciada em vez de github.com. Depois que um Proprietário conecta sua instância GHES, os desenvolvedores podem executar sessões na nuvem e obter revisões de código automatizadas sem nenhuma configuração por repositório. Os marketplaces de plugins hospedados em sua instância também são suportados; os requisitos de credenciais variam por superfície, conforme descrito em [Plugin marketplaces on GHES](#plugin-marketplaces-on-ghes).

14 14 

15Para repositórios em github.com, consulte [Claude Code na web](/docs/pt/claude-code-on-the-web) e [Code Review](/docs/pt/code-review). Para executar Claude em sua própria infraestrutura de CI, consulte [GitHub Actions](/docs/pt/github-actions).15Para repositórios em github.com, consulte [Use Claude Code in the cloud](/docs/pt/claude-code-on-the-web) e [Code Review](/docs/pt/code-review). Para executar Claude em sua própria infraestrutura de CI, consulte [GitHub Actions](/docs/pt/github-actions).

16 16 

17<h2 id="what-works-with-github-enterprise-server">17<h2 id="what-works-with-github-enterprise-server">

18 O que funciona com GitHub Enterprise Server18 O que funciona com GitHub Enterprise Server


22 22 

23| Recurso | Suporte GHES | Notas |23| Recurso | Suporte GHES | Notas |

24| :----------------------- | :-------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- |24| :----------------------- | :-------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- |

25| Claude Code na web | ✅ Suportado | Um proprietário conecta a instância GHES uma vez; os desenvolvedores usam `claude --cloud` ou [claude.ai/code](https://claude.ai/code) como de costume |25| Sessões na nuvem | ✅ Suportado | Um proprietário conecta a instância GHES uma vez; os desenvolvedores usam `claude --cloud` ou [claude.ai/code](https://claude.ai/code) como de costume |

26| Code Review | ✅ Suportado | Mesmas revisões automatizadas de PR que github.com |26| Code Review | ✅ Suportado | Mesmas revisões automatizadas de PR que github.com |

27| Claude Security | ✅ Suportado | Disponível em beta público para planos Enterprise em [claude.ai/security](https://claude.ai/security) |27| Claude Security | ✅ Suportado | Disponível em beta público para planos Enterprise em [claude.ai/security](https://claude.ai/security) |

28| Sessões Teleport | ✅ Suportado | Mova sessões entre web e terminal com `--teleport` |28| Sessões Teleport | ✅ Suportado | Mova sessões entre nuvem e terminal com `--teleport` |

29| Marketplaces de plugins | ✅ Suportado | Os requisitos de credenciais diferem por superfície. Veja [Plugin marketplaces on GHES](#plugin-marketplaces-on-ghes) |29| Marketplaces de plugins | ✅ Suportado | Os requisitos de credenciais diferem por superfície. Veja [Plugin marketplaces on GHES](#plugin-marketplaces-on-ghes) |

30| Métricas de contribuição | ✅ Suportado | Entregues via webhooks para o [painel de análise](/docs/pt/analytics) |30| Métricas de contribuição | ✅ Suportado | Entregues via webhooks para o [painel de análise](/docs/pt/analytics) |

31| GitHub Actions | ✅ Suportado | Requer configuração manual de workflow; `/install-github-app` é apenas para github.com |31| GitHub Actions | ✅ Suportado | Requer configuração manual de workflow; `/install-github-app` é apenas para github.com |


136| Configurações gerenciadas (`extraKnownMarketplaces`) | Claude Code registra a entrada e clona o repositório usando as credenciais git existentes da máquina | Acesso Git ao seu host GHES a partir de sua máquina |136| Configurações gerenciadas (`extraKnownMarketplaces`) | Claude Code registra a entrada e clona o repositório usando as credenciais git existentes da máquina | Acesso Git ao seu host GHES a partir de sua máquina |

137| Configurações de plugin da organização claude.ai | Um Proprietário seleciona a instância GHES como a fonte; o backend da Anthropic busca e sincroniza o repositório usando o GitHub App de [configuração de administrador](#admin-setup) | Nada por usuário uma vez adicionado. O Proprietário que o adiciona precisa de sua própria conta GitHub Enterprise conectada como uma verificação de acesso, e o GitHub App deve estar instalado no repositório do marketplace |137| Configurações de plugin da organização claude.ai | Um Proprietário seleciona a instância GHES como a fonte; o backend da Anthropic busca e sincroniza o repositório usando o GitHub App de [configuração de administrador](#admin-setup) | Nada por usuário uma vez adicionado. O Proprietário que o adiciona precisa de sua própria conta GitHub Enterprise conectada como uma verificação de acesso, e o GitHub App deve estar instalado no repositório do marketplace |

138| Configurações de usuário claude.ai | O backend da Anthropic busca o repositório usando a conexão GitHub Enterprise do usuário que o envia | Sua própria conta GitHub Enterprise conectada ao Claude |138| Configurações de usuário claude.ai | O backend da Anthropic busca o repositório usando a conexão GitHub Enterprise do usuário que o envia | Sua própria conta GitHub Enterprise conectada ao Claude |

139| Claude Code na web | As sessões em nuvem clonam marketplaces dentro da sandbox da sessão. A sandbox pode alcançar sua instância GHES apenas quando o repositório da sessão está nessa mesma instância, e suas credenciais git estão limitadas aos repositórios da sessão | Não é confiável para marketplaces hospedados em GHES: um host diferente do repositório da sessão não é alcançável, e até mesmo instalações na mesma instância podem falhar. Use a CLI, configurações gerenciadas ou claude.ai em vez disso |139| Sessões em nuvem | As sessões em nuvem clonam marketplaces dentro da sandbox da sessão. A sandbox pode alcançar sua instância GHES apenas quando o repositório da sessão está nessa mesma instância, e suas credenciais git estão limitadas aos repositórios da sessão | Não é confiável para marketplaces hospedados em GHES: um host diferente do repositório da sessão não é alcançável, e até mesmo instalações na mesma instância podem falhar. Use a CLI, configurações gerenciadas ou claude.ai em vez disso |

140 140 

141<Warning>141<Warning>

142 As conexões GitHub Enterprise em claude.ai são por usuário quando um marketplace é adicionado a partir das configurações de usuário. A [configuração de administrador](#admin-setup) conecta sua instância GHES à sua organização, mas não conecta contas de usuários individuais: cada usuário que adiciona um marketplace GHES a partir de suas próprias configurações deve primeiro conectar sua própria conta GitHub Enterprise, e a conexão de um usuário, incluindo a do Proprietário, não cobre ninguém mais. Os marketplaces adicionados por um Proprietário nas configurações de plugin da organização não colocam esse requisito nos usuários, porque as buscas contínuas usam o GitHub App da organização. O Proprietário que adiciona o marketplace ainda precisa de sua própria conta GitHub Enterprise conectada no momento da adição.142 As conexões GitHub Enterprise em claude.ai são por usuário quando um marketplace é adicionado a partir das configurações de usuário. A [configuração de administrador](#admin-setup) conecta sua instância GHES à sua organização, mas não conecta contas de usuários individuais: cada usuário que adiciona um marketplace GHES a partir de suas próprias configurações deve primeiro conectar sua própria conta GitHub Enterprise, e a conexão de um usuário, incluindo a do Proprietário, não cobre ninguém mais. Os marketplaces adicionados por um Proprietário nas configurações de plugin da organização não colocam esse requisito nos usuários, porque as buscas contínuas usam o GitHub App da organização. O Proprietário que adiciona o marketplace ainda precisa de sua própria conta GitHub Enterprise conectada no momento da adição.


220 Troubleshooting220 Troubleshooting

221</h2>221</h2>

222 222 

223<h3 id="web-session-fails-to-clone-repository">223<h3 id="cloud-session-fails-to-clone-repository">

224 A sessão web falha ao clonar o repositório224 Cloud session fails to clone repository

225</h3>225</h3>

226 226 

227Se `claude --cloud` falhar com um erro de clone, verifique se um Owner concluiu a configuração para sua instância GHES e se o GitHub App está instalado no repositório em que você está trabalhando. Peça ao Owner que conectou a instância para confirmar que o nome do host registrado nas configurações do Claude corresponde ao nome do host em seu git remote.227Se `claude --cloud` falhar com um erro de clone, verifique se um Owner concluiu a configuração para sua instância GHES e se o GitHub App está instalado no repositório em que você está trabalhando. Peça ao Owner que conectou a instância para confirmar que o nome do host registrado nas configurações do Claude corresponde ao nome do host em seu git remote.


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

247</h3>247</h3>

248 248 

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

250 250 

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

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


260 260 

261Estas páginas cobrem os recursos referenciados ao longo deste guia com mais profundidade:261Estas páginas cobrem os recursos referenciados ao longo deste guia com mais profundidade:

262 262 

263* [Claude Code na web](/docs/pt/claude-code-on-the-web): execute sessões do Claude Code em infraestrutura em nuvem263* [Use Claude Code na nuvem](/docs/pt/claude-code-on-the-web): execute sessões do Claude Code em infraestrutura em nuvem

264* [Code Review](/docs/pt/code-review): revisões automatizadas de PR264* [Code Review](/docs/pt/code-review): revisões automatizadas de PR

265* [Marketplaces de plugins](/docs/pt/plugin-marketplaces): construir e distribuir catálogos de plugins265* [Marketplaces de plugins](/docs/pt/plugin-marketplaces): construir e distribuir catálogos de plugins

266* [Analytics](/docs/pt/analytics): rastrear uso e métricas de contribuição266* [Analytics](/docs/pt/analytics): rastrear uso e métricas de contribuição

glossary.md +23 −6

Details

12 A12 A

13</h2>13</h2>

14 14 

15<h3 id="agents-md">

16 AGENTS.md

17</h3>

18 

19Um arquivo markdown de instruções de projeto que você escreve para agentes de codificação de IA. Se seu repositório tiver um e nenhum [CLAUDE.md](#claude-md), Claude o lê como suas instruções de projeto sem você adicionar um segundo arquivo. Você pode alterar a configuração **Project instructions** em `/config` para fazer Claude ler ambos os arquivos ou apenas `CLAUDE.md`. Ler `AGENTS.md` diretamente requer Claude Code v2.1.277 ou posterior em uma sessão que busca sinalizadores de recursos; em outras versões, importe-o de um CLAUDE.md.

20 

21Saiba mais: [AGENTS.md](/docs/pt/memory#agents-md)

22 

15<h3 id="agent-teams">23<h3 id="agent-teams">

16 Agent teams24 Agent teams

17</h3>25</h3>


122 130 

123Um arquivo markdown de instruções persistentes que você escreve para Claude, carregado no início de cada sessão como uma mensagem de usuário após o prompt do sistema. Coloque convenções de projeto, notas de arquitetura e regras "sempre faça X" aqui. CLAUDE.md na raiz do projeto sobrevive a [compaction](#compaction) e é relido fresco do disco depois.131Um arquivo markdown de instruções persistentes que você escreve para Claude, carregado no início de cada sessão como uma mensagem de usuário após o prompt do sistema. Coloque convenções de projeto, notas de arquitetura e regras "sempre faça X" aqui. CLAUDE.md na raiz do projeto sobrevive a [compaction](#compaction) e é relido fresco do disco depois.

124 132 

125Você pode colocar CLAUDE.md no escopo do projeto em `./CLAUDE.md` ou `./.claude/CLAUDE.md`, no escopo do usuário em `~/.claude/CLAUDE.md`, ou como [managed policy](#managed-settings) para sua organização. Todos os arquivos descobertos são concatenados no contexto em vez de se sobreporem, ordenados do escopo mais amplo para o mais específico.133Você pode colocar CLAUDE.md no escopo do projeto em `./CLAUDE.md` ou `./.claude/CLAUDE.md`, no escopo do usuário em `~/.claude/CLAUDE.md`, ou como [managed policy](#managed-settings) para sua organização. Todos os arquivos descobertos são concatenados no contexto em vez de se sobreporem, ordenados do escopo mais amplo para o mais específico. Claude Code também pode carregar arquivos [AGENTS.md](#agents-md) de um projeto, por conta própria ou ao lado de CLAUDE.md.

126 134 

127Saiba mais: [CLAUDE.md files](/docs/pt/memory#claude-md-files)135Saiba mais: [CLAUDE.md files](/docs/pt/memory#claude-md-files)

128 136 

137<h3 id="cloud-session">

138 Cloud session

139</h3>

140 

141Uma sessão Claude Code que continua em execução depois que você fecha seu laptop, porque é executada em infraestrutura em nuvem em vez de sua máquina: gerenciada pela Anthropic por padrão, ou um [ambiente auto-hospedado](/docs/pt/self-hosted-environments) que sua organização opera. Você inicia uma a partir de claude.ai/code, do aplicativo Claude mobile, do aplicativo Desktop com **Cloud** selecionado, `claude --cloud`, ou uma [routine](/docs/pt/routines). Uma sessão em seu terminal, IDE ou aplicativo Desktop com **Local** selecionado é uma sessão local; para alcançar uma sessão local de outro dispositivo, use [Remote Control](#remote-control).

142 

143Saiba mais: [Use Claude Code in the cloud](/docs/pt/claude-code-on-the-web)

144 

129<h3 id="command">145<h3 id="command">

130 Command146 Command

131</h3>147</h3>


332 Remote Control348 Remote Control

333</h3>349</h3>

334 350 

335Uma forma de continuar uma sessão local do Claude Code do seu telefone ou navegador via claude.ai. Seu código fica em sua máquina; apenas a UI é remota. Diferente de Claude Code na web, que executa em um sandbox na nuvem.351Uma forma de continuar uma sessão local do Claude Code a partir do seu telefone ou navegador via claude.ai. A execução do seu código e arquivos permanecem na sua máquina; a interface é remota. Diferente de uma [sessão em nuvem](/docs/pt/claude-code-on-the-web), que é executada em uma sandbox em nuvem.

336 352 

337Saiba mais: [Remote Control](/docs/pt/remote-control)353Saiba mais: [Remote Control](/docs/pt/remote-control)

338 354 


340 Rules356 Rules

341</h3>357</h3>

342 358 

343Arquivos de instrução modular em `.claude/rules/` que carregam junto com CLAUDE.md. Uma rule pode ser com escopo de caminho com frontmatter YAML `paths:` para que carregue apenas quando Claude lê um arquivo correspondente, mantendo o contexto enxuto até que seja relevante.359Arquivos de instruções modulares em `.claude/rules/` que carregam junto com CLAUDE.md. Uma rule pode ter escopo de caminho com frontmatter YAML `paths:` para que carregue apenas quando Claude lê um arquivo correspondente, mantendo o contexto enxuto até que seja relevante.

344 360 

345Saiba mais: [Organize rules with `.claude/rules/`](/docs/pt/memory#organize-rules-with-claude/rules/)361Saiba mais: [Organize rules with `.claude/rules/`](/docs/pt/memory#organize-rules-with-claude/rules/)

346 362 


408 Teleport424 Teleport

409</h3>425</h3>

410 426 

411Um comando, `/teleport`, que puxa uma sessão Claude Code na nuvem para seu terminal local. Claude busca o branch, carrega o histórico de conversa e retoma do último estado da sessão web. A direção reversa é `--cloud`, que envia uma tarefa local para executar na web.427Um comando, `/teleport`, que puxa uma sessão Claude Code na nuvem para seu terminal local. Claude busca o branch, carrega o histórico de conversa e retoma do último estado da sessão na nuvem. A direção reversa é `--cloud`, que envia uma tarefa local para executar na nuvem.

412 428 

413Saiba mais: [Da web para o terminal](/docs/pt/claude-code-on-the-web#from-web-to-terminal)429Saiba mais: [Da nuvem para o terminal](/docs/pt/claude-code-on-the-web#from-cloud-to-terminal)

414 430 

415<h3 id="tool">431<h3 id="tool">

416 Tool432 Tool


461Estes termos aparecem em docs mais antigas, posts de blog e conteúdo da comunidade. Use o nome atual ao pesquisar neste site.477Estes termos aparecem em docs mais antigas, posts de blog e conteúdo da comunidade. Use o nome atual ao pesquisar neste site.

462 478 

463| Old term | Now called | Notes |479| Old term | Now called | Notes |

464| --------------- | --------------------------------------------- | ------------------------------------ |480| ----------------------------------------------------------------------- | --------------------------------------------- | ----------------------------------------------------------------------------- |

465| Headless mode | [Non-interactive mode](#non-interactive-mode) | Same `-p` flag, same behavior |481| Headless mode | [Non-interactive mode](#non-interactive-mode) | Same `-p` flag, same behavior |

482| Web session; "Claude Code on the web" as the name for any cloud session | [Cloud session](#cloud-session) | "Claude Code on the web" now names only the browser surface at claude.ai/code |

466| Custom commands | [Skills](#skill) | `.claude/commands/` files still work |483| Custom commands | [Skills](#skill) | `.claude/commands/` files still work |

467| Slash commands | Commands | "Slash" dropped from product copy |484| Slash commands | Commands | "Slash" dropped from product copy |

headless.md +7 −1

Details

343O sinalizador `--allowedTools` usa [sintaxe de regra de permissão](/docs/pt/settings-reference#permission-rule-syntax). O ` *` à direita habilita correspondência de prefixo, então `Bash(git diff *)` permite qualquer comando começando com `git diff`. O espaço antes de `*` é importante: sem ele, `Bash(git diff*)` também corresponderia a `git diff-index`.343O sinalizador `--allowedTools` usa [sintaxe de regra de permissão](/docs/pt/settings-reference#permission-rule-syntax). O ` *` à direita habilita correspondência de prefixo, então `Bash(git diff *)` permite qualquer comando começando com `git diff`. O espaço antes de `*` é importante: sem ele, `Bash(git diff*)` também corresponderia a `git diff-index`.

344 344 

345<Note>345<Note>

346 [Skills](/docs/pt/skills) invocadas pelo usuário e comandos personalizados funcionam no modo `-p`: inclua `/skill-name` na string de prompt e Claude Code o expande antes de executar. Comandos integrados que abrem um diálogo interativo, como `/login`, não estão disponíveis no modo `-p`. `/model`, `/effort`, `/fast`, `/color` e `/rename` aceitam o valor como um argumento, por exemplo `/model sonnet`, e `/mcp` sem argumento imprime um resumo de texto do status do servidor; essas formas requerem Claude Code v2.1.205 ou posterior e seguem as [notas de disponibilidade de cada comando](/docs/pt/commands#all-commands). Para alterar uma configuração de uma invocação `-p`, passe `key=value` para `/config`, por exemplo `/config thinking=false`.346 O suporte a comandos difere no modo `-p`:

347 

348 * [Skills](/docs/pt/skills) invocadas pelo usuário e comandos personalizados funcionam. Inclua `/skill-name` na string de prompt e Claude Code o expande antes de executar.

349 * Comandos integrados que abrem um diálogo interativo, como `/login`, não estão disponíveis no modo `-p`.

350 * `/model`, `/effort`, `/fast`, `/color` e `/rename` aceitam o valor como um argumento, por exemplo `/model sonnet`, e `/mcp` sem argumento imprime um resumo de texto do status do servidor. Essas formas requerem Claude Code v2.1.205 ou posterior e seguem as [notas de disponibilidade de cada comando](/docs/pt/commands#all-commands).

351 * Para alterar uma configuração, passe `key=value` para `/config`, por exemplo `/config thinking=false`.

352 * `/output-style <style>` alterna [estilos de saída](/docs/pt/output-styles) e `/output-style` sozinho os lista. Requer Claude Code v2.1.269 ou posterior.

347</Note>353</Note>

348 354 

349<h3 id="customize-the-system-prompt">355<h3 id="customize-the-system-prompt">

hooks.md +1392 −626

Details

10 Para um guia de início rápido com exemplos, consulte [Automatizar ações com hooks](/docs/pt/hooks-guide).10 Para um guia de início rápido com exemplos, consulte [Automatizar ações com hooks](/docs/pt/hooks-guide).

11</Tip>11</Tip>

12 12 

13Hooks são comandos shell definidos pelo usuário, endpoints HTTP ou prompts LLM que executam automaticamente em pontos específicos do ciclo de vida do Claude Code. Use esta referência para consultar esquemas de eventos, opções de configuração, formatos de entrada/saída JSON e recursos avançados como hooks assíncronos, hooks HTTP e hooks de ferramentas MCP. Se você está configurando hooks pela primeira vez, comece com o [guia](/docs/pt/hooks-guide) em vez disso.13Hooks são comandos shell definidos pelo usuário, endpoints HTTP, chamadas de ferramentas MCP, prompts LLM ou subagentos que executam automaticamente em pontos específicos do ciclo de vida do Claude Code. O Claude Code dispara os mesmos eventos de hook onde quer que seja executado: sessões no terminal, extensões de IDE, o [aplicativo Desktop](/docs/pt/desktop-quickstart) e [Claude Code na web](/docs/pt/claude-code-on-the-web). Use esta referência para consultar esquemas de eventos, opções de configuração, formatos de entrada/saída JSON e recursos avançados como hooks assíncronos, hooks HTTP e hooks de ferramentas MCP.

14 14 

15<h2 id="hook-lifecycle">15<h2 id="hook-lifecycle">

16 Ciclo de vida do hook16 Ciclo de vida do hook

17</h2>17</h2>

18 18 

19Hooks disparam em pontos específicos durante uma sessão do Claude Code. Quando um evento dispara e um matcher corresponde, o Claude Code passa contexto JSON sobre o evento para seu manipulador de hook. Para hooks de comando, a entrada chega em stdin. Para hooks HTTP, chega como corpo da solicitação POST. Seu manipulador pode então inspecionar a entrada, tomar ação e opcionalmente retornar uma decisão.19Claude Code executa hooks em pontos específicos durante uma sessão. Quando um evento dispara e um matcher corresponde, Claude Code passa contexto JSON sobre o evento para seu manipulador de hook. Para hooks de comando, a entrada chega em stdin. Para hooks HTTP, chega como corpo da solicitação POST. Seu manipulador pode então inspecionar a entrada, tomar ação e opcionalmente retornar uma decisão.

20 20 

21Os eventos caem em três cadências:21Os eventos caem em três cadências:

22 22 

23* uma vez por sessão: `SessionStart` e `SessionEnd`23* por sessão: `SessionStart` e `SessionEnd`

24* uma vez por turno: `UserPromptSubmit`, `Stop` e `StopFailure`24* por turno: `UserPromptSubmit`, `Stop` e `StopFailure`

25* em cada chamada de ferramenta dentro do loop agentic: `PreToolUse` e `PostToolUse`25* em cada chamada de ferramenta dentro do loop agentic: `PreToolUse` e `PostToolUse`, exceto chamadas [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior), que pulam ambas

26 26 

27<div style={{maxWidth: "500px", margin: "0 auto"}}>27<div style={{maxWidth: "500px", margin: "0 auto"}}>

28 <Frame>28 <Frame>

29 <img src="https://mintcdn.com/claude-code/x7pO8l4XcvAXCoVc/images/hooks-lifecycle.svg?fit=max&auto=format&n=x7pO8l4XcvAXCoVc&q=85&s=81b9256c1bbe8832553485f5d9e9c746" alt="Diagrama do ciclo de vida do hook mostrando Setup opcional alimentando SessionStart, depois um loop por turno contendo UserPromptSubmit, UserPromptExpansion para slash commands, o loop agentic aninhado (PreToolUse, PermissionRequest, PostToolUse, PostToolUseFailure, PostToolBatch, SubagentStart/Stop, TaskCreated, TaskCompleted), e Stop ou StopFailure, seguido por TeammateIdle, PreCompact, PostCompact e SessionEnd, com Elicitation e ElicitationResult aninhados dentro da execução de ferramenta MCP, PermissionDenied como um ramo lateral de PermissionRequest para negações em modo automático, WorktreeCreate, WorktreeRemove, Notification, ConfigChange, InstructionsLoaded, CwdChanged e FileChanged como eventos assíncronos independentes, e MessageDisplay como um evento somente de exibição que é executado enquanto o texto da mensagem do assistente é transmitido" width="520" height="1336" data-path="images/hooks-lifecycle.svg" />29 <img src="https://mintcdn.com/claude-code/x7pO8l4XcvAXCoVc/images/hooks-lifecycle.svg?fit=max&auto=format&n=x7pO8l4XcvAXCoVc&q=85&s=81b9256c1bbe8832553485f5d9e9c746" className="dark:hidden" alt="Diagrama do ciclo de vida do hook mostrando Setup opcional alimentando SessionStart, depois um loop por turno contendo UserPromptSubmit, UserPromptExpansion para slash commands, o loop agentic aninhado (PreToolUse, PermissionRequest, PostToolUse, PostToolUseFailure, PostToolBatch, SubagentStart/Stop, TaskCreated, TaskCompleted), e Stop ou StopFailure, seguido por TeammateIdle, PreCompact, PostCompact e SessionEnd, com Elicitation e ElicitationResult aninhados dentro da execução de ferramenta MCP, PermissionDenied como um ramo lateral de PermissionRequest para negações em modo automático, WorktreeCreate, WorktreeRemove, Notification, ConfigChange, InstructionsLoaded, CwdChanged, FileChanged e DirectoryAdded como eventos assíncronos independentes, PreModelSwitch como um evento sequencial independente que é executado antes de uma mudança de modelo solicitada, PostModelSwitch como um evento assíncrono independente que é executado após as mudanças de modelo da sessão, e MessageDisplay como um evento somente de exibição que é executado enquanto o texto da mensagem do assistente é transmitido" width="520" height="1336" data-path="images/hooks-lifecycle.svg" />

30 

31 <img src="https://mintcdn.com/claude-code/x7pO8l4XcvAXCoVc/images/hooks-lifecycle-dark.svg?fit=max&auto=format&n=x7pO8l4XcvAXCoVc&q=85&s=c9b3d88487335f58cce0b52e2f9e7531" className="hidden dark:block" alt="Diagrama do ciclo de vida do hook mostrando Setup opcional alimentando SessionStart, depois um loop por turno contendo UserPromptSubmit, UserPromptExpansion para slash commands, o loop agentic aninhado (PreToolUse, PermissionRequest, PostToolUse, PostToolUseFailure, PostToolBatch, SubagentStart/Stop, TaskCreated, TaskCompleted), e Stop ou StopFailure, seguido por TeammateIdle, PreCompact, PostCompact e SessionEnd, com Elicitation e ElicitationResult aninhados dentro da execução de ferramenta MCP, PermissionDenied como um ramo lateral de PermissionRequest para negações em modo automático, WorktreeCreate, WorktreeRemove, Notification, ConfigChange, InstructionsLoaded, CwdChanged, FileChanged e DirectoryAdded como eventos assíncronos independentes, PreModelSwitch como um evento sequencial independente que é executado antes de uma mudança de modelo solicitada, PostModelSwitch como um evento assíncrono independente que é executado após as mudanças de modelo da sessão, e MessageDisplay como um evento somente de exibição que é executado enquanto o texto da mensagem do assistente é transmitido" width="520" height="1336" data-path="images/hooks-lifecycle-dark.svg" />

30 </Frame>32 </Frame>

31</div>33</div>

32 34 

33A tabela abaixo resume quando cada evento dispara. A seção [Eventos de hook](#hook-events) documenta o esquema de entrada completo e as opções de controle de decisão para cada um.35A tabela abaixo resume quando cada evento dispara. A seção [Eventos de hook](#hook-events) documenta o esquema de entrada completo e as opções de controle de decisão para cada um.

34 36 

35| Event | When it fires |37| Evento | Quando dispara |

36| :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |38| :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

37| `SessionStart` | When a session begins or resumes |39| `SessionStart` | Quando uma sessão começa ou é retomada |

38| `Setup` | When you start Claude Code with `--init-only`, or with `--init` or `--maintenance` in `-p` mode. For one-time preparation in CI or scripts |40| `Setup` | Quando você inicia Claude Code com `--init-only`, ou com `--init` ou `--maintenance` no modo `-p`. Para preparação única em CI ou scripts |

39| `UserPromptSubmit` | When you submit a prompt, before Claude processes it |41| `UserPromptSubmit` | Quando você envia um prompt, antes de Claude processá-lo |

40| `UserPromptExpansion` | When a user-typed command expands into a prompt, before it reaches Claude. Can block the expansion |42| `UserPromptExpansion` | Quando um comando digitado pelo usuário se expande em um prompt, antes de chegar a Claude. Pode bloquear a expansão |

41| `PreToolUse` | Before a tool call executes. Can block it |43| `PreToolUse` | Antes de uma chamada de ferramenta ser executada. Pode bloqueá-la |

42| `PermissionRequest` | When a tool call needs a permission decision |44| `PermissionRequest` | Quando uma chamada de ferramenta precisa de uma decisão de permissão |

43| `PermissionDenied` | When auto mode denies a tool call, including denials without a classifier verdict. Use JSON `hookSpecificOutput.retry: true` to tell the model it may retry the denied tool call. Claude Code ignores `retry` when the classifier produced no verdict |45| `PermissionDenied` | Quando o modo automático nega uma chamada de ferramenta, incluindo negações sem um veredicto do classificador. Use JSON `hookSpecificOutput.retry: true` para informar ao modelo que ele pode tentar novamente a chamada de ferramenta negada. Claude Code ignora `retry` quando o classificador não produziu veredicto |

44| `PostToolUse` | After a tool call succeeds |46| `PostToolUse` | Depois que uma chamada de ferramenta é bem-sucedida |

45| `PostToolUseFailure` | After a tool call fails |47| `PostToolUseFailure` | Depois que uma chamada de ferramenta falha |

46| `PostToolBatch` | After a full batch of parallel tool calls resolves, before the next model call |48| `PostToolBatch` | Depois que um lote completo de chamadas de ferramenta paralelas é resolvido, antes da próxima chamada do modelo |

47| `Notification` | When Claude Code sends a notification |49| `Notification` | Quando Claude Code envia uma notificação |

48| `MessageDisplay` | While assistant message text is displayed |50| `MessageDisplay` | Enquanto o texto da mensagem do assistente está sendo exibido |

49| `SubagentStart` | When a subagent is spawned |51| `SubagentStart` | Quando um subagente é criado |

50| `SubagentStop` | When a subagent finishes |52| `SubagentStop` | Quando um subagente termina |

51| `TaskCreated` | When a task is being created via `TaskCreate` |53| `TaskCreated` | Quando uma tarefa está sendo criada via `TaskCreate` |

52| `TaskCompleted` | When a task is being marked as completed |54| `TaskCompleted` | Quando uma tarefa está sendo marcada como concluída |

53| `Stop` | When Claude finishes responding |55| `Stop` | Quando Claude termina de responder |

54| `StopFailure` | When the turn ends due to an API error |56| `StopFailure` | Quando a rodada termina devido a um erro de API |

55| `TeammateIdle` | When an [agent team](/docs/en/agent-teams) teammate is about to go idle |57| `TeammateIdle` | Quando um colega de [equipe de agentes](/docs/pt/agent-teams) está prestes a ficar ocioso |

56| `InstructionsLoaded` | When a CLAUDE.md or `.claude/rules/*.md` file is loaded into context. Fires at session start and when files are lazily loaded during a session |58| `InstructionsLoaded` | Quando um arquivo CLAUDE.md ou `.claude/rules/*.md` é carregado no contexto. Dispara no início da sessão e quando os arquivos são carregados lentamente durante uma sessão |

57| `ConfigChange` | When a configuration file changes during a session |59| `ConfigChange` | Quando um arquivo de configuração muda durante uma sessão |

58| `CwdChanged` | When the working directory changes, for example when Claude executes a `cd` command. Useful for reactive environment management with tools like direnv |60| `CwdChanged` | Quando o diretório de trabalho muda, por exemplo quando Claude executa um comando `cd`. Útil para gerenciamento reativo do ambiente com ferramentas como direnv |

59| `DirectoryAdded` | When a working directory is added mid-session via `/add-dir` or the SDK `register_repo_root` control request |61| `DirectoryAdded` | Quando um diretório de trabalho é adicionado no meio da sessão via `/add-dir` ou a solicitação de controle SDK `register_repo_root` |

60| `FileChanged` | When a watched file changes on disk. The `matcher` field specifies which filenames to watch |62| `FileChanged` | Quando um arquivo observado muda no disco. O campo `matcher` especifica quais nomes de arquivo observar |

61| `WorktreeCreate` | When a worktree is being created via `--worktree`, `isolation: "worktree"`, or for a background session. Replaces default git behavior |63| `WorktreeCreate` | Quando um worktree está sendo criado via `--worktree`, `isolation: "worktree"`, ou para uma sessão em segundo plano. Substitui o comportamento padrão do git |

62| `WorktreeRemove` | When a worktree is being removed at session exit, when a subagent finishes, or when you delete a background session |64| `WorktreeRemove` | Quando um worktree está sendo removido na saída da sessão, quando um subagente termina, ou quando você exclui uma sessão em segundo plano |

63| `PreCompact` | Before context compaction |65| `PreCompact` | Antes da compactação de contexto |

64| `PostCompact` | After context compaction completes |66| `PostCompact` | Depois que a compactação de contexto é concluída |

65| `PreModelSwitch` | Before Claude Code applies a model switch that you or a client requested. Can block the switch |67| `PreModelSwitch` | Antes de Claude Code aplicar uma mudança de modelo que você ou um cliente solicitou. Pode bloquear a mudança |

66| `PostModelSwitch` | After the session's model changes, including changes Claude Code makes on its own, such as restoring the model when you resume a session |68| `PostModelSwitch` | Depois que o modelo da sessão muda, incluindo mudanças que Claude Code faz por conta própria, como restaurar o modelo quando você retoma uma sessão |

67| `Elicitation` | When an MCP server requests user input during a tool call |69| `Elicitation` | Quando um servidor MCP solicita entrada do usuário durante uma chamada de ferramenta |

68| `ElicitationResult` | After a user responds to an MCP elicitation, before the response is sent back to the server |70| `ElicitationResult` | Depois que um usuário responde a uma elicitação MCP, antes da resposta ser enviada de volta ao servidor |

69| `SessionEnd` | When a session terminates |71| `SessionEnd` | Quando uma sessão é encerrada |

70 72 

71<h3 id="how-a-hook-resolves">73<h3 id="how-a-hook-resolves">

72 Como um hook é resolvido74 Como um hook é resolvido

73</h3>75</h3>

74 76 

75Para ver como essas peças se encaixam, considere este hook `PreToolUse` que bloqueia comandos shell destrutivos. O `matcher` se restringe a chamadas de ferramenta Bash e a condição `if` se restringe ainda mais a subcomandos Bash correspondendo a `rm *`, então `block-rm.sh` apenas é gerado quando ambos os filtros correspondem:77Para ver como o evento, o matcher e o manipulador se encaixam, considere este hook `PreToolUse` que bloqueia comandos shell destrutivos.

76 78 

77```json theme={null}79<Tabs>

78{80 <Tab title="macOS/Linux">

81 O `matcher` se restringe a chamadas de ferramenta Bash e a condição `if` se restringe ainda mais a subcomandos Bash correspondendo a `rm *`, então `block-rm.sh` apenas é gerado quando ambos os filtros correspondem:

82 

83 ```json theme={null}

84 {

79 "hooks": {85 "hooks": {

80 "PreToolUse": [86 "PreToolUse": [

81 {87 {


91 }97 }

92 ]98 ]

93 }99 }

94}100 }

95```101 ```

96 102 

97O script lê a entrada JSON de stdin, extrai o comando e retorna uma `permissionDecision` de `"deny"` se contiver `rm -rf`:103 O script lê a entrada JSON de stdin, extrai o comando e retorna uma `permissionDecision` de `"deny"` se contiver `rm -rf`. Salve-o em `.claude/hooks/block-rm.sh` em seu projeto e torne-o executável com `chmod +x .claude/hooks/block-rm.sh` para que Claude Code possa executá-lo:

98 104 

99```bash theme={null}105 ```bash theme={null}

100#!/bin/bash106 #!/bin/bash

101# .claude/hooks/block-rm.sh107 # .claude/hooks/block-rm.sh

102COMMAND=$(jq -r '.tool_input.command')108 COMMAND=$(jq -r '.tool_input.command')

103 109 

104if echo "$COMMAND" | grep -q 'rm -rf'; then110 if echo "$COMMAND" | grep -q 'rm -rf'; then

105 jq -n '{111 jq -n '{

106 hookSpecificOutput: {112 hookSpecificOutput: {

107 hookEventName: "PreToolUse",113 hookEventName: "PreToolUse",


109 permissionDecisionReason: "Destructive command blocked by hook"115 permissionDecisionReason: "Destructive command blocked by hook"

110 }116 }

111 }'117 }'

112else118 else

113 exit 0 # no decision; normal permission flow applies119 exit 0 # no decision; normal permission flow applies

114fi120 fi

115```121 ```

122 

123 Este script, como os outros exemplos Bash nesta página que analisam entrada JSON, usa `jq`, então instale `jq` e certifique-se de que está em seu `PATH` antes de tentar executá-los.

124 </Tab>

125 

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

127 O matcher `Bash|PowerShell` cobre a [ferramenta PowerShell](#powershell) bem como Bash. Uma única regra `if` corresponde apenas às chamadas de uma ferramenta, então cada ferramenta obtém seu próprio manipulador: o primeiro se restringe a subcomandos Bash correspondendo a `rm *`, o segundo a comandos PowerShell correspondendo a `Remove-Item *`. Ambos executam o mesmo script através de `powershell.exe`:

128 

129 ```json theme={null}

130 {

131 "hooks": {

132 "PreToolUse": [

133 {

134 "matcher": "Bash|PowerShell",

135 "hooks": [

136 {

137 "type": "command",

138 "if": "Bash(rm *)",

139 "command": "powershell.exe",

140 "args": [

141 "-NoProfile",

142 "-ExecutionPolicy",

143 "Bypass",

144 "-File",

145 "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.ps1"

146 ]

147 },

148 {

149 "type": "command",

150 "if": "PowerShell(Remove-Item *)",

151 "command": "powershell.exe",

152 "args": [

153 "-NoProfile",

154 "-ExecutionPolicy",

155 "Bypass",

156 "-File",

157 "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.ps1"

158 ]

159 }

160 ]

161 }

162 ]

163 }

164 }

165 ```

166 

167 A flag `-NoProfile` pula o carregamento de seu perfil PowerShell para que o hook inicie rapidamente, e `-ExecutionPolicy Bypass` permite que PowerShell execute o arquivo de script local.

116 168 

117Agora suponha que o Claude Code decida executar `Bash "rm -rf /tmp/build"`. Aqui está o que acontece:169 O script lê a entrada JSON de stdin, extrai o comando e retorna uma `permissionDecision` de `"deny"` se contiver `rm -rf` ou `Remove-Item` seguido por `-Recurse`. Salve-o em `.claude/hooks/block-rm.ps1` em seu projeto:

170 

171 ```powershell theme={null}

172 # .claude/hooks/block-rm.ps1

173 $callInput = [Console]::In.ReadToEnd() | ConvertFrom-Json

174 $command = $callInput.tool_input.command

175 

176 if ($command -match 'rm -rf|Remove-Item.*-Recurse') {

177 @{

178 hookSpecificOutput = @{

179 hookEventName = "PreToolUse"

180 permissionDecision = "deny"

181 permissionDecisionReason = "Destructive command blocked by hook"

182 }

183 } | ConvertTo-Json

184 } else {

185 exit 0 # no decision; normal permission flow applies

186 }

187 ```

188 </Tab>

189</Tabs>

190 

191Agora suponha que Claude Code decida executar `Bash "rm -rf /tmp/build"` contra a configuração macOS/Linux. Aqui está o que acontece:

118 192 

119<Frame>193<Frame>

120 <img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/hook-resolution.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=be0bf3053550c26de5f54cd64674c197" alt="Diagrama de resolução de hook: PreToolUse dispara, o matcher verifica correspondência de Bash, então a condição if verifica correspondência de Bash(rm *). Se ambos corresponderem, o comando do hook é executado e retorna permissionDecision deny, então a chamada da ferramenta é bloqueada e o Claude Code continua. Se qualquer verificação falhar em corresponder, o hook é ignorado e a chamada da ferramenta é permitida prosseguir." width="930" height="270" data-path="images/hook-resolution.svg" />194 <img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/hook-resolution.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=be0bf3053550c26de5f54cd64674c197" className="dark:hidden" alt="Diagrama de resolução de hook: PreToolUse dispara, o matcher verifica correspondência de Bash, então a condição if verifica correspondência de Bash(rm *). Se ambos corresponderem, o comando do hook é executado e retorna permissionDecision deny, então a chamada da ferramenta é bloqueada e Claude Code continua. Se qualquer verificação falhar em corresponder, o hook é ignorado e a chamada da ferramenta é permitida prosseguir." width="930" height="270" data-path="images/hook-resolution.svg" />

195 

196 <img src="https://mintcdn.com/claude-code/_xqph1dUOslCOwsj/images/hook-resolution-dark.svg?fit=max&auto=format&n=_xqph1dUOslCOwsj&q=85&s=e80af91f8507cee6bd51ac3c2dd92f63" className="hidden dark:block" alt="Diagrama de resolução de hook: PreToolUse dispara, o matcher verifica correspondência de Bash, então a condição if verifica correspondência de Bash(rm *). Se ambos corresponderem, o comando do hook é executado e retorna permissionDecision deny, então a chamada da ferramenta é bloqueada e Claude Code continua. Se qualquer verificação falhar em corresponder, o hook é ignorado e a chamada da ferramenta é permitida prosseguir." width="930" height="270" data-path="images/hook-resolution-dark.svg" />

121</Frame>197</Frame>

122 198 

123<Steps>199<Steps>

124 <Step title="Evento dispara">200 <Step title="Evento dispara">

125 O evento `PreToolUse` dispara. O Claude Code envia a entrada da ferramenta como JSON em stdin para o hook:201 O evento `PreToolUse` dispara. Claude Code envia a entrada da ferramenta como JSON em stdin para o hook:

126 202 

127 ```json theme={null}203 ```json theme={null}

128 { "tool_name": "Bash", "tool_input": { "command": "rm -rf /tmp/build" }, ... }204 { "tool_name": "Bash", "tool_input": { "command": "rm -rf /tmp/build" }, ... }


154 </Step>230 </Step>

155 231 

156 <Step title="Claude Code age sobre o resultado">232 <Step title="Claude Code age sobre o resultado">

157 O Claude Code lê a decisão JSON, bloqueia a chamada da ferramenta e mostra a razão ao Claude.233 Claude Code lê a decisão JSON, bloqueia a chamada da ferramenta e mostra a razão ao Claude.

158 </Step>234 </Step>

159</Steps>235</Steps>

160 236 


183Onde você define um hook determina seu escopo:259Onde você define um hook determina seu escopo:

184 260 

185| Local | Escopo | Compartilhável |261| Local | Escopo | Compartilhável |

186| :------------------------------------------------------------- | :------------------------------- | :---------------------------------------- |262| :---------------------------------------- | :------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------- |

187| `~/.claude/settings.json` | Todos os seus projetos | Não, local para sua máquina |263| `~/.claude/settings.json` | Todos os seus projetos | Não, local para sua máquina |

188| `.claude/settings.json` | Projeto único | Sim, pode ser confirmado no repositório |264| `.claude/settings.json` | Projeto único | Sim, pode ser confirmado no repositório |

189| `.claude/settings.local.json` | Projeto único | Não, gitignored quando Claude Code o cria |265| `.claude/settings.local.json` | Projeto único | Não, gitignored quando Claude Code salva uma configuração nele |

190| Configurações de política gerenciada | Organização inteira | Sim, controlado por administrador |266| Configurações de política gerenciada | Organização inteira | Sim, controlado por administrador |

191| [Plugin](/docs/pt/plugins) `hooks/hooks.json` | Quando o plugin está ativado | Sim, agrupado com o plugin |267| [Plugin](/docs/pt/plugins) `hooks/hooks.json` | Quando o plugin está ativado | Sim, agrupado com o plugin |

192| Frontmatter de [Skill](/docs/pt/skills) ou [agente](/docs/pt/sub-agents) | Enquanto o componente está ativo | Sim, definido no arquivo do componente |268| Frontmatter de [Skill](/docs/pt/skills) | O resto da sessão uma vez que a skill é invocada. Consulte [Hooks em skills e agentes](#hooks-in-skills-and-agents) | Sim, definido no arquivo da skill |

269| Frontmatter de [Subagent](/docs/pt/sub-agents) | Enquanto esse subagente está em execução | Sim, definido no arquivo do subagente |

270 

271Sessões em nuvem em [Claude Code na web](/docs/pt/claude-code-on-the-web) não leem seu `~/.claude/settings.json` local; hooks lá vêm do repositório, significando seu `.claude/settings.json` em uma sessão com um repositório e os plugins que declara em qualquer sessão, e das configurações gerenciadas pelo servidor da sua organização. Em um [ambiente auto-hospedado](/docs/pt/self-hosted-environments-configuration#permissions-and-tool-approval), Claude Code também executa os hooks que o operador propagou do `~/.claude/` do host do runner, e executa os hooks no arquivo de configurações gerenciadas da imagem do runner quando esse arquivo está entre as [fontes gerenciadas que Claude Code aplica](/docs/pt/managed-settings#how-claude-code-combines-managed-sources), o que por padrão significa apenas quando nem configurações gerenciadas pelo servidor nem uma política Claude Code entregue por MDM fornece o nível gerenciado. Consulte [o que é transferido da sua configuração](/docs/pt/cloud-environments#what-carries-over-from-your-setup) para saber quais arquivos chegam a uma sessão em nuvem.

193 272 

194Para detalhes sobre resolução de arquivo de configurações, consulte [configurações](/docs/pt/settings). Administradores corporativos podem usar `allowManagedHooksOnly` para bloquear hooks de usuário, projeto e plugin. Hooks de plugins forçadamente ativados em configurações gerenciadas `enabledPlugins` são isentos, para que administradores possam distribuir hooks verificados através de um marketplace de organização. Consulte [Configuração de hook](/docs/pt/settings#hook-configuration).273Para detalhes sobre resolução de arquivo de configurações, consulte [settings](/docs/pt/settings).

274 

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

276 

277Administradores corporativos podem usar `allowManagedHooksOnly` para restringir quais hooks executam:

278 

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

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

281* Claude Code também desabilita plugins com uma [fonte `command`](/docs/pt/plugin-marketplaces#command-sources), incluindo plugins forçadamente ativados em configurações gerenciadas `enabledPlugins`, a menos que [`disableCommandPluginSources`](/docs/pt/settings-reference#disablecommandpluginsources) seja explicitamente definido como `false`. Fontes `command` requerem Claude Code v2.1.229 ou posterior

282* Claude Code também bloqueia [comandos `headersHelper`](/docs/pt/plugin-marketplaces#authenticate-archive-downloads) do marketplace a menos que [`disableCommandPluginSources`](/docs/pt/settings-reference#disablecommandpluginsources) seja explicitamente definido como `false`, exceto para um marketplace que as próprias configurações gerenciadas declarem

283 

284Consulte [o que executa sob `allowManagedHooksOnly`](/docs/pt/settings-reference#what-runs-under-allowmanagedhooksonly).

285 

286Entradas de hook se mesclam entre níveis de configurações em vez de se substituírem: configurações de usuário, projeto e local adicionam seus próprios hooks sem remover os gerenciados, e a configuração [`disableAllHooks`](#disable-or-remove-hooks) não pode desabilitar hooks gerenciados de fora das configurações gerenciadas.

287 

288As [listas de permissões de hook HTTP](/docs/pt/settings-reference#hook-and-skill-settings) se aplicam a hooks de todas as fontes, incluindo configurações de política gerenciada:

289 

290* `allowedHttpHookUrls`: quando definido em qualquer nível de configurações, Claude Code executa um manipulador de hook HTTP apenas se sua URL corresponder à lista de permissões mesclada

291* `httpHookAllowedEnvVars`: quando definido, Claude Code interpola apenas as variáveis de ambiente nessa lista em cabeçalhos de hook

195 292 

196<h3 id="matcher-patterns">293<h3 id="matcher-patterns">

197 Padrões de matcher294 Padrões de matcher


218Cada tipo de evento corresponde em um campo diferente:315Cada tipo de evento corresponde em um campo diferente:

219 316 

220| Evento | O que o matcher filtra | Valores de matcher de exemplo |317| Evento | O que o matcher filtra | Valores de matcher de exemplo |

221| :------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |318| :------------------------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

222| `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest`, `PermissionDenied` | nome da ferramenta | `Bash`, `Edit\|Write`, `mcp__.*` |319| `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest`, `PermissionDenied` | nome da ferramenta | `Bash`, `Edit\|Write`, `mcp__.*` |

223| `SessionStart` | como a sessão começou | `startup`, `resume`, `clear`, `compact` |320| `SessionStart` | como a sessão começou | `startup`, `resume`, `clear`, `compact`, `fork` |

224| `Setup` | qual sinalizador CLI acionou a configuração | `init`, `maintenance` |321| `Setup` | qual sinalizador CLI acionou a configuração | `init`, `maintenance` |

225| `SessionEnd` | por que a sessão terminou | `clear`, `resume`, `logout`, `prompt_input_exit`, `bypass_permissions_disabled`, `other` |322| `SessionEnd` | por que a sessão terminou | `clear`, `resume`, `logout`, `prompt_input_exit`, `other` |

226| `Notification` | tipo de notificação | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed` |323| `Notification` | tipo de notificação | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_url_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed`, `quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled` |

227| `SubagentStart` | tipo de agente | `general-purpose`, `Explore`, `Plan`, nomes de agentes personalizados ou nomes com escopo de plugin como `^my-plugin:reviewer$` |324| `SubagentStart` | tipo de agente | `general-purpose`, `Explore`, `Plan`, nomes de agentes personalizados ou nomes com escopo de plugin como `^my-plugin:reviewer$` |

228| `PreCompact`, `PostCompact` | o que acionou a compactação | `manual`, `auto` |325| `PreCompact`, `PostCompact` | o que acionou a compactação | `manual`, `auto` |

326| `PreModelSwitch`, `PostModelSwitch` | nome canônico do modelo para o qual a sessão muda, conforme descrito em [PreModelSwitch](#premodelswitch) | `claude-opus-5`, `claude-opus-4-6\|claude-opus-5`, `.*opus.*` |

229| `SubagentStop` | tipo de agente | mesmos valores que `SubagentStart` |327| `SubagentStop` | tipo de agente | mesmos valores que `SubagentStart` |

230| `ConfigChange` | fonte de configuração | `user_settings`, `project_settings`, `local_settings`, `policy_settings`, `skills` |328| `ConfigChange` | fonte de configuração | `user_settings`, `project_settings`, `local_settings`, `policy_settings`, `skills` |

231| `CwdChanged` | sem suporte a matcher | sempre dispara em cada mudança de diretório |329| `CwdChanged` | sem suporte a matcher | sempre dispara em cada ocorrência |

330| `DirectoryAdded` | como o diretório foi adicionado | `slash_command`, `register_repo_root` |

232| `FileChanged` | nomes de arquivo literais para monitorar (consulte [FileChanged](#filechanged)) | `.envrc\|.env` |331| `FileChanged` | nomes de arquivo literais para monitorar (consulte [FileChanged](#filechanged)) | `.envrc\|.env` |

233| `StopFailure` | tipo de erro | `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `unknown` |332| `StopFailure` | tipo de erro | `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error`, `unknown` |

234| `InstructionsLoaded` | razão de carregamento | `session_start`, `nested_traversal`, `path_glob_match`, `include`, `compact` |333| `InstructionsLoaded` | razão de carregamento | `session_start`, `nested_traversal`, `path_glob_match`, `include`, `compact` |

235| `UserPromptExpansion` | nome do comando | seus nomes de skill ou comando |334| `UserPromptExpansion` | nome do comando | seus nomes de skill ou comando |

236| `Elicitation` | nome do servidor MCP | seus nomes de servidor MCP configurados |335| `Elicitation` | nome do servidor MCP | seus nomes de servidor MCP configurados |

237| `ElicitationResult` | nome do servidor MCP | mesmos valores que `Elicitation` |336| `ElicitationResult` | nome do servidor MCP | mesmos valores que `Elicitation` |

238| `UserPromptSubmit`, `PostToolBatch`, `Stop`, `TeammateIdle`, `TaskCreated`, `TaskCompleted`, `WorktreeCreate`, `WorktreeRemove`, `MessageDisplay` | sem suporte a matcher | sempre dispara em cada ocorrência |337| `UserPromptSubmit`, `PostToolBatch`, `Stop`, `TeammateIdle`, `TaskCreated`, `TaskCompleted`, `WorktreeCreate`, `WorktreeRemove`, `MessageDisplay` | sem suporte a matcher | sempre dispara em cada ocorrência |

239 338 

240O matcher executa contra um campo da [entrada JSON](#hook-input-and-output) que o Claude Code envia para seu hook em stdin. Para eventos de ferramenta, esse campo é `tool_name`. Cada seção [evento de hook](#hook-events) lista o conjunto completo de valores de matcher e o esquema de entrada para esse evento.339Corresponder `StopFailure` em `cloud_credential_error` requer Claude Code v2.1.267 ou posterior, a primeira versão que relata falhas de carregamento de credenciais sob esse valor em vez de `server_error` ou `unknown`.

340 

341Para a maioria dos eventos, Claude Code avalia o matcher contra um campo da [entrada JSON](#hook-input-and-output) que envia para seu hook em stdin. Para eventos de ferramenta, esse campo é `tool_name`. Para `PreModelSwitch` e `PostModelSwitch`, Claude Code avalia o matcher contra o nome canônico que deriva de `to_model`, conforme descrito em [PreModelSwitch](#premodelswitch). Cada seção [evento de hook](#hook-events) lista o conjunto completo de valores de matcher e o esquema de entrada para esse evento.

241 342 

242Este exemplo executa um script de linting apenas quando Claude escreve ou edita um arquivo:343Este exemplo executa um script de linting apenas quando Claude escreve ou edita um arquivo:

243 344 


259}360}

260```361```

261 362 

262`UserPromptSubmit`, `PostToolBatch`, `Stop`, `TeammateIdle`, `TaskCreated`, `TaskCompleted`, `WorktreeCreate`, `WorktreeRemove`, `MessageDisplay` e `CwdChanged` não suportam matchers e sempre disparam em cada ocorrência. Se você adicionar um campo `matcher` a esses eventos, ele é silenciosamente ignorado.363Se você adicionar um campo `matcher` a um evento sem suporte a matcher, ele é silenciosamente ignorado.

263 364 

264Para eventos de ferramenta, você pode filtrar mais estreitamente definindo o campo [`if`](#common-fields) em manipuladores de hook individuais. `if` usa [sintaxe de regra de permissão](/docs/pt/permissions) para corresponder contra o nome da ferramenta e argumentos juntos, então `"Bash(git *)"` executa quando qualquer subcomando da entrada Bash corresponde a `git *` e `"Edit(*.ts)"` executa apenas para arquivos TypeScript.365Para eventos de ferramenta, você pode filtrar mais estreitamente definindo o campo [`if`](#common-fields) em manipuladores de hook individuais. `if` usa [sintaxe de regra de permissão](/docs/pt/permissions) para corresponder contra o nome da ferramenta e argumentos juntos, então `"Bash(git *)"` executa quando qualquer subcomando da entrada Bash corresponde a `git *` e `"Edit(*.ts)"` executa apenas para arquivos TypeScript.

265 366 


323* **[Hooks de comando](#command-hook-fields)** (`type: "command"`): executam um comando shell. Seu script recebe a [entrada JSON](#hook-input-and-output) do evento em stdin e comunica resultados através de códigos de saída e stdout.424* **[Hooks de comando](#command-hook-fields)** (`type: "command"`): executam um comando shell. Seu script recebe a [entrada JSON](#hook-input-and-output) do evento em stdin e comunica resultados através de códigos de saída e stdout.

324* **[Hooks HTTP](#http-hook-fields)** (`type: "http"`): enviam a entrada JSON do evento como uma solicitação HTTP POST para uma URL. O endpoint comunica resultados através do corpo da resposta usando o mesmo [formato de saída JSON](#json-output) que hooks de comando.425* **[Hooks HTTP](#http-hook-fields)** (`type: "http"`): enviam a entrada JSON do evento como uma solicitação HTTP POST para uma URL. O endpoint comunica resultados através do corpo da resposta usando o mesmo [formato de saída JSON](#json-output) que hooks de comando.

325* **[Hooks de ferramenta MCP](#mcp-tool-hook-fields)** (`type: "mcp_tool"`): chamam uma ferramenta em um servidor [MCP](/docs/pt/mcp) já conectado. A saída de texto da ferramenta é tratada como stdout de hook de comando.426* **[Hooks de ferramenta MCP](#mcp-tool-hook-fields)** (`type: "mcp_tool"`): chamam uma ferramenta em um servidor [MCP](/docs/pt/mcp) já conectado. A saída de texto da ferramenta é tratada como stdout de hook de comando.

326* **[Hooks de prompt](#prompt-and-agent-hook-fields)** (`type: "prompt"`): enviam um prompt para um modelo Claude para avaliação de turno único. O modelo retorna uma decisão sim/não como JSON. Consulte [Hooks baseados em prompt](#prompt-based-hooks).427* **[Hooks de prompt](#prompt-and-agent-hook-fields)** (`type: "prompt"`): enviam um prompt para um modelo Claude para avaliação de turno único. O modelo retorna sua decisão como JSON. Consulte [Hooks baseados em prompt](#prompt-based-hooks).

327* **[Hooks de agente](#prompt-and-agent-hook-fields)** (`type: "agent"`): geram um subagente que pode usar ferramentas como Read, Grep e Glob para verificar condições antes de retornar uma decisão. Hooks de agente são experimentais e podem mudar. Consulte [Hooks baseados em agente](#agent-based-hooks).428* **[Hooks de agente](#prompt-and-agent-hook-fields)** (`type: "agent"`): geram um subagente que pode usar ferramentas como Read, Grep e Glob para verificar condições antes de retornar uma decisão. Hooks de agente são experimentais e podem mudar. Consulte [Hooks baseados em agente](#agent-based-hooks).

328 429 

329Todos os hooks correspondentes executam em paralelo, e manipuladores idênticos são automaticamente desduplicados. Hooks de comando são desduplicados por string de comando e `args`, e hooks HTTP são desduplicados por URL.430Todos os hooks correspondentes executam em paralelo. Se você definir o mesmo manipulador em mais de um arquivo de configurações, ele executa uma vez. Uma cópia do mesmo manipulador de um plugin ou skill permanece separada.

330 431 

331Manipuladores executam no diretório atual com o ambiente do Claude Code. A variável de ambiente `$CLAUDE_CODE_REMOTE` é definida como `"true"` em ambientes web remotos e não é definida na CLI local. A partir de v2.1.199, [`$CLAUDE_CODE_BRIDGE_SESSION_ID`](/docs/pt/env-vars) é definido para o ID de sessão [Remote Control](/docs/pt/remote-control) enquanto a sessão local tem uma conexão Remote Control ativa.432Manipuladores executam no diretório atual com o ambiente do Claude Code. Se o diretório atual não existir mais, por exemplo uma worktree ou diretório temporário que outro shell deletou no meio da sessão, Claude Code executa hooks de comando a partir do primeiro destes que ainda existe: o diretório em que a sessão começou, a raiz do projeto, seu diretório home ou o diretório temporário do sistema. Claude Code registra um aviso nomeando o diretório de fallback no [log de debug](#debug-hooks).

433 

434A variável de ambiente `$CLAUDE_CODE_REMOTE` é `"true"` em ambientes web remotos e não é definida na CLI local. Claude Code v2.1.199 e posterior define [`$CLAUDE_CODE_BRIDGE_SESSION_ID`](/docs/pt/env-vars) para o ID de sessão [Remote Control](/docs/pt/remote-control) enquanto a sessão local tem uma conexão Remote Control ativa.

332 435 

333<h4 id="common-fields">436<h4 id="common-fields">

334 Campos comuns437 Campos comuns


337Esses campos se aplicam a todos os tipos de hook:440Esses campos se aplicam a todos os tipos de hook:

338 441 

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

340| :-------------- | :---------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |443| :-------------- | :---------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

341| `type` | sim | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` ou `"agent"` |444| `type` | sim | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` ou `"agent"` |

342| `if` | não | Sintaxe de regra de permissão para filtrar quando este hook executa, como `"Bash(git *)"` ou `"Edit(*.ts)"`. O comando do hook apenas é executado se a chamada de ferramenta corresponde ao padrão. Consulte a [tabela de correspondência Bash](#bash-if-matching) abaixo para saber como padrões Bash são avaliados contra subcomandos, `$()` e backticks. Apenas avaliado em eventos de ferramenta: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` e `PermissionDenied`. Em outros eventos, um hook com `if` definido nunca executa. Usa a mesma sintaxe que [regras de permissão](/docs/pt/permissions) |445| `if` | não | Sintaxe de regra de permissão para filtrar quando este hook executa, como `"Bash(git *)"` ou `"Edit(*.ts)"`. O comando do hook apenas é executado se a chamada de ferramenta corresponde ao padrão. Consulte a [tabela de correspondência Bash](#bash-if-matching) abaixo para saber como padrões Bash são avaliados contra subcomandos, `$()` e backticks. Apenas avaliado em eventos de ferramenta: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` e `PermissionDenied`. Em outros eventos, um hook com `if` definido nunca executa. Usa a mesma sintaxe que [regras de permissão](/docs/pt/permissions) |

343| `timeout` | não | Segundos antes de cancelar. Padrões: 600 para `command`, `http` e `mcp_tool`; 30 para `prompt`; 60 para `agent`. [`UserPromptSubmit`](#userpromptsubmit) reduz o padrão de `command`, `http` e `mcp_tool` para 30, e [`MessageDisplay`](#messagedisplay) reduz para 10 |446| `timeout` | não | Segundos antes de cancelar. Claude Code não o impõe em um hook de comando que você executa com [`async: true`](#run-hooks-in-the-background). Padrões: 600 para `command`, `http` e `mcp_tool`; 30 para `prompt`; 60 para `agent`. Claude Code reduz o padrão de `command`, `http` e `mcp_tool` para 30 em [`UserPromptSubmit`](#userpromptsubmit), [`PreModelSwitch`](#premodelswitch) e [`PostModelSwitch`](#postmodelswitch), e para 10 em [`MessageDisplay`](#messagedisplay). Hooks de [`SessionEnd`](#sessionend) compartilham um orçamento de 1,5 segundo; se suas configurações definirem um `timeout` por hook mais longo, Claude Code aumenta o orçamento para corresponder, até 60 segundos |

344| `statusMessage` | não | Mensagem de spinner personalizada exibida enquanto o hook executa |447| `statusMessage` | não | Mensagem de spinner personalizada exibida enquanto o hook executa |

345| `once` | não | Se `true`, executa apenas uma vez por sessão e depois é removido. Apenas honrado para hooks declarados em [frontmatter de skill](#hooks-in-skills-and-agents); ignorado em arquivos de configurações e frontmatter de agente |448| `once` | não | Se `true`, Claude Code remove o hook após sua primeira execução bem-sucedida. Uma execução que falha, bloqueia com código de saída 2 ou expira deixa o hook em vigor, então ele executa novamente no próximo evento correspondente. Apenas honrado para hooks declarados em [frontmatter de skill](#hooks-in-skills-and-agents); ignorado em arquivos de configurações e frontmatter de agente |

346 449 

347O campo `if` contém exatamente uma regra de permissão. Não há sintaxe `&&`, `||` ou lista para combinar regras; para aplicar múltiplas condições, defina um manipulador de hook separado para cada.450O campo `if` contém exatamente uma regra de permissão. Não há sintaxe `&&`, `||` ou lista para combinar regras; para aplicar múltiplas condições, defina um manipulador de hook separado para cada.

348 451 

452Em uma condição `if` para uma ferramenta de arquivo, um padrão de diretório de segmento único como `"Edit(src/**)"` corresponde apenas ao diretório `src` no diretório de trabalho e aos arquivos sob ele. Para corresponder a um diretório nomeado `src` em qualquer profundidade, escreva `"Edit(**/src/**)"`. Antes de v2.1.214, `"Edit(src/**)"` correspondia a um diretório nomeado `src` em qualquer profundidade sob o diretório de trabalho.

453 

349<span id="bash-if-matching" />Para padrões Bash, se seu comando de hook executa depende da forma do padrão e do comando Bash que Claude está invocando. Atribuições `VAR=value` iniciais são removidas antes da correspondência.454<span id="bash-if-matching" />Para padrões Bash, se seu comando de hook executa depende da forma do padrão e do comando Bash que Claude está invocando. Atribuições `VAR=value` iniciais são removidas antes da correspondência.

350 455 

351| padrão `if` | Comando Bash | Hook executa? | Por quê |456| padrão `if` | Comando Bash | Hook executa? | Por quê |

352| :----------------- | :--------------------- | :------------ | :-------------------------------------------------------------------------------------------------------------- |457| :----------------- | :-------------------------- | :------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------- |

353| `Bash(git *)` | `FOO=bar git push` | sim | atribuições iniciais são removidas; `git push` corresponde |458| `Bash(git *)` | `FOO=bar git push` | sim | atribuições iniciais são removidas; `git push` corresponde |

354| `Bash(git *)` | `npm test && git push` | sim | cada subcomando é verificado; `git push` corresponde |459| `Bash(git *)` | `npm test && git push` | sim | cada subcomando é verificado; `git push` corresponde |

355| `Bash(rm *)` | `echo $(rm -rf /)` | sim | comandos dentro de `$()` e backticks são verificados; `rm -rf /` corresponde |460| `Bash(rm *)` | `echo $(rm -rf /)` | sim | comandos dentro de `$()` e backticks são verificados; `rm -rf /` corresponde |

356| `Bash(rm *)` | `echo $(date)` | não | nenhum subcomando corresponde a `rm *` |461| `Bash(rm *)` | `echo $(date)` | não | nenhum subcomando corresponde a `rm *` |

462| `Bash(cat *)` | `echo before $(date) after` | não | uma substituição pode estar em qualquer posição de argumento, então o comando completo e `date` são ambos verificados; nenhum corresponde a `cat *` |

463| `Bash(git *)` | `$TOOL git push` | sim | Claude Code não pode dizer para o que o nome do comando se expande, então executa o hook |

357| `Bash(git push *)` | `echo $(date)` | sim | padrões que especificam mais do que o nome do comando executam o hook mesmo assim em `$()`, backticks ou `$VAR` |464| `Bash(git push *)` | `echo $(date)` | sim | padrões que especificam mais do que o nome do comando executam o hook mesmo assim em `$()`, backticks ou `$VAR` |

358 465 

359O filtro também falha aberto, executando seu hook independentemente do padrão, quando o comando Bash não pode ser analisado. Como o filtro `if` é melhor esforço, use o [sistema de permissão](/docs/pt/permissions) em vez de um hook para impor um allow ou deny duro.466Quando Claude Code não pode determinar quais comandos a entrada Bash executa, ele executa seu hook independentemente do padrão. Como o filtro `if` é melhor esforço, use o [sistema de permissão](/docs/pt/permissions) em vez de um hook para impor um allow ou deny duro.

360 467 

361<h4 id="command-hook-fields">468<h4 id="command-hook-fields">

362 Campos de hook de comando469 Campos de hook de comando


369| `command` | sim | Comando shell a executar. Com `args`, o executável a gerar diretamente. Consulte [Forma exec e forma shell](#exec-form-and-shell-form) |476| `command` | sim | Comando shell a executar. Com `args`, o executável a gerar diretamente. Consulte [Forma exec e forma shell](#exec-form-and-shell-form) |

370| `args` | não | Lista de argumentos. Quando presente, `command` é resolvido como um executável e gerado diretamente com `args` como o vetor de argumentos, sem shell envolvido. Consulte [Forma exec e forma shell](#exec-form-and-shell-form) |477| `args` | não | Lista de argumentos. Quando presente, `command` é resolvido como um executável e gerado diretamente com `args` como o vetor de argumentos, sem shell envolvido. Consulte [Forma exec e forma shell](#exec-form-and-shell-form) |

371| `async` | não | Se `true`, executa em background sem bloquear. Consulte [Executar hooks em background](#run-hooks-in-the-background) |478| `async` | não | Se `true`, executa em background sem bloquear. Consulte [Executar hooks em background](#run-hooks-in-the-background) |

372| `asyncRewake` | não | Se `true`, executa em background e acorda Claude na saída do código 2. Implica `async`. O stderr do hook, ou stdout se stderr estiver vazio, é mostrado ao Claude como um lembrete do sistema para que possa reagir a uma falha de background de longa duração |479| `asyncRewake` | não | Se `true`, executa em background e acorda Claude na saída do código 2. O stderr do hook, ou stdout se stderr estiver vazio, é mostrado ao Claude como um lembrete do sistema para que possa reagir a uma falha de background de longa duração |

373| `shell` | não | Shell a usar para este hook. Aceita `"bash"` ou `"powershell"`. Padrão é `"bash"`, ou `"powershell"` no Windows quando Git Bash não está instalado. Definir `"powershell"` executa o comando via PowerShell no Windows. Não requer `CLAUDE_CODE_USE_POWERSHELL_TOOL` já que hooks geram PowerShell diretamente. Ignorado quando `args` é definido |480| `shell` | não | Shell a usar para este hook. Aceita `"bash"` ou `"powershell"`. Padrão é `"bash"`, ou `"powershell"` no Windows quando Git Bash não está instalado. Definir `"powershell"` executa o comando via PowerShell no Windows. Não requer `CLAUDE_CODE_USE_POWERSHELL_TOOL` já que hooks geram PowerShell diretamente. Ignorado quando `args` é definido |

374 481 

375<a id="exec-form-and-shell-form" />482<a id="exec-form-and-shell-form" />


409 516 

410Ambas as formas suportam os mesmos [placeholders de caminho](#reference-scripts-by-path), e ambas os exportam como as variáveis de ambiente `CLAUDE_PROJECT_DIR`, `CLAUDE_PLUGIN_ROOT` e `CLAUDE_PLUGIN_DATA` no processo gerado, então um script pode ler `process.env.CLAUDE_PLUGIN_ROOT` independentemente de como foi lançado.517Ambas as formas suportam os mesmos [placeholders de caminho](#reference-scripts-by-path), e ambas os exportam como as variáveis de ambiente `CLAUDE_PROJECT_DIR`, `CLAUDE_PLUGIN_ROOT` e `CLAUDE_PLUGIN_DATA` no processo gerado, então um script pode ler `process.env.CLAUDE_PLUGIN_ROOT` independentemente de como foi lançado.

411 518 

519Hooks de plugin adicionalmente substituem valores [`${user_config.*}`](/docs/pt/plugins-reference#user-configuration), apenas em forma exec: o valor é substituído em `command` e em cada elemento `args` como uma string simples, então nenhum shell o re-analisa.

520 

412Um hook de plugin em forma shell cujo `command` referencia `${user_config.*}` falha com um [erro](/docs/pt/errors#plugin-command-references-user-config) em vez de executar. Para usar um valor de opção de um hook em forma shell, leia a variável de ambiente `$CLAUDE_PLUGIN_OPTION_<KEY>`, como `$CLAUDE_PLUGIN_OPTION_WEBHOOK_URL` para uma opção `webhook_url`, ou defina `args` para mudar o hook para forma exec. Antes de v2.1.207, comandos de hook de plugin em forma shell também substituíam `${user_config.*}`.521Um hook de plugin em forma shell cujo `command` referencia `${user_config.*}` falha com um [erro](/docs/pt/errors#plugin-command-references-user-config) em vez de executar. Para usar um valor de opção de um hook em forma shell, leia a variável de ambiente `$CLAUDE_PLUGIN_OPTION_<KEY>`, como `$CLAUDE_PLUGIN_OPTION_WEBHOOK_URL` para uma opção `webhook_url`, ou defina `args` para mudar o hook para forma exec. Antes de v2.1.207, comandos de hook de plugin em forma shell também substituíam `${user_config.*}`.

413 522 

414<Note>523<Note>


427| `headers` | não | Cabeçalhos HTTP adicionais como pares chave-valor. Valores suportam interpolação de variável de ambiente usando sintaxe `$VAR_NAME` ou `${VAR_NAME}`. Apenas variáveis listadas em `allowedEnvVars` são resolvidas |536| `headers` | não | Cabeçalhos HTTP adicionais como pares chave-valor. Valores suportam interpolação de variável de ambiente usando sintaxe `$VAR_NAME` ou `${VAR_NAME}`. Apenas variáveis listadas em `allowedEnvVars` são resolvidas |

428| `allowedEnvVars` | não | Lista de nomes de variáveis de ambiente que podem ser interpoladas em valores de cabeçalho. Referências a variáveis não listadas são substituídas por strings vazias. Obrigatório para qualquer interpolação de variável de ambiente funcionar |537| `allowedEnvVars` | não | Lista de nomes de variáveis de ambiente que podem ser interpoladas em valores de cabeçalho. Referências a variáveis não listadas são substituídas por strings vazias. Obrigatório para qualquer interpolação de variável de ambiente funcionar |

429 538 

430O Claude Code envia a [entrada JSON](#hook-input-and-output) do hook como corpo da solicitação POST com `Content-Type: application/json`. O corpo da resposta usa o mesmo [formato de saída JSON](#json-output) que hooks de comando.539Claude Code envia a [entrada JSON](#hook-input-and-output) do hook como corpo da solicitação POST com `Content-Type: application/json`. O corpo da resposta usa o mesmo [formato de saída JSON](#json-output) que hooks de comando.

431 540 

432O tratamento de erros difere dos hooks de comando: respostas não-2xx, falhas de conexão e timeouts todos produzem erros não-bloqueadores que permitem que a execução continue. Para bloquear uma chamada de ferramenta ou negar uma permissão, retorne uma resposta 2xx com um corpo JSON contendo `decision: "block"` ou um `hookSpecificOutput` com `permissionDecision: "deny"`.541O tratamento de erros difere dos hooks de comando; consulte [Tratamento de resposta HTTP](#http-response-handling).

433 542 

434Este exemplo envia eventos `PreToolUse` para um serviço de validação local, autenticando com um token da variável de ambiente `MY_TOKEN`:543Este exemplo envia eventos `PreToolUse` para um serviço de validação local, autenticando com um token da variável de ambiente `MY_TOKEN`:

435 544 


468| `tool` | sim | Nome da ferramenta a chamar naquele servidor |577| `tool` | sim | Nome da ferramenta a chamar naquele servidor |

469| `input` | não | Argumentos passados para a ferramenta. Valores de string suportam substituição `${path}` da [entrada JSON](#hook-input-and-output) do hook, como `"${tool_input.file_path}"` |578| `input` | não | Argumentos passados para a ferramenta. Valores de string suportam substituição `${path}` da [entrada JSON](#hook-input-and-output) do hook, como `"${tool_input.file_path}"` |

470 579 

471A saída de texto da ferramenta é tratada como stdout de hook de comando: se analisar como [saída JSON](#json-output) válida, é processada como uma decisão, caso contrário, é mostrada como texto simples. Se o servidor nomeado não estiver conectado, ou a ferramenta retornar `isError: true`, o hook produz um erro não-bloqueador e a execução continua.580Claude Code lê o conteúdo de texto da ferramenta da mesma forma que lê stdout de hook de comando, seguindo a [regra de análise sob código de saída 0](#exit-code-0). Se o servidor nomeado não estiver conectado, ou a ferramenta retornar `isError: true`, o hook produz um erro não-bloqueador e a execução continua.

472 

473Hooks de ferramenta MCP estão disponíveis em cada evento de hook uma vez que o Claude Code tenha se conectado aos seus servidores MCP. `SessionStart` e `Setup` normalmente disparam antes dos servidores terminarem de conectar, então hooks nesses eventos devem esperar o erro "não conectado" na primeira execução.

474 581 

475Este exemplo chama a ferramenta `security_scan` no servidor MCP `my_server` após cada `Write` ou `Edit`, passando o caminho do arquivo editado:582Este exemplo chama a ferramenta `security_scan` no servidor MCP `my_server` após cada `Write` ou `Edit`, passando o caminho do arquivo editado:

476 583 


494}601}

495```602```

496 603 

604Um hook `mcp_tool` pode executar apenas uma vez que Claude Code tenha disponibilizado os servidores MCP da sessão para hooks. `SessionStart` e `Setup` podem disparar antes desse ponto:

605 

606* **No lançamento**: `SessionStart` dispara antes dos servidores estarem disponíveis, incluindo quando você lança com `--continue` ou `--resume`. Claude Code pula os hooks `mcp_tool` do evento sem chamar suas ferramentas, e o [log de debug](#debug-hooks) registra `mcp_tool hooks are not available for the 'SessionStart' hook event (no MCP client context)`.

607* **Mais tarde em uma sessão em execução**: após `/clear` ou uma compactação, `SessionStart` dispara novamente com os servidores já disponíveis, e seus hooks `mcp_tool` executam.

608* **Em `Setup`**: `Setup` sempre dispara antes dos servidores estarem disponíveis, então Claude Code pula seus hooks `mcp_tool` toda vez e registra a mesma mensagem nomeando `Setup`.

609 

610Por exemplo, esta configuração chama a ferramenta `load_context` no servidor MCP `my_server` de um hook `SessionStart` sem matcher, então se aplica a cada fonte `SessionStart`:

611 

612```json theme={null}

613{

614 "hooks": {

615 "SessionStart": [

616 {

617 "hooks": [

618 {

619 "type": "mcp_tool",

620 "server": "my_server",

621 "tool": "load_context"

622 }

623 ]

624 }

625 ]

626 }

627}

628```

629 

630Quando você executa `claude`, Claude Code pula este hook, nunca chama `load_context` e escreve a mensagem `no MCP client context` no log de debug. Execute `/clear` nessa mesma sessão e o hook executa e chama `load_context`. Um hook `type: "command"` em `SessionStart` executa no lançamento, então use um para qualquer coisa que a sessão precise de seu primeiro turno.

631 

497<h4 id="prompt-and-agent-hook-fields">632<h4 id="prompt-and-agent-hook-fields">

498 Campos de hook de prompt e agente633 Campos de hook de prompt e agente

499</h4>634</h4>


511 646 

512Use esses placeholders para referenciar scripts de hook relativos à raiz do projeto ou plugin, independentemente do diretório de trabalho quando o hook executa:647Use esses placeholders para referenciar scripts de hook relativos à raiz do projeto ou plugin, independentemente do diretório de trabalho quando o hook executa:

513 648 

514* `${CLAUDE_PROJECT_DIR}`: a raiz do projeto. Claude Code também define essa variável no ambiente de [servidores MCP stdio](/docs/pt/mcp#option-3-add-a-local-stdio-server) e servidores LSP de plugin.649* `${CLAUDE_PROJECT_DIR}`: a raiz do projeto onde a sessão começou. Claude Code também define essa variável no ambiente de [servidores MCP stdio](/docs/pt/mcp#option-3-add-a-local-stdio-server) e servidores LSP de plugin.

515* `${CLAUDE_PLUGIN_ROOT}`: o diretório de instalação do plugin, para scripts agrupados com um [plugin](/docs/pt/plugins). Muda em cada atualização de plugin.650* `${CLAUDE_PLUGIN_ROOT}`: o diretório de instalação do plugin, para scripts agrupados com um [plugin](/docs/pt/plugins). Consulte [variáveis de ambiente de plugin](/docs/pt/plugins-reference#environment-variables) para saber como o caminho se comporta entre atualizações.

516* `${CLAUDE_PLUGIN_DATA}`: o [diretório de dados persistentes](/docs/pt/plugins-reference#persistent-data-directory) do plugin, para dependências e estado que devem sobreviver a atualizações de plugin.651* `${CLAUDE_PLUGIN_DATA}`: o [diretório de dados persistentes](/docs/pt/plugins-reference#persistent-data-directory) do plugin, para dependências e estado que devem sobreviver a atualizações de plugin.

517 652 

518Prefira [forma exec](#exec-form-and-shell-form) para qualquer hook que referencie um placeholder de caminho. A forma exec passa cada elemento `args` como um argumento sem tokenização de shell, então caminhos com espaços ou caracteres especiais não precisam de aspas. Em forma shell, envolva cada placeholder em aspas duplas.653<Note>

654 **Worktrees são diferentes.** Se Claude entra em uma [worktree](/docs/pt/worktrees) durante a sessão, Claude Code mantém `${CLAUDE_PROJECT_DIR}` onde estava e passa o caminho da worktree para seus hooks de uma forma diferente:

655 

656 * **`${CLAUDE_PROJECT_DIR}` fica no lugar**: ainda aponta para a raiz do projeto onde a sessão começou, então um comando como `${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh` ainda executa o script no checkout principal.

657 * **`cwd` segue Claude**: o campo `cwd` na [entrada JSON](#common-input-fields) do hook é a raiz da worktree após Claude entrar em uma worktree, e o novo diretório após Claude executar `cd`. Leia-o quando um hook precisa saber em qual diretório Claude está trabalhando.

658</Note>

659 

660Prefira [forma exec](#exec-form-and-shell-form) para qualquer hook que referencie um placeholder de caminho. Em forma shell, envolva cada placeholder em aspas duplas.

519 661 

520<Tabs>662<Tabs>

521 <Tab title="Scripts de projeto">663 <Tab title="Scripts de projeto">


575 Hooks em skills e agentes717 Hooks em skills e agentes

576</h3>718</h3>

577 719 

578Além de arquivos de configurações e plugins, hooks podem ser definidos diretamente em [skills](/docs/pt/skills) e [subagentes](/docs/pt/sub-agents) usando frontmatter. Esses hooks são escopo do ciclo de vida do componente e apenas executam quando esse componente está ativo.720Além de arquivos de configurações e plugins, hooks podem ser definidos diretamente em [skills](/docs/pt/skills) e [subagentes](/docs/pt/sub-agents) usando frontmatter, no mesmo formato de configuração que hooks baseados em configurações. Por quanto tempo Claude Code os mantém registrados depende do componente:

579 

580Todos os eventos de hook são suportados. Para subagentes, hooks `Stop` são automaticamente convertidos para `SubagentStop` já que esse é o evento que dispara quando um subagente completa.

581 721 

582Hooks usam o mesmo formato de configuração que hooks baseados em configurações, mas são escopo da vida útil do componente e limpos quando termina.722* **Hooks de subagente**: Claude Code os executa apenas enquanto esse subagente está em execução e os remove quando termina. Claude Code converte um hook `Stop` aqui para `SubagentStop`, o evento que dispara quando um subagente completa.

723* **Hooks de skill**: Claude Code os registra quando você ou Claude invoca a skill e continua executando-os pelo resto da sessão, em turnos após o próprio turno da skill também. Para fazer Claude Code remover um hook após sua primeira execução bem-sucedida em vez disso, defina [`once: true`](#common-fields) nele.

583 724 

584Esta skill define um hook `PreToolUse` que executa um script de validação de segurança antes de cada comando `Bash`:725Esta skill define um hook `PreToolUse` que executa um script de validação de segurança antes de cada comando `Bash`:

585 726 


596---737---

597```738```

598 739 

599Agentes usam o mesmo formato em seu frontmatter YAML.740Subagentes usam o mesmo formato em seu frontmatter YAML.

741 

742Hooks de frontmatter em uma skill de projeto seguem a mesma [regra de confiança de workspace que hooks em arquivos de configurações](#workspace-trust). Claude Code os registra quando você ou Claude invoca a skill, incluindo em uma execução `-p` em uma pasta que você não confiou.

743 

744Hooks de frontmatter em um subagente de projeto executam apenas após você aceitar o [diálogo de confiança de workspace](/docs/pt/permissions#project-allow-rules-and-workspace-trust) para a pasta de onde o arquivo do agente veio. Uma sessão `-p` não conta como aceitá-lo. [O que executa antes de você confiar em uma pasta](/docs/pt/permissions#what-runs-before-you-trust-a-folder) compara isso com a regra de arquivo de configurações, e a página de subagentes lista [quais escopos estão isentos](/docs/pt/sub-agents#hooks-in-subagent-frontmatter). Antes de v2.1.218, esses hooks podiam executar de pastas que você não confiava.

600 745 

601<h3 id="the-/hooks-menu">746<h3 id="the-/hooks-menu">

602 O menu `/hooks`747 O menu `/hooks`


606 751 

607O menu exibe todos os cinco tipos de hook: `command`, `prompt`, `agent`, `http` e `mcp_tool`. Cada hook é rotulado com um prefixo `[type]` e uma fonte indicando onde foi definido:752O menu exibe todos os cinco tipos de hook: `command`, `prompt`, `agent`, `http` e `mcp_tool`. Cada hook é rotulado com um prefixo `[type]` e uma fonte indicando onde foi definido:

608 753 

609* `User`: de `~/.claude/settings.json`754* `User Settings`: de `~/.claude/settings.json`

610* `Project`: de `.claude/settings.json`755* `Project Settings`: de `.claude/settings.json`

611* `Local`: de `.claude/settings.local.json`756* `Local Settings`: de `.claude/settings.local.json`

612* `Plugin`: de `hooks/hooks.json` de um plugin757* `Plugin Hooks`: de `hooks/hooks.json` de um plugin

613* `Session`: registrado em memória para a sessão atual758* `Session Hooks`: registrado em memória para a sessão atual

614* `Built-in`: registrado internamente pelo Claude Code

615 759 

616Selecionar um hook abre uma visualização de detalhes mostrando seu evento, matcher, tipo, arquivo de origem e o comando, prompt ou URL completo. O menu é somente leitura: para adicionar, modificar ou remover hooks, edite o JSON de configurações diretamente ou peça ao Claude para fazer a mudança.760Selecionar um hook abre uma visualização de detalhes mostrando seu evento, matcher, tipo, arquivo de origem e o comando, prompt ou URL completo. O menu é somente leitura: para adicionar, modificar ou remover hooks, edite o JSON de configurações diretamente ou peça ao Claude para fazer a mudança.

617 761 


621 765 

622Para remover um hook, delete sua entrada do arquivo de configurações JSON.766Para remover um hook, delete sua entrada do arquivo de configurações JSON.

623 767 

624Para desabilitar temporariamente todos os hooks sem removê-los, defina `"disableAllHooks": true` em seu arquivo de configurações. Não há forma de desabilitar um hook individual mantendo-o na configuração.768Para desabilitar temporariamente todos os hooks sem removê-los, defina `"disableAllHooks": true` em seu arquivo de configurações. Claude Code lê o valor deixado após [precedência de configurações](/docs/pt/settings#settings-precedence) se aplicar, então um `"disableAllHooks": false` no `.claude/settings.json` de um projeto substitui um `true` em suas configurações de usuário. Para desabilitar hooks para uma execução qualquer que as configurações do projeto digam, passe `--settings '{"disableAllHooks": true}'`, que tem precedência sobre configurações de projeto e local. Não há forma de desabilitar um hook individual mantendo-o na configuração.

625 769 

626A configuração `disableAllHooks` respeita a hierarquia de configurações gerenciadas. Se um administrador configurou hooks através de configurações de política gerenciada, `disableAllHooks` definido em configurações de usuário, projeto ou local não pode desabilitar esses hooks gerenciados. Apenas `disableAllHooks` definido no nível de configurações gerenciadas pode desabilitar hooks gerenciados.770A configuração `disableAllHooks` respeita a hierarquia de configurações gerenciadas. Se um administrador configurou hooks através de configurações de política gerenciada, `disableAllHooks` definido em configurações de usuário, projeto ou local não pode desabilitar esses hooks gerenciados. Apenas `disableAllHooks` definido no nível de configurações gerenciadas pode desabilitar hooks gerenciados. Para o alcance completo de cada nível, consulte [`disableAllHooks`](/docs/pt/settings-reference#disableallhooks).

627 771 

628Edições diretas a hooks em arquivos de configurações são normalmente capturadas automaticamente pelo observador de arquivo.772Edições diretas a hooks em arquivos de configurações são normalmente capturadas automaticamente pelo observador de arquivo.

629 773 


633 777 

634Hooks de comando recebem dados JSON via stdin e comunicam resultados através de códigos de saída, stdout e stderr. Hooks HTTP recebem o mesmo JSON como corpo da solicitação POST e comunicam resultados através do corpo da resposta HTTP. Esta seção cobre campos e comportamento comuns a todos os eventos. Cada seção de evento sob [Eventos de hook](#hook-events) inclui seu esquema de entrada específico e opções de controle de decisão.778Hooks de comando recebem dados JSON via stdin e comunicam resultados através de códigos de saída, stdout e stderr. Hooks HTTP recebem o mesmo JSON como corpo da solicitação POST e comunicam resultados através do corpo da resposta HTTP. Esta seção cobre campos e comportamento comuns a todos os eventos. Cada seção de evento sob [Eventos de hook](#hook-events) inclui seu esquema de entrada específico e opções de controle de decisão.

635 779 

636No macOS e Linux, hooks de comando executam em sua própria sessão sem um terminal controlador a partir de v2.1.139. O processo de hook e qualquer processo filho não podem abrir `/dev/tty` ou enviar sequências de escape diretamente para a interface do Claude Code. Windows não tem `/dev/tty`. Para exibir uma mensagem ao usuário em qualquer plataforma, retorne [`systemMessage`](#json-output) na saída JSON. Para disparar uma notificação de desktop, definir um título de janela ou tocar o sino, retorne [`terminalSequence`](#emit-terminal-notifications) em vez disso.780No macOS e Linux, hooks de comando executam em sua própria sessão sem um terminal controlador. O processo de hook e qualquer processo filho não podem abrir `/dev/tty` ou enviar sequências de escape diretamente para a interface do Claude Code. Windows não tem `/dev/tty`.

781 

782Para exibir uma mensagem ao usuário em qualquer plataforma, retorne [`systemMessage`](#json-output) na saída JSON. Alguns eventos descartam isso ou o entregam em outro lugar, e cada [seção de evento](#hook-events) diz assim. Para disparar uma notificação de desktop, definir um título de janela ou tocar o sino, retorne [`terminalSequence`](#emit-terminal-notifications) em vez disso.

637 783 

638<h3 id="common-input-fields">784<h3 id="common-input-fields">

639 Campos de entrada comuns785 Campos de entrada comuns


642Eventos de hook recebem esses campos como JSON, além de campos específicos do evento documentados em cada seção [evento de hook](#hook-events). Para hooks de comando, este JSON chega via stdin. Para hooks HTTP, chega como corpo da solicitação POST.788Eventos de hook recebem esses campos como JSON, além de campos específicos do evento documentados em cada seção [evento de hook](#hook-events). Para hooks de comando, este JSON chega via stdin. Para hooks HTTP, chega como corpo da solicitação POST.

643 789 

644| Campo | Descrição |790| Campo | Descrição |

645| :---------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |791| :---------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

646| `session_id` | Identificador de sessão atual |792| `session_id` | Identificador de sessão atual |

647| `prompt_id` | UUID identificando o prompt do usuário sendo processado atualmente. Corresponde ao [atributo `prompt.id` em eventos OpenTelemetry](/docs/pt/monitoring-usage#event-correlation-attributes), para que você possa correlacionar saída de hook com telemetria para um único prompt. Ausente até a primeira entrada do usuário. Requer Claude Code v2.1.196 ou posterior |793| `prompt_id` | UUID identificando o prompt do usuário sendo processado atualmente. Corresponde ao [atributo `prompt.id` em eventos OpenTelemetry](/docs/pt/monitoring-usage#event-correlation-attributes), para que você possa correlacionar saída de hook com telemetria para um único prompt. Ausente até a primeira entrada do usuário. Requer Claude Code v2.1.196 ou posterior |

648| `transcript_path` | Caminho para JSON de conversa. O arquivo de transcrição é escrito de forma assíncrona e pode ficar atrás da conversa na memória, portanto pode não incluir ainda as mensagens mais recentes da rodada atual quando um hook dispara. Hooks que precisam do texto final do assistente da rodada atual devem usar `last_assistant_message` em [Stop](#stop) e [SubagentStop](#subagentstop) em vez de ler a transcrição |794| `transcript_path` | Caminho para JSON de conversa. O arquivo de transcrição é escrito de forma assíncrona e pode ficar atrás da conversa na memória, portanto pode não incluir ainda as mensagens mais recentes da rodada atual quando um hook dispara. Hooks que precisam do texto final do assistente da rodada atual devem usar `last_assistant_message` em [Stop](#stop) e [SubagentStop](#subagentstop) em vez de ler a transcrição |

649| `cwd` | Diretório de trabalho atual quando o hook é invocado |795| `cwd` | Diretório de trabalho atual quando o hook é invocado |

796| `scratchpad_dir` | Caminho para o diretório scratchpad da sessão, onde Claude mantém arquivos de trabalho temporários. Ausente quando a sessão não tem scratchpad ou o diretório temporário não está disponível. Requer Claude Code v2.1.257 ou posterior |

650| `permission_mode` | [Modo de permissão](/docs/pt/permissions#permission-modes) atual: `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, `"dontAsk"` ou `"bypassPermissions"`. O modo rotulado **Manual** chega como `"default"`, nunca como `"manual"`, portanto scripts que correspondem a `"default"` continuam funcionando. Nem todos os eventos recebem este campo. Verifique o exemplo JSON em cada seção [evento de hook](#hook-events) |797| `permission_mode` | [Modo de permissão](/docs/pt/permissions#permission-modes) atual: `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, `"dontAsk"` ou `"bypassPermissions"`. O modo rotulado **Manual** chega como `"default"`, nunca como `"manual"`, portanto scripts que correspondem a `"default"` continuam funcionando. Nem todos os eventos recebem este campo. Verifique o exemplo JSON em cada seção [evento de hook](#hook-events) |

651| `effort` | Objeto com um campo `level` contendo o [nível de esforço](/docs/pt/model-config#adjust-effort-level) ativo para a rodada: `"low"`, `"medium"`, `"high"`, `"xhigh"` ou `"max"`. Se o esforço solicitado do modelo exceder o que o modelo atual suporta, este é o nível reduzido que o modelo realmente usou. Ultracode não é um nível distinto e é relatado como `"xhigh"`. O objeto corresponde ao campo `effort` da [linha de status](/docs/pt/statusline#available-data). Presente para eventos que disparam dentro de um contexto de uso de ferramenta, como `PreToolUse`, `PostToolUse`, `Stop` e `SubagentStop`, quando o modelo atual suporta o parâmetro de esforço. O nível também está disponível para comandos de hook e a ferramenta Bash como a variável de ambiente `$CLAUDE_EFFORT`. |798| `effort` | Objeto com um campo `level` contendo o [nível de esforço](/docs/pt/model-config#adjust-effort-level) em vigor quando o hook é executado: `"low"`, `"medium"`, `"high"`, `"xhigh"` ou `"max"`. Se você definir um nível que o modelo ativo não suporta, `level` relata o nível que Claude Code executou em vez disso; [Ajustar nível de esforço](/docs/pt/model-config#adjust-effort-level) diz como ele escolhe esse nível. Ultracode não é um nível distinto e é relatado como `"xhigh"`. O objeto corresponde ao campo `effort` da [linha de status](/docs/pt/statusline#available-data). Presente para eventos que disparam dentro de um contexto de uso de ferramenta, como `PreToolUse`, `PostToolUse`, `Stop` e `SubagentStop`, quando o modelo atual suporta o parâmetro de esforço. O nível também está disponível para comandos de hook e a ferramenta Bash como a variável de ambiente `$CLAUDE_EFFORT`. |

652| `hook_event_name` | Nome do evento que disparou |799| `hook_event_name` | Nome do evento que disparou |

653 800 

654Ao executar com `--agent` ou dentro de um subagente, dois campos adicionais são incluídos:801Ao executar com `--agent` ou dentro de um subagente, dois campos adicionais são incluídos:

655 802 

656| Campo | Descrição |803| Campo | Descrição |

657| :----------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |804| :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

658| `agent_id` | Identificador único para o subagente. Presente apenas quando o hook dispara dentro de uma chamada de subagente. Use isso para distinguir chamadas de hook de subagente de chamadas de thread principal. |805| `agent_id` | Identificador único para o subagente. Presente apenas quando o hook dispara dentro de uma chamada de subagente. Use isso para distinguir chamadas de hook de subagente de chamadas de thread principal. |

659| `agent_type` | Nome do agente (por exemplo, `"Explore"` ou `"security-reviewer"`). Presente quando a sessão usa `--agent` ou o hook dispara dentro de um subagente. Para subagentes, o tipo do subagente tem precedência sobre o valor `--agent` da sessão. Para [subagentes personalizados](/docs/pt/sub-agents), este é o campo `name` do frontmatter do agente, não o nome do arquivo. Para subagentes fornecidos por um [plugin](/docs/pt/plugins), este é o identificador com escopo de plugin como `my-plugin:reviewer`, não o nome de frontmatter simples. Consulte [SubagentStart](#subagentstart) para saber como escrever um matcher contra um nome com escopo de plugin. |806| `agent_type` | Nome do agente (por exemplo, `"Explore"` ou `"security-reviewer"`). Presente quando a sessão usa `--agent` ou o hook dispara dentro de um subagente. Para subagentes, o tipo do subagente tem precedência sobre o valor `--agent` da sessão. Consulte [SubagentStart](#subagentstart) para os valores que subagentes personalizados e de plugin relatam e como escrever um matcher contra um nome com escopo de plugin. |

807 

808Apenas hooks [`SessionStart`](#sessionstart) podem receber um campo `model`, e Claude Code nem sempre o inclui. Hooks [`PreModelSwitch`](#premodelswitch) e [`PostModelSwitch`](#postmodelswitch) recebem `from_model` e `to_model` em vez disso, portanto use um hook PostModelSwitch para acompanhar o modelo conforme ele muda durante uma sessão.

660 809 

661Apenas hooks [`SessionStart`](#sessionstart) podem receber um campo `model`, e não é garantido que esteja presente. Não há variável de ambiente `$CLAUDE_MODEL`. Um processo de hook herda o ambiente pai, então pode ler `$ANTHROPIC_MODEL` se você defini-lo em seu shell, mas esse valor não muda quando você alterna modelos com `/model` durante uma sessão. Um conjunto de variáveis não é herdado: Claude Code [remove variáveis exportadoras `OTEL_*` de cada subprocesso que spawna](/docs/pt/monitoring-usage#administrator-configuration), incluindo hooks.810Não há variável de ambiente `$CLAUDE_MODEL`. O hook pode ler `$ANTHROPIC_MODEL` se você defini-lo em seu shell, mas esse valor não muda quando você alterna modelos com `/model` durante uma sessão.

811 

812Um processo de hook herda o ambiente pai, além das variáveis exportadoras `OTEL_*` que Claude Code [remove de cada subprocesso que spawna](/docs/pt/monitoring-usage#administrator-configuration) e, quando [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/pt/env-vars#variables) é definido como `1`, as variáveis que ele remove.

662 813 

663Por exemplo, um hook `PreToolUse` para um comando Bash recebe isso em stdin:814Por exemplo, um hook `PreToolUse` para um comando Bash recebe isso em stdin:

664 815 


668 "prompt_id": "550e8400-e29b-41d4-a716-446655440000",819 "prompt_id": "550e8400-e29b-41d4-a716-446655440000",

669 "transcript_path": "/home/user/.claude/projects/.../transcript.jsonl",820 "transcript_path": "/home/user/.claude/projects/.../transcript.jsonl",

670 "cwd": "/home/user/my-project",821 "cwd": "/home/user/my-project",

822 "scratchpad_dir": "/tmp/claude-1000/-home-user-my-project/abc123/scratchpad",

671 "permission_mode": "default",823 "permission_mode": "default",

672 "hook_event_name": "PreToolUse",824 "hook_event_name": "PreToolUse",

673 "tool_name": "Bash",825 "tool_name": "Bash",

674 "tool_input": {826 "tool_input": {

675 "command": "npm test"827 "command": "npm test",

676 }828 "description": "Run test suite",

829 "timeout": 120000,

830 "run_in_background": false

831 },

832 "tool_use_id": "toolu_01ABC123..."

677}833}

678```834```

679 835 

680Os campos `tool_name` e `tool_input` são específicos do evento. Cada seção [evento de hook](#hook-events) documenta os campos adicionais para esse evento.836Os campos `tool_name`, `tool_input` e `tool_use_id` são específicos do evento. Cada seção [evento de hook](#hook-events) documenta os campos adicionais para esse evento.

681 837 

682<h3 id="exit-code-output">838<h3 id="exit-code-output">

683 Saída de código de saída839 Saída de código de saída

684</h3>840</h3>

685 841 

686O código de saída do seu comando de hook diz ao Claude Code se a ação deve prosseguir, ser bloqueada ou ser ignorada.842O código de saída do seu comando de hook diz ao Claude Code se a ação deve prosseguir, ser bloqueada ou ser ignorada. O código de saída não atua sozinho. Claude Code lê [campos de saída JSON](#json-output) de stdout em cada código de saída, não apenas 0, e para eventos que usam o modelo de decisão padrão, um objeto analisado que passa na validação de esquema entra em vigor ao lado do código. O bloqueio da saída 2 é o único resultado que JSON não pode substituir.

843 

844Duas tabelas possuem as exceções por evento: [Comportamento de código de saída 2 por evento](#exit-code-2-behavior-per-event) diz o que códigos de saída fazem para cada evento, e [Controle de decisão](#decision-control) diz quais campos de decisão cada evento honra. Campos universais como `systemMessage` funcionam em muitos eventos e são listados na tabela [Saída JSON](#json-output).

845 

846<h4 id="exit-code-0">

847 Código de saída 0

848</h4>

849 

850Saída 0 significa sucesso, e é o código de saída pretendido quando você imprime JSON para controle estruturado.

851 

852Para a maioria dos eventos, Claude Code escreve stdout no log de debug e não o mostra na transcrição. As exceções são `UserPromptSubmit`, `UserPromptExpansion`, `SessionStart` e `PostModelSwitch`, onde Claude Code adiciona stdout em texto simples como contexto que Claude pode ver e agir.

687 853 

688**Saída 0** significa sucesso. O Claude Code analisa stdout para [campos de saída JSON](#json-output). A saída JSON é apenas processada na saída 0. Para a maioria dos eventos, stdout é escrito no log de debug, mas não mostrado na transcrição. As exceções são `UserPromptSubmit`, `UserPromptExpansion` e `SessionStart`, onde stdout é adicionado como contexto que Claude pode ver e agir.854Se Claude Code lê seu stdout como [saída JSON](#json-output) ou como texto simples depende de como ele começa e termina, ignorando espaço em branco ao redor:

689 855 

690**Saída 2** significa um erro bloqueador. O Claude Code ignora stdout e qualquer JSON nele. Em vez disso, texto de stderr é alimentado de volta ao Claude como uma mensagem de erro. O efeito depende do evento: `PreToolUse` bloqueia a chamada da ferramenta, `UserPromptSubmit` rejeita o prompt e assim por diante. Consulte [comportamento de código de saída 2](#exit-code-2-behavior-per-event) para a lista completa.856* **Começa com `{` e termina com `}`**: Claude Code o analisa como JSON. Quando a saída é duas ou mais linhas que cada uma analisa como JSON por conta própria, e nenhuma linha é um objeto [saída JSON](#json-output) que define um campo, Claude Code trata toda a saída como texto simples. Quando uma dessas linhas define um campo, toda a saída é uma falha de análise, descrita abaixo.

857* **Começa com `{` mas não termina com `}`**: Claude Code o trata como texto simples.

858* **Começa com qualquer outra coisa**: Claude Code o trata como texto simples, um array JSON ou uma string JSON entre aspas incluída.

691 859 

692**Qualquer outro código de saída** é um erro não-bloqueador para a maioria dos eventos de hook. A transcrição mostra um aviso `<hook name> hook error` seguido pela primeira linha de stderr, para que você possa identificar a causa sem `--debug`. A execução continua e o stderr completo é escrito no log de debug.860Para eventos que usam o modelo de decisão padrão, saída 0 com um objeto analisado que falha na validação de esquema é um erro não-bloqueador: a ação prossegue, e a transcrição mostra um aviso `<hook name> hook error` com a mensagem de validação. O mesmo acontece em qualquer código de saída diferente de 2, enquanto [saída 2 ainda bloqueia](#exit-code-2).

693 861 

694Por exemplo, um script de comando de hook que bloqueia comandos Bash perigosos:862Para eventos que usam o modelo de decisão padrão, quando Claude Code tenta analisar seu stdout como JSON e não consegue, ele relata um erro não-bloqueador em cada código de saída diferente de 2. A transcrição mostra um aviso `<hook name> hook error` com a mensagem de análise. Nos eventos que adicionam stdout em texto simples como contexto, Claude Code não adiciona o texto. Antes de v2.1.248, Claude Code tratava esse stdout como texto simples.

863 

864Stderr de um hook que sai 0 vai apenas para o log de debug, nunca para a transcrição, e Claude nunca vê. Para lê-lo você mesmo, ative [debug logging](#debug-hooks). Para exibir um aviso para Claude de um hook `PostToolUse` ou `PostToolUseFailure`, saia 2 em vez disso para que [Claude veja o stderr](#exit-code-2-behavior-per-event) mesmo que a ferramenta já tenha executado.

865 

866<h4 id="exit-code-2">

867 Código de saída 2

868</h4>

869 

870Saída 2 significa um erro bloqueador. Em [eventos que podem bloquear](#exit-code-2-behavior-per-event), saída 2 bloqueia se você imprime JSON ou não: até mesmo um JSON `permissionDecision` de `"allow"` não pode substituir. Claude Code ainda lê qualquer [saída JSON](#json-output) válida em stdout. Em `Elicitation` e `ElicitationResult`, o `hookSpecificOutput` de um hook exit-2 é ignorado.

871 

872A mensagem de bloqueio é a razão da decisão de bloqueio do seu JSON quando faz uma, e seu texto stderr caso contrário. O que o bloqueio faz varia por evento: `PreToolUse` bloqueia a chamada da ferramenta, `UserPromptSubmit` rejeita o prompt, e assim por diante. [Comportamento de código de saída 2 por evento](#exit-code-2-behavior-per-event) lista o efeito para cada evento, e cada seção de evento diz onde a mensagem vai.

873 

874Um hook que sai 2 enquanto imprime JSON que falha na validação de esquema [saída JSON](#json-output) ainda bloqueia: Claude Code usa stderr como a razão de bloqueio e registra a falha de validação no log de debug. Antes de v2.1.214, Claude Code tratava essa combinação como um erro não-bloqueador e a ação prosseguia.

875 

876Este script bloqueia comandos `rm` saindo 2 e deixa cada outro comando para o fluxo de permissão normal:

695 877 

696```bash theme={null}878```bash theme={null}

697#!/bin/bash879#!/bin/bash

698# Lê entrada JSON de stdin, verifica o comando880# Lê entrada JSON de stdin, verifica o comando

699command=$(jq -r '.tool_input.command' < /dev/stdin)881input=$(cat)

882command=$(jq -r '.tool_input.command' <<<"$input")

700 883 

701if [[ "$command" == rm* ]]; then884if [[ "$command" == rm* ]]; then

702 echo "Blocked: rm commands are not allowed" >&2885 echo "Blocked: rm commands are not allowed" >&2


706exit 0 # Sem decisão: o fluxo de permissão normal se aplica889exit 0 # Sem decisão: o fluxo de permissão normal se aplica

707```890```

708 891 

892<h4 id="other-exit-codes">

893 Outros códigos de saída

894</h4>

895 

896Qualquer outro código de saída não bloqueia por conta própria para a maioria dos eventos de hook. O que acontece depende de seu stdout:

897 

898* Com um objeto analisado que passa na validação de esquema, para eventos que usam o modelo de decisão padrão, Claude Code ignora o código de saída e apenas o JSON decide o resultado:

899 * Cada campo que o evento suporta é honrado, incluindo `permissionDecision`, `additionalContext`, `updatedInput` e `systemMessage`, e o hook não é relatado como um erro.

900 * [Controle de decisão](#decision-control) lista os campos de decisão por evento; campos universais como `systemMessage` seguem a tabela [Saída JSON](#json-output).

901* Com um objeto analisado que falha na validação de esquema, para eventos que usam o modelo de decisão padrão, é o mesmo erro não-bloqueador que [na saída 0](#exit-code-0): a ação prossegue, e o aviso `<hook name> hook error` carrega a mensagem de validação.

902* Com stdout que Claude Code [tenta analisar como JSON](#exit-code-0) e não consegue, Claude Code relata o mesmo erro não-bloqueador que na saída 0 para eventos que usam o modelo de decisão padrão. A ação prossegue, e o aviso carrega a mensagem de análise.

903* Com stdout que Claude Code [trata como texto simples](#exit-code-0), ou com stdout vazio, é um erro não-bloqueador para a maioria dos eventos de hook: a ação prossegue, e a transcrição mostra um aviso `<hook name> hook error` seguido pela primeira linha de stderr, prefixado com `Failed with non-blocking status code:`. Para capturar o stderr completo, ative [debug logging](#debug-hooks).

904 

905Eventos fora do modelo de decisão padrão mantêm suas próprias linhas na [tabela por evento](#exit-code-2-behavior-per-event): `WorktreeCreate` falha na criação em qualquer saída não-zero não importa o que seu JSON diz, e eventos que descartam saída de hook inteiramente, como `StopFailure`, ignoram seu JSON em cada código de saída, além de campos de efeito colateral como `terminalSequence`, que ainda disparam.

906 

907Um hook que não consegue iniciar cai no mesmo balde não-bloqueador. Quando o caminho do script não existe ou não é executável, o shell sai com um código como 127 e você vê o mesmo aviso com a mensagem do interpretador, por exemplo `Failed with non-blocking status code: /bin/sh: /path/to/hook.sh: No such file or directory`. Para a maioria dos eventos de hook, a ação prossegue. Quando você configura um hook de política, observe este aviso em sua primeira execução: um caminho digitado incorretamente em `settings.json` deixa o portão silenciosamente desabilitado.

908 

709<Warning>909<Warning>

710 Para a maioria dos eventos de hook, apenas o código de saída 2 bloqueia a ação. O Claude Code trata o código de saída 1 como um erro não-bloqueador e prossegue com a ação, mesmo que 1 seja o código de falha Unix convencional. Se seu hook se destina a impor uma política, use `exit 2`. A exceção é `WorktreeCreate`, onde qualquer código de saída não-zero aborta a criação de worktree.910 Para a maioria dos eventos de hook, código de saída 2 é o único código de saída que bloqueia apenas através do código. Sem JSON válido em stdout, Claude Code trata código de saída 1 como um erro não-bloqueador e prossegue com a ação, mesmo que 1 seja o código de falha Unix convencional. Se seu hook se destina a impor uma política, use `exit 2`. Os eventos de worktree diferem: qualquer código de saída não-zero de `WorktreeCreate` aborta a criação de worktree, e qualquer código de saída não-zero de `WorktreeRemove` faz a remoção de worktree falhar se o diretório ainda existir depois.

711</Warning>911</Warning>

712 912 

913<h4 id="timeouts">

914 Timeouts

915</h4>

916 

917Além de um hook de comando que você executa com [`async: true`](#run-hooks-in-the-background), Claude Code cancela um hook `command`, `http` ou `mcp_tool` que atinge seu [`timeout`](#common-fields), descartando a saída do hook, portanto na maioria dos eventos um hook expirado não renderiza decisão.

918 

919Em [`PreModelSwitch`](#premodelswitch), um hook cancelado em seu timeout bloqueia a mudança de modelo. Em `PreToolUse`, as duas famílias de hook diferem:

920 

921* Um hook `command`, `http` ou `mcp_tool` expirado não bloqueia a chamada da ferramenta. A chamada continua através do [fluxo de permissão](/docs/pt/permissions) normal, portanto não conte com um hook travado para agir como um portão.

922* Um hook de callback [Agent SDK](/docs/pt/agent-sdk/hooks) que excede seu timeout [bloqueia a chamada da ferramenta](#pretooluse).

923 

713<h4 id="exit-code-2-behavior-per-event">924<h4 id="exit-code-2-behavior-per-event">

714 Comportamento de código de saída 2 por evento925 Comportamento de código de saída 2 por evento

715</h4>926</h4>


717Código de saída 2 é a forma de um hook sinalizar "pare, não faça isso". O efeito depende do evento, porque alguns eventos representam ações que podem ser bloqueadas (como uma chamada de ferramenta que ainda não aconteceu) e outros representam coisas que já aconteceram ou não podem ser prevenidas.928Código de saída 2 é a forma de um hook sinalizar "pare, não faça isso". O efeito depende do evento, porque alguns eventos representam ações que podem ser bloqueadas (como uma chamada de ferramenta que ainda não aconteceu) e outros representam coisas que já aconteceram ou não podem ser prevenidas.

718 929 

719| Evento de hook | Pode bloquear? | O que acontece na saída 2 |930| Evento de hook | Pode bloquear? | O que acontece na saída 2 |

720| :-------------------- | :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- |931| :-------------------- | :------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

721| `PreToolUse` | Sim | Bloqueia a chamada da ferramenta |932| `PreToolUse` | Sim | Bloqueia a chamada da ferramenta |

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

723| `UserPromptSubmit` | Sim | Bloqueia o processamento de prompt e apaga o prompt |934| `UserPromptSubmit` | Sim | Bloqueia o processamento de prompt e apaga o prompt |

724| `UserPromptExpansion` | Sim | Bloqueia a expansão |935| `UserPromptExpansion` | Sim | Bloqueia a expansão |

725| `Stop` | Sim | Previne Claude de parar, continua a conversa |936| `Stop` | Sim | Previne Claude de parar, continua a conversa |


728| `TaskCreated` | Sim | Reverte a criação de tarefa |939| `TaskCreated` | Sim | Reverte a criação de tarefa |

729| `TaskCompleted` | Sim | Previne a tarefa de ser marcada como concluída |940| `TaskCompleted` | Sim | Previne a tarefa de ser marcada como concluída |

730| `ConfigChange` | Sim | Bloqueia a mudança de configuração de entrar em efeito (exceto `policy_settings`) |941| `ConfigChange` | Sim | Bloqueia a mudança de configuração de entrar em efeito (exceto `policy_settings`) |

731| `StopFailure` | Não | Saída e código de saída são ignorados |942| `StopFailure` | Não | Saída e código de saída são ignorados, exceto `terminalSequence` |

732| `PostToolUse` | Não | Mostra stderr ao Claude; a ferramenta já executou |943| `PostToolUse` | Não | Mostra stderr ao Claude; a ferramenta já executou |

733| `PostToolUseFailure` | Não | Mostra stderr ao Claude; a ferramenta já falhou |944| `PostToolUseFailure` | Não | Mostra stderr ao Claude; a ferramenta já falhou |

734| `PostToolBatch` | Sim | Para o loop agentic antes da próxima chamada de modelo |945| `PostToolBatch` | Sim | Para o loop agentic antes da próxima chamada de modelo |

735| `PermissionDenied` | Não | Código de saída e stderr são ignorados porque a negação já ocorreu. Use JSON `hookSpecificOutput.retry: true` para dizer ao modelo que pode tentar novamente |946| `PermissionDenied` | Não | Código de saída e stderr são ignorados porque a negação já ocorreu. Use JSON `hookSpecificOutput.retry: true` para dizer ao modelo que pode tentar novamente; Claude Code ignora `retry: true` para [negações sem veredicto](#permissiondenied-decision-control) |

736| `Notification` | Não | Mostra stderr apenas ao usuário |947| `Notification` | Não | Código de saída e stderr são ignorados |

737| `SubagentStart` | Não | Mostra stderr apenas ao usuário |948| `SubagentStart` | Não | Mostra stderr apenas ao usuário |

738| `SessionStart` | Não | Mostra stderr apenas ao usuário |949| `SessionStart` | Não | Mostra stderr apenas ao usuário |

739| `Setup` | Não | Mostra stderr apenas ao usuário |950| `Setup` | Não | Código de saída e stderr são ignorados |

740| `SessionEnd` | Não | Mostra stderr apenas ao usuário |951| `SessionEnd` | Não | Mostra stderr apenas ao usuário |

741| `CwdChanged` | Não | Mostra stderr apenas ao usuário |952| `CwdChanged` | Não | Mostra stderr apenas ao usuário |

953| `DirectoryAdded` | Não | Stderr vai para o log de debug; o diretório já foi adicionado |

742| `FileChanged` | Não | Mostra stderr apenas ao usuário |954| `FileChanged` | Não | Mostra stderr apenas ao usuário |

743| `PreCompact` | Sim | Bloqueia compactação |955| `PreCompact` | Sim | Bloqueia compactação |

744| `PostCompact` | Não | Mostra stderr apenas ao usuário |956| `PostCompact` | Não | Mostra stderr apenas ao usuário |

957| `PreModelSwitch` | Sim | Bloqueia a mudança de modelo e mostra stderr ao usuário |

958| `PostModelSwitch` | Não | Mostra stderr apenas ao usuário; o modelo já mudou |

745| `Elicitation` | Sim | Nega a elicitação |959| `Elicitation` | Sim | Nega a elicitação |

746| `ElicitationResult` | Sim | Bloqueia a resposta (ação se torna decline) |960| `ElicitationResult` | Sim | Bloqueia a resposta (ação se torna decline) |

747| `WorktreeCreate` | Sim | Qualquer código de saída não-zero causa falha na criação de worktree |961| `WorktreeCreate` | Sim | Qualquer código de saída não-zero causa falha na criação de worktree |

748| `WorktreeRemove` | Não | Falhas são registradas apenas em modo debug |962| `WorktreeRemove` | Sim | Qualquer código de saída não-zero causa falha na remoção de worktree se o diretório ainda existir depois. Consulte [WorktreeRemove](#worktreeremove) para o que acontece com o diretório |

749| `InstructionsLoaded` | Não | Código de saída é ignorado |963| `InstructionsLoaded` | Não | Código de saída é ignorado |

750| `MessageDisplay` | Não | O texto original é exibido |964| `MessageDisplay` | Não | O texto original é exibido |

751 965 

752Para `SessionStart`, `Setup` e `SubagentStart`, o stderr de código de saída 2 é renderizado na transcrição como um aviso `<hook name> hook error`, da mesma forma que um [erro não-bloqueador](#exit-code-output) faz. Claude não vê isso, e a sessão ou subagente prossegue. Para `SubagentStart`, o aviso aparece na própria transcrição do subagente, não na conversa pai.966Para `SessionStart`, `SubagentStart` e `PostModelSwitch`, Claude Code renderiza o stderr de código de saída 2 na transcrição como um aviso `<hook name> hook error`, da mesma forma que renderiza um [erro não-bloqueador](#exit-code-output). Claude não vê, e a sessão ou subagente prossegue. Para `SubagentStart`, o aviso aparece na própria transcrição do subagente, não na conversa pai.

753 

754A partir do Claude Code v2.1.199, `SessionStart`, `Setup` e `SubagentStart` mostram stderr de código de saída 2 na transcrição. Versões anteriores o escreviam apenas no log de debug.

755 967 

756<h3 id="http-response-handling">968<h3 id="http-response-handling">

757 Tratamento de resposta HTTP969 Tratamento de resposta HTTP

758</h3>970</h3>

759 971 

760Hooks HTTP usam códigos de status HTTP e corpos de resposta em vez de códigos de saída e stdout:972Hooks HTTP usam códigos de status HTTP e corpos de resposta em vez de códigos de saída e stdout. Os resultados abaixo se aplicam à maioria dos eventos; um evento com seu próprio contrato de falha na [tabela por evento](#exit-code-2-behavior-per-event), como `WorktreeCreate`, aplica esse contrato a um hook HTTP falhado também:

761 973 

762* **2xx com corpo vazio**: sucesso, equivalente a código de saída 0 sem saída974* **2xx com corpo vazio**: sucesso, equivalente a código de saída 0 sem saída

763* **2xx com corpo de texto simples**: sucesso, o texto é adicionado como contexto975* **2xx com corpo de objeto JSON**: analisado usando o mesmo esquema [saída JSON](#json-output) que hooks de comando. Um corpo que falha na validação de esquema é um erro não-bloqueador

764* **2xx com corpo JSON**: sucesso, analisado usando o mesmo esquema [saída JSON](#json-output) que hooks de comando976* **2xx com qualquer outro corpo, como texto simples**: erro não-bloqueador, tratado da mesma forma que um status não-2xx. Claude Code não adiciona o texto ao contexto de Claude

765* **Status não-2xx**: erro não-bloqueador, execução continua977* **Status não-2xx**: erro não-bloqueador, execução continua

766* **Falha de conexão ou timeout**: erro não-bloqueador, execução continua978* **Falha de conexão**: erro não-bloqueador, execução continua

979* **Timeout**: o hook é cancelado, conforme descrito em [Timeouts](#timeouts)

767 980 

768Diferentemente de hooks de comando, hooks HTTP não podem sinalizar um erro bloqueador apenas através de códigos de status. Para bloquear uma chamada de ferramenta ou negar uma permissão, retorne uma resposta 2xx com um corpo JSON contendo os campos de decisão apropriados.981Diferentemente de hooks de comando, hooks HTTP não podem sinalizar um erro bloqueador apenas através de códigos de status. Para bloquear uma chamada de ferramenta ou negar uma permissão, retorne uma resposta 2xx com um corpo JSON contendo os campos de decisão apropriados.

769 982 


771 Saída JSON984 Saída JSON

772</h3>985</h3>

773 986 

774Códigos de saída permitem você bloquear ou ficar em silêncio, mas saída JSON oferece controle mais granular. Em vez de sair com código 2 para bloquear, saia 0 e imprima um objeto JSON em stdout. O Claude Code lê campos específicos desse JSON para controlar comportamento, incluindo [controle de decisão](#decision-control) para bloquear, permitir ou escalar para o usuário.987Códigos de saída permitem você bloquear ou ficar em silêncio, mas saída JSON oferece controle mais granular. Em vez de sair com código 2 para bloquear, saia 0 e imprima um objeto JSON em stdout. Claude Code lê campos específicos desse JSON para controlar comportamento, incluindo [controle de decisão](#decision-control) para bloquear, permitir ou escalar para o usuário.

775 988 

776<Note>989<Note>

777 Você deve escolher uma abordagem por hook, não ambas: ou use códigos de saída sozinhos para sinalizar, ou saia 0 e imprima JSON para controle estruturado. O Claude Code apenas processa JSON na saída 0. Se você sair 2, qualquer JSON é ignorado.990 Escolha uma abordagem por hook: ou use códigos de saída sozinhos para sinalizar, ou saia 0 e imprima JSON para controle estruturado. Se você misturar, saída 2 mantém seu [efeito de bloqueio](#exit-code-2-behavior-per-event), e Claude Code ainda lê os campos JSON, com a exceção de elicitação única anotada em [Código de saída 2](#exit-code-2).

778</Note>991</Note>

779 992 

780O stdout do seu hook deve conter apenas o objeto JSON. Se seu perfil shell imprime texto na inicialização, pode interferir com análise JSON. Consulte [Validação JSON falhou](/docs/pt/hooks-guide#json-validation-failed) no guia de troubleshooting.993O stdout do seu hook deve conter apenas o objeto JSON. Se seu perfil shell imprime texto na inicialização, pode interferir com análise JSON. Consulte [Hook JSON não tem efeito](/docs/pt/hooks-guide#hook-json-has-no-effect) no guia de troubleshooting.

994 

995As strings de saída de hook `additionalContext`, `systemMessage` e `initialUserMessage`, e seu stdout simples, são limitadas a 10.000 caracteres:

781 996 

782Saídas de hook, incluindo `additionalContext`, `systemMessage` e stdout simples, são limitadas a 10.000 caracteres. Saída que excede este limite é salva em um arquivo e substituída por uma visualização e caminho de arquivo, da mesma forma que resultados de ferramenta grandes são tratados.997* **Escopo**: Claude Code mede cada string por conta própria, mesmo quando vários hooks executam para o mesmo evento. Para saída JSON, cada campo é medido separadamente; stdout simples é medido como um todo.

998* **Acima do limite**: Claude Code salva a saída em um arquivo no diretório de sessão e a substitui pelo caminho do arquivo e uma visualização de até os primeiros 2.000 caracteres. Um resultado Bash grande válido é tratado da mesma forma, descrito em [Limites de saída](/docs/pt/tools-reference#output-limits). Diferentemente desse teto Bash, este limite não tem configuração ou variável de ambiente para aumentá-lo.

999* **Lendo o arquivo**: Claude Code não pede a Claude para ler o arquivo, portanto mantenha qualquer coisa que Claude sempre deva ver dentro do limite.

783 1000 

784O objeto JSON suporta três tipos de campos:1001O objeto JSON suporta três tipos de campos:

785 1002 

786* **Campos universais** como `continue` funcionam em todos os eventos. Esses são listados na tabela abaixo.1003* **Campos universais** como `continue` são listados na tabela abaixo. Cada evento os aceita, mas alguns eventos os descartam ou entregam `systemMessage` em outro lugar que não a transcrição. Cada seção de evento diz assim. `terminalSequence` funciona nesses eventos também, com as exceções listadas em [Emitir notificações de terminal](#emit-terminal-notifications).

787* **`decision` e `reason` de nível superior** são usados por alguns eventos para bloquear ou fornecer feedback.1004* **`decision` e `reason` de nível superior** são usados por alguns eventos para bloquear ou fornecer feedback.

788* **`hookSpecificOutput`** é um objeto aninhado para eventos que precisam de controle mais rico. Requer um campo `hookEventName` definido para o nome do evento.1005* **`hookSpecificOutput`** é um objeto aninhado para eventos que precisam de controle mais rico. Requer um campo `hookEventName` definido para o nome do evento.

789 1006 

790| Campo | Padrão | Descrição |1007| Campo | Padrão | Descrição |

791| :----------------- | :------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1008| :----------------- | :------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

792| `continue` | `true` | Se `false`, Claude para de processar inteiramente após o hook executar. Tem precedência sobre qualquer campo de decisão específico do evento |1009| `continue` | `true` | Se `false`, Claude para de processar inteiramente após o hook executar. Tem precedência sobre qualquer campo de decisão específico do evento |

793| `stopReason` | nenhum | Mensagem mostrada ao usuário quando `continue` é `false`. Não mostrada ao Claude |1010| `stopReason` | nenhum | Mensagem mostrada ao usuário quando `continue` é `false`. Fica na conversa, portanto Claude a vê se a conversa continuar |

794| `suppressOutput` | `false` | Se `true`, oculta stdout do hook da transcrição. Stdout ainda aparece no log de debug |1011| `suppressOutput` | `false` | Não tem efeito: Claude Code aceita o campo mas não age sobre ele. O stdout de um hook bem-sucedido nunca é mostrado na transcrição e é registrado no log de debug |

795| `systemMessage` | nenhum | Mensagem de aviso mostrada ao usuário |1012| `systemMessage` | nenhum | Mensagem de aviso mostrada ao usuário. Em [Agent SDK](/docs/pt/agent-sdk/overview) e saída [`--output-format stream-json`](/docs/pt/headless), pode chegar como um [`SDKInformationalMessage`](/docs/pt/agent-sdk/typescript#sdkinformationalmessage) |

796| `terminalSequence` | nenhum | Uma sequência de escape de terminal para Claude Code emitir em seu nome, como uma notificação de desktop, título de janela ou sino. Restrito a OSC `0`/`1`/`2`/`9`/`99`/`777` e BEL. Se o valor contiver algo fora da lista de permissões, o campo é ignorado. Use isso em vez de escrever para `/dev/tty`, que não está disponível para hooks |1013| `terminalSequence` | nenhum | Uma sequência de escape de terminal para Claude Code emitir em seu nome, como uma notificação de desktop, título de janela ou sino. Restrito a OSC `0`/`1`/`2`/`9`/`99`/`777` e BEL. Se o valor contiver algo fora da lista de permissões, o campo é ignorado. Use isso em vez de escrever para `/dev/tty`, que não está disponível para hooks |

797 1014 

798Para parar Claude inteiramente independentemente do tipo de evento:1015Para parar Claude inteiramente:

799 1016 

800```json theme={null}1017```json theme={null}

801{ "continue": false, "stopReason": "Build failed, fix errors before continuing" }1018{ "continue": false, "stopReason": "Build failed, fix errors before continuing" }

802```1019```

803 1020 

1021Para hooks `PreToolUse` e `PostToolUse`, a parada se aplica mesmo quando a chamada da ferramenta falha ou é concluída enquanto Claude ainda está transmitindo uma resposta.

1022 

804<h4 id="emit-terminal-notifications">1023<h4 id="emit-terminal-notifications">

805 Emitir notificações de terminal1024 Emitir notificações de terminal

806</h4>1025</h4>

807 1026 

808O campo `terminalSequence` requer Claude Code v2.1.141 ou posterior.1027Hooks executam sem um terminal controlador, portanto escrever sequências de escape diretamente para `/dev/tty` falha. Em vez disso, retorne a sequência de escape no campo `terminalSequence` e Claude Code a emite para você através de seu próprio caminho de escrita de terminal. Isso é livre de corrida, funciona dentro de tmux e GNU screen, e funciona no Windows onde não há `/dev/tty`.

809 

810Hooks executam sem um terminal controlador, então escrever sequências de escape diretamente para `/dev/tty` falha. Em vez disso, retorne a sequência de escape no campo `terminalSequence` e Claude Code a emite para você através de seu próprio caminho de escrita de terminal. Isso é livre de corrida, funciona dentro de tmux e GNU screen, e funciona no Windows onde não há `/dev/tty`.

811 1028 

812O campo aceita uma string de uma ou mais sequências de escape na lista de permissões:1029O campo aceita uma string de uma ou mais sequências de escape na lista de permissões:

813 1030 


819 1036 

820Sequências podem ser terminadas com BEL ou com ST. Qualquer coisa fora da lista de permissões, incluindo sequências de cursor e cor CSI, sequências de paleta OSC, hiperlinks OSC 8, escritas de área de transferência OSC 52 e OSC 1337, é rejeitada e o campo é ignorado.1037Sequências podem ser terminadas com BEL ou com ST. Qualquer coisa fora da lista de permissões, incluindo sequências de cursor e cor CSI, sequências de paleta OSC, hiperlinks OSC 8, escritas de área de transferência OSC 52 e OSC 1337, é rejeitada e o campo é ignorado.

821 1038 

1039Claude Code escreve a sequência em si quando processa a saída do seu hook, portanto o campo funciona em eventos que descartam `systemMessage` e `continue`, como `Notification` e `StopFailure`. Tem dois limites:

1040 

1041* Claude Code escreve a sequência apenas em uma sessão interativa, e apenas enquanto sua interface está na tela. Em modo não-interativo com a flag `-p` e no Agent SDK, ignora o campo.

1042* Um hook de comando `WorktreeCreate` não pode retornar JSON, porque Claude Code lê seu stdout como o caminho de worktree. Um hook HTTP `WorktreeCreate` retorna JSON e pode incluir o campo.

1043 

822O exemplo abaixo dispara uma notificação de desktop de um hook `Notification`. A sequência de escape é construída com `printf` escapes octais para que os bytes de controle nunca apareçam na linha de comando do shell, e `jq -n --arg` constrói a saída JSON para que aspas, barras invertidas e quebras de linha na mensagem de notificação sejam escapadas corretamente:1044O exemplo abaixo dispara uma notificação de desktop de um hook `Notification`. A sequência de escape é construída com `printf` escapes octais para que os bytes de controle nunca apareçam na linha de comando do shell, e `jq -n --arg` constrói a saída JSON para que aspas, barras invertidas e quebras de linha na mensagem de notificação sejam escapadas corretamente:

823 1045 

824```bash theme={null}1046```bash theme={null}

825#!/bin/bash1047#!/bin/bash

826# Hook de notificação: ping no desktop quando Claude Code precisa de atenção.1048# Hook de notificação: ping no desktop quando Claude Code precisa de atenção.

827input=$(cat)1049input=$(cat)

828title="Claude Code'1050title="Claude Code"

829body=$(jq -r '.message // 'Needs your attention"' <<<"$input")1051body=$(jq -r '.message // "Needs your attention"' <<<"$input")

830seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")1052seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")

831jq -nc --arg seq "$seq" '{terminalSequence: $seq}'1053jq -nc --arg seq "$seq" '{terminalSequence: $seq}'

832```1054```

833 1055 

834A forma `{ "terminalSequence": "..." }` é a mesma de qualquer shell ou linguagem. No Windows, construa a string de escape em PowerShell ou um script e emita o mesmo objeto JSON.1056A forma `{ "terminalSequence": "..." }` é a mesma de qualquer shell ou linguagem.

835 

836<Note>

837 `terminalSequence` é a substituição suportada para hooks que anteriormente escreviam sequências de escape diretamente para `/dev/tty`. A lista de permissões é restrita a sequências que não podem mover o cursor ou alterar cores, para que um hook nunca possa corromper um prompt na tela.

838</Note>

839 1057 

840<h4 id="add-context-for-claude">1058<h4 id="add-context-for-claude">

841 Adicionar contexto para Claude1059 Adicionar contexto para Claude

842</h4>1060</h4>

843 1061 

844O campo `additionalContext` passa uma string do seu hook para a janela de contexto do Claude. O Claude Code envolve a string em um lembrete do sistema e a insere na conversa no ponto onde o hook disparou. Claude lê o lembrete na próxima solicitação de modelo, mas não aparece como uma mensagem de chat na interface.1062O campo `additionalContext` passa uma string do seu hook para a janela de contexto do Claude. Claude Code envolve a string em um lembrete do sistema e a insere na conversa no ponto onde o hook disparou. Claude lê o lembrete na próxima solicitação de modelo, mas não aparece como uma mensagem de chat na interface.

845 1063 

846Retorne `additionalContext` dentro de `hookSpecificOutput` ao lado do nome do evento:1064Retorne `additionalContext` dentro de `hookSpecificOutput` ao lado do nome do evento:

847 1065 


856 1074 

857Onde o lembrete aparece depende do evento:1075Onde o lembrete aparece depende do evento:

858 1076 

859* [SessionStart](#sessionstart), [Setup](#setup) e [SubagentStart](#subagentstart): no início da conversa, antes do primeiro prompt1077* [SessionStart](#sessionstart) e [SubagentStart](#subagentstart): no início da conversa, antes do primeiro prompt

860* [UserPromptSubmit](#userpromptsubmit) e [UserPromptExpansion](#userpromptexpansion): ao lado do prompt enviado1078* [UserPromptSubmit](#userpromptsubmit) e [UserPromptExpansion](#userpromptexpansion): ao lado do prompt enviado

861* [PreToolUse](#pretooluse), [PostToolUse](#posttooluse), [PostToolUseFailure](#posttoolusefailure) e [PostToolBatch](#posttoolbatch): ao lado do resultado da ferramenta1079* [PreToolUse](#pretooluse), [PostToolUse](#posttooluse), [PostToolUseFailure](#posttoolusefailure) e [PostToolBatch](#posttoolbatch): ao lado do resultado da ferramenta

862* [Stop](#stop) e [SubagentStop](#subagentstop): no final da rodada. A conversa continua para que Claude possa agir sobre o feedback. Consulte [Controle de decisão Stop](#stop-decision-control)1080* [Stop](#stop) e [SubagentStop](#subagentstop): no final da rodada. A conversa continua para que Claude possa agir sobre o feedback. Consulte [Controle de decisão Stop](#stop-decision-control)

1081* [PostModelSwitch](#postmodelswitch): com a próxima solicitação após a mudança. Consulte [Controle de decisão PostModelSwitch](#postmodelswitch-decision-control) para timing

863 1082 

864Quando vários hooks retornam `additionalContext` para o mesmo evento, Claude recebe todos os valores. Se um valor exceder 10.000 caracteres, o Claude Code escreve o texto completo em um arquivo no diretório de sessão e passa ao Claude o caminho do arquivo com uma visualização curta em vez disso.1083Quando vários hooks retornam `additionalContext` para o mesmo evento, Claude recebe todos os valores.

1084 

1085Se um valor exceder 10.000 caracteres, Claude Code escreve o texto em um arquivo no diretório de sessão e passa Claude o caminho do arquivo com uma visualização de até os primeiros 2.000 caracteres em vez disso. Claude pode ler o arquivo, mas Claude Code não pede a Claude para.

865 1086 

866Use `additionalContext` para informações que Claude deve saber sobre o estado atual do seu ambiente ou a operação que acabou de executar:1087Use `additionalContext` para informações que Claude deve saber sobre o estado atual do seu ambiente ou a operação que acabou de executar:

867 1088 


873 1094 

874Escreva o texto como declarações factuais em vez de instruções de sistema imperativas. Frases como "O alvo de implantação é produção" ou "Este repositório usa `bun test`" lê como informação de projeto. Texto enquadrado como comandos de sistema fora de banda pode disparar as defesas de injeção de prompt do Claude, o que faz com que Claude superficialize o texto para você em vez de tratá-lo como contexto.1095Escreva o texto como declarações factuais em vez de instruções de sistema imperativas. Frases como "O alvo de implantação é produção" ou "Este repositório usa `bun test`" lê como informação de projeto. Texto enquadrado como comandos de sistema fora de banda pode disparar as defesas de injeção de prompt do Claude, o que faz com que Claude superficialize o texto para você em vez de tratá-lo como contexto.

875 1096 

876Uma vez injetado, o texto é salvo na transcrição de sessão. Para eventos de mid-sessão como `PostToolUse` ou `UserPromptSubmit`, retomar com `--continue` ou `--resume` reproduz o texto salvo em vez de re-executar o hook para turnos anteriores, então valores como timestamps ou SHAs de commit ficam obsoletos na retomada. Hooks `SessionStart` executam novamente na retomada com `source` definido como `"resume"`, para que possam atualizar seu contexto.1097Claude Code salva o texto injetado na transcrição de sessão. Para eventos de mid-sessão como `PostToolUse` ou `UserPromptSubmit`, quando você retoma com `--continue` ou `--resume`, Claude Code reproduz o texto salvo em vez de re-executar o hook para turnos anteriores, portanto valores como timestamps ou SHAs de commit ficam obsoletos. Hooks `SessionStart` executam novamente na retomada com `source` definido como `"resume"`, ou `"fork"` se você adicionou `--fork-session`, para que possam atualizar seu contexto.

877 1098 

878<h4 id="decision-control">1099<h4 id="decision-control">

879 Controle de decisão1100 Controle de decisão


882Nem todo evento suporta bloqueio ou controle de comportamento através de JSON. Os eventos que fazem cada um usam um conjunto diferente de campos para expressar essa decisão. Use esta tabela como referência rápida antes de escrever um hook:1103Nem todo evento suporta bloqueio ou controle de comportamento através de JSON. Os eventos que fazem cada um usam um conjunto diferente de campos para expressar essa decisão. Use esta tabela como referência rápida antes de escrever um hook:

883 1104 

884| Eventos | Padrão de decisão | Campos-chave |1105| Eventos | Padrão de decisão | Campos-chave |

885| :---------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |1106| :---------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

886| UserPromptSubmit, UserPromptExpansion, PostToolUse, PostToolUseFailure, PostToolBatch, Stop, SubagentStop, ConfigChange, PreCompact | `decision` de nível superior | `decision: "block"`, `reason`. Stop e SubagentStop também aceitam `hookSpecificOutput.additionalContext` para [feedback não-erro que continua a conversa](#stop-decision-control) |1107| UserPromptSubmit, UserPromptExpansion, PostToolUse, PostToolUseFailure, PostToolBatch, Stop, SubagentStop, ConfigChange, PreCompact | `decision` de nível superior | `decision: "block"`, `reason`. Stop e SubagentStop também aceitam `hookSpecificOutput.additionalContext` para [feedback não-erro que continua a conversa](#stop-decision-control) |

887| TeammateIdle, TaskCreated, TaskCompleted | Código de saída ou `continue: false` | Código de saída 2 bloqueia a ação com feedback de stderr. JSON `{"continue": false, "stopReason": "..."}` também para o colega inteiramente, correspondendo ao comportamento do hook `Stop` |1108| TeammateIdle, TaskCompleted | Código de saída ou `continue: false` | Código de saída 2 bloqueia a ação com feedback de stderr. JSON `{"continue": false, "stopReason": "..."}` também para o colega inteiramente, correspondendo ao comportamento do hook `Stop`; [TaskCompleted ignora quando a ferramenta `TaskUpdate` disparou o evento](#taskcompleted-decision-control) |

1109| TaskCreated | Código de saída ou `decision` de nível superior | Código de saída 2 ou `decision: "block"` [cancela a tarefa](#taskcreated-decision-control) e retorna a mensagem para Claude. `continue: false` é ignorado |

888| PreToolUse | `hookSpecificOutput` | `permissionDecision` (allow/deny/ask/defer), `permissionDecisionReason` |1110| PreToolUse | `hookSpecificOutput` | `permissionDecision` (allow/deny/ask/defer), `permissionDecisionReason` |

1111| PreModelSwitch | `hookSpecificOutput` ou `decision` de nível superior | `permissionDecision` (allow/deny/ask), `permissionDecisionReason`. `decision: "block"` também [cancela a mudança](#premodelswitch-decision-control) |

889| PermissionRequest | `hookSpecificOutput` | `decision.behavior` (allow/deny) |1112| PermissionRequest | `hookSpecificOutput` | `decision.behavior` (allow/deny) |

890| PermissionDenied | `hookSpecificOutput` | `retry: true` diz ao modelo que pode tentar novamente a chamada de ferramenta negada |1113| PermissionDenied | `hookSpecificOutput` | `retry: true` diz ao modelo que pode tentar novamente a chamada de ferramenta negada; Claude Code ignora para [negações sem veredicto](#permissiondenied-decision-control) |

891| WorktreeCreate | retorno de caminho | Hook de comando imprime caminho em stdout; hook HTTP retorna `hookSpecificOutput.worktreePath`. Falha de hook ou caminho ausente falha na criação |1114| WorktreeCreate | retorno de caminho | Hook de comando imprime caminho em stdout; hook HTTP retorna `hookSpecificOutput.worktreePath`. Falha de hook ou caminho ausente falha na criação |

1115| WorktreeRemove | Código de saída | Qualquer código de saída não-zero faz a remoção falhar se o diretório ainda existir depois. Saída JSON é descartada |

892| Elicitation | `hookSpecificOutput` | `action` (accept/decline/cancel), `content` (valores de campo de formulário para accept) |1116| Elicitation | `hookSpecificOutput` | `action` (accept/decline/cancel), `content` (valores de campo de formulário para accept) |

893| ElicitationResult | `hookSpecificOutput` | `action` (accept/decline/cancel), `content` (valores de campo de formulário override) |1117| ElicitationResult | `hookSpecificOutput` | `action` (accept/decline/cancel), `content` (valores de campo de formulário override) |

894| MessageDisplay | `hookSpecificOutput` | `displayContent` substitui o texto exibido na tela. Apenas exibição: a transcrição e o que Claude vê mantêm o original |1118| MessageDisplay | `hookSpecificOutput` | `displayContent` substitui o texto exibido na tela. Apenas exibição: a transcrição e o que Claude vê mantêm o original |

895| SessionStart, Setup, SubagentStart | Apenas contexto | `hookSpecificOutput.additionalContext` adiciona contexto para Claude. SessionStart também aceita [`initialUserMessage`, `watchPaths`, `sessionTitle` e `reloadSkills`](#sessionstart-decision-control). Sem bloqueio ou controle de decisão |1119| SessionStart, SubagentStart, PostModelSwitch | Apenas contexto | `hookSpecificOutput.additionalContext` adiciona contexto para Claude. SessionStart também aceita [`initialUserMessage`, `watchPaths`, `sessionTitle` e `reloadSkills`](#sessionstart-decision-control). Sem bloqueio ou controle de decisão |

896| WorktreeRemove, Notification, SessionEnd, PostCompact, InstructionsLoaded, StopFailure, CwdChanged, FileChanged | Nenhum | Sem controle de decisão. Usado para efeitos colaterais como logging ou limpeza |1120| Setup, Notification, SessionEnd, PostCompact, InstructionsLoaded, StopFailure, CwdChanged, DirectoryAdded, FileChanged | Nenhum | Sem controle de decisão. Usado para efeitos colaterais como logging ou limpeza |

897 1121 

898Alguns eventos também podem reescrever conteúdo em vez de apenas permitir ou bloquear:1122Alguns eventos também podem reescrever conteúdo em vez de apenas permitir ou bloquear:

899 1123 


908 1132 

909<Tabs>1133<Tabs>

910 <Tab title="Decisão de nível superior">1134 <Tab title="Decisão de nível superior">

911 Usado por `UserPromptSubmit`, `UserPromptExpansion`, `PostToolUse`, `PostToolUseFailure`, `PostToolBatch`, `Stop`, `SubagentStop`, `ConfigChange` e `PreCompact`. O único valor é `"block"`. Para permitir que a ação prossiga, omita `decision` do seu JSON ou saia 0 sem qualquer JSON:1135 O único valor para `decision` é `"block"`. Para permitir que a ação prossiga, omita `decision` do seu JSON, ou saia 0 sem qualquer JSON:

912 1136 

913 ```json theme={null}1137 ```json theme={null}

914 {1138 {


957 Eventos de hook1181 Eventos de hook

958</h2>1182</h2>

959 1183 

960Cada evento corresponde a um ponto no ciclo de vida do Claude Code onde hooks podem executar. As seções abaixo são ordenadas para corresponder ao ciclo de vida: da configuração de sessão através do loop agentic até o fim da sessão. Cada seção descreve quando o evento dispara, quais matchers suporta, a entrada JSON que recebe e como controlar comportamento através de saída.1184Cada evento corresponde a um ponto no ciclo de vida do Claude Code onde os hooks podem ser executados. As seções abaixo estão ordenadas para corresponder ao ciclo de vida: desde a configuração da sessão através do loop agentic até o final da sessão. Cada seção descreve quando o evento é disparado, quais matchers ele suporta, a entrada JSON que recebe e como controlar o comportamento através da saída.

961 1185 

962<h3 id="sessionstart">1186<h3 id="sessionstart">

963 SessionStart1187 SessionStart

964</h3>1188</h3>

965 1189 

966Executa quando Claude Code inicia uma nova sessão ou retoma uma sessão existente. Útil para carregar contexto de desenvolvimento como problemas existentes ou mudanças recentes em seu codebase, ou configurar variáveis de ambiente. Para contexto estático que não requer um script, use [CLAUDE.md](/docs/pt/memory) em vez disso.1190Executado quando Claude Code inicia uma nova sessão ou retoma uma sessão existente. Útil para carregar contexto de desenvolvimento como problemas existentes ou mudanças recentes no seu código, ou configurar variáveis de ambiente. Para contexto estático que não requer um script, use [CLAUDE.md](/docs/pt/memory) em vez disso.

967 1191 

968SessionStart executa em cada sessão, então mantenha esses hooks rápidos. Apenas hooks `type: "command"` e `type: "mcp_tool"` são suportados.1192SessionStart é executado em cada sessão, portanto mantenha esses hooks rápidos. Apenas hooks `type: "command"` e `type: "mcp_tool"` são suportados. Veja [campos de hook de ferramenta MCP](#mcp-tool-hook-fields) para quando hooks `mcp_tool` são executados.

969 1193 

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

971 1195 

972| Matcher | Quando dispara |1196| Matcher | Quando é disparado |

973| :-------- | :------------------------------------ |1197| :-------- | :---------------------------------------------------------------------------------------------------------------------------------- |

974| `startup` | Nova sessão |1198| `startup` | Nova sessão |

975| `resume` | `--resume`, `--continue` ou `/resume` |1199| `resume` | `--resume`, `--continue`, ou `/resume` |

976| `clear` | `/clear` |1200| `clear` | `/clear` |

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

1202| `fork` | Uma nova sessão bifurcada de uma existente: `--fork-session` com `--resume` ou `--continue`, a cópia de fundo `/fork`, ou `/branch` |

1203 

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

1205 

1206Quando você inicia uma sessão interativa, retoma uma conversa no lançamento com `--continue` ou `--resume`, ou executa `/clear`, os hooks SessionStart são executados em segundo plano. Você pode digitar imediatamente, e uma conversa que você retomou aparece sem esperar pelos hooks. A primeira resposta do Claude ainda espera os hooks terminarem, portanto seu contexto chega ao Claude.

1207 

1208Quando você muda de conversas com `/resume` dentro de uma sessão, a mudança espera os hooks terminarem. Se você executar `/clear` ou mudar para outra conversa enquanto os hooks de fundo ainda estão em execução, nada que eles retornem se aplica à sessão.

1209 

1210A mesma espera se aplica no lançamento, incluindo uma sessão retomada: um prompt que você envia enquanto os hooks SessionStart ainda estão em execução não chega ao Claude até que terminem.

1211 

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

978 1213 

979<h4 id="sessionstart-input">1214<h4 id="sessionstart-input">

980 Entrada de SessionStart1215 Entrada SessionStart

981</h4>1216</h4>

982 1217 

983Além dos [campos de entrada comuns](#common-input-fields), hooks SessionStart recebem `source` e opcionalmente `model`, `agent_type` e `session_title`:1218Além dos [campos de entrada comuns](#common-input-fields), os hooks SessionStart recebem `source` e opcionalmente `model`, `agent_type` e `session_title`:

984 1219 

985| Campo | Descrição |1220| Campo | Descrição |

986| :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |1221| :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

987| `source` | Como a sessão começou: `"startup"` para novas sessões, `"resume"` para sessões retomadas, `"clear"` após `/clear` ou `"compact"` após compactação |1222| `source` | Como a sessão começou: `"startup"` para novas sessões, `"resume"` para sessões retomadas, `"clear"` após `/clear`, `"compact"` após compactação, ou `"fork"` para uma nova sessão bifurcada de uma existente |

988| `model` | O identificador do modelo ativo. Pode ser omitido, por exemplo após `/clear` ou quando uma sessão é restaurada através de recuperação de conversa, então verifique o campo antes de lê-lo |1223| `model` | O identificador do modelo ativo. Pode ser omitido, por exemplo após `/clear` ou quando uma sessão é restaurada através da recuperação de conversa, portanto verifique o campo antes de lê-lo |

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

990| `session_title` | O título da sessão atual se um já estiver definido, por exemplo via `--name` ou `/rename`. Um hook que emite `sessionTitle` pode verificar `session_title` primeiro para evitar sobrescrever um título que o usuário definiu explicitamente |1225| `session_title` | O título da sessão atual se um já estiver definido, por exemplo via `--name` ou `/rename`. Um hook que emite `sessionTitle` pode verificar `session_title` primeiro para evitar sobrescrever um título que o usuário definiu explicitamente |

991 1226 

1227Quando `source` é `"resume"` ou `"fork"` e a transcrição contém pelo menos uma resposta do Claude, os hooks SessionStart também recebem os quatro campos abaixo. Seu hook pode usá-los para relatar qual é o custo de retomar uma conversa obsoleta antes da primeira solicitação, por exemplo em uma [`systemMessage`](#json-output). Esses campos requerem Claude Code v2.1.251 ou posterior.

1228 

1229| Campo | Descrição |

1230| :---------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1231| `seconds_since_last_response` | Segundos de relógio de parede desde a última resposta na transcrição retomada |

1232| `context_tokens` | Tokens que a primeira solicitação da sessão retomada reenvia como seu prompt |

1233| `prompt_cache_likely_expired` | `true` quando a última resposta é mais antiga que o [tempo de vida do cache de prompt](/docs/pt/prompt-caching#cache-lifetime) da sessão ou uma compactação posterior substituiu a conversa em cache |

1234| `estimated_cache_write_usd` | Custo estimado em dólares americanos de escrever `context_tokens` no cache de prompt no modelo da sessão, excluindo a resposta |

1235 

1236Este exemplo mostra a entrada para uma sessão retomada 90 minutos após sua última resposta:

1237 

992```json theme={null}1238```json theme={null}

993{1239{

994 "session_id": "abc123",1240 "session_id": "abc123",

995 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",1241 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

996 "cwd": "/Users/...",1242 "cwd": "/Users/...",

997 "hook_event_name": "SessionStart",1243 "hook_event_name": "SessionStart",

998 "source": "startup",1244 "source": "resume",

999 "model": "claude-sonnet-5"1245 "model": "claude-opus-5",

1246 "seconds_since_last_response": 5400,

1247 "context_tokens": 182340,

1248 "prompt_cache_likely_expired": true,

1249 "estimated_cache_write_usd": 1.1396

1000}1250}

1001```1251```

1002 1252 

1003<h4 id="sessionstart-decision-control">1253<h4 id="sessionstart-decision-control">

1004 Controle de decisão de SessionStart1254 Controle de decisão SessionStart

1005</h4>1255</h4>

1006 1256 

1007Qualquer texto que seu script de hook imprima em stdout é adicionado como contexto para Claude. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, você pode retornar esses campos específicos do evento:1257Claude Code adiciona stdout que [trata como texto simples](#exit-code-0) ao contexto do Claude. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, você pode retornar esses campos específicos do evento:

1008 1258 

1009| Campo | Descrição |1259| Campo | Descrição |

1010| :------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1260| :------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1011| `additionalContext` | String adicionada ao contexto de Claude no início da conversa, antes do primeiro prompt. Consulte [Adicionar contexto para Claude](#add-context-for-claude) para saber como o texto é entregue e o que colocar nele |1261| `additionalContext` | String adicionada ao contexto do Claude no início da conversa, antes do primeiro prompt. Veja [Adicionar contexto para Claude](#add-context-for-claude) para como o texto é entregue e o que colocar nele |

1012| `initialUserMessage` | String usada como a primeira mensagem de usuário da sessão. Aplica-se em [modo não-interativo](/docs/pt/headless) com a flag `-p`, onde se torna o primeiro turno mesmo se nenhum prompt for fornecido. Se um prompt for fornecido, ele segue como o próximo turno. Diferentemente de `additionalContext`, que se anexa a um turno existente, isso cria o turno |1262| `initialUserMessage` | String usada como a primeira mensagem do usuário da sessão. Aplica-se em [modo não interativo](/docs/pt/headless) com a flag `-p`, onde se torna o primeiro turno mesmo que nenhum prompt seja fornecido. Se um prompt for fornecido, ele segue como o próximo turno. Ao contrário de `additionalContext`, que se anexa a um turno existente, isso cria o turno |

1013| `sessionTitle` | Define o título da sessão, com o mesmo efeito que `/rename`. Use para nomear sessões automaticamente a partir da pasta de lançamento, branch git ou nome de worktree. Aplica-se apenas quando `source` é `"startup"` ou `"resume"`; ignorado em `"clear"` e `"compact"` |1263| `sessionTitle` | Define o título da sessão, com o mesmo efeito que `/rename`. Use para nomear sessões automaticamente a partir da pasta de lançamento, ramo git ou nome de worktree. Aplica-se quando `source` é `"startup"`, `"resume"` ou `"fork"`; ignorado em `"clear"` e `"compact"` |

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

1015| `reloadSkills` | Boolean. Quando `true`, Claude Code re-escaneia os diretórios [skill](/docs/pt/skills) e comando após os hooks SessionStart completarem, então skills que o hook instalou estão disponíveis na mesma sessão, começando com o primeiro prompt |1265| `reloadSkills` | Booleano. Quando `true`, Claude Code verifica novamente os diretórios de [skill](/docs/pt/skills) e comando após os hooks SessionStart serem concluídos, portanto skills que o hook instalou estão disponíveis na mesma sessão, começando com o primeiro prompt |

1016 1266 

1017```json theme={null}1267```json theme={null}

1018{1268{

1019 "hookSpecificOutput": {1269 "hookSpecificOutput": {

1020 "hookEventName": "SessionStart",1270 "hookEventName": "SessionStart",

1021 "additionalContext": "Branch atual: feat/auth-refactor\nMudanças não confirmadas: src/auth.ts, src/login.tsx\nProblema ativo: #4211 Migrar para OAuth2",1271 "additionalContext": "Current branch: feat/auth-refactor\nUncommitted changes: src/auth.ts, src/login.tsx\nActive issue: #4211 Migrate to OAuth2",

1022 "sessionTitle": "auth-refactor"1272 "sessionTitle": "auth-refactor"

1023 }1273 }

1024}1274}

1025```1275```

1026 1276 

1027Como stdout simples já chega ao Claude para este evento, um hook que apenas carrega contexto pode imprimir em stdout diretamente sem construir JSON. Use o formulário JSON quando você precisar combinar contexto com outros campos como `suppressOutput` ou `sessionTitle`.1277Como stdout simples já chega ao Claude para este evento, um hook que apenas carrega contexto pode imprimir para stdout diretamente sem construir JSON. Use a forma JSON quando você precisa combinar contexto com outros campos como `sessionTitle`.

1028 1278 

1029Use `reloadSkills` quando um hook SessionStart instala ou atualiza skills. A descoberta de skill normalmente executa antes dos hooks SessionStart terminarem, então arquivos que o hook escreve em `~/.claude/skills/` ou `.claude/skills/` caso contrário apenas apareceriam na próxima sessão. Este exemplo sincroniza um repositório de skills compartilhado e solicita a re-varredura:1279Use `reloadSkills` quando um hook SessionStart instala ou atualiza skills. A descoberta de skill normalmente é executada antes dos hooks SessionStart terminarem, portanto arquivos que o hook escreve em `~/.claude/skills/` ou `.claude/skills/` de outra forma só apareceriam na próxima sessão. Este exemplo sincroniza um repositório de skills compartilhado e solicita a nova verificação:

1030 1280 

1031```bash theme={null}1281```bash theme={null}

1032#!/bin/bash1282#!/bin/bash


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

1038```1288```

1039 1289 

1290A URL do repositório é um espaço reservado; substitua-a pelo seu próprio repositório de skills. Com o espaço reservado, o clone falha e imprime uma mensagem `fatal:` para stderr. Stderr de um hook SessionStart que sai com 0 é apenas informativo, portanto a solicitação `reloadSkills` ainda se aplica.

1291 

1040<h4 id="persist-environment-variables">1292<h4 id="persist-environment-variables">

1041 Persistir variáveis de ambiente1293 Persistir variáveis de ambiente

1042</h4>1294</h4>

1043 1295 

1044Hooks SessionStart têm acesso à variável de ambiente `CLAUDE_ENV_FILE`, que fornece um caminho de arquivo onde você pode persistir variáveis de ambiente para comandos Bash subsequentes.1296Os hooks SessionStart têm acesso à variável de ambiente `CLAUDE_ENV_FILE`, que fornece um caminho de arquivo onde você pode persistir variáveis de ambiente para comandos Bash subsequentes.

1045 1297 

1046Para definir variáveis de ambiente individuais, escreva declarações `export` para `CLAUDE_ENV_FILE`. Use append (`>>`) para preservar variáveis definidas por outros hooks:1298Para definir variáveis de ambiente individuais, escreva instruções `export` para `CLAUDE_ENV_FILE`. Use append (`>>`) para preservar variáveis definidas por outros hooks:

1047 1299 

1048```bash theme={null}1300```bash theme={null}

1049#!/bin/bash1301#!/bin/bash


1064 1316 

1065ENV_BEFORE=$(export -p | sort)1317ENV_BEFORE=$(export -p | sort)

1066 1318 

1067# Execute seus comandos de configuração que modificam o ambiente1319# Run your setup commands that modify the environment

1068source ~/.nvm/nvm.sh1320source ~/.nvm/nvm.sh

1069nvm use 201321nvm use 20

1070 1322 


1076exit 01328exit 0

1077```1329```

1078 1330 

1079Qualquer variável escrita para este arquivo estará disponível em todos os comandos Bash subsequentes que o Claude Code executa durante a sessão.

1080 

1081<Note>1331<Note>

1082 `CLAUDE_ENV_FILE` está disponível para SessionStart, [Setup](#setup), [CwdChanged](#cwdchanged) e [FileChanged](#filechanged) hooks. Outros tipos de hook não têm acesso a esta variável.1332 `CLAUDE_ENV_FILE` está disponível para hooks SessionStart, [Setup](#setup), [CwdChanged](#cwdchanged) e [FileChanged](#filechanged). Outros tipos de hook não têm acesso a esta variável.

1083</Note>1333</Note>

1084 1334 

1085<h3 id="setup">1335<h3 id="setup">

1086 Setup1336 Setup

1087</h3>1337</h3>

1088 1338 

1089Dispara apenas quando você lança Claude Code com `--init-only`, ou com `--init` ou `--maintenance` em [modo não-interativo](/docs/pt/headless) com a flag `-p`. Não dispara na inicialização normal. Use-o para instalação de dependência única ou limpeza agendada que você aciona explicitamente de CI ou scripts, separado da inicialização de sessão normal. Para inicialização por sessão, use [SessionStart](#sessionstart) em vez disso.1339Disparado apenas quando você inicia Claude Code com `--init-only`, ou com `--init` ou `--maintenance` em [modo não interativo](/docs/pt/headless) com a flag `-p`. Não é disparado no startup normal. Use-o para instalação de dependência única ou limpeza agendada que você dispara explicitamente de CI ou scripts, separado do startup normal da sessão. Para inicialização por sessão, use [SessionStart](#sessionstart) em vez disso.

1090 1340 

1091O valor do matcher corresponde à flag CLI que acionou o hook:1341O valor do matcher corresponde à flag CLI que disparou o hook:

1092 1342 

1093| Matcher | Quando dispara |1343| Matcher | Quando é disparado |

1094| :------------ | :----------------------------------------- |1344| :------------ | :----------------------------------------- |

1095| `init` | `claude --init-only` ou `claude -p --init` |1345| `init` | `claude --init-only` ou `claude -p --init` |

1096| `maintenance` | `claude -p --maintenance` |1346| `maintenance` | `claude -p --maintenance` |

1097 1347 

1098`--init-only` executa hooks Setup e hooks SessionStart com o matcher `startup`, depois sai sem iniciar uma conversa. `--init` e `--maintenance` disparam hooks Setup apenas quando combinados com `-p`; em uma sessão interativa essas duas flags atualmente não disparam hooks Setup.1348Quando você executa `claude --init-only`, Claude Code executa hooks Setup e hooks `SessionStart` com o matcher `startup`, depois sai sem iniciar uma conversa.

1349 

1350Quando você inicia ou continua uma conversa com `-p`, você também precisa fornecer um prompt, como um argumento ou canalizado em stdin. Você pode pular o prompt quando um hook `SessionStart` fornece [`initialUserMessage`](#sessionstart-decision-control) ou quando você retoma uma sessão com uma [chamada de ferramenta adiada](#defer-a-tool-call-for-later).

1099 1351 

1100Porque Setup não dispara em cada lançamento, um plugin que precisa de uma dependência instalada não pode confiar apenas em Setup. O padrão prático é verificar a dependência no primeiro uso e instalar se ausente, por exemplo um hook ou skill que testa `${CLAUDE_PLUGIN_DATA}/node_modules` e executa `npm install` se ausente. Consulte o [diretório de dados persistentes](/docs/pt/plugins-reference#persistent-data-directory) para onde armazenar dependências instaladas.1352No sucesso, `--init-only` não imprime nada no terminal. Para confirmar que os hooks foram executados, comece com `claude --debug-file <path> --init-only`, substituindo `<path>` por um local de arquivo de log, e verifique o log para as entradas de hook Setup e SessionStart.

1353 

1354Como Setup não é disparado a cada lançamento, um plugin que precisa de uma dependência instalada não pode contar apenas com Setup. O padrão prático é verificar a dependência no primeiro uso e instalar se ausente, por exemplo um hook ou skill que testa `${CLAUDE_PLUGIN_DATA}/node_modules` e executa `npm install` se ausente. Veja o [diretório de dados persistentes](/docs/pt/plugins-reference#persistent-data-directory) para onde armazenar dependências instaladas. Se você distribuir seu plugin através de um marketplace, você pode não precisar deste padrão: Claude Code [instala automaticamente dependências de pacote Node.js elegíveis](/docs/pt/plugins-reference#node-js-package-dependencies) quando armazena em cache o plugin.

1101 1355 

1102<h4 id="setup-input">1356<h4 id="setup-input">

1103 Entrada de Setup1357 Entrada Setup

1104</h4>1358</h4>

1105 1359 

1106Além dos [campos de entrada comuns](#common-input-fields), hooks Setup recebem um campo `trigger` definido como `"init"` ou `"maintenance"`:1360Além dos [campos de entrada comuns](#common-input-fields), os hooks Setup recebem um campo `trigger` definido como `"init"` ou `"maintenance"`:

1107 1361 

1108```json theme={null}1362```json theme={null}

1109{1363{


1116```1370```

1117 1371 

1118<h4 id="setup-decision-control">1372<h4 id="setup-decision-control">

1119 Controle de decisão de Setup1373 Controle de decisão Setup

1120</h4>1374</h4>

1121 1375 

1122Hooks Setup não podem bloquear. Qualquer código de saída não-zero, incluindo 2, superficializa stderr ao usuário como um aviso de `<hook name> hook error`, e a execução continua. Em [modo não-interativo](/docs/pt/headless), a saída do hook aparece apenas quando você lança com `--verbose`.1376Os hooks Setup não podem bloquear; a execução continua em qualquer código de saída. Em cada código de saída, Claude Code descarta os [campos de saída JSON](#json-output) de um hook Setup, como `systemMessage`, `continue` e `hookSpecificOutput.additionalContext`. Com `-p`, stdout, stderr e código de saída de um hook Setup aparecem na saída da execução apenas como [eventos `hook_response`](/docs/pt/headless#read-session-metadata) quando você inicia com `--output-format stream-json --verbose`.

1123 

1124Para passar informação para o contexto de Claude, retorne `additionalContext` em saída JSON; stdout simples é escrito apenas no log de debug. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, você pode retornar esses campos específicos do evento:

1125 

1126| Campo | Descrição |

1127| :------------------ | :-------------------------------------------------------------------------------------- |

1128| `additionalContext` | String adicionada ao contexto de Claude. Os valores de múltiplos hooks são concatenados |

1129 

1130```json theme={null}

1131{

1132 "hookSpecificOutput": {

1133 "hookEventName": "Setup",

1134 "additionalContext": "Dependências instaladas: node_modules, .venv"

1135 }

1136}

1137```

1138 1377 

1139Hooks Setup têm acesso a `CLAUDE_ENV_FILE`. Variáveis escritas para esse arquivo persistem em comandos Bash subsequentes para a sessão, assim como em [hooks SessionStart](#persist-environment-variables). Apenas hooks `type: "command"` e `type: "mcp_tool"` são suportados.1378Os hooks Setup têm acesso a `CLAUDE_ENV_FILE`. Variáveis escritas nesse arquivo persistem em comandos Bash subsequentes para a sessão, assim como em [hooks SessionStart](#persist-environment-variables). Apenas hooks `type: "command"` são executados em `Setup`. Um hook `type: "mcp_tool"` em `Setup` é sempre pulado, conforme descrito em [campos de hook de ferramenta MCP](#mcp-tool-hook-fields).

1140 1379 

1141<h3 id="instructionsloaded">1380<h3 id="instructionsloaded">

1142 InstructionsLoaded1381 InstructionsLoaded

1143</h3>1382</h3>

1144 1383 

1145Dispara quando um arquivo `CLAUDE.md` ou `.claude/rules/*.md` é carregado em contexto. Este evento dispara na inicialização da sessão para arquivos carregados com entusiasmo e novamente mais tarde quando arquivos são carregados preguiçosamente, por exemplo quando Claude acessa um subdiretório que contém um `CLAUDE.md` aninhado ou quando regras condicionais com frontmatter `paths:` correspondem. O hook não suporta bloqueio ou controle de decisão. Executa assincronamente para fins de observabilidade.1384Disparado quando um arquivo `CLAUDE.md` ou `.claude/rules/*.md` é carregado no contexto. Este evento é disparado no início da sessão para arquivos carregados com entusiasmo e novamente mais tarde quando arquivos são carregados preguiçosamente, por exemplo quando Claude acessa um subdiretório que contém um `CLAUDE.md` aninhado ou quando regras condicionais com frontmatter `paths:` correspondem. O hook não suporta bloqueio ou controle de decisão. Ele é executado de forma assíncrona para fins de observabilidade.

1385 

1386Este evento não é disparado quando Claude [lê `AGENTS.md` diretamente](/docs/pt/memory#agents-md) através da configuração **Project instructions**. Ele é disparado quando um `CLAUDE.md` importa seu `AGENTS.md`, com `load_reason` definido como `include` como para qualquer outro arquivo importado, e quando `CLAUDE.md` é um symlink para ele, como um carregamento normal de `CLAUDE.md`.

1146 1387 

1147O matcher executa contra `load_reason`. Por exemplo, use `"matcher": "session_start"` para disparar apenas para arquivos carregados na inicialização da sessão, ou `"matcher": "path_glob_match|nested_traversal"` para disparar apenas para carregamentos preguiçosos.1388O matcher é executado contra `load_reason`. Por exemplo, use `"matcher": "session_start"` para disparar apenas para arquivos carregados no início da sessão, ou `"matcher": "path_glob_match|nested_traversal"` para disparar apenas para carregamentos preguiçosos.

1148 1389 

1149<h4 id="instructionsloaded-input">1390<h4 id="instructionsloaded-input">

1150 Entrada de InstructionsLoaded1391 Entrada InstructionsLoaded

1151</h4>1392</h4>

1152 1393 

1153Além dos [campos de entrada comuns](#common-input-fields), hooks InstructionsLoaded recebem esses campos:1394Além dos [campos de entrada comuns](#common-input-fields), os hooks InstructionsLoaded recebem estes campos:

1154 1395 

1155| Campo | Descrição |1396| Campo | Descrição |

1156| :------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1397| :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

1159| `load_reason` | Por que o arquivo foi carregado: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` ou `"compact"`. O valor `"compact"` dispara quando arquivos de instrução são re-carregados após um evento de compactação |1400| `load_reason` | Por que o arquivo foi carregado: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` ou `"compact"`. O valor `"compact"` é disparado quando arquivos de instrução são recarregados após um evento de compactação |

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

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

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

1163 1404 

1164```json theme={null}1405```json theme={null}


1174```1415```

1175 1416 

1176<h4 id="instructionsloaded-decision-control">1417<h4 id="instructionsloaded-decision-control">

1177 Controle de decisão de InstructionsLoaded1418 Controle de decisão InstructionsLoaded

1178</h4>1419</h4>

1179 1420 

1180Hooks InstructionsLoaded não têm controle de decisão. Eles não podem bloquear ou modificar carregamento de instrução. Use este evento para logging de auditoria, rastreamento de conformidade ou observabilidade.1421Os hooks InstructionsLoaded não têm controle de decisão. Eles não podem bloquear ou modificar o carregamento de instruções. Claude Code descarta seus [campos de saída JSON](#json-output), como `systemMessage` e `continue`. Use este evento para auditoria de log, rastreamento de conformidade ou observabilidade.

1181 1422 

1182<h3 id="userpromptsubmit">1423<h3 id="userpromptsubmit">

1183 UserPromptSubmit1424 UserPromptSubmit

1184</h3>1425</h3>

1185 1426 

1186Executa quando o usuário submete um prompt, antes do Claude processá-lo. Isso permite que você adicione contexto adicional baseado no prompt/conversa, valide prompts ou bloqueie certos tipos de prompts.1427Executado quando o usuário envia um prompt, antes de Claude processá-lo. Isso permite que você adicione contexto adicional com base no prompt/conversa, valide prompts ou bloqueie certos tipos de prompts.

1187 1428 

1188Hooks `UserPromptSubmit` têm um timeout padrão de 30 segundos para tipos `command`, `http` e `mcp_tool`, mais curto que o padrão de 600 segundos para esses tipos em outros eventos. Porque este hook executa antes de cada prompt e bloqueia processamento do modelo até que seja concluído, um hook travado paralisa a sessão. Se seu hook precisa de mais tempo, defina o campo `timeout` na entrada do hook.1429Os hooks `UserPromptSubmit` têm um tempo limite padrão de 30 segundos para tipos `command`, `http` e `mcp_tool`, mais curto que o padrão de 600 segundos para esses tipos na maioria dos outros eventos. Como este hook é executado antes de cada prompt e bloqueia o processamento do modelo até ser concluído, um hook travado paralisa a sessão. Se seu hook precisar de mais tempo, defina o campo `timeout` na entrada do hook.

1189 1430 

1190Um hook `UserPromptSubmit` que atinge seu timeout é cancelado e sua saída, incluindo qualquer `additionalContext`, é descartada. O prompt ainda chega ao Claude sem esse contexto. A partir de v2.1.196, a transcrição mostra um aviso nomeando o hook, o timeout que disparou e que a saída foi descartada. Versões anteriores cancelam o hook sem aviso.1431Além de um hook de comando que você executa com [`async: true`](#run-hooks-in-the-background), um hook `UserPromptSubmit` command, HTTP ou MCP tool que atinge seu tempo limite é cancelado e sua saída, incluindo qualquer `additionalContext`, é descartada. O prompt ainda chega ao Claude sem esse contexto. A transcrição mostra um aviso nomeando o hook, o tempo limite que foi disparado e que a saída foi descartada.

1191 1432 

1192Um hook de callback [Agent SDK](/docs/pt/agent-sdk/hooks) em `UserPromptSubmit` que atinge seu timeout bloqueia o prompt com uma mensagem nomeando o hook e o timeout, porque um callback lá pode estar atuando como um portão de política que não deve falhar aberto. A sessão continua. Antes de v2.1.208, um timeout de callback naquele evento terminava o turno com um erro de execução.1433Um [hook de callback do Agent SDK](/docs/pt/agent-sdk/hooks) em `UserPromptSubmit` que atinge seu tempo limite bloqueia o prompt com uma mensagem nomeando o hook e o tempo limite, porque um callback lá pode estar agindo como um portão de política que não deve falhar aberto. A sessão continua. Antes da v2.1.208, um tempo limite de callback nesse evento terminava o turno com um erro de execução.

1193 1434 

1194<h4 id="userpromptsubmit-input">1435<h4 id="userpromptsubmit-input">

1195 Entrada de UserPromptSubmit1436 Entrada UserPromptSubmit

1196</h4>1437</h4>

1197 1438 

1198Além dos [campos de entrada comuns](#common-input-fields), hooks UserPromptSubmit recebem o campo `prompt` contendo o texto que o usuário submeteu.1439Além dos [campos de entrada comuns](#common-input-fields), os hooks UserPromptSubmit recebem o campo `prompt` contendo o texto que o usuário enviou.

1199 1440 

1200```json theme={null}1441```json theme={null}

1201{1442{


1209```1450```

1210 1451 

1211<h4 id="userpromptsubmit-decision-control">1452<h4 id="userpromptsubmit-decision-control">

1212 Controle de decisão de UserPromptSubmit1453 Controle de decisão UserPromptSubmit

1213</h4>1454</h4>

1214 1455 

1215Hooks `UserPromptSubmit` podem controlar se um prompt de usuário é processado e adicionar contexto. Todos os [campos de saída JSON](#json-output) estão disponíveis.1456Os hooks `UserPromptSubmit` podem controlar se um prompt do usuário é processado e adicionar contexto. Todos os [campos de saída JSON](#json-output) estão disponíveis.

1216 1457 

1217Existem duas formas de adicionar contexto à conversa na saída 0:1458Existem duas maneiras de adicionar contexto à conversa no código de saída 0:

1218 1459 

1219* **Stdout de texto simples**: qualquer texto não-JSON escrito em stdout é adicionado como contexto1460* **Stdout de texto simples**: Claude Code adiciona stdout que [trata como texto simples](#exit-code-0) ao contexto do Claude

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

1221 1462 

1222Stdout simples é mostrado como saída de hook na transcrição. O valor `additionalContext` é injetado como um lembrete do sistema que Claude lê sem uma entrada de transcrição visível.1463Nenhum canal produz uma entrada de transcrição visível. Stdout simples e o valor `additionalContext` são cada um injetados como um lembrete do sistema que começa com o nome do hook; Claude lê ambos. Para confirmar a entrega, verifique o [log de depuração](#debug-hooks).

1223 1464 

1224Para bloquear um prompt, retorne um objeto JSON com `decision` definido para `"block"`:1465Para bloquear um prompt, retorne um objeto JSON com `decision` definido como `"block"`:

1225 1466 

1226| Campo | Descrição |1467| Campo | Descrição |

1227| :----------------------- | :--------------------------------------------------------------------------------------------------------------------------------------- |1468| :----------------------- | :-------------------------------------------------------------------------------------------------------------------------------- |

1228| `decision` | `"block"` previne o prompt de ser processado e o apaga do contexto. Omita para permitir que o prompt prossiga |1469| `decision` | `"block"` impede que o prompt seja processado e o apaga do contexto. Omita para permitir que o prompt prossiga |

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

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

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

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

1233 1474 

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

1476 

1234```json theme={null}1477```json theme={null}

1235{1478{

1236 "decision": "block",1479 "decision": "block",


1247 UserPromptExpansion1490 UserPromptExpansion

1248</h3>1491</h3>

1249 1492 

1250Executa quando um comando de barra invertida digitado pelo usuário se expande em um prompt antes de chegar ao Claude. Use isso para bloquear comandos específicos de invocação direta, injetar contexto para uma skill particular ou registrar quais comandos os usuários invocam. Por exemplo, um hook correspondendo a `deploy` pode bloquear `/deploy` a menos que um arquivo de aprovação esteja presente, ou um hook correspondendo a uma skill de revisão pode anexar a lista de verificação de revisão da equipe como `additionalContext`.1493Executado quando um comando digitado pelo usuário se expande em um prompt antes de chegar ao Claude. Use isso para bloquear comandos específicos de invocação direta, injetar contexto para uma skill particular ou registrar quais comandos os usuários invocam. Por exemplo, um hook correspondente a `deploy` pode bloquear `/deploy` a menos que um arquivo de aprovação esteja presente, ou um hook correspondente a uma skill de revisão pode anexar a lista de verificação de revisão da equipe como `additionalContext`.

1251 1494 

1252Este evento cobre o caminho que `PreToolUse` não cobre: um hook `PreToolUse` correspondendo à ferramenta `Skill` dispara apenas quando Claude chama a ferramenta, mas digitar `/skillname` diretamente ignora `PreToolUse`. `UserPromptExpansion` dispara nesse caminho direto.1495Este evento cobre o caminho que `PreToolUse` não cobre: um hook `PreToolUse` correspondente à ferramenta `Skill` é disparado apenas quando Claude chama a ferramenta, mas digitar `/skillname` diretamente ignora `PreToolUse`. `UserPromptExpansion` é disparado nesse caminho direto.

1253 1496 

1254Corresponde em `command_name`. Deixe o matcher vazio para disparar em cada comando de barra invertida do tipo prompt.1497Corresponde a `command_name`. Deixe o matcher vazio para disparar em cada comando do tipo prompt.

1255 1498 

1256<h4 id="userpromptexpansion-input">1499<h4 id="userpromptexpansion-input">

1257 Entrada de UserPromptExpansion1500 Entrada UserPromptExpansion

1258</h4>1501</h4>

1259 1502 

1260Além dos [campos de entrada comuns](#common-input-fields), hooks UserPromptExpansion recebem `expansion_type`, `command_name`, `command_args`, `command_source` e a string `prompt` original. O campo `expansion_type` é `slash_command` para skills e comandos personalizados, ou `mcp_prompt` para prompts de servidor MCP.1503Além dos [campos de entrada comuns](#common-input-fields), os hooks UserPromptExpansion recebem `expansion_type`, `command_name`, `command_args`, `command_source` e a string `prompt` original. O campo `expansion_type` é `slash_command` para skills e comandos personalizados, ou `mcp_prompt` para prompts do servidor MCP.

1261 1504 

1262```json theme={null}1505```json theme={null}

1263{1506{


1275```1518```

1276 1519 

1277<h4 id="userpromptexpansion-decision-control">1520<h4 id="userpromptexpansion-decision-control">

1278 Controle de decisão de UserPromptExpansion1521 Controle de decisão UserPromptExpansion

1279</h4>1522</h4>

1280 1523 

1281Hooks `UserPromptExpansion` podem bloquear a expansão ou adicionar contexto. Todos os [campos de saída JSON](#json-output) estão disponíveis.1524Os hooks `UserPromptExpansion` podem bloquear a expansão ou adicionar contexto. Todos os [campos de saída JSON](#json-output) estão disponíveis.

1282 1525 

1283| Campo | Descrição |1526| Campo | Descrição |

1284| :------------------ | :--------------------------------------------------------------------------------------------------------------------------------------- |1527| :------------------ | :---------------------------------------------------------------------------------------------------------------------------------- |

1285| `decision` | `"block"` previne o comando de barra invertida de se expandir. Omita para permitir que prossiga |1528| `decision` | `"block"` impede que o comando se expanda. Omita para permitir que prossiga |

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

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

1531 

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

1288 1533 

1289```json theme={null}1534```json theme={null}

1290{1535{


1301 MessageDisplay1546 MessageDisplay

1302</h3>1547</h3>

1303 1548 

1304Executa enquanto uma mensagem de assistente flui para a tela. Claude Code exibe a mensagem em incrementos: cada vez que um lote de linhas recém-concluídas está pronto para renderizar, o hook executa uma vez com essas linhas e Claude Code renderiza o texto de substituição do hook em seu lugar. Uma mensagem longa produz várias chamadas; uma mensagem curta pode produzir apenas uma.1549Executado enquanto uma mensagem do assistente é transmitida para a tela. Claude Code exibe a mensagem em incrementos: cada vez que um lote de linhas recém-concluídas está pronto para renderizar, o hook é executado uma vez com essas linhas e Claude Code renderiza o texto de substituição do hook em seu lugar. Uma mensagem longa produz várias chamadas; uma mensagem curta pode produzir apenas uma.

1305 1550 

1306Use MessageDisplay para:1551Use MessageDisplay para:

1307 1552 

1308* remover markdown para uma exibição mínima1553* remover markdown para uma exibição mínima

1309* transformar o texto que um aplicativo Agent SDK mostra seus usuários1554* transformar o texto que um aplicativo Agent SDK mostra aos seus usuários

1310* redactar chaves de API ou nomes de host internos das respostas de Claude1555* redactar chaves de API ou nomes de host internos das respostas do Claude

1311 1556 

1312Claude Code mantém cada lote até que seu hook retorne, então mantenha o hook rápido. Se o hook falhar ou expirar, Claude Code exibe o texto original. O timeout padrão para este evento é 10 segundos; se seu hook precisa de mais tempo, defina o campo `timeout` na entrada do hook.1557Claude Code mantém cada lote até que seu hook retorne, portanto mantenha o hook rápido. Se o hook falhar ou atingir o tempo limite, Claude Code exibe o texto original. O tempo limite padrão para este evento é 10 segundos; se seu hook precisar de mais tempo, defina o campo `timeout` na entrada do hook.

1313 1558 

1314MessageDisplay é apenas para exibição: o texto de substituição muda apenas o que é renderizado na tela. A transcrição e o que Claude vê mantêm o texto original, então Claude nunca vê a substituição, e modo verbose mostra o original. O hook recebe apenas texto de mensagem de assistente, então resultados de ferramenta e o texto que você digita renderizam inalterados.1559MessageDisplay é apenas para exibição: o texto de substituição altera apenas o que é renderizado na tela. A transcrição e o que Claude vê mantêm o texto original, portanto Claude nunca vê a substituição, e o modo detalhado mostra o original. O hook recebe apenas texto de mensagem do assistente, portanto resultados de ferramentas e o texto que você digita são renderizados inalterados.

1315 1560 

1316MessageDisplay não suporta matchers e dispara para cada mensagem de assistente que flui texto; mensagens sem texto, como respostas apenas de chamada de ferramenta, não o acionam.1561MessageDisplay não suporta matchers e é disparado para cada mensagem do assistente que transmite texto; mensagens sem texto, como respostas apenas de chamada de ferramenta, não o disparam.

1317 1562 

1318Em execuções não-interativas, incluindo consultas Agent SDK e `claude -p`, MessageDisplay executa uma vez por mensagem de assistente em vez de uma vez por lote de linhas. A chamada única chega após a mensagem ser concluída e carrega o texto completo da mensagem: `index` é `0`, `final` é `true` e `delta` contém a mensagem inteira. Um hook que coleta o texto `delta` para cada mensagem recebe o mesmo texto total em ambos os modos.1563Em execuções não interativas, incluindo consultas do Agent SDK e `claude -p`, MessageDisplay é executado uma vez por mensagem do assistente em vez de uma vez por lote de linhas. A chamada única chega após a mensagem ser concluída e carrega o texto completo da mensagem: `index` é `0`, `final` é `true` e `delta` contém a mensagem inteira. Um hook que coleta o texto `delta` para cada mensagem recebe o mesmo texto total em ambos os modos.

1319 1564 

1320<h4 id="messagedisplay-input">1565<h4 id="messagedisplay-input">

1321 Entrada de MessageDisplay1566 Entrada MessageDisplay

1322</h4>1567</h4>

1323 1568 

1324Além dos [campos de entrada comuns](#common-input-fields), hooks MessageDisplay recebem identificadores para o turno e mensagem, a posição desta chamada dentro da mensagem e o novo texto em `delta`. Os limites de lote dependem de como o texto flui, então use `index` e `final` para rastrear progresso através de uma mensagem em vez de esperar que linhas sejam agrupadas de uma forma particular.1569Além dos [campos de entrada comuns](#common-input-fields), os hooks MessageDisplay recebem identificadores para o turno e mensagem, a posição desta chamada dentro da mensagem e o novo texto em `delta`. Os limites de lote dependem de como o texto é transmitido, portanto use `index` e `final` para rastrear o progresso através de uma mensagem em vez de esperar que as linhas sejam agrupadas de uma forma particular.

1325 1570 

1326| Campo | Descrição |1571| Campo | Descrição |

1327| :----------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1572| :----------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1328| `turn_id` | UUID do turno atual |1573| `turn_id` | UUID do turno atual |

1329| `message_id` | UUID da mensagem de assistente sendo exibida. Estável em cada lote da mesma mensagem. Este não é o `msg_…` id da API, então não pode ser correlacionado com ids de mensagem de transcrição |1574| `message_id` | UUID da mensagem do assistente sendo exibida. Estável em cada lote da mesma mensagem. Este não é o `msg_…` id da API, portanto não pode ser correlacionado com ids de mensagem de transcrição |

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

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

1332| `delta` | As linhas recém-concluídas desde o lote anterior, incluindo quebras de linha finais. Sempre linhas inteiras, exceto o lote final que pode terminar no meio de uma linha. Em execuções interativas, o delta do lote final está vazio quando a mensagem termina em uma quebra de linha, então trate `final`, não um delta não-vazio, como o sinal de fim de mensagem. Em execuções Agent SDK e `claude -p`, a chamada única carrega a mensagem inteira |1577| `delta` | As linhas recém-concluídas desde o lote anterior, incluindo quebras de linha finais. Sempre linhas inteiras, exceto o lote final que pode terminar no meio de uma linha. Em execuções interativas, o delta do lote final está vazio quando a mensagem termina em uma quebra de linha, portanto trate `final`, não um delta não vazio, como o sinal de fim de mensagem. Em execuções do Agent SDK e `claude -p`, a chamada única carrega a mensagem inteira |

1333 1578 

1334```json theme={null}1579```json theme={null}

1335{1580{


1346```1591```

1347 1592 

1348<h4 id="messagedisplay-output">1593<h4 id="messagedisplay-output">

1349 Saída de MessageDisplay1594 Saída MessageDisplay

1350</h4>1595</h4>

1351 1596 

1352Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, hooks MessageDisplay podem retornar `displayContent` para substituir o delta na tela:1597Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, os hooks MessageDisplay podem retornar `displayContent` para substituir o delta na tela:

1353 1598 

1354| Campo | Descrição |1599| Campo | Descrição |

1355| :--------------- | :------------------------------------------------------------ |1600| :--------------- | :------------------------------------------------------------ |

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

1357 1602 

1358Hooks MessageDisplay não têm controle de decisão. Eles não podem bloquear a mensagem ou mudar o que é armazenado na transcrição ou enviado ao Claude.1603Os hooks MessageDisplay não têm controle de decisão. Eles não podem bloquear a mensagem ou alterar o que é armazenado na transcrição ou enviado ao Claude. Claude Code atua em `displayContent` de sua saída JSON e descarta `systemMessage` e `continue`.

1359 1604 

1360Este exemplo remove formatação markdown das respostas de Claude para uma exibição em texto simples. O script lê cada lote de stdin, remove marcadores de negrito e backticks de código inline de `delta` e retorna o resultado como `displayContent`.1605Este exemplo remove formatação markdown das respostas do Claude para uma exibição de texto simples. O script lê cada lote de stdin, remove marcadores em negrito e backticks de código inline de `delta` e retorna o resultado como `displayContent`.

1361 1606 

1362<Tabs>1607<Tabs>

1363 <Tab title="macOS/Linux">1608 <Tab title="macOS/Linux">


1387 #!/bin/bash1632 #!/bin/bash

1388 jq '{hookSpecificOutput: {hookEventName: "MessageDisplay", displayContent: (.delta | gsub("\\*\\*"; "") | gsub("`"; ""))}}'1633 jq '{hookSpecificOutput: {hookEventName: "MessageDisplay", displayContent: (.delta | gsub("\\*\\*"; "") | gsub("`"; ""))}}'

1389 ```1634 ```

1390 

1391 O script precisa de `jq` em seu `PATH`.

1392 </Tab>1635 </Tab>

1393 1636 

1394 <Tab title="Windows (PowerShell)">1637 <Tab title="Windows (PowerShell)">


1418 }1661 }

1419 ```1662 ```

1420 1663 

1421 A flag `-NoProfile` ignora o carregamento de seu perfil PowerShell para que o hook inicie rápido, e `-ExecutionPolicy Bypass` permite que PowerShell execute o arquivo de script local.1664 A flag `-NoProfile` pula o carregamento de seu perfil do PowerShell para que o hook comece rápido, e `-ExecutionPolicy Bypass` permite que o PowerShell execute o arquivo de script local.

1422 1665 

1423 Salve este script em `.claude/hooks/plain-display.ps1` em seu projeto:1666 Salve este script em `.claude/hooks/plain-display.ps1` em seu projeto:

1424 1667 


1435 </Tab>1678 </Tab>

1436</Tabs>1679</Tabs>

1437 1680 

1438Lotes sem markdown passam inalterados. Se o script falhar, por exemplo porque `jq` está faltando, Claude Code exibe o texto original e nota a falha apenas em [saída de debug](#debug-hooks), não na sessão.1681Lotes sem markdown passam inalterados. Se o script falhar, por exemplo porque `jq` está faltando, Claude Code exibe o texto original e nota a falha apenas em [saída de depuração](#debug-hooks), não na sessão.

1439 1682 

1440<h3 id="pretooluse">1683<h3 id="pretooluse">

1441 PreToolUse1684 PreToolUse

1442</h3>1685</h3>

1443 1686 

1444Executa após Claude criar parâmetros de ferramenta e antes de processar a chamada da ferramenta. Corresponde no nome da ferramenta: `Bash`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `WebFetch`, `WebSearch`, `AskUserQuestion`, `ExitPlanMode` e qualquer [nome de ferramenta MCP](#match-mcp-tools).1687Executado após Claude criar parâmetros de ferramenta e antes de processar a chamada de ferramenta. Corresponde a qualquer nome de ferramenta exceto `EndConversation`: ferramentas integradas como `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion` e `ExitPlanMode`, e qualquer [nome de ferramenta MCP](#match-mcp-tools).

1688 

1689Para executar um hook quando um arquivo específico muda no disco, seja qual for o que o escreveu, use [FileChanged](#filechanged) em vez de corresponder a ferramentas de edição de arquivo por nome. Ao contrário de PreToolUse, Claude Code executa hooks FileChanged após a mudança, e eles não têm controle de decisão, portanto não podem bloquear a escrita.

1445 1690 

1446<Warning>1691<Warning>

1447 PreToolUse executa apenas quando Claude chama uma ferramenta. Arquivos que você [referencia com `@` em seu prompt](/docs/pt/common-workflows#reference-files-and-directories) são adicionados sem qualquer chamada de ferramenta: Claude Code insere seus conteúdos enquanto constrói o prompt, então nenhum hook PreToolUse dispara para eles, incluindo hooks correspondendo a `Read`. Para bloquear caminhos específicos de referências `@`, use uma [regra de negação `Read`](/docs/pt/permissions#read-and-edit) em vez disso.1692 PreToolUse é executado apenas quando Claude chama uma ferramenta. Arquivos que você [referencia com `@` em seu prompt](/docs/pt/common-workflows#reference-files-and-directories) são adicionados sem nenhuma chamada de ferramenta: Claude Code insere seu conteúdo ao construir o prompt, portanto nenhum hook PreToolUse é disparado para eles, incluindo hooks correspondentes a `Read`. Para bloquear caminhos específicos de referências `@`, use uma [regra de negação `Read`](/docs/pt/permissions#read-and-edit) em vez disso.

1693 

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

1448</Warning>1695</Warning>

1449 1696 

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

1698 

1699Um [hook de callback do Agent SDK](/docs/pt/agent-sdk/hooks) em `PreToolUse` que excede seu tempo limite bloqueia a chamada de ferramenta, e Claude recebe um resultado de erro nomeando o tempo limite. Uma negação explícita retornada por outro hook ainda tem precedência.

1451 1700 

1452<h4 id="pretooluse-input">1701<h4 id="pretooluse-input">

1453 Entrada de PreToolUse1702 Entrada PreToolUse

1454</h4>1703</h4>

1455 1704 

1456Além dos [campos de entrada comuns](#common-input-fields), hooks PreToolUse recebem `tool_name`, `tool_input` e `tool_use_id`. Os campos `tool_input` dependem da ferramenta:1705Além dos [campos de entrada comuns](#common-input-fields), os hooks PreToolUse recebem `tool_name`, `tool_input` e `tool_use_id`.

1706 

1707Para uma [ferramenta MCP](#match-mcp-tools), a entrada também carrega `mcp_server`, um objeto com o `name` do servidor e uma `source` que diz de onde veio a definição do servidor. Os valores `source` incluem `plugin`, `sdk` e escopos de configuração como `user` e `project`. [`McpServerProvenance`](/docs/pt/agent-sdk/typescript#mcpserverprovenance) na referência do Agent SDK lista todos eles e diz como tratar um que você não reconhece. Baseie decisões de confiança em `source` em vez de em `name` ou no prefixo de nome de ferramenta `mcp__<server>__`. O campo `mcp_server` requer Claude Code v2.1.274 ou posterior.

1708 

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

1710 

1711* Claude Code expande `~` e caminhos relativos antes dos hooks serem executados, portanto um hook que corresponde a caminhos não pode ser contornado via `~` ou uma ortografia relativa do mesmo caminho

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

1713* Uma comparação escrita com barras para frente, como uma verificação `/src/`, nunca corresponde a um caminho de barra invertida, e a chamada de ferramenta prossegue como se o hook não tivesse nada a bloquear

1714* Normalize separadores antes de comparar: `FILE_PATH="${FILE_PATH//\\//}"` em Bash, ou `file_path.replace("\\", "/")` em Python, depois corresponda a um segmento de caminho como `/src/` em vez de ancorar com `^`, já que o caminho é absoluto

1715 

1716Uma chamada `Write` no Windows entrega:

1717 

1718```json theme={null}

1719{

1720 "hook_event_name": "PreToolUse",

1721 "tool_name": "Write",

1722 "tool_input": {

1723 "file_path": "C:\\project\\src\\index.ts",

1724 "content": "..."

1725 },

1726 ...

1727}

1728```

1729 

1730Os campos `tool_input` dependem da ferramenta:

1731 

1732<a id="bash" />

1457 1733 

1458<h5 id="bash">1734<h5 id="bash">

1459 Bash1735 Bash

1460</h5>1736</h5>

1461 1737 

1462Executa comandos shell.1738Executa comandos de shell.

1463 1739 

1464| Campo | Tipo | Exemplo | Descrição |1740| Campo | Tipo | Exemplo | Descrição |

1465| :------------------ | :------ | :----------------- | :------------------------------------------------------------------------------------------------------------------------------------------------ |1741| :------------------ | :------ | :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- |

1466| `command` | string | `"npm test"` | O comando shell a executar |1742| `command` | string | `"npm test"` | O comando de shell a executar |

1467| `description` | string | `"Run test suite"` | Descrição opcional do que o comando faz |1743| `description` | string | `"Run test suite"` | Descrição opcional do que o comando faz |

1468| `timeout` | number | `120000` | Timeout opcional em milissegundos. Valores acima do [máximo](/docs/pt/tools-reference#bash-tool-behavior) são reduzidos ao máximo em vez de rejeitados |1744| `timeout` | number | `120000` | Tempo limite opcional em milissegundos. Valores acima do [máximo](/docs/pt/tools-reference#bash-tool-behavior) são reduzidos ao máximo em vez de rejeitados |

1469| `run_in_background` | boolean | `false` | Se o comando deve executar em background |1745| `run_in_background` | boolean | `false` | Se o comando deve ser executado em segundo plano |

1746 

1747Quando um comando Bash muda arquivos em um repositório Git, Claude Code pode registrar o que mudou. Ele registra as mudanças em cada modo de permissão quando a configuração [`bashEditDiffEnabled`](/docs/pt/settings-reference#basheditdiffenabled) ativa o registro; a entrada dessa configuração diz quais arquivos podem defini-la. Caso contrário, ele as registra apenas em modo automático e modo `bypassPermissions`, e apenas quando Claude Code direciona Claude a editar arquivos através de Bash. Defina `bashEditDiffEnabled` como `false` para desativar o registro. Comandos de fundo e comandos somente leitura não carregam diff.

1748 

1749Seu [hook PostToolUse](#posttooluse) então recebe os arquivos alterados em `tool_response.bashEditDiff`. A lista cobre o que mudou sob o repositório enquanto o comando era executado. Arquivos que Git ignora e arquivos em submódulos não são listados. Requer Claude Code v2.1.269 ou posterior.

1750 

1751<Note>

1752 A lista é melhor esforço e em beta público. Claude Code pode perder uma mudança, incluir um arquivo que outro processo mudou ao mesmo tempo, ou parar em seus limites de tamanho. A forma do campo pode mudar. Use a lista para encontrar o que revisar, não para impor uma política.

1753</Note>

1754 

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

1756 

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

1758| :------------- | :------ | :------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1759| `changedFiles` | array | `["/path/to/src/app.ts"]` | Caminhos absolutos dos arquivos que o comando mudou, no máximo 200. Presente sempre que `files` contém um diff ou `moreFiles` está acima de zero |

1760| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | Diffs de até 5 arquivos alterados, para exibição. `created` ou `deleted` é `true` para um arquivo que o comando adicionou ou removeu |

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

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

1763| `skipped` | boolean | `true` | Definido para um comando Git que move a árvore de trabalho, como `git checkout` ou `git stash`, portanto Claude Code não obtém diff |

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

1765 

1766<a id="powershell" />

1767 

1768<h5 id="powershell">

1769 PowerShell

1770</h5>

1771 

1772Executa comandos do PowerShell. Veja a [ferramenta PowerShell](/docs/pt/tools-reference#powershell-tool) para disponibilidade por plataforma.

1773 

1774Os campos correspondem à ferramenta Bash, com a string de comando em `command`:

1775 

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

1777| :------------------ | :------ | :------------------------- | :----------------------------------------------- |

1778| `command` | string | `"Get-ChildItem -Recurse"` | O comando do PowerShell a executar |

1779| `description` | string | `"List files recursively"` | Descrição opcional do que o comando faz |

1780| `timeout` | number | `120000` | Tempo limite opcional em milissegundos |

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

1782 

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

1784 

1785* No Windows, onde quer que a ferramenta PowerShell esteja habilitada, Claude trata o PowerShell como o shell primário e roteia comandos de shell através dele.

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

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

1470 1788 

1471<h5 id="write">1789<h5 id="write">

1472 Write1790 Write


1508 Glob1826 Glob

1509</h5>1827</h5>

1510 1828 

1511Encontra arquivos correspondendo a um padrão glob.1829Encontra arquivos correspondentes a um padrão glob.

1512 1830 

1513| Campo | Tipo | Exemplo | Descrição |1831| Campo | Tipo | Exemplo | Descrição |

1514| :-------- | :----- | :--------------- | :------------------------------------------------------------------------- |1832| :-------- | :----- | :--------------- | :---------------------------------------------------------------------- |

1515| `pattern` | string | `"**/*.ts"` | Padrão glob para corresponder arquivos contra |1833| `pattern` | string | `"**/*.ts"` | Padrão glob para corresponder arquivos |

1516| `path` | string | `"/path/to/dir"` | Diretório opcional para pesquisar. Padrão para diretório de trabalho atual |1834| `path` | string | `"/path/to/dir"` | Diretório opcional para pesquisar. Padrão é diretório de trabalho atual |

1517 1835 

1518<h5 id="grep">1836<h5 id="grep">

1519 Grep1837 Grep


1522Pesquisa conteúdo de arquivo com expressões regulares.1840Pesquisa conteúdo de arquivo com expressões regulares.

1523 1841 

1524| Campo | Tipo | Exemplo | Descrição |1842| Campo | Tipo | Exemplo | Descrição |

1525| :------------ | :------ | :--------------- | :----------------------------------------------------------------------------------- |1843| :------------ | :------ | :--------------- | :-------------------------------------------------------------------------------- |

1526| `pattern` | string | `"TODO.*fix"` | Padrão de expressão regular para pesquisar |1844| `pattern` | string | `"TODO.*fix"` | Padrão de expressão regular para pesquisar |

1527| `path` | string | `"/path/to/dir"` | Arquivo ou diretório opcional para pesquisar |1845| `path` | string | `"/path/to/dir"` | Arquivo ou diretório opcional para pesquisar |

1528| `glob` | string | `"*.ts"` | Padrão glob opcional para filtrar arquivos |1846| `glob` | string | `"*.ts"` | Padrão glob opcional para filtrar arquivos |

1529| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"` ou `"count"`. Padrão para `"files_with_matches"` |1847| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"` ou `"count"`. Padrão é `"files_with_matches"` |

1530| `-i` | boolean | `true` | Pesquisa insensível a maiúsculas |1848| `-i` | boolean | `true` | Pesquisa insensível a maiúsculas e minúsculas |

1531| `multiline` | boolean | `false` | Ativar correspondência multilinha |1849| `multiline` | boolean | `false` | Habilitar correspondência multilinha |

1532 1850 

1533<h5 id="webfetch">1851<h5 id="webfetch">

1534 WebFetch1852 WebFetch

1535</h5>1853</h5>

1536 1854 

1537Busca e processa conteúdo web.1855Busca e processa conteúdo da web.

1538 1856 

1539| Campo | Tipo | Exemplo | Descrição |1857| Campo | Tipo | Exemplo | Descrição |

1540| :------- | :----- | :---------------------------- | :------------------------------------ |1858| :------- | :----- | :---------------------------- | :--------------------------------------- |

1541| `url` | string | `"https://example.com/api"` | URL para buscar conteúdo |1859| `url` | string | `"https://example.com/api"` | URL para buscar conteúdo |

1542| `prompt` | string | `"Extract the API endpoints"` | Prompt a executar no conteúdo buscado |1860| `prompt` | string | `"Extract the API endpoints"` | Prompt para executar no conteúdo buscado |

1543 1861 

1544<h5 id="websearch">1862<h5 id="websearch">

1545 WebSearch1863 WebSearch


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

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

1568 1886 

1569Em `PostToolUse`, `tool_response` para uma chamada Agent concluída carrega o texto final do subagente junto com telemetria de uso. Leia esses campos para registrar custo por subagente de um hook:1887Quando uma chamada Agent em primeiro plano é concluída, seu [hook PostToolUse](#posttooluse) recebe o resultado do subagente e telemetria de execução em `tool_response`. Leia esses campos para inspecionar a execução; para rollups de token e custo entre subagentes, use os [contadores de token e custo](/docs/pt/monitoring-usage#token-counter) filtrados para `query_source` `"subagent"`, já que `totalTokens` e `usage` cobrem apenas a solicitação final:

1570 1888 

1571| Campo | Tipo | Exemplo | Descrição |1889| Campo | Tipo | Exemplo | Descrição |

1572| :------------------ | :----- | :---------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1890| :------------------ | :----- | :---------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

1575| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Os blocos de texto final do subagente |1893| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Os blocos de texto final do subagente, ou, para um subagente cujo relatório passa por `SubagentHandback`, uma nota breve sobre esse hand-back em seu lugar |

1576| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modelo que o subagente executou, que pode diferir do modelo solicitado. Requer Claude Code v2.1.174 ou posterior |1894| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modelo em que o subagente começou, que pode diferir do modelo solicitado |

1577| `totalTokens` | number | `12450` | Total de tokens cobrados através dos turnos do subagente |1895| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Modelos usados em ordem, com repetições consecutivas colapsadas; definido apenas quando o modelo foi trocado durante a execução. Requer Claude Code v2.1.212 ou posterior |

1896| `totalTokens` | number | `12450` | Contagem de tokens da solicitação final da API do subagente: tokens de entrada, saída e cache combinados. Isso não é um total em toda a execução |

1578| `totalDurationMs` | number | `48211` | Duração de relógio de parede da execução do subagente |1897| `totalDurationMs` | number | `48211` | Duração de relógio de parede da execução do subagente |

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

1580| `usage` | object | `{"input_tokens": 8320, ...}` | Divisão de tokens por tipo: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |1899| `usage` | object | `{"input_tokens": 8320, ...}` | Divisão de tokens por tipo da solicitação final da API: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |

1581 1900 

1582Para subagentes em background, a ferramenta retorna imediatamente após lançar, então `tool_response` não carrega campos de uso. Tem `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` e `resolvedModel`.1901No Claude Code v2.1.271 ou posterior, um subagente que é executado com a ferramenta [`SubagentHandback`](/docs/pt/tools-reference), que Claude Code fornece em [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), entrega seu relatório através dessa ferramenta em vez de retorná-lo como texto. O campo `content` de seu resultado `completed` então carrega uma nota breve sobre esse hand-back em vez do relatório em si. Para ler o relatório, corresponda a um hook `PreToolUse` ou `PostToolUse` em `SubagentHandback` e leia `tool_input.message`.

1583 1902 

1584O campo `resolvedModel` nomeia o modelo que o subagente realmente executa, que pode diferir do valor `model` em `tool_input`, como quando `availableModels` ou outra sobrescrita se aplica. Requer Claude Code v2.1.174 ou posterior.1903Para subagentes em segundo plano, a ferramenta retorna quando a tarefa se move para o fundo, portanto `tool_response` não carrega campos de uso: um lançamento em segundo plano retorna imediatamente, e uma tarefa em primeiro plano que Claude Code coloca em segundo plano durante a execução retorna nessa transição. Ele tem `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` e `resolvedModel`.

1904 

1905Em uma resposta `completed`, `resolvedModel` nomeia o modelo em que o subagente começou, que pode diferir do valor `model` em `tool_input`, como quando `availableModels` ou outra substituição se aplica. Em uma resposta `async_launched`, `resolvedModel` nomeia o modelo em uso quando o agente se moveu para o fundo, portanto uma troca que aconteceu antes de colocar em segundo plano é refletida lá. `modelsUsed` e o comportamento `resolvedModel` no tempo de colocação em segundo plano requerem Claude Code v2.1.212 ou posterior.

1585 1906 

1586<a id="askuserquestion" />1907<a id="askuserquestion" />

1587 1908 


1592Faz ao usuário uma a quatro perguntas de múltipla escolha.1913Faz ao usuário uma a quatro perguntas de múltipla escolha.

1593 1914 

1594| Campo | Tipo | Exemplo | Descrição |1915| Campo | Tipo | Exemplo | Descrição |

1595| :---------- | :----- | :----------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1916| :---------- | :----- | :----------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1596| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | Perguntas a apresentar, cada uma com uma string `question`, `header` curto, array `options` e flag `multiSelect` opcional |1917| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | Perguntas a apresentar, cada uma com uma string `question`, `header` curto, array `options` e flag `multiSelect` opcional |

1597| `answers` | object | `{"Which framework?": "React"}` | Opcional. Mapeia texto de pergunta para rótulo de opção selecionada. Respostas multi-select juntam rótulos com vírgulas. Claude não define este campo; forneça-o via `updatedInput` para responder programaticamente |1918| `answers` | object | `{"Which framework?": "React"}` | Opcional. Mapeia texto de pergunta para rótulo de opção selecionada. Respostas de seleção múltipla unem rótulos com vírgulas. Claude não define este campo; forneça-o via `updatedInput` para responder programaticamente |

1598 1919 

1599<h5 id="exitplanmode">1920<h5 id="exitplanmode">

1600 ExitPlanMode1921 ExitPlanMode

1601</h5>1922</h5>

1602 1923 

1603Apresenta um plano e pede ao usuário para aprová-lo antes do Claude sair do [modo de plano](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode). Claude escreve o plano em um arquivo no disco antes de chamar a ferramenta, então o `tool_input` literal do modelo é tipicamente vazio. Claude Code injeta o conteúdo do plano e o caminho do arquivo antes de passar a entrada para hooks.1924Apresenta um plano e pede ao usuário para aprová-lo antes de Claude sair do [modo de plano](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode). Claude escreve o plano em um arquivo no disco antes de chamar a ferramenta, portanto o `tool_input` literal do modelo é tipicamente vazio. Claude Code injeta o conteúdo do plano e o caminho do arquivo antes de passar a entrada para hooks.

1604 1925 

1605| Campo | Tipo | Exemplo | Descrição |1926| Campo | Tipo | Exemplo | Descrição |

1606| :--------------- | :----- | :------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1927| :--------------- | :----- | :------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1607| `plan` | string | `"## Refactor auth\n1. Extract..."` | Conteúdo do plano em Markdown. Injetado do arquivo de plano no disco |1928| `plan` | string | `"## Refactor auth\n1. Extract..."` | Conteúdo do plano em Markdown. Injetado do arquivo de plano no disco |

1608| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Caminho para o arquivo de plano. Injetado |1929| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Caminho para o arquivo de plano. Injetado |

1609| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Deprecated. Claude Code aceita o campo mas o ignora. Antes de v2.1.205, ele carregava permissões baseadas em prompt que Claude estava solicitando para implementar o plano |1930| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Descontinuado. Claude Code aceita o campo mas o ignora. Antes da v2.1.205, ele carregava permissões baseadas em prompt que Claude solicitou para implementar o plano |

1610 1931 

1611Em `PostToolUse`, `tool_response` é um objeto com campos `plan` e `filePath` contendo o plano aprovado, mais flags de status interno. Leia `tool_response.plan` para o conteúdo do plano em vez de re-ler o arquivo do disco.1932Em `PostToolUse`, `tool_response` é um objeto com campos `plan` e `filePath` contendo o plano aprovado, mais flags de status interno. Leia `tool_response.plan` para o conteúdo do plano em vez de reler o arquivo do disco.

1612 1933 

1613<h4 id="pretooluse-decision-control">1934<h4 id="pretooluse-decision-control">

1614 Controle de decisão de PreToolUse1935 Controle de decisão PreToolUse

1615</h4>1936</h4>

1616 1937 

1617Hooks `PreToolUse` podem controlar se uma chamada de ferramenta prossegue. Diferentemente de outros hooks que usam um campo `decision` de nível superior, PreToolUse retorna sua decisão dentro de um objeto `hookSpecificOutput`. Isso oferece controle mais rico: quatro resultados (permitir, negar, pedir ou adiar) além da capacidade de modificar entrada de ferramenta antes da execução.1938Os hooks `PreToolUse` podem controlar se uma chamada de ferramenta prossegue. Ao contrário de outros hooks que usam um campo `decision` de nível superior, PreToolUse retorna sua decisão dentro de um objeto `hookSpecificOutput`. Isso lhe dá controle mais rico: quatro resultados (permitir, negar, perguntar ou adiar) mais a capacidade de modificar a entrada da ferramenta antes da execução.

1618 1939 

1619| Campo | Descrição |1940| Campo | Descrição |

1620| :------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1941| :------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1621| `permissionDecision` | `"allow"` ignora o prompt de permissão, exceto para [ferramentas que requerem interação do usuário](#pretooluse-decision-control) e ferramentas conectoras [sua organização definiu para `ask`](/docs/pt/mcp#organization-controls-on-connector-tools). `"deny"` previne a chamada da ferramenta. `"ask"` solicita ao usuário confirmar. `"defer"` sai graciosamente para que a ferramenta possa ser retomada mais tarde. [Regras de negação e pergunta](/docs/pt/permissions#manage-permissions) ainda são avaliadas independentemente do que o hook retorna |1942| `permissionDecision` | `"allow"` pula o prompt de permissão, exceto para as [ações que nenhum modo auto-aprova](/docs/pt/permission-modes#actions-no-mode-auto-approves) e para `AskUserQuestion` e `ExitPlanMode`, que precisam de [`updatedInput` emparelhado com ele](#allow-with-updatedinput). `"deny"` impede a chamada de ferramenta. `"ask"` solicita ao usuário para confirmar. `"defer"` sai graciosamente para que a ferramenta possa ser retomada mais tarde. [Regras de negação e pergunta](/docs/pt/permissions#manage-permissions) ainda são avaliadas independentemente do que o hook retorna |

1622| `permissionDecisionReason` | Para `"allow"` e `"ask"`, mostrado ao usuário mas não ao Claude. Para `"deny"`, mostrado ao Claude. Para `"defer"`, ignorado |1943| `permissionDecisionReason` | Para `"allow"` e `"ask"`, mostrado ao usuário mas não ao Claude. Para `"deny"`, mostrado ao Claude. Para `"defer"`, ignorado |

1623| `updatedInput` | Modifica os parâmetros de entrada da ferramenta antes da execução. Substitui o objeto de entrada inteiro, então inclua campos inalterados junto com os modificados. Combine com `"allow"` para aprovação automática ou `"ask"` para mostrar a entrada modificada ao usuário. Para `"defer"`, ignorado |1944| `updatedInput` | Modifica os parâmetros de entrada da ferramenta antes da execução. Substitui o objeto de entrada inteiro, portanto inclua campos inalterados ao lado dos modificados. Claude Code avalia regras de permissão e a elegibilidade de [auto-fundo](/docs/pt/tools-reference#background-commands) de um comando Bash contra a entrada que seu hook retorna, não a entrada que Claude enviou. Combine com `"allow"` para auto-aprovar, ou `"ask"` para mostrar a entrada modificada ao usuário. Para `"defer"`, ignorado |

1624| `additionalContext` | String adicionada ao contexto de Claude junto com o resultado da ferramenta. Ignorado quando `permissionDecision` é `"defer"`. Consulte [Adicionar contexto para Claude](#add-context-for-claude) |1945| `additionalContext` | String adicionada ao contexto do Claude ao lado do resultado da ferramenta. Ignorado quando `permissionDecision` é `"defer"`. Veja [Adicionar contexto para Claude](#add-context-for-claude) |

1946 

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

1625 1948 

1626Quando múltiplos hooks PreToolUse retornam decisões diferentes, a precedência é `deny` > `defer` > `ask` > `allow`.1949Um hook que bloqueia ao sair com 2 roteia da mesma forma que `"deny"`: Claude vê a mensagem stderr como o motivo da negação.

1627 1950 

1628Quando um hook retorna `"ask"`, o diálogo de permissão exibido ao usuário inclui um rótulo identificando de onde o hook veio: por exemplo, `[User]`, `[Project]`, `[Plugin]` ou `[Local]`. Isso ajuda os usuários a entender qual fonte de configuração está solicitando confirmação.1951Quando um hook retorna `"ask"`, o prompt de permissão exibido ao usuário inclui um rótulo identificando de onde o hook veio: `[settings]` para um hook de qualquer arquivo de configurações ou de frontmatter de agente, `[plugin:<name>]` para um hook de plugin, ou `[skill]` para um hook de frontmatter de skill. Isso ajuda os usuários a entender qual fonte de configuração está solicitando confirmação.

1952 

1953Um `"ask"` de um hook também força um prompt de permissão em [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode): o classificador ainda pode negar a chamada de ferramenta, mas não pode aprovar a chamada silenciosamente. Antes da v2.1.211, o classificador poderia aprovar um comando Bash executado fora do [sandbox](/docs/pt/sandboxing) sem mostrar o prompt que o hook solicitou; o classificador ainda aplicava suas próprias regras de segurança a esse comando, e uma negação de hook `"deny"` era sempre honrada.

1629 1954 

1630```json theme={null}1955```json theme={null}

1631{1956{


1641}1966}

1642```1967```

1643 1968 

1644`AskUserQuestion` e `ExitPlanMode` requerem interação do usuário e normalmente bloqueiam em [modo não-interativo](/docs/pt/headless) com a flag `-p`. Retornar `permissionDecision: "allow"` junto com `updatedInput` satisfaz esse requisito: o hook lê a entrada da ferramenta de stdin, coleta a resposta através de sua própria UI e a retorna em `updatedInput` para que a ferramenta execute sem solicitar. Retornar `"allow"` sozinho não é suficiente para essas ferramentas. Para `AskUserQuestion`, ecoar de volta o array `questions` original e adicionar um objeto [`answers`](#askuserquestion) mapeando o texto de cada pergunta para a resposta escolhida.1969<span id="allow-with-updatedinput" />

1645 1970 

1646Ferramentas conectoras [sua organização definiu para `ask`](/docs/pt/mcp#organization-controls-on-connector-tools) solicitam mesmo quando um hook retorna `"allow"`.1971Em [modo não interativo](/docs/pt/headless) com a flag `-p`, Claude Code oferece `AskUserQuestion` e `ExitPlanMode` apenas quando a execução tem um [host de permissão](/docs/pt/headless#turn-off-permission-prompts-in-unattended-runs) para receber o prompt, como um callback `canUseTool` do Agent SDK. Essas ferramentas requerem interação do usuário. Retornar `permissionDecision: "allow"` junto com `updatedInput` satisfaz esse requisito: o hook lê a entrada da ferramenta de stdin, coleta a resposta através de sua própria UI e a retorna em `updatedInput` para que a ferramenta seja executada sem solicitar. Retornar `"allow"` sozinho não é suficiente para essas ferramentas. Para `AskUserQuestion`, repita o array `questions` original e adicione um objeto [`answers`](#askuserquestion) mapeando o texto de cada pergunta para a resposta escolhida.

1647 1972 

1648A partir de v2.1.199, uma ferramenta MCP cujo servidor a marca com [`_meta["anthropic/requiresUserInteraction"]`](/docs/pt/mcp#require-approval-for-a-specific-tool) é mais rigorosa: um hook não pode pular seu prompt de aprovação com `"allow"`, com ou sem `updatedInput`, porque Claude Code não pode confirmar que o hook coletou a interação que a ferramenta precisa.1973A partir da v2.1.199, uma ferramenta MCP cujo servidor a marca com [`_meta["anthropic/requiresUserInteraction"]`](/docs/pt/mcp#require-approval-for-a-specific-tool) é mais rigorosa: um hook não pode pular seu prompt de aprovação com `"allow"`, com ou sem `updatedInput`, porque Claude Code não pode confirmar que o hook coletou a interação que a ferramenta precisa.

1649 1974 

1650<Note>1975<Note>

1651 PreToolUse anteriormente usava campos `decision` e `reason` de nível superior, mas esses estão deprecados para este evento. Use `hookSpecificOutput.permissionDecision` e `hookSpecificOutput.permissionDecisionReason` em vez disso. Os valores deprecados `"approve"` e `"block"` mapeiam para `"allow"` e `"deny"` respectivamente. Outros eventos como PostToolUse e Stop continuam usando `decision` e `reason` de nível superior como seu formato atual.1976 PreToolUse anteriormente usava campos `decision` e `reason` de nível superior, mas estes estão descontinuados para este evento. Use `hookSpecificOutput.permissionDecision` e `hookSpecificOutput.permissionDecisionReason` em vez disso. Os valores descontinuados `"approve"` e `"block"` mapeiam para `"allow"` e `"deny"` respectivamente. Outros eventos como PostToolUse e Stop continuam usando `decision` e `reason` de nível superior como seu formato atual.

1652</Note>1977</Note>

1653 1978 

1654<h4 id="defer-a-tool-call-for-later">1979<h4 id="defer-a-tool-call-for-later">

1655 Adiar uma chamada de ferramenta para mais tarde1980 Adiar uma chamada de ferramenta para mais tarde

1656</h4>1981</h4>

1657 1982 

1658`"defer"` é para integrações que executam `claude -p` como um subprocesso e leem sua saída JSON, como um aplicativo Agent SDK ou uma UI personalizada construída em cima do Claude Code. Permite que esse processo chamador pause Claude em uma chamada de ferramenta, colete entrada através de sua própria interface e retome onde parou. Claude Code honra este valor apenas em [modo não-interativo](/docs/pt/headless) com a flag `-p`. Em sessões interativas ele registra um aviso e ignora o resultado do hook.1983`"defer"` é para integrações que executam `claude -p` como um subprocesso e leem sua saída JSON, como um aplicativo Agent SDK ou uma UI personalizada construída em cima de Claude Code. Permite que esse processo de chamada pause Claude em uma chamada de ferramenta, colete entrada através de sua própria interface e retome onde parou. Claude Code honra este valor apenas em [modo não interativo](/docs/pt/headless) com a flag `-p`. Em sessões interativas, ele registra um aviso e ignora o resultado do hook.

1659 1984 

1660A ferramenta `AskUserQuestion` é o caso típico: Claude quer fazer uma pergunta ao usuário, mas não há terminal para responder. A viagem de ida e volta funciona assim:1985A ferramenta `AskUserQuestion` é o caso típico: Claude quer fazer uma pergunta ao usuário, mas não há terminal para responder. Uma execução `-p` oferece `AskUserQuestion` apenas quando tem um [host de permissão](/docs/pt/headless#turn-off-permission-prompts-in-unattended-runs), como uma ferramenta MCP que você passa com `--permission-prompt-tool`, portanto comece a execução com uma. A viagem de ida e volta funciona assim:

1661 1986 

16621. Claude chama `AskUserQuestion`. O hook `PreToolUse` dispara.19871. Claude chama `AskUserQuestion`. O hook `PreToolUse` é disparado.

16632. O hook retorna `permissionDecision: "defer"`. A ferramenta não executa. O processo sai com `stop_reason: "tool_deferred"` e a chamada de ferramenta pendente preservada na transcrição.19882. O hook retorna `permissionDecision: "defer"`. A ferramenta não é executada. O processo sai com `stop_reason: "tool_deferred"` e a chamada de ferramenta pendente preservada na transcrição.

16643. O processo chamador lê `deferred_tool_use` do resultado SDK, superficializa a pergunta em sua própria UI e espera por uma resposta.19893. O processo de chamada lê `deferred_tool_use` do resultado do SDK, exibe a pergunta em sua própria UI e espera por uma resposta.

16654. O processo chamador executa `claude -p --resume <session-id>`. A mesma chamada de ferramenta dispara `PreToolUse` novamente.19904. O processo de chamada executa `claude -p --resume <session-id>` com o mesmo host de permissão. A mesma chamada de ferramenta dispara `PreToolUse` novamente.

16665. O hook retorna `permissionDecision: "allow"` com a resposta em `updatedInput`. A ferramenta executa e Claude continua.19915. O hook retorna `permissionDecision: "allow"` com a resposta em `updatedInput`. A ferramenta é executada e Claude continua.

1667 1992 

1668O campo `deferred_tool_use` carrega o `id`, `name` e `input` da ferramenta. O `input` são os parâmetros que Claude gerou para a chamada de ferramenta, capturados antes da execução:1993O campo `deferred_tool_use` carrega o `id`, `name` e `input` da ferramenta. O `input` são os parâmetros que Claude gerou para a chamada de ferramenta, capturados antes da execução:

1669 1994 


1681}2006}

1682```2007```

1683 2008 

1684Não há timeout ou limite de tentativas. A sessão permanece no disco até que você a retome, sujeita à varredura de retenção [`cleanupPeriodDays`](/docs/pt/settings#available-settings) que deleta arquivos de sessão após 30 dias por padrão. Se a resposta não estiver pronta quando você retomar, o hook pode retornar `"defer"` novamente e o processo sai da mesma forma. O processo chamador controla quando quebrar o loop eventualmente retornando `"allow"` ou `"deny"` do hook.2009Não há tempo limite ou limite de tentativas. A sessão permanece no disco até que você a retome, sujeita à varredura de retenção [`cleanupPeriodDays`](/docs/pt/settings-reference#cleanupperioddays), que exclui arquivos de sessão após 30 dias por padrão, seguindo as [regras de varredura de retenção](/docs/pt/claude-directory#cleaned-up-automatically). Se a resposta não estiver pronta quando você retomar, o hook pode retornar `"defer"` novamente e o processo sai da mesma forma. O processo de chamada controla quando quebrar o loop eventualmente retornando `"allow"` ou `"deny"` do hook.

1685 2010 

1686`"defer"` apenas funciona quando Claude faz uma única chamada de ferramenta no turno. Se Claude faz várias chamadas de ferramenta de uma vez, `"defer"` é ignorado com um aviso e a ferramenta prossegue através do fluxo de permissão normal. A restrição existe porque resume pode apenas re-executar uma ferramenta: não há forma de adiar uma chamada de um lote sem deixar as outras não resolvidas.2011`"defer"` funciona apenas quando Claude faz uma única chamada de ferramenta no turno. Se Claude faz várias chamadas de ferramenta de uma vez, `"defer"` é ignorado com um aviso e a ferramenta prossegue através do fluxo de permissão normal. A restrição existe porque retomar pode apenas re-executar uma ferramenta: não há maneira de adiar uma chamada de um lote sem deixar as outras não resolvidas.

1687 2012 

1688Se a ferramenta adiada não estiver mais disponível quando você retomar, o processo sai com `stop_reason: "tool_deferred_unavailable"` e `is_error: true` antes do hook disparar. Isso acontece quando um servidor MCP que forneceu a ferramenta não está conectado para a sessão retomada. O payload `deferred_tool_use` ainda é incluído para que você possa identificar qual ferramenta desapareceu.2013Se a ferramenta adiada não estiver mais disponível quando você retomar, o processo sai com `stop_reason: "tool_deferred_unavailable"` e `is_error: true` antes do hook ser disparado. Isso acontece quando um servidor MCP que forneceu a ferramenta não está conectado para a sessão retomada. O payload `deferred_tool_use` ainda é incluído para que você possa identificar qual ferramenta desapareceu.

1689 2014 

1690<Note>2015<Note>

1691 `--resume` restaura o modo de permissão que estava ativo quando a ferramenta foi adiada, então você não precisa passar `--permission-mode` novamente. As exceções são `plan` e `bypassPermissions`, que nunca são transportados. Passar `--permission-mode` explicitamente na retomada sobrescreve o valor restaurado.2016 Para retomar uma sessão adiada em modo de plano, passe [`--permission-prompt-tool`](/docs/pt/cli-reference#cli-flags) junto com `--resume` para que Claude Code possa apresentar o plano para aprovação. Sem ele, Claude Code não restaura o modo de plano. Requer Claude Code v2.1.246 ou posterior.

2017 

2018 Quando você retoma com `-p`, Claude Code não restaura nenhum outro modo de permissão armazenado. Ele inicia a execução no modo de permissão que uma nova execução `claude -p` iniciaria, portanto passe `--permission-mode` ou `--dangerously-skip-permissions` novamente se a sessão adiada usou uma. Quando você retoma com `claude --resume <session-id>` sem `-p`, Claude Code restaura o modo de permissão armazenado, com as exceções listadas em [modo de permissão ao retomar](/docs/pt/sessions#permission-mode-on-resume).

1692</Note>2019</Note>

1693 2020 

1694<h3 id="permissionrequest">2021<h3 id="permissionrequest">

1695 PermissionRequest2022 PermissionRequest

1696</h3>2023</h3>

1697 2024 

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

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

2027 

2028Use este evento quando você precisa de um sinal no momento em que Claude pede permissão para usar uma ferramenta. Claude Code executa um hook [Notification](#notification) com o tipo `permission_prompt` apenas após o prompt ter esperado cerca de seis segundos.

2029 

2030Claude Code não executa hooks PermissionRequest para a [solicitação de rede](/docs/pt/sandboxing#network-isolation) de um comando em sandbox. Para obter um sinal para esse prompt, use o tipo de notificação `permission_prompt`.

1700 2031 

1701Corresponde no nome da ferramenta, mesmos valores que PreToolUse.2032Corresponde ao nome da ferramenta, mesmos valores que PreToolUse.

1702 2033 

1703<h4 id="permissionrequest-input">2034<h4 id="permissionrequest-input">

1704 Entrada de PermissionRequest2035 Entrada PermissionRequest

1705</h4>2036</h4>

1706 2037 

1707Hooks PermissionRequest recebem campos `tool_name` e `tool_input` como hooks PreToolUse, mas sem `tool_use_id`. Um array `permission_suggestions` opcional contém as opções "sempre permitir" que o usuário normalmente veria no diálogo de permissão. A diferença é quando o hook dispara: hooks PermissionRequest executam quando um diálogo de permissão está prestes a ser mostrado ao usuário, enquanto hooks PreToolUse executam antes da execução da ferramenta independentemente do status de permissão.2038Os hooks PermissionRequest recebem campos `tool_name` e `tool_input` como hooks PreToolUse, mas sem `tool_use_id`. Para uma ferramenta MCP, eles também recebem o objeto [`mcp_server`](#pretooluse-input). Um array `permission_suggestions` opcional contém as [atualizações de permissão](#permission-update-entries) que Claude Code sugere para esta solicitação, como adicionar uma regra de permissão ou alterar o modo de permissão.

2039 

2040O array `permission_suggestions` não é uma lista exata das opções que você vê, porque cada diálogo de permissão constrói suas próprias opções. Alguns diálogos, como o para edições de arquivo, não leem o array e derivam suas opções da solicitação em si. Um diálogo que o faz pode ainda reter uma opção cuja sugestão permanece no array, por exemplo quando [`allowManagedPermissionRulesOnly`](/docs/pt/settings-reference#allowmanagedpermissionrulesonly) oculta opções de salvamento de regra. Ele também pode oferecer opções que não têm entrada de sugestão, como [**Yes, and switch to auto mode**](/docs/pt/permission-modes#switch-permission-modes), que altera o modo de permissão diretamente em vez de através de uma atualização de permissão.

2041 

2042Os hooks PreToolUse são executados antes de cada chamada de ferramenta, independentemente de precisar de permissão. Os hooks PermissionRequest são executados apenas quando Claude Code está prestes a pedir permissão, ou quando de outra forma auto-negaria uma chamada que não pode solicitar. Nenhum evento é disparado para [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior).

1708 2043 

1709```json theme={null}2044```json theme={null}

1710{2045{


1730```2065```

1731 2066 

1732<h4 id="permissionrequest-decision-control">2067<h4 id="permissionrequest-decision-control">

1733 Controle de decisão de PermissionRequest2068 Controle de decisão PermissionRequest

1734</h4>2069</h4>

1735 2070 

1736Hooks `PermissionRequest` podem permitir ou negar solicitações de permissão. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar um objeto `decision` com esses campos específicos do evento:2071Os hooks `PermissionRequest` podem permitir ou negar solicitações de permissão. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar um objeto `decision` com esses campos específicos do evento:

1737 2072 

1738| Campo | Descrição |2073| Campo | Descrição |

1739| :------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2074| :------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

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

1741| `updatedInput` | Apenas para `"allow"`: modifica os parâmetros de entrada da ferramenta antes da execução. Substitui o objeto de entrada inteiro, então inclua campos inalterados junto com os modificados. A entrada modificada é re-avaliada contra regras de negação e pergunta |2076| `updatedInput` | Para `"allow"` apenas: modifica os parâmetros de entrada da ferramenta antes da execução. Substitui o objeto de entrada inteiro, portanto inclua campos inalterados ao lado dos modificados. A entrada modificada é re-avaliada contra regras de negação e pergunta |

1742| `updatedPermissions` | Apenas para `"allow"`: array de [entradas de atualização de permissão](#permission-update-entries) a aplicar, como adicionar uma regra de permissão ou mudar o modo de permissão da sessão |2077| `updatedPermissions` | Para `"allow"` apenas: array de [entradas de atualização de permissão](#permission-update-entries) a aplicar, como adicionar uma regra de permissão ou alterar o modo de permissão da sessão |

1743| `message` | Apenas para `"deny"`: diz ao Claude por que a permissão foi negada |2078| `message` | Para `"deny"` apenas: diz ao Claude por que a permissão foi negada |

1744| `interrupt` | Apenas para `"deny"`: se `true`, para Claude |2079| `interrupt` | Para `"deny"` apenas: se `true`, para Claude |

2080 

2081Um hook que sai com 2 sem um objeto `decision` deixa o fluxo de permissão inalterado, e seu stderr é descartado. Apenas o objeto `decision` pode conceder ou negar a solicitação.

1745 2082 

1746```json theme={null}2083```json theme={null}

1747{2084{


1761 Entradas de atualização de permissão2098 Entradas de atualização de permissão

1762</h4>2099</h4>

1763 2100 

1764O campo de saída `updatedPermissions` e o campo de entrada [`permission_suggestions`](#permissionrequest-input) ambos usam o mesmo array de objetos de entrada. Cada entrada tem um `type` que determina seus outros campos e um `destination` que controla onde a mudança é escrita.2101O campo de saída `updatedPermissions` e o campo de entrada [`permission_suggestions`](#permissionrequest-input) ambos usam o mesmo array de objetos de entrada. Cada entrada tem um `type` que determina seus outros campos, e um `destination` que controla onde a mudança é escrita.

1765 2102 

1766| `type` | Campos | Efeito |2103| `type` | Campos | Efeito |

1767| :------------------ | :--------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2104| :------------------ | :--------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1768| `addRules` | `rules`, `behavior`, `destination` | Adiciona regras de permissão. `rules` é um array de objetos `{toolName, ruleContent?}`. Omita `ruleContent` para corresponder a toda a ferramenta. `behavior` é `"allow"`, `"deny"` ou `"ask"` |2105| `addRules` | `rules`, `behavior`, `destination` | Adiciona regras de permissão. `rules` é um array de objetos `{toolName, ruleContent?}`. Omita `ruleContent` para corresponder a toda a ferramenta. `behavior` é `"allow"`, `"deny"` ou `"ask"` |

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

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

1771| `setMode` | `mode`, `destination` | Muda o modo de permissão. Modos válidos são `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan` e `manual` como um alias para `default`. O alias `manual` requer Claude Code v2.1.200 ou posterior |2108| `setMode` | `mode`, `destination` | Altera o modo de permissão. Modos válidos são `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan` e `manual` como um alias para `default`. O alias `manual` requer Claude Code v2.1.200 ou posterior |

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

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

1774 2111 

1775<Note>2112<Note>

1776 `setMode` com `bypassPermissions` apenas toma efeito se a sessão foi lançada com modo bypass já disponível: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` ou `permissions.defaultMode: "bypassPermissions"` em configurações, e o modo não é desabilitado por [`permissions.disableBypassPermissionsMode`](/docs/pt/permissions#managed-settings). Caso contrário, a atualização é um no-op. `bypassPermissions` nunca é persistido como `defaultMode` independentemente de `destination`.2113 `setMode` com `bypassPermissions` só tem efeito se você iniciou a sessão com modo bypass já disponível: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` ou `permissions.defaultMode: "bypassPermissions"` em [configurações de usuário, `--settings` ou gerenciadas](/docs/pt/settings-reference#permissions-defaultmode). Caso contrário, a atualização é uma não-operação. A atualização também é uma não-operação quando [`permissions.disableBypassPermissionsMode`](/docs/pt/permissions#managed-settings) desabilita o modo, ou quando a sessão começa em [modo restrito](/docs/pt/cli-reference#cli-flags).

2114 

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

1777</Note>2116</Note>

1778 2117 

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

1780 2119 

1781| `destination` | Escreve para |2120| `destination` | Escreve para |

1782| :---------------- | :---------------------------------------------------- |2121| :---------------- | :---------------------------------------------------- |

1783| `session` | apenas em memória, descartado quando a sessão termina |2122| `session` | apenas na memória, descartado quando a sessão termina |

1784| `localSettings` | `.claude/settings.local.json` |2123| `localSettings` | `.claude/settings.local.json` |

1785| `projectSettings` | `.claude/settings.json` |2124| `projectSettings` | `.claude/settings.json` |

1786| `userSettings` | `~/.claude/settings.json` |2125| `userSettings` | `~/.claude/settings.json` |

1787 2126 

1788Um hook pode ecoar uma das `permission_suggestions` que recebeu como sua própria saída `updatedPermissions`, que é equivalente ao usuário selecionar essa opção "sempre permitir" no diálogo.2127Um hook pode ecoar uma das `permission_suggestions` que recebeu como sua própria saída `updatedPermissions`.

1789 2128 

1790<h3 id="posttooluse">2129<h3 id="posttooluse">

1791 PostToolUse2130 PostToolUse

1792</h3>2131</h3>

1793 2132 

1794Executa imediatamente após uma ferramenta completar com sucesso.2133Executado imediatamente após uma ferramenta ser concluída com sucesso.

2134 

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

1795 2136 

1796Corresponde no nome da ferramenta, mesmos valores que PreToolUse.2137Corresponda mais amplamente quando o nome da ferramenta não é o filtro certo:

2138 

2139* Para executar um hook após qualquer ferramenta ser concluída com sucesso, omita o `matcher` ou defina-o como `"*"`. Seu hook pode então descobrir o que mudou por si mesmo, por exemplo executando `git status --porcelain`, que também lista arquivos não rastreados que `git diff` perde. Para chamadas de ferramenta que falham, adicione o mesmo hook em [PostToolUseFailure](#posttoolusefailure).

2140* Para executar um hook quando um arquivo específico muda no disco, seja qual for o que o escreveu, use [FileChanged](#filechanged). Claude Code não executa um hook `PostToolUse` correspondente a `Edit|Write` quando um comando `Bash` ou um processo fora de Claude Code reescreve o mesmo arquivo.

1797 2141 

1798<h4 id="posttooluse-input">2142<h4 id="posttooluse-input">

1799 Entrada de PostToolUse2143 Entrada PostToolUse

1800</h4>2144</h4>

1801 2145 

1802Hooks `PostToolUse` disparam após uma ferramenta já ter executado com sucesso. A entrada inclui tanto `tool_input`, os argumentos enviados para a ferramenta, quanto `tool_response`, o resultado que retornou. O esquema exato para ambos depende da ferramenta.2146Os hooks `PostToolUse` são disparados após uma ferramenta já ter sido executada com sucesso. A entrada inclui tanto `tool_input`, os argumentos enviados para a ferramenta, quanto `tool_response`, o resultado que ela retornou. O esquema exato para ambos depende da ferramenta. Os caminhos `tool_input` de ferramenta de arquivo chegam no mesmo formato que para [PreToolUse](#pretooluse-input): sempre absoluto, com os separadores nativos da plataforma, portanto barras invertidas no Windows. Para uma ferramenta MCP, a entrada também carrega o objeto [`mcp_server`](#pretooluse-input).

1803 2147 

1804```json theme={null}2148```json theme={null}

1805{2149{


1815 },2159 },

1816 "tool_response": {2160 "tool_response": {

1817 "filePath": "/path/to/file.txt",2161 "filePath": "/path/to/file.txt",

1818 "success": true2162 "type": "create"

1819 },2163 },

1820 "tool_use_id": "toolu_01ABC123...",2164 "tool_use_id": "toolu_01ABC123...",

1821 "duration_ms": 122165 "duration_ms": 12


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

1828 2172 

1829<h4 id="posttooluse-decision-control">2173<h4 id="posttooluse-decision-control">

1830 Controle de decisão de PostToolUse2174 Controle de decisão PostToolUse

1831</h4>2175</h4>

1832 2176 

1833Hooks `PostToolUse` podem fornecer feedback ao Claude após execução de ferramenta. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar esses campos específicos do evento:2177Os hooks `PostToolUse` podem fornecer feedback ao Claude após a execução da ferramenta. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar esses campos específicos do evento:

1834 2178 

1835| Campo | Descrição |2179| Campo | Descrição |

1836| :--------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------- |2180| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

1838| `reason` | Explicação mostrada ao Claude quando `decision` é `"block"` |2182| `reason` | Explicação mostrada ao Claude quando `decision` é `"block"` |

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

2184| `classifierContext` | Nota breve sobre o resultado desta chamada para o classificador de [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) em vez de para Claude. Veja [Anotar um resultado para o classificador de modo automático](#annotate-a-result-for-the-auto-mode-classifier). Requer Claude Code v2.1.236 ou posterior |

1840| `updatedToolOutput` | Substitui a saída da ferramenta pelo valor fornecido antes de ser enviado ao Claude. O valor deve corresponder à forma de saída da ferramenta |2185| `updatedToolOutput` | Substitui a saída da ferramenta pelo valor fornecido antes de ser enviado ao Claude. O valor deve corresponder à forma de saída da ferramenta |

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

1842 2187 

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

1844 2189 


1858```2203```

1859 2204 

1860<Warning>2205<Warning>

1861 `updatedToolOutput` apenas muda o que Claude vê. A ferramenta já executou no momento em que o hook dispara, então qualquer arquivo escrito, comandos executados ou requisições de rede enviadas já tiveram efeito. Telemetria como spans de ferramentas OpenTelemetry e eventos de análise também capturam a saída original antes do hook executar. Para prevenir ou modificar uma chamada de ferramenta antes de executar, use um hook [PreToolUse](#pretooluse) em vez disso.2206 `updatedToolOutput` apenas altera o que Claude vê. A ferramenta já foi executada no momento em que o hook é disparado, portanto qualquer arquivo escrito, comando executado ou solicitação de rede enviada já teve efeito. Telemetria como spans de ferramenta OpenTelemetry e eventos de análise também capturam a saída original antes do hook ser executado. Para impedir ou modificar uma chamada de ferramenta antes de ser executada, use um hook [PreToolUse](#pretooluse) em vez disso.

1862 2207 

1863 O valor de substituição deve corresponder à forma de saída da ferramenta. Ferramentas integradas retornam objetos estruturados em vez de strings simples. Por exemplo, `Bash` retorna um objeto com campos `stdout`, `stderr`, `interrupted` e `isImage`. Para ferramentas integradas, um valor que não corresponde ao esquema de saída da ferramenta é ignorado e a saída original é usada. A saída de ferramenta MCP é passada sem validação de esquema. Remover detalhes de erro que Claude precisa pode fazer com que ele prossiga em uma suposição falsa.2208 O valor de substituição deve corresponder à forma de saída da ferramenta. Ferramentas integradas retornam objetos estruturados em vez de strings simples. Por exemplo, `Bash` retorna um objeto com campos `stdout`, `stderr`, `interrupted` e `isImage`. Para ferramentas integradas, um valor que não corresponde ao esquema de saída da ferramenta é ignorado e a saída original é usada. A saída de ferramenta MCP é passada sem validação de esquema. Remover detalhes de erro que Claude precisa pode fazer com que ele prossiga em uma suposição falsa.

1864</Warning>2209</Warning>

1865 2210 

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

2212 Anotar um resultado para o classificador de modo automático

2213</h4>

2214 

2215Retorne `classifierContext` para enviar uma nota breve sobre o resultado da chamada de ferramenta para o classificador de [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) em vez de para Claude. O classificador [nunca recebe resultados de ferramentas em si](/docs/pt/permission-modes#how-the-classifier-evaluates-actions), portanto este campo é a forma suportada de contar algo sobre o que uma chamada retornou antes de revisar ações posteriores. O campo requer Claude Code v2.1.236 ou posterior.

2216 

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

2218 

2219```json theme={null}

2220{

2221 "hookSpecificOutput": {

2222 "hookEventName": "PostToolUse",

2223 "classifierContext": "This query ran against the staging database, not production."

2224 }

2225}

2226```

2227 

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

2229 

2230* **Hooks configurados em Claude Code**: para hooks de arquivos de configurações, plugins, skills e frontmatter de agente, o classificador trata a nota como contexto não verificado fornecido pela aplicação. A nota nunca estabelece intenção do usuário, e se ela afirmar que você aprovou ou solicitou algo, o classificador verifica essa afirmação contra suas próprias mensagens na conversa

2231* **Callbacks do Agent SDK em processo**: quando um aplicativo que incorpora Claude Code registra o hook como um [callback do SDK TypeScript](/docs/pt/agent-sdk/hooks) e retorna a nota durante a sessão ao vivo, o classificador pode pesar uma declaração do usuário retransmitida na nota como intenção do usuário. Tal declaração pode satisfazer um requisito de consentimento que o classificador aceitaria de uma mensagem que você envia, mas nunca levanta um bloqueio que sua própria mensagem não pudesse levantar também. Após uma sessão retomar, Claude Code trata notas restauradas como contexto não verificado. Quando hooks de ambos os grupos anotam a mesma chamada, o classificador trata a nota combinada como não verificada

2232 

2233Claude Code aplica esses limites ao entregar a nota:

2234 

2235* **Comprimento**: Claude Code limita as notas para uma chamada de ferramenta a 2.000 caracteres e trunca o resto. O limite é compartilhado entre cada hook que responde a essa chamada

2236* **Apenas respostas síncronas**: Claude Code ignora o campo na resposta de um hook que [é executado em segundo plano](#run-hooks-in-the-background), porque essa resposta chega após Claude Code registrar o resultado da ferramenta

2237* **Chamadas que o classificador não registra**: a transcrição do classificador omite pesquisas somente leitura como leituras de arquivo e pesquisas. Claude Code descarta uma nota anexada a uma dessas chamadas

2238* **Interação com reescritas**: quando a nota descreve saída que você está substituindo com `updatedToolOutput`, retorne ambos os campos na mesma resposta do hook. Claude Code descarta a nota se essa reescrita for rejeitada ou outra reescrita de hook a substituir. Claude Code entrega uma nota que você retorna sem uma reescrita mesmo quando outro hook reescreve a saída

2239 

2240<Warning>

2241 O classificador lê conteúdo que você coloca em `classifierContext` como informação do aplicativo hospedando a sessão, portanto não copie saída de ferramenta não confiável ou texto de terceiros nele. Mantenha a nota para uma breve afirmação sobre esta chamada, como um fato sobre sua origem ou uma declaração do usuário sobre ela; não use o campo para entregar mensagens não relacionadas ou um fluxo de eventos.

2242</Warning>

2243 

1866<h3 id="posttoolusefailure">2244<h3 id="posttoolusefailure">

1867 PostToolUseFailure2245 PostToolUseFailure

1868</h3>2246</h3>

1869 2247 

1870Executa quando uma ferramenta que começou a executar falha: a ferramenta lançou um erro ou uma ferramenta MCP retornou um resultado de erro. Use isso para registrar falhas, enviar alertas ou fornecer feedback corretivo ao Claude.2248Executado quando uma ferramenta que começou a executar falha: a ferramenta lançou um erro, ou uma ferramenta MCP retornou um resultado de erro. Use isso para registrar falhas, enviar alertas ou fornecer feedback corretivo ao Claude.

1871 2249 

1872Corresponde no nome da ferramenta, mesmos valores que PreToolUse.2250Corresponde ao nome da ferramenta, mesmos valores que PreToolUse.

1873 2251 

1874<Note>2252<Note>

1875 Este evento não dispara para chamadas de ferramenta rejeitadas antes da execução: um nome de ferramenta desconhecido, entrada que falha na validação de esquema ou específica da ferramenta, ou uma negação de permissão. Rejeições de validação são retornadas como resultados `tool_use_error` e acontecem antes dos hooks executarem, então eles não disparam nem `PreToolUse` nem este evento. Negações de permissão disparam `PreToolUse` mas não este evento; consulte [PermissionDenied](#permissiondenied).2253 Este evento não é disparado para chamadas de ferramenta rejeitadas antes da execução: um nome de ferramenta desconhecido, entrada que falha na validação de esquema ou específica da ferramenta, ou uma negação de permissão. Rejeições de validação são retornadas como resultados `tool_use_error` e acontecem antes dos hooks serem executados, portanto não disparam nem `PreToolUse` nem este evento. Negações de permissão disparam `PreToolUse` mas não este evento; veja [PermissionDenied](#permissiondenied).

1876</Note>2254</Note>

1877 2255 

1878<h4 id="posttoolusefailure-input">2256<h4 id="posttoolusefailure-input">

1879 Entrada de PostToolUseFailure2257 Entrada PostToolUseFailure

1880</h4>2258</h4>

1881 2259 

1882Hooks PostToolUseFailure recebem os mesmos campos `tool_name` e `tool_input` que PostToolUse, junto com informações de erro como campos de nível superior:2260Os hooks PostToolUseFailure recebem os mesmos campos `tool_name` e `tool_input` que PostToolUse, junto com informações de erro como campos de nível superior. Para uma ferramenta MCP, eles também recebem o objeto [`mcp_server`](#pretooluse-input). Por exemplo, um comando `npm test` falhado pode entregar:

1883 2261 

1884```json theme={null}2262```json theme={null}

1885{2263{


1894 "description": "Run test suite"2272 "description": "Run test suite"

1895 },2273 },

1896 "tool_use_id": "toolu_01ABC123...",2274 "tool_use_id": "toolu_01ABC123...",

1897 "error": "Command exited with non-zero status code 1",2275 "error": "Exit code 1\nError: Cannot find module 'express'",

1898 "is_interrupt": false,2276 "is_interrupt": false,

1899 "duration_ms": 41872277 "duration_ms": 4187

1900}2278}

1901```2279```

1902 2280 

1903| Campo | Descrição |2281| Campo | Descrição |

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

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

1906| `is_interrupt` | Boolean opcional indicando se a falha foi causada por interrupção do usuário |2284| `is_interrupt` | Booleano opcional. True quando a falha chegou a Claude Code como um aborto em vez de como um erro que a ferramenta relatou. Cancelar uma ferramenta em execução não dispara este hook; o resultado da ferramenta carrega a mensagem de interrupção em vez disso |

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

1908 2286 

2287A string `error` é geralmente o mesmo texto que Claude recebe como resultado da ferramenta falhada. Seu formato varia por ferramenta e falha. Chave seu hook em `tool_name`, `is_interrupt` e a primeira linha `Exit code N`; trate o resto da string como texto de exibição, não um formato estável.

2288 

2289* Para Bash e PowerShell, um comando que foi executado e saiu produz uma primeira linha `Exit code N`, depois qualquer saída que o comando produziu como um bloco com stdout e stderr intercalados

2290* Um payload também pode carregar uma mensagem de falha nua sem linha de código de saída, quando Claude Code não pôde iniciar o próprio processo de shell

2291* Claude Code trunca no meio strings longas em torno de um marcador `... [N characters truncated] ...` e pode inserir linhas suas, como `Command timed out after 2m 0s`

2292 

1909<h4 id="posttoolusefailure-decision-control">2293<h4 id="posttoolusefailure-decision-control">

1910 Controle de decisão de PostToolUseFailure2294 Controle de decisão PostToolUseFailure

1911</h4>2295</h4>

1912 2296 

1913Hooks `PostToolUseFailure` podem fornecer contexto ao Claude após falha de ferramenta. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar esses campos específicos do evento:2297Os hooks `PostToolUseFailure` podem fornecer contexto ao Claude após uma falha de ferramenta. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar esses campos específicos do evento:

1914 2298 

1915| Campo | Descrição |2299| Campo | Descrição |

1916| :------------------ | :--------------------------------------------------------------------------------------------------------------------------- |2300| :------------------ | :---------------------------------------------------------------------------------------------------------------------- |

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

1918 2302 

1919```json theme={null}2303```json theme={null}

1920{2304{


1929 PostToolBatch2313 PostToolBatch

1930</h3>2314</h3>

1931 2315 

1932Executa uma vez após cada chamada de ferramenta em um lote ter sido resolvida, antes do Claude Code enviar a próxima solicitação para o modelo. `PostToolUse` dispara uma vez por ferramenta, o que significa que dispara concorrentemente quando Claude faz chamadas de ferramenta paralelas. `PostToolBatch` dispara exatamente uma vez com o lote completo, então é o lugar certo para injetar contexto que depende do conjunto de ferramentas que executaram em vez de em qualquer ferramenta única. Não há matcher para este evento.2316Executado uma vez após cada chamada de ferramenta em um lote ter sido resolvida, antes de Claude Code enviar a próxima solicitação para o modelo. `PostToolUse` é disparado uma vez por ferramenta, o que significa que é disparado concorrentemente quando Claude faz chamadas de ferramenta paralelas. `PostToolBatch` é disparado exatamente uma vez com o lote completo, portanto é o lugar certo para injetar contexto que depende do conjunto de ferramentas que foram executadas em vez de em qualquer ferramenta única. Não há matcher para este evento.

1933 2317 

1934<h4 id="posttoolbatch-input">2318<h4 id="posttoolbatch-input">

1935 Entrada de PostToolBatch2319 Entrada PostToolBatch

1936</h4>2320</h4>

1937 2321 

1938Além dos [campos de entrada comuns](#common-input-fields), hooks PostToolBatch recebem `tool_calls`, um array descrevendo cada chamada de ferramenta no lote:2322Além dos [campos de entrada comuns](#common-input-fields), os hooks PostToolBatch recebem `tool_calls`, um array descrevendo cada chamada de ferramenta no lote:

1939 2323 

1940```json theme={null}2324```json theme={null}

1941{2325{


1961}2345}

1962```2346```

1963 2347 

1964`tool_response` contém o mesmo conteúdo que o modelo recebe no bloco `tool_result` correspondente. O valor é uma string serializada ou array de bloco de conteúdo, exatamente como a ferramenta o emitiu. Para `Read`, isso significa texto com prefixo de número de linha em vez de conteúdo de arquivo bruto. Respostas podem ser grandes, então analise apenas os campos que você precisa.2348`tool_response` contém o mesmo conteúdo que o modelo recebe no bloco `tool_result` correspondente. O valor é uma string serializada ou array de bloco de conteúdo, exatamente como a ferramenta o emitiu. Para `Read`, isso significa texto com prefixo de número de linha em vez de conteúdo de arquivo bruto. As respostas podem ser grandes, portanto analise apenas os campos que você precisa.

1965 2349 

1966<Note>2350<Note>

1967 A forma `tool_response` difere da de `PostToolUse`. `PostToolUse` passa o objeto `Output` estruturado da ferramenta, como `{filePath: "...", success: true}` para `Write`; `PostToolBatch` passa o conteúdo `tool_result` serializado que o modelo vê.2351 A forma `tool_response` difere da de `PostToolUse`. `PostToolUse` passa o objeto `Output` estruturado da ferramenta, como `{filePath: "...", type: "create"}` para `Write`; `PostToolBatch` passa o conteúdo `tool_result` serializado que o modelo vê.

1968</Note>2352</Note>

1969 2353 

1970<h4 id="posttoolbatch-decision-control">2354<h4 id="posttoolbatch-decision-control">

1971 Controle de decisão de PostToolBatch2355 Controle de decisão PostToolBatch

1972</h4>2356</h4>

1973 2357 

1974Hooks `PostToolBatch` podem injetar contexto para Claude. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar esses campos específicos do evento:2358Os hooks `PostToolBatch` podem injetar contexto para Claude. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar esses campos específicos do evento:

1975 2359 

1976| Campo | Descrição |2360| Campo | Descrição |

1977| :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |2361| :------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1978| `additionalContext` | String de contexto injetada uma vez antes da próxima chamada do modelo. Consulte [Adicionar contexto para Claude](#add-context-for-claude) para detalhes de entrega, o que colocar nele e como sessões retomadas lidam com valores passados |2362| `additionalContext` | String de contexto injetada uma vez antes da próxima chamada do modelo. Veja [Adicionar contexto para Claude](#add-context-for-claude) para detalhes de entrega, o que colocar nela e como sessões retomadas lidam com valores passados |

1979 2363 

1980```json theme={null}2364```json theme={null}

1981{2365{


1986}2370}

1987```2371```

1988 2372 

1989Retornar `decision: "block"` ou `continue: false` para o loop agentic antes da próxima chamada do modelo.2373Retornar `decision: "block"` ou `continue: false` para o loop agentic antes da próxima chamada do modelo. A mensagem de bloqueio vem do JSON `reason` ou `stopReason`, ou de stderr ao sair com 2. Você a vê como um aviso na transcrição, e ela permanece na conversa, portanto Claude a vê quando a conversa continua.

1990 2374 

1991<h3 id="permissiondenied">2375<h3 id="permissiondenied">

1992 PermissionDenied2376 PermissionDenied

1993</h3>2377</h3>

1994 2378 

1995Executa quando o classificador de [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) nega uma chamada de ferramenta. Este hook apenas dispara em modo automático: não executa quando você nega manualmente um diálogo de permissão, quando um hook `PreToolUse` bloqueia uma chamada ou quando uma regra `deny` corresponde. Use-o para registrar negações de classificador, ajustar configuração ou dizer ao modelo que pode tentar novamente a chamada de ferramenta.2379Executado quando [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) nega uma chamada de ferramenta, incluindo quando nega sem um veredicto do classificador porque [uma verificação de segurança separada do modo automático recusou a própria solicitação do classificador](/docs/pt/errors#auto-mode-cannot-determine-the-safety-of-an-action) ou sua resposta não foi analisada. Este hook é disparado apenas em modo automático: não é executado quando você nega manualmente um diálogo de permissão, quando um hook `PreToolUse` bloqueia uma chamada, ou quando uma regra `deny` corresponde. Use-o para registrar negações, ajustar configuração ou dizer ao modelo que pode tentar novamente a chamada de ferramenta.

1996 2380 

1997Corresponde no nome da ferramenta, mesmos valores que PreToolUse.2381Corresponde ao nome da ferramenta, mesmos valores que PreToolUse.

1998 2382 

1999<h4 id="permissiondenied-input">2383<h4 id="permissiondenied-input">

2000 Entrada de PermissionDenied2384 Entrada PermissionDenied

2001</h4>2385</h4>

2002 2386 

2003Além dos [campos de entrada comuns](#common-input-fields), hooks PermissionDenied recebem `tool_name`, `tool_input`, `tool_use_id` e `reason`.2387Além dos [campos de entrada comuns](#common-input-fields), os hooks PermissionDenied recebem `tool_name`, `tool_input`, `tool_use_id` e `reason`. Para uma ferramenta MCP, eles também recebem o objeto [`mcp_server`](#pretooluse-input).

2004 2388 

2005```json theme={null}2389```json theme={null}

2006{2390{


2015 "description": "Clean build directory"2399 "description": "Clean build directory"

2016 },2400 },

2017 "tool_use_id": "toolu_01ABC123...",2401 "tool_use_id": "toolu_01ABC123...",

2018 "reason": "Auto mode denied: command targets a path outside the project"2402 "reason": "[Irreversible Local Destruction]"

2019}2403}

2020```2404```

2021 2405 

2022| Campo | Descrição |2406| Campo | Descrição |

2023| :------- | :---------------------------------------------------------------------------- |2407| :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

2024| `reason` | A explicação do classificador para por que a chamada de ferramenta foi negada |2408| `reason` | O motivo da negação. Para um veredicto do classificador, na maioria das sessões ele nomeia a regra correspondente entre colchetes, como `[Data Exfiltration]`; veja [Revisar negações](/docs/pt/auto-mode-config#review-denials) para as outras formas. Para uma [negação sem veredicto](#permissiondenied-decision-control), começa com `Auto mode could not evaluate this action and is blocking it for safety`. Para uma negação porque o modelo do classificador não estava disponível, é o texto fixo `Classifier unavailable` |

2025 2409 

2026<h4 id="permissiondenied-decision-control">2410<h4 id="permissiondenied-decision-control">

2027 Controle de decisão de PermissionDenied2411 Controle de decisão PermissionDenied

2028</h4>2412</h4>

2029 2413 

2030Hooks PermissionDenied podem dizer ao modelo que pode tentar novamente a chamada de ferramenta negada. Retorne um objeto JSON com `hookSpecificOutput.retry` definido para `true`:2414Os hooks PermissionDenied podem dizer ao modelo que pode tentar novamente a chamada de ferramenta negada. Retorne um objeto JSON com `hookSpecificOutput.retry` definido como `true`:

2031 2415 

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

2033{2417{


2038}2422}

2039```2423```

2040 2424 

2041Quando `retry` é `true`, Claude Code adiciona uma mensagem à conversa dizendo ao modelo que pode tentar novamente a chamada de ferramenta. A negação em si não é revertida. Se seu hook não retorna JSON ou retorna `retry: false`, a negação permanece e o modelo recebe a mensagem de rejeição original.2425Quando `retry` é `true`, Claude Code adiciona uma mensagem à conversa dizendo ao modelo que pode tentar novamente a chamada de ferramenta. Claude Code não reverte a negação em si. Se seu hook não retornar JSON, ou retornar `retry: false`, a negação permanece e o modelo recebe a mensagem de rejeição original.

2426 

2427Claude Code ignora `retry: true` quando o classificador produziu [nenhum veredicto sobre a ação](/docs/pt/errors#auto-mode-cannot-determine-the-safety-of-an-action): sua resposta não foi analisada, ou uma verificação de segurança separada do modo automático recusou a própria solicitação do classificador. Para essas negações, Claude Code já diz ao modelo na mensagem de rejeição se deve tentar novamente mais tarde ou prosseguir.

2042 2428 

2043<h3 id="notification">2429<h3 id="notification">

2044 Notification2430 Notification

2045</h3>2431</h3>

2046 2432 

2047Executa quando Claude Code envia notificações. Corresponde no tipo de notificação. Omita o matcher para executar hooks para todos os tipos de notificação.2433Executado quando Claude Code envia notificações. Corresponde ao tipo de notificação. Omita o matcher para executar hooks para todos os tipos de notificação.

2048 2434 

2049| Matcher | Quando dispara |2435Você recebe esses eventos de hook mesmo com notificações de desktop desativadas: a configuração `preferredNotifChannel`, incluindo `notifications_disabled`, altera apenas como você é alertado, não se seu hook é executado.

2050| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------- |2436 

2051| `permission_prompt` | Claude precisa que você aprove um uso de ferramenta |2437| Matcher | Quando é disparado |

2052| `idle_prompt` | Claude está feito e esperando seu próximo prompt |2438| :--------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

2053| `auth_success` | Autenticação é concluída |2439| `permission_prompt` | Claude precisa de sua permissão para usar uma ferramenta ou a [solicitação de rede](/docs/pt/sandboxing#network-isolation) de um comando em sandbox, e o prompt esperou cerca de seis segundos |

2054| `elicitation_dialog` | Um servidor MCP abre um formulário de elicitação |2440| `idle_prompt` | Claude terminou de responder cerca de 60 segundos atrás e você não digitou desde então |

2055| `elicitation_complete` | Um formulário de elicitação MCP é submetido ou descartado |2441| `auth_success` | A autenticação é concluída |

2056| `elicitation_response` | Uma resposta de elicitação MCP é enviada de volta ao servidor |2442| `elicitation_dialog` | Um servidor MCP abre um formulário de elicitação e você não digitou por cerca de seis segundos |

2057| `agent_needs_input` | Uma sessão em background começa esperando sua entrada. Dispara apenas enquanto [agent view](/docs/pt/agent-view) está aberto em um terminal |2443| `elicitation_url_dialog` | Um servidor MCP pede que você abra uma URL do navegador e você não digitou por cerca de seis segundos |

2058| `agent_completed` | Uma sessão em background termina ou falha. Dispara apenas enquanto [agent view](/docs/pt/agent-view) está aberto em um terminal |2444| `elicitation_complete` | Um servidor MCP relata que uma [elicitação de modo URL](#elicitation-input) está completa |

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

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

2447| `agent_completed` | Uma sessão em segundo plano termina ou falha. Disparado apenas enquanto [agent view](/docs/pt/agent-view) está aberta em um terminal |

2448| `quota_auto_resume_fired` | Claude Code continua sua tarefa após um limite de uso de claude.ai pausá-la: na redefinição, ou mais cedo quando algo que você faz em Claude Code durante a espera, como adicionar créditos de uso, atualizar seu plano ou trocar modelos, torna o uso disponível novamente, com a [exceção de configuração de modelo](/docs/pt/interactive-mode#wait-for-a-usage-limit-to-reset) |

2449| `quota_auto_resume_stale` | Um limite de uso de claude.ai foi redefinido enquanto seu computador dormia por mais de cerca de 30 minutos. Claude Code espera você pressionar `Enter` em vez de continuar. Após um sono mais curto, ele continua e dispara `quota_auto_resume_fired` em vez disso |

2450| `quota_auto_resume_disabled` | Claude Code termina sua espera por um limite de uso de claude.ai sem continuar sua tarefa: [`autoContinueAtUsageLimit`](/docs/pt/settings-reference#autocontinueatusagelimit) foi desativado ou a redefinição se moveu mais de 24 horas no futuro durante uma espera que Claude Code iniciou por conta própria, a tarefa continuada continuou atingindo o limite, ou a continuação foi bloqueada antes de chegar ao modelo. Não é disparado quando você pressiona `Esc` ou `Ctrl+C`, ou escolhe **Don't continue automatically** |

2059 2451 

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

2061 2453 

2062Use matchers separados para executar diferentes manipuladores dependendo do tipo de notificação. Esta configuração aciona um script de alerta específico de permissão quando Claude precisa de aprovação de permissão e uma notificação diferente quando Claude está ocioso:2454Os tipos `quota_auto_resume_fired`, `quota_auto_resume_stale` e `quota_auto_resume_disabled` requerem Claude Code v2.1.234 ou posterior.

2455 

2456Em sessões de terminal, `permission_prompt` para a solicitação de rede de um comando em sandbox requer Claude Code v2.1.246 ou posterior.

2457 

2458`agent_needs_input` para uma pergunta de configuração de terminal de colega requer Claude Code v2.1.248 ou posterior.

2459 

2460<Note>

2461 Os tipos `permission_prompt`, `idle_prompt`, `elicitation_dialog` e `elicitation_url_dialog` compartilham seu tempo com notificações de desktop, portanto em sessões de terminal você só os vê quando parece que você está longe do terminal:

2462 

2463 * Espere `permission_prompt` uma vez que você não digitou por cerca de seis segundos. O temporizador começa quando o prompt de permissão aparece, e cada pressionamento de tecla o adia. Para executar um hook imediatamente quando Claude pede permissão para usar uma ferramenta, use [PermissionRequest](#permissionrequest) em vez disso.

2464 * Espere `idle_prompt` cerca de 60 segundos após Claude terminar de responder, e apenas se você não digitou desde então. Claude Code não envia `idle_prompt` enquanto espera um limite de uso de claude.ai ser redefinido. Quando a espera termina por conta própria, um dos tipos `quota_auto_resume_*` é disparado em vez disso.

2465 * Espere `elicitation_dialog` para um formulário de elicitação, ou `elicitation_url_dialog` para uma solicitação de URL do navegador, uma vez que você não digitou por cerca de seis segundos. Ambos compartilham o mesmo portão de seis segundos que `permission_prompt`: o temporizador começa quando o diálogo aparece, e cada pressionamento de tecla o adia.

2466 

2467 Uma solicitação de permissão ou elicitação que chega enquanto outro diálogo está na tela mantém o mesmo portão de seis segundos, cronometrado a partir de quando a solicitação chega. Sua notificação pode alcançá-lo enquanto a solicitação ainda espera atrás do diálogo aberto.

2468</Note>

2469 

2470Claude Code cronometra `permission_prompt` diferentemente em sessões onde envia solicitações de permissão para o callback [`canUseTool`](/docs/pt/agent-sdk/user-input) do Agent SDK, que é como Claude Desktop e a extensão VS Code hospedam Claude Code:

2471 

2472* Espere `permission_prompt` cerca de seis segundos após Claude pedir permissão. Claude Code não o adia enquanto você digita.

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

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

2475 

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

2477 

2478Use matchers separados para executar diferentes manipuladores dependendo do tipo de notificação. Esta configuração dispara um script de alerta específico de permissão quando Claude precisa de aprovação de permissão e uma notificação diferente quando Claude está inativo:

2063 2479 

2064```json theme={null}2480```json theme={null}

2065{2481{


2089```2505```

2090 2506 

2091<h4 id="notification-input">2507<h4 id="notification-input">

2092 Entrada de Notification2508 Entrada Notification

2093</h4>2509</h4>

2094 2510 

2095Além dos [campos de entrada comuns](#common-input-fields), hooks Notification recebem `message` com o texto de notificação, um `title` opcional e `notification_type` indicando qual tipo disparou.2511Além dos [campos de entrada comuns](#common-input-fields), os hooks Notification recebem `message` com o texto de notificação, um `title` opcional e `notification_type` indicando qual tipo foi disparado.

2096 2512 

2097```json theme={null}2513```json theme={null}

2098{2514{


2106}2522}

2107```2523```

2108 2524 

2109Hooks Notification não podem bloquear ou modificar notificações. Eles são destinados a efeitos colaterais como encaminhar a notificação para um serviço externo. Os [campos de saída JSON](#json-output) comuns como `systemMessage` se aplicam.2525Os hooks Notification não podem bloquear ou modificar notificações. Claude Code descarta seus campos `systemMessage` e `continue` mas ainda emite [`terminalSequence`](#emit-terminal-notifications), que é no que o exemplo de notificação de desktop se baseia. Os hooks Notification são destinados a efeitos colaterais como encaminhar a notificação para um serviço externo.

2110 2526 

2111<h3 id="subagentstart">2527<h3 id="subagentstart">

2112 SubagentStart2528 SubagentStart

2113</h3>2529</h3>

2114 2530 

2115Executa quando um subagente do Claude Code é gerado via ferramenta Agent. Suporta matchers para filtrar por nome de tipo de agente. Para agentes integrados, este é o nome do agente como `general-purpose`, `Explore` ou `Plan`. Para [subagentes personalizados](/docs/pt/sub-agents), este é o campo `name` do frontmatter do agente, não o nome do arquivo.2531Executado quando Claude gera um subagente com a ferramenta Agent, quando Claude [retoma um subagente](/docs/pt/sub-agents#resume-subagents) e cada vez que um [colega de equipe de agente](/docs/pt/agent-teams) em processo manipula uma nova mensagem. Suporta matchers para filtrar por nome de tipo de agente. Para agentes integrados, este é o nome do agente como `general-purpose`, `Explore` ou `Plan`. Para [subagentes personalizados](/docs/pt/sub-agents), este é o campo `name` do frontmatter do agente, não o nome do arquivo.

2116 2532 

2117Para subagentes fornecidos por um [plugin](/docs/pt/plugins), o tipo de agente é o identificador com escopo de plugin como `my-plugin:reviewer`, não o nome frontmatter simples. O dois-pontos coloca um nome com escopo de plugin no caminho de expressão regular, então ancorize o matcher com `^` e `$` para uma correspondência exata: `^my-plugin:reviewer$`.2533Para subagentes enviados por um [plugin](/docs/pt/plugins), o tipo de agente é o identificador com escopo de plugin como `my-plugin:reviewer`, não o nome de frontmatter nú. O dois-pontos coloca um nome com escopo de plugin no caminho de expressão regular, portanto ancor o matcher com `^` e `$` para uma correspondência exata: `^my-plugin:reviewer$`.

2118 2534 

2119<h4 id="subagentstart-input">2535<h4 id="subagentstart-input">

2120 Entrada de SubagentStart2536 Entrada SubagentStart

2121</h4>2537</h4>

2122 2538 

2123Além dos [campos de entrada comuns](#common-input-fields), hooks SubagentStart recebem `agent_id` com o identificador único para o subagente e `agent_type` com o nome do agente que o matcher filtra.2539Além dos [campos de entrada comuns](#common-input-fields), os hooks SubagentStart recebem `agent_id` com o identificador único para o subagente e `agent_type` com o nome do agente que o matcher filtra.

2124 2540 

2125```json theme={null}2541```json theme={null}

2126{2542{


2133}2549}

2134```2550```

2135 2551 

2136Hooks SubagentStart não podem bloquear criação de subagente, mas podem injetar contexto no subagente. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, você pode retornar:2552Os hooks SubagentStart não podem bloquear a criação de subagente, mas podem injetar contexto no subagente. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, você pode retornar:

2137 2553 

2138| Campo | Descrição |2554| Campo | Descrição |

2139| :------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2555| :------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------- |

2140| `additionalContext` | String adicionada ao contexto do subagente no início de sua conversa, antes de seu primeiro prompt. Consulte [Adicionar contexto para Claude](#add-context-for-claude) |2556| `additionalContext` | String adicionada ao contexto do subagente no início de sua conversa, antes de seu primeiro prompt. Veja [Adicionar contexto para Claude](#add-context-for-claude) |

2141 2557 

2142```json theme={null}2558```json theme={null}

2143{2559{


2148}2564}

2149```2565```

2150 2566 

2567Quando o hook é executado novamente para o mesmo subagente, Claude Code injeta o contexto retornado apenas quando o contexto do subagente não já contém a cópia de uma execução anterior. A cópia injetada no lançamento permanece no lugar, deixando o [cache de prompt](/docs/pt/prompt-caching#subagents-and-the-cache) do subagente intacto. Após [compactação automática](/docs/pt/sub-agents#auto-compaction) descartar essa cópia, Claude Code injeta o contexto da próxima execução novamente.

2568 

2151<h3 id="subagentstop">2569<h3 id="subagentstop">

2152 SubagentStop2570 SubagentStop

2153</h3>2571</h3>

2154 2572 

2155Executa quando um subagente do Claude Code terminou de responder. Corresponde no tipo de agente, mesmos valores que SubagentStart.2573Executado quando um subagente Claude Code terminou de responder. Corresponde ao tipo de agente, mesmos valores que SubagentStart.

2156 2574 

2157<h4 id="subagentstop-input">2575<h4 id="subagentstop-input">

2158 Entrada de SubagentStop2576 Entrada SubagentStop

2159</h4>2577</h4>

2160 2578 

2161Além dos [campos de entrada comuns](#common-input-fields), hooks SubagentStop recebem `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path` e `last_assistant_message`. O campo `agent_type` é o valor usado para filtragem de matcher. O `transcript_path` é a transcrição da sessão principal, enquanto `agent_transcript_path` é a própria transcrição do subagente armazenada em uma pasta `subagents/` aninhada. O campo `last_assistant_message` contém o conteúdo de texto da resposta final do subagente, então hooks podem acessá-lo sem analisar o arquivo de transcrição.2579Além dos [campos de entrada comuns](#common-input-fields), os hooks SubagentStop recebem `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path` e `last_assistant_message`. O campo `agent_type` é o valor usado para filtragem de matcher. O `transcript_path` é a transcrição da sessão principal, enquanto `agent_transcript_path` é a própria transcrição do subagente armazenada em uma pasta `subagents/` aninhada. O campo `last_assistant_message` contém o conteúdo de texto da resposta final do subagente, portanto hooks podem acessá-lo sem analisar o arquivo de transcrição.

2580 

2581No Claude Code v2.1.271 ou posterior, um subagente que é executado com a ferramenta [`SubagentHandback`](/docs/pt/tools-reference) entrega seu relatório através dessa ferramenta antes de parar. O campo `last_assistant_message` então contém o texto de fechamento do subagente, se houver, que não é o relatório entregue. O relatório é a entrada `message` dessa chamada, que um hook `PreToolUse` ou `PostToolUse` correspondente a `SubagentHandback` recebe como `tool_input.message`.

2162 2582 

2163Hooks SubagentStop também recebem os arrays `background_tasks` e `session_crons` descritos em [Entrada de Stop](#stop-input), disponíveis no Claude Code v2.1.145 ou posterior. Ambos os arrays têm escopo para a sessão pai, não para o subagente.2583Os hooks SubagentStop também recebem os arrays `background_tasks` e `session_crons` descritos em [entrada Stop](#stop-input). Ambos os arrays estão no escopo da sessão pai, não do subagente.

2164 2584 

2165```json theme={null}2585```json theme={null}

2166{2586{


2179}2599}

2180```2600```

2181 2601 

2182Hooks SubagentStop usam o mesmo formato de controle de decisão que [hooks Stop](#stop-decision-control), incluindo `hookSpecificOutput.additionalContext` com `hookEventName` definido para `"SubagentStop"`, para feedback não-erro que mantém o subagente em execução. Retornar `decision: "block"` com uma `reason` mantém o subagente em execução e entrega `reason` ao subagente como sua próxima instrução. Para injetar contexto na sessão pai após um subagente retornar, use um hook [`PostToolUse`](#posttooluse) na ferramenta `Agent` em vez disso.2602Os hooks SubagentStop usam o mesmo formato de controle de decisão que [hooks Stop](#stop-decision-control), incluindo `hookSpecificOutput.additionalContext` com `hookEventName` definido como `"SubagentStop"`, para feedback sem erro que mantém o subagente em execução. Retornar `decision: "block"` com um `reason` mantém o subagente em execução e entrega `reason` ao subagente como sua próxima instrução. Um hook que bloqueia ao sair com 2 entrega sua mensagem stderr da mesma forma. Para injetar contexto na sessão pai após um subagente retornar, use um hook [`PostToolUse`](#posttooluse) na ferramenta `Agent` em vez disso.

2183 2603 

2184<h3 id="taskcreated">2604<h3 id="taskcreated">

2185 TaskCreated2605 TaskCreated

2186</h3>2606</h3>

2187 2607 

2188Executa quando uma tarefa está sendo criada via ferramenta `TaskCreate`. Use isso para impor convenções de nomenclatura, exigir descrições de tarefa ou prevenir que certas tarefas sejam criadas.2608Executado quando uma tarefa está sendo criada via ferramenta `TaskCreate`. Use isso para impor convenções de nomenclatura, exigir descrições de tarefa ou impedir que certas tarefas sejam criadas. Em uma [sessão sem as ferramentas Task](/docs/pt/tools-reference#task-tool-availability), este evento não é disparado.

2189 2609 

2190Quando um hook `TaskCreated` sai com código 2, a tarefa não é criada e a mensagem de stderr é alimentada de volta ao modelo como feedback. Para parar o colega inteiramente em vez de re-executá-lo, retorne JSON com `{"continue": false, "stopReason": "..."}`. Hooks TaskCreated não suportam matchers e disparam em cada ocorrência.2610Os hooks TaskCreated não suportam matchers e são disparados em cada ocorrência.

2191 2611 

2192<h4 id="taskcreated-input">2612<h4 id="taskcreated-input">

2193 Entrada de TaskCreated2613 Entrada TaskCreated

2194</h4>2614</h4>

2195 2615 

2196Além dos [campos de entrada comuns](#common-input-fields), hooks TaskCreated recebem `task_id`, `task_subject` e opcionalmente `task_description`, `teammate_name` e `team_name`.2616Além dos [campos de entrada comuns](#common-input-fields), os hooks TaskCreated recebem `task_id`, `task_subject` e opcionalmente `task_description`, `teammate_name` e `team_name`.

2197 2617 

2198```json theme={null}2618```json theme={null}

2199{2619{

2200 "session_id": "abc123",2620 "session_id": "abc123",

2201 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",2621 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

2202 "cwd": "/Users/...",2622 "cwd": "/Users/...",

2203 "permission_mode": "default",

2204 "hook_event_name": "TaskCreated",2623 "hook_event_name": "TaskCreated",

2205 "task_id": "task-001",2624 "task_id": "task-001",

2206 "task_subject": "Implement user authentication",2625 "task_subject": "Implement user authentication",


2211```2630```

2212 2631 

2213| Campo | Descrição |2632| Campo | Descrição |

2214| :----------------- | :------------------------------------------------------------------------- |2633| :----------------- | :----------------------------------------------------------------------------------- |

2215| `task_id` | Identificador da tarefa sendo criada |2634| `task_id` | Identificador da tarefa sendo criada |

2216| `task_subject` | Título da tarefa |2635| `task_subject` | Título da tarefa |

2217| `task_description` | Descrição detalhada da tarefa. Pode estar ausente |2636| `task_description` | Descrição detalhada da tarefa. Pode estar ausente |

2218| `teammate_name` | Nome do colega criando a tarefa. Pode estar ausente |2637| `teammate_name` | Nome do colega criando a tarefa. Pode estar ausente |

2219| `team_name` | Deprecated. Session-derived team name; will be removed in a future release |2638| `team_name` | Descontinuado. Nome de equipe derivado de sessão; será removido em uma versão futura |

2220 2639 

2221<h4 id="taskcreated-decision-control">2640<h4 id="taskcreated-decision-control">

2222 Controle de decisão de TaskCreated2641 Controle de decisão TaskCreated

2223</h4>2642</h4>

2224 2643 

2225Hooks TaskCreated suportam duas formas de controlar criação de tarefa:2644Um hook TaskCreated pode bloquear a criação de duas maneiras. De qualquer forma, Claude Code exclui a tarefa e retorna sua mensagem ao Claude como o erro da ferramenta. Claude Code ignora `continue: false` deste evento e Claude continua trabalhando.

2226 2645 

2227* **Código de saída 2**: a tarefa não é criada e a mensagem de stderr é alimentada de volta ao modelo como feedback.2646* **Código de saída 2**: Claude Code retorna o texto stderr como a mensagem.

2228* **JSON `{"continue": false, "stopReason": "..."}`**: para o colega inteiramente, correspondendo ao comportamento do hook `Stop`. O `stopReason` é mostrado ao usuário.2647* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code retorna `reason` como a mensagem.

2229 2648 

2230Este exemplo bloqueia tarefas cujos assuntos não seguem o formato obrigatório:2649Este exemplo bloqueia tarefas cujos assuntos não seguem o formato necessário:

2231 2650 

2232```bash theme={null}2651```bash theme={null}

2233#!/bin/bash2652#!/bin/bash


2246 TaskCompleted2665 TaskCompleted

2247</h3>2666</h3>

2248 2667 

2249Executa quando uma tarefa está sendo marcada como concluída. Isso dispara em duas situações: quando qualquer agente marca explicitamente uma tarefa como concluída através da ferramenta TaskUpdate, ou quando um colega de [equipe de agente](/docs/pt/agent-teams) termina seu turno com tarefas em progresso. Use isso para impor critérios de conclusão como testes aprovados ou verificações de lint antes de uma tarefa fechar.2668Executado quando uma tarefa está sendo marcada como concluída. Isso é disparado em duas situações: quando qualquer agente marca explicitamente uma tarefa como concluída através da ferramenta TaskUpdate, ou quando um [colega de equipe de agente](/docs/pt/agent-teams) termina seu turno com tarefas em andamento. Use isso para impor critérios de conclusão como testes aprovados ou verificações de lint antes de uma tarefa poder fechar.

2250 2669 

2251Quando um hook `TaskCompleted` sai com código 2, a tarefa não é marcada como concluída e a mensagem de stderr é alimentada de volta ao modelo como feedback. Para parar o colega inteiramente em vez de re-executá-lo, retorne JSON com `{"continue": false, "stopReason": "..."}`. Hooks TaskCompleted não suportam matchers e disparam em cada ocorrência.2670Os hooks TaskCompleted não suportam matchers e são disparados em cada ocorrência.

2252 2671 

2253<h4 id="taskcompleted-input">2672<h4 id="taskcompleted-input">

2254 Entrada de TaskCompleted2673 Entrada TaskCompleted

2255</h4>2674</h4>

2256 2675 

2257Além dos [campos de entrada comuns](#common-input-fields), hooks TaskCompleted recebem `task_id`, `task_subject` e opcionalmente `task_description`, `teammate_name` e `team_name`.2676Além dos [campos de entrada comuns](#common-input-fields), os hooks TaskCompleted recebem `task_id`, `task_subject` e opcionalmente `task_description`, `teammate_name` e `team_name`.

2258 2677 

2259```json theme={null}2678```json theme={null}

2260{2679{


2272```2691```

2273 2692 

2274| Campo | Descrição |2693| Campo | Descrição |

2275| :----------------- | :------------------------------------------------------------------------- |2694| :----------------- | :----------------------------------------------------------------------------------- |

2276| `task_id` | Identificador da tarefa sendo concluída |2695| `task_id` | Identificador da tarefa sendo concluída |

2277| `task_subject` | Título da tarefa |2696| `task_subject` | Título da tarefa |

2278| `task_description` | Descrição detalhada da tarefa. Pode estar ausente |2697| `task_description` | Descrição detalhada da tarefa. Pode estar ausente |

2279| `teammate_name` | Nome do colega completando a tarefa. Pode estar ausente |2698| `teammate_name` | Nome do colega concluindo a tarefa. Pode estar ausente |

2280| `team_name` | Deprecated. Session-derived team name; will be removed in a future release |2699| `team_name` | Descontinuado. Nome de equipe derivado de sessão; será removido em uma versão futura |

2281 2700 

2282<h4 id="taskcompleted-decision-control">2701<h4 id="taskcompleted-decision-control">

2283 Controle de decisão de TaskCompleted2702 Controle de decisão TaskCompleted

2284</h4>2703</h4>

2285 2704 

2286Hooks TaskCompleted suportam duas formas de controlar conclusão de tarefa:2705Os hooks TaskCompleted suportam duas maneiras de controlar a conclusão da tarefa:

2287 2706 

2288* **Código de saída 2**: a tarefa não é marcada como concluída e a mensagem de stderr é alimentada de volta ao modelo como feedback.2707* **Código de saída 2**: a tarefa não é marcada como concluída e a mensagem stderr é retornada ao modelo como feedback.

2289* **JSON `{"continue": false, "stopReason": "..."}`**: para o colega inteiramente, correspondendo ao comportamento do hook `Stop`. O `stopReason` é mostrado ao usuário.2708* **JSON `{"continue": false, "stopReason": "..."}`**: quando um colega terminando seu turno disparou o evento, para o colega inteiramente, correspondendo ao comportamento do hook `Stop`. O `stopReason` é mostrado ao usuário. Quando a ferramenta `TaskUpdate` disparou o evento, Claude Code ignora `continue: false`; o código de saída 2 ainda bloqueia a conclusão.

2290 2709 

2291Este exemplo executa testes e bloqueia conclusão de tarefa se falharem:2710Este exemplo executa testes e bloqueia a conclusão da tarefa se falharem:

2292 2711 

2293```bash theme={null}2712```bash theme={null}

2294#!/bin/bash2713#!/bin/bash

2295INPUT=$(cat)2714INPUT=$(cat)

2296TASK_SUBJECT=$(echo "$INPUT" | jq -r '.task_subject')2715TASK_SUBJECT=$(echo "$INPUT" | jq -r '.task_subject')

2297 2716 

2298# Execute a suite de testes2717# Run the test suite

2299if ! npm test 2>&1; then2718if ! npm test 2>&1; then

2300 echo "Tests not passing. Fix failing tests before completing: $TASK_SUBJECT" >&22719 echo "Tests not passing. Fix failing tests before completing: $TASK_SUBJECT" >&2

2301 exit 22720 exit 2


2308 Stop2727 Stop

2309</h3>2728</h3>

2310 2729 

2311Executa quando o agente Claude Code principal terminou de responder. Não executa se a parada ocorreu devido a uma interrupção do usuário. Erros de API disparam [StopFailure](#stopfailure) em vez disso.2730Executado quando o agente Claude Code principal terminou de responder. Não é executado se a parada ocorreu devido a uma interrupção do usuário. Erros de API disparam [StopFailure](#stopfailure) em vez disso.

2312 2731 

2313<Tip>2732<Tip>

2314 O comando [`/goal`](/docs/pt/goal) é um atalho integrado para um hook Stop baseado em prompt com escopo de sessão. Use-o quando você quiser que Claude continue trabalhando até que uma condição se mantenha sem escrever configuração de hook.2733 O comando [`/goal`](/docs/pt/goal) é um atalho integrado para um hook Stop baseado em prompt com escopo de sessão. Use-o quando você quer que Claude continue trabalhando em direção a uma condição sem escrever configuração de hook.

2315</Tip>2734</Tip>

2316 2735 

2317<h4 id="stop-input">2736<h4 id="stop-input">

2318 Entrada de Stop2737 Entrada Stop

2319</h4>2738</h4>

2320 2739 

2321Além dos [campos de entrada comuns](#common-input-fields), hooks Stop recebem `stop_hook_active`, `last_assistant_message`, `background_tasks` e `session_crons`. O campo `stop_hook_active` é `true` quando Claude Code já está continuando como resultado de um hook stop. Verifique este valor ou processe a transcrição para prevenir que Claude Code execute indefinidamente. Claude Code sobrescreve o hook e termina o turno após 8 bloqueios consecutivos.2740Além dos [campos de entrada comuns](#common-input-fields), os hooks Stop recebem `stop_hook_active`, `last_assistant_message`, `background_tasks` e `session_crons`. O campo `stop_hook_active` é `true` quando Claude Code já está continuando como resultado de um hook stop. Verifique este valor ou processe a transcrição para evitar bloquear em uma condição que nunca será resolvida. Claude Code sobrescreve o hook e termina o turno após 8 bloqueios consecutivos.

2322 2741 

2323O campo `last_assistant_message` contém o conteúdo de texto da resposta final de Claude, então hooks podem acessá-lo sem analisar o arquivo de transcrição. Para hooks que atuam no turno recém-concluído, como hooks de leitura em voz alta ou notificação, use este campo em vez de ler `transcript_path`: o arquivo de transcrição não é garantido incluir a mensagem final no tempo de Stop em todas as versões.2742O campo `last_assistant_message` contém o conteúdo de texto da resposta final do Claude, portanto hooks podem acessá-lo sem analisar o arquivo de transcrição. Para hooks que atuam no turno recém-concluído, como hooks de leitura em voz alta ou notificação, use este campo em vez de ler `transcript_path`: o arquivo de transcrição não é garantido incluir a mensagem final no tempo de Stop em todas as versões.

2324 2743 

2325Os arrays `background_tasks` e `session_crons`, disponíveis no Claude Code v2.1.145 ou posterior, permitem que hooks distingam "sessão está feita" de "sessão está pausada esperando que trabalho em background a acorde novamente". Ambos os arrays estão presentes quando o registro de tarefas é alcançável e estão vazios quando nada está em voo ou agendado.2744Os arrays `background_tasks` e `session_crons` permitem que hooks distingam "sessão está feita" de "sessão está pausada esperando que trabalho de fundo a acorde novamente". Ambos os arrays estão presentes quando o registro de tarefas é alcançável e estão vazios quando nada está em voo ou agendado.

2326 2745 

2327Cada entrada em `background_tasks` descreve uma tarefa em voo e usa esses campos:2746Cada entrada em `background_tasks` descreve uma tarefa em voo e usa estes campos:

2328 2747 

2329| Campo | Descrição |2748| Campo | Descrição |

2330| :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |2749| :------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

2331| `id` | Identificador de tarefa |2750| `id` | Identificador de tarefa |

2332| `type` | Rótulo de tipo de tarefa amigável como `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session` ou `MCP task`. Cada rótulo identifica qual recurso do Claude Code criou a tarefa. Volta para o discriminante bruto para tipos não reconhecidos |2751| `type` | Rótulo de tipo de tarefa amigável como `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session` ou `MCP task`. Cada rótulo identifica qual recurso Claude Code criou a tarefa. Volta para o discriminante bruto para tipos não reconhecidos |

2333| `status` | Status atual da tarefa |2752| `status` | Status atual da tarefa |

2334| `description` | Descrição de texto livre, limitada a 1000 caracteres com um marcador `… [+N chars]` em string quando cortado |2753| `description` | Descrição de texto livre, limitada a 1000 caracteres com um marcador `… [+N chars]` em string quando cortado |

2335| `command` | Linha de comando shell, limitada a 1000 caracteres. Presente apenas para tarefas `shell` |2754| `command` | Linha de comando de shell, limitada a 1000 caracteres. Presente apenas para tarefas `shell` |

2336| `agent_type` | Nome de tipo de subagente. Presente apenas para tarefas `subagent` |2755| `agent_type` | Nome de tipo de subagente. Presente apenas para tarefas `subagent` |

2337| `server` | Nome do servidor MCP. Presente apenas para tarefas `monitor` e `MCP task` |2756| `server` | Nome do servidor MCP. Presente apenas para tarefas `monitor` e `MCP task` |

2338| `tool` | Nome da ferramenta MCP. Presente apenas para tarefas `monitor` e `MCP task` |2757| `tool` | Nome da ferramenta MCP. Presente apenas para tarefas `monitor` e `MCP task` |


2341Cada entrada em `session_crons` descreve um despertar agendado com escopo de sessão, originário de `CronCreate`, `ScheduleWakeup` e `/loop`:2760Cada entrada em `session_crons` descreve um despertar agendado com escopo de sessão, originário de `CronCreate`, `ScheduleWakeup` e `/loop`:

2342 2761 

2343| Campo | Descrição |2762| Campo | Descrição |

2344| :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------- |2763| :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------ |

2345| `id` | Identificador de tarefa cron |2764| `id` | Identificador de tarefa Cron |

2346| `schedule` | Expressão cron, por exemplo `0 9 * * 1-5` |2765| `schedule` | Expressão Cron, por exemplo `0 9 * * 1-5` |

2347| `recurring` | `false` para despertares únicos cuja agenda codifica um único tempo de disparo, `true` para tarefas que disparam novamente em cada correspondência |2766| `recurring` | `false` para despertares únicos cuja programação codifica um tempo de disparo único, `true` para tarefas que disparam novamente em cada correspondência |

2348| `prompt` | Prompt submetido quando o cron dispara, limitado a 1000 caracteres com o mesmo marcador `… [+N chars]` |2767| `prompt` | Prompt enviado quando o cron dispara, limitado a 1000 caracteres com o mesmo marcador `… [+N chars]` |

2349 2768 

2350Este exemplo mostra uma entrada de Stop com uma tarefa shell em voo e um cron recorrente:2769Este exemplo mostra uma entrada Stop com uma tarefa de shell em voo e um cron recorrente:

2351 2770 

2352```json theme={null}2771```json theme={null}

2353{2772{


2379```2798```

2380 2799 

2381<h4 id="stop-decision-control">2800<h4 id="stop-decision-control">

2382 Controle de decisão de Stop2801 Controle de decisão Stop

2383</h4>2802</h4>

2384 2803 

2385Hooks `Stop` e `SubagentStop` podem controlar se Claude continua. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar esses campos específicos do evento:2804Os hooks `Stop` e `SubagentStop` podem controlar se Claude continua. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar esses campos específicos do evento:

2386 2805 

2387| Campo | Descrição |2806| Campo | Descrição |

2388| :------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2807| :------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

2389| `decision` | `"block"` previne Claude de parar. Omita para permitir que Claude pare |2808| `decision` | `"block"` impede que Claude pare. Omita para permitir que Claude pare |

2390| `reason` | Obrigatório quando `decision` é `"block"`. Diz ao Claude por que deve continuar |2809| `reason` | Necessário quando `decision` é `"block"`. Diz ao Claude por que deve continuar |

2391| `hookSpecificOutput.additionalContext` | Feedback não-erro para Claude. A conversa continua para que Claude possa agir sobre isso, mas diferentemente de `decision: "block"` é mostrado na transcrição como feedback de hook em vez de erro de hook |2810| `hookSpecificOutput.additionalContext` | Feedback sem erro para Claude. A conversa continua para que Claude possa agir sobre isso, mas ao contrário de `decision: "block"` é mostrado na transcrição como feedback de hook em vez de um erro de hook |

2811 

2812Um hook que bloqueia ao sair com 2 roteia da mesma forma que `reason`: Claude recebe a mensagem stderr como a explicação de por que deve continuar.

2392 2813 

2393```json theme={null}2814```json theme={null}

2394{2815{


2397}2818}

2398```2819```

2399 2820 

2400Use `additionalContext` quando o hook está funcionando como projetado e dando orientação a Claude, como "execute a suite de testes antes de terminar". Mantém a conversa indo através das mesmas proteções de loop que `decision: "block"`, a saber a entrada `stop_hook_active` e o limite de 8 continuações consecutivas, mas a transcrição a rotula como `Stop hook feedback` e nenhuma notificação de erro de hook é mostrada:2821Use `additionalContext` quando o hook está funcionando conforme projetado e dando orientação ao Claude, como "execute a suite de testes antes de terminar". Mantém a conversa passando através das mesmas proteções de loop que `decision: "block"`, a saber a entrada `stop_hook_active` e o limite de 8 continuações consecutivas, mas a transcrição a rotula como `Stop hook feedback` e nenhuma notificação de erro de hook é mostrada:

2401 2822 

2402```json theme={null}2823```json theme={null}

2403{2824{


2412 StopFailure2833 StopFailure

2413</h3>2834</h3>

2414 2835 

2415Executa em vez de [Stop](#stop) quando o turno termina devido a um erro de API. Saída e código de saída são ignorados. Use isso para registrar falhas, enviar alertas ou tomar ações de recuperação quando Claude não consegue completar uma resposta devido a limites de taxa, problemas de autenticação ou outros erros de API.2836Executado em vez de [Stop](#stop) quando o turno termina devido a um erro de API. Claude Code ignora a saída e código de saída do hook, além de [`terminalSequence`](#emit-terminal-notifications). Use isso para registrar falhas, enviar alertas ou tomar ações de recuperação quando Claude não pode completar uma resposta devido a limites de taxa, problemas de autenticação ou outros erros de API.

2416 2837 

2417<h4 id="stopfailure-input">2838<h4 id="stopfailure-input">

2418 Entrada de StopFailure2839 Entrada StopFailure

2419</h4>2840</h4>

2420 2841 

2421Além dos [campos de entrada comuns](#common-input-fields), hooks StopFailure recebem `error`, `error_details` opcional e `last_assistant_message` opcional. O campo `error` identifica o tipo de erro e é usado para filtragem de matcher.2842Além dos [campos de entrada comuns](#common-input-fields), os hooks StopFailure recebem `error`, `error_details` opcional e `last_assistant_message` opcional. O campo `error` identifica o tipo de erro e é usado para filtragem de matcher.

2422 2843 

2423| Campo | Descrição |2844| Campo | Descrição |

2424| :----------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2845| :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

2425| `error` | Tipo de erro: `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens` ou `unknown` |2846| `error` | Tipo de erro: `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error` ou `unknown` |

2426| `error_details` | Detalhes adicionais sobre o erro, quando disponível |2847| `error_details` | Detalhes adicionais sobre o erro, quando disponível |

2427| `last_assistant_message` | O texto de erro renderizado mostrado na conversa. Diferentemente de `Stop` e `SubagentStop`, onde este campo contém a saída conversacional de Claude, para `StopFailure` contém a string de erro da API em si, como `"API Error: Rate limit reached"` |2848| `last_assistant_message` | O texto de erro renderizado mostrado na conversa. Ao contrário de `Stop` e `SubagentStop`, onde este campo contém a saída conversacional do Claude, para `StopFailure` ele contém a string de erro da API em si, como `"API Error: Rate limit reached"` |

2428 2849 

2429```json theme={null}2850```json theme={null}

2430{2851{


2438}2859}

2439```2860```

2440 2861 

2441Hooks StopFailure não têm controle de decisão. Eles executam apenas para fins de notificação e logging.2862Os hooks StopFailure não têm controle de decisão. Eles são executados apenas para fins de notificação e registro.

2442 2863 

2443<h3 id="teammateidle">2864<h3 id="teammateidle">

2444 TeammateIdle2865 TeammateIdle

2445</h3>2866</h3>

2446 2867 

2447Executa quando um colega de [equipe de agente](/docs/pt/agent-teams) está prestes a ficar ocioso após terminar seu turno. Use isso para impor portões de qualidade antes de um colega parar de trabalhar, como exigir verificações de lint aprovadas ou verificar que arquivos de saída existem.2868Executado quando um [colega de equipe de agente](/docs/pt/agent-teams) está prestes a ficar inativo após terminar seu turno. Use isso para impor portões de qualidade antes de um colega parar de trabalhar, como exigir verificações de lint aprovadas ou verificar que arquivos de saída existem.

2448 2869 

2449Quando um hook `TeammateIdle` sai com código 2, o colega recebe a mensagem de stderr como feedback e continua trabalhando em vez de ficar ocioso. Para parar o colega inteiramente em vez de re-executá-lo, retorne JSON com `{"continue": false, "stopReason": "..."}`. Hooks TeammateIdle não suportam matchers e disparam em cada ocorrência.2870Os hooks TeammateIdle não suportam matchers e são disparados em cada ocorrência.

2450 2871 

2451<h4 id="teammateidle-input">2872<h4 id="teammateidle-input">

2452 Entrada de TeammateIdle2873 Entrada TeammateIdle

2453</h4>2874</h4>

2454 2875 

2455Além dos [campos de entrada comuns](#common-input-fields), hooks TeammateIdle recebem `teammate_name` e `team_name`.2876Além dos [campos de entrada comuns](#common-input-fields), os hooks TeammateIdle recebem `teammate_name` e `team_name`.

2456 2877 

2457```json theme={null}2878```json theme={null}

2458{2879{


2467```2888```

2468 2889 

2469| Campo | Descrição |2890| Campo | Descrição |

2470| :-------------- | :------------------------------------------------------------------------- |2891| :-------------- | :----------------------------------------------------------------------------------- |

2471| `teammate_name` | Nome do colega que está prestes a ficar ocioso |2892| `teammate_name` | Nome do colega que está prestes a ficar inativo |

2472| `team_name` | Deprecated. Session-derived team name; will be removed in a future release |2893| `team_name` | Descontinuado. Nome de equipe derivado de sessão; será removido em uma versão futura |

2473 2894 

2474<h4 id="teammateidle-decision-control">2895<h4 id="teammateidle-decision-control">

2475 Controle de decisão de TeammateIdle2896 Controle de decisão TeammateIdle

2476</h4>2897</h4>

2477 2898 

2478Hooks TeammateIdle suportam duas formas de controlar comportamento de colega:2899Os hooks TeammateIdle suportam duas maneiras de controlar o comportamento do colega:

2479 2900 

2480* **Código de saída 2**: o colega recebe a mensagem de stderr como feedback e continua trabalhando em vez de ficar ocioso.2901* **Código de saída 2**: o colega recebe a mensagem stderr como feedback e continua trabalhando em vez de ficar inativo.

2481* **JSON `{"continue": false, "stopReason": "..."}`**: para o colega inteiramente, correspondendo ao comportamento do hook `Stop`. O `stopReason` é mostrado ao usuário.2902* **JSON `{"continue": false, "stopReason": "..."}`**: para o colega inteiramente, correspondendo ao comportamento do hook `Stop`. O `stopReason` é mostrado ao usuário.

2482 2903 

2483Este exemplo verifica que um artefato de build existe antes de permitir que um colega fique ocioso:2904Este exemplo verifica se um artefato de compilação existe antes de permitir que um colega fique inativo:

2484 2905 

2485```bash theme={null}2906```bash theme={null}

2486#!/bin/bash2907#!/bin/bash


2497 ConfigChange2918 ConfigChange

2498</h3>2919</h3>

2499 2920 

2500Executa quando um arquivo de configuração muda durante uma sessão. Use isso para auditar mudanças de configurações, impor políticas de segurança ou bloquear modificações não autorizadas a arquivos de configuração.2921Executado quando um arquivo de configuração muda durante uma sessão. Use isso para auditar mudanças de configurações, impor políticas de segurança ou bloquear modificações não autorizadas em arquivos de configuração.

2501 2922 

2502Hooks ConfigChange disparam para mudanças em arquivos de configurações, configurações de política gerenciada e arquivos de skill. O campo `source` na entrada diz qual tipo de configuração mudou, e o campo `file_path` opcional fornece o caminho para o arquivo mudado.2923Claude Code executa hooks ConfigChange quando um arquivo de configurações, um arquivo de política gerenciada ou um arquivo de skill muda. Para política gerenciada, ele os executa apenas quando `managed-settings.json` ou um arquivo em `managed-settings.d/` muda. Ele aplica [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) e mudanças em preferências gerenciadas macOS ou política de registro Windows sem executá-los. Em WSL com [`wslInheritsWindowsSettings`](/docs/pt/settings-reference#wslinheritswindowssettings), ele também aplica um arquivo de configurações gerenciadas do lado Windows alterado em sua pesquisa de política sem executá-los.

2503 2924 

2504O matcher filtra na fonte de configuração:2925O matcher filtra na fonte de configuração:

2505 2926 

2506| Matcher | Quando dispara |2927| Matcher | Quando é disparado |

2507| :----------------- | :-------------------------------------------- |2928| :----------------- | :------------------------------------------------------------------ |

2508| `user_settings` | `~/.claude/settings.json` muda |2929| `user_settings` | `~/.claude/settings.json` muda |

2509| `project_settings` | `.claude/settings.json` muda |2930| `project_settings` | `.claude/settings.json` muda |

2510| `local_settings` | `.claude/settings.local.json` muda |2931| `local_settings` | `.claude/settings.local.json` muda |

2511| `policy_settings` | Configurações de política gerenciada mudam |2932| `policy_settings` | `managed-settings.json` ou um arquivo em `managed-settings.d/` muda |

2512| `skills` | Um arquivo de skill em `.claude/skills/` muda |2933| `skills` | Um arquivo de skill em `.claude/skills/` muda |

2513 2934 

2514Este exemplo registra todas as mudanças de configuração para auditoria de segurança:2935Este exemplo registra todas as mudanças de configuração para auditoria de segurança:


2532```2953```

2533 2954 

2534<h4 id="configchange-input">2955<h4 id="configchange-input">

2535 Entrada de ConfigChange2956 Entrada ConfigChange

2536</h4>2957</h4>

2537 2958 

2538Além dos [campos de entrada comuns](#common-input-fields), hooks ConfigChange recebem `source` e opcionalmente `file_path`. O campo `source` indica qual tipo de configuração mudou, e `file_path` fornece o caminho para o arquivo específico que foi modificado.2959Além dos [campos de entrada comuns](#common-input-fields), os hooks ConfigChange recebem `source` e opcionalmente `file_path`. O campo `source` indica qual tipo de configuração mudou, e `file_path` fornece o caminho para o arquivo específico que foi modificado.

2539 2960 

2540```json theme={null}2961```json theme={null}

2541{2962{


2549```2970```

2550 2971 

2551<h4 id="configchange-decision-control">2972<h4 id="configchange-decision-control">

2552 Controle de decisão de ConfigChange2973 Controle de decisão ConfigChange

2553</h4>2974</h4>

2554 2975 

2555Hooks ConfigChange podem bloquear mudanças de configuração de entrar em efeito. Use código de saída 2 ou um JSON `decision` para prevenir a mudança. Quando bloqueado, as novas configurações não são aplicadas à sessão em execução.2976Os hooks ConfigChange podem bloquear mudanças de configuração de serem aplicadas. Use código de saída 2 ou um JSON `decision` para impedir a mudança. Quando bloqueado, as novas configurações não são aplicadas à sessão em execução.

2556 2977 

2557| Campo | Descrição |2978| Campo | Descrição |

2558| :--------- | :----------------------------------------------------------------------------------------- |2979| :--------- | :------------------------------------------------------------------------------------------ |

2559| `decision` | `"block"` previne a mudança de configuração de ser aplicada. Omita para permitir a mudança |2980| `decision` | `"block"` impede que a mudança de configuração seja aplicada. Omita para permitir a mudança |

2560| `reason` | Explicação mostrada ao usuário quando `decision` é `"block"` |2981| `reason` | Aceito mas nunca mostrado |

2561 2982 

2562```json theme={null}2983```json theme={null}

2563{2984{


2566}2987}

2567```2988```

2568 2989 

2569Mudanças `policy_settings` não podem ser bloqueadas. Hooks ainda disparam para fontes `policy_settings`, então você pode usá-los para logging de auditoria, mas qualquer decisão de bloqueio é ignorada. Isso garante que configurações gerenciadas por empresa sempre entrem em efeito.2990As mudanças `policy_settings` não podem ser bloqueadas. Os hooks ainda são disparados para fontes `policy_settings` quando um arquivo de configurações gerenciadas na máquina muda, portanto você pode usá-los para registrar essas edições, mas qualquer decisão de bloqueio é ignorada. Isso garante que as configurações gerenciadas pela empresa sempre tenham efeito. Claude Code não executa hooks `ConfigChange` quando [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) chegam ou são atualizadas.

2991 

2992Claude Code atua na decisão de bloqueio da saída JSON de um hook ConfigChange e descarta `systemMessage` e `continue`. Uma mudança bloqueada não exibe nenhuma mensagem para você ou para Claude, independentemente de você bloquear com `reason` ou com stderr ao sair com 2. Claude Code apenas escreve uma linha no log de depuração.

2570 2993 

2571<h3 id="cwdchanged">2994<h3 id="cwdchanged">

2572 CwdChanged2995 CwdChanged

2573</h3>2996</h3>

2574 2997 

2575Executa quando o diretório de trabalho muda durante uma sessão, por exemplo quando Claude executa um comando `cd`. Use isso para reagir a mudanças de diretório: recarregar variáveis de ambiente, ativar toolchains específicas do projeto ou executar scripts de configuração automaticamente. Emparelha com [FileChanged](#filechanged) para ferramentas como [direnv](https://direnv.net/) que gerenciam ambiente por diretório.2998Executado quando um comando de shell na conversa principal muda o diretório de trabalho, por exemplo quando Claude executa um comando `cd`. Use isso para reagir a mudanças de diretório: recarregar variáveis de ambiente, ativar toolchains específicas do projeto ou executar scripts de configuração automaticamente. Emparelha com [FileChanged](#filechanged) para ferramentas como [direnv](https://direnv.net/) que gerenciam ambiente por diretório.

2576 2999 

2577Hooks CwdChanged têm acesso a `CLAUDE_ENV_FILE`. Variáveis escritas para esse arquivo persistem em comandos Bash subsequentes para a sessão, assim como em [hooks SessionStart](#persist-environment-variables).3000Os hooks CwdChanged têm acesso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). Variáveis escritas nesse arquivo persistem em comandos Bash subsequentes até o próximo evento CwdChanged, quando Claude Code as limpa.

2578 3001 

2579CwdChanged não suporta matchers e dispara em cada mudança de diretório.3002CwdChanged não suporta matchers e é disparado em cada ocorrência.

2580 3003 

2581<h4 id="cwdchanged-input">3004<h4 id="cwdchanged-input">

2582 Entrada de CwdChanged3005 Entrada CwdChanged

2583</h4>3006</h4>

2584 3007 

2585Além dos [campos de entrada comuns](#common-input-fields), hooks CwdChanged recebem `old_cwd` e `new_cwd`.3008Além dos [campos de entrada comuns](#common-input-fields), os hooks CwdChanged recebem `old_cwd` e `new_cwd`.

2586 3009 

2587```json theme={null}3010```json theme={null}

2588{3011{


2596```3019```

2597 3020 

2598<h4 id="cwdchanged-output">3021<h4 id="cwdchanged-output">

2599 Saída de CwdChanged3022 Saída CwdChanged

2600</h4>3023</h4>

2601 3024 

2602Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, hooks CwdChanged podem retornar `watchPaths` para definir dinamicamente quais caminhos de arquivo [FileChanged](#filechanged) monitora:3025Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, os hooks CwdChanged podem retornar `watchPaths` para definir dinamicamente quais caminhos de arquivo [FileChanged](#filechanged) observa:

2603 3026 

2604| Campo | Descrição |3027| Campo | Descrição |

2605| :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |3028| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

2606| `watchPaths` | Array de caminhos absolutos. Substitui a lista de monitoramento dinâmica atual. Caminhos de sua configuração `matcher` são sempre monitorados. Retornar um array vazio limpa a lista dinâmica, que é típico ao entrar em um novo diretório |3029| `watchPaths` | Array de caminhos absolutos. Substitui a lista de observação dinâmica atual. Caminhos de sua configuração `matcher` são sempre observados. Retornar um array vazio limpa a lista dinâmica, que é típico ao entrar em um novo diretório |

2607 3030 

2608Hooks CwdChanged não têm controle de decisão. Eles não podem bloquear a mudança de diretório.3031Os hooks CwdChanged não têm controle de decisão. Eles não podem bloquear a mudança de diretório.

3032 

3033Claude Code lê `watchPaths` e `systemMessage` de sua saída JSON e descarta `continue`. Em sessões interativas, mostra o `systemMessage` como uma breve notificação de terminal. A mensagem não chega ao fluxo de mensagens do SDK.

3034 

3035<h3 id="directoryadded">

3036 DirectoryAdded

3037</h3>

3038 

3039Executado após você adicionar um diretório de trabalho no meio da sessão com o comando `/add-dir`, ou após um cliente SDK adicionar um com a solicitação de controle `register_repo_root`. Use isso para preparar um repositório recém-adicionado, por exemplo instalando suas dependências.

3040 

3041Claude Code não dispara este evento quando:

3042 

3043* Você passa um diretório com a flag de startup `--add-dir`; [SessionStart](#sessionstart) cobre esses diretórios

3044* Você adiciona um diretório na aba `/permissions` Workspace

3045* Você adiciona um diretório que já é um diretório de trabalho ou está dentro de um

3046 

3047Claude Code dispara DirectoryAdded após atualizar estado de sandbox e permissão, portanto ferramentas em sandbox já veem o novo diretório quando seu hook é executado. Comandos de hook em si são executados sem sandbox.

3048 

3049Claude Code não espera pelo hook: a adição é concluída imediatamente, e o hook é executado em segundo plano com o tempo limite padrão de 600 segundos.

3050 

3051O matcher filtra em como o diretório foi adicionado:

3052 

3053| Matcher | Quando é disparado |

3054| :------------------- | :-------------------------------------------------------------------------------------- |

3055| `slash_command` | Você adiciona um diretório com `/add-dir` |

3056| `register_repo_root` | Um cliente SDK adiciona um diretório com a solicitação de controle `register_repo_root` |

3057 

3058<h4 id="directoryadded-input">

3059 Entrada DirectoryAdded

3060</h4>

3061 

3062Além dos [campos de entrada comuns](#common-input-fields), os hooks DirectoryAdded recebem `directory` e `source`.

3063 

3064| Campo | Descrição |

3065| :---------- | :--------------------------------------------------------------------------------------------------------------------------------- |

3066| `directory` | Caminho absoluto do diretório que foi adicionado |

3067| `source` | Como o diretório foi adicionado, `"slash_command"` para `/add-dir` ou `"register_repo_root"` para a solicitação de controle do SDK |

3068 

3069```json theme={null}

3070{

3071 "session_id": "abc123",

3072 "transcript_path": "/Users/.../.claude/projects/.../transcript.jsonl",

3073 "cwd": "/Users/my-project",

3074 "hook_event_name": "DirectoryAdded",

3075 "directory": "/Users/my-other-repo",

3076 "source": "slash_command"

3077}

3078```

3079 

3080Os hooks DirectoryAdded não têm controle de decisão. Eles não podem bloquear a adição, que já foi concluída quando o hook é executado. Claude Code descarta o campo `continue` de sua saída JSON e exibe o resto diferentemente por fonte:

3081 

3082* `slash_command`: Claude Code entrega o `systemMessage` do hook ao Claude como contexto no próximo turno de conversa, em vez de mostrar a você. Uma contagem de hooks falhados aparece na transcrição. A saída de falha completa vai para o log de depuração

3083* `register_repo_root`: Claude Code escreve saída `systemMessage` e saída de falha apenas no log de depuração

2609 3084 

2610<h3 id="filechanged">3085<h3 id="filechanged">

2611 FileChanged3086 FileChanged

2612</h3>3087</h3>

2613 3088 

2614Executa quando um arquivo monitorado muda no disco. Útil para recarregar variáveis de ambiente quando arquivos de configuração do projeto são modificados.3089Executado quando um arquivo observado muda no disco. Claude Code detecta mudanças com um observador de sistema de arquivos, não inspecionando chamadas de ferramenta, portanto executa o hook não importa o que mudou o arquivo: uma chamada de ferramenta `Edit` ou `Write`, um script que Claude executa com `Bash` ou um processo fora de Claude Code inteiramente. Um uso comum é recarregar variáveis de ambiente quando arquivos de configuração do projeto mudam.

2615 3090 

2616O `matcher` para este evento serve dois papéis:3091O `matcher` para este evento serve dois papéis:

2617 3092 

2618* **Construir a lista de monitoramento**: o valor é dividido em `|` e cada segmento é registrado como um nome de arquivo literal no diretório de trabalho, então `".envrc|.env"` monitora exatamente esses dois arquivos. Padrões regex não são úteis aqui: um valor como `^\.env` monitoraria um arquivo literalmente nomeado `^\.env`.3093* **Construir a lista de observação**: o valor é dividido em `|` e cada segmento é registrado como um nome de arquivo literal no diretório de trabalho, portanto `".envrc|.env"` observa exatamente esses dois arquivos. Padrões regex não são úteis aqui: um valor como `^\.env` observaria um arquivo literalmente nomeado `^\.env`.

2619* **Filtrar quais hooks executam**: quando um arquivo monitorado muda, o mesmo valor filtra quais grupos de hook executam usando as [regras de matcher](#matcher-patterns) padrão contra o basename do arquivo alterado.3094* **Filtrar quais hooks são executados**: quando um arquivo observado muda, o mesmo valor filtra quais grupos de hook são executados usando as [regras de matcher](#matcher-patterns) padrão contra o nome base do arquivo alterado.

3095 

3096Este exemplo normaliza terminações de linha em `data.csv` após qualquer mudança, incluindo um comando `Bash` ou um script externo reescrevendo o arquivo:

3097 

3098```json theme={null}

3099{

3100 "hooks": {

3101 "FileChanged": [

3102 {

3103 "matcher": "data.csv",

3104 "hooks": [

3105 {

3106 "type": "command",

3107 "command": "/path/to/normalize-line-endings.sh"

3108 }

3109 ]

3110 }

3111 ]

3112 }

3113}

3114```

3115 

3116O hook lê o caminho absoluto do arquivo alterado do campo `file_path` da [entrada JSON](#filechanged-input) em stdin. Sua guarda `grep` testa a mesma coisa que `perl` remove, um CR no final de uma linha, portanto a execução após uma normalização sai sem tocar no arquivo. Uma guarda mais solta faz um loop para sempre, porque `perl -i` reescreve o arquivo mesmo quando substitui nada e Claude Code executa o hook novamente após cada reescrita. Salve este script em `/path/to/normalize-line-endings.sh` e torne-o executável:

3117 

3118```bash theme={null}

3119#!/bin/bash

3120FILE=$(jq -r .file_path)

3121if grep -q $'\r$' "$FILE"; then

3122 perl -pi -e 's/\r$//' "$FILE"

3123fi

3124```

3125 

3126Para confirmar que o hook funciona, peça ao Claude para anexar uma linha CRLF a `data.csv` com um comando `Bash`. Claude Code executa o hook e o arquivo termina com terminações LF.

2620 3127 

2621Hooks FileChanged têm acesso a `CLAUDE_ENV_FILE`. Variáveis escritas para esse arquivo persistem em comandos Bash subsequentes para a sessão, assim como em [hooks SessionStart](#persist-environment-variables).3128Para observar arquivos que você não pode nomear antecipadamente, retorne [`watchPaths`](#filechanged-output) de um hook para atualizar a lista de observação dinamicamente. Claude Code inicia o observador apenas quando algo nomeia um arquivo para observar, portanto semeie a lista com um grupo FileChanged cujo matcher nomeia pelo menos um arquivo, ou com um hook [SessionStart](#sessionstart-decision-control) ou [CwdChanged](#cwdchanged) que retorna `watchPaths`. O matcher ainda filtra quais grupos de hook são executados quando um arquivo observado muda, portanto dê ao grupo que manipula caminhos dinâmicos um matcher omitido, que corresponde a cada arquivo observado e não adiciona nada à lista de observação. Um matcher `"*"` também corresponde a cada arquivo, mas Claude Code o registra na lista de observação como qualquer outro valor, como um arquivo literal nomeado `*`.

3129 

3130Os hooks FileChanged têm acesso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). Variáveis escritas nesse arquivo persistem em comandos Bash subsequentes até o próximo evento [CwdChanged](#cwdchanged), quando Claude Code as limpa.

2622 3131 

2623<h4 id="filechanged-input">3132<h4 id="filechanged-input">

2624 Entrada de FileChanged3133 Entrada FileChanged

2625</h4>3134</h4>

2626 3135 

2627Além dos [campos de entrada comuns](#common-input-fields), hooks FileChanged recebem `file_path` e `event`.3136Além dos [campos de entrada comuns](#common-input-fields), os hooks FileChanged recebem `file_path` e `event`.

2628 3137 

2629| Campo | Descrição |3138| Campo | Descrição |

2630| :---------- | :---------------------------------------------------------------------------------------------------------------------------- |3139| :---------- | :---------------------------------------------------------------------------------------------------------------------------- |

2631| `file_path` | Caminho absoluto para o arquivo que mudou |3140| `file_path` | Caminho absoluto para o arquivo que mudou |

2632| `event` | O que aconteceu: `"change"` para um arquivo modificado, `"add"` para um arquivo criado ou `"unlink"` para um arquivo deletado |3141| `event` | O que aconteceu: `"change"` para um arquivo modificado, `"add"` para um arquivo criado ou `"unlink"` para um arquivo excluído |

2633 3142 

2634```json theme={null}3143```json theme={null}

2635{3144{


2643```3152```

2644 3153 

2645<h4 id="filechanged-output">3154<h4 id="filechanged-output">

2646 Saída de FileChanged3155 Saída FileChanged

2647</h4>3156</h4>

2648 3157 

2649Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, hooks FileChanged podem retornar `watchPaths` para atualizar dinamicamente quais caminhos de arquivo são monitorados:3158Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, os hooks FileChanged podem retornar `watchPaths` para atualizar dinamicamente quais caminhos de arquivo são observados:

2650 3159 

2651| Campo | Descrição |3160| Campo | Descrição |

2652| :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |3161| :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

2653| `watchPaths` | Array de caminhos absolutos. Substitui a lista de monitoramento dinâmica atual. Caminhos de sua configuração `matcher` são sempre monitorados. Use isso quando seu script de hook descobre arquivos adicionais para monitorar baseado no arquivo alterado |3162| `watchPaths` | Array de caminhos absolutos. Substitui a lista de observação dinâmica atual. Caminhos de sua configuração `matcher` são sempre observados. Use isso quando seu script de hook descobre arquivos adicionais para observar com base no arquivo alterado |

3163 

3164Os hooks FileChanged não têm controle de decisão. Eles não podem bloquear a mudança de arquivo de ocorrer.

2654 3165 

2655Hooks FileChanged não têm controle de decisão. Eles não podem bloquear a mudança de arquivo de ocorrer.3166Claude Code lê `watchPaths` e `systemMessage` de sua saída JSON e descarta `continue`. Em sessões interativas, mostra o `systemMessage` como uma breve notificação de terminal. A mensagem não chega ao fluxo de mensagens do SDK.

2656 3167 

2657<h3 id="worktreecreate">3168<h3 id="worktreecreate">

2658 WorktreeCreate3169 WorktreeCreate

2659</h3>3170</h3>

2660 3171 

2661Executa quando um worktree está sendo criado, seja de `claude --worktree` ou de um [subagente usando `isolation: "worktree"`](/docs/pt/sub-agents#choose-the-subagent-scope). Por padrão Claude Code cria a cópia de trabalho isolada com `git worktree`. Configurar um hook WorktreeCreate substitui esse comportamento git padrão, permitindo que você use um sistema de controle de versão diferente como SVN, Perforce ou Mercurial.3172Executado quando uma worktree está sendo criada, seja de `claude --worktree`, de um [subagente usando `isolation: "worktree"`](/docs/pt/sub-agents#choose-the-subagent-scope) ou para uma [sessão em segundo plano](/docs/pt/agent-view#how-file-edits-are-isolated) que Claude Code isola em sua própria worktree. Por padrão, Claude Code cria a cópia de trabalho isolada com `git worktree`. Configurar um hook WorktreeCreate substitui esse comportamento git padrão, permitindo que você use um sistema de controle de versão diferente como SVN, Perforce ou Mercurial.

2662 3173 

2663Porque o hook substitui o comportamento padrão inteiramente, [`.worktreeinclude`](/docs/pt/worktrees#copy-gitignored-files-into-worktrees) não é processado. Se você precisar copiar arquivos de configuração local como `.env` para o novo worktree, faça isso dentro de seu script de hook.3174Como o hook substitui o comportamento padrão inteiramente, [`.worktreeinclude`](/docs/pt/worktrees#copy-gitignored-files-into-worktrees) não é processado. Se você precisar copiar arquivos de configuração local como `.env` para a nova worktree, faça isso dentro de seu script de hook.

2664 3175 

2665O hook deve retornar o caminho para o diretório worktree criado. Claude Code usa este caminho como o diretório de trabalho para a sessão isolada. Consulte [Saída de WorktreeCreate](#worktreecreate-output) para como cada tipo de hook retorna o caminho.3176O hook deve retornar o caminho para o diretório de worktree criado. Claude Code usa este caminho como o diretório de trabalho para a sessão isolada. Veja [saída WorktreeCreate](#worktreecreate-output) para como cada tipo de hook retorna o caminho.

2666 3177 

2667Este exemplo cria uma cópia de trabalho SVN e imprime o caminho para Claude Code usar. Substitua a URL do repositório pela sua:3178Claude Code atua no sucesso do hook e no caminho retornado, e descarta `systemMessage` e `continue`.

3179 

3180Este exemplo cria uma cópia de trabalho SVN e imprime o caminho para Claude Code usar. Substitua a URL do repositório pela sua própria:

2668 3181 

2669```json theme={null}3182```json theme={null}

2670{3183{


2683}3196}

2684```3197```

2685 3198 

2686O hook lê o `name` do worktree da entrada JSON em stdin, verifica uma cópia fresca em um novo diretório e imprime o caminho do diretório. O `echo` na última linha é o que Claude Code lê como o caminho do worktree. Redirecione qualquer outra saída para stderr para que não interfira com o caminho.3199O hook lê o `name` da worktree da entrada JSON em stdin, faz checkout de uma cópia fresca em um novo diretório e imprime o caminho do diretório. O `echo` na última linha é o que Claude Code lê como o caminho da worktree. Redirecione qualquer outra saída para stderr para que não interfira com o caminho.

2687 3200 

2688<h4 id="worktreecreate-input">3201<h4 id="worktreecreate-input">

2689 Entrada de WorktreeCreate3202 Entrada WorktreeCreate

2690</h4>3203</h4>

2691 3204 

2692Além dos [campos de entrada comuns](#common-input-fields), hooks WorktreeCreate recebem o campo `name`. Este é um identificador slug para o novo worktree, especificado pelo usuário ou auto-gerado, por exemplo `bold-oak-a3f2`.3205Além dos [campos de entrada comuns](#common-input-fields), os hooks WorktreeCreate recebem o campo `name`. Este é um identificador slug para a nova worktree, especificado pelo usuário ou auto-gerado, por exemplo `bold-oak-a3f2`.

2693 3206 

2694```json theme={null}3207```json theme={null}

2695{3208{


2702```3215```

2703 3216 

2704<h4 id="worktreecreate-output">3217<h4 id="worktreecreate-output">

2705 Saída de WorktreeCreate3218 Saída WorktreeCreate

2706</h4>3219</h4>

2707 3220 

2708Hooks WorktreeCreate não usam o modelo de decisão permitir/bloquear padrão. Em vez disso, o sucesso ou falha do hook determina o resultado. O hook deve retornar o caminho para o diretório worktree criado:3221Os hooks WorktreeCreate não usam o modelo de decisão permitir/bloquear padrão. Em vez disso, o sucesso ou falha do hook determina o resultado. O hook deve retornar o caminho para o diretório de worktree criado:

3222 

3223* **Hooks de comando** (`type: "command"`): imprima o caminho como a última linha não vazia de stdout. Claude Code remove códigos de escape ANSI antes de ler essa linha, portanto banners de inicialização de shell impressos antes de seu `echo` são ignorados. Redirecione qualquer outra saída de hook para stderr.

3224* **Hooks HTTP** (`type: "http"`): retorne `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` no corpo da resposta.

2709 3225 

2710* **Hooks de comando** (`type: "command"`): imprimem o caminho como a última linha não-vazia de stdout. Claude Code remove códigos de escape ANSI antes de ler essa linha, então banners de inicialização de shell impressos antes de seu `echo` são ignorados. Redirecione qualquer outra saída de hook para stderr.3226Se o hook falhar ou não produzir um caminho, a criação de worktree falha com um erro.

2711* **Hooks HTTP** (`type: "http"`): retornam `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` no corpo da resposta.

2712 3227 

2713Se o hook falhar ou não produzir caminho, a criação de worktree falha com um erro.3228Claude Code resolve um caminho relativo contra o diretório em que o hook foi executado, colapsando qualquer segmento `.` ou `..` nele. Se o caminho resultante não for um diretório que Claude Code possa entrar, a sessão imprime um erro nomeando o caminho e sai com código 1.

2714 3229 

2715Claude Code resolve um caminho relativo contra o diretório onde o hook executou. Se o caminho resultante não for um diretório que Claude Code possa entrar, a sessão imprime um erro nomeando o caminho e sai com código 1. Antes de v2.1.205, um caminho relativo ou um caminho que não existia no disco travava a sessão na inicialização, e com `-p` ela ficava parada por cerca de 30 segundos antes de sair com código 0.3230Claude Code recusa um caminho absoluto que contém segmentos `.` ou `..`, e qualquer caminho que passa através de um symlink abaixo da raiz do repositório, porque um symlink comprometido no repositório poderia redirecionar a worktree para fora dele. O erro nomeia o componente rejeitado. Retorne um caminho normalizado que não passa através de um symlink dentro do repositório. Antes da v2.1.216, a criação de worktree seguia o caminho do hook sem essa triagem.

2716 3231 

2717<h3 id="worktreeremove">3232<h3 id="worktreeremove">

2718 WorktreeRemove3233 WorktreeRemove

2719</h3>3234</h3>

2720 3235 

2721Executa quando um worktree está sendo removido, seja quando você sai de uma sessão `--worktree` e escolhe removê-lo, ou quando um subagente com `isolation: "worktree"` termina. Esta é a contraparte de limpeza para [WorktreeCreate](#worktreecreate).3236Executado quando uma worktree está sendo removida. Este é o equivalente de limpeza para [WorktreeCreate](#worktreecreate). O evento é disparado quando:

2722 3237 

2723Para worktrees baseados em git, Claude Code lida com limpeza automaticamente com `git worktree remove`. Se você configurou um hook WorktreeCreate para um sistema de controle de versão não-git, emparelhe-o com um hook WorktreeRemove para lidar com limpeza. Sem um, o diretório worktree é deixado no disco.3238* você sai de uma sessão `--worktree` e escolhe removê-la

3239* um subagente com `isolation: "worktree"` termina

3240* você exclui uma [sessão em segundo plano](/docs/pt/agent-view#what-deleting-a-session-removes) cuja worktree o hook criou

2724 3241 

2725Claude Code passa o caminho que WorktreeCreate retornou como `worktree_path` na entrada do hook. Este exemplo lê esse caminho e remove o diretório:3242Para worktrees baseadas em git, Claude Code manipula a limpeza automaticamente com `git worktree remove`. Se você configurou um hook WorktreeCreate para um sistema de controle de versão não-git, emparelhe-o com um hook WorktreeRemove para manipular a limpeza. Sem um, o diretório de worktree é deixado no disco.

3243 

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

3245 

3246Para uma exclusão de sessão em segundo plano, Claude Code verifica o caminho de worktree armazenado antes de executar o hook e recusa um caminho que é um symlink ou passa através de um abaixo da raiz do repositório. O hook é executado para uma worktree que ainda contém arquivos apenas quando você confirma a exclusão em [agent view](/docs/pt/agent-view#what-deleting-a-session-removes); para tal worktree, [`claude rm`](/docs/pt/agent-view#manage-sessions-from-the-shell) mantém a sessão e worktree em vez disso. Antes da v2.1.216, o hook era executado no caminho armazenado sem essas verificações.

3247 

3248Claude Code passa o caminho retornado por WorktreeCreate como `worktree_path` na entrada do hook. Este exemplo lê esse caminho e remove o diretório:

2726 3249 

2727```json theme={null}3250```json theme={null}

2728{3251{


2742```3265```

2743 3266 

2744<h4 id="worktreeremove-input">3267<h4 id="worktreeremove-input">

2745 Entrada de WorktreeRemove3268 Entrada WorktreeRemove

2746</h4>3269</h4>

2747 3270 

2748Além dos [campos de entrada comuns](#common-input-fields), hooks WorktreeRemove recebem o campo `worktree_path`, que é o caminho absoluto para o worktree sendo removido.3271Além dos [campos de entrada comuns](#common-input-fields), os hooks WorktreeRemove recebem o campo `worktree_path`, que é o caminho absoluto para a worktree sendo removida.

2749 3272 

2750```json theme={null}3273```json theme={null}

2751{3274{


2757}3280}

2758```3281```

2759 3282 

2760Hooks WorktreeRemove não têm controle de decisão. Eles não podem bloquear remoção de worktree mas podem executar tarefas de limpeza como remover estado de controle de versão ou arquivar mudanças. Falhas de hook são registradas apenas em modo debug.3283O código de saída de um hook WorktreeRemove decide o resultado. Quando um hook sai com código não-zero e o diretório em `worktree_path` ainda existe depois, a remoção falha:

3284 

3285* A worktree permanece no disco, e o comando do hook e stderr vão para o [log de depuração](#debug-hooks).

3286* Se você estava excluindo uma sessão em segundo plano, a sessão também permanece. A mensagem de recusa em [agent view](/docs/pt/agent-view#what-deleting-a-session-removes) relata como o hook terminou, como `exited 1`, cita o início de seu stderr e diz se excluir a sessão novamente remove o diretório de qualquer forma.

2761 3287 

2762<h3 id="precompact">3288<h3 id="precompact">

2763 PreCompact3289 PreCompact

2764</h3>3290</h3>

2765 3291 

2766Executa antes do Claude Code estar prestes a executar uma operação de compactação.3292Executado antes de Claude Code estar prestes a executar uma operação de compactação.

2767 3293 

2768O valor do matcher indica se a compactação foi acionada manualmente ou automaticamente:3294O valor do matcher indica se a compactação foi disparada manualmente ou automaticamente:

2769 3295 

2770| Matcher | Quando dispara |3296| Matcher | Quando é disparado |

2771| :------- | :------------------------------------------------------ |3297| :------- | :--------------------------------------------------------------------------------------------------------------------------------- |

2772| `manual` | `/compact` |3298| `manual` | `/compact` |

2773| `auto` | Auto-compactação quando a janela de contexto está cheia |3299| `auto` | Compactação automática quando a conversa atinge a [janela de compactação automática](/docs/pt/model-config#set-the-auto-compact-window) |

2774 3300 

2775Saia com código 2 para bloquear compactação. Para um `/compact` manual, a mensagem de stderr é mostrada ao usuário. Você também pode bloquear retornando JSON com `"decision": "block"`.3301Saia com código 2 para bloquear a compactação. Para um `/compact` manual, a mensagem stderr é mostrada ao usuário. Você também pode bloquear retornando JSON com `"decision": "block"`.

2776 3302 

2777Bloquear compactação automática tem efeitos diferentes dependendo de quando dispara. Se a compactação foi acionada proativamente antes do limite de contexto, Claude Code a ignora e a conversa continua não compactada. Se a compactação foi acionada para recuperar de um erro de limite de contexto já retornado pela API, o erro subjacente superficializa e a solicitação atual falha.3303Bloquear compactação automática tem efeitos diferentes dependendo de quando é disparado. Se a compactação foi disparada proativamente antes do limite de contexto, Claude Code a pula e a conversa continua sem compactação. Se a compactação foi disparada para recuperar de um erro de limite de contexto já retornado pela API, o erro subjacente aparece e a solicitação atual falha.

3304 

3305Claude Code descarta os campos `systemMessage` e `continue` de um hook PreCompact.

2778 3306 

2779<h4 id="precompact-input">3307<h4 id="precompact-input">

2780 Entrada de PreCompact3308 Entrada PreCompact

2781</h4>3309</h4>

2782 3310 

2783Além dos [campos de entrada comuns](#common-input-fields), hooks PreCompact recebem `trigger` e `custom_instructions`. Para `manual`, `custom_instructions` contém o que o usuário passa para `/compact`. Para `auto`, `custom_instructions` está vazio.3311Além dos [campos de entrada comuns](#common-input-fields), os hooks PreCompact recebem `trigger` e `custom_instructions`. Para `manual`, `custom_instructions` contém o que o usuário passa para `/compact` e é `null` quando ele não passa nada. Para `auto`, `custom_instructions` é `null`.

2784 3312 

2785```json theme={null}3313```json theme={null}

2786{3314{


2789 "cwd": "/Users/...",3317 "cwd": "/Users/...",

2790 "hook_event_name": "PreCompact",3318 "hook_event_name": "PreCompact",

2791 "trigger": "manual",3319 "trigger": "manual",

2792 "custom_instructions": ""3320 "custom_instructions": null

2793}3321}

2794```3322```

2795 3323 


2797 PostCompact3325 PostCompact

2798</h3>3326</h3>

2799 3327 

2800Executa após Claude Code completar uma operação de compactação. Use este evento para reagir ao novo estado compactado, por exemplo para registrar o resumo gerado ou atualizar estado externo.3328Executado após Claude Code completar uma operação de compactação. Use este evento para reagir ao novo estado compactado, por exemplo para registrar o resumo gerado ou atualizar estado externo. Claude Code descarta os campos `systemMessage` e `continue` de um hook PostCompact.

2801 3329 

2802Os mesmos valores de matcher se aplicam como para `PreCompact`:3330Os mesmos valores de matcher se aplicam como para `PreCompact`:

2803 3331 

2804| Matcher | Quando dispara |3332| Matcher | Quando é disparado |

2805| :------- | :----------------------------------------------------------- |3333| :------- | :-------------------------------------------------------------------------------------------------------------------------------------- |

2806| `manual` | Após `/compact` |3334| `manual` | Após `/compact` |

2807| `auto` | Após auto-compactação quando a janela de contexto está cheia |3335| `auto` | Após compactação automática quando a conversa atinge a [janela de compactação automática](/docs/pt/model-config#set-the-auto-compact-window) |

2808 3336 

2809<h4 id="postcompact-input">3337<h4 id="postcompact-input">

2810 Entrada de PostCompact3338 Entrada PostCompact

2811</h4>3339</h4>

2812 3340 

2813Além dos [campos de entrada comuns](#common-input-fields), hooks PostCompact recebem `trigger` e `compact_summary`. O campo `compact_summary` contém o resumo de conversa gerado pela operação de compactação.3341Além dos [campos de entrada comuns](#common-input-fields), os hooks PostCompact recebem `trigger` e `compact_summary`. O campo `compact_summary` contém o resumo de conversa gerado pela operação de compactação.

2814 3342 

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

2816{3344{


2823}3351}

2824```3352```

2825 3353 

2826Hooks PostCompact não têm controle de decisão. Eles não podem afetar o resultado de compactação mas podem executar tarefas de acompanhamento.3354Os hooks PostCompact não têm controle de decisão. Eles não podem afetar o resultado da compactação mas podem executar tarefas de acompanhamento.

3355 

3356<h3 id="premodelswitch">

3357 PreModelSwitch

3358</h3>

3359 

3360Executado antes de Claude Code aplicar uma mudança de modelo que você ou um cliente solicitou. Use-o para bloquear uma mudança, exigir confirmação ou mostrar qual será o custo da mudança antes de acontecer.

3361 

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

3363 

3364* `/model <name>` e o seletor `/model`

3365* O seletor de modelo `Option+P` ou `Alt+P`

3366* A configuração Model em `/config`

3367* Ativar [modo rápido](/docs/pt/fast-mode) quando isso muda o modelo da sessão

3368* Uma solicitação `set_model`, ou uma mudança de modelo em uma solicitação `apply_flag_settings`, de um host [Agent SDK](/docs/pt/agent-sdk/typescript#query-object) ou [Remote Control](/docs/pt/remote-control)

3369 

3370Claude Code não executa hooks PreModelSwitch para mudanças que faz por conta própria, como um [fallback de modelo automático](/docs/pt/model-config#automatic-model-fallback) ou restaurar o modelo quando você retoma uma sessão. Essas mudanças chegam apenas a [PostModelSwitch](#postmodelswitch).

3371 

3372Claude Code compara o matcher contra o nome canônico do modelo para o qual a sessão está mudando, ignorando qualquer sufixo `[1m]`. Um alias como `opus`, um ID de modelo datado e um ID específico do provedor como um ID de modelo Amazon Bedrock todos correspondem ao um nome canônico que resolvem, portanto `claude-opus-5` cobre cada ortografia de Opus 5.

3373 

3374Quando Claude Code não pode determinar um nome canônico para o alvo, por exemplo um ID de modelo personalizado que apenas seu [gateway LLM](/docs/pt/llm-gateway) conhece, ele executa cada hook PreModelSwitch independentemente do matcher. Um hook que bloqueia deve portanto verificar `to_model` de sua entrada em vez de confiar apenas no matcher.

3375 

3376Escreva o matcher como um nome exato, uma lista separada por `|` como `claude-opus-4-6|claude-opus-5` ou uma expressão regular como `.*opus.*`. Este exemplo usa um matcher de nome exato e também verifica `to_model` da entrada do hook, portanto recusa uma mudança para Opus 4.6 ao sair com código 2 e deixa qualquer outro alvo passar:

3377 

3378<Tabs>

3379 <Tab title="macOS/Linux">

3380 O comando verifica `to_model` com `jq`:

3381 

3382 ```json theme={null}

3383 {

3384 "hooks": {

3385 "PreModelSwitch": [

3386 {

3387 "matcher": "claude-opus-4-6",

3388 "hooks": [

3389 {

3390 "type": "command",

3391 "command": "jq -e '.to_model | test(\"opus-4-6\")' > /dev/null && { echo 'Opus 4.6 is retired for this project. Use a newer model.' >&2; exit 2; }; exit 0"

3392 }

3393 ]

3394 }

3395 ]

3396 }

3397 }

3398 ```

3399 </Tab>

3400 

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

3402 Registre um hook de comando que executa um script através do PowerShell:

3403 

3404 ```json theme={null}

3405 {

3406 "hooks": {

3407 "PreModelSwitch": [

3408 {

3409 "matcher": "claude-opus-4-6",

3410 "hooks": [

3411 {

3412 "type": "command",

3413 "command": "powershell.exe",

3414 "args": [

3415 "-NoProfile",

3416 "-ExecutionPolicy",

3417 "Bypass",

3418 "-File",

3419 "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-opus-46.ps1"

3420 ]

3421 }

3422 ]

3423 }

3424 ]

3425 }

3426 }

3427 ```

3428 

3429 Salve este script em `.claude/hooks/block-opus-46.ps1` em seu projeto:

3430 

3431 ```powershell theme={null}

3432 $hookInput = [Console]::In.ReadToEnd() | ConvertFrom-Json

3433 if ($hookInput.to_model -match 'opus-4-6') {

3434 [Console]::Error.WriteLine('Opus 4.6 is retired for this project. Use a newer model.')

3435 exit 2

3436 }

3437 exit 0

3438 ```

3439 </Tab>

3440</Tabs>

3441 

3442Para confirmar que o hook funciona, execute `/model claude-opus-4-6` de uma sessão executando um modelo diferente. Claude Code mantém o modelo atual e relata que um hook PreModelSwitch bloqueou a mudança, com sua mensagem como o motivo.

3443 

3444<h4 id="premodelswitch-input">

3445 Entrada PreModelSwitch

3446</h4>

3447 

3448Além dos [campos de entrada comuns](#common-input-fields), os hooks PreModelSwitch recebem os campos nesta tabela. Os últimos cinco descrevem qual é o custo de reenviar a conversa para o novo modelo, portanto um hook pode mostrar essa figura antes da mudança acontecer.

3449 

3450| Campo | Tipo | Descrição |

3451| :-------------------------- | :--------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

3452| `from_model` | string | ID de modelo da mudança de |

3453| `to_model` | string | ID de modelo da mudança para. O matcher compara contra o nome canônico deste modelo |

3454| `requested_model` | string ou `null` | O modelo que a solicitação nomeou: um alias como `opus`, um ID de modelo completo, ou `null` quando a solicitação foi para o modelo padrão |

3455| `source` | string | De onde a solicitação veio: `"command"` para `/model <name>`, a configuração Model em `/config` ou ativar modo rápido; `"picker"` para um seletor de modelo; `"sdk"` para uma solicitação `set_model`, ou uma mudança de modelo em uma solicitação `apply_flag_settings`, de um host Agent SDK ou Remote Control |

3456| `context_tokens` | number | Tokens que a próxima solicitação reenvia como seu prompt: os tokens de entrada, leitura de cache, criação de cache e saída da última resposta na conversa principal, combinados. `0` antes da primeira resposta |

3457| `prompt_cache_warm` | boolean | Se o cache de prompt do modelo atual provavelmente ainda está quente, significando que a mudança o perde |

3458| `cache_ttl` | string | [Tempo de vida do cache de prompt](/docs/pt/prompt-caching#cache-lifetime) que Claude Code solicita para esta sessão: `"5m"` ou `"1h"` |

3459| `estimated_cache_write_usd` | number | Custo estimado em dólares americanos de escrever `context_tokens` no cache de prompt em `to_model` na taxa `cache_ttl`, excluindo a próxima resposta. O servidor pode não precisar re-cachear todo o contexto, portanto trate como uma estimativa |

3460| `pricing` | string | Como Claude Code precificou `estimated_cache_write_usd`: `"configured"` em suas próprias taxas quando sua organização as configurou, `"catalog"` ao preço de lista, ou `"default"` quando `to_model` não tem preço conhecido e Claude Code assumiu uma taxa padrão |

3461 

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

3463 

3464```json theme={null}

3465{

3466 "session_id": "abc123",

3467 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

3468 "cwd": "/Users/...",

3469 "hook_event_name": "PreModelSwitch",

3470 "from_model": "claude-sonnet-5",

3471 "to_model": "claude-opus-5",

3472 "requested_model": "opus",

3473 "source": "command",

3474 "context_tokens": 182340,

3475 "prompt_cache_warm": true,

3476 "cache_ttl": "5m",

3477 "estimated_cache_write_usd": 1.1396,

3478 "pricing": "catalog"

3479}

3480```

3481 

3482<h4 id="premodelswitch-decision-control">

3483 Controle de decisão PreModelSwitch

3484</h4>

3485 

3486Os hooks `PreModelSwitch` podem cancelar a mudança, pedir ao usuário para confirmá-la ou deixá-la prosseguir. Código de saída 2 ou um `decision: "block"` de nível superior cancela a mudança.

3487 

3488Para controle mais fino, retorne `permissionDecision` e `permissionDecisionReason` em um objeto `hookSpecificOutput`, como em [PreToolUse](#pretooluse-decision-control). `PreModelSwitch` aceita `"allow"`, `"deny"` e `"ask"`. Não aceita `"defer"`, `updatedInput` ou `additionalContext`. A tabela abaixo descreve ambos os campos:

3489 

3490| Campo | Descrição |

3491| :------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

3492| `permissionDecision` | `"allow"` prossegue e pula a [confirmação que Claude Code mostra enquanto o cache de prompt está quente](/docs/pt/prompt-caching#switching-models). `"deny"` cancela a mudança. `"ask"` solicita ao usuário para confirmá-la |

3493| `permissionDecisionReason` | Para `"deny"`, mostrado ao usuário como o motivo pelo qual a mudança foi bloqueada, ou retornado como o erro para uma solicitação `set_model`. Para `"ask"`, mostrado no prompt de confirmação. Ignorado para `"allow"` |

3494 

3495Apenas `/model` em uma sessão interativa pode mostrar o prompt `"ask"`. Em todas as outras superfícies, incluindo modo não interativo com a flag `-p`, `/config` e solicitações `set_model`, Claude Code trata `"ask"` como uma recusa.

3496 

3497Este exemplo pede ao usuário para confirmar e cita a contagem de tokens de `context_tokens`:

3498 

3499```json theme={null}

3500{

3501 "hookSpecificOutput": {

3502 "hookEventName": "PreModelSwitch",

3503 "permissionDecision": "ask",

3504 "permissionDecisionReason": "Switching now re-sends about 180k tokens to the new model. Continue?"

3505 }

3506}

3507```

3508 

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

3510 

3511Claude Code mostra ao usuário qualquer `systemMessage` que seu hook retorna independentemente da decisão, portanto um hook de relatório de custo pode retornar `{"systemMessage": "..."}` e sair com 0.

3512 

3513Um hook PreModelSwitch que não responde antes de seu tempo limite bloqueia a mudança. Em [PreToolUse](#timeouts), por contraste, um hook de comando que atingiu o tempo limite deixa a chamada de ferramenta continuar. O tempo limite padrão para este evento é 30 segundos. `PreModelSwitch` executa apenas hooks `command`, `http` e `mcp_tool`, portanto os padrões `prompt` e `agent` não se aplicam.

3514 

3515Um hook que sai com um código diferente de 0 ou 2 e não imprime nenhuma decisão JSON não bloqueia: Claude Code mostra seu stderr e aplica a mudança, conforme descrito em [Outros códigos de saída](#other-exit-codes).

3516 

3517<h3 id="postmodelswitch">

3518 PostModelSwitch

3519</h3>

3520 

3521Executado após o modelo da sessão mudar. Use-o para dar orientação específica do modelo ao Claude sem editar cada CLAUDE.md, por exemplo uma instrução em toda a organização que se aplica em certos modelos.

3522 

3523PostModelSwitch requer Claude Code v2.1.251 ou posterior. Não pode bloquear, porque o modelo já mudou. Claude Code executa hooks PostModelSwitch após qualquer uma dessas mudanças:

3524 

3525* Uma mudança que você ou um cliente solicitou

3526* Um [fallback de modelo automático](/docs/pt/model-config#automatic-model-fallback), que muda o modelo da sessão

3527* Uma configuração como [`opusplan`](/docs/pt/model-config#opusplan-model-setting) entrando ou saindo do modo de plano

3528* Claude Code restaurando o modelo quando você retoma uma sessão

3529 

3530Claude Code não executa hooks PostModelSwitch quando um modelo de uma [cadeia de modelo fallback](/docs/pt/model-config#fallback-model-chains) serve um turno, porque essa substituição dura um turno e deixa o modelo da sessão inalterado.

3531 

3532O matcher segue as mesmas regras que [PreModelSwitch](#premodelswitch): Claude Code compara contra o nome canônico do modelo para o qual a sessão mudou.

3533 

3534Este exemplo adiciona orientação sempre que o modelo da sessão muda para qualquer modelo Opus:

3535 

3536```json theme={null}

3537{

3538 "hooks": {

3539 "PostModelSwitch": [

3540 {

3541 "matcher": ".*opus.*",

3542 "hooks": [

3543 {

3544 "type": "command",

3545 "command": "echo 'On Opus, delegate implementation work to subagents and keep this conversation for planning and review.'"

3546 }

3547 ]

3548 }

3549 ]

3550 }

3551}

3552```

3553 

3554Para confirmar que o hook funciona, mude para um modelo Opus de uma sessão executando um modelo diferente, por exemplo execute `/model opus` de uma sessão Sonnet, depois pergunte ao Claude qual orientação ele tem sobre o modelo atual.

3555 

3556<h4 id="postmodelswitch-input">

3557 Entrada PostModelSwitch

3558</h4>

3559 

3560Os hooks PostModelSwitch recebem os mesmos campos que [PreModelSwitch](#premodelswitch-input), com `hook_event_name` definido como `"PostModelSwitch"` e dois valores `source` mais: `"auto"` para um fallback automático ou outra mudança que Claude Code fez por conta própria, e `"resume"` para o modelo restaurado quando você retoma uma sessão.

3561 

3562`requested_model` é `null` quando `source` é `"auto"`. Quando `source` é `"resume"`, é a configuração de modelo salva que Claude Code restaurou.

3563 

3564<h4 id="postmodelswitch-decision-control">

3565 Controle de decisão PostModelSwitch

3566</h4>

3567 

3568Claude Code pega seu stdout de [texto simples](#exit-code-0) do hook ao sair com 0, ou `additionalContext` de saída JSON, e o entrega ao Claude com a próxima solicitação após a mudança. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, você pode retornar:

3569 

3570| Campo | Descrição |

3571| :------------------ | :-------------------------------------------------------------------------------------------------------------------------------- |

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

3573 

3574Se o hook não terminar dentro de cinco segundos após você enviar a próxima solicitação, Claude Code envia essa solicitação sem a saída e a anexa à solicitação seguinte em vez disso. Se o modelo mudar várias vezes antes da próxima solicitação, Claude Code entrega apenas a saída para a mudança de alvo do último modelo.

2827 3575 

2828<h3 id="sessionend">3576<h3 id="sessionend">

2829 SessionEnd3577 SessionEnd

2830</h3>3578</h3>

2831 3579 

2832Executa quando uma sessão do Claude Code termina. Útil para tarefas de limpeza, logging de estatísticas de sessão ou salvamento de estado de sessão. Suporta matchers para filtrar por razão de saída.3580Executado quando uma sessão Claude Code termina. Útil para tarefas de limpeza, registrar estatísticas de sessão ou salvar estado de sessão. Suporta matchers para filtrar por motivo de saída.

2833 3581 

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

2835 3583 

2836| Razão | Descrição |3584| Motivo | Descrição |

2837| :---------------------------- | :----------------------------------------------------- |3585| :---------------------------- | :------------------------------------------------------------------------------------ |

2838| `clear` | Sessão limpa com comando `/clear` |3586| `clear` | Sessão limpa com comando `/clear` |

2839| `resume` | Sessão alternada via `/resume` interativo |3587| `resume` | Sessão mudada via `/resume` interativo |

2840| `logout` | Usuário fez logout |3588| `logout` | Usuário fez logout |

2841| `prompt_input_exit` | Usuário saiu enquanto entrada de prompt estava visível |3589| `prompt_input_exit` | Usuário saiu enquanto entrada de prompt estava visível |

2842| `bypass_permissions_disabled` | Modo de permissões de bypass foi desabilitado |3590| `other` | Outros motivos de saída |

2843| `other` | Outras razões de saída |3591| `bypass_permissions_disabled` | Removido na v2.1.234; Claude Code não o envia. Remova-o de seus matchers `SessionEnd` |

2844 3592 

2845<h4 id="sessionend-input">3593<h4 id="sessionend-input">

2846 Entrada de SessionEnd3594 Entrada SessionEnd

2847</h4>3595</h4>

2848 3596 

2849Além dos [campos de entrada comuns](#common-input-fields), hooks SessionEnd recebem um campo `reason` indicando por que a sessão terminou. Consulte a tabela de razão acima para todos os valores.3597Além dos [campos de entrada comuns](#common-input-fields), os hooks SessionEnd recebem um campo `reason` indicando por que a sessão terminou. Veja a [tabela de motivos](#sessionend) acima para todos os valores.

2850 3598 

2851```json theme={null}3599```json theme={null}

2852{3600{


2858}3606}

2859```3607```

2860 3608 

2861Hooks SessionEnd não têm controle de decisão. Eles não podem bloquear terminação de sessão mas podem executar tarefas de limpeza.3609Os hooks SessionEnd não têm controle de decisão. Eles não podem bloquear o término da sessão mas podem executar tarefas de limpeza. Claude Code descarta seus [campos de saída JSON](#json-output), como `systemMessage`.

3610 

3611Os hooks SessionEnd têm um tempo limite padrão de 1,5 segundos. Aplica-se quando você sai, executa `/clear` ou muda de sessões com `/resume` interativo. Você pode dar a um hook mais tempo de duas maneiras:

2862 3612 

2863Hooks SessionEnd têm um timeout padrão de 1,5 segundos. Isso se aplica tanto à saída de sessão quanto a `/clear` e alternância de sessões via `/resume` interativo. Se um hook precisa de mais tempo, defina um `timeout` por hook na configuração do hook. O orçamento geral é automaticamente aumentado para o timeout por hook mais alto configurado em arquivos de configurações, até 60 segundos. Timeouts definidos em hooks fornecidos por plugin não aumentam o orçamento. Para sobrescrever o orçamento explicitamente, defina a variável de ambiente `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` em milissegundos.3613* **`timeout` por hook**: defina `timeout` na configuração desse hook. O orçamento geral sobe automaticamente para corresponder ao `timeout` por hook mais alto em seus arquivos de configurações, até 60 segundos. Se você aumentar o orçamento dessa forma, um hook sem seu próprio `timeout` ainda mantém o padrão. Tempos limite definidos em hooks fornecidos por plugin não aumentam o orçamento.

3614* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: defina esta variável de ambiente em milissegundos para sobrescrever o orçamento explicitamente. O valor que você define também se torna o tempo limite para cada hook sem seu próprio `timeout`.

3615 

3616Este exemplo define o orçamento para 5 segundos:

2864 3617 

2865```bash theme={null}3618```bash theme={null}

2866CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude3619CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude

2867```3620```

2868 3621 

3622Antes da v2.1.268, `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` aumentava apenas o orçamento geral, e um hook sem seu próprio `timeout` ainda era cancelado após 1,5 segundos.

3623 

2869<h3 id="elicitation">3624<h3 id="elicitation">

2870 Elicitation3625 Elicitation

2871</h3>3626</h3>

2872 3627 

2873Executa quando um servidor MCP solicita entrada do usuário no meio da tarefa. Por padrão, Claude Code mostra um diálogo interativo para o usuário responder. Hooks podem interceptar esta solicitação e responder programaticamente, pulando o diálogo inteiramente.3628Executado quando um servidor MCP solicita entrada do usuário no meio de uma tarefa. Por padrão, Claude Code mostra um diálogo interativo para o usuário responder. Os hooks podem interceptar essa solicitação e responder programaticamente, pulando o diálogo inteiramente.

2874 3629 

2875O campo matcher corresponde ao nome do servidor MCP.3630O campo matcher corresponde ao nome do servidor MCP.

2876 3631 

2877<h4 id="elicitation-input">3632<h4 id="elicitation-input">

2878 Entrada de Elicitation3633 Entrada Elicitation

2879</h4>3634</h4>

2880 3635 

2881Além dos [campos de entrada comuns](#common-input-fields), hooks Elicitation recebem `mcp_server_name`, `message` e campos opcionais `mode`, `url`, `elicitation_id` e `requested_schema`.3636Além dos [campos de entrada comuns](#common-input-fields), os hooks Elicitation recebem `mcp_server_name`, `message` e campos opcionais `mode`, `url`, `elicitation_id` e `requested_schema`.

2882 3637 

2883Para elicitação em modo de formulário (o caso mais comum):3638Para elicitação de modo de formulário, o caso mais comum:

2884 3639 

2885```json theme={null}3640```json theme={null}

2886{3641{

2887 "session_id": "abc123",3642 "session_id": "abc123",

2888 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",3643 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

2889 "cwd": "/Users/...",3644 "cwd": "/Users/...",

2890 "permission_mode": "default",

2891 "hook_event_name": "Elicitation",3645 "hook_event_name": "Elicitation",

2892 "mcp_server_name": "my-mcp-server",3646 "mcp_server_name": "my-mcp-server",

2893 "message": "Please provide your credentials",3647 "message": "Please provide your credentials",


2901}3655}

2902```3656```

2903 3657 

2904Para elicitação em modo URL (autenticação baseada em navegador):3658Para elicitação de modo URL, usada para autenticação baseada em navegador:

2905 3659 

2906```json theme={null}3660```json theme={null}

2907{3661{

2908 "session_id": "abc123",3662 "session_id": "abc123",

2909 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",3663 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

2910 "cwd": "/Users/...",3664 "cwd": "/Users/...",

2911 "permission_mode": "default",

2912 "hook_event_name": "Elicitation",3665 "hook_event_name": "Elicitation",

2913 "mcp_server_name": "my-mcp-server",3666 "mcp_server_name": "my-mcp-server",

2914 "message": "Please authenticate",3667 "message": "Please authenticate",


2918```3671```

2919 3672 

2920<h4 id="elicitation-output">3673<h4 id="elicitation-output">

2921 Saída de Elicitation3674 Saída Elicitation

2922</h4>3675</h4>

2923 3676 

2924Para responder programaticamente sem mostrar o diálogo, retorne um objeto JSON com `hookSpecificOutput`:3677Para responder programaticamente sem mostrar o diálogo, retorne um objeto JSON com `hookSpecificOutput`:


2936```3689```

2937 3690 

2938| Campo | Valores | Descrição |3691| Campo | Valores | Descrição |

2939| :-------- | :---------------------------- | :--------------------------------------------------------------------------------- |3692| :-------- | :---------------------------- | :------------------------------------------------------------------------------- |

2940| `action` | `accept`, `decline`, `cancel` | Se deve aceitar, recusar ou cancelar a solicitação |3693| `action` | `accept`, `decline`, `cancel` | Se deve aceitar, recusar ou cancelar a solicitação |

2941| `content` | object | Valores de campo de formulário a submeter. Apenas usado quando `action` é `accept` |3694| `content` | object | Valores de campo de formulário a enviar. Usado apenas quando `action` é `accept` |

3695 

3696Código de saída 2 nega a elicitação. Claude Code não mostra sua mensagem stderr em lugar nenhum.

2942 3697 

2943Código de saída 2 nega a elicitação e mostra stderr ao usuário.3698Claude Code atua em `hookSpecificOutput` da saída JSON de um hook Elicitation e descarta `systemMessage` e `continue`.

2944 3699 

2945<h3 id="elicitationresult">3700<h3 id="elicitationresult">

2946 ElicitationResult3701 ElicitationResult

2947</h3>3702</h3>

2948 3703 

2949Executa após um usuário responder a uma elicitação MCP. Hooks podem observar, modificar ou bloquear a resposta antes de ser enviada de volta ao servidor MCP.3704Executado após um usuário responder a uma elicitação MCP. Os hooks podem observar, modificar ou bloquear a resposta antes de ser enviada de volta para o servidor MCP.

2950 3705 

2951O campo matcher corresponde ao nome do servidor MCP.3706O campo matcher corresponde ao nome do servidor MCP.

2952 3707 

2953<h4 id="elicitationresult-input">3708<h4 id="elicitationresult-input">

2954 Entrada de ElicitationResult3709 Entrada ElicitationResult

2955</h4>3710</h4>

2956 3711 

2957Além dos [campos de entrada comuns](#common-input-fields), hooks ElicitationResult recebem `mcp_server_name`, `action` e campos opcionais `mode`, `elicitation_id` e `content`.3712Além dos [campos de entrada comuns](#common-input-fields), os hooks ElicitationResult recebem `mcp_server_name`, `action` e campos opcionais `mode`, `elicitation_id` e `content`.

2958 3713 

2959```json theme={null}3714```json theme={null}

2960{3715{

2961 "session_id": "abc123",3716 "session_id": "abc123",

2962 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",3717 "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",

2963 "cwd": "/Users/...",3718 "cwd": "/Users/...",

2964 "permission_mode": "default",

2965 "hook_event_name": "ElicitationResult",3719 "hook_event_name": "ElicitationResult",

2966 "mcp_server_name": "my-mcp-server",3720 "mcp_server_name": "my-mcp-server",

2967 "action": "accept",3721 "action": "accept",


2972```3726```

2973 3727 

2974<h4 id="elicitationresult-output">3728<h4 id="elicitationresult-output">

2975 Saída de ElicitationResult3729 Saída ElicitationResult

2976</h4>3730</h4>

2977 3731 

2978Para sobrescrever a resposta do usuário, retorne um objeto JSON com `hookSpecificOutput`:3732Para sobrescrever a resposta do usuário, retorne um objeto JSON com `hookSpecificOutput`:


2990| Campo | Valores | Descrição |3744| Campo | Valores | Descrição |

2991| :-------- | :---------------------------- | :------------------------------------------------------------------------------------------ |3745| :-------- | :---------------------------- | :------------------------------------------------------------------------------------------ |

2992| `action` | `accept`, `decline`, `cancel` | Sobrescreve a ação do usuário |3746| `action` | `accept`, `decline`, `cancel` | Sobrescreve a ação do usuário |

2993| `content` | object | Sobrescreve valores de campo de formulário. Apenas significativo quando `action` é `accept` |3747| `content` | object | Sobrescreve valores de campo de formulário. Significativo apenas quando `action` é `accept` |

3748 

3749Código de saída 2 bloqueia a resposta, alterando a ação efetiva para `decline`. Claude Code não mostra sua mensagem stderr em lugar nenhum.

2994 3750 

2995Código de saída 2 bloqueia a resposta, mudando a ação efetiva para `decline`.3751Claude Code atua em `hookSpecificOutput` da saída JSON de um hook ElicitationResult e descarta `systemMessage` e `continue`.

2996 3752 

2997<h2 id="prompt-based-hooks">3753<h2 id="prompt-based-hooks">

2998 Hooks baseados em prompt3754 Hooks baseados em prompt


3020 3776 

3021* `ConfigChange`3777* `ConfigChange`

3022* `CwdChanged`3778* `CwdChanged`

3779* `DirectoryAdded`

3023* `Elicitation`3780* `Elicitation`

3024* `ElicitationResult`3781* `ElicitationResult`

3025* `FileChanged`3782* `FileChanged`

3026* `InstructionsLoaded`3783* `InstructionsLoaded`

3784* `MessageDisplay`

3027* `Notification`3785* `Notification`

3028* `PostCompact`3786* `PostCompact`

3787* `PostModelSwitch`

3029* `PreCompact`3788* `PreCompact`

3789* `PreModelSwitch`

3030* `SessionEnd`3790* `SessionEnd`

3031* `StopFailure`3791* `StopFailure`

3032* `SubagentStart`3792* `SubagentStart`

3033* `WorktreeCreate`3793* `WorktreeCreate`

3034* `WorktreeRemove`3794* `WorktreeRemove`

3035 3795 

3036`SessionStart` e `Setup` suportam hooks `command` e `mcp_tool`. Eles não suportam hooks `http`, `prompt` ou `agent`.3796`SessionStart` e `Setup` suportam hooks `command` e `mcp_tool`, e [MCP tool hook fields](#mcp-tool-hook-fields) descreve quando seus hooks `mcp_tool` são executados. Eles não suportam hooks `http`, `prompt` ou `agent`.

3037 3797 

3038<h3 id="how-prompt-based-hooks-work">3798<h3 id="how-prompt-based-hooks-work">

3039 Como hooks baseados em prompt funcionam3799 Como hooks baseados em prompt funcionam


3049 Configuração de hook de prompt3809 Configuração de hook de prompt

3050</h3>3810</h3>

3051 3811 

3052Defina `type` para `"prompt"` e forneça uma string `prompt` em vez de um `command`. Use o placeholder `$ARGUMENTS` para injetar dados de entrada do hook em seu texto de prompt. Claude Code envia o prompt combinado e entrada para um modelo Claude rápido, que retorna uma decisão JSON.3812Defina `type` para `"prompt"` e forneça uma string `prompt` em vez de um `command`. Use o placeholder `$ARGUMENTS` para injetar dados de entrada do hook em seu texto de prompt.

3053 3813 

3054Este hook `Stop` pede ao LLM para avaliar se todas as tarefas estão completas antes de permitir que Claude termine:3814Este hook `Stop` pede ao LLM para avaliar se todas as tarefas estão completas antes de permitir que Claude termine:

3055 3815 


3071```3831```

3072 3832 

3073| Campo | Obrigatório | Descrição |3833| Campo | Obrigatório | Descrição |

3074| :---------------- | :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |3834| :---------------- | :---------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

3075| `type` | sim | Deve ser `"prompt"` |3835| `type` | sim | Deve ser `"prompt"` |

3076| `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 |3836| `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 |

3077| `model` | não | Modelo a usar para avaliação. Padrão para um modelo rápido |3837| `model` | não | Modelo a usar para avaliação. Padrão para um modelo rápido |

3078| `timeout` | não | Timeout em segundos. Padrão: 30 |3838| `timeout` | não | Timeout em segundos. Padrão: 30 |

3079| `continueOnBlock` | não | Quando o prompt retorna `ok: false`, alimenta a razão de volta para Claude e continua o turno em vez de parar. Padrão: `false`. Implementado como `continue: true` na `decision: "block"` resultante. Veja [Esquema de resposta](#response-schema) para comportamento por evento |3839| `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 |

3080 3840 

3081<h3 id="response-schema">3841<h3 id="response-schema">

3082 Esquema de resposta3842 Esquema de resposta


3087```json theme={null}3847```json theme={null}

3088{3848{

3089 "ok": true | false,3849 "ok": true | false,

3090 "reason": "Explanation for the decision"3850 "reason": "Explanation for the decision",

3851 "impossible": true | false

3091}3852}

3092```3853```

3093 3854 

3094| Campo | Descrição |3855| Campo | Descrição |

3095| :------- | :--------------------------------------------------------------------------------------------------- |3856| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

3096| `ok` | `true` para permitir. `false` produz uma `decision: "block"`. Veja o comportamento por evento abaixo |3857| `ok` | `true` para permitir. Para `false`, veja o comportamento por evento abaixo |

3097| `reason` | Obrigatório quando `ok` é `false`. Usado como a razão do bloqueio |3858| `reason` | Obrigatório quando `ok` é `false` |

3859| `impossible` | Opcional. O modelo o retorna com `ok: false` quando julga que a condição nunca pode ser satisfeita. Em `Stop` e `SubagentStop`, Claude Code então permite que o turno termine em vez de alimentar a razão de volta. Hooks de agente e outros eventos o ignoram |

3098 3860 

3099O que acontece em `ok: false` depende do evento:3861O que acontece em `ok: false` depende do evento:

3100 3862 

3101* `Stop` e `SubagentStop`: a razão é alimentada de volta para Claude como sua próxima instrução e o turno continua3863* `Stop` e `SubagentStop`: a razão é alimentada de volta para Claude como sua próxima instrução e o turno continua, a menos que a resposta também defina `impossible: true`, caso em que Claude Code permite a parada e o turno termina

3102* `PreToolUse`: a chamada de ferramenta é negada e a razão é retornada a Claude como o erro da ferramenta, equivalente a um hook de comando com `permissionDecision: "deny"`3864* `PreToolUse`: a chamada de ferramenta é negada; por padrão o turno termina e a razão de negação aparece no chat como uma linha de aviso. Defina `continueOnBlock: true` para em vez disso retornar a razão para Claude como o erro da ferramenta para que possa se ajustar e continuar, equivalente a um hook de comando com `permissionDecision: "deny"`. Antes da v2.1.210, a razão de negação era retornada para Claude como o erro da ferramenta e o turno continuava

3103* `PostToolUse`: por padrão o turno termina e a razão aparece no chat como uma linha de aviso. Defina `continueOnBlock: true` para alimentar a razão de volta para Claude e continuar o turno em vez disso3865* `PostToolUse`: por padrão o turno termina e a razão aparece no chat como uma linha de aviso. Defina `continueOnBlock: true` para alimentar a razão de volta para Claude e continuar o turno em vez disso

3104* `PostToolBatch`, `UserPromptSubmit` e `UserPromptExpansion`: o turno termina e a razão aparece como uma linha de aviso. Esses eventos terminam o turno em `decision: "block"` independentemente de `continue`3866* `PostToolBatch`, `UserPromptSubmit` e `UserPromptExpansion`: o turno termina e a razão aparece como uma linha de aviso. Esses eventos terminam o turno em `decision: "block"` independentemente de `continue`

3105* `PostToolUseFailure`, `TaskCreated` e `TaskCompleted`: a razão é retornada a Claude como um erro de ferramenta, similar a `PreToolUse`3867* `PostToolUseFailure` e `TaskCreated`: a razão é retornada para Claude como um erro de ferramenta e o turno continua, independentemente de `continueOnBlock`

3868* `TaskCompleted`: quando dispara porque uma tarefa é marcada como concluída durante um turno, a razão é retornada para Claude como um erro de ferramenta e o turno continua, independentemente de `continueOnBlock`. Quando dispara porque um colega para, se comporta como `TeammateIdle` e interrompe o colega por padrão

3106* `TeammateIdle`: por padrão o colega para e a razão aparece como uma linha de aviso. Defina `continueOnBlock: true` para alimentar a razão de volta para o colega e mantê-lo trabalhando em vez disso3869* `TeammateIdle`: por padrão o colega para e a razão aparece como uma linha de aviso. Defina `continueOnBlock: true` para alimentar a razão de volta para o colega e mantê-lo trabalhando em vez disso

3107* `PermissionRequest`: `ok: false` não tem efeito. Para negar uma aprovação de um hook, use um [hook de comando](#command-hook-fields) retornando `hookSpecificOutput.decision.behavior: "deny"`3870* `PermissionRequest`: `ok: false` não tem efeito. Para negar uma aprovação de um hook, use um [hook de comando](#command-hook-fields) retornando `hookSpecificOutput.decision.behavior: "deny"`

3108* `PermissionDenied`: `ok: false` não tem efeito porque a negação já aconteceu. A única saída que este evento lê é `hookSpecificOutput.retry`, que hooks de prompt e agente não podem definir — eles são executados neste evento, mas sua saída é descartada. Use um [hook de comando](#command-hook-fields) para retornar `retry`3871* `PermissionDenied`: `ok: false` não tem efeito porque a negação já aconteceu. A única saída que este evento lê é `hookSpecificOutput.retry`, que hooks de prompt e agente não podem definir. Eles são executados neste evento, mas sua saída é descartada. Use um [hook de comando](#command-hook-fields) para retornar `retry`

3109 3872 

3110Se você precisar de controle mais fino em qualquer evento, use um [hook de comando](#command-hook-fields) com os campos por evento descritos em [Controle de decisão](#decision-control).3873Se você precisar de controle mais fino em qualquer evento, use um [hook de comando](#command-hook-fields) com os campos por evento descritos em [Controle de decisão](#decision-control).

3111 3874 


3113 Verificar múltiplas condições antes de parar3876 Verificar múltiplas condições antes de parar

3114</h3>3877</h3>

3115 3878 

3116Este hook `Stop` usa um prompt detalhado para verificar três condições antes de permitir que Claude pare. Hooks `SubagentStop` usam o mesmo formato para avaliar se um [subagente](/docs/pt/sub-agents) deve parar. Se `"ok"` for `false`, Claude continua trabalhando com a razão fornecida como sua próxima instrução:3879Este hook `Stop` usa um prompt detalhado para verificar três condições antes de permitir que Claude pare. Hooks `SubagentStop` usam o mesmo formato para avaliar se um [subagente](/docs/pt/sub-agents) deve parar. Se o modelo retornar `"ok": false` porque a condição ainda não foi atendida, Claude continua trabalhando com a razão fornecida como sua próxima instrução:

3117 3880 

3118```json theme={null}3881```json theme={null}

3119{3882{


31521. Claude Code gera um subagente com seu prompt e a entrada JSON do hook39151. Claude Code gera um subagente com seu prompt e a entrada JSON do hook

31532. O subagente pode usar ferramentas como Read, Grep e Glob para investigar39162. O subagente pode usar ferramentas como Read, Grep e Glob para investigar

31543. Após até 50 turnos, o subagente retorna uma decisão estruturada `{ "ok": true/false }`39173. Após até 50 turnos, o subagente retorna uma decisão estruturada `{ "ok": true/false }`

31554. Claude Code processa a decisão da mesma forma que um hook de prompt39184. Claude Code permite a ação se `ok` for `true`. Se `ok` for `false`, Claude Code trata o bloqueio da mesma forma que um hook de prompt com `continueOnBlock: true` naquele evento, conforme listado em [Response schema](#response-schema)

3156 3919 

3157Hooks de agente são úteis quando a verificação requer inspecionar arquivos reais ou saída de teste, não apenas avaliar dados de entrada do hook sozinhos.3920Hooks de agente são úteis quando a verificação requer inspecionar arquivos reais ou saída de teste, não apenas avaliar dados de entrada do hook sozinhos.

3158 3921 


3160 Configuração de hook de agente3923 Configuração de hook de agente

3161</h3>3924</h3>

3162 3925 

3163Defina `type` para `"agent"` e forneça uma string `prompt`. Os campos de configuração são os mesmos que [hooks de prompt](#prompt-hook-configuration), com um timeout padrão mais longo:3926Defina `type` para `"agent"` e forneça uma string `prompt`, usando `$ARGUMENTS` como placeholder para a entrada JSON do hook. Os campos de configuração são os mesmos que [prompt hooks](#prompt-hook-configuration), exceto que hooks de agente têm um timeout padrão mais longo de 60 segundos e nenhum campo `continueOnBlock`.

3164 

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

3166| :-------- | :---------- | :------------------------------------------------------------------------------------------------ |

3167| `type` | sim | Deve ser `"agent"` |

3168| `prompt` | sim | Prompt descrevendo o que verificar. Use `$ARGUMENTS` como placeholder para a entrada JSON do hook |

3169| `model` | não | Modelo a usar. Padrão para um modelo rápido |

3170| `timeout` | não | Timeout em segundos. Padrão: 60 |

3171 3927 

3172O esquema de resposta é o mesmo que hooks de prompt: `{ "ok": true }` para permitir ou `{ "ok": false, "reason": "..." }` para bloquear.3928O esquema de resposta é `{ "ok": true }` para permitir ou `{ "ok": false, "reason": "..." }` para bloquear. Em `ok: false`, Claude Code trata um hook de agente da forma que trata um [prompt hook com `continueOnBlock: true`](#response-schema) no mesmo evento; hooks de agente não têm campo `continueOnBlock` e não suportam o campo `impossible` do hook de prompt.

3173 3929 

3174Este hook `Stop` verifica que todos os testes unitários passam antes de permitir que Claude termine:3930Este hook `Stop` verifica que todos os testes unitários passam antes de permitir que Claude termine:

3175 3931 


3203 3959 

3204Adicione `"async": true` à configuração de um hook de comando para executá-lo em background sem bloquear Claude. Este campo está apenas disponível em hooks `type: "command"`.3960Adicione `"async": true` à configuração de um hook de comando para executá-lo em background sem bloquear Claude. Este campo está apenas disponível em hooks `type: "command"`.

3205 3961 

3206Este hook executa um script de teste após cada chamada de ferramenta `Write`. Claude continua trabalhando imediatamente enquanto `run-tests.sh` executa por até 120 segundos. Quando o script termina, sua saída é entregue no próximo turno de conversa:3962Este hook executa um script de teste após cada chamada de ferramenta `Write`. Claude continua trabalhando imediatamente enquanto `run-tests.sh` executa. Quando o script termina, sua saída é entregue no próximo turno de conversa:

3207 3963 

3208```json theme={null}3964```json theme={null}

3209{3965{


3215 {3971 {

3216 "type": "command",3972 "type": "command",

3217 "command": "/path/to/run-tests.sh",3973 "command": "/path/to/run-tests.sh",

3218 "async": true,3974 "async": true

3219 "timeout": 120

3220 }3975 }

3221 ]3976 ]

3222 }3977 }


3225}3980}

3226```3981```

3227 3982 

3228O campo `timeout` define o tempo máximo em segundos para o processo em background. Se não especificado, hooks assíncronos usam o mesmo padrão de 10 minutos que hooks síncronos.3983Uma vez que um hook assíncrono está executando em background, Claude Code não impõe `timeout` nele. Claude Code ainda impõe `timeout` em um hook que você executa com `asyncRewake`.

3984 

3985Claude Code entrega resultados de um hook assíncrono apenas enquanto a sessão está em execução:

3986 

3987* Em [modo não-interativo](/docs/pt/headless) com a flag `-p`, Claude Code mata qualquer hook assíncrono ainda em execução no teardown e o finaliza com resultado `cancelled`

3988* Se o trabalho do seu hook deve sobreviver a uma sessão `claude -p`, inicie um processo totalmente desacoplado a partir dele

3229 3989 

3230<h3 id="how-async-hooks-execute">3990<h3 id="how-async-hooks-execute">

3231 Como hooks assíncronos executam3991 Como hooks assíncronos executam


3233 3993 

3234Quando um hook assíncrono dispara, Claude Code inicia o processo do hook e imediatamente continua sem esperar que termine. O hook recebe a mesma entrada JSON via stdin que um hook síncrono.3994Quando um hook assíncrono dispara, Claude Code inicia o processo do hook e imediatamente continua sem esperar que termine. O hook recebe a mesma entrada JSON via stdin que um hook síncrono.

3235 3995 

3236Após o processo em background sair, se o hook produziu uma resposta JSON com um campo `additionalContext`, esse conteúdo é entregue ao Claude como contexto no próximo turno de conversa. Um campo `systemMessage` é mostrado para você, não para Claude.3996Após o processo em background sair, Claude Code entrega os campos `additionalContext` e `systemMessage` da resposta JSON do hook ao Claude no próximo turno de conversa. Diferentemente de um `systemMessage` de hook síncrono, nenhum dos dois campos é mostrado para você.

3237 3997 

3238Claude Code valida que a resposta JSON contra o mesmo [esquema de saída](#json-output) que hooks síncronos, e descarta qualquer campo cujo valor tenha o tipo errado, como um `systemMessage` que não seja uma string, em vez de entregá-lo. Execute com `--debug` para ver um aviso nomeando cada campo descartado. Antes da v2.1.202, saída JSON malformada de um hook assíncrono poderia travar a sessão, e a falha recorria cada vez que a sessão era retomada.3998Claude Code valida que a resposta JSON contra o mesmo [esquema de saída](#json-output) que hooks síncronos, e descarta qualquer campo cujo valor tenha o tipo errado, como um `systemMessage` que não seja uma string, em vez de entregá-lo. Execute com `--debug` para ver um aviso nomeando cada campo descartado. Antes da v2.1.202, saída JSON malformada de um hook assíncrono poderia travar a sessão, e a falha recorria cada vez que a sessão era retomada.

3239 3999 


3283 "type": "command",4043 "type": "command",

3284 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/run-tests-async.sh",4044 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/run-tests-async.sh",

3285 "args": [],4045 "args": [],

3286 "async": true,4046 "async": true

3287 "timeout": 300

3288 }4047 }

3289 ]4048 ]

3290 }4049 }


3297 Limitações4056 Limitações

3298</h3>4057</h3>

3299 4058 

3300Hooks assíncronos têm várias restrições comparados a hooks síncronos:4059Hooks assíncronos têm restrições adicionais comparados a hooks síncronos:

3301 4060 

3302* Apenas hooks `type: "command"` suportam `async`. Hooks baseados em prompt não podem executar assincronamente.

3303* Hooks assíncronos não podem bloquear chamadas de ferramenta ou retornar decisões. Pelo tempo que o hook completa, a ação acionadora já prosseguiu.

3304* Saída de hook é entregue no próximo turno de conversa. Se a sessão está ociosa, a resposta espera até a próxima interação do usuário. Exceção: um hook `asyncRewake` que sai com código 2 acorda Claude imediatamente mesmo quando a sessão está ociosa.4061* Saída de hook é entregue no próximo turno de conversa. Se a sessão está ociosa, a resposta espera até a próxima interação do usuário. Exceção: um hook `asyncRewake` que sai com código 2 acorda Claude imediatamente mesmo quando a sessão está ociosa.

3305* Cada execução cria um processo em background separado. Não há desduplicação através de múltiplos disparos do mesmo hook assíncrono.4062* Cada execução cria um processo em background separado. Não há desduplicação através de múltiplos disparos do mesmo hook assíncrono.

3306 4063 


3312 Aviso4069 Aviso

3313</h3>4070</h3>

3314 4071 

3315Hooks de comando executam com as permissões completas do seu usuário do sistema.

3316 

3317<Warning>4072<Warning>

3318 Hooks de comando executam comandos shell com suas permissões completas de usuário. Eles podem modificar, deletar ou acessar qualquer arquivo que sua conta de usuário pode acessar. Revise e teste todos os comandos de hook antes de adicioná-los à sua configuração.4073 Hooks de comando executam comandos shell com suas permissões completas de usuário. Eles podem modificar, deletar ou acessar qualquer arquivo que sua conta de usuário pode acessar. Revise e teste todos os comandos de hook antes de adicioná-los à sua configuração.

3319</Warning>4074</Warning>

3320 4075 

4076<h3 id="workspace-trust">

4077 Confiança do workspace

4078</h3>

4079 

4080Claude Code verifica a confiança do workspace antes de executar qualquer hook de um arquivo de configurações. O que conta como confiável depende do tipo de sessão:

4081 

4082* **Sessão interativa**: Claude Code retém hooks de todos os arquivos de configurações, incluindo seu próprio `~/.claude/settings.json`, até que você aceite o [diálogo de confiança do workspace](/docs/pt/permissions#project-allow-rules-and-workspace-trust) para a pasta, ou para um diretório pai cuja confiança se estende a ela

4083* **Sessão `-p` ou SDK**: Claude Code nunca mostra o diálogo e trata a pasta como confiável, então hooks confirmados no `.claude/settings.json` de um repositório são executados em uma pasta que você nunca confiou

4084 

4085Antes de executar `claude -p` em um repositório que você não escreveu, revise seus arquivos de configurações `.claude/`, comece com [`--bare`](/docs/pt/headless#start-faster-with-bare-mode), ou [desative hooks para essa execução](#disable-or-remove-hooks) com `--settings '{"disableAllHooks": true}'`. Hooks de frontmatter em um subagente de projeto seguem uma regra mais rigorosa do que hooks de arquivo de configurações. [O que é executado antes de você confiar em uma pasta](/docs/pt/permissions#what-runs-before-you-trust-a-folder) lista cada tipo de conteúdo de repositório por tipo de sessão.

4086 

3321<h3 id="security-best-practices">4087<h3 id="security-best-practices">

3322 Melhores práticas de segurança4088 Melhores práticas de segurança

3323</h3>4089</h3>


3334 Ferramenta Windows PowerShell4100 Ferramenta Windows PowerShell

3335</h2>4101</h2>

3336 4102 

3337No Windows, você pode executar hooks individuais em PowerShell definindo `"shell": "powershell"` em um hook de comando. Hooks geram PowerShell diretamente, então isso funciona independentemente de `CLAUDE_CODE_USE_POWERSHELL_TOOL` estar definido. Claude Code auto-detecta `pwsh.exe`, o executável do PowerShell 7 e posterior, e volta para `powershell.exe` para Windows PowerShell 5.1.4103No Windows, você pode executar hooks individuais em PowerShell definindo `"shell": "powershell"` em um hook de comando. Claude Code auto-detecta `pwsh.exe`, o executável do PowerShell 7 e posterior, e volta para `powershell.exe` para Windows PowerShell 5.1.

3338 4104 

3339```json theme={null}4105```json theme={null}

3340{4106{


3375 Debug de hooks4141 Debug de hooks

3376</h2>4142</h2>

3377 4143 

3378Detalhes de execução de hook, incluindo quais hooks corresponderam, seus códigos de saída e saída completa de stdout e stderr, são escritos no arquivo de log de debug. Inicie Claude Code com `claude --debug-file <path>` para escrever o log em um local conhecido, ou execute `claude --debug` e leia o log em `~/.claude/debug/<session-id>.txt`. A flag `--debug` não imprime no terminal.4144Detalhes de execução de hook são escritos no arquivo de log de debug. Inicie Claude Code com `claude --debug-file <path>` para escrever o log em um local conhecido, ou execute `claude --debug` e leia o log em `~/.claude/debug/<session-id>.txt`. A flag `--debug` não imprime no terminal.

4145 

4146Por exemplo, um hook `PostToolUse` em `Write` cujo comando imprime `hook-ran` produz entradas como:

3379 4147 

3380```text theme={null}4148```text theme={null}

3381[DEBUG] Executing hooks for PostToolUse:Write41492026-07-19T02:03:24.382Z [DEBUG] Hook output does not start with {, treating as plain text

3382[DEBUG] Found 1 hook commands to execute41502026-07-19T02:03:24.382Z [DEBUG] "Hook PostToolUse:Write (PostToolUse) success:\nhook-ran"

3383[DEBUG] Executing hook command: <Your command> with timeout 600000ms

3384[DEBUG] Hook command completed with status 0: <Your stdout>

3385```4151```

3386 4152 

3387Para detalhes de correspondência de hook mais granulares, defina `CLAUDE_CODE_DEBUG_LOG_LEVEL=verbose` para ver linhas de log adicionais como contagens de matcher de hook e correspondência de consulta.4153Para detalhes de correspondência de hook mais granulares, defina `CLAUDE_CODE_DEBUG_LOG_LEVEL=verbose` para ver linhas de log adicionais como contagens de matcher de hook e correspondência de consulta.

Details

76* **Seu projeto.** Arquivos em seu diretório e subdiretórios, além de arquivos em outro lugar com sua permissão.76* **Seu projeto.** Arquivos em seu diretório e subdiretórios, além de arquivos em outro lugar com sua permissão.

77* **Seu terminal.** Qualquer comando que você possa executar: ferramentas de compilação, git, gerenciadores de pacotes, utilitários do sistema, scripts. Se você pode fazer a partir da linha de comando, Claude também pode.77* **Seu terminal.** Qualquer comando que você possa executar: ferramentas de compilação, git, gerenciadores de pacotes, utilitários do sistema, scripts. Se você pode fazer a partir da linha de comando, Claude também pode.

78* **Seu estado git.** Branch atual, alterações não confirmadas e histórico de commits recentes.78* **Seu estado git.** Branch atual, alterações não confirmadas e histórico de commits recentes.

79* **Seu [CLAUDE.md](/docs/pt/memory).** Um arquivo markdown onde você armazena instruções específicas do projeto, convenções e contexto que Claude deve conhecer a cada sessão.79* **Seu [CLAUDE.md](/docs/pt/memory).** Um arquivo markdown onde você armazena instruções específicas do projeto, convenções e contexto que Claude deve conhecer a cada sessão. Se seu repositório tiver um AGENTS.md para outros agentes de codificação, Claude [pode ler isso](/docs/pt/memory#agents-md) por conta própria ou junto com CLAUDE.md.

80* **[Auto memory](/docs/pt/memory#auto-memory).** Aprendizados que Claude salva automaticamente conforme você trabalha, como suas preferências. As primeiras 200 linhas ou 25KB de MEMORY.md, o que vier primeiro, são carregadas no início de cada sessão.80* **[Auto memory](/docs/pt/memory#auto-memory).** Aprendizados que Claude salva automaticamente conforme você trabalha, como suas preferências. As primeiras 200 linhas ou 25KB de MEMORY.md, o que vier primeiro, são carregadas no início de cada sessão.

81* **Extensões que você configura.** [Servidores MCP](/docs/pt/mcp) para serviços externos, [skills](/docs/pt/skills) para fluxos de trabalho, [subagents](/docs/pt/sub-agents) para trabalho delegado e [Claude no Chrome](/docs/pt/chrome) para interação com navegador.81* **Extensões que você configura.** [Servidores MCP](/docs/pt/mcp) para serviços externos, [skills](/docs/pt/skills) para fluxos de trabalho, [subagents](/docs/pt/sub-agents) para trabalho delegado e [Claude no Chrome](/docs/pt/chrome) para interação com navegador.

82 82 


86 Ambientes e interfaces86 Ambientes e interfaces

87</h2>87</h2>

88 88 

89O loop agentic, ferramentas e capacidades descritos acima são os mesmos em qualquer lugar que você use Claude Code. O que muda é onde o código é executado e como você interage com ele.89O [loop agentic](#the-agentic-loop), [ferramentas](#tools) e capacidades são os mesmos em qualquer lugar que você use Claude Code. O que muda é onde o código é executado e como você interage com ele.

90 90 

91<h3 id="execution-environments">91<h3 id="execution-environments">

92 Ambientes de execução92 Ambientes de execução

Details

614Enquanto o painel está aberto, você pode:614Enquanto o painel está aberto, você pode:

615 615 

616* **Ir para um arquivo**: clique em sua linha na lista. Role o painel com a roda do mouse. Quando a lista de arquivos em si é muito longa para caber, role-a com `Alt+Up` e `Alt+Down`, ou `Ctrl+Up` e `Ctrl+Down`.616* **Ir para um arquivo**: clique em sua linha na lista. Role o painel com a roda do mouse. Quando a lista de arquivos em si é muito longa para caber, role-a com `Alt+Up` e `Alt+Down`, ou `Ctrl+Up` e `Ctrl+Down`.

617* **Pergunte a Claude sobre linhas específicas**: selecione-as no painel com o mouse. Claude Code anexa a seleção ao seu próximo prompt e mostra uma contagem de linhas ao lado da entrada até que você o envie.617* **Pergunte a Claude sobre linhas específicas**: selecione-as no painel com o mouse. Claude Code anexa a seleção ao seu próximo prompt e mostra uma contagem de linhas na entrada até que você o envie.

618 * Para enviar o prompt sem a seleção, mova o cursor para logo após o indicador de contagem de linhas e pressione `Backspace` para deletá-lo. Requer Claude Code v2.1.271 ou posterior.

618* **Mostrar os arquivos que o painel deixa de fora**: a lista pula arquivos de teste e arquivos gerados, e collapsa alterações de antes desta sessão em uma linha na parte inferior. Clique em qualquer linha de contagem para expandi-la.619* **Mostrar os arquivos que o painel deixa de fora**: a lista pula arquivos de teste e arquivos gerados, e collapsa alterações de antes desta sessão em uma linha na parte inferior. Clique em qualquer linha de contagem para expandi-la.

619* **Alterar com o que o painel compara**: pressione `Ctrl+X B` para alternar entre as alterações desta sessão, suas alterações não confirmadas como uma lista, para tudo desde que sua ramificação se dividiu da ramificação padrão. Claude Code lembra a escolha para cada projeto.620* **Alterar com o que o painel compara**: pressione `Ctrl+X B` para alternar entre as alterações desta sessão, suas alterações não confirmadas como uma lista, para tudo desde que sua ramificação se dividiu da ramificação padrão. Claude Code lembra a escolha para cada projeto.

620 621 


650Na [extensão do VS Code](/docs/pt/vs-code#use-the-prompt-box) do painel de chat, `/btw` abre um painel em vez da sobreposição que esta seção descreve, e você faz perguntas de acompanhamento direto no painel. O thread do painel sobrevive a recarregamentos de janela, no cronograma de retenção que essa página descreve. Você precisa da extensão na versão 2.1.227 ou posterior. Versões anteriores da extensão não oferecem `/btw`.651Na [extensão do VS Code](/docs/pt/vs-code#use-the-prompt-box) do painel de chat, `/btw` abre um painel em vez da sobreposição que esta seção descreve, e você faz perguntas de acompanhamento direto no painel. O thread do painel sobrevive a recarregamentos de janela, no cronograma de retenção que essa página descreve. Você precisa da extensão na versão 2.1.227 ou posterior. Versões anteriores da extensão não oferecem `/btw`.

651 652 

652* **Disponível enquanto Claude está trabalhando**: você pode executar `/btw` mesmo enquanto Claude está processando uma resposta. A pergunta lateral é executada independentemente e não interrompe a volta principal. Ela vê tudo na conversa até agora, exceto a resposta que Claude ainda está escrevendo.653* **Disponível enquanto Claude está trabalhando**: você pode executar `/btw` mesmo enquanto Claude está processando uma resposta. A pergunta lateral é executada independentemente e não interrompe a volta principal. Ela vê tudo na conversa até agora, exceto a resposta que Claude ainda está escrevendo.

653* **Sem acesso a ferramentas**: perguntas laterais respondem apenas a partir do que já está em contexto. Claude não pode ler arquivos, executar comandos ou pesquisar ao responder uma pergunta lateral.654* **Sem acesso a ferramentas**: perguntas laterais respondem apenas a partir do que já está em contexto. Claude não pode ler arquivos, executar comandos ou pesquisar ao responder uma pergunta lateral. Se Claude escrever chamadas de ferramentas como texto mesmo assim, a resposta termina com uma nota de que nada foi executado.

654* **Resposta única**: não há turnos de acompanhamento na sobreposição. Para continuar o thread, faça outra pergunta `/btw`. Para continuar com acesso total a ferramentas em uma sessão local, pressione `f` para bifurcar esta pergunta e resposta em um [subagentesubagente de fundo](/docs/pt/sub-agents#fork-the-current-conversation).655* **Resposta única**: não há turnos de acompanhamento na sobreposição. Para continuar o thread, faça outra pergunta `/btw`. Para continuar com acesso total a ferramentas em uma sessão local, pressione `f` para bifurcar esta pergunta e resposta em um [subagentesubagente de fundo](/docs/pt/sub-agents#fork-the-current-conversation).

655* **Baixo custo**: enquanto o [cache de prompt](/docs/pt/prompt-caching) da conversa está aquecido, uma pergunta lateral custa pouco além da resposta em si.656* **Baixo custo**: enquanto o [cache de prompt](/docs/pt/prompt-caching) da conversa está aquecido, uma pergunta lateral custa pouco além da resposta em si.

656 657 

jetbrains.md +1 −1

Details

231 Considerações de Segurança231 Considerações de Segurança

232</h2>232</h2>

233 233 

234Quando Claude Code é executado em um JetBrains IDE no modo de permissão [`acceptEdits`](/docs/pt/permission-modes#auto-approve-file-edits-with-acceptedits-mode), ele pode ser capaz de modificar arquivos de configuração do IDE que podem ser executados automaticamente pelo seu IDE. Isso pode aumentar o risco de executar Claude Code no modo `acceptEdits` e permitir contornar os prompts de permissão do Claude Code para execução de bash.234Quando Claude Code é executado em um JetBrains IDE no modo de permissão [`acceptEdits`](/docs/pt/permission-modes#auto-approve-file-edits-with-acceptedits-mode), ele pode ser capaz de modificar arquivos de configuração do IDE que podem ser executados automaticamente pelo seu IDE. Isso pode aumentar o risco de executar Claude Code no modo `acceptEdits` e permitir contornar os prompts de permissão do Claude Code para execução de Bash.

235 235 

236Ao executar em JetBrains IDEs, considere:236Ao executar em JetBrains IDEs, considere:

237 237 

llm-gateway.md +1 −1

Details

28* **Registro de auditoria**: registre cada solicitação de modelo para conformidade28* **Registro de auditoria**: registre cada solicitação de modelo para conformidade

29* **Alternância de provedor**: altere o provedor na configuração do gateway, sem tocar nas máquinas dos desenvolvedores29* **Alternância de provedor**: altere o provedor na configuração do gateway, sem tocar nas máquinas dos desenvolvedores

30 30 

31Todos esses, exceto alternância de provedor, se aplicam se o upstream é a API da Anthropic ou um [provedor de nuvem](/docs/pt/third-party-integrations). A alternância de provedor sem reconfigurar máquinas de desenvolvedores também depende do gateway expor um único [endpoint em formato Anthropic](/docs/pt/llm-gateway-protocol#api-formats) independentemente do upstream; um gateway que expõe o próprio formato de um provedor vincula a configuração do cliente a esse provedor.31Todos esses, exceto alternância de provedor, se aplicam se o upstream é a API da Anthropic ou um [provedor de nuvem](/docs/pt/third-party-integrations). A alternância de provedor sem reconfigurar máquinas de desenvolvedores também depende do gateway expor um único [endpoint em formato Anthropic](/docs/pt/llm-gateway-protocol#api-formats) independentemente do upstream; um gateway que expõe o próprio formato de um provedor vincula a configuração do cliente a esse provedor e altera [o que Claude Code envia e quais padrões ele aplica](/docs/pt/llm-gateway-protocol#how-the-connection-method-changes-client-behavior).

32 32 

33O tradeoff é que o gateway se torna infraestrutura que sua organização opera. Claude Code adiciona capacidades com cada lançamento, e um gateway que não as encaminha quebra os recursos correspondentes, então o produto gateway precisa ser mantido atualizado conforme Claude Code evolui. A [referência de protocolo de gateway](/docs/pt/llm-gateway-protocol) aborda o que encaminhar.33O tradeoff é que o gateway se torna infraestrutura que sua organização opera. Claude Code adiciona capacidades com cada lançamento, e um gateway que não as encaminha quebra os recursos correspondentes, então o produto gateway precisa ser mantido atualizado conforme Claude Code evolui. A [referência de protocolo de gateway](/docs/pt/llm-gateway-protocol) aborda o que encaminhar.

34 34 

Details

286 ```286 ```

287</CodeGroup>287</CodeGroup>

288 288 

289<h3 id="slack-web-and-remote-control">289<h3 id="slack-cloud-sessions-and-remote-control">

290 Slack, web e Remote Control290 Slack, sessões em nuvem e Remote Control

291</h3>291</h3>

292 292 

293[Claude Code no Slack](/docs/pt/slack) e [Claude Code na web](/docs/pt/claude-code-on-the-web) são produtos hospedados pela Anthropic que sempre usam a API da Anthropic; eles não fazem parte de uma implantação de gateway. Variáveis de gateway definidas na configuração de ambiente de uma sessão em nuvem não são aplicadas. Se seu tráfego deve permanecer no gateway, não ative essas superfícies para esses usuários.293[Claude Code no Slack](/docs/pt/slack) e [sessões em nuvem](/docs/pt/claude-code-on-the-web) sempre usam a API da Anthropic; eles não fazem parte de uma implantação de gateway. Variáveis de gateway definidas na configuração de ambiente de uma sessão em nuvem não são aplicadas. Se seu tráfego deve permanecer no gateway, não ative essas superfícies para esses usuários.

294 294 

295[Remote Control](/docs/pt/remote-control) e [ditado por voz](/docs/pt/voice-dictation) ambos dependem de uma identidade claude.ai: Remote Control para emparelhar uma sessão ao vivo com sua conta e ditado por voz para alcançar o endpoint de transcrição claude.ai. Eles não estão disponíveis enquanto `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` ou um `apiKeyHelper` está ativo. Remote Control também está desabilitado enquanto `ANTHROPIC_BASE_URL` aponta para um host não-Anthropic, então fazer login com claude.ai não é suficiente por si só. Antes da v2.1.196, uma URL base não-Anthropic não bloqueava Remote Control.295[Remote Control](/docs/pt/remote-control) e [ditado por voz](/docs/pt/voice-dictation) ambos dependem de uma identidade claude.ai: Remote Control para emparelhar uma sessão ao vivo com sua conta e ditado por voz para alcançar o endpoint de transcrição claude.ai. Eles não estão disponíveis enquanto `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` ou um `apiKeyHelper` está ativo. Remote Control também está desabilitado enquanto `ANTHROPIC_BASE_URL` aponta para um host não-Anthropic, então fazer login com claude.ai não é suficiente por si só. Antes da v2.1.196, uma URL base não-Anthropic não bloqueava Remote Control.

296 296 


587| Erros `400` nomeando `context_management`, `Extra inputs are not permitted` ou outros campos não reconhecidos | O gateway encaminha solicitações para um upstream que rejeita campos que Claude Code envia para endpoints em formato Anthropic | Defina `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`, que suprime a maioria dos campos de pré-lançamento; consulte [passagem de recurso](/docs/pt/llm-gateway-protocol#feature-pass-through). Alguns betas não são controlados por este sinalizador; para esses, defina a variável de provedor `CLAUDE_CODE_USE_*` correspondente para que Claude Code envie apenas o que esse provedor aceita |587| Erros `400` nomeando `context_management`, `Extra inputs are not permitted` ou outros campos não reconhecidos | O gateway encaminha solicitações para um upstream que rejeita campos que Claude Code envia para endpoints em formato Anthropic | Defina `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`, que suprime a maioria dos campos de pré-lançamento; consulte [passagem de recurso](/docs/pt/llm-gateway-protocol#feature-pass-through). Alguns betas não são controlados por este sinalizador; para esses, defina a variável de provedor `CLAUDE_CODE_USE_*` correspondente para que Claude Code envie apenas o que esse provedor aceita |

588| Erros `400` nomeando `thinking` ou `adaptive`, como `Input tag 'adaptive' found` | A compilação do modelo upstream não aceita raciocínio adaptativo, que Claude Code solicita para modelos Claude 4.6 e posteriores | Atualize o upstream do gateway. Em Opus 4.6 e Sonnet 4.6, `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` funciona em vez disso. As variáveis de capacidade de [configuração de modelo](/docs/pt/model-config) se aplicam apenas às configurações de provedor, como `CLAUDE_CODE_USE_BEDROCK` e `CLAUDE_CODE_USE_VERTEX`, não atrás de um gateway `ANTHROPIC_BASE_URL` |588| Erros `400` nomeando `thinking` ou `adaptive`, como `Input tag 'adaptive' found` | A compilação do modelo upstream não aceita raciocínio adaptativo, que Claude Code solicita para modelos Claude 4.6 e posteriores | Atualize o upstream do gateway. Em Opus 4.6 e Sonnet 4.6, `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` funciona em vez disso. As variáveis de capacidade de [configuração de modelo](/docs/pt/model-config) se aplicam apenas às configurações de provedor, como `CLAUDE_CODE_USE_BEDROCK` e `CLAUDE_CODE_USE_VERTEX`, não atrás de um gateway `ANTHROPIC_BASE_URL` |

589| Erros `400` indicando um contexto ou limite de token nas próprias palavras do gateway, como `ContextWindowExceededError` ou `prompt token count of N exceeds the limit of M` | O gateway impõe um contexto menor que a janela nativa do modelo e reescreve o erro upstream, para que Claude Code não o reconheça como um [erro muito longo](/docs/pt/errors#prompt-is-too-long) e não compacte e tente novamente automaticamente | Execute `/compact` para recuperar a sessão. Para evitar, defina `CLAUDE_CODE_AUTO_COMPACT_WINDOW` para o limite do gateway; Claude Code fixa o valor em pelo menos 100.000 tokens e no máximo a janela de contexto do modelo, para que um limite de gateway abaixo de 100.000 não possa ser correspondido e `/compact` permaneça a recuperação lá. Também defina `CLAUDE_CODE_MAX_OUTPUT_TOKENS` abaixo do limite de saída do modelo de gateway |589| Erros `400` indicando um contexto ou limite de token nas próprias palavras do gateway, como `ContextWindowExceededError` ou `prompt token count of N exceeds the limit of M` | O gateway impõe um contexto menor que a janela nativa do modelo e reescreve o erro upstream, para que Claude Code não o reconheça como um [erro muito longo](/docs/pt/errors#prompt-is-too-long) e não compacte e tente novamente automaticamente | Execute `/compact` para recuperar a sessão. Para evitar, defina `CLAUDE_CODE_AUTO_COMPACT_WINDOW` para o limite do gateway; Claude Code fixa o valor em pelo menos 100.000 tokens e no máximo a janela de contexto do modelo, para que um limite de gateway abaixo de 100.000 não possa ser correspondido e `/compact` permaneça a recuperação lá. Também defina `CLAUDE_CODE_MAX_OUTPUT_TOKENS` abaixo do limite de saída do modelo de gateway |

590| Erros `400` em cada solicitação, nas próprias palavras do gateway rejeitando um esquema de entrada de ferramenta ou seu `pattern`, em Claude Code v2.1.265 até v2.1.267 | Em um lançamento gradual nessas versões, o esquema da [ferramenta Artifact](/docs/pt/artifacts#availability) carrega uma expressão regular com classes de caracteres Unicode `\p{...}`. A API Anthropic aceita, mas um gateway ou upstream que verifica o `pattern` de cada esquema de ferramenta com seu próprio mecanismo de regex rejeita toda a solicitação | Atualize para v2.1.268 ou posterior, que não envia a expressão regular. Em uma versão afetada, [desative artefatos](/docs/pt/artifacts#disable-artifacts), que remove a ferramenta e seu esquema das solicitações |

590| Modelos faltando do seletor `/model` | Nomes de modelo de gateway não estão na lista integrada de Claude Code, ou Claude Code está mostrando um lineup [`modelPicker`](/docs/pt/settings-reference#modelpicker) que substitui as opções integradas | Ative [descoberta de modelo de gateway](#add-gateway-models-to-the-model-picker) ou adicione nomes com as variáveis de [configuração de modelo](/docs/pt/model-config). Se Claude Code mostrar um lineup `modelPicker` substituto, adicione os modelos de gateway a ele, ou peça ao seu administrador para adicioná-los quando as configurações gerenciadas o fornecerem |591| Modelos faltando do seletor `/model` | Nomes de modelo de gateway não estão na lista integrada de Claude Code, ou Claude Code está mostrando um lineup [`modelPicker`](/docs/pt/settings-reference#modelpicker) que substitui as opções integradas | Ative [descoberta de modelo de gateway](#add-gateway-models-to-the-model-picker) ou adicione nomes com as variáveis de [configuração de modelo](/docs/pt/model-config). Se Claude Code mostrar um lineup `modelPicker` substituto, adicione os modelos de gateway a ele, ou peça ao seu administrador para adicioná-los quando as configurações gerenciadas o fornecerem |

591| `/fast` relata `Fast mode unavailable due to network connectivity issues` enquanto as solicitações de inferência funcionam | A verificação de disponibilidade do [modo rápido](/docs/pt/fast-mode) vai diretamente para `api.anthropic.com` e não segue `ANTHROPIC_BASE_URL`, portanto a saída direta bloqueada falha na verificação. A mesma mensagem aparece em uma rede aberta quando a verificação apresenta uma chave emitida por gateway de `ANTHROPIC_API_KEY` ou um `apiKeyHelper` e Anthropic a rejeita | Coloque na lista de permissões `api.anthropic.com` se a saída estiver bloqueada, ou defina uma variável de skip; para uma chave de gateway rejeitada apenas as variáveis de skip ajudam. Consulte [usar modo rápido atrás de proxies e gateways LLM](/docs/pt/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |592| `/fast` relata `Fast mode unavailable due to network connectivity issues` enquanto as solicitações de inferência funcionam | A verificação de disponibilidade do [modo rápido](/docs/pt/fast-mode) vai diretamente para `api.anthropic.com` e não segue `ANTHROPIC_BASE_URL`, portanto a saída direta bloqueada falha na verificação. A mesma mensagem aparece em uma rede aberta quando a verificação apresenta uma chave emitida por gateway de `ANTHROPIC_API_KEY` ou um `apiKeyHelper` e Anthropic a rejeita | Coloque na lista de permissões `api.anthropic.com` se a saída estiver bloqueada, ou defina uma variável de skip; para uma chave de gateway rejeitada apenas as variáveis de skip ajudam. Consulte [usar modo rápido atrás de proxies e gateways LLM](/docs/pt/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |

592| `/fast` relata `Fast mode has been disabled by your organization` em uma sessão autenticada com `ANTHROPIC_AUTH_TOKEN`, mesmo que a organização tenha modo rápido ativado | A verificação de disponibilidade requer um login claude.ai ou uma chave de API Anthropic; com apenas um token de portador, Claude Code trata o modo rápido como desativado sem enviar a verificação | Defina `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1`; consulte [usar modo rápido atrás de proxies e gateways LLM](/docs/pt/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |593| `/fast` relata `Fast mode has been disabled by your organization` em uma sessão autenticada com `ANTHROPIC_AUTH_TOKEN`, mesmo que a organização tenha modo rápido ativado | A verificação de disponibilidade requer um login claude.ai ou uma chave de API Anthropic; com apenas um token de portador, Claude Code trata o modo rápido como desativado sem enviar a verificação | Defina `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1`; consulte [usar modo rápido atrás de proxies e gateways LLM](/docs/pt/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |

Details

6 6 

7> Mantenha um gateway LLM compatível com Claude Code: os endpoints que ele chama, os headers e campos de corpo a encaminhar, e o que quebra quando são removidos.7> Mantenha um gateway LLM compatível com Claude Code: os endpoints que ele chama, os headers e campos de corpo a encaminhar, e o que quebra quando são removidos.

8 8 

9Esta página documenta as solicitações que Claude Code envia para um gateway, incluindo os endpoints que ele chama, os headers e campos de corpo que o gateway deve encaminhar, e quais recursos deixam de funcionar quando não o faz. É escrita para operadores que configuram um produto gateway para funcionar com Claude Code.9Esta página documenta as solicitações que Claude Code envia para um gateway, incluindo os endpoints que ele chama, os headers e campos de corpo que o gateway deve encaminhar, e quais recursos deixam de funcionar quando não o faz. É escrita para operadores configurando um produto gateway para funcionar com Claude Code.

10 10 

11O [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway), o gateway auto-hospedado da Anthropic, fornece sua própria referência de endpoint em `GET /protocol`, cobrindo os endpoints de login, inferência, configurações gerenciadas, descoberta de modelos e telemetria desse gateway. É um documento separado deste guia.11O [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway), o gateway auto-hospedado da Anthropic, serve sua própria referência de endpoint em `GET /protocol`, cobrindo os endpoints de sign-in, inferência, configurações gerenciadas, descoberta de modelo e telemetria desse gateway. É um documento separado deste guia.

12 12 

13<Note>13<Note>

14 * Para implantar um gateway existente ou de terceiros para sua organização, consulte [Implantar um gateway LLM](/docs/pt/llm-gateway-rollout)14 * Para implantar um gateway existente ou de terceiros para sua organização, consulte [Implantar um gateway LLM](/docs/pt/llm-gateway-rollout)


18Esta página cobre:18Esta página cobre:

19 19 

20* [Formatos de API](#api-formats) e os endpoints a servir para cada um20* [Formatos de API](#api-formats) e os endpoints a servir para cada um

21* [Comportamento do cliente por método de conexão](#how-the-connection-method-changes-client-behavior): como IDs de modelo, valores de `anthropic-beta`, campos de solicitação e padrões diferem entre os formatos e um sign-in de gateway de aplicativos Claude

21* [Headers de solicitação](#request-headers): quais devem chegar ao upstream e quais seu gateway pode consumir22* [Headers de solicitação](#request-headers): quais devem chegar ao upstream e quais seu gateway pode consumir

22* O [bloco de atribuição do prompt do sistema](#system-prompt-attribution-block) e como ele interage com o cache de prompt23* [Headers de resposta](#response-headers): o que retornar para que a detecção de travamento, tentativas e exibição de limite de uso funcionem

24* O [bloco de atribuição de prompt do sistema](#system-prompt-attribution-block) e como ele interage com cache de prompt

23* [Passagem de recursos](#feature-pass-through): o que quebra quando headers ou campos de corpo são removidos25* [Passagem de recursos](#feature-pass-through): o que quebra quando headers ou campos de corpo são removidos

24* [Descoberta de modelos](#model-discovery)26* [Descoberta de modelo](#model-discovery)

25 27 

26Esta página usa dois termos para o que seu gateway faz com cada header e campo de corpo:28Esta página usa dois termos para o que seu gateway faz com cada header e campo de corpo:

27 29 


34 Formatos de API36 Formatos de API

35</h2>37</h2>

36 38 

37Um gateway deve expor pelo menos um dos seguintes formatos de API para clientes Claude Code. Um cliente escolhe um formato e aponta Claude Code para seu gateway com as variáveis na coluna Selecionado por da tabela abaixo.39Um gateway deve expor pelo menos um dos seguintes formatos de API para clientes Claude Code. Um cliente escolhe um formato e aponta Claude Code para seu gateway com as variáveis na coluna Selecionado pela tabela abaixo.

38 40 

39Google Cloud's Agent Platform é o endpoint Claude do Google Cloud, anteriormente Vertex AI; seus nomes de variáveis mantêm a grafia `VERTEX`.41Google Cloud's Agent Platform é o endpoint Claude do Google Cloud, anteriormente Vertex AI; seus nomes de variáveis mantêm a grafia `VERTEX`.

40 42 

41| Formato | Selecionado por | Endpoints | Encaminhar inalterado |43| Formato | Selecionado por | Endpoints | Encaminhar inalterado |

42| :--------------------------------------- | :----------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------- |44| :--------------------------------------- | :----------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------- |

43| Anthropic Messages | `ANTHROPIC_BASE_URL` | `/v1/messages`, `/v1/messages/count_tokens` (opcional) | headers de solicitação `anthropic-beta` e `anthropic-version` |45| Anthropic Messages | `ANTHROPIC_BASE_URL` | `/v1/messages`, `/v1/messages/count_tokens` (opcional) | headers de requisição `anthropic-beta` e `anthropic-version` |

44| Amazon Bedrock InvokeModel | `ANTHROPIC_BEDROCK_BASE_URL` com `CLAUDE_CODE_USE_BEDROCK=1` | `/model/{model}/invoke`, `/model/{model}/invoke-with-response-stream`, `/model/{model}/count-tokens` (opcional) | campos de corpo de solicitação `anthropic_beta` e `anthropic_version` |46| Amazon Bedrock InvokeModel | `ANTHROPIC_BEDROCK_BASE_URL` com `CLAUDE_CODE_USE_BEDROCK=1` | `/model/{model}/invoke`, `/model/{model}/invoke-with-response-stream`, `/model/{model}/count-tokens` (opcional) | campos de corpo de requisição `anthropic_beta` e `anthropic_version` |

45| Google Cloud's Agent Platform rawPredict | `ANTHROPIC_VERTEX_BASE_URL` com `CLAUDE_CODE_USE_VERTEX=1` | `:rawPredict`, `:streamRawPredict`, `count-tokens:rawPredict` (opcional) | headers de solicitação `anthropic-beta` e `anthropic-version`, e o campo de corpo de solicitação `anthropic_version` |47| Google Cloud's Agent Platform rawPredict | `ANTHROPIC_VERTEX_BASE_URL` com `CLAUDE_CODE_USE_VERTEX=1` | `:rawPredict`, `:streamRawPredict`, `count-tokens:rawPredict` (opcional) | headers de requisição `anthropic-beta` e `anthropic-version`, e o campo de corpo de requisição `anthropic_version` |

46 48 

47<h3 id="foundry-and-claude-platform-on-aws">49<h3 id="foundry-and-claude-platform-on-aws">

48 Foundry e Claude Platform on AWS50 Foundry e Claude Platform on AWS

49</h3>51</h3>

50 52 

51Microsoft Foundry e a [Claude Platform on AWS](/docs/pt/claude-platform-on-aws) implementam o formato Anthropic Messages. Claude Code roteia para eles através de suas próprias variáveis, `ANTHROPIC_FOUNDRY_BASE_URL` e `ANTHROPIC_AWS_BASE_URL`, mas um gateway fronteando qualquer um deles implementa a linha Anthropic Messages acima. Um gateway fronteando a Claude Platform on AWS também deve encaminhar o header `anthropic-workspace-id`, que [essa plataforma requer em cada solicitação](/docs/pt/claude-platform-on-aws).53Microsoft Foundry e a [Claude Platform on AWS](/docs/pt/claude-platform-on-aws) implementam o formato Anthropic Messages. Claude Code roteia para eles através de suas próprias variáveis, `ANTHROPIC_FOUNDRY_BASE_URL` e `ANTHROPIC_AWS_BASE_URL`, mas um gateway fronteando qualquer um deles implementa a linha Anthropic Messages acima. Um gateway fronteando a Claude Platform on AWS também deve encaminhar o header `anthropic-workspace-id`, que [essa plataforma requer em cada requisição](/docs/pt/claude-platform-on-aws).

52 54 

53<h3 id="optional-endpoints-and-startup-traffic">55<h3 id="optional-endpoints-and-startup-traffic">

54 Endpoints opcionais e tráfego de inicialização56 Endpoints opcionais e tráfego de inicialização

55</h3>57</h3>

56 58 

57Endpoints de contagem de tokens são os únicos opcionais: quando estão ausentes, Claude Code volta a uma estimativa baseada em caracteres do uso de contexto.59Endpoints de contagem de tokens são os únicos opcionais: quando estão ausentes, Claude Code volta para uma estimativa baseada em caracteres do uso de contexto.

58 60 

59Corresponda no caminho, não na URL completa:61Corresponda no caminho, não na URL completa:

60 62 

61* Solicitações de inferência são postadas em `/v1/messages?beta=true`63* Requisições de inferência postam para `/v1/messages?beta=true`

62* O método Google Cloud's Agent Platform anexa sufixos ao caminho do modelo do editor, como em `/projects/{project}/locations/{location}/publishers/anthropic/models/{model}:streamRawPredict`64* O método Google Cloud's Agent Platform sufixos anexam ao caminho do modelo do publisher, como em `/projects/{project}/locations/{location}/publishers/anthropic/models/{model}:streamRawPredict`

63 65 

64Um gateway também vê tráfego de inicialização de melhor esforço que pode rejeitar sem quebrar nada. Um gateway no formato Anthropic Messages recebe uma sonda de aquecimento de conexão `HEAD /api/hello`, que Claude Code ignora quando um proxy HTTP ou certificado de cliente está configurado. Um gateway no formato Amazon Bedrock recebe uma solicitação `GET /inference-profiles?type=SYSTEM_DEFINED` e, quando o modelo configurado é um perfil de inferência, buscas `GET /inference-profiles/{profile}`.66Um gateway também vê tráfego de inicialização de melhor esforço que pode rejeitar sem quebrar nada. Um gateway no formato Anthropic Messages recebe uma sonda de aquecimento de conexão `HEAD /api/hello`, que Claude Code pula quando um proxy HTTP ou certificado de cliente está configurado. Um gateway no formato Amazon Bedrock recebe uma requisição `GET /inference-profiles?type=SYSTEM_DEFINED` e, quando o modelo configurado é um perfil de inferência, buscas `GET /inference-profiles/{profile}`.

65 67 

66A verificação de disponibilidade do [fast mode](/docs/pt/fast-mode) nunca aparece nos logs do gateway: ela chama `api.anthropic.com` diretamente em vez de seguir `ANTHROPIC_BASE_URL`, então em uma rede que bloqueia egresso direto para `api.anthropic.com`, o fast mode pode relatar um erro de conectividade enquanto a inferência através do gateway continua funcionando. A [verificação de segurança de domínio WebFetch](/docs/pt/data-usage#webfetch-domain-safety-check) também chama `api.anthropic.com` diretamente. [Use fast mode atrás de proxies e gateways LLM](/docs/pt/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) cobre as variáveis que o restauram.68A verificação de disponibilidade do [fast mode](/docs/pt/fast-mode) nunca aparece nos logs do gateway: ela chama `api.anthropic.com` diretamente em vez de seguir `ANTHROPIC_BASE_URL`, então em uma rede que bloqueia egresso direto para `api.anthropic.com`, o fast mode pode relatar um erro de conectividade enquanto a inferência através do gateway continua funcionando. A [verificação de segurança de domínio WebFetch](/docs/pt/data-usage#webfetch-domain-safety-check) também chama `api.anthropic.com` diretamente. [Use fast mode behind proxies and LLM gateways](/docs/pt/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) cobre as variáveis que o restauram.

67 69 

68<h3 id="streaming">70<h3 id="streaming">

69 Streaming71 Streaming

70</h3>72</h3>

71 73 

72Respostas de inferência de stream. Claude Code lê o stream conforme chega, então se seu gateway armazena em buffer respostas completas antes de retransmiti-las, Claude Code trava.74Transmita respostas de inferência em stream. Claude Code lê o stream conforme ele chega, então se seu gateway armazena respostas completas antes de retransmiti-las, Claude Code trava.

73 75 

74Quando o cliente fala o formato Amazon Bedrock, retransmita o corpo da resposta `InvokeModelWithResponseStream` e seu header `Content-Type: application/vnd.amazon.eventstream` sem modificações, e não converta o stream para server-sent events. Veja [Erros de streaming atrás de um gateway ou proxy](/docs/pt/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy).76Quando o cliente fala o formato Amazon Bedrock, retransmita o corpo da resposta `InvokeModelWithResponseStream` e seu header `Content-Type: application/vnd.amazon.eventstream` sem modificações, e não converta o stream para server-sent events. Veja [Streaming errors behind a gateway or proxy](/docs/pt/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy).

75 77 

76Retransmita também pings de keep-alive. Em conexões através de `ANTHROPIC_BASE_URL` ou `ANTHROPIC_AWS_BASE_URL`, Claude Code conta cada byte que seu gateway retransmite, incluindo eventos SSE `ping` e linhas de comentário, e aborta um stream que fica silencioso por 300 segundos por padrão. Os pings do upstream são o único tráfego durante pausas de pensamento longo, então se seu gateway os remove ou armazena em buffer, Claude Code aborta o stream durante essas pausas; [Tentativas automáticas](/docs/pt/errors#automatic-retries) cobre o que um stream abortado relata com base em quanto a resposta havia progredido. Um upstream que não envia pings, como o event-stream binário do Amazon Bedrock, deixa essas pausas sem nada para retransmitir. Ao traduzir de tal upstream, emita seus próprios eventos `ping` durante lacunas silenciosas. Gateways alcançados através de `ANTHROPIC_BEDROCK_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, ou `ANTHROPIC_FOUNDRY_BASE_URL` não são envolvidos por este watchdog de nível de byte, mesmo quando retransmitem o formato Anthropic Messages; lá, um [timeout de inatividade de 5 minutos](/docs/pt/env-vars) aborta um stream silencioso, e em conexões `ANTHROPIC_BEDROCK_BASE_URL` você pode adicionar o watchdog de byte com [`CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK`](/docs/pt/env-vars).78Encaminhe pings de keep-alive também. Em conexões através de `ANTHROPIC_BASE_URL` ou `ANTHROPIC_AWS_BASE_URL`, Claude Code conta cada byte que seu gateway retransmite, incluindo eventos SSE `ping` e linhas de comentário, e aborta um stream que fica silencioso por 300 segundos por padrão. Os pings do upstream são o único tráfego durante pausas de pensamento longo, então se seu gateway remove ou armazena eles, Claude Code aborta o stream durante essas pausas; [Automatic retries](/docs/pt/errors#automatic-retries) cobre o que um stream abortado relata com base em quanto a resposta havia progredido. Um upstream que não envia pings em absoluto, como o event-stream binário do Amazon Bedrock, deixa essas pausas sem nada para encaminhar. Ao traduzir de tal upstream, emita seus próprios eventos `ping` durante lacunas silenciosas. Gateways alcançados através de `ANTHROPIC_BEDROCK_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, ou `ANTHROPIC_FOUNDRY_BASE_URL` não são envolvidos por este watchdog de nível de byte, mesmo quando retransmitem o formato Anthropic Messages; lá, um [timeout ocioso de 5 minutos](/docs/pt/env-vars) aborta um stream silencioso em vez disso, e em conexões `ANTHROPIC_BEDROCK_BASE_URL` você pode adicionar o watchdog de byte com [`CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK`](/docs/pt/env-vars).

77 79 

78<h3 id="format-mismatch-with-the-upstream">80<h3 id="format-mismatch-with-the-upstream">

79 Incompatibilidade de formato com o upstream81 Incompatibilidade de formato com o upstream


84* Quando o cliente fala o formato Amazon Bedrock ou Google Cloud's Agent Platform, Claude Code envia apenas o subconjunto de seu conjunto completo de capacidades que esses provedores aceitam86* Quando o cliente fala o formato Amazon Bedrock ou Google Cloud's Agent Platform, Claude Code envia apenas o subconjunto de seu conjunto completo de capacidades que esses provedores aceitam

85* Quando o cliente fala o formato Anthropic Messages, Claude Code envia o conjunto completo, mesmo que seu gateway encaminhe para um upstream Amazon Bedrock ou Google Cloud's Agent Platform87* Quando o cliente fala o formato Anthropic Messages, Claude Code envia o conjunto completo, mesmo que seu gateway encaminhe para um upstream Amazon Bedrock ou Google Cloud's Agent Platform

86 88 

87Fazer essa ponte é trabalho do seu gateway. [Passagem de recursos](#feature-pass-through) descreve o que quebra quando não o faz.89Fazer a ponte dessa diferença é trabalho do seu gateway. [Feature pass-through](#feature-pass-through) descreve o que quebra quando não faz.

90 

91Se seu upstream é Amazon Bedrock ou Google Cloud's Agent Platform, você pode evitar a ponte expondo o formato desse provedor em vez disso. [Route to a cloud provider through a gateway](/docs/pt/llm-gateway-connect#route-to-a-cloud-provider-through-a-gateway) mostra a configuração do cliente para esse formato.

92 

93<h2 id="how-the-connection-method-changes-client-behavior">

94 Como o método de conexão altera o comportamento do cliente

95</h2>

96 

97A forma como um desenvolvedor se conecta ao seu gateway determina quais IDs de modelo, valores de `anthropic-beta` e campos de solicitação o Claude Code envia, e quais padrões ele aplica. Seu gateway vê um dos três comportamentos de cliente:

98 

99* **Formato Amazon Bedrock ou Agent Platform**: o desenvolvedor define `CLAUDE_CODE_USE_BEDROCK=1` com `ANTHROPIC_BEDROCK_BASE_URL`, ou `CLAUDE_CODE_USE_VERTEX=1` com `ANTHROPIC_VERTEX_BASE_URL`, apontando para seu gateway. Claude Code usa os IDs de modelo, campos de solicitação e padrões desse provedor.

100* **Formato Anthropic Messages**: o desenvolvedor define `ANTHROPIC_BASE_URL` para seu gateway. Claude Code trata o gateway como a API Claude e não consegue dizer para qual upstream você encaminha.

101* **Entrada do gateway de aplicativos Claude**: o desenvolvedor entra em um [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway). Esse gateway fala o formato Anthropic Messages, mas pode rotear para qualquer upstream, então Claude Code envia apenas os valores de `anthropic-beta` e suposições de capacidade de modelo que Amazon Bedrock e Agent Platform também aceitam.

102 

103<h3 id="requests-and-defaults-by-connection-method">

104 Solicitações e padrões por método de conexão

105</h3>

106 

107A tabela abaixo compara os três métodos de conexão, um comportamento por linha. Ela omite Microsoft Foundry e Claude Platform on AWS, que também usam o formato Anthropic Messages, mas que Claude Code alcança através de suas próprias variáveis. Para esses, consulte as páginas [Microsoft Foundry](/docs/pt/microsoft-foundry) e [Claude Platform on AWS](/docs/pt/claude-platform-on-aws).

108 

109| Comportamento | Formato Amazon Bedrock ou Agent Platform | Formato Anthropic Messages | Entrada do gateway de aplicativos Claude |

110| :--------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- |

111| IDs de modelo em solicitações por padrão | A forma do provedor, como `us.anthropic.claude-opus-4-8` no Amazon Bedrock | IDs Anthropic, como `claude-opus-4-8` | IDs Anthropic |

112| Valores de `anthropic-beta` enviados | O subconjunto que Amazon Bedrock e Agent Platform aceitam | O conjunto completo descrito em [feature pass-through](#feature-pass-through), a menos que o desenvolvedor defina [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](#disable-pre-release-capabilities) | O subconjunto que Amazon Bedrock e Agent Platform aceitam |

113| Campos de solicitação para um ID de modelo que Claude Code não reconhece, como um alias de gateway | Pensamento com um orçamento fixo em vez de raciocínio adaptativo, e nenhum campo de esforço ou gerenciamento de contexto | Tudo que os modelos Claude atuais aceitam na API Claude, incluindo raciocínio adaptativo, esforço e gerenciamento de contexto, que um upstream Amazon Bedrock ou Agent Platform pode rejeitar | Mesmo que o formato Amazon Bedrock ou Agent Platform |

114| [TTL de cache de prompt](/docs/pt/prompt-caching#choose-the-ttl-yourself) de uma hora quando um desenvolvedor opta por participar | Solicitado através do campo `ttl` em `cache_control`, sem valor beta | Solicitado através do campo `ttl` mais um valor `extended-cache-ttl` em `anthropic-beta`, que você deve encaminhar | Consulte a tabela [disponibilidade e limitações](/docs/pt/claude-apps-gateway#availability-and-limitations) do gateway de aplicativos Claude |

115| Modelo para [tarefas em segundo plano](/docs/pt/costs#background-token-usage) a menos que `ANTHROPIC_DEFAULT_HAIKU_MODEL` fixe um | O modelo Sonnet padrão, ou o modelo principal uma vez que um seja selecionado, conforme as páginas [Amazon Bedrock](/docs/pt/amazon-bedrock#4-pin-model-versions) e [Agent Platform](/docs/pt/google-vertex-ai#5-pin-model-versions) descrevem | O modelo principal, ou o modelo Haiku padrão quando `ANTHROPIC_API_KEY` ou `apiKeyHelper` fornece uma chave do Console Anthropic e `ANTHROPIC_AUTH_TOKEN` não está definido | O modelo principal |

116 

117Para os recursos que cada conexão suporta e a telemetria que envia para Anthropic por padrão, consulte [Disponibilidade de recursos](/docs/pt/feature-availability#availability-by-model-provider) e [Comportamentos padrão por provedor de API](/docs/pt/data-usage#default-behaviors-by-api-provider).

118 

119<h3 id="settings-for-unrecognized-model-ids">

120 Configurações para IDs de modelo não reconhecidos

121</h3>

122 

123Duas configurações do lado do cliente alteram o que Claude Code assume para um ID de modelo que não reconhece, independentemente do método de conexão que o desenvolvedor usa:

124 

125* **Janela de contexto**: Claude Code assume 200K, ou 1M quando o ID carrega `[1m]`. Para declarar a janela real, consulte [Corrigir a janela para um gateway ou ID de modelo personalizado](/docs/pt/model-config#correct-the-window-for-a-gateway-or-custom-model-id)

126* **Capacidades**: para dar a um alias de gateway as capacidades do modelo por trás dele, mapeie o ID Anthropic desse modelo para seu alias com uma entrada [`modelOverrides`](/docs/pt/errors#unrecognized-model-id-on-a-request) nas configurações que você distribui. Para onde as variáveis `ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES` se aplicam, consulte [feature pass-through](#feature-pass-through)

88 127 

89<h2 id="request-headers">128<h2 id="request-headers">

90 Headers de solicitação129 Headers de solicitação


101| `x-claude-code-agent-id` | Identificador do [subagente](/docs/pt/sub-agents) que emitiu a solicitação, presente apenas em solicitações de um agente que Claude Code gerou dentro da sessão. Use-o com o ID da sessão para atribuir custo a agentes paralelos |140| `x-claude-code-agent-id` | Identificador do [subagente](/docs/pt/sub-agents) que emitiu a solicitação, presente apenas em solicitações de um agente que Claude Code gerou dentro da sessão. Use-o com o ID da sessão para atribuir custo a agentes paralelos |

102| `x-claude-code-parent-agent-id` | Identificador do agente que gerou o agente solicitante, presente apenas para agentes aninhados |141| `x-claude-code-parent-agent-id` | Identificador do agente que gerou o agente solicitante, presente apenas para agentes aninhados |

103 142 

104IDs de subagentes são gerados novamente para cada geração. Agentes companheiros, os membros nomeados de uma [equipe de agentes](/docs/pt/agent-teams), reutilizam um ID estável baseado em nome entre reconexões. Em ambos os casos, o ID identifica um agente, não uma pessoa ou dispositivo, então não trate o header de ID de agente como um identificador de usuário.143IDs de subagentes são gerados novamente cada vez que Claude Code gera um subagente. Agentes companheiros, os membros nomeados de uma [equipe de agentes](/docs/pt/agent-teams), reutilizam um ID estável baseado em nome entre reconexões. Em ambos os casos, o ID identifica um agente, não uma pessoa ou dispositivo, então não trate o header de ID de agente como um identificador de usuário.

105 144 

106Se seus desenvolvedores definirem `ANTHROPIC_CUSTOM_HEADERS`, esses headers também aparecem em solicitações.145Se seus desenvolvedores definirem `ANTHROPIC_CUSTOM_HEADERS`, esses headers também aparecem em solicitações.

107 146 


115 154 

116A exceção é um upstream não-Anthropic, como Amazon Bedrock ou Agent Platform do Google Cloud, onde fazer a ponte da diferença de schema é trabalho do gateway; consulte [passagem de recursos](#feature-pass-through).155A exceção é um upstream não-Anthropic, como Amazon Bedrock ou Agent Platform do Google Cloud, onde fazer a ponte da diferença de schema é trabalho do gateway; consulte [passagem de recursos](#feature-pass-through).

117 156 

157<h2 id="response-headers">

158 Cabeçalhos de resposta

159</h2>

160 

161Claude Code lê esses cabeçalhos de resposta para detectar fluxos travados, para decidir se e quando tentar novamente, e para mostrar limites de uso. A tabela lista o que retornar para cada um. Também encaminhe corpos de resposta de erro sem modificações, para que a [recuperação de rejeição de capacidade](#automatic-retry-and-error-forwarding) do Claude Code possa corresponder à redação do erro do upstream.

162 

163| Cabeçalho | O que retornar e por quê |

164| :------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

165| `content-type` | Retorne `text/event-stream` em respostas de formato Anthropic Messages transmitidas, e `application/vnd.amazon.eventstream`, sem modificações, em respostas de formato Amazon Bedrock, onde [um tipo diferente falha na solicitação](/docs/pt/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). [Streaming](#streaming) lista quais conexões executam detecção de travamento nesses fluxos |

166| `retry-after` | Retorne segundos inteiros em vez de uma data HTTP. Claude Code aguarda pelo menos esse tempo antes da próxima [tentativa automática](/docs/pt/errors#automatic-retries), e fora de sessões [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/pt/env-vars) um valor acima de 60 interrompe as tentativas e mostra o erro imediatamente |

167| `x-should-retry` | Passe o valor do upstream inalterado. Claude Code lê este cabeçalho como uma entrada ao decidir se deve tentar novamente uma solicitação com falha: `true` marca a resposta como retentável e `false` marca como não retentável. Para contagens de tentativas, backoff e quais falhas Claude Code tenta novamente, consulte [tentativas automáticas](/docs/pt/errors#automatic-retries) |

168| `anthropic-ratelimit-unified-*` | Encaminhe os valores do upstream inalterados em cada resposta. Claude Code os lê em respostas bem-sucedidas para mostrar o uso em relação aos limites do plano para desenvolvedores conectados com claude.ai, e em um `429` para distinguir um limite de plano ou limite de gastos de um acelerador temporário; consulte [limites de uso](/docs/pt/errors#usage-limits) |

169 

118<h2 id="system-prompt-attribution-block">170<h2 id="system-prompt-attribution-block">

119 Bloco de atribuição do prompt do sistema171 Bloco de atribuição do prompt do sistema

120</h2>172</h2>


168O que Claude Code faz após uma rejeição upstream depende do que foi rejeitado:220O que Claude Code faz após uma rejeição upstream depende do que foi rejeitado:

169 221 

170* Quando o upstream rejeita o campo `thinking`, uma mensagem de sistema no meio da conversa, ou o marcador `cache_control` em tal mensagem, Claude Code tenta novamente a solicitação e desabilita a capacidade rejeitada pelo resto da conversa222* Quando o upstream rejeita o campo `thinking`, uma mensagem de sistema no meio da conversa, ou o marcador `cache_control` em tal mensagem, Claude Code tenta novamente a solicitação e desabilita a capacidade rejeitada pelo resto da conversa

171* Quando o upstream rejeita uma [assinatura de pensamento](https://platform.claude.com/docs/en/build-with-claude/extended-thinking), Claude Code tenta novamente a solicitação sem os blocos de pensamento anteriores da conversa e os mantém fora de cada solicitação posterior. Novas respostas ainda incluem pensamento223* 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

172* Claude Code não tenta novamente rejeições de gerenciamento de contexto ou campos de schema de ferramenta, então esses erros `400` chegam ao desenvolvedor224* Claude Code não tenta novamente rejeições de gerenciamento de contexto ou campos de schema de ferramenta, então esses erros `400` chegam ao desenvolvedor

173 225 

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

227 

174A 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](/docs/pt/claude-apps-gateway-config#upstream-error-messages), por exemplo `capability_rejected: prompt_too_long`.228A 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](/docs/pt/claude-apps-gateway-config#upstream-error-messages), por exemplo `capability_rejected: prompt_too_long`.

175 229 

176<h3 id="disable-pre-release-capabilities">230<h3 id="disable-pre-release-capabilities">


209 Solicitação e resposta263 Solicitação e resposta

210</h3>264</h3>

211 265 

212A solicitação é `GET /v1/models?limit=1000` com um timeout de 3 segundos, e qualquer redirecionamento é tratado como falha para que a credencial não vaze para um alvo de redirecionamento. Um gateway que responde lentamente ou redireciona `/v1/models`, mesmo `http` para `https`, falha na descoberta silenciosamente; sirva o endpoint diretamente na URL base configurada.266A solicitação é `GET /v1/models?limit=1000` com um timeout de 3 segundos por padrão, e qualquer redirecionamento é tratado como falha para que a credencial não vaze para um alvo de redirecionamento. Um gateway que responde mais lentamente do que o timeout, ou um que redireciona `/v1/models`, mesmo `http` para `https`, falha na descoberta silenciosamente; sirva o endpoint diretamente na URL base configurada.

267 

268Para dar a um gateway lento mais tempo, defina [`CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS`](/docs/pt/env-vars#variables). A variável requer Claude Code v2.1.269 ou posterior.

213 269 

214Claude Code envia a solicitação de descoberta com ambos os headers de credencial abaixo e omite um header cujo valor não se resolve. Enviar ambos os headers requer Claude Code v2.1.248 ou posterior. Versões anteriores enviam apenas `Authorization` quando `ANTHROPIC_AUTH_TOKEN` é definido e apenas `x-api-key` caso contrário.270Claude Code envia a solicitação de descoberta com ambos os headers de credencial abaixo e omite um header cujo valor não se resolve. Enviar ambos os headers requer Claude Code v2.1.248 ou posterior. Versões anteriores enviam apenas `Authorization` quando `ANTHROPIC_AUTH_TOKEN` é definido e apenas `x-api-key` caso contrário.

215 271 

Details

282Após a implantação, três tipos de mudança alcançam o gateway ao longo do tempo. Cada um tem um sintoma a observar e uma ação a tomar.282Após a implantação, três tipos de mudança alcançam o gateway ao longo do tempo. Cada um tem um sintoma a observar e uma ação a tomar.

283 283 

284| Mudança | Sintoma quando o gateway não acompanhou | Ação |284| Mudança | Sintoma quando o gateway não acompanhou | Ação |

285| :--------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |285| :--------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

286| Novos lançamentos do Claude Code adicionam valores `anthropic-beta` e campos de corpo de solicitação | Os desenvolvedores relatam erros `400` nomeando um novo campo depois que atualizam Claude Code; consulte [passagem de recursos](/docs/pt/llm-gateway-protocol#feature-pass-through) | Encaminhe cabeçalhos `anthropic-*` e corpos de solicitação verbatim em vez de usar lista de permissões; teste novos lançamentos do Claude Code contra o gateway antes de alcançarem os desenvolvedores |286| Novos lançamentos do Claude Code adicionam valores `anthropic-beta` e campos de corpo de solicitação | Os desenvolvedores relatam erros `400` nomeando um novo campo depois que atualizam Claude Code; consulte [passagem de recursos](/docs/pt/llm-gateway-protocol#feature-pass-through) | Encaminhe cabeçalhos `anthropic-*` e corpos de solicitação verbatim em vez de usar lista de permissões; teste novos lançamentos do Claude Code contra o gateway antes de alcançarem os desenvolvedores, verificando as áreas em [Planejar atualizações de versão do Claude Code](#plan-claude-code-version-upgrades) |

287| Novos modelos Claude ficam disponíveis | Os desenvolvedores selecionando um novo nome de modelo obtêm `404`; o seletor `/model` não o lista | Adicione o nome do modelo à configuração de roteamento do gateway, em seguida, re-execute a [verificação de roteamento](#confirm-the-gateway-routes-your-models). Se você distribuir `ANTHROPIC_MODEL` ou as variáveis de modelo padrão, atualize as configurações gerenciadas |287| Novos modelos Claude ficam disponíveis | Os desenvolvedores selecionando um novo nome de modelo obtêm `404`; o seletor `/model` não o lista | Adicione o nome do modelo à configuração de roteamento do gateway, em seguida, re-execute a [verificação de roteamento](#confirm-the-gateway-routes-your-models). Se você distribuir `ANTHROPIC_MODEL` ou as variáveis de modelo padrão, atualize as configurações gerenciadas |

288| Credenciais expiram ou precisam de rotação | Todas as solicitações de desenvolvedor começam a falhar com `401` do upstream | Rotacione a credencial do provedor do gateway em seu próprio cronograma; as chaves do desenvolvedor giram no gateway, e um [`apiKeyHelper`](/docs/pt/llm-gateway-connect#rotate-credentials-with-apikeyhelper) lida com rotação por desenvolvedor sem redistribuir configurações |288| Credenciais expiram ou precisam de rotação | Todas as solicitações de desenvolvedor começam a falhar com `401` do upstream | Rotacione a credencial do provedor do gateway em seu próprio cronograma; as chaves do desenvolvedor giram no gateway, e um [`apiKeyHelper`](/docs/pt/llm-gateway-connect#rotate-credentials-with-apikeyhelper) lida com rotação por desenvolvedor sem redistribuir configurações |

289 289 

290Ao dimensionar limites de taxa por chave, leve em conta o cliente [tentando novamente falhas transitórias](/docs/pt/errors#automatic-retries), incluindo respostas `429`, até 10 vezes com backoff, honrando `Retry-After`. Mantenha a [guia de compatibilidade](/docs/pt/llm-gateway-protocol) como a referência para o que cada lançamento do Claude Code envia.290Ao dimensionar limites de taxa por chave, leve em conta o cliente [tentando novamente falhas transitórias](/docs/pt/errors#automatic-retries), incluindo respostas `429`, até 10 vezes com backoff, honrando `Retry-After`. Mantenha a [guia de compatibilidade](/docs/pt/llm-gateway-protocol) como a referência para o que cada lançamento do Claude Code envia.

291 291 

292<h3 id="plan-claude-code-version-upgrades">

293 Planejar atualizações de versão do Claude Code

294</h3>

295 

296Alguns comportamentos do Claude Code são incorporados à versão instalada em vez de serem definidos no seu gateway, portanto, mover desenvolvedores para um novo lançamento pode alterar o comportamento em toda a sua implantação mesmo quando a configuração do gateway não foi alterada. Para controlar quando isso acontece, fixe os desenvolvedores a uma versão testada com [`requiredMaximumVersion`](/docs/pt/settings-reference#requiredmaximumversion), ou com [`DISABLE_UPDATES`](/docs/pt/setup#disable-auto-updates) se você distribuir Claude Code através do seu próprio canal. Antes de aumentar a fixação, leia a entrada do [changelog](/docs/en/changelog) do novo lançamento e [teste-o contra o gateway](#test-claude-code-against-the-gateway).

297 

298Quando você testa um lançamento, novos cabeçalhos ou campos de solicitação que o gateway rejeita aparecem como os erros `400` descritos em [Mantenha o gateway](#maintain-the-gateway). A tabela abaixo cobre mudanças dependentes de versão que não produzem um erro, com a configuração que mantém cada uma constante entre atualizações.

299 

300| Área | O que pode mudar quando os desenvolvedores atualizam | Configuração que mantém constante |

301| :--------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

302| Padrões de sinalizador de recurso | Sessões que [não buscam sinalizadores de recurso da Anthropic](/docs/pt/env-vars#features-that-need-feature-flag-fetching), como sessões em um provedor de nuvem ou com telemetria desativada, usam os padrões de sinalizador incorporados à versão instalada. Quando um lançamento altera um desses padrões, o comportamento muda para esses desenvolvedores assim que atualizam | A própria fixação de versão, `requiredMaximumVersion` ou `DISABLE_UPDATES` |

303| Suposições de capacidade do modelo | Um ID de modelo que a versão instalada não reconhece, como o alias de gateway `prod-opus`, é executado em suposições padrão para [raciocínio adaptativo](/docs/pt/model-config#adaptive-reasoning-and-fixed-thinking-budgets), o parâmetro de esforço e a [janela de contexto](/docs/pt/model-config#correct-the-window-for-a-gateway-or-custom-model-id) até que uma versão posterior reconheça o ID ou você o mapeie | Rotear IDs de modelo Anthropic no gateway, ou adicionar uma entrada [`modelOverrides`](/docs/pt/model-config#override-model-ids-per-version) que mapeie o ID de modelo Anthropic para seu alias. Em uma conexão de provedor de nuvem, você pode em vez disso [declarar as capacidades de um modelo fixado](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |

304| Modelo padrão e aliases | O modelo que novas sessões iniciam por padrão, e os modelos que aliases como `opus` e `sonnet` resolvem para, são [incorporados em cada versão](/docs/pt/model-config#pin-models-for-third-party-deployments) e podem mudar quando os desenvolvedores atualizam | [`ANTHROPIC_DEFAULT_MODEL`](/docs/pt/model-config#set-a-default-model-for-new-sessions) para o modelo que novas sessões iniciam, e as [variáveis `ANTHROPIC_DEFAULT_*_MODEL`](/docs/pt/model-config#environment-variables), como `ANTHROPIC_DEFAULT_OPUS_MODEL`, para o que cada alias resolve. `ANTHROPIC_DEFAULT_MODEL` requer Claude Code v2.1.236 ou posterior |

305 

292<h2 id="related-resources">306<h2 id="related-resources">

293 Recursos relacionados307 Recursos relacionados

294</h2>308</h2>

managed-mcp.md +26 −12

Details

48 Controle exclusivo com managed-mcp.json48 Controle exclusivo com managed-mcp.json

49</h2>49</h2>

50 50 

51Se você implantar um arquivo `managed-mcp.json`, Claude Code carrega apenas os servidores que esse arquivo define, os servidores que você [fornece através de `managedMcpServers`](#provide-servers-through-managed-settings), além de qualquer servidor em processo que o aplicativo que iniciou a sessão registra, como o servidor próprio da extensão VS Code ou os [conectores que o aplicativo desktop fornece](/docs/pt/mcp#how-connectors-reach-claude-code). Os usuários não podem adicionar, modificar ou usar nenhum outro servidor MCP, incluindo servidores fornecidos por plugins e servidores passados com a [flag CLI `--mcp-config`](/docs/pt/cli-reference#cli-flags). O arquivo também suprime os conectores claude.ai que Claude Code busca por si mesmo, a menos que você [permita-os junto com o conjunto gerenciado](#allow-claude-ai-connectors-alongside-the-managed-set).51Quando você implanta um arquivo `managed-mcp.json`, Claude Code carrega apenas estes servidores MCP:

52 

53* Os servidores que o arquivo define

54* Servidores que você [fornece através de `managedMcpServers`](#provide-servers-through-managed-settings)

55* Servidores em processo que o aplicativo que iniciou a sessão registra, como o servidor próprio da extensão VS Code ou os [conectores que o aplicativo desktop fornece](/docs/pt/mcp#how-connectors-reach-claude-code)

56 

57Os usuários não podem adicionar, modificar ou usar nenhum outro servidor MCP, incluindo servidores fornecidos por plugins e servidores passados com a [flag CLI `--mcp-config`](/docs/pt/cli-reference#cli-flags). O arquivo também suprime os conectores claude.ai que Claude Code busca por si mesmo, a menos que você [permita-os junto com o conjunto gerenciado](#allow-claude-ai-connectors-alongside-the-managed-set).

52 58 

53<h3 id="deploy-managed-mcp-json">59<h3 id="deploy-managed-mcp-json">

54 Implantar managed-mcp.json60 Implantar managed-mcp.json


103 Servidores passados com `--mcp-config` ou `--strict-mcp-config`109 Servidores passados com `--mcp-config` ou `--strict-mcp-config`

104</h3>110</h3>

105 111 

106Quando uma sessão recebe servidores através de `--mcp-config` enquanto `managed-mcp.json` está implantado, o que o usuário vê difere entre uma estação de trabalho e uma sessão na nuvem:112Quando uma sessão recebe servidores através de `--mcp-config` enquanto um `managed-mcp.json` que Claude Code pode ler e analisar está implantado, o que o usuário vê difere entre uma estação de trabalho e uma sessão na nuvem:

107 113 

108* Em uma estação de trabalho, Claude Code sai na inicialização com `You cannot dynamically configure MCP servers when an enterprise MCP config is present`.114* Em uma estação de trabalho, Claude Code sai na inicialização com `You cannot dynamically configure MCP servers when an enterprise MCP config is present`.

109* Em [sessões na nuvem](/docs/pt/claude-code-on-the-web) em um host onde o arquivo está implantado, como um [executor auto-hospedado](/docs/pt/self-hosted-environments-configuration#mcp-servers), Claude Code inicia apenas com os servidores gerenciados e ignora os conectores claude.ai e outros servidores que o host na nuvem fornece através de `--mcp-config`. Nada na sessão informa ao usuário quais servidores foram deixados de fora. Claude Code os nomeia em um aviso em seu stderr, que um executor auto-hospedado registra no nível de log `debug`.115* Em [sessões na nuvem](/docs/pt/claude-code-on-the-web) em um host onde o arquivo está implantado, como um [executor auto-hospedado](/docs/pt/self-hosted-environments-configuration#mcp-servers), Claude Code inicia apenas com os servidores gerenciados e ignora os conectores claude.ai e outros servidores que o host na nuvem fornece através de `--mcp-config`. Nada na sessão informa ao usuário quais servidores foram deixados de fora. Claude Code os nomeia em um aviso em seu stderr, que um executor auto-hospedado registra no nível de log `debug`.

110 116 

111Se um usuário passar `--strict-mcp-config`, Claude Code sai na inicialização em uma estação de trabalho e em uma sessão na nuvem igualmente, porque essa flag pede para substituir o conjunto gerenciado.117O flag `--strict-mcp-config` pede para substituir o conjunto gerenciado. Se um usuário passar enquanto tal arquivo está implantado, Claude Code sai na inicialização em uma estação de trabalho e em uma sessão na nuvem igualmente.

112 118 

113<h3 id="how-allowlists-and-denylists-apply-to-the-managed-set">119<h3 id="how-allowlists-and-denylists-apply-to-the-managed-set">

114 Como listas de permissão e listas de negação se aplicam ao conjunto gerenciado120 Como listas de permissão e listas de negação se aplicam ao conjunto gerenciado


129 135 

130Para confirmar que o arquivo está em vigor, execute duas verificações em uma máquina gerenciada:136Para confirmar que o arquivo está em vigor, execute duas verificações em uma máquina gerenciada:

131 137 

1321. `claude mcp list` mostra apenas os servidores em `managed-mcp.json`, além de qualquer um que você forneça através de `managedMcpServers`. Se os próprios servidores de um usuário ainda aparecerem, o arquivo não está sendo lido; verifique o caminho e as permissões.1381. `claude mcp list` mostra apenas os servidores em `managed-mcp.json`, além de qualquer um que você forneça através de `managedMcpServers`. Dois outros resultados significam que algo está errado:

139 * Se os próprios servidores de um usuário ainda aparecerem, Claude Code não está lendo o arquivo, portanto verifique seu caminho e as permissões nos diretórios pai.

140 * Se os servidores do arquivo não aparecerem e a seção `MCP config diagnostics` marca a configuração empresarial como falha ao analisar, Claude Code não consegue ler ou analisar o arquivo. Corrija o erro que essa seção nomeia e peça ao usuário para reiniciar Claude Code.

1332. `claude mcp add --transport http test https://example.com/mcp` falha com `Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers`. A URL não precisa ser um servidor real, já que a verificação de política rejeita o comando antes de qualquer coisa ser contatada.1412. `claude mcp add --transport http test https://example.com/mcp` falha com `Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers`. A URL não precisa ser um servidor real, já que a verificação de política rejeita o comando antes de qualquer coisa ser contatada.

134 142 

135<h3 id="disable-mcp-entirely">143<h3 id="disable-mcp-entirely">


267 275 

268Para implantar servidores para usuários, use [`managed-mcp.json`](#exclusive-control-with-managed-mcp-json) ou [`managedMcpServers`](#provide-servers-through-managed-settings). Ambas as listas também filtram servidores passados com a flag CLI [`--mcp-config`](/docs/pt/cli-reference#cli-flags), exceto entradas `type: "sdk"` em processo; `--strict-mcp-config` limita quais arquivos de configuração carregam e não contorna nenhuma das duas listas.276Para implantar servidores para usuários, use [`managed-mcp.json`](#exclusive-control-with-managed-mcp-json) ou [`managedMcpServers`](#provide-servers-through-managed-settings). Ambas as listas também filtram servidores passados com a flag CLI [`--mcp-config`](/docs/pt/cli-reference#cli-flags), exceto entradas `type: "sdk"` em processo; `--strict-mcp-config` limita quais arquivos de configuração carregam e não contorna nenhuma das duas listas.

269 277 

270Para tornar a lista de permissão autoritária, defina `allowedMcpServers` e `allowManagedMcpServersOnly: true` juntos em uma [fonte de configurações gerenciadas](/docs/pt/admin-setup#decide-how-settings-reach-devices), como configurações gerenciadas por servidor ou um arquivo `managed-settings.json` implantado. [Restrinja a lista de permissão apenas às configurações gerenciadas](#restrict-the-allowlist-to-managed-settings-only) mostra a configuração. Sem `allowManagedMcpServersOnly`, listas de permissão de todos os escopos de configurações se mesclam, incluindo o próprio `~/.claude/settings.json` do usuário, então um usuário pode ampliar o que sua lista de permissão permite. Listas de bloqueio se mesclam de todos os escopos independentemente.278Para tornar a lista de permissão autoritária, defina `allowedMcpServers` e `allowManagedMcpServersOnly: true` juntos em uma [fonte de configurações gerenciadas](/docs/pt/admin-setup#decide-how-settings-reach-devices), como configurações gerenciadas por servidor ou um arquivo `managed-settings.json` implantado.

279 

280O bloqueio se aplica de todas as fontes gerenciadas controladas por administrador, então um bloqueio em um arquivo implantado ainda se aplica quando configurações gerenciadas por servidor que não mencionam MCP também estão em uso. Enquanto o bloqueio está ativado, a lista de permissão gerenciada vem da fonte de administrador com classificação mais alta que define uma. Ler o bloqueio e a lista de permissão entre fontes requer Claude Code v2.1.273 ou posterior.

281 

282[Restrinja a lista de permissão apenas às configurações gerenciadas](#restrict-the-allowlist-to-managed-settings-only) mostra a configuração.

283 

284Sem `allowManagedMcpServersOnly`, listas de permissão de todos os escopos de configurações se mesclam, incluindo o próprio `~/.claude/settings.json` do usuário, então um usuário pode ampliar o que sua lista de permissão permite. Listas de bloqueio se mesclam de todos os escopos independentemente.

271 285 

272<Note>286<Note>

273 `allowManagedMcpServersOnly` é separado de `allowManagedPermissionRulesOnly`, que bloqueia apenas [regras de permissão](/docs/pt/permissions#managed-settings). Definir esse sinalizador não impõe a lista de permissão MCP.287 `allowManagedMcpServersOnly` é separado de `allowManagedPermissionRulesOnly`, que bloqueia apenas [regras de permissão](/docs/pt/permissions#managed-settings). Definir esse sinalizador não impõe a lista de permissão MCP.


300 314 

301A validação de `serverName` difere entre as duas listas:315A validação de `serverName` difere entre as duas listas:

302 316 

303* Em `deniedMcpServers`, `serverName` aceita qualquer string não vazia, então você pode bloquear [conectores claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai) pelo seu nome de exibição. Por exemplo, `{ "serverName": "claude.ai Slack" }` bloqueia o conector Slack. Prefira uma entrada `serverUrl` quando você precisar que a negação seja robusta a renomeações, ou quando um nome de conector colide e ganha um sufixo ` (N)`.317* Em `deniedMcpServers`, `serverName` aceita qualquer string não vazia sem espaço em branco à esquerda ou à direita, então você pode bloquear [conectores claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai) pelo seu nome de exibição. Por exemplo, `{ "serverName": "claude.ai Slack" }` bloqueia o conector Slack. Prefira uma entrada `serverUrl` quando você precisar que a negação seja robusta a renomeações, ou quando um nome de conector colide e ganha um sufixo ` (N)`.

304* Em `allowedMcpServers`, `serverName` é limitado a letras, números, hífens e sublinhados. Use `serverUrl` para colocar na lista de permissão um conector claude.ai que Claude Code busca a si mesmo; para conectores que um host na nuvem entrega para sessões auto-hospedadas, use as entradas listadas em [O tráfego do conector sai de sua rede](/docs/pt/self-hosted-environments-deploy#connector-traffic-leaves-your-network) em vez disso.318* Em `allowedMcpServers`, `serverName` é limitado a letras, números, hífens e sublinhados. Use `serverUrl` para colocar na lista de permissão um conector claude.ai que Claude Code busca a si mesmo; para conectores que um host na nuvem entrega para sessões auto-hospedadas, use as entradas listadas em [O tráfego do conector sai de sua rede](/docs/pt/self-hosted-environments-deploy#connector-traffic-leaves-your-network) em vez disso.

305 319 

306Para desativar todos os conectores claude.ai que Claude Code busca a si mesmo, veja [`disableClaudeAiConnectors`](/docs/pt/mcp#disable-claude-ai-connectors).320Para desativar todos os conectores claude.ai que Claude Code busca a si mesmo, veja [`disableClaudeAiConnectors`](/docs/pt/mcp#disable-claude-ai-connectors).


311 325 

312Antes de carregar um servidor, incluindo um de `managed-mcp.json`, Claude Code executa os três verificações abaixo em ordem. Ele as executa novamente quando um usuário reconecta um servidor ou ativa um desativado em `/mcp`. Servidores `type: "sdk"` em processo, que o [aplicativo que iniciou a sessão registra](/docs/pt/mcp#how-connectors-reach-claude-code), pulam todos os três.326Antes de carregar um servidor, incluindo um de `managed-mcp.json`, Claude Code executa os três verificações abaixo em ordem. Ele as executa novamente quando um usuário reconecta um servidor ou ativa um desativado em `/mcp`. Servidores `type: "sdk"` em processo, que o [aplicativo que iniciou a sessão registra](/docs/pt/mcp#how-connectors-reach-claude-code), pulam todos os três.

313 327 

3141. **Mescle as listas.** Entradas de lista de permissão e bloqueio de todos os escopos de configurações se combinam em uma lista de permissão e uma lista de bloqueio, com as listas do escopo gerenciado vindo da [fonte ou fontes gerenciadas que Claude Code aplica](/docs/pt/managed-settings#how-claude-code-combines-managed-sources). Quando `allowManagedMcpServersOnly` é `true`, apenas a lista de permissão gerenciada é mantida; a lista de bloqueio sempre se mescla de todos os escopos.3281. **Mescle as listas.** Entradas de lista de permissão e bloqueio de todos os escopos de configurações se combinam em uma lista de permissão e uma lista de bloqueio. Quando `allowManagedMcpServersOnly` é `true`, apenas a lista de permissão gerenciada é mantida; a lista de bloqueio sempre se mescla de todos os escopos. Quando mais de uma fonte gerenciada está presente, [Chaves lidas de todas as fontes de administrador](/docs/pt/managed-settings#keys-read-from-every-admin-source) diz qual delas fornece as listas do escopo gerenciado.

3152. **Verifique a lista de bloqueio.** Um servidor que corresponde a qualquer entrada de lista de bloqueio, por URL, comando ou nome, é bloqueado. Nada substitui uma correspondência de lista de bloqueio.3292. **Verifique a lista de bloqueio.** Um servidor que corresponde a qualquer entrada de lista de bloqueio, por URL, comando ou nome, é bloqueado. Nada substitui uma correspondência de lista de bloqueio.

3163. **Verifique a lista de permissão.** Se `allowedMcpServers` não estiver definido em nenhum lugar, todos os servidores que passaram na lista de bloqueio carregam. Se estiver definido, o que o servidor deve corresponder depende de seu tipo, mostrado na tabela abaixo.3303. **Verifique a lista de permissão.** Se `allowedMcpServers` não estiver definido em nenhum lugar, todos os servidores que passaram na lista de bloqueio carregam. Se estiver definido, o que o servidor deve corresponder depende de seu tipo, mostrado na tabela abaixo.

317 331 


503| O servidor está em uma lista de bloqueio e o usuário executa `claude mcp add` | `Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy` |517| O servidor está em uma lista de bloqueio e o usuário executa `claude mcp add` | `Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy` |

504| O servidor não está na lista de permissões e o usuário executa `claude mcp add` | `Cannot add MCP server "<name>": not allowed by enterprise policy` |518| O servidor não está na lista de permissões e o usuário executa `claude mcp add` | `Cannot add MCP server "<name>": not allowed by enterprise policy` |

505| O usuário executa `claude mcp remove` em um servidor de `managedMcpServers` | `MCP server "<name>" is provided by your organization (managed settings) and cannot be removed locally.` |519| O usuário executa `claude mcp remove` em um servidor de `managedMcpServers` | `MCP server "<name>" is provided by your organization (managed settings) and cannot be removed locally.` |

506| Um servidor configurado anteriormente agora está bloqueado pela política | O servidor desaparece silenciosamente de `/mcp` e `claude mcp list` sem aviso |520| Um servidor configurado anteriormente agora está bloqueado pela política | O servidor desaparece de `/mcp` e `claude mcp list` |

507| Um servidor fica bloqueado enquanto uma sessão está em execução e o usuário seleciona **Reconnect** ou o ativa novamente em `/mcp` | [`MCP server <name> is blocked by enterprise managed policy`](/docs/pt/errors#mcp-server-is-blocked-by-enterprise-managed-policy) |521| Um servidor fica bloqueado enquanto uma sessão está em execução e o usuário seleciona **Reconnect** ou o ativa novamente em `/mcp` | [`MCP server <name> is blocked by enterprise managed policy`](/docs/pt/errors#mcp-server-is-blocked-by-enterprise-managed-policy) |

508 522 

509Quando um servidor desaparece silenciosamente, o usuário não recebe nenhum sinal de que a política é o motivo, portanto, informe aos usuários afetados quais servidores estão bloqueados quando você implementar uma nova restrição.523Quando um servidor desaparece silenciosamente, o usuário não recebe nenhum sinal de que a política é o motivo, portanto, informe aos usuários afetados quais servidores estão bloqueados quando você implementar uma nova restrição.


521Cada arquivo e configuração que esta página aborda, o que controla e como entregá-lo:535Cada arquivo e configuração que esta página aborda, o que controla e como entregá-lo:

522 536 

523| Superfície | O que controla | Onde fica | Como entregar |537| Superfície | O que controla | Onde fica | Como entregar |

524| :--------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |538| :--------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

525| `managed-mcp.json` | Conjunto de servidor fixo, controle exclusivo | Caminho do sistema: `/Library/Application Support/ClaudeCode/`, `/etc/claude-code/`, ou `C:\Program Files\ClaudeCode\` | MDM, GPO, gerenciamento de frota ou qualquer processo com privilégios de administrador. Não pode ser definido através de configurações gerenciadas pelo servidor |539| `managed-mcp.json` | Conjunto de servidor fixo, controle exclusivo | Caminho do sistema: `/Library/Application Support/ClaudeCode/`, `/etc/claude-code/`, ou `C:\Program Files\ClaudeCode\` | MDM, GPO, gerenciamento de frota ou qualquer processo com privilégios de administrador. Não pode ser definido através de configurações gerenciadas pelo servidor |

526| `managedMcpServers` | Servidores remotos fornecidos a cada usuário junto com os seus próprios | Apenas fontes de configurações gerenciadas; a configuração não tem efeito em outro lugar | Uma [fonte de configurações gerenciadas](/docs/pt/admin-setup#decide-how-settings-reach-devices): configurações gerenciadas pelo servidor, uma política de gateway, `managed-settings.json`, perfil MDM ou registro HKLM |540| `managedMcpServers` | Servidores remotos fornecidos a cada usuário junto com os seus próprios | Apenas fontes de configurações gerenciadas; a configuração não tem efeito em outro lugar | Uma [fonte de configurações gerenciadas](/docs/pt/admin-setup#decide-how-settings-reach-devices): configurações gerenciadas pelo servidor, uma política de gateway, `managed-settings.json`, perfil MDM ou registro HKLM |

527| `allowedMcpServers` | Lista de permissão de servidores permitidos | Qualquer [escopo de configurações](/docs/pt/settings#where-settings-live); Claude Code mescla as listas de cada escopo a menos que `allowManagedMcpServersOnly` esteja definido, e toma a lista do escopo gerenciado da [fonte gerenciada que seleciona](/docs/pt/managed-settings#precedence-within-the-managed-tier) ou [compõe](/docs/pt/managed-settings#compose-every-managed-source) | Para aplicação, uma [fonte de configurações gerenciadas](/docs/pt/admin-setup#decide-how-settings-reach-devices): configurações gerenciadas pelo servidor, `managed-settings.json`, perfil MDM ou registro |541| `allowedMcpServers` | Lista de permissão de servidores permitidos | Qualquer [escopo de configurações](/docs/pt/settings#where-settings-live); [Como um servidor é avaliado](#how-a-server-is-evaluated) diz como as listas de vários escopos e fontes gerenciadas se combinam | Para aplicação, uma [fonte de configurações gerenciadas](/docs/pt/admin-setup#decide-how-settings-reach-devices): configurações gerenciadas pelo servidor, `managed-settings.json`, perfil MDM ou registro |

528| `deniedMcpServers` | Lista de bloqueio de servidores bloqueados | Qualquer escopo de configurações; Claude Code mescla as listas de cada escopo e entre fontes gerenciadas conforme [como Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#how-claude-code-combines-managed-sources) descreve | Mesmo que `allowedMcpServers` |542| `deniedMcpServers` | Lista de bloqueio de servidores bloqueados | Qualquer escopo de configurações; [Como um servidor é avaliado](#how-a-server-is-evaluated) diz como as listas de vários escopos e fontes gerenciadas se combinam | Mesmo que `allowedMcpServers` |

529| `allowManagedMcpServersOnly` | Bloqueia a lista de permissão apenas para fontes gerenciadas | Apenas fontes de configurações gerenciadas; a configuração não tem efeito em outro lugar | Mesmo que `allowedMcpServers` |543| `allowManagedMcpServersOnly` | Bloqueia a lista de permissão apenas para fontes gerenciadas | Apenas fontes de configurações gerenciadas; [Chaves lidas de cada fonte de administrador](/docs/pt/managed-settings#keys-read-from-every-admin-source) diz quais fontes gerenciadas podem ativá-la. A configuração não tem efeito em outros escopos | Mesmo que `allowedMcpServers` |

530| `allowAllClaudeAiMcps` | Carrega os conectores claude.ai que Claude Code busca por si mesmo junto com `managed-mcp.json`. [Um `managed-mcp.json` no host que executa uma sessão na nuvem ainda suprime os conectores dessa sessão](#allow-claude-ai-connectors-alongside-the-managed-set) | Apenas fontes de configurações gerenciadas; a configuração não tem efeito em outro lugar | Mesmo que `allowedMcpServers` |544| `allowAllClaudeAiMcps` | Carrega os conectores claude.ai que Claude Code busca por si mesmo junto com `managed-mcp.json`. [Um `managed-mcp.json` no host que executa uma sessão na nuvem ainda suprime os conectores dessa sessão](#allow-claude-ai-connectors-alongside-the-managed-set) | Apenas fontes de configurações gerenciadas; a configuração não tem efeito em outro lugar | Mesmo que `allowedMcpServers` |

531 545 

532<h2 id="related-resources">546<h2 id="related-resources">

Details

60O arquivo nas etapas acima é uma de quatro formas de colocar configurações gerenciadas em uma máquina. Cada mecanismo carrega as mesmas chaves de política que um arquivo `settings.json`, portanto a [referência de configurações](/docs/pt/settings-reference) se aplica a todos eles. Algumas chaves estão vinculadas a fontes particulares, e a linha Scope de cada entrada diz qual:60O arquivo nas etapas acima é uma de quatro formas de colocar configurações gerenciadas em uma máquina. Cada mecanismo carrega as mesmas chaves de política que um arquivo `settings.json`, portanto a [referência de configurações](/docs/pt/settings-reference) se aplica a todos eles. Algumas chaves estão vinculadas a fontes particulares, e a linha Scope de cada entrada diz qual:

61 61 

62* **Controles de entrega**: [`policyHelper`](/docs/pt/settings-reference#policyhelper), [`wslInheritsWindowsSettings`](/docs/pt/settings-reference#wslinheritswindowssettings) e [`managedSourcesBehavior`](/docs/pt/settings-reference#managedsourcesbehavior)62* **Controles de entrega**: [`policyHelper`](/docs/pt/settings-reference#policyhelper), [`wslInheritsWindowsSettings`](/docs/pt/settings-reference#wslinheritswindowssettings) e [`managedSourcesBehavior`](/docs/pt/settings-reference#managedsourcesbehavior)

63* **Chaves de login do gateway**: [`forceLoginGatewayUrl`](/docs/pt/settings-reference#forcelogingatewayurl) e o valor `"gateway"` de [`forceLoginMethod`](/docs/pt/settings-reference#forceloginmethod)63* **Chaves de login do gateway**: [`forceLoginGatewayUrl`](/docs/pt/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](/docs/pt/settings-reference#gatewayinternalnetworks) e o valor `"gateway"` de [`forceLoginMethod`](/docs/pt/settings-reference#forceloginmethod)

64 64 

65Um arquivo de configurações gerenciadas, um perfil MDM ou o console claude.ai aplica uma política a todos que alcança. Para dar a um grupo de desenvolvedores uma política diferente, implante um arquivo ou perfil diferente para esse grupo; o console claude.ai [ainda não pode direcionar um grupo](/docs/pt/server-managed-settings#current-limitations), enquanto um [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway) auto-hospedado entrega configurações gerenciadas por grupo IdP.65Um arquivo de configurações gerenciadas, um perfil MDM ou o console claude.ai aplica uma política a todos que alcança. Para dar a um grupo de desenvolvedores uma política diferente, implante um arquivo ou perfil diferente para esse grupo; o console claude.ai [ainda não pode direcionar um grupo](/docs/pt/server-managed-settings#current-limitations), enquanto um [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway) auto-hospedado entrega configurações gerenciadas por grupo IdP.

66 66 


176 176 

177* `sandbox.network.allowManagedDomainsOnly` e `sandbox.filesystem.allowManagedReadPathsOnly`: um `true` em qualquer fonte de administrador ativa o lock. Enquanto um lock está ativo, Claude Code une a lista de permissões que ele bloqueia, `sandbox.network.allowedDomains` junto com regras de permissão `WebFetch(domain:...)`, ou `sandbox.filesystem.allowRead`, em cada fonte de administrador. Sem o lock, Claude Code trata a lista de permissões como qualquer outra chave, portanto sob `"first-wins"` a lista de permissões de uma fonte de administrador não selecionada é ignorada177* `sandbox.network.allowManagedDomainsOnly` e `sandbox.filesystem.allowManagedReadPathsOnly`: um `true` em qualquer fonte de administrador ativa o lock. Enquanto um lock está ativo, Claude Code une a lista de permissões que ele bloqueia, `sandbox.network.allowedDomains` junto com regras de permissão `WebFetch(domain:...)`, ou `sandbox.filesystem.allowRead`, em cada fonte de administrador. Sem o lock, Claude Code trata a lista de permissões como qualquer outra chave, portanto sob `"first-wins"` a lista de permissões de uma fonte de administrador não selecionada é ignorada

178* `allowAllClaudeAiMcps`178* `allowAllClaudeAiMcps`

179* `allowManagedMcpServersOnly`: um `true` em qualquer fonte de administrador ativa o lock da lista de permissões MCP. Enquanto o lock está ativo, a lista `allowedMcpServers` gerenciada vem da fonte de administrador de classificação mais alta que define uma. Uma lista gerenciada pelo servidor substitui a lista de uma fonte inferior em vez de se combinar com ela.

180 

181 Se nenhuma fonte de administrador define uma lista, cada servidor que passa a lista de negação é carregado, a menos que [configurações pai](#let-an-embedding-host-add-policy) forneçam uma lista.

182 

183 Sem o lock, Claude Code lê `allowedMcpServers` da fonte gerenciada que aplica, portanto sob `"first-wins"` a lista de uma fonte de administrador não selecionada é ignorada. Requer Claude Code v2.1.273 ou posterior

184* `deniedMcpServers` e [`disableClaudeAiConnectors`](/docs/pt/settings-reference#disableclaudeaiconnectors): uma entrada ou um `true` em qualquer fonte de administrador se aplica. Requer Claude Code v2.1.273 ou posterior

179* Os caminhos binários de sandbox `sandbox.bwrapPath` e `sandbox.socatPath`185* Os caminhos binários de sandbox `sandbox.bwrapPath` e `sandbox.socatPath`

180* O binário `ripgrep` de sandbox, [`sandbox.ripgrep`](/docs/pt/settings-reference#sandbox-ripgrep)186* O binário `ripgrep` de sandbox, [`sandbox.ripgrep`](/docs/pt/settings-reference#sandbox-ripgrep)

181* `sandbox.filesystem.disabled` e `sandbox.network.strictAllowlist`187* `sandbox.filesystem.disabled` e `sandbox.network.strictAllowlist`

182* [`useAutoModeDuringPlan`](/docs/pt/settings-reference#useautomodeduringplan) e [`syncClaudeAiSkills`](/docs/pt/settings-reference#syncclaudeaiskills), onde um `false` de qualquer fonte de administrador desativa o comportamento. Um `false` nas configurações de usuário ou local do desenvolvedor também o desativa; cada chave só pode negar188* [`useAutoModeDuringPlan`](/docs/pt/settings-reference#useautomodeduringplan), [`syncClaudeAiSkills`](/docs/pt/settings-reference#syncclaudeaiskills) e [`syncClaudeAiPlugins`](/docs/pt/settings-reference#syncclaudeaiplugins), onde um `false` de qualquer fonte de administrador desativa o comportamento. Um `false` nas configurações de usuário ou local do desenvolvedor também o desativa; cada chave só pode negar

183* [`enableArtifact`](/docs/pt/settings-reference#enableartifact), onde um `false` de qualquer fonte de administrador desativa a [ferramenta Artifact](/docs/pt/artifacts). Um `false` nas configurações de usuário, projeto ou local do desenvolvedor também o desativa, e nenhuma fonte o ativa novamente; consulte [quais valores de nível inferior ainda contam](/docs/pt/settings#exceptions-to-managed-settings-precedence). Requer Claude Code v2.1.242 ou posterior189* [`enableArtifact`](/docs/pt/settings-reference#enableartifact), onde um `false` de qualquer fonte de administrador desativa a [ferramenta Artifact](/docs/pt/artifacts). Um `false` nas configurações de usuário, projeto ou local do desenvolvedor também o desativa, e nenhuma fonte o ativa novamente; consulte [quais valores de nível inferior ainda contam](/docs/pt/settings#exceptions-to-managed-settings-precedence). Requer Claude Code v2.1.242 ou posterior

184* [`maxEffortLevel`](/docs/pt/settings-reference#maxeffortlevel), onde o limite mais baixo em qualquer fonte de administrador se aplica. Se um desenvolvedor define um limite mais baixo em suas próprias configurações ou com `--settings`, Claude Code aplica aquele; nenhuma fonte pode aumentar o limite. Requer Claude Code v2.1.267 ou posterior190* [`maxEffortLevel`](/docs/pt/settings-reference#maxeffortlevel), onde o limite mais baixo em qualquer fonte de administrador se aplica. Se um desenvolvedor define um limite mais baixo em suas próprias configurações ou com `--settings`, Claude Code aplica aquele; nenhuma fonte pode aumentar o limite. Requer Claude Code v2.1.267 ou posterior

185* Um opt-out de trailer de commit em `attribution`, ou no `includeCoAuthoredBy` descontinuado, de qualquer nível191* Um opt-out de trailer de commit em `attribution`, ou no `includeCoAuthoredBy` descontinuado, de qualquer nível

186* [`forceRemoteSettingsRefresh`](/docs/pt/server-managed-settings)192* [`forceRemoteSettingsRefresh`](/docs/pt/server-managed-settings)

187* `env`, mesclado por variável em fontes de administrador: cada variável vem da fonte de prioridade mais alta que a define, portanto fontes inferiores preenchem variáveis que as superiores deixam indefinidas. Algumas variáveis seguem suas próprias regras; [Exceções por chave em fontes gerenciadas](/docs/pt/server-managed-settings#per-key-exceptions-across-managed-sources) nomeia cada uma. Requer Claude Code v2.1.223 ou posterior. Antes de v2.1.223, Claude Code aplicava apenas o bloco `env` inteiro da fonte selecionada193* `env`, mesclado por variável em fontes de administrador: cada variável vem da fonte de prioridade mais alta que a define, portanto fontes inferiores preenchem variáveis que as superiores deixam indefinidas. Algumas variáveis seguem suas próprias regras; [Exceções por chave em fontes gerenciadas](/docs/pt/server-managed-settings#per-key-exceptions-across-managed-sources) nomeia cada uma. Requer Claude Code v2.1.223 ou posterior. Antes de v2.1.223, Claude Code aplicava apenas o bloco `env` inteiro da fonte selecionada

188 194 

189As [chaves de login do gateway](#choose-a-delivery-mechanism), [`forceLoginGatewayUrl`](/docs/pt/settings-reference#forcelogingatewayurl) e o valor `"gateway"` de [`forceLoginMethod`](/docs/pt/settings-reference#forceloginmethod), seguem uma regra separada. Claude Code nunca as lê de configurações gerenciadas pelo servidor, portanto enquanto as configurações gerenciadas pelo servidor são a fonte selecionada, a fonte de administrador de classificação mais alta na máquina que carrega uma chave de política ainda as fornece. Um valor em uma fonte de administrador classificada abaixo daquela, ou no registro HKCU, é ignorado.195As [chaves de login do gateway](#choose-a-delivery-mechanism) seguem uma regra separada. Claude Code nunca as lê de configurações gerenciadas pelo servidor, portanto enquanto as configurações gerenciadas pelo servidor são a fonte selecionada, a fonte de administrador de classificação mais alta na máquina que carrega uma chave de política ainda as fornece. Um valor em uma fonte de administrador classificada abaixo daquela, ou no registro HKCU, é ignorado.

196 

197Quando uma fonte de administrador define `allowManagedMcpServersOnly` ou uma lista `allowedMcpServers` e esse valor não é o que está em vigor, `/status` e `claude doctor` nomeiam essa fonte e chave.

190 198 

191<h3 id="compose-every-managed-source">199<h3 id="compose-every-managed-source">

192 Compor cada fonte gerenciada200 Compor cada fonte gerenciada


244Claude Code também aplica essas verificações a valores fornecidos pelo pai por conta própria:252Claude Code também aplica essas verificações a valores fornecidos pelo pai por conta própria:

245 253 

246* Quando qualquer fonte de administrador define `allowManagedPermissionRulesOnly`, Claude Code descarta [regras de permissão de permissão fornecidas pelo pai](/docs/pt/claude-apps-gateway#restrict-parent-settings) e `additionalDirectories` conforme as lê, mesmo quando uma fonte de prioridade mais alta deixa a chave indefinida. O efeito da chave em suas próprias regras de permissão vem das configurações gerenciadas que Claude Code aplica, ou das configurações pai que você escolheu mesclar254* Quando qualquer fonte de administrador define `allowManagedPermissionRulesOnly`, Claude Code descarta [regras de permissão de permissão fornecidas pelo pai](/docs/pt/claude-apps-gateway#restrict-parent-settings) e `additionalDirectories` conforme as lê, mesmo quando uma fonte de prioridade mais alta deixa a chave indefinida. O efeito da chave em suas próprias regras de permissão vem das configurações gerenciadas que Claude Code aplica, ou das configurações pai que você escolheu mesclar

247* Claude Code aplica o valor `forceLoginOrgUUID` ou `allowedMcpServers` nas configurações gerenciadas que aplica e bloqueia um fornecido pelo pai. Um valor em uma fonte de administrador inferior que Claude Code não aplica nem se aplica nem bloqueia o do pai. A entrada [`managedSourcesBehavior`](/docs/pt/settings-reference#managedsourcesbehavior) diz qual fonte fornece cada chave sob `"merge"`. Antes de v2.1.223, um valor em qualquer fonte de administrador bloqueava o do pai255* Claude Code aplica o valor `forceLoginOrgUUID` ou `allowedMcpServers` nas configurações gerenciadas que aplica e bloqueia um fornecido pelo pai. Fora do lock da lista de permissões MCP, um valor em uma fonte de administrador inferior que Claude Code não aplica nem se aplica nem bloqueia o do pai.

248* Um valor `availableModels` segue a mesma regra que `allowedMcpServers`256 

257 No Claude Code v2.1.273 ou posterior, enquanto `allowManagedMcpServersOnly` está ativo, a lista `allowedMcpServers` da fonte de administrador de classificação mais alta que define uma se aplica e bloqueia a do pai, como uma [chave entre fontes](#keys-read-from-every-admin-source). A lista do pai se aplica apenas quando nenhuma fonte de administrador define uma. A entrada [`managedSourcesBehavior`](/docs/pt/settings-reference#managedsourcesbehavior) diz qual fonte fornece cada chave sob `"merge"`. Antes de v2.1.223, um valor em qualquer fonte de administrador bloqueava o do pai

258* Para `availableModels`, Claude Code aplica o valor nas configurações gerenciadas que aplica e bloqueia uma lista fornecida pelo pai

249 259 

250<h4 id="keep-cowork-folder-access-when-only-managed-rules-apply">260<h4 id="keep-cowork-folder-access-when-only-managed-rules-apply">

251 Manter o acesso à pasta Cowork quando apenas regras gerenciadas se aplicam261 Manter o acesso à pasta Cowork quando apenas regras gerenciadas se aplicam


272 O que um desenvolvedor pode alterar282 O que um desenvolvedor pode alterar

273</h3>283</h3>

274 284 

275Os próprios arquivos de configurações de um desenvolvedor, valores `--settings` e arquivos de projeto nunca substituem um valor gerenciado; as [exceções](/docs/pt/settings#exceptions-to-managed-settings-precedence) apenas deixam um valor inferior mais restritivo contar. Quatro coisas ficam fora dessa regra:285Os próprios arquivos de configurações de um desenvolvedor, valores `--settings` e arquivos de projeto nunca substituem um valor gerenciado; as [exceções](/docs/pt/settings#exceptions-to-managed-settings-precedence) apenas deixam um valor inferior mais restritivo contar. Estes casos ficam fora dessa regra:

276 286 

277* **O modelo para uma sessão**: um `model` gerenciado é um padrão, não um lock. `--model` e `ANTHROPIC_MODEL` ainda escolhem o modelo para essa sessão, portanto implante [`availableModels`](/docs/pt/settings-reference#availablemodels) para restringir a escolha.287* **O modelo para uma sessão**: um `model` gerenciado é um padrão, não um lock. `--model` e `ANTHROPIC_MODEL` ainda escolhem o modelo para essa sessão, portanto implante [`availableModels`](/docs/pt/settings-reference#availablemodels) para restringir a escolha.

278* **Direitos de administrador local**: um desenvolvedor que é um administrador na máquina pode editar a própria fonte gerenciada, é por isso que a ferramenta MDM pode reimplantar o perfil ou arquivo em um cronograma e por que a chave de registro HKLM e o domínio de preferências gerenciadas macOS existem.288* **Direitos de administrador local**: um desenvolvedor que é um administrador na máquina pode editar a própria fonte gerenciada, é por isso que a ferramenta MDM pode reimplantar o perfil ou arquivo em um cronograma e por que a chave de registro HKLM e o domínio de preferências gerenciadas macOS existem.


362| `availableModels` | Aplicado como uma lista de permissões vazia até ser corrigido, portanto apenas o modelo Padrão está disponível; uma entrada não-string é removida e o subconjunto válido é aplicado. |372| `availableModels` | Aplicado como uma lista de permissões vazia até ser corrigido, portanto apenas o modelo Padrão está disponível; uma entrada não-string é removida e o subconjunto válido é aplicado. |

363| `enforceAvailableModels` | Tratado como `true`. |373| `enforceAvailableModels` | Tratado como `true`. |

364| `forceLoginOrgUUID` | Nenhuma organização é permitida fazer login até que o valor seja corrigido. |374| `forceLoginOrgUUID` | Nenhuma organização é permitida fazer login até que o valor seja corrigido. |

375| `gatewayInternalNetworks` | Quando o valor inválido vem da fonte gerenciada mais alta na máquina, `/login` recusa cada novo [gateway de nuvem](/docs/pt/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) login na máquina até que o valor seja corrigido. |

365| `crossSessionInbound` | Tratado como `refuse`, o valor mais restritivo, portanto [mensagens entre sessões](/docs/pt/cross-session-messaging#control-inbound-messages) de entrada são recusadas até que o valor seja corrigido. O desenvolvedor vê [um aviso](/docs/pt/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse). |376| `crossSessionInbound` | Tratado como `refuse`, o valor mais restritivo, portanto [mensagens entre sessões](/docs/pt/cross-session-messaging#control-inbound-messages) de entrada são recusadas até que o valor seja corrigido. O desenvolvedor vê [um aviso](/docs/pt/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse). |

366| `deniedMcpServers` | Uma entrada individual inválida é removida e o subconjunto válido é aplicado. Um valor totalmente inválido é descartado com um aviso, já que negar cada servidor bloquearia servidores que a política nunca nomeou. |377| `deniedMcpServers` | Uma entrada individual inválida é removida e o subconjunto válido é aplicado. Um valor totalmente inválido é descartado com um aviso, já que negar cada servidor bloquearia servidores que a política nunca nomeou. |

367| `sandbox.credentials` | Uma entrada inválida recuperável é degradada para `mode: "deny"` com um aviso; uma irrecuperável é removida; entradas válidas permanecem aplicadas. Consulte [entradas de credencial inválidas](/docs/pt/settings-reference#invalid-credential-entries-in-managed-settings) |378| `sandbox.credentials` | Uma entrada inválida recuperável é degradada para `mode: "deny"` com um aviso; uma irrecuperável é removida; entradas válidas permanecem aplicadas. Consulte [entradas de credencial inválidas](/docs/pt/settings-reference#invalid-credential-entries-in-managed-settings) |


389| [`allowAllClaudeAiMcps`](/docs/pt/settings-reference#allowallclaudeaimcps) | Carregue os conectores claude.ai que Claude Code busca por si mesmo junto com um `managed-mcp.json` implantado em vez de suprimi-los |400| [`allowAllClaudeAiMcps`](/docs/pt/settings-reference#allowallclaudeaimcps) | Carregue os conectores claude.ai que Claude Code busca por si mesmo junto com um `managed-mcp.json` implantado em vez de suprimi-los |

390| [`allowedChannelPlugins`](/docs/pt/settings-reference#allowedchannelplugins) | Lista de permissões de plugins de canal que podem enviar mensagens. Substitui a lista de permissões padrão da Anthropic quando definida. Requer `channelsEnabled: true`. Veja [Restringir quais plugins de canal podem ser executados](/docs/pt/channels#restrict-which-channel-plugins-can-run) |401| [`allowedChannelPlugins`](/docs/pt/settings-reference#allowedchannelplugins) | Lista de permissões de plugins de canal que podem enviar mensagens. Substitui a lista de permissões padrão da Anthropic quando definida. Requer `channelsEnabled: true`. Veja [Restringir quais plugins de canal podem ser executados](/docs/pt/channels#restrict-which-channel-plugins-can-run) |

391| [`allowManagedHooksOnly`](/docs/pt/settings-reference#allowmanagedhooksonly) | Quando `true`, restringe quais hooks são executados; veja [o que é executado sob `allowManagedHooksOnly`](/docs/pt/settings-reference#what-runs-under-allowmanagedhooksonly) para a lista completa de efeitos |402| [`allowManagedHooksOnly`](/docs/pt/settings-reference#allowmanagedhooksonly) | Quando `true`, restringe quais hooks são executados; veja [o que é executado sob `allowManagedHooksOnly`](/docs/pt/settings-reference#what-runs-under-allowmanagedhooksonly) para a lista completa de efeitos |

392| [`allowManagedMcpServersOnly`](/docs/pt/settings-reference#allowmanagedmcpserversonly) | Quando `true`, apenas `allowedMcpServers` das configurações gerenciadas são respeitados. `deniedMcpServers` ainda é mesclado de todas as fontes. Veja [Configuração MCP gerenciada](/docs/pt/managed-mcp) |403| [`allowManagedMcpServersOnly`](/docs/pt/settings-reference#allowmanagedmcpserversonly) | Quando `true`, apenas `allowedMcpServers` das configurações gerenciadas são respeitados. `deniedMcpServers` ainda é mesclado de todas as fontes. Veja [Chaves lidas de todas as fontes de administrador](#keys-read-from-every-admin-source) para quais fontes gerenciadas podem defini-la, e [Configuração MCP gerenciada](/docs/pt/managed-mcp) |

393| [`allowManagedPermissionRulesOnly`](/docs/pt/settings-reference#allowmanagedpermissionrulesonly) | Torna as configurações gerenciadas a única fonte de configurações de regras de permissão. A entrada lista todas as fontes que ignora |404| [`allowManagedPermissionRulesOnly`](/docs/pt/settings-reference#allowmanagedpermissionrulesonly) | Torna as configurações gerenciadas a única fonte de configurações de regras de permissão. A entrada lista todas as fontes que ignora |

394| [`blockedMarketplaces`](/docs/pt/settings-reference#blockedmarketplaces) | Lista de bloqueio de fontes de marketplace. As fontes bloqueadas são verificadas antes do download, portanto nunca tocam o sistema de arquivos. Veja [restrições de marketplace gerenciadas](/docs/pt/plugin-marketplaces#managed-marketplace-restrictions) |405| [`blockedMarketplaces`](/docs/pt/settings-reference#blockedmarketplaces) | Lista de bloqueio de fontes de marketplace. As fontes bloqueadas são verificadas antes do download, portanto nunca tocam o sistema de arquivos. Veja [restrições de marketplace gerenciadas](/docs/pt/plugin-marketplaces#managed-marketplace-restrictions) |

395| [`channelsEnabled`](/docs/pt/settings-reference#channelsenabled) | Permitir [canais](/docs/pt/channels) para a organização. Veja [controles empresariais](/docs/pt/channels#enterprise-controls) para o padrão em cada plano |406| [`channelsEnabled`](/docs/pt/settings-reference#channelsenabled) | Permitir [canais](/docs/pt/channels) para a organização. Veja [controles empresariais](/docs/pt/channels#enterprise-controls) para o padrão em cada plano |

mcp.md +79 −29

Details

151 151 

152 Sem `--`, Claude Code tentaria analisar os sinalizadores do servidor, como `--port` acima, como suas próprias opções.152 Sem `--`, Claude Code tentaria analisar os sinalizadores do servidor, como `--port` acima, como suas próprias opções.

153 153 

154 `--env` aceita múltiplos pares `KEY=value`. Se o nome do servidor vem imediatamente após `--env`, a CLI lê o nome como outro par e o rejeita, portanto coloque pelo menos uma outra opção entre `--env` e o nome do servidor, como nos exemplos acima.154 `--env` aceita múltiplos pares `KEY=value`. Se o nome do servidor vem imediatamente após `--env`, a CLI lê o nome como outro par e o rejeita, portanto coloque pelo menos uma outra opção, como `--transport stdio`, entre `--env` e o nome do servidor.

155</Note>155</Note>

156 156 

157<h3 id="option-4-add-a-remote-websocket-server">157<h3 id="option-4-add-a-remote-websocket-server">


323* **Espaço em branco oculto**: Claude Code avisa quando um valor de configuração MCP carrega espaço em branco oculto à esquerda ou à direita, que frequentemente vem de colar um token com uma quebra de linha à direita. Claude Code verifica `command`, `url`, cada entrada `args`, e os valores e nomes de chave sob `env` e `headers`. Claude Code mostra o aviso na saída de `claude mcp list` e em `/mcp`, nomeando os campos afetados sem ecoar seus valores, por exemplo `Leading or trailing whitespace in: headers.Authorization`. Claude Code não aparenta o espaço em branco e usa os valores exatamente como escritos, portanto edite a configuração para removê-lo.323* **Espaço em branco oculto**: Claude Code avisa quando um valor de configuração MCP carrega espaço em branco oculto à esquerda ou à direita, que frequentemente vem de colar um token com uma quebra de linha à direita. Claude Code verifica `command`, `url`, cada entrada `args`, e os valores e nomes de chave sob `env` e `headers`. Claude Code mostra o aviso na saída de `claude mcp list` e em `/mcp`, nomeando os campos afetados sem ecoar seus valores, por exemplo `Leading or trailing whitespace in: headers.Authorization`. Claude Code não aparenta o espaço em branco e usa os valores exatamente como escritos, portanto edite a configuração para removê-lo.

324* **Mesmo nome em mais de um escopo**: se você definir o mesmo nome de servidor em mais de um [escopo](#mcp-installation-scopes) com endpoints diferentes, Claude Code avisa sobre o conflito na saída de `claude mcp list` e em `/mcp`. Claude Code armazena logins OAuth por endpoint, portanto quando você autentica a definição que carrega em um projeto, você ainda precisa fazer login separadamente em um projeto onde uma definição diferente carrega. Mantenha o endpoint que você quer e remova os outros com `claude mcp remove <name> --scope <scope>`. No aviso, Claude Code cita o endpoint de cada escopo como escrito em sua configuração, com referências [`${VAR}`](#environment-variable-expansion-in-mcp-json) não expandidas, portanto nunca mostra um valor resolvido como uma chave de API.324* **Mesmo nome em mais de um escopo**: se você definir o mesmo nome de servidor em mais de um [escopo](#mcp-installation-scopes) com endpoints diferentes, Claude Code avisa sobre o conflito na saída de `claude mcp list` e em `/mcp`. Claude Code armazena logins OAuth por endpoint, portanto quando você autentica a definição que carrega em um projeto, você ainda precisa fazer login separadamente em um projeto onde uma definição diferente carrega. Mantenha o endpoint que você quer e remova os outros com `claude mcp remove <name> --scope <scope>`. No aviso, Claude Code cita o endpoint de cada escopo como escrito em sua configuração, com referências [`${VAR}`](#environment-variable-expansion-in-mcp-json) não expandidas, portanto nunca mostra um valor resolvido como uma chave de API.

325* **Nomes reservados**: Claude Code reserva os nomes de seus servidores integrados, incluindo `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview`, e `Claude Browser`. Se sua configuração definir um servidor com um nome reservado, Claude Code o pula no tempo de carregamento e mostra um aviso pedindo que você o renomeie. `claude mcp add` rejeita um nome reservado com um erro. `Claude Preview` e `Claude Browser` ambos nomeiam o servidor integrado que o [painel de visualização do aplicativo de desktop Claude Code](/docs/pt/desktop#preview-your-app) usa. Antes da v2.1.205, `Claude Browser` não era reservado, portanto um servidor configurado pelo usuário poderia se registrar sob esse nome.325* **Nomes reservados**: Claude Code reserva os nomes de seus servidores integrados, incluindo `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview`, e `Claude Browser`. Se sua configuração definir um servidor com um nome reservado, Claude Code o pula no tempo de carregamento e mostra um aviso pedindo que você o renomeie. `claude mcp add` rejeita um nome reservado com um erro. `Claude Preview` e `Claude Browser` ambos nomeiam o servidor integrado que o [painel de visualização do aplicativo de desktop Claude Code](/docs/pt/desktop#preview-your-app) usa. Antes da v2.1.205, `Claude Browser` não era reservado, portanto um servidor configurado pelo usuário poderia se registrar sob esse nome.

326* **Variável de ambiente ausente**: se uma referência [`${VAR}`](#environment-variable-expansion-in-mcp-json) na configuração de um servidor nomeia uma variável que não está definida e não tem `:-default`, Claude Code avisa na saída de `claude mcp list` e em `/mcp`, nomeando a variável, e ainda carrega o servidor com o texto `${VAR}` não expandido. Defina a variável ou adicione um fallback `${VAR:-default}`.326* **Variável de ambiente ausente**: se uma referência [`${VAR}`](#environment-variable-expansion-in-mcp-json) na configuração de um servidor nomeia uma variável que não está definida e não tem `:-default`, Claude Code avisa na saída de `claude mcp list` e em `/mcp`, nomeando a variável, e ainda carrega o servidor com o texto `${VAR}` não expandido. Defina a variável ou adicione um fallback `${VAR:-default}`. Em uma URL remota do servidor e `headers`, algumas variáveis de credenciais [leem como vazias](#credential-variables-that-read-as-empty) em vez disso, sem aviso.

327 327 

328<h4 id="tool-availability">328<h4 id="tool-availability">

329 Disponibilidade de ferramentas329 Disponibilidade de ferramentas


355`disabledMcpServers` e `enabledMcpServers` não estão relacionados a [`enabledMcpjsonServers`](/docs/pt/settings-reference#enabledmcpjsonservers) e [`disabledMcpjsonServers`](/docs/pt/settings-reference#disabledmcpjsonservers), que controlam a aprovação de servidores definidos no arquivo `.mcp.json` de um projeto.355`disabledMcpServers` e `enabledMcpServers` não estão relacionados a [`enabledMcpjsonServers`](/docs/pt/settings-reference#enabledmcpjsonservers) e [`disabledMcpjsonServers`](/docs/pt/settings-reference#disabledmcpjsonservers), que controlam a aprovação de servidores definidos no arquivo `.mcp.json` de um projeto.

356 356 

357<h3 id="mcp-client-runtimes">357<h3 id="mcp-client-runtimes">

358 Tempos de execução do cliente MCP358 MCP client runtimes

359</h3>359</h3>

360 360 

361Claude Code se conecta a servidores MCP através de um de dois tempos de execução do cliente. O tempo de execução v1 é construído no MCP TypeScript SDK 1.x. O tempo de execução v2 é o mesmo código no [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), que adiciona revisão de protocolo MCP 2026-07-28. O resto desta página se aplica a ambos os tempos de execução, exceto onde uma seção nomeia o tempo de execução v2.361Claude Code se conecta a servidores MCP através de um de dois tempos de execução do cliente. O tempo de execução v1 é construído no MCP TypeScript SDK 1.x. O tempo de execução v2 é o mesmo código no [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), que adiciona revisão de protocolo MCP 2026-07-28. O resto desta página se aplica a ambos os tempos de execução, exceto onde uma seção nomeia o tempo de execução v2.

362 362 

363No Claude Code v2.1.232 ou posterior, Claude Code usa o tempo de execução v2. Ele escolhe um tempo de execução cada vez que você o inicia e o mantém até você sair. Ele usa v1 quando você o executa:363Claude Code escolhe um tempo de execução cada vez que você o inicia e o mantém até você sair. Em sessões onde ele [busca sinalizadores de recurso](/docs/pt/env-vars#features-that-need-feature-flag-fetching), ele usa o tempo de execução v2 no Claude Code v2.1.232 ou posterior.

364 364 

365* No Amazon Bedrock, Claude Platform no AWS, Agent Platform do Google Cloud, ou Microsoft Foundry, a menos que uma plataforma host que incorpora Claude Code defina [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/pt/env-vars)365Nas sessões onde ele não busca sinalizadores de recurso, Claude Code usa o tempo de execução v2 por padrão no Claude Code v2.1.274 ou posterior:

366* Conectado através de um [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway)366 

367* Com [busca de sinalizador de recurso desativada](/docs/pt/env-vars#features-that-need-feature-flag-fetching)367* Sessões no Amazon Bedrock, Claude Platform no AWS, Agent Platform do Google Cloud, ou Microsoft Foundry, a menos que uma plataforma host que incorpora Claude Code defina [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/pt/env-vars)

368* Sessões conectadas através de um [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway)

369* Sessões onde você desativa telemetria ou busca de sinalizador de recurso, por exemplo com `DISABLE_TELEMETRY`

368 370 

369No v2, Claude Code também:371No v2, Claude Code também:

370 372 

371* Pergunta aos servidores HTTP e conectores claude.ai se eles suportam a revisão mais recente, e a usa com aqueles que fazem. Ele pergunta aos servidores stdio apenas se você definir [`MCP_PROTOCOL_NEGOTIATION`](/docs/pt/env-vars) como `auto`, e se conecta a todos os outros servidores como v1 faz.373* Pergunta aos servidores HTTP se eles suportam a revisão mais recente, e a usa com aqueles que fazem. Ele também pergunta aos servidores conectores claude.ai em sessões onde ele busca sinalizadores de recurso. Para tê-lo perguntar aos servidores stdio, ou aos servidores conectores em cada sessão, defina [`MCP_PROTOCOL_NEGOTIATION`](/docs/pt/env-vars) como `auto`. Ele se conecta a todos os outros servidores como v1 faz.

372* Recebe notificações `list_changed` de servidores na revisão mais recente sobre um [stream que mantém aberto](#notification-streams-on-the-v2-runtime).374* Recebe notificações `list_changed` de servidores na revisão mais recente sobre um [stream que mantém aberto](#notification-streams-on-the-v2-runtime).

373* Não registra um servidor [channel](#push-messages-with-channels) que se conecta na revisão mais recente, porque essa revisão não pode carregar mensagens de canal.375* Não registra um servidor [channel](#push-messages-with-channels) que se conecta na revisão mais recente, porque essa revisão não pode carregar mensagens de canal.

374* Falha em um [login OAuth MCP](#authenticate-with-remote-mcp-servers) cuja resposta de autorização nomeia um emissor inesperado.376* Falha em um [login OAuth MCP](#authenticate-with-remote-mcp-servers) cuja resposta de autorização nomeia um emissor inesperado.

375 377 

376Anthropic pode manter um servidor específico no protocolo anterior, ou fora desse stream, com um sinalizador de recurso que Claude Code busca.378Anthropic pode manter um servidor específico no protocolo anterior, ou fora desse stream, com um sinalizador de recurso que Claude Code busca.

377 379 

378Para escolher o tempo de execução você mesmo, defina [`MCP_SDK_GENERATION`](/docs/pt/env-vars) como `v1` ou `v2`. Para decidir se Claude Code pergunta, defina [`MCP_PROTOCOL_NEGOTIATION`](/docs/pt/env-vars) como `auto` ou `legacy`. Onde Claude Code usa v1 por padrão, fixar `v2` não faz com que ele pergunte, portanto defina `auto` também.380Para escolher o tempo de execução você mesmo, defina [`MCP_SDK_GENERATION`](/docs/pt/env-vars) como `v1` ou `v2`. Para decidir se Claude Code pergunta, defina [`MCP_PROTOCOL_NEGOTIATION`](/docs/pt/env-vars) como `auto` ou `legacy`.

379 381 

380<h3 id="dynamic-tool-updates">382<h3 id="dynamic-tool-updates">

381 Atualizações dinâmicas de ferramentas383 Dynamic tool updates

382</h3>384</h3>

383 385 

384Claude Code suporta notificações MCP `list_changed`, permitindo que servidores MCP atualizem dinamicamente suas ferramentas, prompts e recursos disponíveis sem exigir que você se desconecte e reconecte. Quando um servidor MCP envia uma notificação `list_changed`, Claude Code atualiza automaticamente as capacidades disponíveis desse servidor.386Claude Code suporta notificações MCP `list_changed`, permitindo que servidores MCP atualizem dinamicamente suas ferramentas, prompts e recursos disponíveis sem exigir que você se desconecte e reconecte. Quando um servidor MCP envia uma notificação `list_changed`, Claude Code atualiza automaticamente as capacidades disponíveis desse servidor.


386Se uma solicitação de atualização falhar, Claude Code mantém as ferramentas, prompts e recursos descobertos anteriormente do servidor até que uma atualização posterior tenha sucesso. Antes da v2.1.214, um erro transitório durante a atualização substituía as ferramentas, prompts e recursos do servidor por uma lista vazia.388Se uma solicitação de atualização falhar, Claude Code mantém as ferramentas, prompts e recursos descobertos anteriormente do servidor até que uma atualização posterior tenha sucesso. Antes da v2.1.214, um erro transitório durante a atualização substituía as ferramentas, prompts e recursos do servidor por uma lista vazia.

387 389 

388<h4 id="notification-streams-on-the-v2-runtime">390<h4 id="notification-streams-on-the-v2-runtime">

389 Streams de notificação no tempo de execução v2391 Notification streams on the v2 runtime

390</h4>392</h4>

391 393 

392No [tempo de execução v2](#mcp-client-runtimes), Claude Code recebe notificações `list_changed` de um servidor na revisão de protocolo mais recente sobre um stream que mantém aberto. Quando o stream fecha, Claude Code o reabre, com dois limites:394No [tempo de execução v2](#mcp-client-runtimes), Claude Code recebe notificações `list_changed` de um servidor na revisão de protocolo mais recente sobre um stream que mantém aberto. Quando o stream fecha, Claude Code o reabre, com dois limites:


397Até o stream reabrir, você mantém as ferramentas, prompts e recursos buscados pela última vez do servidor. Para pegar suas mudanças mais cedo, reconecte o servidor de `/mcp`.399Até o stream reabrir, você mantém as ferramentas, prompts e recursos buscados pela última vez do servidor. Para pegar suas mudanças mais cedo, reconecte o servidor de `/mcp`.

398 400 

399<h3 id="automatic-reconnection">401<h3 id="automatic-reconnection">

400 Reconexão automática402 Automatic reconnection

401</h3>403</h3>

402 404 

403Claude Code reconecta um servidor remoto que cai no meio da sessão e tenta novamente a primeira conexão de um servidor HTTP ou SSE após um erro transitório. Os servidores Stdio são processos locais, e Claude Code não os reconecta automaticamente.405Claude Code reconecta um servidor remoto que cai no meio da sessão e tenta novamente a primeira conexão de um servidor HTTP ou SSE após um erro transitório. Os servidores Stdio são processos locais, e Claude Code não os reconecta automaticamente.

404 406 

405<h4 id="mid-session-drops-of-a-remote-server">407<h4 id="mid-session-drops-of-a-remote-server">

406 Quedas no meio da sessão de um servidor remoto408 Mid-session drops of a remote server

407</h4>409</h4>

408 410 

409Claude Code reconecta um servidor remoto caído com backoff exponencial: até cinco tentativas, começando com um atraso de um segundo e dobrando a cada vez. O que você vê depende de como você está executando Claude Code:411Claude Code reconecta um servidor remoto caído com backoff exponencial: até cinco tentativas, começando com um atraso de um segundo e dobrando a cada vez. O que você vê depende de como você está executando Claude Code:


412* **Em execuções [`claude -p`](/docs/pt/headless) e sessões [Agent SDK](/docs/pt/agent-sdk/overview)**: Claude Code reconecta no mesmo cronograma, sem painel `/mcp` para mostrar as tentativas.414* **Em execuções [`claude -p`](/docs/pt/headless) e sessões [Agent SDK](/docs/pt/agent-sdk/overview)**: Claude Code reconecta no mesmo cronograma, sem painel `/mcp` para mostrar as tentativas.

413 415 

414<h4 id="failed-first-connections">416<h4 id="failed-first-connections">

415 Conexões iniciais falhadas417 Failed first connections

416</h4>418</h4>

417 419 

418Quando a primeira conexão de um servidor HTTP ou SSE falha com um erro transitório, como uma resposta 5xx, uma conexão recusada, ou um tempo limite, Claude Code tenta novamente até três vezes. Se a conexão ainda falhar, Claude Code marca o servidor como com falha. Claude Code tenta novamente dessa forma na inicialização e quando um servidor é adicionado no meio da sessão. Isso inclui um servidor que Claude Code adiciona a uma [sessão em nuvem](/docs/pt/claude-code-on-the-web) de sua configuração e um servidor que você adiciona com o [`setMcpServers()`](/docs/pt/agent-sdk/typescript) do Agent SDK.420Quando a primeira conexão de um servidor HTTP ou SSE falha com um erro transitório, como uma resposta 5xx, uma conexão recusada, ou um tempo limite, Claude Code tenta novamente até três vezes. Se a conexão ainda falhar, Claude Code marca o servidor como com falha. Claude Code tenta novamente dessa forma na inicialização e quando um servidor é adicionado no meio da sessão. Isso inclui um servidor que Claude Code adiciona a uma [sessão em nuvem](/docs/pt/claude-code-on-the-web) de sua configuração e um servidor que você adiciona com o [`setMcpServers()`](/docs/pt/agent-sdk/typescript) do Agent SDK.


423* Um erro de autenticação ou não encontrado, porque requer uma mudança de configuração para resolver. Quando um [`headersHelper`](#use-dynamic-headers-for-custom-authentication) é a única fonte do servidor do cabeçalho `Authorization`, Claude Code tenta novamente um erro de autenticação mesmo assim, porque re-executa o helper em cada tentativa e pode pegar uma credencial fresca425* Um erro de autenticação ou não encontrado, porque requer uma mudança de configuração para resolver. Quando um [`headersHelper`](#use-dynamic-headers-for-custom-authentication) é a única fonte do servidor do cabeçalho `Authorization`, Claude Code tenta novamente um erro de autenticação mesmo assim, porque re-executa o helper em cada tentativa e pode pegar uma credencial fresca

424 426 

425<h4 id="failed-discovery-requests">427<h4 id="failed-discovery-requests">

426 Solicitações de descoberta falhadas428 Failed discovery requests

427</h4>429</h4>

428 430 

429Depois que um servidor se conecta, Claude Code o envia solicitações de descoberta de capacidade como `tools/list`, `prompts/list`, e `resources/list`. Claude Code tenta novamente essas solicitações até três vezes com backoff curto após um erro de rede ou servidor transitório. Ele não tenta novamente erros de autenticação, respostas 4xx, ou tempos limite de solicitação.431Depois que um servidor se conecta, Claude Code o envia solicitações de descoberta de capacidade como `tools/list`, `prompts/list`, e `resources/list`. Claude Code tenta novamente essas solicitações até três vezes com backoff curto após um erro de rede ou servidor transitório. Ele não tenta novamente erros de autenticação, respostas 4xx, ou tempos limite de solicitação.

430 432 

431<h4 id="how-claude-learns-that-a-server-failed">433<h4 id="how-claude-learns-that-a-server-failed">

432 Como Claude aprende que um servidor falhou434 How Claude learns that a server failed

433</h4>435</h4>

434 436 

435Se Claude Code diz a Claude sobre um servidor configurado que falhou em se conectar depende de [busca de ferramentas](#scale-with-mcp-tool-search), que está ativada por padrão:437Se Claude Code diz a Claude sobre um servidor configurado que falhou em se conectar depende de [busca de ferramentas](#scale-with-mcp-tool-search), que está ativada por padrão:


438* Em qualquer [configuração sem busca de ferramentas](#configure-tool-search), Claude Code não relata falhas de conexão de servidor com falha a Claude.440* Em qualquer [configuração sem busca de ferramentas](#configure-tool-search), Claude Code não relata falhas de conexão de servidor com falha a Claude.

439 441 

440<h3 id="push-messages-with-channels">442<h3 id="push-messages-with-channels">

441 Enviar mensagens com canais443 Push messages with channels

442</h3>444</h3>

443 445 

444Um servidor MCP também pode enviar mensagens diretamente para sua sessão para que Claude possa reagir a eventos externos como resultados de CI, alertas de monitoramento, ou mensagens de chat. Para ativar isso, seu servidor declara a capacidade `claude/channel` e você o ativa com o sinalizador `--channels` na inicialização. Veja [Canais](/docs/pt/channels) para usar um canal oficialmente suportado, ou [Referência de canais](/docs/pt/channels-reference) para construir o seu próprio.446Um servidor MCP também pode enviar mensagens diretamente para sua sessão para que Claude possa reagir a eventos externos como resultados de CI, alertas de monitoramento, ou mensagens de chat. Para ativar isso, seu servidor declara a capacidade `claude/channel` e você o ativa com o sinalizador `--channels` na inicialização. Veja [Channels](/docs/pt/channels) para usar um canal oficialmente suportado, ou [Channels reference](/docs/pt/channels-reference) para construir o seu próprio.

445 447 

446No [tempo de execução v2](#mcp-client-runtimes), se você definir [`MCP_PROTOCOL_NEGOTIATION`](/docs/pt/env-vars) como `auto` e um servidor de canal negocia revisão de protocolo MCP 2026-07-28, ele não pode entregar mensagens de canal, portanto Claude Code não o registra como um canal. Deixar a variável não definida, ou defini-la como `legacy`, mantém servidores stdio no handshake anterior.448No [tempo de execução v2](#mcp-client-runtimes), se você definir [`MCP_PROTOCOL_NEGOTIATION`](/docs/pt/env-vars) como `auto` e um servidor de canal negocia revisão de protocolo MCP 2026-07-28, ele não pode entregar mensagens de canal, portanto Claude Code não o registra como um canal. Deixar a variável não definida, ou defini-la como `legacy`, mantém servidores stdio no handshake anterior.

447 449 


456 * Os sinalizadores `--transport` e `--header` também aceitam formas curtas `-t` e `-H`458 * Os sinalizadores `--transport` e `--header` também aceitam formas curtas `-t` e `-H`

457 * Configure o tempo limite de inicialização do servidor MCP usando a variável de ambiente `MCP_TIMEOUT` (por exemplo, `MCP_TIMEOUT=10000 claude` define um tempo limite de 10 segundos)459 * Configure o tempo limite de inicialização do servidor MCP usando a variável de ambiente `MCP_TIMEOUT` (por exemplo, `MCP_TIMEOUT=10000 claude` define um tempo limite de 10 segundos)

458 * Defina um tempo limite de execução de ferramenta por servidor adicionando um campo `timeout` em milissegundos à entrada `.mcp.json` desse servidor, por exemplo `"timeout": 600000` para dez minutos. Isso substitui a variável de ambiente `MCP_TOOL_TIMEOUT` apenas para esse servidor460 * Defina um tempo limite de execução de ferramenta por servidor adicionando um campo `timeout` em milissegundos à entrada `.mcp.json` desse servidor, por exemplo `"timeout": 600000` para dez minutos. Isso substitui a variável de ambiente `MCP_TOOL_TIMEOUT` apenas para esse servidor

459 * Claude Code exibe um aviso quando a saída da ferramenta MCP excede 10.000 tokens e limita a saída a 25.000 tokens por padrão. Para aumentar o limite, defina a variável de ambiente `MAX_MCP_OUTPUT_TOKENS` (por exemplo, `MAX_MCP_OUTPUT_TOKENS=50000`); o limite de aviso é fixo. Veja [Limites de saída MCP e avisos](#mcp-output-limits-and-warnings)461 * Claude Code exibe um aviso quando a saída da ferramenta MCP excede 10.000 tokens e limita a saída a 25.000 tokens por padrão. Para aumentar o limite, defina a variável de ambiente `MAX_MCP_OUTPUT_TOKENS` (por exemplo, `MAX_MCP_OUTPUT_TOKENS=50000`); o limite de aviso é fixo. Veja [MCP output limits and warnings](#mcp-output-limits-and-warnings)

460 * Use `/mcp` para autenticar com servidores remotos que requerem autenticação OAuth 2.0462 * Use `/mcp` para autenticar com servidores remotos que requerem autenticação OAuth 2.0

461</Tip>463</Tip>

462 464 


468 470 

469Defina a variável de ambiente [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/pt/env-vars) em milissegundos para alterar a janela de inatividade, ou defina-a como `0` para desabilitar a verificação.471Defina a variável de ambiente [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/pt/env-vars) em milissegundos para alterar a janela de inatividade, ou defina-a como `0` para desabilitar a verificação.

470 472 

471Esses tempos limite limitam quanto tempo uma chamada pode ser executada, nem sempre quanto tempo bloqueia a sessão: uma chamada de conversa principal que é executada por mais de dois minutos se move para uma tarefa em segundo plano primeiro. Veja [Backgrounding automático de chamadas de ferramenta longas](#automatic-backgrounding-of-long-tool-calls).473Esses tempos limite limitam quanto tempo uma chamada pode ser executada, nem sempre quanto tempo bloqueia a sessão: uma chamada de conversa principal que é executada por mais de dois minutos se move para uma tarefa em segundo plano primeiro. Veja [Automatic backgrounding of long tool calls](#automatic-backgrounding-of-long-tool-calls).

472 474 

473<h3 id="automatic-backgrounding-of-long-tool-calls">475<h3 id="automatic-backgrounding-of-long-tool-calls">

474 Backgrounding automático de chamadas de ferramenta longas476 Automatic backgrounding of long tool calls

475</h3>477</h3>

476 478 

477Uma chamada de ferramenta MCP na conversa principal que ainda está em execução após dois minutos se move para uma tarefa em segundo plano em vez de bloquear a sessão. Claude recebe o ID da tarefa imediatamente e continua trabalhando, e o resultado chega como uma notificação de tarefa quando a chamada se resolve. O backgrounding automático requer Claude Code v2.1.212 ou posterior.479Uma chamada de ferramenta MCP na conversa principal que ainda está em execução após dois minutos se move para uma tarefa em segundo plano em vez de bloquear a sessão. Claude recebe o ID da tarefa imediatamente e continua trabalhando, e o resultado chega como uma notificação de tarefa quando a chamada se resolve. O backgrounding automático requer Claude Code v2.1.212 ou posterior.


489Uma chamada aguardando um [diálogo de elicitação](#respond-to-mcp-elicitation-requests) aberto não é colocada em segundo plano enquanto o diálogo está aberto; o servidor está bloqueado em sua entrada, não lento, portanto Claude Code adia a mudança até o diálogo fechar.491Uma chamada aguardando um [diálogo de elicitação](#respond-to-mcp-elicitation-requests) aberto não é colocada em segundo plano enquanto o diálogo está aberto; o servidor está bloqueado em sua entrada, não lento, portanto Claude Code adia a mudança até o diálogo fechar.

490 492 

491<h3 id="plugin-provided-mcp-servers">493<h3 id="plugin-provided-mcp-servers">

492 Servidores MCP fornecidos por plugin494 Plugin-provided MCP servers

493</h3>495</h3>

494 496 

495[Plugins](/docs/pt/plugins) podem agrupar servidores MCP que fornecem ferramentas e integrações quando você ativa o plugin. Os servidores MCP de plugin funcionam de forma idêntica aos servidores configurados pelo usuário.497[Plugins](/docs/pt/plugins) podem agrupar servidores MCP que fornecem ferramentas e integrações quando você ativa o plugin. Os servidores MCP de plugin funcionam de forma idêntica aos servidores configurados pelo usuário.


537 539 

538* **Ciclo de vida automático**: servidores se conectam e desconectam nestes pontos:540* **Ciclo de vida automático**: servidores se conectam e desconectam nestes pontos:

539 * Na inicialização da sessão, Claude Code conecta os servidores para plugins ativados automaticamente. Em `/mcp`, um servidor de plugin remoto (HTTP ou SSE) que você usou antes pode mostrar o status [`cached`](#server-status-detail) em vez disso; Claude Code o conecta quando Claude chama pela primeira vez uma de suas ferramentas541 * Na inicialização da sessão, Claude Code conecta os servidores para plugins ativados automaticamente. Em `/mcp`, um servidor de plugin remoto (HTTP ou SSE) que você usou antes pode mostrar o status [`cached`](#server-status-detail) em vez disso; Claude Code o conecta quando Claude chama pela primeira vez uma de suas ferramentas

540 * Se você ativar ou desativar um plugin durante uma sessão, Claude Code conecta ou desconecta seus servidores MCP quando a mudança se aplica. [Aplicar mudanças de plugin sem reiniciar](/docs/pt/discover-plugins#apply-plugin-changes-without-restarting) descreve quando isso é. Em uma sessão sem um terminal interativo, `/reload-plugins` não conecta ou desconecta servidores MCP de plugin; essas mudanças entram em vigor em sua próxima sessão542 * Se você ativar ou desativar um plugin durante uma sessão, Claude Code conecta ou desconecta seus servidores MCP quando a mudança se aplica. [Apply plugin changes without restarting](/docs/pt/discover-plugins#apply-plugin-changes-without-restarting) descreve quando isso é. Em uma sessão sem um terminal interativo, `/reload-plugins` não conecta ou desconecta servidores MCP de plugin; essas mudanças entram em vigor em sua próxima sessão

541 * Quando você recarrega, Claude Code mantém as conexões ativas de servidores de plugin cuja configuração não mudou, e faz o mesmo quando você [substitui a lista de servidores MCP da sessão](/docs/pt/agent-sdk/typescript#mcpsetserversresult) do Agent SDK sem nomeá-los543 * Quando você recarrega, Claude Code mantém as conexões ativas de servidores de plugin cuja configuração não mudou, e faz o mesmo quando você [substitui a lista de servidores MCP da sessão](/docs/pt/agent-sdk/typescript#mcpsetserversresult) do Agent SDK sem nomeá-los

542 * Quando você [move a sessão com `/cd`](/docs/pt/permissions#move-the-session-to-another-directory) na v2.1.246 ou posterior, Claude Code conecta os servidores de plugins que as configurações do novo diretório ativam e desconecta os servidores de plugins que não estão mais ativados, portanto você não precisa executar `/reload-plugins` após a mudança544 * Quando você [move a sessão com `/cd`](/docs/pt/permissions#move-the-session-to-another-directory) na v2.1.246 ou posterior, Claude Code conecta os servidores de plugins que as configurações do novo diretório ativam e desconecta os servidores de plugins que não estão mais ativados, portanto você não precisa executar `/reload-plugins` após a mudança

543 * Em [sessões web](/docs/pt/claude-code-on-the-web), uma chamada MCP para um servidor de plugin que ainda não está conectado, como logo após uma sessão ociosa acordar, inicia o servidor sob demanda e aguarda sua conexão545 * Em [sessões web](/docs/pt/claude-code-on-the-web), uma chamada MCP para um servidor de plugin que ainda não está conectado, como logo após uma sessão ociosa acordar, inicia o servidor sob demanda e aguarda sua conexão


679 681 

680Claude Code suporta expansão de variáveis de ambiente em arquivos `.mcp.json`, permitindo que equipes compartilhem configurações mantendo flexibilidade para caminhos específicos da máquina e valores sensíveis como chaves de API.682Claude Code suporta expansão de variáveis de ambiente em arquivos `.mcp.json`, permitindo que equipes compartilhem configurações mantendo flexibilidade para caminhos específicos da máquina e valores sensíveis como chaves de API.

681 683 

682**Sintaxe suportada:**684<h4 id="supported-syntax">

685 Sintaxe suportada

686</h4>

683 687 

684* `${VAR}`: expande para o valor da variável de ambiente `VAR`688* `${VAR}`: expande para o valor da variável de ambiente `VAR`

685* `${VAR:-default}`: expande para `VAR` se definida, caso contrário usa `default`689* `${VAR:-default}`: expande para `VAR` se definida, caso contrário usa `default`

686 690 

687**Locais de expansão:**691<h4 id="expansion-locations">

692 Locais de expansão

693</h4>

694 

688As variáveis de ambiente podem ser expandidas em:695As variáveis de ambiente podem ser expandidas em:

689 696 

690* `command`: o caminho do executável do servidor697* `command`: o caminho do executável do servidor


693* `url`: para tipos de servidor HTTP700* `url`: para tipos de servidor HTTP

694* `headers`: para autenticação de servidor HTTP701* `headers`: para autenticação de servidor HTTP

695 702 

696**Exemplo com expansão de variável:**703<h4 id="example-with-variable-expansion">

704 Exemplo com expansão de variável

705</h4>

697 706 

698```json theme={null}707```json theme={null}

699{708{


709}718}

710```719```

711 720 

712Se uma variável de ambiente necessária não estiver definida e não tiver um valor padrão, a configuração ainda é carregada: Claude Code relata um aviso de variável ausente para esse servidor na saída `claude mcp list` e usa o texto `${VAR}` não expandido como está. Defina a variável ou adicione um fallback `:-default` para que o servidor inicie com o valor que você pretende.721<h4 id="unset-variables-without-a-default">

722 Variáveis não definidas sem um padrão

723</h4>

724 

725Se uma variável de ambiente necessária não estiver definida e não tiver um valor padrão, a configuração ainda é carregada: Claude Code relata um aviso de variável ausente para esse servidor na saída `claude mcp list` e usa o texto `${VAR}` não expandido como está. Defina a variável ou adicione um fallback `:-default` para que o servidor inicie com o valor que você pretende. Em uma URL e headers de servidor remoto, algumas variáveis de credencial [leem como vazias](#credential-variables-that-read-as-empty) em vez disso, sem aviso.

726 

727<h4 id="credential-variables-that-read-as-empty">

728 Variáveis de credencial que leem como vazias

729</h4>

730 

731Em uma URL e headers de servidor remoto, Claude Code lê variáveis de credencial do seu ambiente como vazias em vez de expandi-las. Isso impede que a `.mcp.json` de um projeto ou um plugin envie suas credenciais Claude Code ou de provedor de nuvem para um servidor que ele nomeia. Se você escrever `Bearer ${ANTHROPIC_AUTH_TOKEN}`, o servidor recebe `Bearer ` sem credencial e rejeita a solicitação, geralmente com um `401`. Claude Code relata isso como uma conexão falhada.

732 

733Os nomes cobertos são:

734 

735* Credenciais próprias do Claude Code, como `ANTHROPIC_API_KEY` e `ANTHROPIC_AUTH_TOKEN`

736* Credenciais do seu provedor de nuvem, como `AWS_BEARER_TOKEN_BEDROCK`

737* Outras credenciais que seu ambiente carrega, como `HTTPS_PROXY` e `NPM_TOKEN`

738 

739Um nome coberto lê como vazio independentemente de você ter definido a variável, e um fallback `:-default` nele é ignorado. Uma URL base do provedor como `ANTHROPIC_BASE_URL` ainda expande, então `"url": "${ANTHROPIC_BASE_URL}/mcp"` funciona, a menos que o valor da URL em si incorpore uma credencial como um nome de usuário e senha.

740 

741Um nome fora deste conjunto, como `API_KEY`, expande conforme escrito. Para dar ao servidor uma das credenciais cobertas, copie-a para uma variável com um nome de sua escolha e referencie esse nome em vez disso.

742 

743Quando a URL ou headers de um servidor remoto referencia uma variável coberta que você definiu, Claude Code a nomeia em uma linha de log de depuração. Para ler a linha, execute `claude --debug-file /tmp/claude-debug.log` e procure nesse arquivo por `never expanded toward a remote server`.

744 

745<h4 id="how-references-appear-in-/mcp-and-cli-output">

746 Como referências aparecem em `/mcp` e saída de CLI

747</h4>

748 

749Para um servidor no [escopo](#mcp-installation-scopes) local, de projeto ou de usuário, as seguintes superfícies mostram uma referência `${VAR}` por nome em vez de seu valor resolvido:

750 

751* A URL ou linha de comando na visualização de detalhes `/mcp` de um servidor

752* Saída de `claude mcp list` e `claude mcp get`

753 

754A visualização de detalhes `/mcp` mostra referências desta forma em Claude Code v2.1.268 ou posterior.

755 

756Para um servidor que sua organização fornece através da configuração `managedMcpServers`, essas superfícies mostram [apenas o host da URL](/docs/pt/managed-mcp#what-users-can-see-and-change).

757 

758Para verificar o que `claude mcp list`, `claude mcp get` e `/mcp` mostram quando uma conexão falha, veja [Detalhe do status do servidor](#server-status-detail).

713 759 

714<h2 id="practical-examples">760<h2 id="practical-examples">

715 Exemplos práticos761 Exemplos práticos


779 825 

780* Para um servidor no qual você ainda não fez login, qualquer código de status o sinaliza em `/mcp` para que você possa completar o fluxo OAuth.826* Para um servidor no qual você ainda não fez login, qualquer código de status o sinaliza em `/mcp` para que você possa completar o fluxo OAuth.

781* Para um [conector claude.ai](#use-mcp-servers-from-claude-ai), um `401` causado por claude.ai rejeitando seu token de sessão não sinaliza o conector, porque re-autorizar o conector não pode corrigir seu login. Claude Code mostra o [estado de token de sessão rejeitado](/docs/pt/errors#claude-ai-rejected-the-session-token) em vez disso.827* Para um [conector claude.ai](#use-mcp-servers-from-claude-ai), um `401` causado por claude.ai rejeitando seu token de sessão não sinaliza o conector, porque re-autorizar o conector não pode corrigir seu login. Claude Code mostra o [estado de token de sessão rejeitado](/docs/pt/errors#claude-ai-rejected-the-session-token) em vez disso.

782* Para um servidor cujo cabeçalho `Authorization` você configurou, em `headers` ou através de um [`headersHelper`](#use-dynamic-headers-for-custom-authentication), um `401` ou `403` ao conectar não sinaliza o servidor, porque a credencial a corrigir é a que você configurou. Claude Code relata a conexão como falha em vez disso.828* Para um servidor cujo cabeçalho `Authorization` você configurou, em `headers` ou através de um [`headersHelper`](#use-dynamic-headers-for-custom-authentication), um `401` ou `403` ao conectar não sinaliza o servidor, porque a credencial a corrigir é a que você configurou. Claude Code relata a conexão como falha em vez disso. Se você definiu esse cabeçalho a partir de uma referência `${VAR}`, verifique se essa variável é uma que Claude Code [lê como vazia](#credential-variables-that-read-as-empty).

783* Para um conector [entregue a uma sessão em nuvem](#how-connectors-reach-claude-code), 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 em claude.ai. Quando um conector lá precisa ser autorizado novamente, reconecte-o em [claude.ai/customize/connectors](https://claude.ai/customize/connectors) em vez de a partir da sessão.829* Para um conector [entregue a uma sessão em nuvem](#how-connectors-reach-claude-code), 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 em claude.ai. Quando um conector lá precisa ser autorizado novamente, reconecte-o em [claude.ai/customize/connectors](https://claude.ai/customize/connectors) em vez de a partir da sessão.

784 830 

785Quando uma solicitação para um servidor OAuth no qual você já fez login retorna `401 Unauthorized`, Claude Code atualiza o token armazenado, reconecta e tenta a solicitação novamente uma vez. Ele sinaliza o servidor em `/mcp` apenas se essa tentativa também falhar. Antes da v2.1.206, uma atualização de token que falhava por um motivo transitório, como um erro de rede, sinalizava um servidor OAuth como necessitando autenticação pelo resto da sessão, mesmo que seu token de atualização ainda fosse válido.831Quando uma solicitação para um servidor OAuth no qual você já fez login retorna `401 Unauthorized`, Claude Code atualiza o token armazenado, reconecta e tenta a solicitação novamente uma vez. Ele sinaliza o servidor em `/mcp` apenas se essa tentativa também falhar. Antes da v2.1.206, uma atualização de token que falhava por um motivo transitório, como um erro de rede, sinalizava um servidor OAuth como necessitando autenticação pelo resto da sessão, mesmo que seu token de atualização ainda fosse válido.


790 836 

791Claude Code também mostra um aviso de inicialização quando um ou mais servidores configurados precisam de autenticação, para que você não tenha que abrir `/mcp` para descobrir quais servidores precisam de login. O aviso requer Claude Code v2.1.193 ou posterior. Ele conta apenas servidores nos quais você pode fazer login a partir do Claude Code. Antes da v2.1.218, ele também contava [conectores claude.ai](#use-mcp-servers-from-claude-ai) que não estavam conectados em claude.ai, que você pode conectar apenas a partir das configurações de claude.ai.837Claude Code também mostra um aviso de inicialização quando um ou mais servidores configurados precisam de autenticação, para que você não tenha que abrir `/mcp` para descobrir quais servidores precisam de login. O aviso requer Claude Code v2.1.193 ou posterior. Ele conta apenas servidores nos quais você pode fazer login a partir do Claude Code. Antes da v2.1.218, ele também contava [conectores claude.ai](#use-mcp-servers-from-claude-ai) que não estavam conectados em claude.ai, que você pode conectar apenas a partir das configurações de claude.ai.

792 838 

839O aviso anuncia cada servidor uma vez e o deixa de fora da contagem em inicializações posteriores até que esse servidor tenha se conectado e precise de login novamente. `/mcp` ainda lista todos os servidores que precisam de login.

840 

793No modo não interativo não há painel `/mcp`, então Claude Code não pode executar o fluxo OAuth para você. A partir da v2.1.196, quando um servidor configurado precisa de autenticação durante uma execução `claude -p` ou Agent SDK com [busca de ferramentas](#scale-with-mcp-tool-search) ativada, que é o padrão, Claude Code informa ao Claude que as ferramentas do servidor estão indisponíveis até que você o autorize. Claude pode então nomear o servidor que precisa de login em vez de responder como se o servidor não estivesse configurado. Complete o login de uma sessão interativa com `/mcp` ou `claude mcp login <name>`.841No modo não interativo não há painel `/mcp`, então Claude Code não pode executar o fluxo OAuth para você. A partir da v2.1.196, quando um servidor configurado precisa de autenticação durante uma execução `claude -p` ou Agent SDK com [busca de ferramentas](#scale-with-mcp-tool-search) ativada, que é o padrão, Claude Code informa ao Claude que as ferramentas do servidor estão indisponíveis até que você o autorize. Claude pode então nomear o servidor que precisa de login em vez de responder como se o servidor não estivesse configurado. Complete o login de uma sessão interativa com `/mcp` ou `claude mcp login <name>`.

794 842 

795Se você configurou `headers.Authorization` para o servidor e o servidor rejeita esse cabeçalho, Claude Code relata a conexão como falha em vez de voltar para OAuth. Verifique se o token é válido para o endpoint MCP, ou remova o cabeçalho para usar o fluxo OAuth.843Se você configurou `headers.Authorization` para o servidor e o servidor rejeita esse cabeçalho, Claude Code relata a conexão como falha em vez de voltar para OAuth. Verifique se o token é válido para o endpoint MCP, ou remova o cabeçalho para usar o fluxo OAuth.


983 1031 

984Se o servidor de autorização anuncia `offline_access` em `scopes_supported`, Claude Code o acrescenta aos escopos fixados para que o token de acesso possa ser atualizado sem um novo login no navegador.1032Se o servidor de autorização anuncia `offline_access` em `scopes_supported`, Claude Code o acrescenta aos escopos fixados para que o token de acesso possa ser atualizado sem um novo login no navegador.

985 1033 

986Se o servidor depois retorna um 403 `insufficient_scope` para uma chamada de ferramenta, Claude Code se autentica novamente com os mesmos escopos fixados. Amplie `oauth.scopes` quando uma ferramenta que você precisa requer um escopo fora do conjunto fixado.1034Se o servidor depois retorna um 403 `insufficient_scope` para uma chamada de ferramenta, a chamada falha com uma mensagem [`precisa de permissões adicionais`](/docs/pt/errors#mcp-server-needs-you-to-sign-in-again) que nomeia o escopo que o servidor solicita. O servidor aparece como necessitando autenticação em `/mcp`.

1035 

1036Se esse escopo não estiver em seu `oauth.scopes` fixado, adicione-o, depois execute `/mcp` e autentique o servidor novamente. Claude Code solicita os escopos fixados em vez do escopo que o servidor nomeou, então se você se autenticar novamente sem adicioná-lo, o token que você obtém ainda não o possui.

987 1037 

988<h3 id="use-dynamic-headers-for-custom-authentication">1038<h3 id="use-dynamic-headers-for-custom-authentication">

989 Usar cabeçalhos dinâmicos para autenticação personalizada1039 Usar cabeçalhos dinâmicos para autenticação personalizada

Details

116 `claude mcp add` funciona da mesma forma em cada shell, incluindo PowerShell e Command Prompt. Dentro de uma sessão `claude`, use o comando `/mcp` para verificar e gerenciar servidores que você já adicionou.116 `claude mcp add` funciona da mesma forma em cada shell, incluindo PowerShell e Command Prompt. Dentro de uma sessão `claude`, use o comando `/mcp` para verificar e gerenciar servidores que você já adicionou.

117</Note>117</Note>

118 118 

119Existem outras formas de adicionar um servidor, cada uma coberta posteriormente nesta página:119Existem outras formas de adicionar um servidor, cada uma com sua própria seção:

120 120 

121* [Adicionar um servidor local](#add-a-local-server): execute um programa em sua máquina em vez de conectar a uma URL.121* [Adicionar um servidor local](#add-a-local-server): execute um programa em sua máquina em vez de conectar a uma URL.

122* [Editar `.mcp.json` diretamente](#edit-mcp-json-directly): escreva a entrada JSON você mesmo em vez de usar o comando.122* [Editar `.mcp.json` diretamente](#edit-mcp-json-directly): escreva a entrada JSON você mesmo em vez de usar o comando.


308* **Aplicativo desktop Claude Code**: adicione servidores através da [UI de Conectores](/docs/pt/desktop#connect-external-tools).308* **Aplicativo desktop Claude Code**: adicione servidores através da [UI de Conectores](/docs/pt/desktop#connect-external-tools).

309* **Aplicativo de chat Claude Desktop**: um aplicativo separado do Claude Code. Para copiar servidores de seu `claude_desktop_config.json` para a CLI, execute `claude mcp add-from-claude-desktop` no macOS ou WSL.309* **Aplicativo de chat Claude Desktop**: um aplicativo separado do Claude Code. Para copiar servidores de seu `claude_desktop_config.json` para a CLI, execute `claude mcp add-from-claude-desktop` no macOS ou WSL.

310* **VS Code**: consulte [Conectar a ferramentas externas com MCP](/docs/pt/vs-code#connect-to-external-tools-with-mcp).310* **VS Code**: consulte [Conectar a ferramentas externas com MCP](/docs/pt/vs-code#connect-to-external-tools-with-mcp).

311* **Claude Code na web**: lê `.mcp.json` do seu repositório. Consulte [Editar .mcp.json diretamente](#edit-mcp-json-directly).311* **Sessões na nuvem**: faça commit de um `.mcp.json` no seu repositório; uma sessão com um repositório o carrega. Consulte [Editar .mcp.json diretamente](#edit-mcp-json-directly) e [O que é transferido de sua configuração](/docs/pt/cloud-environments#what-carries-over-from-your-setup).

312* **Claude.ai**: conectores que você adiciona em [claude.ai/customize/connectors](https://claude.ai/customize/connectors) são carregados automaticamente na CLI quando você faz login com essa conta. Consulte [Usar servidores MCP do Claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai).312* **Claude.ai**: conectores que você adiciona em [claude.ai/customize/connectors](https://claude.ai/customize/connectors) são carregados automaticamente na CLI quando você faz login com essa conta. Consulte [Usar servidores MCP do Claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai).

313 313 

314<h2 id="troubleshooting">314<h2 id="troubleshooting">

memory.md +226 −95

Details

4 4 

5# Como Claude se lembra do seu projeto5# Como Claude se lembra do seu projeto

6 6 

7> Dê a Claude instruções persistentes com arquivos CLAUDE.md e deixe Claude acumular aprendizados automaticamente com memória automática.7> Dê a Claude instruções persistentes com arquivos CLAUDE.md ou AGENTS.md, e deixe Claude acumular aprendizados automaticamente com memória automática.

8 8 

9Cada sessão do Claude Code começa com uma janela de contexto limpa. Dois mecanismos carregam conhecimento entre sessões:9Cada sessão do Claude Code começa com uma janela de contexto limpa. Dois mecanismos carregam conhecimento entre sessões:

10 10 

11* **Arquivos CLAUDE.md**: instruções que você escreve para dar a Claude contexto persistente11* **Arquivos CLAUDE.md**: instruções que você escreve para dar a Claude contexto persistente. Claude também pode ler arquivos [`AGENTS.md`](#agents-md) de um repositório, por conta própria ou ao lado de CLAUDE.md

12* **Memória automática**: notas que Claude escreve para si mesma com base em suas correções e preferências12* **Memória automática**: notas que Claude escreve para si mesma com base em suas correções e preferências

13 13 

14Esta página cobre como:14Esta página cobre como:

15 15 

16* [Escrever e organizar arquivos CLAUDE.md](#claude-md-files)16* [Escrever e organizar arquivos CLAUDE.md](#claude-md-files)

17* [Usar um AGENTS.md existente](#agents-md) como suas instruções de projeto, por conta própria ou ao lado de CLAUDE.md

17* [Escopear regras para tipos de arquivo específicos](#organize-rules-with-claude/rules/) com `.claude/rules/`18* [Escopear regras para tipos de arquivo específicos](#organize-rules-with-claude/rules/) com `.claude/rules/`

18* [Configurar memória automática](#auto-memory) para que Claude tome notas automaticamente19* [Configurar memória automática](#auto-memory) para que Claude tome notas automaticamente

19* [Solucionar problemas](#troubleshoot-memory-issues) quando as instruções não estão sendo seguidas20* [Solucionar problemas](#troubleshoot-memory-issues) quando as instruções não estão sendo seguidas


40 Arquivos CLAUDE.md41 Arquivos CLAUDE.md

41</h2>42</h2>

42 43 

43Arquivos CLAUDE.md são arquivos markdown que dão a Claude instruções persistentes para um projeto, seu fluxo de trabalho pessoal ou toda a sua organização. Você escreve esses arquivos em texto simples; Claude os lê no início de cada sessão.44Os arquivos CLAUDE.md são arquivos markdown que fornecem instruções persistentes ao Claude para um projeto, seu fluxo de trabalho pessoal ou toda a sua organização. Você escreve esses arquivos em texto simples; Claude os lê no início de cada sessão. Se seu repositório usa `AGENTS.md` em vez disso, consulte [AGENTS.md](#agents-md).

44 45 

45<h3 id="when-to-add-to-claude-md">46<h3 id="when-to-add-to-claude-md">

46 Quando adicionar a CLAUDE.md47 Quando adicionar ao CLAUDE.md

47</h3>48</h3>

48 49 

49Trate CLAUDE.md como o lugar onde você escreve o que teria que re-explicar. Adicione a ele quando:50Trate CLAUDE.md como o lugar onde você escreve o que de outra forma teria que re-explicar. Adicione a ele quando:

50 51 

51* Claude comete o mesmo erro uma segunda vez52* Claude comete o mesmo erro uma segunda vez

52* Uma revisão de código encontra algo que Claude deveria saber sobre esta base de código53* Uma revisão de código detecta algo que Claude deveria saber sobre este codebase

53* Você digita a mesma correção ou esclarecimento no chat que digitou na sessão anterior54* Você digita a mesma correção ou esclarecimento no chat que digitou na sessão anterior

54* Um novo colega de equipe precisaria do mesmo contexto para ser produtivo55* Um novo colega de equipe precisaria do mesmo contexto para ser produtivo

55 56 

56Mantenha-o com fatos que Claude deve manter em cada sessão: comandos de compilação, convenções, layout do projeto, regras "sempre faça X". Se uma entrada é um procedimento de múltiplas etapas ou só importa para uma parte da base de código, mova-a para uma [skill](/docs/pt/skills) ou uma [regra com escopo de caminho](#organize-rules-with-claude/rules/) em vez disso. A [visão geral da extensão](/docs/pt/features-overview#build-your-setup-over-time) cobre quando usar cada mecanismo.57Mantenha-o com fatos que Claude deve manter em cada sessão: comandos de compilação, convenções, layout do projeto, regras "sempre faça X". Se uma entrada é um procedimento de várias etapas ou importa apenas para uma parte do codebase, mova-a para uma [skill](/docs/pt/skills) ou uma [regra com escopo de caminho](#organize-rules-with-claude/rules/) em vez disso. A [visão geral da extensão](/docs/pt/features-overview#build-your-setup-over-time) cobre quando usar cada mecanismo.

57 58 

58<h3 id="choose-where-to-put-claude-md-files">59<h3 id="choose-where-to-put-claude-md-files">

59 Escolha onde colocar arquivos CLAUDE.md60 Escolha onde colocar os arquivos CLAUDE.md

60</h3>61</h3>

61 62 

62Arquivos CLAUDE.md podem estar em vários locais, cada um com um escopo diferente. A tabela abaixo lista-os em ordem de carregamento, do escopo mais amplo para o mais específico, então uma instrução de projeto aparece em contexto após uma instrução de usuário.63Os arquivos CLAUDE.md podem estar em vários locais, cada um com um escopo diferente. A tabela abaixo lista-os em ordem de carregamento, do escopo mais amplo para o mais específico, para que uma instrução de projeto apareça em contexto após uma instrução do usuário.

63 64 

64| Escopo | Localização | Propósito | Exemplos de caso de uso | Compartilhado com |65| Escopo | Localização | Propósito | Exemplos de caso de uso | Compartilhado com |

65| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ---------------------------------------- |66| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ---------------------------------------- |

66| **Política gerenciada** | • macOS: `/Library/Application Support/ClaudeCode/CLAUDE.md`<br />• Linux e WSL: `/etc/claude-code/CLAUDE.md`<br />• Windows: `C:\Program Files\ClaudeCode\CLAUDE.md` | Instruções em toda a organização gerenciadas por TI/DevOps | Padrões de codificação da empresa, políticas de segurança, requisitos de conformidade | Todos os usuários da organização |67| **Política gerenciada** | • macOS: `/Library/Application Support/ClaudeCode/CLAUDE.md`<br />• Linux e WSL: `/etc/claude-code/CLAUDE.md`<br />• Windows: `C:\Program Files\ClaudeCode\CLAUDE.md` | Instruções em toda a organização gerenciadas por TI/DevOps | Padrões de codificação da empresa, políticas de segurança, requisitos de conformidade | Todos os usuários da organização |

67| **Instruções do usuário** | `~/.claude/CLAUDE.md` | Preferências pessoais para todos os projetos | Preferências de estilo de código, atalhos de ferramentas pessoais | Apenas você (todos os projetos) |68| **Instruções do usuário** | `~/.claude/CLAUDE.md` | Preferências pessoais para todos os projetos | Preferências de estilo de código, atalhos de ferramentas pessoais | Apenas você (todos os projetos) |

68| **Instruções do projeto** | `./CLAUDE.md` ou `./.claude/CLAUDE.md` | Instruções compartilhadas pela equipe para o projeto | Arquitetura do projeto, padrões de codificação, fluxos de trabalho comuns | Membros da equipe via controle de versão |69| **Instruções do projeto** | `./CLAUDE.md` ou `./.claude/CLAUDE.md`. Consulte [AGENTS.md](#agents-md) para quando `./AGENTS.md` carrega em vez de ou junto com eles | Instruções compartilhadas pela equipe para o projeto | Arquitetura do projeto, padrões de codificação, fluxos de trabalho comuns | Membros da equipe via controle de versão |

69| **Instruções locais** | `./CLAUDE.local.md` | Preferências pessoais específicas do projeto; adicione a `.gitignore` | Suas URLs de sandbox, dados de teste preferidos | Apenas você (projeto atual) |70| **Instruções locais** | `./CLAUDE.local.md` | Preferências pessoais específicas do projeto; adicione a `.gitignore` | Suas URLs de sandbox, dados de teste preferidos | Apenas você (projeto atual) |

70 71 

71Arquivos CLAUDE.md e CLAUDE.local.md no diretório acima do diretório de trabalho são carregados no lançamento. Arquivos em subdiretórios são carregados sob demanda quando Claude lê arquivos nesses diretórios. Veja [Como arquivos CLAUDE.md são carregados](#how-claude-md-files-load) para a ordem de resolução completa.72Os arquivos CLAUDE.md e CLAUDE.local.md no diretório acima do diretório de trabalho são carregados na inicialização. Os arquivos em subdiretórios carregam sob demanda quando Claude lê arquivos nesses diretórios. Consulte [Como os arquivos CLAUDE.md carregam](#how-claude-md-files-load) para a ordem de resolução completa.

72 73 

73Para projetos grandes, você pode dividir instruções em arquivos específicos de tópicos usando [regras de projeto](#organize-rules-with-claude/rules/). As regras permitem que você escope instruções para tipos de arquivo específicos ou subdiretórios.74Para projetos grandes, você pode dividir instruções em arquivos específicos de tópicos usando [regras de projeto](#organize-rules-with-claude/rules/). As regras permitem que você escope instruções para tipos de arquivo específicos ou subdiretórios.

74 75 


76 Configure um CLAUDE.md de projeto77 Configure um CLAUDE.md de projeto

77</h3>78</h3>

78 79 

79Um CLAUDE.md de projeto pode ser armazenado em `./CLAUDE.md` ou `./.claude/CLAUDE.md`. Crie este arquivo e adicione instruções que se apliquem a qualquer pessoa trabalhando no projeto: comandos de compilação e teste, padrões de codificação, decisões arquitetônicas, convenções de nomenclatura e fluxos de trabalho comuns. Essas instruções são compartilhadas com sua equipe através do controle de versão, então foque em padrões de nível de projeto em vez de preferências pessoais. Para confirmar que o arquivo foi carregado, execute `/context` em uma sessão e verifique a lista em **Memory files**.80Um CLAUDE.md de projeto pode ser armazenado em `./CLAUDE.md` ou `./.claude/CLAUDE.md`. Crie este arquivo e adicione instruções que se apliquem a qualquer pessoa trabalhando no projeto: comandos de compilação e teste, padrões de codificação, decisões arquitetônicas, convenções de nomenclatura e fluxos de trabalho comuns. Essas instruções são compartilhadas com sua equipe através do controle de versão, portanto, concentre-se em padrões em nível de projeto em vez de preferências pessoais. Para confirmar que o arquivo foi carregado, execute `/context` em uma sessão e verifique a lista em **Memory files**.

80 81 

81<Tip>82<Tip>

82 Execute `/init` para gerar um CLAUDE.md inicial automaticamente. Claude analisa sua base de código e cria um arquivo com comandos de compilação, instruções de teste e convenções de projeto que descobre. Se um CLAUDE.md já existe, `/init` sugere melhorias em vez de sobrescrever. Refine a partir daí com instruções que Claude não descobriria por conta própria.83 Execute `/init` para gerar um CLAUDE.md inicial automaticamente. Claude analisa seu codebase e cria um arquivo com comandos de compilação, instruções de teste e convenções de projeto que descobre. Se um CLAUDE.md já existe, `/init` sugere melhorias em vez de sobrescrever. Refine a partir daí com instruções que Claude não descobriria por conta própria.

83 84 

84 Defina `CLAUDE_CODE_NEW_INIT=1` para ativar um fluxo interativo de múltiplas fases. `/init` pergunta quais artefatos configurar: arquivos CLAUDE.md, skills e hooks. Em seguida, explora sua base de código com um subagent, preenche lacunas por meio de perguntas de acompanhamento e apresenta uma proposta revisável antes de escrever qualquer arquivo.85 Defina `CLAUDE_CODE_NEW_INIT=1` para ativar um fluxo interativo de várias fases. `/init` pergunta quais artefatos configurar: arquivos CLAUDE.md, skills e hooks. Em seguida, explora seu codebase com um subagente, preenche lacunas por meio de perguntas de acompanhamento e apresenta uma proposta revisável antes de escrever qualquer arquivo.

85</Tip>86</Tip>

86 87 

87<h3 id="write-effective-instructions">88<h3 id="write-effective-instructions">

88 Escreva instruções eficazes89 Escreva instruções eficazes

89</h3>90</h3>

90 91 

91Arquivos CLAUDE.md são carregados na janela de contexto no início de cada sessão, consumindo tokens junto com sua conversa. A [visualização da janela de contexto](/docs/pt/context-window) mostra onde CLAUDE.md é carregado em relação ao resto do contexto de inicialização. Como são contexto em vez de configuração imposta, como você escreve as instruções afeta o quão confiável Claude as segue. Instruções específicas, concisas e bem estruturadas funcionam melhor.92Os arquivos CLAUDE.md são carregados na janela de contexto no início de cada sessão, consumindo tokens junto com sua conversa. A [visualização da janela de contexto](/docs/pt/context-window) mostra onde CLAUDE.md carrega em relação ao resto do contexto de inicialização. Como são contexto em vez de configuração imposta, como você escreve as instruções afeta o quão confiável Claude as segue. Instruções específicas, concisas e bem estruturadas funcionam melhor.

92 93 

93**Tamanho**: alvo de menos de 200 linhas por arquivo CLAUDE.md. Arquivos mais longos consomem mais contexto e reduzem a aderência. Se suas instruções estão crescendo muito, use [regras com escopo de caminho](#path-specific-rules) para que as instruções sejam carregadas apenas quando Claude trabalha com arquivos correspondentes. Você também pode dividir conteúdo em [importações](#import-additional-files) para organização, embora arquivos importados ainda sejam carregados e entrem na janela de contexto no lançamento.94**Tamanho**: alvo de menos de 200 linhas por arquivo CLAUDE.md. Arquivos mais longos consomem mais contexto e reduzem a adesão. Se suas instruções estão crescendo muito, use [regras com escopo de caminho](#path-specific-rules) para que as instruções carreguem apenas quando Claude trabalha com arquivos correspondentes. Você também pode dividir o conteúdo em [importações](#import-additional-files) para organização, embora os arquivos importados ainda carreguem e entrem na janela de contexto na inicialização.

94 95 

95**Estrutura**: use cabeçalhos markdown e bullets para agrupar instruções relacionadas. Claude escaneia a estrutura da mesma forma que os leitores fazem: seções organizadas são mais fáceis de seguir do que parágrafos densos.96**Estrutura**: use cabeçalhos markdown e bullets para agrupar instruções relacionadas. Claude verifica a estrutura da mesma forma que os leitores fazem: seções organizadas são mais fáceis de seguir do que parágrafos densos.

96 97 

97**Especificidade**: escreva instruções que sejam concretas o suficiente para verificar. Por exemplo:98**Especificidade**: escreva instruções que sejam concretas o suficiente para verificar. Por exemplo:

98 99 

99* "Use indentação de 2 espaços" em vez de "Formate o código adequadamente"100* "Use indentação de 2 espaços" em vez de "Formate o código adequadamente"

100* "Execute `npm test` antes de fazer commit" em vez de "Teste suas alterações"101* "Execute `npm test` antes de fazer commit" em vez de "Teste suas alterações"

101* "Manipuladores de API vivem em `src/api/handlers/`" em vez de "Mantenha os arquivos organizados"102* "Os manipuladores de API vivem em `src/api/handlers/`" em vez de "Mantenha os arquivos organizados"

102 103 

103**Consistência**: se duas regras se contradizem, Claude pode escolher uma arbitrariamente. Revise seus arquivos CLAUDE.md, arquivos CLAUDE.md aninhados em subdiretórios e [`.claude/rules/`](#organize-rules-with-claude/rules/) periodicamente para remover instruções desatualizadas ou conflitantes. Em monorepos, use [`claudeMdExcludes`](#exclude-specific-claude-md-files) para pular arquivos CLAUDE.md de outras equipes que não são relevantes para seu trabalho.104**Consistência**: se duas regras se contradizem, Claude pode escolher uma arbitrariamente. Revise seus arquivos CLAUDE.md, arquivos CLAUDE.md aninhados em subdiretórios e [`.claude/rules/`](#organize-rules-with-claude/rules/) periodicamente para remover instruções desatualizadas ou conflitantes. Em monorepos, use [`claudeMdExcludes`](#exclude-specific-claude-md-files) para pular arquivos CLAUDE.md de outras equipes que não são relevantes para seu trabalho.

104 105 


106 Importe arquivos adicionais107 Importe arquivos adicionais

107</h3>108</h3>

108 109 

109Arquivos CLAUDE.md podem importar arquivos adicionais usando a sintaxe `@path/to/import`. Arquivos importados são expandidos e carregados em contexto no lançamento junto com o CLAUDE.md que os referencia.110Os arquivos CLAUDE.md podem importar arquivos adicionais usando a sintaxe `@path/to/import`. Os arquivos importados são expandidos e carregados em contexto na inicialização junto com o CLAUDE.md que os referencia.

110 111 

111Caminhos relativos e absolutos são permitidos. Caminhos relativos são resolvidos em relação ao arquivo contendo a importação, não ao diretório de trabalho. Arquivos importados podem importar recursivamente outros arquivos, com uma profundidade máxima de quatro saltos.112Caminhos relativos e absolutos são permitidos. Caminhos relativos são resolvidos em relação ao arquivo que contém a importação, não ao diretório de trabalho. Os arquivos importados podem importar recursivamente outros arquivos, com uma profundidade máxima de quatro saltos.

112 113 

113A análise de importação ignora spans de código Markdown e blocos de código cercados. Para mencionar um caminho em seu CLAUDE.md sem importá-lo, envolva-o em backticks: escrever `` `@README` `` mantém o texto literal, enquanto `@README` fora de backticks importa o arquivo.114A análise de importação ignora spans de código Markdown e blocos de código cercados. Para mencionar um caminho em seu CLAUDE.md sem importá-lo, envolva-o em backticks: escrever `` `@README` `` mantém o texto literal, enquanto `@README` fora de backticks importa o arquivo.

114 115 

115Para trazer um README, package.json e um guia de fluxo de trabalho, referencie-os com a sintaxe `@` em qualquer lugar do seu CLAUDE.md:116Para trazer um README, package.json e um guia de fluxo de trabalho, referencie-os com a sintaxe `@` em qualquer lugar em seu CLAUDE.md:

116 117 

117```text theme={null}118```text theme={null}

118Veja @README para visão geral do projeto e @package.json para comandos npm disponíveis para este projeto.119Consulte @README para visão geral do projeto e @package.json para comandos npm disponíveis para este projeto.

119 120 

120# Instruções Adicionais121# Instruções Adicionais

121- fluxo de trabalho git @docs/git-instructions.md122- fluxo de trabalho git @docs/git-instructions.md

122```123```

123 124 

124Para preferências pessoais por projeto que não devem ser verificadas no controle de versão, crie um `CLAUDE.local.md` na raiz do projeto. Ele é carregado junto com `CLAUDE.md` e é tratado da mesma forma. Adicione `CLAUDE.local.md` ao seu `.gitignore` para que não seja confirmado. Com `CLAUDE_CODE_NEW_INIT=1` definido, executar `/init` e escolher a opção pessoal faz isso para você.125Para preferências pessoais por projeto que não devem ser verificadas no controle de versão, crie um `CLAUDE.local.md` na raiz do projeto. Ele carrega junto com `CLAUDE.md` e é tratado da mesma forma. Adicione `CLAUDE.local.md` ao seu `.gitignore` para que não seja confirmado. Com `CLAUDE_CODE_NEW_INIT=1` definido, executar `/init` e escolher a opção pessoal faz isso para você.

125 126 

126Se você trabalha em múltiplos git worktrees do mesmo repositório, um `CLAUDE.local.md` ignorado pelo git só existe no worktree onde você o criou. Para compartilhar instruções pessoais entre worktrees, importe um arquivo do seu diretório home em vez disso:127Se você trabalha em várias worktrees git do mesmo repositório, um `CLAUDE.local.md` ignorado pelo git existe apenas na worktree onde você o criou. Para compartilhar instruções pessoais entre worktrees, importe um arquivo do seu diretório inicial em vez disso:

127 128 

128```text theme={null}129```text theme={null}

129# Preferências Individuais130# Preferências Individuais


131```132```

132 133 

133<Warning>134<Warning>

134 Uma importação em um arquivo de memória de nível de projeto é externa quando seu caminho é resolvido fora do seu diretório de trabalho, como a importação do diretório home acima. A primeira vez que Claude Code encontra importações externas em um projeto, mostra um diálogo de aprovação listando os arquivos. Se você recusar, as importações permanecem desabilitadas e o diálogo não aparece novamente.135 Uma importação em um arquivo de memória em nível de projeto é externa quando seu caminho é resolvido fora do seu diretório de trabalho, como a importação do diretório inicial acima. Na primeira vez que Claude Code encontra importações externas em um projeto, mostra um diálogo de aprovação listando os arquivos. Se você recusar, as importações permanecerão desabilitadas e o diálogo não aparecerá novamente.

135 136 

136 Claude Code mostra o diálogo para protegê-lo de arquivos que outras pessoas confirmam em um projeto compartilhado. Arquivos de memória de escopo de usuário, como `~/.claude/CLAUDE.md` e `~/.claude/rules/`, são arquivos que você escreveu. Exceto em sessões [Cowork](https://claude.com/product/cowork) em seu desktop, Claude Code carrega suas importações sem o diálogo e confia nelas como o resto de sua configuração pessoal.137 Claude Code mostra o diálogo para protegê-lo de arquivos que outras pessoas confirmam em um projeto compartilhado. Arquivos de memória com escopo de usuário, como `~/.claude/CLAUDE.md` e `~/.claude/rules/`, são arquivos que você mesmo escreveu. Exceto em sessões [Cowork](https://claude.com/product/cowork) em seu desktop, Claude Code carrega suas importações sem o diálogo e confia nelas como o resto de sua configuração pessoal.

137 138 

138 Em sessões Cowork em seu desktop, Claude Code pula qualquer importação em um arquivo de escopo de usuário que é resolvido para um caminho fora do diretório de trabalho da sessão e carrega o resto do arquivo. Nessas sessões, também pula um `~/.claude/CLAUDE.md` que é em si um symlink ou hard link, e um diretório `~/.claude/rules/` ou arquivo de regra vinculado simbolicamente que aponta para fora do diretório de trabalho.139 Em sessões Cowork em seu desktop, Claude Code ignora qualquer importação em um arquivo com escopo de usuário que seja resolvida para um caminho fora do diretório de trabalho da sessão e carrega o resto do arquivo. Nessas sessões, também ignora um `~/.claude/CLAUDE.md` que é em si um symlink ou hard link, e um diretório `~/.claude/rules/` symlinked ou arquivo de regra que aponta para fora do diretório de trabalho.

139</Warning>140</Warning>

140 141 

141<h3 id="agents-md">

142 AGENTS.md

143</h3>

144 

145Claude Code lê `CLAUDE.md`, não `AGENTS.md`. Se seu repositório já usa `AGENTS.md` para outros agentes de codificação, crie um `CLAUDE.md` que o importe para que ambas as ferramentas leiam as mesmas instruções sem duplicá-las. Você também pode adicionar instruções específicas do Claude Code abaixo da importação. Claude carrega o arquivo importado no início da sessão, depois anexa o resto:

146 

147```markdown CLAUDE.md theme={null}

148@AGENTS.md

149 

150## Claude Code

151 

152Use plan mode para alterações em `src/billing/`.

153```

154 

155Um symlink também funciona se você não precisar adicionar conteúdo específico do Claude Code:

156 

157```bash theme={null}

158ln -s AGENTS.md CLAUDE.md

159```

160 

161O comando não imprime saída em caso de sucesso. Na próxima sessão, execute `/context` e confirme que `CLAUDE.md` aparece em **Memory files**.

162 

163No Windows, criar um symlink requer privilégios de Administrador ou Modo de Desenvolvedor, então use a importação `@AGENTS.md` em vez disso.

164 

165Executar [`/init`](/docs/pt/commands) lê regras Cursor, em `.cursor/rules/` ou `.cursorrules`, e regras Copilot, em `.github/copilot-instructions.md`, e incorpora as partes relevantes no `CLAUDE.md` gerado. Com `CLAUDE_CODE_NEW_INIT=1` definido, `/init` também lê `AGENTS.md`, `.devin/rules/`, `.windsurf/rules/` ou `.windsurfrules`, e `.clinerules`.

166 

167Você também pode executar [`/import`](/docs/pt/commands) para trazer a configuração de um agente de codificação suportado para Claude Code, que anexa uma cópia única de arquivos de instrução como `AGENTS.md` ao `CLAUDE.md` correspondente e carrega MCP servers, comandos, subagents e skills. Requer Claude Code v2.1.213 ou posterior.

168 

169<h3 id="how-claude-md-files-load">142<h3 id="how-claude-md-files-load">

170 Como arquivos CLAUDE.md são carregados143 Como os arquivos CLAUDE.md carregam

171</h3>144</h3>

172 145 

173Claude Code carrega `CLAUDE.md` e `CLAUDE.local.md` do seu diretório de trabalho atual e de cada diretório acima dele. Execute Claude Code em `foo/bar/` e ele carrega instruções de `foo/bar/CLAUDE.md`, `foo/CLAUDE.md` e qualquer arquivo `CLAUDE.local.md` ao lado deles.146Claude Code carrega `CLAUDE.md` e `CLAUDE.local.md` do seu diretório de trabalho atual e de cada diretório acima dele. Execute Claude Code em `foo/bar/` e ele carrega instruções de `foo/bar/CLAUDE.md`, `foo/CLAUDE.md` e qualquer arquivo `CLAUDE.local.md` ao lado deles.

174 147 

175Todos os arquivos descobertos são concatenados em contexto em vez de se sobreporem. Dentro da árvore de diretórios, o conteúdo é ordenado da raiz do sistema de arquivos até seu diretório de trabalho. Para o exemplo `foo/bar/`, `foo/CLAUDE.md` aparece em contexto antes de `foo/bar/CLAUDE.md`, então as instruções mais próximas de onde você lançou Claude são lidas por último. Dentro de cada diretório, `CLAUDE.local.md` é anexado após `CLAUDE.md`, então suas notas pessoais são a última coisa que Claude lê naquele nível.148Todos os arquivos descobertos são concatenados em contexto em vez de se sobreporem. Na árvore de diretórios, o conteúdo é ordenado da raiz do sistema de arquivos até seu diretório de trabalho. Para o exemplo `foo/bar/`, `foo/CLAUDE.md` aparece em contexto antes de `foo/bar/CLAUDE.md`, portanto as instruções mais próximas de onde você iniciou Claude são lidas por último. Dentro de cada diretório, `CLAUDE.local.md` é anexado após `CLAUDE.md`, portanto suas notas pessoais são a última coisa que Claude lê nesse nível.

176 149 

177Claude também descobre arquivos `CLAUDE.md` e `CLAUDE.local.md` em subdiretórios sob seu diretório de trabalho atual. Em vez de carregá-los no lançamento, eles são incluídos quando Claude lê arquivos nesses subdiretórios.150Claude também descobre arquivos `CLAUDE.md` e `CLAUDE.local.md` em subdiretórios sob seu diretório de trabalho atual. Em vez de carregá-los na inicialização, eles são incluídos quando Claude lê arquivos nesses subdiretórios.

178 151 

179Se você trabalha em um grande monorepo onde arquivos CLAUDE.md de outras equipes são capturados, use [`claudeMdExcludes`](#exclude-specific-claude-md-files) para pular. Para o layout completo de arquivos CLAUDE.md de raiz e por diretório e regras, veja [Monorepos e repositórios grandes](/docs/pt/large-codebases).152Se você trabalha em um grande monorepo onde os arquivos CLAUDE.md de outras equipes são detectados, use [`claudeMdExcludes`](#exclude-specific-claude-md-files) para ignorá-los. Para o layout completo de arquivos CLAUDE.md raiz e por diretório e regras, consulte [Monorepos e repositórios grandes](/docs/pt/large-codebases).

180 153 

181Comentários HTML em nível de bloco (`<!-- notas do mantenedor -->`) em arquivos CLAUDE.md são removidos antes do conteúdo ser injetado no contexto de Claude. Use-os para deixar notas para mantenedores humanos sem gastar tokens de contexto neles. Comentários dentro de blocos de código são preservados. Quando você abre um arquivo CLAUDE.md diretamente com a ferramenta Read, os comentários permanecem visíveis.154Comentários HTML em nível de bloco (`<!-- maintainer notes -->`) em arquivos CLAUDE.md são removidos antes do conteúdo ser injetado no contexto do Claude. Use-os para deixar notas para mantenedores humanos sem gastar tokens de contexto neles. Comentários dentro de blocos de código são preservados. Quando você abre um arquivo CLAUDE.md diretamente com a ferramenta Read, os comentários permanecem visíveis.

182 155 

183<h4 id="load-from-additional-directories">156<h4 id="load-from-additional-directories">

184 Carregue de diretórios adicionais157 Carregue de diretórios adicionais

185</h4>158</h4>

186 159 

187A flag `--add-dir` dá a Claude acesso a diretórios adicionais fora do seu diretório de trabalho principal. Por padrão, arquivos CLAUDE.md desses diretórios não são carregados.160O sinalizador `--add-dir` dá ao Claude acesso a diretórios adicionais fora do seu diretório de trabalho principal. Por padrão, os arquivos CLAUDE.md desses diretórios não são carregados.

188 161 

189Para também carregar arquivos de memória de diretórios adicionais, defina a variável de ambiente `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD`:162Para também carregar arquivos de memória de diretórios adicionais, defina a variável de ambiente `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD`:

190 163 


198 Organize regras com `.claude/rules/`171 Organize regras com `.claude/rules/`

199</h3>172</h3>

200 173 

201Para projetos maiores, você pode organizar instruções em múltiplos arquivos usando o diretório `.claude/rules/`. Isso mantém as instruções modulares e mais fáceis para as equipes manterem. As regras também podem ser [escopadas para caminhos de arquivo específicos](#path-specific-rules), então elas só são carregadas em contexto quando Claude trabalha com arquivos correspondentes, reduzindo ruído e economizando espaço de contexto.174Para projetos maiores, você pode organizar instruções em vários arquivos usando o diretório `.claude/rules/`. Isso mantém as instruções modulares e mais fáceis para as equipes manterem. As regras também podem ser [escopo para caminhos de arquivo específicos](#path-specific-rules), portanto, carregam em contexto apenas quando Claude trabalha com arquivos correspondentes, reduzindo ruído e economizando espaço de contexto.

202 175 

203<Note>176<Note>

204 As regras são carregadas em contexto a cada sessão ou quando arquivos correspondentes são abertos. Para instruções específicas de tarefa que não precisam estar em contexto o tempo todo, use [skills](/docs/pt/skills) em vez disso, que só são carregadas quando você as invoca ou quando Claude determina que são relevantes para seu prompt.177 As regras carregam em contexto a cada sessão ou quando arquivos correspondentes são abertos. Para instruções específicas de tarefas que não precisam estar em contexto o tempo todo, use [skills](/docs/pt/skills) em vez disso, que carregam apenas quando você as invoca ou quando Claude determina que são relevantes para seu prompt.

205</Note>178</Note>

206 179 

207<h4 id="set-up-rules">180<h4 id="set-up-rules">

208 Configure regras181 Configure regras

209</h4>182</h4>

210 183 

211Coloque arquivos markdown no diretório `.claude/rules/` do seu projeto. Cada arquivo deve cobrir um tópico, com um nome de arquivo descritivo como `testing.md` ou `api-design.md`. Todos os arquivos `.md` são descobertos recursivamente, então você pode organizar regras em subdiretórios como `frontend/` ou `backend/`:184Coloque arquivos markdown no diretório `.claude/rules/` do seu projeto. Cada arquivo deve cobrir um tópico, com um nome de arquivo descritivo como `testing.md` ou `api-design.md`. Todos os arquivos `.md` são descobertos recursivamente, portanto você pode organizar regras em subdiretórios como `frontend/` ou `backend/`:

212 185 

213```text theme={null}186```text theme={null}

214seu-projeto/187seu-projeto/


220│ └── security.md # Requisitos de segurança193│ └── security.md # Requisitos de segurança

221```194```

222 195 

223Regras sem [frontmatter `paths`](#path-specific-rules) são carregadas no lançamento com a mesma prioridade que `.claude/CLAUDE.md`.196Regras sem [frontmatter `paths`](#path-specific-rules) são carregadas na inicialização com a mesma prioridade que `.claude/CLAUDE.md`.

224 197 

225Regras de projeto são ignoradas se você excluir `project` de [`--setting-sources`](/docs/pt/cli-reference). Antes da v2.1.211, regras que carregam sob demanda, incluindo regras com escopo de caminho e regras em diretórios `.claude/rules/` aninhados, carregavam mesmo quando `project` era excluído.198As regras do projeto são ignoradas se você excluir `project` de [`--setting-sources`](/docs/pt/cli-reference). Antes da v2.1.211, regras que carregam sob demanda, incluindo regras com escopo de caminho e regras em diretórios `.claude/rules/` aninhados, carregavam mesmo quando `project` era excluído.

226 199 

227<h4 id="path-specific-rules">200<h4 id="path-specific-rules">

228 Regras específicas de caminho201 Regras com escopo de caminho

229</h4>202</h4>

230 203 

231As regras podem ser escopadas para arquivos específicos usando frontmatter YAML com o campo `paths`. Essas regras condicionais só se aplicam quando Claude está trabalhando com arquivos correspondentes aos padrões especificados.204As regras podem ser escopo para arquivos específicos usando frontmatter YAML com o campo `paths`. Essas regras condicionais se aplicam apenas quando Claude está trabalhando com arquivos que correspondem aos padrões especificados.

232 205 

233```markdown theme={null}206```markdown theme={null}

234---207---


243- Inclua comentários de documentação OpenAPI216- Inclua comentários de documentação OpenAPI

244```217```

245 218 

246Regras sem um campo `paths` são carregadas incondicionalmente e se aplicam a todos os arquivos. Regras com escopo de caminho são acionadas quando Claude lê arquivos correspondentes ao padrão, não em cada uso de ferramenta. A partir da v2.1.198, a correspondência também funciona quando Claude alcança um arquivo através de um caminho vinculado simbolicamente para o diretório do projeto, por exemplo em um checkout vinculado simbolicamente.219Regras sem um campo `paths` são carregadas incondicionalmente e se aplicam a todos os arquivos. As regras com escopo de caminho são acionadas quando Claude lê arquivos que correspondem ao padrão, não em cada uso de ferramenta. A partir da v2.1.198, 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.

247 220 

248Use padrões glob no campo `paths` para corresponder arquivos por extensão, diretório ou qualquer combinação:221Use padrões glob no campo `paths` para corresponder arquivos por extensão, diretório ou qualquer combinação:

249 222 


254| `*.md` | Arquivos Markdown na raiz do projeto |227| `*.md` | Arquivos Markdown na raiz do projeto |

255| `src/components/*.tsx` | Componentes React em um diretório específico |228| `src/components/*.tsx` | Componentes React em um diretório específico |

256 229 

257Você pode especificar múltiplos padrões e usar expansão de chaves para corresponder múltiplas extensões em um padrão:230Você pode especificar vários padrões e usar expansão de chaves para corresponder várias extensões em um padrão:

258 231 

259```markdown theme={null}232```markdown theme={null}

260---233---


265---238---

266```239```

267 240 

268Cada grupo de chaves multiplica o número de padrões expandidos: `src/*.{ts,tsx}` expande para dois padrões, e `{a,b}/{c,d}/*.{ts,tsx}` para oito. Para manter a expansão limitada, a lista `paths` inteira de uma regra compartilha um orçamento de 1.000 padrões expandidos e 4 MiB, e padrões sem chaves não contam contra ele.241Cada grupo de chaves multiplica o número de padrões expandidos: `src/*.{ts,tsx}` se expande para dois padrões, e `{a,b}/{c,d}/*.{ts,tsx}` para oito. Para manter a expansão limitada, a lista `paths` inteira de uma regra compartilha um orçamento de 1.000 padrões expandidos e 4 MiB, e padrões sem chaves não contam contra ele.

269 242 

270Claude Code usa qualquer padrão que excederia o orçamento não expandido, e suas chaves literais não correspondem a nenhum arquivo. Antes da v2.1.217, um valor `paths` com muitos grupos de chaves travava ou fazia o CLI falhar na inicialização.243Claude Code usa qualquer padrão que excederia o orçamento não expandido, e suas chaves literais não correspondem a nenhum arquivo. Antes da v2.1.217, um valor `paths` com muitos grupos de chaves travava ou fazia o CLI falhar na inicialização.

271 244 

272Sintaxe glob trata `[` como o início de uma expressão de colchete como `[abc]`. Um padrão com um `[` que não pode ser lido como uma expressão de colchete, como `photos [2024/**`, é inválido: ele não corresponde a nada, e os outros padrões da regra continuam funcionando. Para corresponder um `[` literal em um nome de arquivo, escape-o como `photos \[2024/**`. Antes da v2.1.207, um padrão inválido fazia a ferramenta Read falhar para cada arquivo em que a regra era avaliada, em vez de não corresponder a nada.245A sintaxe Glob trata `[` como o início de uma expressão de colchete como `[abc]`. Um padrão com um `[` que não pode ser lido como uma expressão de colchete, como `photos [2024/**`, é inválido: não corresponde a nada, e os outros padrões da regra continuam funcionando. Para corresponder um `[` literal em um nome de arquivo, escape-o como `photos \[2024/**`. Antes da v2.1.207, um padrão inválido fazia a ferramenta Read falhar para cada arquivo em que a regra era avaliada, em vez de não corresponder a nada.

273 246 

274<h4 id="share-rules-across-projects-with-symlinks">247<h4 id="share-rules-across-projects-with-symlinks">

275 Compartilhe regras entre projetos com symlinks248 Compartilhe regras entre projetos com symlinks

276</h4>249</h4>

277 250 

278O diretório `.claude/rules/` suporta symlinks, então você pode manter um conjunto compartilhado de regras e vinculá-las em múltiplos projetos. Symlinks circulares são detectados e tratados graciosamente.251O diretório `.claude/rules/` suporta symlinks, portanto você pode manter um conjunto compartilhado de regras e vinculá-las em vários projetos. Symlinks circulares são detectados e tratados graciosamente.

279 252 

280Claude Code trata um symlink cujo alvo está fora do seu diretório de trabalho como uma [importação externa](#import-additional-files). As regras vinculadas não são carregadas até que você aprove importações externas para o projeto, e depois disso apenas as sem um campo [`paths`](#path-specific-rules) são carregadas. Claude Code pede essa aprovação apenas quando um arquivo de memória de projeto importa um arquivo fora do diretório de trabalho com `@path`, não para symlinks sozinhos. Para carregar regras compartilhadas sem essa aprovação, mantenha-as em [`~/.claude/rules/`](#user-level-rules), onde se aplicam a cada projeto na sua máquina.253Claude Code trata um symlink cujo alvo está fora do seu diretório de trabalho como uma [importação externa](#import-additional-files). As regras vinculadas não carregam até que você aprove importações externas para o projeto, e depois apenas as sem um campo [`paths`](#path-specific-rules) carregam. Claude Code pede essa aprovação apenas quando um arquivo de memória do projeto importa um arquivo fora do diretório de trabalho com `@path`, não apenas para symlinks. Para carregar regras compartilhadas sem essa aprovação, mantenha-as em [`~/.claude/rules/`](#user-level-rules), onde se aplicam a cada projeto em sua máquina.

281 254 

282Este exemplo vincula tanto um diretório compartilhado quanto um arquivo individual:255Este exemplo vincula um diretório compartilhado e um arquivo individual:

283 256 

284```bash theme={null}257```bash theme={null}

285ln -s ~/shared-claude-rules .claude/rules/shared258ln -s ~/shared-claude-rules .claude/rules/shared


287```260```

288 261 

289<h4 id="user-level-rules">262<h4 id="user-level-rules">

290 Regras de nível de usuário263 Regras em nível de usuário

291</h4>264</h4>

292 265 

293Regras pessoais em `~/.claude/rules/` se aplicam a cada projeto na sua máquina. Use-as para preferências que não são específicas do projeto:266Regras pessoais em `~/.claude/rules/` se aplicam a cada projeto em sua máquina. Use-as para preferências que não são específicas do projeto:

294 267 

295```text theme={null}268```text theme={null}

296~/.claude/rules/269~/.claude/rules/


298└── workflows.md # Seus fluxos de trabalho preferidos271└── workflows.md # Seus fluxos de trabalho preferidos

299```272```

300 273 

301Regras de nível de usuário são carregadas antes das regras de projeto, dando às regras de projeto prioridade mais alta.274As regras em nível de usuário são carregadas antes das regras do projeto, dando às regras do projeto prioridade mais alta.

302 275 

303<h3 id="manage-claude-md-for-large-teams">276<h3 id="manage-claude-md-for-large-teams">

304 Gerencie CLAUDE.md para grandes equipes277 Gerencie CLAUDE.md para grandes equipes


310 Implante CLAUDE.md em toda a organização283 Implante CLAUDE.md em toda a organização

311</h4>284</h4>

312 285 

313As organizações podem implantar um CLAUDE.md gerenciado centralmente que se aplica a todos os usuários em uma máquina. Este arquivo não pode ser excluído por configurações individuais.286As organizações podem implantar um CLAUDE.md gerenciado centralmente que se aplica a todos os usuários em uma máquina. Este arquivo não pode ser excluído pelas configurações individuais.

314 287 

315<Steps>288<Steps>

316 <Step title="Crie o arquivo no local da política gerenciada">289 <Step title="Crie o arquivo no local da política gerenciada">


320 </Step>293 </Step>

321 294 

322 <Step title="Implante com seu sistema de gerenciamento de configuração">295 <Step title="Implante com seu sistema de gerenciamento de configuração">

323 Use MDM, Group Policy, Ansible ou ferramentas similares para distribuir o arquivo entre máquinas de desenvolvedores. Veja [configurações gerenciadas](/docs/pt/managed-settings) para outras opções de configuração em toda a organização.296 Use MDM, Group Policy, Ansible ou ferramentas similares para distribuir o arquivo entre máquinas de desenvolvedores. Consulte [configurações gerenciadas](/docs/pt/managed-settings) para outras opções de configuração em toda a organização.

324 </Step>297 </Step>

325</Steps>298</Steps>

326 299 

327A chave `claudeMd` permite que você coloque conteúdo CLAUDE.md gerenciado diretamente dentro de `managed-settings.json` em vez de implantar um arquivo separado.300A chave `claudeMd` permite que você coloque o conteúdo CLAUDE.md gerenciado diretamente dentro de `managed-settings.json` em vez de implantar um arquivo separado.

328 301 

329**Escopo**: cada sessão de Claude Code na máquina, em cada repositório. Para orientação específica do repositório, confirme um CLAUDE.md de projeto em vez disso.302**Escopo**: cada sessão Claude Code na máquina, em cada repositório. Para orientação específica do repositório, confirme um CLAUDE.md de projeto em vez disso.

330 303 

331**Precedência**: igual a um arquivo CLAUDE.md gerenciado. Carrega antes de CLAUDE.md de usuário e projeto.304**Precedência**: igual a um arquivo CLAUDE.md gerenciado. Carrega antes de CLAUDE.md do usuário e do projeto.

332 305 

333**Onde é honrado**: apenas configurações gerenciadas e de política. Definir `claudeMd` em configurações de usuário, projeto ou local não tem efeito.306**Onde é honrado**: apenas configurações gerenciadas e de política. Definir `claudeMd` em configurações de usuário, projeto ou local não tem efeito.

334 307 


347| Bloqueie ferramentas, comandos ou caminhos de arquivo específicos | Configurações gerenciadas: `permissions.deny` |320| Bloqueie ferramentas, comandos ou caminhos de arquivo específicos | Configurações gerenciadas: `permissions.deny` |

348| Imponha isolamento de sandbox | Configurações gerenciadas: `sandbox.enabled` |321| Imponha isolamento de sandbox | Configurações gerenciadas: `sandbox.enabled` |

349| Variáveis de ambiente e roteamento de provedor de API | Configurações gerenciadas: `env` |322| Variáveis de ambiente e roteamento de provedor de API | Configurações gerenciadas: `env` |

350| Método de autenticação e bloqueio de organização | Configurações gerenciadas: `forceLoginMethod`, `forceLoginOrgUUID` |323| Método de login e restrições de organização | Configurações gerenciadas: `forceLoginMethod`, `forceLoginOrgUUID` |

351| Diretrizes de estilo de código e qualidade | CLAUDE.md gerenciado |324| Diretrizes de estilo de código e qualidade | CLAUDE.md gerenciado |

352| Lembretes de manipulação de dados e conformidade | CLAUDE.md gerenciado |325| Lembretes de tratamento de dados e conformidade | CLAUDE.md gerenciado |

353| Instruções comportamentais para Claude | CLAUDE.md gerenciado |326| Instruções comportamentais para Claude | CLAUDE.md gerenciado |

354 327 

355Regras de configurações são impostas pelo cliente independentemente do que Claude decide fazer. Instruções de CLAUDE.md moldam o comportamento de Claude, mas não são uma camada de imposição rígida.328As regras de configurações são impostas pelo cliente independentemente do que Claude decide fazer. As instruções CLAUDE.md moldam o comportamento do Claude, mas não são uma camada de imposição rígida.

356 329 

357<h4 id="exclude-specific-claude-md-files">330<h4 id="exclude-specific-claude-md-files">

358 Exclua arquivos CLAUDE.md específicos331 Exclua arquivos CLAUDE.md específicos

359</h4>332</h4>

360 333 

361Em grandes monorepos, arquivos CLAUDE.md ancestrais podem conter instruções que não são relevantes para seu trabalho. A configuração `claudeMdExcludes` permite que você pule arquivos específicos por caminho ou padrão glob.334Em grandes monorepos, os arquivos CLAUDE.md ancestrais podem conter instruções que não são relevantes para seu trabalho. A configuração `claudeMdExcludes` permite que você pule arquivos específicos por caminho ou padrão glob.

362 335 

363Este exemplo exclui um CLAUDE.md de nível superior e um diretório de regras de uma pasta pai. Adicione-o a `.claude/settings.local.json` para que a exclusão permaneça local à sua máquina:336Este exemplo exclui um CLAUDE.md de nível superior e um diretório de regras de uma pasta pai. Adicione-o a `.claude/settings.local.json` para que a exclusão permaneça local em sua máquina:

364 337 

365```json theme={null}338```json theme={null}

366{339{


371}344}

372```345```

373 346 

374Padrões são correspondidos contra caminhos de arquivo absolutos usando sintaxe glob. Você pode configurar `claudeMdExcludes` em qualquer [camada de configurações](/docs/pt/settings#where-settings-live): usuário, projeto, local ou política gerenciada. Arrays são mesclados entre camadas.347Os padrões são correspondidos contra caminhos de arquivo absolutos usando sintaxe glob. Você pode configurar `claudeMdExcludes` em qualquer [camada de configurações](/docs/pt/settings#where-settings-live): usuário, projeto, local ou política gerenciada. Os arrays se mesclam entre camadas.

348 

349Para excluir um arquivo de regras que você alcança através de um [symlink](#share-rules-across-projects-with-symlinks), seja o arquivo ou seu diretório o link, escreva o padrão contra qualquer caminho: o caminho do arquivo sob `.claude/rules/` ou seu alvo de link. Um padrão que corresponde a qualquer caminho exclui o arquivo. Antes da v2.1.239, apenas um padrão que correspondia ao alvo do link excluía o arquivo.

350 

351Os arquivos CLAUDE.md de política gerenciada não podem ser excluídos. Isso garante que as instruções em toda a organização sempre se apliquem independentemente das configurações individuais.

352 

353<h2 id="agents-md">

354 AGENTS.md

355</h2>

356 

357Claude Code pode ler [`AGENTS.md`](/docs/pt/glossary#agents-md) como suas instruções de projeto, portanto um repositório já configurado para outros agentes de codificação funciona sem adicionar um `CLAUDE.md`, uma importação ou uma configuração. Esta tabela mostra o que Claude lê por padrão para cada combinação de arquivos de instruções em seu repositório:

358 

359| Seu repositório tem | Claude lê |

360| :-------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------- |

361| Um `AGENTS.md` e nenhum `CLAUDE.md` ou `CLAUDE.local.md` em seu diretório de trabalho ou acima dele | Seu `AGENTS.md` |

362| Um `AGENTS.md` e um `CLAUDE.md` ou `CLAUDE.local.md` em seu diretório de trabalho ou acima dele | Apenas seus arquivos `CLAUDE.md` |

363| Um `CLAUDE.md` que já [importa `AGENTS.md`](#share-one-file-with-other-coding-tools) | Seu `CLAUDE.md`, com `AGENTS.md` incluído através da importação |

364 

365Para alterar o padrão, por exemplo para fazer Claude sempre ler ambos os arquivos, ler apenas `CLAUDE.md` ou ler apenas suas instruções gerenciadas pela organização, [altere a configuração **Project instructions**](#choose-which-instruction-files-load).

366 

367<Note>

368 A leitura de `AGENTS.md` diretamente requer Claude Code v2.1.277 ou posterior. Em algumas sessões, como aquelas no Amazon Bedrock ou com telemetria desabilitada, Claude [não consegue ler `AGENTS.md`](#when-agents-md-support-is-unavailable), então [importe-o de um `CLAUDE.md`](#share-one-file-with-other-coding-tools) lá em vez disso.

369</Note>

370 

371<h3 id="when-claude-code-reads-agents-md">

372 When Claude Code reads AGENTS.md

373</h3>

374 

375Por padrão, Claude lê `AGENTS.md` apenas quando você não tem `CLAUDE.md` em seu diretório de trabalho ou acima dele. Aqui estão quais de seus arquivos contam para essa verificação:

376 

377* **Contam, então Claude os lê em vez de `AGENTS.md`**: um `CLAUDE.md`, `.claude/CLAUDE.md` ou `CLAUDE.local.md` em seu diretório de trabalho ou em qualquer diretório acima dele

378* **Não contam e continuam carregando junto com `AGENTS.md`**: seu `~/.claude/CLAUDE.md`, o `CLAUDE.md` gerenciado de sua organização e arquivos `.claude/rules/`

375 379 

376Para excluir um arquivo de regras que você alcança através de um [symlink](#share-rules-across-projects-with-symlinks), seja o arquivo ou seu diretório o link, escreva o padrão contra qualquer caminho: o caminho do arquivo em `.claude/rules/` ou seu alvo de link. Um padrão que corresponde a qualquer caminho exclui o arquivo. Antes da v2.1.239, apenas um padrão que correspondia ao alvo do link excluía o arquivo.380Quando nenhum conta, aqui está o que Claude lê e como você pode saber:

377 381 

378Arquivos CLAUDE.md de política gerenciada não podem ser excluídos. Isso garante que as instruções em toda a organização sempre se apliquem independentemente das configurações individuais.382* **No início da sessão**: cada `AGENTS.md` e `.claude/AGENTS.md` em seu diretório de trabalho e nos diretórios acima dele. Em uma sessão interativa você vê uma linha como `no CLAUDE.md found; AGENTS.md loaded: /home/you/repo/AGENTS.md` na conversa

383* **Conforme Claude trabalha em subdiretórios**: um `AGENTS.md` de subdiretório, quando Claude abre um arquivo lá com a ferramenta Read e esse subdiretório não tem nenhum dos três arquivos `CLAUDE.md` próprios

384* **Dentro de cada `AGENTS.md`**: [importações `@path`](#import-additional-files) são expandidas, padrões [`claudeMdExcludes`](#exclude-specific-claude-md-files) se aplicam e subagentes que [pulam instruções de projeto](/docs/pt/sub-agents#what-loads-at-startup) também pulam esses arquivos

385* **Não lido**: `AGENTS.local.md`, `AGENTS.override.md` ou qualquer coisa sob um diretório `.agents/`

386 

387<Note>

388 Como `CLAUDE.local.md` conta, adicionar um para manter suas próprias instruções não confirmadas em um projeto que depende de `AGENTS.md` impede Claude de ler `AGENTS.md` para você. Para manter seu `CLAUDE.local.md` e ainda ter Claude lendo `AGENTS.md`, defina **Project instructions** como [`claude-md-and-agents-md`](#choose-which-instruction-files-load).

389</Note>

390 

391<h3 id="choose-which-instruction-files-load">

392 Choose which instruction files load

393</h3>

394 

395Para alterar quais arquivos Claude lê, digite `/config` em uma sessão Claude Code para abrir o painel de configurações e defina **Project instructions** como um destes valores:

396 

397| Value | What Claude reads |

398| :------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

399| `claude-md-or-agents-md` | Seus arquivos `CLAUDE.md` ou seus arquivos `AGENTS.md` quando você não tem `CLAUDE.md` ou `CLAUDE.local.md` em seu diretório de trabalho ou acima dele. Este é o padrão |

400| `claude-md-and-agents-md` | Seus arquivos `CLAUDE.md` e `AGENTS.md` juntos, os arquivos `CLAUDE.md` de cada diretório primeiro e seu `AGENTS.md` depois. Claude Code pula um `AGENTS.md` que já carregou, então um que seu `CLAUDE.md` importa ou cria um symlink para não é lido duas vezes |

401| `claude-md` | Apenas seus arquivos `CLAUDE.md` |

402| `managed-only` | Apenas o `CLAUDE.md` gerenciado de sua organização e [auto memory](#auto-memory) no lançamento. Seus arquivos `CLAUDE.md` de projeto, local e usuário, seus arquivos `.claude/rules/` e cada `AGENTS.md` são deixados de fora. O `CLAUDE.md` de um subdiretório e os arquivos `.claude/rules/` ainda carregam quando Claude lê um arquivo lá, e [regras com escopo de caminho](#path-specific-rules) ainda se aplicam |

403 

404Você também pode definir o valor em um arquivo de configurações em vez de `/config`. Adicione-o sob o ID do plugin `agents-md` integrado em [`pluginConfigs`](/docs/pt/settings-reference#pluginconfigs), em `~/.claude/settings.json`, um arquivo `--settings` ou [configurações gerenciadas](/docs/pt/managed-settings). Claude Code o ignora em arquivos de configurações de projeto e local. Este exemplo faz Claude ler ambos os arquivos:

405 

406```json settings.json theme={null}

407{

408 "pluginConfigs": {

409 "agents-md@builtin": {

410 "options": { "instructionFiles": "claude-md-and-agents-md" }

411 }

412 }

413}

414```

415 

416Sua alteração se aplica a partir da próxima mensagem que você enviar e em cada nova sessão.

417 

418<h3 id="when-agents-md-support-is-unavailable">

419 When AGENTS.md support is unavailable

420</h3>

421 

422Nessas sessões Claude lê apenas arquivos `CLAUDE.md` e **Project instructions** não aparece no painel de configurações `/config`:

423 

424* Você está em uma versão Claude Code anterior à v2.1.277

425* Sua sessão não [busca sinalizadores de recursos da Anthropic](/docs/pt/env-vars#features-that-need-feature-flag-fetching), por exemplo, porque você usa Amazon Bedrock ou outro provedor de terceiros, ou desabilitou a telemetria. A seção vinculada tem a lista completa

426* É sua [primeira sessão depois que você instala ou atualiza](/docs/pt/env-vars#first-session-after-an-install-or-upgrade) para uma versão com suporte a `AGENTS.md`. Claude lê `AGENTS.md` a partir de sua próxima sessão

427* Você ou sua organização definiram [`disableAllHooks`](/docs/pt/settings-reference#disableallhooks) ou [`allowManagedHooksOnly`](/docs/pt/settings-reference#allowmanagedhooksonly), ou você desabilitou o plugin `agents-md` integrado em `/plugin`

428 

429Para dar ao Claude seu `AGENTS.md` nessas sessões, [importe-o de um `CLAUDE.md`](#share-one-file-with-other-coding-tools).

430 

431<h3 id="where-agents-md-differs-from-claude-md">

432 Where AGENTS.md differs from CLAUDE.md

433</h3>

434 

435Um `AGENTS.md` que Claude lê através da configuração **Project instructions** difere de um `CLAUDE.md` nestes lugares:

436 

437| | `CLAUDE.md` | `AGENTS.md` lido através da configuração |

438| :------------------------------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

439| `/memory` e a lista **Memory files** em `/context` | Listado | Não listado. Para confirmar que Claude o leu, procure pela [linha `AGENTS.md loaded`](#when-claude-code-reads-agents-md) sob o valor padrão, ou pergunte ao Claude o que suas instruções de projeto dizem |

440| [Hooks `InstructionsLoaded`](/docs/pt/hooks#instructionsloaded) | Disparam | Não disparam. Eles disparam normalmente para um `AGENTS.md` que um `CLAUDE.md` importa ou cria um symlink para |

441| Diretórios que você adiciona com `--add-dir` enquanto [`CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD`](#load-from-additional-directories) está definido | Seu `CLAUDE.md` carrega | Seu `AGENTS.md` não carrega |

442| Uma importação `@path` de um arquivo fora de seu diretório de trabalho | Claude Code pede que você aprove [importações externas](#import-additional-files) | Carrega apenas se você já aprovou importações externas para este projeto, sem prompt |

443 

444<h3 id="remove-an-earlier-agents-md-workaround">

445 Remove an earlier AGENTS.md workaround

446</h3>

447 

448Se você configurou Claude Code para ler `AGENTS.md` antes de fazer isso por conta própria, aqui está o que fazer com cada configuração comum:

449 

450* **Um `CLAUDE.md` contendo `@AGENTS.md`**: você pode deixá-lo. Manter a importação nunca faz Claude ler `AGENTS.md` duas vezes, qualquer que seja o valor de **Project instructions** que você use. Remova o `CLAUDE.md` se ele não contém nada mais, ou mantenha-o se algumas de suas sessões [não conseguem carregar `AGENTS.md` diretamente](#when-agents-md-support-is-unavailable).

451* **Um `CLAUDE.md` que diz ao Claude em palavras para ler `AGENTS.md`**: Claude vê `AGENTS.md` apenas se decidir abrir o arquivo. Delete o `CLAUDE.md` para que Claude leia `AGENTS.md` diretamente, ou substitua a sentença por uma importação `@AGENTS.md`.

452* **Um `CLAUDE.md` com symlink para `AGENTS.md`**: nada, ou delete o symlink. De qualquer forma, Claude lê o conteúdo uma vez.

453* **Um hook `SessionStart` que imprime `AGENTS.md`**: remova-o. Depois que Claude lê `AGENTS.md` diretamente, o hook adiciona uma segunda cópia ao contexto.

454 

455<h3 id="share-one-file-with-other-coding-tools">

456 Share one file with other coding tools

457</h3>

458 

459Quando Claude não está lendo seu `AGENTS.md` diretamente, você ainda pode mantê-lo como o arquivo único que cada ferramenta compartilha colocando uma importação `@AGENTS.md` em um `CLAUDE.md` ao lado dele. Faça isso quando seu projeto também tiver um `CLAUDE.md`, quando você tiver definido **Project instructions** como `claude-md`, ou em sessões que [não conseguem carregar `AGENTS.md`](#when-agents-md-support-is-unavailable). Adicione qualquer instrução específica do Claude abaixo da importação, e Claude lê o arquivo importado primeiro, depois o resto:

460 

461```markdown CLAUDE.md theme={null}

462@AGENTS.md

463 

464## Claude Code

465 

466Use plan mode for changes under `src/billing/`.

467```

468 

469Se você não precisa de conteúdo específico do Claude, um symlink também funciona:

470 

471```bash theme={null}

472ln -s AGENTS.md CLAUDE.md

473```

474 

475O comando não imprime nada em caso de sucesso. Antes de escolher o symlink em vez da importação, verifique estas restrições:

476 

477* **Edição**: Claude lê `CLAUDE.md` através do link, mas as ferramentas Edit e Write [recusam-se a escrever através de um symlink](/docs/pt/errors#refusing-after-a-symlink-changed), e a recusa direciona Claude para editar o alvo do link, `AGENTS.md`, em vez disso

478* **Windows**: se você ou qualquer pessoa que clona o repositório trabalha no Windows, use a importação `@AGENTS.md` em vez disso. Criar um symlink lá precisa de privilégios de Administrador ou Modo de Desenvolvedor, e Git verifica um symlink confirmado como um arquivo de texto simples a menos que `core.symlinks` esteja habilitado, o que deixa esse clone com um `CLAUDE.md` de uma linha no lugar de suas instruções

479 

480Com qualquer uma das abordagens, execute `/context` em sua próxima sessão e confirme que `CLAUDE.md` aparece em **Memory files**.

481 

482<h3 id="migrate-instructions-from-other-tools">

483 Migrate instructions from other tools

484</h3>

485 

486Executar [`/init`](/docs/pt/commands) lê arquivos de instruções de outras ferramentas e incorpora as partes relevantes ao `CLAUDE.md` gerado:

487 

488* Regras do Cursor em `.cursor/rules/` ou `.cursorrules`

489* Regras do Copilot em `.github/copilot-instructions.md`

490* Com `CLAUDE_CODE_NEW_INIT=1` definido: `AGENTS.md`, `.devin/rules/`, `.windsurf/rules/` ou `.windsurfrules`, e `.clinerules`

491 

492Você também pode executar [`/import`](/docs/pt/commands) para trazer a configuração de um agente de codificação suportado para Claude Code, que anexa uma cópia única de arquivos de instruções como `AGENTS.md` ao `CLAUDE.md` correspondente e carrega servidores MCP, comandos, subagentes e skills. Requer Claude Code v2.1.213 ou posterior.

379 493 

380<h2 id="auto-memory">494<h2 id="auto-memory">

381 Memória automática495 Memória automática


422}536}

423```537```

424 538 

425O valor deve ser um caminho absoluto ou começar com `~/`. Quando você o define no `.claude/settings.json` ou `.claude/settings.local.json` de um projeto, Claude Code o honra sob a mesma [regra de confiança de workspace que hooks em arquivos de configurações](/docs/pt/permissions#what-runs-before-you-trust-a-folder).539O valor deve ser um caminho absoluto ou começar com `~/`.

540 

541Quando você o define no `.claude/settings.json` ou `.claude/settings.local.json` de um projeto, Claude Code o honra sob a mesma [regra de confiança de workspace que hooks em arquivos de configurações](/docs/pt/permissions#what-runs-before-you-trust-a-folder). Enquanto [`permissions.blockReadsOutsideWorkingDirectories`](/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) está ativado, Claude Code não carrega nenhuma memória automática de um diretório que um [arquivo de configurações fornecido pelo repositório](/docs/pt/permissions#when-your-local-settings-file-needs-trust) escolhe e não salva nada nele, onde quer que esse diretório esteja.

426 542 

427O diretório contém um índice `MEMORY.md` e um arquivo de tópico por memória:543O diretório contém um índice `MEMORY.md` e um arquivo de tópico por memória:

428 544 


468 Visualize e edite com `/memory`584 Visualize e edite com `/memory`

469</h2>585</h2>

470 586 

471O comando `/memory` lista seus arquivos CLAUDE.md, CLAUDE.local.md e outros locais de arquivo de memória em escopos de usuário e projeto, incluindo entradas CLAUDE.md de usuário e projeto para arquivos que ainda não existem. Também permite que você alterne a memória automática ativada ou desativada e fornece uma opção para abrir a pasta de memória automática. Selecione qualquer arquivo para abri-lo no seu editor; selecionar um que ainda não existe o cria primeiro. Para verificar quais arquivos realmente foram carregados na sessão atual, execute `/context`.587O comando `/memory` lista seus arquivos CLAUDE.md, CLAUDE.local.md e outros locais de arquivo de memória em escopos de usuário e projeto, incluindo entradas CLAUDE.md de usuário e projeto para arquivos que ainda não existem. Também permite que você alterne a memória automática ativada ou desativada e fornece uma opção para abrir a pasta de memória automática. Selecione qualquer arquivo para abri-lo no seu editor; selecionar um que ainda não existe o cria primeiro. Para verificar quais arquivos `CLAUDE.md` e arquivos de regras foram carregados na sessão atual, execute `/context`.

472 588 

473Editores GUI como VS Code abrem o arquivo em uma janela separada, e você pode continuar usando a sessão enquanto está aberta. Antes da v2.1.216, `/memory` esperava você fechar o arquivo antes de responder. Editores de terminal como Vim assumem o controle do terminal até você sair.589Editores GUI como VS Code abrem o arquivo em uma janela separada, e você pode continuar usando a sessão enquanto está aberta. Antes da v2.1.216, `/memory` esperava você fechar o arquivo antes de responder. Editores de terminal como Vim assumem o controle do terminal até você sair.

474 590 


488 604 

489Para depurar:605Para depurar:

490 606 

491* Execute `/context` e verifique a lista sob **Memory files** para verificar se seus arquivos CLAUDE.md e CLAUDE.local.md foram carregados. Se um arquivo não estiver listado lá, Claude não pode vê-lo. Use `/memory` para abrir e editar os arquivos.607* Execute `/context` e verifique a lista sob **Memory files** para verificar se seus arquivos CLAUDE.md e CLAUDE.local.md foram carregados. Se um arquivo `CLAUDE.md` estiver faltando lá, Claude não pode vê-lo. Um `AGENTS.md` aparece lá apenas quando um `CLAUDE.md` o importa, não quando Claude [o lê diretamente](#where-agents-md-differs-from-claude-md). Use `/memory` para abrir e editar os arquivos.

492* Verifique se o CLAUDE.md relevante está em um local que é carregado para sua sessão (veja [Escolha onde colocar arquivos CLAUDE.md](#choose-where-to-put-claude-md-files)).608* Verifique se o CLAUDE.md relevante está em um local que é carregado para sua sessão (veja [Escolha onde colocar arquivos CLAUDE.md](#choose-where-to-put-claude-md-files)).

493* Torne as instruções mais específicas. "Use indentação de 2 espaços" funciona melhor do que "formate o código adequadamente."609* Torne as instruções mais específicas. "Use indentação de 2 espaços" funciona melhor do que "formate o código adequadamente."

494* Procure por instruções conflitantes entre arquivos CLAUDE.md. Se dois arquivos dão orientação diferente para o mesmo comportamento, Claude pode escolher um arbitrariamente.610* Procure por instruções conflitantes entre arquivos CLAUDE.md. Se dois arquivos dão orientação diferente para o mesmo comportamento, Claude pode escolher um arbitrariamente.


498Para instruções que você quer no nível do prompt do sistema, use [`--append-system-prompt`](/docs/pt/cli-reference#system-prompt-flags). Você passa isso no lançamento, então é mais adequado para scripts e automação do que para uso interativo. Para como se comporta quando você retoma uma conversa, veja [Sinalizadores de prompt do sistema em conversas retomadas](/docs/pt/cli-reference#system-prompt-flags-in-resumed-conversations).614Para instruções que você quer no nível do prompt do sistema, use [`--append-system-prompt`](/docs/pt/cli-reference#system-prompt-flags). Você passa isso no lançamento, então é mais adequado para scripts e automação do que para uso interativo. Para como se comporta quando você retoma uma conversa, veja [Sinalizadores de prompt do sistema em conversas retomadas](/docs/pt/cli-reference#system-prompt-flags-in-resumed-conversations).

499 615 

500<Tip>616<Tip>

501 Use o hook [`InstructionsLoaded`](/docs/pt/hooks#instructionsloaded) para registrar exatamente quais arquivos de instrução são carregados, quando são carregados e por quê. Isso é útil para depurar regras específicas de caminho ou arquivos carregados preguiçosamente em subdiretórios.617 Use o hook [`InstructionsLoaded`](/docs/pt/hooks#instructionsloaded) para registrar exatamente quais arquivos `CLAUDE.md` e arquivos de regras são carregados, quando são carregados e por quê. Isso é útil para depurar regras específicas de caminho ou arquivos carregados preguiçosamente em subdiretórios.

502</Tip>618</Tip>

503 619 

620<h3 id="my-agents-md-isn’t-loading">

621 Meu AGENTS.md não está carregando

622</h3>

623 

624Se seu repositório tem um `AGENTS.md` e Claude não parece saber o que ele diz, a causa usual é um `CLAUDE.md` em algum lugar no caminho do projeto. Por padrão, Claude lê `AGENTS.md` apenas quando você não tem `CLAUDE.md` ou `CLAUDE.local.md` em seu diretório de trabalho ou acima dele. Verifique estes em ordem:

625 

6261. Procure por um `CLAUDE.md`, `.claude/CLAUDE.md`, ou `CLAUDE.local.md` em seu diretório de trabalho ou em qualquer diretório acima dele, exceto seu `~/.claude/CLAUDE.md`. Se você encontrar um, Claude o lê em vez de `AGENTS.md` a menos que você defina **Project instructions** como `claude-md-and-agents-md`.

6272. Execute `claude --version` e confirme v2.1.277 ou posterior.

6283. Verifique se sua sessão é uma que [não pode carregar `AGENTS.md`](#when-agents-md-support-is-unavailable), como uma sessão em um provedor de terceiros ou com telemetria desabilitada.

6294. Digite `/config` em sua sessão para abrir o painel de configurações e confirme que **Project instructions** não está definido como `claude-md` ou `managed-only`. Se você não vir a configuração lá em absoluto, sua sessão é uma que [não pode carregar `AGENTS.md`](#when-agents-md-support-is-unavailable).

630 

631`AGENTS.md` não aparece em `/memory` ou `/context` quando Claude o lê diretamente, então procure pela linha `AGENTS.md loaded` ou pergunte a Claude quais são suas instruções de projeto em vez disso.

632 

633Se você quiser manter o `CLAUDE.md` que encontrou, ou sua sessão não pode carregar `AGENTS.md`, [adicione um `CLAUDE.md` ao lado de seu `AGENTS.md` que o importa](#share-one-file-with-other-coding-tools).

634 

504<h3 id="i-don’t-know-what-auto-memory-saved">635<h3 id="i-don’t-know-what-auto-memory-saved">

505 Não sei o que a memória automática salvou636 Não sei o que a memória automática salvou

506</h3>637</h3>

mobile.md +12 −11

Details

6 6 

7> Inicie, monitore e dirija tarefas do Claude Code do seu telefone com o aplicativo Claude para iOS e Android.7> Inicie, monitore e dirija tarefas do Claude Code do seu telefone com o aplicativo Claude para iOS e Android.

8 8 

9O aplicativo Claude para [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) e [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude) é um cliente para sessões do Claude Code em vez de um lugar onde o código é executado. Do seu telefone você acessa [sessões na nuvem](#start-and-monitor-cloud-sessions) na nuvem, uma sessão em execução em sua própria máquina através do [Remote Control](#continue-a-local-session-with-remote-control), ou o aplicativo Desktop através do [Dispatch](/docs/pt/desktop#sessions-from-dispatch).9O aplicativo Claude para [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) e [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude) é um cliente para sessões do Claude Code em vez de um lugar onde o código é executado. Do seu telefone você acessa [sessões na nuvem](#start-and-monitor-cloud-sessions) e [projetos](/docs/pt/claude-projects) na nuvem, uma sessão em execução em sua própria máquina através do [Remote Control](#continue-a-local-session-with-remote-control), ou o aplicativo Desktop através do [Dispatch](/docs/pt/desktop#sessions-from-dispatch).

10 10 

11<Note>11<Note>

12 Claude Code não tem um aplicativo móvel separado: sessões na nuvem e Remote Control vivem na aba **Code** no aplicativo Claude, e Dispatch é uma tarefa para a qual você envia mensagens no aplicativo.12 Claude Code não tem um aplicativo móvel separado: sessões na nuvem e Remote Control vivem na aba **Code** no aplicativo Claude, e Dispatch é uma tarefa para a qual você envia mensagens no aplicativo.


21 Instale o aplicativo Claude para [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) ou [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude). Em um iPad, instale o mesmo aplicativo iOS.21 Instale o aplicativo Claude para [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) ou [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude). Em um iPad, instale o mesmo aplicativo iOS.

22 22 

23 <Tip>23 <Tip>

24 Execute `/mobile` em uma sessão do Claude Code para exibir um código QR de download que você pode escanear. `/ios` e `/android` fazem a mesma coisa.24 Execute `/mobile` em uma sessão do Claude Code para exibir um código QR para [claude.ai/mobile](https://claude.ai/mobile), que abre a loja de aplicativos correta para seu telefone. `/ios` e `/android` fazem a mesma coisa.

25 </Tip>25 </Tip>

26 </Step>26 </Step>

27 27 


38 Trabalhe do seu telefone38 Trabalhe do seu telefone

39</h2>39</h2>

40 40 

41Do aplicativo você pode iniciar sessões na nuvem, dirigir uma sessão do Claude Code em execução no seu computador, ou enviar uma tarefa para o Dispatch. O aplicativo é o mesmo para os três; eles diferem em onde o trabalho acontece.41Do aplicativo você pode iniciar sessões na nuvem, abrir um projeto, dirigir uma sessão do Claude Code em execução no seu computador, ou enviar uma tarefa para o Dispatch. O aplicativo é o mesmo para cada um; eles diferem em onde o trabalho acontece.

42 42 

43| Recurso | O que você conecta | Quando usar |43| Recurso | O que você conecta | Quando usar |

44| :----------------------------------------------- | :----------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |44| :--------------------------------------------- | :-------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

45| [Claude Code na web](/docs/pt/claude-code-on-the-web) | Uma sessão na nuvem na infraestrutura de nuvem, gerenciada pela Anthropic por padrão | Seu repositório está no GitHub e a tarefa deve continuar em execução depois que você guardar seu telefone. Consulte o [guia de início rápido da web](/docs/pt/web-quickstart) para configurar. |45| [Cloud sessions](/docs/pt/claude-code-on-the-web) | Uma sessão na infraestrutura de nuvem, gerenciada pela Anthropic por padrão | Seu repositório está no GitHub e a tarefa deve continuar em execução depois que você guardar seu telefone. Consulte o [guia de início rápido da nuvem](/docs/pt/web-quickstart) para configurar. |

46| [Projects](/docs/pt/claude-projects) | Uma conversa onde Claude coordena sessões na nuvem paralelas como threads | Você tem um fluxo de trabalho relacionado em vez de uma tarefa e quer ver quais threads terminaram ou precisam de você. |

46| [Remote Control](/docs/pt/remote-control) | Uma sessão do Claude Code em execução no seu computador | O trabalho precisa do seu sistema de arquivos local, ferramentas ou servidores MCP. |47| [Remote Control](/docs/pt/remote-control) | Uma sessão do Claude Code em execução no seu computador | O trabalho precisa do seu sistema de arquivos local, ferramentas ou servidores MCP. |

47| [Dispatch](/docs/pt/desktop#sessions-from-dispatch) | O aplicativo Desktop no seu computador | Você quer enviar uma tarefa e deixar o Dispatch decidir como executá-la. Requer um plano Pro ou Max. |48| [Dispatch](/docs/pt/desktop#sessions-from-dispatch) | O aplicativo Desktop no seu computador | Você quer enviar uma tarefa e deixar o Dispatch decidir como executá-la. Requer um plano Pro ou Max. |

48 49 

49Se seu computador estiver desligado, use sessões na nuvem, que são executadas na nuvem e continuam com seu laptop fechado. Remote Control e Dispatch dirigem sua própria máquina, portanto ela precisa permanecer ligada com Claude Code ou o aplicativo Desktop em execução. Se sua máquina hibernar durante uma sessão Remote Control, Claude Code se reconecta quando a máquina volta a ficar online.50Se seu computador estiver desligado, use cloud sessions ou um projeto, que são executados na nuvem e continuam com seu laptop fechado. Remote Control e Dispatch dirigem sua própria máquina, portanto ela precisa permanecer ligada com Claude Code ou o aplicativo Desktop em execução. Se sua máquina hibernar durante uma sessão Remote Control, Claude Code se reconecta quando a máquina volta a ficar online.

50 51 

51Para uma comparação mais completa, consulte [trabalhe quando estiver longe do seu terminal](/docs/pt/platforms#work-when-you-are-away-from-your-terminal).52Para uma comparação mais completa, consulte [trabalhe quando estiver longe do seu terminal](/docs/pt/platforms#work-when-you-are-away-from-your-terminal).

52 53 

53Sessões na nuvem e Remote Control são executadas a partir da aba **Code**. Para Dispatch, que você envia como uma tarefa no aplicativo, consulte [sessões do Dispatch](/docs/pt/desktop#sessions-from-dispatch).54Cloud sessions e Remote Control são executadas a partir da aba **Code**. Para Dispatch, que você envia como uma tarefa no aplicativo, consulte [sessões do Dispatch](/docs/pt/desktop#sessions-from-dispatch).

54 55 

55<h3 id="start-and-monitor-cloud-sessions">56<h3 id="start-and-monitor-cloud-sessions">

56 Inicie e monitore sessões na nuvem57 Inicie e monitore cloud sessions

57</h3>58</h3>

58 59 

59Claude Code na web executa tarefas na infraestrutura de nuvem, gerenciada pela Anthropic por padrão, portanto uma sessão continua depois que você guarda seu telefone. Na aba Code, selecione um repositório e branch, descreva a tarefa e envie-a. As sessões persistem entre dispositivos: uma tarefa que você inicia no seu laptop está pronta para revisar do seu telefone, e uma que você inicia do seu telefone está esperando quando você volta à sua mesa.60Cloud sessions executam tarefas na infraestrutura de nuvem, gerenciada pela Anthropic por padrão, portanto uma sessão continua depois que você guarda seu telefone. Na aba Code, selecione um repositório e branch, descreva a tarefa e envie-a. As sessões persistem entre dispositivos: uma tarefa que você inicia no seu laptop está pronta para revisar do seu telefone, e uma que você inicia do seu telefone está esperando quando você volta à sua mesa.

60 61 

61Abra uma sessão no aplicativo para verificar o progresso, responder às perguntas do Claude ou dirigi-lo em uma nova direção. Você também pode dizer ao Claude para [observar um pull request](/docs/pt/claude-code-on-the-web#auto-fix-pull-requests) e corrigir falhas de CI ou comentários de revisão conforme chegam. Para conectar o GitHub e configurar seu ambiente, siga o [guia de início rápido da web](/docs/pt/web-quickstart), e consulte [Claude Code na web](/docs/pt/claude-code-on-the-web) para tudo que as sessões na nuvem podem fazer.62Abra uma sessão no aplicativo para verificar o progresso, responder às perguntas do Claude ou dirigi-lo em uma nova direção. Você também pode dizer ao Claude para [observar um pull request](/docs/pt/claude-code-on-the-web#auto-fix-pull-requests) e corrigir falhas de CI ou comentários de revisão conforme chegam. Para conectar o GitHub e configurar seu ambiente, siga o [guia de início rápido da nuvem](/docs/pt/web-quickstart), e consulte [Use Claude Code na nuvem](/docs/pt/claude-code-on-the-web) para tudo que as cloud sessions podem fazer.

62 63 

63<h3 id="continue-a-local-session-with-remote-control">64<h3 id="continue-a-local-session-with-remote-control">

64 Continue uma sessão local com Remote Control65 Continue uma sessão local com Remote Control

65</h3>66</h3>

66 67 

67Remote Control conecta o aplicativo Claude a uma sessão do Claude Code em execução em sua máquina, portanto a execução de código e o acesso ao sistema de arquivos permanecem locais enquanto você dirige a sessão do seu telefone. Inicie a sessão no seu computador com `claude remote-control`, ou execute `/remote-control` em uma sessão que já está aberta. Em seguida, escaneie o código QR da sessão que o terminal pode exibir, ou abra o aplicativo Claude, toque em **Code** e escolha a sessão na lista. Consulte [conectar de outro dispositivo](/docs/pt/remote-control#connect-from-another-device) para cada opção.68Remote Control conecta o aplicativo Claude a uma sessão do Claude Code em execução em sua máquina, portanto a execução de código e o acesso ao sistema de arquivos permanecem locais enquanto você dirige a sessão do seu telefone. Inicie a sessão no seu computador com `claude remote-control`, ou execute `/remote-control` em uma sessão que já está aberta. Em seguida, escaneie o código QR que o terminal pode exibir, ou abra o aplicativo Claude, toque em **Code** e escolha a sessão na lista. Consulte [conectar de outro dispositivo](/docs/pt/remote-control#connect-from-another-device) para cada opção.

68 69 

69Quando você adiciona um anexo no aplicativo Claude, ele também chega à sessão local:70Quando você adiciona um anexo no aplicativo Claude, ele também chega à sessão local:

70 71 

model-config.md +62 −48

Details

41| **`haiku`** | Usa o modelo Haiku rápido e eficiente para tarefas simples |41| **`haiku`** | Usa o modelo Haiku rápido e eficiente para tarefas simples |

42| **`sonnet[1m]`** | Usa Sonnet com uma [janela de contexto de 1 milhão de tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) para sessões longas. Sem efeito quando `sonnet` já é resolvido para Sonnet 5 com sua janela nativa de 1M; atrás de um [gateway LLM](/docs/pt/llm-gateway), seleciona a janela de 1M para Sonnet 5 |42| **`sonnet[1m]`** | Usa Sonnet com uma [janela de contexto de 1 milhão de tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) para sessões longas. Sem efeito quando `sonnet` já é resolvido para Sonnet 5 com sua janela nativa de 1M; atrás de um [gateway LLM](/docs/pt/llm-gateway), seleciona a janela de 1M para Sonnet 5 |

43| **`opus[1m]`** | Usa Opus com uma [janela de contexto de 1 milhão de tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) para sessões longas |43| **`opus[1m]`** | Usa Opus com uma [janela de contexto de 1 milhão de tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) para sessões longas |

44| **`opusplan`** | Modo especial que usa `opus` durante o modo de plano, depois muda para `sonnet` para execução |44| **`opusplan`** | Modo especial que usa `opus` durante o Plan Mode, depois muda para `sonnet` para execução |

45 45 

46A versão para a qual os aliases `opus` e `sonnet` são resolvidos depende do provedor:46A versão para a qual os aliases `opus` e `sonnet` são resolvidos depende do provedor:

47 47 


91* **Dimensione tarefas maiores**: entregue-lhe trabalho que você normalmente dividiria em pedaços. Ele mantém sessões longas sem perder o fio.91* **Dimensione tarefas maiores**: entregue-lhe trabalho que você normalmente dividiria em pedaços. Ele mantém sessões longas sem perder o fio.

92 92 

93<Note>93<Note>

94 Fable 5.1 requer Claude Code v2.1.257 ou posterior. Se uma solicitação para ele de uma versão mais antiga falhar, consulte [Claude Code não suporta este modelo](/docs/pt/errors#claude-code-does-not-support-this-model). Fable 5 requer v2.1.170 ou posterior. Execute `claude update` para atualizar. Para disponibilidade sob retenção zero de dados, consulte [Disponibilidade de modelo sob ZDR](/docs/pt/zero-data-retention#model-availability-under-zdr).94 Fable 5.1 requer Claude Code v2.1.257 ou posterior. Se uma solicitação para ele de uma versão mais antiga falhar, consulte [Claude Code não suporta este modelo](/docs/pt/errors#claude-code-does-not-support-this-model). Execute `claude update` para atualizar. Para disponibilidade sob retenção zero de dados, consulte [Disponibilidade de modelo sob ZDR](/docs/pt/zero-data-retention#model-availability-under-zdr).

95</Note>95</Note>

96 96 

97Na API Anthropic, o seletor `/model` lista um modelo Fable apenas depois que o servidor relata que está disponível para sua organização. Quando você digita `/model fable` ou um ID de modelo Fable, Claude Code verifica a disponibilidade com o servidor diretamente, então uma seleção digitada pode ter sucesso mesmo quando o seletor não lista a entrada.97Na API Anthropic, o seletor `/model` lista um modelo Fable apenas depois que o servidor relata que está disponível para sua organização. Quando você digita `/model fable` ou um ID de modelo Fable, Claude Code verifica a disponibilidade com o servidor diretamente, então uma seleção digitada pode ter sucesso mesmo quando o seletor não lista a entrada.


134`/model` salva sua escolha como o padrão para novas sessões escrevendo o campo `model` em suas configurações de usuário. No seletor:134`/model` salva sua escolha como o padrão para novas sessões escrevendo o campo `model` em suas configurações de usuário. No seletor:

135 135 

136* `Enter`: muda o modelo e salva como seu padrão136* `Enter`: muda o modelo e salva como seu padrão

137* `s`: muda o modelo apenas para esta sessão137* `s`: muda o modelo apenas para esta sessão e deixa seu padrão inalterado. Para usar uma chave diferente, rebinde [`modelPicker:thisSessionOnly`](/docs/pt/keybindings#model-picker-actions)

138 138 

139Digitar `/model <name>` diretamente se comporta como `Enter`. Um modelo definido com `/model` no [modo não interativo](/docs/pt/headless), com a flag `-p`, se aplica apenas à sessão atual e não é salvo como seu padrão. As configurações de projeto e gerenciadas ainda têm precedência e se reaplicam no próximo lançamento. Um [modelo padrão de organização](#organization-default-model) que seu administrador configurou para substituir a seleção do usuário também se reaplica no próximo lançamento.139Digitar `/model <name>` diretamente se comporta como `Enter`. Para mudar apenas para esta sessão, abra o seletor com `/model` e pressione `s` na linha do modelo.

140 

141Se você definir um modelo com `/model` no [modo não interativo](/docs/pt/headless), com a flag `-p`, sua escolha se aplica apenas à sessão atual e não é salva como seu padrão; `/model` nesse modo requer Claude Code v2.1.205 ou posterior. As configurações de projeto e gerenciadas ainda têm precedência e se reaplicam no próximo lançamento. Um [modelo padrão de organização](#organization-default-model) que seu administrador configurou para substituir a seleção do usuário também se reaplica no próximo lançamento.

140 142 

141Na v2.1.144 até v2.1.152, `/model` se aplicava apenas à sessão atual e `d` no seletor salvava um padrão.143Na v2.1.144 até v2.1.152, `/model` se aplicava apenas à sessão atual e `d` no seletor salvava um padrão.

142 144 


290| [Configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) do console de administração | Aplicado | Aplicado | Aplicado | Aplicado | Não entregue |292| [Configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) do console de administração | Aplicado | Aplicado | Aplicado | Aplicado | Não entregue |

291| [MDM ou arquivos de configurações gerenciadas](/docs/pt/managed-settings#delivery-mechanisms) | Aplicado | Aplicado | Não entregue em ambientes hospedados pela Anthropic; em [ambientes auto-hospedados](/docs/pt/self-hosted-environments), aplicado da imagem do executor por [como Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#how-claude-code-combines-managed-sources) | Aplicado | Aplicado onde implantado |293| [MDM ou arquivos de configurações gerenciadas](/docs/pt/managed-settings#delivery-mechanisms) | Aplicado | Aplicado | Não entregue em ambientes hospedados pela Anthropic; em [ambientes auto-hospedados](/docs/pt/self-hosted-environments), aplicado da imagem do executor por [como Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#how-claude-code-combines-managed-sources) | Aplicado | Aplicado onde implantado |

292 294 

293* Sessões na nuvem, em [Claude Code na web](/docs/pt/claude-code-on-the-web) ou no aplicativo Desktop, são executadas em VMs gerenciadas pela Anthropic por padrão: as configurações implantadas em seu dispositivo não as alcançam, portanto entregue a lista de permissões através de configurações gerenciadas pelo servidor. Sessões que sua organização roteia para um [ambiente auto-hospedado](/docs/pt/self-hosted-environments) são executadas em sua própria computação e também leem o arquivo de configurações gerenciadas na imagem do executor. [Como Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#how-claude-code-combines-managed-sources) diz quando esse arquivo se aplica. Uma mudança de modelo no meio da sessão em uma sessão na nuvem é rejeitada quando o modelo solicitado é excluído pela lista de permissões. A rejeição do lado do servidor na criação da sessão se aplica a [restrições de modelo da organização](#organization-model-restrictions), não à chave de configurações `availableModels`.295* Sessões na nuvem, em [Claude Code na web](/docs/pt/claude-code-on-the-web) ou no aplicativo Desktop, são executadas em VMs gerenciadas pela Anthropic por padrão: as configurações implantadas em seu dispositivo não as alcançam, portanto entregue a lista de permissões através de configurações gerenciadas pelo servidor. Sessões que sua organização roteia para um [ambiente auto-hospedado](/docs/pt/self-hosted-environments) são executadas em sua própria computação e também leem o arquivo de configurações gerenciadas na imagem do executor. [Como Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#how-claude-code-combines-managed-sources) diz quando esse arquivo se aplica. Uma mudança de modelo no meio da sessão em uma sessão na nuvem é rejeitada quando o modelo solicitado é excluído pela lista de permissões. Quando a `availableModels` lista em suas configurações gerenciadas pelo servidor é não vazia, o servidor rejeita a solicitação de um usuário para iniciar uma sessão na nuvem em um modelo que a lista exclui.

294* Cowork, a aba de trabalho agentic no aplicativo Claude Desktop, executa suas sessões em Claude Code, mas, por design, não recebe configurações gerenciadas pelo servidor do console de administração claude.ai. Um arquivo de configurações gerenciadas se aplica a sessões Cowork quando está presente onde a sessão é executada; sessões Cowork remotas são executadas em VMs gerenciadas pela Anthropic, onde um arquivo implantado no dispositivo não está presente.296* Cowork, a aba de trabalho agentic no aplicativo Claude Desktop, executa suas sessões em Claude Code, mas, por design, não recebe configurações gerenciadas pelo servidor do console de administração claude.ai. Um arquivo de configurações gerenciadas se aplica a sessões Cowork quando está presente onde a sessão é executada; sessões Cowork remotas são executadas em VMs gerenciadas pela Anthropic, onde um arquivo implantado no dispositivo não está presente.

295* Sessões em [provedores de terceiros](/docs/pt/server-managed-settings#platform-availability) como Amazon Bedrock, Agent Platform do Google Cloud, Microsoft Foundry e [Claude Platform on AWS](/docs/pt/claude-platform-on-aws) não recebem configurações gerenciadas pelo servidor, portanto entregue a lista de permissões através de MDM ou arquivos de configurações gerenciadas lá.297* Sessões em [provedores de terceiros](/docs/pt/server-managed-settings#platform-availability) como Amazon Bedrock, Agent Platform do Google Cloud, Microsoft Foundry e [Claude Platform on AWS](/docs/pt/claude-platform-on-aws) não recebem configurações gerenciadas pelo servidor, portanto entregue a lista de permissões através de MDM ou arquivos de configurações gerenciadas lá.

296* A entrega gerenciada pelo servidor também requer que a sessão se autentique com um [login ou chave elegível](/docs/pt/server-managed-settings#platform-availability). Frotas que geram chaves apenas através de um script [`apiKeyHelper`](/docs/pt/settings-reference#apikeyhelper) devem entregar a lista de permissões através de MDM ou arquivos de configurações gerenciadas.298* A entrega gerenciada pelo servidor também requer que a sessão se autentique com um [login ou chave elegível](/docs/pt/server-managed-settings#platform-availability). Frotas que geram chaves apenas através de um script [`apiKeyHelper`](/docs/pt/settings-reference#apikeyhelper) devem entregar a lista de permissões através de MDM ou arquivos de configurações gerenciadas.

297* A aba Desktop Code também hospeda [sessões SSH](/docs/pt/desktop#ssh-sessions), que leem o arquivo de configurações gerenciadas do host remoto em que são executadas. Veja [Configurações gerenciadas de desktop](/docs/pt/desktop#managed-settings).299* A aba Desktop Code também hospeda [sessões SSH](/docs/pt/desktop#ssh-sessions), que leem o arquivo de configurações gerenciadas do host remoto em que são executadas. Veja [Configurações gerenciadas de desktop](/docs/pt/desktop#managed-settings).

298* Os seletores de modelo em claude.ai e no aplicativo Desktop ocultam ou desabilitam modelos excluídos pela lista de permissões de sua organização. O estado do seletor é uma conveniência para usuários; a aplicação acontece na sessão.300* Os seletores de modelo em claude.ai e no aplicativo Desktop ocultam ou desabilitam modelos excluídos pela lista de permissões de sua organização. O estado do seletor é uma conveniência para usuários; não é onde a aplicação acontece.

299 301 

300<h3 id="default-model-behavior">302<h3 id="default-model-behavior">

301 Comportamento do modelo padrão303 Comportamento do modelo padrão


374 376 

375A restrição se aplica quando um membro faz login ou usa sua própria chave de API. Credenciais com escopo de organização, como chaves de serviço da organização, não estão vinculadas a um usuário, portanto a restrição não se aplica a elas.377A restrição se aplica quando um membro faz login ou usa sua própria chave de API. Credenciais com escopo de organização, como chaves de serviço da organização, não estão vinculadas a um usuário, portanto a restrição não se aplica a elas.

376 378 

377O Claude Console não tem controle de restrição de modelo. Organizações sem um plano Claude Enterprise, incluindo aquelas cujos membros se autenticam através da API Anthropic, restringem modelos com [`availableModels`](#restrict-model-selection) em [configurações gerenciadas](/docs/pt/managed-settings), adicionando [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) para cobrir a opção Padrão. Estas configurações são aplicadas por Claude Code em si, não pelo servidor.379O Claude Console não tem controle de restrição de modelo. Organizações sem um plano Claude Enterprise, incluindo aquelas cujos membros se autenticam através da API Anthropic, restringem modelos com [`availableModels`](#restrict-model-selection) em [configurações gerenciadas](/docs/pt/managed-settings), adicionando [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) para cobrir a opção Padrão. [Cobertura de superfície](#surface-coverage) diz como cada superfície recebe e aplica estas configurações.

378 380 

379Um modelo restrito é ocultado do seletor `/model`. Selecioná-lo pelo nome com `--model`, a variável de ambiente `ANTHROPIC_MODEL` ou a configuração `model` mostra o aviso `Model "<name>" is restricted by your organization's settings. Using <model> instead.` e a sessão inicia em um modelo permitido. Digitar `/model <name>` para um modelo restrito é rejeitado com `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.` e a sessão mantém seu modelo atual.381Um modelo restrito é ocultado do seletor `/model`. Selecioná-lo pelo nome com `--model`, a variável de ambiente `ANTHROPIC_MODEL` ou a configuração `model` mostra o aviso `Model "<name>" is restricted by your organization's settings. Using <model> instead.` e a sessão inicia em um modelo permitido. Digitar `/model <name>` para um modelo restrito é rejeitado com `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.` e a sessão mantém seu modelo atual.

380 382 


425 Limites de esforço da organização427 Limites de esforço da organização

426</h2>428</h2>

427 429 

430Sua organização pode limitar o [nível de esforço](#adjust-effort-level) de duas maneiras. Em um plano Claude Enterprise, os administradores da organização definem limites de esforço por função, descritos abaixo. Em qualquer plano e qualquer provedor, incluindo Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry, a configuração gerenciada [`maxEffortLevel`](/docs/pt/settings-reference#maxeffortlevel) limita o esforço no cliente. Quando ambos se aplicam a um modelo, o limite inferior se aplica.

431 

428Os administradores da organização em planos Claude Enterprise podem definir um [nível de esforço](#adjust-effort-level) máximo por modelo para cada função personalizada, juntamente com [restrições de modelo da organização](#organization-model-restrictions) no nível da função. Os níveis acima do limite não são oferecidos no seletor `/effort`, e nomear um nível superior com `--effort` ou `/effort` é executado no limite. Em sessões interativas e execuções simples de texto `--print`, um aviso nomeia os níveis solicitados e aplicados; com saída `json` ou `stream-json` ou em agentes em segundo plano, o limite é aplicado silenciosamente. Os limites são por modelo, portanto, alternar modelos pode mudar quais níveis estão disponíveis. Quando várias de suas funções concedem o mesmo modelo, o limite menos restritivo se aplica. Requer Claude Code v2.1.195 ou posterior.432Os administradores da organização em planos Claude Enterprise podem definir um [nível de esforço](#adjust-effort-level) máximo por modelo para cada função personalizada, juntamente com [restrições de modelo da organização](#organization-model-restrictions) no nível da função. Os níveis acima do limite não são oferecidos no seletor `/effort`, e nomear um nível superior com `--effort` ou `/effort` é executado no limite. Em sessões interativas e execuções simples de texto `--print`, um aviso nomeia os níveis solicitados e aplicados; com saída `json` ou `stream-json` ou em agentes em segundo plano, o limite é aplicado silenciosamente. Os limites são por modelo, portanto, alternar modelos pode mudar quais níveis estão disponíveis. Quando várias de suas funções concedem o mesmo modelo, o limite menos restritivo se aplica. Requer Claude Code v2.1.195 ou posterior.

429 433 

430Os limites de esforço são entregues juntamente com [restrições de modelo da organização](#organization-model-restrictions) e chegam às mesmas sessões.434Os limites de esforço são entregues juntamente com [restrições de modelo da organização](#organization-model-restrictions) e chegam às mesmas sessões.


450 454 

451Quando as configurações gerenciadas [aplicam a lista de permissões para o modelo Default](#enforce-the-allowlist-for-the-default-model) e o padrão do tipo de conta não está em `availableModels`, `default` é resolvido para o Default aplicado em vez do padrão do tipo de conta acima. Quando ambos se aplicam, o padrão da organização substitui o padrão do tipo de conta primeiro e a aplicação é feita em seguida: um padrão da organização na lista de permissões é mantido, enquanto um fora da lista é resolvido para o Default aplicado.455Quando as configurações gerenciadas [aplicam a lista de permissões para o modelo Default](#enforce-the-allowlist-for-the-default-model) e o padrão do tipo de conta não está em `availableModels`, `default` é resolvido para o Default aplicado em vez do padrão do tipo de conta acima. Quando ambos se aplicam, o padrão da organização substitui o padrão do tipo de conta primeiro e a aplicação é feita em seguida: um padrão da organização na lista de permissões é mantido, enquanto um fora da lista é resolvido para o Default aplicado.

452 456 

453Os modelos Fable não são o padrão do tipo de conta em nenhum plano ou provedor. Escolher um com `/model` o salva como o modelo selecionado nas configurações do usuário, para que as sessões posteriores iniciem nele. Para a alteração única que Claude Code faz em uma seleção Fable 5 salva na v2.1.257, consulte [Trabalhar com Fable](#work-with-fable).457Os modelos Fable não são o padrão do tipo de conta em nenhum plano ou provedor. Escolher um com `/model` o salva como o modelo selecionado em suas configurações de usuário, para que as sessões posteriores iniciem nele. Para a alteração única que Claude Code faz em uma seleção Fable 5 salva na v2.1.257, consulte [Trabalhar com Fable](#work-with-fable).

454 458 

455<h3 id="opusplan-model-setting">459<h3 id="opusplan-model-setting">

456 Configuração do modelo `opusplan`460 Configuração do modelo `opusplan`


463 467 

464Isso combina o raciocínio do Opus para planejamento com a eficiência do Sonnet para execução.468Isso combina o raciocínio do Opus para planejamento com a eficiência do Sonnet para execução.

465 469 

466A fase Opus do modo de plano usa a mesma janela de contexto que a configuração do modelo `opus`. Nos níveis de assinatura onde Opus é [automaticamente atualizado para contexto de 1M](#extended-context), `opusplan` recebe a atualização no modo de plano também. Para forçar contexto de 1M para ambas as fases quando você não está em um nível de atualização automática, defina o modelo para `opusplan[1m]`.470A fase Opus do modo de plano usa a mesma janela de contexto que a configuração do modelo `opus`. Nos níveis de assinatura onde Opus é [automaticamente atualizado para contexto de 1M](#extended-context), `opusplan` recebe a atualização no modo de plano também. Para forçar contexto de 1M para ambas as fases quando você não está em um nível de atualização automática, [defina o modelo](#setting-your-model) para `opusplan[1m]`, por exemplo com `/model opusplan[1m]`. Defini-lo com `/model` requer Claude Code v2.1.265 ou posterior; em versões anteriores, use o sinalizador `--model` ou a configuração `model` em vez disso.

467 471 

468Quando [`availableModels`](#restrict-model-selection) exclui o Opus mais recente mas permite uma versão mais antiga, por exemplo `["sonnet", "claude-opus-4-6"]`, `opusplan` usa o Opus mais recente permitido para planejamento e permanece apenas em Sonnet quando todo Opus é excluído. Uma sessão Haiku que normalmente seria atualizada para Sonnet no modo de plano também usa o Sonnet mais recente permitido, e permanece apenas em Haiku quando todo Sonnet é excluído. Antes da v2.1.205, o modo de plano permanecia no modelo da sessão sempre que a versão mais recente da família de atualização era excluída, mesmo quando a lista de permissões permitia uma mais antiga.472Quando [`availableModels`](#restrict-model-selection) exclui o Opus mais recente mas permite uma versão mais antiga, por exemplo `["sonnet", "claude-opus-4-6"]`, `opusplan` usa o Opus mais recente permitido para planejamento e permanece apenas em Sonnet quando todo Opus é excluído. Uma sessão Haiku que normalmente seria atualizada para Sonnet no modo de plano também usa o Sonnet mais recente permitido, e permanece apenas em Haiku quando todo Sonnet é excluído. Antes da v2.1.205, o modo de plano permanecia no modelo da sessão sempre que a versão mais recente da família de atualização era excluída, mesmo quando a lista de permissões permitia uma mais antiga.

469 473 


475 Cadeias de modelo de fallback479 Cadeias de modelo de fallback

476</h3>480</h3>

477 481 

478Quando o modelo primário está sobrecarregado, indisponível ou retorna outro erro de servidor não retentável, Claude Code pode alternar para um modelo de fallback em vez de falhar na solicitação. Erros de autenticação, faturamento, limite de taxa, tamanho de solicitação e transporte, e uma [negação pela verificação de política da sua organização](/docs/pt/errors#automatic-retries), nunca acionam uma alternância; esses seguem seu tratamento normal de repetição e erro.482Quando o modelo primário está sobrecarregado, indisponível ou retorna outro erro de servidor não repetível, Claude Code pode alternar para um modelo de fallback em vez de falhar na solicitação. Autenticação, faturamento, limite de taxa, tamanho de solicitação e erros de transporte, e uma [negação pela verificação de política da sua organização](/docs/pt/errors#automatic-retries), nunca acionam uma alternância; esses seguem sua manipulação normal de repetição e erro.

479 483 

480Configure um ou mais modelos de fallback e Claude Code os tenta em ordem, mostrando um aviso quando alterna. A alternância dura apenas para o turno atual, então sua próxima mensagem tenta o modelo primário primeiro novamente. Claude Code limita cadeias a três modelos após remoção de duplicatas e ignora entradas extras.484Configure um ou mais modelos de fallback e Claude Code os tenta em ordem, mostrando um aviso quando alterna. A alternância dura apenas para o turno atual, portanto sua próxima mensagem tenta o modelo primário primeiro novamente. Claude Code limita cadeias a três modelos após remoção de duplicatas e ignora entradas extras.

481 485 

482Defina uma cadeia para uma sessão com o sinalizador `--fallback-model`, que aceita uma lista separada por vírgulas:486Defina uma cadeia para uma sessão com o sinalizador `--fallback-model`, que aceita uma lista separada por vírgulas:

483 487 


497 501 

498Claude Code não confirma a cadeia na inicialização e `/status` não a exibe. O aviso mostrado quando uma alternância acontece é o primeiro sinal visível de que um fallback está configurado.502Claude Code não confirma a cadeia na inicialização e `/status` não a exibe. O aviso mostrado quando uma alternância acontece é o primeiro sinal visível de que um fallback está configurado.

499 503 

500Quando uma solicitação falha, Claude Code tenta cada entrada em ordem até que uma a aceite. Uma entrada que também não pode ser alcançada, como um modelo aposentado fixado nas configurações, falha para a próxima da mesma forma. Claude Code remove dois tipos de entrada antes dessa caminhada começar:504Quando uma solicitação falha, Claude Code tenta cada entrada em ordem até que uma a aceite. Uma entrada que também não pode ser alcançada, como um modelo descontinuado fixado em configurações, falha para a próxima da mesma forma. Claude Code remove dois tipos de entrada antes dessa caminhada começar:

501 505 

502* **Fora da lista de permissões**: Claude Code descarta qualquer entrada não permitida por [`availableModels`](#restrict-model-selection) quando lê a cadeia.506* **Fora da lista de permissões**: Claude Code descarta qualquer entrada não permitida por [`availableModels`](#restrict-model-selection) quando lê a cadeia.

503* **Janela de contexto menor durante compactação**: a cadeia também cobre [compactação](/docs/pt/context-window#what-survives-compaction), mas Claude Code não fará fallback para um modelo com uma janela de contexto menor que a do primário, pois resumir lá cortaria parte da conversa primeiro. Se cada fallback for menor, a compactação mostra o erro original e você pode tentar novamente.507* **Janela de contexto menor durante compactação**: a cadeia também cobre [compactação](/docs/pt/context-window#what-survives-compaction), mas Claude Code não fará fallback para um modelo com uma janela de contexto menor que a do primário, pois resumir lá cortaria parte da conversa primeiro. Se todo fallback for menor, a compactação mostra o erro original e você pode tentar novamente.

504 508 

505Claude Code também aplica a cadeia a [subagentes](/docs/pt/sub-agents). Quando a solicitação de um subagente falha, Claude Code tenta seus modelos de fallback configurados em ordem, e o subagente continua no modelo que aceita a solicitação. O modelo da sua sessão permanece inalterado. Antes da v2.1.247, uma falha que a cadeia cobria terminava o subagente.509Claude Code também aplica a cadeia a [subagentes](/docs/pt/sub-agents). Quando a solicitação de um subagente falha, Claude Code tenta seus modelos de fallback configurados em ordem, e o subagente continua no modelo que aceita a solicitação. O modelo da sua sessão permanece inalterado. Antes da v2.1.247, uma falha que a cadeia cobria terminava o subagente.

506 510 


519 523 

520Após um fallback, a sessão continua no modelo de fallback. Para retornar ao seu modelo original, execute [`/model`](#setting-your-model).524Após um fallback, a sessão continua no modelo de fallback. Para retornar ao seu modelo original, execute [`/model`](#setting-your-model).

521 525 

522O fallback baseado em categoria requer Claude Code v2.1.219 ou posterior. Antes da v2.1.219, cada solicitação Fable 5 sinalizada era executada novamente no modelo Opus padrão do seu provedor, e Opus 5 não era uma fonte de fallback.526O fallback baseado em categoria requer Claude Code v2.1.219 ou posterior. Antes da v2.1.219, toda solicitação Fable 5 sinalizada era executada novamente no modelo Opus padrão do seu provedor, e Opus 5 não era uma fonte de fallback.

523 527 

524O modelo de fallback é verificado contra [`availableModels`](#restrict-model-selection). Quando é bloqueado, nenhum fallback ocorre. A recusa é mostrada como um erro normal e o modelo da sessão permanece inalterado.528O modelo de fallback é verificado contra [`availableModels`](#restrict-model-selection). Quando é bloqueado, nenhum fallback ocorre. A recusa é mostrada como um erro normal e o modelo da sessão permanece inalterado.

525 529 


535 Perguntar antes de alternar539 Perguntar antes de alternar

536</h4>540</h4>

537 541 

538Para decidir o que acontece cada vez que uma solicitação é sinalizada, em vez de alternar automaticamente, execute `/config` e desative **Switch models when a message is flagged**, ou defina [`switchModelsOnFlag`](/docs/pt/settings-reference#switchmodelsonflag) como `false` no seu arquivo de configurações. Uma solicitação sinalizada pausa a sessão com duas opções: alternar para o modelo de fallback ou editar o prompt e tentar novamente no modelo atual.542Para decidir o que acontece cada vez que uma solicitação é sinalizada, em vez de alternar automaticamente, execute `/config` e desative **Switch models when a message is flagged**, ou defina [`switchModelsOnFlag`](/docs/pt/settings-reference#switchmodelsonflag) como `false` em seu arquivo de configurações. Uma solicitação sinalizada pausa a sessão com duas opções: alternar para o modelo de fallback ou editar o prompt e tentar novamente no modelo atual.

539 543 

540Alguns casos se comportam diferentemente:544Alguns casos se comportam diferentemente:

541 545 

542* Quando a categoria sinalizada não tem modelo de fallback, como um sinalizador de biologia em Opus 5, Claude Code não mostra o prompt e a solicitação termina com a recusa.546* Quando a categoria sinalizada não tem modelo de fallback, como um sinalizador de biologia em Opus 5, Claude Code não mostra o prompt e a solicitação termina com a recusa.

543* Se ambos os modelos sinalizarem a mesma solicitação, você pode editar o prompt e tentar novamente, ou iniciar uma nova sessão.547* Se ambos os modelos sinalizarem a mesma solicitação, você pode editar o prompt e tentar novamente ou iniciar uma nova sessão.

544* Em sessões móveis [Claude Code on the web](/docs/pt/claude-code-on-the-web), editar e tentar novamente não é suportado. Alterne modelos ou continue a sessão de um navegador de desktop ou do aplicativo de desktop.548* Em sessões móveis [Claude Code na web](/docs/pt/claude-code-on-the-web), edição e nova tentativa não são suportadas. Alterne modelos ou continue a sessão de um navegador de desktop ou do aplicativo de desktop.

545* Em [modo não interativo](/docs/pt/cli-reference#cli-flags) e integrações SDK que não podem mostrar o prompt, uma solicitação sinalizada termina o turno com uma recusa.549* Em [modo não interativo](/docs/pt/cli-reference#cli-flags) e integrações SDK que não podem mostrar o prompt, uma solicitação sinalizada termina o turno com uma recusa.

546* Quando o destino de fallback é bloqueado por [`availableModels`](#restrict-model-selection), Claude Code não mostra o prompt. A solicitação sinalizada termina com a recusa, o mesmo que fallback automático quando o destino é bloqueado.550* Quando o destino de fallback é bloqueado por [`availableModels`](#restrict-model-selection), Claude Code não mostra o prompt. A solicitação sinalizada termina com a recusa, o mesmo que fallback automático quando o destino é bloqueado.

547 551 


549 Ativar fallback no Bedrock, Agent Platform e Foundry553 Ativar fallback no Bedrock, Agent Platform e Foundry

550</h4>554</h4>

551 555 

552No [Amazon Bedrock](/docs/pt/amazon-bedrock), [Google Cloud's Agent Platform](/docs/pt/google-vertex-ai) e [Microsoft Foundry](/docs/pt/microsoft-foundry), IDs de modelo são específicos do provedor, então o fallback automático só funciona quando Claude Code pode identificar ambos os modelos envolvidos:556No [Amazon Bedrock](/docs/pt/amazon-bedrock), [Google Cloud's Agent Platform](/docs/pt/google-vertex-ai) e [Microsoft Foundry](/docs/pt/microsoft-foundry), IDs de modelo são específicos do provedor, portanto o fallback automático opera apenas quando Claude Code pode identificar ambos os modelos envolvidos:

553 557 

554* Claude Code deve reconhecer o modelo atual como uma fonte de fallback. Fable 5.1 e Fable 5 são reconhecidos quando o ID do modelo contém `claude-fable-5`, corresponde ao valor de `ANTHROPIC_DEFAULT_FABLE_MODEL` ou é mapeado com [`modelOverrides`](#override-model-ids-per-version). Opus 5 é reconhecido por seu ID de modelo do provedor ou um mapeamento [`modelOverrides`](#override-model-ids-per-version).558* Claude Code deve reconhecer o modelo atual como uma fonte de fallback. Fable 5.1 e Fable 5 são reconhecidos quando o ID do modelo contém `claude-fable-5`, corresponde ao valor de `ANTHROPIC_DEFAULT_FABLE_MODEL` ou é mapeado com [`modelOverrides`](#override-model-ids-per-version). Opus 5 é reconhecido por seu ID de modelo do provedor ou um mapeamento [`modelOverrides`](#override-model-ids-per-version).

555* O modelo de fallback deve ser resolvido em sua implantação. Se você definir `ANTHROPIC_DEFAULT_OPUS_MODEL`, solicitações sinalizadas são executadas novamente nesse modelo para cada categoria que tem um fallback; um sinalizador de biologia em Opus 5 ainda termina com uma recusa. Se você não definir, solicitações sinalizadas por cibersegurança são executadas novamente em uma entrada Opus 4.8 na lista de modelos do provedor, e solicitações sinalizadas por biologia de um modelo Fable em uma entrada Opus 5.559* O modelo de fallback deve ser resolvido em sua implantação. Se você definir `ANTHROPIC_DEFAULT_OPUS_MODEL`, solicitações sinalizadas são executadas novamente nesse modelo para cada categoria que tem um fallback; um sinalizador de biologia em Opus 5 ainda termina com uma recusa. Se você não o definir, solicitações sinalizadas por cibersegurança são executadas novamente em uma entrada Opus 4.8 na lista de modelos do provedor, e solicitações sinalizadas por biologia de um modelo Fable em uma entrada Opus 5.

556 560 

557Se qualquer modelo não puder ser identificado, Claude Code não alterna automaticamente. A solicitação sinalizada termina com uma mensagem de recusa, e você pode alternar modelos com [`/model`](#setting-your-model) e tentar novamente. Definir `ANTHROPIC_DEFAULT_FABLE_MODEL` para seu ID de modelo Fable ativa o reconhecimento de Fable. Definir `ANTHROPIC_DEFAULT_OPUS_MODEL` para um ID de modelo Opus fornece um destino de fallback para as categorias sinalizadas, a menos que o pino nomeie um modelo fora da família Opus ou o modelo que recusou; então Claude Code não alterna e a recusa permanece.561Se nenhum dos modelos puder ser identificado, Claude Code não alterna automaticamente. A solicitação sinalizada termina com uma mensagem de recusa, e você pode alternar modelos com [`/model`](#setting-your-model) e tentar novamente. Definir `ANTHROPIC_DEFAULT_FABLE_MODEL` para seu ID de modelo Fable ativa o reconhecimento de Fable. Definir `ANTHROPIC_DEFAULT_OPUS_MODEL` para um ID de modelo Opus fornece às categorias sinalizadas um destino de fallback, a menos que o pino nomeie um modelo fora da família Opus ou o modelo que recusou; então Claude Code não alterna e a recusa permanece.

558 562 

559<h4 id="security-research-and-biology-workloads">563<h4 id="security-research-and-biology-workloads">

560 Pesquisa de segurança e cargas de trabalho de biologia564 Pesquisa de segurança e cargas de trabalho de biologia


562 566 

563Cargas de trabalho em segurança ofensiva ou biologia, incluindo testes de penetração, exercícios Capture the Flag (CTF) e bases de código adjacentes à biologia, acionam fallback frequentemente, geralmente na primeira solicitação. Para trabalho substantivo de biologia em Fable 5.1 ou Fable 5, Claude Code move a sessão para Opus 5 na primeira solicitação sinalizada, e solicitações posteriores sinalizadas por biologia terminam em recusas lá, porque Opus 5 não tem fallback de biologia. Em Opus 5, você recebe essas recusas da primeira solicitação sinalizada.567Cargas de trabalho em segurança ofensiva ou biologia, incluindo testes de penetração, exercícios Capture the Flag (CTF) e bases de código adjacentes à biologia, acionam fallback frequentemente, geralmente na primeira solicitação. Para trabalho substantivo de biologia em Fable 5.1 ou Fable 5, Claude Code move a sessão para Opus 5 na primeira solicitação sinalizada, e solicitações posteriores sinalizadas por biologia terminam em recusas lá, porque Opus 5 não tem fallback de biologia. Em Opus 5, você recebe essas recusas da primeira solicitação sinalizada.

564 568 

565Este é o roteamento esperado para esses domínios, não um sinalizador de conta. Se sua organização precisa de capacidade de classe Fable para este trabalho, peça à sua equipe de conta Anthropic sobre programas de acesso confiável.569Este é o roteamento esperado para esses domínios, não um sinalizador de conta. Se sua organização precisar de capacidade de classe Fable para este trabalho, peça ao seu time de contas da Anthropic sobre programas de acesso confiável.

566 570 

567<h3 id="adjust-effort-level">571<h3 id="adjust-effort-level">

568 Ajustar nível de esforço572 Ajustar nível de esforço


578| Opus 5, Sonnet 5, Opus 4.8 e Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |582| Opus 5, Sonnet 5, Opus 4.8 e Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |

579| Opus 4.6 e Sonnet 4.6 | `low`, `medium`, `high`, `max` |583| Opus 4.6 e Sonnet 4.6 | `low`, `medium`, `high`, `max` |

580 584 

581Se você definir um nível que o modelo ativo não suporta, Claude Code volta para o nível mais alto suportado no ou abaixo do que você definiu. Por exemplo, `xhigh` é executado como `high` em Opus 4.6. Sua organização também pode limitar quais níveis estão disponíveis para um modelo; consulte [Limites de esforço da organização](#organization-effort-limits).585Se você definir um nível que o modelo ativo não suporta, Claude Code volta para o nível mais alto suportado no ou abaixo do que você definiu. Por exemplo, `xhigh` é executado como `high` em Opus 4.6. Sua organização ou suas próprias configurações também podem limitar os níveis que um modelo oferece; consulte [Limites de esforço da organização](#organization-effort-limits).

582 586 

583Com a configuração [`ultracode`](/docs/pt/settings-reference#ultracode) desativada, Claude Code resolve o nível de esforço da sessão nesta ordem, tomando o primeiro que se aplica:587Com a configuração [`ultracode`](/docs/pt/settings-reference#ultracode) desativada, Claude Code resolve o nível de esforço da sessão nesta ordem, tomando o primeiro que se aplica:

584 588 

5851. Uma escolha explícita: a variável de ambiente [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/pt/env-vars#variables), lançamento com `--effort`, ou `/effort` na sessão ([um `/effort` não interativo tem efeito mais estreito](#non-interactive-effort))5891. Uma escolha explícita: a variável de ambiente [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/pt/env-vars#variables), lançamento com `--effort`, ou `/effort` na sessão ([um `/effort` não interativo tem efeito mais estreito](#non-interactive-effort))

5862. O esforço padrão do modelo, em Fable 5, Opus 4.8 ou Opus 4.7: a partir da primeira vez que você executa um desses modelos, Claude Code mantém o esforço padrão desse modelo entre sessões, mesmo quando suas configurações resolvem um nível diferente. Opus 5 e Fable 5.1 não têm tal retenção. Se um nível que você definiu termina a retenção depende de como você o definiu, por exemplo:5902. O esforço padrão do modelo, em Fable 5, Opus 4.8 ou Opus 4.7: a partir da primeira vez que você executa um desses modelos, Claude Code mantém o esforço padrão desse modelo entre sessões, mesmo quando suas configurações resolvem um nível diferente. Opus 5 e Fable 5.1 não têm tal retenção. Se um nível que você define termina a retenção depende de como você o define, por exemplo:

587 * **Termina a retenção**: confirmando um nível interativamente, com `Enter` no controle deslizante `/effort` ou no seletor `/model` ou com um nível digitado após `/effort`, ou escolhendo um nível do controle de esforço [Remote Control](/docs/pt/remote-control#what-connected-devices-see) de um dispositivo conectado591 * **Termina a retenção**: confirmando um nível interativamente, com `Enter` no controle deslizante `/effort` ou no seletor `/model` ou com um nível digitado após `/effort`, ou escolhendo um nível de um controle de esforço [Remote Control](/docs/pt/remote-control#what-connected-devices-see) de um dispositivo conectado

588 * **Deixa a retenção em vigor para sessões posteriores**: `--effort` no lançamento, ou `s` no controle deslizante `/effort` ou no seletor `/model`592 * **Deixa a retenção em vigor para sessões posteriores**: `--effort` no lançamento, ou `s` no controle deslizante `/effort` ou no seletor `/model`

5893. Suas configurações: o nível que você salvou para o modelo ou uma chave [`effortLevel`](/docs/pt/settings-reference#effortlevel), com a precedência entre eles e entre arquivos de configurações declarada em [`modelSettings`](/docs/pt/settings-reference#modelsettings)5933. Suas configurações: o nível que você salvou para o modelo ou uma chave [`effortLevel`](/docs/pt/settings-reference#effortlevel), com a precedência entre eles e entre arquivos de configurações declarada em [`modelSettings`](/docs/pt/settings-reference#modelsettings)

5904. O esforço padrão do modelo: `high` em cada modelo que suporta esforço, exceto que Opus 4.7 padrão para `xhigh` e, quando sua organização define um nível de esforço padrão para seu [modelo padrão da organização](#organization-default-model), esse nível é o padrão quando você executa esse modelo5944. O esforço padrão do modelo: `high` em cada modelo que suporta esforço, exceto que Opus 4.7 padrão para `xhigh` e, quando sua organização define um nível de esforço padrão para seu [modelo padrão da organização](#organization-default-model), esse nível é o padrão quando você executa esse modelo


594* `Enter` no controle deslizante `/effort` ou no seletor `/model`, ou um nível digitado após `/effort`: salve o nível como seu padrão e aplique-o em sessões posteriores598* `Enter` no controle deslizante `/effort` ou no seletor `/model`, ou um nível digitado após `/effort`: salve o nível como seu padrão e aplique-o em sessões posteriores

595* `s` no controle deslizante `/effort` ou no seletor `/model`: aplique o nível apenas a esta sessão. Requer Claude Code v2.1.257 ou posterior599* `s` no controle deslizante `/effort` ou no seletor `/model`: aplique o nível apenas a esta sessão. Requer Claude Code v2.1.257 ou posterior

596 600 

597Claude Code salva o nível por modelo, sob a chave [`modelSettings`](/docs/pt/settings-reference#modelsettings) nas configurações do usuário, para que cada modelo mantenha seu próprio nível salvo.601Claude Code salva o nível por modelo, sob a chave [`modelSettings`](/docs/pt/settings-reference#modelsettings) em suas configurações de usuário, portanto cada modelo mantém seu próprio nível salvo.

598 602 

599`max` é o nível de raciocínio mais profundo. A menos que você o defina através da variável de ambiente `CLAUDE_CODE_EFFORT_LEVEL`, Claude Code aplica `max` apenas à sessão atual.603`max` é o nível de raciocínio mais profundo. A menos que você o defina através da variável de ambiente `CLAUDE_CODE_EFFORT_LEVEL`, Claude Code aplica `max` apenas à sessão atual.

600 604 

601<Note>605<Note>

602 Um nível que você escolhe do controle de esforço em um telefone ou navegador conectado através de [Remote Control](/docs/pt/remote-control#what-connected-devices-see) se aplica apenas a essa sessão.606 Um nível que você escolhe no controle de esforço em um telefone ou navegador conectado através de [Remote Control](/docs/pt/remote-control#what-connected-devices-see) se aplica apenas a essa sessão.

603</Note>607</Note>

604 608 

605<span id="non-interactive-effort" />609<span id="non-interactive-effort" />

606 610 

607Quando você define um nível com `/effort` em uma execução [`-p`](/docs/pt/headless), Claude Code o aplica apenas a essa sessão e não o salva como seu padrão. Em Fable 5, Opus 4.8 e Opus 4.7, esse nível também não termina a retenção no esforço padrão do modelo nem o substitui pela sessão. Enquanto essa retenção está em vigor, um `/effort` não interativo relata `Not applied`, então passe `--effort` no lançamento.611Quando você define um nível com `/effort` em uma execução [`-p`](/docs/pt/headless), Claude Code o aplica apenas a essa sessão e não o salva como seu padrão. Em Fable 5, Opus 4.8 e Opus 4.7, esse nível também não termina a retenção no esforço padrão do modelo nem o substitui pela sessão. Enquanto essa retenção está em vigor, um `/effort` não interativo relata `Not applied`, portanto passe `--effort` no lançamento.

608 612 

609O menu `/effort` também oferece `ultracode`. Ultracode é uma configuração de Claude Code em vez de um nível de esforço do modelo: envia `xhigh` para o modelo e adicionalmente tem Claude orquestrar [fluxos de trabalho dinâmicos](/docs/pt/workflows) para tarefas substantivas. Para onde pode ser definido persistentemente, consulte a configuração [`ultracode`](/docs/pt/settings-reference#ultracode).613O menu `/effort` também oferece `ultracode`. Ultracode é uma configuração de Claude Code em vez de um nível de esforço do modelo: envia `xhigh` para o modelo e adicionalmente tem Claude orquestrar [fluxos de trabalho dinâmicos](/docs/pt/workflows) para tarefas substantivas. Para onde pode ser definido persistentemente, consulte a configuração [`ultracode`](/docs/pt/settings-reference#ultracode).

610 614 

611Você pode ativar ultracode através de qualquer um dos seguintes:615Você pode ativar ultracode através de qualquer um dos seguintes:

612 616 

613* **`/effort`**: execute `/effort ultracode`, ou selecione-o no menu617* **`/effort`**: execute `/effort ultracode`, ou selecione-o no menu

614* **Sinalizador `--effort`**: inicie com `claude --effort ultracode`, que inicia a sessão em esforço `xhigh` com ultracode ativado618* **Sinalizador `--effort`**: lance com `claude --effort ultracode`, que inicia a sessão em esforço `xhigh` com ultracode ativado

615* **Configuração `ultracode`**: defina [`"ultracode": true`](/docs/pt/settings-reference#ultracode) em um arquivo de configurações, com `--settings`, ou em uma solicitação de controle Agent SDK. Uma solicitação [`applyFlagSettings()`](/docs/pt/agent-sdk/typescript#applyflagsettings) também aceita `effortLevel: "ultracode"`619* **Configuração `ultracode`**: defina [`"ultracode": true`](/docs/pt/settings-reference#ultracode) em um arquivo de configurações, com `--settings`, ou em uma solicitação de controle Agent SDK. Uma solicitação [`applyFlagSettings()`](/docs/pt/agent-sdk/typescript#applyflagsettings) também aceita `effortLevel: "ultracode"`

616* **Seletor `/model`**: mova o controle deslizante de esforço para `ultracode` com as teclas de seta enquanto escolhe um modelo. Claude Code o ativa para a sessão atual, mesmo quando você salva esse modelo como seu padrão620* **Seletor `/model`**: mova o controle deslizante de esforço para `ultracode` com as teclas de seta enquanto escolhe um modelo. Claude Code o ativa para a sessão atual, mesmo quando você salva esse modelo como seu padrão

617 621 

618Passar `ultracode` para o sinalizador `--effort` ou o valor Agent SDK `effortLevel` requer Claude Code v2.1.203 ou posterior. Antes da v2.1.203, `--effort ultracode` imprimia `Unknown --effort value 'ultracode'` e a sessão iniciava no esforço padrão.622Passar `ultracode` para o sinalizador `--effort` ou o valor Agent SDK `effortLevel` requer Claude Code v2.1.203 ou posterior. Antes da v2.1.203, `--effort ultracode` imprimia `Unknown --effort value 'ultracode'` e a sessão iniciava no esforço padrão.

619 623 

620A configuração `effortLevel` persistida e a variável de ambiente `CLAUDE_CODE_EFFORT_LEVEL` não aceitam `ultracode`. Quando `CLAUDE_CODE_EFFORT_LEVEL` é definido para um nível diferente de `xhigh`, as solicitações são executadas nesse nível e a orquestração de fluxo de trabalho do ultracode permanece inativa. Selecionar ultracode então mostra um aviso de que a variável de ambiente substitui o esforço pela sessão.624A configuração `effortLevel` persistida e a variável de ambiente `CLAUDE_CODE_EFFORT_LEVEL` não aceitam `ultracode`. Quando `CLAUDE_CODE_EFFORT_LEVEL` é definido para um nível diferente de `xhigh`, solicitações são executadas nesse nível e a orquestração de fluxo de trabalho do ultracode permanece inativa. Selecionar ultracode então mostra um aviso de que a variável de ambiente substitui o esforço pela sessão.

625 

626<span id="when-ultracode-is-available" />

621 627 

622Quando ultracode não está disponível, por exemplo quando [fluxos de trabalho estão desativados](/docs/pt/workflows#turn-workflows-off), `--effort ultracode` define apenas esforço `xhigh`.628Ultracode não está disponível quando:

629 

630* [Fluxos de trabalho estão desativados](/docs/pt/workflows#turn-workflows-off)

631* O modelo não suporta esforço `xhigh`

632* Um [limite de esforço](#organization-effort-limits) abaixo de `xhigh` se aplica ao modelo

633 

634Nesses casos `--effort ultracode` inicia a sessão com ultracode desativado, no nível de esforço mais alto que o modelo e qualquer limite permitem, até `xhigh`.

623 635 

624<h4 id="choose-an-effort-level">636<h4 id="choose-an-effort-level">

625 Escolher um nível de esforço637 Escolher um nível de esforço


629 641 

630| Nível | Quando usá-lo |642| Nível | Quando usá-lo |

631| :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- |643| :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- |

632| `low` | Reserve para tarefas curtas, delimitadas, sensíveis à latência que não são sensíveis à inteligência |644| `low` | Reserve para tarefas curtas, escopo definido, sensíveis à latência que não são sensíveis à inteligência |

633| `medium` | Reduz o uso de tokens para trabalho sensível a custos que pode fazer concessões em inteligência |645| `medium` | Reduz o uso de tokens para trabalho sensível a custos que pode fazer concessões em inteligência |

634| `high` | Equilibra o uso de tokens e inteligência. O padrão em cada modelo exceto Opus 4.7 |646| `high` | Equilibra o uso de tokens e inteligência. O padrão em cada modelo exceto Opus 4.7 |

635| `xhigh` | Raciocínio mais profundo com gasto de tokens mais alto. O padrão em Opus 4.7 |647| `xhigh` | Raciocínio mais profundo com gasto de tokens mais alto. O padrão em Opus 4.7 |

636| `max` | Pode melhorar o desempenho em tarefas exigentes, mas pode mostrar retornos decrescentes e é propenso a excesso de pensamento. Teste antes de adotar amplamente |648| `max` | Pode melhorar o desempenho em tarefas exigentes, mas pode mostrar retornos decrescentes e é propenso a excesso de pensamento. Teste antes de adotar amplamente |

637| `ultracode` | Uma configuração de Claude Code que planeja um [fluxo de trabalho dinâmico](/docs/pt/workflows) para cada tarefa substantiva com raciocínio `xhigh` por mensagem |649| `ultracode` | Uma configuração de Claude Code que planeja um [fluxo de trabalho dinâmico](/docs/pt/workflows) para cada tarefa substantiva com raciocínio `xhigh` por mensagem |

638 650 

639A escala de esforço é calibrada por modelo, então o mesmo nome de nível não representa o mesmo valor subjacente entre modelos.651A escala de esforço é calibrada por modelo, portanto o mesmo nome de nível não representa o mesmo valor subjacente entre modelos.

640 652 

641<h4 id="use-ultrathink-for-one-off-deep-reasoning">653<h4 id="use-ultrathink-for-one-off-deep-reasoning">

642 Usar ultrathink para raciocínio profundo único654 Usar ultrathink para raciocínio profundo único

643</h4>655</h4>

644 656 

645Inclua `ultrathink` em qualquer lugar do seu prompt para solicitar raciocínio mais profundo nesse turno sem alterar sua configuração de esforço de sessão. Claude Code reconhece a palavra-chave e adiciona uma instrução no contexto. O nível de esforço enviado para a API permanece inalterado. Claude Code passa outras frases como "think", "think hard" e "think more" como texto de prompt ordinário e não as reconhece como palavras-chave.657Inclua `ultrathink` em qualquer lugar em seu prompt para solicitar raciocínio mais profundo nesse turno sem alterar sua configuração de esforço de sessão. Claude Code reconhece a palavra-chave e adiciona uma instrução no contexto. O nível de esforço enviado para a API permanece inalterado. Claude Code passa outras frases como "think", "think hard" e "think more" como texto de prompt ordinário e não as reconhece como palavras-chave.

646 658 

647<h4 id="set-the-effort-level">659<h4 id="set-the-effort-level">

648 Definir o nível de esforço660 Definir o nível de esforço


654* **Em `/model`**: use as teclas de seta esquerda/direita para ajustar o controle deslizante de esforço ao selecionar um modelo666* **Em `/model`**: use as teclas de seta esquerda/direita para ajustar o controle deslizante de esforço ao selecionar um modelo

655* **Sinalizador `--effort`**: passe um nome de nível para defini-lo para uma única sessão ao lançar Claude Code667* **Sinalizador `--effort`**: passe um nome de nível para defini-lo para uma única sessão ao lançar Claude Code

656* **Variável de ambiente**: defina `CLAUDE_CODE_EFFORT_LEVEL` para um nome de nível ou `auto`668* **Variável de ambiente**: defina `CLAUDE_CODE_EFFORT_LEVEL` para um nome de nível ou `auto`

657* **Configurações**: defina um nível por modelo em [`modelSettings`](/docs/pt/settings-reference#modelsettings), ou defina [`effortLevel`](/docs/pt/settings-reference#effortlevel) para `low`, `medium`, `high` ou `xhigh` como o padrão para modelos sem um. `max` não é aceito em nenhuma chave, e `ultracode` tem sua própria chave [`ultracode`](/docs/pt/settings-reference#ultracode)669* **Configurações**: defina um nível por modelo em [`modelSettings`](/docs/pt/settings-reference#modelsettings), ou defina [`effortLevel`](/docs/pt/settings-reference#effortlevel) para `low`, `medium`, `high` ou `xhigh` como o padrão para modelos sem um. `max` não é aceito como um nível em nenhuma chave, e `ultracode` tem sua própria chave [`ultracode`](/docs/pt/settings-reference#ultracode)

658* **De um dispositivo conectado**: em uma sessão [Remote Control](/docs/pt/remote-control#what-connected-devices-see), escolha um nível do controle de esforço em seu telefone ou em seu navegador. O nível se aplica apenas à sessão atual, embora também termine a [retenção no esforço padrão do modelo](#adjust-effort-level). Requer Claude Code v2.1.234 ou posterior670* **De um dispositivo conectado**: em uma sessão [Remote Control](/docs/pt/remote-control#what-connected-devices-see), escolha um nível no controle de esforço em seu telefone ou em seu navegador. O nível se aplica apenas à sessão atual, embora também termine a [retenção no esforço padrão do modelo](#adjust-effort-level). Requer Claude Code v2.1.234 ou posterior

659* **Frontmatter de skill e subagente**: defina `effort` em um arquivo markdown de [skill](/docs/pt/skills#frontmatter-reference) ou [subagente](/docs/pt/sub-agents#supported-frontmatter-fields) para substituir o nível de esforço quando esse skill ou subagente é executado671* **Frontmatter de skill e subagente**: defina `effort` em um arquivo markdown [skill](/docs/pt/skills#frontmatter-reference) ou [subagente](/docs/pt/sub-agents#supported-frontmatter-fields) para substituir o nível de esforço quando esse skill ou subagente é executado

672 

673O esforço de frontmatter se aplica quando esse skill ou subagente está ativo, substituindo o nível de sessão, mas não a variável de ambiente. Um [`maxEffortLevel`](/docs/pt/settings-reference#maxeffortlevel) ou [limite de esforço da organização](#organization-effort-limits) ainda limita o nível em que o skill ou subagente é executado.

660 674 

661O esforço de frontmatter se aplica quando esse skill ou subagente está ativo, substituindo o nível de sessão, mas não a variável de ambiente.675Em Fable 5, Opus 4.8 e Opus 4.7, o esforço de frontmatter também se aplica enquanto a [retenção no esforço padrão do modelo](#adjust-effort-level) está em vigor. Antes da v2.1.267, a retenção tinha precedência e Claude Code ignorava o nível de frontmatter enquanto a retenção estava ativa.

662 676 

663A chave `effortLevel` em [configurações gerenciadas](/docs/pt/managed-settings) é um padrão inicial, não aplicação: os usuários podem alterá-lo para uma sessão com `/effort` ou `--effort`, e o valor gerenciado se reafirma como o padrão em novas sessões.677Se você definir `effortLevel` em [configurações gerenciadas](/docs/pt/managed-settings), Claude Code o aplica na etapa de configurações da [ordem de resolução de esforço](#adjust-effort-level), e os usuários ainda podem alterar o nível com `/effort` ou `--effort`. Para manter os usuários em ou abaixo de um nível, defina [`maxEffortLevel`](/docs/pt/settings-reference#maxeffortlevel).

664 678 

665O controle deslizante de esforço aparece em `/model` quando um modelo suportado é selecionado. O nível de esforço atual também é mostrado no cabeçalho da sessão ao lado do nome do modelo, por exemplo "with low effort", para que você possa confirmar qual configuração está ativa sem abrir `/model`. O rodapé também mostra brevemente o nível de esforço na inicialização e quando muda.679O controle deslizante de esforço aparece em `/model` quando um modelo suportado é selecionado. O nível de esforço atual também é mostrado no cabeçalho da sessão ao lado do nome do modelo, por exemplo "with low effort", para que você possa confirmar qual configuração está ativa sem abrir `/model`. O rodapé também mostra brevemente o nível de esforço na inicialização e quando muda.

666 680 


668 Raciocínio adaptativo e orçamentos de pensamento fixos682 Raciocínio adaptativo e orçamentos de pensamento fixos

669</h4>683</h4>

670 684 

671O raciocínio adaptativo torna o pensamento opcional em cada etapa, para que Claude possa responder mais rápido a prompts rotineiros e reservar pensamento mais profundo para etapas que se beneficiam dele. Se você quiser que Claude pense mais ou menos frequentemente do que o nível atual produz, você pode dizer isso diretamente no seu prompt ou em `CLAUDE.md`; o modelo responde a essa orientação dentro de sua configuração de esforço.685O raciocínio adaptativo torna o pensamento opcional em cada etapa, portanto Claude pode responder mais rápido a prompts rotineiros e reservar pensamento mais profundo para etapas que se beneficiam dele. Se você quiser que Claude pense mais ou menos frequentemente do que o nível atual produz, você pode dizer isso diretamente em seu prompt ou em `CLAUDE.md`; o modelo responde a essa orientação dentro de sua configuração de esforço.

672 686 

673Os modelos Fable, Sonnet 5 e Opus 4.7 e posterior sempre usam raciocínio adaptativo. O modo de orçamento de pensamento fixo e `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` não se aplicam a eles.687Os modelos Fable, Sonnet 5 e Opus 4.7 e posterior sempre usam raciocínio adaptativo. O modo de orçamento de pensamento fixo e `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` não se aplicam a eles.

674 688 

675Em Opus 4.6 e Sonnet 4.6, você pode definir `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` para reverter para o modo de orçamento de pensamento fixo anterior controlado por `MAX_THINKING_TOKENS`. Consulte [variáveis de ambiente](/docs/pt/env-vars).689Em Opus 4.6 e Sonnet 4.6, você pode definir `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` para reverter para o orçamento de pensamento fixo anterior controlado por `MAX_THINKING_TOKENS`. Consulte [variáveis de ambiente](/docs/pt/env-vars).

676 690 

677<h3 id="extended-thinking">691<h3 id="extended-thinking">

678 Pensamento estendido692 Pensamento estendido

679</h3>693</h3>

680 694 

681Pensamento estendido é o raciocínio que Claude emite antes de responder. Em modelos que suportam [raciocínio adaptativo](#adjust-effort-level), o nível de esforço é o controle primário para quanto pensamento acontece; as configurações abaixo ativam ou desativam o pensamento e controlam como ele é exibido. Com pensamento desativado na Anthropic API, Claude Code envia esforço `high` em vez de um nível mais alto para modelos que sabe [não aceitam essa combinação](/docs/pt/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5.695Pensamento estendido é o raciocínio que Claude emite antes de responder. Em modelos que suportam [raciocínio adaptativo](#adjust-effort-level), o nível de esforço é o controle primário para quanto pensamento acontece; as configurações abaixo ativam ou desativam o pensamento e controlam como ele é exibido. Com o pensamento desativado na Anthropic API, Claude Code envia esforço `high` em vez de um nível mais alto para modelos que sabe [não aceitam essa combinação](/docs/pt/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5.

682 696 

683| Controle | Como defini-lo |697| Controle | Como defini-lo |

684| :-------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |698| :-------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

685| Alternar para a sessão atual | Pressione `Option+T` no macOS ou `Alt+T` no Windows e Linux |699| Alternar para a sessão atual | Pressione `Option+T` em macOS ou `Alt+T` em Windows e Linux |

686| Definir o padrão global | Execute `/config` e alterne o modo de pensamento. Salvo como `alwaysThinkingEnabled` em `~/.claude/settings.json` |700| Definir o padrão global | Execute `/config` e alterne o modo de pensamento. Salvo como `alwaysThinkingEnabled` em `~/.claude/settings.json` |

687| Desativar através de uma variável de ambiente | Defina [`MAX_THINKING_TOKENS=0`](/docs/pt/env-vars), que desativa o pensamento na Anthropic API exceto em modelos Fable. Em [provedores de terceiros](/docs/pt/third-party-integrations), Claude Code omite o parâmetro `thinking`, e modelos de raciocínio adaptativo ainda podem pensar. Outros valores se aplicam apenas com um [orçamento de pensamento fixo](#adaptive-reasoning-and-fixed-thinking-budgets) |701| Desativar através de uma variável de ambiente | Defina [`MAX_THINKING_TOKENS=0`](/docs/pt/env-vars), que desativa o pensamento na Anthropic API exceto em modelos Fable. Em [provedores de terceiros](/docs/pt/third-party-integrations), Claude Code omite o parâmetro `thinking`, e modelos de raciocínio adaptativo ainda podem pensar. Outros valores se aplicam apenas com um [orçamento de pensamento fixo](#adaptive-reasoning-and-fixed-thinking-budgets) |

688 702 

689Você não pode desativar o pensamento em modelos Fable. O alternador de sessão, `alwaysThinkingEnabled` e `MAX_THINKING_TOKENS=0` não têm efeito lá, e um modelo Fable decide por etapa quanto pensar com base no nível de esforço.703Você não pode desativar o pensamento em modelos Fable. O alternador de sessão, `alwaysThinkingEnabled` e `MAX_THINKING_TOKENS=0` não têm efeito lá, e um modelo Fable decide por etapa quanto pensar com base no nível de esforço.

690 704 

691Claude Code recolhe saída de pensamento por padrão. Pressione `Ctrl+O` para alternar o modo verboso e ver o raciocínio como texto itálico cinzento. Sessões interativas na Anthropic API recebem blocos de pensamento redatados por padrão, então defina `showThinkingSummaries: true` em [configurações](/docs/pt/settings) se quiser os resumos completos disponíveis quando expandir. Você é cobrado por todos os tokens de pensamento gerados, mesmo quando recolhidos ou redatados.705Claude Code recolhe a saída de pensamento por padrão. Pressione `Ctrl+O` para alternar o modo detalhado e ver o raciocínio como texto itálico cinzento. Sessões interativas na Anthropic API recebem blocos de pensamento redigidos por padrão, portanto defina `showThinkingSummaries: true` em [configurações](/docs/pt/settings) se quiser os resumos completos disponíveis quando expandir. Você é cobrado por todos os tokens de pensamento gerados, mesmo quando recolhidos ou redigidos.

692 706 

693<h3 id="extended-context">707<h3 id="extended-context">

694 Contexto estendido708 Contexto estendido


706| Pro | Requer [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) | Requer [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |720| Pro | Requer [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) | Requer [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

707| API e pagamento conforme o uso | Acesso completo | Acesso completo |721| API e pagamento conforme o uso | Acesso completo | Acesso completo |

708 722 

709Claude Code verifica esses requisitos de plano apenas quando se conecta diretamente à Anthropic API. Se você apontar `ANTHROPIC_BASE_URL` para um [gateway LLM](/docs/pt/llm-gateway#subscriptions-and-gateways) e seu login claude.ai salvo permanece como a credencial ativa, Claude Code não verifica seus créditos de uso do plano. As opções `[1m]` permanecem disponíveis em `/model`, e o gateway decide se a solicitação é bem-sucedida. Antes da v2.1.229, Claude Code rejeitava `/model sonnet[1m]` nessa configuração quando não podia confirmar créditos de uso na conta.723Claude Code verifica esses requisitos de plano apenas quando se conecta diretamente à Anthropic API. Se você apontar `ANTHROPIC_BASE_URL` para um [gateway LLM](/docs/pt/llm-gateway#subscriptions-and-gateways) e seu login claude.ai salvo permanecer a credencial ativa, Claude Code não verifica seus créditos de uso do plano. As opções `[1m]` permanecem disponíveis em `/model`, e o gateway decide se a solicitação é bem-sucedida. Antes da v2.1.229, Claude Code rejeitava `/model sonnet[1m]` nessa configuração quando não conseguia confirmar créditos de uso na conta.

710 724 

711Para desativar contexto de 1M, defina `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`. Claude Code remove variantes de modelo de 1M do seletor de modelo. Em modelos com uma janela nativa de 1M, como Sonnet 5 e os modelos Fable, também trata o modelo como tendo uma janela de contexto de 200K:725Para desativar contexto de 1M, defina `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`. Claude Code remove variantes de modelo de 1M do seletor de modelo. Em modelos com uma janela nativa de 1M, como Sonnet 5 e os modelos Fable, também trata o modelo como tendo uma janela de contexto de 200K:

712 726 

713* Com auto-compactação ativada, sessões compactam no limite de 200K através de [auto-compactação](#set-the-auto-compact-window). Definir a janela de auto-compactação acima de 200K não levanta a retenção, porque Claude Code limita essa janela à janela de contexto do modelo.727* Com compactação automática ativada, sessões compactam no limite de 200K através de [compactação automática](#set-the-auto-compact-window). Definir a janela de compactação automática acima de 200K não levanta a retenção, porque Claude Code limita essa janela à janela de contexto do modelo.

714* Com auto-compactação desativada, sessões param no limite de 200K com o [erro de limite de contexto](/docs/pt/errors#prompt-is-too-long) em vez de compactar.728* Com compactação automática desativada, sessões param no limite de 200K com o [erro de limite de contexto](/docs/pt/errors#prompt-is-too-long) em vez de compactar.

715 729 

716Antes da v2.1.223, Claude Code mantinha apenas sessões Sonnet 5, Opus 4.8 e Opus 5 em 200K. Consulte [variáveis de ambiente](/docs/pt/env-vars).730Antes da v2.1.223, Claude Code mantinha apenas sessões Sonnet 5, Opus 4.8 e Opus 5 em 200K. Consulte [variáveis de ambiente](/docs/pt/env-vars).

717 731 


734 Janela de contexto Sonnet 5748 Janela de contexto Sonnet 5

735</h4>749</h4>

736 750 

737Na Anthropic API, Sonnet 5 sempre é executado com a janela de contexto de 1M. Não há variante de 200K, nenhum sufixo `[1m]` para selecionar e nenhum crédito de uso necessário em nenhum plano. Sessões auto-compactam antes da janela preencher, em cerca de 967K tokens por padrão; defina [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/pt/env-vars) para escolher um limite diferente.751Na Anthropic API, Sonnet 5 sempre é executado com a janela de contexto de 1M. Não há variante de 200K, nenhum sufixo `[1m]` para selecionar e nenhum crédito de uso necessário em nenhum plano. Sessões compactam automaticamente antes da janela preencher, em cerca de 967K tokens por padrão; defina [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/pt/env-vars) para escolher um limite diferente.

738 752 

739Duas configurações orçam a janela em 200K:753Duas configurações orçam a janela em 200K:

740 754 

741* **Gateway LLM**: quando `ANTHROPIC_BASE_URL` aponta para um [gateway](/docs/pt/llm-gateway), Claude Code não pode verificar suporte de 1M. Para usar a janela completa, selecione Sonnet 5 (1M context) no seletor de modelo, que mapeia para `sonnet[1m]`.755* **Gateway LLM**: quando `ANTHROPIC_BASE_URL` aponta para um [gateway](/docs/pt/llm-gateway), Claude Code não pode verificar suporte a 1M. Para usar a janela completa, selecione Sonnet 5 (1M context) no seletor de modelo, que mapeia para `sonnet[1m]`.

742* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**: mantém sessões em cada modelo com uma janela nativa de 1M em uma janela de 200K; consulte [Contexto estendido](#extended-context) para como a retenção é aplicada. Útil para implantações que precisam limitar contexto.756* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**: mantém sessões em cada modelo com uma janela nativa de 1M em uma janela de 200K; consulte [Contexto estendido](#extended-context) para como a retenção é aplicada. Útil para implantações que precisam limitar contexto.

743 757 

744<h2 id="context-window-and-auto-compaction">758<h2 id="context-window-and-auto-compaction">

Details

122| `OTEL_LOG_USER_PROMPTS` | Ativar registro de conteúdo de prompt do usuário (padrão: desativado) | `1` para ativar |122| `OTEL_LOG_USER_PROMPTS` | Ativar registro de conteúdo de prompt do usuário (padrão: desativado) | `1` para ativar |

123| `OTEL_LOG_ASSISTANT_RESPONSES` | Ativar registro de texto de resposta do assistente em eventos `assistant_response` (padrão: desativado). Quando não definido, volta para o valor de `OTEL_LOG_USER_PROMPTS`. Requer Claude Code v2.1.193 ou posterior | `1` para ativar, `0` para manter reduzido |123| `OTEL_LOG_ASSISTANT_RESPONSES` | Ativar registro de texto de resposta do assistente em eventos `assistant_response` (padrão: desativado). Quando não definido, volta para o valor de `OTEL_LOG_USER_PROMPTS`. Requer Claude Code v2.1.193 ou posterior | `1` para ativar, `0` para manter reduzido |

124| `OTEL_LOG_TOOL_DETAILS` | Ativar registro de parâmetros de ferramenta e argumentos de entrada em eventos de ferramenta e atributos de span de rastreamento: comandos Bash, nomes de servidor MCP e ferramenta, nomes de skill, nomes de workflow criados pelo usuário e entrada de ferramenta. Também ativa nomes de comando customizado, plugin e MCP em eventos `user_prompt` (padrão: desativado). Para servidores integrados do Claude Desktop, em sessões que Claude Desktop possui, `mcp_server_name`/`mcp_tool_name` são emitidos em `tool_decision`/`tool_result` mesmo com o sinalizador desativado. A exceção requer Claude Code v2.1.214 ou posterior | `1` para ativar |124| `OTEL_LOG_TOOL_DETAILS` | Ativar registro de parâmetros de ferramenta e argumentos de entrada em eventos de ferramenta e atributos de span de rastreamento: comandos Bash, nomes de servidor MCP e ferramenta, nomes de skill, nomes de workflow criados pelo usuário e entrada de ferramenta. Também ativa nomes de comando customizado, plugin e MCP em eventos `user_prompt` (padrão: desativado). Para servidores integrados do Claude Desktop, em sessões que Claude Desktop possui, `mcp_server_name`/`mcp_tool_name` são emitidos em `tool_decision`/`tool_result` mesmo com o sinalizador desativado. A exceção requer Claude Code v2.1.214 ou posterior | `1` para ativar |

125| `OTEL_LOG_TOOL_CONTENT` | Ativar registro de conteúdo de entrada e saída de ferramenta em eventos de span (padrão: desativado). Requer [rastreamento](#traces-beta). O conteúdo é truncado no limite de conteúdo (60 KB por padrão) | `1` para ativar |125| `OTEL_LOG_TOOL_CONTENT` | Ativar registro de conteúdo de ferramenta no [evento de span `tool.output`](#tool-output-span-event) (padrão: desativado). Os atributos de span carregam conteúdo de ferramenta sob [seus próprios gates](#new-context-gates). Requer [rastreamento](#traces-beta). O conteúdo é truncado no limite de conteúdo (60 KB por padrão) | `1` para ativar |

126| `OTEL_LOG_RAW_API_BODIES` | Emitir o corpo JSON completo da solicitação e resposta da API Anthropic Messages como eventos de log `api_request_body` / `api_response_body` (padrão: desativado). Os corpos incluem todo o histórico de conversa. Ativar isso implica consentimento para tudo que `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS` e `OTEL_LOG_TOOL_CONTENT` revelariam | `1` para corpos inline truncados no limite de conteúdo (60 KB por padrão), ou `file:<dir>` para corpos não truncados em disco com um ponteiro `body_ref` no evento |126| `OTEL_LOG_RAW_API_BODIES` | Emitir o corpo JSON completo da solicitação e resposta da API Anthropic Messages como eventos de log `api_request_body` / `api_response_body` (padrão: desativado). Os corpos incluem todo o histórico de conversa. Ativar isso implica consentimento para tudo que `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS` e `OTEL_LOG_TOOL_CONTENT` revelariam | `1` para corpos inline truncados no limite de conteúdo (60 KB por padrão), ou `file:<dir>` para corpos não truncados em disco com um ponteiro `body_ref` no evento |

127| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Limite de conteúdo: o comprimento máximo de atributos que contêm conteúdo, como respostas de modelo, conteúdo de ferramenta, prompts do sistema e corpos de API brutos, marcador de truncamento incluído, em unidades de código UTF-16 (padrão: 61440, ou seja, 60 KB). O padrão é dimensionado para backends que limitam valores de atributo a 64 KB; aumente-o apenas se seu backend aceitar valores maiores, ou diminua-o para reduzir o volume de telemetria. Quando um limite de atributo do SDK OpenTelemetry, `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` ou uma de suas variantes de logrecord e span, é definido como menor, Claude Code trunca nesse valor menor para que o marcador `[TRUNCATED ...]` permaneça dentro do limite do SDK. Requer Claude Code v2.1.214 ou posterior | `262144` |127| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Limite de conteúdo: o comprimento máximo de atributos que contêm conteúdo, como respostas de modelo, conteúdo de ferramenta, prompts do sistema e corpos de API brutos, marcador de truncamento incluído, em unidades de código UTF-16 (padrão: 61440, ou seja, 60 KB). O padrão é dimensionado para backends que limitam valores de atributo a 64 KB; aumente-o apenas se seu backend aceitar valores maiores, ou diminua-o para reduzir o volume de telemetria. Quando um limite de atributo do SDK OpenTelemetry, `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` ou uma de suas variantes de logrecord e span, é definido como menor, Claude Code trunca nesse valor menor para que o marcador `[TRUNCATED ...]` permaneça dentro do limite do SDK. Requer Claude Code v2.1.214 ou posterior | `262144` |

128| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | Preferência de temporalidade de métricas (padrão: `delta`). Defina como `cumulative` se seu backend espera temporalidade cumulativa | `delta`, `cumulative` |128| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | Preferência de temporalidade de métricas (padrão: `delta`). Defina como `cumulative` se seu backend espera temporalidade cumulativa | `delta`, `cumulative` |


284| `skill_name` | Nome da skill para a ferramenta Skill | `OTEL_LOG_TOOL_DETAILS` |284| `skill_name` | Nome da skill para a ferramenta Skill | `OTEL_LOG_TOOL_DETAILS` |

285| `subagent_type` | Tipo de subagente para a ferramenta Agent ou ferramenta Task legada | `OTEL_LOG_TOOL_DETAILS` |285| `subagent_type` | Tipo de subagente para a ferramenta Agent ou ferramenta Task legada | `OTEL_LOG_TOOL_DETAILS` |

286 286 

287Quando `OTEL_LOG_TOOL_CONTENT=1`, este span também registra um evento de span `tool.output` cujos atributos contêm os corpos de entrada e saída da ferramenta, truncados no limite de conteúdo (60 KB por padrão) por atributo.287<span id="tool-output-span-event" />**`tool.output` span event on `claude_code.tool`**

288 

289Se você definir `OTEL_LOG_TOOL_CONTENT=1`, chamadas Read e Bash podem registrar um evento de span `tool.output` no span `claude_code.tool`. Chamadas Edit e Write registram um apenas quando você também define `OTEL_LOG_TOOL_DETAILS=1`. Essa variável não é limitada a essas duas ferramentas, então verifique sua [linha na tabela de configuração](#common-configuration-variables) para os argumentos que ela adiciona em outro lugar.

290 

291Claude Code escreve este evento do retorno bem-sucedido de uma chamada de ferramenta, então uma chamada que gera um erro não registra nada, qualquer que seja a ferramenta. Entre as chamadas que retornam, ela não registra nenhum evento `tool.output` para:

292 

293* Uma chamada para qualquer ferramenta que não seja Read, Edit, Write e Bash, incluindo ferramentas MCP e WebFetch

294* Um Read que retorna qualquer coisa que não seja texto de arquivo, como uma imagem, um PDF ou uma releitura de um arquivo cujo conteúdo não mudou

295* Uma chamada Edit ou Write, a menos que você também defina `OTEL_LOG_TOOL_DETAILS=1`

296 

297O evento carrega esses atributos, cada um truncado no limite de conteúdo (60 KB por padrão). `Controlado Por` nomeia a variável que um atributo precisa além de `OTEL_LOG_TOOL_CONTENT=1`, e para Edit e Write essa variável controla o evento em si em vez do atributo.

298 

299| Atributo | Descrição | Controlado Por |

300| -------------- | ---------------------------------------------------------------------------------------------------------- | ----------------------------------------------- |

301| `content` | Texto que a ferramenta Read retornou, ou o texto que uma chamada Write foi solicitada a escrever | `OTEL_LOG_TOOL_DETAILS` para a ferramenta Write |

302| `output` | Saída combinada de um comando Bash, com stderr intercalado em stdout | |

303| `diff` | Patch estruturado que a ferramenta Edit aplicou | `OTEL_LOG_TOOL_DETAILS` |

304| `file_path` | Caminho de arquivo alvo para as ferramentas Read, Edit e Write, repetindo o atributo de span do mesmo nome | `OTEL_LOG_TOOL_DETAILS` |

305| `bash_command` | String de comando para a ferramenta Bash | `OTEL_LOG_TOOL_DETAILS` |

306 

307O atributo `tool_name` do span pai informa qual ferramenta um evento veio. Um atributo cortado no limite de conteúdo é acompanhado por `<attribute>_truncated` e `<attribute>_original_length`.

288 308 

289**`claude_code.tool.blocked_on_user`**309**`claude_code.tool.blocked_on_user`**

290 310 


323| `num_non_blocking_error` | Contagem de hooks que falharam sem bloquear | |343| `num_non_blocking_error` | Contagem de hooks que falharam sem bloquear | |

324| `num_cancelled` | Contagem de hooks cancelados antes da conclusão | |344| `num_cancelled` | Contagem de hooks cancelados antes da conclusão | |

325 345 

346<span id="new-context-gates" />

347 

326<Note>348<Note>

327 Atributos adicionais que contêm conteúdo, como `new_context`, `system_prompt_preview`, `user_system_prompt`, `tool_input` e `response.model_output`, são emitidos apenas quando rastreamento beta detalhado está ativo. Eles não fazem parte do esquema de span estável.349 Atributos adicionais que contêm conteúdo, como `new_context`, `system_prompt_preview`, `user_system_prompt`, `tool_input` e `response.model_output`, são emitidos apenas quando rastreamento beta detalhado está ativo. Eles não fazem parte do esquema de span estável.

328 350 

351 O gate em `new_context` depende de qual span o carrega, e cada cópia é truncada no limite de conteúdo (60 KB por padrão). No span `claude_code.tool` ele carrega o resultado dessa chamada de ferramenta, qualquer que seja a ferramenta, e requer `OTEL_LOG_TOOL_CONTENT=1`. No span `claude_code.interaction` ele carrega o prompt do usuário, e no span `claude_code.llm_request` as novas mensagens do usuário e resultados de ferramenta dessa solicitação. Ambos requerem `OTEL_LOG_USER_PROMPTS=1`.

352 

329 `user_system_prompt` também requer `OTEL_LOG_USER_PROMPTS=1`. Ele carrega apenas o texto do prompt do sistema que você fornece através da opção SDK `systemPrompt` ou dos sinalizadores `--system-prompt` e `--append-system-prompt`, truncado no limite de conteúdo (60 KB por padrão), e é emitido uma vez por sessão em vez de por solicitação.353 `user_system_prompt` também requer `OTEL_LOG_USER_PROMPTS=1`. Ele carrega apenas o texto do prompt do sistema que você fornece através da opção SDK `systemPrompt` ou dos sinalizadores `--system-prompt` e `--append-system-prompt`, truncado no limite de conteúdo (60 KB por padrão), e é emitido uma vez por sessão em vez de por solicitação.

330</Note>354</Note>

331 355 


877* `body_truncated`: `"true"` quando truncamento inline ocorreu. Ausente em modo arquivo e quando nenhum truncamento ocorreu.901* `body_truncated`: `"true"` quando truncamento inline ocorreu. Ausente em modo arquivo e quando nenhum truncamento ocorreu.

878* `model`: Identificador do modelo dos parâmetros de solicitação902* `model`: Identificador do modelo dos parâmetros de solicitação

879* `query_source`: Subsistema que emitiu a solicitação (por exemplo, `"compact"`)903* `query_source`: Subsistema que emitiu a solicitação (por exemplo, `"compact"`)

904* `request_body_id`: UUID que identifica o corpo de solicitação desta tentativa. O evento [`api_response_body`](#api-response-body-event) para a tentativa que é bem-sucedida carrega o mesmo valor, para que você possa emparelhar uma resposta com a solicitação exata que a produziu. Requer Claude Code v2.1.274 ou posterior

880 905 

881<h4 id="api-response-body-event">906<h4 id="api-response-body-event">

882 Evento de corpo de resposta de API907 Evento de corpo de resposta de API


884 909 

885Registrado para cada resposta de API bem-sucedida quando `OTEL_LOG_RAW_API_BODIES` está definido.910Registrado para cada resposta de API bem-sucedida quando `OTEL_LOG_RAW_API_BODIES` está definido.

886 911 

912Em modo arquivo (`OTEL_LOG_RAW_API_BODIES=file:<dir>`), Claude Code também anexa uma linha JSON a `<dir>/index.jsonl` para cada resposta bem-sucedida, com os campos `timestamp`, `session_id`, `query_source`, `model`, `request_id`, `message_id`, `message_uuid`, `request_file` e `response_file`. Leia-o para encontrar os arquivos de solicitação e resposta atrás de uma determinada mensagem de transcrição sem consultar seu backend de telemetria. O arquivo de índice requer Claude Code v2.1.274 ou posterior.

913 

887**Nome do Evento**: `claude_code.api_response_body`914**Nome do Evento**: `claude_code.api_response_body`

888 915 

889**Atributos**:916**Atributos**:


899* `model`: Identificador do modelo926* `model`: Identificador do modelo

900* `query_source`: Subsistema que emitiu a solicitação927* `query_source`: Subsistema que emitiu a solicitação

901* `request_id`: ID de solicitação da API Anthropic do cabeçalho `request-id` da resposta, como `"req_011..."`. Presente apenas quando a API retorna um.928* `request_id`: ID de solicitação da API Anthropic do cabeçalho `request-id` da resposta, como `"req_011..."`. Presente apenas quando a API retorna um.

929* `request_body_id`: O `request_body_id` do evento [`api_request_body`](#api-request-body-event) que esta resposta responde. Requer Claude Code v2.1.274 ou posterior

930* `message.id`: ID da mensagem que a API atribuiu à resposta, o campo `id` do corpo da resposta. Requer Claude Code v2.1.274 ou posterior

931* `message.uuid`: UUID da entrada de transcrição final da resposta. Junto com `request_body_id`, ele vincula uma mensagem de transcrição aos corpos de solicitação e resposta atrás dela. Requer Claude Code v2.1.274 ou posterior

902 932 

903<h4 id="tool-decision-event">933<h4 id="tool-decision-event">

904 Evento de decisão da ferramenta934 Evento de decisão da ferramenta


1525* A exportação OpenTelemetry para seu backend é opt-in e requer configuração explícita. Para a telemetria operacional separada da Anthropic e como desabilitá-la, consulte [Uso de dados](/docs/pt/data-usage#telemetry-services)1555* A exportação OpenTelemetry para seu backend é opt-in e requer configuração explícita. Para a telemetria operacional separada da Anthropic e como desabilitá-la, consulte [Uso de dados](/docs/pt/data-usage#telemetry-services)

1526* Conteúdos de arquivo brutos e trechos de código não são incluídos em métricas ou eventos. Os spans de rastreamento são um caminho de dados separado: veja o ponto `OTEL_LOG_TOOL_CONTENT` abaixo1556* Conteúdos de arquivo brutos e trechos de código não são incluídos em métricas ou eventos. Os spans de rastreamento são um caminho de dados separado: veja o ponto `OTEL_LOG_TOOL_CONTENT` abaixo

1527* Quando autenticado via OAuth, `user.email` é incluído em atributos de telemetria, enviado apenas para o endpoint OTel que você configura, nunca para a Anthropic. Se isso for uma preocupação para sua organização, trabalhe com seu backend de telemetria para filtrar ou reduzir este campo1557* Quando autenticado via OAuth, `user.email` é incluído em atributos de telemetria, enviado apenas para o endpoint OTel que você configura, nunca para a Anthropic. Se isso for uma preocupação para sua organização, trabalhe com seu backend de telemetria para filtrar ou reduzir este campo

1528* O conteúdo do prompt do usuário não é coletado por padrão. Apenas o comprimento do prompt é registrado. Para incluir conteúdo do prompt, defina `OTEL_LOG_USER_PROMPTS=1`1558* O conteúdo do prompt do usuário não é coletado por padrão. Apenas o comprimento do prompt é registrado. Para incluir conteúdo do prompt, defina `OTEL_LOG_USER_PROMPTS=1`. Sob rastreamento beta detalhado, esta variável alcança mais do que apenas texto de prompt: ela também controla o [atributo de span `new_context`](#new-context-gates), que carrega resultados de ferramenta no span `claude_code.llm_request`

1529* O texto de resposta do assistente não é coletado por padrão. Apenas o comprimento da resposta é registrado. Para incluir texto de resposta, defina `OTEL_LOG_ASSISTANT_RESPONSES=1`. Como todos os dados OpenTelemetry do Claude Code, o texto de resposta é enviado apenas para o endpoint OTel que você configura, nunca para a Anthropic. Quando esta variável não está definida, `OTEL_LOG_USER_PROMPTS` é usado como fallback, portanto defina `OTEL_LOG_ASSISTANT_RESPONSES=0` se você quiser conteúdo de prompt sem conteúdo de resposta1559* O texto de resposta do assistente não é coletado por padrão. Apenas o comprimento da resposta é registrado. Para incluir texto de resposta, defina `OTEL_LOG_ASSISTANT_RESPONSES=1`. Como todos os dados OpenTelemetry do Claude Code, o texto de resposta é enviado apenas para o endpoint OTel que você configura, nunca para a Anthropic. Quando esta variável não está definida, `OTEL_LOG_USER_PROMPTS` é usado como fallback, portanto defina `OTEL_LOG_ASSISTANT_RESPONSES=0` se você quiser conteúdo de prompt sem conteúdo de resposta

1530* Argumentos de entrada de ferramenta e parâmetros não são registrados por padrão. Para incluí-los, defina `OTEL_LOG_TOOL_DETAILS=1`. Para os servidores integrados do Claude Desktop, em sessões que o Claude Desktop possui, `tool_decision` e `tool_result` carregam o par `mcp_server_name`/`mcp_tool_name`, nomes criados pelo host em vez de conteúdo de argumentos, mesmo com a flag desativada. A exceção requer Claude Code v2.1.214 ou posterior. Estes dados são enviados apenas para o endpoint OTEL que você configura, nunca para a Anthropic. Os argumentos ainda podem conter valores sensíveis, portanto configure seu backend de telemetria para filtrar ou reduzir esses atributos conforme necessário. Quando ativado:1560* Argumentos de entrada de ferramenta e parâmetros não são registrados por padrão. Para incluí-los, defina `OTEL_LOG_TOOL_DETAILS=1`. Para os servidores integrados do Claude Desktop, em sessões que o Claude Desktop possui, `tool_decision` e `tool_result` carregam o par `mcp_server_name`/`mcp_tool_name`, nomes criados pelo host em vez de conteúdo de argumentos, mesmo com a flag desativada. A exceção requer Claude Code v2.1.214 ou posterior. Estes dados são enviados apenas para o endpoint OTEL que você configura, nunca para a Anthropic. Os argumentos ainda podem conter valores sensíveis, portanto configure seu backend de telemetria para filtrar ou reduzir esses atributos conforme necessário. Quando ativado:

1531 * Eventos `tool_result` e `tool_decision` incluem um atributo `tool_parameters` com comandos Bash, nomes de servidor MCP e ferramenta, e nomes de skill. Campos como `full_command` são emitidos sem truncamento1561 * Eventos `tool_result` e `tool_decision` incluem um atributo `tool_parameters` com comandos Bash, nomes de servidor MCP e ferramenta, e nomes de skill. Campos como `full_command` são emitidos sem truncamento

1532 * Eventos `tool_result` adicionalmente incluem um atributo `tool_input` com caminhos de arquivo, URLs, padrões de busca e outros argumentos. Valores individuais com mais de 512 caracteres são truncados e o total é limitado a \~4 K caracteres1562 * Eventos `tool_result` adicionalmente incluem um atributo `tool_input` com caminhos de arquivo, URLs, padrões de busca e outros argumentos. Valores individuais com mais de 512 caracteres são truncados e o total é limitado a \~4 K caracteres

1533 * Eventos `user_prompt` incluem o `command_name` verbatim para comandos customizados, plugin e MCP1563 * Eventos `user_prompt` incluem o `command_name` verbatim para comandos customizados, plugin e MCP

1534 * Spans de rastreamento incluem o mesmo atributo `tool_input` e atributos derivados de entrada como `file_path`, com o mesmo truncamento que `tool_input`1564 * Spans de rastreamento incluem o mesmo atributo `tool_input` e atributos derivados de entrada como `file_path`, com o mesmo truncamento que `tool_input`

1535* O conteúdo de entrada e saída de ferramenta não é registrado em spans de rastreamento por padrão. Para incluí-lo, defina `OTEL_LOG_TOOL_CONTENT=1`. Quando ativado, eventos de span incluem conteúdo completo de entrada e saída de ferramenta truncado no limite de conteúdo (60 KB por padrão) por atributo. Isso pode incluir conteúdos de arquivo brutos de resultados da ferramenta Read e saída de comando Bash. Configure seu backend de telemetria para filtrar ou reduzir esses atributos conforme necessário1565* O conteúdo de ferramenta não é registrado em spans de rastreamento por padrão. Para incluí-lo, defina `OTEL_LOG_TOOL_CONTENT=1`. O span `claude_code.tool` então carrega um [evento de span `tool.output`](#tool-output-span-event) com conteúdos de arquivo brutos e saída de comando Bash, truncado no limite de conteúdo (60 KB por padrão) por atributo. O conteúdo de ferramenta também alcança spans através de [`new_context`, cujo controle difere por span](#new-context-gates). Configure seu backend de telemetria para filtrar ou reduzir esses atributos conforme necessário

1536* Corpos de solicitação e resposta da API Anthropic Messages brutos não são registrados por padrão. Para incluí-los, defina `OTEL_LOG_RAW_API_BODIES` em suas configurações de shell, usuário ou gerenciadas. É ignorado em [configurações de projeto e local](/docs/pt/settings-reference#variables-claude-code-ignores-in-env). Os corpos contêm o histórico de conversa completo, incluindo o prompt do sistema, cada turno anterior de usuário e assistente, e resultados de ferramenta, portanto ativar isso implica consentimento para tudo que os outros sinalizadores de conteúdo `OTEL_LOG_*` revelariam. O Claude Code sempre reduz o conteúdo de pensamento estendido do Claude desses corpos, independentemente de outras configurações. O valor que você define determina como o Claude Code entrega os corpos:1566* Corpos de solicitação e resposta da API Anthropic Messages brutos não são registrados por padrão. Para incluí-los, defina `OTEL_LOG_RAW_API_BODIES` em suas configurações de shell, usuário ou gerenciadas. É ignorado em [configurações de projeto e local](/docs/pt/settings-reference#variables-claude-code-ignores-in-env). Os corpos contêm o histórico de conversa completo, incluindo o prompt do sistema, cada turno anterior de usuário e assistente, e resultados de ferramenta, portanto ativar isso implica consentimento para tudo que os outros sinalizadores de conteúdo `OTEL_LOG_*` revelariam. O Claude Code sempre reduz o conteúdo de pensamento estendido do Claude desses corpos, independentemente de outras configurações. O valor que você define determina como o Claude Code entrega os corpos:

1537 * Com `=1`, Claude Code emite eventos de log `api_request_body` e `api_response_body` para cada chamada de API. O atributo `body` dos eventos carrega a carga útil serializada em JSON, truncada no limite de conteúdo (60 KB por padrão)1567 * Com `=1`, Claude Code emite eventos de log `api_request_body` e `api_response_body` para cada chamada de API. O atributo `body` dos eventos carrega a carga útil serializada em JSON, truncada no limite de conteúdo (60 KB por padrão)

1538 * Com `=file:<dir>`, Claude Code escreve corpos não truncados em arquivos `.request.json` e `.response.json` sob esse diretório, e os eventos carregam um caminho `body_ref` em vez do corpo inline. Envie o diretório com um coletor de log ou sidecar em vez de através do fluxo de telemetria1568 * Com `=file:<dir>`, Claude Code escreve corpos não truncados em arquivos `.request.json` e `.response.json` sob esse diretório, e os eventos carregam um caminho `body_ref` em vez do corpo inline. Envie o diretório com um coletor de log ou sidecar em vez de através do fluxo de telemetria.

1569 

1570 Para cada resposta bem-sucedida, Claude Code também anexa uma linha a `index.jsonl` nesse diretório, vinculando o arquivo de resposta ao arquivo de solicitação que o produziu e à mensagem de transcrição em que se tornou. Cada linha não contém conteúdo de mensagem, e a seção [evento de corpo de resposta da API](#api-response-body-event) lista seus campos. O arquivo de índice requer Claude Code v2.1.274 ou posterior

1539 1571 

1540<h2 id="monitor-claude-code-on-amazon-bedrock">1572<h2 id="monitor-claude-code-on-amazon-bedrock">

1541 Monitorar Claude Code no Amazon Bedrock1573 Monitorar Claude Code no Amazon Bedrock

Details

34 34 

35Escolha um estilo de uma destas formas:35Escolha um estilo de uma destas formas:

36 36 

37* **Comando `/output-style`**: execute `/output-style <style>` para alternar, por exemplo `/output-style concise`. Sem argumentos, o comando lista os estilos que você pode escolher e marca o atual. Claude Code salva sua seleção em `.claude/settings.local.json` no [nível do projeto local](/docs/pt/settings).

38 

39 O comando também funciona em [modo não interativo](/docs/pt/headless) e sessões do Agent SDK, e do aplicativo móvel ou web via [Controle Remoto](/docs/pt/remote-control#limitations), onde você pode listar e selecionar apenas [estilos integrados](#built-in-output-styles). Requer Claude Code v2.1.269 ou posterior.

37* **Terminal**: execute `/config` e selecione **Output style** para escolher um estilo de um menu. Claude Code salva sua seleção em `.claude/settings.local.json` no [nível do projeto local](/docs/pt/settings).40* **Terminal**: execute `/config` e selecione **Output style** para escolher um estilo de um menu. Claude Code salva sua seleção em `.claude/settings.local.json` no [nível do projeto local](/docs/pt/settings).

38* **Extensão VS Code**: abra o [menu de comandos](/docs/pt/vs-code#use-the-prompt-box) com `/` e selecione **Output styles** para escolher um estilo, incluindo seus estilos personalizados. Claude Code salva sua seleção em `.claude/settings.local.json`, o mesmo arquivo que o menu do terminal escreve. Requer Claude Code v2.1.257 ou posterior.41* **Extensão VS Code**: abra o [menu de comandos](/docs/pt/vs-code#use-the-prompt-box) com `/` e selecione **Output styles** para escolher um estilo, incluindo seus estilos personalizados. Claude Code salva sua seleção em `.claude/settings.local.json`, o mesmo arquivo que o menu do terminal escreve. Requer Claude Code v2.1.257 ou posterior.

39* **Aplicativo Desktop**: defina o campo `outputStyle` em um arquivo de configurações, por exemplo `.claude/settings.local.json`, o arquivo que o menu do terminal escreve. Quando você executa `/config` lá, Claude Code [abre **Settings > Claude Code**](/docs/pt/desktop#what%E2%80%99s-not-available-in-desktop) em vez de um menu.42* **Aplicativo Desktop**: defina o campo `outputStyle` em um arquivo de configurações, por exemplo `.claude/settings.local.json`, o arquivo que o menu do terminal escreve. Quando você executa `/config` lá, Claude Code [abre **Settings > Claude Code**](/docs/pt/desktop#what%E2%80%99s-not-available-in-desktop) em vez de um menu.

40 43 

41<Note>O comando `/output-style` independente foi descontinuado na v2.1.73 e removido na v2.1.91. Use `/config` ou edite a configuração `outputStyle` diretamente.</Note>

42 

43Para definir um estilo sem o menu, edite o campo `outputStyle` diretamente em um arquivo de configurações:44Para definir um estilo sem o menu, edite o campo `outputStyle` diretamente em um arquivo de configurações:

44 45 

45```json theme={null}46```json theme={null}


90 </Step>91 </Step>

91 92 

92 <Step title="Mude para seu estilo">93 <Step title="Mude para seu estilo">

93 Execute `/config` no terminal e selecione seu estilo em **Output style**. Claude usa o novo estilo a partir da sua próxima mensagem. No terminal, Claude Code lê arquivos de estilo quando inicia, portanto, se você criar ou editar um durante uma sessão em execução, reinicie Claude Code para aplicar a alteração.94 Execute `/output-style <style>` no terminal, ou execute `/config` e selecione seu estilo em **Output style**. Claude usa o novo estilo a partir da sua próxima mensagem. No terminal, Claude Code lê arquivos de estilo quando inicia, portanto, se você criar ou editar um durante uma sessão em execução, reinicie Claude Code para aplicar a alteração.

94 </Step>95 </Step>

95</Steps>96</Steps>

96 97 

overview.md +5 −5

Details

117 </Tab>117 </Tab>

118 118 

119 <Tab title="Web">119 <Tab title="Web">

120 Execute Claude Code em seu navegador sem configuração local. Inicie tarefas de longa duração e volte quando estiverem prontas, trabalhe em repositórios que você não tem localmente ou execute várias tarefas em paralelo. Disponível em navegadores de desktop e [no aplicativo Claude para iOS e Android](/docs/pt/mobile).120 Execute Claude Code em seu navegador sem configuração local. Inicie tarefas de longa duração e volte quando estiverem prontas, trabalhe em repositórios que você não tem localmente ou execute várias tarefas em paralelo. Para um corpo maior de trabalho, crie um [projeto](/docs/pt/claude-projects) e deixe Claude coordenar as sessões paralelas para você. Disponível em navegadores de desktop e [no aplicativo Claude para iOS e Android](/docs/pt/mobile).

121 121 

122 Comece a codificar em [claude.ai/code](https://claude.ai/code).122 Comece a codificar em [claude.ai/code](https://claude.ai/code).

123 123 

124 [Comece na web →](/docs/pt/web-quickstart)124 [Comece →](/docs/pt/web-quickstart)

125 </Tab>125 </Tab>

126 126 

127 <Tab title="JetBrains">127 <Tab title="JetBrains">


169 </Accordion>169 </Accordion>

170 170 

171 <Accordion title="Personalize com instruções, skills e hooks" icon="sliders">171 <Accordion title="Personalize com instruções, skills e hooks" icon="sliders">

172 [`CLAUDE.md`](/docs/pt/memory) é um arquivo markdown que você adiciona à raiz do seu projeto que Claude Code lê no início de cada sessão. Use-o para definir padrões de codificação, decisões de arquitetura, bibliotecas preferidas e listas de verificação de revisão. Claude também constrói [memória automática](/docs/pt/memory#auto-memory) conforme funciona, salvando aprendizados em sessões sem você escrever nada.172 [`CLAUDE.md`](/docs/pt/memory) é um arquivo markdown que você adiciona à raiz do seu projeto que Claude Code lê no início de cada sessão. Use-o para definir padrões de codificação, decisões de arquitetura, bibliotecas preferidas e listas de verificação de revisão. Se seu repositório já tiver um `AGENTS.md` para outros agentes de codificação, Claude Code [pode ler isso](/docs/pt/memory#agents-md) por conta própria ou junto com `CLAUDE.md`. Claude também constrói [memória automática](/docs/pt/memory#auto-memory) conforme funciona, salvando aprendizados em sessões sem você escrever nada.

173 173 

174 Crie [skills](/docs/pt/skills) para empacotar fluxos de trabalho repetíveis que sua equipe pode compartilhar, como `/review-pr` ou `/deploy-staging`.174 Crie [skills](/docs/pt/skills) para empacotar fluxos de trabalho repetíveis que sua equipe pode compartilhar, como `/review-pr` ou `/deploy-staging`.

175 175 


227Além dos ambientes [Terminal](/docs/pt/quickstart), [VS Code](/docs/pt/vs-code), [JetBrains](/docs/pt/jetbrains), [Desktop](/docs/pt/desktop) e [Web](/docs/pt/claude-code-on-the-web) acima, Claude Code se integra com CI/CD, chat e fluxos de trabalho do navegador:227Além dos ambientes [Terminal](/docs/pt/quickstart), [VS Code](/docs/pt/vs-code), [JetBrains](/docs/pt/jetbrains), [Desktop](/docs/pt/desktop) e [Web](/docs/pt/claude-code-on-the-web) acima, Claude Code se integra com CI/CD, chat e fluxos de trabalho do navegador:

228 228 

229| Eu quero... | Melhor opção |229| Eu quero... | Melhor opção |

230| --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |230| --------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |

231| Continuar uma sessão local do meu telefone ou outro dispositivo | [Remote Control](/docs/pt/remote-control) |231| Continuar uma sessão local do meu telefone ou outro dispositivo | [Remote Control](/docs/pt/remote-control) |

232| Enviar eventos do Telegram, Discord, iMessage ou meus próprios webhooks para uma sessão | [Channels](/docs/pt/channels) |232| Enviar eventos do Telegram, Discord, iMessage ou meus próprios webhooks para uma sessão | [Channels](/docs/pt/channels) |

233| Iniciar uma tarefa localmente, continuar no celular | [`claude --cloud`](/docs/pt/claude-code-on-the-web#from-terminal-to-web), depois o [aplicativo Claude mobile](/docs/pt/mobile) |233| Iniciar uma tarefa localmente, continuar no celular | [`claude --cloud`](/docs/pt/claude-code-on-the-web#from-terminal-to-cloud), depois o [aplicativo Claude mobile](/docs/pt/mobile) |

234| Executar Claude em um cronograma recorrente | [Routines](/docs/pt/routines) ou [Tarefas agendadas do Desktop](/docs/pt/desktop-scheduled-tasks) |234| Executar Claude em um cronograma recorrente | [Routines](/docs/pt/routines) ou [Tarefas agendadas do Desktop](/docs/pt/desktop-scheduled-tasks) |

235| Automatizar revisões de PR e triagem de problemas | [GitHub Actions](/docs/pt/github-actions) ou [GitLab CI/CD](/docs/pt/gitlab-ci-cd) |235| Automatizar revisões de PR e triagem de problemas | [GitHub Actions](/docs/pt/github-actions) ou [GitLab CI/CD](/docs/pt/gitlab-ci-cd) |

236| Obter revisão automática de código em cada PR | [GitHub Code Review](/docs/pt/code-review) |236| Obter revisão automática de código em cada PR | [GitHub Code Review](/docs/pt/code-review) |

Details

42* Ferramentas que requerem interação do usuário: a ferramenta integrada `AskUserQuestion` e ferramentas MCP marcadas [`requiresUserInteraction`](/docs/pt/mcp#require-approval-for-a-specific-tool)42* Ferramentas que requerem interação do usuário: a ferramenta integrada `AskUserQuestion` e ferramentas MCP marcadas [`requiresUserInteraction`](/docs/pt/mcp#require-approval-for-a-specific-tool)

43* Remoções `rm` e `rmdir` direcionadas a um [caminho crítico](#critical-paths), que nenhuma regra de permissão ou hook `PreToolUse` `"allow"` aprova43* Remoções `rm` e `rmdir` direcionadas a um [caminho crítico](#critical-paths), que nenhuma regra de permissão ou hook `PreToolUse` `"allow"` aprova

44* As [salvaguardas de mensagens entre sessões](#skip-all-checks-with-bypasspermissions-mode)44* As [salvaguardas de mensagens entre sessões](#skip-all-checks-with-bypasspermissions-mode)

45* Leituras fora dos diretórios de trabalho enquanto [`permissions.blockReadsOutsideWorkingDirectories`](/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) está ativado: comandos Bash reconhecidos de leitura de arquivo e qualquer [retry não-sandboxizado](/docs/pt/sandboxing#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 posterior45* Leituras fora dos diretórios de trabalho enquanto [`permissions.blockReadsOutsideWorkingDirectories`](/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) está ativado: comandos Bash reconhecidos de leitura de arquivo e qualquer [retry não-sandboxizado](/docs/pt/sandboxing#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.

46 

47 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](/docs/pt/sandboxing) e o sandbox impõe o bloqueio.

46 48 

47<h2 id="common-setups">49<h2 id="common-setups">

48 Configurações comuns50 Configurações comuns


56| Iterar localmente com menos prompts, sem um classificador | Modo Manual mais o sandbox Bash em [modo auto-allow](/docs/pt/sandboxing#sandbox-modes): `claude --permission-mode default`, depois execute `/sandbox` e selecione auto-allow | O sandbox Bash integrado, em macOS, Linux e WSL2 | Regras de negação ainda se aplicam, e regras de solicitação que nomeiam um comando, como `Bash(git push *)`, ainda solicitam. Para ativar o sandbox a partir de um arquivo de configurações em vez disso, defina [`sandbox.enabled`](/docs/pt/settings-reference#sandbox-enabled) como `true` |58| Iterar localmente com menos prompts, sem um classificador | Modo Manual mais o sandbox Bash em [modo auto-allow](/docs/pt/sandboxing#sandbox-modes): `claude --permission-mode default`, depois execute `/sandbox` e selecione auto-allow | O sandbox Bash integrado, em macOS, Linux e WSL2 | Regras de negação ainda se aplicam, e regras de solicitação que nomeiam um comando, como `Bash(git push *)`, ainda solicitam. Para ativar o sandbox a partir de um arquivo de configurações em vez disso, defina [`sandbox.enabled`](/docs/pt/settings-reference#sandbox-enabled) como `true` |

57| Explorar antes de alterar qualquer coisa | `claude --permission-mode plan` | Nenhum | Claude Code bloqueia edições até que você [aprove um plano](#review-and-approve-a-plan) |59| Explorar antes de alterar qualquer coisa | `claude --permission-mode plan` | Nenhum | Claude Code bloqueia edições até que você [aprove um plano](#review-and-approve-a-plan) |

58| Trabalhar sem supervisão em modo automático | `claude --permission-mode auto`, o [modo de permissão inicial integrado](#which-mode-a-session-starts-in) em Pro, Max e Team | Nenhum; um sandbox ou contêiner adiciona defesa em profundidade | Requer um [modelo suportado](#eliminate-prompts-with-auto-mode), e sua organização pode [desativar o modo automático](#eliminate-prompts-with-auto-mode) |60| Trabalhar sem supervisão em modo automático | `claude --permission-mode auto`, o [modo de permissão inicial integrado](#which-mode-a-session-starts-in) em Pro, Max e Team | Nenhum; um sandbox ou contêiner adiciona defesa em profundidade | Requer um [modelo suportado](#eliminate-prompts-with-auto-mode), e sua organização pode [desativar o modo automático](#eliminate-prompts-with-auto-mode) |

59| Executar em CI com uma lista de permissões exata | `claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"` | Nenhum além do que seu executor de CI fornece | [Claude Code na web](/docs/pt/claude-code-on-the-web) ignora `dontAsk` de arquivos de configurações |61| Executar em CI com uma lista de permissões exata | `claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"` | Nenhum além do que seu executor de CI fornece | [Cloud sessions](/docs/pt/claude-code-on-the-web) ignora `dontAsk` de arquivos de configurações |

60| Executar totalmente sem supervisão dentro de um contêiner | `claude -p "<prompt>" --dangerously-skip-permissions` | Obrigatório: um contêiner, VM ou o [runtime do sandbox](/docs/pt/sandbox-environments#sandbox-runtime); em Linux e macOS, execute como um [usuário não-root](#skip-all-checks-with-bypasspermissions-mode) | Claude Code na web ignora este modo de arquivos de configurações. Nesta execução `-p`, as [poucas chamadas que ainda solicitariam](#skip-all-checks-with-bypasspermissions-mode) são negadas em vez disso |62| Executar totalmente sem supervisão dentro de um contêiner | `claude -p "<prompt>" --dangerously-skip-permissions` | Obrigatório: um contêiner, VM ou o [runtime do sandbox](/docs/pt/sandbox-environments#sandbox-runtime); em Linux e macOS, execute como um [usuário não-root](#skip-all-checks-with-bypasspermissions-mode) | Cloud sessions ignora este modo de arquivos de configurações. Nesta execução `-p`, as [poucas chamadas que ainda solicitariam](#skip-all-checks-with-bypasspermissions-mode) são negadas em vez disso |

61 63 

62O sandbox Bash e o modo automático funcionam independentemente e se combinam, exceto no modo plan, onde [auto-allow não amplia aprovações](/docs/pt/sandboxing#sandbox-modes). Para a interação completa, veja [Como sandboxing se relaciona com permissões e modos de permissão](/docs/pt/sandboxing#how-sandboxing-relates-to-permissions-and-permission-modes) e [Como isolamento se relaciona com modos de permissão](/docs/pt/sandbox-environments#how-isolation-relates-to-permission-modes).64O sandbox Bash e o modo automático funcionam independentemente e se combinam, com as exceções listadas em [Sandbox modes](/docs/pt/sandboxing#sandbox-modes). Para a interação completa, veja [Como sandboxing se relaciona com permissões e modos de permissão](/docs/pt/sandboxing#how-sandboxing-relates-to-permissions-and-permission-modes) e [Como isolamento se relaciona com modos de permissão](/docs/pt/sandbox-environments#how-isolation-relates-to-permission-modes).

63 65 

64<h2 id="which-mode-a-session-starts-in">66<h2 id="which-mode-a-session-starts-in">

65 Qual modo uma sessão inicia67 Qual modo uma sessão inicia


211 <Tab title="Web and mobile">213 <Tab title="Web and mobile">

212 Use o dropdown de modo ao lado da caixa de prompt em [claude.ai/code](https://claude.ai/code) ou no aplicativo móvel. Prompts de permissão aparecem no claude.ai para aprovação. Quais modos aparecem depende de onde a sessão é executada:214 Use o dropdown de modo ao lado da caixa de prompt em [claude.ai/code](https://claude.ai/code) ou no aplicativo móvel. Prompts de permissão aparecem no claude.ai para aprovação. Quais modos aparecem depende de onde a sessão é executada:

213 215 

214 * **Sessões em nuvem** em [Claude Code na web](/docs/pt/claude-code-on-the-web): Accept edits, Plan e Auto. Accept edits corresponde ao modo `default`: sessões em nuvem pré-aprovam edições de arquivo independentemente do modo, então o dropdown mostra Accept edits em vez de Manual. Sessões em nuvem ainda honram `defaultMode: "acceptEdits"` de configurações. O modo Auto aparece apenas quando sua organização o permite e o modelo selecionado o suporta. Bypass permissions não está disponível.216 * **[Sessões em nuvem](/docs/pt/claude-code-on-the-web)**: Accept edits, Plan e Auto. Accept edits corresponde ao modo `default`: sessões em nuvem pré-aprovam edições de arquivo independentemente do modo, então o dropdown mostra Accept edits em vez de Manual. Sessões em nuvem ainda honram `defaultMode: "acceptEdits"` de configurações. O modo Auto aparece apenas quando sua organização o permite e o modelo selecionado o suporta. Bypass permissions não está disponível.

215 * **Sessões de [Remote Control](/docs/pt/remote-control)** em sua máquina local: Manual, Accept edits e Plan. Você não pode selecionar Auto ou Bypass permissions do aplicativo.217 * **[Sessões de Remote Control](/docs/pt/remote-control)** em sua máquina local: Manual, Accept edits e Plan. Você não pode selecionar Auto ou Bypass permissions do aplicativo.

216 * Exceto por Bypass permissions, o dropdown mostra o modo de permissão em que a sessão local está, incluindo um definido do terminal. Ele atualiza quando o modo de permissão muda no aplicativo ou no terminal. A sessão nunca relata Bypass permissions ao claude.ai, então alternar para ele do terminal não muda o que o dropdown mostra.218 * Exceto por Bypass permissions, o dropdown mostra o modo de permissão em que a sessão local está, incluindo um definido do terminal. Ele atualiza quando o modo de permissão muda no aplicativo ou no terminal. A sessão nunca relata Bypass permissions ao claude.ai, então alternar para ele do terminal não muda o que o dropdown mostra.

217 * Sessões hospedadas pelo [aplicativo de desktop](/docs/pt/desktop) ou pela [extensão VS Code](/docs/pt/vs-code) relatam mudanças de modo de permissão ao claude.ai conforme acontecem, da mesma forma que sessões hospedadas em um terminal.219 * Sessões hospedadas pelo [aplicativo de desktop](/docs/pt/desktop) ou pela [extensão VS Code](/docs/pt/vs-code) relatam mudanças de modo de permissão ao claude.ai conforme acontecem, da mesma forma que sessões hospedadas em um terminal.

218 * Antes de v2.1.202, sessões conectadas com `/remote-control` ou `claude --remote-control` não relatavam seu modo de permissão, então claude.ai e o aplicativo móvel poderiam mostrar um modo em que a sessão não estava. A incompatibilidade afetava apenas o rótulo. Claude Code gerou prompts de permissão a partir do modo de permissão real da sessão, e eles ainda apareciam no aplicativo para aprovação.220 * Antes de v2.1.202, sessões conectadas com `/remote-control` ou `claude --remote-control` não relatavam seu modo de permissão, então claude.ai e o aplicativo móvel poderiam mostrar um modo em que a sessão não estava. A incompatibilidade afetava apenas o rótulo. Claude Code gerou prompts de permissão a partir do modo de permissão real da sessão, e eles ainda apareciam no aplicativo para aprovação.


326 328 

327Em v2.1.158 até v2.1.206, o modo automático estava desativado nesses provedores até que você definisse `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, e Claude Code ignorava `defaultMode: "auto"` nesses provedores a menos que a variável também fosse definida. A variável ainda é aceita para compatibilidade e não tem efeito a partir de v2.1.207 em diante.329Em v2.1.158 até v2.1.206, o modo automático estava desativado nesses provedores até que você definisse `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, e Claude Code ignorava `defaultMode: "auto"` nesses provedores a menos que a variável também fosse definida. A variável ainda é aceita para compatibilidade e não tem efeito a partir de v2.1.207 em diante.

328 330 

331<h4 id="server-side-classifier-review">

332 Revisão do classificador no lado do servidor

333</h4>

334 

335No Amazon Bedrock, Agent Platform do Google Cloud e Microsoft Foundry, Claude Code revisa ações do modo automático com suas próprias solicitações do classificador por padrão. Para fazer com que o classificador no lado do servidor da plataforma revise [as ações que vão para o classificador](#how-the-classifier-evaluates-actions) como parte das solicitações do modelo da sessão em vez disso, defina [`CLAUDE_CODE_AUTO_MODE_SERVER=1`](/docs/pt/env-vars). Onde a plataforma executa o classificador, seus veredictos decidem essas ações; onde não executa, Claude Code volta para suas próprias solicitações do classificador. Em v2.1.271 e v2.1.272, pedir à plataforma era o padrão nesses provedores.

336 

329<h3 id="what-the-classifier-blocks-by-default">337<h3 id="what-the-classifier-blocks-by-default">

330 O que o classificador bloqueia por padrão338 O que o classificador bloqueia por padrão

331</h3>339</h3>


419* Envio de dados para os domínios confiáveis, buckets e serviços que você lista em [`environment`](/docs/pt/auto-mode-config#define-trusted-infrastructure). Isso cobre apenas fluxo de dados, não operações destrutivas ou de credencial na mesma infraestrutura427* Envio de dados para os domínios confiáveis, buckets e serviços que você lista em [`environment`](/docs/pt/auto-mode-config#define-trusted-infrastructure). Isso cobre apenas fluxo de dados, não operações destrutivas ou de credencial na mesma infraestrutura

420* [Claude no Chrome](/docs/pt/chrome) navegação para um domínio interno confiável, localhost ou uma URL que você nomeou428* [Claude no Chrome](/docs/pt/chrome) navegação para um domínio interno confiável, localhost ou uma URL que você nomeou

421 429 

422As solicitações de acesso à rede do sandbox são roteadas através do classificador em vez de serem permitidas por padrão. A partir de v2.1.198, o classificador reutiliza seu veredicto para um host e porta de rede em vez de re-executar em cada conexão:430Comandos em sandbox não obtêm acesso à rede por padrão. Claude nomeia os hosts que um comando precisa no próprio comando, o classificador os revisa com o comando, e uma lista aprovada abre esses hosts apenas para esse comando. [Domínios permitidos por comando](/docs/pt/sandboxing#per-command-allowed-domains-in-auto-mode) cobre o que uma lista pode e não pode abrir e o que acontece quando um comando tenta acessar um host não listado.

423 

424* Um allow é reutilizado até que novo conteúdo entre na conversa, ponto em que esse host é verificado novamente

425* Claude Code v2.1.234 e posterior reutilizam um deny causado pela conversa ultrapassando a janela de contexto do classificador até que novo conteúdo entre na conversa, ou até que [compactação](/docs/pt/costs#reduce-token-usage) encolha o que o classificador lê. Claude Code então verifica o host novamente

426* Um deny que o classificador alcançou avaliando a solicitação dura para o turno na CLI interativa. Em [modo não-interativo](/docs/pt/headless) e sessões do Agent SDK, Claude Code reutiliza esse deny para o resto da execução, porque essas sessões não têm limite de turno

427* Alterar seu modo de permissão ou regras descarta todos os veredictos em cache

428 431 

429Execute `claude auto-mode defaults` para imprimir as listas de regras completas como JSON. Se ações rotineiras forem bloqueadas, um administrador pode adicionar repos, buckets e serviços confiáveis via configuração `autoMode.environment`: veja [Configurar modo automático](/docs/pt/auto-mode-config).432Execute `claude auto-mode defaults` para imprimir as listas de regras completas como JSON. Se ações rotineiras forem bloqueadas, um administrador pode adicionar repos, buckets e serviços confiáveis via configuração `autoMode.environment`: veja [Configurar modo automático](/docs/pt/auto-mode-config).

430 433 


471 <Accordion title="Como o classificador avalia ações">474 <Accordion title="Como o classificador avalia ações">

472 Cada ação passa por uma ordem de decisão fixa. O primeiro passo correspondente vence:475 Cada ação passa por uma ordem de decisão fixa. O primeiro passo correspondente vence:

473 476 

474 1. Ações correspondentes a suas [regras de permissão, solicitação ou negação](/docs/pt/permissions#manage-permissions) resolvem imediatamente. Gravações em [caminhos protegidos](#protected-paths) são roteadas para o classificador mesmo quando uma regra de permissão corresponde, e assim como remoções `rm` e `rmdir` direcionadas a um [caminho crítico](#critical-paths) em Claude Code v2.1.218 e posterior. Ferramentas MCP marcadas [`requiresUserInteraction`](/docs/pt/mcp#require-approval-for-a-specific-tool) o solicitam diretamente mesmo quando uma regra de permissão corresponde, e assim como ferramentas de conector [que sua organização definiu como `ask`](/docs/pt/mcp#organization-controls-on-connector-tools) em sessões onde essa configuração chega a Claude Code. Regras de solicitação que correspondem no conteúdo de um comando, como `Bash(git push *)`, voltam para um prompt de permissão477 1. Ações correspondentes a suas [regras de permissão, solicitação ou negação](/docs/pt/permissions#manage-permissions) resolvem imediatamente, com estas exceções:

478 * Gravações em [caminhos protegidos](#protected-paths) são roteadas para o classificador mesmo quando uma regra de permissão corresponde, e assim como remoções `rm` e `rmdir` direcionadas a um [caminho crítico](#critical-paths) em Claude Code v2.1.218 e posterior

479 * Ferramentas MCP marcadas [`requiresUserInteraction`](/docs/pt/mcp#require-approval-for-a-specific-tool) o solicitam diretamente mesmo quando uma regra de permissão corresponde, e assim como ferramentas de conector [que sua organização definiu como `ask`](/docs/pt/mcp#organization-controls-on-connector-tools) em sessões onde essa configuração chega a Claude Code

480 * Um comando shell que carrega [domínios permitidos por comando](/docs/pt/sandboxing#per-command-allowed-domains-in-auto-mode) também é roteado para o classificador mesmo quando uma regra de permissão corresponde, porque uma regra aprova o comando, não seus hosts

481 * Regras de solicitação que correspondem no conteúdo de um comando, como `Bash(git push *)`, voltam para um prompt de permissão

475 2. Ações somente leitura e edições de arquivo em seu diretório de trabalho são auto-aprovadas, exceto gravações em [caminhos protegidos](#protected-paths) e [a primeira leitura fora dos diretórios de trabalho](#first-read-outside-the-working-directories), que o solicita482 2. Ações somente leitura e edições de arquivo em seu diretório de trabalho são auto-aprovadas, exceto gravações em [caminhos protegidos](#protected-paths) e [a primeira leitura fora dos diretórios de trabalho](#first-read-outside-the-working-directories), que o solicita

476 3. Tudo mais vai para o classificador. As ferramentas de conector e ferramentas MCP marcadas [`requiresUserInteraction`](/docs/pt/mcp#require-approval-for-a-specific-tool) que o solicitam diretamente na etapa 1 nunca chegam ao classificador, então uma aprovação exigida pela organização nem uma etapa de consentimento é auto-aprovada483 3. Tudo mais vai para o classificador. As ferramentas de conector e ferramentas MCP marcadas [`requiresUserInteraction`](/docs/pt/mcp#require-approval-for-a-specific-tool) que o solicitam diretamente na etapa 1 nunca chegam ao classificador, então uma aprovação exigida pela organização nem uma etapa de consentimento é auto-aprovada

477 4. Se o classificador bloquear, Claude recebe o motivo e tenta uma alternativa. Na maioria das sessões o motivo nomeia a regra que o classificador correspondeu, como `[Data Exfiltration]`, em vez de dar uma explicação escrita; veja [Revisar negações](/docs/pt/auto-mode-config#review-denials)484 4. Se o classificador bloquear, Claude recebe o motivo e tenta uma alternativa. Na maioria das sessões o motivo nomeia a regra que o classificador correspondeu, como `[Data Exfiltration]`, em vez de dar uma explicação escrita; veja [Revisar negações](/docs/pt/auto-mode-config#review-denials)


488 495 

489 Claude Code também executa `git status` ele mesmo antes de um comando que descartaria trabalho não confirmado, como `git reset --hard` ou `rm -rf`, e mostra ao classificador se há trabalho preparado, modificado ou não rastreado presente. Claude Code relata arquivos não rastreados nessa verificação mesmo quando a configuração git do repositório define `status.showUntrackedFiles=no`.496 Claude Code também executa `git status` ele mesmo antes de um comando que descartaria trabalho não confirmado, como `git reset --hard` ou `rm -rf`, e mostra ao classificador se há trabalho preparado, modificado ou não rastreado presente. Claude Code relata arquivos não rastreados nessa verificação mesmo quando a configuração git do repositório define `status.showUntrackedFiles=no`.

490 497 

491 O classificador vê mensagens de usuário, chamadas de ferramenta diferentes de lookups somente leitura como leituras de arquivo e pesquisas, e seu conteúdo CLAUDE.md. Os resultados da ferramenta são removidos, então conteúdo hostil em um arquivo ou página da web não consegue manipulá-lo diretamente. Você pode anotar o resultado de uma chamada com um campo [`classifierContext`](/docs/pt/hooks#annotate-a-result-for-the-auto-mode-classifier) do hook PostToolUse, que o classificador lê como contexto fornecido pela aplicação.498 Nas solicitações do classificador enviadas por Claude Code, o classificador vê mensagens de usuário, chamadas de ferramenta diferentes de lookups somente leitura como leituras de arquivo e pesquisas, e seu conteúdo CLAUDE.md. Os resultados da ferramenta são removidos, então conteúdo hostil em um arquivo ou página da web não consegue manipular o classificador diretamente.

499 

500 Você pode anotar o resultado de uma chamada com um campo [`classifierContext`](/docs/pt/hooks#annotate-a-result-for-the-auto-mode-classifier) do hook PostToolUse, que o classificador lê como contexto fornecido pela aplicação. O campo requer Claude Code v2.1.236 ou posterior.

492 501 

493 Uma sonda separada do lado do servidor verifica os resultados da ferramenta recebidos e sinaliza conteúdo suspeito antes que Claude o leia. Para mais sobre como essas camadas funcionam juntas, veja o [anúncio do modo automático](https://claude.com/blog/auto-mode) e o [aprofundamento de engenharia](https://www.anthropic.com/engineering/claude-code-auto-mode).502 Uma sonda separada no lado do servidor verifica os resultados da ferramenta recebidos e sinaliza conteúdo suspeito antes que Claude o leia. Para mais sobre como essas camadas funcionam juntas, veja o [anúncio do modo automático](https://claude.com/blog/auto-mode) e o [aprofundamento de engenharia](https://www.anthropic.com/engineering/claude-code-auto-mode).

494 </Accordion>503 </Accordion>

495 504 

496 <Accordion title="Como o modo automático lida com subagentes">505 <Accordion title="Como o modo automático lida com subagentes">


498 507 

499 1. Antes de um subagente começar, a descrição da tarefa delegada é avaliada, então uma tarefa que parece perigosa é bloqueada no tempo de spawn.508 1. Antes de um subagente começar, a descrição da tarefa delegada é avaliada, então uma tarefa que parece perigosa é bloqueada no tempo de spawn.

500 2. Enquanto o subagente executa, cada uma de suas ações passa pelo classificador com as mesmas regras que a sessão pai, e qualquer `permissionMode` no frontmatter do subagente é ignorado.509 2. Enquanto o subagente executa, cada uma de suas ações passa pelo classificador com as mesmas regras que a sessão pai, e qualquer `permissionMode` no frontmatter do subagente é ignorado.

501 3. Quando o subagente termina, o classificador revisa seu histórico de ação completo; se essa verificação de retorno sinalizar uma preocupação, um aviso de segurança é adicionado aos resultados do subagente. Quando uma verificação de segurança de API separada recusa a solicitação de revisão em si, Claude Code ainda retorna os resultados do subagente, adicionados com um aviso de que o trabalho não foi revisado e deve ser tratado como não confiável.510 3. Quando o subagente termina, o classificador revisa seu trabalho e seu relatório final antes que o pai leia o relatório. Quando o classificador sinaliza o trabalho ou relatório do subagente, ou uma verificação de segurança de API separada recusa a revisão, o relatório ainda é entregue, precedido por um aviso de segurança. Quando o classificador não está disponível para a revisão, o relatório chega com uma nota para verificar o trabalho do subagente antes de agir com base nele.

502 511 

503 A etapa 1 requer Claude Code v2.1.178 ou posterior. Versões anteriores aplicavam o classificador nas etapas 2 e 3, mas não avaliavam a descrição da tarefa antes do subagente começar.512 A etapa 1 requer Claude Code v2.1.178 ou posterior. Versões anteriores aplicavam o classificador nas etapas 2 e 3, mas não avaliavam a descrição da tarefa antes do subagente começar.

504 </Accordion>513 </Accordion>


508 517 

509 A primeira solicitação de modo automático da sessão valida o padrão Sonnet 5: se a solicitação for bem-sucedida, Sonnet 5 permanece o modelo de classificador da sessão, e se falhar porque o modelo não está disponível, a sessão usa o fallback em vez disso. Depois que essa validação se resolve, o modelo do classificador não muda para a sessão.518 A primeira solicitação de modo automático da sessão valida o padrão Sonnet 5: se a solicitação for bem-sucedida, Sonnet 5 permanece o modelo de classificador da sessão, e se falhar porque o modelo não está disponível, a sessão usa o fallback em vez disso. Depois que essa validação se resolve, o modelo do classificador não muda para a sessão.

510 519 

511 Em planos Enterprise e em contas que usam a API Claude, [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), Amazon Bedrock, Agent Platform do Google Cloud ou Microsoft Foundry, chamadas do classificador contam para seu uso de token. Cada verificação envia uma porção da transcrição mais a ação pendente, adicionando uma volta antes da execução. Leituras e edições de diretório de trabalho fora de caminhos protegidos pulam o classificador, então a sobrecarga vem principalmente de comandos shell e operações de rede.520 Em planos Enterprise e em contas que usam a API Claude, [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), Amazon Bedrock, Agent Platform do Google Cloud ou Microsoft Foundry, chamadas do classificador contam para seu uso de token. Cada verificação envia uma porção da transcrição mais a ação pendente, adicionando uma volta antes da execução. Leituras e edições de diretório de trabalho fora de caminhos protegidos pulam o classificador, então a sobrecarga vem principalmente de comandos shell e operações de rede. No Amazon Bedrock, Agent Platform do Google Cloud e Microsoft Foundry, você pode mover a revisão para as solicitações do modelo da sessão em vez disso; veja [Revisão do classificador no lado do servidor](#server-side-classifier-review).

512 521 

513 O classificador reutiliza um veredicto de rede do sandbox para um host e porta, então conexões repetidas ao mesmo host não adicionam cada uma uma verificação. [O que o classificador bloqueia por padrão](#what-the-classifier-blocks-by-default) descreve quanto tempo um allow e um deny duram.522 O acesso à rede em sandbox não adiciona solicitações do classificador por conexão. O classificador julga [os hosts que um comando nomeia](/docs/pt/sandboxing#per-command-allowed-domains-in-auto-mode) junto com o comando em uma revisão, e Claude Code verifica cada conexão contra a lista aprovada sem chamar o classificador novamente.

514 </Accordion>523 </Accordion>

515</AccordionGroup>524</AccordionGroup>

516 525 


540 549 

541As [ações que nenhum modo auto-aprova](#actions-no-mode-auto-approves) ainda solicitam neste modo.550As [ações que nenhum modo auto-aprova](#actions-no-mode-auto-approves) ainda solicitam neste modo.

542 551 

543Duas [salvaguardas de mensagens entre sessões](/docs/pt/cross-session-messaging) ainda se aplicam neste modo, e em sessões de modo plan onde permissões de bypass estão disponíveis:552Duas [salvaguardas de mensagens entre sessões](/docs/pt/cross-session-messaging) ainda se aplicam neste modo, e em sessões de modo plan interativas onde permissões de bypass estão disponíveis:

544 553 

545* O prompt de aprovação [`isolatePeerMachines`](/docs/pt/settings-reference#isolatepeermachines) para mensagens para suas sessões além desta máquina ainda aparece.554* O prompt de aprovação [`isolatePeerMachines`](/docs/pt/settings-reference#isolatepeermachines) para mensagens para suas sessões além desta máquina ainda aparece.

546* Quando nenhum valor [`crossSessionInbound`](/docs/pt/cross-session-messaging#control-inbound-messages) se aplica, Claude Code mantém uma mensagem de entrada de outra de suas sessões para sua aprovação, e entrega sem perguntar apenas quando a sessão de envio se identifica como também ignorando prompts de permissão. Se você deixar o modo de permissão enquanto mensagens são mantidas, Claude Code re-aplica as regras de entrada e entrega qualquer mensagem mantida que elas agora aceitam.555* Quando nenhum valor [`crossSessionInbound`](/docs/pt/cross-session-messaging#control-inbound-messages) se aplica, Claude Code mantém uma mensagem de entrada de outra de suas sessões para sua aprovação, e entrega sem perguntar apenas quando a sessão de envio se identifica como também ignorando prompts de permissão. Se você deixar o modo de permissão enquanto mensagens são mantidas, Claude Code re-aplica as regras de entrada e entrega qualquer mensagem mantida que elas agora aceitam.

547 556 

548Em sessões com permissões de bypass disponíveis, Claude Code também não impõe os [bloqueios do modo plan](#analyze-before-you-edit-with-plan-mode). Claude ainda é instruído a planejar sem editar, mas uma edição de arquivo ou comando shell que ele tenta durante o planejamento é executado sem solicitar. [Regras de solicitação](/docs/pt/permissions#manage-permissions) explícitas e remoções `rm` e `rmdir` direcionadas a um [caminho crítico](#critical-paths) ainda solicitam.557Em sessões de terminal interativas com permissões de bypass disponíveis, Claude Code também não impõe os [bloqueios do modo plan](#analyze-before-you-edit-with-plan-mode). Claude ainda é instruído a planejar sem editar, mas uma edição de arquivo ou comando shell que ele tenta durante o planejamento é executado sem solicitar. [Regras de solicitação](/docs/pt/permissions#manage-permissions) explícitas e remoções `rm` e `rmdir` direcionadas a um [caminho crítico](#critical-paths) ainda solicitam.

558 

559O modo plan mantém seus bloqueios em qualquer lugar onde Claude Code é executado sem um terminal interativo, incluindo [execuções não-interativas](/docs/pt/headless) com `-p`, sessões do [Agent SDK](/docs/pt/agent-sdk/permissions#plan-mode-plan), e conversas no painel de chat da [extensão VS Code](/docs/pt/vs-code). Lá, `--allow-dangerously-skip-permissions` torna `bypassPermissions` selecionável depois.

549 560 

550<Warning>561<Warning>

551 Use este modo apenas em ambientes isolados como contêineres, VMs ou dev containers sem acesso à internet, onde Claude Code não consegue danificar seu sistema host.562 Use este modo apenas em ambientes isolados como contêineres, VMs ou dev containers sem acesso à internet, onde Claude Code não consegue danificar seu sistema host.


581 Caminhos protegidos592 Caminhos protegidos

582</h2>593</h2>

583 594 

584Gravações em um pequeno conjunto de caminhos nunca são auto-aprovadas, exceto no modo `bypassPermissions` e em sessões de modo plan com [permissões de bypass](#skip-all-checks-with-bypasspermissions-mode) disponíveis. Isso evita corrupção acidental do estado do repositório e da configuração própria do Claude.595Gravações em um pequeno conjunto de caminhos nunca são auto-aprovadas, exceto no modo `bypassPermissions` e em sessões de terminal interativo em modo plan com [permissões de bypass](#skip-all-checks-with-bypasspermissions-mode) disponíveis. Isso evita corrupção acidental do estado do repositório e da configuração própria do Claude.

585 596 

586| Modo | Gravações em caminhos protegidos |597| Modo | Gravações em caminhos protegidos |

587| :----------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |598| :----------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

588| `default`, `acceptEdits` | Solicitado |599| `default`, `acceptEdits` | Solicitado |

589| `plan` | Permitido em sessões com [permissões de bypass](#skip-all-checks-with-bypasspermissions-mode) disponíveis. Caso contrário, roteado para o classificador quando [modo automático](#eliminate-prompts-with-auto-mode) está disponível durante o planejamento, e solicitado quando não está |600| `plan` | Permitido em sessões de terminal interativo com [permissões de bypass](#skip-all-checks-with-bypasspermissions-mode) disponíveis. Caso contrário, roteado para o classificador quando [modo automático](#eliminate-prompts-with-auto-mode) está disponível durante o planejamento, e solicitado quando não está |

590| `auto` | Roteado para o classificador |601| `auto` | Roteado para o classificador |

591| `dontAsk` | Negado |602| `dontAsk` | Negado |

592| `bypassPermissions` | Permitido |603| `bypassPermissions` | Permitido |


649 660 

650Claude Code também trata um glob ou barra à direita diretamente sob uma variável de shell, como `rm -rf "$DIR"/*`, como uma remoção de caminho crítico, porque o comando se torna uma remoção da raiz do sistema de arquivos quando a variável está vazia.661Claude Code também trata um glob ou barra à direita diretamente sob uma variável de shell, como `rm -rf "$DIR"/*`, como uma remoção de caminho crítico, porque o comando se torna uma remoção da raiz do sistema de arquivos quando a variável está vazia.

651 662 

652Esconder a remoção dentro de substituição de comando com `$(...)` ou backticks, ou substituição de processo com `<(...)`, não pula a verificação. Claude Code encontra uma remoção de caminho crítico independentemente de estar dentro da substituição, como em `echo "$(rm -rf ~)"`, ou em outro lugar no mesmo comando.663Esconder a remoção dentro de uma subshell com `(...)`, um grupo de chaves com `{ ...; }`, substituição de comando com `$(...)` ou backticks, ou substituição de processo com `<(...)`, não pula a verificação. Claude Code encontra uma remoção de caminho crítico independentemente de estar dentro da forma aninhada, como em `(rm -rf ~)` ou `echo "$(rm -rf ~)"`, ou em outro lugar no mesmo comando.

653 664 

654<h3 id="remove-item-in-powershell">665<h3 id="remove-item-in-powershell">

655 Remove-Item em PowerShell666 Remove-Item em PowerShell

permissions.md +14 −3

Details

65 65 

66As regras são avaliadas em ordem: deny, depois ask, depois allow. A primeira correspondência nessa ordem determina o resultado, e a especificidade da regra não altera a ordem.66As regras são avaliadas em ordem: deny, depois ask, depois allow. A primeira correspondência nessa ordem determina o resultado, e a especificidade da regra não altera a ordem.

67 67 

68Uma regra deny ampla como `Bash(aws *)` bloqueia cada chamada correspondente, incluindo chamadas que também correspondem a uma regra allow mais estreita como `Bash(aws s3 ls)`, portanto uma regra deny não pode carregar exceções de lista de permissões. A mesma precedência se aplica entre ask e allow: uma regra ask correspondente solicita confirmação mesmo quando uma regra allow mais específica também corresponde à mesma chamada.68Uma regra deny ampla como `Bash(aws *)` bloqueia cada chamada correspondente, incluindo chamadas que também correspondem a uma regra allow mais estreita como `Bash(aws s3 ls)`. Uma regra allow não pode criar uma exceção de uma regra deny. A mesma precedência se aplica entre ask e allow: uma regra ask correspondente solicita confirmação mesmo quando uma regra allow mais específica também corresponde à mesma chamada.

69 69 

70As regras deny se comportam de forma diferente dependendo se nomeiam uma ferramenta ou definem o escopo de um padrão dentro de uma. Um nome de ferramenta simples como `Bash` remove a ferramenta do contexto do Claude completamente, então Claude nunca a vê. Se você adicionar tal regra no meio da sessão, Claude não pode chamar a ferramenta a partir de sua próxima chamada de ferramenta em diante; [Negando uma ferramenta inteira](/docs/pt/prompt-caching#denying-an-entire-tool) cobre o que acontece com uma definição que Claude já viu. Uma regra com escopo como `Bash(rm *)` deixa a ferramenta disponível e bloqueia chamadas correspondentes quando Claude tenta usá-las.70As regras deny se comportam de forma diferente dependendo se nomeiam uma ferramenta ou definem o escopo de um padrão dentro de uma. Um nome de ferramenta simples como `Bash` remove a ferramenta do contexto do Claude completamente, então Claude nunca a vê. Se você adicionar tal regra no meio da sessão, Claude não pode chamar a ferramenta a partir de sua próxima chamada de ferramenta em diante; [Negando uma ferramenta inteira](/docs/pt/prompt-caching#denying-an-entire-tool) cobre o que acontece com uma definição que Claude já viu. Uma regra com escopo como `Bash(rm *)` deixa a ferramenta disponível e bloqueia chamadas correspondentes quando Claude tenta usá-las.

71 71 


333 333 

334Alvos sem arquivo atrás deles não são verificados: `/dev/null`, formas de descritor de arquivo como `2>&1` e `<&3`, e here-docs e here-strings.334Alvos sem arquivo atrás deles não são verificados: `/dev/null`, formas de descritor de arquivo como `2>&1` e `<&3`, e here-docs e here-strings.

335 335 

336Claude Code também verifica os arquivos que um comando `tee` escreve, incluindo em um pipeline como `make | tee build.log`. A verificação cobre suas regras allow e deny `Edit`, [caminhos protegidos](/docs/pt/permission-modes#protected-paths) e os [diretórios de trabalho](#working-directories). Uma regra allow como `Bash(tee *)` não cobre um destino fora dos diretórios de trabalho. Claude Code verifica alvos `tee` em v2.1.269 e posterior.

337 

336<h3 id="powershell">338<h3 id="powershell">

337 PowerShell339 PowerShell

338</h3>340</h3>


370Claude Code verifica permissões de arquivo apenas contra regras `Edit(path)` e `Read(path)`. Se você escrever uma regra de caminho para `Write`, `NotebookEdit`, `Glob` ou a ferramenta legada `MultiEdit` em vez disso, Claude Code aceita a regra mas nunca a consulta, e [avisa na inicialização](/docs/pt/errors#is-not-matched-by-file-permission-checks), exceto por uma regra `Glob` passada em `--allowedTools`. Use `Edit(docs/**)` no lugar de `Write(docs/**)`, `NotebookEdit(docs/**)` ou `MultiEdit(docs/**)`, e `Read(docs/**)` no lugar de `Glob(docs/**)`. Claude Code não avisa sobre uma regra de nome de ferramenta sem caminho, como uma regra deny para `Write`; ela corresponde a essa regra no nível de ferramenta em todos os lugares. Requer Claude Code v2.1.210 ou posterior.372Claude Code verifica permissões de arquivo apenas contra regras `Edit(path)` e `Read(path)`. Se você escrever uma regra de caminho para `Write`, `NotebookEdit`, `Glob` ou a ferramenta legada `MultiEdit` em vez disso, Claude Code aceita a regra mas nunca a consulta, e [avisa na inicialização](/docs/pt/errors#is-not-matched-by-file-permission-checks), exceto por uma regra `Glob` passada em `--allowedTools`. Use `Edit(docs/**)` no lugar de `Write(docs/**)`, `NotebookEdit(docs/**)` ou `MultiEdit(docs/**)`, e `Read(docs/**)` no lugar de `Glob(docs/**)`. Claude Code não avisa sobre uma regra de nome de ferramenta sem caminho, como uma regra deny para `Write`; ela corresponde a essa regra no nível de ferramenta em todos os lugares. Requer Claude Code v2.1.210 ou posterior.

371 373 

372<Warning>374<Warning>

373 As regras deny de Read e Edit se aplicam às ferramentas de arquivo integradas do Claude, aos comandos de arquivo que Claude Code reconhece em Bash, como `cat`, `head`, `tail` e `sed`, e aos alvos de [redirecionamentos](#redirections) Bash como `> file` e `< file`. Elas não se aplicam a um comando que lê arquivos sem nomeá-los, como `grep -r pattern .` executado a partir do diretório que contém o arquivo, ou a subprocessos arbitrários que leem ou escrevem arquivos indiretamente, como um script Python ou Node que abre arquivos por conta própria. Para imposição em nível de SO que bloqueia todos os processos de acessar um caminho, [ative o sandbox](/docs/pt/sandboxing).375 As regras deny de Read e Edit se aplicam às ferramentas de arquivo integradas do Claude, aos comandos de arquivo que Claude Code reconhece em Bash, como `cat`, `head`, `tail`, `sed` e `tee`, e aos alvos de [redirecionamentos](#redirections) Bash como `> file` e `< file`. Elas não se aplicam a um comando que lê arquivos sem nomeá-los, como `grep -r pattern .` executado a partir do diretório que contém o arquivo, ou a subprocessos arbitrários que leem ou escrevem arquivos indiretamente, como um script Python ou Node que abre arquivos por conta própria. Para imposição em nível de SO que bloqueia todos os processos de acessar um caminho, [ative o sandbox](/docs/pt/sandboxing).

374</Warning>376</Warning>

375 377 

376As regras Read e Edit usam sintaxe de padrão [gitignore](https://git-scm.com/docs/gitignore) com quatro tipos de padrão distintos; para padrões de diretório de segmento único, a profundidade de correspondência também depende do tipo de regra, descrito mais adiante nesta seção:378As regras Read e Edit usam sintaxe de padrão [gitignore](https://git-scm.com/docs/gitignore) com quatro tipos de padrão distintos; para padrões de diretório de segmento único, a profundidade de correspondência também depende do tipo de regra, descrito mais adiante nesta seção:


454 456 

455Uma regra deny ou ask cujo caminho não é utilizável como um padrão gitignore ainda protege esse caminho exato. Uma regra allow com um padrão não utilizável não aprova nada.457Uma regra deny ou ask cujo caminho não é utilizável como um padrão gitignore ainda protege esse caminho exato. Uma regra allow com um padrão não utilizável não aprova nada.

456 458 

459Uma regra deny ou ask que começa com `!` é uma negação gitignore. Ela remove os caminhos que corresponde dos `path` ou `./path` regras listadas antes dela. Em uma lista `deny` de um arquivo de configurações, `Read(*.env)` seguido por `Read(!sample.env)` bloqueia cada arquivo cujo nome termina em `.env` em qualquer profundidade, exceto arquivos nomeados `sample.env`. Uma regra `!` listada primeiro remove nada.

460 

461A remoção alcança apenas regras da mesma fonte. Um `Read(!.env)` em configurações de projeto ou em `--disallowedTools` não cancela um `Read(./.env)` deny de configurações gerenciadas ou qualquer outro arquivo de configurações.

462 

463Dois limites estreitam o que um padrão `!` pode remover:

464 

465* Claude Code lê um padrão `!` relativo ao diretório atual mesmo quando `/`, `~/` ou `//` segue o `!`, portanto o padrão não consegue alcançar uma regra ancorada com um desses prefixos. `Read(!~/notes/public/**)` remove nada de `Read(~/notes/**)`.

466* Uma remoção não consegue reabrir um arquivo dentro de um diretório que uma regra bloqueia como um todo. Com `Read(secrets/**)` e `Read(!secrets/public/**)`, Claude Code ainda bloqueia `secrets/public` junto com o resto de `secrets`.

467 

457Quando Claude acessa um symlink, as regras de permissão verificam dois caminhos: o próprio symlink e o arquivo para o qual ele se resolve. As regras allow e deny tratam esse par de forma diferente: as regras allow voltam a solicitar, enquanto as regras deny bloqueiam imediatamente.468Quando Claude acessa um symlink, as regras de permissão verificam dois caminhos: o próprio symlink e o arquivo para o qual ele se resolve. As regras allow e deny tratam esse par de forma diferente: as regras allow voltam a solicitar, enquanto as regras deny bloqueiam imediatamente.

458 469 

459* **Regras allow**: se aplicam apenas quando tanto o caminho do symlink quanto seu alvo correspondem. Um symlink dentro de um diretório permitido que aponta para fora dele ainda solicita.470* **Regras allow**: se aplicam apenas quando tanto o caminho do symlink quanto seu alvo correspondem. Um symlink dentro de um diretório permitido que aponta para fora dele ainda solicita.


646Permissões e [sandboxing](/docs/pt/sandboxing) são camadas de segurança complementares:657Permissões e [sandboxing](/docs/pt/sandboxing) são camadas de segurança complementares:

647 658 

648* **Permissões** controlam quais ferramentas Claude Code pode usar e quais arquivos ou domínios pode acessar. Elas se aplicam a Bash, Read, Edit, WebFetch, MCP e todas as outras ferramentas, exceto que uma regra deny ou ask não pode bloquear [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior) enquanto qualquer outra ferramenta permanecer.659* **Permissões** controlam quais ferramentas Claude Code pode usar e quais arquivos ou domínios pode acessar. Elas se aplicam a Bash, Read, Edit, WebFetch, MCP e todas as outras ferramentas, exceto que uma regra deny ou ask não pode bloquear [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior) enquanto qualquer outra ferramenta permanecer.

649* **Sandboxing** fornece imposição em nível de SO que restringe o acesso do Bash à rede e sistema de arquivos. Aplica-se apenas a comandos Bash e seus processos filhos.660* **Sandboxing** fornece imposição em nível de SO que restringe o acesso do Bash, PowerShell e comandos [Monitor](/docs/pt/tools-reference#monitor-tool) e seus processos filhos à rede e sistema de arquivos. Aplica-se apenas a comandos Bash, PowerShell e [Monitor](/docs/pt/tools-reference#monitor-tool) e seus processos filhos.

650 661 

651Use ambos para defesa em profundidade, já que as restrições de sandbox ainda se aplicam mesmo se uma injeção de prompt contornar a tomada de decisão de Claude. Caminhos e domínios das configurações de sandbox e regras de permissão são [mesclados na configuração final de sandbox](/docs/pt/sandboxing#permission-rules).662Use ambos para defesa em profundidade, já que as restrições de sandbox ainda se aplicam mesmo se uma injeção de prompt contornar a tomada de decisão de Claude. Caminhos e domínios das configurações de sandbox e regras de permissão são [mesclados na configuração final de sandbox](/docs/pt/sandboxing#permission-rules).

652 663 

platforms.md +2 −1

Details

73* [Desktop](/docs/pt/desktop): revisão visual de diff, sessões paralelas, computer use e Dispatch73* [Desktop](/docs/pt/desktop): revisão visual de diff, sessões paralelas, computer use e Dispatch

74* [VS Code](/docs/pt/vs-code): a extensão Claude Code dentro de seu editor74* [VS Code](/docs/pt/vs-code): a extensão Claude Code dentro de seu editor

75* [JetBrains](/docs/pt/jetbrains): a extensão para IntelliJ, PyCharm e outros IDEs JetBrains75* [JetBrains](/docs/pt/jetbrains): a extensão para IntelliJ, PyCharm e outros IDEs JetBrains

76* [Claude Code na web](/docs/pt/claude-code-on-the-web): sessões em nuvem que continuam sendo executadas quando você se desconecta76* [Web](/docs/pt/claude-code-on-the-web): sessões em nuvem do seu navegador em claude.ai/code que continuam sendo executadas quando você se desconecta

77* [Projects](/docs/pt/claude-projects): uma conversa onde Claude coordena muitas sessões em nuvem para um corpo de trabalho e relata de volta

77* [Mobile](/docs/pt/mobile): o aplicativo Claude para [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) e [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude) para iniciar e monitorar tarefas enquanto estiver longe de seu computador78* [Mobile](/docs/pt/mobile): o aplicativo Claude para [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) e [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude) para iniciar e monitorar tarefas enquanto estiver longe de seu computador

78 79 

79<h3 id="integrations">80<h3 id="integrations">

Details

41}41}

42```42```

43 43 

44Uma entrada pode ser uma string simples com apenas o nome do plugin, como `"audit-logger"` no exemplo acima, que depende de qualquer versão que o marketplace desse plugin forneça. Para mais controle, use um objeto com estes campos:44Uma entrada pode ser uma string simples com apenas o nome do plugin, como `"audit-logger"` no manifesto `deploy-kit`, que depende de qualquer versão que o marketplace desse plugin forneça. Para mais controle, use um objeto com estes campos:

45 45 

46| Campo | Tipo | Descrição |46| Campo | Tipo | Descrição |

47| :------------ | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |47| :------------ | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |


75 75 

76Instalar `backend-standard` resolve e instala todas as quatro dependências.76Instalar `backend-standard` resolve e instala todas as quatro dependências.

77 77 

78Para adicionar uma ferramenta ao conjunto padrão posteriormente, publique uma nova versão de `backend-standard` com a dependência extra. A atualização automática está desativada por padrão para marketplaces não-Anthropic, portanto os engenheiros pegam a nova versão de uma de duas formas:78Para adicionar uma ferramenta ao conjunto padrão posteriormente, publique uma nova versão de `backend-standard` com a dependência extra. A menos que o marketplace [atualize automaticamente](/docs/pt/discover-plugins#configure-auto-updates), os engenheiros pegam a nova versão de uma de duas formas:

79 79 

80* Ative a atualização automática para o marketplace em `/plugin`. A próxima atualização automática move o bundle para a nova versão e instala quaisquer dependências que ele adiciona.80* Ative a atualização automática para o marketplace em `/plugin`. A próxima atualização automática move o bundle para a nova versão e instala quaisquer dependências que ele adiciona.

81* Execute `claude plugin update backend-standard`, depois `/reload-plugins` para instalar as dependências recém-adicionadas.81* Execute `claude plugin update backend-standard`, depois `/reload-plugins` para instalar as dependências recém-adicionadas.

Details

71 ```71 ```

72 72 

73 <Note>73 <Note>

74 Definir `version` significa que os usuários só recebem atualizações quando você altera este campo, então aumente-o em cada lançamento. Um plugin com uma [`command` source](#command-sources) não é fixado por este campo. Se você omitir `version`, a versão vem da próxima fonte em [gerenciamento de versão](/docs/pt/plugins-reference#version-management).74 Definir `version` significa que os usuários só recebem atualizações quando você altera este campo, então aumente-o em cada lançamento. Um plugin com uma [`command` source](#command-sources) não é fixado por este campo. Nem é um plugin [carregado no local](/docs/pt/plugins-reference#plugin-caching-and-file-resolution) de um marketplace adicionado como um diretório local. Se você omitir `version`, a versão vem da próxima fonte em [gerenciamento de versão](/docs/pt/plugins-reference#version-management).

75 </Note>75 </Note>

76 </Step>76 </Step>

77 77 


116Para saber mais sobre o que os plugins podem fazer, incluindo hooks, agents, MCP servers e LSP servers, veja [Plugins](/docs/pt/plugins).116Para saber mais sobre o que os plugins podem fazer, incluindo hooks, agents, MCP servers e LSP servers, veja [Plugins](/docs/pt/plugins).

117 117 

118<Note>118<Note>

119 **Como os plugins são instalados**: quando os usuários instalam um plugin, Claude Code copia o diretório do plugin para um local de cache, exceto para uma [`command` source em link mode](#copy-mode-and-link-mode), que é usada no lugar. Os plugins copiados não podem referenciar arquivos fora de seu diretório usando caminhos como `../shared-utils`, porque esses arquivos não serão copiados.119 **Como os plugins são instalados**: quando os usuários instalam um plugin, Claude Code copia o diretório do plugin para um local de cache, a menos que o plugin seja carregado no local. Uma [`command` source em link mode](#copy-mode-and-link-mode) é carregada no local, assim como uma [fonte de caminho relativo](#relative-paths) em um marketplace adicionado de um diretório local. Os plugins copiados não podem referenciar arquivos fora de seu diretório usando caminhos como `../shared-utils`, porque esses arquivos não serão copiados.

120 120 

121 Se você precisar compartilhar arquivos entre plugins, use symlinks. Veja [Plugin caching and file resolution](/docs/pt/plugins-reference#plugin-caching-and-file-resolution) para detalhes.121 Se você precisar compartilhar arquivos entre plugins, use symlinks. Veja [Plugin caching and file resolution](/docs/pt/plugins-reference#plugin-caching-and-file-resolution) para detalhes.

122</Note>122</Note>


167</h3>167</h3>

168 168 

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

170| :-------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------- |170| :-------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------- |

171| `name` | string | Identificador de marketplace em kebab-case, sem espaços, caracteres de controle ou caracteres de formatação bidirecional. Isso é público: os usuários o veem ao instalar plugins (por exemplo, `/plugin install my-tool@your-marketplace`). Cada usuário pode registrar apenas um marketplace por nome: quando adiciona um segundo marketplace com o mesmo nome, Claude Code substitui o primeiro. Para publicar múltiplos plugins sob um nome de marketplace, liste-os todos em um único [`marketplace.json`](#create-the-marketplace-file). | `"acme-tools"` |171| `name` | string | Identificador de marketplace em kebab-case, sem espaços, caracteres de controle ou caracteres de formatação bidirecional. Isso é público: os usuários o veem ao instalar plugins (por exemplo, `/plugin install my-tool@your-marketplace`). Cada usuário pode registrar apenas um marketplace por nome: quando adiciona um segundo marketplace com o mesmo nome, Claude Code substitui o primeiro. Para publicar múltiplos plugins sob um nome de marketplace, liste-os todos em um único [`marketplace.json`](#create-the-marketplace-file). | `"acme-tools"` |

172| `owner` | object | Informações do mantenedor do marketplace ([veja campos abaixo](#owner-fields)) | |172| `owner` | object | Informações do mantenedor do marketplace. Veja [Campos do proprietário](#owner-fields) | |

173| `plugins` | array | Lista de plugins disponíveis | Veja abaixo |173| `plugins` | array | Lista de plugins disponíveis | Veja [Entradas de plugin](#plugin-entries) |

174 174 

175<Note>175<Note>

176 **Nomes reservados**: os seguintes nomes de marketplace são reservados para uso oficial da Anthropic e não podem ser usados por marketplaces de terceiros: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `claude-plugins-community`, `claude-community`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `knowledge-work-plugins`, `life-sciences`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`, `first-party-plugins`, `claude-tag-plugins`, `healthcare`. Nomes que imitam marketplaces oficiais, como `official-claude-plugins` ou `anthropic-plugins-v2`, também são bloqueados. Reservar esses nomes impede que um marketplace de terceiros se apresente como uma fonte publicada pela Anthropic.176 **Nomes reservados**: os seguintes nomes de marketplace são reservados para uso oficial da Anthropic e não podem ser usados por marketplaces de terceiros: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `claude-plugins-community`, `claude-community`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `knowledge-work-plugins`, `life-sciences`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`, `first-party-plugins`, `claude-tag-plugins`, `healthcare`. Nomes que imitam marketplaces oficiais, como `official-claude-plugins` ou `anthropic-plugins-v2`, também são bloqueados. Reservar esses nomes impede que um marketplace de terceiros se apresente como uma fonte publicada pela Anthropic.

177 177 

178 Claude Code verifica novamente os nomes reservados toda vez que carrega um marketplace, não apenas quando você adiciona um. Um marketplace que foi registrado sob um desses nomes antes do nome se tornar reservado para de carregar e relata que está [registrado de uma fonte não confiável](/docs/pt/errors#marketplace-is-registered-from-an-untrusted-source). Remova esse marketplace e adicione-o novamente da fonte oficial da Anthropic. Um marketplace de terceiros afetado por um nome recém-reservado carrega novamente assim que você o adiciona novamente sob um nome diferente. Antes da v2.1.205, `first-party-plugins` e `healthcare` não eram reservados, e um marketplace já registrado sob um nome reservado continuava carregando. Antes da v2.1.265, `claude-tag-plugins` não era reservado.178 Claude Code verifica novamente os nomes reservados toda vez que carrega um marketplace, não apenas quando você adiciona um. Um marketplace que foi registrado sob um desses nomes antes do nome se tornar reservado para de carregar e relata que está [registrado de uma fonte não confiável](/docs/pt/errors#marketplace-is-registered-from-an-untrusted-source). Remova esse marketplace e adicione-o novamente da fonte oficial da Anthropic. Um marketplace de terceiros afetado por um nome recém-reservado carrega novamente assim que você o adiciona novamente sob um nome diferente. Antes da v2.1.205, `first-party-plugins` e `healthcare` não eram reservados, e um marketplace já registrado sob um nome reservado continuava carregando. Antes da v2.1.265, `claude-tag-plugins` não era reservado.

179 

180 Você também não pode nomear um marketplace como `npm`, `pip`, `uv`, `cargo`, `github` ou `gh`, em qualquer capitalização. Esta verificação requer Claude Code v2.1.275 ou posterior.

179</Note>181</Note>

180 182 

181<h3 id="owner-fields">183<h3 id="owner-fields">


225**Campos de metadados padrão:**227**Campos de metadados padrão:**

226 228 

227| Campo | Tipo | Descrição |229| Campo | Tipo | Descrição |

228| :--------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |230| :--------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

229| `displayName` | string | Nome legível por humanos exibido em superfícies de UI. Quando nem a entrada nem o `plugin.json` do plugin define um, os usuários veem o `name` do plugin. Pode conter espaços e qualquer capitalização. Não é usado para namespacing ou lookup. |231| `displayName` | string | Nome legível por humanos exibido em superfícies de UI. Quando nem a entrada nem o `plugin.json` do plugin define um, os usuários veem o `name` do plugin. Pode conter espaços e qualquer capitalização. Não é usado para namespacing ou lookup. |

230| `description` | string | Breve descrição do plugin |232| `description` | string | Breve descrição do plugin |

231| `version` | string | Versão do plugin. Se definido (aqui ou em `plugin.json`), o plugin é fixado a esta string e os usuários recebem atualizações apenas quando ela muda. Um plugin com uma [`command` source](#command-sources) não é fixado por nenhum dos dois campos. Se não definido em nenhum lugar, a versão vem da próxima fonte em [gerenciamento de versão](/docs/pt/plugins-reference#version-management). |233| `version` | string | Versão do plugin. Se definido (aqui ou em `plugin.json`), o plugin é fixado a esta string e os usuários recebem atualizações apenas quando ela muda. Um plugin com uma [`command` source](#command-sources) não é fixado por nenhum dos dois campos. Nem um plugin [carregado no local](/docs/pt/plugins-reference#plugin-caching-and-file-resolution) de um marketplace adicionado como diretório local. Se não definido em nenhum lugar, a versão vem da próxima fonte em [gerenciamento de versão](/docs/pt/plugins-reference#version-management). |

232| `author` | object | Informações do autor do plugin (`name` obrigatório; `email` e `url` opcionais) |234| `author` | object | Informações do autor do plugin (`name` obrigatório; `email` e `url` opcionais) |

233| `homepage` | string | URL da página inicial ou documentação do plugin |235| `homepage` | string | URL da página inicial ou documentação do plugin |

234| `repository` | string | URL do repositório de código-fonte |236| `repository` | string | URL do repositório de código-fonte |


274 276 

275As fontes de plugin informam ao Claude Code onde buscar cada plugin individual listado em seu marketplace. Elas são definidas no campo `source` de cada entrada de plugin em `marketplace.json`.277As fontes de plugin informam ao Claude Code onde buscar cada plugin individual listado em seu marketplace. Elas são definidas no campo `source` de cada entrada de plugin em `marketplace.json`.

276 278 

277Claude Code copia cada plugin instalado para o cache de plugin versionado local em `~/.claude/plugins/cache`, exceto para uma [fonte `command` em modo link](#copy-mode-and-link-mode), que Claude Code usa no lugar. Claude Code também [instala as dependências de pacote Node.js elegíveis do plugin](/docs/pt/plugins-reference#node-js-package-dependencies) na cópia em cache.279Claude Code copia cada plugin instalado para o cache de plugin versionado local em `~/.claude/plugins/cache`, exceto quando o plugin é carregado no lugar. Uma [fonte `command` em modo link](#copy-mode-and-link-mode) é carregada no lugar, assim como uma [fonte de caminho relativo](#relative-paths) em um marketplace adicionado de um diretório local. Claude Code também [instala as dependências de pacote Node.js elegíveis do plugin](/docs/pt/plugins-reference#node-js-package-dependencies) na cópia em cache. Veja [Plugin caching and file resolution](/docs/pt/plugins-reference#plugin-caching-and-file-resolution) para como um plugin carregado no lugar de um marketplace de diretório local capta suas edições.

278 280 

279| Fonte | Tipo | Campos | Notas |281| Fonte | Tipo | Campos | Notas |

280| ---------------- | --------------------------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |282| ---------------- | --------------------------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


282| `github` | object | `repo`, `ref?`, `sha?` | |284| `github` | object | `repo`, `ref?`, `sha?` | |

283| `url` | object | `url`, `ref?`, `sha?` | Fonte de URL Git |285| `url` | object | `url`, `ref?`, `sha?` | Fonte de URL Git |

284| `git-subdir` | object | `url`, `path`, `ref?`, `sha?` | Subdiretório dentro de um repositório git. Clona esparsamente para minimizar largura de banda para monorepos |286| `git-subdir` | object | `url`, `path`, `ref?`, `sha?` | Subdiretório dentro de um repositório git. Clona esparsamente para minimizar largura de banda para monorepos |

285| `npm` | object | `package`, `version?`, `registry?` | Instalado via `npm install` |287| `npm` | object | `package`, `version?`, `registry?` | Pacote npm, buscado com seu cliente npm e desempacotado sem executar scripts de instalação |

286| `archive` | object | `url`, `sha256?` | Arquivo zip baixado via HTTPS. Funciona sem git ou npm na máquina do usuário. Requer Claude Code v2.1.224 ou posterior |288| `archive` | object | `url`, `sha256?` | Arquivo zip baixado via HTTPS. Funciona sem git ou npm na máquina do usuário. Requer Claude Code v2.1.224 ou posterior |

287| `command` | object | `command`, `timeout?`, `mode?` | Diretório de plugin produzido pela execução de um comando local, re-executado uma vez por sessão para captar mudanças. Requer Claude Code v2.1.229 ou posterior |289| `command` | object | `command`, `timeout?`, `mode?` | Diretório de plugin produzido pela execução de um comando local, re-executado uma vez por sessão para captar mudanças. Requer Claude Code v2.1.229 ou posterior |

288 290 


314}316}

315```317```

316 318 

317Os caminhos são resolvidos relativamente à raiz do marketplace, que é o diretório contendo `.claude-plugin/`. No exemplo acima, `./plugins/my-plugin` aponta para `<repo>/plugins/my-plugin`, mesmo que `marketplace.json` viva em `<repo>/.claude-plugin/marketplace.json`. Não use `../` para referenciar caminhos fora da raiz do marketplace. Em macOS e Linux, Claude Code recusa uma entrada de caminho com uma barra invertida em qualquer lugar após o `./` inicial, então escreva os separadores como `/` em todas as plataformas.319Os caminhos são resolvidos relativamente à raiz do marketplace, que é o diretório contendo `.claude-plugin/`. A fonte `./plugins/my-plugin` portanto aponta para `<repo>/plugins/my-plugin`, mesmo que `marketplace.json` viva em `<repo>/.claude-plugin/marketplace.json`. Não use `../` para referenciar caminhos fora da raiz do marketplace. Em macOS e Linux, Claude Code recusa uma entrada de caminho com uma barra invertida em qualquer lugar após o `./` inicial, então escreva os separadores como `/` em todas as plataformas.

318 320 

319Um nome simples é um único nome de diretório sem `/`, como `"formatter"`. Para escrever nomes simples em vez de caminhos `./`, defina [`metadata.pluginRoot`](#optional-fields) para o diretório sob o qual eles se resolvem. Com `"pluginRoot": "./plugins"`, Claude Code resolve `"source": "formatter"` para `./plugins/formatter`. Requer Claude Code v2.1.239 ou posterior.321Um nome simples é um único nome de diretório sem `/`, como `"formatter"`. Para escrever nomes simples em vez de caminhos `./`, defina [`metadata.pluginRoot`](#optional-fields) para o diretório sob o qual eles se resolvem. Com `"pluginRoot": "./plugins"`, Claude Code resolve `"source": "formatter"` para `./plugins/formatter`. Requer Claude Code v2.1.239 ou posterior.

320 322 


437 Pacotes npm439 Pacotes npm

438</h3>440</h3>

439 441 

440Plugins distribuídos como pacotes npm são instalados usando `npm install`. Isso funciona com qualquer pacote no registro npm público ou um registro privado que sua equipe hospeda.442Uma fonte npm pode nomear qualquer pacote no registro npm público ou em um registro privado que sua equipe hospeda. Claude Code resolve o pacote com seu cliente npm, baixa o tarball e o desempacota no cache de plugin.

443 

444Os scripts de instalação do pacote, como `preinstall` ou `postinstall`, nunca são executados, e suas dependências não são instaladas durante a busca.

445 

446Se o pacote enviar um lockfile suportado ao lado de seu `package.json`, Claude Code instala essas [dependências de pacote Node.js](/docs/pt/plugins-reference#node-js-package-dependencies) em uma etapa separada, também com scripts desabilitados. Caso contrário, publique o plugin com tudo que ele precisa já construído. Um servidor MCP que precisa de outros pacotes pode ser iniciado através de `npx`, que os instala na primeira execução.

441 447 

442```json theme={null}448```json theme={null}

443{449{


612 Como usuários aceitam um comando headersHelper618 Como usuários aceitam um comando headersHelper

613</h4>619</h4>

614 620 

615Um usuário aceita o comando de uma entrada de plugin cada vez que instala ou atualiza esse plugin sozinho, a partir da própria visualização do plugin em `/plugin` ou com `claude plugin install` ou `claude plugin update`. Claude Code mostra o comando e a URL do arquivo, e executa o comando apenas após o usuário aceitar. Em um shell não-interativo, passe [`--yes`](/docs/pt/plugins-reference#plugin-install) para aceitá-lo.621Um usuário aceita o comando de uma entrada de plugin cada vez que instala ou atualiza esse plugin sozinho, a partir da própria visualização do plugin em `/plugin` ou com `claude plugin install` ou `claude plugin update`. Claude Code mostra o comando e a URL do arquivo, e executa o comando apenas após o usuário aceitar.

622 

623Em um shell não-interativo, passe [`--yes`](/docs/pt/plugins-reference#plugin-install) para aceitar o comando. Para aceitar apenas o comando que uma execução anterior com `--json` exibiu, passe [`--accept-command`](/docs/pt/plugins-reference#plugin-install) com o `sha256` que a execução relatou.

616 624 

617Claude Code executa apenas o comando que mostrou, para a URL do arquivo que mostrou. Se o comando ou URL do arquivo da entrada mudou entre, Claude Code recusa a instalação ou atualização. Uma mudança apenas na string de consulta não conta.625Claude Code executa apenas o comando que mostrou, para a URL do arquivo que mostrou. Se o comando ou URL do arquivo da entrada mudou entre, Claude Code recusa a instalação ou atualização. Uma mudança apenas na string de consulta não conta.

618 626 


693 701 

694Claude Code executa seu comando na máquina do usuário, então vincula cada execução à aceitação explícita do usuário:702Claude Code executa seu comando na máquina do usuário, então vincula cada execução à aceitação explícita do usuário:

695 703 

696* Quando os usuários instalam o plugin a partir de sua tela de detalhes em `/plugin`, ou instalam ou atualizam com `claude plugin install` ou `claude plugin update` em um terminal interativo, Claude Code mostra a eles a string de comando exato primeiro e registra o comando aceito para essa instalação. Um `claude plugin update` que pode prosseguir na aceitação registrada do mesmo comando mostra nada. Em um shell não-interativo, como um script de provisionamento, passe `--yes` para `claude plugin install` ou `claude plugin update` para aceitar o comando que imprime.704* Quando os usuários instalam o plugin a partir de sua tela de detalhes em `/plugin`, ou instalam ou atualizam com `claude plugin install` ou `claude plugin update` em um terminal interativo, Claude Code mostra a eles a string de comando exato primeiro e registra o comando aceito para essa instalação. Um `claude plugin update` que pode prosseguir na aceitação registrada do mesmo comando mostra nada.

705* Em um shell não-interativo, como um script de provisionamento, passe `--yes` para `claude plugin install` ou `claude plugin update` para aceitar o comando que imprime. Para aceitar apenas o comando que uma execução anterior com `--json` exibiu, passe [`--accept-command`](/docs/pt/plugins-reference#plugin-install) com o `sha256` que a execução relatou.

697* Cada outro caminho executa apenas o comando que o usuário já aceitou. Isso inclui atualizações iniciadas de `/plugin` e as execuções em segundo plano descritas em [Quando Claude Code re-executa o comando](#when-claude-code-re-runs-the-command). Quando nenhum foi aceito, Claude Code recusa executar o comando e diz ao usuário como revisar. Claude Code nunca instala um plugin com fonte de comando como dependência de outro plugin, então os usuários o instalam sozinhos primeiro.706* Cada outro caminho executa apenas o comando que o usuário já aceitou. Isso inclui atualizações iniciadas de `/plugin` e as execuções em segundo plano descritas em [Quando Claude Code re-executa o comando](#when-claude-code-re-runs-the-command). Quando nenhum foi aceito, Claude Code recusa executar o comando e diz ao usuário como revisar. Claude Code nunca instala um plugin com fonte de comando como dependência de outro plugin, então os usuários o instalam sozinhos primeiro.

698* Se você alterar o `command` da entrada, ou alternar seu `mode`, os usuários mantêm a versão que já têm e Claude Code para de re-executar o comando. Em sessões interativas, a aba Erros de `/plugin` mostra o novo comando até o usuário revisar e aceitar executando `claude plugin update <plugin>@<marketplace>`.707* Se você alterar o `command` da entrada, ou alternar seu `mode`, os usuários mantêm a versão que já têm e Claude Code para de re-executar o comando. Em sessões interativas, a aba Erros de `/plugin` mostra o novo comando até o usuário revisar e aceitar executando `claude plugin update <plugin>@<marketplace>`.

699 708 


810 Hospedar e distribuir marketplaces819 Hospedar e distribuir marketplaces

811</h2>820</h2>

812 821 

822Quando os usuários adicionam um marketplace hospedado em um repositório git, ou instalam um plugin baseado em git que ele lista, Claude Code clona esse repositório de marketplace ou plugin na máquina deles. O clone nunca baixa conteúdo de [Git LFS](https://git-lfs.com), então arquivos rastreados por LFS chegam como arquivos de ponteiro. Mantenha os arquivos que seus plugins precisam fora do LFS.

823 

813<h3 id="host-on-github-recommended">824<h3 id="host-on-github-recommended">

814 Hospedar no GitHub (recomendado)825 Hospedar no GitHub (recomendado)

815</h3>826</h3>


836 Repositórios privados847 Repositórios privados

837</h3>848</h3>

838 849 

839Claude Code suporta instalar plugins de repositórios privados. Se você distribuir seu marketplace através de [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins) em vez disso, suas credenciais git não estão envolvidas: a sincronização da organização lê o repositório de marketplace através do Claude GitHub App ou do GitHub Enterprise App da sua organização, e uma fonte de plugin que não consegue autenticar deve ser pública. Veja [Distribuir através de configurações de organização](#distribute-through-organization-settings) para as regras completas.850Claude Code suporta instalar plugins de repositórios privados. Se você distribuir seu marketplace através de [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins) em vez disso, suas credenciais git não estão envolvidas: a sincronização da organização lê o repositório de marketplace através da conexão da sua organização no GitHub ou GitLab em claude.ai. Veja [Distribuir através de configurações de organização](#distribute-through-organization-settings) para quais fontes de plugin podem ser privadas.

840 851 

841<h4 id="commands-you-run">852<h4 id="commands-you-run">

842 Comandos que você executa853 Comandos que você executa


848 Atualizações automáticas em segundo plano859 Atualizações automáticas em segundo plano

849</h4>860</h4>

850 861 

851Por padrão, a atualização em segundo plano desabilita ajudantes de credencial git para seu `git pull`, então o pull não consegue autenticar em repositórios privados via HTTPS mesmo quando um ajudante está configurado. Remotos SSH não são afetados: uma chave carregada em `ssh-agent` autentica pulls em segundo plano da mesma forma que os comandos que você executa. Quando o pull em segundo plano falha, Claude Code volta a re-clonar o marketplace do zero. O re-clone usa suas credenciais git armazenadas, mas pode [expirar em repositórios grandes](#git-operations-time-out), então atualizações automáticas de marketplace privado podem falhar intermitentemente.862Por padrão, a atualização em segundo plano desabilita ajudantes de credencial git quando verifica o remoto do marketplace para novos commits, então a verificação não consegue autenticar em repositórios privados via HTTPS mesmo quando um ajudante está configurado. Remotos SSH não são afetados: uma chave carregada em `ssh-agent` autentica a verificação em segundo plano da mesma forma que os comandos que você executa.

863 

864Quando a verificação encontra novos commits, ou falha porque não consegue alcançar ou autenticar no remoto, Claude Code clona o marketplace novamente e troca o novo clone. Se esse clone falhar, o checkout existente permanece no lugar. O re-clone usa suas credenciais git armazenadas, mas pode [expirar em repositórios grandes](#git-operations-time-out), então atualizações automáticas de marketplace privado podem falhar intermitentemente.

852 865 

853Duas configurações fazem marketplaces privados se comportarem de forma previsível:866Duas configurações fazem marketplaces privados se comportarem de forma previsível:

854 867 

855* Defina `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` para manter o clone existente quando o pull em segundo plano falha, em vez de deletar e re-clonar. Seus plugins continuam funcionando a partir do último estado sincronizado, e atualizações manuais com `/plugin marketplace update` ainda fazem pull com suas credenciais.868* Defina `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` para manter o checkout existente sem tentar o re-clone quando a verificação em segundo plano não consegue alcançar ou autenticar no remoto. Seus plugins continuam funcionando a partir do último estado sincronizado, e atualizações manuais com `/plugin marketplace update` ainda autenticam com suas credenciais.

856* Configure um ajudante de credencial git, por exemplo com `gh auth setup-git` para GitHub, para que o fallback de re-clone possa autenticar sem solicitar.869* Configure um ajudante de credencial git, por exemplo com `gh auth setup-git` para GitHub, para que o re-clone possa autenticar sem solicitar.

857 870 

858Definir um token de provedor como `GITHUB_TOKEN` em seu ambiente não habilita autenticação em segundo plano por si só. Tokens têm efeito apenas através de um ajudante de credencial configurado, por exemplo o ajudante CLI `gh`, que lê `GH_TOKEN` e `GITHUB_TOKEN`.871Definir um token de provedor como `GITHUB_TOKEN` em seu ambiente não habilita autenticação em segundo plano por si só. Tokens têm efeito apenas através de um ajudante de credencial configurado, por exemplo o ajudante CLI `gh`, que lê `GH_TOKEN` e `GITHUB_TOKEN`.

859 872 

860Para fazer o pull em segundo plano autenticar via HTTPS, configure uma reescrita de URL git global. A reescrita incorpora um token na URL remota, então tem efeito mesmo que o pull em segundo plano desabilite ajudantes de credencial, e um pull bem-sucedido pula o fallback de re-clone. O exemplo a seguir reescreve a URL do repositório de marketplace para incluir um token de acesso:873Para fazer a verificação em segundo plano autenticar via HTTPS, configure uma reescrita de URL git global. A reescrita incorpora um token na URL remota, então tem efeito mesmo que a verificação em segundo plano desabilite ajudantes de credencial. Quando a verificação encontra o checkout atualizado, Claude Code pula o re-clone. O exemplo a seguir reescreve a URL do repositório de marketplace para incluir um token de acesso:

861 874 

862```bash theme={null}875```bash theme={null}

863git config --global url."https://x-access-token:YOUR_TOKEN@github.com/acme-corp/plugins".insteadOf "https://github.com/acme-corp/plugins"876git config --global url."https://x-access-token:YOUR_TOKEN@github.com/acme-corp/plugins".insteadOf "https://github.com/acme-corp/plugins"


876A reescrita armazena o token em texto simples em seu gitconfig, então use um token com acesso somente leitura ao repositório de marketplace.889A reescrita armazena o token em texto simples em seu gitconfig, então use um token com acesso somente leitura ao repositório de marketplace.

877 890 

878<Note>891<Note>

879 Em ambientes CI/CD, configure um ajudante de credencial git antes de instalar plugins de repositórios privados. No GitHub Actions, exporte um token com acesso de leitura ao repositório de marketplace como `GH_TOKEN`, depois execute `gh auth setup-git`. O token de workflow padrão pode apenas acessar o repositório do próprio workflow, então um marketplace privado em outro repositório precisa de um token de acesso pessoal ou token de app. Uma reescrita de URL global configurada no pipeline também autentica o pull em segundo plano diretamente.892 Em ambientes CI/CD, configure um ajudante de credencial git antes de instalar plugins de repositórios privados. No GitHub Actions, exporte um token com acesso de leitura ao repositório de marketplace como `GH_TOKEN`, depois execute `gh auth setup-git`. O token de workflow padrão pode apenas acessar o repositório do próprio workflow, então um marketplace privado em outro repositório precisa de um token de acesso pessoal ou token de app.

893 

894 Se você configurar uma reescrita de URL global no pipeline, a reescrita também autentica a verificação em segundo plano diretamente.

880</Note>895</Note>

881 896 

882<h3 id="distribute-through-organization-settings">897<h3 id="distribute-through-organization-settings">


885 900 

886Se você distribuir plugins através de [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins) em um plano Team ou Enterprise, estas regras de fonte se aplicam:901Se você distribuir plugins através de [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins) em um plano Team ou Enterprise, estas regras de fonte se aplicam:

887 902 

888* O repositório de marketplace deve ser privado ou interno. A sincronização da organização o lê através do Claude GitHub App ou do GitHub Enterprise App da sua organização.903* No github.com e gitlab.com, o repositório de marketplace deve ser privado ou interno. A sincronização da organização lê o repositório através da conexão que corresponde ao seu host:

904 * **github.com**: o Claude GitHub App

905 * **Seu host GitHub Enterprise Server**: o [GitHub Enterprise App](/docs/pt/github-enterprise-server#admin-setup) da sua organização

906 * **gitlab.com ou sua instância GitLab auto-gerenciada**: o token de acesso na [configuração GitLab](#sync-a-gitlab-hosted-marketplace) da sua organização para esse host

889* Cada fonte de plugin deve ser do tipo `github`, `url` ou `git-subdir`, ou um [caminho relativo](#relative-paths) que comece com `./`. Se você listar um plugin por nome simples sob `metadata.pluginRoot`, a sincronização da organização o rejeita como uma fonte não suportada, então escreva o caminho, como `./plugins/deploy-tools`.907* Cada fonte de plugin deve ser do tipo `github`, `url` ou `git-subdir`, ou um [caminho relativo](#relative-paths) que comece com `./`. Se você listar um plugin por nome simples sob `metadata.pluginRoot`, a sincronização da organização o rejeita como uma fonte não suportada, então escreva o caminho, como `./plugins/deploy-tools`.

890* Uma fonte de plugin pode ser privada em dois casos:908* Uma fonte de plugin pode ser privada em três casos:

891 * Uma fonte github.com que compartilha o proprietário do repositório de marketplace909 * Uma fonte github.com que compartilha o proprietário do repositório de marketplace

892 * Uma fonte no host GitHub Enterprise da sua organização com o GHE App instalado no repositório910 * Uma fonte no host GitHub Enterprise da sua organização com o GHE App instalado no repositório

893* A sincronização da organização busca todas as outras fontes sem credenciais, então repositórios github.com sob um proprietário diferente e repositórios em outros hosts, como GitLab ou Bitbucket, devem ser públicos.911 * Uma fonte `url` ou `git-subdir` no mesmo host GitLab que o repositório de marketplace. No gitlab.com, a fonte também deve estar sob o mesmo namespace de grupo de nível superior ou usuário que o repositório de marketplace.

912* Qualquer outra fonte de plugin deve ser um repositório público no github.com, gitlab.com ou bitbucket.org, que a sincronização da organização busca sem credenciais. A sincronização da organização rejeita fontes de plugin em hosts que essas regras não cobrem.

894 913 

895Veja [Manage plugins for your organization](https://support.claude.com/en/articles/13837433) para o fluxo de trabalho do administrador.914Veja [Manage plugins for your organization](https://support.claude.com/en/articles/13837433) para o fluxo de trabalho do administrador.

896 915 


905}924}

906```925```

907 926 

927<h4 id="sync-a-gitlab-hosted-marketplace">

928 Sincronizar um marketplace hospedado no GitLab

929</h4>

930 

931Para sincronizar um marketplace do gitlab.com ou de uma instância GitLab auto-gerenciada, um [Owner](/docs/pt/server-managed-settings#access-control) primeiro adiciona uma configuração GitLab para esse host em [**Organization settings > Claude Code**](https://claude.ai/admin-settings/claude-code). As configurações GitLab estão em beta público e se aplicam apenas à sincronização de marketplace de plugin. Adicionar uma não torna repositórios GitLab disponíveis em [Claude Code na web](/docs/pt/claude-code-on-the-web#limitations). Veja [Manage plugins for your organization](https://support.claude.com/en/articles/13837433) para as etapas de configuração.

932 

933Quando você adiciona o marketplace, insira a URL HTTPS do projeto, como `https://gitlab.example.com/platform/claude-plugins`. Projetos em subgrupos aninhados funcionam. A sincronização da organização lê o branch padrão do projeto. Se você ativar **Sync automatically**, apenas pushes para o branch padrão iniciam uma sincronização.

934 

908<h4 id="keep-executables-out-of-the-top-level-bin-directory">935<h4 id="keep-executables-out-of-the-top-level-bin-directory">

909 Manter executáveis fora do diretório bin de nível superior936 Manter executáveis fora do diretório bin de nível superior

910</h4>937</h4>


984 1011 

985Detalhes de comportamento:1012Detalhes de comportamento:

986 1013 

987* **Somente leitura**: o diretório seed nunca é escrito. As atualizações automáticas são desabilitadas para marketplaces seed já que git pull falharia em um sistema de arquivos somente leitura.1014* **Somente leitura**: Claude Code nunca escreve no diretório seed.

1015* **Auto-updates desabilitadas**: marketplaces seed não auto-atualizam.

988* **Entradas seed têm precedência**: marketplaces declarados no seed sobrescrevem qualquer entrada correspondente na configuração do usuário em cada inicialização. Para optar por não usar um plugin seed, use `/plugin disable` em vez de remover o marketplace.1016* **Entradas seed têm precedência**: marketplaces declarados no seed sobrescrevem qualquer entrada correspondente na configuração do usuário em cada inicialização. Para optar por não usar um plugin seed, use `/plugin disable` em vez de remover o marketplace.

989* **Resolução de caminho**: Claude Code localiza conteúdo de marketplace sondando `$CLAUDE_CODE_PLUGIN_SEED_DIR/marketplaces/<name>/` em tempo de execução, não confiando em caminhos armazenados dentro do JSON do seed. Isso significa que o seed funciona corretamente mesmo quando montado em um caminho diferente de onde foi construído.1017* **Resolução de caminho**: Claude Code localiza conteúdo de marketplace sondando `$CLAUDE_CODE_PLUGIN_SEED_DIR/marketplaces/<name>/` em tempo de execução, não confiando em caminhos armazenados dentro do JSON do seed. Isso significa que o seed funciona corretamente mesmo quando montado em um caminho diferente de onde foi construído.

990* **Mutação é bloqueada**: executar `/plugin marketplace remove` ou `/plugin marketplace update` contra um marketplace gerenciado por seed falha com orientação para pedir ao seu administrador para atualizar a imagem seed.1018* **Mutação é bloqueada**: executar `/plugin marketplace remove` ou `/plugin marketplace update` contra um marketplace gerenciado por seed falha com orientação para pedir ao seu administrador para atualizar a imagem seed.


1018}1046}

1019```1047```

1020 1048 

1049Claude Code baixa os plugins [sincronizados do claude.ai](/docs/pt/plugins-reference#synced-plugins) da sua conta em vez de um marketplace, então esse bloqueio não os cobre. Para parar também, defina [`syncClaudeAiPlugins`](/docs/pt/settings-reference#syncclaudeaiplugins) como `false` em configurações gerenciadas, ou desative Skills para sua organização em claude.ai.

1050 

1021Permitir apenas o marketplace oficial da Anthropic. A correspondência para uma entrada de repositório único é exata, então esta entrada não cobre variantes `ref` ou `path` do mesmo repositório:1051Permitir apenas o marketplace oficial da Anthropic. A correspondência para uma entrada de repositório único é exata, então esta entrada não cobre variantes `ref` ou `path` do mesmo repositório:

1022 1052 

1023```json theme={null}1053```json theme={null}


1128 1158 

1129A correspondência exata da lista de permissões trata URLs que diferem apenas por uma barra à direita, um sufixo `.git` ou o esquema `ssh://` e `https://` como valores diferentes. Se o marketplace da sua organização pode ser clonado por mais de uma forma de URL, prefira uma entrada `hostPattern` em vez de uma URL literal para que as formas `https://`, `ssh://` e `user@host:path` todas correspondam.1159A correspondência exata da lista de permissões trata URLs que diferem apenas por uma barra à direita, um sufixo `.git` ou o esquema `ssh://` e `https://` como valores diferentes. Se o marketplace da sua organização pode ser clonado por mais de uma forma de URL, prefira uma entrada `hostPattern` em vez de uma URL literal para que as formas `https://`, `ssh://` e `user@host:path` todas correspondam.

1130 1160 

1161Um [marketplace hospedado em claude.ai](/docs/pt/discover-plugins#add-from-claude-ai) é correspondido por host: uma entrada `hostPattern` que corresponde a `claude.ai` o governa, em `strictKnownMarketplaces` e em `blockedMarketplaces`. Na lista de permissões, tal entrada não admite uploads pessoais de claude.ai de um membro. Requer Claude Code v2.1.273 ou posterior.

1162 

1131Como `strictKnownMarketplaces` é definido em [configurações gerenciadas](/docs/pt/managed-settings), configurações individuais de usuários e projetos não podem substituir essas restrições.1163Como `strictKnownMarketplaces` é definido em [configurações gerenciadas](/docs/pt/managed-settings), configurações individuais de usuários e projetos não podem substituir essas restrições.

1132 1164 

1133Para detalhes de configuração completos incluindo todos os tipos de fonte suportados e comparação com `extraKnownMarketplaces`, veja a [referência strictKnownMarketplaces](/docs/pt/settings-reference#strictknownmarketplaces).1165Para detalhes de configuração completos incluindo todos os tipos de fonte suportados e comparação com `extraKnownMarketplaces`, veja a [referência strictKnownMarketplaces](/docs/pt/settings-reference#strictknownmarketplaces).


1139As versões de plugin determinam caminhos de cache e detecção de atualização: se a versão resolvida corresponder ao que um usuário já tem, `/plugin update` e auto-atualização pulam o plugin. Para fontes baseadas em git, se você omitir `version`, Claude Code usa o SHA do commit resolvido da fonte, então os usuários recebem uma atualização sempre que esse commit muda; esta é a configuração mais simples para plugins internos ou em desenvolvimento ativo. Veja [Version management](/docs/pt/plugins-reference#version-management) para a ordem de resolução completa, incluindo fontes `archive`.1171As versões de plugin determinam caminhos de cache e detecção de atualização: se a versão resolvida corresponder ao que um usuário já tem, `/plugin update` e auto-atualização pulam o plugin. Para fontes baseadas em git, se você omitir `version`, Claude Code usa o SHA do commit resolvido da fonte, então os usuários recebem uma atualização sempre que esse commit muda; esta é a configuração mais simples para plugins internos ou em desenvolvimento ativo. Veja [Version management](/docs/pt/plugins-reference#version-management) para a ordem de resolução completa, incluindo fontes `archive`.

1140 1172 

1141<Warning>1173<Warning>

1142 Definir `version` fixa o plugin para todos os tipos de fonte exceto [`command`](#command-sources), cuja versão sempre inclui um hash do que o comando produziu. Se você declarar `"version": "1.0.0"` em `plugin.json` e fazer push de novos commits sem alterar essa string, usuários existentes desses tipos de fonte mantêm a cópia em cache, porque Claude Code vê a mesma versão. Aumente o campo em cada lançamento, ou omita-o para usar a versão resolvida.1174 Definir `version` fixa o plugin para todos os tipos de fonte exceto [`command`](#command-sources), cuja versão sempre inclui um hash do que o comando produziu. Um plugin [carregado em lugar](/docs/pt/plugins-reference#plugin-caching-and-file-resolution) de um marketplace adicionado como um diretório local também não é fixado. Se você declarar `"version": "1.0.0"` em `plugin.json` e fazer push de novos commits sem alterar essa string, usuários existentes desses tipos de fonte mantêm a cópia em cache, porque Claude Code vê a mesma versão. Aumente o campo em cada lançamento, ou omita-o para usar a versão resolvida.

1143 1175 

1144 Evite definir `version` em ambos `plugin.json` e a entrada de marketplace. O valor `plugin.json` sempre vence silenciosamente, então uma versão de manifesto obsoleta pode mascarar uma versão que você definiu em `marketplace.json`.1176 Evite definir `version` em ambos `plugin.json` e a entrada de marketplace. O valor `plugin.json` sempre vence silenciosamente, então uma versão de manifesto obsoleta pode mascarar uma versão que você definiu em `marketplace.json`.

1145</Warning>1177</Warning>


1233 Fixar versões de dependência1265 Fixar versões de dependência

1234</h4>1266</h4>

1235 1267 

1236Um plugin pode restringir suas dependências a um intervalo semver para que atualizações de uma dependência não quebrem o plugin dependente. Veja [Restringir versões de dependência de plugin](/docs/pt/plugin-dependencies) para a convenção de git-tag `{plugin-name}--v{version}`, sintaxe de intervalo e como múltiplas restrições na mesma dependência são combinadas.1268Um plugin pode restringir suas dependências a um intervalo semver para que atualizações de uma dependência não quebrem o plugin dependente. Veja [Constrain plugin dependency versions](/docs/pt/plugin-dependencies) para a convenção de git-tag `{plugin-name}--v{version}`, sintaxe de intervalo e como múltiplas restrições na mesma dependência são combinadas.

1237 1269 

1238<h3 id="rename-or-remove-a-plugin">1270<h3 id="rename-or-remove-a-plugin">

1239 Renomear ou remover um plugin1271 Renomear ou remover um plugin


1330**Opções:**1362**Opções:**

1331 1363 

1332| Opção | Descrição | Padrão |1364| Opção | Descrição | Padrão |

1333| :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------- | :----- |1365| :-------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |

1334| `--scope <scope>` | Onde declarar o marketplace: `user`, `project` ou `local`. Veja [Plugin installation scopes](/docs/pt/plugins-reference#plugin-installation-scopes) | `user` |1366| `--scope <scope>` | Onde declarar o marketplace: `user`, `project` ou `local`. Veja [Plugin installation scopes](/docs/pt/plugins-reference#plugin-installation-scopes) | `user` |

1335| `--sparse <paths...>` | Limitar checkout a diretórios específicos via git sparse-checkout. Útil para monorepos | |1367| `--sparse <paths...>` | Limitar checkout a diretórios específicos via git sparse-checkout. Útil para monorepos | |

1368| `--claudeai` | Leia o argumento como o nome de um [marketplace hospedado em claude.ai](/docs/pt/discover-plugins#add-from-claude-ai) em vez de uma fonte. Requer Claude Code v2.1.273 ou posterior | |

1336 1369 

1337Adicione um marketplace do GitHub usando atalho `owner/repo`:1370Adicione um marketplace do GitHub usando atalho `owner/repo`:

1338 1371 


1376claude plugin marketplace add acme-corp/monorepo --sparse .claude-plugin plugins1409claude plugin marketplace add acme-corp/monorepo --sparse .claude-plugin plugins

1377```1410```

1378 1411 

1412Adicione um [marketplace hospedado em claude.ai](/docs/pt/discover-plugins#add-from-claude-ai) pelo nome impresso na seção `From claude.ai:` de `claude plugin marketplace list`:

1413 

1414```bash theme={null}

1415claude plugin marketplace add --claudeai claudeai-organization-library

1416```

1417 

1418Com `--claudeai`, o comando recusa `--scope` e `--sparse`. O marketplace é hospedado para sua conta, não declarado em um arquivo de configurações, portanto você não pode compartilhá-lo através do `.claude/settings.json` de um projeto.

1419 

1379<h3 id="plugin-marketplace-list">1420<h3 id="plugin-marketplace-list">

1380 Plugin marketplace list1421 Plugin marketplace list

1381</h3>1422</h3>


1394 1435 

1395Com `--json`, cada entrada inclui `name`, `source`, um campo `installLocation` com o caminho do cache local onde o marketplace é armazenado, e campos específicos da fonte: `repo` para fontes GitHub, `url` para fontes git e URL, e `path` para fontes locais. Fontes GitHub e git também incluem um campo `ref` quando o marketplace foi adicionado com um branch ou tag fixado.1436Com `--json`, cada entrada inclui `name`, `source`, um campo `installLocation` com o caminho do cache local onde o marketplace é armazenado, e campos específicos da fonte: `repo` para fontes GitHub, `url` para fontes git e URL, e `path` para fontes locais. Fontes GitHub e git também incluem um campo `ref` quando o marketplace foi adicionado com um branch ou tag fixado.

1396 1437 

1438Um [marketplace claude.ai](/docs/pt/discover-plugins#add-from-claude-ai) adicionado não tem um clone local, portanto sua entrada carrega seus identificadores claude.ai, `marketplaceId` e `organizationUuid`, no lugar de `installLocation`.

1439 

1440Em sessões de terminal onde [plugins sincronizam de sua conta claude.ai](/docs/pt/plugins-reference#synced-plugins), a listagem de texto termina com uma seção `From claude.ai:` nomeando o que claude.ai lista para sua conta além dos marketplaces que você adicionou. Para adicionar um deles, veja [Adicionar de claude.ai](/docs/pt/discover-plugins#add-from-claude-ai). A saída `--json` cobre apenas marketplaces configurados e deixa essa seção de fora. Requer Claude Code v2.1.273 ou posterior.

1441 

1397<h3 id="plugin-marketplace-remove">1442<h3 id="plugin-marketplace-remove">

1398 Plugin marketplace remove1443 Plugin marketplace remove

1399</h3>1444</h3>


1472| `No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json` | O diretório que você nomeou não tem `.claude-plugin/marketplace.json` ou `plugin.json`, e nenhum arquivo de skill, agent ou command para verificar | Execute a partir da raiz do marketplace, ou crie `.claude-plugin/marketplace.json` com os campos obrigatórios |1517| `No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json` | O diretório que você nomeou não tem `.claude-plugin/marketplace.json` ou `plugin.json`, e nenhum arquivo de skill, agent ou command para verificar | Execute a partir da raiz do marketplace, ou crie `.claude-plugin/marketplace.json` com os campos obrigatórios |

1473| `Invalid JSON syntax: Unexpected token...` | Erro de sintaxe JSON em marketplace.json | Verifique vírgulas ausentes, vírgulas extras ou strings não citadas |1518| `Invalid JSON syntax: Unexpected token...` | Erro de sintaxe JSON em marketplace.json | Verifique vírgulas ausentes, vírgulas extras ou strings não citadas |

1474| `Duplicate plugin name "x" found in marketplace` | Dois plugins compartilham o mesmo nome | Dê a cada plugin um valor `name` único |1519| `Duplicate plugin name "x" found in marketplace` | Dois plugins compartilham o mesmo nome | Dê a cada plugin um valor `name` único |

1475| `plugins[0].source: Path contains ".."` | Caminho de fonte contém `..` | Use caminhos relativos à raiz do marketplace sem `..`. Veja [Caminhos relativos](#relative-paths) |1520| `plugins[0].source: Path contains ".."` | Um segmento do caminho de fonte é `..` | Use caminhos relativos à raiz do marketplace sem segmentos `..`. Veja [Relative paths](#relative-paths) |

1476| `Marketplace name cannot contain control or bidirectional-formatting characters` | O `name` do marketplace contém um caractere de formatação bidirecional Unicode ou um caractere de controle, como um escape ou uma quebra de linha | Remova o caractere do nome. Antes de v2.1.247, esses caracteres produziam o erro `Marketplace name impersonates an official Anthropic/Claude marketplace` |1521| `Marketplace name cannot contain control or bidirectional-formatting characters` | O `name` do marketplace contém um caractere de formatação bidirecional Unicode ou um caractere de controle, como um escape ou uma quebra de linha | Remova o caractere do nome. Antes de v2.1.247, esses caracteres produziam o erro `Marketplace name impersonates an official Anthropic/Claude marketplace` |

1477| `Plugin name cannot contain control or bidirectional-formatting characters` | Um `name` de plugin contém um caractere de formatação bidirecional Unicode ou um caractere de controle, como um escape ou uma quebra de linha | Remova o caractere do nome. Antes de v2.1.247, Claude Code não executava essa verificação |1522| `Plugin name cannot contain control or bidirectional-formatting characters` | Um `name` de plugin contém um caractere de formatação bidirecional Unicode ou um caractere de controle, como um escape ou uma quebra de linha | Remova o caractere do nome. Antes de v2.1.247, Claude Code não executava essa verificação |

1478 1523 


1575 1620 

1576Para atualizações automáticas em segundo plano:1621Para atualizações automáticas em segundo plano:

1577 1622 

1578* Por padrão, atualizações em segundo plano desabilitam ajudantes de credencial git para o pull, então o pull não consegue autenticar sobre HTTPS. Remotes SSH com uma chave carregada em `ssh-agent` ainda autenticam. Um pull falhado dispara uma re-clonagem do zero, que usa suas credenciais armazenadas mas pode expirar em repositórios grandes1623* Por padrão, atualizações em segundo plano desabilitam ajudantes de credencial git quando verificam o remoto para novos commits, então a verificação não consegue autenticar sobre HTTPS. Remotes SSH com uma chave carregada em `ssh-agent` ainda autenticam

1579* Defina `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` para manter o clone existente quando o pull em segundo plano falhar1624* Quando a verificação não consegue autenticar, Claude Code re-clona o marketplace com suas credenciais armazenadas, mas a re-clonagem pode expirar em repositórios grandes

1580* Configure um ajudante de credencial git, por exemplo `gh auth setup-git`, então o fallback de re-clonagem consegue autenticar1625* Defina `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` para manter o checkout existente sem tentar a re-clonagem quando a verificação em segundo plano não conseguir alcançar ou autenticar no remoto

1626* Configure um ajudante de credencial git, por exemplo `gh auth setup-git`, então a re-clonagem consegue autenticar

1581* Se a re-clonagem expirar em um repositório grande, aumente o limite com [`CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS`](#git-operations-time-out)1627* Se a re-clonagem expirar em um repositório grande, aumente o limite com [`CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS`](#git-operations-time-out)

1582* Configure uma [reescrita de URL git](#private-repositories) escopo para o repositório de marketplace para que o pull em segundo plano autentique diretamente1628* Configure uma [reescrita de URL git](#private-repositories) escopo para o repositório de marketplace para que a verificação em segundo plano autentique diretamente

1583* Ou atualize marketplaces privados manualmente com `/plugin marketplace update <name>`, que usa suas credenciais1629* Ou atualize marketplaces privados manualmente com `/plugin marketplace update <name>`, que usa suas credenciais

1584 1630 

1585<h3 id="marketplace-updates-fail-in-offline-environments">1631<h3 id="marketplace-updates-fail-in-offline-environments">

1586 Atualizações de marketplace falham em ambientes offline1632 Atualizações de marketplace falham em ambientes offline

1587</h3>1633</h3>

1588 1634 

1589**Sintomas**: `git pull` do marketplace falha em segundo plano e Claude Code tenta repetidamente uma re-clonagem que não consegue ter sucesso.1635**Sintomas**: Em um ambiente offline ou airgapped, a atualização de marketplace em segundo plano não consegue alcançar o remoto e Claude Code repetidamente tenta uma re-clonagem que não consegue ter sucesso.

1636 

1637**Causa**: A atualização em segundo plano verifica o remoto do marketplace para novos commits, e quando a verificação não consegue alcançar o remoto, Claude Code tenta clonar o marketplace novamente. Offline, o clone falha da mesma forma e o checkout existente fica no lugar. Antes de v2.1.274, a atualização executava `git pull` no checkout existente, movia o checkout para o lado para re-clonar quando o pull falhava, e o restaurava depois em base de melhor esforço.

1590 1638 

1591**Causa**: Por padrão, quando um `git pull` falha, Claude Code tenta uma re-clonagem do zero. Em ambientes offline ou airgapped, re-clonar falha da mesma forma, e a restauração do cache anterior depois é melhor esforço. A atualização é executada em segundo plano após a inicialização, então não atrasa a inicialização, mas cada sessão repete as tentativas falhadas e cada operação git pode esperar o [timeout de 120 segundos](#git-operations-time-out).1639A atualização é executada em segundo plano após a inicialização, então não atrasa a inicialização. Cada sessão ainda repete a tentativa falhada, e cada operação git pode esperar o [timeout de 120 segundos](#git-operations-time-out).

1592 1640 

1593**Solução**: Defina `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` para pular a tentativa de re-clonagem e continuar usando o cache existente quando o pull falhar:1641**Solução**: Defina `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` para pular a tentativa de re-clonagem e continuar usando o checkout existente quando a verificação não conseguir alcançar o remoto:

1594 1642 

1595```bash theme={null}1643```bash theme={null}

1596export CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=11644export CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1


1602 Operações Git expiram1650 Operações Git expiram

1603</h3>1651</h3>

1604 1652 

1605**Sintomas**: Instalação de plugin ou atualizações de marketplace falham com um erro de timeout como "Git clone timed out after 120s" ou "Git pull timed out after 120s".1653**Sintomas**: Instalação de plugin ou atualizações de marketplace falham com um erro de timeout como `Git clone timed out after 120s`.

1606 1654 

1607**Causa**: Claude Code usa um timeout de 120 segundos para todas as operações git, incluindo clonagem de repositórios de plugin e puxar atualizações de marketplace. Repositórios grandes ou conexões de rede lentas podem exceder este limite.1655**Causa**: Claude Code usa um timeout de 120 segundos para todas as operações git, incluindo clonagem de repositórios de plugin e re-clonagem de um marketplace para atualizá-lo. Repositórios grandes ou conexões de rede lentas podem exceder este limite.

1608 1656 

1609**Solução**: Aumente o timeout usando a variável de ambiente `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS`. O valor está em milissegundos:1657**Solução**: Aumente o timeout usando a variável de ambiente `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS`. O valor está em milissegundos:

1610 1658 


1634 1682 

1635**Sintomas**: Plugin instala mas referências a arquivos falham, especialmente arquivos fora do diretório do plugin1683**Sintomas**: Plugin instala mas referências a arquivos falham, especialmente arquivos fora do diretório do plugin

1636 1684 

1637**Causa**: Plugins são copiados para um diretório de cache em vez de serem usados no local, exceto para uma [`command` source em link mode](#copy-mode-and-link-mode). Caminhos que referenciam arquivos fora do diretório do plugin copiado (como `../shared-utils`) não funcionarão porque esses arquivos não são copiados.1685**Causa**: Claude Code copia plugins instalados para um diretório de cache, a menos que o plugin carregue no local. Uma [`command` source em link mode](#copy-mode-and-link-mode) carrega no local, e assim também uma [relative path source](#relative-paths) em um marketplace adicionado de um diretório local. Caminhos que referenciam arquivos fora do diretório do plugin copiado (como `../shared-utils`) não funcionarão porque esses arquivos não são copiados.

1638 1686 

1639**Soluções**: Veja [Plugin caching and file resolution](/docs/pt/plugins-reference#plugin-caching-and-file-resolution) para workarounds incluindo symlinks e reestruturação de diretório.1687**Soluções**: Veja [Plugin caching and file resolution](/docs/pt/plugins-reference#plugin-caching-and-file-resolution) para workarounds incluindo symlinks e reestruturação de diretório.

1640 1688 

plugins.md +2 −2

Details

75 ```75 ```

76 76 

77 | Campo | Propósito |77 | Campo | Propósito |

78 | :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |78 | :------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

79 | `name` | Identificador único e namespace de skill. Skills são prefixados com isso (ex: `/my-first-plugin:hello`). |79 | `name` | Identificador único e namespace de skill. Skills são prefixados com isso (ex: `/my-first-plugin:hello`). |

80 | `description` | Mostrado no gerenciador de plugins ao navegar ou instalar plugins. |80 | `description` | Mostrado no gerenciador de plugins ao navegar ou instalar plugins. |

81 | `version` | Opcional. Se definido, os usuários recebem atualizações apenas quando você incrementa este campo, exceto para uma [fonte `command`](/docs/pt/plugin-marketplaces#command-sources); veja [gerenciamento de versão](/docs/pt/plugins-reference#version-management). Se omitido, a versão vem da próxima fonte em [gerenciamento de versão](/docs/pt/plugins-reference#version-management). |81 | `version` | Opcional. Se definido, os usuários recebem atualizações apenas quando você incrementa este campo, exceto para uma [fonte `command`](/docs/pt/plugin-marketplaces#command-sources) ou um plugin [carregado no local](/docs/pt/plugins-reference#plugin-caching-and-file-resolution); veja [gerenciamento de versão](/docs/pt/plugins-reference#version-management). Se omitido, a versão vem da próxima fonte em [gerenciamento de versão](/docs/pt/plugins-reference#version-management). |

82 | `author` | Opcional. Útil para atribuição. |82 | `author` | Opcional. Útil para atribuição. |

83 83 

84 Para campos adicionais como `homepage`, `repository` e `license`, veja o [esquema de manifesto completo](/docs/pt/plugins-reference#plugin-manifest-schema).84 Para campos adicionais como `homepage`, `repository` e `license`, veja o [esquema de manifesto completo](/docs/pt/plugins-reference#plugin-manifest-schema).

Details

40 40 

41Skills e commands são descobertos automaticamente quando o plugin é instalado.41Skills e commands são descobertos automaticamente quando o plugin é instalado.

42 42 

43Se um plugin não tem diretório `skills/` e nenhum campo manifest `skills`, um `SKILL.md` na raiz do plugin é carregado como um único skill. Defina o campo frontmatter `name` para controlar o nome de invocação do skill. Sem ele, Claude Code volta para o nome do diretório de instalação, que para plugins instalados do marketplace é uma string de versão que muda a cada atualização. Para plugins que enviam mais de um skill, use o layout de diretório `skills/` mostrado acima.43Se um plugin não tem diretório `skills/` e nenhum campo manifest `skills`, um `SKILL.md` na raiz do plugin é carregado como um único skill. Defina o campo frontmatter `name` para controlar o nome de invocação do skill. Sem ele, Claude Code volta para o nome do diretório de instalação. Para um plugin [copiado para o cache](#plugin-caching-and-file-resolution), esse nome é uma string de versão que muda a cada atualização. Para plugins que enviam mais de um skill, use o layout de diretório `skills/` mostrado acima.

44 44 

45Em skills e commands de plugin, campos frontmatter booleanos como `disable-model-invocation` aceitam `yes`, `no`, `on`, `off`, `1` e `0` em qualquer caso de letra, além de `true` e `false`. Antes da v2.1.218, Claude Code reconhecia apenas `true` e `false`.45Em skills e commands de plugin, campos frontmatter booleanos como `disable-model-invocation` aceitam `yes`, `no`, `on`, `off`, `1` e `0` em qualquer caso de letra, além de `true` e `false`. Antes da v2.1.218, Claude Code reconhecia apenas `true` e `false`.

46 46 


71Prompt de sistema detalhado para o agent descrevendo seu papel, expertise e comportamento.71Prompt de sistema detalhado para o agent descrevendo seu papel, expertise e comportamento.

72```72```

73 73 

74Plugin agents suportam campos frontmatter `name`, `description`, `model`, `effort`, `maxTurns`, `tools`, `disallowedTools`, `skills`, `memory`, `background` e `isolation`. O único valor válido de `isolation` é `"worktree"`. Por razões de segurança, `hooks`, `mcpServers` e `permissionMode` não são suportados para agents fornecidos por plugin.74Plugin agents suportam campos frontmatter `name`, `description`, `model`, `effort`, `maxTurns`, `tools`, `disallowedTools`, `skills`, `memory`, `background`, [`omitClaudeMd`](/docs/pt/sub-agents#supported-frontmatter-fields) e `isolation`. O único valor válido de `isolation` é `"worktree"`.

75 

76Por razões de segurança, agents fornecidos por plugin não suportam `hooks`, `mcpServers` ou `permissionMode`.

75 77 

76Claude Code carrega um agent de plugin mesmo quando seu frontmatter não tem `name` ou não faz parse:78Claude Code carrega um agent de plugin mesmo quando seu frontmatter não tem `name` ou não faz parse:

77 79 


99 101 

100**Formato**: Configuração JSON com matchers de eventos e ações102**Formato**: Configuração JSON com matchers de eventos e ações

101 103 

104`hooks/hooks.json` pode conter uma chave `$schema` de nível superior que nomeia uma URL de JSON Schema para autocompletar e validação do editor. Claude Code ignora a chave no tempo de carregamento.

105 

102**Configuração de hook**:106**Configuração de hook**:

103 107 

104```json theme={null}108```json theme={null}


440 Plugins sincronizados do claude.ai444 Plugins sincronizados do claude.ai

441</h2>445</h2>

442 446 

443Em [Cowork](https://claude.com/product/cowork) e [sessões em nuvem](/docs/pt/cloud-environments#what-carries-over-from-your-setup), Claude Code baixa os plugins habilitados para sua conta claude.ai em `~/.claude/plugins/synced/` no próprio ambiente da sessão e carrega cada um como `<name>@synced`, sem marketplace e sem registro de instalação. Claude Code não os carrega em sessões que você inicia em seu próprio terminal. Dentro desse ambiente Cowork ou em nuvem, `claude plugin list` mostra as cópias baixadas sob um cabeçalho `Synced from claude.ai`. Antes da v2.1.239, Claude Code carregava esses plugins como `<name>@inline`, a identidade que os plugins `--plugin-dir` usam.447Claude Code carrega os plugins habilitados para sua conta claude.ai, incluindo plugins que sua organização ativa para seus membros, juntamente com os plugins que você instala a partir de marketplaces. Ele baixa cada um em `~/.claude/plugins/synced/` e o carrega como `<name>@synced`, sem marketplace e sem registro de instalação. Um plugin sincronizado é executado com a mesma confiança que um plugin de marketplace que você instalou: suas skills, agents, hooks, servidores MCP e servidores LSP são todos carregados.

448 

449Onde Claude Code sincroniza esses plugins depende da sessão:

450 

451* Em [Cowork](https://claude.com/product/cowork) e [sessões em nuvem](/docs/pt/cloud-environments#what-carries-over-from-your-setup), Claude Code baixa-os no próprio ambiente da sessão quando a sessão inicia. Antes da v2.1.239, Claude Code carregava esses plugins como `<name>@inline`, a identidade que os plugins `--plugin-dir` usam.

452* Em sessões de terminal onde você faz login com sua conta claude.ai, Claude Code verifica sua conta uma vez cada vez que inicia, depois baixa plugins novos e atualizados e remove os que você ou sua organização desativou, tudo em segundo plano. A sincronização em sessões de terminal requer Claude Code v2.1.273 ou posterior.

453 

454A verificação de inicialização é executada em segundo plano, portanto pode ser concluída após sua sessão ter iniciado. Quando adiciona, atualiza ou remove um plugin sincronizado em uma sessão interativa, Claude Code mostra `Plugins changed. Run /reload-plugins to activate.` Execute [`/reload-plugins`](/docs/pt/discover-plugins#apply-plugin-changes-without-restarting) para carregar a alteração nessa sessão, ou deixe para a próxima vez que você iniciar Claude Code. Se você habilitar um plugin no claude.ai enquanto uma sessão está em execução, Claude Code o baixa na próxima vez que inicia.

444 455 

445Gerencie um plugin sincronizado pelo ID `<name>@synced` que `claude plugin list` imprime:456A sincronização de plugins em sessões de terminal é executada sob as mesmas condições de login que [skills sincronizadas do claude.ai](/docs/pt/skills#where-synced-skills-load). Também precisa de um login que conceda a Claude Code acesso aos plugins de sua conta.

446 457 

447* **Desativar um**: na sessão sincronizada, execute `claude plugin disable <name>@synced`, ou peça a Claude para executá-lo. Claude Code salva a escolha como `"<name>@synced": false` no [`enabledPlugins`](/docs/pt/settings-reference#enabledplugins) de nível de usuário daquele ambiente. Para ativar o plugin novamente, execute `claude plugin enable <name>@synced` na mesma sessão. Para manter um plugin fora de todas as sessões sincronizadas, [desative-o para sua conta claude.ai](/docs/pt/desktop#extend-claude-code). Para mantê-lo fora das sessões sincronizadas de um projeto em todos os ambientes, defina `"<name>@synced": false` sob `enabledPlugins` no `.claude/settings.json` comprometido daquele projeto.458Um login de uma versão anterior do Claude Code obtém acesso a plugins na próxima vez que Claude Code renova esse login em segundo plano, dentro de algumas horas, ou imediatamente se você executar `/login` novamente. A sincronização de plugins começa na próxima vez que você inicia Claude Code após isso.

448* **Gerencie o plugin em si no claude.ai**: `claude plugin install`, `update` e `uninstall` não se aplicam a um plugin sincronizado. Para remover um, desative o plugin para sua conta claude.ai; a próxima sessão sincronizada inicia sem ele.

449 459 

450Quando um plugin habilitado de qualquer outra fonte, como uma instalação do marketplace, um plugin do [diretório de skills](#skills-directory-plugins), ou um plugin `--plugin-dir`, corresponde ao nome de um plugin sincronizado, Claude Code carrega esse plugin e relata a cópia sincronizada como não carregada. Para usar a cópia claude.ai em vez disso, desative sua própria cópia. Antes da v2.1.239, Claude Code carregava a cópia sincronizada em vez de uma instalação do marketplace com o mesmo nome.460`claude plugin list` mostra plugins sincronizados sob um cabeçalho `Synced from claude.ai`, e a aba **Installed** do `/plugin` os lista com `synced` como sua fonte. Gerencie um plugin sincronizado pelo ID `<name>@synced` que `claude plugin list` imprime:

461 

462* **Desativar um**: execute `claude plugin disable <name>@synced`, ou desative-o na aba **Installed** do `/plugin`. Claude Code salva a escolha como `"<name>@synced": false` em seu [`enabledPlugins`](/docs/pt/settings-reference#enabledplugins) de nível de usuário. Para ativar o plugin novamente, execute `claude plugin enable <name>@synced`.

463* **Manter um fora em todos os lugares**: [desative o plugin para sua conta claude.ai](/docs/pt/desktop#extend-claude-code). Para mantê-lo fora de um projeto em todos os ambientes, defina `"<name>@synced": false` sob `enabledPlugins` no `.claude/settings.json` comprometido daquele projeto.

464* **Gerencie o plugin em si no claude.ai**: `claude plugin install`, `update` e `uninstall` não se aplicam a um plugin sincronizado. Claude Code baixa as atualizações de um plugin na próxima sincronização. Para remover um, desative o plugin para sua conta claude.ai, e Claude Code o remove na próxima sincronização.

465* **Pare de sincronizar em uma máquina**: defina [`syncClaudeAiPlugins`](/docs/pt/settings-reference#syncclaudeaiplugins) como `false` em suas configurações de usuário. Claude Code para de baixar, e na próxima vez que inicia, move os plugins que já sincronizou para `~/.claude/plugins/.trash/` e não os carrega mais. Sua organização pode definir a mesma chave em [configurações gerenciadas](/docs/pt/managed-settings), ou desativar Skills no claude.ai, o que também para plugins de sincronizar.

466 

467Você não pode desativar um plugin que sua organização marca como obrigatório no claude.ai. Claude Code o carrega mesmo se você o desativou anteriormente, e `claude plugin disable` recusa com `Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.` Em `claude plugin list`, esses plugins são marcados `required by your org`.

468 

469Quando um plugin habilitado de qualquer outra fonte corresponde ao nome de um plugin sincronizado, Claude Code carrega esse plugin e relata a cópia sincronizada como não carregada. Outras fontes incluem instalações de marketplace, [plugins do diretório de skills](#skills-directory-plugins), plugins `--plugin-dir` e plugins integrados ao Claude Code. Para usar a cópia claude.ai em vez disso, desative sua própria cópia. Antes da v2.1.239, Claude Code carregava a cópia sincronizada em vez de uma instalação de marketplace com o mesmo nome.

451 470 

452***471***

453 472 


534</h3>553</h3>

535 554 

536| Campo | Tipo | Descrição | Exemplo |555| Campo | Tipo | Descrição | Exemplo |

537| :--------------- | :------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |556| :--------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------- |

538| `$schema` | string | URL do JSON Schema para autocomplete e validação do editor. Claude Code ignora este campo em tempo de carregamento. | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |557| `$schema` | string | URL do JSON Schema para autocomplete e validação do editor. Claude Code ignora este campo em tempo de carregamento. | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |

539| `displayName` | string | Nome legível por humanos mostrado no seletor `/plugin` e outras superfícies de interface do usuário. Para um plugin instalado a partir de um marketplace, um `displayName` na [entrada de marketplace](/docs/pt/plugin-marketplaces#optional-plugin-fields) tem precedência sobre este valor. Quando nenhum nome de exibição é definido em nenhum dos dois lugares, os usuários veem `name`. Ao contrário de `name`, pode conter espaços e qualquer capitalização. Não é usado para namespacing ou busca. | `"Deployment Tools"` |558| `displayName` | string | Nome legível por humanos mostrado no seletor `/plugin` e outras superfícies de interface do usuário. Para um plugin instalado a partir de um marketplace, um `displayName` na [entrada de marketplace](/docs/pt/plugin-marketplaces#optional-plugin-fields) tem precedência sobre este valor. Quando nenhum nome de exibição é definido em nenhum dos dois lugares, os usuários veem `name`. Ao contrário de `name`, pode conter espaços e qualquer capitalização. Não é usado para namespacing ou busca. | `"Deployment Tools"` |

540| `version` | string | Opcional. Versão semântica. Definir isso fixa o plugin para essa string de versão, então os usuários só recebem atualizações quando você a incrementa, exceto para uma [`command` source](/docs/pt/plugin-marketplaces#command-sources); veja [Gerenciamento de versão](#version-management). Se também definido na entrada de marketplace, `plugin.json` vence. Se omitido, a versão vem da próxima fonte em [Gerenciamento de versão](#version-management). | `"2.1.0"` |559| `version` | string | Opcional. Versão semântica. Definir isso fixa o plugin para essa string de versão, então os usuários só recebem atualizações quando você a incrementa, exceto para uma [`command` source](/docs/pt/plugin-marketplaces#command-sources) ou um plugin [carregado no local](#plugin-caching-and-file-resolution); veja [Gerenciamento de versão](#version-management). Se também definido na entrada de marketplace, `plugin.json` vence. Se omitido, a versão vem da próxima fonte em [Gerenciamento de versão](#version-management). | `"2.1.0"` |

541| `description` | string | Breve explicação do propósito do plugin | `"Deployment automation tools"` |560| `description` | string | Breve explicação do propósito do plugin | `"Deployment automation tools"` |

542| `author` | object | Informações do autor | `{"name": "Dev Team", "email": "dev@company.com"}` |561| `author` | object | Informações do autor | `{"name": "Dev Team", "email": "dev@company.com"}` |

543| `homepage` | string | URL de documentação | `"https://docs.example.com"` |562| `homepage` | string | URL de documentação | `"https://docs.example.com"` |


553 572 

554Defina `defaultEnabled: false` em `plugin.json` para enviar um plugin que instala desabilitado. O usuário o ativa com `claude plugin enable <plugin>` ou a interface `/plugin`. Use isso para plugins que adicionam custo ou escopo que um usuário deve optar por usar, como um que se conecta a um serviço externo.573Defina `defaultEnabled: false` em `plugin.json` para enviar um plugin que instala desabilitado. O usuário o ativa com `claude plugin enable <plugin>` ou a interface `/plugin`. Use isso para plugins que adicionam custo ou escopo que um usuário deve optar por usar, como um que se conecta a um serviço externo.

555 574 

556`defaultEnabled` é o fallback quando nada mais decidiu o estado do plugin. Duas coisas têm precedência sobre ele:575`defaultEnabled` é o fallback quando nada mais decidiu o estado do plugin. A configuração do usuário e um requisito de dependência têm precedência sobre ele:

557 576 

558* **A configuração do usuário**: uma entrada para o plugin em `enabledPlugins` em qualquer escopo de configurações. Uma vez escrita, persiste entre atualizações e reinstalações de plugin, então alterar `defaultEnabled` em uma versão posterior não inverte um usuário existente.577* **A configuração do usuário**: uma entrada para o plugin em `enabledPlugins` em qualquer escopo de configurações. Uma vez escrita, persiste entre atualizações e reinstalações de plugin, então alterar `defaultEnabled` em uma versão posterior não inverte um usuário existente.

559* **Um requisito de dependência**: quando um plugin é exigido por outro que está ativo, Claude Code escreve `true` para ele em tempo de instalação ou habilitação. Isso lhe dá uma configuração explícita, então seu próprio padrão não se aplica mais. Veja [Habilitar ou desabilitar um plugin com dependências](/docs/pt/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies).578* **Um requisito de dependência**: quando um plugin é exigido por outro que está ativo, Claude Code escreve `true` para ele em tempo de instalação ou habilitação. Isso lhe dá uma configuração explícita, então seu próprio padrão não se aplica mais. Veja [Habilitar ou desabilitar um plugin com dependências](/docs/pt/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies).


577| `experimental.themes` | string\|array | Arquivos/diretórios de tema de cor (substitui padrão `themes/`). Veja [Temas](#themes) | `"./themes/"` |596| `experimental.themes` | string\|array | Arquivos/diretórios de tema de cor (substitui padrão `themes/`). Veja [Temas](#themes) | `"./themes/"` |

578| `experimental.monitors` | string\|array | Configurações de [Monitor](/docs/pt/tools-reference#monitor-tool) em segundo plano que iniciam automaticamente quando o plugin está ativo. Veja [Monitores](#monitors) | `"./monitors.json"` |597| `experimental.monitors` | string\|array | Configurações de [Monitor](/docs/pt/tools-reference#monitor-tool) em segundo plano que iniciam automaticamente quando o plugin está ativo. Veja [Monitores](#monitors) | `"./monitors.json"` |

579| `experimental.evals` | string\|array | Diretório abaixo da raiz do plugin que contém os [casos de eval](/docs/pt/plugin-evals#use-a-different-eval-directory) do plugin, quando não é o padrão `evals/`. `claude plugin eval --eval-dir` o substitui | `"quality/evals"` |598| `experimental.evals` | string\|array | Diretório abaixo da raiz do plugin que contém os [casos de eval](/docs/pt/plugin-evals#use-a-different-eval-directory) do plugin, quando não é o padrão `evals/`. `claude plugin eval --eval-dir` o substitui | `"quality/evals"` |

580| `userConfig` | object | Valores configuráveis pelo usuário solicitados em tempo de habilitação. Veja [Configuração do usuário](#user-configuration) | Veja abaixo |599| `userConfig` | object | Valores configuráveis pelo usuário solicitados em tempo de habilitação. Veja [Configuração do usuário](#user-configuration) | |

581| `channels` | array | Declarações de canal para injeção de mensagens (estilo Telegram, Slack, Discord). Veja [Canais](#channels) | Veja abaixo |600| `channels` | array | Declarações de canal para injeção de mensagens (estilo Telegram, Slack, Discord). Veja [Canais](#channels) | |

582| `dependencies` | array | Outros plugins que este plugin requer, opcionalmente com restrições de versão semver. Veja [Restringir versões de dependência de plugin](/docs/pt/plugin-dependencies) | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |601| `dependencies` | array | Outros plugins que este plugin requer, opcionalmente com restrições de versão semver. Veja [Restringir versões de dependência de plugin](/docs/pt/plugin-dependencies) | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |

583 602 

584<h3 id="experimental-components">603<h3 id="experimental-components">


614As chaves devem ser identificadores válidos. Cada opção suporta estes campos:633As chaves devem ser identificadores válidos. Cada opção suporta estes campos:

615 634 

616| Campo | Obrigatório | Descrição |635| Campo | Obrigatório | Descrição |

617| :------------ | :---------- | :---------------------------------------------------------------------------------------------- |636| :------------ | :---------- | :--------------------------------------------------------------------------------------------------------------------------------------------- |

618| `type` | Sim | Um de `string`, `number`, `boolean`, `directory`, ou `file` |637| `type` | Sim | Um de `string`, `number`, `boolean`, `directory`, ou `file` |

619| `title` | Sim | Rótulo mostrado no diálogo de configuração |638| `title` | Sim | Rótulo mostrado no diálogo de configuração |

620| `description` | Sim | Texto de ajuda mostrado abaixo do campo |639| `description` | Sim | Texto de ajuda mostrado abaixo do campo |

621| `sensitive` | Não | Se `true`, mascara entrada e armazena o valor em armazenamento seguro em vez de `settings.json` |640| `sensitive` | Não | Se `true`, mascara entrada e armazena o valor em armazenamento seguro em vez de `settings.json` |

622| `required` | Não | Se `true`, a validação falha quando o campo está vazio |641| `required` | Não | Se `true`, a validação falha quando o campo está vazio |

623| `default` | Não | Valor usado quando o usuário não fornece nada |642| `default` | Não | Valor usado quando o usuário não fornece nada |

643| `options` | Não | Para tipo `string`, os valores que o campo aceita, mostrados em `/config` como um seletor sobre eles. Requer Claude Code v2.1.271 ou posterior |

624| `multiple` | Não | Para tipo `string`, permite um array de strings |644| `multiple` | Não | Para tipo `string`, permite um array de strings |

625| `min` / `max` | Não | Limites para tipo `number` |645| `min` / `max` | Não | Limites para tipo `number` |

626 646 

647Exceto campos `sensitive` e listas `multiple`, cada campo de cada plugin habilitado também aparece como uma linha no painel `/config`. As linhas requerem Claude Code v2.1.269 ou posterior.

648 

627Cada valor está disponível para substituição como `${user_config.KEY}` em configurações de servidor MCP e LSP e comandos de hook. Valores não-sensíveis também podem ser substituídos em conteúdo de skill e agente. Todos os valores são exportados para processos de hook como variáveis de ambiente `CLAUDE_PLUGIN_OPTION_<KEY>`, onde `<KEY>` é a chave de opção em maiúsculas.649Cada valor está disponível para substituição como `${user_config.KEY}` em configurações de servidor MCP e LSP e comandos de hook. Valores não-sensíveis também podem ser substituídos em conteúdo de skill e agente. Todos os valores são exportados para processos de hook como variáveis de ambiente `CLAUDE_PLUGIN_OPTION_<KEY>`, onde `<KEY>` é a chave de opção em maiúsculas.

628 650 

629Campos que executam em um shell rejeitam `${user_config.*}`: substituir um valor configurado em um comando shell deixaria o shell executar o que quer que esse valor contenha, então o componente falha com um [erro](/docs/pt/errors#plugin-command-references-user-config) em vez disso. Cada campo rejeitado tem uma forma alternativa de passar o valor:651Campos que executam em um shell rejeitam `${user_config.*}`: substituir um valor configurado em um comando shell deixaria o shell executar o que quer que esse valor contenha, então o componente falha com um [erro](/docs/pt/errors#plugin-command-references-user-config) em vez disso. Cada campo rejeitado tem uma forma alternativa de passar o valor:


733| `${CLAUDE_PLUGIN_DATA}` | [Diretório persistente](#persistent-data-directory) que sobrevive a atualizações de plugin, criado na primeira referência | Dependências instaladas como `node_modules` ou ambientes virtuais Python, código gerado e caches |755| `${CLAUDE_PLUGIN_DATA}` | [Diretório persistente](#persistent-data-directory) que sobrevive a atualizações de plugin, criado na primeira referência | Dependências instaladas como `node_modules` ou ambientes virtuais Python, código gerado e caches |

734| `${CLAUDE_PROJECT_DIR}` | A raiz do projeto | Scripts e arquivos de configuração locais do projeto |756| `${CLAUDE_PROJECT_DIR}` | A raiz do projeto | Scripts e arquivos de configuração locais do projeto |

735 757 

736Todos os três são exportados como variáveis de ambiente para processos de hook e para subprocessos de servidor MCP e LSP. Quais campos substituem eles inline depende do componente do plugin:758Todos os três são exportados como variáveis de ambiente para processos de hook e para subprocessos de servidor MCP e LSP. Eles não estão presentes no ambiente de comandos que Claude executa através da ferramenta Bash, na sessão principal ou em um subagente. Em conteúdo de plugin, escreva o placeholder em vez disso, e Claude Code substitui o caminho inline quando carrega o conteúdo. Quais campos substituem eles inline depende do componente do plugin:

737 759 

738| Componente do plugin | Campos onde placeholders resolvem |760| Componente do plugin | Campos onde placeholders resolvem |

739| :--------------------------------- | :------------------------------------------- |761| :--------------------------------- | :------------------------------------------- |


762}784}

763```785```

764 786 

765`${CLAUDE_PLUGIN_ROOT}` muda quando o plugin é atualizado. O diretório da versão anterior permanece no disco por um período de carência após uma atualização, mas trate-o como efêmero e não escreva estado lá. Veja [plugin caching](#plugin-caching-and-file-resolution) para semântica de limpeza.787Para um plugin copiado, `${CLAUDE_PLUGIN_ROOT}` muda quando o plugin é atualizado. O diretório da versão anterior permanece no disco por um período de carência após uma atualização, mas trate-o como efêmero e não escreva estado lá. Para um plugin carregado no local de um marketplace de diretório local, a variável aponta para o diretório de origem estável. Veja [plugin caching](#plugin-caching-and-file-resolution) para quais plugins são copiados e para semântica de limpeza.

766 788 

767Quando um plugin é atualizado no meio da sessão, comandos de hook, monitores, servidores MCP e servidores LSP continuam usando o caminho da versão anterior. Execute `/reload-plugins` para mudar hooks, servidores MCP e servidores LSP para o novo caminho; monitores exigem reinicialização de sessão. Em uma sessão sem terminal interativo, o reload deixa servidores MCP de plugin no caminho antigo até a próxima sessão.789Quando um plugin copiado é atualizado no meio da sessão, comandos de hook, monitores, servidores MCP e servidores LSP continuam usando o caminho da versão anterior. Execute `/reload-plugins` para mudar hooks, servidores MCP e servidores LSP para o novo caminho; monitores exigem reinicialização de sessão. Em uma sessão sem terminal interativo, o reload deixa servidores MCP de plugin no caminho antigo até a próxima sessão.

768 790 

769Para um plugin com uma `command` source, Claude Code [pode recarregar o plugin em si](/docs/pt/plugin-marketplaces#when-claude-code-re-runs-the-command).791Para um plugin com uma `command` source, Claude Code [pode recarregar o plugin em si](/docs/pt/plugin-marketplaces#when-claude-code-re-runs-the-command).

770 792 


825 Caching de plugins e resolução de arquivos847 Caching de plugins e resolução de arquivos

826</h2>848</h2>

827 849 

828Plugins são especificados de duas maneiras:850Plugins são especificados de uma das três maneiras:

829 851 

830* Através de `claude --plugin-dir` ou `claude --plugin-url`, pela duração de uma sessão.852* Através de `claude --plugin-dir` ou `claude --plugin-url`, pela duração de uma sessão.

831* Através de um marketplace, instalado para futuras sessões.853* Através de um marketplace, instalado para futuras sessões.

854* Através de sua conta claude.ai, [sincronizados](#synced-plugins) em `~/.claude/plugins/synced/`.

832 855 

833Para fins de segurança e verificação, Claude Code copia plugins de *marketplace* para o **cache de plugins** local do usuário (`~/.claude/plugins/cache`) em vez de usá-los no local, exceto para [fontes `command` em link mode](/docs/pt/plugin-marketplaces#copy-mode-and-link-mode), que Claude Code usa no local através de links na entrada do cache.856Para fins de segurança e verificação, Claude Code copia plugins de *marketplace* para o **cache de plugins** local do usuário (`~/.claude/plugins/cache`), exceto quando o plugin é carregado no local. Uma [fonte `command` em link mode](/docs/pt/plugin-marketplaces#copy-mode-and-link-mode) é carregada no local através de links na entrada do cache. Uma [fonte de caminho relativo](/docs/pt/plugin-marketplaces#relative-paths) em um marketplace adicionado de um diretório local é carregada no local a partir da pasta do marketplace.

857 

858Para um plugin carregado no local a partir de um marketplace de diretório local, suas edições no diretório de origem entram em vigor no próximo início de sessão ou `/reload-plugins`. Você não precisa de um bump de versão. Os processos de hook do plugin e os servidores MCP e LSP recebem um `CLAUDE_PLUGIN_ROOT` que aponta para o diretório de origem. Claude Code não instala as [dependências de pacotes Node.js](#node-js-package-dependencies) do plugin no diretório de origem. Instale-as lá você mesmo, ou a partir de um hook no [diretório de dados persistentes](#persistent-data-directory).

834 859 

835Para plugins copiados, cada versão instalada é um diretório separado no cache, agrupado por marketplace e plugin e nomeado para a versão resolvida, com sua própria cópia dos arquivos do plugin e [dependências de pacotes Node.js](#node-js-package-dependencies). Uma dependência resolvida de uma [tag de release](/docs/pt/plugin-dependencies#tag-plugin-releases-for-version-resolution) obtém um nome de diretório com um sufixo de commit-SHA.860Para plugins copiados, cada versão instalada é um diretório separado no cache, agrupado por marketplace e plugin e nomeado para a versão resolvida, com sua própria cópia dos arquivos do plugin e [dependências de pacotes Node.js](#node-js-package-dependencies). Uma dependência resolvida de uma [tag de release](/docs/pt/plugin-dependencies#tag-plugin-releases-for-version-resolution) obtém um nome de diretório com um sufixo de commit-SHA.

836 861 


853| `bun.lock` ou `bun.lockb` | `bun install --frozen-lockfile --ignore-scripts` |878| `bun.lock` ou `bun.lockb` | `bun install --frozen-lockfile --ignore-scripts` |

854| `npm-shrinkwrap.json` ou `package-lock.json` | `npm ci --ignore-scripts` |879| `npm-shrinkwrap.json` ou `package-lock.json` | `npm ci --ignore-scripts` |

855 880 

856Se um plugin contiver mais de um desses lockfiles, Claude Code usa a primeira correspondência, verificando em ordem: `bun.lock`, `bun.lockb`, `npm-shrinkwrap.json`, `package-lock.json`. Claude Code pula `yarn.lock` e `pnpm-lock.yaml` porque Yarn e pnpm suportam hooks de configuração em tempo de resolução que contornam `--ignore-scripts`.881Se um plugin contiver mais de um desses lockfiles, Claude Code usa a primeira correspondência, verificando em ordem: `bun.lock`, `bun.lockb`, `npm-shrinkwrap.json`, `package-lock.json`.

882 

883Claude Code pula a instalação em dois casos, cada um com sua própria correção:

884 

885* Se seu plugin envia apenas um `yarn.lock` ou `pnpm-lock.yaml`, substitua-o por um lockfile npm.

886* Se um `bunfig.toml` fica ao lado do lockfile bun, remova o `bunfig.toml`, ou substitua o lockfile bun por um lockfile npm.

857 887 

858Envie um lockfile npm para o alcance mais amplo. Claude Code executa o gerenciador de pacotes do lockfile correspondente do PATH do usuário e não volta para o outro lockfile se estiver faltando. Para um plugin distribuído através de uma fonte npm, use `npm-shrinkwrap.json`; npm exclui `package-lock.json` de pacotes publicados.888Envie um lockfile npm para o alcance mais amplo. Claude Code executa o gerenciador de pacotes do lockfile correspondente do PATH do usuário e não volta para o outro lockfile se estiver faltando. Para um plugin distribuído através de uma fonte npm, use `npm-shrinkwrap.json`; npm exclui `package-lock.json` de pacotes publicados.

859 889 


863* **Sem scripts de ciclo de vida:** `--ignore-scripts` impede que scripts `preinstall`, `install` e `postinstall` sejam executados, para que dependências que compilam módulos nativos nesses scripts façam download mas não compilem durante essa instalação.893* **Sem scripts de ciclo de vida:** `--ignore-scripts` impede que scripts `preinstall`, `install` e `postinstall` sejam executados, para que dependências que compilam módulos nativos nesses scripts façam download mas não compilem durante essa instalação.

864* **Timeout de 60 segundos:** Claude Code para uma instalação que é executada por mais tempo e a trata como falha.894* **Timeout de 60 segundos:** Claude Code para uma instalação que é executada por mais tempo e a trata como falha.

865 895 

866Buscar um plugin de fonte npm executa `npm install` com scripts de ciclo de vida habilitados, antes dessa instalação de dependência ser executada.896Claude Code busca um plugin de fonte npm antes dessa instalação de dependência, e nenhum dos scripts de instalação próprios do pacote é executado durante a busca. Consulte [pacotes npm](/docs/pt/plugin-marketplaces#npm-packages).

867 897 

868Uma instalação falhada ou ignorada nunca bloqueia o plugin. Quando a instalação falha, ou Claude Code pula um lockfile yarn ou pnpm, ele registra o motivo como um aviso na [saída de debug](#debugging-commands). Um plugin com um `package.json` e nenhum lockfile é ignorado sem uma entrada de log. Uma instalação com timeout pode deixar uma árvore `node_modules` parcial na cópia em cache.898Uma instalação falhada ou ignorada nunca bloqueia o plugin. Quando a instalação falha, ou Claude Code pula um lockfile yarn ou pnpm ou um `bunfig.toml`, ele registra o motivo como um aviso na [saída de debug](#debugging-commands). Um plugin com um `package.json` e nenhum lockfile é ignorado sem uma entrada de log. Uma instalação com timeout pode deixar uma árvore `node_modules` parcial na cópia em cache.

869 899 

870Você não pode desativar a instalação automática; nenhuma configuração ou variável de ambiente a desativa. Em redes restritas, consulte os [requisitos de acesso à rede](/docs/pt/network-config#network-access-requirements) para os hosts a permitir.900Você não pode desativar a instalação automática; nenhuma configuração ou variável de ambiente a desativa. Em redes restritas, consulte os [requisitos de acesso à rede](/docs/pt/network-config#network-access-requirements) para os hosts a permitir.

871 901 


1061O comando aceita estas opções:1091O comando aceita estas opções:

1062 1092 

1063| Opção | Descrição | Padrão |1093| Opção | Descrição | Padrão |

1064| :--------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |1094| :-------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |

1065| `-s, --scope <scope>` | Escopo de instalação: `user`, `project` ou `local` | `user` |1095| `-s, --scope <scope>` | Escopo de instalação: `user`, `project` ou `local` | `user` |

1066| `--config <key=value>` | Defina uma opção [`userConfig`](#user-configuration) declarada no manifesto do plugin. Repita a flag para definir múltiplas opções | |1096| `--config <key=value>` | Defina uma opção [`userConfig`](#user-configuration) declarada no manifesto do plugin. Repita a flag para definir múltiplas opções | |

1067| `-y, --yes` | Aceite um comando que o marketplace do plugin declara, sem o prompt de confirmação: o comando que produz um plugin com uma [`command` source](/docs/pt/plugin-marketplaces#command-sources), ou o [`headersHelper`](/docs/pt/plugin-marketplaces#authenticate-archive-downloads) que autentica um download de arquivo. Aceitar um `headersHelper` requer Claude Code v2.1.238 ou posterior. Claude Code ainda imprime o comando primeiro. Obrigatório quando stdin ou stdout não é um TTY. Não tem efeito dentro de uma sessão do Claude Code, portanto execute o comando do seu próprio terminal | |1097| `-y, --yes` | Aceite um comando que o marketplace do plugin declara, sem o prompt de confirmação: o comando que produz um plugin com uma [`command` source](/docs/pt/plugin-marketplaces#command-sources), ou o [`headersHelper`](/docs/pt/plugin-marketplaces#authenticate-archive-downloads) que autentica um download de arquivo. Aceitar um `headersHelper` requer Claude Code v2.1.238 ou posterior. Claude Code ainda imprime o comando primeiro. Obrigatório quando stdin ou stdout não é um TTY, a menos que você passe `--accept-command`. Não tem efeito dentro de uma sessão do Claude Code, portanto execute o comando do seu próprio terminal | |

1098| `--accept-command <sha256>` | Aceite o comando declarado pelo marketplace cujo `sha256` uma execução anterior com [`--json`](#plugin-json-result) relatou em `shownCommand`, no lugar de `-y`. A aceitação conta para exatamente esse comando, plugin e catálogo de marketplace. Se qualquer um deles mudou desde que o comando foi exibido, incluindo através da própria atualização de marketplace da execução, Claude Code não aceita o digest e mostra o comando novamente. Não pode ser combinado com `-y`. Não tem efeito dentro de uma sessão do Claude Code, portanto execute o comando do seu próprio terminal. Requer Claude Code v2.1.271 ou posterior | |

1068| `--json` | Imprima o resultado como um objeto JSON na última linha de stdout em vez da mensagem legível por humanos, para uso em scripts. Consulte [Formato de resultado JSON](#plugin-json-result). Requer Claude Code v2.1.268 ou posterior | |1099| `--json` | Imprima o resultado como um objeto JSON na última linha de stdout em vez da mensagem legível por humanos, para uso em scripts. Consulte [Formato de resultado JSON](#plugin-json-result). Requer Claude Code v2.1.268 ou posterior | |

1069| `-h, --help` | Exiba ajuda para o comando | |1100| `-h, --help` | Exiba ajuda para o comando | |

1070 1101 


1078 1109 

1079Outros campos, como `pluginId`, `scope` e `failureCode`, aparecem apenas quando se aplicam. A opção `--json` em `plugin uninstall`, `plugin update`, `plugin enable` e `plugin disable` imprime o mesmo objeto com os próprios campos desse subcomando. Um erro de uso, como um `--scope` inválido, não imprime nenhuma linha de resultado e sai com 1 com o motivo em stderr.1110Outros campos, como `pluginId`, `scope` e `failureCode`, aparecem apenas quando se aplicam. A opção `--json` em `plugin uninstall`, `plugin update`, `plugin enable` e `plugin disable` imprime o mesmo objeto com os próprios campos desse subcomando. Um erro de uso, como um `--scope` inválido, não imprime nenhuma linha de resultado e sai com 1 com o motivo em stderr.

1080 1111 

1112Quando uma execução exibe um comando declarado pelo marketplace e não o executa, o resultado `failed` também carrega um objeto `shownCommand` cujos campos incluem o comando conforme exibido, o plugin ao qual pertence e o `sha256` do comando. Para aceitar exatamente esse comando, execute novamente com esse `sha256` como `--accept-command`. Requer Claude Code v2.1.271 ou posterior.

1113 

1114Se `shownCommand.acceptCommandMatched` for `false`, o digest que você passou não corresponde ao comando agora exibido. Mostre esse comando a uma pessoa antes de passar seu `sha256`.

1115 

1081Estes exemplos mostram invocações comuns:1116Estes exemplos mostram invocações comuns:

1082 1117 

1083```bash theme={null}1118```bash theme={null}


1159 1194 

1160O comando toma estes argumentos:1195O comando toma estes argumentos:

1161 1196 

1162* `<plugin>`: Nome do plugin ou `plugin-name@marketplace-name`1197* `<plugin>`: Nome do plugin, `plugin-name@marketplace-name` ou `plugin-name@synced` para um [plugin sincronizado de claude.ai](#synced-plugins)

1163 1198 

1164O comando aceita estas opções:1199O comando aceita estas opções:

1165 1200 


1173 plugin disable1208 plugin disable

1174</h3>1209</h3>

1175 1210 

1176Desative um plugin sem desinstalá-lo. Quando o destino é instalado de um marketplace, o comando falha se outro plugin ativado [depende](/docs/pt/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies) dele. A mensagem de erro inclui um comando encadeado que desativa cada dependente primeiro.1211Desative um plugin sem desinstalá-lo.

1212 

1213Quando o destino é instalado de um marketplace, o comando falha se outro plugin ativado [depende](/docs/pt/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies) dele. A mensagem de erro inclui um comando encadeado que desativa cada dependente primeiro.

1214 

1215Para um [synced plugin](#synced-plugins) que sua organização requer, o comando falha e não salva nada.

1177 1216 

1178```bash theme={null}1217```bash theme={null}

1179claude plugin disable [plugin] [options]1218claude plugin disable [plugin] [options]


1181 1220 

1182O comando toma estes argumentos:1221O comando toma estes argumentos:

1183 1222 

1184* `[plugin]`: Nome do plugin ou `plugin-name@marketplace-name`. Opcional ao usar `--all`1223* `[plugin]`: Nome do plugin, `plugin-name@marketplace-name` ou `plugin-name@synced` para um [plugin sincronizado de claude.ai](#synced-plugins). Opcional ao usar `--all`

1185 1224 

1186O comando aceita estas opções:1225O comando aceita estas opções:

1187 1226 


1209O comando aceita estas opções:1248O comando aceita estas opções:

1210 1249 

1211| Opção | Descrição | Padrão |1250| Opção | Descrição | Padrão |

1212| :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |1251| :-------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |

1213| `-s, --scope <scope>` | Escopo para atualizar: `user`, `project`, `local` ou `managed` | `user` |1252| `-s, --scope <scope>` | Escopo para atualizar: `user`, `project`, `local` ou `managed` | `user` |

1214| `-y, --yes` | Aceite um comando que o marketplace do plugin declara, sem o prompt de confirmação: o comando que produz um plugin com uma [`command` source](/docs/pt/plugin-marketplaces#command-sources), ou o [`headersHelper`](/docs/pt/plugin-marketplaces#authenticate-archive-downloads) que autentica um download de arquivo. Aceitar um `headersHelper` requer Claude Code v2.1.238 ou posterior. Claude Code ainda imprime o comando primeiro. Obrigatório quando stdin ou stdout não é um TTY. Não tem efeito dentro de uma sessão do Claude Code, portanto execute o comando do seu próprio terminal | |1253| `-y, --yes` | Aceite um comando que o marketplace do plugin declara, sem o prompt de confirmação: o comando que produz um plugin com uma [`command` source](/docs/pt/plugin-marketplaces#command-sources), ou o [`headersHelper`](/docs/pt/plugin-marketplaces#authenticate-archive-downloads) que autentica um download de arquivo. Aceitar um `headersHelper` requer Claude Code v2.1.238 ou posterior. Claude Code ainda imprime o comando primeiro. Obrigatório quando stdin ou stdout não é um TTY, a menos que você passe `--accept-command`. Não tem efeito dentro de uma sessão do Claude Code, portanto execute o comando do seu próprio terminal | |

1254| `--accept-command <sha256>` | Aceite o comando declarado pelo marketplace cujo `sha256` uma execução anterior com [`--json`](#plugin-json-result) relatou em `shownCommand`, no lugar de `-y`. A aceitação conta para exatamente esse comando, plugin e catálogo de marketplace. Se qualquer um deles mudou desde que o comando foi exibido, incluindo através da própria atualização de marketplace da execução, Claude Code não aceita o digest e mostra o comando novamente. Não pode ser combinado com `-y`. Não tem efeito dentro de uma sessão do Claude Code, portanto execute o comando do seu próprio terminal. Requer Claude Code v2.1.271 ou posterior | |

1215| `--json` | Imprima o resultado como um objeto JSON na última linha de stdout, no [mesmo formato que `plugin install --json`](#plugin-json-result). Requer Claude Code v2.1.268 ou posterior | |1255| `--json` | Imprima o resultado como um objeto JSON na última linha de stdout, no [mesmo formato que `plugin install --json`](#plugin-json-result). Requer Claude Code v2.1.268 ou posterior | |

1216| `-h, --help` | Exiba ajuda para o comando | |1256| `-h, --help` | Exiba ajuda para o comando | |

1217 1257 


1242Dentro de uma sessão interativa, `/plugin list` imprime uma listagem similar inline, mas cobre apenas plugins instalados do marketplace:1282Dentro de uma sessão interativa, `/plugin list` imprime uma listagem similar inline, mas cobre apenas plugins instalados do marketplace:

1243 1283 

1244* Plugins carregados de diretórios de skills aparecem na interface `/plugin` e em `claude plugin list`, mas não na saída inline `/plugin list`.1284* Plugins carregados de diretórios de skills aparecem na interface `/plugin` e em `claude plugin list`, mas não na saída inline `/plugin list`.

1245* No Claude Code v2.1.239 ou posterior, [plugins sincronizados de claude.ai](#synced-plugins) aparecem em `claude plugin list` quando você o executa no ambiente onde uma sessão sincronizada os baixou. Eles não aparecem na saída inline `/plugin list`.1285* [Plugins sincronizados de claude.ai](#synced-plugins) aparecem em `claude plugin list` no Claude Code v2.1.239 ou posterior e na interface `/plugin`, mas não na saída inline `/plugin list`.

1246* Plugins carregados para a sessão com `--plugin-dir` ou `--plugin-url` aparecem na interface `/plugin` e em `claude plugin list` apenas quando a mesma flag precede o subcomando, como em `claude --plugin-dir <dir> plugin list`. Apenas o nome da flag nomeia sua localização, portanto um `claude plugin list` simples não consegue encontrá-los, diferentemente de plugins sincronizados e plugins de diretório de skills, cujos diretórios fixos Claude Code verifica.1286* Plugins carregados para a sessão com `--plugin-dir` ou `--plugin-url` aparecem na interface `/plugin` e em `claude plugin list` apenas quando a mesma flag precede o subcomando, como em `claude --plugin-dir <dir> plugin list`. Apenas o nome da flag nomeia sua localização, portanto um `claude plugin list` simples não consegue encontrá-los, diferentemente de plugins sincronizados e plugins de diretório de skills, cujos diretórios fixos Claude Code verifica.

1247 1287 

1248O formulário interativo aceita `--enabled` ou `--disabled` para mostrar apenas plugins nesse estado, e `ls` como abreviação para `list`.1288O formulário interativo aceita `--enabled` ou `--disabled` para mostrar apenas plugins nesse estado, e `ls` como abreviação para `list`.


1520 Gerenciamento de versão1560 Gerenciamento de versão

1521</h3>1561</h3>

1522 1562 

1523Claude Code usa a versão do plugin como a chave de cache que determina se uma atualização está disponível. Quando você executa `/plugin update` ou a atualização automática é acionada, Claude Code calcula a versão atual e ignora a atualização se ela corresponder ao que já está instalado.1563Claude Code usa a versão do plugin como a chave de cache que determina se uma atualização está disponível. Quando você executa `/plugin update` ou a atualização automática é acionada, Claude Code calcula a versão atual e ignora a atualização se ela corresponder ao que já está instalado. Um plugin [carregado no local](#plugin-caching-and-file-resolution) a partir de um marketplace de diretório local carrega seus arquivos de fonte atuais no início de cada sessão, independentemente do que sua string de versão diz.

1524 1564 

1525Para cada tipo de fonte, exceto `command`, Claude Code resolve a versão a partir do primeiro destes que está definido:1565Para cada tipo de fonte, exceto `command`, Claude Code resolve a versão a partir do primeiro destes que está definido:

1526 1566 


15282. O campo `version` na entrada do marketplace do plugin em `marketplace.json`15682. O campo `version` na entrada do marketplace do plugin em `marketplace.json`

15293. O SHA do commit git da fonte do plugin, para fontes `github`, `url`, `git-subdir` e relative-path em um marketplace hospedado em git15693. O SHA do commit git da fonte do plugin, para fontes `github`, `url`, `git-subdir` e relative-path em um marketplace hospedado em git

15304. O resumo SHA-256, para [fontes `archive`](/docs/pt/plugin-marketplaces#zip-archives): o pin `sha256` na entrada do marketplace, ou o resumo do arquivo baixado quando você não define um pin. Claude Code o encurta para os primeiros 12 caracteres15704. O resumo SHA-256, para [fontes `archive`](/docs/pt/plugin-marketplaces#zip-archives): o pin `sha256` na entrada do marketplace, ou o resumo do arquivo baixado quando você não define um pin. Claude Code o encurta para os primeiros 12 caracteres

15315. `unknown`, para fontes `npm` ou diretórios locais não dentro de um repositório git15715. `unknown`, para fontes `npm` ou diretórios locais quando nem o diretório do plugin nem seu marketplace é um repositório git. Claude Code não obtém a versão de um repositório que envolve o caminho de instalação, como um `~/.claude` gerenciado por git

1532 1572 

1533Para uma [fonte `command`](/docs/pt/plugin-marketplaces#command-sources), Claude Code sempre deriva a versão a partir do que o comando produziu: um hash de conteúdo de 12 caracteres por si só, ou anexado à versão `plugin.json` como `<version>-<hash>` quando um está definido. Claude Code ignora o campo `version` da entrada do marketplace para fontes de comando. Um comando cuja saída com hash muda, portanto, produz uma nova versão, mesmo quando a string de versão criada permanece a mesma. No [modo link](/docs/pt/plugin-marketplaces#copy-mode-and-link-mode), o hash cobre o caminho real do diretório impresso e suas entradas de nível superior em vez do conteúdo do arquivo.1573Para uma [fonte `command`](/docs/pt/plugin-marketplaces#command-sources), Claude Code sempre deriva a versão a partir do que o comando produziu: um hash de conteúdo de 12 caracteres por si só, ou anexado à versão `plugin.json` como `<version>-<hash>` quando um está definido. Claude Code ignora o campo `version` da entrada do marketplace para fontes de comando. Um comando cuja saída com hash muda, portanto, produz uma nova versão, mesmo quando a string de versão criada permanece a mesma. No [modo link](/docs/pt/plugin-marketplaces#copy-mode-and-link-mode), o hash cobre o caminho real do diretório impresso e suas entradas de nível superior em vez do conteúdo do arquivo.

1534 1574 

1535Para esses tipos de fonte, isso oferece três maneiras de versionar um plugin:1575Para esses tipos de fonte, isso oferece três maneiras de versionar um plugin:

1536 1576 

1537| Abordagem | Como | Comportamento de atualização | Melhor para |1577| Abordagem | Como | Comportamento de atualização | Melhor para |

1538| :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------- |1578| :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------- |

1539| **Versão explícita** | Defina `"version": "2.1.0"` em `plugin.json` | Os usuários recebem atualizações apenas quando você incrementa este campo. Enviar novos commits sem incrementá-lo não tem efeito, e `/plugin update` relata "já está na versão mais recente". | Plugins publicados com ciclos de lançamento estáveis |1579| **Versão explícita** | Defina `"version": "2.1.0"` em `plugin.json` | Os usuários recebem atualizações apenas quando você incrementa este campo. Enviar novos commits sem incrementá-lo não tem efeito, e `/plugin update` relata "já está na versão mais recente". Para um plugin [carregado no local](#plugin-caching-and-file-resolution), o novo conteúdo é carregado de qualquer forma. | Plugins publicados com ciclos de lançamento estáveis |

1540| **Versão Commit-SHA** | Omita `version` tanto de `plugin.json` quanto da entrada do marketplace | Os usuários recebem atualizações sempre que o commit resolvido da fonte muda | Plugins internos ou de equipe em desenvolvimento ativo |1580| **Versão Commit-SHA** | Omita `version` tanto de `plugin.json` quanto da entrada do marketplace | Os usuários recebem atualizações sempre que o commit resolvido da fonte muda | Plugins internos ou de equipe em desenvolvimento ativo |

1541| **Versão Digest** | Use uma [fonte `archive`](/docs/pt/plugin-marketplaces#zip-archives) e omita `version` tanto de `plugin.json` quanto da entrada do marketplace | Com um pin `sha256`, os usuários recebem atualizações quando você altera o pin. Sem um, os usuários recebem atualizações sempre que os bytes do arquivo zip hospedado mudam | Plugins publicados como arquivos zip em um servidor estático ou repositório de artefatos |1581| **Versão Digest** | Use uma [fonte `archive`](/docs/pt/plugin-marketplaces#zip-archives) e omita `version` tanto de `plugin.json` quanto da entrada do marketplace | Com um pin `sha256`, os usuários recebem atualizações quando você altera o pin. Sem um, os usuários recebem atualizações sempre que os bytes do arquivo zip hospedado mudam | Plugins publicados como arquivos zip em um servidor estático ou repositório de artefatos |

1542 1582 

Details

88 88 

89Cada modelo tem seu próprio cache. Alternar com [`/model`](/docs/pt/model-config#setting-your-model) significa que a próxima solicitação lê todo o histórico de conversa sem acertos de cache, mesmo que o conteúdo seja idêntico.89Cada modelo tem seu próprio cache. Alternar com [`/model`](/docs/pt/model-config#setting-your-model) significa que a próxima solicitação lê todo o histórico de conversa sem acertos de cache, mesmo que o conteúdo seja idêntico.

90 90 

91Quando você executa `/model` no terminal, Claude Code pede que você confirme a mudança apenas enquanto o cache ainda está quente. O cache permanece quente por um [cache TTL](#cache-lifetime) após Claude Code ter enviado pela última vez uma solicitação nesta conversa ou Claude ter respondido. Depois que esse tempo passa, o cache expirou, então Claude Code muda sem perguntar.91Quando você executa `/model` no terminal, Claude Code pede que você confirme a mudança apenas enquanto o cache ainda está quente e o novo modelo não é aquele que produziu a última resposta. O cache permanece quente por um [cache TTL](#cache-lifetime) após Claude Code ter enviado pela última vez uma solicitação nesta conversa ou Claude ter respondido. Depois que esse tempo passa, o cache expirou, então Claude Code muda sem perguntar.

92 92 

93Antes da v2.1.238, Claude Code não verificava o cache TTL e perguntava mesmo depois que o cache havia expirado.93Antes da v2.1.238, Claude Code não verificava o cache TTL e perguntava mesmo depois que o cache havia expirado.

94 94 


264 Alterando estilo de saída264 Alterando estilo de saída

265</h3>265</h3>

266 266 

267Quando você alterna [estilos de saída](/docs/pt/output-styles) durante a sessão com `/config` ou a configuração `outputStyle`, Claude usa o novo estilo a partir da sua próxima mensagem. Claude Code entrega as instruções do novo estilo como uma mensagem na conversa, então essa solicitação ainda lê o prompt do sistema e a conversa anterior do cache.267Quando você alterna [estilos de saída](/docs/pt/output-styles) durante a sessão com [`/output-style`](/docs/pt/output-styles#change-your-output-style), `/config` ou a configuração `outputStyle`, Claude usa o novo estilo a partir da sua próxima mensagem. Claude Code entrega as instruções do novo estilo como uma mensagem na conversa, então essa solicitação ainda lê o prompt do sistema e a conversa anterior do cache.

268 268 

269Antes da v2.1.251, uma mudança de estilo durante a sessão mantinha o cache mas não se aplicava até você executar `/clear` ou iniciar uma nova sessão.269Antes da v2.1.251, uma mudança de estilo durante a sessão mantinha o cache mas não se aplicava até você executar `/clear` ou iniciar uma nova sessão.

270 270 


294 294 

295Quando você [retoma uma sessão](/docs/pt/sessions#resume-a-session), Claude Code envia toda a conversa novamente, e a solicitação lê do cache qualquer parte de seu prefixo que não tenha sido alterada e ainda esteja dentro do [tempo de vida do cache](#cache-lifetime). A tabela de camadas no topo desta página diz quais mudanças cada camada.295Quando você [retoma uma sessão](/docs/pt/sessions#resume-a-session), Claude Code envia toda a conversa novamente, e a solicitação lê do cache qualquer parte de seu prefixo que não tenha sido alterada e ainda esteja dentro do [tempo de vida do cache](#cache-lifetime). A tabela de camadas no topo desta página diz quais mudanças cada camada.

296 296 

297O prompt do sistema mudaria após uma [atualização do Claude Code](#upgrading-claude-code) ou com texto [`--append-system-prompt`](/docs/pt/cli-reference#system-prompt-flags) diferente na retomada. Por padrão, a conversa retomada mantém o prompt do sistema com o qual começou, portanto seu histórico ainda fica atrás do mesmo prompt, e a mudança entra em vigor assim que a conversa é compactada ou em uma nova conversa. [Sinalizadores de prompt do sistema em conversas retomadas](/docs/pt/cli-reference#system-prompt-flags-in-resumed-conversations) aborda `--system-prompt-snapshot off` e modo bare, onde isso não se aplica.297O prompt do sistema mudaria após uma [atualização do Claude Code](#upgrading-claude-code) ou com texto [`--append-system-prompt`](/docs/pt/cli-reference#system-prompt-flags) diferente na retomada. Por padrão, a conversa retomada mantém o prompt do sistema com o qual começou, portanto seu histórico ainda fica atrás do mesmo prompt, e a mudança entra em vigor assim que a conversa é compactada ou em uma nova conversa. [Sinalizadores de prompt do sistema em conversas retomadas](/docs/pt/cli-reference#system-prompt-flags-in-resumed-conversations) aborda os casos em que Claude Code reconstrói o prompt em cada solicitação.

298 298 

299<h2 id="cache-lifetime">299<h2 id="cache-lifetime">

300 Tempo de vida do cache300 Tempo de vida do cache

remote-control.md +18 −21

Details

46 46 

47<Tabs>47<Tabs>

48 <Tab title="Modo servidor">48 <Tab title="Modo servidor">

49 Navegue até o diretório do seu projeto e execute:49 No diretório do seu projeto, execute:

50 50 

51 ```bash theme={null}51 ```bash theme={null}

52 claude remote-control52 claude remote-control


132 Verificar status da conexão132 Verificar status da conexão

133</h3>133</h3>

134 134 

135Em uma sessão de terminal interativa, um indicador `/rc active` fica visível enquanto a conexão está ativa, e fica oculto se o terminal for muito estreito para ajustá-lo. Com [renderização em tela cheia](/docs/pt/fullscreen), ele fica no final da linha do diretório de trabalho no cabeçalho de inicialização, e sem ela, no rodapé abaixo da caixa de entrada.135Em uma sessão interativa, enquanto Remote Control está conectado, o terminal mostra um indicador `/rc active` que vincula à sessão em claude.ai. O indicador fica oculto quando o terminal é muito estreito para ajustá-lo. Para ver a URL da sessão e um código QR para [conectar de outro dispositivo](#connect-from-another-device), execute `/remote-control` novamente para abrir o painel de status. O painel também permite que você desconecte Remote Control enquanto sua sessão local continua em execução.

136 136 

137O texto do indicador é um link para a sessão em claude.ai. Execute `/remote-control` novamente para abrir um painel de status com a URL da sessão e um código QR para [conectar de outro dispositivo](#connect-from-another-device). Quando o indicador está no rodapé, você também pode abrir o painel selecionando o indicador com a tecla de seta para baixo e pressionando Enter. O painel também oferece uma opção de desconexão, que desativa Remote Control enquanto sua sessão local continua em execução no terminal.137<span id="session-ended-elsewhere" />Se a conexão falhar em uma sessão interativa, o indicador muda para mostrar a falha, e Claude Code mostra o motivo em uma notificação e o adiciona à conversa. Execute `/remote-control` para reconectar, a menos que o motivo diga que a sessão mudou em outro lugar:

138 138 

139Se a conexão falhar, Claude Code mostra uma notificação com o motivo da falha, adiciona uma linha de aviso com o motivo à conversa, e muda o indicador para um estado de falha que permanece no lugar. Para reconectar, execute `/remote-control`, a menos que o [motivo diga que a sessão foi assumida ou encerrada em outro lugar, ou que o servidor não consegue encontrá-la](#session-ended-elsewhere).139* **Outra conexão assumiu esta sessão**: outro dispositivo ou sessão do Claude Code a tem agora. Execute `/remote-control` apenas se você quiser recuperá-la.

140 140* **Esta sessão foi encerrada ou arquivada de outro dispositivo ou aplicativo**: execute `/remote-control` apenas se você quiser a sessão de volta. Claude Code reabre uma sessão arquivada.

141<span id="session-ended-elsewhere" />Leia o motivo antes de reconectar. Quando a sessão foi assumida ou encerrada de outro dispositivo, aplicativo ou sessão do Claude Code, ou o servidor não consegue encontrá-la, o motivo diz qual, e Claude Code omite seu conselho usual para executar `/remote-control`:141* **O servidor não relata mais esta sessão**: ela pode ter sido deletada de outro dispositivo ou aplicativo.

142 

143* **Outro dispositivo ou sessão do Claude Code assumiu a sessão**: execute `/remote-control` apenas se você quiser recuperá-la desse dispositivo.

144* **Você encerrou ou arquivou a sessão de outro dispositivo ou aplicativo**: execute `/remote-control` apenas se você quiser recuperá-la; Claude Code reabre uma sessão arquivada.

145* **O servidor não consegue encontrar a sessão**: ela pode ter sido deletada de outro dispositivo ou aplicativo.

146 142 

147<h3 id="session-url-reminders">143<h3 id="session-url-reminders">

148 Lembretes de URL de sessão144 Lembretes de URL de sessão


178 174 

179Quando você renomeia uma sessão a partir de claude.ai ou do aplicativo Claude, Claude Code também atualiza o título local mostrado em `claude --resume`. Claude Code aplica o mesmo renome ao nome da sessão mostrado na barra de prompt, e na listagem `claude agents` quando a sessão [é executada em segundo plano](/docs/pt/agent-view). Antes da v2.1.221, renomear a partir da lista de sessões em claude.ai ou no aplicativo Claude atualizava apenas o título, e a CLI mantinha seu nome de sessão anterior; `/rename`, que é executado na própria CLI, define o nome em qualquer versão.175Quando você renomeia uma sessão a partir de claude.ai ou do aplicativo Claude, Claude Code também atualiza o título local mostrado em `claude --resume`. Claude Code aplica o mesmo renome ao nome da sessão mostrado na barra de prompt, e na listagem `claude agents` quando a sessão [é executada em segundo plano](/docs/pt/agent-view). Antes da v2.1.221, renomear a partir da lista de sessões em claude.ai ou no aplicativo Claude atualizava apenas o título, e a CLI mantinha seu nome de sessão anterior; `/rename`, que é executado na própria CLI, define o nome em qualquer versão.

180 176 

181Se você ainda não tem o aplicativo Claude, use o comando `/mobile` dentro do Claude Code para exibir um código QR de download para [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) ou [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude).177Se você ainda não tem o aplicativo Claude, execute `/mobile` dentro do Claude Code para mostrar um código QR para [claude.ai/mobile](https://claude.ai/mobile), que abre a loja de aplicativos correta para seu telefone.

182 178 

183<h3 id="what-connected-devices-see">179<h3 id="what-connected-devices-see">

184 O que dispositivos conectados veem180 O que dispositivos conectados veem


188 184 

189* **Compactação e `/clear`**: enquanto Claude Code [compacta a conversa](/docs/pt/context-window#what-survives-compaction), dispositivos conectados mostram o progresso e então onde a conversa foi compactada. Quando você executa `/clear`, a conversa é redefinida em dispositivos conectados também.185* **Compactação e `/clear`**: enquanto Claude Code [compacta a conversa](/docs/pt/context-window#what-survives-compaction), dispositivos conectados mostram o progresso e então onde a conversa foi compactada. Quando você executa `/clear`, a conversa é redefinida em dispositivos conectados também.

190* **Alternando conversas com `/resume`**: o dispositivo conectado não recebe o título da conversa alternada ou histórico anterior, mas novas mensagens em ambas as direções vão para e vêm de qualquer conversa que esteja aberta no seu terminal. Para trabalhar na conversa original do dispositivo novamente, execute `/resume` no seu terminal e volte para ela.186* **Alternando conversas com `/resume`**: o dispositivo conectado não recebe o título da conversa alternada ou histórico anterior, mas novas mensagens em ambas as direções vão para e vêm de qualquer conversa que esteja aberta no seu terminal. Para trabalhar na conversa original do dispositivo novamente, execute `/resume` no seu terminal e volte para ela.

191* **Puxando uma sessão com `/teleport`**: quando você puxa uma [sessão Claude Code na web](/docs/pt/claude-code-on-the-web#from-web-to-terminal) para seu terminal com `/teleport`, o dispositivo conectado não recebe o histórico anterior da conversa puxada. Novas mensagens em ambas as direções vão para e vêm da conversa puxada, que agora é a que está aberta no seu terminal.187* **Puxando uma sessão com `/teleport`**: quando você puxa uma [sessão Claude Code na web](/docs/pt/claude-code-on-the-web#from-cloud-to-terminal) para seu terminal com `/teleport`, o dispositivo conectado não recebe o histórico anterior da conversa puxada. Novas mensagens em ambas as direções vão para e vêm da conversa puxada, que agora é a que está aberta no seu terminal.

192* **Mensagens de suas outras sessões**: com [mensagens entre sessões](/docs/pt/cross-session-messaging), a mesma conexão carrega mensagens entre suas próprias sessões em diferentes máquinas e de suas sessões [Claude Code na web](/docs/pt/claude-code-on-the-web), através de servidores Anthropic como o resto do tráfego Remote Control. [Mensagens de sessões em outras máquinas](/docs/pt/cross-session-messaging#message-sessions-on-other-machines) cobre as regras de entrega e [Controlar mensagens de entrada](/docs/pt/cross-session-messaging#control-inbound-messages) cobre os controles de entrada. Requer Claude Code v2.1.224 ou posterior.188* **Mensagens de suas outras sessões**: com [mensagens entre sessões](/docs/pt/cross-session-messaging), a mesma conexão carrega mensagens entre suas próprias sessões em diferentes máquinas e de suas sessões [Claude Code na web](/docs/pt/claude-code-on-the-web), através de servidores Anthropic como o resto do tráfego Remote Control. [Mensagens de sessões em outras máquinas](/docs/pt/cross-session-messaging#message-sessions-on-other-machines) cobre as regras de entrega e [Controlar mensagens de entrada](/docs/pt/cross-session-messaging#control-inbound-messages) cobre os controles de entrada. Requer Claude Code v2.1.224 ou posterior.

193* **Prompts que você envia no meio do turno**: quando você envia um prompt de um dispositivo conectado antes do turno atual terminar, Claude Code o coloca na fila e o mantém na transcrição do dispositivo depois que esse turno termina.189* **Prompts que você envia no meio do turno**: quando você envia um prompt de um dispositivo conectado antes do turno atual terminar, Claude Code o coloca na fila e o mantém na transcrição do dispositivo depois que esse turno termina.

194* **Diff de suas alterações**: quando o diretório da sessão está em um repositório git, o painel de diff de um dispositivo conectado mostra o diff de suas alterações não confirmadas. O dispositivo solicita o diff pela conexão, e Claude Code o computa em sua máquina. Quando sua árvore de trabalho está limpa, Claude Code em vez disso serve as alterações do seu branch desde que divergiu do branch padrão. Antes da v2.1.247, Claude Code relatava o diff para dispositivos conectados apenas em sessões servidas por `claude remote-control`.190* **Diff de suas alterações**: quando o diretório da sessão está em um repositório git, o painel de diff de um dispositivo conectado mostra o diff de suas alterações não confirmadas. O dispositivo solicita o diff pela conexão, e Claude Code o computa em sua máquina. Quando sua árvore de trabalho está limpa, Claude Code em vez disso serve as alterações do seu branch desde que divergiu do branch padrão. Antes da v2.1.247, Claude Code relatava o diff para dispositivos conectados apenas em sessões servidas por `claude remote-control`.


312 308 

313Para um dispositivo perdido ou roubado, o membro o remove desta página. Se o membro não conseguir fazer login, um administrador pode usar **Sign out everywhere** no console de administrador para revogar cada sessão e dispositivo inscrito para esse membro, após o qual o membro inscreve novamente os dispositivos que ainda possui.309Para um dispositivo perdido ou roubado, o membro o remove desta página. Se o membro não conseguir fazer login, um administrador pode usar **Sign out everywhere** no console de administrador para revogar cada sessão e dispositivo inscrito para esse membro, após o qual o membro inscreve novamente os dispositivos que ainda possui.

314 310 

315<h2 id="remote-control-vs-claude-code-on-the-web">311<h2 id="remote-control-vs-cloud-sessions">

316 Remote Control vs Claude Code na web312 Remote Control vs sessões na nuvem

317</h2>313</h2>

318 314 

319Remote Control e [Claude Code na web](/docs/pt/claude-code-on-the-web) usam a interface claude.ai/code. A diferença fundamental é onde a sessão é executada: Remote Control é executado na sua máquina, portanto seus MCP servers locais, ferramentas e configuração do projeto permanecem disponíveis. Claude Code na web é executado na nuvem.315Remote Control e [sessões na nuvem](/docs/pt/claude-code-on-the-web) usam a interface claude.ai/code. A diferença fundamental é onde a sessão é executada: Remote Control é executado na sua máquina, portanto seus MCP servers locais, ferramentas e configuração do projeto permanecem disponíveis. Uma sessão na nuvem é executada na infraestrutura de nuvem, gerenciada pela Anthropic por padrão.

320 316 

321Use Remote Control quando você está no meio do trabalho local e deseja continuar de outro dispositivo. Use Claude Code na web quando você deseja iniciar uma tarefa sem nenhuma configuração local, trabalhar em um repositório que você não tem clonado ou executar várias tarefas em paralelo.317Use Remote Control quando você está no meio do trabalho local e deseja continuar de outro dispositivo. Use uma sessão na nuvem quando você deseja iniciar uma tarefa sem nenhuma configuração local, trabalhar em um repositório que você não tem clonado ou executar várias tarefas em paralelo.

322 318 

323<h2 id="mobile-push-notifications">319<h2 id="mobile-push-notifications">

324 Notificações push móveis320 Notificações push móveis


374 * Comandos de saída de texto: `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap` e `/reload-plugins`. `/usage-credits` imprime a URL de faturamento em vez de abrir um navegador. `/reload-plugins` funciona apenas quando a sessão é executada em um terminal interativo; uma sessão sem um recusa.370 * Comandos de saída de texto: `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap` e `/reload-plugins`. `/usage-credits` imprime a URL de faturamento em vez de abrir um navegador. `/reload-plugins` funciona apenas quando a sessão é executada em um terminal interativo; uma sessão sem um recusa.

375 * `/model`, `/effort`, `/fast`, `/color` e `/rename`: passe o valor como um argumento, por exemplo `/model sonnet` ou `/effort high`. A partir de dispositivos móveis e web, `/model` e `/effort` recebem o argumento no lugar do seletor do terminal ou controle deslizante.371 * `/model`, `/effort`, `/fast`, `/color` e `/rename`: passe o valor como um argumento, por exemplo `/model sonnet` ou `/effort high`. A partir de dispositivos móveis e web, `/model` e `/effort` recebem o argumento no lugar do seletor do terminal ou controle deslizante.

376 * `/mcp`: a partir do aplicativo móvel, retorna um resumo de texto do status do servidor em vez de abrir o seletor. Na web, `/mcp` sozinho abre um diretório de [conectores claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai) em vez de retornar o resumo. Os [subcomandos](/docs/pt/commands#all-commands) `reconnect`, `enable` e `disable` funcionam em ambos. Diferentemente da CLI local, `/mcp reconnect` sem um nome de servidor reconecta todos os servidores que falharam ou precisam de autenticação.372 * `/mcp`: a partir do aplicativo móvel, retorna um resumo de texto do status do servidor em vez de abrir o seletor. Na web, `/mcp` sozinho abre um diretório de [conectores claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai) em vez de retornar o resumo. Os [subcomandos](/docs/pt/commands#all-commands) `reconnect`, `enable` e `disable` funcionam em ambos. Diferentemente da CLI local, `/mcp reconnect` sem um nome de servidor reconecta todos os servidores que falharam ou precisam de autenticação.

377 * `/config`, a partir da v2.1.181: a partir do aplicativo móvel, passe `key=value` para definir uma configuração, ou execute sem argumentos para listar as chaves que você pode definir. Na web, `/config` abre a seção Claude Code das suas configurações e ignora o texto após o comando.373 * `/config`: a partir do aplicativo móvel, passe `key=value` para definir uma configuração, ou execute sem argumentos para listar as chaves que você pode definir. Na web, `/config` abre a seção Claude Code das suas configurações e ignora o texto após o comando.

378 * No Team e Enterprise, `/usage-credits` a partir de dispositivos móveis ou web não envia uma [solicitação de créditos de uso para seu administrador](/docs/pt/costs#add-usage-credits-to-your-subscription). O envio requer uma confirmação que aparece apenas na CLI interativa, então o comando diz para você executá-lo lá. Antes da v2.1.211, o formulário de texto enviava a solicitação sem confirmação.374 * No Team e Enterprise, `/usage-credits` a partir de dispositivos móveis ou web não envia uma [solicitação de créditos de uso para seu administrador](/docs/pt/costs#add-usage-credits-to-your-subscription). O envio requer uma confirmação que aparece apenas na CLI interativa, então o comando diz para você executá-lo lá. Antes da v2.1.211, o formulário de texto enviava a solicitação sem confirmação.

379 * `/autocompact`, a partir da v2.1.221: passe o tamanho da janela como um argumento, por exemplo `/autocompact 500k`. Sem argumento, ele imprime o tamanho da janela atual como texto em vez de abrir o diálogo que o comando mostra em uma sessão de terminal.375 * `/autocompact`, a partir da v2.1.221: passe o tamanho da janela como um argumento, por exemplo `/autocompact 500k`. Sem argumento, ele imprime o tamanho da janela atual como texto em vez de abrir o diálogo que o comando mostra em uma sessão de terminal.

380 * `/advisor`, a partir da v2.1.260: passe o modelo como um argumento, por exemplo `/advisor opus`, ou passe `off` para desativar o advisor. Ambas as formas se aplicam apenas à sessão atual e deixam seu padrão salvo inalterado. Sem argumento, ele imprime o advisor atual como texto em vez de abrir o seletor.376 * `/advisor`, a partir da v2.1.260: passe o modelo como um argumento, por exemplo `/advisor opus`, ou passe `off` para desativar o advisor. Ambas as formas se aplicam apenas à sessão atual e deixam seu padrão salvo inalterado. Sem argumento, ele imprime o advisor atual como texto em vez de abrir o seletor.

377 * `/output-style`, a partir da v2.1.269: passe o nome do estilo como um argumento, por exemplo `/output-style concise`, ou execute sem argumento para listar os estilos. A partir de dispositivos móveis e web, você pode listar e selecionar apenas [estilos integrados](/docs/pt/output-styles#built-in-output-styles). Para usar um [estilo personalizado](/docs/pt/output-styles#create-a-custom-output-style), selecione-o na sessão em si.

381 378 

382<h2 id="troubleshooting">379<h2 id="troubleshooting">

383 Solução de problemas380 Solução de problemas


389 386 

390Você não está autenticado com uma conta claude.ai, ou outra credencial está tendo precedência sobre seu login. A mensagem assume uma destas formas:387Você não está autenticado com uma conta claude.ai, ou outra credencial está tendo precedência sobre seu login. A mensagem assume uma destas formas:

391 388 

392* Desconectado, de `/remote-control` ou `--remote-control`: `Remote Control requires a claude.ai subscription.`389* Desconectado, de `/remote-control` ou `--remote-control`: `Remote Control requires a claude.ai subscription.` ou `/remote-control requires a claude.ai subscription.`

393* Desconectado, de `claude remote-control`: `You must be logged in to use Remote Control. Remote Control is only available with claude.ai subscriptions.`390* Desconectado, de `claude remote-control`: `You must be logged in to use Remote Control. Remote Control is only available with claude.ai subscriptions.`

394* Autenticado, mas uma chave de API ou token está em uso: `Remote Control requires claude.ai subscription auth.` seguido pela credencial em uso, como `ANTHROPIC_API_KEY is set, so this session is using API-key auth`. Uma configuração `apiKeyHelper` e `ANTHROPIC_AUTH_TOKEN` são nomeadas da mesma forma.391* Autenticado, mas uma chave de API ou token está em uso: `Remote Control requires claude.ai subscription auth.` seguido pela credencial em uso, como `ANTHROPIC_API_KEY is set, so this session is using API-key auth`. Uma configuração `apiKeyHelper` e `ANTHROPIC_AUTH_TOKEN` são nomeadas da mesma forma.

395 392 


423 "Couldn't verify Remote Control eligibility"420 "Couldn't verify Remote Control eligibility"

424</h3>421</h3>

425 422 

426Claude Code não conseguiu alcançar o serviço de sinalizador de recurso para verificar se Remote Control está habilitado para sua conta, normalmente porque você está offline ou um proxy está bloqueando a solicitação. Tente novamente quando tiver acesso à rede, ou execute `claude doctor` para obter detalhes. A mensagem relacionada "Couldn't verify your organization's Remote Control policy" tem a mesma causa e a mesma solução. Ambas as mensagens foram adicionadas na v2.1.178.423Claude Code não conseguiu alcançar o serviço de sinalizador de recurso para verificar se Remote Control está habilitado para sua conta, normalmente porque você está offline ou um proxy está bloqueando a solicitação. Tente novamente quando tiver acesso à rede, ou execute `claude doctor` para obter detalhes. A mensagem relacionada "Couldn't verify your organization's Remote Control policy" significa que Claude Code não conseguiu ler essa política, e tem a mesma solução. Ambas as mensagens foram adicionadas na v2.1.178.

427 424 

428<h3 id="remote-control-requires-feature-flag-evaluation">425<h3 id="remote-control-requires-feature-flag-evaluation">

429 "Remote Control requires feature-flag evaluation"426 "Remote Control requires feature-flag evaluation"


536</h2>533</h2>

537 534 

538* [Claude Code na web](/docs/pt/claude-code-on-the-web): execute sessões na nuvem em vez de na sua máquina, configurado através de [ambientes em nuvem](/docs/pt/cloud-environments)535* [Claude Code na web](/docs/pt/claude-code-on-the-web): execute sessões na nuvem em vez de na sua máquina, configurado através de [ambientes em nuvem](/docs/pt/cloud-environments)

539* [Mensagens entre sessões](/docs/pt/cross-session-messaging): deixe Claude enviar mensagens para suas sessões em outras máquinas ou em [Claude Code na web](/docs/pt/claude-code-on-the-web)536* [Mensagens entre sessões](/docs/pt/cross-session-messaging): deixe Claude enviar mensagens para suas sessões em outras máquinas ou em [sessões em nuvem](/docs/pt/claude-code-on-the-web)

540* [Channels](/docs/pt/channels): encaminhe Telegram, Discord ou iMessage para uma sessão para que Claude reaja a mensagens enquanto você está ausente537* [Channels](/docs/pt/channels): encaminhe Telegram, Discord ou iMessage para uma sessão para que Claude reaja a mensagens enquanto você está ausente

541* [Dispatch](/docs/pt/desktop#sessions-from-dispatch): envie uma mensagem com uma tarefa do seu telefone e ela pode gerar uma sessão Desktop para lidar com isso538* [Dispatch](/docs/pt/desktop#sessions-from-dispatch): envie uma mensagem com uma tarefa do seu telefone e ela pode gerar uma sessão Desktop para lidar com isso

542* [Autenticação](/docs/pt/authentication): configure `/login` e gerencie credenciais para claude.ai539* [Autenticação](/docs/pt/authentication): configure `/login` e gerencie credenciais para claude.ai

543* [Referência de CLI](/docs/pt/cli-reference): lista completa de flags e comandos incluindo `claude remote-control`540* [Referência de CLI](/docs/pt/cli-reference): lista completa de flags e comandos incluindo `claude remote-control`

544* [Segurança](/docs/pt/security): como as sessões de Remote Control se encaixam no modelo de segurança do Claude Code541* [Segurança](/docs/pt/security): como as sessões de Remote Control se encaixam no modelo de segurança do Claude Code

545* [Uso de dados](/docs/pt/data-usage): quais dados fluem através da API Anthropic durante sessões locais e remotas542* [Uso de dados](/docs/pt/data-usage): quais dados fluem através da API Anthropic durante sessões locais, Remote Control e em nuvem

routines.md +14 −16

Details

174 174 

175<Steps>175<Steps>

176 <Step title="Abrir a rotina para edição">176 <Step title="Abrir a rotina para edição">

177 Vá para [claude.ai/code/routines](https://claude.ai/code/routines), clique na rotina que deseja acionar via API e clique no ícone de lápis para abrir **Editar rotina**.177 Vá para [claude.ai/code/routines](https://claude.ai/code/routines), clique na rotina que deseja acionar via API, então abra o menu ao lado do nome da rotina e selecione **Editar**.

178 </Step>178 </Step>

179 179 

180 <Step title="Adicionar um acionador de API">180 <Step title="Adicionar um acionador de API">


254 254 

255<Steps>255<Steps>

256 <Step title="Abrir a rotina para edição">256 <Step title="Abrir a rotina para edição">

257 Vá para [claude.ai/code/routines](https://claude.ai/code/routines), clique na rotina, então clique no ícone de lápis para abrir **Editar rotina**.257 Vá para [claude.ai/code/routines](https://claude.ai/code/routines), clique na rotina, então abra o menu ao lado do nome da rotina e selecione **Editar**.

258 </Step>258 </Step>

259 259 

260 <Step title="Adicionar um acionador de evento do GitHub">260 <Step title="Adicionar um acionador de evento do GitHub">


331Na página de detalhes da rotina você pode:331Na página de detalhes da rotina você pode:

332 332 

333* Clique em **Executar agora** para iniciar uma execução imediatamente sem esperar pelo próximo horário agendado. Você pode opcionalmente fornecer texto específico da execução, que chega à rotina da mesma forma que o campo `text` do acionador de API.333* Clique em **Executar agora** para iniciar uma execução imediatamente sem esperar pelo próximo horário agendado. Você pode opcionalmente fornecer texto específico da execução, que chega à rotina da mesma forma que o campo `text` do acionador de API.

334* Use o botão de alternância na seção **Repetições** para pausar ou retomar o cronograma. As rotinas pausadas mantêm sua configuração mas não são executadas até que você as reative.334* Use o botão de alternância na parte superior da página para pausar ou retomar o cronograma. As rotinas pausadas mantêm sua configuração mas não são executadas até que você as reative.

335* Clique no ícone de lápis para abrir **Editar rotina** e alterar o nome, prompt, repositórios, ambiente, conectores ou qualquer um dos acionadores da rotina. A seção **Selecionar um acionador** é onde você adiciona ou remove cronogramas, tokens de API e acionadores de eventos do GitHub.335* Abra o menu ao lado do nome da rotina e selecione **Editar** para alterar o nome, prompt, repositórios, ambiente, conectores ou qualquer um dos acionadores da rotina. A seção **Selecionar um acionador** é onde você adiciona ou remove cronogramas, tokens de API e acionadores de eventos do GitHub.

336* Clique no ícone de exclusão para remover a rotina. As sessões anteriores criadas pela rotina permanecem em sua lista de sessões.336* Abra o mesmo menu e selecione **Excluir** para excluir a rotina.

337 337 

338<h3 id="manage-routines-from-the-cli">338<h3 id="manage-routines-from-the-cli">

339 Gerenciar rotinas a partir da CLI339 Gerenciar rotinas a partir da CLI


363 363 

364As rotinas podem usar seus conectores MCP conectados para ler e escrever em serviços externos durante cada execução. Por exemplo, uma rotina que faz triagem de solicitações de suporte pode ler de um canal do Slack e criar problemas no Linear.364As rotinas podem usar seus conectores MCP conectados para ler e escrever em serviços externos durante cada execução. Por exemplo, uma rotina que faz triagem de solicitações de suporte pode ler de um canal do Slack e criar problemas no Linear.

365 365 

366Conectores são as [integrações do claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai) em sua conta. Servidores MCP que você adicionou localmente na CLI com `claude mcp add` são armazenados em sua máquina em vez de sua conta claude.ai, portanto não aparecem na lista de conectores. Para usar um desses servidores em uma rotina, adicione-o como um conector em [claude.ai/customize/connectors](https://claude.ai/customize/connectors), ou declare-o em um [`.mcp.json`](/docs/pt/mcp#project-scope) confirmado para que faça parte do repositório clonado.366Conectores são as [integrações do claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai) em sua conta. Servidores MCP que você adicionou localmente na CLI com `claude mcp add` são armazenados em sua máquina em vez de sua conta claude.ai, portanto não aparecem na lista de conectores. Para usar um desses servidores em uma rotina, adicione-o como um conector em [claude.ai/customize/connectors](https://claude.ai/customize/connectors). Para uma rotina com um repositório, você pode em vez disso declará-lo em um [`.mcp.json`](/docs/pt/mcp#project-scope) confirmado para que faça parte do repositório clonado.

367 367 

368Quando você cria uma rotina, todos os seus conectores atualmente conectados são incluídos por padrão. Remova qualquer um que não seja necessário para limitar quais ferramentas Claude tem acesso durante a execução. Você também pode adicionar conectores diretamente do formulário de rotina.368Quando você cria uma rotina, todos os seus conectores atualmente conectados são incluídos por padrão. Remova qualquer um que não seja necessário para limitar quais ferramentas Claude tem acesso durante a execução. Você também pode adicionar conectores diretamente do formulário de rotina.

369 369 


381 381 

382<Steps>382<Steps>

383 <Step title="Abra a rotina para edição">383 <Step title="Abra a rotina para edição">

384 Na página de detalhes da rotina, clique no ícone de lápis para abrir **Editar rotina**.384 Na página de detalhes da rotina, abra o menu ao lado do nome da rotina e selecione **Editar**.

385 </Step>385 </Step>

386 386 

387 <Step title="Abra o seletor de ambiente">387 <Step title="Abra o seletor de ambiente">


421 `/schedule` retorna "Unknown command"421 `/schedule` retorna "Unknown command"

422</h3>422</h3>

423 423 

424A CLI oculta `/schedule` quando um de seus requisitos não é atendido: o menu de comandos mostra `No commands match "/schedule"` enquanto você digita, e enviá-lo retorna `Unknown command: /schedule` em todos os casos abaixo, exceto uma chave de API do Console ou um perfil Anthropic com busca de sinalizadores de recursos habilitada. A causa geralmente é uma das seguintes:424A CLI oculta `/schedule` quando um de seus requisitos não é atendido: o menu de comandos mostra `No commands match "/schedule"` enquanto você digita. Enviá-lo retorna `Unknown command: /schedule`, exceto nos casos abaixo que indicam uma resposta diferente.

425 425 

426* Você está autenticado com uma chave de API do Console, um [perfil Anthropic ou credencial de federação](/docs/pt/authentication#anthropic-profiles-and-federation-credentials), ou um provedor de nuvem como Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry. `/schedule` requer um login de assinatura claude.ai. Com uma chave de API do Console ou um perfil, enviar `/schedule` mostra `/schedule is available with Claude for Enterprise — ask your admin about migrating from API-key access`. Com um login de provedor de nuvem, você ainda vê `Unknown command: /schedule`. Se `ANTHROPIC_API_KEY` ou `ANTHROPIC_AUTH_TOKEN` estiver definido em seu shell, ou `apiKeyHelper` estiver definido em `settings.json`, remova-o primeiro, pois esses têm precedência sobre um login claude.ai. Um perfil ou credencial de federação também tem precedência, então desative isso também426A causa geralmente é uma das seguintes:

427 

428* Você está autenticado com uma chave de API do Console, um [perfil Anthropic ou credencial de federação](/docs/pt/authentication#anthropic-profiles-and-federation-credentials), ou um provedor de nuvem como Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry. `/schedule` requer um login de assinatura claude.ai. Com uma chave de API do Console ou um perfil, e busca de sinalizadores de recursos habilitada, enviar `/schedule` mostra `/schedule is available with Claude for Enterprise — ask your admin about migrating from API-key access`. Com um login de provedor de nuvem, você ainda vê `Unknown command: /schedule`. Se `ANTHROPIC_API_KEY` ou `ANTHROPIC_AUTH_TOKEN` estiver definido em seu shell, ou `apiKeyHelper` estiver definido em `settings.json`, remova-o primeiro, pois esses têm precedência sobre um login claude.ai. Um perfil ou credencial de federação também tem precedência, então desative isso também

429* Você está totalmente desconectado, sem chave de API ou outra credencial. Com busca de sinalizadores de recursos habilitada, enviar `/schedule` mostra `/schedule requires a claude.ai subscription. Run /login to sign in with your claude.ai account.` Antes da v2.1.268, uma sessão desconectada mostrava a mesma mensagem Claude for Enterprise que uma chave de API do Console

427* Você está dentro de uma sessão Claude Code na web. Gerencie rotinas a partir da [interface web](https://claude.ai/code/routines)430* Você está dentro de uma sessão Claude Code na web. Gerencie rotinas a partir da [interface web](https://claude.ai/code/routines)

428* A política da sua organização desabilita [Claude Code na web](/docs/pt/claude-code-on-the-web), na qual as rotinas são executadas431* A política da sua organização desabilita [Claude Code na web](/docs/pt/claude-code-on-the-web), na qual as rotinas são executadas. Neste caso, enviar `/schedule` responde [`Cloud sessions are disabled by your organization's policy`](/docs/pt/errors#cloud-sessions-are-disabled-by-your-organizations-policy). Antes da v2.1.268, retornava `Unknown command: /schedule`

429* Um Owner [desativou rotinas](#routines-are-disabled-by-your-organizations-policy) para sua organização Team ou Enterprise. Antes da v2.1.227, o comando ainda aparecia neste caso, e claude.ai rejeitava a rotina quando Claude tentava criá-la ou executá-la432* Um Owner [desativou rotinas](#routines-are-disabled-by-your-organizations-policy) para sua organização Team ou Enterprise. Antes da v2.1.227, o comando ainda aparecia neste caso, e claude.ai rejeitava a rotina quando Claude tentava criá-la ou executá-la

430 433 

431A menos que a política da sua organização desabilite rotinas ou Claude Code na web, você pode criar e gerenciar rotinas em [claude.ai/code/routines](https://claude.ai/code/routines) independentemente de como a CLI está configurada.434A menos que a política da sua organização desabilite rotinas ou Claude Code na web, você pode criar e gerenciar rotinas em [claude.ai/code/routines](https://claude.ai/code/routines) independentemente de como a CLI está configurada.

432 435 

433<h3 id="/schedule-asks-you-to-authenticate">

434 `/schedule` pede que você se autentique

435</h3>

436 

437Se `/schedule` for executado mas Claude responder que você precisa se autenticar com uma conta claude.ai primeiro, a CLI não tem nenhum login claude.ai armazenado. Contas de API não são suportadas para rotinas. Execute `/login`, faça login com sua conta claude.ai e execute `/schedule` novamente.

438 

439<h3 id="routines-are-disabled-by-your-organizations-policy">436<h3 id="routines-are-disabled-by-your-organizations-policy">

440 "As rotinas estão desabilitadas pela política da sua organização"437 "As rotinas estão desabilitadas pela política da sua organização"

441</h3>438</h3>


449* [`/loop` e agendamento em sessão](/docs/pt/scheduled-tasks): agende tarefas locais dentro de uma sessão CLI aberta446* [`/loop` e agendamento em sessão](/docs/pt/scheduled-tasks): agende tarefas locais dentro de uma sessão CLI aberta

450* [Tarefas agendadas do Desktop](/docs/pt/desktop-scheduled-tasks): tarefas agendadas locais que são executadas em sua máquina com acesso a arquivos locais447* [Tarefas agendadas do Desktop](/docs/pt/desktop-scheduled-tasks): tarefas agendadas locais que são executadas em sua máquina com acesso a arquivos locais

451* [Ambientes em nuvem](/docs/pt/cloud-environments): configure acesso à rede, variáveis de ambiente e scripts de configuração para sessões em nuvem448* [Ambientes em nuvem](/docs/pt/cloud-environments): configure acesso à rede, variáveis de ambiente e scripts de configuração para sessões em nuvem

449* [Projetos](/docs/pt/claude-projects): trabalho contínuo que Claude coordena em sessões em nuvem paralelas; rotinas criadas a partir de um projeto aparecem na aba **Rotinas**

452* [Conectores MCP](/docs/pt/mcp): conecte serviços externos como Slack, Linear e Google Drive450* [Conectores MCP](/docs/pt/mcp): conecte serviços externos como Slack, Linear e Google Drive

453* [GitHub Actions](/docs/pt/github-actions): execute Claude em seu pipeline de CI em eventos de repositório451* [GitHub Actions](/docs/pt/github-actions): execute Claude em seu pipeline de CI em eventos de repositório

Details

21As duas primeiras abordagens na tabela abaixo são executadas no sistema operacional do host sem containers. O resto coloca o Claude Code dentro de um container ou máquina virtual.21As duas primeiras abordagens na tabela abaixo são executadas no sistema operacional do host sem containers. O resto coloca o Claude Code dentro de um container ou máquina virtual.

22 22 

23| Approach | What is isolated | Requires Docker | Setup effort |23| Approach | What is isolated | Requires Docker | Setup effort |

24| :------------------------------------------------ | :--------------------------------------------------------------------------------------- | :-------------- | :----------------------------------------------------------------------------------------- |24| :------------------------------------------ | :--------------------------------------------------------------------------------------- | :-------------- | :----------------------------------------------------------------------------------------------------------- |

25| [Sandboxed Bash tool](#sandboxed-bash-tool) | Comandos Bash e seus processos filhos | Não | Mínimo no macOS; baixo no Linux e WSL2 |25| [Sandboxed Bash tool](#sandboxed-bash-tool) | Bash, PowerShell, and Monitor commands and their child processes | No | Minimal on macOS; low on Linux and WSL2 |

26| [Sandbox runtime](#sandbox-runtime) | Todo o processo do Claude Code, incluindo ferramentas de arquivo, servidores MCP e hooks | Não | Baixo |26| [Sandbox runtime](#sandbox-runtime) | Todo o processo do Claude Code, incluindo ferramentas de arquivo, servidores MCP e hooks | Não | Baixo |

27| [Dev container](#dev-containers) | Ambiente de desenvolvimento completo | Sim | Médio |27| [Dev container](#dev-containers) | Ambiente de desenvolvimento completo | Sim | Médio |

28| [Custom container](#custom-container) | Ambiente de desenvolvimento completo | Sim | Médio a alto |28| [Custom container](#custom-container) | Ambiente de desenvolvimento completo | Sim | Médio a alto |

29| [Virtual machine](#virtual-machine) | Sistema operacional completo | Não | Alto |29| [Virtual machine](#virtual-machine) | Sistema operacional completo | Não | Alto |

30| [Claude Code on the web](#claude-code-on-the-web) | Sistema operacional completo, hospedado pela Anthropic | Não | Nenhum; requer uma assinatura Claude e GitHub quando você inicia a partir da interface web |30| [Cloud sessions](#cloud-sessions) | Full operating system, hosted by Anthropic | No | None; requires a Claude subscription, and a connected GitHub account unless you launch with `claude --cloud` |

31 31 

32A [sandboxed Bash tool](/docs/pt/sandboxing) é integrada ao Claude Code e restringe apenas comandos Bash. As ferramentas de arquivo integradas, servidores MCP e hooks ainda são executados diretamente no seu host. Todas as outras abordagens na tabela colocam todo o processo do Claude Code dentro do limite de isolamento, portanto ferramentas de arquivo, servidores MCP e hooks também são restritos.32A [sandboxed Bash tool](/docs/pt/sandboxing) é integrada ao Claude Code e restringe apenas comandos Bash. As ferramentas de arquivo integradas, servidores MCP e hooks ainda são executados diretamente no seu host. Todas as outras abordagens na tabela colocam todo o processo do Claude Code dentro do limite de isolamento, portanto ferramentas de arquivo, servidores MCP e hooks também são restritos.

33 33 


44Combine seu objetivo com uma linha abaixo e leia a seção de detalhes que segue.44Combine seu objetivo com uma linha abaixo e leia a seção de detalhes que segue.

45 45 

46| You want to | Start with |46| You want to | Start with |

47| :----------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |47| :----------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

48| Reduzir prompts de permissão durante o trabalho diário em sua própria máquina | A [sandboxed Bash tool](/docs/pt/sandboxing), configurada com `/sandbox` |48| Reduzir prompts de permissão durante o trabalho diário em sua própria máquina | A [sandboxed Bash tool](/docs/pt/sandboxing), configurada com `/sandbox` |

49| Deixar o Claude trabalhar sem supervisão com `--dangerously-skip-permissions` ou modo automático | O [dev container](/docs/pt/devcontainer) pré-configurado, qualquer container ou VM, ou o [sandbox runtime](#sandbox-runtime) |49| Deixar o Claude trabalhar sem supervisão com `--dangerously-skip-permissions` ou modo automático | O [dev container](/docs/pt/devcontainer) pré-configurado, qualquer container ou VM, ou o [sandbox runtime](#sandbox-runtime) |

50| Isolar servidores MCP e hooks bem como Bash, sem Docker | O sandbox runtime |50| Isolar servidores MCP e hooks bem como Bash, sem Docker | O sandbox runtime |

51| Trabalhar em um repositório não confiável | Uma máquina virtual dedicada, ou [Claude Code on the web](/docs/pt/claude-code-on-the-web) se você tiver uma assinatura Claude; GitHub é necessário apenas quando você inicia a partir da interface web |51| Trabalhar em um repositório não confiável | Uma máquina virtual dedicada, ou uma [sessão na nuvem](/docs/pt/claude-code-on-the-web) se você tiver uma assinatura Claude; GitHub não é necessário quando você inicia com `claude --cloud` |

52| Padronizar um ambiente sandbox em toda uma equipe | O [dev container](/docs/pt/devcontainer) pré-configurado, copiado para seu repositório |52| Padronizar um ambiente sandbox em toda uma equipe | O [dev container](/docs/pt/devcontainer) pré-configurado, copiado para seu repositório |

53| Usar Claude Code de um dispositivo sem configuração local | [Claude Code on the web](/docs/pt/claude-code-on-the-web), que requer uma assinatura Claude e uma conta GitHub conectada |53| Usar Claude Code de um dispositivo sem configuração local | Uma [sessão na nuvem](/docs/pt/claude-code-on-the-web), que requer uma assinatura Claude e uma conta GitHub conectada |

54| Exigir isolamento para cada desenvolvedor em sua organização | [Enforce isolation across an organization](#enforce-isolation-across-an-organization) |54| Exigir isolamento para cada desenvolvedor em sua organização | [Enforce isolation across an organization](#enforce-isolation-across-an-organization) |

55| Trabalhar em um host Windows nativo | Um container ou VM, ou executar o sandbox Bash dentro do WSL2 |55| Trabalhar em um host Windows nativo | Um container ou VM, ou executar o sandbox Bash dentro do WSL2 |

56 56 


66 66 

67O [Auto mode](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) substitui o prompt por um classificador que revisa ações. O classificador é um controle por ação, não um limite de isolamento, portanto um limite de isolamento ainda adiciona defesa em profundidade para execuções sem supervisão, e não é necessário da forma que é para `--dangerously-skip-permissions`.67O [Auto mode](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) substitui o prompt por um classificador que revisa ações. O classificador é um controle por ação, não um limite de isolamento, portanto um limite de isolamento ainda adiciona defesa em profundidade para execuções sem supervisão, e não é necessário da forma que é para `--dangerously-skip-permissions`.

68 68 

69A [sandboxed Bash tool](#sandboxed-bash-tool) por si só restringe apenas Bash, portanto não é suficiente para execuções totalmente sem supervisão em nenhum dos modos. Você pode combinar abordagens: executar a sandboxed Bash tool dentro de um container ou VM oferece restrições de comando no nível do SO além do limite do ambiente externo. Para como o sandbox Bash em si interage com regras de permissão e modos, consulte [How sandboxing relates to permissions and permission modes](/docs/pt/sandboxing#how-sandboxing-relates-to-permissions-and-permission-modes).69A [sandboxed Bash tool](#sandboxed-bash-tool) por si só restringe apenas comandos shell, portanto não é suficiente para execuções totalmente sem supervisão em nenhum dos modos. Você pode combinar abordagens: executar a sandboxed Bash tool dentro de um container ou VM oferece restrições de comando no nível do SO além do limite do ambiente externo. Para como o sandbox Bash em si interage com regras de permissão e modos, consulte [How sandboxing relates to permissions and permission modes](/docs/pt/sandboxing#how-sandboxing-relates-to-permissions-and-permission-modes).

70 70 

71<h2 id="sandboxed-bash-tool">71<h2 id="sandboxed-bash-tool">

72 Sandboxed Bash tool72 Sandboxed Bash tool


76 Esta opção não suporta Windows nativo. Em hosts Windows, use WSL2 ou uma das abordagens de container ou VM abaixo.76 Esta opção não suporta Windows nativo. Em hosts Windows, use WSL2 ou uma das abordagens de container ou VM abaixo.

77</Note>77</Note>

78 78 

79A sandboxed Bash tool é integrada ao Claude Code. Ela usa primitivos do sistema operacional para restringir o acesso ao sistema de arquivos e rede de cada comando Bash que o Claude executa.79A sandboxed Bash tool é integrada ao Claude Code. Ela usa primitivos do sistema operacional para restringir o acesso ao sistema de arquivos e rede de cada comando Bash, PowerShell ou Monitor que o Claude executa.

80 80 

81Execute o comando `/sandbox` para abrir o painel de sandbox e escolher um modo. O guia [Sandboxing](/docs/pt/sandboxing) cobre os modos de aprovação, o limite padrão, e como ampliá-lo ou estreitá-lo.81Execute o comando `/sandbox` para abrir o painel de sandbox e escolher um modo. O guia [Sandboxing](/docs/pt/sandboxing) cobre os modos de aprovação, o limite padrão, e como ampliá-lo ou estreitá-lo.

82 82 


91 Sandbox runtime91 Sandbox runtime

92</h2>92</h2>

93 93 

94O pacote [`@anthropic-ai/sandbox-runtime`](https://github.com/anthropic-experimental/sandbox-runtime) envolve um processo inteiro no mesmo isolamento Seatbelt ou bubblewrap que o sandbox Bash integrado usa. Executar o Claude Code através do runtime restringe cada ferramenta, hook e servidor MCP na sessão, não apenas Bash. O runtime é uma visualização prévia de pesquisa beta, e seu formato de configuração pode mudar conforme o pacote evolui.94O pacote [`@anthropic-ai/sandbox-runtime`](https://github.com/anthropic-experimental/sandbox-runtime) envolve um processo inteiro no mesmo isolamento Seatbelt ou bubblewrap que o sandbox Bash integrado usa. Executar o Claude Code através do runtime restringe cada ferramenta, hook e servidor MCP na sessão, não apenas comandos shell. O runtime é uma visualização prévia de pesquisa beta, e seu formato de configuração pode mudar conforme o pacote evolui.

95 95 

96Esta seção aborda o que você configura e o que o runtime impõe por conta própria. Para implantar o runtime em aplicações do Agent SDK, consulte o [guia de implantação segura](/docs/pt/agent-sdk/secure-deployment#sandbox-runtime).96Esta seção aborda o que você configura e o que o runtime impõe por conta própria. Para implantar o runtime em aplicações do Agent SDK, consulte o [guia de implantação segura](/docs/pt/agent-sdk/secure-deployment#sandbox-runtime).

97 97 


175 175 

176[Docker Sandboxes](https://docs.docker.com/ai/sandboxes/) fornece uma microVM com seu próprio daemon Docker e sincronização de workspace, que pode executar Claude Code em qualquer host com Docker Sandboxes instalado. É um produto gratuito e independente do Docker que não requer Docker Desktop.176[Docker Sandboxes](https://docs.docker.com/ai/sandboxes/) fornece uma microVM com seu próprio daemon Docker e sincronização de workspace, que pode executar Claude Code em qualquer host com Docker Sandboxes instalado. É um produto gratuito e independente do Docker que não requer Docker Desktop.

177 177 

178<h2 id="claude-code-on-the-web">178<h2 id="cloud-sessions">

179 Claude Code on the web179 Sessões na nuvem

180</h2>180</h2>

181 181 

182[Claude Code on the web](/docs/pt/claude-code-on-the-web) executa cada sessão em uma máquina virtual isolada e gerenciada pela Anthropic. Um proxy de rede impõe uma lista de permissões padrão, e um proxy separado mantém seu token GitHub fora do sandbox enquanto emite credenciais com escopo para acesso ao repositório dentro dele. As sessões que sua organização roteia para um [ambiente auto-hospedado](/docs/pt/self-hosted-environments) são executadas na infraestrutura que você provisiona, onde isolamento, controle de saída e credenciais git são responsabilidade da sua implantação.182Uma [sessão na nuvem](/docs/pt/claude-code-on-the-web) é executada em uma máquina virtual isolada e gerenciada pela Anthropic. Um proxy de rede impõe uma lista de permissões padrão, e um proxy separado mantém seu token GitHub fora do sandbox enquanto emite credenciais com escopo para acesso ao repositório dentro dele. As sessões que sua organização roteia para um [ambiente auto-hospedado](/docs/pt/self-hosted-environments) são executadas na infraestrutura que você provisiona, onde isolamento, controle de saída e credenciais git são responsabilidade da sua implantação.

183 183 

184Use esta abordagem quando você quer isolamento completo de VM sem provisionar infraestrutura você mesmo, ou quando você está delegando tarefas de um dispositivo que não tem um ambiente de desenvolvimento local. Requer uma assinatura Claude. Quando você inicia uma sessão a partir da interface web, você também precisa de uma conta GitHub conectada para que o sandbox possa clonar seu repositório. Quando você inicia a partir da CLI com `--cloud`, Claude Code pode [agrupar e fazer upload do seu repositório local](/docs/pt/claude-code-on-the-web#send-local-repositories-without-github) em vez disso. Consulte [Claude Code on the web](/docs/pt/claude-code-on-the-web) para disponibilidade de plano e opções de autenticação GitHub.184Use esta abordagem quando você quer isolamento completo de VM sem provisionar infraestrutura você mesmo, ou quando você está delegando tarefas de um dispositivo que não tem um ambiente de desenvolvimento local. Requer uma assinatura Claude. A menos que você inicie a partir da CLI, você também precisa de uma conta GitHub conectada para que o sandbox possa clonar seu repositório. Quando você inicia a partir da CLI com `--cloud`, Claude Code pode [agrupar e fazer upload do seu repositório local](/docs/pt/claude-code-on-the-web#send-local-repositories-without-github) em vez disso. Consulte [Usar Claude Code na nuvem](/docs/pt/claude-code-on-the-web) para disponibilidade de plano e opções de autenticação GitHub.

185 185 

186<h2 id="enforce-isolation-across-an-organization">186<h2 id="enforce-isolation-across-an-organization">

187 Enforce isolation across an organization187 Enforce isolation across an organization

sandboxing.md +25 −7

Details

6 6 

7> Aprenda como a ferramenta Bash em sandbox do Claude Code fornece isolamento de sistema de arquivos e rede para execução de agentes mais segura e autônoma.7> Aprenda como a ferramenta Bash em sandbox do Claude Code fornece isolamento de sistema de arquivos e rede para execução de agentes mais segura e autônoma.

8 8 

9O sandbox Bash permite que Claude execute a maioria dos comandos shell sem parar para pedir permissão. Em vez de aprovar cada comando, você define quais arquivos e domínios de rede os comandos podem acessar, e o sistema operacional impõe esse limite para cada comando Bash e seus processos filhos.9O sandbox Bash permite que Claude execute a maioria dos comandos shell sem parar para pedir permissão. Em vez de aprovar cada comando, você define quais arquivos e domínios de rede os comandos podem acessar, e o sistema operacional impõe esse limite para cada comando Bash, PowerShell ou Monitor e seus processos filhos.

10 10 

11<Note>11<Note>

12 Para comparar outras abordagens de isolamento, como dev containers, containers personalizados e máquinas virtuais, consulte [Sandbox environments](/docs/pt/sandbox-environments). Para reduzir prompts de permissão para ferramentas diferentes de Bash, consulte [permission modes](/docs/pt/permission-modes).12 Para comparar outras abordagens de isolamento, como dev containers, containers personalizados e máquinas virtuais, consulte [Sandbox environments](/docs/pt/sandbox-environments). Para reduzir prompts de permissão para ferramentas diferentes de Bash, consulte [permission modes](/docs/pt/permission-modes).


42 </Step>42 </Step>

43 43 

44 <Step title="Run a Bash command">44 <Step title="Run a Bash command">

45 Peça ao Claude para executar um comando, como uma compilação ou um conjunto de testes. Por padrão, os comandos dentro do sandbox podem escrever no diretório de trabalho, no diretório temporário da sessão e em qualquer [diretório que você tenha adicionado](/docs/pt/permissions#additional-directories-grant-file-access-not-configuration) com `--add-dir`, `/add-dir` ou `permissions.additionalDirectories`. Na primeira vez que um comando precisa de um novo domínio de rede, Claude Code solicita aprovação, ou em [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) envia a solicitação para o classificador.45 Peça ao Claude para executar um comando, como uma compilação ou um conjunto de testes. Por padrão, os comandos dentro do sandbox podem escrever no diretório de trabalho, no diretório temporário da sessão e em qualquer [diretório que você tenha adicionado](/docs/pt/permissions#additional-directories-grant-file-access-not-configuration) com `--add-dir`, `/add-dir` ou `permissions.additionalDirectories`.

46 

47 Na primeira vez que um comando precisa de um novo domínio de rede, Claude Code solicita aprovação; em [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), Claude em vez disso nomeia os hosts que um comando precisa [no próprio comando](#per-command-allowed-domains-in-auto-mode) para o classificador revisar com ele.

46 48 

47 Comandos que não podem ser executados em sandbox voltam ao fluxo de permissão regular. Claude Code intitula seu prompt de permissão como "Bash command (unsandboxed)" em vez de "Bash command", para que você possa saber quais comandos foram executados fora do sandbox. Para ampliar ou estreitar o que o sandbox permite, consulte [Configure sandboxing](#configure-sandboxing).49 Comandos que não podem ser executados em sandbox voltam ao fluxo de permissão regular. Claude Code intitula seu prompt de permissão como "Bash command (unsandboxed)" em vez de "Bash command", para que você possa saber quais comandos foram executados fora do sandbox. Para ampliar ou estreitar o que o sandbox permite, consulte [Configure sandboxing](#configure-sandboxing).

48 50 


540 542 

541* **No seu diretório de trabalho e nos diretórios acima dele**: os arquivos de configurações `.claude`, os diretórios `.claude/skills`, `.claude/agents`, `.claude/commands` e `.claude/hooks`, `.mcp.json`, e os arquivos que Claude Code executa por conta própria, como `.claude/workflows` e `.claude/scheduled_tasks.json`543* **No seu diretório de trabalho e nos diretórios acima dele**: os arquivos de configurações `.claude`, os diretórios `.claude/skills`, `.claude/agents`, `.claude/commands` e `.claude/hooks`, `.mcp.json`, e os arquivos que Claude Code executa por conta própria, como `.claude/workflows` e `.claude/scheduled_tasks.json`

542* **Apenas no seu diretório de trabalho**: arquivos de inicialização de shell como `.bashrc` e `.zshrc`, `.gitconfig`, os diretórios `.vscode` e `.idea`, e `hooks` e `config` dentro de `.git`544* **Apenas no seu diretório de trabalho**: arquivos de inicialização de shell como `.bashrc` e `.zshrc`, `.gitconfig`, os diretórios `.vscode` e `.idea`, e `hooks` e `config` dentro de `.git`

543* **Arquivos que transformariam seu diretório de trabalho em um repositório git bare**: `HEAD`, `objects` e `refs` no nível superior, além de `config` e `hooks` lá quando já existem, mesmo quando o diretório `config` pertence ao seu projeto em vez de ao git. No Linux e WSL2, o sandbox exclui um arquivo `HEAD` de nível superior ou diretório `objects` ou `refs` que apareça enquanto um comando em sandbox está em execução545* **Arquivos que transformariam seu diretório de trabalho em um repositório git bare**: `HEAD`, `objects` e `refs` no nível superior, além de `config` e `hooks` lá quando um `HEAD` fica ao lado deles. Um arquivo nomeado `config` é negado mesmo sem `HEAD`. No Linux e WSL2, o sandbox exclui um arquivo `HEAD` de nível superior ou diretório `objects` ou `refs` que apareça enquanto um comando em sandbox está em execução

544* **Em `~/.claude`, ou no diretório para o qual `CLAUDE_CONFIG_DIR` aponta**: a maioria de seu conteúdo, além de `~/.claude.json` e o armazenamento de credenciais `.credentials.json`546* **Em `~/.claude`, ou no diretório para o qual `CLAUDE_CONFIG_DIR` aponta**: a maioria de seu conteúdo, além de `~/.claude.json` e o armazenamento de credenciais `.credentials.json`

545 547 

546Se um symlink aparecer no caminho de um arquivo de configurações protegidas durante a sessão, o sandbox também nega escritas no arquivo para o qual ele aponta, começando com o próximo comando.548Se um symlink aparecer no caminho de um arquivo de configurações protegidas durante a sessão, o sandbox também nega escritas no arquivo para o qual ele aponta, começando com o próximo comando.


555 557 

556O acesso à rede é controlado através de um servidor proxy executado fora do sandbox:558O acesso à rede é controlado através de um servidor proxy executado fora do sandbox:

557 559 

558* **Restrições de domínio**: Claude Code não pré-permite nenhum domínio por padrão. Na primeira vez que um comando precisa de um novo domínio, Claude Code solicita aprovação, ou em [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) envia a solicitação para o classificador. Se você escolher Sim quando solicitado, Claude Code permite o host para o resto da sessão atual e não solicita novamente para conexões posteriores ao mesmo host. Se você escolher "Sim, e não pergunte novamente", Claude Code salva uma regra de permissão `WebFetch(domain:...)` em suas [configurações locais](/docs/pt/permissions#permission-system), para que o host permaneça permitido em sessões futuras. Pré-permita domínios com [`allowedDomains`](/docs/pt/settings-reference#sandbox-network-alloweddomains) para evitar o prompt inteiramente. Claude Code também pré-permite domínios de regras de permissão `WebFetch(domain:...)`, conforme descrito em [Regras de permissão](#permission-rules).560* **Restrições de domínio**: Claude Code não pré-permite nenhum domínio por padrão. Na primeira vez que um comando precisa de um novo domínio, Claude Code solicita aprovação; em [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), Claude nomeia os hosts que um comando precisa no próprio comando, por [Domínios permitidos por comando](#per-command-allowed-domains-in-auto-mode).

561* **Opções de aprovação**: se você escolher Sim quando solicitado, Claude Code permite o host para o resto da sessão atual e não solicita novamente para conexões posteriores ao mesmo host. Se você escolher "Sim, e não pergunte novamente", Claude Code salva uma regra de permissão `WebFetch(domain:...)` em suas [configurações locais](/docs/pt/permissions#permission-system), para que o host permaneça permitido em sessões futuras.

562* **Domínios pré-permitidos**: pré-permita domínios com [`allowedDomains`](/docs/pt/settings-reference#sandbox-network-alloweddomains) para evitar o prompt inteiramente. Claude Code também pré-permite domínios de regras de permissão `WebFetch(domain:...)`, conforme descrito em [Regras de permissão](#permission-rules).

559* **Allowlist rigorosa**: se você definir [`strictAllowlist`](/docs/pt/settings-reference#sandbox-network-strictallowlist) como `true` em configurações de usuário, gerenciadas ou CLI `--settings`, Claude Code nega aos comandos em sandbox acesso a qualquer host fora da allowlist em vez de solicitar. A allowlist é a mesma contra a qual o sandbox solicita de outra forma: `allowedDomains` mais domínios de regras de permissão `WebFetch(domain:...)`, ou apenas as entradas de configurações gerenciadas quando `allowManagedDomainsOnly` está definido. Claude Code impõe isso apenas para comandos em sandbox; ferramentas em processo como `WebFetch` ainda seguem suas [regras de permissão](#permission-rules). Defini-lo no `.claude/settings.json` ou `.claude/settings.local.json` de um repositório não tem efeito. Requer Claude Code v2.1.219 ou posterior.563* **Allowlist rigorosa**: se você definir [`strictAllowlist`](/docs/pt/settings-reference#sandbox-network-strictallowlist) como `true` em configurações de usuário, gerenciadas ou CLI `--settings`, Claude Code nega aos comandos em sandbox acesso a qualquer host fora da allowlist em vez de solicitar. A allowlist é a mesma contra a qual o sandbox solicita de outra forma: `allowedDomains` mais domínios de regras de permissão `WebFetch(domain:...)`, ou apenas as entradas de configurações gerenciadas quando `allowManagedDomainsOnly` está definido. Claude Code impõe isso apenas para comandos em sandbox; ferramentas em processo como `WebFetch` ainda seguem suas [regras de permissão](#permission-rules). Defini-lo no `.claude/settings.json` ou `.claude/settings.local.json` de um repositório não tem efeito. Requer Claude Code v2.1.219 ou posterior.

560* **Bloqueio gerenciado**: se [`allowManagedDomainsOnly`](/docs/pt/settings-reference#sandbox-network-allowmanageddomainsonly) estiver definido em configurações gerenciadas, domínios não permitidos são bloqueados automaticamente em vez de solicitar, e apenas `allowedDomains` e regras de permissão `WebFetch(domain:...)` de configurações gerenciadas são honrados.564* **Bloqueio gerenciado**: se [`allowManagedDomainsOnly`](/docs/pt/settings-reference#sandbox-network-allowmanageddomainsonly) estiver definido em configurações gerenciadas, domínios não permitidos são bloqueados automaticamente em vez de solicitar, e apenas `allowedDomains` e regras de permissão `WebFetch(domain:...)` de configurações gerenciadas são honrados.

561* **Proxy corporativo**: quando sua rede requer que o tráfego de saída passe por um proxy corporativo, defina `HTTPS_PROXY`, `HTTP_PROXY` e `NO_PROXY` conforme [configuração de proxy](/docs/pt/network-config#proxy-configuration) descreve, no bloco `env` de suas configurações para que [agentes de fundo](/docs/pt/network-config#set-network-variables-in-settings-not-the-shell) também os obtenham, ou no ambiente a partir do qual você inicia Claude Code. Claude Code impõe a allowlist de domínio e então encaminha conexões permitidas através desse proxy upstream.565* **Proxy corporativo**: quando sua rede requer que o tráfego de saída passe por um proxy corporativo, defina `HTTPS_PROXY`, `HTTP_PROXY` e `NO_PROXY` conforme [configuração de proxy](/docs/pt/network-config#proxy-configuration) descreve, no bloco `env` de suas configurações para que [agentes de fundo](/docs/pt/network-config#set-network-variables-in-settings-not-the-shell) também os obtenham, ou no ambiente a partir do qual você inicia Claude Code. Claude Code impõe a allowlist de domínio e então encaminha conexões permitidas através desse proxy upstream.


568 O proxy integrado impõe a allowlist com base no nome de host solicitado e, por padrão, não termina ou inspeciona tráfego TLS. A configuração experimental [`network.tlsTerminate`](/docs/pt/settings-reference#sandbox-network-tlsterminate), disponível no Claude Code v2.1.199 e posterior, faz com que o proxy integrado termine TLS em si mesmo, o que as entradas de credenciais [`mask`](#mask-credentials) exigem. Consulte [Limitações de segurança](#security-limitations) para as implicações do padrão, e [Configuração de proxy personalizado](#custom-proxy-configuration) se seu modelo de ameaça exigir inspeção TLS.572 O proxy integrado impõe a allowlist com base no nome de host solicitado e, por padrão, não termina ou inspeciona tráfego TLS. A configuração experimental [`network.tlsTerminate`](/docs/pt/settings-reference#sandbox-network-tlsterminate), disponível no Claude Code v2.1.199 e posterior, faz com que o proxy integrado termine TLS em si mesmo, o que as entradas de credenciais [`mask`](#mask-credentials) exigem. Consulte [Limitações de segurança](#security-limitations) para as implicações do padrão, e [Configuração de proxy personalizado](#custom-proxy-configuration) se seu modelo de ameaça exigir inspeção TLS.

569</Note>573</Note>

570 574 

575<h4 id="per-command-allowed-domains-in-auto-mode">

576 Domínios permitidos por comando em modo automático

577</h4>

578 

579Em [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) com sandboxing ativado, Claude nomeia os hosts que um comando precisa no próprio comando em vez de disparar uma aprovação de rede para cada conexão. Cada comando Bash, PowerShell ou [Monitor](/docs/pt/tools-reference#monitor-tool) que é executado no sandbox pode carregar uma lista de hosts além da allowlist do sandbox: um domínio como `registry.npmjs.org`, um wildcard como `*.pythonhosted.org`, ou um endereço IP, cada um com uma porta opcional `:port`. O classificador revisa os hosts junto com o comando. Requer Claude Code v2.1.271 ou posterior.

580 

581Uma lista aprovada abre esses hosts apenas para esse comando, enquanto ele é executado. Nada é adicionado aos hosts permitidos da sua sessão ou às suas configurações; o próximo comando nomeia seus próprios hosts.

582 

583Um comando que carrega hosts vai para o classificador em vez de ser aprovado por uma regra de permissão ou pelo [modo de aprovação automática](#sandbox-modes) do sandbox. Se uma [regra ask](/docs/pt/permissions#manage-permissions) força um prompt para o comando, o diálogo de permissão em seu terminal lista os hosts ao lado dele, e aprovar lá cobre ambos.

584 

585Uma lista por comando amplia apenas o que o sandbox nega por padrão. As entradas [`deniedDomains`](/docs/pt/settings-reference#sandbox-network-denieddomains) ainda bloqueiam. Quando [`strictAllowlist`](/docs/pt/settings-reference#sandbox-network-strictallowlist) ou [`allowManagedDomainsOnly`](/docs/pt/settings-reference#sandbox-network-allowmanageddomainsonly) bloqueia a allowlist, Claude Code recusa listas por comando.

586 

587Enquanto listas por comando se aplicam, Claude Code recusa uma conexão a um host que nenhum comando aprovado listou, sem um prompt ou uma verificação do classificador. A recusa nomeia o host no resultado do comando, e Claude executa novamente o comando com o host adicionado.

588 

571<h4 id="ipv6-addresses-in-domain-lists">589<h4 id="ipv6-addresses-in-domain-lists">

572 Endereços IPv6 em listas de domínios590 Endereços IPv6 em listas de domínios

573</h4>591</h4>


610Regras de permissão e sandboxing controlam coisas diferentes:628Regras de permissão e sandboxing controlam coisas diferentes:

611 629 

612* **Regras de permissão** controlam quais ferramentas Claude Code pode usar e são avaliadas antes de qualquer ferramenta ser executada. Elas se aplicam a todas as ferramentas: Bash, Read, Edit, WebFetch, MCP e outras, exceto que uma regra de negação ou solicitação não pode bloquear [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior) enquanto qualquer outra ferramenta permanecer.630* **Regras de permissão** controlam quais ferramentas Claude Code pode usar e são avaliadas antes de qualquer ferramenta ser executada. Elas se aplicam a todas as ferramentas: Bash, Read, Edit, WebFetch, MCP e outras, exceto que uma regra de negação ou solicitação não pode bloquear [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior) enquanto qualquer outra ferramenta permanecer.

613* **Sandboxing** fornece imposição no nível do SO que restringe o que comandos Bash podem acessar no nível de sistema de arquivos e rede. Aplica-se apenas a comandos Bash e seus processos filhos.631* **Sandboxing** fornece imposição no nível do SO que restringe o que comandos Bash, PowerShell e [Monitor](/docs/pt/tools-reference#monitor-tool) podem acessar no nível de sistema de arquivos e rede. Aplica-se apenas a comandos Bash, PowerShell e [Monitor](/docs/pt/tools-reference#monitor-tool) e seus processos filhos.

614 632 

615As duas camadas também diferem em como são impostas. Claude Code avalia decisões de permissão antes de um comando ser executado, com base na string do comando e, no modo auto, no julgamento de um classificador separado sobre se o comando é seguro. O sistema operacional impõe o limite do sandbox no processo em execução, portanto se mantém independentemente do que o modelo escolheu executar e mesmo se um comando permitido faz mais do que seu nome sugere.633As duas camadas também diferem em como são impostas. Claude Code avalia decisões de permissão antes de um comando ser executado, com base na string do comando e, no modo auto, no julgamento de um classificador separado sobre se o comando é seguro. O sistema operacional impõe o limite do sandbox no processo em execução, portanto se mantém independentemente do que o modelo escolheu executar e mesmo se um comando permitido faz mais do que seu nome sugere.

616 634 


644| [Modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) | Se cada chamada de ferramenta é executada | Um classificador que revisa ações |662| [Modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) | Se cada chamada de ferramenta é executada | Um classificador que revisa ações |

645| `--dangerously-skip-permissions` | Se cada chamada de ferramenta é executada | Nada. Verificações de [caminho protegido](/docs/pt/permission-modes#protected-paths) também são ignoradas; as [ações que nenhum modo auto-aprova](/docs/pt/permission-modes#actions-no-mode-auto-approves) ainda se aplicam |663| `--dangerously-skip-permissions` | Se cada chamada de ferramenta é executada | Nada. Verificações de [caminho protegido](/docs/pt/permission-modes#protected-paths) também são ignoradas; as [ações que nenhum modo auto-aprova](/docs/pt/permission-modes#actions-no-mode-auto-approves) ainda se aplicam |

646 664 

647O [modo auto-allow](#sandbox-modes) do sandbox é separado do [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode): auto-allow aprova comandos Bash porque o limite do sandbox os contém, enquanto modo auto usa um classificador para revisar ações. Os dois funcionam independentemente e podem ser combinados. Para escolher um limite de isolamento para execuções autônomas, consulte [Ambientes de sandbox](/docs/pt/sandbox-environments#how-isolation-relates-to-permission-modes). Para uma tabela de emparelhamentos comuns de modo de permissão e sandbox com os sinalizadores que iniciam cada um, consulte [Configurações comuns](/docs/pt/permission-modes#common-setups).665O [modo auto-allow](#sandbox-modes) do sandbox é separado do [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode): auto-allow aprova comandos Bash porque o limite do sandbox os contém, enquanto modo auto usa um classificador para revisar ações. Os dois funcionam independentemente e podem ser combinados, com as exceções listadas em [Modos de sandbox](#sandbox-modes). Para escolher um limite de isolamento para execuções autônomas, consulte [Ambientes de sandbox](/docs/pt/sandbox-environments#how-isolation-relates-to-permission-modes). Para uma tabela de emparelhamentos comuns de modo de permissão e sandbox com os sinalizadores que iniciam cada um, consulte [Configurações comuns](/docs/pt/permission-modes#common-setups).

648 666 

649<h2 id="configure-the-sandbox-for-your-organization">667<h2 id="configure-the-sandbox-for-your-organization">

650 Configure o sandbox para sua organização668 Configure o sandbox para sua organização


656 Imponha o sandboxing com configurações gerenciadas674 Imponha o sandboxing com configurações gerenciadas

657</h3>675</h3>

658 676 

659Para exigir o sandbox para cada desenvolvedor, entregue as chaves `sandbox` através de [managed settings](/docs/pt/managed-settings#delivery-mechanisms), seja como um arquivo gerenciado pelo seu MDM ou através de [server-managed settings](/docs/pt/server-managed-settings) no Claude.ai.677Para exigir o sandbox para cada desenvolvedor, entregue as chaves `sandbox` através de [managed settings](/docs/pt/managed-settings#delivery-mechanisms), seja como um arquivo gerenciado pelo seu MDM ou através de [server-managed settings](/docs/pt/server-managed-settings) no claude.ai.

660 678 

661A seguinte configuração de managed settings habilita o sandbox, recusa iniciar Claude Code se o sandbox não conseguir inicializar e impede que o modelo tente novamente comandos fora do sandbox:679A seguinte configuração de managed settings habilita o sandbox, recusa iniciar Claude Code se o sandbox não conseguir inicializar e impede que o modelo tente novamente comandos fora do sandbox:

662 680 

Details

169cancel the deploy check job169cancel the deploy check job

170```170```

171 171 

172Nos bastidores, Claude usa estas ferramentas:172Estas são as ferramentas subjacentes que Claude usa:

173 173 

174| Ferramenta | Propósito |174| Ferramenta | Propósito |

175| :----------- | :------------------------------------------------------------------------------------------------------------------------ |175| :----------- | :------------------------------------------------------------------------------------------------------------------------ |


238* As tarefas só são acionadas enquanto Claude Code está em execução e ocioso. Fechar o terminal ou deixar a sessão sair para tudo. [Colocar a sessão em segundo plano](/docs/pt/agent-view#from-inside-a-session) leva tarefas `/loop` para uma sessão em segundo plano, que continua em execução sem um terminal.238* As tarefas só são acionadas enquanto Claude Code está em execução e ocioso. Fechar o terminal ou deixar a sessão sair para tudo. [Colocar a sessão em segundo plano](/docs/pt/agent-view#from-inside-a-session) leva tarefas `/loop` para uma sessão em segundo plano, que continua em execução sem um terminal.

239* Sem recuperação para disparos perdidos. Se o tempo agendado de uma tarefa passar enquanto Claude está ocupado em uma solicitação de longa duração, ela dispara uma vez quando Claude fica ocioso, não uma vez por intervalo perdido.239* Sem recuperação para disparos perdidos. Se o tempo agendado de uma tarefa passar enquanto Claude está ocupado em uma solicitação de longa duração, ela dispara uma vez quando Claude fica ocioso, não uma vez por intervalo perdido.

240* Iniciar uma conversa nova limpa todas as tarefas com escopo de sessão. Quando você retoma uma sessão com `claude --resume` ou `claude --continue`, Claude Code restaura as tarefas agendadas com `CronCreate`, exceto tarefas recorrentes que [expiraram](#seven-day-expiry) e tarefas únicas cujo tempo agendado já passou. Um `/loop` [auto-paced](#let-claude-choose-the-interval) não é restaurado, então execute `/loop` novamente para reiniciá-lo. Tarefas de Bash em segundo plano e tarefas de monitor nunca são restauradas ao retomar.240* Iniciar uma conversa nova limpa todas as tarefas com escopo de sessão. Quando você retoma uma sessão com `claude --resume` ou `claude --continue`, Claude Code restaura as tarefas agendadas com `CronCreate`, exceto tarefas recorrentes que [expiraram](#seven-day-expiry) e tarefas únicas cujo tempo agendado já passou. Um `/loop` [auto-paced](#let-claude-choose-the-interval) não é restaurado, então execute `/loop` novamente para reiniciá-lo. Tarefas de Bash em segundo plano e tarefas de monitor nunca são restauradas ao retomar.

241* Com [busca de feature flag desativada](/docs/pt/env-vars#features-that-need-feature-flag-fetching), Claude Code armazena uma tarefa que você pediu para manter entre sessões no diretório `.claude` do projeto. Quando esse diretório ou o arquivo de tarefa nele é um symlink, Claude Code retorna um erro em vez de agendar a tarefa.241* Com [busca de feature flag desativada](/docs/pt/env-vars#features-that-need-feature-flag-fetching), Claude Code armazena uma tarefa que você pediu para manter entre sessões no arquivo `.claude/scheduled_tasks.json` do projeto. Quando o diretório `.claude` ou esse arquivo é um symlink, Claude Code retorna um erro em vez de agendar a tarefa. Uma tarefa salva é executada apenas na pasta do projeto onde você a criou. Se você copiar o arquivo para outra pasta, como um novo worktree, as sessões lá listam as tarefas copiadas, mas não as executam, então crie a tarefa novamente nessa pasta.

242 242 

243Para automação orientada por cron que precisa ser executada sem supervisão:243Para automação orientada por cron que precisa ser executada sem supervisão:

244 244 

security.md +2 −2

Details

124 Segurança de execução em nuvem124 Segurança de execução em nuvem

125</h2>125</h2>

126 126 

127Ao usar [Claude Code on the web](/docs/pt/claude-code-on-the-web), controles de segurança adicionais estão em vigor. As sessões que sua organização roteia para um [ambiente auto-hospedado](/docs/pt/self-hosted-environments) são executadas em sua própria infraestrutura, onde isolamento, egresso de rede e credenciais git são responsabilidade de sua implantação. Em ambientes hospedados pela Anthropic:127Ao usar [sessões em nuvem](/docs/pt/claude-code-on-the-web), controles de segurança adicionais estão em vigor. As sessões que sua organização roteia para um [ambiente auto-hospedado](/docs/pt/self-hosted-environments) são executadas em sua própria infraestrutura, onde isolamento, egresso de rede e credenciais git são responsabilidade de sua implantação. Em ambientes hospedados pela Anthropic:

128 128 

129* **Máquinas virtuais isoladas**: Cada sessão em nuvem é executada em uma VM isolada gerenciada pela Anthropic129* **Máquinas virtuais isoladas**: Cada sessão em nuvem é executada em uma VM isolada gerenciada pela Anthropic

130* **Controles de acesso à rede**: O acesso à rede é limitado por padrão e pode ser configurado para ser desabilitado ou permitir apenas domínios específicos130* **Controles de acesso à rede**: O acesso à rede é limitado por padrão e pode ser configurado para ser desabilitado ou permitir apenas domínios específicos


133* **Registro de auditoria**: Todas as operações em sessões em nuvem são registradas para fins de conformidade e auditoria133* **Registro de auditoria**: Todas as operações em sessões em nuvem são registradas para fins de conformidade e auditoria

134* **Limpeza automática**: VMs de sessão são recuperadas após um período de inatividade134* **Limpeza automática**: VMs de sessão são recuperadas após um período de inatividade

135 135 

136Para mais detalhes sobre execução em nuvem, consulte [Claude Code on the web](/docs/pt/claude-code-on-the-web); para configurar o acesso à rede para sessões em nuvem, consulte [Configure cloud environments](/docs/pt/cloud-environments#network-access).136Para mais detalhes sobre execução em nuvem, consulte [Use Claude Code in the cloud](/docs/pt/claude-code-on-the-web); para configurar o acesso à rede para sessões em nuvem, consulte [Configure cloud environments](/docs/pt/cloud-environments#network-access).

137 137 

138[Remote Control](/docs/pt/remote-control) as sessões funcionam de forma diferente: a interface web se conecta a um processo Claude Code em execução em sua máquina local. Toda execução de código e acesso a arquivos permanece local, e o tráfego da sessão viaja através da API Anthropic sobre TLS; enquanto conectado, a transcrição da sessão é armazenada nos servidores Anthropic para sincronizar a conversa entre dispositivos, conforme descrito em [Connection and security](/docs/pt/remote-control#connection-and-security). Nenhuma VM em nuvem ou sandboxing está envolvido. A conexão usa múltiplas credenciais de curta duração e escopo estreito, cada uma limitada a um propósito específico e expirando independentemente, para limitar o raio de explosão de qualquer credencial comprometida.138[Remote Control](/docs/pt/remote-control) as sessões funcionam de forma diferente: a interface web se conecta a um processo Claude Code em execução em sua máquina local. Toda execução de código e acesso a arquivos permanece local, e o tráfego da sessão viaja através da API Anthropic sobre TLS; enquanto conectado, a transcrição da sessão é armazenada nos servidores Anthropic para sincronizar a conversa entre dispositivos, conforme descrito em [Connection and security](/docs/pt/remote-control#connection-and-security). Nenhuma VM em nuvem ou sandboxing está envolvido. A conexão usa múltiplas credenciais de curta duração e escopo estreito, cada uma limitada a um propósito específico e expirando independentemente, para limitar o raio de explosão de qualquer credencial comprometida.

139 139 

Details

34`/plugin` abre um painel interativo e está disponível apenas no CLI do terminal. Se Claude responder que `/plugin` não está disponível neste ambiente, instale de outra forma:34`/plugin` abre um painel interativo e está disponível apenas no CLI do terminal. Se Claude responder que `/plugin` não está disponível neste ambiente, instale de outra forma:

35 35 

36* **Aplicativo Claude desktop, sessão local ou SSH**: abra o [navegador de plugins](/docs/pt/desktop#install-plugins) clicando no botão **+** ao lado do prompt, depois em **Plugins**, depois em **Adicionar plugin**36* **Aplicativo Claude desktop, sessão local ou SSH**: abra o [navegador de plugins](/docs/pt/desktop#install-plugins) clicando no botão **+** ao lado do prompt, depois em **Plugins**, depois em **Adicionar plugin**

37* **Claude Code na web ou uma sessão desktop na nuvem**: declare o plugin em `.claude/settings.json` conforme mostrado em [Ativar em sessões na nuvem](#enable-in-cloud-sessions-and-shared-repositories)37* **Sessões na nuvem**: declare o plugin em `.claude/settings.json` conforme mostrado em [Ativar em sessões na nuvem e repositórios compartilhados](#enable-in-cloud-sessions-and-shared-repositories)

38 38 

39A instalação no terminal solicita um escopo. Escolha escopo de usuário para escrever o plugin em suas configurações de usuário, para que seja carregado em cada nova sessão local que você inicia nesta máquina.39A instalação no terminal solicita um escopo. Escolha escopo de usuário para escrever o plugin em suas configurações de usuário, para que seja carregado em cada nova sessão local que você inicia nesta máquina.

40 40 


49 Ativar em sessões na nuvem e repositórios compartilhados49 Ativar em sessões na nuvem e repositórios compartilhados

50</h3>50</h3>

51 51 

52Plugins com escopo de usuário não são transferidos para [Claude Code na web](/docs/pt/claude-code-on-the-web), porque essas sessões são executadas na nuvem em vez de em sua máquina. Para ativar o plugin lá, ou para ativá-lo para todos que clonam um repositório, declare-o nas configurações verificadas do projeto:52Plugins com escopo de usuário não são transferidos para [sessões na nuvem](/docs/pt/claude-code-on-the-web), porque essas sessões não são executadas em sua máquina. Para ativar o plugin lá, ou para ativá-lo para todos que clonam um repositório, declare-o nas configurações verificadas do projeto:

53 53 

54```json .claude/settings.json theme={null}54```json .claude/settings.json theme={null}

55{55{

Details

10 Ambientes auto-hospedados estão em beta pública nos planos Team e Enterprise e estão desativados por padrão. Consulte [Disponibilidade e limitações](#availability-and-limitations) para o caminho de habilitação e o que está excluído.10 Ambientes auto-hospedados estão em beta pública nos planos Team e Enterprise e estão desativados por padrão. Consulte [Disponibilidade e limitações](#availability-and-limitations) para o caminho de habilitação e o que está excluído.

11</Note>11</Note>

12 12 

13Um ambiente auto-hospedado executa sessões de Claude Code na nuvem em infraestrutura que sua organização opera. Uma [sessão na nuvem](/docs/pt/claude-code-on-the-web) é qualquer sessão que é executada em algum lugar que não seja a máquina do desenvolvedor: os desenvolvedores as iniciam a partir de claude.ai, dos aplicativos móvel e desktop, do terminal com [`claude --cloud`](/docs/pt/claude-code-on-the-web#from-terminal-to-web) e [rotinas agendadas](/docs/pt/routines), e por padrão são executadas na infraestrutura da Anthropic. Em um ambiente auto-hospedado, essas mesmas sessões são executadas dentro de sua rede, e a experiência do desenvolvedor é a mesma, exceto pelas diferenças em [Disponibilidade e limitações](#availability-and-limitations) e os [problemas conhecidos](/docs/pt/self-hosted-environments-deploy#known-issues-and-limitations) da página de implantação.13Um ambiente auto-hospedado executa sessões de Claude Code na nuvem em infraestrutura que sua organização opera. Uma [sessão na nuvem](/docs/pt/claude-code-on-the-web) é qualquer sessão que é executada em algum lugar que não seja a máquina do desenvolvedor: os desenvolvedores as iniciam a partir de claude.ai, dos aplicativos móvel e desktop, do terminal com [`claude --cloud`](/docs/pt/claude-code-on-the-web#from-terminal-to-cloud) e [rotinas agendadas](/docs/pt/routines), e por padrão são executadas na infraestrutura da Anthropic. Em um ambiente auto-hospedado, essas mesmas sessões são executadas dentro de sua rede, e a experiência do desenvolvedor é a mesma, exceto pelas diferenças em [Disponibilidade e limitações](#availability-and-limitations) e os [problemas conhecidos](/docs/pt/self-hosted-environments-deploy#known-issues-and-limitations) da página de implantação.

14 14 

15Se sua equipe não usa sessões na nuvem, não há nada para configurar aqui: sessões em um terminal ou IDE sempre são executadas na máquina do próprio desenvolvedor. Se você deseja executar Claude Code em sua própria máquina sempre ativa e controlá-la a partir de outros dispositivos, use [Controle Remoto](/docs/pt/remote-control), que também está disponível nos planos Pro e Max. Quando estiver pronto para configurar, vá direto para o [guia de início rápido](/docs/pt/self-hosted-environments-quickstart); para revisar a postura de segurança primeiro, comece com [Implantar em produção](/docs/pt/self-hosted-environments-deploy). O resto desta página explica como funciona a auto-hospedagem e quando escolhê-la.15Se sua equipe não usa sessões na nuvem, não há nada para configurar aqui: sessões em um terminal ou IDE sempre são executadas na máquina do próprio desenvolvedor. Se você deseja executar Claude Code em sua própria máquina sempre ativa e controlá-la a partir de outros dispositivos, use [Controle Remoto](/docs/pt/remote-control), que também está disponível nos planos Pro e Max. Quando estiver pronto para configurar, vá direto para o [guia de início rápido](/docs/pt/self-hosted-environments-quickstart); para revisar a postura de segurança primeiro, comece com [Implantar em produção](/docs/pt/self-hosted-environments-deploy). O resto desta página explica como funciona a auto-hospedagem e quando escolhê-la.

16 16 


44 44 

45Verifique estas antes de planejar um lançamento:45Verifique estas antes de planejar um lançamento:

46 46 

47* **Planos**: beta pública para organizações Team e Enterprise. Ambientes auto-hospedados estão desativados por padrão; um [Proprietário](/docs/pt/cloud-environments#organization-shared-environments) ativa **Permitir ambientes auto-hospedados** na [página de administrador **Ambientes na nuvem**](https://claude.ai/admin-settings/cloud-environments), que requer que [Claude Code na web](/docs/pt/claude-code-on-the-web) esteja habilitado para a organização.47* **Planos**: beta pública para organizações Team e Enterprise. Ambientes auto-hospedados estão desativados por padrão; um [Proprietário](/docs/pt/cloud-environments#organization-shared-environments) ativa **Permitir ambientes auto-hospedados** na [página de administrador **Ambientes na nuvem**](https://claude.ai/admin-settings/cloud-environments), que requer que [sessões na nuvem](/docs/pt/claude-code-on-the-web) estejam habilitadas para a organização.

48* **Zero Data Retention**: indisponível para organizações com [Zero Data Retention](/docs/pt/zero-data-retention) habilitado.48* **Zero Data Retention**: indisponível para organizações com [Zero Data Retention](/docs/pt/zero-data-retention) habilitado.

49* **Inferência de modelo**: as sessões usam a API Anthropic, e a inferência não pode ser roteada através de [Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry](/docs/pt/third-party-integrations) ou um [gateway LLM](/docs/pt/llm-gateway).49* **Inferência de modelo**: as sessões usam a API Anthropic, e a inferência não pode ser roteada através de [Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry](/docs/pt/third-party-integrations) ou um [gateway LLM](/docs/pt/llm-gateway).

50* **Superfícies**: sessões iniciadas a partir de [Claude Code na web](/docs/pt/claude-code-on-the-web), dos aplicativos móvel e desktop, [rotinas agendadas](/docs/pt/routines) e do terminal, com [`claude --cloud`](/docs/pt/claude-code-on-the-web#from-terminal-to-web) ou um [despacho `--environment`](/docs/pt/self-hosted-environments-testing#run-the-test-loop), podem ser executadas em ambientes auto-hospedados. Sessões de [Claude Tag](https://claude.com/docs/claude-tag/overview) também podem ser executadas neles, mas Claude ainda não pode usar [Pacotes de acesso](https://claude.com/docs/claude-tag/concepts/glossary#access-bundle) nessas sessões. Sessões de [Claude Security](/docs/pt/claude-security) e [Code Review](/docs/pt/code-review) ainda não são roteadas para eles. O suporte para essas duas superfícies segue separadamente.50* **Superfícies**: sessões iniciadas a partir de [claude.ai/code](https://claude.ai/code), dos aplicativos móvel e desktop, [rotinas agendadas](/docs/pt/routines) e do terminal, com [`claude --cloud`](/docs/pt/claude-code-on-the-web#from-terminal-to-cloud) ou um [despacho `--environment`](/docs/pt/self-hosted-environments-testing#run-the-test-loop), podem ser executadas em ambientes auto-hospedados. Sessões de [Claude Tag](https://claude.com/docs/claude-tag/overview) também podem ser executadas neles, mas Claude ainda não pode usar [Pacotes de acesso](https://claude.com/docs/claude-tag/concepts/glossary#access-bundle) nessas sessões. Sessões de [Claude Security](/docs/pt/claude-security) e [Code Review](/docs/pt/code-review) ainda não são roteadas para eles. O suporte para essas duas superfícies segue separadamente.

51* **Repositórios**: as sessões verificam repositórios do GitHub; consulte [Opções de autenticação do GitHub](/docs/pt/claude-code-on-the-web#github-authentication-options).51* **Repositórios**: as sessões verificam repositórios do GitHub; consulte [Opções de autenticação do GitHub](/docs/pt/claude-code-on-the-web#github-authentication-options).

52* **Faturamento**: as sessões em um ambiente auto-hospedado consomem o uso de Claude Code de sua organização da mesma forma que as sessões em ambientes hospedados pela Anthropic.52* **Faturamento**: as sessões em um ambiente auto-hospedado consomem o uso de Claude Code de sua organização da mesma forma que as sessões em ambientes hospedados pela Anthropic.

53 53 

Details

37| `CLAUDE_CODE_REMOTE_SESSION_ID` | ID da sessão na forma marcada `cse_...`. Esta é a mesma sessão que os [lifecycle hooks](#lifecycle-hooks) veem como `CLAUDE_RUNNER_SESSION_ID` na forma `session_...`; as variáveis UUID correspondem em ambos, e substituir o prefixo `cse_` por `session_` produz o ID mostrado na URL da sessão. |37| `CLAUDE_CODE_REMOTE_SESSION_ID` | ID da sessão na forma marcada `cse_...`. Esta é a mesma sessão que os [lifecycle hooks](#lifecycle-hooks) veem como `CLAUDE_RUNNER_SESSION_ID` na forma `session_...`; as variáveis UUID correspondem em ambos, e substituir o prefixo `cse_` por `session_` produz o ID mostrado na URL da sessão. |

38| `CLAUDE_CODE_REMOTE_SESSION_UUID` | O mesmo ID da sessão na forma UUID canônica, para sistemas que usam UUIDs como chave. |38| `CLAUDE_CODE_REMOTE_SESSION_UUID` | O mesmo ID da sessão na forma UUID canônica, para sistemas que usam UUIDs como chave. |

39| `CLAUDE_SESSION_INGRESS_TOKEN_FILE` | Caminho absoluto para um arquivo por sessão contendo o JWT da sessão atual, mantido atualizado em atualizações de token. Subprocessos shell o leem para seu cabeçalho `Authorization` ao baixar anexos que o usuário adicionou à sessão. `exec` preserva a variável automaticamente; um wrapper que reconstrói o ambiente do filho deve levar a variável, ou downloads de anexos param silenciosamente de funcionar. |39| `CLAUDE_SESSION_INGRESS_TOKEN_FILE` | Caminho absoluto para um arquivo por sessão contendo o JWT da sessão atual, mantido atualizado em atualizações de token. Subprocessos shell o leem para seu cabeçalho `Authorization` ao baixar anexos que o usuário adicionou à sessão. `exec` preserva a variável automaticamente; um wrapper que reconstrói o ambiente do filho deve levar a variável, ou downloads de anexos param silenciosamente de funcionar. |

40| `CLAUDE_CONFIG_DIR` | Diretório de configuração Claude por sessão, escrito no início da sessão a partir do snapshot da configuração do host do runner que o runner captura na inicialização; consulte [Permissions and tool approval](#permissions-and-tool-approval). Escritas aqui são isoladas para esta sessão. |40| `CLAUDE_CONFIG_DIR` | Diretório de configuração Claude por sessão, escrito no início da sessão a partir do snapshot da configuração do host do runner que o runner captura na inicialização; consulte [Permissions and tool approval](#permissions-and-tool-approval). Escritas aqui são isoladas para esta sessão. O diretório fica sob `<base-dir>/_sessions/` após o término da sessão, a menos que você inicie o runner com [`--remove-session-state`](/docs/pt/self-hosted-environments-reference#runner-cli-flags); consulte [Reuse a pre-warmed checkout](/docs/pt/self-hosted-environments-deploy#reuse-a-pre-warmed-checkout). |

41| `ANTHROPIC_BASE_URL` | A URL base da API que o filho usará, entregue pelo plano de controle por sessão e normalmente `https://api.anthropic.com`. Não a substitua: a credencial de inferência da sessão é um token OAuth emitido pela Anthropic que outros provedores não aceitam, então a inferência em ambientes auto-hospedados não é roteável para outro lugar. |41| `ANTHROPIC_BASE_URL` | A URL base da API que o filho usará, entregue pelo plano de controle por sessão e normalmente `https://api.anthropic.com`. Não a substitua: a credencial de inferência da sessão é um token OAuth emitido pela Anthropic que outros provedores não aceitam, então a inferência em ambientes auto-hospedados não é roteável para outro lugar. |

42| `CLAUDE_CODE_OAUTH_TOKEN` | O token de acesso OAuth de curta duração que o filho usa para inferência de modelo, com escopo apenas para inferência de modelo e upload de arquivo, com uma vida útil de cerca de 30 minutos. O runner o re-emite antes da expiração e entrega a rotação pela stdin do filho, então um wrapper que não [mantém stdin anexado](#keep-stdin-and-file-descriptor-3-attached) vê apenas o valor inicial. Não confie na lista de permissões de IP da sua organização para limitar o uso deste token: trate-o como uma credencial de portador que permanece utilizável por aproximadamente 30 minutos se vazar, e não o registre, escreva em disco ou encaminhe para fora do contêiner da sessão. |42| `CLAUDE_CODE_OAUTH_TOKEN` | O token de acesso OAuth de curta duração que o filho usa para inferência de modelo, com escopo apenas para inferência de modelo e upload de arquivo, com uma vida útil de cerca de 30 minutos. O runner o re-emite antes da expiração e entrega a rotação pela stdin do filho, então um wrapper que não [mantém stdin anexado](#keep-stdin-and-file-descriptor-3-attached) vê apenas o valor inicial. Não confie na lista de permissões de IP da sua organização para limitar o uso deste token: trate-o como uma credencial de portador que permanece utilizável por aproximadamente 30 minutos se vazar, e não o registre, escreva em disco ou encaminhe para fora do contêiner da sessão. |

43 43 


407 How each session's config is assembled407 How each session's config is assembled

408</h3>408</h3>

409 409 

410O runner dá a cada sessão seu próprio diretório de configuração, semeado de um snapshot em memória do `~/.claude/` do host que o runner captura uma vez na inicialização: `settings.json`, `CLAUDE.md`, hooks, agentes, comandos e skills em sua imagem do runner se aplicam a cada sessão como a linha de base de nível de usuário. Como o snapshot é tirado na inicialização, mudanças de configuração em um host em execução têm efeito apenas após uma reinicialização do runner. Defina `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` para semear de um caminho diferente, ou aponte-o para um diretório vazio para desabilitar a semeadura.410O runner dá a cada sessão seu próprio diretório de configuração, semeado de um snapshot do `~/.claude/` do host que o runner captura uma vez na inicialização: `settings.json`, `CLAUDE.md`, hooks, agentes, comandos e skills em sua imagem do runner se aplicam a cada sessão como a linha de base de nível de usuário. Se você alterar a configuração em um host em execução, a alteração tem efeito apenas após reiniciar o runner.

411 

412Defina `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` para semear de um caminho diferente, ou aponte-o para um diretório vazio para desabilitar a semeadura.

411 413 

412`.claude/settings.json` confirmado no repositório se sobrepõe como configurações de projeto. Sessões também leem [`managed-settings.json`](/docs/pt/settings#where-settings-live) do caminho de sistema padrão em sua imagem do runner. Se suas chaves se aplicam ao lado de [server-managed settings](/docs/pt/server-managed-settings) segue [como Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#how-claude-code-combines-managed-sources): por padrão, quando sua organização entrega quaisquer chaves gerenciadas pelo servidor, sessões ignoram o arquivo da imagem do runner além das [chaves que Claude Code lê de cada fonte de administrador](/docs/pt/managed-settings#keys-read-from-every-admin-source), como o bloco `env`, os locks de sandbox, os caminhos binários de sandbox e `forceRemoteSettingsRefresh`. Consulte [settings precedence](/docs/pt/settings#settings-precedence).414`.claude/settings.json` confirmado no repositório se sobrepõe como configurações de projeto. Sessões também leem [`managed-settings.json`](/docs/pt/settings#where-settings-live) do caminho de sistema padrão em sua imagem do runner. Se suas chaves se aplicam ao lado de [server-managed settings](/docs/pt/server-managed-settings) segue [como Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#how-claude-code-combines-managed-sources): por padrão, quando sua organização entrega quaisquer chaves gerenciadas pelo servidor, sessões ignoram o arquivo da imagem do runner além das [chaves que Claude Code lê de cada fonte de administrador](/docs/pt/managed-settings#keys-read-from-every-admin-source), como o bloco `env`, os locks de sandbox, os caminhos binários de sandbox e `forceRemoteSettingsRefresh`. Consulte [settings precedence](/docs/pt/settings#settings-precedence).

413 415 

Details

434 434 

435* **Qualquer forma de clone funciona**: um clone completo, raso, ou de um único branch no caminho é usado como está. O runner nunca passa `--depth` ao buscar em um clone existente, então um pré-aquecimento completo mantém seu histórico completo e um raso permanece raso. `CLAUDE_RUNNER_FETCH_DEPTH` (`full`, `0`, ou um número; padrão 50) controla apenas o clone frio que o runner faz quando nenhum clone existe ainda.435* **Qualquer forma de clone funciona**: um clone completo, raso, ou de um único branch no caminho é usado como está. O runner nunca passa `--depth` ao buscar em um clone existente, então um pré-aquecimento completo mantém seu histórico completo e um raso permanece raso. `CLAUDE_RUNNER_FETCH_DEPTH` (`full`, `0`, ou um número; padrão 50) controla apenas o clone frio que o runner faz quando nenhum clone existe ainda.

436* **Mudanças rastreadas redefinem, arquivos não rastreados persistem**: cada sessão começa a partir de uma redefinição dura que limpa as modificações rastreadas da sessão anterior, mas o runner nunca executa `git clean`, então arquivos não rastreados das sessões anteriores do owner bloqueado permanecem na árvore.436* **Mudanças rastreadas redefinem, arquivos não rastreados persistem**: cada sessão começa a partir de uma redefinição dura que limpa as modificações rastreadas da sessão anterior, mas o runner nunca executa `git clean`, então arquivos não rastreados das sessões anteriores do owner bloqueado permanecem na árvore.

437* **Diretórios por sessão também persistem**: ao lado do checkout, o runner cria entradas por sessão sob `<base-dir>/_sessions/` para cada sessão que executa. O diretório de configuração Claude da sessão contém uma cópia local da transcrição da conversa. Ao lado dele ficam os arquivos carregados da sessão, quando a sessão tem algum. O diretório da sessão também fica lá: ele contém quaisquer worktrees por sessão e checkouts do hook `checkout` enquanto a sessão é executada, e mantém tudo mais que Claude escreveu nele.

438 

439 Por padrão, o runner deixa esses em vigor quando a sessão termina, então em um disco que sobrevive ao processo do runner eles se acumulam. Cada sessão é executada como o próprio usuário do runner, então qualquer sessão posterior que o disco servir pode lê-los. Se você manter um `--base-dir` persistente, dimensione o volume para esse crescimento. O mesmo se aplica a qualquer configuração que reinicie o runner no mesmo sistema de arquivos, incluindo a [receita Docker Compose](#docker-compose).

440* **Com `--remove-session-state`, diretórios por sessão não persistem**: inicie o runner com [`--remove-session-state`](/docs/pt/self-hosted-environments-reference#runner-cli-flags) para que ele delete os diretórios por sessão de cada sessão conforme a sessão termina. A exclusão é do melhor esforço: os diretórios permanecem quando o runner é morto antes de sua limpeza ser executada. O clone canônico e arquivos que uma sessão escreveu em outro lugar no host, como o diretório temporário, permanecem independentemente.

437* **Com o proxy git, a redefinição se torna um checkout**: com [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy), o runner sanitiza o `.git/` do clone antes de cada sessão, mantendo o armazenamento de objetos, refs, e estado raso, mas deletando o índice, então cada sessão paga um checkout de árvore de trabalho completo em vez de uma redefinição quase instantânea; ainda nunca re-clona. Pré-aquecimentos de submódulo não são suportados sob o proxy.441* **Com o proxy git, a redefinição se torna um checkout**: com [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy), o runner sanitiza o `.git/` do clone antes de cada sessão, mantendo o armazenamento de objetos, refs, e estado raso, mas deletando o índice, então cada sessão paga um checkout de árvore de trabalho completo em vez de uma redefinição quase instantânea; ainda nunca re-clona. Pré-aquecimentos de submódulo não são suportados sob o proxy.

438* **Clones longos não precisam de workaround**: o runner limita cada operação git com um watchdog de 120 segundos sem progresso e um limite duro de 30 minutos, não um tempo limite fixo, então um clone frio lento que continua relatando progresso é concluído.442* **Clones longos não precisam de workaround**: o runner limita cada operação git com um watchdog de 120 segundos sem progresso e um limite duro de 30 minutos, não um tempo limite fixo, então um clone frio lento que continua relatando progresso é concluído.

439 443 


530* **Sessions take minutes to start**: o clone inicial geralmente domina. Observe a métrica `claude_code_self_hosted_runner_session_init_duration_seconds` [metric](/docs/pt/self-hosted-environments-reference#prometheus-metrics) para confirmar e corte o clone com um [pre-warmed checkout](#reuse-a-pre-warmed-checkout) ou um `CLAUDE_RUNNER_FETCH_DEPTH` menor.534* **Sessions take minutes to start**: o clone inicial geralmente domina. Observe a métrica `claude_code_self_hosted_runner_session_init_duration_seconds` [metric](/docs/pt/self-hosted-environments-reference#prometheus-metrics) para confirmar e corte o clone com um [pre-warmed checkout](#reuse-a-pre-warmed-checkout) ou um `CLAUDE_RUNNER_FETCH_DEPTH` menor.

531* **Pod is killed mid-drain**: aumente `terminationGracePeriodSeconds` para pelo menos o valor que o runner registra na inicialização. Consulte [Shutdown timing](#shutdown-timing).535* **Pod is killed mid-drain**: aumente `terminationGracePeriodSeconds` para pelo menos o valor que o runner registra na inicialização. Consulte [Shutdown timing](#shutdown-timing).

532 536 

533Depois que o logging é inicializado, o runner escreve seu log de ciclo de vida, incluindo linhas `[runner:fatal]`, para stdout, e saída de depuração para stderr, tudo como linhas de texto simples em vez de JSON. As falhas de inicialização descritas nas entradas de troubleshooting acima são impressas em stderr antes desse ponto. Capture ambos os fluxos com `--log-file`, que também permite que `self-hosted-runner doctor` os acompanhe, ou com a coleta de logs da sua plataforma. O processo filho de cada sessão escreve um log de depuração separado. Em caso de falha, o runner preserva o log, imprime o caminho do log no log do runner e exibe a cauda do log junto com a sessão em claude.ai/code.537Depois que o logging é inicializado, o runner escreve seu log de ciclo de vida, incluindo linhas `[runner:fatal]`, para stdout, e saída de depuração para stderr, tudo como linhas de texto simples em vez de JSON. As falhas de inicialização descritas nas entradas de troubleshooting acima são impressas em stderr antes desse ponto. Capture ambos os fluxos com `--log-file`, que também permite que `self-hosted-runner doctor` os acompanhe, ou com a coleta de logs da sua plataforma.

538 

539O processo filho de cada sessão escreve um log de depuração separado. Em caso de falha, o runner exibe a cauda do log junto com a sessão em claude.ai/code. A menos que você tenha iniciado o runner com [`--remove-session-state`](/docs/pt/self-hosted-environments-reference#runner-cli-flags), ele também mantém o log de uma sessão com falha no disco e imprime seu caminho no log do runner.

534 540 

535<h2 id="what’s-next">541<h2 id="what’s-next">

536 O que vem a seguir542 O que vem a seguir

Details

31| `--debug-token-dir <path>` | `SELF_HOSTED_RUNNER_DEBUG_TOKEN_DIR` | não definido | Escreva tokens ao vivo em disco para inspeção. Apenas depuração; não use em produção. |31| `--debug-token-dir <path>` | `SELF_HOSTED_RUNNER_DEBUG_TOKEN_DIR` | não definido | Escreva tokens ao vivo em disco para inspeção. Apenas depuração; não use em produção. |

32| `--defer-shutdown-max-min <n>` | `SELF_HOSTED_RUNNER_DEFER_SHUTDOWN_MAX_MS` | `0` | No primeiro `SIGTERM` ou `SIGINT`, continue servindo as sessões já anexadas em vez de drená-las, depois libere o que ainda estiver anexado N minutos depois e saia. Aumente o tempo limite de parada do seu host antes de definir isso. Consulte [Defer the drain past the first signal](/docs/pt/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal). `0` desabilita. Requer Claude Code v2.1.238 ou posterior. |32| `--defer-shutdown-max-min <n>` | `SELF_HOSTED_RUNNER_DEFER_SHUTDOWN_MAX_MS` | `0` | No primeiro `SIGTERM` ou `SIGINT`, continue servindo as sessões já anexadas em vez de drená-las, depois libere o que ainda estiver anexado N minutos depois e saia. Aumente o tempo limite de parada do seu host antes de definir isso. Consulte [Defer the drain past the first signal](/docs/pt/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal). `0` desabilita. Requer Claude Code v2.1.238 ou posterior. |

33| `--drain-grace-sec <n>` | `SELF_HOSTED_RUNNER_DRAIN_GRACE_MS` | `0` | Até o executor receber um sinal de desligamento ou atingir seu tempo de aposentadoria, controla quando o executor sai após suas sessões ativas terminarem: `0` sai imediatamente sem pesquisar mais, e um valor positivo mantém o executor vivo e re-pesquisando a fila do proprietário bloqueado por muitos segundos primeiro, ao custo do isolamento de contêiner por sessão descrito na [seção de endurecimento](/docs/pt/self-hosted-environments-deploy#harden-your-deployment). Após um primeiro sinal que você adiou com [`--defer-shutdown-max-min`](/docs/pt/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal), o executor sai assim que não mantém sessões, seja qual for o que você definir aqui. |33| `--drain-grace-sec <n>` | `SELF_HOSTED_RUNNER_DRAIN_GRACE_MS` | `0` | Até o executor receber um sinal de desligamento ou atingir seu tempo de aposentadoria, controla quando o executor sai após suas sessões ativas terminarem: `0` sai imediatamente sem pesquisar mais, e um valor positivo mantém o executor vivo e re-pesquisando a fila do proprietário bloqueado por muitos segundos primeiro, ao custo do isolamento de contêiner por sessão descrito na [seção de endurecimento](/docs/pt/self-hosted-environments-deploy#harden-your-deployment). Após um primeiro sinal que você adiou com [`--defer-shutdown-max-min`](/docs/pt/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal), o executor sai assim que não mantém sessões, seja qual for o que você definir aqui. |

34| `--drain-marker-file <path>` | `SELF_HOSTED_RUNNER_DRAIN_MARKER_FILE` | não definido | Arquivo marcador que seu host escreve para anunciar uma drenagem graciosa antes de enviar `SIGTERM`. Quando o arquivo existe quando a drenagem começa, o executor relata sua saída para Anthropic como uma drenagem de host em vez de um sinal de desligamento simples. A drenagem em si, incluindo a espera `--drain-wait-sec`, funciona da mesma forma que sem o sinalizador. Nomeie um caminho em um sistema de arquivos local que as sessões não possam escrever. Requer Claude Code v2.1.271 ou posterior. |

34| `--drain-wait-sec <n>` | `SELF_HOSTED_RUNNER_DRAIN_WAIT_MS` | `0` | Uma vez que a drenagem começa, que é em `SIGTERM` a menos que você defina [`--defer-shutdown-max-min`](/docs/pt/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal), aguarde até N segundos para que cada turno em voo da sessão e tarefas em segundo plano terminem antes de encerrar o filho. Durante esta espera, o executor conta uma tarefa em segundo plano que acabou de terminar como ainda em execução até o turno de acompanhamento que lê seu resultado começar, por no máximo a janela [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings). |35| `--drain-wait-sec <n>` | `SELF_HOSTED_RUNNER_DRAIN_WAIT_MS` | `0` | Uma vez que a drenagem começa, que é em `SIGTERM` a menos que você defina [`--defer-shutdown-max-min`](/docs/pt/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal), aguarde até N segundos para que cada turno em voo da sessão e tarefas em segundo plano terminem antes de encerrar o filho. Durante esta espera, o executor conta uma tarefa em segundo plano que acabou de terminar como ainda em execução até o turno de acompanhamento que lê seu resultado começar, por no máximo a janela [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings). |

35| `--environment-secret-file <path>` | `SELF_HOSTED_RUNNER_ENVIRONMENT_SECRET` | obrigatório | Caminho para um arquivo contendo o segredo do ambiente, ou, para executores gerados pelo [orquestrador](/docs/pt/self-hosted-environments-configuration#on-demand-runners), o JWT de ordem de trabalho de uso único. `SELF_HOSTED_RUNNER_ENVIRONMENT_SECRET` carrega o valor secreto diretamente, não um caminho de arquivo. O sinalizador `--pool-secret-file` mais antigo e a variável `SELF_HOSTED_RUNNER_POOL_SECRET` ainda funcionam e imprimem um aviso de descontinuação para stderr; compilações de executor do programa de visualização mais antigas que 2.1.216 reconhecem apenas esses nomes mais antigos. |36| `--environment-secret-file <path>` | `SELF_HOSTED_RUNNER_ENVIRONMENT_SECRET` | obrigatório | Caminho para um arquivo contendo o segredo do ambiente, ou, para executores gerados pelo [orquestrador](/docs/pt/self-hosted-environments-configuration#on-demand-runners), o JWT de ordem de trabalho de uso único. `SELF_HOSTED_RUNNER_ENVIRONMENT_SECRET` carrega o valor secreto diretamente, não um caminho de arquivo. O sinalizador `--pool-secret-file` mais antigo e a variável `SELF_HOSTED_RUNNER_POOL_SECRET` ainda funcionam e imprimem um aviso de descontinuação para stderr; compilações de executor do programa de visualização mais antigas que 2.1.216 reconhecem apenas esses nomes mais antigos. |

36| `--exec-path <path>` | `SELF_HOSTED_RUNNER_EXEC_PATH` | binário próprio | Binário ou script wrapper para gerar para cada sessão. Consulte [Wrapper scripts](/docs/pt/self-hosted-environments-configuration#wrapper-scripts). |37| `--exec-path <path>` | `SELF_HOSTED_RUNNER_EXEC_PATH` | binário próprio | Binário ou script wrapper para gerar para cada sessão. Consulte [Wrapper scripts](/docs/pt/self-hosted-environments-configuration#wrapper-scripts). |


39| `--git-ssh-rewrite <host>` | nenhum | não definido | Reescreva URLs de origem `https://<host>/...` para `git@<host>:...` antes de clonar, para hosts git somente SSH. Repetível; apenas sinalizador. |40| `--git-ssh-rewrite <host>` | nenhum | não definido | Reescreva URLs de origem `https://<host>/...` para `git@<host>:...` antes de clonar, para hosts git somente SSH. Repetível; apenas sinalizador. |

40| `--health-port <port>` | `SELF_HOSTED_RUNNER_HEALTH_PORT` | `8080` | Porta para o ouvinte `/healthz` e `/metrics`. Defina `0` para desabilitar. |41| `--health-port <port>` | `SELF_HOSTED_RUNNER_HEALTH_PORT` | `8080` | Porta para o ouvinte `/healthz` e `/metrics`. Defina `0` para desabilitar. |

41| `--hooks-dir <path>` | `SELF_HOSTED_RUNNER_HOOKS_DIR` | não definido | Diretório de scripts de hook de ciclo de vida. Consulte [Lifecycle hooks](/docs/pt/self-hosted-environments-configuration#lifecycle-hooks). |42| `--hooks-dir <path>` | `SELF_HOSTED_RUNNER_HOOKS_DIR` | não definido | Diretório de scripts de hook de ciclo de vida. Consulte [Lifecycle hooks](/docs/pt/self-hosted-environments-configuration#lifecycle-hooks). |

43| `--host-config-snapshot <mode>` | `SELF_HOSTED_RUNNER_HOST_CONFIG_SNAPSHOT` | `disk` | Onde o executor mantém o snapshot de inicialização do [diretório de configuração do host](#environment-variable-only-settings) que semeia cada sessão a partir de. `disk` copia o snapshot para um diretório de propriedade do executor sob `--base-dir` e, no início de cada sessão, verifica cada arquivo contra um resumo na memória. Se um arquivo na cópia foi modificado, a sessão falha e o executor recusa sessões até você reiniciá-lo. `memory` mantém todo o snapshot no heap, limitado a 64 MiB; acima do limite, as sessões começam sem configuração de host e mostram um aviso dizendo isso. Quando o executor não consegue escrever o snapshot de disco, ele registra a falha e usa `memory` para essa execução. Requer Claude Code v2.1.271 ou posterior. |

42| `--kill-session-after-min <n>` | `SELF_HOSTED_RUNNER_MAX_LIFETIME_MS` | `0` | Limite uma sessão a N minutos de tempo real, como um limite de segurança para sessões presas. Na v2.1.260 ou posterior, o executor libera uma sessão que atinge o limite para que possa retomar na próxima mensagem do usuário, e a encerra apenas se ainda estiver no executor quando a janela de graça [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](#environment-variable-only-settings) terminar. Antes da v2.1.260, o executor encerrava a sessão no limite. Consulte [Some sessions don't count as idle](/docs/pt/self-hosted-environments-deploy#some-sessions-don%E2%80%99t-count-as-idle) para os detalhes e como escolher um valor. `0` desabilita. |44| `--kill-session-after-min <n>` | `SELF_HOSTED_RUNNER_MAX_LIFETIME_MS` | `0` | Limite uma sessão a N minutos de tempo real, como um limite de segurança para sessões presas. Na v2.1.260 ou posterior, o executor libera uma sessão que atinge o limite para que possa retomar na próxima mensagem do usuário, e a encerra apenas se ainda estiver no executor quando a janela de graça [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](#environment-variable-only-settings) terminar. Antes da v2.1.260, o executor encerrava a sessão no limite. Consulte [Some sessions don't count as idle](/docs/pt/self-hosted-environments-deploy#some-sessions-don%E2%80%99t-count-as-idle) para os detalhes e como escolher um valor. `0` desabilita. |

43| `--lock-to-account <id>` | `SELF_HOSTED_RUNNER_LOCK_TO_ACCOUNT` | não definido | Pré-bloqueie o executor para uma conta específica na inicialização em vez de bloquear na primeira sessão. Aceita um endereço de email ou ID `user_...` na organização do ambiente. Um executor pré-bloqueado nunca pega sessões de canal Claude Tag, que não têm conta. |45| `--lock-to-account <id>` | `SELF_HOSTED_RUNNER_LOCK_TO_ACCOUNT` | não definido | Pré-bloqueie o executor para uma conta específica na inicialização em vez de bloquear na primeira sessão. Aceita um endereço de email ou ID `user_...` na organização do ambiente. Um executor pré-bloqueado nunca pega sessões de canal Claude Tag, que não têm conta. |

44| `--log-file <path>` | `SELF_HOSTED_RUNNER_LOG_FILE` | não definido | Espelhe logs do executor para um arquivo além de stdout e stderr, criado com permissões `0600`. Obrigatório para `self-hosted-runner doctor` rastrear logs localmente. |46| `--log-file <path>` | `SELF_HOSTED_RUNNER_LOG_FILE` | não definido | Espelhe logs do executor para um arquivo além de stdout e stderr, criado com permissões `0600`. Obrigatório para `self-hosted-runner doctor` rastrear logs localmente. |


48| `--proxy-authorization-file <path>` | `SELF_HOSTED_RUNNER_PROXY_AUTHORIZATION_FILE` | não definido | Arquivo que o executor lê para cada conexão com seu proxy de saída, usando seu conteúdo aparado como o valor do cabeçalho `Proxy-Authorization`. Use este sinalizador para um token que outro processo rotaciona no lugar. Carrega os mesmos requisitos que `--proxy-authorization-command`, e não pode ser combinado com ele. Consulte [Authenticate to an egress proxy](/docs/pt/self-hosted-environments-deploy#authenticate-to-an-egress-proxy). Requer Claude Code v2.1.238 ou posterior. |50| `--proxy-authorization-file <path>` | `SELF_HOSTED_RUNNER_PROXY_AUTHORIZATION_FILE` | não definido | Arquivo que o executor lê para cada conexão com seu proxy de saída, usando seu conteúdo aparado como o valor do cabeçalho `Proxy-Authorization`. Use este sinalizador para um token que outro processo rotaciona no lugar. Carrega os mesmos requisitos que `--proxy-authorization-command`, e não pode ser combinado com ele. Consulte [Authenticate to an egress proxy](/docs/pt/self-hosted-environments-deploy#authenticate-to-an-egress-proxy). Requer Claude Code v2.1.238 ou posterior. |

49| `--push-outcome-on-release` | `SELF_HOSTED_RUNNER_PUSH_OUTCOME_ON_RELEASE` | desligado | No final de uma sessão iniciada pelo executor, como uma drenagem ou liberação ociosa, envie branches de resultado rastreados para `origin` antes de excluir o workspace, para que commits em voo sobrevivam a um reinício. Melhor esforço; adiciona 30 segundos ao orçamento de desligamento, e requer git 2.29 ou mais recente para retomar do branch enviado. Restrinja o acesso de envio para refs `claude/*` antes de habilitar; consulte [Resumed sessions lose unpushed work](/docs/pt/self-hosted-environments-deploy#additional-limitations). Repositórios verificados via um hook de ciclo de vida `checkout` não são enviados; faça snapshot deles do hook [`post-session`](/docs/pt/self-hosted-environments-configuration#post-session) em vez disso. |51| `--push-outcome-on-release` | `SELF_HOSTED_RUNNER_PUSH_OUTCOME_ON_RELEASE` | desligado | No final de uma sessão iniciada pelo executor, como uma drenagem ou liberação ociosa, envie branches de resultado rastreados para `origin` antes de excluir o workspace, para que commits em voo sobrevivam a um reinício. Melhor esforço; adiciona 30 segundos ao orçamento de desligamento, e requer git 2.29 ou mais recente para retomar do branch enviado. Restrinja o acesso de envio para refs `claude/*` antes de habilitar; consulte [Resumed sessions lose unpushed work](/docs/pt/self-hosted-environments-deploy#additional-limitations). Repositórios verificados via um hook de ciclo de vida `checkout` não são enviados; faça snapshot deles do hook [`post-session`](/docs/pt/self-hosted-environments-configuration#post-session) em vez disso. |

50| `--release-idle-session-min <n>` | `SELF_HOSTED_RUNNER_SESSION_IDLE_MS` | `0` | Libere um slot de sessão após N minutos de inatividade uma vez que um turno termine ou a sessão aguarde a ação do usuário. Uma sessão que ainda está no meio de um turno, incluindo uma que mantém uma tarefa em segundo plano que nunca termina ou uma aprovação solicitada de dentro de uma chamada de ferramenta em execução, não conta como ociosa; emparelhe com `--kill-session-after-min` como o backstop duro. Após a tarefa em segundo plano de uma sessão terminar, o executor considera a sessão ocupada até o turno de acompanhamento que lê o resultado começar, por no máximo a janela [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings). Até o executor receber um sinal de desligamento ou atingir seu tempo de aposentadoria, uma liberação que deixa o executor sem sessões ativas inicia o mesmo caminho de saída que uma drenagem normal, governada por `--drain-grace-sec`. Após um primeiro sinal que você adiou com [`--defer-shutdown-max-min`](/docs/pt/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal), o executor sai assim que uma liberação o deixa sem sessões. `0` desabilita. |52| `--release-idle-session-min <n>` | `SELF_HOSTED_RUNNER_SESSION_IDLE_MS` | `0` | Libere um slot de sessão após N minutos de inatividade uma vez que um turno termine ou a sessão aguarde a ação do usuário. Uma sessão que ainda está no meio de um turno, incluindo uma que mantém uma tarefa em segundo plano que nunca termina ou uma aprovação solicitada de dentro de uma chamada de ferramenta em execução, não conta como ociosa; emparelhe com `--kill-session-after-min` como o backstop duro. Após a tarefa em segundo plano de uma sessão terminar, o executor considera a sessão ocupada até o turno de acompanhamento que lê o resultado começar, por no máximo a janela [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings). Até o executor receber um sinal de desligamento ou atingir seu tempo de aposentadoria, uma liberação que deixa o executor sem sessões ativas inicia o mesmo caminho de saída que uma drenagem normal, governada por `--drain-grace-sec`. Após um primeiro sinal que você adiou com [`--defer-shutdown-max-min`](/docs/pt/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal), o executor sai assim que uma liberação o deixa sem sessões. `0` desabilita. |

53| `--remove-session-state [bool]` | `SELF_HOSTED_RUNNER_REMOVE_SESSION_STATE` | desligado | Remova os diretórios por sessão de uma sessão sob `<base-dir>/_sessions/` quando a sessão terminar neste executor, seja qual for o resultado. [Reuse a pre-warmed checkout](/docs/pt/self-hosted-environments-deploy#reuse-a-pre-warmed-checkout) descreve o que eles contêm e quem pode lê-los quando permanecem. A remoção é melhor esforço: os diretórios por sessão permanecem no lugar quando o executor é morto ou atinge seu prazo de drenagem antes da limpeza ser executada. Com o sinalizador ativado, o log de depuração de uma sessão falhada ou interrompida não é mantido em disco. Requer Claude Code v2.1.268 ou posterior. |

51| `--retire-at <epoch-seconds>` | `SELF_HOSTED_RUNNER_RETIRE_AT` | não definido | Aposentar o executor em um timestamp Unix absoluto em segundos, para infraestrutura que mata o executor em um tempo conhecido; [Runner lifecycle](/docs/pt/self-hosted-environments#runner-lifecycle) descreve a sequência de liberação e como dimensionar a margem. Valores antes de 2001 ou após o ano 5138 são rejeitados pelo sinalizador e ignorados pela variável de ambiente. |54| `--retire-at <epoch-seconds>` | `SELF_HOSTED_RUNNER_RETIRE_AT` | não definido | Aposentar o executor em um timestamp Unix absoluto em segundos, para infraestrutura que mata o executor em um tempo conhecido; [Runner lifecycle](/docs/pt/self-hosted-environments#runner-lifecycle) descreve a sequência de liberação e como dimensionar a margem. Valores antes de 2001 ou após o ano 5138 são rejeitados pelo sinalizador e ignorados pela variável de ambiente. |

52| `--session-stop-grace-sec <n>` | `SELF_HOSTED_RUNNER_SESSION_STOP_GRACE_MS` | `5` | Quanto tempo aguardar para que o processo Claude saia limpo após uma sessão terminar, antes de forçar o encerramento. Aumente o valor se os hooks `SessionEnd` do próprio filho precisarem de mais tempo. |55| `--session-stop-grace-sec <n>` | `SELF_HOSTED_RUNNER_SESSION_STOP_GRACE_MS` | `5` | Quanto tempo aguardar para que o processo Claude saia limpo após uma sessão terminar, antes de forçar o encerramento. Aumente o valor se os hooks `SessionEnd` do próprio filho precisarem de mais tempo. |

53| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | Libere um slot de sessão se o filho não tiver sinalizado que inicializou dentro de N minutos de geração. Limpo pelo sinal de inicialização do filho no [canal de atividade](/docs/pt/self-hosted-environments-configuration#keep-stdin-and-file-descriptor-3-attached), não por saída ordinária, após o qual `--release-idle-session-min` assume. `0` desabilita. |56| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | Libere um slot de sessão se o filho não tiver sinalizado que inicializou dentro de N minutos de geração. Limpo pelo sinal de inicialização do filho no [canal de atividade](/docs/pt/self-hosted-environments-configuration#keep-stdin-and-file-descriptor-3-attached), não por saída ordinária, após o qual `--release-idle-session-min` assume. `0` desabilita. |

Details

74 Antes de iniciar o runner74 Antes de iniciar o runner

75</h3>75</h3>

76 76 

77Duas coisas das quais o hook depende:77O hook tem estes requisitos:

78 78 

79* Instale-o antes de iniciar o runner. O runner captura `~/.claude/` uma vez na inicialização, portanto um hook adicionado a um runner em execução entra em vigor apenas após uma reinicialização.79* Instale-o antes de iniciar o runner. O runner captura `~/.claude/` uma vez na inicialização, portanto um hook adicionado a um runner em execução entra em vigor apenas após uma reinicialização.

80* Exporte `E2E_REPLY_DIR` para o processo do runner. O hook é uma operação nula quando a variável não está definida ou o diretório não existe, portanto defina-a onde você inicia o runner, como a unidade systemd, especificação de pod ou etapa de CI. O script de teste abaixo também o requer.80* Exporte `E2E_REPLY_DIR` para o processo do runner. O hook é uma operação nula quando a variável não está definida ou o diretório não existe, portanto defina-a onde você inicia o runner, como a unidade systemd, especificação de pod ou etapa de CI. O script de teste abaixo também o requer.

Details

165 165 

166Três tipos de chaves são exceções à regra de não mesclagem:166Três tipos de chaves são exceções à regra de não mesclagem:

167 167 

168* **Chaves de bloqueio entre fontes**: um pequeno conjunto de chaves, como os bloqueios da lista de permissão de sandbox, [listadas na página de configurações gerenciadas](/docs/pt/managed-settings#precedence-within-the-managed-tier). O Claude Code as honra quando qualquer fonte gerenciada controlada por administrador as define; o nível de registro HKCU gravável pelo usuário é excluído. Quando um [`policyHelper`](/docs/pt/settings-reference#policyhelper) fornece configurações gerenciadas, sua saída é a única fonte que essas verificações leem, exceto por [`forceRemoteSettingsRefresh`](/docs/pt/settings-reference#forceremotesettingsrefresh), que o Claude Code lê das fontes de administrador diretamente na inicialização.168* **Chaves de bloqueio entre fontes**: um pequeno conjunto de chaves, como os bloqueios da lista de permissão de sandbox, [listadas na página de configurações gerenciadas](/docs/pt/managed-settings#precedence-within-the-managed-tier). O Claude Code as honra quando qualquer fonte gerenciada controlada por administrador as define; o nível de registro HKCU gravável pelo usuário é excluído.

169 

170 Quando um [`policyHelper`](/docs/pt/settings-reference#policyhelper) fornece configurações gerenciadas, sua saída é a única fonte que essas verificações leem, exceto por [`forceRemoteSettingsRefresh`](/docs/pt/settings-reference#forceremotesettingsrefresh), que o Claude Code lê das fontes de administrador diretamente na inicialização.

169* **O bloco `env`**: além da unidade de telemetria e variáveis de roteamento emparelhadas com uma chave de credencial, ambas cobertas abaixo, ele se mescla por chave entre as fontes controladas por administrador. Para cada variável de ambiente, a fonte de prioridade mais alta que a define vence, e as fontes de administrador inferiores preenchem variáveis que as fontes superiores deixam não definidas. Uma entrada `env` gerenciada pelo endpoint, portanto, se aplica sempre que a configuração gerenciada pelo servidor deixa essa variável não definida, ou enquanto um valor de servidor em cache para ela é [retido pendente de confirmação do servidor](#fetch-and-caching-behavior). Requer Claude Code v2.1.223 ou posterior. Antes da v2.1.223, o Claude Code aplica apenas o bloco `env` da fonte selecionada.171* **O bloco `env`**: além da unidade de telemetria e variáveis de roteamento emparelhadas com uma chave de credencial, ambas cobertas abaixo, ele se mescla por chave entre as fontes controladas por administrador. Para cada variável de ambiente, a fonte de prioridade mais alta que a define vence, e as fontes de administrador inferiores preenchem variáveis que as fontes superiores deixam não definidas. Uma entrada `env` gerenciada pelo endpoint, portanto, se aplica sempre que a configuração gerenciada pelo servidor deixa essa variável não definida, ou enquanto um valor de servidor em cache para ela é [retido pendente de confirmação do servidor](#fetch-and-caching-behavior). Requer Claude Code v2.1.223 ou posterior. Antes da v2.1.223, o Claude Code aplica apenas o bloco `env` da fonte selecionada.

170 * **Unidade de telemetria**: as chaves do exportador `OTEL_EXPORTER_OTLP_*`, os toggles de captura de conteúdo `OTEL_LOG_*`, `OTEL_LOGS_EXPORTER` e as variáveis de rastreamento beta `ENABLE_BETA_TRACING_DETAILED` e `BETA_TRACING_ENDPOINT` seguem a fonte mais alta que define qualquer uma delas como uma unidade. Uma fonte que entrega a chave de credencial `otelHeadersHelper` também reclama a unidade, mas coloca essas variáveis apenas quando é a fonte selecionada: uma fonte que não é selecionada mas entrega a chave não contribui com nenhuma delas e ainda bloqueia fontes inferiores de preenchê-las. De qualquer forma, um endpoint do exportador de uma fonte nunca pode ser emparelhado com credenciais de outra.172 * **Unidade de telemetria**: as chaves do exportador `OTEL_EXPORTER_OTLP_*`, os toggles de captura de conteúdo `OTEL_LOG_*`, `OTEL_LOGS_EXPORTER` e as variáveis de rastreamento beta `ENABLE_BETA_TRACING_DETAILED` e `BETA_TRACING_ENDPOINT` seguem a fonte mais alta que define qualquer uma delas como uma unidade. Uma fonte que entrega a chave de credencial `otelHeadersHelper` também reclama a unidade, mas coloca essas variáveis apenas quando é a fonte selecionada: uma fonte que não é selecionada mas entrega a chave não contribui com nenhuma delas e ainda bloqueia fontes inferiores de preenchê-las. De qualquer forma, um endpoint do exportador de uma fonte nunca pode ser emparelhado com credenciais de outra.

171 * **Roteamento emparelhado com credencial**: uma fonte que emparelha variáveis de roteamento com uma chave de credencial somente de fonte selecionada, como `apiKeyHelper` ou `otelHeadersHelper`, contribui com essas variáveis de roteamento apenas quando vence o slot.173 * **Roteamento emparelhado com credencial**: uma fonte que emparelha variáveis de roteamento com uma chave de credencial somente de fonte selecionada, como `apiKeyHelper` ou `otelHeadersHelper`, contribui com essas variáveis de roteamento apenas quando vence o slot.

settings.md +6 −5

Details

470 470 

471Para alterar uma configuração para você em um projeto sem alterá-la para seus colegas de equipe, salve-a em `.claude/settings.local.json` dentro do projeto. O Claude Code aplica esse arquivo sobre o `.claude/settings.json` confirmado, então se o arquivo da sua equipe define `"model": "claude-sonnet-5"` e você quer Opus, coloque `"model": "claude-opus-4-8"` no seu arquivo local e apenas suas sessões mudam.471Para alterar uma configuração para você em um projeto sem alterá-la para seus colegas de equipe, salve-a em `.claude/settings.local.json` dentro do projeto. O Claude Code aplica esse arquivo sobre o `.claude/settings.json` confirmado, então se o arquivo da sua equipe define `"model": "claude-sonnet-5"` e você quer Opus, coloque `"model": "claude-opus-4-8"` no seu arquivo local e apenas suas sessões mudam.

472 472 

473Três coisas a saber sobre o arquivo local:473O Claude Code também escreve neste arquivo, o mantém fora de seus commits e aplica suas regras de permissão sem a etapa de confiança:

474 474 

475* **O Claude Code também o escreve.** Quando Claude pede permissão para executar um comando Bash e você escolhe "Sim, e não pergunte novamente", o Claude Code salva essa [aprovação de permissão](/docs/pt/permissions#permission-system) aqui como uma regra `allow`.475* **O Claude Code também o escreve.** Quando Claude pede permissão para executar um comando Bash e você escolhe "Sim, e não pergunte novamente", o Claude Code salva essa [aprovação de permissão](/docs/pt/permissions#permission-system) aqui como uma regra `allow`.

476* **Você não precisa gitignore você mesmo, a menos que o tenha criado manualmente.** Na primeira vez que o Claude Code escreve o arquivo em um repositório git que ainda não o ignora, ele adiciona `**/.claude/settings.local.json` ao seu arquivo de exclusões git globais, para que o arquivo fique fora de seus commits em cada repositório. Esse arquivo é `core.excludesFile` quando sua config git global o define para um caminho absoluto ou com prefixo `~`; caso contrário é `$XDG_CONFIG_HOME/git/ignore`, ou `~/.config/git/ignore` quando `XDG_CONFIG_HOME` não está definido. Se você criou o arquivo manualmente e o Claude Code ainda não escreveu nele, adicione-o ao `.gitignore` você mesmo.476* **Você não precisa gitignore você mesmo, a menos que o tenha criado manualmente.** Na primeira vez que o Claude Code escreve o arquivo em um repositório git que ainda não o ignora, ele adiciona `**/.claude/settings.local.json` ao seu arquivo de exclusões git globais, para que o arquivo fique fora de seus commits em cada repositório. Esse arquivo é `core.excludesFile` quando sua config git global o define para um caminho absoluto ou com prefixo `~`; caso contrário é `$XDG_CONFIG_HOME/git/ignore`, ou `~/.config/git/ignore` quando `XDG_CONFIG_HOME` não está definido. Se você criou o arquivo manualmente e o Claude Code ainda não escreveu nele, adicione-o ao `.gitignore` você mesmo.


765 765 

766Duas coisas mantêm uma chave em `.claude/settings.json` de se aplicar para todos que a clonam:766Duas coisas mantêm uma chave em `.claude/settings.json` de se aplicar para todos que a clonam:

767 767 

768* **O Claude Code ignora a chave em um arquivo de repositório.** Procure por `User, local, or managed`, `User or managed`, `Managed` ou `Global config` na coluna Scope do [índice de configurações](/docs/pt/settings-reference#settings-index); essas chaves nunca se aplicam do arquivo compartilhado, exceto [`autoContinueAtUsageLimit`](/docs/pt/settings-reference#autocontinueatusagelimit), que um arquivo de repositório ainda pode desligar: enquanto o arquivo define a chave e nenhum valor de usuário, `--settings` ou gerenciado faz, o Claude Code lê a configuração como desligada. As chaves `Global config` se aplicam apenas de `~/.claude.json`.768* **O Claude Code ignora a chave em um arquivo de repositório.** Procure por `User, local, or managed`, `User or managed`, `Managed` ou `Global config` na coluna Scope do [índice de configurações](/docs/pt/settings-reference#settings-index). Essas chaves nunca se aplicam do arquivo compartilhado, exceto por algumas que um arquivo de repositório ainda pode desligar. Cada uma dessas entradas diz assim em sua linha de Scope. As chaves `Global config` se aplicam apenas de `~/.claude.json`.

769* **A chave espera por confiança.** As regras `permissions.allow`, `permissions.additionalDirectories`, `extraKnownMarketplaces` e a maioria dos valores [`env`](/docs/pt/settings-reference#env) se aplicam apenas depois que cada colega de equipe [confia na pasta](/docs/pt/permissions#project-allow-rules-and-workspace-trust). Até então eles ainda veem prompts e não obtêm plugins de um marketplace que o arquivo declara. As regras `deny` e `ask` se aplicam imediatamente.769* **A chave espera por confiança.** As regras `permissions.allow`, `permissions.additionalDirectories`, `extraKnownMarketplaces` e a maioria dos valores [`env`](/docs/pt/settings-reference#env) se aplicam apenas depois que cada colega de equipe [confia na pasta](/docs/pt/permissions#project-allow-rules-and-workspace-trust). Até então eles ainda veem prompts e não obtêm plugins de um marketplace que o arquivo declara. As regras `deny` e `ask` se aplicam imediatamente.

770 770 

771<h4 id="permission-rules-combine-differently-than-you-expected">771<h4 id="permission-rules-combine-differently-than-you-expected">


792| [`crossSessionInbound`](/docs/pt/settings-reference#crosssessioninbound) | Um valor mais rigoroso de `.claude/settings.json` ou `.claude/settings.local.json`, na escada `accept` \< `hold` \< `refuse` | Honrado sobre valores gerenciados, `--settings` e de usuário; um valor de projeto ou local que não é mais rigoroso é ignorado |792| [`crossSessionInbound`](/docs/pt/settings-reference#crosssessioninbound) | Um valor mais rigoroso de `.claude/settings.json` ou `.claude/settings.local.json`, na escada `accept` \< `hold` \< `refuse` | Honrado sobre valores gerenciados, `--settings` e de usuário; um valor de projeto ou local que não é mais rigoroso é ignorado |

793| [`useAutoModeDuringPlan`](/docs/pt/settings-reference#useautomodeduringplan) | `false` de qualquer fonte gerenciada, `--settings`, `~/.claude/settings.json` ou `.claude/settings.local.json` | Honrado mesmo quando a fonte gerenciada vencedora define `true`; um `false` em `.claude/settings.json` é ignorado |793| [`useAutoModeDuringPlan`](/docs/pt/settings-reference#useautomodeduringplan) | `false` de qualquer fonte gerenciada, `--settings`, `~/.claude/settings.json` ou `.claude/settings.local.json` | Honrado mesmo quando a fonte gerenciada vencedora define `true`; um `false` em `.claude/settings.json` é ignorado |

794| [`syncClaudeAiSkills`](/docs/pt/settings-reference#syncclaudeaiskills) | `false` de qualquer fonte gerenciada, `--settings`, `~/.claude/settings.json` ou `.claude/settings.local.json` | Honrado mesmo quando a fonte gerenciada vencedora define `true`; um `false` em `.claude/settings.json` é ignorado |794| [`syncClaudeAiSkills`](/docs/pt/settings-reference#syncclaudeaiskills) | `false` de qualquer fonte gerenciada, `--settings`, `~/.claude/settings.json` ou `.claude/settings.local.json` | Honrado mesmo quando a fonte gerenciada vencedora define `true`; um `false` em `.claude/settings.json` é ignorado |

795| [`syncClaudeAiPlugins`](/docs/pt/settings-reference#syncclaudeaiplugins) | `false` de qualquer fonte gerenciada, `--settings`, `~/.claude/settings.json` ou `.claude/settings.local.json` | Honrado mesmo quando a fonte gerenciada vencedora define `true`; um `false` em `.claude/settings.json` é ignorado |

795| [`maxEffortLevel`](/docs/pt/settings-reference#maxeffortlevel) | Um limite inferior de qualquer escopo, incluindo `--settings` | Honrado mesmo quando as configurações gerenciadas que o Claude Code aplica definem um limite superior; o limite inferior se aplica. Requer Claude Code v2.1.267 ou posterior |796| [`maxEffortLevel`](/docs/pt/settings-reference#maxeffortlevel) | Um limite inferior de qualquer escopo, incluindo `--settings` | Honrado mesmo quando as configurações gerenciadas que o Claude Code aplica definem um limite superior; o limite inferior se aplica. Requer Claude Code v2.1.267 ou posterior |

796 797 

797Um aplicativo que executa o Claude Code dentro de si e define [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/pt/env-vars) também é uma exceção. O Claude Code toma a configuração de modelo daquele aplicativo sobre as chaves `model`, `fallbackModel`, `modelPicker` e `modelOverrides` de cada fonte gerenciada, e sobre as variáveis de seleção de modelo em um bloco `env` gerenciado, como `ANTHROPIC_MODEL` e a família `ANTHROPIC_DEFAULT_*_MODEL`. O Claude Code mantém uma [`availableModels`](/docs/pt/settings-reference#availablemodels) gerenciada em vigor a menos que o aplicativo forneça a sua própria.798Um aplicativo que executa o Claude Code dentro de si e define [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/pt/env-vars) também é uma exceção. O Claude Code toma a configuração de modelo daquele aplicativo sobre as chaves `model`, `fallbackModel`, `modelPicker` e `modelOverrides` de cada fonte gerenciada, e sobre as variáveis de seleção de modelo em um bloco `env` gerenciado, como `ANTHROPIC_MODEL` e a família `ANTHROPIC_DEFAULT_*_MODEL`. O Claude Code mantém uma [`availableModels`](/docs/pt/settings-reference#availablemodels) gerenciada em vigor a menos que o aplicativo forneça a sua própria.


800 Configurações em sessões em nuvem801 Configurações em sessões em nuvem

801</h2>802</h2>

802 803 

803Uma sessão em nuvem, no [Claude Code na web](/docs/pt/claude-code-on-the-web) ou de [`claude --cloud`](/docs/pt/claude-code-on-the-web#from-terminal-to-web), é executada em um [ambiente em nuvem](/docs/pt/cloud-environments) em um clone fresco do seu repositório, não em sua máquina. Isso muda quais configurações a alcançam:804Uma [sessão em nuvem](/docs/pt/claude-code-on-the-web) é executada em um [ambiente em nuvem](/docs/pt/cloud-environments) em um clone fresco do seu repositório, não em sua máquina. Isso muda quais configurações a alcançam:

804 805 

805* **Configurações compartilhadas de projeto** (`.claude/settings.json`): lidas, porque o arquivo faz parte do clone. Confirme uma configuração lá para aplicá-la em sessões em nuvem.806* **Configurações compartilhadas de projeto** (`.claude/settings.json`): lidas em uma sessão com um repositório, porque o arquivo faz parte do clone e a sessão começa dentro dele. Confirme uma configuração lá para aplicá-la nessas sessões. Uma sessão com vários repositórios começa acima dos clones, então de cada `.claude/settings.json` do repositório ela carrega apenas os plugins e marketplaces que o arquivo declara, não regras de permissão, hooks, `env` ou outras chaves; veja [O que é transferido de sua configuração](/docs/pt/cloud-environments#what-carries-over-from-your-setup).

806* **Configurações de usuário e projeto local** (`~/.claude/settings.json` e `.claude/settings.local.json`): não lidas. Ambas permanecem em sua máquina, e o arquivo local não está no clone.807* **Configurações de usuário e projeto local** (`~/.claude/settings.json` e `.claude/settings.local.json`): não lidas. Ambas permanecem em sua máquina, e o arquivo local não está no clone.

807* **Configurações gerenciadas**: apenas [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) alcançam uma sessão em nuvem; um arquivo `managed-settings.json` ou perfil MDM em seu dispositivo não. Um [ambiente auto-hospedado](/docs/pt/self-hosted-environments) também lê o arquivo de configurações gerenciadas em sua imagem de runner. [Como o Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#how-claude-code-combines-managed-sources) diz quando esse arquivo se aplica.808* **Configurações gerenciadas**: apenas [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) alcançam uma sessão em nuvem; um arquivo `managed-settings.json` ou perfil MDM em seu dispositivo não. Um [ambiente auto-hospedado](/docs/pt/self-hosted-environments) também lê o arquivo de configurações gerenciadas em sua imagem de runner. [Como o Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#how-claude-code-combines-managed-sources) diz quando esse arquivo se aplica.

808* **`/config`**: na web, abre a seção Claude Code de suas configurações claude.ai em vez de alterar um valor. Para alterar uma configuração para uma sessão em nuvem, defina uma [variável de ambiente](/docs/pt/cloud-environments#set-environment-variables) no ambiente ou confirme a chave no `.claude/settings.json` do repositório.809* **`/config`**: no seu navegador em claude.ai/code, abre a seção Claude Code de suas configurações claude.ai em vez de alterar um valor. Para alterar uma configuração para uma sessão em nuvem, defina uma [variável de ambiente](/docs/pt/cloud-environments#set-environment-variables) no ambiente, ou em uma sessão com um repositório, confirme a chave no `.claude/settings.json` desse repositório.

809 810 

810[O que é transferido de sua configuração](/docs/pt/cloud-environments#what-carries-over-from-your-setup) lista o resto: `CLAUDE.md`, skills, servidores MCP, plugins e credenciais.811[O que é transferido de sua configuração](/docs/pt/cloud-environments#what-carries-over-from-your-setup) lista o resto: `CLAUDE.md`, skills, servidores MCP, plugins e credenciais.

811 812 

Details

96 96 

97As configurações compartilhadas de uma equipe, confirmadas no repositório para que todos que o clonem obtenham as mesmas permissões, hooks, telemetria e marketplace de plugins. Salve um arquivo como este em `.claude/settings.json` no topo do repositório. O que você precisa saber antes de confirmar um:97As configurações compartilhadas de uma equipe, confirmadas no repositório para que todos que o clonem obtenham as mesmas permissões, hooks, telemetria e marketplace de plugins. Salve um arquivo como este em `.claude/settings.json` no topo do repositório. O que você precisa saber antes de confirmar um:

98 98 

99* **Sessões em nuvem também o leem.** Uma [sessão em nuvem](/docs/pt/settings#settings-in-cloud-sessions) no Claude Code na web começa a partir de um clone do repositório, então o arquivo confirmado se aplica lá também.99* **Sessões em nuvem também o leem.** Uma [sessão em nuvem](/docs/pt/settings#settings-in-cloud-sessions) começa a partir de um clone do repositório, então o arquivo confirmado se aplica lá também.

100* **Regras de permissão aguardam confiança.** Regras de permissão e entradas `extraKnownMarketplaces` entram em vigor depois que cada pessoa [confia nesta pasta em si](/docs/pt/permissions#project-allow-rules-and-workspace-trust), não apenas em uma pasta pai; regras de negação e pergunta se aplicam em cada sessão, confiável ou não.100* **Regras de permissão aguardam confiança.** Regras de permissão e entradas `extraKnownMarketplaces` entram em vigor depois que cada pessoa [confia nesta pasta em si](/docs/pt/permissions#project-allow-rules-and-workspace-trust), não apenas em uma pasta pai; regras de negação e pergunta se aplicam em cada sessão, confiável ou não.

101* **O hook é um script no repositório.** O hook deste arquivo executa `.claude/hooks/block-rm.sh`; [How a hook resolves](/docs/pt/hooks#how-a-hook-resolves) percorre como escrevê-lo.101* **O hook é um script no repositório.** O hook deste arquivo executa `.claude/hooks/block-rm.sh`; [How a hook resolves](/docs/pt/hooks#how-a-hook-resolves) percorre como escrevê-lo.

102* **Regras correspondem ao comando e caminho conforme escrito.** `Bash(git push *)` não corresponde a [`git -C . push`](/docs/pt/permissions#bash-rule-limits). `Read(./.env)` por si só impede as ferramentas de arquivo e comandos que nomeiam o arquivo, como `cat .env`, mas não [`grep -r` executado sobre o diretório](/docs/pt/permissions#read-and-edit); o bloco `sandbox` neste arquivo fecha essa lacuna, porque o sandbox [adiciona seus caminhos de negação `Read`](/docs/pt/settings-reference#sandbox-filesystem-denyread) ao que todo comando em sandbox não pode ler.102* **Regras correspondem ao comando e caminho conforme escrito.** `Bash(git push *)` não corresponde a [`git -C . push`](/docs/pt/permissions#bash-rule-limits). `Read(./.env)` por si só impede as ferramentas de arquivo e comandos que nomeiam o arquivo, como `cat .env`, mas não [`grep -r` executado sobre o diretório](/docs/pt/permissions#read-and-edit); o bloco `sandbox` neste arquivo fecha essa lacuna, porque o sandbox [adiciona seus caminhos de negação `Read`](/docs/pt/settings-reference#sandbox-filesystem-denyread) ao que todo comando em sandbox não pode ler.

settings-reference.md +181 −103

Details

577 Índice de configurações577 Índice de configurações

578</h2>578</h2>

579 579 

580Cada chave abaixo vincula-se à sua entrada. O escopo lista os [arquivos](/docs/pt/settings#settings-files-and-who-they-affect) em que pode estar: `User` é `~/.claude/settings.json`, `Project` é `.claude/settings.json`, `Local` é `.claude/settings.local.json`, e `Managed` é [o que sua organização implanta](/docs/pt/managed-settings). `Any file` significa todos os quatro, e `Global config` significa [`~/.claude.json`](#global-config-settings).580Cada chave abaixo está vinculada à sua entrada. O escopo lista os [arquivos](/docs/pt/settings#settings-files-and-who-they-affect) em que pode estar: `User` é `~/.claude/settings.json`, `Project` é `.claude/settings.json`, `Local` é `.claude/settings.local.json`, e `Managed` é [o que sua organização implanta](/docs/pt/managed-settings). `Any file` significa todos os quatro, e `Global config` significa [`~/.claude.json`](#global-config-settings).

581 581 

582<ReferenceFilter582<ReferenceFilter

583 noun="settings"583 noun="settings"


591 591 

592| Chave | Descrição | Tópico | Escopo |592| Chave | Descrição | Tópico | Escopo |

593| :---------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------- | :---------------------- |593| :---------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------- | :---------------------- |

594| [`advisorModel`](#advisormodel) | Escolha qual modelo responde quando Claude pergunta a [ferramenta de assessor](/docs/pt/advisor) | Modelo e respostas | Any file |594| [`advisorModel`](#advisormodel) | Escolha qual modelo responde quando Claude usa a [ferramenta de assessor](/docs/pt/advisor) | Modelo e respostas | Any file |

595| [`agent`](#agent) | Inicie cada sessão como um [subagente](/docs/pt/sub-agents) nomeado com seu prompt, ferramentas e modelo | Agentes, sessões e worktrees | Any file |595| [`agent`](#agent) | Inicie cada sessão como um [subagente](/docs/pt/sub-agents) nomeado com seu prompt, ferramentas e modelo | Agentes, sessões e worktrees | Any file |

596| [`agentPushNotifEnabled`](#agentpushnotifenabled) | Permita que Claude envie uma [notificação push para seu telefone](/docs/pt/remote-control#mobile-push-notifications) quando decidir | Remoto, desktop e notificações | Any file |596| [`agentPushNotifEnabled`](#agentpushnotifenabled) | Permita que Claude envie uma [notificação push para seu telefone](/docs/pt/remote-control#mobile-push-notifications) quando decidir | Remoto, desktop e notificações | Any file |

597| [`allowAllClaudeAiMcps`](#allowallclaudeaimcps) | Carregue os [conectores claude.ai](/docs/pt/mcp) que Claude Code busca por conta própria junto com um [`managed-mcp.json`](/docs/pt/managed-mcp#exclusive-control-with-managed-mcp-json) implantado | MCP | Managed |597| [`allowAllClaudeAiMcps`](#allowallclaudeaimcps) | Carregue os [conectores claude.ai](/docs/pt/mcp) que Claude Code busca por conta própria junto com um [`managed-mcp.json`](/docs/pt/managed-mcp#exclusive-control-with-managed-mcp-json) implantado | MCP | Managed |


599| [`allowedHttpHookUrls`](#allowedhttphookurls) | Limite quais URLs os [hooks HTTP](/docs/pt/hooks) podem atingir | Hooks e automação | Any file |599| [`allowedHttpHookUrls`](#allowedhttphookurls) | Limite quais URLs os [hooks HTTP](/docs/pt/hooks) podem atingir | Hooks e automação | Any file |

600| [`allowedMcpServers`](#allowedmcpservers) | Lista de permissões de quais [servidores MCP](/docs/pt/mcp) os usuários podem adicionar | MCP | Any file |600| [`allowedMcpServers`](#allowedmcpservers) | Lista de permissões de quais [servidores MCP](/docs/pt/mcp) os usuários podem adicionar | MCP | Any file |

601| [`allowManagedHooksOnly`](#allowmanagedhooksonly) | Execute apenas os [hooks](/docs/pt/hooks) que sua organização implanta | Hooks e automação | Managed |601| [`allowManagedHooksOnly`](#allowmanagedhooksonly) | Execute apenas os [hooks](/docs/pt/hooks) que sua organização implanta | Hooks e automação | Managed |

602| [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly) | Faça a lista de permissões gerenciada de [MCP](/docs/pt/mcp) ser a única que se aplica | MCP | Managed |602| [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly) | Faça a lista de permissões de [MCP](/docs/pt/mcp) gerenciada ser a única que se aplica | MCP | Managed |

603| [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly) | Faça as [configurações gerenciadas](/docs/pt/managed-settings) serem a única fonte de configurações de [regras de permissão](/docs/pt/permissions#managed-settings) | Configurações de permissão | Managed |603| [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly) | Faça as [configurações gerenciadas](/docs/pt/managed-settings) serem a única fonte de [regras de permissão](/docs/pt/permissions#managed-settings) | Configurações de permissão | Managed |

604| [`alwaysThinkingEnabled`](#alwaysthinkingenabled) | Desative o [pensamento estendido](/docs/pt/model-config#extended-thinking) para cada sessão | Modelo e respostas | Any file |604| [`alwaysThinkingEnabled`](#alwaysthinkingenabled) | Desative o [pensamento estendido](/docs/pt/model-config#extended-thinking) para cada sessão | Modelo e respostas | Any file |

605| [`apiKeyHelper`](#apikeyhelper) | Gere a [credencial de API](/docs/pt/authentication#credential-management) com seu próprio comando | Autenticação e provedores | Any file |605| [`apiKeyHelper`](#apikeyhelper) | Gere a [credencial de API](/docs/pt/authentication#credential-management) com seu próprio comando | Autenticação e provedores | Any file |

606| [`askUserQuestionTimeout`](#askuserquestiontimeout) | Permita que uma pergunta sem resposta [continue automaticamente](/docs/pt/tools-reference#question-auto-continue-timeout) após tempo ocioso | Interface e terminal | User or managed |606| [`askUserQuestionTimeout`](#askuserquestiontimeout) | Permita que uma pergunta sem resposta [continue automaticamente](/docs/pt/tools-reference#question-auto-continue-timeout) após tempo ocioso | Interface e terminal | User or managed |


610| [`attribution.sessionUrl`](#attribution-sessionurl) | Omita o link de sessão claude.ai dos commits de [nuvem](/docs/pt/claude-code-on-the-web) e [Remote Control](/docs/pt/remote-control) | Git e atribuição | Any file |610| [`attribution.sessionUrl`](#attribution-sessionurl) | Omita o link de sessão claude.ai dos commits de [nuvem](/docs/pt/claude-code-on-the-web) e [Remote Control](/docs/pt/remote-control) | Git e atribuição | Any file |

611| [`autoCompactEnabled`](#autocompactenabled) | Desative ou ative a [compactação automática](/docs/pt/context-window) | Memória e contexto | Any file |611| [`autoCompactEnabled`](#autocompactenabled) | Desative ou ative a [compactação automática](/docs/pt/context-window) | Memória e contexto | Any file |

612| [`autoCompactWindow`](#autocompactwindow) | Defina o quão cheio o contexto fica antes de Claude Code [compactar](/docs/pt/context-window) | Memória e contexto | Any file |612| [`autoCompactWindow`](#autocompactwindow) | Defina o quão cheio o contexto fica antes de Claude Code [compactar](/docs/pt/context-window) | Memória e contexto | Any file |

613| [`autoConnectIde`](#autoconnectide) | Conecte-se automaticamente a um IDE [VS Code](/docs/pt/vs-code) ou [JetBrains](/docs/pt/jetbrains#from-external-terminals) em execução a partir de um terminal externo | Configurações de config global | Global config |613| [`autoConnectIde`](#autoconnectide) | Conecte-se automaticamente a um [VS Code](/docs/pt/vs-code) ou [JetBrains](/docs/pt/jetbrains#from-external-terminals) IDE em execução a partir de um terminal externo | Configurações de config global | Global config |

614| [`autoContinueAtUsageLimit`](#autocontinueatusagelimit) | Aguarde na sessão aberta e [continue a tarefa automaticamente](/docs/pt/interactive-mode#wait-for-a-usage-limit-to-reset) após um limite de uso claude.ai ser redefinido | Interface e terminal | User or managed |614| [`autoContinueAtUsageLimit`](#autocontinueatusagelimit) | Aguarde na sessão aberta e [continue a tarefa automaticamente](/docs/pt/interactive-mode#wait-for-a-usage-limit-to-reset) após um limite de uso claude.ai ser redefinido | Interface e terminal | User or managed |

615| [`autoInstallIdeExtension`](#autoinstallideextension) | Desative a instalação automática da [extensão IDE](/docs/pt/vs-code#install-the-extension) a partir de um terminal VS Code | Configurações de config global | Global config |615| [`autoInstallIdeExtension`](#autoinstallideextension) | Desative a instalação automática da [extensão IDE](/docs/pt/vs-code#install-the-extension) a partir de um terminal VS Code | Configurações de config global | Global config |

616| [`autoMemoryDirectory`](#automemorydirectory) | Armazene [memória automática](/docs/pt/memory#auto-memory) em um diretório de sua escolha | Memória e contexto | Any file |616| [`autoMemoryDirectory`](#automemorydirectory) | Armazene a [memória automática](/docs/pt/memory#auto-memory) em um diretório de sua escolha | Memória e contexto | Any file |

617| [`autoMemoryEnabled`](#automemoryenabled) | Desative ou ative a [memória automática](/docs/pt/memory#auto-memory) | Memória e contexto | Any file |617| [`autoMemoryEnabled`](#automemoryenabled) | Desative ou ative a [memória automática](/docs/pt/memory#auto-memory) | Memória e contexto | Any file |

618| [`autoMode`](#automode) | Adicione suas próprias regras de permissão e negação ao classificador de [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) | Configurações de permissão | User or managed |618| [`autoMode`](#automode) | Adicione suas próprias regras de permissão e negação ao classificador de [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) | Configurações de permissão | User or managed |

619| [`autoMode.classifyAllShell`](#automode-classifyallshell) | Envie cada comando shell através do [classificador de modo automático](/docs/pt/permission-modes#what-the-classifier-blocks-by-default), mesmo aqueles que uma regra de permissão estreita corresponde | Configurações de permissão | User or managed |619| [`autoMode.classifyAllShell`](#automode-classifyallshell) | Envie cada comando shell através do [classificador de modo automático](/docs/pt/permission-modes#what-the-classifier-blocks-by-default), mesmo aqueles que uma regra de permissão estreita corresponde | Configurações de permissão | User or managed |


622| [`availableModels`](#availablemodels) | [Restrinja quais modelos](/docs/pt/model-config#restrict-model-selection) as pessoas podem escolher | Modelo e respostas | Any file |622| [`availableModels`](#availablemodels) | [Restrinja quais modelos](/docs/pt/model-config#restrict-model-selection) as pessoas podem escolher | Modelo e respostas | Any file |

623| [`awaySummaryEnabled`](#awaysummaryenabled) | Desative o [resumo da sessão](/docs/pt/interactive-mode#session-recap) mostrado quando você volta ao terminal | Remoto, desktop e notificações | Any file |623| [`awaySummaryEnabled`](#awaysummaryenabled) | Desative o [resumo da sessão](/docs/pt/interactive-mode#session-recap) mostrado quando você volta ao terminal | Remoto, desktop e notificações | Any file |

624| [`awsAuthRefresh`](#awsauthrefresh) | Atualize as [credenciais Bedrock](/docs/pt/amazon-bedrock#advanced-credential-configuration) expiradas em `.aws` com seu próprio comando | Autenticação e provedores | Any file |624| [`awsAuthRefresh`](#awsauthrefresh) | Atualize as [credenciais Bedrock](/docs/pt/amazon-bedrock#advanced-credential-configuration) expiradas em `.aws` com seu próprio comando | Autenticação e provedores | Any file |

625| [`awsCredentialExport`](#awscredentialexport) | Forneça [credenciais Bedrock](/docs/pt/amazon-bedrock#advanced-credential-configuration) como JSON a partir de seu próprio comando | Autenticação e provedores | Any file |625| [`awsCredentialExport`](#awscredentialexport) | Forneça as [credenciais Bedrock](/docs/pt/amazon-bedrock#advanced-credential-configuration) como JSON a partir de seu próprio comando | Autenticação e provedores | Any file |

626| [`axScreenReader`](#axscreenreader) | Renderize [saída amigável ao leitor de tela](/docs/pt/accessibility) | Interface e terminal | Any file |626| [`axScreenReader`](#axscreenreader) | Renderize a [saída amigável ao leitor de tela](/docs/pt/accessibility) | Interface e terminal | Any file |

627| [`bashEditDiffEnabled`](#basheditdiffenabled) | Registre os [arquivos que um comando Bash alterou](/docs/pt/hooks#bash) em cada modo de permissão | Interface e terminal | User or managed |

627| [`bashOutputMaxChars`](#bashoutputmaxchars) | Defina quanto da [saída](/docs/pt/tools-reference#output-limits) de um comando bem-sucedido Claude recebe inline | Memória e contexto | Any file |628| [`bashOutputMaxChars`](#bashoutputmaxchars) | Defina quanto da [saída](/docs/pt/tools-reference#output-limits) de um comando bem-sucedido Claude recebe inline | Memória e contexto | Any file |

628| [`blockedMarketplaces`](#blockedmarketplaces) | Bloqueie [fontes de marketplace de plugins](/docs/pt/plugin-marketplaces) para sua organização | Plugins e skills | Managed |629| [`blockedMarketplaces`](#blockedmarketplaces) | Bloqueie as fontes do [marketplace de plugins](/docs/pt/plugin-marketplaces) para sua organização | Plugins e skills | Managed |

629| [`browserExternalPageTools`](#browserexternalpagetools) | Mantenha as ferramentas de Claude desativadas em páginas externas no painel [desktop](/docs/pt/desktop) Browser | Ferramentas | Managed |630| [`browserExternalPageTools`](#browserexternalpagetools) | Mantenha as ferramentas de Claude desativadas em páginas externas no painel [desktop](/docs/pt/desktop) Browser | Ferramentas | Managed |

630| [`channelsEnabled`](#channelsenabled) | Permita [canais](/docs/pt/channels#enable-channels-for-your-organization) para sua organização | Plugins e skills | Managed |631| [`channelsEnabled`](#channelsenabled) | Permita [canais](/docs/pt/channels#enable-channels-for-your-organization) para sua organização | Plugins e skills | Managed |

631| [`claudeMd`](#claudemd) | Injete instruções [CLAUDE.md](/docs/pt/memory#deploy-organization-wide-claude-md) em toda a organização a partir de configurações gerenciadas | Memória e contexto | Managed |632| [`claudeMd`](#claudemd) | Injete instruções [CLAUDE.md](/docs/pt/memory#deploy-organization-wide-claude-md) em toda a organização a partir de configurações gerenciadas | Memória e contexto | Managed |


636| [`crossSessionInbound`](#crosssessioninbound) | Escolha se Claude Code entrega [mensagens de suas outras sessões](/docs/pt/cross-session-messaging#control-inbound-messages), mostra um aviso sem entregá-las, ou as recusa | Agentes, sessões e worktrees | Any file |637| [`crossSessionInbound`](#crosssessioninbound) | Escolha se Claude Code entrega [mensagens de suas outras sessões](/docs/pt/cross-session-messaging#control-inbound-messages), mostra um aviso sem entregá-las, ou as recusa | Agentes, sessões e worktrees | Any file |

637| [`defaultShell`](#defaultshell) | Escolha se Bash ou PowerShell executa os comandos shell que você digita com o prefixo [`!`](/docs/pt/interactive-mode#shell-mode-with-prefix) | Interface e terminal | Any file |638| [`defaultShell`](#defaultshell) | Escolha se Bash ou PowerShell executa os comandos shell que você digita com o prefixo [`!`](/docs/pt/interactive-mode#shell-mode-with-prefix) | Interface e terminal | Any file |

638| [`deniedMcpServers`](#deniedmcpservers) | Bloqueie [servidores MCP](/docs/pt/mcp) específicos por URL, comando ou nome | MCP | Any file |639| [`deniedMcpServers`](#deniedmcpservers) | Bloqueie [servidores MCP](/docs/pt/mcp) específicos por URL, comando ou nome | MCP | Any file |

639| [`desktopSessionCleanupPeriodDays`](#desktopsessioncleanupperioddays) | Defina um limite de idade em dias para [transcrições Claude Desktop e Cowork](/docs/pt/claude-directory#cleaned-up-automatically) | Privacidade e telemetria | User or managed |640| [`desktopSessionCleanupPeriodDays`](#desktopsessioncleanupperioddays) | Defina um limite de idade em dias para [transcrições de Claude Desktop e Cowork](/docs/pt/claude-directory#cleaned-up-automatically) | Privacidade e telemetria | User or managed |

640| [`dialogExpiry`](#dialogexpiry) | Defina quanto tempo Claude Code aguarda um [Remote Control](/docs/pt/remote-control) ou um host SDK responder a um diálogo encaminhado antes de cancelá-lo | Interface e terminal | User or managed |641| [`dialogExpiry`](#dialogexpiry) | Defina quanto tempo Claude Code aguarda [Remote Control](/docs/pt/remote-control) ou um host SDK responder a um diálogo encaminhado antes de cancelar o diálogo | Interface e terminal | User or managed |

641| [`diffTool`](#difftool) | Escolha se as mudanças de arquivo propostas por Claude abrem no visualizador de diff [VS Code](/docs/pt/vs-code) ou [JetBrains](/docs/pt/jetbrains#features) ou permanecem no terminal | Configurações de config global | Global config |642| [`diffTool`](#difftool) | Escolha se as alterações de arquivo propostas por Claude abrem no visualizador de diff do [VS Code](/docs/pt/vs-code) ou [JetBrains](/docs/pt/jetbrains#features) ou permanecem no terminal | Configurações de config global | Global config |

642| [`disableAgentView`](#disableagentview) | Desative agentes em segundo plano e [visualização de agente](/docs/pt/agent-view) | Agentes, sessões e worktrees | Any file |643| [`disableAgentView`](#disableagentview) | Desative agentes em segundo plano e [visualização de agente](/docs/pt/agent-view) | Agentes, sessões e worktrees | Any file |

643| [`disableAllHooks`](#disableallhooks) | Desative [hooks](/docs/pt/hooks), uma [linha de status](/docs/pt/statusline) personalizada, e um comando de [sugestão de arquivo `@`](/docs/pt/interactive-mode#quick-commands) personalizado de uma vez | Hooks e automação | Any file |644| [`disableAllHooks`](#disableallhooks) | Desative [hooks](/docs/pt/hooks), uma [linha de status](/docs/pt/statusline) personalizada, e um comando de [sugestão de arquivo `@`](/docs/pt/interactive-mode#quick-commands) personalizado de uma vez | Hooks e automação | Any file |

644| [`disableArtifact`](#disableartifact) | Descontinuado; use `enableArtifact` para desativar a [ferramenta Artifact](/docs/pt/artifacts) | Remoto, desktop e notificações | Any file |645| [`disableArtifact`](#disableartifact) | Descontinuado; use `enableArtifact` para desativar a [ferramenta Artifact](/docs/pt/artifacts) | Remoto, desktop e notificações | Any file |

645| [`disableAutoMode`](#disableautomode) | Remova o [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) do ciclo de modo de permissão | Configurações de permissão | Any file |646| [`disableAutoMode`](#disableautomode) | Remova o [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) do ciclo de modo de permissão | Configurações de permissão | Any file |

646| [`disableBrowserExternalNavigation`](#disablebrowserexternalnavigation) | Limite o painel [desktop](/docs/pt/desktop) Browser a localhost para pessoas e Claude | Ferramentas | Managed |647| [`disableBrowserExternalNavigation`](#disablebrowserexternalnavigation) | Limite o painel [desktop](/docs/pt/desktop) Browser para localhost para pessoas e Claude | Ferramentas | Managed |

647| [`disableBundledSkills`](#disablebundledskills) | Desative as [skills](/docs/pt/skills#bundled-skills) e [workflows](/docs/pt/workflows) inclusos com Claude Code | Plugins e skills | Any file |648| [`disableBundledSkills`](#disablebundledskills) | Desative as [skills](/docs/pt/skills#bundled-skills) e [workflows](/docs/pt/workflows) inclusos com Claude Code | Plugins e skills | Any file |

648| [`disableClaudeAiConnectors`](#disableclaudeaiconnectors) | Desative os [conectores claude.ai](/docs/pt/mcp#disable-claude-ai-connectors) para que Claude Code não os busque | MCP | Any file |649| [`disableClaudeAiConnectors`](#disableclaudeaiconnectors) | Desative os [conectores claude.ai](/docs/pt/mcp#disable-claude-ai-connectors) para que Claude Code não os busque | MCP | Any file |

649| [`disableCommandPluginSources`](#disablecommandpluginsources) | Bloqueie [plugins](/docs/pt/plugins) que instalam executando um comando declarado pelo marketplace | Plugins e skills | Managed |650| [`disableCommandPluginSources`](#disablecommandpluginsources) | Bloqueie [plugins](/docs/pt/plugins) que instalam executando um comando declarado pelo marketplace | Plugins e skills | Managed |

650| [`disableDeepLinkRegistration`](#disabledeeplinkregistration) | Impeça Claude Code de registrar o manipulador [`claude-cli://`](/docs/pt/deep-links) | Remoto, desktop e notificações | Any file |651| [`disableDeepLinkRegistration`](#disabledeeplinkregistration) | Impeça Claude Code de registrar o manipulador [`claude-cli://`](/docs/pt/deep-links) | Remoto, desktop e notificações | Any file |

651| [`disableDesktopLocalSessions`](#disabledesktoplocalsessions) | Desative [sessões Desktop Code](/docs/pt/desktop#local-sessions-on-managed-devices) que executam no dispositivo, deixando SSH para outros hosts e nuvem | Remoto, desktop e notificações | Managed |652| [`disableDesktopLocalSessions`](#disabledesktoplocalsessions) | Desative as [sessões Desktop Code](/docs/pt/desktop#local-sessions-on-managed-devices) que executam no dispositivo, deixando SSH para outros hosts e nuvem | Remoto, desktop e notificações | Managed |

652| [`disabledMcpjsonServers`](#disabledmcpjsonservers) | Rejeite servidores específicos do [`.mcp.json`](/docs/pt/mcp#project-scope) de um projeto | MCP | Any file |653| [`disabledMcpjsonServers`](#disabledmcpjsonservers) | Rejeite servidores específicos do [`.mcp.json`](/docs/pt/mcp#project-scope) de um projeto | MCP | Any file |

653| [`disableMobileSimulatorTools`](#disablemobilesimulatortools) | Bloqueie as ferramentas de Claude no painel [desktop](/docs/pt/desktop) iOS Simulator | Ferramentas | Managed |654| [`disableMobileSimulatorTools`](#disablemobilesimulatortools) | Bloqueie as ferramentas de Claude no painel [desktop](/docs/pt/desktop) iOS Simulator | Ferramentas | Managed |

654| [`disableRemoteControl`](#disableremotecontrol) | Desative o [Remote Control](/docs/pt/remote-control) em todos os lugares onde pode iniciar | Remoto, desktop e notificações | Any file |655| [`disableRemoteControl`](#disableremotecontrol) | Desative o [Remote Control](/docs/pt/remote-control) em todos os lugares onde pode começar | Remoto, desktop e notificações | Any file |

655| [`disableSideloadFlags`](#disablesideloadflags) | Rejeite os sinalizadores CLI que carregam [plugins](/docs/pt/plugins), [subagentes](/docs/pt/sub-agents) e [servidores MCP](/docs/pt/mcp) | Configurações empresariais e gerenciadas | Managed |656| [`disableSideloadFlags`](#disablesideloadflags) | Rejeite os sinalizadores CLI que carregam [plugins](/docs/pt/plugins), [subagentes](/docs/pt/sub-agents) e [servidores MCP](/docs/pt/mcp) | Configurações empresariais e gerenciadas | Managed |

656| [`disableSkillShellExecution`](#disableskillshellexecution) | Impeça [skills](/docs/pt/skills) e comandos personalizados de executar shell inline | Plugins e skills | Any file |657| [`disableSkillShellExecution`](#disableskillshellexecution) | Impeça [skills](/docs/pt/skills) e comandos personalizados de executar shell inline | Plugins e skills | Any file |

657| [`disableWorkflows`](#disableworkflows) | Desative [workflows dinâmicos](/docs/pt/workflows) para todos; use `enableWorkflows` para você mesmo | Hooks e automação | Any file |658| [`disableWorkflows`](#disableworkflows) | Desative [workflows dinâmicos](/docs/pt/workflows) para todos; use `enableWorkflows` para você mesmo | Hooks e automação | Any file |


673| [`feedbackDrafts`](#feedbackdrafts) | Controle se Claude enfileira [rascunhos de feedback](/docs/pt/tools-reference#sendfeedback-tool-behavior) para você revisar | Privacidade e telemetria | User or managed |674| [`feedbackDrafts`](#feedbackdrafts) | Controle se Claude enfileira [rascunhos de feedback](/docs/pt/tools-reference#sendfeedback-tool-behavior) para você revisar | Privacidade e telemetria | User or managed |

674| [`feedbackSurveyRate`](#feedbacksurveyrate) | Altere a frequência com que a [pesquisa de qualidade da sessão](/docs/pt/data-usage#session-quality-surveys) aparece | Privacidade e telemetria | Any file |675| [`feedbackSurveyRate`](#feedbacksurveyrate) | Altere a frequência com que a [pesquisa de qualidade da sessão](/docs/pt/data-usage#session-quality-surveys) aparece | Privacidade e telemetria | Any file |

675| [`fileCheckpointingEnabled`](#filecheckpointingenabled) | Desative ou ative os snapshots de arquivo que [`/rewind`](/docs/pt/checkpointing) restaura | Memória e contexto | Any file |676| [`fileCheckpointingEnabled`](#filecheckpointingenabled) | Desative ou ative os snapshots de arquivo que [`/rewind`](/docs/pt/checkpointing) restaura | Memória e contexto | Any file |

676| [`fileSuggestion`](#filesuggestion) | Forneça [preenchimento automático de arquivo `@`](/docs/pt/interactive-mode#quick-commands) a partir de seu próprio comando | Interface e terminal | Any file |677| [`fileSuggestion`](#filesuggestion) | Forneça o [preenchimento automático de arquivo `@`](/docs/pt/interactive-mode#quick-commands) a partir de seu próprio comando | Interface e terminal | Any file |

677| [`footerLinksRegexes`](#footerlinksregexes) | Faça IDs de problema ou revisão na saída se tornarem [links clicáveis](/docs/pt/statusline#clickable-links) abaixo da caixa de entrada | Interface e terminal | User or managed |678| [`footerLinksRegexes`](#footerlinksregexes) | Transforme IDs de issue ou review na saída em [links clicáveis](/docs/pt/statusline#clickable-links) abaixo da caixa de entrada | Interface e terminal | User or managed |

678| [`forceLoginGatewayUrl`](#forcelogingatewayurl) | Defina a [URL do gateway](/docs/pt/claude-apps-gateway#set-the-gateway-url) à qual a tela de login se conecta | Autenticação e provedores | Managed |679| [`forceLoginGatewayUrl`](#forcelogingatewayurl) | Defina a [URL do gateway](/docs/pt/claude-apps-gateway#set-the-gateway-url) à qual a tela de login se conecta | Autenticação e provedores | Managed |

679| [`forceLoginMethod`](#forceloginmethod) | [Restrinja o login](/docs/pt/authentication#restrict-login-to-your-organization) a claude.ai, Claude Console, ou um [gateway de nuvem](/docs/pt/claude-apps-gateway) | Autenticação e provedores | Any file |680| [`forceLoginMethod`](#forceloginmethod) | [Restrinja o login](/docs/pt/authentication#restrict-login-to-your-organization) a claude.ai, Claude Console, ou um [gateway de nuvem](/docs/pt/claude-apps-gateway) | Autenticação e provedores | Any file |

680| [`forceLoginOrgUUID`](#forceloginorguuid) | [Fixe logins claude.ai à sua organização](/docs/pt/authentication#restrict-login-to-your-organization); apenas uma fonte gerenciada a impõe | Autenticação e provedores | Any file |681| [`forceLoginOrgUUID`](#forceloginorguuid) | [Fixe os logins claude.ai à sua organização](/docs/pt/authentication#restrict-login-to-your-organization); apenas uma fonte gerenciada a impõe | Autenticação e provedores | Any file |

681| [`forceRemoteSettingsRefresh`](#forceremotesettingsrefresh) | Bloqueie a inicialização até que as [configurações gerenciadas por servidor](/docs/pt/server-managed-settings) sejam buscadas recentemente | Configurações empresariais e gerenciadas | Managed |682| [`forceRemoteSettingsRefresh`](#forceremotesettingsrefresh) | Bloqueie a inicialização até que as [configurações gerenciadas por servidor](/docs/pt/server-managed-settings) sejam buscadas recentemente | Configurações empresariais e gerenciadas | Managed |

682| [`gcpAuthRefresh`](#gcpauthrefresh) | Atualize as [credenciais Google Cloud](/docs/pt/google-vertex-ai#advanced-credential-configuration) com seu próprio comando | Autenticação e provedores | Any file |683| [`gatewayInternalNetworks`](#gatewayinternalnetworks) | Permita que `/login` alcance um [gateway de nuvem](/docs/pt/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) no espaço IPv4 público que sua organização usa internamente | Autenticação e provedores | Managed |

684| [`gcpAuthRefresh`](#gcpauthrefresh) | Atualize as [credenciais do Google Cloud](/docs/pt/google-vertex-ai#advanced-credential-configuration) com seu próprio comando | Autenticação e provedores | Any file |

683| [`hooks`](#hooks) | Execute seus próprios comandos como [hooks](/docs/pt/hooks) em pontos do ciclo de vida de Claude Code | Hooks e automação | Any file |685| [`hooks`](#hooks) | Execute seus próprios comandos como [hooks](/docs/pt/hooks) em pontos do ciclo de vida de Claude Code | Hooks e automação | Any file |

684| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | Limite quais variáveis de ambiente os [hooks HTTP](/docs/pt/hooks) podem colocar em cabeçalhos | Hooks e automação | Any file |686| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | Limite quais variáveis de ambiente os [hooks HTTP](/docs/pt/hooks) podem colocar em cabeçalhos | Hooks e automação | Any file |

685| [`includeCoAuthoredBy`](#includecoauthoredby) | Descontinuado; use `attribution` para ocultar ou alterar a atribuição de commit e PR | Git e atribuição | Any file |687| [`includeCoAuthoredBy`](#includecoauthoredby) | Descontinuado; use `attribution` para ocultar ou alterar a atribuição de commit e PR | Git e atribuição | Any file |

686| [`includeGitInstructions`](#includegitinstructions) | Remova as instruções de commit e PR integradas do [prompt do sistema](/docs/pt/sub-agents#what-loads-at-startup) | Git e atribuição | Any file |688| [`includeGitInstructions`](#includegitinstructions) | Remova as instruções de commit e PR integradas do [prompt do sistema](/docs/pt/sub-agents#what-loads-at-startup) | Git e atribuição | Any file |

687| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | Obtenha uma [notificação push](/docs/pt/remote-control#mobile-push-notifications) quando Claude estiver esperando por você | Remoto, desktop e notificações | Any file |689| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | Receba uma [notificação push](/docs/pt/remote-control#mobile-push-notifications) quando Claude estiver esperando por você | Remoto, desktop e notificações | Any file |

688| [`isolatePeerMachines`](#isolatepeermachines) | Peça-lhe antes de Claude [enviar mensagem para uma de suas sessões em outra máquina](/docs/pt/cross-session-messaging#require-approval-for-cross-machine-messages) | Agentes, sessões e worktrees | Any file |690| [`isolatePeerMachines`](#isolatepeermachines) | Peça-lhe antes de Claude [enviar mensagem para uma de suas sessões em outra máquina](/docs/pt/cross-session-messaging#require-approval-for-cross-machine-messages) | Agentes, sessões e worktrees | Any file |

689| [`keybindingFlavor`](#keybindingflavor) | Descontinuado e sem efeito; os atalhos de edição de palavras sempre [seguem convenções readline](/docs/pt/interactive-mode#make-ctrl-w-delete-back-to-whitespace) | Interface e terminal | Any file |691| [`keybindingFlavor`](#keybindingflavor) | Descontinuado e sem efeito; os atalhos de edição de palavras sempre [seguem as convenções readline](/docs/pt/interactive-mode#make-ctrl-w-delete-back-to-whitespace) | Interface e terminal | Any file |

690| [`language`](#language) | Faça Claude responder em um idioma diferente do inglês | Modelo e respostas | Any file |692| [`language`](#language) | Faça Claude responder em um idioma diferente do inglês | Modelo e respostas | Any file |

691| [`managedMcpServers`](#managedmcpservers) | Forneça [servidores MCP](/docs/pt/managed-mcp#provide-servers-through-managed-settings) remotos a cada usuário junto com os que adicionam | MCP | Managed |693| [`managedMcpServers`](#managedmcpservers) | Forneça [servidores MCP](/docs/pt/managed-mcp#provide-servers-through-managed-settings) remotos a cada usuário junto com os que eles adicionam | MCP | Managed |

692| [`managedSourcesBehavior`](#managedsourcesbehavior) | Componha cada [fonte gerenciada](/docs/pt/managed-settings#how-claude-code-combines-managed-sources) que você implanta em vez de usar apenas a de maior prioridade | Configurações empresariais e gerenciadas | Managed |694| [`managedSourcesBehavior`](#managedsourcesbehavior) | Componha cada [fonte gerenciada](/docs/pt/managed-settings#how-claude-code-combines-managed-sources) que você implanta em vez de usar apenas a de maior prioridade | Configurações empresariais e gerenciadas | Managed |

693| [`maxEffortLevel`](#maxeffortlevel) | Limite o [nível de esforço](/docs/pt/model-config#adjust-effort-level) para cada modelo ou por modelo, em cada provedor | Modelo e respostas | Any file |695| [`maxEffortLevel`](#maxeffortlevel) | Limite o [nível de esforço](/docs/pt/model-config#adjust-effort-level) para cada modelo ou por modelo, em cada provedor | Modelo e respostas | Any file |

694| [`minimumVersion`](#minimumversion) | Mantenha as [atualizações automáticas](/docs/pt/setup#pin-a-minimum-version) de instalar qualquer coisa abaixo de uma versão | Atualizações e versionamento | Any file |696| [`minimumVersion`](#minimumversion) | Mantenha as [atualizações automáticas](/docs/pt/setup#pin-a-minimum-version) de instalar qualquer coisa abaixo de uma versão | Atualizações e versionamento | Any file |

695| [`model`](#model) | Altere o [modelo](/docs/pt/model-config#set-a-default-model-for-new-sessions) com o qual Claude Code inicia | Modelo e respostas | Any file |697| [`model`](#model) | Altere o [modelo](/docs/pt/model-config#set-a-default-model-for-new-sessions) com o qual Claude Code começa | Modelo e respostas | Any file |

696| [`modelOverrides`](#modeloverrides) | [Mapeie IDs de modelo](/docs/pt/model-config#override-model-ids-per-version) para os IDs de seu provedor, como ARNs Bedrock | Modelo e respostas | Any file |698| [`modelOverrides`](#modeloverrides) | [Mapeie IDs de modelo](/docs/pt/model-config#override-model-ids-per-version) para os IDs do seu provedor, como ARNs do Bedrock | Modelo e respostas | Any file |

697| [`modelPicker`](#modelpicker) | Escolha quais modelos o seletor [`/model`](/docs/pt/model-config#available-models) lista, em sua própria ordem e com seus próprios rótulos | Modelo e respostas | User or managed |699| [`modelPicker`](#modelpicker) | Escolha quais modelos o seletor [`/model`](/docs/pt/model-config#available-models) lista, em sua própria ordem e com seus próprios rótulos | Modelo e respostas | User or managed |

698| [`modelPricing`](#modelpricing) | Relate gastos nas taxas contratadas de sua organização em vez do preço de tabela | Modelo e respostas | Managed |700| [`modelPricing`](#modelpricing) | Relate gastos nas taxas contratadas de sua organização em vez do preço de tabela | Modelo e respostas | Managed |

699| [`modelSettings`](#modelsettings) | Mantenha um [nível de esforço](/docs/pt/model-config#adjust-effort-level) salvo por modelo, ou limite o esforço de um modelo | Modelo e respostas | Any file |701| [`modelSettings`](#modelsettings) | Mantenha um [nível de esforço](/docs/pt/model-config#adjust-effort-level) salvo por modelo, ou limite o esforço de um modelo | Modelo e respostas | Any file |

700| [`otelHeadersHelper`](#otelheadershelper) | Gere cabeçalhos [OpenTelemetry](/docs/pt/monitoring-usage#dynamic-headers) rotativos com seu próprio comando | Autenticação e provedores | Any file |702| [`otelHeadersHelper`](#otelheadershelper) | Gere cabeçalhos [OpenTelemetry](/docs/pt/monitoring-usage#dynamic-headers) rotativos com seu próprio comando | Autenticação e provedores | Any file |

701| [`outputStyle`](#outputstyle) | Altere o papel, tom e formato de saída de Claude com um [estilo de saída](/docs/pt/output-styles) | Modelo e respostas | Any file |703| [`outputStyle`](#outputstyle) | Altere o papel, tom e formato de saída de Claude com um [estilo de saída](/docs/pt/output-styles) | Modelo e respostas | Any file |

702| [`parentSettingsBehavior`](#parentsettingsbehavior) | Aplique ou descarte restrições que um [host SDK ou IDE](/docs/pt/managed-settings#let-an-embedding-host-add-policy) passa quando você implanta [configurações gerenciadas](/docs/pt/managed-settings) | Configurações empresariais e gerenciadas | Managed |704| [`parentSettingsBehavior`](#parentsettingsbehavior) | Aplique ou descarte restrições que um [host SDK ou IDE](/docs/pt/managed-settings#let-an-embedding-host-add-policy) passa quando você implanta [configurações gerenciadas](/docs/pt/managed-settings) | Configurações empresariais e gerenciadas | Managed |

703| [`permissionExplainerEnabled`](#permissionexplainerenabled) | Removido na v2.1.257, junto com a explicação do comando `Ctrl+E` nos prompts de permissão shell | Configurações de config global | Global config |705| [`permissionExplainerEnabled`](#permissionexplainerenabled) | Removido na v2.1.257, junto com a explicação do comando `Ctrl+E` nos prompts de permissão de shell | Configurações de config global | Global config |

704| [`permissions`](#permissions) | Defina regras de permissão, pergunta e negação e o [modo de permissão](/docs/pt/permission-modes) inicial | Configurações de permissão | Any file |706| [`permissions`](#permissions) | Defina regras de permissão, pergunta e negação e o [modo de permissão](/docs/pt/permission-modes) inicial | Configurações de permissão | Any file |

705| [`permissions.additionalDirectories`](#permissions-additionaldirectories) | Dê a Claude acesso a arquivos em [diretórios fora do atual](/docs/pt/permissions#working-directories) | Configurações de permissão | Any file |707| [`permissions.additionalDirectories`](#permissions-additionaldirectories) | Dê a Claude acesso a arquivos em [diretórios fora do atual](/docs/pt/permissions#working-directories) | Configurações de permissão | Any file |

706| [`permissions.allow`](#permissions-allow) | Aprove [usos de ferramenta](/docs/pt/permissions#permission-rule-syntax) listados sem um prompt | Configurações de permissão | Any file |708| [`permissions.allow`](#permissions-allow) | Aprove [usos de ferramentas](/docs/pt/permissions#permission-rule-syntax) listados sem um prompt | Configurações de permissão | Any file |

707| [`permissions.ask`](#permissions-ask) | Sempre solicite antes de [usos de ferramenta](/docs/pt/permissions#permission-rule-syntax) listados | Configurações de permissão | Any file |709| [`permissions.ask`](#permissions-ask) | Sempre solicite antes de [usos de ferramentas](/docs/pt/permissions#permission-rule-syntax) listados | Configurações de permissão | Any file |

708| [`permissions.blockReadsOutsideWorkingDirectories`](#permissions-blockreadsoutsideworkingdirectories) | Faça as ferramentas de arquivo recusarem leituras fora dos [diretórios de trabalho](/docs/pt/permissions#working-directories) em cada modo de permissão | Configurações de permissão | Any file |710| [`permissions.blockReadsOutsideWorkingDirectories`](#permissions-blockreadsoutsideworkingdirectories) | Faça as ferramentas de arquivo recusarem leituras fora dos [diretórios de trabalho](/docs/pt/permissions#working-directories) em cada modo de permissão | Configurações de permissão | Any file |

709| [`permissions.defaultMode`](#permissions-defaultmode) | Defina o [modo de permissão](/docs/pt/permission-modes#which-mode-a-session-starts-in) em que novas sessões iniciam | Configurações de permissão | Any file |711| [`permissions.defaultMode`](#permissions-defaultmode) | Defina o [modo de permissão](/docs/pt/permission-modes#which-mode-a-session-starts-in) em que novas sessões começam | Configurações de permissão | Any file |

710| [`permissions.deny`](#permissions-deny) | Bloqueie [usos de ferramenta](/docs/pt/permissions#permission-rule-syntax) listados, incluindo leituras de arquivos que contêm segredos | Configurações de permissão | Any file |712| [`permissions.deny`](#permissions-deny) | Bloqueie [usos de ferramentas](/docs/pt/permissions#permission-rule-syntax) listados, incluindo leituras de arquivos que contêm segredos | Configurações de permissão | Any file |

711| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | Impeça qualquer pessoa de entrar no [modo bypassPermissions](/docs/pt/permission-modes#skip-all-checks-with-bypasspermissions-mode) | Configurações de permissão | Any file |713| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | Impeça qualquer pessoa de entrar no [modo bypassPermissions](/docs/pt/permission-modes#skip-all-checks-with-bypasspermissions-mode) | Configurações de permissão | Any file |

712| [`plansDirectory`](#plansdirectory) | Escolha onde o [modo de plano](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode) escreve arquivos de plano | Memória e contexto | Any file |714| [`plansDirectory`](#plansdirectory) | Escolha onde o [modo de plano](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode) escreve arquivos de plano | Memória e contexto | Any file |

713| [`pluginConfigs`](#pluginconfigs) | Armazene as respostas que você deu ao diálogo de configuração de um [plugin](/docs/pt/plugins) | Plugins e skills | User or managed |715| [`pluginConfigs`](#pluginconfigs) | Armazene as respostas que você deu ao diálogo de configuração de um [plugin](/docs/pt/plugins) | Plugins e skills | User or managed |


719| [`policyHelper.timeoutMs`](#policyhelper-timeoutms) | Defina quanto tempo Claude Code aguarda o [auxiliar](/docs/pt/managed-settings#compute-the-policy-with-a-helper-program) | Configurações empresariais e gerenciadas | Managed |721| [`policyHelper.timeoutMs`](#policyhelper-timeoutms) | Defina quanto tempo Claude Code aguarda o [auxiliar](/docs/pt/managed-settings#compute-the-policy-with-a-helper-program) | Configurações empresariais e gerenciadas | Managed |

720| [`preferredNotifChannel`](#preferrednotifchannel) | Escolha um [sino de terminal ou notificação de desktop](/docs/pt/terminal-config#get-a-terminal-bell-or-notification) para conclusão de tarefa | Remoto, desktop e notificações | Any file |722| [`preferredNotifChannel`](#preferrednotifchannel) | Escolha um [sino de terminal ou notificação de desktop](/docs/pt/terminal-config#get-a-terminal-bell-or-notification) para conclusão de tarefa | Remoto, desktop e notificações | Any file |

721| [`prefersReducedMotion`](#prefersreducedmotion) | [Reduza ou desative](/docs/pt/accessibility#accessibility-settings) animações de spinner, shimmer e flash | Interface e terminal | Any file |723| [`prefersReducedMotion`](#prefersreducedmotion) | [Reduza ou desative](/docs/pt/accessibility#accessibility-settings) animações de spinner, shimmer e flash | Interface e terminal | Any file |

722| [`processWrapper`](#processwrapper) | Execute os processos em segundo plano de Claude Code através de um [inicializador corporativo](/docs/pt/corporate-launcher) em macOS e Linux | Agentes, sessões e worktrees | User or managed |724| [`processWrapper`](#processwrapper) | Execute os processos em segundo plano de Claude Code através de um [inicializador corporativo](/docs/pt/corporate-launcher) no macOS e Linux | Agentes, sessões e worktrees | User or managed |

723| [`promptCacheTtl`](#promptcachettl) | Escolha o [tempo de vida do cache de prompt](/docs/pt/prompt-caching#cache-lifetime) para a conversa principal | Modelo e respostas | Any file |725| [`promptCacheTtl`](#promptcachettl) | Escolha o [tempo de vida do cache de prompt](/docs/pt/prompt-caching#cache-lifetime) para a conversa principal | Modelo e respostas | Any file |

724| [`promptSuggestionEnabled`](#promptsuggestionenabled) | Oculte as [sugestões de prompt](/docs/pt/interactive-mode#prompt-suggestions) acinzentadas na caixa de entrada | Interface e terminal | Any file |726| [`promptSuggestionEnabled`](#promptsuggestionenabled) | Oculte as [sugestões de prompt](/docs/pt/interactive-mode#prompt-suggestions) acinzentadas na caixa de entrada | Interface e terminal | Any file |

725| [`prUrlTemplate`](#prurltemplate) | Aponte links de PR para uma ferramenta de revisão de código interna em vez de github.com | Git e atribuição | Any file |727| [`prUrlTemplate`](#prurltemplate) | Aponte links de PR para uma ferramenta de revisão de código interna em vez de github.com | Git e atribuição | Any file |

726| [`remote.defaultEnvironmentId`](#remote-defaultenvironmentid) | Escolha o [ambiente de nuvem](/docs/pt/cloud-environments) padrão para `claude --cloud`; um ID `ccpool_` auto-hospedado é somente leitura de configurações de usuário e gerenciadas e `--settings` | Remoto, desktop e notificações | Any file |728| [`remote.defaultEnvironmentId`](#remote-defaultenvironmentid) | Escolha o [ambiente de nuvem](/docs/pt/cloud-environments) padrão para `claude --cloud`; um ID `ccpool_` auto-hospedado é somente leitura a partir de configurações de usuário e gerenciadas e `--settings` | Remoto, desktop e notificações | Any file |

727| [`remoteControlAtStartup`](#remotecontrolatstartup) | Conecte o [Remote Control](/docs/pt/remote-control#enable-remote-control-for-all-sessions) automaticamente quando uma sessão inicia | Remoto, desktop e notificações | Any file |729| [`remoteControlAtStartup`](#remotecontrolatstartup) | Conecte o [Remote Control](/docs/pt/remote-control#enable-remote-control-for-all-sessions) automaticamente quando uma sessão começar | Remoto, desktop e notificações | Any file |

728| [`requiredMaximumVersion`](#requiredmaximumversion) | [Recuse-se a iniciar](/docs/pt/setup#pin-a-minimum-version) em uma versão mais recente do que sua organização permite | Atualizações e versionamento | Managed |730| [`requiredMaximumVersion`](#requiredmaximumversion) | [Recuse-se a iniciar](/docs/pt/setup#pin-a-minimum-version) em uma versão mais recente do que sua organização permite | Atualizações e versionamento | Managed |

729| [`requiredMinimumVersion`](#requiredminimumversion) | [Recuse-se a iniciar](/docs/pt/setup#pin-a-minimum-version) em uma versão mais antiga do que sua organização exige | Atualizações e versionamento | Managed |731| [`requiredMinimumVersion`](#requiredminimumversion) | [Recuse-se a iniciar](/docs/pt/setup#pin-a-minimum-version) em uma versão mais antiga do que sua organização exige | Atualizações e versionamento | Managed |

730| [`respectGitignore`](#respectgitignore) | Mantenha arquivos ignorados pelo git fora do [seletor de arquivo `@`](/docs/pt/interactive-mode#quick-commands) | Interface e terminal | Any file |732| [`respectGitignore`](#respectgitignore) | Mantenha arquivos ignorados pelo git fora do [seletor de arquivo `@`](/docs/pt/interactive-mode#quick-commands) | Interface e terminal | Any file |

731| [`respondToBashCommands`](#respondtobashcommands) | Impeça Claude de responder após um comando shell [`!`](/docs/pt/interactive-mode#shell-mode-with-prefix) ser executado | Interface e terminal | Any file |733| [`respondToBashCommands`](#respondtobashcommands) | Impeça Claude de responder após um comando shell [`!`](/docs/pt/interactive-mode#shell-mode-with-prefix) ser executado | Interface e terminal | Any file |

732| [`sandbox`](#sandbox) | [Isole comandos Bash](/docs/pt/sandboxing) de seu sistema de arquivos e rede em macOS, Linux e WSL2 | Configurações de sandbox | Any file |734| [`sandbox`](#sandbox) | [Isole comandos Bash](/docs/pt/sandboxing) do seu sistema de arquivos e rede no macOS, Linux e WSL2 | Configurações de sandbox | Any file |

733| [`sandbox.allowAppleEvents`](#sandbox-allowappleevents) | Permita que [comandos em sandbox](/docs/pt/sandboxing) enviem Apple Events em macOS | Configurações de sandbox | User or managed |735| [`sandbox.allowAppleEvents`](#sandbox-allowappleevents) | Permita que [comandos em sandbox](/docs/pt/sandboxing) enviem Apple Events no macOS | Configurações de sandbox | User or managed |

734| [`sandbox.allowUnsandboxedCommands`](#sandbox-allowunsandboxedcommands) | Permita que Claude tente novamente um comando bloqueado fora do [sandbox](/docs/pt/sandboxing#the-unsandboxed-retry-escape-hatch), ou proíba-o | Configurações de sandbox | Any file |736| [`sandbox.allowUnsandboxedCommands`](#sandbox-allowunsandboxedcommands) | Permita que Claude tente novamente um comando bloqueado fora do [sandbox](/docs/pt/sandboxing#the-unsandboxed-retry-escape-hatch), ou proíba-o | Configurações de sandbox | Any file |

735| [`sandbox.autoAllowBashIfSandboxed`](#sandbox-autoallowbashifsandboxed) | Execute [comandos em sandbox](/docs/pt/sandboxing#auto-allow-mode) sem um prompt de permissão | Configurações de sandbox | Any file |737| [`sandbox.autoAllowBashIfSandboxed`](#sandbox-autoallowbashifsandboxed) | Execute [comandos em sandbox](/docs/pt/sandboxing#auto-allow-mode) sem um prompt de permissão | Configurações de sandbox | Any file |

736| [`sandbox.bwrapPath`](#sandbox-bwrappath) | Aponte o [sandbox](/docs/pt/sandboxing) para um binário bubblewrap fora de `PATH` | Configurações de sandbox | Managed |738| [`sandbox.bwrapPath`](#sandbox-bwrappath) | Aponte o [sandbox](/docs/pt/sandboxing) para um binário bubblewrap fora de `PATH` | Configurações de sandbox | Managed |


738| [`sandbox.credentials.allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) | Permita que [credenciais mascaradas](/docs/pt/sandboxing#mask-credentials) alcancem serviços HTTP simples em redes de teste confiáveis | Configurações de sandbox | User or managed |740| [`sandbox.credentials.allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) | Permita que [credenciais mascaradas](/docs/pt/sandboxing#mask-credentials) alcancem serviços HTTP simples em redes de teste confiáveis | Configurações de sandbox | User or managed |

739| [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs) | Vincule variáveis de chave AWS com nomes personalizados em uma credencial para [re-assinatura](/docs/pt/sandboxing#re-sign-aws-requests) | Configurações de sandbox | User or managed |741| [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs) | Vincule variáveis de chave AWS com nomes personalizados em uma credencial para [re-assinatura](/docs/pt/sandboxing#re-sign-aws-requests) | Configurações de sandbox | User or managed |

740| [`sandbox.credentials.envVars`](#sandbox-credentials-envvars) | Desdefina ou mascare uma variável de ambiente dentro do [sandbox](/docs/pt/sandboxing#mask-environment-variables) | Configurações de sandbox | Any file |742| [`sandbox.credentials.envVars`](#sandbox-credentials-envvars) | Desdefina ou mascare uma variável de ambiente dentro do [sandbox](/docs/pt/sandboxing#mask-environment-variables) | Configurações de sandbox | Any file |

741| [`sandbox.credentials.files`](#sandbox-credentials-files) | Bloqueie ou mascare leituras de um arquivo de credencial dentro do [sandbox](/docs/pt/sandboxing#mask-credential-files) | Configurações de sandbox | Any file |743| [`sandbox.credentials.files`](#sandbox-credentials-files) | Bloqueie ou mascare leituras de um arquivo de credenciais dentro do [sandbox](/docs/pt/sandboxing#mask-credential-files) | Configurações de sandbox | Any file |

742| [`sandbox.credentials.sigv4`](#sandbox-credentials-sigv4) | Escolha se solicitações AWS [SigV4A](/docs/pt/sandboxing#re-sign-aws-requests) de streaming, pré-assinadas ou falham ou passam | Configurações de sandbox | User or managed |744| [`sandbox.credentials.sigv4`](#sandbox-credentials-sigv4) | Escolha se solicitações [SigV4A AWS](/docs/pt/sandboxing#re-sign-aws-requests) de streaming, pré-assinadas ou falham ou passam | Configurações de sandbox | User or managed |

743| [`sandbox.enabled`](#sandbox-enabled) | Ative o [sandboxing de Bash](/docs/pt/sandboxing#get-started) em macOS, Linux e WSL2 | Configurações de sandbox | Any file |745| [`sandbox.enabled`](#sandbox-enabled) | Ative o [sandboxing de Bash](/docs/pt/sandboxing#get-started) no macOS, Linux e WSL2 | Configurações de sandbox | Any file |

744| [`sandbox.enableWeakerNestedSandbox`](#sandbox-enableweakernestedsandbox) | Execute o [sandbox](/docs/pt/sandboxing) Linux dentro de um contêiner sem privilégios | Configurações de sandbox | Any file |746| [`sandbox.enableWeakerNestedSandbox`](#sandbox-enableweakernestedsandbox) | Execute o [sandbox](/docs/pt/sandboxing) do Linux dentro de um contêiner sem privilégios | Configurações de sandbox | Any file |

745| [`sandbox.enableWeakerNetworkIsolation`](#sandbox-enableweakernetworkisolation) | Permita que `gh`, `gcloud` e `terraform` verifiquem TLS atrás de um proxy MITM dentro do [sandbox](/docs/pt/sandboxing#troubleshooting) em macOS | Configurações de sandbox | Any file |747| [`sandbox.enableWeakerNetworkIsolation`](#sandbox-enableweakernetworkisolation) | Permita que `gh`, `gcloud` e `terraform` verifiquem TLS atrás de um proxy MITM dentro do [sandbox](/docs/pt/sandboxing#troubleshooting) no macOS | Configurações de sandbox | Any file |

746| [`sandbox.excludedCommands`](#sandbox-excludedcommands) | Nomeie comandos que sempre executam fora do [sandbox](/docs/pt/sandboxing) | Configurações de sandbox | Any file |748| [`sandbox.excludedCommands`](#sandbox-excludedcommands) | Nomeie comandos que sempre executam fora do [sandbox](/docs/pt/sandboxing) | Configurações de sandbox | Any file |

747| [`sandbox.failIfUnavailable`](#sandbox-failifunavailable) | Recuse-se a iniciar quando o [sandbox](/docs/pt/sandboxing) não puder, em vez de executar sem sandbox | Configurações de sandbox | Any file |749| [`sandbox.failIfUnavailable`](#sandbox-failifunavailable) | Recuse-se a iniciar quando o [sandbox](/docs/pt/sandboxing) não puder, em vez de executar sem sandbox | Configurações de sandbox | Any file |

748| [`sandbox.filesystem`](#sandbox-filesystem) | Controle quais caminhos [comandos em sandbox](/docs/pt/sandboxing#filesystem-isolation) podem ler e escrever | Configurações de sandbox | Any file |750| [`sandbox.filesystem`](#sandbox-filesystem) | Controle quais caminhos [comandos em sandbox](/docs/pt/sandboxing#filesystem-isolation) podem ler e escrever | Configurações de sandbox | Any file |


755| [`sandbox.ignoreViolations`](#sandbox-ignoreviolations) | Silencie relatórios de violação para caminhos que um comando deve sondar | Configurações de sandbox | Any file |757| [`sandbox.ignoreViolations`](#sandbox-ignoreviolations) | Silencie relatórios de violação para caminhos que um comando deve sondar | Configurações de sandbox | Any file |

756| [`sandbox.network`](#sandbox-network) | Controle quais hosts, portas e sockets [comandos em sandbox](/docs/pt/sandboxing#network-isolation) alcançam | Configurações de sandbox | Any file |758| [`sandbox.network`](#sandbox-network) | Controle quais hosts, portas e sockets [comandos em sandbox](/docs/pt/sandboxing#network-isolation) alcançam | Configurações de sandbox | Any file |

757| [`sandbox.network.allowAllUnixSockets`](#sandbox-network-allowallunixsockets) | Permita que [comandos em sandbox](/docs/pt/sandboxing) se conectem a cada socket Unix | Configurações de sandbox | Any file |759| [`sandbox.network.allowAllUnixSockets`](#sandbox-network-allowallunixsockets) | Permita que [comandos em sandbox](/docs/pt/sandboxing) se conectem a cada socket Unix | Configurações de sandbox | Any file |

758| [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) | Pré-permita domínios para que [comandos em sandbox](/docs/pt/sandboxing) não solicitem permissão | Configurações de sandbox | Any file |760| [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) | Pré-permita domínios para que [comandos em sandbox](/docs/pt/sandboxing) não solicitem permissão para eles | Configurações de sandbox | Any file |

759| [`sandbox.network.allowLocalBinding`](#sandbox-network-allowlocalbinding) | Permita que [comandos em sandbox](/docs/pt/sandboxing) se vinculem a portas localhost em macOS | Configurações de sandbox | Any file |761| [`sandbox.network.allowLocalBinding`](#sandbox-network-allowlocalbinding) | Permita que [comandos em sandbox](/docs/pt/sandboxing) se vinculem a portas localhost no macOS | Configurações de sandbox | Any file |

760| [`sandbox.network.allowMachLookup`](#sandbox-network-allowmachlookup) | Permita que ferramentas macOS [em sandbox](/docs/pt/sandboxing) como o iOS Simulator ou Playwright alcancem seus serviços XPC | Configurações de sandbox | Any file |762| [`sandbox.network.allowMachLookup`](#sandbox-network-allowmachlookup) | Permita que ferramentas macOS [em sandbox](/docs/pt/sandboxing) como o iOS Simulator ou Playwright alcancem seus serviços XPC | Configurações de sandbox | Any file |

761| [`sandbox.network.allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) | Bloqueie a lista de permissões de rede para [configurações gerenciadas](/docs/pt/sandboxing#keep-developers-from-widening-the-policy) | Configurações de sandbox | Managed |763| [`sandbox.network.allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) | Bloqueie a lista de permissões de rede para [configurações gerenciadas](/docs/pt/sandboxing#keep-developers-from-widening-the-policy) | Configurações de sandbox | Managed |

762| [`sandbox.network.allowUnixSockets`](#sandbox-network-allowunixsockets) | Liste caminhos de socket Unix que [comandos em sandbox](/docs/pt/sandboxing) podem usar em macOS | Configurações de sandbox | Any file |764| [`sandbox.network.allowUnixSockets`](#sandbox-network-allowunixsockets) | Liste caminhos de socket Unix que [comandos em sandbox](/docs/pt/sandboxing) podem usar no macOS | Configurações de sandbox | Any file |

763| [`sandbox.network.deniedDomains`](#sandbox-network-denieddomains) | Bloqueie domínios para [comandos em sandbox](/docs/pt/sandboxing), mesmo dentro de um curinga permitido | Configurações de sandbox | Any file |765| [`sandbox.network.deniedDomains`](#sandbox-network-denieddomains) | Bloqueie domínios para [comandos em sandbox](/docs/pt/sandboxing), mesmo dentro de um curinga permitido | Configurações de sandbox | Any file |

764| [`sandbox.network.httpProxyPort`](#sandbox-network-httpproxyport) | Roteie o tráfego HTTP do [sandbox](/docs/pt/sandboxing#custom-proxy-configuration) através de seu próprio proxy | Configurações de sandbox | Any file |766| [`sandbox.network.httpProxyPort`](#sandbox-network-httpproxyport) | Roteie o tráfego HTTP do [sandbox](/docs/pt/sandboxing#custom-proxy-configuration) através de seu próprio proxy | Configurações de sandbox | Any file |

765| [`sandbox.network.socksProxyPort`](#sandbox-network-socksproxyport) | Roteie o tráfego SOCKS do [sandbox](/docs/pt/sandboxing#custom-proxy-configuration) através de seu próprio proxy | Configurações de sandbox | Any file |767| [`sandbox.network.socksProxyPort`](#sandbox-network-socksproxyport) | Roteie o tráfego SOCKS do [sandbox](/docs/pt/sandboxing#custom-proxy-configuration) através de seu próprio proxy | Configurações de sandbox | Any file |

766| [`sandbox.network.strictAllowlist`](#sandbox-network-strictallowlist) | Negue hosts fora da [lista de permissões](/docs/pt/sandboxing#network-isolation) em vez de solicitar | Configurações de sandbox | User or managed |768| [`sandbox.network.strictAllowlist`](#sandbox-network-strictallowlist) | Negue hosts fora da [lista de permissões](/docs/pt/sandboxing#network-isolation) em vez de solicitar | Configurações de sandbox | User or managed |

767| [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) | Faça o [sandbox](/docs/pt/sandboxing#network-isolation) proxy terminar TLS para que possa ler solicitações HTTPS | Configurações de sandbox | User or managed |769| [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) | Faça o [sandbox](/docs/pt/sandboxing#network-isolation) fazer proxy terminar TLS para que possa ler solicitações HTTPS | Configurações de sandbox | User or managed |

768| [`sandbox.ripgrep`](#sandbox-ripgrep) | Use seu próprio binário ripgrep dentro do [sandbox](/docs/pt/sandboxing) | Configurações de sandbox | User or managed |770| [`sandbox.ripgrep`](#sandbox-ripgrep) | Use seu próprio binário ripgrep dentro do [sandbox](/docs/pt/sandboxing) | Configurações de sandbox | User or managed |

769| [`sandbox.socatPath`](#sandbox-socatpath) | Aponte o proxy do [sandbox](/docs/pt/sandboxing) para um binário `socat` fora de `PATH` | Configurações de sandbox | Managed |771| [`sandbox.socatPath`](#sandbox-socatpath) | Aponte o proxy do [sandbox](/docs/pt/sandboxing) para um binário `socat` fora de `PATH` | Configurações de sandbox | Managed |

770| [`showClearContextOnPlanAccept`](#showclearcontextonplanaccept) | Mostre uma opção "limpar contexto" na [tela de aceitação de plano](/docs/pt/permission-modes#review-and-approve-a-plan) | Interface e terminal | Any file |772| [`showClearContextOnPlanAccept`](#showclearcontextonplanaccept) | Mostre uma opção "limpar contexto" na [tela de aceitação de plano](/docs/pt/permission-modes#review-and-approve-a-plan) | Interface e terminal | Any file |


773| [`skillListingBudgetFraction`](#skilllistingbudgetfraction) | Reserve mais ou menos contexto para a [listagem de skills](/docs/pt/skills#skill-descriptions-are-cut-short) | Memória e contexto | Any file |775| [`skillListingBudgetFraction`](#skilllistingbudgetfraction) | Reserve mais ou menos contexto para a [listagem de skills](/docs/pt/skills#skill-descriptions-are-cut-short) | Memória e contexto | Any file |

774| [`skillListingMaxDescChars`](#skilllistingmaxdescchars) | Limite o comprimento da descrição de cada skill na [listagem de skills](/docs/pt/skills#skill-descriptions-are-cut-short) | Memória e contexto | Any file |776| [`skillListingMaxDescChars`](#skilllistingmaxdescchars) | Limite o comprimento da descrição de cada skill na [listagem de skills](/docs/pt/skills#skill-descriptions-are-cut-short) | Memória e contexto | Any file |

775| [`skillOverrides`](#skilloverrides) | [Oculte ou recolha uma skill](/docs/pt/skills#override-skill-visibility-from-settings) sem editar seu SKILL.md | Plugins e skills | Any file |777| [`skillOverrides`](#skilloverrides) | [Oculte ou recolha uma skill](/docs/pt/skills#override-skill-visibility-from-settings) sem editar seu SKILL.md | Plugins e skills | Any file |

776| [`skipAutoPermissionPrompt`](#skipautopermissionprompt) | Pule o aviso único que Claude Code mostra quando você entra no [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) você mesmo em vez de através do padrão integrado | Configurações de permissão | User or managed |778| [`skipAutoPermissionPrompt`](#skipautopermissionprompt) | Pule o aviso único que Claude Code mostra quando você entra no [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) por conta própria em vez de através do padrão integrado | Configurações de permissão | User or managed |

777| [`skipDangerousModePermissionPrompt`](#skipdangerousmodepermissionprompt) | Pule o diálogo de confirmação antes do [modo bypassPermissions](/docs/pt/permission-modes#skip-all-checks-with-bypasspermissions-mode) | Configurações de permissão | User, local, or managed |779| [`skipDangerousModePermissionPrompt`](#skipdangerousmodepermissionprompt) | Pule o diálogo de confirmação antes do [modo bypassPermissions](/docs/pt/permission-modes#skip-all-checks-with-bypasspermissions-mode) | Configurações de permissão | User, local, or managed |

778| [`skipWebFetchPreflight`](#skipwebfetchpreflight) | Pule a [verificação de nome de host WebFetch](/docs/pt/tools-reference#webfetch-tool-behavior) quando Anthropic estiver inacessível | Privacidade e telemetria | Any file |780| [`skipWebFetchPreflight`](#skipwebfetchpreflight) | Pule a [verificação de nome de host WebFetch](/docs/pt/tools-reference#webfetch-tool-behavior) quando Anthropic estiver inacessível | Privacidade e telemetria | Any file |

779| [`spellcheck`](#spellcheck) | Sublinhe palavras com erros de ortografia na entrada do prompt com um [verificador de ortografia](/docs/pt/interactive-mode#check-spelling-as-you-type) que você instala | Interface e terminal | User or managed |781| [`spellcheck`](#spellcheck) | Sublinhe palavras com erros de ortografia na entrada do prompt com um [verificador de ortografia](/docs/pt/interactive-mode#check-spelling-as-you-type) que você instala | Interface e terminal | User or managed |


781| [`spinnerTipsOverride`](#spinnertipsoverride) | Adicione suas próprias dicas à rotação do spinner, ou substitua as dicas integradas | Interface e terminal | Any file |783| [`spinnerTipsOverride`](#spinnertipsoverride) | Adicione suas próprias dicas à rotação do spinner, ou substitua as dicas integradas | Interface e terminal | Any file |

782| [`spinnerVerbs`](#spinnerverbs) | Adicione ou substitua os verbos mostrados enquanto uma volta é executada | Interface e terminal | Any file |784| [`spinnerVerbs`](#spinnerverbs) | Adicione ou substitua os verbos mostrados enquanto uma volta é executada | Interface e terminal | Any file |

783| [`sshConfigs`](#sshconfigs) | Adicione [conexões SSH](/docs/pt/desktop#pre-configure-ssh-connections-for-your-team) ao dropdown de ambiente Desktop | Remoto, desktop e notificações | User or managed |785| [`sshConfigs`](#sshconfigs) | Adicione [conexões SSH](/docs/pt/desktop#pre-configure-ssh-connections-for-your-team) ao dropdown de ambiente Desktop | Remoto, desktop e notificações | User or managed |

784| [`sshHostAllowlist`](#sshhostallowlist) | Limite quais hosts as [sessões SSH Desktop](/docs/pt/desktop#restrict-which-ssh-hosts-users-can-connect-to) podem alcançar | Remoto, desktop e notificações | Managed |786| [`sshHostAllowlist`](#sshhostallowlist) | Limite quais hosts as [sessões SSH do Desktop](/docs/pt/desktop#restrict-which-ssh-hosts-users-can-connect-to) podem alcançar | Remoto, desktop e notificações | Managed |

785| [`statusLine`](#statusline) | Execute seu próprio comando para renderizar uma [linha de status](/docs/pt/statusline) abaixo do prompt | Interface e terminal | Any file |787| [`statusLine`](#statusline) | Execute seu próprio comando para renderizar uma [linha de status](/docs/pt/statusline) abaixo do prompt | Interface e terminal | Any file |

786| [`strictKnownMarketplaces`](#strictknownmarketplaces) | Lista de permissões das [fontes de marketplace](/docs/pt/plugin-marketplaces) que os usuários podem adicionar e instalar | Plugins e skills | Managed |788| [`strictKnownMarketplaces`](#strictknownmarketplaces) | Lista de permissões das fontes de [marketplace](/docs/pt/plugin-marketplaces) que os usuários podem adicionar e instalar | Plugins e skills | Managed |

787| [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | Bloqueie [skills](/docs/pt/skills), [agentes](/docs/pt/sub-agents), [hooks](/docs/pt/hooks) e [servidores MCP](/docs/pt/mcp) de fontes de usuário e projeto | Plugins e skills | Managed |789| [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | Bloqueie [skills](/docs/pt/skills), [agentes](/docs/pt/sub-agents), [hooks](/docs/pt/hooks) e [servidores MCP](/docs/pt/mcp) de fontes de usuário e projeto | Plugins e skills | Managed |

788| [`strictPluginOnlyCustomization.agents`](#strictpluginonlycustomization-agents) | Bloqueie [agentes](/docs/pt/sub-agents) para fontes de plugin e gerenciadas | Plugins e skills | Managed |790| [`strictPluginOnlyCustomization.agents`](#strictpluginonlycustomization-agents) | Restrinja [agentes](/docs/pt/sub-agents) a fontes de plugin e gerenciadas | Plugins e skills | Managed |

789| [`strictPluginOnlyCustomization.hooks`](#strictpluginonlycustomization-hooks) | Bloqueie [hooks](/docs/pt/hooks) para fontes de plugin e gerenciadas | Plugins e skills | Managed |791| [`strictPluginOnlyCustomization.hooks`](#strictpluginonlycustomization-hooks) | Restrinja [hooks](/docs/pt/hooks) a fontes de plugin e gerenciadas | Plugins e skills | Managed |

790| [`strictPluginOnlyCustomization.mcp`](#strictpluginonlycustomization-mcp) | Bloqueie [servidores MCP](/docs/pt/mcp) para fontes de plugin e gerenciadas | Plugins e skills | Managed |792| [`strictPluginOnlyCustomization.mcp`](#strictpluginonlycustomization-mcp) | Restrinja [servidores MCP](/docs/pt/mcp) a fontes de plugin e gerenciadas | Plugins e skills | Managed |

791| [`strictPluginOnlyCustomization.skills`](#strictpluginonlycustomization-skills) | Bloqueie [skills](/docs/pt/skills) para fontes de plugin e gerenciadas | Plugins e skills | Managed |793| [`strictPluginOnlyCustomization.skills`](#strictpluginonlycustomization-skills) | Restrinja [skills](/docs/pt/skills) a fontes de plugin e gerenciadas | Plugins e skills | Managed |

792| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | Escolha o [tempo de vida do cache de prompt](/docs/pt/prompt-caching#cache-lifetime) para subagentes e outras solicitações fora da conversa principal | Modelo e respostas | Any file |794| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | Escolha o [tempo de vida do cache de prompt](/docs/pt/prompt-caching#cache-lifetime) para subagentes e outras solicitações fora da conversa principal | Modelo e respostas | Any file |

793| [`subagentStatusLine`](#subagentstatusline) | Reescreva linhas na [exibição de tarefa](/docs/pt/sub-agents) do subagente com seu próprio comando | Interface e terminal | Any file |795| [`subagentStatusLine`](#subagentstatusline) | Reescreva linhas na [exibição de tarefa do subagente](/docs/pt/sub-agents) com seu próprio comando | Interface e terminal | Any file |

794| [`switchModelsOnFlag`](#switchmodelsonflag) | Alterne modelos automaticamente ou pause quando um [classificador de segurança](/docs/pt/model-config#ask-before-switching) sinaliza uma solicitação | Modelo e respostas | Any file |796| [`switchModelsOnFlag`](#switchmodelsonflag) | Alterne modelos automaticamente ou pause quando um [classificador de segurança](/docs/pt/model-config#ask-before-switching) sinalizar uma solicitação | Modelo e respostas | Any file |

795| [`syncClaudeAiSkills`](#syncclaudeaiskills) | Pare de baixar as [skills habilitadas em sua conta claude.ai](/docs/pt/skills#how-synced-skills-behave) e oculte as já sincronizadas | Plugins e skills | User, local, or managed |797| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | Pare de carregar os [plugins ativados em sua conta claude.ai](/docs/pt/plugins-reference#synced-plugins) e pare de baixar novos | Plugins e skills | User, local, or managed |

798| [`syncClaudeAiSkills`](#syncclaudeaiskills) | Pare de carregar as [skills ativadas em sua conta claude.ai](/docs/pt/skills#how-synced-skills-behave) e pare de baixar novas | Plugins e skills | User, local, or managed |

796| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | Desative o destaque de sintaxe em diffs e blocos de código | Interface e terminal | Any file |799| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | Desative o destaque de sintaxe em diffs e blocos de código | Interface e terminal | Any file |

797| [`taskOutputMaxChars`](#taskoutputmaxchars) | Defina quanto da [saída de uma tarefa em segundo plano](/docs/pt/tools-reference#background-commands) Claude recebe inline | Memória e contexto | Any file |800| [`taskOutputMaxChars`](#taskoutputmaxchars) | Defina quanto da [saída de tarefa em segundo plano](/docs/pt/tools-reference#background-commands) Claude recebe inline | Memória e contexto | Any file |

798| [`teammateDefaultModel`](#teammatedefaultmodel) | Removido na v2.1.234; veja [Especificar companheiros de equipe e modelos](/docs/pt/agent-teams#specify-teammates-and-models) para como Claude Code escolhe o modelo de um companheiro de equipe | Configurações de config global | Global config |801| [`teammateDefaultModel`](#teammatedefaultmodel) | Removido na v2.1.234; veja [Especificar companheiros de equipe e modelos](/docs/pt/agent-teams#specify-teammates-and-models) para como Claude Code escolhe o modelo de um companheiro de equipe | Configurações de config global | Global config |

799| [`teammateMode`](#teammatemode) | Escolha como [companheiros de equipe de agente exibem](/docs/pt/agent-teams#choose-a-display-mode) | Agentes, sessões e worktrees | Any file |802| [`teammateMode`](#teammatemode) | Escolha como [companheiros de equipe de agente exibem](/docs/pt/agent-teams#choose-a-display-mode) | Agentes, sessões e worktrees | Any file |

800| [`terminalProgressBarEnabled`](#terminalprogressbarenabled) | Oculte a barra de progresso do terminal em terminais que a suportam | Interface e terminal | Any file |803| [`terminalProgressBarEnabled`](#terminalprogressbarenabled) | Oculte a barra de progresso do terminal em terminais que a suportam | Interface e terminal | Any file |


813| [`wheelScrollAccelerationEnabled`](#wheelscrollaccelerationenabled) | Desative a [aceleração de roda do mouse](/docs/pt/fullscreen#mouse-wheel-scrolling) na renderização em tela cheia | Interface e terminal | Any file |816| [`wheelScrollAccelerationEnabled`](#wheelscrollaccelerationenabled) | Desative a [aceleração de roda do mouse](/docs/pt/fullscreen#mouse-wheel-scrolling) na renderização em tela cheia | Interface e terminal | Any file |

814| [`workflowKeywordTriggerEnabled`](#workflowkeywordtriggerenabled) | Permita que a palavra `ultracode` em um prompt inicie um [workflow](/docs/pt/workflows); defina `false` para digitá-la sem iniciar um | Hooks e automação | Any file |817| [`workflowKeywordTriggerEnabled`](#workflowkeywordtriggerenabled) | Permita que a palavra `ultracode` em um prompt inicie um [workflow](/docs/pt/workflows); defina `false` para digitá-la sem iniciar um | Hooks e automação | Any file |

815| [`workflowSizeGuideline`](#workflowsizeguideline) | Defina a contagem de agentes que Claude visa em [workflows dinâmicos](/docs/pt/workflows) | Hooks e automação | Any file |818| [`workflowSizeGuideline`](#workflowsizeguideline) | Defina a contagem de agentes que Claude visa em [workflows dinâmicos](/docs/pt/workflows) | Hooks e automação | Any file |

816| [`worktree`](#worktree) | Configure como Claude Code cria [worktrees](/docs/pt/worktrees) git | Agentes, sessões e worktrees | Any file |819| [`worktree`](#worktree) | Configure como Claude Code cria git [worktrees](/docs/pt/worktrees) | Agentes, sessões e worktrees | Any file |

817| [`worktree.baseRef`](#worktree-baseref) | Ramifique novos [worktrees](/docs/pt/worktrees) a partir do branch padrão remoto ou seu HEAD local | Agentes, sessões e worktrees | Any file |820| [`worktree.baseRef`](#worktree-baseref) | Ramifique novos [worktrees](/docs/pt/worktrees) a partir do branch padrão remoto ou seu HEAD local | Agentes, sessões e worktrees | Any file |

818| [`worktree.bgIsolation`](#worktree-bgisolation) | Permita que sessões em segundo plano editem a cópia de trabalho sem um [worktree](/docs/pt/worktrees) | Agentes, sessões e worktrees | Any file |821| [`worktree.bgIsolation`](#worktree-bgisolation) | Permita que sessões em segundo plano editem a cópia de trabalho sem um [worktree](/docs/pt/worktrees) | Agentes, sessões e worktrees | Any file |

819| [`worktree.sparsePaths`](#worktree-sparsepaths) | Verifique apenas os diretórios que você precisa em cada [worktree](/docs/pt/worktrees) | Agentes, sessões e worktrees | Any file |822| [`worktree.sparsePaths`](#worktree-sparsepaths) | Verifique apenas os diretórios que você precisa em cada [worktree](/docs/pt/worktrees) | Agentes, sessões e worktrees | Any file |

820| [`worktree.symlinkDirectories`](#worktree-symlinkdirectories) | Crie links simbólicos para diretórios grandes em cada [worktree](/docs/pt/worktrees) em vez de duplicá-los | Agentes, sessões e worktrees | Any file |823| [`worktree.symlinkDirectories`](#worktree-symlinkdirectories) | Crie symlinks de diretórios grandes em cada [worktree](/docs/pt/worktrees) em vez de duplicá-los | Agentes, sessões e worktrees | Any file |

821| [`wslInheritsWindowsSettings`](#wslinheritswindowssettings) | Faça o WSL ler [configurações gerenciadas](/docs/pt/managed-settings) da cadeia de política do Windows | Configurações empresariais e gerenciadas | Managed |824| [`wslInheritsWindowsSettings`](#wslinheritswindowssettings) | Faça WSL ler [configurações gerenciadas](/docs/pt/managed-settings) da cadeia de política do Windows | Configurações empresariais e gerenciadas | Managed |

822 825 

823<h2 id="model-and-responses">826<h2 id="model-and-responses">

824 Modelo e respostas827 Modelo e respostas


1152* **Tipo**: objeto com um `multiplier` opcional e um mapa `overrides` opcional1155* **Tipo**: objeto com um `multiplier` opcional e um mapa `overrides` opcional

1153* **Padrão**: sem definir, então Claude Code relata preço de lista a menos que um aplicativo host forneça uma tabela1156* **Padrão**: sem definir, então Claude Code relata preço de lista a menos que um aplicativo host forneça uma tabela

1154 1157 

1155Este exemplo define taxas contratadas para Sonnet 4.6 e depois reduz cada figura, a linha Sonnet incluída, em 15%. Defina `multiplier` sozinho para um desconto fixo, `overrides` sozinho para taxas por modelo ou ambos:1158Defina `multiplier` sozinho para um desconto fixo, `overrides` sozinho para taxas por modelo ou ambos.

1159 

1160Este exemplo define taxas contratadas para Sonnet 4.6 e depois reduz cada figura, a linha Sonnet incluída, em 15%:

1156 1161 

1157```json managed-settings.json theme={null}1162```json managed-settings.json theme={null}

1158{1163{


1170}1175}

1171```1176```

1172 1177 

1178Defina `multiplier` acima de 1, até 10, para marcar cada figura para cima. Uma marcação requer Claude Code v2.1.271 ou posterior. Versões anteriores ignoram um `multiplier` acima de 1 com um aviso e mantêm o resto da configuração.

1179 

1173Para as etapas, incluindo como confirmar que as taxas estão em vigor, consulte [Relate gastos em suas taxas contratadas](/docs/pt/costs#report-spend-at-your-contracted-rates).1180Para as etapas, incluindo como confirmar que as taxas estão em vigor, consulte [Relate gastos em suas taxas contratadas](/docs/pt/costs#report-spend-at-your-contracted-rates).

1174 1181 

1175<span id="modelpricing-multiplier" />1182<span id="modelpricing-multiplier" />


1182 1189 

1183| Campo | Tipo | O que faz |1190| Campo | Tipo | O que faz |

1184| :----------- | :------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1191| :----------- | :------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1185| `multiplier` | número maior que 0 e no máximo 1 | Dimensiona cada custo que Claude Code calcula, independentemente de uma linha `overrides` cobri-lo |1192| `multiplier` | número maior que 0 e no máximo 10 | Dimensiona cada custo que Claude Code calcula, independentemente de uma linha `overrides` cobri-lo. Abaixo de 1 é um desconto, acima de 1 uma marcação |

1186| `overrides` | mapa de ID de modelo para um objeto de taxa com `input`, `output`, `cacheRead` e `cacheWrite`, cada um de 0 a 10000 | As taxas USD-por-milhão-de-tokens para esse modelo, todos os quatro obrigatórios. `cacheWrite` cobre tanto gravações de cache de cinco minutos quanto de uma hora. Consulte [Quais modelos uma linha `modelPricing` se aplica a](#which-models-a-modelpricing-row-applies-to) |1193| `overrides` | mapa de ID de modelo para um objeto de taxa com `input`, `output`, `cacheRead` e `cacheWrite`, cada um de 0 a 10000 | As taxas USD-por-milhão-de-tokens para esse modelo, todos os quatro obrigatórios. `cacheWrite` cobre tanto gravações de cache de cinco minutos quanto de uma hora. Consulte [Quais modelos uma linha `modelPricing` se aplica a](#which-models-a-modelpricing-row-applies-to) |

1187 1194 

1188Claude Code usa as taxas de uma linha exatamente como você as escreveu, sem adicionar a sobretaxa do modo rápido ou a [taxa de inferência apenas para EUA](https://platform.claude.com/docs/en/about-claude/pricing). Se você também definir `multiplier`, Claude Code a aplica no topo das taxas da linha. Claude Code descarta uma linha com uma taxa que não pode analisar ou um `multiplier` que não pode analisar e mantém o resto; consulte [Corrija um arquivo de configurações quebrado](/docs/pt/settings#fix-a-broken-settings-file).1195Claude Code usa as taxas de uma linha exatamente como você as escreveu, sem adicionar a sobretaxa do modo rápido ou a [taxa de inferência apenas para EUA](https://platform.claude.com/docs/en/about-claude/pricing). Se você também definir `multiplier`, Claude Code a aplica no topo das taxas da linha. Claude Code descarta uma linha com uma taxa que não pode analisar ou um `multiplier` que não pode analisar e mantém o resto; consulte [Corrija um arquivo de configurações quebrado](/docs/pt/settings#fix-a-broken-settings-file).


1369 1376 

1370Torne as configurações gerenciadas a única fonte de regras de permissão. Claude Code então ignora as regras `allow`, `ask` e `deny` em arquivos de usuário, projeto, local e `--settings`, ignora `--allowedTools`, oculta as opções de sempre permitir nos prompts de permissão e para de salvar novas regras.1377Torne as configurações gerenciadas a única fonte de regras de permissão. Claude Code então ignora as regras `allow`, `ask` e `deny` em arquivos de usuário, projeto, local e `--settings`, ignora `--allowedTools`, oculta as opções de sempre permitir nos prompts de permissão e para de salvar novas regras.

1371 1378 

1372Quando [configurações pai de um host de incorporação](/docs/pt/managed-settings#let-an-embedding-host-add-policy) se aplicam, Claude Code as trata como parte da camada gerenciada: mantém suas regras `deny` e `ask` e descarta suas regras `allow` e `additionalDirectories`.1379Quando [configurações pai de um host de incorporação](/docs/pt/managed-settings#let-an-embedding-host-add-policy) se aplicam, Claude Code as trata como parte da camada gerenciada. Ele descarta suas regras `allow` e `additionalDirectories`, e mantém suas regras `deny` e `ask` exceto regras `Read` e `Edit` cujo padrão começa com `!`. Um host não pode esculpir caminhos fora das regras gerenciadas com uma regra `!`, independentemente de você definir esta chave.

1373 1380 

1374As regras `--disallowedTools` e as regras `deny` e `ask` da sessão atual ainda se aplicam, inclusive após Claude Code recarregar as configurações no meio da sessão. Elas apenas restringem, portanto não podem ampliar o que as regras gerenciadas concedem. Antes da v2.1.257, Claude Code descartava essas regras de linha de comando e de sessão no primeiro recarregamento de configurações.1381As regras `--disallowedTools` e as regras `deny` e `ask` da sessão atual ainda se aplicam, inclusive após Claude Code recarregar as configurações no meio da sessão. Elas apenas restringem, portanto não podem ampliar o que as regras gerenciadas concedem. Antes da v2.1.257, Claude Code descartava essas regras de linha de comando e de sessão no primeiro recarregamento de configurações.

1375 1382 

1383Para o que um padrão `!` em uma regra `--disallowedTools` ou de sessão pode esculpir, consulte [Regras Read e Edit](/docs/pt/permissions#read-and-edit).

1384 

1376* **Escopo**: [`Managed`](#scopes)1385* **Escopo**: [`Managed`](#scopes)

1377* **Tipo**: Booleano1386* **Tipo**: Booleano

1378 * `true`: as configurações gerenciadas se tornam a única fonte de regras de permissão1387 * `true`: as configurações gerenciadas se tornam a única fonte de regras de permissão


1413 `autoMode.classifyAllShell`1422 `autoMode.classifyAllShell`

1414</h3>1423</h3>

1415 1424 

1416Envie cada comando Bash e PowerShell através do classificador do modo automático enquanto o modo automático está ativo. Por padrão, o modo automático suspende apenas regras de permissão que poderiam executar código arbitrário: regras de ferramenta inteira e curinga como `Bash(*)`, e prefixos de interpretador ou wrapper de shell como `Bash(python *)`. Um comando que qualquer outra regra de permissão corresponde, como `Bash(npm test)`, pula o classificador, e um argumento destrutivo que o prefixo da regra não antecipou pode passar despercebido. Definir esta chave suspende cada regra de shell de permissão para a sessão para que o classificador veja cada comando. Requer Claude Code v2.1.193 ou posterior.1425Envie cada comando Bash e PowerShell através do classificador do modo automático enquanto o modo automático está ativo. Por padrão, o modo automático suspende apenas regras de permissão que poderiam executar código arbitrário: regras de ferramenta inteira e curinga como `Bash(*)`, e prefixos de interpretador ou wrapper de shell como `Bash(python *)`. Um comando que qualquer outra regra de permissão corresponde, como `Bash(npm test)`, pula o classificador a menos que ele carregue [domínios permitidos por comando](/docs/pt/sandboxing#per-command-allowed-domains-in-auto-mode). Quando pula, um argumento destrutivo que o prefixo da regra não antecipou pode passar despercebido. Definir esta chave suspende cada regra de shell de permissão para a sessão para que o classificador veja cada comando. Requer Claude Code v2.1.193 ou posterior.

1417 1426 

1418* **Escopo**: [`User or managed`](#scopes). Leia onde [`autoMode`](#automode) é lido.1427* **Escopo**: [`User or managed`](#scopes). Leia onde [`autoMode`](#automode) é lido.

1419* **Tipo**: Booleano1428* **Tipo**: Booleano

1420 * `true`: enquanto o modo automático está ativo, Claude Code envia cada comando Bash e PowerShell através do classificador e suspende suas regras de shell de permissão; fora do modo automático as regras ainda se aplicam1429 * `true`: enquanto o modo automático está ativo, Claude Code envia cada comando Bash e PowerShell através do classificador e suspende suas regras de shell de permissão; fora do modo automático as regras ainda se aplicam

1421 * `false`: o modo automático suspende apenas regras de permissão que poderiam executar código arbitrário, como `Bash(*)` e `Bash(python *)`; um comando que qualquer outra regra de permissão corresponde pula o classificador, e cada outro comando de shell passa por ele1430 * `false`: o modo automático suspende apenas regras de permissão que poderiam executar código arbitrário, como `Bash(*)` e `Bash(python *)`; um comando que qualquer outra regra de permissão corresponde pula o classificador a menos que ele carregue [domínios permitidos por comando](/docs/pt/sandboxing#per-command-allowed-domains-in-auto-mode), e cada outro comando de shell passa por ele

1422* **Padrão**: `false`1431* **Padrão**: `false`

1423 1432 

1424```json settings.json theme={null}1433```json settings.json theme={null}


1554 `permissions.deny`1563 `permissions.deny`

1555</h3>1564</h3>

1556 1565 

1557Liste os usos de ferramentas que Claude Code bloqueia. Use-o para arquivos que contêm chaves de API, segredos ou valores de ambiente: Claude Code exclui arquivos correspondentes da descoberta de arquivos e resultados de pesquisa, nega leituras deles e bloqueia as [ferramentas Edit e Write](/docs/pt/permissions#read-and-edit) nos caminhos correspondentes. As regras de bloqueio Read e Edit se aplicam às ferramentas de arquivo integradas de Claude, aos comandos de arquivo que Claude Code reconhece em Bash, como `cat`, `head`, `tail` e `sed`, e aos destinos de [redirecionamentos](/docs/pt/permissions#redirections) de Bash como `> file` e `< file`; elas não se aplicam a um comando que lê arquivos sem nomeá-los, como `grep -r pattern .`, ou a subprocessos arbitrários, portanto para aplicação em nível de SO [ative a sandbox](/docs/pt/sandboxing).1566Liste os usos de ferramentas que Claude Code bloqueia. Use-o para arquivos que contêm chaves de API, segredos ou valores de ambiente: Claude Code exclui arquivos correspondentes da descoberta de arquivos e resultados de pesquisa, nega leituras deles e bloqueia as [ferramentas Edit e Write](/docs/pt/permissions#read-and-edit) nos caminhos correspondentes.

1567 

1568As regras de bloqueio Read e Edit se aplicam às ferramentas de arquivo integradas de Claude, aos comandos de arquivo que Claude Code reconhece em Bash, como `cat`, `head`, `tail`, `sed` e `tee`, e aos destinos de [redirecionamentos](/docs/pt/permissions#redirections) de Bash como `> file` e `< file`; elas não se aplicam a um comando que lê arquivos sem nomeá-los, como `grep -r pattern .`, ou a subprocessos arbitrários, portanto para aplicação em nível de SO [ative a sandbox](/docs/pt/sandboxing).

1558 1569 

1559* **Escopo**: [`Any file`](#scopes)1570* **Escopo**: [`Any file`](#scopes)

1560* **Tipo**: array de strings de regra de permissão1571* **Tipo**: array de strings de regra de permissão


1606 1617 

1607Impeça Claude de ler caminhos fora dos [diretórios de trabalho](/docs/pt/permissions#working-directories) da sessão com as ferramentas Read, Grep, Glob e LSP, em cada modo de permissão incluindo `bypassPermissions`. Um comando Bash que lê um caminho correspondente através de um comando de arquivo que Claude Code reconhece, como `cat`, solicita a você mesmo no modo automático e no modo `bypassPermissions`. Requer Claude Code v2.1.257 ou posterior.1618Impeça Claude de ler caminhos fora dos [diretórios de trabalho](/docs/pt/permissions#working-directories) da sessão com as ferramentas Read, Grep, Glob e LSP, em cada modo de permissão incluindo `bypassPermissions`. Um comando Bash que lê um caminho correspondente através de um comando de arquivo que Claude Code reconhece, como `cat`, solicita a você mesmo no modo automático e no modo `bypassPermissions`. Requer Claude Code v2.1.257 ou posterior.

1608 1619 

1620Um comando Bash 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 a você mesmo no modo automático e no modo `bypassPermissions`. O prompt aparece mesmo quando o comando não nomeia nenhum caminho fora dos diretórios de trabalho. Este prompt não se aplica quando o comando é executado na [sandbox](/docs/pt/sandboxing) e a sandbox aplica o bloqueio.

1621 

1609Claude Code também escreve `true` aqui quando você escolhe bloquear tais leituras no [prompt do modo automático antes da primeira leitura fora dos diretórios de trabalho](/docs/pt/permission-modes#first-read-outside-the-working-directories).1622Claude Code também escreve `true` aqui quando você escolhe bloquear tais leituras no [prompt do modo automático antes da primeira leitura fora dos diretórios de trabalho](/docs/pt/permission-modes#first-read-outside-the-working-directories).

1610 1623 

1611* **Escopo**: [`Any file`](#scopes). Se qualquer fonte de configurações definir `true`, o bloqueio se aplica, portanto um arquivo verificado de um repositório pode ativar o bloqueio para um projeto, mas não pode levantar um bloqueio que você definiu.1624* **Escopo**: [`Any file`](#scopes). Se qualquer fonte de configurações definir `true`, o bloqueio se aplica, portanto um arquivo verificado de um repositório pode ativar o bloqueio para um projeto, mas não pode levantar um bloqueio que você definiu.


1622}1635}

1623```1636```

1624 1637 

1625Se apenas o arquivo de configurações verificado de um repositório adicionar um diretório, o bloqueio ainda se aplica a leituras lá. Os arquivos que Claude Code em si precisa permanecem legíveis, como suas skills, plugins, regras, agents, comandos e o arquivo de memória `CLAUDE.md` sob `~/.claude/`.1638Se apenas o arquivo de configurações verificado de um repositório adicionar um diretório, o bloqueio ainda se aplica a leituras lá. Quando [`autoMemoryDirectory`](#automemorydirectory) vem do `.claude/settings.json` do projeto, ou de um `.claude/settings.local.json` [tratado como fornecido pelo repositório](/docs/pt/permissions#when-your-local-settings-file-needs-trust), Claude Code não carrega nenhuma [memória automática](/docs/pt/memory#storage-location) desse diretório e não salva nenhuma nele. Os arquivos que Claude Code em si precisa permanecem legíveis, como suas skills, plugins, regras, agents, comandos e o arquivo de memória `CLAUDE.md` sob `~/.claude/`.

1626 1639 

1627Quando a [sandbox](/docs/pt/sandboxing) está ativada, o bloqueio também nega aos comandos em sandbox acesso de leitura a diretórios iniciais e raízes de volume montado fora dos diretórios de trabalho. Uma repetição que precisa de aprovação para [executar fora da sandbox](/docs/pt/sandboxing#the-unsandboxed-retry-escape-hatch) solicita a você mesmo no modo `bypassPermissions`. Os arquivos que uma ferramenta lê do seu diretório inicial, como `~/.gitconfig`, são negados com o resto; reabra um caminho específico com [`sandbox.filesystem.allowRead`](#sandbox-filesystem-allowread) quando uma ferramenta precisa dele.1640Quando a [sandbox](/docs/pt/sandboxing) está ativada, o bloqueio também nega aos comandos em sandbox acesso de leitura a diretórios iniciais e raízes de volume montado fora dos diretórios de trabalho. Uma repetição que precisa de aprovação para [executar fora da sandbox](/docs/pt/sandboxing#the-unsandboxed-retry-escape-hatch) solicita a você mesmo no modo `bypassPermissions`. Os arquivos que uma ferramenta lê do seu diretório inicial, como `~/.gitconfig`, são negados com o resto; reabra um caminho específico com [`sandbox.filesystem.allowRead`](#sandbox-filesystem-allowread) quando uma ferramenta precisa dele.

1628 1641 


1654}1667}

1655```1668```

1656 1669 

1657As regras de permissão se sobrepõem a cada modo: as regras `deny` bloqueiam em cada modo, incluindo `bypassPermissions`. Consulte [Modos de permissão](/docs/pt/permission-modes). `manual` nomeia o modo de permissão rotulado Manual na CLI e na extensão VS Code; o alias requer Claude Code v2.1.200 ou posterior. Em Claude Code na web, Claude Code honra apenas `acceptEdits`, `plan`, `default` e `auto` desta chave. Para conversas que a extensão VS Code inicia, consulte [qual configuração a extensão lê para o modo de permissão inicial](/docs/pt/permission-modes#switch-permission-modes).1670As regras de permissão se sobrepõem a cada modo: as regras `deny` bloqueiam em cada modo, incluindo `bypassPermissions`. Consulte [Modos de permissão](/docs/pt/permission-modes). `manual` nomeia o modo de permissão rotulado Manual na CLI e na extensão VS Code; o alias requer Claude Code v2.1.200 ou posterior. Em sessões na nuvem, Claude Code honra apenas `acceptEdits`, `plan`, `default` e `auto` desta chave. Para conversas que a extensão VS Code inicia, consulte [qual configuração a extensão lê para o modo de permissão inicial](/docs/pt/permission-modes#switch-permission-modes).

1658 1671 

1659<h3 id="permissions-disablebypasspermissionsmode">1672<h3 id="permissions-disablebypasspermissionsmode">

1660 `permissions.disableBypassPermissionsMode`1673 `permissions.disableBypassPermissionsMode`

1661</h3>1674</h3>

1662 1675 

1663Impeça que qualquer pessoa entre no modo `bypassPermissions`. Claude Code então rejeita o sinalizador `--dangerously-skip-permissions` e ignora uma [definição de agent](/docs/pt/sub-agents#permission-modes) `permissionMode: bypassPermissions`, portanto o subagentt é executado com o modo de permissão da sessão pai.1676Impeça que qualquer pessoa entre no modo `bypassPermissions`. Claude Code então rejeita o sinalizador `--dangerously-skip-permissions` e ignora uma [definição de agent](/docs/pt/sub-agents#permission-modes) `permissionMode: bypassPermissions`, portanto o subagent é executado com o modo de permissão da sessão pai.

1664 1677 

1665* **Escopo**: [`Any file`](#scopes). Normalmente definido em [configurações gerenciadas](/docs/pt/managed-settings) para aplicar a política organizacional.1678* **Escopo**: [`Any file`](#scopes). Normalmente definido em [configurações gerenciadas](/docs/pt/managed-settings) para aplicar a política organizacional.

1666* **Tipo**: a string `"disable"`1679* **Tipo**: a string `"disable"`


2670* **Scope**: [`User or managed`](#scopes). Um repositório não pode ativá-lo ou desativá-lo.2683* **Scope**: [`User or managed`](#scopes). Um repositório não pode ativá-lo ou desativá-lo.

2671* **Type**: Boolean2684* **Type**: Boolean

2672 * `true`: Claude Code nega acesso de comandos em sandbox a hosts fora da lista de permissões2685 * `true`: Claude Code nega acesso de comandos em sandbox a hosts fora da lista de permissões

2673 * `false`: a menos que outro arquivo de configurações confiável defina `true`, Claude Code decide um host fora da lista de permissões por modo de permissão em vez de negá-lo imediatamente: ele executa o classificador em modo auto, nega em modo `dontAsk`, permite em modo `bypassPermissions` e em modo de plano quando bypass está disponível, e caso contrário pergunta a você2686 * `false`: a menos que outro arquivo de configurações confiável defina `true`, Claude Code decide um host fora da lista de permissões por modo de permissão em vez de negá-lo imediatamente: em modo auto ele verifica o host contra os [domínios permitidos por comando](/docs/pt/sandboxing#per-command-allowed-domains-in-auto-mode) do comando, em modo `dontAsk` nega, em modo `bypassPermissions` e em sessões de modo de plano de terminal interativo onde bypass está disponível permite, e caso contrário pergunta a você

2674* **Default**: `false`2687* **Default**: `false`

2675 2688 

2676```json settings.json theme={null}2689```json settings.json theme={null}


3136 `axScreenReader`3149 `axScreenReader`

3137</h3>3150</h3>

3138 3151 

3139Renderize saída amigável ao leitor de tela: texto simples sem bordas decorativas ou animações. O modo leitor de tela usa o renderizador clássico, portanto a configuração `tui` não tem efeito enquanto está ativo; [sessões em segundo plano](/docs/pt/agent-view) anexadas ainda renderizam em tela cheia. Requer Claude Code v2.1.181 ou posterior.3152Renderize saída amigável ao leitor de tela: texto simples sem bordas decorativas ou animações. O modo leitor de tela usa o renderizador clássico, portanto a configuração `tui` não tem efeito enquanto está ativo; [sessões em segundo plano](/docs/pt/agent-view) anexadas ainda renderizam em tela cheia.

3140 3153 

3141* **Scope**: [`Any file`](#scopes)3154* **Scope**: [`Any file`](#scopes)

3142* **Type**: Boolean3155* **Type**: Boolean


3151}3164}

3152```3165```

3153 3166 

3154Requer Claude Code v2.1.181 ou posterior.3167<h3 id="basheditdiffenabled">

3168 `bashEditDiffEnabled`

3169</h3>

3170 

3171Escolha se Claude Code registra os arquivos que um comando Bash altera em um repositório Git. Quando registra, você vê seu diff no terminal após o comando, e seus [hooks PostToolUse Bash](/docs/pt/hooks#bash) recebem a lista de arquivos alterados.

3172 

3173Defina a chave como `true` para registrá-los em todos os modos de permissão. Requer Claude Code v2.1.269 ou posterior.

3174 

3175* **Scope**: [`User or managed`](#scopes). Um `true` conta apenas a partir de suas configurações de usuário, JSON passado com `--settings`, ou [configurações gerenciadas](/docs/pt/managed-settings), portanto um `true` em um arquivo `.claude/settings.json` ou `.claude/settings.local.json` de um repositório não pode ativar o registro. Um `false` em qualquer arquivo de repositório ainda o desativa a menos que um arquivo de [precedência mais alta](/docs/pt/settings#settings-precedence) defina `true`.

3176* **Type**: Boolean

3177* **Default**: unset, portanto Claude Code registra alterações no modo auto e modo `bypassPermissions` quando direciona Claude a editar arquivos através de Bash

3178* **Per-session overrides**: [`CLAUDE_CODE_BASH_EDIT_DIFF`](/docs/pt/env-vars) tem precedência sobre esta chave para uma sessão

3179 

3180```json settings.json theme={null}

3181{

3182 "bashEditDiffEnabled": true

3183}

3184```

3155 3185 

3156<h3 id="companyannouncements">3186<h3 id="companyannouncements">

3157 `companyAnnouncements`3187 `companyAnnouncements`


4297 `workflowSizeGuideline`4327 `workflowSizeGuideline`

4298</h3>4328</h3>

4299 4329 

4300Defina a [contagem de agentes que Claude visa](/docs/pt/workflows#set-a-size-guideline) nos fluxos de trabalho dinâmicos que escreve. Claude Code envia o valor para Claude como conselho, não um limite imposto: `"small"` pede menos de 5 agentes, `"medium"` menos de 15 e `"large"` menos de 50. Escolha `"small"` quando você quer limitar o que um fluxo de trabalho gasta. Requer Claude Code v2.1.219 ou posterior.4330Defina a [contagem de agentes que Claude visa](/docs/pt/workflows#set-a-size-guideline) nos fluxos de trabalho dinâmicos que escreve. Claude Code envia o valor para Claude como conselho, não um limite imposto: `"small"` pede menos de 5 agentes, `"medium"` menos de 10 e `"large"` menos de 50. Escolha `"small"` quando você quer limitar o que um fluxo de trabalho gasta. Requer Claude Code v2.1.219 ou posterior.

4301 4331 

4302* **Escopo**: [`Qualquer arquivo`](#scopes). Um valor lá tem precedência sobre a escolha **Dynamic workflow size** em `/config`, que Claude Code armazena em `~/.claude.json`, e Claude Code oculta essa linha enquanto um arquivo de configurações define a chave.4332* **Escopo**: [`Qualquer arquivo`](#scopes). Um valor lá tem precedência sobre a escolha **Dynamic workflow size** em `/config`, que Claude Code armazena em `~/.claude.json`, e Claude Code oculta essa linha enquanto um arquivo de configurações define a chave.

4303* **Tipo**: string, um de:4333* **Tipo**: string, um de:

4304 * `"unrestricted"`: sem diretriz, portanto Claude dimensiona o fluxo de trabalho para a tarefa4334 * `"unrestricted"`: sem diretriz, portanto Claude dimensiona o fluxo de trabalho para a tarefa

4305 * `"small"`: Claude visa menos de 5 agentes4335 * `"small"`: Claude visa menos de 5 agentes

4306 * `"medium"`: Claude visa menos de 15 agentes4336 * `"medium"`: Claude visa menos de 10 agentes

4307 * `"large"`: Claude visa menos de 50 agentes4337 * `"large"`: Claude visa menos de 50 agentes

4308* **Padrão**: `"medium"`4338* **Padrão**: `"medium"`, ou `"small"` quando você está conectado em um plano Pro com Claude Code v2.1.271 ou posterior

4309 4339 

4310```json settings.json theme={null}4340```json settings.json theme={null}

4311{4341{


4401 `syncClaudeAiSkills`4431 `syncClaudeAiSkills`

4402</h3>4432</h3>

4403 4433 

4404Desative o download dos [skills que você ativa em claude.ai](/docs/pt/skills#how-synced-skills-behave). Claude Code os baixa em `~/.claude/skills/synced/` quando você o executa em [modo não interativo](/docs/pt/headless) com a flag `-p` e [`CLAUDE_CODE_SYNC_SKILLS`](/docs/pt/env-vars#variables) definido. Defina `false` para parar esse download e ocultar os skills que já sincronizou. Claude Code honra apenas `false`: `true` é o mesmo que não definido e não ativa a sincronização.4434Desative o download dos [skills habilitados para sua conta claude.ai](/docs/pt/skills#how-synced-skills-behave). Claude Code os baixa em `~/.claude/skills/synced/` em [sessões de terminal onde você entra com sua conta claude.ai](/docs/pt/skills#where-synced-skills-load), interativas ou não interativas, e em sessões Cowork e cloud. Defina `false` para parar esse download e parar de carregar os skills que já sincronizou. Claude Code honra apenas `false`: `true` é o mesmo que não definido e não ativa a sincronização onde está desativada.

4405 4435 

4406* **Scope**: [`User, local, or managed`](#scopes). Um repositório não pode desativá-lo para você.4436* **Scope**: [`User, local, or managed`](#scopes), e arquivos passados com `--settings`. Um repositório não pode desativá-lo para você.

4407* **Type**: Boolean4437* **Type**: Boolean

4408 * `false`: Claude Code para de baixar skills sincronizados e oculta os já em `~/.claude/skills/synced/`. Em configurações de usuário ou gerenciadas, também os move para `~/.claude/skills/.trash/`4438 * `false`: Claude Code para de baixar skills sincronizados e para de carregar os já em `~/.claude/skills/synced/`. Em configurações de usuário ou gerenciadas, também os move para `~/.claude/skills/.trash/`

4409 * `true`: o mesmo que não definido4439 * `true`: o mesmo que não definido

4410* **Default**: não definido, portanto uma execução não interativa com `CLAUDE_CODE_SYNC_SKILLS` definido baixa os skills4440* **Default**: não definido, portanto sessões conectadas com sua conta claude.ai sincronizam seus skills

4411 4441 

4412Este exemplo impede uma máquina de baixar os skills da conta, qualquer que seja o que uma sessão defina em seu ambiente:4442Este exemplo impede uma máquina de baixar os skills da conta em qualquer sessão:

4413 4443 

4414```json settings.json theme={null}4444```json settings.json theme={null}

4415{4445{


4417}4447}

4418```4448```

4419 4449 

4450<h3 id="syncclaudeaiplugins">

4451 `syncClaudeAiPlugins`

4452</h3>

4453 

4454Desative o download dos [plugins habilitados para sua conta claude.ai](/docs/pt/plugins-reference#synced-plugins). Claude Code os baixa em `~/.claude/plugins/synced/` no início de sessões de terminal onde você entra com sua conta claude.ai, e em sessões Cowork e cloud, e carrega cada um como `<name>@synced`. Defina `false` para parar esse download e parar de carregar os plugins que já sincronizou. Claude Code honra apenas `false`: `true` é o mesmo que não definido e não ativa a sincronização onde está desativada. Requer Claude Code v2.1.273 ou posterior.

4455 

4456* **Scope**: [`User, local, or managed`](#scopes), e arquivos passados com `--settings`. Um repositório não pode desativá-lo para você.

4457* **Type**: Boolean

4458 * `false`: Claude Code para de baixar plugins sincronizados e para de carregar os já em `~/.claude/plugins/synced/`. Em configurações de usuário ou gerenciadas, também os move para `~/.claude/plugins/.trash/`

4459 * `true`: o mesmo que não definido

4460* **Default**: não definido, portanto sessões conectadas com sua conta claude.ai sincronizam seus plugins

4461 

4462Para desativar um plugin sincronizado em vez de todos eles, defina `"<name>@synced": false` em [`enabledPlugins`](#enabledplugins).

4463 

4464Este exemplo impede uma máquina de baixar os plugins da conta em qualquer sessão:

4465 

4466```json settings.json theme={null}

4467{

4468 "syncClaudeAiPlugins": false

4469}

4470```

4471 

4420<h3 id="allowedchannelplugins">4472<h3 id="allowedchannelplugins">

4421 `allowedChannelPlugins`4473 `allowedChannelPlugins`

4422</h3>4474</h3>


4440 4492 

4441Um array vazio bloqueia cada plugin de channel.4493Um array vazio bloqueia cada plugin de channel.

4442 4494 

4443Esta chave entra em vigor uma vez que channels passam pela porta [`channelsEnabled`](#channelsenabled) para a conta: em planos Team e Enterprise, e em contas Console com configurações gerenciadas, isso significa `channelsEnabled: true`. Consulte [Restrict which channel plugins can run](/docs/pt/channels#restrict-which-channel-plugins-can-run).4495Esta chave entra em vigor uma vez que channels passam pela porta [`channelsEnabled`](#channelsenabled) para a conta: em planos Team e Enterprise, e em contas Console com configurações gerenciadas, isso significa `channelsEnabled: true`. Consulte [Restringir quais plugins de channel podem ser executados](/docs/pt/channels#restrict-which-channel-plugins-can-run).

4444 4496 

4445<h3 id="blockedmarketplaces">4497<h3 id="blockedmarketplaces">

4446 `blockedMarketplaces`4498 `blockedMarketplaces`


4462}4514}

4463```4515```

4464 4516 

4465Uma entrada `github` pode usar a forma [owner-wildcard](#owner-wildcards) `"owner/*"` para bloquear cada repositório sob esse proprietário GitHub, que requer Claude Code v2.1.223 ou posterior. Adicione `{ "source": "skills-dir" }` para parar Claude Code carregando plugins [`@skills-dir`](/docs/pt/plugins-reference#skills-directory-plugins) de `~/.claude/skills/` sem restringir nenhum marketplace. Consulte [Managed marketplace restrictions](/docs/pt/plugin-marketplaces#managed-marketplace-restrictions).4517Uma entrada `github` pode usar a forma [owner-wildcard](#owner-wildcards) `"owner/*"` para bloquear cada repositório sob esse proprietário GitHub, que requer Claude Code v2.1.223 ou posterior. Adicione `{ "source": "skills-dir" }` para parar Claude Code carregando plugins [`@skills-dir`](/docs/pt/plugins-reference#skills-directory-plugins) de `~/.claude/skills/` sem restringir nenhum marketplace. Consulte [Restrições de marketplace gerenciadas](/docs/pt/plugin-marketplaces#managed-marketplace-restrictions).

4466 4518 

4467<h3 id="channelsenabled">4519<h3 id="channelsenabled">

4468 `channelsEnabled`4520 `channelsEnabled`


4482}4534}

4483```4535```

4484 4536 

4485Para restringir quais plugins podem se registrar como channels uma vez ativados, defina [`allowedChannelPlugins`](#allowedchannelplugins). Consulte [Enterprise controls](/docs/pt/channels#enterprise-controls).4537Para restringir quais plugins podem se registrar como channels uma vez ativados, defina [`allowedChannelPlugins`](#allowedchannelplugins). Consulte [Controles empresariais](/docs/pt/channels#enterprise-controls).

4486 4538 

4487<h3 id="disablecommandpluginsources">4539<h3 id="disablecommandpluginsources">

4488 `disableCommandPluginSources`4540 `disableCommandPluginSources`


4520}4572}

4521```4573```

4522 4574 

4523Um nome entra em vigor apenas quando o marketplace é registrado na máquina e sua fonte registrada também é declarada nas mesmas configurações gerenciadas, seja como a entrada [`extraKnownMarketplaces`](#extraknownmarketplaces) para esse nome ou como uma entrada de [`strictKnownMarketplaces`](#strictknownmarketplaces). Claude Code ignora um marketplace registrado de uma fonte diferente sob um nome na lista de permissões. O marketplace oficial é isento do requisito de fonte: permitir apenas seu nome é suficiente, já que esse nome só pode se registrar da fonte Anthropic oficial. Consulte [Suggest plugins by context](/docs/pt/plugin-relevance).4575Um nome entra em vigor apenas quando o marketplace é registrado na máquina e sua fonte registrada também é declarada nas mesmas configurações gerenciadas, seja como a entrada [`extraKnownMarketplaces`](#extraknownmarketplaces) para esse nome ou como uma entrada de [`strictKnownMarketplaces`](#strictknownmarketplaces). Claude Code ignora um marketplace registrado de uma fonte diferente sob um nome na lista de permissões. O marketplace oficial é isento do requisito de fonte: permitir apenas seu nome é suficiente, já que esse nome só pode se registrar da fonte Anthropic oficial. Consulte [Sugerir plugins por contexto](/docs/pt/plugin-relevance).

4524 4576 

4525<h3 id="plugintrustmessage">4577<h3 id="plugintrustmessage">

4526 `pluginTrustMessage`4578 `pluginTrustMessage`


4545Restrinja quais fontes de marketplace de plugin as pessoas em sua organização podem adicionar e instalar plugins. Claude Code aplica a lista de permissões ao adicionar marketplace e ao instalar, atualizar, atualizar e auto-atualizar plugin, antes de qualquer operação de rede ou sistema de arquivos, portanto um marketplace que alguém adicionou antes de você definir a política não pode ser usado para buscar plugins uma vez que sua fonte não corresponda mais. Usuários bloqueados veem um erro nomeando a política gerenciada.4597Restrinja quais fontes de marketplace de plugin as pessoas em sua organização podem adicionar e instalar plugins. Claude Code aplica a lista de permissões ao adicionar marketplace e ao instalar, atualizar, atualizar e auto-atualizar plugin, antes de qualquer operação de rede ou sistema de arquivos, portanto um marketplace que alguém adicionou antes de você definir a política não pode ser usado para buscar plugins uma vez que sua fonte não corresponda mais. Usuários bloqueados veem um erro nomeando a política gerenciada.

4546 4598 

4547* **Scope**: [`Managed`](#scopes)4599* **Scope**: [`Managed`](#scopes)

4548* **Type**: array de objetos de fonte de marketplace; consulte [Allowed source types](#allowed-source-types)4600* **Type**: array de objetos de fonte de marketplace; consulte [Tipos de fonte permitidos](#allowed-source-types)

4549* **Default**: não definido, portanto usuários podem adicionar qualquer marketplace. Um array vazio é um bloqueio completo que bloqueia cada fonte de marketplace, incluindo o marketplace oficial da Anthropic4601* **Default**: não definido, portanto usuários podem adicionar qualquer marketplace. Um array vazio é um bloqueio completo que bloqueia cada fonte de marketplace, incluindo o marketplace oficial da Anthropic

4550 4602 

4551Este exemplo permite dois repositórios GitHub, um fixado à ref `v2.0`, e uma URL `marketplace.json` hospedada:4603Este exemplo permite dois repositórios GitHub, um fixado à ref `v2.0`, e uma URL `marketplace.json` hospedada:


4560}4612}

4561```4613```

4562 4614 

4563Você também pode escrever esta chave como `allowedMarketplaces`; [Marketplace key aliases](#marketplace-key-aliases) descreve como Claude Code trata o alias e qual versão o aceita. Esta chave é uma porta de política: controla o que usuários podem adicionar, mas não registra nada. Para restringir e pré-registrar em um arquivo, consulte [Combine with `extraKnownMarketplaces`](#combine-with-extraknownmarketplaces). Para a visualização voltada ao usuário, consulte [Managed marketplace restrictions](/docs/pt/plugin-marketplaces#managed-marketplace-restrictions).4615Você também pode escrever esta chave como `allowedMarketplaces`; [Aliases de chave de marketplace](#marketplace-key-aliases) descreve como Claude Code trata o alias e qual versão o aceita. Esta chave é uma porta de política: controla o que usuários podem adicionar, mas não registra nada. Para restringir e pré-registrar em um arquivo, consulte [Combinar com `extraKnownMarketplaces`](#combine-with-extraknownmarketplaces). Para a visualização voltada ao usuário, consulte [Restrições de marketplace gerenciadas](/docs/pt/plugin-marketplaces#managed-marketplace-restrictions).

4564 4616 

4565<h4 id="allowed-source-types">4617<h4 id="allowed-source-types">

4566 Allowed source types4618 Tipos de fonte permitidos

4567</h4>4619</h4>

4568 4620 

4569Cada entrada abaixo mostra uma entrada de lista de permissões por tipo de fonte e os campos que aceita. A maioria dos tipos corresponde exatamente; `hostPattern` e `pathPattern` correspondem por regex, e entradas `github` podem usar um [owner wildcard](#owner-wildcards).4621Cada entrada abaixo mostra uma entrada de lista de permissões por tipo de fonte e os campos que aceita. A maioria dos tipos corresponde exatamente; `hostPattern` e `pathPattern` correspondem por regex, e entradas `github` podem usar um [owner wildcard](#owner-wildcards).


4582 4634 

4583Três tipos de fonte carregam regras além da tabela:4635Três tipos de fonte carregam regras além da tabela:

4584 4636 

4585* **`url`**: um marketplace de URL baixa apenas o arquivo `marketplace.json`, e Claude Code não busca arquivos de plugin por caminho relativo desse servidor, portanto seus plugins devem usar uma [plugin source](/docs/pt/plugin-marketplaces#plugin-sources) diferente de um caminho relativo, como uma URL de arquivo, que pode estar no mesmo host. Para plugins com caminhos relativos, use um marketplace baseado em Git. Consulte [Plugins with relative paths fail in URL-based marketplaces](/docs/pt/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces).4637* **`url`**: um marketplace de URL baixa apenas o arquivo `marketplace.json`, e Claude Code não busca arquivos de plugin por caminho relativo desse servidor, portanto seus plugins devem usar uma [plugin source](/docs/pt/plugin-marketplaces#plugin-sources) diferente de um caminho relativo, como uma URL de arquivo, que pode estar no mesmo host. Para plugins com caminhos relativos, use um marketplace baseado em Git. Consulte [Plugins com caminhos relativos falham em marketplaces baseados em URL](/docs/pt/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces).

4586* **`hostPattern`**: use-o para permitir cada marketplace em um GitHub Enterprise interno ou servidor GitLab sem listar cada repositório. Claude Code corresponde fontes `github` contra `github.com`, pega o hostname de fontes `url`, e o pega de fontes `git` dependendo da forma da [git URL](https://git-scm.com/docs/git-clone#_git_urls):4638* **`hostPattern`**: use-o para permitir cada marketplace em um GitHub Enterprise interno ou servidor GitLab sem listar cada repositório. Claude Code corresponde fontes `github` contra `github.com`, pega o hostname de fontes `url`, e o pega de fontes `git` dependendo da forma da [git URL](https://git-scm.com/docs/git-clone#_git_urls):

4587 4639 

4588 * Uma URL com um esquema, como `https://` ou `ssh://`: o hostname na URL.4640 * Uma URL com um esquema, como `https://` ou `ssh://`: o hostname na URL.


4622| `path` | Mais flexível que as regras de entrada exata: uma entrada com um `path` requer esse valor exato, enquanto uma entrada sem um corresponde qualquer caminho dentro do repositório | Uma entrada sem um `path` bloqueia todos os caminhos dos repositórios que corresponde |4674| `path` | Mais flexível que as regras de entrada exata: uma entrada com um `path` requer esse valor exato, enquanto uma entrada sem um corresponde qualquer caminho dentro do repositório | Uma entrada sem um `path` bloqueia todos os caminhos dos repositórios que corresponde |

4623 4675 

4624<h4 id="exact-matching">4676<h4 id="exact-matching">

4625 Exact matching4677 Correspondência exata

4626</h4>4678</h4>

4627 4679 

4628Para cada tipo de fonte exceto entradas `github` de owner-wildcard e as entradas `hostPattern` e `pathPattern` correspondidas por regex, Claude Code permite uma adição de usuário apenas quando a fonte de marketplace corresponde a uma entrada exatamente. Para as fontes baseadas em git `github` e `git`, correspondência exata inclui os campos opcionais:4680Para cada tipo de fonte exceto entradas `github` de owner-wildcard e as entradas `hostPattern` e `pathPattern` correspondidas por regex, Claude Code permite uma adição de usuário apenas quando a fonte de marketplace corresponde a uma entrada exatamente. Para as fontes baseadas em git `github` e `git`, correspondência exata inclui os campos opcionais:


4637* `{ "source": "github", "repo": "acme-corp/plugins", "path": "marketplace" }` e `{ "source": "github", "repo": "acme-corp/plugins" }`4689* `{ "source": "github", "repo": "acme-corp/plugins", "path": "marketplace" }` e `{ "source": "github", "repo": "acme-corp/plugins" }`

4638 4690 

4639<h4 id="allow-only-the-official-marketplace">4691<h4 id="allow-only-the-official-marketplace">

4640 Allow only the official marketplace4692 Permitir apenas o marketplace oficial

4641</h4>4693</h4>

4642 4694 

4643Para permitir apenas o marketplace oficial da Anthropic e nada mais, liste seu repositório:4695Para permitir apenas o marketplace oficial da Anthropic e nada mais, liste seu repositório:


4658Nessas máquinas, adicione o marketplace a [`extraKnownMarketplaces`](#extraknownmarketplaces) no mesmo `managed-settings.json` para que Claude Code o registre automaticamente, ou execute `claude plugin marketplace add anthropics/claude-plugins-official`.4710Nessas máquinas, adicione o marketplace a [`extraKnownMarketplaces`](#extraknownmarketplaces) no mesmo `managed-settings.json` para que Claude Code o registre automaticamente, ou execute `claude plugin marketplace add anthropics/claude-plugins-official`.

4659 4711 

4660<h4 id="combine-with-extraknownmarketplaces">4712<h4 id="combine-with-extraknownmarketplaces">

4661 Combine with `extraKnownMarketplaces`4713 Combinar com `extraKnownMarketplaces`

4662</h4>4714</h4>

4663 4715 

4664As duas chaves fazem trabalhos diferentes. Esta tabela as compara:4716As duas chaves fazem trabalhos diferentes. Esta tabela as compara:


4687}4739}

4688```4740```

4689 4741 

4690Com apenas `strictKnownMarketplaces` definido, usuários ainda podem adicionar um marketplace permitido eles mesmos com `/plugin marketplace add`. O marketplace oficial da Anthropic é o único que Claude Code registra automaticamente, e apenas quando a lista de permissões o permite. [Allow only the official marketplace](#allow-only-the-official-marketplace) lista as máquinas que perde.4742Com apenas `strictKnownMarketplaces` definido, usuários ainda podem adicionar um marketplace permitido eles mesmos com `/plugin marketplace add`. O marketplace oficial da Anthropic é o único que Claude Code registra automaticamente, e apenas quando a lista de permissões o permite. [Permitir apenas o marketplace oficial](#allow-only-the-official-marketplace) lista as máquinas que perde.

4691 4743 

4692<h3 id="strictpluginonlycustomization">4744<h3 id="strictpluginonlycustomization">

4693 `strictPluginOnlyCustomization`4745 `strictPluginOnlyCustomization`


4837}4889}

4838```4890```

4839 4891 

4840[What runs before you trust a folder](/docs/pt/permissions#what-runs-before-you-trust-a-folder) compara a porta de confiança com o outro conteúdo que um repositório pode fornecer. Você também pode escrever esta chave como `additionalMarketplaces`; consulte [Marketplace key aliases](#marketplace-key-aliases).4892[O que é executado antes de você confiar em uma pasta](/docs/pt/permissions#what-runs-before-you-trust-a-folder) compara a porta de confiança com o outro conteúdo que um repositório pode fornecer. Você também pode escrever esta chave como `additionalMarketplaces`; consulte [Aliases de chave de marketplace](#marketplace-key-aliases).

4841 4893 

4842Defina `"autoUpdate": true` ao lado de `source` para fazer Claude Code atualizar esse marketplace e atualizar seus plugins instalados em segundo plano após a inicialização. Quando omitido, `claude-plugins-official` e a maioria dos outros marketplaces oficiais da Anthropic padrão para `true`, e marketplaces de terceiros padrão para `false`. Consulte [Configure auto-updates](/docs/pt/discover-plugins#configure-auto-updates).4894Defina `"autoUpdate": true` ao lado de `source` para fazer Claude Code atualizar esse marketplace e atualizar seus plugins instalados em segundo plano após a inicialização. Quando omitido, `claude-plugins-official` e a maioria dos outros marketplaces oficiais da Anthropic padrão para `true`, e marketplaces de terceiros padrão para `false`. Consulte [Configurar auto-atualizações](/docs/pt/discover-plugins#configure-auto-updates).

4843 4895 

4844Quando mais de um arquivo de configurações define uma entrada de marketplace sob o mesmo nome, Claude Code usa a entrada do arquivo de [precedência mais alta](/docs/pt/settings#settings-precedence) inteiro. Essa entrada substitui a entrada de precedência mais baixa e não herda nenhum de seus campos, portanto uma redefinição não pode combinar `source.headers` de credencial de um arquivo com uma URL que outro arquivo controla. Antes de v2.1.228, Claude Code mesclava entradas de mesmo nome campo por campo, portanto uma entrada em um arquivo de precedência mais alta poderia herdar campos que não definiu, incluindo `headers` de outro arquivo.4896Quando mais de um arquivo de configurações define uma entrada de marketplace sob o mesmo nome, Claude Code usa a entrada do arquivo de [precedência mais alta](/docs/pt/settings#settings-precedence) inteiro. Essa entrada substitui a entrada de precedência mais baixa e não herda nenhum de seus campos, portanto uma redefinição não pode combinar `source.headers` de credencial de um arquivo com uma URL que outro arquivo controla. Antes de v2.1.228, Claude Code mesclava entradas de mesmo nome campo por campo, portanto uma entrada em um arquivo de precedência mais alta poderia herdar campos que não definiu, incluindo `headers` de outro arquivo.

4845 4897 

4846<h4 id="marketplace-source-types">4898<h4 id="marketplace-source-types">

4847 Marketplace source types4899 Tipos de fonte de marketplace

4848</h4>4900</h4>

4849 4901 

4850O objeto `source` toma uma destas formas:4902O objeto `source` toma uma destas formas:


4856* **`directory`**: um caminho do sistema de arquivos local, com `path`, apenas para desenvolvimento4908* **`directory`**: um caminho do sistema de arquivos local, com `path`, apenas para desenvolvimento

4857* **`settings`**: um marketplace inline declarado diretamente no arquivo de configurações sem um repositório hospedado, com `name` e `plugins`4909* **`settings`**: um marketplace inline declarado diretamente no arquivo de configurações sem um repositório hospedado, com `name` e `plugins`

4858 4910 

4859O tipo de fonte `git` funciona com qualquer serviço de hospedagem git, incluindo GitLab auto-hospedado e Bitbucket. Claude Code clona o repositório com a mesma autenticação que `git clone` usaria nessa máquina: helpers de credencial configurados ou chaves SSH. Um token de provedor como `GITHUB_TOKEN` entra em vigor apenas através de um helper de credencial que o lê. Consulte [Private repositories](/docs/pt/plugin-marketplaces#private-repositories) para detalhes de configuração.4911O tipo de fonte `git` funciona com qualquer serviço de hospedagem git, incluindo GitLab auto-hospedado e Bitbucket. Claude Code clona o repositório com a mesma autenticação que `git clone` usaria nessa máquina: helpers de credencial configurados ou chaves SSH. Um token de provedor como `GITHUB_TOKEN` entra em vigor apenas através de um helper de credencial que o lê. Consulte [Repositórios privados](/docs/pt/plugin-marketplaces#private-repositories) para detalhes de configuração.

4860 4912 

4861Para fontes `github` e `git`, defina `"skipLfs": true` dentro do objeto `source`, ao lado de `repo` ou `url`, para pular downloads de Git LFS quando Claude Code clona ou atualiza o repositório de marketplace. Arquivos de ponteiro LFS permanecem como ponteiros em vez de baixar seu conteúdo. Use isso quando o repositório contém objetos LFS grandes não relacionados ao conteúdo de plugin.4913Para fontes `github` e `git`, Claude Code nunca baixa conteúdo de [Git LFS](https://git-lfs.com) quando clona o repositório de marketplace para adicioná-lo ou atualizá-lo. Arquivos rastreados por LFS são verificados como arquivos de ponteiro, e a saída de adição ou atualização relata quantos.

4862 4914 

4863Para uma fonte `url`, defina `headersHelper` dentro do objeto `source` quando a credencial em `headers` expira e um comando tem que produzir uma nova. Requer Claude Code v2.1.238 ou posterior. Para o que o comando deve imprimir e onde Claude Code o executa, consulte [Write the headersHelper command](/docs/pt/plugin-marketplaces#write-the-headershelper-command), e para os casos onde Claude Code não o executa, consulte [When Claude Code skips a headersHelper command](/docs/pt/plugin-marketplaces#when-claude-code-skips-a-headershelper-command-or-drops-its-output). Uma vez que você defina `headersHelper` em uma URL de marketplace `https://`, Claude Code executa o comando em dois pontos, reutilizando a saída de uma execução por até 60 segundos:4915O campo `skipLfs` dentro do objeto `source` é aceito e não tem efeito. Antes de v2.1.274, Claude Code baixava conteúdo de LFS a menos que você definisse `"skipLfs": true`.

4916 

4917Para uma fonte `url`, defina `headersHelper` dentro do objeto `source` quando a credencial em `headers` expira e um comando tem que produzir uma nova. Requer Claude Code v2.1.238 ou posterior. Para o que o comando deve imprimir e onde Claude Code o executa, consulte [Escrever o comando headersHelper](/docs/pt/plugin-marketplaces#write-the-headershelper-command), e para os casos onde Claude Code não o executa, consulte [Quando Claude Code pula um comando headersHelper](/docs/pt/plugin-marketplaces#when-claude-code-skips-a-headershelper-command-or-drops-its-output). Uma vez que você defina `headersHelper` em uma URL de marketplace `https://`, Claude Code executa o comando em dois pontos, reutilizando a saída de uma execução por até 60 segundos:

4864 4918 

4865* Antes de cada busca desse `marketplace.json` do marketplace, incluindo uma atualização posterior. Claude Code envia os cabeçalhos impressos com essa busca.4919* Antes de cada busca desse `marketplace.json` do marketplace, incluindo uma atualização posterior. Claude Code envia os cabeçalhos impressos com essa busca.

4866* Antes de cada download de arquivo de plugin na origem da URL do marketplace, significando o mesmo esquema, host e porta. Claude Code envia a saída com esse download, e nenhum outro download obtém os cabeçalhos.4920* Antes de cada download de arquivo de plugin na origem da URL do marketplace, significando o mesmo esquema, host e porta. Claude Code envia a saída com esse download, e nenhum outro download obtém os cabeçalhos.

4867 4921 

4868Claude Code ignora qualquer `headersHelper` definido no `.claude/settings.json` ou `.claude/settings.local.json` de um diretório que você adiciona com [`--add-dir`](/docs/pt/permissions#what-runs-before-you-trust-a-folder), em uma fonte `url` e em uma entrada de plugin inline, e envia apenas os `headers` fixos definidos naquele arquivo. [How users accept a headersHelper command](/docs/pt/plugin-marketplaces#how-users-accept-a-headershelper-command) cobre os outros arquivos de configurações.4922Claude Code ignora qualquer `headersHelper` definido no `.claude/settings.json` ou `.claude/settings.local.json` de um diretório que você adiciona com [`--add-dir`](/docs/pt/permissions#what-runs-before-you-trust-a-folder), em uma fonte `url` e em uma entrada de plugin inline, e envia apenas os `headers` fixos definidos naquele arquivo. [Como usuários aceitam um comando headersHelper](/docs/pt/plugin-marketplaces#how-users-accept-a-headershelper-command) cobre os outros arquivos de configurações.

4869 4923 

4870Plugins listados em uma fonte `settings` devem referenciar fontes externas como GitHub ou npm, e o `name` deve corresponder à chave de marketplace. Você ainda ativa cada plugin separadamente em `enabledPlugins`. Este exemplo declara um plugin inline:4924Plugins listados em uma fonte `settings` devem referenciar fontes externas como GitHub ou npm, e o `name` deve corresponder à chave de marketplace. Você ainda ativa cada plugin separadamente em `enabledPlugins`. Este exemplo declara um plugin inline:

4871 4925 


4895 4949 

4896Claude Code envia os `headers` da entrada, e o que o comando imprime, com o download de arquivo daquele plugin e com nenhum outro download. Claude Code executa o comando apenas quando um usuário [instala ou atualiza apenas aquele plugin](/docs/pt/plugin-marketplaces#how-users-accept-a-headershelper-command). Três regras adicionais dependem de qual arquivo contém a entrada:4950Claude Code envia os `headers` da entrada, e o que o comando imprime, com o download de arquivo daquele plugin e com nenhum outro download. Claude Code executa o comando apenas quando um usuário [instala ou atualiza apenas aquele plugin](/docs/pt/plugin-marketplaces#how-users-accept-a-headershelper-command). Três regras adicionais dependem de qual arquivo contém a entrada:

4897 4951 

4898* **`strict`**: diferentemente de uma entrada no `marketplace.json` de um marketplace, uma entrada em configurações não precisa de `"strict": false`, porque um arquivo de configurações não carrega campos de manifesto para inline. Consulte [Strict mode](/docs/pt/plugin-marketplaces#strict-mode).4952* **`strict`**: diferentemente de uma entrada no `marketplace.json` de um marketplace, uma entrada em configurações não precisa de `"strict": false`, porque um arquivo de configurações não carrega campos de manifesto para inline. Consulte [Modo strict](/docs/pt/plugin-marketplaces#strict-mode).

4899* **Folder trust**: para uma entrada no `.claude/settings.json` ou `.claude/settings.local.json` de um projeto, Claude Code executa o comando apenas após o usuário também ter [confiado naquela pasta](/docs/pt/permissions#what-runs-before-you-trust-a-folder).4953* **Folder trust**: para uma entrada no `.claude/settings.json` ou `.claude/settings.local.json` de um projeto, Claude Code executa o comando apenas após o usuário também ter [confiado naquela pasta](/docs/pt/permissions#what-runs-before-you-trust-a-folder).

4900* **Header filter**: Claude Code descarta [nomes de cabeçalho de roteamento de solicitação e identidade de cliente](/docs/pt/plugin-marketplaces#when-claude-code-skips-a-headershelper-command-or-drops-its-output) de uma entrada no `.claude/settings.json` ou `.claude/settings.local.json` de um projeto, porque um repositório pode fornecer esses arquivos. Claude Code aplica o mesmo filtro a uma entrada de catálogo e a uma entrada no diretório de configurações `--add-dir`, e nenhum filtro a uma entrada em suas configurações de usuário, um arquivo `--settings` ou configurações gerenciadas.4954* **Header filter**: Claude Code descarta [nomes de cabeçalho de roteamento de solicitação e identidade de cliente](/docs/pt/plugin-marketplaces#when-claude-code-skips-a-headershelper-command-or-drops-its-output) de uma entrada no `.claude/settings.json` ou `.claude/settings.local.json` de um projeto, porque um repositório pode fornecer esses arquivos. Claude Code aplica o mesmo filtro a uma entrada de catálogo e a uma entrada no diretório de configurações `--add-dir`, e nenhum filtro a uma entrada em suas configurações de usuário, um arquivo `--settings` ou configurações gerenciadas.

4901 4955 

4902<h4 id="marketplace-key-aliases">4956<h4 id="marketplace-key-aliases">

4903 Marketplace key aliases4957 Aliases de chave de marketplace

4904</h4>4958</h4>

4905 4959 

4906No Claude Code v2.1.232 ou posterior, você pode escrever `extraKnownMarketplaces` como `additionalMarketplaces` e `strictKnownMarketplaces` como `allowedMarketplaces`. Claude Code trata cada alias como segue:4960No Claude Code v2.1.232 ou posterior, você pode escrever `extraKnownMarketplaces` como `additionalMarketplaces` e `strictKnownMarketplaces` como `allowedMarketplaces`. Claude Code trata cada alias como segue:


4934}4988}

4935```4989```

4936 4990 

4991Plugins integrados armazenam suas opções sob a mesma chave com um sufixo `@builtin`. Por exemplo, a configuração [**Project instructions**](/docs/pt/memory#choose-which-instruction-files-load) que controla se Claude Code lê arquivos `AGENTS.md` é `pluginConfigs["agents-md@builtin"].options.instructionFiles`.

4992 

4937Claude Code ignora entradas de projeto e local porque substitui esses valores em configurações de hook de plugin, MCP e LSP, e um repositório clonado não deve ser capaz de fornecê-los. Antes de v2.1.207, configurações de projeto e local também eram lidas.4993Claude Code ignora entradas de projeto e local porque substitui esses valores em configurações de hook de plugin, MCP e LSP, e um repositório clonado não deve ser capaz de fornecê-los. Antes de v2.1.207, configurações de projeto e local também eram lidas.

4938 4994 

4939<h2 id="mcp">4995<h2 id="mcp">


5020Bloqueie servidores MCP específicos. O Claude Code recusa carregar um servidor correspondente onde quer que seja definido, incluindo servidores de plugins, servidores passados com `--mcp-config`, servidores do `managed-mcp.json`, servidores do [`managedMcpServers`](#managedmcpservers) e os conectores claude.ai [que ele busca por si mesmo](/docs/pt/mcp#how-connectors-reach-claude-code). Servidores `type: "sdk"` em processo estão isentos; o aplicativo que iniciou a sessão os registra.5076Bloqueie servidores MCP específicos. O Claude Code recusa carregar um servidor correspondente onde quer que seja definido, incluindo servidores de plugins, servidores passados com `--mcp-config`, servidores do `managed-mcp.json`, servidores do [`managedMcpServers`](#managedmcpservers) e os conectores claude.ai [que ele busca por si mesmo](/docs/pt/mcp#how-connectors-reach-claude-code). Servidores `type: "sdk"` em processo estão isentos; o aplicativo que iniciou a sessão os registra.

5021 5077 

5022* **Escopo**: [`Any file`](#scopes). As entradas de cada arquivo se mesclam em uma lista de negação, e [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly) não muda isso. Implante-o em configurações gerenciadas para aplicá-lo.5078* **Escopo**: [`Any file`](#scopes). As entradas de cada arquivo se mesclam em uma lista de negação, e [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly) não muda isso. Implante-o em configurações gerenciadas para aplicá-lo.

5023* **Tipo**: matriz de objetos, cada um com exatamente uma chave: `serverName`, qualquer string não vazia, portanto o nome de exibição de um conector claude.ai como `"claude.ai Slack"` funciona; `serverCommand`, uma matriz do comando e seus argumentos correspondidos exatamente; ou `serverUrl`, um padrão de URL com curingas `*`5079* **Tipo**: matriz de objetos, cada um com exatamente uma chave: `serverName`, uma string, portanto o nome de exibição de um conector claude.ai como `"claude.ai Slack"` funciona; `serverCommand`, uma matriz do comando e seus argumentos correspondidos exatamente; ou `serverUrl`, um padrão de URL com curingas `*`

5024* **Padrão**: não definido, portanto nenhum servidor é bloqueado; uma matriz vazia também não bloqueia nada5080* **Padrão**: não definido, portanto nenhum servidor é bloqueado; uma matriz vazia também não bloqueia nada

5025 5081 

5026```json settings.json theme={null}5082```json settings.json theme={null}


5037 `disableClaudeAiConnectors`5093 `disableClaudeAiConnectors`

5038</h3>5094</h3>

5039 5095 

5040Desative os [conectores MCP claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai) [que o Claude Code busca por si mesmo](/docs/pt/mcp#how-connectors-reach-claude-code), para que ele não os busque nem se conecte a eles. Um `true` em qualquer arquivo de configurações se aplica: um `.claude/settings.json` de projeto verificado pode optar por desativar esses conectores para um repositório, mas um `false` no nível do projeto não pode substituir um `true` no nível do usuário ou gerenciado. Requer Claude Code v2.1.182 ou posterior.5096Desative os [conectores MCP claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai) [que o Claude Code busca por si mesmo](/docs/pt/mcp#how-connectors-reach-claude-code), para que ele não os busque nem se conecte a eles. Um `true` em qualquer arquivo de configurações se aplica: um `.claude/settings.json` de projeto verificado pode optar por desativar esses conectores para um repositório, mas um `false` no nível do projeto não pode substituir um `true` no nível do usuário ou gerenciado.

5041 5097 

5042* **Escopo**: [`Any file`](#scopes)5098* **Escopo**: [`Any file`](#scopes)

5043* **Tipo**: Booleano5099* **Tipo**: Booleano


5052}5108}

5053```5109```

5054 5110 

5055Os servidores que você passa explicitamente com `--mcp-config` não são afetados. Para bloquear conectores individuais em vez de todos eles, use [`deniedMcpServers`](#deniedmcpservers). Veja [Desativar conectores claude.ai](/docs/pt/mcp#disable-claude-ai-connectors). Requer Claude Code v2.1.182 ou posterior.5111Os servidores que você passa explicitamente com `--mcp-config` não são afetados. Para bloquear conectores individuais em vez de todos eles, use [`deniedMcpServers`](#deniedmcpservers). Veja [Desativar conectores claude.ai](/docs/pt/mcp#disable-claude-ai-connectors).

5056 5112 

5057<h3 id="disabledmcpjsonservers">5113<h3 id="disabledmcpjsonservers">

5058 `disabledMcpjsonServers`5114 `disabledMcpjsonServers`


5266}5322}

5267```5323```

5268 5324 

5269Antes da v2.1.179, o padrão era `auto`. O valor `iterm2` requer Claude Code v2.1.186 ou posterior.5325O valor `iterm2` requer Claude Code v2.1.186 ou posterior.

5270 5326 

5271<span id="worktree-settings" />5327<span id="worktree-settings" />

5272 5328 


5791 5847 

5792Veja [Restringir login à sua organização](/docs/pt/authentication#restrict-login-to-your-organization) para como Claude Code trata logins Claude Console, os outros caminhos de login e credenciais de ambiente.5848Veja [Restringir login à sua organização](/docs/pt/authentication#restrict-login-to-your-organization) para como Claude Code trata logins Claude Console, os outros caminhos de login e credenciais de ambiente.

5793 5849 

5850<h3 id="gatewayinternalnetworks">

5851 `gatewayInternalNetworks`

5852</h3>

5853 

5854Declare os blocos IPv4 públicos dos quais sua organização numera sua rede interna, para que `/login` aceite um [gateway na nuvem](/docs/pt/claude-apps-gateway) lá. Requer Claude Code v2.1.268 ou posterior.

5855 

5856Sem esta chave, `/login` se conecta a qualquer gateway em um endereço privado e nada mais. Com ela, `/login` também aceita um gateway dentro de um bloco listado, apenas sobre uma conexão direta. O endereço próprio da máquina nessa conexão também deve estar dentro do mesmo bloco.

5857 

5858* **Escopo**: [`Gerenciado`](#scopes). Leia apenas de uma fonte na máquina: `managed-settings.json`, a plist do macOS ou registro HKLM do Windows, ou um auxiliar de política. Claude Code a ignora em configurações HKCU e gerenciadas por servidor.

5859* **Tipo**: array de strings, no máximo quatro blocos IPv4 CIDR, cada um `/8` a `/32`, não se sobrepondo um ao outro, e nenhum se sobrepondo ao espaço privado.

5860* **Padrão**: não definido, portanto `/login` aceita apenas gateways em endereços privados

5861 

5862```json managed-settings.json theme={null}

5863{

5864 "gatewayInternalNetworks": ["203.0.113.0/24"]

5865}

5866```

5867 

5868Substitua o intervalo de documentação no exemplo pelo seu próprio bloco. Claude Code recusa os intervalos de documentação, os intervalos que clientes VPN e NAT64 usam localmente, e espaço reservado que nenhuma rede é numerada, como multicast.

5869 

5870Se uma entrada for inválida, ou o valor não for uma lista de strings, `/login` nomeia o problema e recusa cada novo login de gateway na nuvem na máquina até que você corrija o valor. Os logins existentes continuam funcionando. Veja [Permitir um gateway no espaço de endereço público que você possui](/docs/pt/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) para as regras completas e o que os desenvolvedores veem.

5871 

5794<h3 id="gcpauthrefresh">5872<h3 id="gcpauthrefresh">

5795 `gcpAuthRefresh`5873 `gcpAuthRefresh`

5796</h3>5874</h3>


6170 6248 

6171* **[`policyHelper`](#policyhelper)**: Claude Code a honra apenas quando a fonte mais alta que carrega uma chave de política é uma política MDM ou um arquivo de configurações gerenciadas, então sob configurações gerenciadas pelo servidor ela não se aplica.6249* **[`policyHelper`](#policyhelper)**: Claude Code a honra apenas quando a fonte mais alta que carrega uma chave de política é uma política MDM ou um arquivo de configurações gerenciadas, então sob configurações gerenciadas pelo servidor ela não se aplica.

6172* **[`modelOverrides`](#modeloverrides)**: emparelha com `availableModels`. Claude Code pega `modelOverrides` da fonte mais alta que a define, a menos que uma fonte mais alta defina `availableModels` sem `modelOverrides`. Nesse caso, ele ignora `modelOverrides` de todas as fontes.6250* **[`modelOverrides`](#modeloverrides)**: emparelha com `availableModels`. Claude Code pega `modelOverrides` da fonte mais alta que a define, a menos que uma fonte mais alta defina `availableModels` sem `modelOverrides`. Nesse caso, ele ignora `modelOverrides` de todas as fontes.

6173* **[`forceLoginGatewayUrl`](#forcelogingatewayurl) e o valor `"gateway"` de [`forceLoginMethod`](#forceloginmethod)**: Claude Code nunca lê nenhum deles de configurações gerenciadas pelo servidor, então um valor lá não se aplica nem oculta um definido em uma política MDM ou arquivo de configurações gerenciadas. Entre as fontes de administrador na máquina, apenas a fonte classificada mais alta que carrega uma chave de política as fornece, independentemente de configurações gerenciadas pelo servidor também estarem presentes.6251* **[`forceLoginGatewayUrl`](#forcelogingatewayurl), [`gatewayInternalNetworks`](#gatewayinternalnetworks) e o valor `"gateway"` de [`forceLoginMethod`](#forceloginmethod)**: Claude Code nunca lê nenhum deles de configurações gerenciadas pelo servidor, então um valor lá não se aplica nem oculta um definido em uma política MDM ou arquivo de configurações gerenciadas. Entre as fontes de administrador na máquina, apenas a fonte classificada mais alta que carrega uma chave de política as fornece, independentemente de configurações gerenciadas pelo servidor também estarem presentes.

6174 6252 

6175Para confirmar quais fontes se combinaram em uma máquina, execute `/status` e [leia a linha `Setting sources`](/docs/pt/managed-settings#read-the-source-in-/status).6253Para confirmar quais fontes se combinaram em uma máquina, execute `/status` e [leia a linha `Setting sources`](/docs/pt/managed-settings#read-the-source-in-/status).

6176 6254 

skills.md +34 −27

Details

130| Nested | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | Sessões iniciadas em ou abaixo de `<subdir>`. Uma sessão iniciada acima dela carrega a skill uma vez que Claude trabalha em arquivos lá. Veja [monorepos e subdiretórios](#discovery-from-parent-and-nested-directories) |130| Nested | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | Sessões iniciadas em ou abaixo de `<subdir>`. Uma sessão iniciada acima dela carrega a skill uma vez que Claude trabalha em arquivos lá. Veja [monorepos e subdiretórios](#discovery-from-parent-and-nested-directories) |

131| Diretório adicional | `.claude/skills/<skill-name>/SKILL.md` em um diretório que você passa com `--add-dir` | Essa sessão. Veja [diretórios fora do projeto](#skills-from-additional-directories) |131| Diretório adicional | `.claude/skills/<skill-name>/SKILL.md` em um diretório que você passa com `--add-dir` | Essa sessão. Veja [diretórios fora do projeto](#skills-from-additional-directories) |

132| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | Onde quer que o [plugin](/docs/pt/plugins) esteja habilitado, como `/plugin-name:skill-name` |132| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | Onde quer que o [plugin](/docs/pt/plugins) esteja habilitado, como `/plugin-name:skill-name` |

133| Conta claude.ai | Skills que você habilita em suas configurações claude.ai | Sessões Cowork e cloud. Veja [Skills sincronizadas do claude.ai](#how-synced-skills-behave) para sessões locais |133| Conta claude.ai | Skills habilitadas para sua conta claude.ai | Sessões Cowork, sessões cloud e sessões de terminal onde você faz login com essa conta. Veja [Skills sincronizadas do claude.ai](#how-synced-skills-behave) |

134 134 

135As pastas de skill também seguem estas regras:135As pastas de skill também seguem estas regras:

136 136 


183 183 

184Sessões [Cowork](https://claude.com/product/cowork) e [sessões cloud](/docs/pt/cloud-environments#what-carries-over-from-your-setup), incluindo [rotinas](/docs/pt/routines), não leem `~/.claude/skills/` em sua máquina. Sessões Cowork interativas e agendadas carregam as skills habilitadas para sua conta claude.ai, sincronizadas no início da sessão; gerencie-as em **Customize** na barra lateral do aplicativo Desktop ou nas configurações de skills em claude.ai. Sessões cloud adicionalmente carregam skills de projeto confirmadas no `.claude/skills/` do repositório clonado.184Sessões [Cowork](https://claude.com/product/cowork) e [sessões cloud](/docs/pt/cloud-environments#what-carries-over-from-your-setup), incluindo [rotinas](/docs/pt/routines), não leem `~/.claude/skills/` em sua máquina. Sessões Cowork interativas e agendadas carregam as skills habilitadas para sua conta claude.ai, sincronizadas no início da sessão; gerencie-as em **Customize** na barra lateral do aplicativo Desktop ou nas configurações de skills em claude.ai. Sessões cloud adicionalmente carregam skills de projeto confirmadas no `.claude/skills/` do repositório clonado.

185 185 

186Se uma skill existe apenas em `~/.claude/skills/` em sua máquina, Claude Code relata que a skill não foi encontrada quando uma [rotina](/docs/pt/routines) a invoca, porque cada execução de rotina começa como uma sessão remota nova. Para disponibilizar uma skill pessoal nessas sessões:186Se uma skill existe apenas em `~/.claude/skills/` em sua máquina, Claude Code relata que a skill não foi encontrada quando uma [rotina](/docs/pt/routines) a invoca, porque cada execução de rotina começa como uma sessão cloud nova. Para disponibilizar uma skill pessoal nessas sessões:

187 187 

188* Para sessões Cowork e cloud, habilite a skill para sua conta claude.ai.188* Para sessões Cowork e cloud, habilite a skill para sua conta claude.ai.

189* Para sessões cloud, você pode em vez disso confirmar a skill no `.claude/skills/` do repositório, ou enviá-la em um plugin declarado no `.claude/settings.json` do repositório. Plugins declarados no repositório [instalam no início da sessão](/docs/pt/cloud-environments#what-carries-over-from-your-setup); plugins habilitados apenas em suas configurações de usuário não são transferidos.189* Para sessões cloud, você pode em vez disso confirmar a skill no `.claude/skills/` do repositório, ou enviá-la em um plugin declarado no `.claude/settings.json` do repositório. Plugins declarados no repositório [instalam no início da sessão](/docs/pt/cloud-environments#what-carries-over-from-your-setup); plugins habilitados apenas em suas configurações de usuário não são transferidos.


194 Skills sincronizadas do claude.ai194 Skills sincronizadas do claude.ai

195</h3>195</h3>

196 196 

197Esta seção se aplica a você se habilitou skills para sua conta claude.ai. Em sessões Cowork e cloud, Claude Code carrega essas skills sem qualquer configuração em sua máquina. Em qualquer outra sessão em sua máquina, Claude Code as carrega apenas após você ativar a sincronização com [`CLAUDE_CODE_SYNC_SKILLS`](/docs/pt/env-vars#variables) em uma execução não interativa, como [Onde as skills sincronizadas carregam](#where-synced-skills-load) descreve.197Esta seção se aplica a você se você usar sessões Cowork ou cloud, ou fizer login no Claude Code em seu terminal com uma conta claude.ai. Nessas sessões, Claude Code carrega as skills habilitadas para sua conta claude.ai, sem qualquer configuração em sua parte, como [Onde as skills sincronizadas carregam](#where-synced-skills-load) descreve. Essas skills incluem as que você cria ou ativa em suas configurações claude.ai, skills que sua organização fornece lá, e skills integradas da Anthropic como `pdf` e `xlsx`.

198 198 

199Claude Code baixa uma skill sincronizada de sua conta em vez de ler um arquivo que você escreveu na máquina onde a sessão executa, então aplica regras a skills sincronizadas que não se aplicam às skills que você armazena nos [locais de skills](#where-skills-live).199Claude Code baixa uma skill sincronizada de sua conta em vez de ler um arquivo que você escreveu na máquina onde a sessão executa, então aplica regras a skills sincronizadas que não se aplicam às skills que você armazena nos [locais de skills](#where-skills-live).

200 200 


204 204 

205Em uma sessão Cowork ou cloud, Claude Code carrega as skills habilitadas para sua conta claude.ai, e [Skills em sessões Cowork e cloud](#skills-in-cowork-and-cloud-sessions) diz como escolher quais skills essas sessões obtêm.205Em uma sessão Cowork ou cloud, Claude Code carrega as skills habilitadas para sua conta claude.ai, e [Skills em sessões Cowork e cloud](#skills-in-cowork-and-cloud-sessions) diz como escolher quais skills essas sessões obtêm.

206 206 

207Em qualquer outra sessão em sua máquina, Claude Code as carrega apenas após você baixá-las uma vez em uma execução não interativa:207Em seu terminal, Claude Code sincroniza essas skills em sessões onde você faz login com sua conta claude.ai. Quando a sessão começa, Claude Code baixa as skills de sua conta em `~/.claude/skills/synced/` em segundo plano, então verifica claude.ai para mudanças a cada 10 minutos enquanto a sessão executa. Quando uma verificação descobre que uma skill foi adicionada, editada ou desativada em claude.ai, Claude Code adiciona, atualiza ou remove ela na sessão em execução sem uma reinicialização. A sincronização em sessões de terminal requer Claude Code v2.1.273 ou posterior.

208 208 

209<Steps>209A sincronização nunca atrasa a inicialização, porque Claude aguarda o download de uma skill apenas quando a invoca. Uma execução curta [não interativa](/docs/pt/headless) pode portanto terminar antes que uma skill recém-adicionada baixe, caso em que uma sessão posterior a baixa. Para fazer uma execução não interativa baixar suas skills e aguardar a lista antes de responder ao prompt, defina [`CLAUDE_CODE_SYNC_SKILLS`](/docs/pt/env-vars#variables) como `1`.

210 <Step title="Habilite as skills para sua conta claude.ai">

211 Habilite cada skill que você deseja para sua conta claude.ai, como [Skills em sessões Cowork e cloud](#skills-in-cowork-and-cloud-sessions) descreve. Claude Code baixa apenas as skills que você habilitou, e precisa de seu sign-in claude.ai para baixá-las.

212 </Step>

213 210 

214 <Step title="Execute Claude Code em modo não interativo com sincronização ativada">211Claude Code sincroniza apenas em uma sessão que faz login com sua conta claude.ai e [busca sinalizadores de recurso da Anthropic](/docs/pt/env-vars#features-that-need-feature-flag-fetching). Ele não sincroniza nessas sessões:

215 Claude Code baixa skills sincronizadas apenas quando você o executa em [modo não interativo](/docs/pt/headless) com a flag `-p` e define [`CLAUDE_CODE_SYNC_SKILLS`](/docs/pt/env-vars#variables) como `1`. O prompt que você passa não afeta o download.

216 212 

217 ```bash theme={null}213* Uma sessão que não usa um login armazenado por `/login`, como uma que autentica com uma chave de API, ou uma onde `ANTHROPIC_AUTH_TOKEN`, `CLAUDE_CODE_OAUTH_TOKEN` ou um script `apiKeyHelper` fornece a credencial

218 CLAUDE_CODE_SYNC_SKILLS=1 claude -p "List the skills you have available"214* Uma sessão que não busca sinalizadores de recurso, como uma em Amazon Bedrock ou uma onde você define `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

219 ```215* Uma sessão em [modo bare](/docs/pt/headless#start-faster-with-bare-mode) ou uma que você inicia com `--safe-mode`

216* Uma sessão onde as configurações gerenciadas de sua organização [bloqueiam skills para fontes de plugin](/docs/pt/settings-reference#strictpluginonlycustomization-skills), ou uma que você inicia com uma lista [`--setting-sources`](/docs/pt/cli-reference#cli-flags) que deixa de fora `user`

220 217 

221 Claude Code baixa as skills em `~/.claude/skills/synced/`, responde ao prompt e sai como qualquer outra execução não interativa. As skills baixadas permanecem no disco após sair, então você não precisa manter a execução aberta. Claude Code baixa skills apenas durante uma execução com `CLAUDE_CODE_SYNC_SKILLS` definido, então após você habilitar ou alterar uma skill em claude.ai, execute o comando novamente. Para alterar quanto tempo a execução aguarda a sincronização antes de responder ao prompt, defina [`CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`](/docs/pt/env-vars#variables).218Se você fizer login com `/login` durante uma sessão, reinicie Claude Code para começar a sincronizar.

222 </Step>

223 219 

224 <Step title="Confirme que as skills carregam em uma sessão local">220Skills que uma sessão anterior sincronizou permanecem no disco. Claude Code as carrega em sessões posteriores conectadas à mesma conta, mesmo quando não consegue alcançar claude.ai.

225 Inicie uma sessão interativa, sem `CLAUDE_CODE_SYNC_SKILLS` definido, e execute `/skills`. O menu lista as skills baixadas em `claude.ai sync`. Cada sessão local que você inicia depois com o mesmo sign-in claude.ai as carrega de `~/.claude/skills/synced/` também.221 

226 </Step>222Para ver quais skills sincronizaram, execute `/skills`. O menu as lista em `claude.ai sync`.

227</Steps>223 

224Algumas skills da Anthropic, como `pdf` e `xlsx`, sempre sincronizam. Para o resto, ative ou desative uma skill em suas configurações de skills em claude.ai para alterar se ela sincroniza.

225 

226Para parar de sincronizar em uma máquina, defina [`syncClaudeAiSkills`](/docs/pt/settings-reference#syncclaudeaiskills) como `false` em suas configurações de usuário. Claude Code para de baixar, e na próxima vez que inicia move as skills que já sincronizou para `~/.claude/skills/.trash/` e não as carrega mais. Sua organização pode desativar a sincronização para todos desativando Skills em claude.ai. Para parar de sincronizar enquanto deixa Skills ativado, ela pode definir a mesma chave em [configurações gerenciadas](/docs/pt/managed-settings).

227 

228Se sua organização desativar Skills em claude.ai, Claude Code remove as skills baixadas e elas param de carregar. As skills removidas se movem para `~/.claude/skills/.trash/`, onde você pode recuperar os arquivos até a [limpeza de retenção](/docs/pt/claude-directory#cleaned-up-automatically) deletá-los. Uma vez que sua organização ativa Skills novamente, Claude Code baixa as skills que você habilitou na próxima sincronização.

228 229 

229<h4 id="when-a-synced-skill-name-matches-another-command">230<h4 id="when-a-synced-skill-name-matches-another-command">

230 Quando um nome de skill sincronizada corresponde a outro comando231 Quando um nome de skill sincronizada corresponde a outro comando


241 242 

242Claude Code rotula skills sincronizadas para que você possa dizer de onde vieram. O menu `/skills` e `/context` agrupam skills sincronizadas em `claude.ai sync`, e o menu de comando `/` as marca como vindo do claude.ai.243Claude Code rotula skills sincronizadas para que você possa dizer de onde vieram. O menu `/skills` e `/context` agrupam skills sincronizadas em `claude.ai sync`, e o menu de comando `/` as marca como vindo do claude.ai.

243 244 

244Quando compara nomes, Claude Code ignora maiúsculas, espaçamento e caracteres invisíveis, e trata formas de compatibilidade como letras de largura completa e variantes de travessão como seus equivalentes simples. Por exemplo, uma skill `commit` local mantém `/commit`, e uma `Commit` sincronizada executa apenas como `/anthropic-skills:Commit`.245Quando compara nomes, Claude Code ignora maiúsculas, espaçamento e caracteres invisíveis, e trata formas de compatibilidade como letras de largura completa e variantes de travessão como seus equivalentes simples. Por exemplo, uma skill sincronizada nomeada `Commit` e uma skill local nomeada `commit` contam como o mesmo nome, então `/commit` continua executando sua skill local.

245 246 

246Um nome que difere apenas por uma letra semelhante de outro alfabeto conta como um nome diferente, e o rótulo `claude.ai sync` é como você diferencia os dois. Essas verificações e rótulos requerem Claude Code v2.1.228 ou posterior.247Um nome que difere apenas por uma letra semelhante de outro alfabeto conta como um nome diferente, e o rótulo `claude.ai sync` é como você diferencia os dois. Essas verificações e rótulos requerem Claude Code v2.1.228 ou posterior.

247 248 


387| Skills do Claude Code em [qualquer nível](#where-skills-live), incluindo skills de [plugin](/docs/pt/plugins) | Todos os campos na tabela acima |388| Skills do Claude Code em [qualquer nível](#where-skills-live), incluindo skills de [plugin](/docs/pt/plugins) | Todos os campos na tabela acima |

388| Uploads de skills do claude.ai, a Skills API e empacotamento com `package_skill.py` de [anthropics/skills](https://github.com/anthropics/skills) | `name`, `description`, `license`, `compatibility`, `metadata`, `allowed-tools` |389| Uploads de skills do claude.ai, a Skills API e empacotamento com `package_skill.py` de [anthropics/skills](https://github.com/anthropics/skills) | `name`, `description`, `license`, `compatibility`, `metadata`, `allowed-tools` |

389 390 

390Quando você habilita uma skill pessoal para [sessões Cowork e cloud](#skills-in-cowork-and-cloud-sessions), incluindo rotinas, você a carrega no claude.ai, então as mesmas regras se aplicam.391Quando você habilita uma skill pessoal para sua conta claude.ai, por exemplo para usá-la em [sessões Cowork e cloud](#skills-in-cowork-and-cloud-sessions) e rotinas, você a carrega no claude.ai, então as mesmas regras se aplicam.

391 392 

392Se você incluir qualquer campo que a especificação não permite, o empacotamento ou upload falha com um erro difícil em vez de ignorar o campo:393Se você incluir qualquer campo que a especificação não permite, o empacotamento ou upload falha com um erro difícil em vez de ignorar o campo:

393 394 


719 720 

720Com o shell `bash` padrão, acrescente `|| true` a qualquer outro comando que você espera sair com código diferente de zero. Um script de verificação que sai com 1 quando encontra problemas é um exemplo.721Com o shell `bash` padrão, acrescente `|| true` a qualquer outro comando que você espera sair com código diferente de zero. Um script de verificação que sai com 1 quando encontra problemas é um exemplo.

721 722 

722Comandos injetados nunca solicitam permissão. Quando a verificação de permissão de um comando retorna qualquer coisa diferente de permitir, Claude Code aborta a invocação. Isso inclui uma regra que normalmente perguntaria. O aborto mostra `Shell command permission check failed for pattern "..."`.723<h4 id="permission-checks-on-injected-commands">

724 Verificações de permissão em comandos injetados

725</h4>

726 

727Comandos injetados nunca solicitam permissão enquanto a skill é renderizada. Claude Code verifica cada um contra suas [regras de permissão](/docs/pt/permissions) primeiro. Um comando que uma regra de negação corresponde aborta a invocação com `Shell command permission check failed for pattern "..."`.

728 

729Fora do [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), quando a verificação de permissão de um comando retorna qualquer coisa diferente de permitir, Claude Code aborta a invocação com o mesmo erro. Isso inclui uma regra que normalmente perguntaria. Para evitar que um comando não correspondido aborte aqui, pré-aprove-o com [`allowed-tools`](#pre-approve-tools-for-a-skill). Regras de negação e pergunta ainda substituem `allowed-tools`. Veja [Manage permissions](/docs/pt/permissions#manage-permissions).

723 730 

724Para evitar que um comando não correspondido aborte aqui, pré-aprove-o com [`allowed-tools`](#pre-approve-tools-for-a-skill). Uma regra de ask ou deny correspondente ainda aborta a invocação independentemente de `allowed-tools`. Veja [Manage permissions](/docs/pt/permissions#manage-permissions).731No modo automático, um comando que de outra forma precisaria de sua aprovação não aborta a invocação. A skill carrega com uma instrução dizendo a Claude para executar o comando primeiro, e a própria chamada de Claude passa pelas [verificações usuais do modo automático](/docs/pt/permission-modes#how-the-classifier-evaluates-actions). A invocação ainda aborta em uma [skill bifurcada](#run-skills-in-a-subagent) que define `agent`, e em uma sessão onde Claude não tem a [ferramenta shell que executa comandos injetados](#how-injected-commands-run).

725 732 

726<h3 id="run-skills-in-a-subagent">733<h3 id="run-skills-in-a-subagent">

727 Executar skills em um subagente734 Executar skills em um subagente


753Skills e [subagentes](/docs/pt/sub-agents) trabalham juntos em duas direções:760Skills e [subagentes](/docs/pt/sub-agents) trabalham juntos em duas direções:

754 761 

755| Abordagem | System prompt | Tarefa | Também carrega |762| Abordagem | System prompt | Tarefa | Também carrega |

756| :--------------------------- | :-------------------------- | :------------------------------ | :-------------------------------------------------- |763| :--------------------------- | :-------------------------- | :------------------------------ | :----------------------------------------------------------------------------------------------------------------- |

757| Skill com `context: fork` | Do tipo de agente | Conteúdo SKILL.md | CLAUDE.md, exceto quando o agente é Explore ou Plan |764| Skill com `context: fork` | Do tipo de agente | Conteúdo SKILL.md | CLAUDE.md, conforme o [startup context](/docs/pt/sub-agents#what-loads-at-startup) do agente |

758| Subagente com campo `skills` | Corpo markdown do subagente | Mensagem de delegação de Claude | Skills pré-carregadas + CLAUDE.md |765| Subagente com campo `skills` | Corpo markdown do subagente | Mensagem de delegação de Claude | Skills pré-carregadas + CLAUDE.md, conforme o [startup context](/docs/pt/sub-agents#what-loads-at-startup) do subagente |

759 766 

760Com `context: fork`, você escreve a tarefa em sua skill e escolhe um tipo de agente para executá-la. Os agentes Explore e Plan integrados [pulam CLAUDE.md e git status](/docs/pt/sub-agents#what-loads-at-startup) para manter seu contexto pequeno, então uma skill bifurcada usando `agent: Explore` vê apenas o conteúdo SKILL.md e o prompt do sistema do agente. Para o inverso, onde você define um subagente personalizado que usa skills como material de referência, veja [Subagentes](/docs/pt/sub-agents#preload-skills-into-subagents).767Com `context: fork`, você escreve a tarefa em sua skill e escolhe um tipo de agente para executá-la. Os agentes Explore e Plan integrados [pulam CLAUDE.md e git status](/docs/pt/sub-agents#what-loads-at-startup) para manter seu contexto pequeno, então uma skill bifurcada usando `agent: Explore` vê apenas o conteúdo SKILL.md e o prompt do sistema do agente. Para o inverso, onde você define um subagente personalizado que usa skills como material de referência, veja [Subagentes](/docs/pt/sub-agents#preload-skills-into-subagents).

761 768 


877 Avaliar e iterar em uma skill884 Avaliar e iterar em uma skill

878</h2>885</h2>

879 886 

880Ver uma skill ser acionada informa que Claude a encontrou, não que ela fez o que você pretendia. Para saber que uma skill está funcionando, meça duas coisas separadamente: se Claude a invoca nos prompts que deveria, e se a saída corresponde ao que você espera quando o faz.887Ver uma skill ser acionada informa que Claude a encontrou, não que ela fez o que você pretendia. Para saber que uma skill está funcionando, meça separadamente se Claude a invoca nos prompts que deveria, e se a saída corresponde ao que você espera quando o faz.

881 888 

882A verificação de ambas é uma comparação de linha de base. Colete alguns prompts realistas, execute cada um em uma sessão nova com a skill disponível e novamente com ela [desabilitada](#override-skill-visibility-from-settings), e compare os resultados. Uma sessão nova é importante porque o contexto restante da autoria da skill mascarará lacunas nas instruções escritas.889A verificação de ambas é uma comparação de linha de base. Colete alguns prompts realistas, execute cada um em uma sessão nova com a skill disponível e novamente com ela [desabilitada](#override-skill-visibility-from-settings), e compare os resultados. Uma sessão nova é importante porque o contexto restante da autoria da skill mascarará lacunas nas instruções escritas.

883 890 

slack.md +15 −15

Details

35| Requisito | Detalhes |35| Requisito | Detalhes |

36| :----------------- | :------------------------------------------------------------------------------------------------------ |36| :----------------- | :------------------------------------------------------------------------------------------------------ |

37| Plano Claude | Pro, Max, Team ou Enterprise com acesso a Claude Code (assentos premium ou assentos Chat + Claude Code) |37| Plano Claude | Pro, Max, Team ou Enterprise com acesso a Claude Code (assentos premium ou assentos Chat + Claude Code) |

38| Claude Code na web | O acesso a [Claude Code na web](/docs/pt/claude-code-on-the-web) deve estar habilitado |38| Sessões na nuvem | [Sessões na nuvem](/docs/pt/claude-code-on-the-web) estão habilitadas para sua conta |

39| Conta GitHub | Conectada ao Claude Code na web com pelo menos um repositório autenticado |39| Conta GitHub | Conectada em [claude.ai/code](https://claude.ai/code) com pelo menos um repositório autenticado |

40| Autenticação Slack | Sua conta Slack vinculada à sua conta Claude por meio do aplicativo Claude |40| Autenticação Slack | Sua conta Slack vinculada à sua conta Claude por meio do aplicativo Claude |

41 41 

42<h2 id="setting-up-claude-code-in-slack">42<h2 id="setting-up-claude-code-in-slack">


52 Após a instalação do aplicativo, autentique sua conta Claude individual:52 Após a instalação do aplicativo, autentique sua conta Claude individual:

53 53 

54 1. Abra o aplicativo Claude no Slack clicando em "Claude" na seção Aplicativos54 1. Abra o aplicativo Claude no Slack clicando em "Claude" na seção Aplicativos

55 2. Navegue até a aba App Home55 2. Abra a aba App Home

56 3. Clique em "Connect" para vincular sua conta Slack com sua conta Claude56 3. Clique em "Connect" para vincular sua conta Slack com sua conta Claude

57 4. Conclua o fluxo de autenticação em seu navegador57 4. Conclua o fluxo de autenticação em seu navegador

58 </Step>58 </Step>

59 59 

60 <Step title="Configure Claude Code na web">60 <Step title="Configure sessões na nuvem">

61 Certifique-se de que seu Claude Code na web está devidamente configurado:61 Certifique-se de que as sessões na nuvem estão devidamente configuradas para sua conta:

62 62 

63 * Visite [claude.ai/code](https://claude.ai/code) e faça login com a mesma conta que você conectou ao Slack63 * Visite [claude.ai/code](https://claude.ai/code) e faça login com a mesma conta que você conectou ao Slack

64 * Conecte sua conta GitHub se ainda não estiver conectada64 * Conecte sua conta GitHub se ainda não estiver conectada


66 </Step>66 </Step>

67 67 

68 <Step title="Escolha seu modo de roteamento">68 <Step title="Escolha seu modo de roteamento">

69 Após conectar suas contas, configure como Claude lida com suas mensagens no Slack. Navegue até o App Home do Claude no Slack para encontrar a configuração **Routing Mode**.69 Após conectar suas contas, configure como Claude lida com suas mensagens no Slack. Abra o App Home do Claude no Slack para encontrar a configuração **Routing Mode**.

70 70 

71 | Modo | Comportamento |71 | Modo | Comportamento |

72 | :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |72 | :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |


91 Detecção automática91 Detecção automática

92</h3>92</h3>

93 93 

94No modo de roteamento Code + Chat, quando você menciona @Claude em um canal ou thread do Slack, Claude detecta automaticamente se sua mensagem é uma tarefa de codificação. Tarefas de codificação vão para Claude Code na web. Qualquer outra coisa recebe uma resposta de chat regular. No modo Code only, cada @mention vai para Claude Code.94No modo de roteamento Code + Chat, quando você menciona @Claude em um canal ou thread do Slack, Claude detecta automaticamente se sua mensagem é uma tarefa de codificação. Tarefas de codificação vão para uma sessão Claude Code na nuvem. Qualquer outra coisa recebe uma resposta de chat regular. No modo Code only, cada @mention vai para Claude Code.

95 95 

96Você também pode dizer explicitamente ao Claude para lidar com uma solicitação como uma tarefa de codificação, mesmo que ele não a detecte automaticamente.96Você também pode dizer explicitamente ao Claude para lidar com uma solicitação como uma tarefa de codificação, mesmo que ele não a detecte automaticamente.

97 97 


182 182 

183**No Slack**: Você verá atualizações de status, resumos de conclusão e botões de ação. A transcrição completa é preservada e sempre acessível.183**No Slack**: Você verá atualizações de status, resumos de conclusão e botões de ação. A transcrição completa é preservada e sempre acessível.

184 184 

185**Na web**: A sessão Claude Code completa com histórico de conversa completo, todas as alterações de código e operações de arquivo. As sessões permanecem no seu histórico do Claude Code em [claude.ai/code](https://claude.ai/code), onde você pode continuar sessões anteriores, consultá-las ou criar pull requests.185**Em claude.ai/code**: A sessão Claude Code completa com histórico de conversa completo, todas as alterações de código e operações de arquivo. As sessões permanecem no seu histórico do Claude Code em [claude.ai/code](https://claude.ai/code), onde você pode continuar sessões anteriores, consultá-las ou criar pull requests.

186 186 

187Para contas Enterprise e Team, as sessões criadas a partir de Claude no Slack são automaticamente visíveis para a organização. Consulte [Compartilhamento de sessões do Claude Code na Web](/docs/pt/claude-code-on-the-web#share-sessions) para mais detalhes.187Para contas Enterprise e Team, as sessões criadas a partir de Claude no Slack são automaticamente visíveis para a organização. Consulte [compartilhamento de sessões](/docs/pt/claude-code-on-the-web#share-sessions) para mais detalhes.

188 188 

189<h2 id="best-practices">189<h2 id="best-practices">

190 Melhores práticas190 Melhores práticas


196 196 

197* **Seja específico**: Inclua nomes de arquivos, nomes de funções ou mensagens de erro quando relevante.197* **Seja específico**: Inclua nomes de arquivos, nomes de funções ou mensagens de erro quando relevante.

198* **Forneça contexto**: Mencione o repositório ou projeto se não estiver claro na conversa.198* **Forneça contexto**: Mencione o repositório ou projeto se não estiver claro na conversa.

199* **Defina o sucesso**: Explique como "feito" se parece—Claude deve escrever testes? Atualizar documentação? Criar um PR?199* **Defina o sucesso**: Explique como "feito" se parece. Claude deve escrever testes? Atualizar documentação? Criar um PR?

200* **Use threads**: Responda em threads ao discutir bugs ou recursos para que Claude possa reunir o contexto completo.200* **Use threads**: Responda em threads ao discutir bugs ou recursos para que Claude possa reunir o contexto completo.

201 201 

202<h3 id="when-to-use-slack-vs-web">202<h3 id="when-to-use-slack-vs-web">


222</h3>222</h3>

223 223 

2241. Verifique se sua conta Claude está conectada no App Home do Claude2241. Verifique se sua conta Claude está conectada no App Home do Claude

2252. Verifique se você tem acesso a Claude Code na web habilitado2252. Verifique se as sessões em nuvem estão habilitadas para sua conta

2263. Certifique-se de ter pelo menos um repositório GitHub conectado ao Claude Code2263. Certifique-se de ter pelo menos um repositório GitHub conectado ao Claude Code

227 227 

228<h3 id="sessions-from-a-claude-tag-channel-fail-to-start">228<h3 id="sessions-from-a-claude-tag-channel-fail-to-start">


242 Repositório não aparecendo242 Repositório não aparecendo

243</h3>243</h3>

244 244 

2451. Conecte o repositório em Claude Code na web em [claude.ai/code](https://claude.ai/code)2451. Conecte o repositório em [claude.ai/code](https://claude.ai/code)

2462. Verifique suas permissões do GitHub para esse repositório2462. Verifique suas permissões do GitHub para esse repositório

2473. Tente desconectar e reconectar sua conta GitHub2473. Tente desconectar e reconectar sua conta GitHub

248 248 


267 267 

268* **Apenas GitHub**: repositórios devem estar no GitHub.268* **Apenas GitHub**: repositórios devem estar no GitHub.

269* **Um PR por vez**: cada sessão pode criar um pull request.269* **Um PR por vez**: cada sessão pode criar um pull request.

270* **Acesso à web necessário**: os usuários precisam ter acesso a Claude Code na web; sem ele, Claude responde com respostas de chat padrão.270* **Acesso à sessão na nuvem necessário**: os usuários precisam ter acesso a [sessões na nuvem](/docs/pt/claude-code-on-the-web); sem ele, Claude responde com respostas de chat padrão.

271 271 

272<h2 id="related-resources">272<h2 id="related-resources">

273 Recursos relacionados273 Recursos relacionados

274</h2>274</h2>

275 275 

276<CardGroup>276<CardGroup>

277 <Card title="Claude Code na web" icon="globe" href="/docs/pt/claude-code-on-the-web">277 <Card title="Claude Code na nuvem" icon="cloud" href="/docs/pt/claude-code-on-the-web">

278 Saiba mais sobre Claude Code na web278 Saiba mais sobre sessões na nuvem

279 </Card>279 </Card>

280 280 

281 <Card title="Claude for Slack" icon="slack" href="https://claude.com/claude-and-slack">281 <Card title="Claude for Slack" icon="slack" href="https://claude.com/claude-and-slack">

statusline.md +1 −1

Details

86 Construir uma linha de status passo a passo86 Construir uma linha de status passo a passo

87</h2>87</h2>

88 88 

89Este passo a passo mostra o que está acontecendo nos bastidores criando manualmente uma linha de status que exibe o modelo atual, diretório de trabalho e porcentagem de uso da janela de contexto.89Este passo a passo mostra o que `/statusline` configura para você criando manualmente uma linha de status que exibe o modelo atual, diretório de trabalho e porcentagem de uso da janela de contexto.

90 90 

91<Note>Executar [`/statusline`](#use-the-%2Fstatusline-command) com uma descrição do que você quer configura tudo isso automaticamente para você.</Note>91<Note>Executar [`/statusline`](#use-the-%2Fstatusline-command) com uma descrição do que você quer configura tudo isso automaticamente para você.</Note>

92 92 

sub-agents.md +19 −12

Details

32 32 

33Claude Code inclui subagentes integrados que Claude usa automaticamente quando apropriado. Cada um herda as permissões da conversa pai; a maioria é executada com um conjunto de ferramentas restrito.33Claude Code inclui subagentes integrados que Claude usa automaticamente quando apropriado. Cada um herda as permissões da conversa pai; a maioria é executada com um conjunto de ferramentas restrito.

34 34 

35Explore e Plan pulam seus arquivos CLAUDE.md e o status git da sessão pai para manter a pesquisa rápida e econômica. Todos os outros subagentes integrados e [subagentes personalizados](#configure-subagents) carregam ambos. Para o detalhamento completo do que chega a um subagente, consulte [o que é carregado na inicialização](#what-loads-at-startup).35Explore e Plan pulam seus arquivos CLAUDE.md e o status git da sessão pai para manter a pesquisa rápida e econômica. Todos os outros subagentes integrados e [subagentes personalizados](#configure-subagents) carregam ambos, a menos que sua definição defina o campo [`omitClaudeMd`](#supported-frontmatter-fields) para pular os arquivos CLAUDE.md do usuário, projeto e local. Para o detalhamento completo do que chega a um subagente, consulte [o que é carregado na inicialização](#what-loads-at-startup).

36 36 

37<Tabs>37<Tabs>

38 <Tab title="Explore">38 <Tab title="Explore">


230 </Tab>230 </Tab>

231</Tabs>231</Tabs>

232 232 

233O flag `--agents` aceita JSON com um campo `prompt` mais estes campos de [frontmatter](#supported-frontmatter-fields): `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `mcpServers`, `hooks`, `maxTurns`, `skills`, `initialPrompt`, `memory`, `effort`, `background` e `isolation`. Use `prompt` para o prompt de sistema, equivalente ao corpo markdown em subagentes baseados em arquivo. Cada chave de nível superior no JSON é o nome do agente. Não comece um nome com `-`.233O flag `--agents` aceita JSON com um campo `prompt` mais estes campos de [frontmatter](#supported-frontmatter-fields): `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `mcpServers`, `hooks`, `maxTurns`, `skills`, `initialPrompt`, `memory`, `effort`, `background`, `omitClaudeMd` e `isolation`. Use `prompt` para o prompt de sistema, equivalente ao corpo markdown em subagentes baseados em arquivo.

234 

235Cada chave de nível superior no JSON é o nome do agente. Não comece um nome com `-`.

234 236 

235Para o que Claude Code faz com um valor que não consegue carregar, e os flags e variável de ambiente que pulam essa verificação, veja [`Invalid --agents configuration`](/docs/pt/errors#invalid-agents-configuration).237Para o que Claude Code faz com um valor que não consegue carregar, e os flags e variável de ambiente que pulam essa verificação, veja [`Invalid --agents configuration`](/docs/pt/errors#invalid-agents-configuration).

236 238 


300Os seguintes campos podem ser usados no frontmatter YAML. Apenas `name` e `description` são obrigatórios.302Os seguintes campos podem ser usados no frontmatter YAML. Apenas `name` e `description` são obrigatórios.

301 303 

302| Field | Required | Description |304| Field | Required | Description |

303| :---------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |305| :---------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

304| `name` | Yes | Identificador único usando letras minúsculas e hífens. [Hooks](/docs/pt/hooks#subagentstart) recebem este valor como `agent_type`. O nome do arquivo não precisa corresponder. Nomes não podem conter `:`, que é reservado para [identificadores com escopo de plugin](/docs/pt/plugins) como `my-plugin:reviewer`. Claude Code não carrega um arquivo cujo nome contém um e registra um erro no log de debug. Antes da v2.1.218, tais nomes eram aceitos |306| `name` | Yes | Identificador único usando letras minúsculas e hífens. [Hooks](/docs/pt/hooks#subagentstart) recebem este valor como `agent_type`. O nome do arquivo não precisa corresponder. Nomes não podem conter `:`, que é reservado para [identificadores com escopo de plugin](/docs/pt/plugins) como `my-plugin:reviewer`. Claude Code não carrega um arquivo cujo nome contém um e registra um erro no log de debug. Antes da v2.1.218, tais nomes eram aceitos |

305| `description` | Yes | Quando Claude deve delegar para este subagente |307| `description` | Yes | Quando Claude deve delegar para este subagente |

306| `tools` | No | [Ferramentas](#available-tools) que o subagente pode usar. Herda todas as ferramentas disponíveis para subagentes se omitido. Se nenhuma entrada na lista se resolver para uma ferramenta, o subagente geralmente [falha ao iniciar](/docs/pt/errors#agent-would-be-spawned-with-zero-tools) com um erro nomeando as entradas. Para pré-carregar Skills no contexto, use o campo `skills` em vez de listar `Skill` aqui |308| `tools` | No | [Ferramentas](#available-tools) que o subagente pode usar. Herda todas as ferramentas disponíveis para subagentes se omitido. Se nenhuma entrada na lista se resolver para uma ferramenta, o subagente geralmente [falha ao iniciar](/docs/pt/errors#agent-would-be-spawned-with-zero-tools) com um erro nomeando as entradas. Para pré-carregar Skills no contexto, use o campo `skills` em vez de listar `Skill` aqui |


313| `hooks` | No | [Lifecycle hooks](#define-hooks-for-subagents) com escopo para este subagente. Ignorado para [subagentes de plugin](#choose-the-subagent-scope) |315| `hooks` | No | [Lifecycle hooks](#define-hooks-for-subagents) com escopo para este subagente. Ignorado para [subagentes de plugin](#choose-the-subagent-scope) |

314| `memory` | No | [Escopo de memória persistente](#enable-persistent-memory): `user`, `project`, ou `local`. Habilita aprendizado entre sessões |316| `memory` | No | [Escopo de memória persistente](#enable-persistent-memory): `user`, `project`, ou `local`. Habilita aprendizado entre sessões |

315| `background` | No | Defina como `true` para manter este subagente em background mesmo quando Claude pede para executá-lo em foreground. Onde [fork mode](#turn-fork-mode-on-or-off) está ativado, Claude Code já executa os subagentes que Claude gera [em background](#run-subagents-in-foreground-or-background) |317| `background` | No | Defina como `true` para manter este subagente em background mesmo quando Claude pede para executá-lo em foreground. Onde [fork mode](#turn-fork-mode-on-or-off) está ativado, Claude Code já executa os subagentes que Claude gera [em background](#run-subagents-in-foreground-or-background) |

318| `omitClaudeMd` | No | Defina como `true` para iniciar este subagente sem os arquivos CLAUDE.md de usuário, projeto e local; [arquivos de política gerenciada](/docs/pt/memory#how-claude-md-files-load) ainda carregam, exceto para [subagentes gerenciados](#choose-the-subagent-scope). Use-o para subagentes que pegam tudo que precisam do [prompt de delegação](#what-loads-at-startup). Ignorado quando o agente é executado como o agente da sessão principal via `--agent` ou a configuração `agent`. Requer Claude Code v2.1.271 ou posterior |

316| `effort` | No | Nível de esforço quando este subagente está ativo. Sobrescreve o nível de esforço da sessão. Padrão: herda da sessão. Opções: `low`, `medium`, `high`, `xhigh`, `max`; os níveis disponíveis dependem do modelo |319| `effort` | No | Nível de esforço quando este subagente está ativo. Sobrescreve o nível de esforço da sessão. Padrão: herda da sessão. Opções: `low`, `medium`, `high`, `xhigh`, `max`; os níveis disponíveis dependem do modelo |

317| `isolation` | No | Defina como `worktree` para executar o subagente em um [git worktree](/docs/pt/worktrees) temporário, dando-lhe uma cópia isolada do repositório ramificada por padrão a partir de sua [branch padrão](/docs/pt/worktrees#choose-the-base-branch) em vez do `HEAD` da sessão pai. O worktree é automaticamente limpo se o subagente não fizer alterações |320| `isolation` | No | Defina como `worktree` para executar o subagente em um [git worktree](/docs/pt/worktrees) temporário, dando-lhe uma cópia isolada do repositório ramificada por padrão a partir de sua [branch padrão](/docs/pt/worktrees#choose-the-base-branch) em vez do `HEAD` da sessão pai. O worktree é automaticamente limpo se o subagente não fizer alterações |

318| `color` | No | Cor de exibição para o subagente na lista de tarefas e transcrição. Aceita `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, ou `cyan` |321| `color` | No | Cor de exibição para o subagente na lista de tarefas e transcrição. Aceita `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, ou `cyan` |

319| `initialPrompt` | No | Auto-enviado como o primeiro turno do usuário quando este agente é executado como o agente da sessão principal (via `--agent` ou a configuração `agent`). [Comandos](/docs/pt/commands) e [skills](/docs/pt/skills) são processados. Preposto a qualquer prompt fornecido pelo usuário |322| `initialPrompt` | No | Auto-enviado como o primeiro turno do usuário quando este agente é executado como o agente da sessão principal (via `--agent` ou a configuração `agent`). [Comandos](/docs/pt/commands) e [skills](/docs/pt/skills) são processados. Preposto a qualquer prompt fornecido pelo usuário |

320| `experimental` | No | Mapa de opções experimentais. Defina sua chave `cacheTtl` como `5m` ou `1h` para escolher o [tempo de vida do cache de prompt](/docs/pt/prompt-caching#choose-the-ttl-yourself) para as solicitações deste subagente, no lugar do [precedência de tempo de vida do cache](/docs/pt/prompt-caching#choose-the-ttl-yourself). Claude Code ignora qualquer outro valor, ignora `1h` enquanto sua assinatura Claude está usando créditos de uso, e lê o campo apenas de arquivos de subagente. Requer Claude Code v2.1.248 ou posterior |323| `experimental` | No | Mapa de opções experimentais. Defina sua chave `cacheTtl` como `5m` ou `1h` para escolher o [tempo de vida do cache de prompt](/docs/pt/prompt-caching#choose-the-ttl-yourself) para as solicitações deste subagente, no lugar da [precedência de tempo de vida do cache](/docs/pt/prompt-caching#choose-the-ttl-yourself). Claude Code ignora qualquer outro valor, ignora `1h` enquanto sua assinatura Claude está usando créditos de uso, e lê o campo apenas de arquivos de subagente. Requer Claude Code v2.1.248 ou posterior |

321 324 

322Escreva `cacheTtl` dentro do mapa `experimental`, não no nível superior do frontmatter.325Escreva `cacheTtl` dentro do mapa `experimental`, não no nível superior do frontmatter.

323 326 


439* `WaitForMcpServers`442* `WaitForMcpServers`

440* `Workflow`443* `Workflow`

441 444 

442O segundo filtro se aplica a subagentes em execução em background. Além de `Agent` e `ExitPlanMode`, que seguem as condições do primeiro filtro onde quer que o subagente seja executado, um subagente em background mantém cada ferramenta MCP mas apenas essas ferramentas integradas: `Read`, `Grep`, `Glob`, `Bash`, `PowerShell`, `Edit`, `Write`, `NotebookEdit`, `WebFetch`, `WebSearch`, `TodoWrite`, `Skill`, `ToolSearch`, `EnterWorktree`, `ExitWorktree`, `Monitor`, `TaskStop`, `SendMessage` e `Artifact`. Claude Code remove todas as outras ferramentas integradas de um subagente em background, seja herdadas ou listadas no campo `tools`, portanto a mesma definição pode se resolver para ferramentas diferentes em foreground e background. A remoção não relata erro a menos que deixe a lista `tools` [se resolvendo para nada](/docs/pt/errors#agent-would-be-spawned-with-zero-tools).445O segundo filtro se aplica a subagentes em execução em background. Além de `Agent` e `ExitPlanMode`, que seguem as condições do primeiro filtro onde quer que o subagente seja executado, um subagente em background mantém cada ferramenta MCP mas apenas essas ferramentas integradas: `Read`, `Grep`, `Glob`, `Bash`, `PowerShell`, `Edit`, `Write`, `NotebookEdit`, `WebFetch`, `WebSearch`, `TodoWrite`, `Skill`, `ToolSearch`, `EnterWorktree`, `ExitWorktree`, `Monitor`, `TaskStop`, `SendMessage` e `Artifact`, além de [`SubagentHandback`](/docs/pt/tools-reference) para um subagente que relata através dele. Claude Code remove todas as outras ferramentas integradas de um subagente em background, seja herdadas ou listadas no campo `tools`, portanto a mesma definição pode se resolver para ferramentas diferentes em foreground e background. A remoção não relata erro a menos que deixe a lista `tools` [se resolvendo para nada](/docs/pt/errors#agent-would-be-spawned-with-zero-tools).

443 446 

444[`ListAgents`](/docs/pt/cross-session-messaging) segue esses filtros como qualquer ferramenta integrada: um subagente em foreground a herda em sessões onde mensagens entre sessões estão habilitadas, e um subagente em background não a mantém.447[`ListAgents`](/docs/pt/cross-session-messaging) segue esses filtros como qualquer ferramenta integrada: um subagente em foreground a herda em sessões onde mensagens entre sessões estão habilitadas, e um subagente em background não a mantém.

445 448 


576 579 

577Defina `permissionMode` para escolher o modo de permissão em que um subagente é executado. Use os valores de configuração dos modos, portanto o modo Manual é `default`. Se você deixar indefinido, o subagente herda o modo da conversa principal, que começa como [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) em planos Pro, Max e Team a menos que suas configurações ou sua organização o alterem.580Defina `permissionMode` para escolher o modo de permissão em que um subagente é executado. Use os valores de configuração dos modos, portanto o modo Manual é `default`. Se você deixar indefinido, o subagente herda o modo da conversa principal, que começa como [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) em planos Pro, Max e Team a menos que suas configurações ou sua organização o alterem.

578 581 

579A conversa principal's modo de permissão decide se Claude Code usa o valor que você definiu:582O modo de permissão da conversa principal decide se Claude Code usa o valor que você definiu:

580 583 

581* Quando a conversa principal está em `bypassPermissions`, `acceptEdits`, ou [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), o subagente é executado nesse mesmo modo e Claude Code ignora o `permissionMode` que você definiu. Sob modo auto, o classificador avalia as chamadas de ferramentas do subagente com as regras de bloqueio e permissão da conversa principal.584* Quando a conversa principal está em `bypassPermissions`, `acceptEdits`, ou [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), o subagente é executado nesse mesmo modo e Claude Code ignora o `permissionMode` que você definiu. Sob modo auto, o classificador avalia as chamadas de ferramentas do subagente com as regras de bloqueio e permissão da conversa principal. Quando o subagente termina, o classificador também revisa seu trabalho e seu relatório final antes do relatório ser entregue, conforme [Como o modo auto lida com subagentes](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) descreve.

582* Quando a conversa principal está em `default`, `dontAsk`, ou modo `plan`, o subagente é executado no modo de permissão que você definiu, exceto `bypassPermissions`. Um subagente que declara `bypassPermissions` mantém o modo da conversa principal em vez disso. A exceção `bypassPermissions` requer Claude Code v2.1.267 ou posterior.585* Quando a conversa principal está em `default`, `dontAsk`, ou modo `plan`, o subagente é executado no modo de permissão que você definiu, exceto `bypassPermissions`. Um subagente que declara `bypassPermissions` mantém o modo da conversa principal em vez disso. A exceção `bypassPermissions` requer Claude Code v2.1.267 ou posterior.

583 586 

584`permissionMode` aceita estes valores, e `manual` como um alias para `default`:587`permissionMode` aceita estes valores, e `manual` como um alias para `default`:


884claude --agent code-reviewer887claude --agent code-reviewer

885```888```

886 889 

887O prompt do sistema do subagente substitui completamente o prompt do sistema padrão do Claude Code, da mesma forma que [`--system-prompt`](/docs/pt/cli-reference) faz. Os arquivos `CLAUDE.md` e a memória do projeto ainda são carregados através do fluxo de mensagens normal. O nome do agente aparece como `@<name>` no cabeçalho de inicialização para que você possa confirmar que está ativo.890O prompt do sistema do subagente substitui completamente o prompt do sistema padrão do Claude Code, da mesma forma que [`--system-prompt`](/docs/pt/cli-reference) faz. Os arquivos `CLAUDE.md` e a memória do projeto ainda são carregados através do fluxo de mensagens normal, mesmo quando a definição do agente define [`omitClaudeMd`](#supported-frontmatter-fields).

891 

892O nome do agente aparece como `@<name>` no cabeçalho de inicialização para que você possa confirmar que está ativo.

888 893 

889Isso funciona com subagentes integrados e personalizados, e a escolha persiste quando você retoma a sessão: Claude Code restaura as restrições de ferramentas e o modelo do agente junto com a conversa. Se o agente não existir mais quando você retomar, a sessão continua com as ferramentas padrão e mostra um [aviso nomeando o agente](/docs/pt/errors#session-agent-no-longer-available). Para o prompt do sistema em ambos os casos, consulte [Sinalizadores de prompt do sistema em conversas retomadas](/docs/pt/cli-reference#system-prompt-flags-in-resumed-conversations).894Isso funciona com subagentes integrados e personalizados, e a escolha persiste quando você retoma a sessão: Claude Code restaura as restrições de ferramentas e o modelo do agente junto com a conversa. Se o agente não existir mais quando você retomar, a sessão continua com as ferramentas padrão e mostra um [aviso nomeando o agente](/docs/pt/errors#session-agent-no-longer-available). Para o prompt do sistema em ambos os casos, consulte [Sinalizadores de prompt do sistema em conversas retomadas](/docs/pt/cli-reference#system-prompt-flags-in-resumed-conversations).

890 895 


1057 1062 

1058Por padrão, um subagente pode gerar subagentes de seu próprio, até três camadas abaixo da conversa principal. No limite de profundidade, Claude Code retém a ferramenta `Agent` de cada subagente, exceto um [fork](#fork-the-current-conversation), para que um subagente no limite faça seu trabalho delegado em si e retorne um resumo. Um fork no limite mantém `Agent` em sua lista de ferramentas herdada, mas a ferramenta retorna um erro em vez de gerar.1063Por padrão, um subagente pode gerar subagentes de seu próprio, até três camadas abaixo da conversa principal. No limite de profundidade, Claude Code retém a ferramenta `Agent` de cada subagente, exceto um [fork](#fork-the-current-conversation), para que um subagente no limite faça seu trabalho delegado em si e retorne um resumo. Um fork no limite mantém `Agent` em sua lista de ferramentas herdada, mas a ferramenta retorna um erro em vez de gerar.

1059 1064 

1060Subagentes aninhados são adequados para uma tarefa delegada que em si se divide em subtarefas paralelas, como um subagente revisor que despacha um verificador por descoberta, para que a saída intermediária nunca chegue à sua conversa principal. Apenas o resumo do subagente de nível superior retorna para você.1065Subagentes aninhados são adequados para uma tarefa delegada que em si se divide em subtarefas paralelas, como um subagente revisor que despacha um verificador por descoberta. Em uma sessão interativa, apenas o resumo do subagente de nível superior retorna para você e a saída intermediária permanece fora de sua conversa principal: um subagente que lança subagentes em segundo plano aguarda seus resultados antes de terminar. Em [modo não interativo](/docs/pt/headless) e no Agent SDK, o subagente de lançamento não aguarda, então um subagente em segundo plano aninhado que termina após seu iniciador ter terminado relata à sua conversa principal em vez disso.

1061 1066 

1062Para alterar o limite, defina [`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`](/docs/pt/env-vars) para o número de camadas de subagente que você quer abaixo de sua conversa principal. Por exemplo, esta entrada em [`settings.json`](/docs/pt/settings) limita o aninhamento a duas camadas:1067Para alterar o limite, defina [`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`](/docs/pt/env-vars) para o número de camadas de subagente que você quer abaixo de sua conversa principal. Por exemplo, esta entrada em [`settings.json`](/docs/pt/settings) limita o aninhamento a duas camadas:

1063 1068 


1111 1116 

1112* **Prompt do sistema**: o próprio prompt do agente mais detalhes de ambiente que Claude Code acrescenta, não o prompt do sistema do Claude Code. Subagentes personalizados definem o seu no [corpo markdown](#write-subagent-files) ou campo `prompt`. Agentes integrados têm prompts predefinidos.1117* **Prompt do sistema**: o próprio prompt do agente mais detalhes de ambiente que Claude Code acrescenta, não o prompt do sistema do Claude Code. Subagentes personalizados definem o seu no [corpo markdown](#write-subagent-files) ou campo `prompt`. Agentes integrados têm prompts predefinidos.

1113* **Mensagem de tarefa**: o prompt de delegação que Claude escreve quando passa o trabalho.1118* **Mensagem de tarefa**: o prompt de delegação que Claude escreve quando passa o trabalho.

1114* **Arquivos CLAUDE.md**: cada nível da [hierarquia CLAUDE.md](/docs/pt/memory#how-claude-md-files-load) que a conversa principal carrega, incluindo `~/.claude/CLAUDE.md`, regras do projeto, `CLAUDE.local.md` e arquivos de política gerenciada. Os agentes Explore e Plan integrados pulam isso.1119* **Arquivos CLAUDE.md**: cada nível da [hierarquia CLAUDE.md](/docs/pt/memory#how-claude-md-files-load) que a conversa principal carrega, incluindo `~/.claude/CLAUDE.md`, regras do projeto, `CLAUDE.local.md`, arquivos de política gerenciada e qualquer arquivo [`AGENTS.md`](/docs/pt/memory#agents-md) carregado como instruções do projeto. Os agentes Explore e Plan integrados pulam isso. Um subagente cuja definição define [`omitClaudeMd`](#supported-frontmatter-fields) carrega apenas os arquivos de política gerenciada, ou nenhum quando a definição vem de [configurações gerenciadas](#choose-the-subagent-scope).

1115* **Status Git**: um snapshot tirado no início da sessão pai. Ausente quando o diretório de trabalho não é um repositório Git ou quando [`includeGitInstructions`](/docs/pt/settings-reference#includegitinstructions) é `false`. Explore e Plan pulam independentemente.1120* **Status Git**: um snapshot tirado no início da sessão pai. Ausente quando o diretório de trabalho não é um repositório Git ou quando [`includeGitInstructions`](/docs/pt/settings-reference#includegitinstructions) é `false`. Explore e Plan pulam independentemente.

1116* **Skills pré-carregadas**: conteúdo completo de qualquer skill nomeada no campo [`skills`](#preload-skills-into-subagents) do agente. Agentes integrados não pré-carregam skills.1121* **Skills pré-carregadas**: conteúdo completo de qualquer skill nomeada no campo [`skills`](#preload-skills-into-subagents) do agente. Agentes integrados não pré-carregam skills.

1117* **Roster de irmãos**: um lembrete do sistema listando `main` e cada outro agente nomeado na sessão, cada um um valor `to` válido para [`SendMessage`](#resume-subagents). Requer Claude Code v2.1.206 ou posterior. O roster aparece apenas quando as ferramentas do subagente incluem `SendMessage` e pelo menos um outro agente tem um nome, seja Claude o nomeou ao gerá-lo ou ele é executado como um colega de [equipe de agentes](/docs/pt/agent-teams). É um snapshot tirado quando o subagente começa, então agentes nomeados depois não aparecem.1122* **Roster de irmãos**: um lembrete do sistema listando `main` e cada outro agente nomeado na sessão, cada um um valor `to` válido para [`SendMessage`](#resume-subagents). Requer Claude Code v2.1.206 ou posterior. O roster aparece apenas quando as ferramentas do subagente incluem `SendMessage` e pelo menos um outro agente tem um nome, seja Claude o nomeou ao gerá-lo ou ele é executado como um colega de [equipe de agentes](/docs/pt/agent-teams). É um snapshot tirado quando o subagente começa, então agentes nomeados depois não aparecem.

1118 1123 

1119Explore e Plan são os únicos subagentes que omitem CLAUDE.md e status git. Não há campo frontmatter ou configuração por agente para alterar quais agentes os pulam.1124Para lançar um de seus próprios subagentes sem os arquivos CLAUDE.md do usuário, projeto e local, defina [`omitClaudeMd: true`](#supported-frontmatter-fields) em seu frontmatter ou `--agents` JSON.

1125 

1126A conversa principal ainda tem seu CLAUDE.md completo quando lê os resultados desses subagentes, então a maioria das regras não precisa alcançar o subagente em si. Se uma regra deve, como "ignore o diretório `vendor/`," reafirme-a no prompt que você dá a Claude ao delegar.

1120 1127 

1121A conversa principal lê resultados de Explore e Plan com contexto CLAUDE.md completo, então a maioria das regras não precisa alcançar o subagente em si. Se uma regra deve, como "ignore o diretório `vendor/`", reafirme-a no prompt que você dá a Claude ao delegar.1128Você não pode alterar quais subagentes recebem status git. Apenas Explore e Plan pulam.

1122 1129 

1123Algum estado da conversa principal nunca alcança um subagente não-fork:1130Algum estado da conversa principal nunca alcança um subagente não-fork:

1124 1131 

Details

126 Configurar tmux126 Configurar tmux

127</h2>127</h2>

128 128 

129Quando Claude Code é executado dentro do tmux, duas coisas quebram por padrão: Shift+Enter envia em vez de inserir uma nova linha, e notificações de desktop e a [barra de progresso](/docs/pt/settings-reference#terminalprogressbarenabled) nunca chegam ao terminal externo. Adicione estas linhas a `~/.tmux.conf`, depois execute `tmux source-file ~/.tmux.conf` para aplicá-las ao servidor em execução:129Quando Claude Code é executado dentro do tmux, por padrão Shift+Enter envia em vez de inserir uma nova linha, e notificações de desktop e a [barra de progresso](/docs/pt/settings-reference#terminalprogressbarenabled) nunca chegam ao terminal externo. Adicione estas linhas a `~/.tmux.conf`, depois execute `tmux source-file ~/.tmux.conf` para aplicá-las ao servidor em execução:

130 130 

131```bash ~/.tmux.conf theme={null}131```bash ~/.tmux.conf theme={null}

132set -g allow-passthrough on132set -g allow-passthrough on

Details

47| `ScheduleWakeup` | Reagenda a próxima iteração de um [`/loop` auto-paced](/docs/pt/scheduled-tasks#let-claude-choose-the-interval). Claude chama isso no final de cada iteração para escolher quando a próxima é executada, entre um minuto e uma hora; você não a chama diretamente. Para encerrar o loop em vez disso, Claude a chama com `stop: true`, que cancela o wakeup pendente. O campo `stop` requer Claude Code v2.1.202 ou posterior. O wakeup pendente aparece em `session_crons` em [Entrada do hook Stop](/docs/pt/hooks#stop-input) | Não |47| `ScheduleWakeup` | Reagenda a próxima iteração de um [`/loop` auto-paced](/docs/pt/scheduled-tasks#let-claude-choose-the-interval). Claude chama isso no final de cada iteração para escolher quando a próxima é executada, entre um minuto e uma hora; você não a chama diretamente. Para encerrar o loop em vez disso, Claude a chama com `stop: true`, que cancela o wakeup pendente. O campo `stop` requer Claude Code v2.1.202 ou posterior. O wakeup pendente aparece em `session_crons` em [Entrada do hook Stop](/docs/pt/hooks#stop-input) | Não |

48| `SendFeedback` | Redige um relatório de feedback sobre Claude Code, cobrindo um problema de produto ou o próprio comportamento de Claude na sessão, e o coloca na fila em sua máquina para você revisar. Claude Code não envia nada até que você escolha enviar o rascunho. Veja [Comportamento da ferramenta SendFeedback](#sendfeedback-tool-behavior). Requer Claude Code v2.1.238 ou posterior | Não |48| `SendFeedback` | Redige um relatório de feedback sobre Claude Code, cobrindo um problema de produto ou o próprio comportamento de Claude na sessão, e o coloca na fila em sua máquina para você revisar. Claude Code não envia nada até que você escolha enviar o rascunho. Veja [Comportamento da ferramenta SendFeedback](#sendfeedback-tool-behavior). Requer Claude Code v2.1.238 ou posterior | Não |

49| `SendMessage` | Envia uma mensagem para outro agente: um colega de equipe de [equipe de agentes](/docs/pt/agent-teams), um [subagente que ele retoma](/docs/pt/sub-agents#resume-subagents) por ID ou nome de agente, ou uma de suas outras sessões de Claude Code, nesta máquina ou além dela. Mensagens para outras sessões requerem Claude Code v2.1.224 ou posterior. [Mensagens entre sessões](/docs/pt/cross-session-messaging) cobrem quais sessões Claude pode alcançar, [como uma mensagem se parece quando chega](/docs/pt/cross-session-messaging#what-a-message-looks-like) e [como Claude recebe um aviso quando outra sessão fica inativa](/docs/pt/cross-session-messaging#get-a-notice-when-another-session-goes-idle). Claude pode incluir uma entrada `summary` opcional, normalmente 5-10 palavras, que Claude Code mostra como uma visualização de uma linha. Quando Claude a omite em uma [mensagem de texto simples](/docs/pt/cross-session-messaging#limitations), Claude Code usa a primeira linha da mensagem como resumo. Claude Code trunca um resumo mais longo que 200 caracteres com reticências | Não |49| `SendMessage` | Envia uma mensagem para outro agente: um colega de equipe de [equipe de agentes](/docs/pt/agent-teams), um [subagente que ele retoma](/docs/pt/sub-agents#resume-subagents) por ID ou nome de agente, ou uma de suas outras sessões de Claude Code, nesta máquina ou além dela. Mensagens para outras sessões requerem Claude Code v2.1.224 ou posterior. [Mensagens entre sessões](/docs/pt/cross-session-messaging) cobrem quais sessões Claude pode alcançar, [como uma mensagem se parece quando chega](/docs/pt/cross-session-messaging#what-a-message-looks-like) e [como Claude recebe um aviso quando outra sessão fica inativa](/docs/pt/cross-session-messaging#get-a-notice-when-another-session-goes-idle). Claude pode incluir uma entrada `summary` opcional, normalmente 5-10 palavras, que Claude Code mostra como uma visualização de uma linha. Quando Claude a omite em uma [mensagem de texto simples](/docs/pt/cross-session-messaging#limitations), Claude Code usa a primeira linha da mensagem como resumo. Claude Code trunca um resumo mais longo que 200 caracteres com reticências | 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 partir da v2.1.196, a entrada `display` opcional controla a apresentação: `render` abre o arquivo inline no cliente, `attach` mostra apenas um cartão de download e quando não definido o cliente decide por tipo de arquivo. Disponível quando um cliente [Controle Remoto](/docs/pt/remote-control) está conectado ou a sessão é executada em um ambiente de nuvem gerenciado, como [Claude Code na web](/docs/pt/claude-code-on-the-web). 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 partir da v2.1.196, a entrada `display` opcional controla a apresentação: `render` abre o arquivo inline no cliente, `attach` mostra apenas um cartão de download e quando não definido o cliente decide por tipo de arquivo. Disponível quando um cliente [Controle Remoto](/docs/pt/remote-control) está conectado ou em uma [sessão na nuvem](/docs/pt/claude-code-on-the-web). 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 Pro, Max, 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 Pro, Max, Team e Enterprise | Sim |

52| `Skill` | Executa uma [skill](/docs/pt/skills#control-who-invokes-a-skill) dentro da conversa principal | Sim |52| `Skill` | Executa uma [skill](/docs/pt/skills#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](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), para subagentes que a ferramenta Agent executa localmente, exceto [forks](/docs/pt/sub-agents#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| `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 |

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

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


99 Comportamento da ferramenta Agent100 Comportamento da ferramenta Agent

100</h2>101</h2>

101 102 

102A ferramenta Agent cria um subagente em uma janela de contexto separada. O subagente trabalha através de sua tarefa autonomamente, depois retorna um único resultado de texto para a conversa pai. O pai não vê as chamadas de ferramentas intermediárias ou saídas do subagente, apenas esse resultado final. Com [agent teams](/docs/pt/agent-teams) ativados, uma chamada que carrega um `name` pode iniciar um [teammate](/docs/pt/agent-teams#how-claude-starts-agent-teams), que relata através de mensagens de equipe em vez de retornar um resultado.103A ferramenta Agent cria um subagente em uma janela de contexto separada. O subagente trabalha através de sua tarefa autonomamente, depois retorna seu resultado para a conversa pai. O pai não vê as chamadas de ferramentas intermediárias ou saídas do subagente, apenas esse resultado final. Com [agent teams](/docs/pt/agent-teams) ativados, uma chamada que carrega um `name` pode iniciar um [teammate](/docs/pt/agent-teams#how-claude-starts-agent-teams), que relata através de mensagens de equipe em vez de retornar um resultado.

103 104 

104Para limitar quantas voltas um subagente executa, defina `maxTurns` na [definição do subagente](/docs/pt/sub-agents#supported-frontmatter-fields). Quando o subagente atinge o limite, Claude Code marca o resultado retornado como saída parcial, e Claude pode [retomar o subagente](/docs/pt/sub-agents#resume-subagents) para continuar.105Para limitar quantas voltas um subagente executa, defina `maxTurns` na [definição do subagente](/docs/pt/sub-agents#supported-frontmatter-fields). Quando o subagente atinge o limite, Claude Code marca o resultado retornado como saída parcial, e Claude pode [retomar o subagente](/docs/pt/sub-agents#resume-subagents) para continuar.

105 106 


112* **Apenas `disallowedTools`**: o subagente obtém todas as ferramentas pai, exceto as listadas.113* **Apenas `disallowedTools`**: o subagente obtém todas as ferramentas pai, exceto as listadas.

113* **Ambos definidos**: `disallowedTools` tem precedência. Uma ferramenta listada em ambos é removida.114* **Ambos definidos**: `disallowedTools` tem precedência. Uma ferramenta listada em ambos é removida.

114 115 

115Em todos os casos, o conjunto resolvido é limitado às [ferramentas disponíveis para subagentes](/docs/pt/sub-agents#available-tools): uma ferramenta que não está disponível para subagentes nunca é concedida, mesmo quando listada em `tools`.116Em todos os casos, o conjunto resolvido é limitado às [ferramentas disponíveis para subagentes](/docs/pt/sub-agents#available-tools): uma ferramenta que não está disponível para subagentes nunca é concedida, mesmo quando listada em `tools`. Onde as condições na entrada da tabela de ferramentas `SubagentHandback` se mantêm, Claude Code também fornece ao subagente essa ferramenta, mesmo se você a deixar de fora de `tools` ou a listar em `disallowedTools`.

116 117 

117Se cada entrada na lista `tools` de um subagente falhar em corresponder a uma ferramenta utilizável, a ferramenta Agent geralmente retorna um erro nomeando as entradas em vez de iniciar o subagente; veja [Agent would be spawned with zero tools](/docs/pt/errors#agent-would-be-spawned-with-zero-tools) para a mensagem e como corrigir cada entrada.118Se cada entrada na lista `tools` de um subagente falhar em corresponder a uma ferramenta utilizável, a ferramenta Agent geralmente retorna um erro nomeando as entradas em vez de iniciar o subagente; veja [Agent would be spawned with zero tools](/docs/pt/errors#agent-would-be-spawned-with-zero-tools) para a mensagem e como corrigir cada entrada.

118 119 


363 364 

364Você continua trabalhando na mesma sessão e Claude intervém quando um evento chega.365Você continua trabalhando na mesma sessão e Claude intervém quando um evento chega.

365 366 

367Cada observação que Claude inicia tem um prazo: 5 minutos por padrão, no máximo 30 minutos, e no máximo 10 minutos em uma execução [não interativa](/docs/pt/headless) com um único prompt com `-p`.

368 

369No prazo, a observação termina. Claude recebe um aviso, para que possa iniciar a observação novamente se ainda for necessária.

370 

366Interrompa um monitor pedindo a Claude para cancelá-lo ou encerrando a sessão. Quando você interrompe um [subagente](/docs/pt/sub-agents) que iniciou monitors, por exemplo de `/tasks`, esses monitors param com ele.371Interrompa um monitor pedindo a Claude para cancelá-lo ou encerrando a sessão. Quando você interrompe um [subagente](/docs/pt/sub-agents) que iniciou monitors, por exemplo de `/tasks`, esses monitors param com ele.

367 372 

368Quando Monitor executa um comando, ele usa as mesmas [regras de permissão que Bash](/docs/pt/permissions#tool-specific-permission-rules), portanto os padrões `allow` e `deny` que você definiu para Bash também se aplicam aqui. Enquanto [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) está ativo, Claude Code reserva regras de permissão que nomeiam o próprio `Monitor`, junto com as outras [regras de permissão amplas que ele descarta](/docs/pt/permission-modes#how-the-classifier-evaluates-actions), portanto o classificador revisa comandos Monitor da mesma forma que revisa comandos Bash.373Quando Monitor executa um comando, ele usa as mesmas [regras de permissão que Bash](/docs/pt/permissions#tool-specific-permission-rules), portanto os padrões `allow` e `deny` que você definiu para Bash também se aplicam aqui. Enquanto [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) está ativo, Claude Code reserva regras de permissão que nomeiam o próprio `Monitor`, junto com as outras [regras de permissão amplas que ele descarta](/docs/pt/permission-modes#how-the-classifier-evaluates-actions), portanto o classificador revisa comandos Monitor da mesma forma que revisa comandos Bash.


395| `url` | Sim | O endpoint para conectar. Deve ser uma URL `ws://` ou `wss://` sem credenciais ou espaços em branco incorporados, usando apenas caracteres ASCII |400| `url` | Sim | O endpoint para conectar. Deve ser uma URL `ws://` ou `wss://` sem credenciais ou espaços em branco incorporados, usando apenas caracteres ASCII |

396| `protocols` | Não | Nomes de subprotocolo WebSocket para oferecer durante o handshake. Cada entrada deve ser um token de subprotocolo válido, e a lista não pode conter duplicatas |401| `protocols` | Não | Nomes de subprotocolo WebSocket para oferecer durante o handshake. Cada entrada deve ser um token de subprotocolo válido, e a lista não pode conter duplicatas |

397 402 

398As entradas `timeout_ms` e `persistent` se comportam da mesma forma que para um comando: a observação termina no prazo, a menos que `persistent` esteja definido, e `TaskStop` a cancela antecipadamente.403O prazo `timeout_ms` também se aplica a uma observação WebSocket: a observação termina no prazo, e `TaskStop` a cancela antecipadamente.

399 404 

400Abrir uma WebSocket solicita aprovação; em [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) o classificador decide em vez disso. O prompt não oferece uma opção para pular prompts futuros para o mesmo host.405Abrir uma WebSocket solicita aprovação; em [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) o classificador decide em vez disso. O prompt não oferece uma opção para pular prompts futuros para o mesmo host.

401 406 


573Claude Code inclui a ferramenta em sessões de terminal interativas em sua própria máquina que usam a API Claude em vez de um provedor de nuvem. Ele deixa a ferramenta de fora de:578Claude Code inclui a ferramenta em sessões de terminal interativas em sua própria máquina que usam a API Claude em vez de um provedor de nuvem. Ele deixa a ferramenta de fora de:

574 579 

575* Execuções não interativas `-p` e sessões do [Agent SDK](/docs/pt/agent-sdk/overview), que não têm tela para revisar a fila580* Execuções não interativas `-p` e sessões do [Agent SDK](/docs/pt/agent-sdk/overview), que não têm tela para revisar a fila

576* Sessões em nuvem como [Claude Code na web](/docs/pt/claude-code-on-the-web), que não conseguem escrever na fila em sua máquina581* [Sessões em nuvem](/docs/pt/claude-code-on-the-web), que não conseguem escrever na fila em sua máquina

577* Sessões em [Amazon Bedrock](/docs/pt/amazon-bedrock), [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), [Google Cloud's Agent Platform](/docs/pt/google-vertex-ai), ou [Microsoft Foundry](/docs/pt/microsoft-foundry)582* Sessões em [Amazon Bedrock](/docs/pt/amazon-bedrock), [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), [Google Cloud's Agent Platform](/docs/pt/google-vertex-ai), ou [Microsoft Foundry](/docs/pt/microsoft-foundry)

578* Sessões em que você definiu [`CLAUDE_CODE_SEND_FEEDBACK=0`](/docs/pt/env-vars) ou [`DISABLE_FEEDBACK_COMMAND=1`](/docs/pt/env-vars), definiu `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` para qualquer valor não vazio, ou desativou [busca de sinalizador de recurso](/docs/pt/env-vars#features-that-need-feature-flag-fetching)583* Sessões em que você definiu [`CLAUDE_CODE_SEND_FEEDBACK=0`](/docs/pt/env-vars) ou [`DISABLE_FEEDBACK_COMMAND=1`](/docs/pt/env-vars), definiu `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` para qualquer valor não vazio, ou desativou [busca de sinalizador de recurso](/docs/pt/env-vars#features-that-need-feature-flag-fetching)

579* Organizações que desativaram feedback de produto, e [organizações com retenção zero de dados](/docs/pt/zero-data-retention#features-disabled-under-zdr)584* Organizações que desativaram feedback de produto, e [organizações com retenção zero de dados](/docs/pt/zero-data-retention#features-disabled-under-zdr)


609 614 

610Alguns comportamentos moldam a resposta que Claude recebe:615Alguns comportamentos moldam a resposta que Claude recebe:

611 616 

617* WebFetch recusa `localhost` e qualquer outro nome de host sem um ponto, como um nome de intranet simples, antes de fazer uma solicitação. O [erro que retorna](/docs/pt/errors#webfetch-cannot-fetch-localhost) diz a Claude para alcançar servidores locais com `curl` através do Bash.

612* URLs HTTP são automaticamente atualizadas para HTTPS.618* URLs HTTP são automaticamente atualizadas para HTTPS.

613* Páginas grandes são truncadas para um limite de caracteres fixo antes do processamento.619* Páginas grandes são truncadas para um limite de caracteres fixo antes do processamento.

614* WebFetch armazena em cache cada resposta por 15 minutos por padrão, então buscas repetidas da mesma URL retornam rapidamente. No Claude Code v2.1.233 ou posterior, defina [`CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS`](/docs/pt/env-vars#variables) para alterar quanto tempo WebFetch mantém cada resposta.620* WebFetch armazena em cache cada resposta por 15 minutos por padrão, então buscas repetidas da mesma URL retornam rapidamente. No Claude Code v2.1.233 ou posterior, defina [`CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS`](/docs/pt/env-vars#variables) para alterar quanto tempo WebFetch mantém cada resposta.

ultrareview.md +15 −8

Details

10 Ultrareview é um recurso de visualização de pesquisa. O recurso, preços e disponibilidade podem mudar com base no feedback. O comando é `/code-review ultra`. Quando ultrareview está disponível para sua conta, `/ultrareview` é um alias.10 Ultrareview é um recurso de visualização de pesquisa. O recurso, preços e disponibilidade podem mudar com base no feedback. O comando é `/code-review ultra`. Quando ultrareview está disponível para sua conta, `/ultrareview` é um alias.

11</Note>11</Note>

12 12 

13Ultrareview é uma revisão de código profunda que é executada no Claude Code na infraestrutura web. Quando você executa `/code-review ultra`, Claude Code inicia uma frota de agentes revisores em um sandbox remoto para encontrar bugs em sua branch ou pull request.13Ultrareview é uma revisão de código profunda que é executada como uma [sessão na nuvem](/docs/pt/claude-code-on-the-web) na infraestrutura da Anthropic. Quando você executa `/code-review ultra`, Claude Code inicia uma frota de agentes revisores em um sandbox na nuvem para encontrar bugs em sua branch ou pull request.

14 14 

15Comparado a um `/code-review` local, ultrareview oferece:15Comparado a um `/code-review` local, ultrareview oferece:

16 16 

17* **Sinal mais alto**: cada descoberta relatada é reproduzida e verificada independentemente, portanto os resultados se concentram em bugs reais em vez de sugestões de estilo17* **Sinal mais alto**: cada descoberta relatada é reproduzida e verificada independentemente, portanto os resultados se concentram em bugs reais em vez de sugestões de estilo

18* **Cobertura mais ampla**: uma frota maior de agentes revisores explora a mudança em paralelo, o que expõe problemas que uma revisão local pode perder18* **Cobertura mais ampla**: uma frota maior de agentes revisores explora a mudança em paralelo, o que expõe problemas que uma revisão local pode perder

19* **Sem uso de recursos locais**: a revisão é executada inteiramente em um sandbox remoto, portanto seu terminal permanece livre para outro trabalho enquanto é executada19* **Sem uso de recursos locais**: a revisão é executada inteiramente em um sandbox na nuvem, portanto seu terminal permanece livre para outro trabalho enquanto é executada

20 20 

21Ultrareview requer autenticação com uma conta claude.ai porque é executado no Claude Code na infraestrutura web. Se você está conectado apenas com uma chave de API, execute `/login` e autentique-se com claude.ai primeiro. Ultrareview não está disponível ao usar Claude Code com Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry, e não está disponível para organizações que habilitaram Zero Data Retention. Quando ultrareview não está disponível, `/code-review ultra` executa uma revisão local em sua sessão.21Ultrareview requer autenticação com uma conta claude.ai porque é executado como uma sessão na nuvem na infraestrutura da Anthropic. Se você está conectado apenas com uma chave de API, execute `/login` e autentique-se com claude.ai primeiro. Ultrareview não está disponível ao usar Claude Code com Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry, e não está disponível para organizações que habilitaram Zero Data Retention. Quando ultrareview não está disponível, `/code-review ultra` executa uma revisão local em sua sessão.

22 22 

23<h2 id="run-ultrareview-from-the-cli">23<h2 id="run-ultrareview-from-the-cli">

24 Execute ultrareview a partir da CLI24 Execute ultrareview a partir da CLI


79* **Interativo**: no diálogo de lançamento, selecione **Executar e postar as descobertas na PR como eu**. Se você adicionar `--post` ao comando, como em `/code-review ultra 1234 --post`, Claude Code pré-seleciona essa escolha e ainda pergunta antes de iniciar.79* **Interativo**: no diálogo de lançamento, selecione **Executar e postar as descobertas na PR como eu**. Se você adicionar `--post` ao comando, como em `/code-review ultra 1234 --post`, Claude Code pré-seleciona essa escolha e ainda pergunta antes de iniciar.

80* **Não interativo**: execute o [subcomando `claude ultrareview`](#run-ultrareview-non-interactively) com `--post`. Você consente com a postagem ao executar o subcomando com a flag, portanto Claude Code posta sem perguntar. Em uma execução `claude -p '/code-review ultra'`, Claude Code sai antes das descobertas chegarem, portanto não posta nada; use o subcomando em vez disso.80* **Não interativo**: execute o [subcomando `claude ultrareview`](#run-ultrareview-non-interactively) com `--post`. Você consente com a postagem ao executar o subcomando com a flag, portanto Claude Code posta sem perguntar. Em uma execução `claude -p '/code-review ultra'`, Claude Code sai antes das descobertas chegarem, portanto não posta nada; use o subcomando em vez disso.

81 81 

82Claude Code não posta de sua máquina. Ele envia as descobertas para uma sessão em [Claude Code na web](/docs/pt/claude-code-on-the-web), que posta o comentário através da conta GitHub que você conectou ao Claude. Postar requer o mesmo login claude.ai que a revisão em si. Como postar é executado através do Claude Code na web, não está disponível em provedores de terceiros ou quando você define [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/pt/env-vars).82Claude Code não posta de sua máquina. Ele envia o ID da sessão da revisão para a API Anthropic, que posta as descobertas armazenadas da revisão como o comentário através da conta GitHub que você conectou ao Claude. Postar requer o mesmo login claude.ai que a revisão em si, e não está disponível em provedores de terceiros ou quando você define [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/pt/env-vars).

83 83 

84Em uma sessão interativa, Claude Code inicia a postagem quando as descobertas chegam, portanto mantenha a sessão aberta até que a revisão seja concluída. Claude Code mantém a escolha de postagem apenas nessa sessão. Se a sessão terminar antes da revisão ser concluída, Claude Code não posta nada, mesmo se você retomar a conversa mais tarde.84Em uma sessão interativa, Claude Code inicia a postagem quando as descobertas chegam, portanto mantenha a sessão aberta até que a revisão seja concluída. Claude Code mantém a escolha de postagem apenas nessa sessão. Se a sessão terminar antes da revisão ser concluída, Claude Code não posta nada, mesmo se você retomar a conversa mais tarde.

85 85 

86Quando a postagem não consegue começar enquanto sua sessão está aberta, Claude informa que nada foi para a PR e por quê, e as descobertas permanecem em seu terminal para que você possa postá-las manualmente.86Quando a postagem é concluída, Claude informa o resultado:

87 

88* **Postado**: Claude fornece um link para o comentário.

89* **Já postado**: uma postagem anterior da mesma revisão já colocou o comentário na PR, portanto Claude o vincula à pull request em vez de postar novamente.

90* **Falhou**: Claude informa por quê, e as descobertas permanecem em seu terminal para que você possa postá-las manualmente.

87 91 

88<h3 id="pass-a-request-in-plain-words">92<h3 id="pass-a-request-in-plain-words">

89 Passar um pedido em palavras simples93 Passar um pedido em palavras simples


185 189 

186Se você interromper o subcomando, a revisão remota continua em execução; siga a URL da sessão impressa em stderr para observá-la no navegador.190Se você interromper o subcomando, a revisão remota continua em execução; siga a URL da sessão impressa em stderr para observá-la no navegador.

187 191 

188Com `--post`, o subcomando inicia a postagem logo após imprimir as descobertas. Se a execução falhar, expirar o tempo limite ou você interrompê-la, o subcomando não posta nada. Se a revisão for concluída mas a postagem não conseguir iniciar, Claude Code imprime o motivo para stderr e as descobertas permanecem em stdout para que você possa postá-las manualmente.192Com `--post`, o subcomando inicia a postagem logo após imprimir as descobertas, e imprime o link para stderr.

193 

194* Se a execução falhar, expirar o tempo limite ou você interrompê-la, o subcomando não posta nada.

195* Se a revisão for concluída mas o comentário não for postado, Claude Code imprime o motivo para stderr, e as descobertas permanecem em stdout para que você possa postá-las manualmente.

189 196 

190Para revisões automáticas em pull requests do GitHub, [Code Review](/docs/pt/code-review) integra-se diretamente com seu repositório e publica descobertas como comentários inline de PR sem uma etapa de CLI.197Para revisões automáticas em pull requests do GitHub, [Code Review](/docs/pt/code-review) integra-se diretamente com seu repositório e publica descobertas como comentários inline de PR sem uma etapa de CLI.

191 198 


198| | `/code-review` | `/code-review ultra` |205| | `/code-review` | `/code-review ultra` |

199| ------------ | --------------------------------------------------------------- | --------------------------------------------------------------------------------------- |206| ------------ | --------------------------------------------------------------- | --------------------------------------------------------------------------------------- |

200| Alvo | seu diff de trabalho, um pull request, uma branch ou um caminho | seu diff de trabalho ou um pull request |207| Alvo | seu diff de trabalho, um pull request, uma branch ou um caminho | seu diff de trabalho ou um pull request |

201| Execuções | localmente em sua sessão | remotamente em um sandbox na nuvem |208| Execuções | localmente em sua sessão | em um sandbox na nuvem |

202| Profundidade | escala com o argumento de esforço | frota multi-agente com verificação independente |209| Profundidade | escala com o argumento de esforço | frota multi-agente com verificação independente |

203| Duração | segundos a alguns minutos | aproximadamente 5 a 10 minutos |210| Duração | segundos a alguns minutos | aproximadamente 5 a 10 minutos |

204| Custo | conta para uso normal | execuções gratuitas, depois aproximadamente \$5 a \$25 por revisão como créditos de uso |211| Custo | conta para uso normal | execuções gratuitas, depois aproximadamente \$5 a \$25 por revisão como créditos de uso |


210 Recursos relacionados217 Recursos relacionados

211</h2>218</h2>

212 219 

213* [Claude Code na web](/docs/pt/claude-code-on-the-web): aprenda como funcionam as sessões remotas e os sandboxes na nuvem220* [Use Claude Code na nuvem](/docs/pt/claude-code-on-the-web): aprenda como funcionam as sessões na nuvem e os sandboxes na nuvem

214* [Gerencie custos efetivamente](/docs/pt/costs): acompanhe o uso e defina limites de gastos221* [Gerencie custos efetivamente](/docs/pt/costs): acompanhe o uso e defina limites de gastos

Details

17O ditado por voz transmite seu áudio gravado para os servidores da Anthropic para transcrição. O áudio não é processado localmente. Ele precisa de todos os seguintes:17O ditado por voz transmite seu áudio gravado para os servidores da Anthropic para transcrição. O áudio não é processado localmente. Ele precisa de todos os seguintes:

18 18 

19* **Uma conta Claude.ai**: o serviço de fala para texto está disponível apenas quando você se autentica com uma, e não está disponível quando Claude Code está configurado para usar uma chave API da Anthropic diretamente, Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry.19* **Uma conta Claude.ai**: o serviço de fala para texto está disponível apenas quando você se autentica com uma, e não está disponível quando Claude Code está configurado para usar uma chave API da Anthropic diretamente, Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry.

20* **Um microfone local**: o ditado por voz não funciona em ambientes remotos como [Claude Code na web](/docs/pt/claude-code-on-the-web) ou sessões SSH.20* **Um microfone local**: o ditado por voz não funciona em [sessões na nuvem](/docs/pt/claude-code-on-the-web) ou sessões SSH.

21* **WSLg, se você executar Claude Code no WSL**: WSLg está incluído no WSL2 quando instalado na Microsoft Store no Windows 10 ou 11. Se WSLg não estiver disponível, por exemplo no WSL1, execute Claude Code no Windows nativo.21* **WSLg, se você executar Claude Code no WSL**: WSLg está incluído no WSL2 quando instalado na Microsoft Store no Windows 10 ou 11. Se WSLg não estiver disponível, por exemplo no WSL1, execute Claude Code no Windows nativo.

22 22 

23A transcrição não consome mensagens Claude ou tokens e não conta para os limites mostrados em `/usage`. Consulte [data usage](/docs/pt/data-usage) para saber como a Anthropic lida com seus dados.23A transcrição não consome mensagens Claude ou tokens e não conta para os limites mostrados em `/usage`. Consulte [data usage](/docs/pt/data-usage) para saber como a Anthropic lida com seus dados.

vs-code.md +17 −4

Details

125 125 

126 Claude's latest to-do list stays visible, and so does the text a pending question from Claude is asking about; this requires Claude Code v2.1.225 or later. While Claude runs [subagents](/docs/pt/sub-agents), live progress rows with their latest activity appear under the tool-call group that started them. This requires Claude Code v2.1.269 or later.126 Claude's latest to-do list stays visible, and so does the text a pending question from Claude is asking about; this requires Claude Code v2.1.225 or later. While Claude runs [subagents](/docs/pt/sub-agents), live progress rows with their latest activity appear under the tool-call group that started them. This requires Claude Code v2.1.269 or later.

127 * To report a bug, click **Report a problem** at the bottom of the menu, or type `/bug` or `/feedback` with an optional description that prefills the report. When you submit the report and you're signed in to Anthropic on a first-party connection, Claude Code sends it to Anthropic. On a third-party provider, or without Anthropic credentials, the dialog still opens, but submitting shows an error and sends nothing: unlike the CLI's `/bug`, the extension doesn't write a local archive. Requires Claude Code v2.1.229 or later.127 * To report a bug, click **Report a problem** at the bottom of the menu, or type `/bug` or `/feedback` with an optional description that prefills the report. When you submit the report and you're signed in to Anthropic on a first-party connection, Claude Code sends it to Anthropic. On a third-party provider, or without Anthropic credentials, the dialog still opens, but submitting shows an error and sends nothing: unlike the CLI's `/bug`, the extension doesn't write a local archive. Requires Claude Code v2.1.229 or later.

128 

129 If your organization's policy turns product feedback off, **Report a problem** doesn't appear in the menu, and `/bug` and `/feedback` show a `Feedback is turned off by your organization's policy or this environment's settings.` notice instead of opening the report.

128* **Side questions**: type `/btw` followed by a question to ask about your session [without adding to the conversation](/docs/pt/interactive-mode#side-questions-with-%2Fbtw). The answer opens in a panel beside the chat, where you can ask follow-up questions. The thread survives window reloads. Claude Code keeps the newest 20 exchanges and expires stored threads on the [`cleanupPeriodDays`](/docs/pt/settings-reference#cleanupperioddays) schedule, as long as Claude Code can [safely determine the retention period](/docs/pt/claude-directory#cleaned-up-automatically). To clear a thread, click the trash icon in the panel. Requires Claude Code v2.1.227 or later.130* **Side questions**: type `/btw` followed by a question to ask about your session [without adding to the conversation](/docs/pt/interactive-mode#side-questions-with-%2Fbtw). The answer opens in a panel beside the chat, where you can ask follow-up questions. The thread survives window reloads. Claude Code keeps the newest 20 exchanges and expires stored threads on the [`cleanupPeriodDays`](/docs/pt/settings-reference#cleanupperioddays) schedule, as long as Claude Code can [safely determine the retention period](/docs/pt/claude-directory#cleaned-up-automatically). To clear a thread, click the trash icon in the panel. Requires Claude Code v2.1.227 or later.

129* **Context indicator**: the prompt box shows how much of Claude's context window you're using. Claude automatically compacts when needed, or you can run `/compact` manually.131* **Context indicator**: the prompt box shows how much of Claude's context window you're using. Claude automatically compacts when needed, or you can run `/compact` manually.

132* **Prompt cache clock**: a clock icon next to the context indicator estimates how much time the conversation's [prompt cache](/docs/pt/prompt-caching) has left before it expires. It counts down from the cache's five-minute or one-hour [lifetime](/docs/pt/prompt-caching#cache-lifetime), and each response that uses the cache restarts the countdown. Apart from compaction, the [actions that invalidate the cache](/docs/pt/prompt-caching#actions-that-invalidate-the-cache) don't reset the clock, so it can still show minutes left after you switch models.

133 * Until the countdown runs out, the icon shows the minutes left, such as **12m**.

134 * When the countdown runs out, the minutes disappear and the icon turns red, or your theme's error color, until the next response. The cache has likely expired, so expect a slower, more expensive response to your next message while the cache rebuilds. If the five-minute lifetime keeps running out between your messages, see [Choose the TTL yourself](/docs/pt/prompt-caching#choose-the-ttl-yourself).

135 * Right after the conversation is [compacted](/docs/pt/prompt-caching#compacting-the-conversation), the icon also turns red without minutes until the next response, because the cache doesn't cover the compacted conversation yet.

130* **Agent map**: when the conversation includes [subagents](/docs/pt/sub-agents), an agent count such as **2 agents** appears at the bottom of the prompt box. Its dot shows whether any subagent is working or waiting for your permission.136* **Agent map**: when the conversation includes [subagents](/docs/pt/sub-agents), an agent count such as **2 agents** appears at the bottom of the prompt box. Its dot shows whether any subagent is working or waiting for your permission.

131 137 

132 Click the agent count to open the agent map, which draws the conversation's subagents as a tree under the main agent, each with its status, elapsed time, and token count. Click a subagent to see its prompt and tool calls, open its read-only transcript, or stop it while it runs. Requires Claude Code v2.1.269 or later.138 Click the agent count to open the agent map, which draws the conversation's subagents as a tree under the main agent, each with its status, elapsed time, and token count. Click a subagent to see its prompt and tool calls, open its read-only transcript, or stop it while it runs. Requires Claude Code v2.1.269 or later.


146 152 

147For large PDFs, you can ask Claude to read specific pages instead of the whole file: a single page, a range like pages 1-10, or an open-ended range like page 3 onward.153For large PDFs, you can ask Claude to read specific pages instead of the whole file: a single page, a range like pages 1-10, or an open-ended range like page 3 onward.

148 154 

149When you select text in the editor, Claude can see your highlighted code automatically. The prompt box footer shows how many lines are selected. Press `Option+K` (Mac) / `Alt+K` (Windows/Linux) to insert an @-mention with the file path and line numbers (e.g., `@app.ts#5-10`). Click the **X** on the selection indicator to remove it so Claude doesn't receive the selection. The indicator comes back when you select other text or switch to a different file.155When you select text in the editor, Claude can see your highlighted code automatically. The prompt box footer shows how many lines are selected. Press `Option+K` (Mac) / `Alt+K` (Windows/Linux) to insert an @-mention with the file path and line numbers (e.g., `@app.ts#5-10`). Click the **X** on the selection indicator to remove it so Claude doesn't receive the selection. The indicator comes back when you select other text.

156 

157Claude also sees which file you have open in the editor, even when nothing is selected, and the prompt box shows its name. To add only your selected text, turn off the [Attach Open File setting](vscode://settings/claudeCode.attachOpenFile). The setting requires Claude Code v2.1.271 or later.

150 158 

151To attach an image, paste it from your clipboard into the prompt box. You can also hold `Shift` while dragging files into the prompt box to add them as attachments. Click the X on any attachment to remove it from context.159To attach an image, paste it from your clipboard into the prompt box. You can also hold `Shift` while dragging files into the prompt box to add them as attachments. Click the X on any attachment to remove it from context.

152 160 


174 Resume cloud sessions from Claude.ai182 Resume cloud sessions from Claude.ai

175</h3>183</h3>

176 184 

177If you use [Claude Code on the web](/docs/pt/claude-code-on-the-web), you can resume those cloud sessions directly in VS Code. This requires signing in with **Claude.ai Subscription**, not Anthropic Console.185If you run [cloud sessions](/docs/pt/claude-code-on-the-web), you can resume them directly in VS Code. This requires signing in with **Claude.ai Subscription**, not Anthropic Console.

178 186 

179<Steps>187<Steps>

180 <Step title="Open session history">188 <Step title="Open session history">


191</Steps>199</Steps>

192 200 

193<Note>201<Note>

194 Only web sessions started with a GitHub repository appear in the Web tab. Resuming loads the conversation history locally; changes are not synced back to claude.ai.202 Only cloud sessions started with a GitHub repository appear in the Web tab. Resuming loads the conversation history locally; changes are not synced back to claude.ai.

195</Note>203</Note>

196 204 

197<h3 id="check-account-and-usage">205<h3 id="check-account-and-usage">


450| `initialPermissionMode` | - | Controla prompts de aprovação para novas conversas: `default`, `plan`, `acceptEdits` ou `bypassPermissions`. `manual` é um alias para `default` e seleciona o modo rotulado **Manual** no indicador de modo. Quando você deixa sem definir, a extensão escolhe o modo de permissão inicial conforme descrito em [Switch permission modes](/docs/pt/permission-modes#switch-permission-modes). |458| `initialPermissionMode` | - | Controla prompts de aprovação para novas conversas: `default`, `plan`, `acceptEdits` ou `bypassPermissions`. `manual` é um alias para `default` e seleciona o modo rotulado **Manual** no indicador de modo. Quando você deixa sem definir, a extensão escolhe o modo de permissão inicial conforme descrito em [Switch permission modes](/docs/pt/permission-modes#switch-permission-modes). |

451| `preferredLocation` | `panel` | Onde Claude abre: `sidebar` (direita) ou `panel` (nova aba) |459| `preferredLocation` | `panel` | Onde Claude abre: `sidebar` (direita) ou `panel` (nova aba) |

452| `autosave` | `true` | Salvar automaticamente arquivos antes de Claude ler ou escrever neles |460| `autosave` | `true` | Salvar automaticamente arquivos antes de Claude ler ou escrever neles |

461| `attachOpenFile` | `true` | Adicione o arquivo que está aberto no editor às suas mensagens e mostre-o na caixa de prompt. Quando desativado, apenas o texto selecionado é adicionado. Requer Claude Code v2.1.271 ou posterior |

453| `useCtrlEnterToSend` | `false` | Use Ctrl/Cmd+Enter em vez de Enter para enviar prompts |462| `useCtrlEnterToSend` | `false` | Use Ctrl/Cmd+Enter em vez de Enter para enviar prompts |

454| `enableNewConversationShortcut` | `false` | Ativar Cmd/Ctrl+N para iniciar uma nova conversa |463| `enableNewConversationShortcut` | `false` | Ativar Cmd/Ctrl+N para iniciar uma nova conversa |

455| `enableReopenClosedSessionShortcut` | `true` | Use Cmd/Ctrl+Shift+T para reabrir a aba de sessão Claude fechada mais recentemente. Quando a última aba fechada não era uma sessão Claude, o atalho executa o comando normal de reabrir editor fechado do VS Code. |464| `enableReopenClosedSessionShortcut` | `true` | Use Cmd/Ctrl+Shift+T para reabrir a aba de sessão Claude fechada mais recentemente. Quando a última aba fechada não era uma sessão Claude, o atalho executa o comando normal de reabrir editor fechado do VS Code. |


623 632 

624O servidor é nomeado `ide` e está oculto de `/mcp` porque não há nada para configurar. Se sua organização usa um hook `PreToolUse` para criar uma lista de permissões de ferramentas MCP, porém, você precisará saber que ele existe.633O servidor é nomeado `ide` e está oculto de `/mcp` porque não há nada para configurar. Se sua organização usa um hook `PreToolUse` para criar uma lista de permissões de ferramentas MCP, porém, você precisará saber que ele existe.

625 634 

626**Selection and open-file context.** Enquanto conectado, a CLI inclui sua seleção atual do editor e o caminho do arquivo ativo como contexto em cada prompt que você envia. A transcrição mostra uma linha `⧉ Selected N lines from <file>` quando isso acontece. Para excluir um arquivo sensível como `.env`, adicione uma [regra de negação `Read`](/docs/pt/permissions#read-and-edit) para seu caminho. Uma regra de negação correspondente impede que o texto selecionado e o aviso de arquivo aberto para esse arquivo cheguem a Claude.635**Selection and open-file context.** Enquanto conectado, a CLI inclui sua seleção atual do editor e o caminho do arquivo ativo como contexto em cada prompt que você envia. A transcrição mostra uma linha `⧉ Selected N lines from <file>` quando isso acontece.

636 

637Para excluir um arquivo sensível como `.env`, adicione uma [regra de negação `Read`](/docs/pt/permissions#read-and-edit) para seu caminho. Uma regra de negação correspondente impede que o texto selecionado e o aviso de arquivo aberto para esse arquivo cheguem a Claude.

638 

639Se você desativar a configuração [Attach Open File](#extension-settings), a CLI receberá o caminho do arquivo ativo apenas enquanto você tiver texto selecionado nele.

627 640 

628**Transport and authentication.** O servidor se vincula a `127.0.0.1` em uma porta aleatória no intervalo 10000–65535, e a porta não é configurável. O transporte é `ws://` não criptografado; como o socket é apenas loopback, qualquer processo que pudesse capturar o tráfego também pode ler o token do arquivo de bloqueio, portanto TLS não adicionaria proteção. Cada ativação de extensão gera um token de autenticação aleatório novo, o escreve em um arquivo de bloqueio em `~/.claude/ide/<port>.lock`, e a CLI deve apresentá-lo como o cabeçalho `X-Claude-Code-Ide-Authorization` para se conectar. O arquivo de bloqueio tem permissões `0600` em um diretório `0700`, portanto apenas o usuário que executa o VS Code pode lê-lo. Se `CLAUDE_CONFIG_DIR` estiver definido, o arquivo de bloqueio será escrito em `$CLAUDE_CONFIG_DIR/ide/` em vez disso.641**Transport and authentication.** O servidor se vincula a `127.0.0.1` em uma porta aleatória no intervalo 10000–65535, e a porta não é configurável. O transporte é `ws://` não criptografado; como o socket é apenas loopback, qualquer processo que pudesse capturar o tráfego também pode ler o token do arquivo de bloqueio, portanto TLS não adicionaria proteção. Cada ativação de extensão gera um token de autenticação aleatório novo, o escreve em um arquivo de bloqueio em `~/.claude/ide/<port>.lock`, e a CLI deve apresentá-lo como o cabeçalho `X-Claude-Code-Ide-Authorization` para se conectar. O arquivo de bloqueio tem permissões `0600` em um diretório `0700`, portanto apenas o usuário que executa o VS Code pode lê-lo. Se `CLAUDE_CONFIG_DIR` estiver definido, o arquivo de bloqueio será escrito em `$CLAUDE_CONFIG_DIR/ide/` em vez disso.

629 642 

web-quickstart.md +32 −26

Details

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

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

4 4 

5# Comece com Claude Code na web5# Comece com Claude Code na nuvem

6 6 

7> Execute Claude Code na nuvem a partir do seu navegador ou telefone. Conecte um repositório GitHub, envie uma tarefa e revise o PR sem configuração local.7> Execute Claude Code na nuvem a partir do seu navegador ou telefone. Conecte um repositório GitHub, envie uma tarefa e revise o PR sem configuração local.

8 8 

9<Note>9<Note>

10 Claude Code na web está em visualização de pesquisa para usuários Pro, Max e Team, e para usuários Enterprise com assentos premium ou assentos Chat + Claude Code.10 As sessões na nuvem estão em visualização de pesquisa para usuários Pro, Max e Team, e para usuários Enterprise com assentos premium ou assentos Chat + Claude Code.

11</Note>11</Note>

12 12 

13Claude Code na web é executado em infraestrutura de nuvem gerenciada pela Anthropic em vez de sua máquina. Envie tarefas de [claude.ai/code](https://claude.ai/code) no seu navegador ou no aplicativo móvel Claude.13Uma sessão na nuvem executa Claude Code em infraestrutura de nuvem em vez de sua máquina, gerenciada pela Anthropic por padrão. Este guia de início rápido inicia uma a partir de [claude.ai/code](https://claude.ai/code) no seu navegador. Você também pode iniciar uma a partir do aplicativo móvel Claude, do aplicativo Desktop ou do seu terminal com `claude --cloud`.

14 14 

15Você precisará de um repositório GitHub para [começar](#connect-github). Claude o clona em uma máquina virtual isolada, faz alterações e envia uma branch para você revisar. As sessões persistem entre dispositivos, portanto uma tarefa que você inicia no seu laptop está pronta para revisar no seu telefone mais tarde.15Você precisará de um repositório GitHub para [começar](#connect-github). Claude o clona em uma máquina virtual isolada, faz alterações e envia uma branch para você revisar. As sessões persistem entre dispositivos, portanto uma tarefa que você inicia no seu laptop está pronta para revisar no seu telefone mais tarde.

16 16 

17Claude Code na web funciona bem para:17As sessões na nuvem funcionam bem para:

18 18 

19* **Tarefas paralelas**: execute várias tarefas independentes ao mesmo tempo, cada uma em sua própria sessão e branch, sem gerenciar múltiplas worktrees19* **Tarefas paralelas**: execute várias tarefas independentes ao mesmo tempo, cada uma em sua própria sessão e branch, sem gerenciar múltiplas worktrees

20* **Repositórios que você não tem localmente**: Claude clona o repositório novo a cada sessão, então você não precisa tê-lo verificado20* **Repositórios que você não tem localmente**: Claude clona o repositório novo a cada sessão, então você não precisa tê-lo verificado


40 Compare as maneiras de executar Claude Code40 Compare as maneiras de executar Claude Code

41</h2>41</h2>

42 42 

43Claude Code se comporta da mesma forma em todos os lugares. O que muda é onde o código é executado e se sua configuração local está disponível. O aplicativo Desktop oferece sessões locais e em nuvem, portanto suas respostas abaixo dependem de qual você escolher:43Claude Code se comporta da mesma forma em todos os lugares. O que muda é onde a sessão é executada e se sua configuração local está disponível:

44 44 

45| | Na web | Remote Control | Terminal CLI | Aplicativo Desktop |45| | Sessão em nuvem | Sessão local | Sessão local com [Remote Control](/docs/pt/remote-control) |

46| :--------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------- | :------------------------------------ | :------------------ | :----------------------------- |46| :--------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------- |

47| **O código é executado em** | VM de nuvem, gerenciada pela Anthropic por padrão | Sua máquina | Sua máquina | Sua máquina ou VM de nuvem |47| **O código é executado em** | VM de nuvem, gerenciada pela Anthropic por padrão | Sua máquina | Sua máquina |

48| **Você conversa de** | claude.ai ou aplicativo móvel | claude.ai ou aplicativo móvel | Seu terminal | A interface do Desktop |48| **Você inicia a partir de** | claude.ai/code, o aplicativo móvel Claude, o aplicativo Desktop com **Cloud** selecionado, ou `claude --cloud` | Seu terminal, seu IDE, ou o aplicativo Desktop com **Local** selecionado | Seu terminal, a extensão VS Code, ou o aplicativo Desktop |

49| **Usa sua configuração local** | Não, apenas repositório | Sim | Sim | Sim para local, não para nuvem |49| **Você conversa de** | claude.ai, o aplicativo móvel, ou o aplicativo Desktop | Onde você a iniciou | claude.ai ou o aplicativo móvel, bem como onde você a iniciou |

50| **Requer GitHub** | Sim, ou [agrupe um repositório local](/docs/pt/claude-code-on-the-web#send-local-repositories-without-github) via `--cloud` | Não | Não | Apenas para sessões em nuvem |50| **Usa sua configuração local** | Não, apenas repositório | Sim | Sim |

51| **Continua funcionando se você desconectar** | Sim | Enquanto o terminal permanecer aberto | Não | Depende do tipo de sessão |51| **Requer GitHub** | Sim, ou [agrupe um repositório local](/docs/pt/claude-code-on-the-web#send-local-repositories-without-github) via `--cloud` | Não | Não |

52| **[Modos de permissão](/docs/pt/permission-modes)** | Aceitar edições, Plan, Auto | Manual, Aceitar edições, Plan | Todos os modos | Depende do tipo de sessão |52| **Continua funcionando se você desconectar** | Sim | Não | Enquanto a sessão permanecer aberta em sua máquina |

53| **Acesso à rede** | Configurável por ambiente | Rede da sua máquina | Rede da sua máquina | Depende do tipo de sessão |53| **[Modos de permissão](/docs/pt/permission-modes)** | Aceitar edições, Plan, Auto | Todos os modos no terminal; consulte [Alternar modos de permissão](/docs/pt/permission-modes#switch-permission-modes) para o IDE e aplicativo Desktop | Manual, Aceitar edições, ou Plan a partir de claude.ai e do aplicativo móvel |

54| **Acesso à rede** | Configurável por ambiente | Rede da sua máquina | Rede da sua máquina |

54 55 

55Consulte a documentação do [quickstart do terminal](/docs/pt/quickstart), [aplicativo Desktop](/docs/pt/desktop) ou [Remote Control](/docs/pt/remote-control) para configurá-los.56Consulte a documentação do [quickstart do terminal](/docs/pt/quickstart), [aplicativo Desktop](/docs/pt/desktop), ou [Remote Control](/docs/pt/remote-control) para configurar sessões locais.

56 57 

57<h2 id="connect-github">58<h2 id="connect-github">

58 Conecte GitHub59 Conecte GitHub


66 67 

67<Steps>68<Steps>

68 <Step title="Visite claude.ai/code">69 <Step title="Visite claude.ai/code">

69 Vá para [claude.ai/code](https://claude.ai/code) e faça login com sua conta claude.ai. No macOS ou Windows, a primeira tela oferece o aplicativo Claude Code desktop e outras formas de instalar Claude Code. Para permanecer no navegador, clique em **Continue on web** na parte inferior da página.70 Vá para [claude.ai/code](https://claude.ai/code) e faça login com sua conta claude.ai.

70 </Step>71 </Step>

71 72 

72 <Step title="Sign in with GitHub">73 <Step title="Sign in with GitHub">

73 Após fazer login, claude.ai/code solicita que você conecte o GitHub. Siga o prompt, e claude.ai/code o envia para a página de autorização do GitHub. Aprove a solicitação de autorização, e o GitHub o retorna para claude.ai/code. As sessões em nuvem funcionam com repositórios GitHub existentes. Para iniciar um novo projeto, [crie um repositório vazio no GitHub](https://github.com/new) primeiro.74 Após fazer login, claude.ai/code solicita que você conecte o GitHub. Siga o prompt, e claude.ai/code o envia para a página de autorização do GitHub. Aprove a solicitação de autorização, e o GitHub o retorna para claude.ai/code. As sessões em nuvem funcionam com repositórios GitHub existentes. Para iniciar um novo projeto, [crie um repositório vazio no GitHub](https://github.com/new) primeiro.

74 75 

75 Com essa conexão, uma sessão pode clonar qualquer repositório público, mas pode trabalhar em um repositório privado apenas quando o Claude GitHub App está instalado nele. [Instale o App](https://github.com/apps/claude/installations/new) em cada conta GitHub ou organização cujos repositórios privados você deseja usar. Em uma organização GitHub, um proprietário da organização pode precisar aprovar a instalação. Instalar o App também ativa [Auto-fix](/docs/pt/claude-code-on-the-web#auto-fix-pull-requests), que permite que Claude responda a falhas de CI e comentários de revisão em pull requests nesses repositórios.76 Com essa conexão, uma sessão pode clonar qualquer repositório público, mas pode trabalhar em um repositório privado apenas quando o Claude GitHub App está instalado nele. [Instale o Claude GitHub App](https://github.com/apps/claude/installations/new) em cada conta GitHub ou organização cujos repositórios privados você deseja usar. Em uma organização GitHub, um proprietário da organização pode precisar aprovar a instalação. Instalar o App também ativa [Auto-fix](/docs/pt/claude-code-on-the-web#auto-fix-pull-requests), que permite que Claude responda a falhas de CI e comentários de revisão em pull requests nesses repositórios.

76 77 

77 Se a integração solicitar que você instale o App neste ponto e você preferir fazer isso mais tarde, clique em **Skip**.78 Se a integração solicitar que você instale o Claude GitHub App neste ponto e você preferir fazer isso mais tarde, clique em **Skip**.

78 </Step>79 </Step>

79 80 

80 <Step title="Configure seu ambiente padrão">81 <Step title="Configure seu ambiente padrão">


93 Conecte do seu terminal94 Conecte do seu terminal

94</h3>95</h3>

95 96 

96Se você já usa a CLI do GitHub (`gh`), você pode configurar Claude Code na web do seu terminal. Isso requer a [CLI do Claude Code](/docs/pt/quickstart). Em planos Team e Enterprise, `/web-setup` está disponível apenas após um Owner ativar [Quick web setup](/docs/pt/claude-code-on-the-web#github-authentication-options).97Se você já usa a CLI do GitHub (`gh`), você pode conectar GitHub para sessões em nuvem do seu terminal. Isso requer a [CLI do Claude Code](/docs/pt/quickstart). Em planos Team e Enterprise, `/web-setup` está disponível apenas após um Owner ativar [Quick web setup](/docs/pt/claude-code-on-the-web#github-authentication-options).

97 98 

98Quando você executa `/web-setup`, Claude Code lê o token que `gh auth token` imprime, pede que você confirme e envia o token para Anthropic. Anthropic o armazena criptografado com sua conta claude.ai, e suas sessões em nuvem o usam para acesso ao GitHub até você [removê-lo](#remove-the-web-setup-token). Uma sessão em nuvem pode então acessar qualquer repositório que esse token possa acessar, sem nenhuma instalação do Claude GitHub App.99Quando você executa `/web-setup`, Claude Code lê o token que `gh auth token` imprime, pede que você confirme e envia o token para Anthropic. Anthropic o armazena criptografado com sua conta claude.ai, e suas sessões em nuvem o usam para acesso ao GitHub até você [removê-lo](#remove-the-web-setup-token). Uma sessão em nuvem que você inicia por conta própria pode então acessar qualquer repositório que esse token possa acessar, sem nenhuma instalação do Claude GitHub App. Threads em um [projeto](/docs/pt/claude-projects#set-up-github-access) ainda precisam do Claude GitHub App.

99 100 

100Se você já conectou o GitHub no navegador, `/web-setup` avisa que continuar substitui essa conexão para suas sessões em nuvem.101Se você já conectou o GitHub no navegador, `/web-setup` avisa que continuar substitui essa conexão para suas sessões em nuvem.

101 102 


123 /web-setup124 /web-setup

124 ```125 ```

125 126 

126 Confirme o prompt para enviar seu token `gh` para sua conta Claude. Em caso de sucesso, Claude Code imprime `Connected as <your-github-username>` e abre [claude.ai/code](https://claude.ai/code) no seu navegador. Se você ainda não tiver um ambiente em nuvem, `/web-setup` cria um com acesso à rede Trusted e sem script de configuração. Você pode [editar o ambiente ou adicionar variáveis](/docs/pt/cloud-environments#configure-your-environment) depois. Após `/web-setup` ser concluído, você pode iniciar sessões em nuvem do seu terminal com [`--cloud`](/docs/pt/claude-code-on-the-web#from-terminal-to-web) ou configurar tarefas recorrentes com [`/schedule`](/docs/pt/routines).127 Confirme o prompt para enviar seu token `gh` para sua conta Claude. Em caso de sucesso, Claude Code imprime `Connected as <your-github-username>` e abre [claude.ai/code](https://claude.ai/code) no seu navegador. Se você ainda não tiver um ambiente em nuvem, `/web-setup` cria um com acesso à rede Trusted e sem script de configuração. Você pode [editar o ambiente ou adicionar variáveis](/docs/pt/cloud-environments#configure-your-environment) depois. Após `/web-setup` ser concluído, você pode iniciar sessões em nuvem do seu terminal com [`--cloud`](/docs/pt/claude-code-on-the-web#from-terminal-to-cloud) ou configurar tarefas recorrentes com [`/schedule`](/docs/pt/routines).

127 </Step>128 </Step>

128</Steps>129</Steps>

129 130 


226 A página mostra apenas um botão de login do GitHub227 A página mostra apenas um botão de login do GitHub

227</h3>228</h3>

228 229 

229As sessões em nuvem requerem uma conta GitHub conectada. Conecte através do fluxo do navegador acima, ou execute `/web-setup` do seu terminal se você usar o GitHub CLI. Se você preferir não conectar GitHub, consulte [Remote Control](/docs/pt/remote-control) para executar Claude Code em sua própria máquina e monitorá-lo pela web.230As sessões em nuvem requerem uma conta GitHub conectada. Conecte através do fluxo do navegador acima, ou execute `/web-setup` do seu terminal se você usar o GitHub CLI. Se você preferir não conectar GitHub, consulte [Remote Control](/docs/pt/remote-control) para executar Claude Code em sua própria máquina e monitorá-lo do seu navegador ou telefone.

230 231 

231<h3 id="not-available-for-the-selected-organization">232<h3 id="not-available-for-the-selected-organization">

232 "Não disponível para a organização selecionada"233 "Não disponível para a organização selecionada"

233</h3>234</h3>

234 235 

235Organizações Enterprise podem precisar que um Proprietário ative Claude Code na web. Entre em contato com sua equipe de conta Anthropic.236Organizações Enterprise podem precisar que um Proprietário ative sessões em nuvem. Entre em contato com sua equipe de conta Anthropic.

236 237 

237<h3 id="/web-setup-says-not-signed-in-to-claude">238<h3 id="/web-setup-says-not-signed-in-to-claude">

238 `/web-setup` diz "Não conectado ao Claude"239 `/web-setup` diz "Não conectado ao Claude"


254 255 

255Se você digitou dentro do Claude Code e o menu de comandos mostra `No commands match "/web-setup"`, ou enviá-lo retorna `Unknown command: /web-setup`, o comando está oculto porque um requisito não é atendido. A causa geralmente é que você está autenticado com uma chave de API ou provedor de terceiros em vez de uma assinatura claude.ai. Execute `/login` para conectar-se com sua conta claude.ai.256Se você digitou dentro do Claude Code e o menu de comandos mostra `No commands match "/web-setup"`, ou enviá-lo retorna `Unknown command: /web-setup`, o comando está oculto porque um requisito não é atendido. A causa geralmente é que você está autenticado com uma chave de API ou provedor de terceiros em vez de uma assinatura claude.ai. Execute `/login` para conectar-se com sua conta claude.ai.

256 257 

257Nos planos Team e Enterprise, o comando está oculto por padrão: a [alternância Quick web setup](/docs/pt/claude-code-on-the-web#github-authentication-options) está desativada até que um Proprietário a ative. Enquanto estiver desativada, [conecte GitHub do navegador](#connect-github). O comando também está oculto quando um administrador desativou Claude Code na web para sua organização, ou quando sua organização Enterprise tem [Zero Data Retention](/docs/pt/zero-data-retention) ativado, o que torna Claude Code na web indisponível.258Nos planos Team e Enterprise, o comando está oculto por padrão: a [alternância Quick web setup](/docs/pt/claude-code-on-the-web#github-authentication-options) está desativada até que um Proprietário a ative. Enquanto estiver desativada, [conecte GitHub do navegador](#connect-github) em vez disso.

259 

260O comando também está oculto em dois outros casos:

261 

262* Um administrador desativou sessões em nuvem para sua organização. Neste caso, enviar `/web-setup` retorna [`Cloud sessions are disabled by your organization's policy`](/docs/pt/errors#cloud-sessions-are-disabled-by-your-organizations-policy). Antes da v2.1.268, este caso também retornava `Unknown command: /web-setup`.

263* Sua organização Enterprise tem [Zero Data Retention](/docs/pt/zero-data-retention) ativado, o que torna sessões em nuvem indisponíveis.

258 264 

259<h3 id="could-not-create-a-cloud-environment-or-no-cloud-environment-available-when-using-cloud">265<h3 id="could-not-create-a-cloud-environment-or-no-cloud-environment-available-when-using-cloud">

260 "Could not create a cloud environment" ou "No cloud environment available" ao usar `--cloud`266 "Could not create a cloud environment" ou "No cloud environment available" ao usar `--cloud`

261</h3>267</h3>

262 268 

263Os recursos de sessão remota criam um ambiente em nuvem padrão automaticamente se você não tiver um. Se você vir "Could not create a cloud environment", a criação automática falhou. Se você vir "No cloud environment available", seu CLI é anterior à criação automática. Em qualquer caso, execute `/web-setup` no Claude Code CLI, ou adicione um ambiente do [seletor de ambiente](/docs/pt/cloud-environments#configure-your-environment) em [claude.ai/code](https://claude.ai/code).269Os recursos de sessão em nuvem criam um ambiente em nuvem padrão automaticamente se você não tiver um. Se você vir "Could not create a cloud environment", a criação automática falhou. Se você vir "No cloud environment available", seu CLI é anterior à criação automática. Em qualquer caso, execute `/web-setup` no Claude Code CLI, ou adicione um ambiente do [seletor de ambiente](/docs/pt/cloud-environments#configure-your-environment) em [claude.ai/code](https://claude.ai/code).

264 270 

265<h3 id="setup-script-failed">271<h3 id="setup-script-failed">

266 Script de configuração falhou272 Script de configuração falhou


302* [Configure ambientes em nuvem](/docs/pt/cloud-environments): níveis de acesso à rede, variáveis de ambiente e scripts de configuração para sessões em nuvem308* [Configure ambientes em nuvem](/docs/pt/cloud-environments): níveis de acesso à rede, variáveis de ambiente e scripts de configuração para sessões em nuvem

303* [Routines](/docs/pt/routines): automatize trabalho em um cronograma, via chamada de API ou em resposta a eventos do GitHub309* [Routines](/docs/pt/routines): automatize trabalho em um cronograma, via chamada de API ou em resposta a eventos do GitHub

304* [CLAUDE.md](/docs/pt/memory): dê a Claude instruções persistentes e contexto que carregam no início de cada sessão310* [CLAUDE.md](/docs/pt/memory): dê a Claude instruções persistentes e contexto que carregam no início de cada sessão

305* Instale o aplicativo móvel Claude para [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) ou [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude) para monitorar sessões do seu telefone. Da CLI do Claude Code, `/mobile` mostra um código QR.311* Instale o aplicativo móvel Claude para [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) ou [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude) para monitorar sessões do seu telefone. Da CLI do Claude Code, `/mobile` mostra um código QR para [claude.ai/mobile](https://claude.ai/mobile) que abre a loja de aplicativos correta para seu telefone.

whats-new.md +24 −0

Details

8 8 

9O resumo semanal para desenvolvedores destaca os recursos com maior probabilidade de mudar a forma como você trabalha. Cada entrada inclui código executável, uma breve demonstração e um link para a documentação completa. Para cada correção de bug e melhoria menor, consulte o [changelog](/docs/en/changelog).9O resumo semanal para desenvolvedores destaca os recursos com maior probabilidade de mudar a forma como você trabalha. Cada entrada inclui código executável, uma breve demonstração e um link para a documentação completa. Para cada correção de bug e melhoria menor, consulte o [changelog](/docs/en/changelog).

10 10 

11<Update label="Week 37" description="7–11 de setembro de 2026" tags={["v2.1.263–v2.1.269"]}>

12 **`claude plugin eval`**: execute seu plugin contra um conjunto de casos de teste, pontue os resultados e compare com uma linha de base sem plugin. `claude plugin eval init` elabora os casos e avaliadores para você.

13 

14 Também esta semana: abra qualquer **painel Claude Code Desktop** em sua própria janela e encaixe-o novamente depois; a configuração **`maxEffortLevel`** limita o nível de esforço em cada provedor; e uma página que **WebFetch** não terminou de baixar em cinco minutos falha em vez de ficar pendurada.

15 

16 [Leia o resumo da Week 37 →](/docs/pt/whats-new/2026-w37)

17</Update>

18 

19<Update label="Week 36" description="31 de agosto – 4 de setembro de 2026" tags={["v2.1.251–v2.1.261"]}>

20 **Claude Fable 5.1**: disponível no Claude Code com uma janela de contexto de 1M de tokens.

21 

22 Também esta semana: nos planos Pro e Max, **computer use no aplicativo Desktop** funciona em segundo plano no macOS enquanto você continua trabalhando; na renderização em tela inteira, **`/diff`** abre um painel ao vivo ao lado da conversa que se atualiza conforme Claude edita; e **`/skill-doctor`** mostra quanto cada uma de suas skills custa em contexto e com que frequência é usada.

23 

24 [Leia o resumo da Week 36 →](/docs/pt/whats-new/2026-w36)

25</Update>

26 

27<Update label="Week 35" description="24–28 de agosto de 2026" tags={["v2.1.240–v2.1.250"]}>

28 **Retomar sessões de terminal no aplicativo Desktop**: digite `/resume` na caixa de prompt do Claude Code Desktop para retomar qualquer sessão que você iniciou a partir do CLI, com a conversa completa e contexto intactos.

29 

30 Também esta semana: **feedback elaborado por Claude** faz Claude escrever um relatório de feedback quando algo dá errado em uma sessão, que você revisa e envia de `/feedback`; **`--restricted`** inicia uma sessão sem as ferramentas de execução de comando ou suas configurações de usuário e projeto, para harnesses de avaliação em máquinas compartilhadas; e a configuração **`modelPicker`** controla quais modelos o seletor `/model` lista.

31 

32 [Leia o resumo da Week 35 →](/docs/pt/whats-new/2026-w35)

33</Update>

34 

11<Update label="Week 34" description="17–21 de agosto de 2026" tags={["v2.1.234–v2.1.239"]}>35<Update label="Week 34" description="17–21 de agosto de 2026" tags={["v2.1.234–v2.1.239"]}>

12 **`/design`**: uma visualização de pesquisa que traz o fluxo de trabalho de artboard do Claude Design para o CLI e Claude Code Desktop, construído em artifacts, para que Claude elabore artboards editáveis para sua interface do usuário e implemente o que você escolher.36 **`/design`**: uma visualização de pesquisa que traz o fluxo de trabalho de artboard do Claude Design para o CLI e Claude Code Desktop, construído em artifacts, para que Claude elabore artboards editáveis para sua interface do usuário e implemente o que você escolher.

13 37 

whats-new/2026-w35.md +98 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Semana 35 · 24–28 de agosto de 2026

6 

7> Retome sessões de terminal no aplicativo Claude Code Desktop, revise relatórios de feedback que Claude elabora para você e inicie uma sessão em modo restrito.

8 

9<div className="digest-meta">

10 <span>Lançamentos <a href="/docs/en/changelog#2-1-240">v2.1.240 → v2.1.250</a></span>

11 <span>3 recursos · 24–28 de agosto</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">Retome sessões de terminal no aplicativo Desktop</span>

17 <span className="digest-feature-pill">Desktop</span>

18 </div>

19 

20 <p className="digest-feature-lede">Digite <code>/resume</code> na caixa de prompt do Claude Code Desktop para retomar qualquer sessão que você iniciou a partir da CLI e continuá-la no aplicativo com toda a conversa e contexto intactos. Pesquise suas sessões por título, pasta ou branch e visualize onde você parou antes de retomar.</p>

21 

22 <Frame>

23 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/f9HTZGyMtxIFOUgt/images/whats-new/desktop-resume-cli-session.mp4?fit=max&auto=format&n=f9HTZGyMtxIFOUgt&q=85&s=41e4a5fda6b9d63280589f2cbdabf44f" data-path="images/whats-new/desktop-resume-cli-session.mp4" />

24 </Frame>

25 

26 <p className="digest-feature-try">Em uma sessão Desktop, execute o comando para listar suas sessões de terminal:</p>

27 

28 ```text Claude Code theme={null}

29 > /resume

30 ```

31 

32 <p className="digest-feature-try">Selecione uma sessão e pressione <code>Enter</code>. A conversa abre no aplicativo onde você parou.</p>

33 

34 <a className="digest-feature-link" href="/docs/pt/desktop#coming-from-the-cli">Mude entre a CLI e o Desktop</a>

35</div>

36 

37<div className="digest-feature">

38 <div className="digest-feature-header">

39 <span className="digest-feature-title">Feedback elaborado por Claude</span>

40 <span className="digest-feature-pill">CLI</span>

41 </div>

42 

43 <p className="digest-feature-lede">Quando uma ferramenta continua falhando, Claude não consegue ajudar com uma solicitação ou você aponta um erro, Claude agora elabora um relatório de feedback para você com a ferramenta <code>SendFeedback</code>. Um cartão acima do seu prompt mostra o rascunho, e você pode revisá-lo, enviá-lo ou descartá-lo de lá. Nada chega à Anthropic até que você o envie. Requer v2.1.238 ou posterior.</p>

44 

45 <Frame>

46 <img className="w-full" src="https://mintcdn.com/claude-code/f9HTZGyMtxIFOUgt/images/whats-new/claude-drafted-feedback.jpg?fit=max&auto=format&n=f9HTZGyMtxIFOUgt&q=85&s=5cacb3be0dffd1cbd417381f3721637e" alt="Uma sessão do Claude Code onde Claude elaborou um relatório de bug intitulado Sandbox image pull fails behind proxy, mostrado como um cartão acima do prompt com opções para revisar, enviar ou descartar" width="1440" height="756" data-path="images/whats-new/claude-drafted-feedback.jpg" />

47 </Frame>

48 

49 <p className="digest-feature-try">Execute <code>/feedback</code> sem argumento para abrir sua fila de rascunhos de todas as sessões:</p>

50 

51 ```text Claude Code theme={null}

52 > /feedback

53 ```

54 

55 <p className="digest-feature-try">Selecione um rascunho e edite, envie ou descarte-o. Para desativar a elaboração, defina <strong>Claude-drafted feedback</strong> como <code>off</code> em <code>/config</code>.</p>

56 

57 <a className="digest-feature-link" href="/docs/pt/tools-reference#sendfeedback-tool-behavior">Comportamento da ferramenta SendFeedback</a>

58</div>

59 

60<div className="digest-feature">

61 <div className="digest-feature-header">

62 <span className="digest-feature-title">Modo restrito</span>

63 <span className="digest-feature-pill">v2.1.248</span>

64 </div>

65 

66 <p className="digest-feature-lede">O modo restrito inicia o Claude Code sem as ferramentas integradas que executam comandos ou código. Use-o quando um harness de avaliação executa <code>claude</code> em uma máquina compartilhada. Inicie-o com `--restricted` ou defina <code>CLAUDE\_CODE\_RESTRICTED=1</code>. O Claude Code também remove <code>WebFetch</code>, confina as ferramentas de arquivo aos diretórios de trabalho, carrega apenas configurações gerenciadas e `--settings`, e recusa o modo de permissão <code>bypassPermissions</code>.</p>

67 

68 <p className="digest-feature-try">Execute uma consulta não interativa sem as ferramentas de execução de comandos:</p>

69 

70 ```bash terminal theme={null}

71 claude --restricted -p "review src/ for SQL injection risks"

72 ```

73 

74 <p className="digest-feature-try">Para dar ao Claude uma das ferramentas removidas de volta, liste-a em `--tools` junto com as outras ferramentas integradas que você deseja, por exemplo `--tools "Bash,Read,Edit"`. `--tools` é uma lista de permissões, e sua predefinição <code>default</code> não restaura as ferramentas removidas.</p>

75 

76 <a className="digest-feature-link" href="/docs/pt/cli-reference#cli-flags">Sinalizadores CLI</a>

77</div>

78 

79<div className="digest-wins">

80 <p className="digest-wins-title">Outras melhorias</p>

81 

82 <div className="digest-wins-grid">

83 <div>Defina a nova configuração <a href="/docs/pt/settings-reference#modelpicker"><code>modelPicker</code></a> para estender ou substituir a lista integrada do seletor <code>/model</code> com suas próprias entradas ordenadas e rotuladas, incluindo IDs de modelo do Amazon Bedrock ou da Agent Platform do Google Cloud</div>

84 <div>Defina <a href="/docs/pt/prompt-caching#choose-the-ttl-yourself"><code>promptCacheTtl</code></a> como <code>1h</code> para manter um cache de prompt de uma hora na conversa principal quando você usar uma chave de API ou um provedor de nuvem; <code>subagentPromptCacheTtl</code> define o TTL para subagentes e todas as outras solicitações fora da conversa principal</div>

85 <div>Nos planos Pro, Max, Team e Enterprise, <a href="/docs/pt/costs#plan-usage-breakdown"><code>/usage</code></a> adiciona um detalhamento de Loops: contagem de execução, tokens totais, tokens por execução e última execução para <code>/loop</code> e tarefas agendadas que usaram mais tokens</div>

86 <div>Organizações com taxas contratadas podem definir a configuração gerenciada <a href="/docs/pt/costs#report-spend-at-your-contracted-rates"><code>modelPricing</code></a> para que <code>/usage</code>, a linha de status e OpenTelemetry relatem o custo nessas taxas em vez do preço de tabela</div>

87 <div><code>/login</code> oferece <strong>Entrar com sua conta Console</strong> sob a opção <strong>Conta Console da Anthropic</strong>, para que membros de organizações Console que não permitem chaves de API possam entrar sem criar uma</div>

88 <div>Execute <code>/permissions</code> e abra a nova <a href="/docs/pt/auto-mode-config#edit-rules-from-permissions">aba <strong>Auto mode</strong></a> para visualizar e editar regras do classificador de modo automático sem abrir um arquivo de configurações</div>

89 <div>Quando o modo automático está disponível, prompts de permissão Bash nos modos Manual e <code>acceptEdits</code> oferecem uma opção <a href="/docs/pt/permission-modes#switch-permission-modes"><strong>Sim, e mudar para modo automático</strong></a>; selecione-a para aprovar o comando e mudar a sessão para modo automático</div>

90 <div>Depois que você <a href="/docs/pt/permissions#move-the-session-to-another-directory">move uma sessão com <code>/cd</code></a>, as configurações do projeto do novo diretório, hooks, servidores <code>.mcp.json</code>, skills e subagentes entram em vigor imediatamente em vez de no próximo `--resume`</div>

91 <div>Em sessões não interativas, incluindo execuções `-p`, execuções do Agent SDK e sessões em nuvem, Claude Code <a href="/docs/pt/errors#the-response-above-may-be-incomplete">continua uma resposta</a> que um erro de servidor, conexão perdida ou travamento cortou no meio do fluxo, quando a resposta parcial contém texto e nenhuma chamada de ferramenta</div>

92 <div>Um subagente que para no seu limite <code>maxTurns</code> retorna sua saída marcada como parcial, com uma dica de que Claude pode <a href="/docs/pt/sub-agents#resume-subagents">continuá-la com <code>SendMessage</code></a>, em vez de parecer concluída</div>

93 <div>No Amazon Bedrock, na Agent Platform do Google Cloud e no Microsoft Foundry, sessões na mesma máquina agora podem <a href="/docs/pt/cross-session-messaging#availability">se comunicar</a>, <code>/loop</code> pode <a href="/docs/pt/scheduled-tasks#let-claude-choose-the-interval">escolher seu próprio intervalo</a>, e <code>/model</code> e <code>/effort</code> se aplicam imediatamente em vez de após o turno terminar</div>

94 <div>O instalador nativo e o atualizador automático baixam uma compilação comprimida com zstd, cerca de 75 MB em vez de 340 MB no Linux x64, e compilações nativas carregam código sob demanda, usando aproximadamente 40 a 70 MB menos memória por sessão</div>

95 </div>

96</div>

97 

98[Changelog completo para v2.1.240–v2.1.250 →](/docs/en/changelog#2-1-240)

whats-new/2026-w36.md +109 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Semana 36 · 31 de agosto – 4 de setembro de 2026

6 

7> Mude para Claude Fable 5.1, deixe o computer use rodar em segundo plano no Desktop e veja as edições do Claude em um painel /diff ao vivo.

8 

9<div className="digest-meta">

10 <span>Releases <a href="/docs/en/changelog#2-1-251">v2.1.251 → v2.1.261</a></span>

11 <span>4 recursos · 31 de agosto – 4 de setembro</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">Claude Fable 5.1</span>

17 <span className="digest-feature-pill">novo modelo</span>

18 </div>

19 

20 <p className="digest-feature-lede">Claude Fable 5.1 está disponível no Claude Code com uma janela de contexto de 1M tokens, e o alias <code>fable</code> agora o seleciona. Em sessões do gateway de aplicativos Claude, <code>fable</code> ainda seleciona Fable 5. Se seu gateway serve Fable 5.1, execute <code>/model claude-fable-5-1</code>. Requer v2.1.257 ou posterior.</p>

21 

22 <p className="digest-feature-try">Mude a sessão atual para Fable 5.1 e salve-a como padrão:</p>

23 

24 ```text Claude Code theme={null}

25 > /model fable

26 ```

27 

28 <p className="digest-feature-try">Na API Anthropic, o seletor lista Fable apenas uma vez que o servidor relata que está disponível para sua organização, mas digitar <code>/model fable</code> verifica com o servidor diretamente.</p>

29 

30 <a className="digest-feature-link" href="/docs/pt/model-config#work-with-fable">Trabalhe com Fable</a>

31</div>

32 

33<div className="digest-feature">

34 <div className="digest-feature-header">

35 <span className="digest-feature-title">Computer use roda em segundo plano no Desktop</span>

36 <span className="digest-feature-pill">Desktop</span>

37 </div>

38 

39 <p className="digest-feature-lede">No macOS, o computer use no aplicativo Claude Code Desktop agora funciona em segundo plano: Claude vê e age nos aplicativos que você aprovou enquanto você continua trabalhando. O computer use em segundo plano está em beta nos planos Pro e Max.</p>

40 

41 <Frame>

42 <img className="w-full" src="https://mintcdn.com/claude-code/f9HTZGyMtxIFOUgt/images/whats-new/background-computer-use.jpg?fit=max&auto=format&n=f9HTZGyMtxIFOUgt&q=85&s=a599a6c6fa544cb8d1b426b93706caf4" alt="Uma sessão Claude Code Desktop onde Claude pede para usar Xcode, com um cartão de permissão de Computer use que diz Deixe Claude ver e agir nos aplicativos que você aprova, em segundo plano ou com controle total da sua tela, ao lado de um botão Ativar" width="1440" height="810" data-path="images/whats-new/background-computer-use.jpg" />

43 </Frame>

44 

45 <a className="digest-feature-link" href="/docs/pt/desktop#let-claude-use-your-computer">Deixe Claude usar seu computador</a>

46</div>

47 

48<div className="digest-feature">

49 <div className="digest-feature-header">

50 <span className="digest-feature-title">Painel diff ao vivo na renderização em tela cheia</span>

51 <span className="digest-feature-pill">v2.1.260</span>

52 </div>

53 

54 <p className="digest-feature-lede">Na renderização em tela cheia, <code>/diff</code> agora abre um painel ao lado da conversa em vez de um visualizador que você precisa fechar. O painel lista os arquivos alterados com suas contagens de linhas adicionadas e removidas e é atualizado cada vez que Claude edita um arquivo ou executa um comando shell. Selecione linhas no painel com o mouse para anexá-las ao seu próximo prompt.</p>

55 

56 <Frame>

57 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/f9HTZGyMtxIFOUgt/images/whats-new/diff-panel.mp4?fit=max&auto=format&n=f9HTZGyMtxIFOUgt&q=85&s=9d7553c19e7f227891cd95f1f59d796d" data-path="images/whats-new/diff-panel.mp4" />

58 </Frame>

59 

60 <p className="digest-feature-try">Com renderização em tela cheia ativada, dentro de um repositório git e em um terminal com pelo menos 110 colunas de largura, alterne o painel:</p>

61 

62 ```text Claude Code theme={null}

63 > /diff

64 ```

65 

66 <p className="digest-feature-try">Execute <code>/diff</code> novamente ou clique no <code>✕</code> em seu cabeçalho para fechá-lo.</p>

67 

68 <a className="digest-feature-link" href="/docs/pt/interactive-mode#diff-panel">Painel diff</a>

69</div>

70 

71<div className="digest-feature">

72 <div className="digest-feature-header">

73 <span className="digest-feature-title">Encontre skills não utilizadas com /skill-doctor</span>

74 <span className="digest-feature-pill">CLI</span>

75 </div>

76 

77 <p className="digest-feature-lede"><code>/skill-doctor</code> mostra quanto cada uma de suas skills custa em contexto e com que frequência é usada, para que você possa decidir quais desativar. Cada skill na <a href="/docs/pt/skills#skill-descriptions-are-cut-short">listagem de skills</a> adiciona ao seu contexto a cada turno, independentemente de Claude nunca usá-la. Requer v2.1.252 ou posterior e não está disponível em sessões que pulam <a href="/docs/pt/env-vars#features-that-need-feature-flag-fetching">busca de feature-flag</a>.</p>

78 

79 <p className="digest-feature-try">Execute-o em uma sessão interativa para abrir o relatório na aba <strong>Stats</strong> do gerenciador <code>/plugin</code>:</p>

80 

81 ```text Claude Code theme={null}

82 > /skill-doctor

83 ```

84 

85 <p className="digest-feature-try">Em modo não interativo com <code>-p</code>, Claude Code imprime o relatório como texto.</p>

86 

87 <a className="digest-feature-link" href="/docs/pt/skills#find-unused-skills">Encontre skills não utilizadas</a>

88</div>

89 

90<div className="digest-wins">

91 <p className="digest-wins-title">Outras melhorias</p>

92 

93 <div className="digest-wins-grid">

94 <div>Um hook <a href="/docs/pt/hooks#premodelswitch"><code>PreModelSwitch</code></a> pode bloquear uma mudança de modelo que você solicita, e um hook <a href="/docs/pt/hooks#postmodelswitch"><code>PostModelSwitch</code></a> pode adicionar contexto para Claude após o modelo da sessão mudar</div>

95 <div><a href="/docs/pt/costs#prompt-cache-statistics"><code>/cost</code></a> adiciona uma linha <code>Prompt cache (main)</code>: a proporção de tokens de entrada servidos do cache, os erros de cache, se o cache está aquecido e uma causa provável para o último erro quando Claude Code consegue nomear uma. Scripts de linha de status recebem um objeto <code>prompt\_cache</code> correspondente</div>

96 <div>As organizações podem listar servidores MCP HTTP e SSE sob a configuração gerenciada <a href="/docs/pt/managed-mcp#provide-servers-through-managed-settings"><code>managedMcpServers</code></a> para fornecê-los a cada usuário, além dos servidores que os usuários adicionam por conta própria</div>

97 <div><code>/effort</code> e o seletor <code>/model</code> agora <a href="/docs/pt/model-config#adjust-effort-level">salvam um nível de esforço separado para cada modelo</a>; pressione <code>s</code> em vez de <code>Enter</code> para aplicar um nível apenas à sessão atual</div>

98 <div>Por padrão, o classificador de modo automático <a href="/docs/pt/permission-modes#what-the-classifier-blocks-by-default">agora também bloqueia</a> ações como solicitar credenciais do endpoint de metadados da instância na nuvem ou conectar-se a contêineres irmãos que Claude não iniciou</div>

99 <div>Em modo automático, Claude Code pede sua permissão antes de Claude <a href="/docs/pt/permission-modes#first-read-outside-the-working-directories">ler um arquivo fora de seus diretórios de trabalho</a>, com uma opção para bloquear tais leituras a partir de então</div>

100 <div>Aumente <a href="/docs/pt/settings-reference#bashoutputmaxchars"><code>bashOutputMaxChars</code></a> e <a href="/docs/pt/settings-reference#taskoutputmaxchars"><code>taskOutputMaxChars</code></a>, até 128.000 caracteres, para que Claude receba mais da saída de um comando bem-sucedido ou tarefa em segundo plano inline</div>

101 <div>Os atalhos de teclado de edição de palavras do prompt <a href="/docs/pt/interactive-mode#make-ctrl-w-delete-back-to-whitespace">seguem readline</a> para todos, e a configuração <code>keybindingFlavor</code> não tem mais nenhum efeito. <code>Ctrl+W</code> deleta de volta até o espaço em branco anterior, e <code>Alt+B</code>, <code>Alt+F</code> e <code>Alt+D</code> tratam pontuação como <code>/</code> e <code>.</code> como quebras de palavra</div>

102 <div>Se você definir <code>defaultMode</code> como <code>"bypassPermissions"</code> no <code>.claude/settings.json</code> ou <code>.claude/settings.local.json</code> de um projeto, <a href="/docs/pt/permission-modes#which-mode-a-session-starts-in">não terá mais efeito</a> e a sessão iniciará em modo Manual; defina <code>"bypassPermissions"</code> em configurações de usuário ou gerenciadas, ou passe `--permission-mode`</div>

103 <div>Os planos Enterprise baseados em assentos agora <a href="/docs/pt/model-config#default-model-setting">usam Opus 5 como padrão</a></div>

104 <div>Na extensão VS Code, clique no nome do modelo na parte inferior da caixa de prompt para <a href="/docs/pt/vs-code#use-the-prompt-box">abrir o seletor de modelo</a></div>

105 <div>Na extensão VS Code, selecione <strong>Output styles</strong> na seção Customize do menu de comandos para <a href="/docs/pt/vs-code#use-the-prompt-box">escolher um estilo de saída</a>, incluindo os personalizados</div>

106 </div>

107</div>

108 

109[Changelog completo para v2.1.251–v2.1.261 →](/docs/en/changelog#2-1-251)

whats-new/2026-w37.md +69 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Semana 37 · 7–11 de setembro de 2026

6 

7> Teste seus plugins com claude plugin eval e abra painéis do Claude Code Desktop em suas próprias janelas.

8 

9<div className="digest-meta">

10 <span>Lançamentos <a href="/docs/en/changelog#2-1-263">v2.1.263 → v2.1.269</a></span>

11 <span>2 recursos · 7–11 de setembro</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">Teste plugins com claude plugin eval</span>

17 <span className="digest-feature-pill">v2.1.269</span>

18 </div>

19 

20 <p className="digest-feature-lede"><code>claude plugin eval</code> executa seu plugin em relação a um conjunto de casos de teste, pontua os resultados e, por padrão, executa cada caso novamente sem o plugin para que você possa ver o que ele contribui. <code>claude plugin eval init</code> pergunta como um bom resultado se parece, depois propõe casos de teste e as verificações que os pontuam, tenta a suite uma vez e escreve os arquivos. Cada execução e cada verificação que tem um segundo juiz de modelo a resposta é uma chamada de modelo real em sua conta.</p>

21 

22 <Frame>

23 <img className="w-full" src="https://mintcdn.com/claude-code/f9HTZGyMtxIFOUgt/images/whats-new/plugin-eval.jpg?fit=max&auto=format&n=f9HTZGyMtxIFOUgt&q=85&s=913066f6d4a2a15426e98a627802f47f" alt="Saída do terminal de claude plugin eval: uma tabela de sete casos com a pontuação de cada caso com e sem o plugin, o delta entre eles, a contagem de execução e o custo, seguido por uma linha de resumo com o delta médio, duração total e custo total" width="1600" height="900" data-path="images/whats-new/plugin-eval.jpg" />

24 </Frame>

25 

26 <p className="digest-feature-try">Do diretório raiz do seu plugin, peça ao Claude para rascunhar a suite:</p>

27 

28 ```bash terminal theme={null}

29 claude plugin eval init

30 ```

31 

32 <p className="digest-feature-try">Quando Claude disser que a suite está pronta, saia da sessão que <code>claude plugin eval init</code> abriu e execute <code>claude plugin eval .</code> para pontuar cada caso. A tabela de resumo é impressa em seu terminal, e <code>report.html</code> sob <code>evals/results/</code> tem o detalhe por execução.</p>

33 

34 <a className="digest-feature-link" href="/docs/pt/plugin-evals">Teste plugins com evals</a>

35</div>

36 

37<div className="digest-feature">

38 <div className="digest-feature-header">

39 <span className="digest-feature-title">Abra painéis do Desktop em suas próprias janelas</span>

40 <span className="digest-feature-pill">Desktop</span>

41 </div>

42 

43 <p className="digest-feature-lede">No aplicativo Claude Code Desktop, você pode abrir qualquer painel em sua própria janela. Arraste o diff ou terminal para uma segunda tela enquanto Claude continua trabalhando na janela principal, depois encaixe o painel novamente quando terminar.</p>

44 

45 <Frame>

46 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/f9HTZGyMtxIFOUgt/images/whats-new/desktop-pop-out-panes.mp4?fit=max&auto=format&n=f9HTZGyMtxIFOUgt&q=85&s=ff3770dd09bb15ed9cf17a460f3d1e23" data-path="images/whats-new/desktop-pop-out-panes.mp4" />

47 </Frame>

48 

49 <a className="digest-feature-link" href="/docs/pt/desktop#arrange-your-workspace">Organize seu espaço de trabalho</a>

50</div>

51 

52<div className="digest-wins">

53 <p className="digest-wins-title">Outras vitórias</p>

54 

55 <div className="digest-wins-grid">

56 <div>Defina <a href="/docs/pt/settings-reference#maxeffortlevel"><code>maxEffortLevel</code></a> no nível superior ou por modelo sob <code>modelSettings</code> para limitar o nível de esforço em cada provedor, incluindo Amazon Bedrock, Agent Platform do Google Cloud e Microsoft Foundry; qualquer nível mais alto é executado no limite</div>

57 <div>Aponte `--plugin-dir` para uma pasta de plugins para <a href="/docs/pt/plugins#test-your-plugins-locally">carregar cada subpasta imediata que tenha um manifesto</a></div>

58 <div>Se WebFetch não terminar de baixar uma página em cinco minutos, <a href="/docs/pt/tools-reference#webfetch-tool-behavior">a busca falha com um erro de prazo</a> em vez de travar; defina `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` para alterar o prazo, ou para `0` para remover o limite</div>

59 <div>Passe `--json` para <code>claude plugin install</code>, <code>uninstall</code>, <code>update</code>, <code>enable</code> ou <code>disable</code> para imprimir o resultado como <a href="/docs/pt/plugins-reference#plugin-json-result">um objeto JSON na última linha de stdout</a></div>

60 <div>Quando o classificador do modo automático bloqueia uma ação, o motivo que Claude recebe <a href="/docs/pt/auto-mode-config#fix-a-denial-with-an-allow-rule-an-environment-entry-or-a-retry">geralmente nomeia a regra que correspondeu</a>, como <code>\[Data Exfiltration]</code></div>

61 <div>Quando você digita <code>/</code> no meio de um prompt, agora você pode escolher entre <a href="/docs/pt/interactive-mode#complete-a-command-mid-prompt">uma lista de comandos correspondentes</a> em vez de uma única sugestão. A lista abre conforme você digita em renderização em tela cheia. Uma skill de plugin também corresponde em seu nome sem o prefixo do plugin</div>

62 <div>Na extensão VS Code, clique na contagem de agentes na parte inferior da caixa de prompt para abrir o <a href="/docs/pt/vs-code#use-the-prompt-box">mapa de agentes</a>, onde você pode abrir a transcrição somente leitura de um subagente ou pará-lo</div>

63 <div>Na extensão VS Code, selecione <strong>Hooks</strong> ou <strong>Permissions</strong> na seção Personalizar do menu de comandos para <a href="/docs/pt/vs-code#use-the-prompt-box">adicionar ou remover hooks e regras de permissão</a> em suas configurações de usuário, projeto e local</div>

64 <div>Claude pode escolher um <a href="/docs/pt/artifacts#create-an-artifact">ícone de aba do navegador</a> para corresponder a cada artefato que publica</div>

65 <div>No Claude Code na web, recupere uma mensagem enfileirada em uma sessão em nuvem antes de Claude lê-la: remova-a da fila, ou pressione <code>Esc</code> ou <code>Up</code>, e o texto retorna à caixa de mensagem</div>

66 </div>

67</div>

68 

69[Changelog completo para v2.1.263–v2.1.269 →](/docs/en/changelog#2-1-263)

workflows.md +21 −6

Details

400O runtime aplica as seguintes restrições:400O runtime aplica as seguintes restrições:

401 401 

402| Restrição | Por quê |402| Restrição | Por quê |

403| :--------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------ |403| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

404| Sem entrada do usuário durante a execução | Apenas prompts de permissão de agente podem pausar uma execução. Para aprovação entre estágios, execute cada estágio como seu próprio fluxo de trabalho |404| Sem entrada do usuário durante a execução | Uma execução pausa por conta própria apenas para prompts de permissão de agente e uma [espera de limite de uso](#when-a-run-hits-your-usage-limit). Para aprovação entre estágios, execute cada estágio como seu próprio fluxo de trabalho |

405| Sem acesso direto ao sistema de arquivos ou shell do próprio fluxo de trabalho | Agentes leem, escrevem e executam comandos. O script coordena os agentes |405| Sem acesso direto ao sistema de arquivos ou shell do próprio fluxo de trabalho | Agentes leem, escrevem e executam comandos. O script coordena os agentes |

406| Sem carregamento de módulo: um script que contém `import()` falha antes da execução começar | O corpo do script é JavaScript simples. Coloque o trabalho que precisa de uma biblioteca na tarefa de um agente |406| Sem carregamento de módulo: um script que contém `import()` falha antes da execução começar | O corpo do script é JavaScript simples. Coloque o trabalho que precisa de uma biblioteca na tarefa de um agente |

407| Até 16 agentes simultâneos, menos quando Claude Code tem menos CPUs disponíveis, inclusive dentro de um container com CPU limitada | Limita o uso de recursos locais |407| Até 16 agentes simultâneos por padrão, menos quando Claude Code tem menos CPUs disponíveis, inclusive dentro de um container com CPU limitada. Para alterar o limite, defina [`CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS`](/docs/pt/env-vars#variables) para um valor de 1 a 256, o que requer Claude Code v2.1.269 ou posterior | Limita o uso de recursos locais |

408| Em um fan-out, agentes que compartilham o prefixo de prompt-cache do primeiro agente iniciam até 5 segundos depois por padrão | Todos exceto o primeiro leem o [prefixo que o primeiro agente armazenou em cache](#prompt-caching-in-a-fan-out) em vez de cada um processá-lo sem cache |408| Em um fan-out, agentes que compartilham o prefixo de prompt-cache do primeiro agente iniciam até 5 segundos depois por padrão | Todos exceto o primeiro leem o [prefixo que o primeiro agente armazenou em cache](#prompt-caching-in-a-fan-out) em vez de cada um processá-lo sem cache |

409| Até 4.096 itens em uma única chamada `parallel()` ou `pipeline()`: o runtime rejeita uma lista mais longa com um erro | Um limite silencioso deixaria cair parte da carga de trabalho sem informar o script |409| Até 4.096 itens em uma única chamada `parallel()` ou `pipeline()`: o runtime rejeita uma lista mais longa com um erro | Um limite silencioso deixaria cair parte da carga de trabalho sem informar o script |

410| 1.000 agentes totais por execução | Previne loops descontrolados |410| 1.000 agentes totais por execução | Previne loops descontrolados |


440 440 

441Em sessões locais e em nuvem, quando Claude relança uma execução anterior e Claude Code não consegue encontrar os resultados salvos dessa execução, o relançamento falha com um erro `nothing to resume` em vez de iniciar a execução novamente por conta própria. Peça a Claude para iniciar o fluxo de trabalho novamente como uma nova execução.441Em sessões locais e em nuvem, quando Claude relança uma execução anterior e Claude Code não consegue encontrar os resultados salvos dessa execução, o relançamento falha com um erro `nothing to resume` em vez de iniciar a execução novamente por conta própria. Peça a Claude para iniciar o fluxo de trabalho novamente como uma nova execução.

442 442 

443<h3 id="when-a-run-hits-your-usage-limit">

444 Quando uma execução atinge seu limite de uso

445</h3>

446 

447Quando um agente atinge seu [limite de uso](/docs/pt/interactive-mode#wait-for-a-usage-limit-to-reset) do claude.ai, a execução pausa em vez de falhar esse agente: os agentes que atingem o limite aguardam a redefinição, e nenhum novo agente inicia. Pouco depois que o limite é redefinido, os agentes em espera são executados novamente e a execução continua por conta própria. Requer Claude Code v2.1.271 ou posterior; em versões anteriores, os agentes afetados falham.

448 

449Enquanto a execução aguarda, sua linha de progresso no painel de tarefas e o cabeçalho [`/workflows`](#watch-the-run) mostram quando o limite é redefinido.

450 

451A execução pausa apenas quando todos esses itens se aplicam; quando um não se aplica, o agente afetado falha em vez disso:

452 

453* A sessão é interativa e conectada com uma assinatura claude.ai. Uma execução não pausa em [modo não interativo](/docs/pt/headless) com `claude -p` ou no [Agent SDK](/docs/pt/agent-sdk/overview), em uma [sessão em segundo plano](/docs/pt/agent-view), ou em uma sessão de colega de [Remote Control](/docs/pt/remote-control) ou [agent team](/docs/pt/agent-teams).

454* [`autoContinueAtUsageLimit`](/docs/pt/settings-reference#autocontinueatusagelimit) está ativado, a mesma configuração que permite que a sessão em si [aguarde a redefinição de um limite de uso](/docs/pt/interactive-mode#wait-for-a-usage-limit-to-reset). Se você desativá-lo durante uma espera, a espera termina e os agentes em espera falham.

455* O limite é redefinido dentro de 24 horas. Um limite semanal pode ser redefinido mais adiante.

456* A execução ainda não aguardou duas vezes. Quando atinge o limite pela terceira vez, o agente falha.

457 

443<h3 id="cost">458<h3 id="cost">

444 Custo459 Custo

445</h3>460</h3>

446 461 

447Um fluxo de trabalho spawna muitos agentes, então uma única execução pode usar significativamente mais tokens do que trabalhar através da mesma tarefa em conversa. As execuções contam para o uso do seu plano e limites de taxa como qualquer outra sessão.462Um fluxo de trabalho spawna muitos agentes, então uma única execução pode usar significativamente mais tokens do que trabalhar através da mesma tarefa em conversa. As execuções contam para o uso do seu plano e limites de taxa.

448 463 

449Para avaliar o gasto antes de se comprometer com uma tarefa grande, execute o fluxo de trabalho em um pequeno recorte primeiro: um diretório em vez de todo o repositório, ou uma pergunta estreita em vez de uma ampla. A visualização `/workflows` mostra o uso de tokens de cada agente conforme a execução progride, e você pode parar a execução lá a qualquer momento, geralmente sem perder o trabalho concluído. [Retomar após uma pausa](#resume-after-a-pause) cobre o que uma execução parada mantém. Os [limites de agente](#behavior-and-limits) do runtime limitam quantos agentes uma única execução pode spawnar, o que limita o custo de um script descontrolado. Para manter execuções com menos agentes, escolha a diretriz de tamanho `small` [](#set-a-size-guideline).464Para avaliar o gasto antes de se comprometer com uma tarefa grande, execute o fluxo de trabalho em um pequeno recorte primeiro: um diretório em vez de todo o repositório, ou uma pergunta estreita em vez de uma ampla. A visualização `/workflows` mostra o uso de tokens de cada agente conforme a execução progride, e você pode parar a execução lá a qualquer momento, geralmente sem perder o trabalho concluído. [Retomar após uma pausa](#resume-after-a-pause) cobre o que uma execução parada mantém. Os [limites de agente](#behavior-and-limits) do runtime limitam quantos agentes uma única execução pode spawnar, o que limita o custo de um script descontrolado. Para manter execuções com menos agentes, escolha a diretriz de tamanho `small` [](#set-a-size-guideline).

450 465 


476| :------------- | :---------------------------------------------------------------- |491| :------------- | :---------------------------------------------------------------- |

477| `unrestricted` | Sem diretriz: Claude dimensiona o fluxo de trabalho para a tarefa |492| `unrestricted` | Sem diretriz: Claude dimensiona o fluxo de trabalho para a tarefa |

478| `small` | Menos de 5 agentes |493| `small` | Menos de 5 agentes |

479| `medium` | Menos de 15 agentes |494| `medium` | Menos de 10 agentes |

480| `large` | Menos de 50 agentes |495| `large` | Menos de 50 agentes |

481 496 

482O padrão é `medium`. Até você escolher um valor, a linha `/config` mostra `medium (default)` e a linha `Running in background` do fluxo de trabalho mostra `medium size (/config)`. Requer Claude Code v2.1.219 ou posterior; versões anteriores padrão para `unrestricted`.497O padrão é `medium`, ou `small` quando você está conectado em um plano Pro com Claude Code v2.1.271 ou posterior. Até você escolher um valor, a linha `/config` marca o valor como padrão, e a linha `Running in background` do fluxo de trabalho nomeia o tamanho em vigor. Requer Claude Code v2.1.219 ou posterior; versões anteriores padrão para `unrestricted`.

483 498 

484Para alterar a diretriz, escolha um valor para a configuração Dynamic workflow size em `/config`, ou execute `/config workflowSizeGuideline=small`. Na v2.1.219 e posterior, você também pode definir a chave [`workflowSizeGuideline`](/docs/pt/settings-reference#workflowsizeguideline) em qualquer arquivo de configurações; esse valor tem precedência sobre `/config`, e Claude Code oculta a linha `/config` enquanto um arquivo de configurações fornece um.499Para alterar a diretriz, escolha um valor para a configuração Dynamic workflow size em `/config`, ou execute `/config workflowSizeGuideline=small`. Na v2.1.219 e posterior, você também pode definir a chave [`workflowSizeGuideline`](/docs/pt/settings-reference#workflowsizeguideline) em qualquer arquivo de configurações; esse valor tem precedência sobre `/config`, e Claude Code oculta a linha `/config` enquanto um arquivo de configurações fornece um.

485 500 

worktrees.md +5 −2

Details

139Quando você [coloca em segundo plano](/docs/pt/agent-view#send-the-session-to-the-background) uma sessão `--worktree`, sua worktree se torna uma worktree de sessão em segundo plano que a varredura pode remover. A varredura deixa uma worktree no lugar nestes casos:139Quando você [coloca em segundo plano](/docs/pt/agent-view#send-the-session-to-the-background) uma sessão `--worktree`, sua worktree se torna uma worktree de sessão em segundo plano que a varredura pode remover. A varredura deixa uma worktree no lugar nestes casos:

140 140 

141* A worktree ainda contém trabalho: arquivos alterados ou não rastreados, ou commits não enviados.141* A worktree ainda contém trabalho: arquivos alterados ou não rastreados, ou commits não enviados.

142* Claude Code não pode determinar quais drivers de filtro a configuração do repositório define, em qualquer um dos [três casos que também bloqueiam a criação de worktree](#git-lfs-content-is-missing-from-a-worktree-claude-code-created).142* Um dos [quatro casos que também bloqueiam a criação de worktree](#git-lfs-content-is-missing-from-a-worktree-claude-code-created) se aplica: Claude Code não pode determinar quais drivers de filtro a configuração do repositório define, ou encontra uma configuração lá que não pode desativar.

143* A worktree pertence a uma sessão `--worktree` que você não colocou em segundo plano, qualquer que seja sua idade.143* A worktree pertence a uma sessão `--worktree` que você não colocou em segundo plano, qualquer que seja sua idade.

144* Você criou a worktree você mesmo com `git worktree add`, mesmo que depois tenha executado uma sessão `--worktree <name>` nela e colocado essa sessão em segundo plano.144* Você criou a worktree você mesmo com `git worktree add`, mesmo que depois tenha executado uma sessão `--worktree <name>` nela e colocado essa sessão em segundo plano.

145 145 


353 353 

354Para obter os arquivos reais, execute `git lfs pull` dentro da worktree.354Para obter os arquivos reais, execute `git lfs pull` dentro da worktree.

355 355 

356Em três casos raros, Claude Code não pode dizer quais drivers de filtro a configuração do repositório define, e não cria nenhuma worktree. Corresponda o erro à sua correção:356Em quatro casos raros, Claude Code não cria nenhuma worktree: não consegue dizer quais drivers de filtro a configuração do repositório define, ou encontra uma configuração lá que não consegue desativar. Corresponda o erro à sua correção:

357 357 

358* **`Could not read the repository git config to neutralize filter drivers`**: Claude Code não conseguiu ler o `.git/config` do repositório, por exemplo por causa de suas permissões. Corrija isso e tente novamente.358* **`Could not read the repository git config to neutralize filter drivers`**: Claude Code não conseguiu ler o `.git/config` do repositório, por exemplo por causa de suas permissões. Corrija isso e tente novamente.

359* **`The repository git config defines a filter driver whose name cannot be neutralized (contains "=" or a newline)`**: renomeie ou remova esse driver de filtro em `.git/config` e tente novamente.359* **`The repository git config defines a filter driver whose name cannot be neutralized (contains "=" or a newline)`**: renomeie ou remova esse driver de filtro em `.git/config` e tente novamente.

360* **`The repository git config has a conditional include (includeIf)`**: mova as configurações que o `includeIf` em `.git/config` puxa diretamente para esse arquivo, remova o `includeIf`, e tente novamente. Um `includeIf` em sua configuração git global não dispara isso.360* **`The repository git config has a conditional include (includeIf)`**: mova as configurações que o `includeIf` em `.git/config` puxa diretamente para esse arquivo, remova o `includeIf`, e tente novamente. Um `includeIf` em sua configuração git global não dispara isso.

361* **`Git was not run: the repository's own git config sets <key>`**: a mensagem nomeia uma chave que aponta Git LFS para um programa a executar, como `lfs.customtransfer.<name>.path` ou `lfs.standalonetransferagent`. Se essa configuração é sua, mova-a para sua configuração git global. Se você não a reconhecer, remova-a da configuração git do repositório, já que uma ferramenta ou checkout que você não confia pode tê-la escrito. Tente novamente uma vez que a chave tenha desaparecido da configuração do repositório.

361 362 

362<h3 id="claude-code-refuses-to-use-a-worktree">363<h3 id="claude-code-refuses-to-use-a-worktree">

363 Claude Code recusa usar uma worktree364 Claude Code recusa usar uma worktree


406 407 

407O final de recusa incorporado em cada erro é compartilhado com os avisos interativos, então ainda corresponde à sua entrada em [Claude Code recusa usar uma worktree](#claude-code-refuses-to-use-a-worktree).408O final de recusa incorporado em cada erro é compartilhado com os avisos interativos, então ainda corresponde à sua entrada em [Claude Code recusa usar uma worktree](#claude-code-refuses-to-use-a-worktree).

408 409 

410No resultado stream-json, [`startup_failure_reason`](/docs/pt/agent-sdk/typescript#startup_failure_reason) é `worktree_unverified` para o erro `could not verify worktree` e `worktree_resume_refused` para os erros `cannot resume into worktree` e `The worktree binding is kept`. Uma aplicação pode ramificar-se nele em vez de corresponder ao texto do erro. Antes da v2.1.274, o resultado não carregava nenhum campo `startup_failure_reason`.

411 

409<h2 id="see-also">412<h2 id="see-also">

410 Veja também413 Veja também

411</h2>414</h2>

Details

64Quando ZDR está ativado para uma organização do Claude Code no Claude for Enterprise, certos recursos que requerem armazenamento de prompts ou conclusões são automaticamente desabilitados no nível do backend:64Quando ZDR está ativado para uma organização do Claude Code no Claude for Enterprise, certos recursos que requerem armazenamento de prompts ou conclusões são automaticamente desabilitados no nível do backend:

65 65 

66| Recurso | Motivo |66| Recurso | Motivo |

67| ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |67| ---------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |

68| [Claude Code na Web](/docs/pt/claude-code-on-the-web) | Requer armazenamento no servidor do histórico de conversas. |68| [Sessões na nuvem](/docs/pt/claude-code-on-the-web), incluindo aquelas iniciadas a partir do [aplicativo Desktop](/docs/pt/desktop#cloud-sessions) | Requer armazenamento no servidor de dados de sessão, incluindo histórico de conversas com prompts e conclusões. |

69| [Sessões remotas](/docs/pt/desktop#cloud-sessions) do aplicativo Desktop | Requer dados de sessão persistentes que incluem prompts e conclusões. |

70| [Claude Tag](/docs/pt/claude-tag) | Retém memória de canal e transcrições de sessão. |69| [Claude Tag](/docs/pt/claude-tag) | Retém memória de canal e transcrições de sessão. |

71| [Artefatos](/docs/pt/artifacts) | Requer armazenamento de conteúdo de página publicado na infraestrutura operada pela Anthropic. |70| [Artefatos](/docs/pt/artifacts) | Requer armazenamento de conteúdo de página publicado na infraestrutura operada pela Anthropic. |

72| Envio de feedback (`/feedback`, `/bug`, `/share`) | Enviar feedback envia dados de conversas para a Anthropic. |71| Envio de feedback (`/feedback`, `/bug`, `/share`) | Enviar feedback envia dados de conversas para a Anthropic. |