SpyBara
Go Premium

Documentation 2026-10-06 23:59 UTC to 2026-10-07 19:00 UTC

54 files changed +568 −514. View all changes and history on the product overview
2026
Wed 7 20:01 Tue 6 23:59 Mon 5 23:58 Sun 4 23:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59

agent-sdk/hooks.md +10 −10

Details

140 ```140 ```

141</CodeGroup>141</CodeGroup>

142 142 

143Quando você executa qualquer um dos scripts, Claude tenta criar o arquivo `.env`, o hook nega a chamada da ferramenta e a resposta final do Claude explica que ele não pode criar arquivos `.env`.143Quando você executa qualquer um dos scripts, Claude tenta criar o arquivo `.env` e o hook nega a chamada de ferramenta.

144 144 

145<h2 id="available-hooks">145<h2 id="available-hooks">

146 Hooks disponíveis146 Hooks disponíveis


179| `ConfigChange` | Não | Sim | Arquivo de configuração muda | Recarregar configurações dinamicamente |179| `ConfigChange` | Não | Sim | Arquivo de configuração muda | Recarregar configurações dinamicamente |

180| `InstructionsLoaded` | Não | Sim | Um arquivo `CLAUDE.md` ou arquivo de regras é carregado no contexto | Auditar quais arquivos de instrução são carregados |180| `InstructionsLoaded` | Não | Sim | Um arquivo `CLAUDE.md` ou arquivo de regras é carregado no contexto | Auditar quais arquivos de instrução são carregados |

181| `WorktreeCreate` | Não | Sim | Git worktree criado | Rastrear espaços de trabalho isolados |181| `WorktreeCreate` | Não | Sim | Git worktree criado | Rastrear espaços de trabalho isolados |

182| `WorktreeRemove` | Não | Sim | Git worktree removido | Limpar recursos de espaço de trabalho |182| `WorktreeRemove` | Não | Sim | Um worktree criado por um hook `WorktreeCreate` está sendo removido | Limpar recursos de espaço de trabalho |

183| `CwdChanged` | Não | Sim | O diretório de trabalho muda durante uma sessão | Recarregar variáveis de ambiente por diretório |183| `CwdChanged` | Não | Sim | O diretório de trabalho muda durante uma sessão | Recarregar variáveis de ambiente por diretório |

184| `FileChanged` | Não | Sim | Um arquivo monitorado é modificado, criado ou deletado | Recarregar configuração quando arquivos do projeto mudam |184| `FileChanged` | Não | Sim | Um arquivo monitorado é modificado, criado ou deletado | Recarregar configuração quando arquivos do projeto mudam |

185| `DirectoryAdded` | Não | Sim | Um diretório de trabalho é adicionado durante uma sessão | Instalar dependências para um repositório adicionado no meio da sessão |185| `DirectoryAdded` | Não | Sim | Um diretório de trabalho é adicionado durante uma sessão | Instalar dependências para um repositório adicionado no meio da sessão |


262* **Campos de nível superior** são aceitos em cada evento: `systemMessage` mostra uma mensagem ao usuário, e `continue` (`continue_` em Python) determina se o agente continua executando após este hook. Alguns eventos descartam-nos ou os entregam em outro lugar. A seção de cada [evento](/docs/pt/hooks#hook-events) na página de hooks diz onde eles chegam.262* **Campos de nível superior** são aceitos em cada evento: `systemMessage` mostra uma mensagem ao usuário, e `continue` (`continue_` em Python) determina se o agente continua executando após este hook. Alguns eventos descartam-nos ou os entregam em outro lugar. A seção de cada [evento](/docs/pt/hooks#hook-events) na página de hooks diz onde eles chegam.

263* **`hookSpecificOutput`** controla a operação atual. Os campos que você define dentro dependem do tipo de evento de hook:263* **`hookSpecificOutput`** controla a operação atual. Os campos que você define dentro dependem do tipo de evento de hook:

264 * Para hooks `PreToolUse`, é aqui que você define `permissionDecision` (`"allow"`, `"deny"`, `"ask"` ou `"defer"`), `permissionDecisionReason` e `updatedInput`. Se você retornar `"defer"`, o turno termina com uma mensagem de resultado cujo `stop_reason` é `"tool_deferred"`, para que você possa [retomar a chamada depois](/docs/pt/hooks#defer-a-tool-call-for-later).264 * Para hooks `PreToolUse`, é aqui que você define `permissionDecision` (`"allow"`, `"deny"`, `"ask"` ou `"defer"`), `permissionDecisionReason` e `updatedInput`. Se você retornar `"defer"`, o turno termina com uma mensagem de resultado cujo `stop_reason` é `"tool_deferred"`, para que você possa [retomar a chamada depois](/docs/pt/hooks#defer-a-tool-call-for-later).

265 * Para hooks `PostToolUse`, você pode definir `additionalContext` para anexar informações ao resultado da ferramenta. Para substituir a saída da ferramenta antes de Claude vê-la, defina `updatedToolOutput`, que funciona para qualquer ferramenta em ambos os SDKs. O campo mais antigo `updatedMCPToolOutput` substitui apenas a saída de ferramentas MCP e está descontinuado.265 * Para hooks `PostToolUse`, você pode definir `additionalContext` para anexar informações ao resultado da ferramenta. Para substituir a saída da ferramenta antes de Claude vê-la, defina `updatedToolOutput`, que funciona para qualquer ferramenta em ambos os SDKs. O campo mais antigo `updatedMCPToolOutput` substitui apenas a saída de ferramentas MCP.

266 * No SDK TypeScript, um callback `PostToolUse` também pode retornar `classifierContext`, uma nota breve sobre o resultado da chamada de ferramenta para o classificador de permissão do [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode). Como seu callback é executado no próprio processo de sua aplicação, o classificador pode pesar uma declaração de usuário que você transmite na nota como intenção do usuário. O campo requer Agent SDK TypeScript v0.3.236 ou posterior. [Anotar um resultado para o classificador do modo auto](/docs/pt/hooks#annotate-a-result-for-the-auto-mode-classifier) cobre o limite de comprimento, a regra somente síncrona e o que não colocar na nota.266 * No SDK TypeScript, um callback `PostToolUse` também pode retornar `classifierContext`, uma nota breve sobre o resultado da chamada de ferramenta para o classificador de permissão do [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode). Como seu callback é executado no próprio processo de sua aplicação, o classificador pode pesar uma declaração de usuário que você transmite na nota como intenção do usuário. O campo requer Agent SDK TypeScript v0.3.236 ou posterior. [Anotar um resultado para o classificador do modo auto](/docs/pt/hooks#annotate-a-result-for-the-auto-mode-classifier) cobre o limite de comprimento, a regra somente síncrona e o que não colocar na nota.

267 267 

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


832 832 

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

834 834 

835* `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.835* `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 o turno 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.

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

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

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

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


851</h3>851</h3>

852 852 

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

854* Adicione registro aos seus hooks para ver qual `permissionDecisionReason` eles estão retornando854* Adicione logs aos seus hooks para ver qual `permissionDecisionReason` eles estão retornando

855* Verifique se padrões de matcher não são muito amplos: um matcher vazio corresponde a todas as ferramentas855* Verifique se padrões de matcher não são muito amplos: um matcher vazio corresponde a todas as ferramentas

856 856 

857<h3 id="modified-input-not-applied">857<h3 id="modified-input-not-applied">


878 Hooks de sessão não disponíveis em Python878 Hooks de sessão não disponíveis em Python

879</h3>879</h3>

880 880 

881`SessionStart` e `SessionEnd` podem ser registrados como hooks de callback do SDK em TypeScript, mas não estão disponíveis no SDK Python porque seu tipo `HookEvent` os omite. Em Python, eles estão disponíveis apenas como [hooks de comando shell](/docs/pt/hooks#hook-events) definidos em arquivos de configuração como `.claude/settings.json`. Para carregar hooks de comando shell de sua aplicação SDK, inclua a fonte de configuração apropriada com [`setting_sources`](/docs/pt/agent-sdk/python#settingsource) ou [`settingSources`](/docs/pt/agent-sdk/typescript#settingsource):881`SessionStart` e `SessionEnd` podem ser registrados como hooks de callback do SDK em TypeScript, mas não estão disponíveis no SDK Python porque seu tipo `HookEvent` os omite. Em Python, eles estão disponíveis apenas como [hooks de comando shell](/docs/pt/hooks#hook-events) definidos em arquivos de configuração como `.claude/settings.json`. Quais arquivos de configuração sua aplicação SDK carrega depende de [`setting_sources`](/docs/pt/agent-sdk/python#settingsource) ou [`settingSources`](/docs/pt/agent-sdk/typescript#settingsource). Se você definir essa opção, inclua a fonte que contém os hooks:

882 882 

883<CodeGroup>883<CodeGroup>

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


894 ```894 ```

895</CodeGroup>895</CodeGroup>

896 896 

897Para executar lógica de inicialização como um callback do SDK Python, use a primeira mensagem de `client.receive_response()` como seu gatilho.897Para executar lógica de inicialização como um callback do SDK Python em vez disso, use a primeira mensagem de `client.receive_response()` como seu gatilho.

898 898 

899<h3 id="subagent-permission-prompts-multiplying">899<h3 id="subagent-permission-prompts-multiplying">

900 Prompts de permissão de subagente se multiplicando900 Prompts de permissão de subagente se multiplicando


909Um hook `UserPromptSubmit` que gera subagentes pode criar loops infinitos se esses subagentes acionarem o mesmo hook. Para evitar isso:909Um hook `UserPromptSubmit` que gera subagentes pode criar loops infinitos se esses subagentes acionarem o mesmo hook. Para evitar isso:

910 910 

911* Use uma variável compartilhada ou estado de sessão para rastrear se você já está dentro de um subagente911* Use uma variável compartilhada ou estado de sessão para rastrear se você já está dentro de um subagente

912* Escopo hooks para executar apenas para a sessão de agente de nível superior912* Restrinja os hooks para executar apenas na sessão de agente de nível superior

913 913 

914<h3 id="systemmessage-not-appearing-in-output">914<h3 id="systemmessage-not-appearing-in-output">

915 systemMessage não aparecendo na saída915 systemMessage não aparecendo na saída

916</h3>916</h3>

917 917 

918O campo `systemMessage` mostra uma mensagem ao usuário, não ao modelo. No Claude Code v2.1.227 ou posterior, o `systemMessage` de um hook pode aparecer no fluxo de mensagens como uma [`SDKInformationalMessage`](/docs/pt/agent-sdk/typescript#sdkinformationalmessage). Se aparece ou não depende do evento. Cada [seção de evento](/docs/pt/hooks#hook-events) na página de hooks diz como a saída aparece. Para passar contexto ao modelo, retorne [`additionalContext`](/docs/pt/hooks#add-context-for-claude).918O campo `systemMessage` mostra uma mensagem ao usuário, não ao modelo. No Claude Code v2.1.227 ou posterior, o `systemMessage` de um hook pode aparecer no fluxo de mensagens como uma [`SDKInformationalMessage`](/docs/pt/agent-sdk/typescript#sdkinformationalmessage). Se aparece ou não depende do evento. Cada [seção de evento](/docs/pt/hooks#hook-events) na página de hooks diz como a saída aparece. Para passar contexto ao modelo em vez disso, retorne [`additionalContext`](/docs/pt/hooks#add-context-for-claude).

919 919 

920Antes da v2.1.227, o SDK expunha a saída de hook no fluxo de mensagens apenas para hooks `SessionStart` e `Setup`. Para qualquer outro evento, a saída aparecia apenas nos eventos de ciclo de vida que [`includeHookEvents`](/docs/pt/agent-sdk/typescript#options) (`include_hook_events` em Python) adiciona. A entrada dessa opção cobre quais eventos de ciclo de vida cada evento de hook produz.920Antes da v2.1.227, o SDK expunha a saída de hook no fluxo de mensagens apenas para hooks `SessionStart` e `Setup`. Para qualquer outro evento, a saída aparecia apenas nos eventos de ciclo de vida que [`includeHookEvents`](/docs/pt/agent-sdk/typescript#options) (`include_hook_events` em Python) adiciona. A entrada dessa opção cobre quais eventos de ciclo de vida cada evento de hook produz.

921 921 

Details

194 `ToolAnnotations`194 `ToolAnnotations`

195</h4>195</h4>

196 196 

197Dicas de comportamento para uma ferramenta, passadas como o argumento `annotations` de [`tool()`](#tool). `ToolAnnotations` estende o `mcp.types.ToolAnnotations` do SDK MCP com um campo `maxResultSizeChars`, e você pode escrever cada dica em camelCase ou snake\_case: `ToolAnnotations(readOnlyHint=True)` e `ToolAnnotations(read_only_hint=True)` são equivalentes. Você também pode passar um `mcp.types.ToolAnnotations` simples onde o SDK aceita anotações.197Dicas de comportamento para uma ferramenta, passadas como o argumento `annotations` de [`tool()`](#tool). `ToolAnnotations` estende o `mcp.types.ToolAnnotations` do SDK MCP com um campo `maxResultSizeChars`, e você pode escrever cada dica em camelCase ou snake\_case: `ToolAnnotations(readOnlyHint=True)` e `ToolAnnotations(read_only_hint=True)` são equivalentes. Para ler uma dica de volta a partir do objeto, use a grafia que o seu pacote `mcp` instalado declara: `.readOnlyHint` no `mcp` 1.x e `.read_only_hint` no 2.x, enquanto `.maxResultSizeChars` funciona em ambos. Você também pode passar um `mcp.types.ToolAnnotations` simples onde o SDK aceita anotações.

198 198 

199Os nomes snake\_case e o campo `maxResultSizeChars` tipado requerem Python Agent SDK 0.2.140 ou posterior. As versões 0.1.31 a 0.2.139 re-exportam `mcp.types.ToolAnnotations` inalterado. Nas versões 0.1.55 a 0.2.139 você ainda pode passar `maxResultSizeChars` como um argumento de palavra-chave: a classe MCP aceita campos extras, e o SDK encaminha o valor para Claude Code.199Os nomes snake\_case e o campo `maxResultSizeChars` tipado requerem Python Agent SDK 0.2.140 ou posterior. As versões 0.1.31 a 0.2.139 re-exportam `mcp.types.ToolAnnotations` inalterado. Nas versões 0.1.55 a 0.2.139 você ainda pode passar `maxResultSizeChars` como um argumento de palavra-chave: a classe MCP aceita campos extras, e o SDK encaminha o valor para Claude Code.

200 200 


321| `summary` | `str` | Título de exibição: título personalizado, prompt mais recente, resumo gerado automaticamente ou primeiro prompt |321| `summary` | `str` | Título de exibição: título personalizado, prompt mais recente, resumo gerado automaticamente ou primeiro prompt |

322| `last_modified` | `int` | Hora da última modificação em milissegundos desde a época |322| `last_modified` | `int` | Hora da última modificação em milissegundos desde a época |

323| `file_size` | `int \| None` | Tamanho do arquivo de sessão em bytes (`None` para backends de armazenamento remoto) |323| `file_size` | `int \| None` | Tamanho do arquivo de sessão em bytes (`None` para backends de armazenamento remoto) |

324| `custom_title` | `str \| None` | Título de sessão definido pelo usuário |324| `custom_title` | `str \| None` | Título da sessão: o título definido pelo usuário, ou o título gerado automaticamente quando nenhum estiver definido |

325| `first_prompt` | `str \| None` | Primeiro prompt de usuário significativo na sessão |325| `first_prompt` | `str \| None` | Primeiro prompt de usuário significativo na sessão |

326| `git_branch` | `str \| None` | Branch Git no final da sessão |326| `git_branch` | `str \| None` | Branch Git no final da sessão |

327| `cwd` | `str \| None` | Diretório de trabalho para a sessão |327| `cwd` | `str \| None` | Diretório de trabalho para a sessão |


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

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

930| `max_turns` | `int \| None` | `None` | Máximo de turnos agênticos (rodadas de uso de ferramentas) |930| `max_turns` | `int \| None` | `None` | Máximo de turnos agênticos (rodadas de uso de ferramentas) |

931| `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) |931| `max_budget_usd` | `float \| None` | `None` | Parar a consulta quando a estimativa de custo do lado do cliente atingir este valor em USD. Conta apenas o gasto da própria chamada; totais restaurados de uma sessão retomada não contam. Para ressalvas de precisão e comportamento de redefinição, veja [Rastrear custo e uso](/docs/pt/agent-sdk/cost-tracking) |

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

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

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


945| `max_buffer_size` | `int \| None` | `None` | Máximo de bytes ao fazer buffer da stdout da CLI |945| `max_buffer_size` | `int \| None` | `None` | Máximo de bytes ao fazer buffer da stdout da CLI |

946| `debug_stderr` | `Any` | `sys.stderr` | *Descontinuado* - O SDK ignora este valor. Use o callback `stderr` para saída stderr da CLI |946| `debug_stderr` | `Any` | `sys.stderr` | *Descontinuado* - O SDK ignora este valor. Use o callback `stderr` para saída stderr da CLI |

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

948| `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 |948| `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 aprovadas automaticamente 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 |

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

950| `user` | `str \| None` | `None` | Em plataformas POSIX, a conta de usuário do SO em que o subprocesso Claude Code é executado. Claude Code mantém o ambiente do processo pai, incluindo `HOME`, e é executado em `cwd` |950| `user` | `str \| None` | `None` | Em plataformas POSIX, a conta de usuário do SO em que o subprocesso Claude Code é executado. Claude Code mantém o ambiente do processo pai, incluindo `HOME`, e é executado em `cwd` |

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


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

954| `verbatim_prompts` | `bool` | `False` | Entregar cada prompt conforme escrito. O SDK envia cada mensagem do usuário com `client_composed` definido como `True`. Veja [`client_composed`](/docs/pt/agent-sdk/typescript#sdkusermessage) para o que Claude Code pula nessas mensagens. Use esta opção quando seu texto de prompt incluir conteúdo que o usuário final não digitou. Para controle por turno, deixe desativado e defina `"client_composed": True` em mensagens individuais transmitidas em vez disso. Enquanto a opção está ativada, o SDK sobrescreve qualquer valor `client_composed` que você definir. Requer Python Agent SDK 0.2.158 ou posterior e Claude Code v2.1.248 ou posterior; a CLI agrupada com essas versões do SDK satisfaz o requisito do Claude Code |954| `verbatim_prompts` | `bool` | `False` | Entregar cada prompt conforme escrito. O SDK envia cada mensagem do usuário com `client_composed` definido como `True`. Veja [`client_composed`](/docs/pt/agent-sdk/typescript#sdkusermessage) para o que Claude Code pula nessas mensagens. Use esta opção quando seu texto de prompt incluir conteúdo que o usuário final não digitou. Para controle por turno, deixe desativado e defina `"client_composed": True` em mensagens individuais transmitidas em vez disso. Enquanto a opção está ativada, o SDK sobrescreve qualquer valor `client_composed` que você definir. Requer Python Agent SDK 0.2.158 ou posterior e Claude Code v2.1.248 ou posterior; a CLI agrupada com essas versões do SDK satisfaz o requisito do Claude Code |

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

956| `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 |956| `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 criar um branch a partir de um ponto anterior. Requer Python Agent SDK 0.2.137 ou posterior |

957| `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 |957| `resume_drops_turn` | `str \| None` | `None` | UUID do prompt do usuário cujo turno uma truncagem `resume_session_at` descarta. Quando definido, a CLI recusa o retorno 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; a CLI agrupada com essas versões do SDK satisfaz o requisito do Claude Code |

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

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

960| `sandbox` | [`SandboxSettings`](#sandboxsettings) ` \| None` | `None` | Configurar comportamento de sandbox programaticamente. Veja [Configurações de sandbox](#sandboxsettings) para detalhes |960| `sandbox` | [`SandboxSettings`](#sandboxsettings) ` \| None` | `None` | Configurar comportamento de sandbox programaticamente. Veja [Configurações de sandbox](#sandboxsettings) para detalhes |


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

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

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

967| `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` |967| `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 turno ou quando o buffer enche; `"eager"` dispara um flush em segundo plano após cada frame. Ignorado quando `session_store` é `None` |

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

969| `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>}`. |969| `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>}`. |

970 970 


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

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

992 992 

993 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.993 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 segundo plano, também marca a tarefa como falhada e anexa qualquer resultado parcial.

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

995 995 

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


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

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

1188 1188 

1189Opçõ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.1189Opções programáticas como `agents`, `allowed_tools`, e `settings` sobrescrevem 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.

1190 1190 

1191<h3 id="agentdefinition">1191<h3 id="agentdefinition">

1192 `AgentDefinition`1192 `AgentDefinition`


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

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

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

1227| `background` | Não | Executar este agente como uma tarefa em background não-bloqueante quando invocado |1227| `background` | Não | Executar este agente como uma tarefa em segundo plano não-bloqueante quando invocado |

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

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

1230 1230 


1245 "plan", # Modo de planejamento - explorar sem editar1245 "plan", # Modo de planejamento - explorar sem editar

1246 "dontAsk", # Negar qualquer coisa não pré-aprovada em vez de solicitar1246 "dontAsk", # Negar qualquer coisa não pré-aprovada em vez de solicitar

1247 "bypassPermissions", # Contornar verificações de permissão; regras de ask explícitas ainda solicitam (use com cuidado)1247 "bypassPermissions", # Contornar verificações de permissão; regras de ask explícitas ainda solicitam (use com cuidado)

1248 "auto", # Classificador de modelo aprova ou nega prompts de permissão1248 "auto", # Um classificador de modelo revisa ações como comandos de shell e requisições de rede

1249]1249]

1250```1250```

1251 1251 


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

1315| `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. |1315| `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. |

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

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

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

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

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


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

1466| `disabled` | `type` | Desabilitar pensamento |1466| `disabled` | `type` | Desabilitar pensamento |

1467 1467 

1468O 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"`.1468O 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 omite `display` das requisições para alguns provedores, como Amazon Bedrock e Google Cloud's Agent Platform. Nesses provedores, Opus 4.7 e posterior retornam saídas `ThinkingBlock` vazias mesmo quando você define `display` como `"summarized"`.

1469 1469 

1470Como 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`:1470Como 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`:

1471 1471 


1660 apiUsage: NotRequired[dict[str, Any] | None]1660 apiUsage: NotRequired[dict[str, Any] | None]

1661```1661```

1662 1662 

1663Cada entrada `ContextUsageCategory` carrega `name`, `tokens`, `color`, e uma flag `isDeferred` opcional. `totalTokens` é o uso de contexto atual da sessão, e `maxTokens` é a janela contra a qual o uso é medido. Essa janela é a janela de contexto do modelo, ou a janela de auto-compactação mais baixa quando uma se aplica, e `rawMaxTokens` carrega o mesmo valor que `maxTokens`. `apiUsage` contém o uso da resposta de API mais recente, não um total em execução para a sessão. Claude Code deixa as chaves opcionais `deferredBuiltinTools`, `systemTools`, e `systemPromptSections` não definidas, então espere que elas estejam ausentes mesmo que o tipo as declare.1663Cada entrada `ContextUsageCategory` carrega `name`, `tokens`, `color`, e uma flag `isDeferred` opcional. `totalTokens` é o uso de contexto atual da sessão, e `maxTokens` é a janela contra a qual o uso é medido. Essa janela é a janela de contexto do modelo, ou a janela de compactação automática mais baixa quando uma se aplica, e `rawMaxTokens` carrega o mesmo valor que `maxTokens`. `apiUsage` contém o uso da resposta de API mais recente, não um total em execução para a sessão. Claude Code deixa as chaves opcionais `deferredBuiltinTools`, `systemTools`, e `systemPromptSections` não definidas, então espere que elas estejam ausentes mesmo que o tipo as declare.

1664 1664 

1665<h3 id="sdkpluginconfig">1665<h3 id="sdkpluginconfig">

1666 `SdkPluginConfig`1666 `SdkPluginConfig`


1845* `result`: texto da mensagem final do assistente em `subtype="success"`, ou `None` nos subtipos `error_*`. Quando `subtype="success"` e `is_error=True`, isso contém a string de erro da API se uma estiver disponível mas pode estar vazio, então verifique `api_error_status` e o conteúdo anterior de `AssistantMessage` para detalhes.1845* `result`: texto da mensagem final do assistente em `subtype="success"`, ou `None` nos subtipos `error_*`. Quando `subtype="success"` e `is_error=True`, isso contém a string de erro da API se uma estiver disponível mas pode estar vazio, então verifique `api_error_status` e o conteúdo anterior de `AssistantMessage` para detalhes.

1846* `errors`: strings de erro no nível do loop, como a mensagem de máximo de turnos. Preenchido apenas nos subtipos `error_*`.1846* `errors`: strings de erro no nível do loop, como a mensagem de máximo de turnos. Preenchido apenas nos subtipos `error_*`.

1847* `terminal_reason`: por que o loop de consulta terminou, como `"completed"`, `"max_turns"`, `"api_error"`, `"aborted_streaming"` ou `"aborted_tools"`. Um valor de `"aborted_streaming"` ou `"aborted_tools"` significa que o turno foi abortado antes de ser concluído. As causas comuns são [`interrupt()`](#claudesdkclient) e um callback de permissão retornando [`PermissionResultDeny`](#permissionresultdeny) com `interrupt=True`. `None` em versões da CLI que antecedem o campo, em resultados de comandos locais como `/voice` ou `/usage`, que contornam o loop de consulta, ou em resultados de erro sintetizados emitidos quando a sessão falha fatalmente. Espelha o [`SDKResultMessage.terminal_reason`](/docs/pt/agent-sdk/typescript#sdkresultmessage) do SDK TypeScript, que lista o conjunto completo de valores.1847* `terminal_reason`: por que o loop de consulta terminou, como `"completed"`, `"max_turns"`, `"api_error"`, `"aborted_streaming"` ou `"aborted_tools"`. Um valor de `"aborted_streaming"` ou `"aborted_tools"` significa que o turno foi abortado antes de ser concluído. As causas comuns são [`interrupt()`](#claudesdkclient) e um callback de permissão retornando [`PermissionResultDeny`](#permissionresultdeny) com `interrupt=True`. `None` em versões da CLI que antecedem o campo, em resultados de comandos locais como `/voice` ou `/usage`, que contornam o loop de consulta, ou em resultados de erro sintetizados emitidos quando a sessão falha fatalmente. Espelha o [`SDKResultMessage.terminal_reason`](/docs/pt/agent-sdk/typescript#sdkresultmessage) do SDK TypeScript, que lista o conjunto completo de valores.

1848* `origin`: origem da mensagem do usuário que acionou este turno. Em [modo de entrada de streaming](/docs/pt/agent-sdk/streaming-vs-single-mode), verifique isso para distinguir o resultado do seu próprio prompt, onde `origin` é `None` ou `{"kind": "human"}`, do resultado de um turno injetado, como uma notificação de tarefa de fundo. Requer Python Agent SDK 0.2.137 ou posterior.1848* `origin`: origem da mensagem do usuário que acionou este turno. Em [modo de entrada de streaming](/docs/pt/agent-sdk/streaming-vs-single-mode), verifique isso para distinguir o resultado do seu próprio prompt, onde `origin` é `None` ou `{"kind": "human"}`, do resultado de um turno injetado, como uma notificação de tarefa em segundo plano. Requer Python Agent SDK 0.2.137 ou posterior.

1849 1849 

1850O dict `usage` cobre apenas o loop do agente principal e exclui subagentes e outras chamadas de modelo aninhadas ou auxiliares. Em [modo de entrada de streaming](/docs/pt/agent-sdk/streaming-vs-single-mode), os valores são por turno. Prefira `model_usage` para contabilidade de token e custo. O dict `usage` contém as seguintes chaves quando presentes:1850O dict `usage` cobre apenas o loop do agente principal e exclui subagentes e outras chamadas de modelo aninhadas ou auxiliares. Em [modo de entrada de streaming](/docs/pt/agent-sdk/streaming-vs-single-mode), os valores são por turno. Prefira `model_usage` para contabilidade de token e custo. O dict `usage` contém as seguintes chaves quando presentes:

1851 1851 


1875| `maxOutputTokens` | `int` | Limite máximo de token de saída para este modelo. |1875| `maxOutputTokens` | `int` | Limite máximo de token de saída para este modelo. |

1876| `canonicalModel` | `str` | ID de modelo canônico usado para a busca de preço. Pode diferir da string de modelo bruto pela qual a entrada é codificada, como um ID específico do provedor ou alias. Nem sempre presente. |1876| `canonicalModel` | `str` | ID de modelo canônico usado para a busca de preço. Pode diferir da string de modelo bruto pela qual a entrada é codificada, como um ID específico do provedor ou alias. Nem sempre presente. |

1877| `provider` | `str` | Provedor de API que serviu este modelo, como `firstParty`, `bedrock`, `vertex`, `foundry`, `anthropicAws`, `mantle` ou `gateway`. Nem sempre presente. |1877| `provider` | `str` | Provedor de API que serviu este modelo, como `firstParty`, `bedrock`, `vertex`, `foundry`, `anthropicAws`, `mantle` ou `gateway`. Nem sempre presente. |

1878| `costBasis` | `str` | Tabela de preços que precificou a requisição mais recente deste modelo: `list` para preço de tabela, `managed` para uma tabela [`modelPricing`](/docs/pt/settings-reference#modelpricing), ou `unknown` quando nenhuma correspondeu ao ID do modelo. Nem sempre presente, e não declarado no TypedDict, então leia com `.get()`. Requer Claude Code v2.1.246 ou posterior. |

1878 1879 

1879<h3 id="streamevent">1880<h3 id="streamevent">

1880 `StreamEvent`1881 `StreamEvent`


1978 `TaskStartedMessage`1979 `TaskStartedMessage`

1979</h3>1980</h3>

1980 1981 

1981Emitido quando uma tarefa de fundo começa. Uma tarefa de fundo é qualquer coisa rastreada fora do turno principal: um comando Bash em fundo, um watch de [Monitor](#monitor), um subagente gerado via ferramenta Agent, ou um agente remoto. O campo `task_type` diz qual. Esta nomenclatura não está relacionada à renomeação de ferramenta `Task`-para-`Agent`.1982Emitido quando uma tarefa em segundo plano começa. Uma tarefa em segundo plano é qualquer coisa rastreada fora do turno principal: um comando Bash em segundo plano, um watch de [Monitor](#monitor), um subagente gerado via ferramenta Agent, ou um agente remoto. O campo `task_type` diz qual. Esta nomenclatura não está relacionada à renomeação de ferramenta `Task`-para-`Agent`.

1982 1983 

1983```python theme={null}1984```python theme={null}

1984@dataclass1985@dataclass


1998| `uuid` | `str` | Identificador único de mensagem |1999| `uuid` | `str` | Identificador único de mensagem |

1999| `session_id` | `str` | Identificador de sessão |2000| `session_id` | `str` | Identificador de sessão |

2000| `tool_use_id` | `str \| None` | ID de uso de ferramenta associado |2001| `tool_use_id` | `str \| None` | ID de uso de ferramenta associado |

2001| `task_type` | `str \| None` | Que tipo de tarefa de fundo: `"local_bash"` para Bash em fundo e watches de Monitor, `"local_agent"`, ou `"remote_agent"` |2002| `task_type` | `str \| None` | Que tipo de tarefa em segundo plano: `"local_bash"` para Bash em segundo plano e watches de Monitor, `"local_agent"`, ou `"remote_agent"` |

2002 2003 

2003<h3 id="taskusage">2004<h3 id="taskusage">

2004 `TaskUsage`2005 `TaskUsage`

2005</h3>2006</h3>

2006 2007 

2007Dados de token e tempo para uma tarefa de fundo.2008Dados de token e tempo para uma tarefa em segundo plano.

2008 2009 

2009```python theme={null}2010```python theme={null}

2010class TaskUsage(TypedDict):2011class TaskUsage(TypedDict):


2017 `TaskProgressMessage`2018 `TaskProgressMessage`

2018</h3>2019</h3>

2019 2020 

2020Emitido periodicamente com atualizações de progresso para uma tarefa de fundo em execução.2021Emitido periodicamente com atualizações de progresso para uma tarefa em segundo plano em execução.

2021 2022 

2022```python theme={null}2023```python theme={null}

2023@dataclass2024@dataclass


2045 `TaskNotificationMessage`2046 `TaskNotificationMessage`

2046</h3>2047</h3>

2047 2048 

2048Emitido quando uma tarefa de fundo é concluída, falha ou é parada. Tarefas de fundo incluem comandos Bash `run_in_background`, watches de Monitor e subagentes em fundo.2049Emitido quando uma tarefa em segundo plano é concluída, falha ou é parada. Tarefas em segundo plano incluem comandos Bash `run_in_background`, watches de Monitor e subagentes em segundo plano.

2049 2050 

2050```python theme={null}2051```python theme={null}

2051@dataclass2052@dataclass


2071| `tool_use_id` | `str \| None` | ID de uso de ferramenta associado |2072| `tool_use_id` | `str \| None` | ID de uso de ferramenta associado |

2072| `usage` | `TaskUsage \| None` | Uso de token final para a tarefa |2073| `usage` | `TaskUsage \| None` | Uso de token final para a tarefa |

2073 2074 

2074Quando a CLI [move uma chamada de ferramenta MCP longa para o fundo](/docs/pt/mcp#automatic-backgrounding-of-long-tool-calls), o resultado da ferramenta para essa chamada contém apenas um espaço reservado e o resultado real da chamada chega nesta mensagem. Em uma notificação `"completed"` para tal chamada, a CLI adiciona uma chave `resource_links` listando os arquivos que a ferramenta retornou por referência, com as mesmas entradas e limites que a chave `resourceLinks` em [`UserMessage.tool_use_result`](#usermessage). A chave `resource_links` requer Python Agent SDK 0.2.150 ou posterior e Claude Code v2.1.257 ou posterior; a CLI agrupada com essa versão do SDK satisfaz o requisito do Claude Code.2075Quando a CLI [move uma chamada de ferramenta MCP longa para segundo plano](/docs/pt/mcp#automatic-backgrounding-of-long-tool-calls), o resultado da ferramenta para essa chamada contém apenas um espaço reservado e o resultado real da chamada chega nesta mensagem. Em uma notificação `"completed"` para tal chamada, a CLI adiciona uma chave `resource_links` listando os arquivos que a ferramenta retornou por referência, com as mesmas entradas e limites que a chave `resourceLinks` em [`UserMessage.tool_use_result`](#usermessage). A chave `resource_links` requer Python Agent SDK 0.2.150 ou posterior e Claude Code v2.1.257 ou posterior; a CLI agrupada com essa versão do SDK satisfaz o requisito do Claude Code.

2075 2076 

2076A dataclass não tem campo para `resource_links`. Leia-o do dict `data` que a mensagem herda de [`SystemMessage`](#systemmessage): `message.data.get("resource_links")`. Corresponda a notificação à chamada com `tool_use_id`. A CLI omite a chave quando o resultado não tinha links e em notificações para tarefas que não são chamadas de ferramenta MCP.2077A dataclass não tem campo para `resource_links`. Leia-o do dict `data` que a mensagem herda de [`SystemMessage`](#systemmessage): `message.data.get("resource_links")`. Corresponda a notificação à chamada com `tool_use_id`. A CLI omite a chave quando o resultado não tinha links e em notificações para tarefas que não são chamadas de ferramenta MCP.

2077 2078 


2153 Tipos de Erro2154 Tipos de Erro

2154</h2>2155</h2>

2155 2156 

2156Os tipos abaixo definem o que seu código captura. Para entradas com chave nas mensagens de erro que esses tipos levantam, com a causa e correção para cada um, consulte [Troubleshooting](/docs/pt/agent-sdk/troubleshooting).2157Os tipos abaixo definem o que seu código captura. Para entradas com chave nas mensagens de erro que esses tipos levantam, com a causa e correção para cada um, consulte [Solução de problemas](/docs/pt/agent-sdk/troubleshooting).

2157 2158 

2158<h3 id="claudesdkerror">2159<h3 id="claudesdkerror">

2159 `ClaudeSDKError`2160 `ClaudeSDKError`


2166 """Base error for Claude SDK."""2167 """Base error for Claude SDK."""

2167```2168```

2168 2169 

2169Quando uma `query()` de uma única tentativa termina com um resultado de erro, por exemplo um erro de limite de turnos, o SDK levanta um [`ResultError`](#resulterror) após ceder a mensagem de resultado final. As versões do Python Agent SDK anteriores a 0.2.140 levantavam uma `Exception` simples que não era uma subclasse de `ClaudeSDKError`.2170Quando uma `query()` de uma única tentativa termina com um resultado de erro, por exemplo um erro de limite de turnos, o SDK levanta um [`ResultError`](#resulterror).

2170 2171 

2171<h3 id="clinotfounderror">2172<h3 id="clinotfounderror">

2172 `CLINotFoundError`2173 `CLINotFoundError`


2216 `ResultError`2217 `ResultError`

2217</h3>2218</h3>

2218 2219 

2219Levantado após a [`ResultMessage`](#resultmessage) final quando o processo Claude Code sai porque a execução terminou com um resultado de erro, como um erro de limite de turnos ou um erro de API. `ResultError` é uma subclasse de `ProcessError`, portanto um manipulador `except ProcessError` existente também o captura. Seus atributos carregam os campos dessa mensagem de resultado, para que você possa ramificar o motivo da falha da execução sem analisar o texto da mensagem. Requer Python Agent SDK 0.2.140 ou posterior.2220Levantado quando o processo Claude Code sai porque a execução terminou com uma [mensagem de resultado](#resultmessage) de erro, como um erro de limite de turnos ou um erro de API. `ResultError` é uma subclasse de `ProcessError`, portanto um manipulador `except ProcessError` existente também o captura. Seus atributos carregam os campos dessa mensagem de resultado, para que você possa fazer branch com base no motivo da falha da execução sem analisar o texto da mensagem. Requer Python Agent SDK 0.2.140 ou posterior.

2220 2221 

2221```python theme={null}2222```python theme={null}

2222class ResultError(ProcessError):2223class ResultError(ProcessError):


2229 data: dict[str, Any] # the raw result message payload2230 data: dict[str, Any] # the raw result message payload

2230```2231```

2231 2232 

2232Para distinguir falhas, verifique `terminal_reason` antes de `subtype`. Quando a solicitação final falha, como em um erro de API, Claude Code relata `subtype` `"success"` com a causa em `terminal_reason`, por exemplo `"api_error"`; quando um limite que você definiu encerra a execução, como `max_turns` ou `max_budget_usd`, ele relata um subtipo `error_*`.2233Para distinguir falhas, verifique `terminal_reason` antes de `subtype`. Quando a requisição final falha, como em um erro de API, Claude Code relata `subtype` `"success"` com a causa em `terminal_reason`, por exemplo `"api_error"`; quando um limite que você definiu encerra a execução, como `max_turns` ou `max_budget_usd`, ele relata um subtipo `error_*`.

2233 2234 

2234<h3 id="clijsondecodeerror">2235<h3 id="clijsondecodeerror">

2235 `CLIJSONDecodeError`2236 `CLIJSONDecodeError`


2649 hookEventName: Literal["PostToolUse"]2650 hookEventName: Literal["PostToolUse"]

2650 additionalContext: NotRequired[str]2651 additionalContext: NotRequired[str]

2651 updatedToolOutput: NotRequired[Any]2652 updatedToolOutput: NotRequired[Any]

2652 updatedMCPToolOutput: NotRequired[Any] # Deprecated: use updatedToolOutput, which works for all tools2653 updatedMCPToolOutput: NotRequired[Any] # MCP tools only. Prefer updatedToolOutput, which works for all tools

2653 2654 

2654 2655 

2655class PostToolUseFailureHookSpecificOutput(TypedDict):2656class PostToolUseFailureHookSpecificOutput(TypedDict):


2708 Exemplo de Uso de Hook2709 Exemplo de Uso de Hook

2709</h3>2710</h3>

2710 2711 

2711Este exemplo registra dois hooks: um que bloqueia comandos bash perigosos como `rm -rf /`, e outro que registra todo o uso de ferramenta para auditoria. O hook de segurança funciona apenas em comandos Bash (via `matcher`), enquanto o hook de registro funciona em todas as ferramentas.2712Este exemplo registra dois hooks: um que bloqueia comandos Bash perigosos como `rm -rf /`, e outro que registra todo o uso de ferramenta para auditoria. O hook de segurança funciona apenas em comandos Bash (via `matcher`), enquanto o hook de registro funciona em todas as ferramentas.

2712 2713 

2713```python theme={null}2714```python theme={null}

2714import asyncio2715import asyncio


2767 Tipos de Entrada/Saída de Ferramenta2768 Tipos de Entrada/Saída de Ferramenta

2768</h2>2769</h2>

2769 2770 

2770Documentação de schemas de entrada/saída para todas as ferramentas Claude Code integradas. Embora o SDK Python não exporte esses como tipos, eles representam a estrutura de entradas e saídas de ferramenta em mensagens.2771Documentação de esquemas de entrada/saída para as ferramentas Claude Code integradas. Embora o SDK Python não exporte esses como tipos, eles representam a estrutura de entradas e saídas de ferramenta em mensagens.

2771 2772 

2772Cada saída mostrada é o valor que você lê de [`UserMessage.tool_use_result`](#usermessage) para essa ferramenta. Os nomes de chaves aparecem exatamente como Claude Code os emite. Uma chave anotada com `| None` com um comentário "presente quando" ou "opcional" é omitida quando não se aplica.2773Cada saída mostrada é o valor que você lê de [`UserMessage.tool_use_result`](#usermessage) para essa ferramenta. Os nomes de chaves aparecem exatamente como Claude Code os emite. Uma chave anotada com `| None` com um comentário "presente quando" ou "opcional" é omitida quando não se aplica.

2773 2774 


2866{2867{

2867 "status": "remote_launched",2868 "status": "remote_launched",

2868 "taskId": str, # ID da tarefa despachada2869 "taskId": str, # ID da tarefa despachada

2869 "sessionUrl": str, # Link para a sessão em nuvem2870 "sessionUrl": str, # Link para a sessão na nuvem

2870 "description": str, # A descrição da tarefa2871 "description": str, # A descrição da tarefa

2871 "prompt": str, # O prompt que o agente executa2872 "prompt": str, # O prompt que o agente executa

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

2873}2874}

2874```2875```

2875 2876 

2876Retorna 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.2877Retorna 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 na nuvem, onde `sessionUrl` vincula a essa sessão e `taskId` a identifica. Se Claude Code [manteve o worktree isolado do subagente](/docs/pt/worktrees#isolate-subagents-with-worktrees), `worktreePath` na variante `completed` é onde encontrá-lo, e `worktreeBranch` é seu branch quando Claude Code criou o worktree com git.

2877 2878 

2878Na 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.2879Na 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.

2879 2880 


2935 # Resposta de forma livre digitada em vez de responder às perguntas; quando definido,2936 # Resposta de forma livre digitada em vez de responder às perguntas; quando definido,

2936 # Claude recebe "O usuário respondeu: ..." no lugar da lista de respostas2937 # Claude recebe "O usuário respondeu: ..." no lugar da lista de respostas

2937 "annotations": dict[str, dict] | None, # "preview" e "notes" por pergunta das seleções do usuário2938 "annotations": dict[str, dict] | None, # "preview" e "notes" por pergunta das seleções do usuário

2938 "afkTimeoutMs": int | None, # Definido quando o diálogo se resolveu automaticamente após este muitos milissegundos de inatividade do usuário; ausente quando o usuário respondeu2939 "afkTimeoutMs": int | None, # Definido quando o diálogo se resolveu automaticamente após essa quantidade de milissegundos de inatividade do usuário; ausente quando o usuário respondeu

2939}2940}

2940```2941```

2941 2942 


2945 2946 

2946**Nome da ferramenta:** `Bash`2947**Nome da ferramenta:** `Bash`

2947 2948 

2948Para o que define o limite do primeiro plano, veja [Limites de tempo limite e saída](/docs/pt/tools-reference#timeout-and-output-limits). Para o limite de tempo em segundo plano, veja [Limite de tempo para comandos em segundo plano](/docs/pt/tools-reference#time-limit-for-background-commands).2949Para o que define o limite do primeiro plano, veja [Limites de timeout e saída](/docs/pt/tools-reference#timeout-and-output-limits). Para o limite de tempo em segundo plano, veja [Limite de tempo para comandos em segundo plano](/docs/pt/tools-reference#time-limit-for-background-commands).

2949 2950 

2950**Entrada:**2951**Entrada:**

2951 2952 


2976 2977 

2977**Nome da ferramenta:** `Monitor`2978**Nome da ferramenta:** `Monitor`

2978 2979 

2979Executa uma fonte de fundo e entrega cada evento para Claude para que ele possa reagir sem polling: `command` executa um script e emite um evento por linha stdout, e `ws` abre um WebSocket e emite um evento por frame de texto. Forneça exatamente um de `command` ou `ws`.2980Executa uma fonte em segundo plano e entrega cada evento para Claude para que ele possa reagir sem polling: `command` executa um script e emite um evento por linha stdout, e `ws` abre um WebSocket e emite um evento por frame de texto. Forneça exatamente um de `command` ou `ws`.

2980 2981 

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

2982 2983 


2995 2996 

2996```python theme={null}2997```python theme={null}

2997{2998{

2998 "taskId": str, # ID da tarefa de monitor de fundo2999 "taskId": str, # ID da tarefa de monitor em segundo plano

2999 "timeoutMs": int, # O prazo efetivo da observação em milissegundos3000 "timeoutMs": int, # O prazo efetivo da observação em milissegundos

3000 "persistent": bool | None, # False: cada observação tem um prazo3001 "persistent": bool | None, # False: cada observação tem um prazo

3001}3002}


3150 "file": {3151 "file": {

3151 "filePath": str,3152 "filePath": str,

3152 },3153 },

3153 "source": "seeded" | None, # Presente quando a cópia anterior veio de um arquivo CLAUDE.md ou memory carregado na inicialização em vez de uma chamada Read3154 "source": "seeded" | None, # Presente quando a cópia anterior veio de um arquivo CLAUDE.md ou de memória carregado na inicialização em vez de uma chamada Read

3154}3155}

3155```3156```

3156 3157 


3544 TaskOutput3545 TaskOutput

3545</h3>3546</h3>

3546 3547 

3547Removido em Claude Code v2.1.277. Anteriormente recuperava saída de uma tarefa de fundo em execução ou concluída, com `BashOutput` aceito como alias; Claude lê o arquivo de saída de uma tarefa de fundo com `Read` em seu lugar.3548Removido em Claude Code v2.1.277. Anteriormente recuperava saída de uma tarefa em segundo plano em execução ou concluída, com `BashOutput` aceito como alias; Claude lê o arquivo de saída de uma tarefa em segundo plano com `Read` em seu lugar.

3548 3549 

3549Uma entrada `disallowed_tools` ou uma regra de negação que ainda nomeia qualquer um dos nomes é ignorada sem um aviso.3550Uma entrada `disallowed_tools` ou uma regra de negação que ainda nomeia qualquer um dos nomes é ignorada sem um aviso.

3550 3551 


3558 3559 

3559```python theme={null}3560```python theme={null}

3560{3561{

3561 "task_id": str | None, # O ID da tarefa de fundo a parar3562 "task_id": str | None, # O ID da tarefa em segundo plano a parar

3562 "shell_id": str | None, # Descontinuado: use task_id em seu lugar3563 "shell_id": str | None, # Descontinuado: use task_id em seu lugar

3563}3564}

3564```3565```

Details

60 60 

61Para usar saídas estruturadas, defina um [JSON Schema](https://json-schema.org/understanding-json-schema/about) descrevendo a forma dos dados que você deseja, depois passe-o para `query()` via a opção `outputFormat` (TypeScript) ou `output_format` (Python). Quando o agente terminar, a mensagem de resultado inclui um campo `structured_output` com dados validados correspondendo ao seu schema.61Para usar saídas estruturadas, defina um [JSON Schema](https://json-schema.org/understanding-json-schema/about) descrevendo a forma dos dados que você deseja, depois passe-o para `query()` via a opção `outputFormat` (TypeScript) ou `output_format` (Python). Quando o agente terminar, a mensagem de resultado inclui um campo `structured_output` com dados validados correspondendo ao seu schema.

62 62 

63O exemplo abaixo pede ao agente para pesquisar Anthropic e retornar o nome da empresa, ano de fundação e sede como saída estruturada.63Antes de executar os exemplos desta página, instale o Claude Agent SDK seguindo o [guia de início rápido](/docs/pt/agent-sdk/quickstart#setup). O exemplo abaixo pede ao agente para pesquisar Anthropic e retornar o nome da empresa, ano de fundação e sede como saída estruturada.

64 64 

65<CodeGroup>65<CodeGroup>

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


390 Tratamento de erros390 Tratamento de erros

391</h2>391</h2>

392 392 

393A geração de saída estruturada pode falhar quando o agente não consegue produzir JSON válido correspondendo ao seu schema. Isso normalmente acontece quando o schema é muito complexo para a tarefa, a tarefa em si é ambígua, ou o agente atinge seu limite de tentativas tentando corrigir erros de validação. Também pode acontecer sem nenhuma falha de validação: um [fallback de modelo](/docs/pt/model-config#automatic-model-fallback) pode retratar uma saída já concluída no meio do fluxo, e se nenhuma tentativa bem-sucedida a substituir, a execução termina com o mesmo erro. Verifique a lista `errors` na mensagem de resultado para distinguir as duas causas antes de depurar seu schema.393A geração de saída estruturada pode falhar quando o agente não consegue produzir JSON válido correspondendo ao seu esquema. Isso normalmente acontece quando o esquema é muito complexo para a tarefa, a tarefa em si é ambígua, ou o agente atinge seu limite de tentativas tentando corrigir erros de validação. Também pode acontecer sem nenhuma falha de validação: um [fallback de modelo](/docs/pt/model-config#automatic-model-fallback) pode retratar uma saída já concluída no meio do fluxo, e se nenhuma nova tentativa a substituir, a execução termina com o mesmo erro. Verifique a lista `errors` na mensagem de resultado de erro para distinguir as duas causas antes de depurar seu esquema.

394 394 

395Quando um erro ocorre, a mensagem de resultado tem um `subtype` indicando o que deu errado:395Quando um erro ocorre, a mensagem de resultado tem um `subtype` indicando o que deu errado:

396 396 

Details

186 console.error("Claim failed:", error.message);186 console.error("Claim failed:", error.message);

187});187});

188 188 

189for await (const message of claimedQuery) {189try {

190 for await (const message of claimedQuery) {

190 console.log(message);191 console.log(message);

192 }

193} catch (error) {

194 // Após uma reivindicação recusada, a query reivindicada lança uma exceção assim que tiver produzido o resultado de erro

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

191}196}

192```197```

193 198 


539| Propriedade | Tipo | Padrão | Descrição |544| Propriedade | Tipo | Padrão | Descrição |

540| :- | :- | :- | :- |545| :- | :- | :- | :- |

541| `abortController` | `AbortController` | `new AbortController()` | Controlador para cancelar operações |546| `abortController` | `AbortController` | `new AbortController()` | Controlador para cancelar operações |

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

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

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

545| `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 |550| `agentProgressSummaries` | `boolean` | `false` | Quando `true`, gera resumos de progresso de uma linha para os subagentes e os encaminha nos eventos [`task_progress`](#sdktaskprogressmessage) por meio do campo `summary`. Aplica-se a subagentes em primeiro plano e em segundo plano |

546| `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'` |551| `allowDangerouslySkipPermissions` | `boolean` | `false` | Habilita a dispensa de permissões. Obrigatório ao usar `permissionMode: 'bypassPermissions'`, na inicialização ou posteriormente por meio de `setPermissionMode()`. Consulte [modo de planejamento](/docs/pt/agent-sdk/permissions#plan-mode-plan) para ver como isso interage com `permissionMode: 'plan'` |

547| `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) |552| `allowedTools` | `string[]` | `[]` | Ferramentas a aprovar automaticamente sem solicitar confirmação. Isso não restringe Claude apenas a essas ferramentas. Se você nomear aqui uma das [ferramentas de acompanhamento de tarefas](/docs/pt/agent-sdk/todo-tracking#model-availability), o Claude Code também habilita esse recurso na sessão. Outras ferramentas não listadas seguem para `permissionMode` e `canUseTool`. Use `disallowedTools` para bloquear ferramentas. Consulte [Permissões](/docs/pt/agent-sdk/permissions#allow-and-deny-rules) |

548| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | Ativar recursos beta |553| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | Habilitar recursos beta |

549| `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 |554| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | Função de permissão personalizada, invocada somente quando o [fluxo de permissão](/docs/pt/agent-sdk/permissions#how-permissions-are-evaluated) chega a um prompt. Não é invocada para chamadas aprovadas automaticamente por `allowedTools`, regras de permissão ou `permissionMode`. 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). Consulte [`CanUseTool`](#canusetool) para obter detalhes |

550| `continue` | `boolean` | `false` | Continuar a conversa mais recente |555| `continue` | `boolean` | `false` | Continuar a conversa mais recente |

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

552| `debug` | `boolean` | `false` | Ativar modo de depuração para o processo Claude Code |557| `debug` | `boolean` | `false` | Habilitar o modo de depuração para o processo do Claude Code |

553| `debugFile` | `string` | `undefined` | Escrever logs de depuração em um caminho de arquivo específico. Ativa implicitamente o modo de depuração |558| `debugFile` | `string` | `undefined` | Gravar logs de depuração em um caminho de arquivo específico. Habilita implicitamente o modo de depuração |

554| `disallowedTools` | `string[]` | `[]` | 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) |559| `disallowedTools` | `string[]` | `[]` | Ferramentas a negar. Um nome simples como `"Bash"` remove a ferramenta do contexto de Claude. Uma regra com escopo como `"Bash(rm *)"` mantém a ferramenta disponível e nega as chamadas correspondentes em todos os modos de permissão, incluindo `bypassPermissions`, para o comando [conforme escrito](/docs/pt/permissions#bash-rule-limits). Consulte [Permissões](/docs/pt/agent-sdk/permissions#allow-and-deny-rules) |

555| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `undefined` | Controla quanto esforço Claude coloca em sua resposta. Funciona com pensamento adaptativo para guiar a profundidade do pensamento. Veja [ajustar o nível de esforço](/docs/pt/model-config#adjust-effort-level) |560| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `undefined` | Controla quanto esforço Claude dedica à resposta. Funciona com o pensamento adaptativo para orientar a profundidade do pensamento. Consulte [ajustar o nível de esforço](/docs/pt/model-config#adjust-effort-level) |

556| `enableFileCheckpointing` | `boolean` | `false` | Ativar rastreamento de mudanças de arquivo para retrocesso. Veja [File checkpointing](/docs/pt/agent-sdk/file-checkpointing) |561| `enableFileCheckpointing` | `boolean` | `false` | Habilitar o rastreamento de alterações em arquivos para retrocesso. Consulte [Checkpointing de arquivos](/docs/pt/agent-sdk/file-checkpointing) |

557| `env` | `Record<string, string \| undefined>` | `process.env` | Variáveis de ambiente. Quando definido, isso substitui o ambiente do subprocesso em vez de mesclar com `process.env`, então passe `{ ...process.env, YOUR_VAR: 'value' }` para manter variáveis herdadas como `PATH`. Veja [Lidar com respostas de API lentas ou travadas](#handle-slow-or-stalled-api-responses) para um exemplo deste padrão, e [Variáveis de ambiente](/docs/pt/env-vars) para variáveis que a CLI subjacente lê. Defina `CLAUDE_AGENT_SDK_CLIENT_APP` para identificar sua aplicação no cabeçalho User-Agent |562| `env` | `Record<string, string \| undefined>` | `process.env` | Variáveis de ambiente. Quando definida, substitui o ambiente do subprocesso em vez de mesclar com `process.env`, portanto passe `{ ...process.env, YOUR_VAR: 'value' }` para manter variáveis herdadas como `PATH`. Consulte [Lidar com respostas de API lentas ou travadas](#handle-slow-or-stalled-api-responses) para ver um exemplo desse padrão e [Variáveis de ambiente](/docs/pt/env-vars) para ver as variáveis que a CLI subjacente lê. Defina `CLAUDE_AGENT_SDK_CLIENT_APP` para identificar seu aplicativo no cabeçalho User-Agent |

558| `executable` | `'bun' \| 'deno' \| 'node'` | Auto-detectado | Runtime JavaScript a usar |563| `executable` | `'bun' \| 'deno' \| 'node'` | Detectado automaticamente | Runtime JavaScript a usar |

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

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

561| `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) |566| `fallbackModel` | `string` | `undefined` | Modelo a usar se o modelo principal falhar. Aceita uma lista separada por vírgulas. Para a ordem e o limite, consulte [Cadeias de modelos de fallback](/docs/pt/model-config#fallback-model-chains). Para orientações, consulte [Escolher um modelo](/docs/pt/agent-sdk/configuration#choose-a-model) |

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

563| `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. Mensagens de subagentes que uma skill bifurcada gera, e de skills bifurcadas aninhadas, requerem v2.1.275 ou posterior |568| `forwardSubagentText` | `boolean` | `false` | Encaminha blocos de texto e de pensamento dos subagentes como mensagens de assistente e de usuário com `parent_tool_use_id` definido, para que os consumidores possam renderizar uma transcrição aninhada. Sem essa opção, o Claude Code emite os blocos `tool_use` e `tool_result` dos subagentes, mas não texto nem pensamento. Mensagens de subagentes em qualquer profundidade de aninhamento são encaminhadas no Claude Code v2.1.219 e posterior; antes da v2.1.219, apenas mensagens de subagentes de profundidade 1 apareciam. Mensagens de subagentes gerados por uma skill bifurcada, e de skills bifurcadas aninhadas, exigem a v2.1.275 ou posterior |

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

565| `includeHookEvents` | `boolean` | `false` | Incluir eventos de ciclo de vida de hook no fluxo de mensagens como [`SDKHookStartedMessage`](#sdkhookstartedmessage), [`SDKHookProgressMessage`](#sdkhookprogressmessage), e [`SDKHookResponseMessage`](#sdkhookresponsemessage). Eventos de ciclo de vida para hooks `SessionStart` e `Setup` são sempre incluídos e não precisam desta opção. Alguns eventos de hook, como `Notification`, `SessionEnd`, `PreCompact`, e `PostCompact`, nunca produzem um `SDKHookStartedMessage`, mesmo com esta opção. Para esses eventos, Claude Code ainda emite um `SDKHookProgressMessage` enquanto um hook de comando que é executado por mais de um segundo produz saída, e emite um `SDKHookResponseMessage` apenas quando um hook [que é executado em segundo plano](/docs/pt/hooks#run-hooks-in-the-background) termina |570| `includeHookEvents` | `boolean` | `false` | Inclui eventos do ciclo de vida dos hooks no fluxo de mensagens como [`SDKHookStartedMessage`](#sdkhookstartedmessage), [`SDKHookProgressMessage`](#sdkhookprogressmessage) e [`SDKHookResponseMessage`](#sdkhookresponsemessage). Eventos do ciclo de vida dos hooks `SessionStart` e `Setup` são sempre incluídos e não precisam dessa opção. Alguns eventos de hook, como `Notification`, `SessionEnd`, `PreCompact` e `PostCompact`, nunca produzem uma `SDKHookStartedMessage`, mesmo com essa opção. Para esses eventos, o Claude Code ainda emite uma `SDKHookProgressMessage` enquanto um hook de comando executado por mais de um segundo produz saída, e emite uma `SDKHookResponseMessage` somente quando um hook [executado em segundo plano](/docs/pt/hooks#run-hooks-in-the-background) termina |

566| `includePartialMessages` | `boolean` | `false` | Incluir eventos de mensagem parcial |571| `includePartialMessages` | `boolean` | `false` | Incluir eventos de mensagens parciais |

567| `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 |572| `loadTimeoutMs` | `number` | `60000` | *Alpha.* Timeout em milissegundos para cada chamada de `sessionStore.load()` e `sessionStore.listSubkeys()` durante a materialização da retomada. Se o adaptador não concluir dentro dessa janela, a consulta falha em vez de travar. Ignorado quando `sessionStore` não está definido |

568| `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 |573| `managedSettings` | `Settings` | `undefined` | Configurações do nível de política que seu processo host fornece à sessão gerada. Em máquinas com configurações gerenciadas implantadas pelo administrador, o Claude Code as ignora, 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. Os valores mesclados passam por um filtro somente restritivo; [Restringir configurações do pai](/docs/pt/claude-apps-gateway#restrict-parent-settings) aborda 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 deste payload: 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 na v2.1.246 ou posterior, e sua entrada de env `ENABLE_TOOL_SEARCH` na v2.1.247 ou posterior |

569| `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) |574| `maxBudgetUsd` | `number` | `undefined` | Interrompe a consulta quando a estimativa de custo do lado do cliente atinge este valor em USD. Conta apenas o gasto da própria chamada; totais restaurados de uma sessão retomada não contam. Para ressalvas de precisão e comportamento de redefinição, consulte [Acompanhar custo e uso](/docs/pt/agent-sdk/cost-tracking) |

570| `maxThinkingTokens` | `number` | `undefined` | *Descontinuado:* Use `thinking` em vez disso. Tokens máximos para processo de pensamento |575| `maxThinkingTokens` | `number` | `undefined` | *Obsoleto:* Use `thinking` em vez disso. Máximo de tokens para o processo de pensamento |

571| `maxTurns` | `number` | `undefined` | Turnos agênticos máximos (round trips de uso de ferramenta) |576| `maxTurns` | `number` | `undefined` | Máximo de turnos agênticos (idas e voltas de uso de ferramentas) |

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

573| `model` | `string` | Padrão da CLI | Alias de modelo Claude ou nome de modelo completo. Veja [valores aceitos e IDs específicos do provedor](/docs/pt/model-config#available-models) |578| `model` | `string` | Padrão da CLI | Alias do modelo Claude ou nome completo do modelo. Consulte [valores aceitos e IDs específicos de provedores](/docs/pt/model-config#available-models) |

574| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | Callback para lidar com solicitações de elicitação MCP. Chamado quando um servidor MCP solicita entrada do usuário e nenhum hook a trata primeiro. Quando não fornecido, solicitações de elicitação não tratadas são recusadas automaticamente |579| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | Callback para lidar com requisições de elicitação MCP. Chamado quando um servidor MCP solicita entrada do usuário e nenhum hook a trata primeiro. Quando não fornecido, requisições de elicitação não tratadas são recusadas automaticamente |

575| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | Defina o formato de saída para resultados de agente. Veja [Structured outputs](/docs/pt/agent-sdk/structured-outputs) para detalhes |580| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | Define o formato de saída para os resultados do agente. Consulte [Saídas estruturadas](/docs/pt/agent-sdk/structured-outputs) para obter detalhes |

576| `outputStyle` | `string` | `undefined` | Não é um campo `Options`. Defina `outputStyle` no objeto [`settings`](/docs/pt/settings) inline ou em um arquivo de configurações. Veja [Ativar um estilo de saída](/docs/pt/agent-sdk/modifying-system-prompts#activate-an-output-style) |581| `outputStyle` | `string` | `undefined` | Não é um campo de `Options`. Defina `outputStyle` no objeto inline [`settings`](/docs/pt/settings) ou em um arquivo de configurações. Consulte [Ativar um estilo de saída](/docs/pt/agent-sdk/modifying-system-prompts#activate-an-output-style) |

577| `pathToClaudeCodeExecutable` | `string` | Auto-resolvido do binário nativo agrupado | Caminho para executável Claude Code. Apenas necessário se dependências opcionais foram puladas durante a instalação ou sua plataforma não está no conjunto suportado |582| `pathToClaudeCodeExecutable` | `string` | Resolvido automaticamente a partir do binário nativo incluído | Caminho para o executável do Claude Code. Necessário apenas se as dependências opcionais foram ignoradas durante a instalação ou se sua plataforma não está no conjunto suportado |

578| `permissionMode` | [`PermissionMode`](#permissionmode) | `undefined` | Modo de permissão para a sessão. Se você omitir, a sessão pode começar em modo automático. Veja [Modos de permissão](/docs/pt/agent-sdk/permissions#permission-modes) para como Claude Code escolhe o modo de permissão inicial |583| `permissionMode` | [`PermissionMode`](#permissionmode) | `undefined` | Modo de permissão da sessão. Se você o omitir, a sessão pode iniciar no modo auto. Consulte [Modos de permissão](/docs/pt/agent-sdk/permissions#permission-modes) para ver como o Claude Code escolhe o modo de permissão inicial |

579| `permissionPromptToolName` | `string` | `undefined` | Nome da ferramenta MCP para prompts de permissão |584| `permissionPromptToolName` | `string` | `undefined` | Nome da ferramenta MCP para prompts de permissão |

580| `permissionPrompts` | `'host' \| 'none'` | `'host'` | Quem responde aos prompts de permissão: `'host'` os encaminha para seu callback [`canUseTool`](#canusetool) ou a ferramenta `permissionPromptToolName`, e `'none'` [nega as chamadas que teriam solicitado](/docs/pt/agent-sdk/permissions#how-permissions-are-evaluated). Requer Claude Code v2.1.259 ou posterior |585| `permissionPrompts` | `'host' \| 'none'` | `'host'` | Quem responde aos prompts de permissão: `'host'` os encaminha para seu callback [`canUseTool`](#canusetool) ou para a ferramenta `permissionPromptToolName`, e `'none'` [nega as chamadas que teriam gerado um prompt](/docs/pt/agent-sdk/permissions#how-permissions-are-evaluated). Requer o Claude Code v2.1.259 ou posterior |

581| `persistSession` | `boolean` | `true` | Quando `false`, desativa persistência de sessão em disco. Sessões não podem ser retomadas depois |586| `persistSession` | `boolean` | `true` | Quando `false`, desabilita a persistência da sessão em disco. As sessões não podem ser retomadas posteriormente |

582| `planModeInstructions` | `string` | `undefined` | Instruções de fluxo de trabalho personalizado para Plan Mode. Quando `permissionMode` é `'plan'`, esta string substitui o corpo de fluxo de trabalho de Plan Mode padrão. A CLI ainda o envolve com o preâmbulo de imposição somente leitura e o rodapé do protocolo ExitPlanMode |587| `planModeInstructions` | `string` | `undefined` | Instruções de fluxo de trabalho personalizadas para o modo de planejamento. Quando `permissionMode` é `'plan'`, essa string substitui o corpo padrão do fluxo de trabalho do modo de planejamento. A CLI ainda o envolve com o preâmbulo de imposição somente leitura e o rodapé do protocolo ExitPlanMode |

583| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | Carregar plugins personalizados de caminhos locais. Veja [Plugins](/docs/pt/agent-sdk/plugins) para detalhes |588| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | Carregar plugins personalizados a partir de caminhos locais. Consulte [Plugins](/docs/pt/agent-sdk/plugins) para obter detalhes |

584| `projectConfigRoot` | `string` | `undefined` | Caminho absoluto do checkout confiável que `cwd` é uma worktree de. Claude Code lê configurações de projeto, `.mcp.json`, e os comandos, agentes, skills, workflows, rotinas e estilos de saída do projeto `.claude/` deste diretório em vez de `cwd`, e define `CLAUDE_PROJECT_DIR` para ele. Hooks, scripts auxiliares como `apiKeyHelper`, e servidores MCP stdio começam com este diretório como seu diretório de trabalho. Arquivos `CLAUDE.md` e `.claude/rules/` ainda carregam de `cwd`. Requer Claude Code v2.1.275 ou posterior |589| `projectConfigRoot` | `string` | `undefined` | Caminho absoluto do checkout confiável do qual `cwd` é um worktree. O Claude Code lê as configurações do projeto, `.mcp.json` e os comandos, agentes, skills, fluxos de trabalho, rotinas e estilos de saída em `.claude/` do projeto a partir deste diretório em vez de `cwd`, e define `CLAUDE_PROJECT_DIR` com ele. Hooks, scripts auxiliares como `apiKeyHelper` e servidores MCP stdio iniciam com este diretório como diretório de trabalho. Arquivos `CLAUDE.md` e `.claude/rules/` ainda são carregados a partir de `cwd`. Requer o Claude Code v2.1.275 ou posterior |

585| `promptSuggestions` | `boolean` | `false` | Ativar sugestões de prompt. Após um turno, Claude Code emite uma mensagem `prompt_suggestion` carregando um prompt de usuário previsto. Claude Code não gera sugestão para alguns turnos, como quando sua conta está próxima ou no limite de uso. Veja [Quando Claude Code pula sugestões](/docs/pt/interactive-mode#when-claude-code-skips-suggestions) |590| `promptSuggestions` | `boolean` | `false` | Habilitar sugestões de prompt. Após um turno, o Claude Code emite uma mensagem `prompt_suggestion` contendo uma previsão do próximo prompt do usuário. O Claude Code não gera sugestão em alguns turnos, por exemplo, quando sua conta está perto de atingir ou já atingiu o limite de uso. Consulte [Quando o Claude Code pula sugestões](/docs/pt/interactive-mode#when-claude-code-skips-suggestions) |

586| `resume` | `string` | `undefined` | ID de sessão a retomar |591| `resume` | `string` | `undefined` | ID da sessão a retomar |

587| `resumeDropsTurn` | `string` | `undefined` | Com `resumeSessionAt`: o UUID do prompt do turno que a retomada truncada pretende descartar. Claude Code recusa a retomada quando o intervalo descartado contém algo não atribuível a esse turno, como mensagens enfileiradas absorvidas ou notificações de tarefas, e nomeia o sinalizador `--resume-drops-turn` na mensagem de rejeição. Apenas o Agent SDK e retomadas em modo de impressão leem o par. Requer Claude Code v2.1.223 ou posterior |592| `resumeDropsTurn` | `string` | `undefined` | Com `resumeSessionAt`: o UUID do prompt do turno que a retomada com truncamento pretende descartar. O Claude Code recusa a retomada quando o intervalo descartado contém algo não atribuível a esse turno, como mensagens enfileiradas absorvidas ou notificações de tarefas, e nomeia a flag `--resume-drops-turn` na mensagem de rejeição. Apenas o Agent SDK e as retomadas no modo print leem o par. Requer o Claude Code v2.1.223 ou posterior |

588| `resumeSessionAt` | `string` | `undefined` | Retomar sessão em um UUID de mensagem específico |593| `resumeSessionAt` | `string` | `undefined` | Retomar a sessão em um UUID de mensagem específico |

589| `sandbox` | [`SandboxSettings`](#sandboxsettings) | `undefined` | Configurar comportamento de sandbox programaticamente. Veja [Sandbox settings](#sandboxsettings) para detalhes |594| `sandbox` | [`SandboxSettings`](#sandboxsettings) | `undefined` | Configurar o comportamento do sandbox programaticamente. Consulte [Configurações do sandbox](#sandboxsettings) para obter detalhes |

590| `sessionId` | `string` | Auto-gerado | Use um UUID específico para a sessão em vez de auto-gerar um |595| `sessionId` | `string` | Gerado automaticamente | Usar um UUID específico para a sessão em vez de gerar um automaticamente |

591| `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) |596| `sessionStore` | [`SessionStore`](/docs/pt/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | Espelhar as transcrições da sessão em um backend externo para que outro host possa retomá-las. Consulte [Persistir sessões em armazenamento externo](/docs/pt/agent-sdk/session-storage) |

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

593| `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) |598| `settings` | `string \| Settings` | `undefined` | Objeto inline de [configurações](/docs/pt/settings), um caminho de arquivo de configurações ou uma string JSON inline. Preenche 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) |

594| `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) |599| `settingSources` | [`SettingSource`](#settingsource)`[]` | Padrões da CLI (todas as fontes) | Controla quais configurações do sistema de arquivos carregar. Passe `[]` para desabilitar as configurações de usuário, de projeto e locais. A [política gerenciada por endpoint](/docs/pt/managed-settings#delivery-mechanisms) é carregada de qualquer forma; as configurações gerenciadas pelo servidor são obtidas 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). Consulte [Usar recursos do Claude Code](/docs/pt/agent-sdk/claude-code-features#what-settingsources-does-not-control) |

595| `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) |600| `skills` | `string[] \| 'all'` | `undefined` | Skills disponíveis para a sessão. Passe `'all'` para habilitar todas as skills descobertas, 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 curinga com um erro antes de iniciar o processo do Claude Code. Quando definido, o SDK adiciona a ferramenta Skill a `allowedTools` automaticamente. Se você também passar `tools`, inclua `'Skill'` nessa lista. Consulte [Skills](/docs/pt/agent-sdk/skills) |

596| `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 |601| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Função personalizada para gerar o processo do Claude Code. Use para executar o Claude Code em VMs, contêineres ou ambientes remotos |

597| `stderr` | `(data: string) => void` | `undefined` | Callback para saída stderr |602| `stderr` | `(data: string) => void` | `undefined` | Callback para a saída stderr |

598| `strictMcpConfig` | `boolean` | `false` | Use apenas os servidores passados em `mcpServers` e ignore o projeto `.mcp.json`, configurações do usuário, servidores MCP fornecidos por plugin, e [conectores claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai) |603| `strictMcpConfig` | `boolean` | `false` | Usa apenas os servidores passados em `mcpServers` e ignora o `.mcp.json` do projeto, as configurações de usuário, os servidores MCP fornecidos por plugins e os [conectores do claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai) |

599| `systemPrompt` | `string \| string[] \| { type: 'custom'; prompt: string \| string[]; snapshot?: boolean } \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean; snapshot?: boolean }` | `undefined` (prompt mínimo) | Configuração de prompt do sistema. Passe uma string para prompt personalizado, ou `{ type: 'preset', preset: 'claude_code' }` para usar o prompt do sistema do Claude Code. Passe um array de strings com a constante exportada `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` entre as partes estática e por solicitação para [cachear a parte estática de um prompt personalizado](/docs/pt/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt). Ao usar a forma de objeto preset, adicione `append` para estendê-lo com instruções adicionais, e defina `excludeDynamicSections: true` para mover contexto por sessão para a primeira mensagem do usuário para [melhor reutilização de cache de prompt entre máquinas](/docs/pt/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines). Defina `snapshot: false` para reconstruir o prompt em cada solicitação em vez de [reutilizar o prompt que a sessão registrou em sua primeira solicitação](/docs/pt/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session). Para definir `snapshot` em um prompt personalizado, passe a forma `{ type: 'custom', prompt }`. A forma `{ type: 'custom' }` e o campo `snapshot` requerem TypeScript Agent SDK v0.3.257 ou posterior |604| `systemPrompt` | `string \| string[] \| { type: 'custom'; prompt: string \| string[]; snapshot?: boolean } \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean; snapshot?: boolean }` | `undefined` (prompt mínimo) | Configuração do system prompt. Passe uma string para um prompt personalizado, ou `{ type: 'preset', preset: 'claude_code' }` para usar o system prompt do Claude Code. Passe um array de strings com a constante exportada `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` entre as partes estática e por requisição para [armazenar em cache a parte estática de um prompt personalizado](/docs/pt/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt). Ao usar a forma de objeto preset, adicione `append` para estendê-lo com instruções adicionais e defina `excludeDynamicSections: true` para mover o contexto por sessão para a primeira mensagem do usuário, obtendo [melhor reutilização do cache de prompt entre máquinas](/docs/pt/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines). Defina `snapshot: false` para reconstruir o prompt a 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). Para definir `snapshot` em um prompt personalizado, passe a forma `{ type: 'custom', prompt }`. A forma `{ type: 'custom' }` e o campo `snapshot` exigem o TypeScript Agent SDK v0.3.257 ou posterior |

600| `taskBudget` | `{ total: number }` | `undefined` | *Alfa.* Orçamento de tarefa do lado da API em tokens. Quando definido, o modelo é informado sobre seu orçamento de token restante para que possa controlar o uso de ferramentas e encerrar antes do limite |605| `taskBudget` | `{ total: number }` | `undefined` | *Alpha.* Orçamento de tarefa do lado da API em tokens. Quando definido, o modelo é informado sobre seu orçamento de tokens restante para poder dosar o uso de ferramentas e concluir antes do limite |

601| `thinking` | [`ThinkingConfig`](#thinkingconfig) | `{ type: 'adaptive' }` para modelos suportados | Controla o comportamento de pensamento/raciocínio do Claude. Veja [`ThinkingConfig`](#thinkingconfig) para opções |606| `thinking` | [`ThinkingConfig`](#thinkingconfig) | `{ type: 'adaptive' }` para modelos suportados | Controla o comportamento de pensamento/raciocínio de Claude. Consulte [`ThinkingConfig`](#thinkingconfig) para ver as opções |

602| `title` | `string` | `undefined` | Título de exibição para a sessão. Ao retomar via `resume` ou `continue`, o título persistido da sessão retomada tem precedência; use [`renameSession()`](#renamesession) para renomear uma sessão existente |607| `title` | `string` | `undefined` | Título de exibição da sessão. Ao retomar via `resume` ou `continue`, o título persistido da sessão retomada tem precedência; use [`renameSession()`](#renamesession) para renomear uma sessão existente |

603| `toolAliases` | `Record<string, string>` | `undefined` | Mapear nomes de ferramentas integradas para nomes de ferramentas MCP para que Claude chame sua implementação MCP em vez da integrada. Por exemplo, `{ Bash: 'mcp__workspace__bash' }` |608| `toolAliases` | `Record<string, string>` | `undefined` | Mapeia nomes de ferramentas integradas para nomes de ferramentas MCP para que Claude chame sua implementação MCP no lugar da integrada. Por exemplo, `{ Bash: 'mcp__workspace__bash' }` |

604| `toolConfig` | [`ToolConfig`](#toolconfig) | `undefined` | Configuração para comportamento de ferramenta integrada. Veja [`ToolConfig`](#toolconfig) para detalhes |609| `toolConfig` | [`ToolConfig`](#toolconfig) | `undefined` | Configuração do comportamento das ferramentas integradas. Consulte [`ToolConfig`](#toolconfig) para obter detalhes |

605| `tools` | `string[] \| { type: 'preset'; preset: 'claude_code' }` | `undefined` | Configuração de ferramenta. Passe um array de nomes de ferramentas ou use o preset para obter as ferramentas padrão do Claude Code |610| `tools` | `string[] \| { type: 'preset'; preset: 'claude_code' }` | `undefined` | Configuração de ferramentas. Passe um array de nomes de ferramentas ou use o preset para obter as ferramentas padrão do Claude Code |

606| `verbatimPrompts` | `boolean` | `false` | Entregar cada prompt conforme escrito. O SDK envia cada mensagem de usuário com `client_composed: true`. Veja [`client_composed`](#sdkusermessage) para o que Claude Code pula nessas mensagens. Use esta opção quando seu texto de prompt inclui conteúdo que o usuário final não digitou. Para controle por turno, deixe desativado e defina `client_composed` em mensagens individuais transmitidas em vez disso. Requer TypeScript Agent SDK v0.3.280 ou posterior e Claude Code v2.1.248 ou posterior; a versão Claude Code agrupada com essas versões SDK satisfaz o requisito de versão Claude Code |611| `verbatimPrompts` | `boolean` | `false` | Entrega cada prompt exatamente como escrito. O SDK envia cada mensagem do usuário com `client_composed: true`. Consulte [`client_composed`](#sdkusermessage) para ver o que o Claude Code ignora nessas mensagens. Use esta opção quando o texto do seu prompt incluir conteúdo que o usuário final não digitou. Para controle por turno, deixe-a desativada e defina `client_composed` em mensagens transmitidas individualmente. Requer o TypeScript Agent SDK v0.3.280 ou posterior e o Claude Code v2.1.248 ou posterior; a versão do Claude Code incluída nessas versões do SDK atende ao requisito do Claude Code |

607 612 

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

609 Lidar com respostas de API lentas ou travadas614 Lidar com respostas de API lentas ou travadas

610</h4>615</h4>

611 616 

612O subprocesso da CLI lê várias variáveis de ambiente que controlam timeouts de API e detecção de travamento. Passe-as através da opção `env`:617O subprocesso da CLI lê várias variáveis de ambiente que controlam timeouts de API e a detecção de travamentos. Passe-as por meio da opção `env`:

613 618 

614```typescript theme={null}619```typescript theme={null}

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


627});632});

628```633```

629 634 

630* `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.635* `API_TIMEOUT_MS`: timeout por requisição no cliente da Anthropic, em milissegundos. Padrão `600000`. Aplica-se ao loop principal e a todos os subagentes.

631* `CLAUDE_CODE_MAX_RETRIES`: máximo de tentativas de API. Padrão `10`, limitado a `15`. Cada tentativa obtém sua própria janela `API_TIMEOUT_MS`, então o tempo de parede no pior caso é aproximadamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` mais backoff. Para execuções sem supervisão que precisam aguardar através de interrupções mais longas, defina [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/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.636* `CLAUDE_CODE_MAX_RETRIES`: máximo de novas tentativas da API. Padrão `10`, limitado a `15`. Cada nova tentativa tem sua própria janela de `API_TIMEOUT_MS`, portanto o tempo total no pior caso é aproximadamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` mais o backoff. Para execuções não supervisionadas que precisam aguardar interrupções mais longas, defina [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/pt/errors#tune-retry-behavior): ela tenta novamente erros transitórios de capacidade indefinidamente e, no Claude Code v2.1.199 ou posterior, eleva o padrão para outros erros transitórios a `300` e remove o limite desta variável.

632* `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, que chega a `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`.637* `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 da v2.1.257, o padrão era sempre `600000`.

633 638 

634 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 em segundo plano, também marca a tarefa como falhada e anexa qualquer resultado parcial.639 O temporizador é redefinido a cada evento de stream. Em caso de travamento, o Claude Code aborta o subagente e relata o travamento ao pai. Para um subagente em segundo plano, ele também marca a tarefa como falha e anexa qualquer resultado parcial.

635* `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 desativá-lo. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` padrão é `300000` e é fixado nesse mínimo. Após a anulação, [Tentativas automáticas](/docs/pt/errors#automatic-retries) cobre o que Claude Code faz, com base em quanto a resposta havia progredido.640* `CLAUDE_ENABLE_STREAM_WATCHDOG` com `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: watchdog de stream que aborta a requisição quando os cabeçalhos chegaram, mas o corpo da resposta para de ser transmitido. 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` tem padrão `300000` e é limitado a esse mínimo. Após o aborto, [Novas tentativas automáticas](/docs/pt/errors#automatic-retries) aborda o que o Claude Code faz, com base em quanto a resposta havia avançado.

636 641 

637 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 `includePartialMessages` continua recebendo eventos de `ping` [stream](#sdkpartialassistantmessage), então leia esses frames como vivacidade em vez de expirar a sessão no silêncio. Antes de v2.1.257, os frames paravam 5 minutos após o último evento de stream real.642 Enquanto o watchdog aguarda uma resposta que um gateway por trás de `ANTHROPIC_BASE_URL` mantém aberta com pings de keep-alive, um host que define `includePartialMessages` continua recebendo [eventos de stream](#sdkpartialassistantmessage) `ping`, portanto interprete esses frames como sinal de atividade em vez de encerrar a sessão por timeout devido ao silêncio. Antes da v2.1.257, os frames paravam 5 minutos após o último evento de stream real.

638 643 

639<h3 id="query-object">644<h3 id="query-object">

640 Objeto `Query`645 Objeto `Query`


696 701 

697| Método | Descrição |702| Método | Descrição |

698| :- | :- |703| :- | :- |

699| `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 |704| `interrupt()` | Interrompe a consulta. Disponível apenas no modo de entrada por streaming. Quando a CLI anuncia a capacidade `interrupt_receipt_v1` em [`SDKSystemMessage.capabilities`](#sdksystemmessage), resolve com uma [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) listando as mensagens que estavam pendentes quando a interrupção chegou. Resolve `undefined` em CLIs anteriores à v2.1.205 |

700| `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) |705| `rewindFiles(userMessageId, options?)` | Restaura os arquivos ao estado em que estavam na mensagem do usuário especificada. Passe `{ dryRun: true }` para visualizar as alterações. Requer `enableFileCheckpointing: true`. Consulte [Checkpointing de arquivos](/docs/pt/agent-sdk/file-checkpointing) |

701| `setPermissionMode()` | Altera o modo de permissão (apenas disponível em modo de entrada de transmissão) |706| `setPermissionMode()` | Altera o modo de permissão (disponível apenas no modo de entrada por streaming) |

702| `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) |707| `setModel()` | Altera o modelo (disponível apenas no modo de entrada por streaming). Passar `undefined` ou a string `"default"` redefine para o [modelo padrão do Claude Code](/docs/pt/model-config) |

703| `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 |708| `setMaxThinkingTokens()` | *Obsoleto:* Use a opção `thinking` em vez disso. Altera o máximo de tokens de pensamento. Passar `null` redefine o pensamento para o padrão da sessão: uma substituição feita no meio da sessão é removida, e o pensamento permanece desativado para sessões que o têm desabilitado |

704| `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) |709| `applyFlagSettings(settings)` | Mescla configurações na camada de configurações de flag da sessão em tempo de execução (disponível apenas no modo de entrada por streaming). Consulte [`applyFlagSettings()`](#applyflagsettings) |

705| `updateSettings(source, settings)` | Escreve uma chave permitida no arquivo de configurações local do projeto ou no arquivo de configurações do usuário, para que o valor persista para sessões posteriores. Veja [`updateSettings()`](#updatesettings). Requer TypeScript SDK v0.3.257 ou posterior, que agrupa Claude Code v2.1.257 |710| `updateSettings(source, settings)` | Grava uma chave da lista de permitidas no arquivo de configurações locais do projeto ou no seu arquivo de configurações de usuário, para que o valor persista em sessões posteriores. Consulte [`updateSettings()`](#updatesettings). Requer o TypeScript SDK v0.3.257 ou posterior, que inclui o Claude Code v2.1.257 |

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

707| `reinitialize()` | Re-envia a solicitação de controle `initialize` para a CLI em execução e retorna um resultado novo em vez do resultado de primeira conexão em cache. Use-o após uma lacuna de transporte, como reconectar a uma sessão após uma desconexão, para que solicitações de permissão pendentes alcancem seu callback `canUseTool` novamente. Torne o callback idempotente por ID de solicitação, porque uma solicitação cuja resposta foi perdida é despachada novamente. Requer Claude Code v2.1.195 ou posterior |712| `reinitialize()` | Reenvia a requisição de controle `initialize` para a CLI em execução e retorna um resultado novo em vez do resultado em cache da primeira conexão. Use-o após uma lacuna de transporte, como ao reconectar-se a uma sessão após uma desconexão, para que as requisições de permissão pendentes cheguem novamente ao seu callback `canUseTool`. Torne o callback idempotente por ID de requisição, porque uma requisição cuja resposta foi perdida é despachada novamente. Requer o Claude Code v2.1.195 ou posterior |

708| `supportedCommands()` | Retorna comandos disponíveis. A partir do Agent SDK v0.3.216 a lista reflete mudanças de comando no meio da sessão; veja [`SDKCommandsChangedMessage`](#sdkcommandschangedmessage) |713| `supportedCommands()` | Retorna os comandos disponíveis. A partir do Agent SDK v0.3.216, a lista reflete alterações de comandos no meio da sessão; consulte [`SDKCommandsChangedMessage`](#sdkcommandschangedmessage) |

709| `supportedModels()` | Retorna modelos disponíveis com informações de exibição |714| `supportedModels()` | Retorna os modelos disponíveis com informações de exibição |

710| `supportedAgents()` | Retorna subagentes disponíveis como [`AgentInfo`](#agentinfo)`[]` |715| `supportedAgents()` | Retorna os subagentes disponíveis como [`AgentInfo`](#agentinfo)`[]` |

711| `mcpServerStatus()` | Retorna status de servidores MCP conectados como [`McpServerStatus`](#mcpserverstatus)`[]` |716| `mcpServerStatus()` | Retorna o status dos servidores MCP conectados como [`McpServerStatus`](#mcpserverstatus)`[]` |

712| `getContextUsage(opts?)` | Retorna um [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) dividindo o uso da janela de contexto da sessão por categoria, skill e ferramenta. Com o `detail` padrão, é o mesmo dado que `/context` mostra em uma sessão interativa, computado com solicitações de API de contagem de token que não aparecem no fluxo de mensagens; veja [como essas solicitações são tratadas](#sdkcontrolgetcontextusageresponse). A [opção `detail`](#sdkcontrolgetcontextusageresponse) requer Agent SDK v0.3.257 ou posterior |717| `getContextUsage(opts?)` | Retorna uma [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) que detalha o uso da janela de contexto da sessão por categoria, skill e ferramenta. Com o `detail` padrão, são os mesmos dados que `/context` mostra em uma sessão interativa, calculados com requisições de API de contagem de tokens que não aparecem no fluxo de mensagens; consulte [como essas requisições são tratadas](#sdkcontrolgetcontextusageresponse). A [opção `detail`](#sdkcontrolgetcontextusageresponse) requer o Agent SDK v0.3.257 ou posterior |

713| `readFile(path, options?)` | Lê um arquivo do sistema de arquivos da sessão. Claude Code resolve o caminho contra `cwd`; [O que `readFile()` pode ler](#what-readfile-can-read) lista os arquivos que ele serve. Passe `{ maxBytes }` para alterar o limite de leitura (padrão 1 MB, teto 10 MB) e `{ encoding: 'base64' }` para arquivos binários como imagens. Resolve com um [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse), ou `null` em negação de permissão, arquivo ausente, ou erro de transporte. Requer TypeScript SDK v0.2.121 ou posterior |718| `readFile(path, options?)` | Lê um arquivo do sistema de arquivos da sessão. O Claude Code resolve o caminho em relação a `cwd`; [O que `readFile()` pode ler](#what-readfile-can-read) lista os arquivos que ele fornece. Passe `{ maxBytes }` para alterar o limite de leitura (padrão 1 MB, máximo 10 MB) e `{ encoding: 'base64' }` para arquivos binários, como imagens. Resolve com uma [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse), ou `null` em caso de negação de permissão, arquivo ausente ou erro de transporte. Requer o TypeScript SDK v0.2.121 ou posterior |

714| `reloadPlugins(options?)` | Recarrega plugins do disco, para que plugins que você instala ou edita no meio da sessão alcancem a sessão em execução. Resolve com um [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) listando os comandos, subagentes, plugins e status do servidor MCP da sessão. Requer Agent SDK v0.2.85 ou posterior. A [opção `holdOnCacheImpact`](#sdkcontrolreloadpluginsresponse) requer Agent SDK v0.3.268 ou posterior |719| `reloadPlugins(options?)` | Recarrega os plugins do disco, para que plugins que você instala ou edita no meio da sessão cheguem à sessão em execução. Resolve com uma [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) listando os comandos, subagentes, plugins e o status dos servidores MCP da sessão. Requer o Agent SDK v0.2.85 ou posterior. A [opção `holdOnCacheImpact`](#sdkcontrolreloadpluginsresponse) requer o Agent SDK v0.3.268 ou posterior |

715| `reloadSkills()` | Recarrega skills do disco, para que skills que você adiciona ou edita no meio da sessão fiquem disponíveis para a sessão em execução. Resolve com um [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) listando as skills disponíveis após o recarregamento. Requer Agent SDK v0.3.163 ou posterior |720| `reloadSkills()` | Recarrega as skills do disco, para que skills que você adiciona ou edita no meio da sessão fiquem disponíveis para a sessão em execução. Resolve com uma [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) listando as skills disponíveis após o recarregamento. Requer o Agent SDK v0.3.163 ou posterior |

716| `reloadOutputStyles()` | Re-lê [estilos de saída](/docs/pt/output-styles) do disco, para que um arquivo de estilo que você adiciona ou edita no meio da sessão fique disponível para a sessão em execução. Resolve com um [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse) listando os nomes de estilo disponíveis após o recarregamento. Requer Agent SDK v0.3.261 ou posterior |721| `reloadOutputStyles()` | Relê os [estilos de saída](/docs/pt/output-styles) do disco, para que um arquivo de estilo que você adiciona ou edita no meio da sessão fique disponível para a sessão em execução. Resolve com uma [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse) listando os nomes dos estilos disponíveis após o recarregamento. Requer o Agent SDK v0.3.261 ou posterior |

717| `accountInfo()` | Retorna informações de conta |722| `accountInfo()` | Retorna informações da conta |

718| `reconnectMcpServer(serverName)` | Reconectar um servidor MCP por nome. Se o nome também corresponder a uma entrada em um arquivo de configurações como `.mcp.json` ou `~/.claude.json`, Claude Code reconecta o servidor que você configurou através de [`mcpServers`](#options) ou `setMcpServers()`, não a entrada do arquivo de configurações. Essa ordem de resolução requer Claude Code v2.1.257 ou posterior |723| `reconnectMcpServer(serverName)` | Reconecta um servidor MCP pelo nome. Se o nome também corresponder a uma entrada em um arquivo de configurações como `.mcp.json` ou `~/.claude.json`, o Claude Code reconecta o servidor que você configurou por meio de [`mcpServers`](#options) ou `setMcpServers()`, não a entrada do arquivo de configurações. Essa ordem de resolução requer o Claude Code v2.1.257 ou posterior |

719| `toggleMcpServer(serverName, enabled)` | Habilita ou desabilita um servidor MCP pelo nome, com a mesma resolução de nomes que `reconnectMcpServer()`. Desabilitar um servidor o desconecta e remove suas ferramentas. Consulte [`toggleMcpServer()`](#togglemcpserver) para saber a versão do Claude Code necessária para cada tipo de servidor |724| `toggleMcpServer(serverName, enabled)` | Habilita ou desabilita um servidor MCP pelo nome, com a mesma resolução de nomes de `reconnectMcpServer()`. Desabilitar um servidor o desconecta e remove suas ferramentas. Consulte [`toggleMcpServer()`](#togglemcpserver) para ver a versão do Claude Code necessária para cada tipo de servidor |

720| `setMcpServers(servers)` | Substituir dinamicamente o conjunto de servidores MCP para esta sessão. Resolve com um [`McpSetServersResult`](#mcpsetserversresult) nomeando quais servidores foram adicionados e removidos, e quaisquer erros |725| `setMcpServers(servers)` | Substitui os servidores MCP que este método gerencia: servidores adicionados por meio dele e [servidores SDK em processo](#createsdkmcpserver). Resolve com um [`McpSetServersResult`](#mcpsetserversresult) informando quais servidores foram adicionados e removidos, além de eventuais erros; essa seção informa quais outros servidores permanecem conectados |

721| `readMcpResource(serverName, uri)` | *Alfa.* Lê um recurso MCP Apps `ui://` de um servidor MCP conectado para que sua aplicação possa renderizar um widget de ferramenta. Resolve com um [`SDKControlMcpReadResourceResponse`](#sdkcontrolmcpreadresourceresponse). Requer TypeScript Agent SDK v0.3.280 ou posterior |726| `readMcpResource(serverName, uri)` | *Alpha.* Lê um recurso `ui://` do MCP Apps de um servidor MCP conectado para que seu aplicativo possa renderizar o widget de uma ferramenta. Resolve com uma [`SDKControlMcpReadResourceResponse`](#sdkcontrolmcpreadresourceresponse). Requer o TypeScript Agent SDK v0.3.280 ou posterior |

722| `streamInput(stream)` | Transmitir mensagens de entrada para a consulta para conversas multi-turno |727| `streamInput(stream)` | Transmite mensagens de entrada para a consulta em conversas de múltiplos turnos |

723| `stopTask(taskId)` | Parar uma tarefa de fundo em execução por ID |728| `stopTask(taskId)` | Interrompe uma tarefa em segundo plano em execução pelo ID |

724| `close()` | Fechar a consulta e encerrar o processo subjacente. Força o término da consulta e limpa todos os recursos |729| `close()` | Fecha a consulta e encerra o processo subjacente. Encerra a consulta à força e limpa todos os recursos |

725 730 

726<h4 id="applyflagsettings">731<h4 id="applyflagsettings">

727 `applyFlagSettings()`732 `applyFlagSettings()`

728</h4>733</h4>

729 734 

730Altera [configurações](/docs/pt/settings) em uma sessão em execução sem reiniciar a consulta. Use-a quando uma configuração que não tem um setter dedicado precisa mudar no meio da sessão, como apertar `permissions` depois que o agente lê entrada não confiável. `setModel()` e `setPermissionMode()` são setters dedicados para essas duas chaves; `applyFlagSettings()` é a forma geral que aceita qualquer subconjunto das chaves de configurações, e passar `model` aqui se comporta igual a `setModel()`.735Altera [configurações](/docs/pt/settings) em uma sessão em execução sem reiniciar a consulta. Use-o quando uma configuração que não tem um setter dedicado precisa mudar no meio da sessão, como restringir `permissions` depois que o agente lê entrada não confiável. `setModel()` e `setPermissionMode()` são setters dedicados para essas duas chaves; `applyFlagSettings()` é a forma geral que aceita qualquer subconjunto das chaves de configuração, e passar `model` aqui se comporta da mesma forma que `setModel()`.

731 736 

732Apenas algumas chaves têm efeito no meio da sessão:737Apenas algumas chaves têm efeito no meio da sessão:

733 738 

734* **Aplicadas no próximo turno**: `effortLevel`, `ultracode`, `permissions`, `hooks`, `skillOverrides`, `fastMode`, `agent`. Mudar `agent` também aplica a substituição de modelo e hooks desse agente no próximo turno. Seu prompt do sistema se aplica no próximo turno, ou, em uma sessão que [reutiliza um prompt do sistema registrado](/docs/pt/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session), uma vez que a sessão é compactada.739* **Aplicadas no próximo turno**: `effortLevel`, `ultracode`, `permissions`, `hooks`, `skillOverrides`, `fastMode`, `agent`. Trocar `agent` também aplica a substituição de modelo e os hooks desse agente no próximo turno. O system prompt dele se aplica no próximo turno ou, em uma sessão que [reutiliza um system prompt registrado](/docs/pt/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session), assim que a sessão for compactada.

735* **Aplicadas durante o turno atual**: `model`. Se você mudar `model` enquanto Claude está trabalhando em um turno, a resposta que Claude já está gerando termina no modelo antigo, e o resto do turno, começando com a próxima chamada que Claude Code faz para o modelo, usa o novo. Subagentes mantêm seu próprio modelo. Antes de v2.1.212, uma mudança no meio do turno aguardava o próximo turno.740* **Aplicadas durante o turno atual**: `model`. Se você trocar `model` enquanto Claude está trabalhando em um turno, a resposta que Claude já está gerando termina no modelo antigo, e o restante do turno, a partir da próxima chamada que o Claude Code fizer ao modelo, usa o novo. Os subagentes mantêm seu próprio modelo. Antes da v2.1.212, uma troca no meio do turno aguardava o próximo turno.

736* **Sem efeito no meio da sessão**: as opções de prompt do sistema. Estas são resolvidas uma vez na inicialização, então a sessão em execução mantém o valor original mesmo que a chamada tenha sucesso. Para alterá-los, inicie uma nova sessão.741* **Sem efeito no meio da sessão**: as opções de system prompt. Elas são resolvidas uma única vez na inicialização, portanto a sessão em execução mantém o valor original mesmo que a chamada tenha sucesso. Para alterá-las, inicie uma nova sessão.

737 742 

738`effortLevel` aceita um nome de [nível de esforço](/docs/pt/model-config#adjust-effort-level). Também aceita `"ultracode"`, que executa a sessão em esforço `xhigh` e ativa [ultracode](/docs/pt/workflows#let-claude-decide-with-ultracode). `applyFlagSettings()` declara `effortLevel` sem esse valor, então em TypeScript passe `{ ultracode: true, effortLevel: "xhigh" }` para o mesmo resultado, ou a chave [`ultracode`](/docs/pt/settings-reference#ultracode) sozinha para ativar ultracode no nível de esforço atual da sessão. O valor `ultracode` requer Claude Code v2.1.203 ou posterior e é aceito apenas por `applyFlagSettings()`, não pela chave `effortLevel` em um arquivo de configurações. Antes de v2.1.284, a chave `ultracode` sozinha também definia o nível para `xhigh`.743`effortLevel` aceita o nome de um [nível de esforço](/docs/pt/model-config#adjust-effort-level). Também aceita `"ultracode"`, que solicita esforço `xhigh` com o [ultracode](/docs/pt/workflows#let-claude-decide-with-ultracode) ativado. `applyFlagSettings()` declara `effortLevel` sem esse valor, portanto em TypeScript passe `{ ultracode: true, effortLevel: "xhigh" }` para obter o mesmo resultado, ou apenas a chave [`ultracode`](/docs/pt/settings-reference#ultracode) para ativar o ultracode no nível de esforço atual da sessão. O valor `ultracode` requer o Claude Code v2.1.203 ou posterior e é aceito apenas por `applyFlagSettings()`, não pela chave `effortLevel` em um arquivo de configurações. Antes da v2.1.284, a chave `ultracode` sozinha também definia o nível como `xhigh`.

739 744 

740Os valores são escritos na camada de configurações de flag, mesclados sobre o que a opção `settings` inline de `query()` definiu 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.745Os valores são gravados na camada de configurações de flag, mesclados sobre o que a opção inline `settings` de `query()` definiu na inicialização. Esse é o mesmo nível que a [seção de precedência nesta página](#settings-precedence) chama de opções programáticas.

741 746 

742Chamadas 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.747Chamadas sucessivas fazem uma mesclagem superficial das chaves de nível superior. Uma segunda chamada com `{ permissions: {...} }` substitui todo o objeto `permissions` da chamada anterior, em vez de mesclá-lo profundamente.

743 748 

744Para limpar uma chave que você definiu com `applyFlagSettings()`, passe `null` para essa chave. A maioria das chaves então volta a um valor que a opção `settings` de `query()` definiu na inicialização, depois 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.749Para limpar uma chave que você definiu com `applyFlagSettings()`, passe `null` para essa chave. A maioria das chaves então recorre primeiro a um valor que a opção `settings` de `query()` definiu na inicialização e, em seguida, a fontes de menor precedência. Um `model` limpo é redefinido 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 o descarta.

745 750 

746Três chaves além de `model` redefinem o estado da sessão em vez de voltar:751Três chaves além de `model` redefinem o estado da sessão em vez de recorrer a um fallback:

747 752 

748* `effortLevel: null` retorna a sessão ao nível de esforço padrão do modelo, não à opção `effort` de `query()` ou um `effortLevel` de um arquivo de configurações.753* `effortLevel: null` retorna a sessão ao nível de esforço padrão do modelo, não à opção `effort` de `query()` nem a um `effortLevel` de um arquivo de configurações.

749* `agent: null` executa a thread principal sem agente, começando com o próximo turno, em vez de restaurar a opção `agent` de `query()` ou um `agent` de um arquivo de configurações. Se o agente limpo tivesse aplicado seu próprio modelo, a sessão volta ao modelo que resolveu na inicialização.754* `agent: null` executa a thread principal sem agente, a partir do próximo turno, em vez de restaurar a opção `agent` de `query()` ou um `agent` de um arquivo de configurações. Se o agente removido tiver aplicado seu próprio modelo, a sessão retorna ao modelo que resolveu na inicialização.

750* `ultracode: null` desativa ultracode, como `false` faz, em vez de restaurar um valor `ultracode` de um arquivo de configurações. A sessão mantém seu nível de esforço atual, então passe `effortLevel` na mesma chamada para alterá-lo.755* `ultracode: null` desativa o ultracode, como `false` faz, em vez de restaurar um valor `ultracode` de um arquivo de configurações. A sessão mantém seu nível de esforço atual, portanto passe `effortLevel` na mesma chamada para alterá-lo.

751 756 

752Apenas disponível em modo de entrada de transmissão, a mesma restrição que `setModel()` e `setPermissionMode()`.757Disponível apenas no modo de entrada por streaming, a mesma restrição de `setModel()` e `setPermissionMode()`.

753 758 

754O 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).759O exemplo abaixo troca o modelo ativo no meio da sessão e, em seguida, limpa a substituição para que o modelo seja redefinido para o [modelo padrão do Claude Code](/docs/pt/model-config).

755 760 

756```typescript theme={null}761```typescript theme={null}

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

758 763 

759const q = query({ prompt: messageStream });764const q = query({ prompt: messageStream });

760 765 

761// Substituir o modelo para o resto da sessão766// Override the model for the rest of the session

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

763 768 

764// Depois: limpar a substituição; o modelo redefine para o modelo padrão do Claude Code769// Later: clear the override; the model resets to Claude Code's default

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

766```771```

767 772 

768<Note>773<Note>

769 `applyFlagSettings()` é apenas TypeScript. O SDK Python não expõe um método equivalente.774 `applyFlagSettings()` é exclusivo do TypeScript. O Python SDK não expõe um método equivalente.

770</Note>775</Note>

771 776 

772<h4 id="updatesettings">777<h4 id="updatesettings">

773 `updateSettings()`778 `updateSettings()`

774</h4>779</h4>

775 780 

776Escreve uma chave permitida em um arquivo de configurações em disco, para que o valor persista para sessões posteriores que carregam essa fonte. Cada fonte aceita uma chave, com um valor de string:781Grava uma chave da lista de permitidas em um arquivo de configurações no disco, para que o valor persista em sessões posteriores que carregam essa fonte. Cada fonte aceita uma chave, com um valor string:

777 782 

778* **`"localSettings"`**: aceita `outputStyle` e mescla em um arquivo de configurações local do projeto, `.claude/settings.local.json`. O novo estilo entra em vigor na próxima solicitação da sessão.783* **`"localSettings"`**: aceita `outputStyle` e o mescla no arquivo de configurações locais do projeto, `.claude/settings.local.json`. O novo estilo entra em vigor na próxima requisição da sessão.

779* **`"userSettings"`**: aceita `effortLevel` e o salva como o [nível de esforço](/docs/pt/model-config#adjust-effort-level) padrão para o modelo atual da sessão, sob [`modelSettings`](/docs/pt/settings-reference#modelsettings) no arquivo de configurações do usuário. Passar `max` não escreve nada, porque `max` é apenas de sessão. A sessão em execução mantém seu nível de esforço atual de qualquer forma, então chame [`applyFlagSettings()`](#applyflagsettings) quando você também quiser alterar isso. Esta fonte requer TypeScript SDK v0.3.277 ou posterior, que agrupa Claude Code v2.1.277.784* **`"userSettings"`**: aceita `effortLevel` e o salva como o [nível de esforço](/docs/pt/model-config#adjust-effort-level) padrão para o modelo atual da sessão, em [`modelSettings`](/docs/pt/settings-reference#modelsettings) no seu arquivo de configurações de usuário. Passar `max` não grava nada, porque `max` vale apenas para a sessão. A sessão em execução mantém seu nível de esforço atual de qualquer forma, portanto chame [`applyFlagSettings()`](#applyflagsettings) quando também quiser alterá-lo. Esta fonte requer o TypeScript SDK v0.3.277 ou posterior, que inclui o Claude Code v2.1.277.

780 785 

781A chamada rejeita quando a solicitação carrega qualquer outra chave, quando a sessão é executada sobre um transporte remoto, e quando os [`settingSources`](#options) da sessão excluem a fonte que você nomeia. Deletar uma chave não é suportado.786A chamada é rejeitada quando a requisição contém qualquer outra chave, quando a sessão é executada por um transporte remoto e quando as [`settingSources`](#options) da sessão excluem a fonte que você nomeia. Excluir uma chave não é suportado.

782 787 

783<h4 id="togglemcpserver">788<h4 id="togglemcpserver">

784 `toggleMcpServer()`789 `toggleMcpServer()`

785</h4>790</h4>

786 791 

787Desabilitar um servidor o desconecta e remove suas ferramentas da sessão. Para servidores adicionados no meio da sessão e para servidores em processo, isso depende da sua versão do Claude Code:792Desabilitar um servidor o desconecta e remove suas ferramentas da sessão. Para servidores que você adicionou no meio da sessão e para servidores em processo, isso depende da sua versão do Claude Code:

788 793 

789* Um servidor stdio, SSE ou HTTP que você adicionou no meio da sessão com `setMcpServers()`: remover suas ferramentas requer Claude Code v2.1.285 ou posterior.794* Um servidor stdio, SSE ou HTTP que você adicionou no meio da sessão com `setMcpServers()`: remover suas ferramentas requer o Claude Code v2.1.285 ou posterior.

790* Um servidor em processo que você criou com [`createSdkMcpServer()`](#createsdkmcpserver), seja passado em `mcpServers` ou com `setMcpServers()`: desconectá-lo e remover suas ferramentas requer Claude Code v2.1.286 ou posterior. Desabilitar um deles também faz falhar as chamadas de ferramenta dele que ainda estão em execução, de modo que o Claude recebe imediatamente um resultado de erro para cada uma delas, sem esperar que seu handler retorne.795* Um servidor em processo que você criou com [`createSdkMcpServer()`](#createsdkmcpserver), seja passado em `mcpServers` ou com `setMcpServers()`: desconectá-lo e remover suas ferramentas requer o Claude Code v2.1.286 ou posterior. Desabilitar um deles também faz falhar as chamadas de ferramenta dele que ainda estão em execução, portanto Claude recebe imediatamente um resultado de erro para cada uma delas, sem esperar que seu handler retorne.

791 796 

792<h3 id="warmquery">797<h3 id="warmquery">

793 `WarmQuery`798 `WarmQuery`

794</h3>799</h3>

795 800 

796Handle retornado por [`startup()`](#startup). O subprocesso já está gerado e inicializado, então chamar `query()` neste handle escreve o prompt diretamente em um processo pronto sem latência de inicialização.801Handle retornado por [`startup()`](#startup). O subprocesso já foi gerado e inicializado, portanto chamar `query()` neste handle grava o prompt diretamente em um processo pronto, sem latência de inicialização.

797 802 

798```typescript theme={null}803```typescript theme={null}

799interface WarmQuery extends AsyncDisposable {804interface WarmQuery extends AsyncDisposable {


808 813 

809| Método | Descrição |814| Método | Descrição |

810| :- | :- |815| :- | :- |

811| `query(prompt)` | Enviar um prompt para o subprocesso pré-aquecido e retornar uma [`Query`](#query-object). Pode ser chamado apenas uma vez por `WarmQuery` |816| `query(prompt)` | Envia um prompt para o subprocesso pré-aquecido e retorna uma [`Query`](#query-object). Só pode ser chamado uma vez por `WarmQuery` |

812| `close()` | Fechar o subprocesso sem enviar um prompt. Use isso para descartar uma consulta quente que não é mais necessária |817| `close()` | Fecha o subprocesso sem enviar um prompt. Use para descartar uma consulta pré-aquecida que não é mais necessária |

813 818 

814`WarmQuery` implementa `AsyncDisposable`, então pode ser usado com `await using` para limpeza automática.819`WarmQuery` implementa `AsyncDisposable`, portanto pode ser usado com `await using` para limpeza automática.

815 820 

816<h3 id="spareprocess">821<h3 id="spareprocess">

817 `SpareProcess`822 `SpareProcess`

818</h3>823</h3>

819 824 

820*Alfa.* Handle retornado por [`prewarm()`](#prewarm): um processo Claude Code iniciado que ainda não está vinculado a uma sessão e pode ser reivindicado uma vez. Requer TypeScript Agent SDK v0.3.282 ou posterior.825*Alpha.* Handle retornado por [`prewarm()`](#prewarm): um processo do Claude Code iniciado que ainda não está vinculado a uma sessão e pode ser reivindicado uma vez. Requer o TypeScript Agent SDK v0.3.282 ou posterior.

821 826 

822```typescript theme={null}827```typescript theme={null}

823interface SpareProcess extends AsyncDisposable {828interface SpareProcess extends AsyncDisposable {


837 842 

838| Membro | Descrição |843| Membro | Descrição |

839| :- | :- |844| :- | :- |

840| `claim({ prompt, options })` | Vincular o spare a uma sessão em `options.cwd` e enviar sua primeira mensagem. Retorna uma [`Query`](#query-object) sincronamente, como `query()` faz. Pode ser chamado apenas uma vez |845| `claim({ prompt, options })` | Vincula o processo reserva a uma sessão em `options.cwd` e envia sua primeira mensagem. Retorna uma [`Query`](#query-object) de forma síncrona, como `query()` faz. Só pode ser chamado uma vez |

841| `claimed` | Resolve com o diretório de trabalho e ID da sessão uma vez que Claude Code aceita a reivindicação. Rejeita quando Claude Code recusa a reivindicação, quando o processo saiu ou foi fechado primeiro, e, com uma mensagem que começa com `option_not_applied`, quando a sessão está em execução sem o `model` ou `maxThinkingTokens` que você pediu |846| `claimed` | Resolve com o diretório de trabalho e o ID da sessão assim que o Claude Code aceita a reivindicação. É rejeitado quando o Claude Code recusa a reivindicação, quando o processo terminou ou foi fechado antes e, com uma mensagem que começa com `option_not_applied`, quando a sessão está em execução sem o `model` ou o `maxThinkingTokens` que você solicitou |

842| `exited` | Resolve quando o processo sai, reivindicado ou não. Substitua um spare que sai antes de você reivindicá-lo |847| `exited` | É concluído quando o processo termina, reivindicado ou não. Substitua um processo reserva que termine antes de você reivindicá-lo |

843| `close()` | Encerrar o processo. Antes de uma reivindicação isso descarta o spare e rejeita `claimed` |848| `close()` | Encerra o processo. Antes de uma reivindicação, isso descarta o processo reserva e rejeita `claimed` |

844 849 

845`options.cwd` é obrigatório. Uma reivindicação também pode definir `additionalDirectories`, `model`, `permissionMode`, `maxThinkingTokens`, uma sobreposição de configurações de flag em `settings`, `appendSystemPrompt`, `title`, `agents`, e tokens por sessão em `env`.850`options.cwd` é obrigatório. Uma reivindicação também pode definir `additionalDirectories`, `model`, `permissionMode`, `maxThinkingTokens`, uma sobreposição de configurações de flag em `settings`, `appendSystemPrompt`, `title`, `agents` e tokens por sessão em `env`.

846 851 

847Claude Code pode recusar uma reivindicação, por exemplo para uma pasta que não existe ou uma cujas configurações de projeto definem `env`, `agent`, ou `model`. Quando `claimed` rejeita com uma mensagem que começa com `option_not_applied`, a sessão está em execução sem o `model` ou `maxThinkingTokens` que você pediu. Após qualquer outra rejeição seu prompt não foi executado, então inicie a sessão com `query()` em vez disso.852O Claude Code pode recusar uma reivindicação, por exemplo, para uma pasta que não existe ou uma cujas configurações de projeto definem `env`, `agent` ou `model`. Após uma recusa, um prompt que `claim()` já enviou recebe um resultado de erro cujo texto começa com `not_claimed`, e a consulta retornada então lança uma exceção. Envolva o loop da consulta em um bloco try para continuar após a exceção. Quando `claimed` rejeita com uma mensagem que começa com `option_not_applied`, a sessão está em execução sem o `model` ou `maxThinkingTokens` que você solicitou. Após qualquer outra rejeição, seu prompt não foi executado, então inicie a sessão com `query()`.

848 853 

849<h3 id="sdkcontrolinitializeresponse">854<h3 id="sdkcontrolinitializeresponse">

850 `SDKControlInitializeResponse`855 `SDKControlInitializeResponse`

851</h3>856</h3>

852 857 

853Tipo de retorno de `initializationResult()`. Contém dados de inicialização de sessão.858Tipo de retorno de `initializationResult()`. Contém os dados de inicialização da sessão.

854 859 

855```typescript theme={null}860```typescript theme={null}

856type SDKControlInitializeResponse = {861type SDKControlInitializeResponse = {


874};879};

875```880```

876 881 

877`hooks_applied` relata se Claude Code registrou os `hooks` que a solicitação `initialize` carregava. O SDK envia essa solicitação uma vez quando a sessão inicia e novamente em cada chamada [`reinitialize()`](#query-object). O campo requer Agent SDK v0.3.238 ou posterior.882`hooks_applied` informa se o Claude Code registrou os `hooks` que a requisição `initialize` continha. O SDK envia essa requisição uma vez quando a sessão inicia e novamente a cada chamada de [`reinitialize()`](#query-object). O campo requer o Agent SDK v0.3.238 ou posterior.

878 883 

879Claude 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:884O Claude Code omite o campo quando a requisição não continha hooks. Quando a requisição continha hooks, o valor depende de a requisição ser o primeiro initialize da sessão e, para um initialize repetido, de como ele chegou à sessão:

880 885 

881* `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.886* `true`: o Claude Code registrou os hooks. O primeiro initialize de uma sessão retorna esse valor. Um initialize repetido enviado pelo stdin da CLI também retorna `true`. Nesse caso, os hooks da nova requisição substituem os hooks registrados anteriormente.

882* `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.887* `false`: o Claude Code ignorou os hooks. Um initialize repetido enviado a uma sessão remota retorna esse valor, de modo que um segundo cliente que entra em uma sessão não pode substituir os hooks que o primeiro cliente registrou.

883 888 

884Antes do Agent SDK v0.3.238, a resposta nunca carregava o campo, e Claude Code ignorava `hooks` em cada inicialização repetida.889Antes do Agent SDK v0.3.238, a resposta nunca continha o campo, e o Claude Code ignorava `hooks` em todo initialize repetido.

885 890 

886O campo `sdkMcpServerManifests` da requisição e o campo `sdk_mcp_manifests_parked` da resposta são destinados aos [servidores MCP do SDK](/docs/pt/agent-sdk/custom-tools) em processo que você criou com [`createSdkMcpServer()`](#createsdkmcpserver). Sua aplicação não define nem lê nenhum desses campos.891O campo `sdkMcpServerManifests` da requisição e o campo `sdk_mcp_manifests_parked` da resposta são para os [servidores MCP do SDK](/docs/pt/agent-sdk/custom-tools) em processo que você criou com [`createSdkMcpServer()`](#createsdkmcpserver). Seu aplicativo não define nem lê nenhum desses campos.

887 892 

888A resposta sempre relata `fast_mode_state`, e quando algo bloqueia [fast mode](/docs/pt/fast-mode), `fast_mode_disabled_reason` carrega o código de razão junto com ele, para que você possa explicar o estado bloqueado em vez de re-derivar a disponibilidade. Ambos os comportamentos requerem Claude Code v2.1.219 ou posterior. Antes de v2.1.219, a resposta omitia `fast_mode_state` quando fast mode não estava disponível e nunca carregava uma razão. Para os códigos de razão e seus significados, veja [`fast_mode_disabled_reason`](#sdkresultmessage) na mensagem de resultado.893A resposta sempre informa `fast_mode_state` e, quando algo bloqueia o [modo rápido](/docs/pt/fast-mode), `fast_mode_disabled_reason` traz o código do motivo junto com ele, para que você possa explicar o estado bloqueado em vez de deduzir novamente a disponibilidade. Ambos os comportamentos requerem o Claude Code v2.1.219 ou posterior. Antes da v2.1.219, a resposta omitia `fast_mode_state` quando o modo rápido não estava disponível e nunca continha um motivo. Para os códigos de motivo e seus significados, consulte [`fast_mode_disabled_reason`](#sdkresultmessage) na mensagem de resultado.

889 894 

890O wrapper de resposta de controle para um `initialize` bem-sucedido também carrega um array `pending_permission_requests`. O campo está no wrapper de resposta em si, não na carga `SDKControlInitializeResponse` acima. Cada entrada é uma mensagem `control_request` completa com a mesma forma `{ type: "control_request", request_id, request }` que a sessão transmite para solicitações de permissão durante a execução.895O wrapper da resposta de controle para um `initialize` bem-sucedido também contém um array `pending_permission_requests`. O campo está no próprio wrapper da resposta, não no payload `SDKControlInitializeResponse` acima. Cada entrada é uma mensagem `control_request` completa com o mesmo formato `{ type: "control_request", request_id, request }` que a sessão transmite para requisições de permissão durante a execução.

891 896 

892O array lista as solicitações de permissão que este processo Claude Code emitiu e ainda não resolveu. O SDK lê o array para você e despacha cada entrada para seu callback [`canUseTool`](#canusetool), o mesmo reenvio que [`reinitialize()`](#query-object) dispara após uma lacuna de transporte. Trate IDs de solicitação repetidos idempotentemente, porque uma entrada pode repetir uma solicitação que o callback já recebeu antes da conexão cair.897O array lista as requisições de permissão que este processo do Claude Code emitiu e ainda não resolveu. O SDK lê o array para você e despacha cada entrada para seu callback [`canUseTool`](#canusetool), a mesma reentrega que [`reinitialize()`](#query-object) aciona após uma lacuna de transporte. Trate IDs de requisição repetidos de forma idempotente, porque uma entrada pode repetir uma requisição que o callback já recebeu antes de a conexão cair.

893 898 

894O array está sempre presente em uma resposta `initialize` bem-sucedida e está vazio quando este processo não tem nenhuma solicitação de permissão não resolvida. Requer Claude Code v2.1.268 ou posterior. Versões anteriores poderiam omitir o campo, então se você analisar o protocolo de fio você mesmo, trate um campo ausente como uma CLI mais antiga em vez de como prova de que nada está pendente.899O array está sempre presente em uma resposta `initialize` bem-sucedida e fica vazio quando este processo não tem requisição de permissão não resolvida. Requer o Claude Code v2.1.268 ou posterior. Versões anteriores podiam omitir o campo, portanto, se você analisa o protocolo de comunicação por conta própria, trate um campo ausente como uma CLI mais antiga, e não como prova de que nada está pendente.

895 900 

896<h3 id="sdkcontrolinterruptresponse">901<h3 id="sdkcontrolinterruptresponse">

897 `SDKControlInterruptResponse`902 `SDKControlInterruptResponse`

898</h3>903</h3>

899 904 

900O recebimento de interrupção: o valor que [`interrupt()`](#query-object) resolve em uma CLI que anuncia a capacidade `interrupt_receipt_v1` em [`SDKSystemMessage.capabilities`](#sdksystemmessage). Requer Claude Code v2.1.205 ou posterior. CLIs anteriores respondem à interrupção com uma carga de sucesso vazia, então `interrupt()` resolve para `undefined`.905O recibo de interrupção: o valor com que [`interrupt()`](#query-object) resolve em uma CLI que anuncia a capacidade `interrupt_receipt_v1` em [`SDKSystemMessage.capabilities`](#sdksystemmessage). Requer o Claude Code v2.1.205 ou posterior. CLIs anteriores respondem à interrupção com um payload de sucesso vazio, portanto `interrupt()` resolve para `undefined`.

901 906 

902```typescript theme={null}907```typescript theme={null}

903type SDKControlInterruptResponse = {908type SDKControlInterruptResponse = {


906};911};

907```912```

908 913 

909`still_queued` lista os UUIDs das mensagens de usuário que estavam pendentes quando a interrupção chegou: mensagens ainda na fila, mais qualquer mensagem que Claude Code já havia tirado da fila para o próximo turno. Uma vez que o primeiro turno da sessão começou, Claude Code processa as mensagens listadas após a interrupção a menos que você as cancele primeiro, e pode mesclar várias em um turno. Se você interromper antes do primeiro turno começar, Claude Code aborta esse turno assim que ele inicia, e as mensagens listadas nesse turno não recebem resposta.914`still_queued` lista os UUIDs das mensagens do usuário que estavam pendentes quando a interrupção chegou: mensagens ainda na fila, além de quaisquer mensagens que o Claude Code já havia retirado da fila para o próximo turno. Depois que o primeiro turno da sessão tiver começado, o Claude Code processa as mensagens listadas após a interrupção, a menos que você as cancele antes, e pode mesclar várias em um único turno. Se você interromper antes de o primeiro turno começar, o Claude Code aborta esse turno assim que ele começa, e as mensagens listadas nesse turno não recebem resposta.

910 915 

911Use o recebimento para decidir se deve reenviar algo. Uma mensagem listada que você não cancela entra na conversa independentemente de receber uma resposta, então reenviá-la a entrega para Claude duas vezes.916Use o recibo para decidir se deve reenviar algo. Uma mensagem listada que você não cancela entra na conversa, recebendo resposta ou não, portanto reenviá-la a entrega a Claude duas vezes.

912 917 

913Interprete a lista com estas ressalvas:918Interprete a lista com estas ressalvas:

914 919 

915* Apenas mensagens que foram enfileiradas com um UUID aparecem. Um array vazio não significa que nada mais será executado.920* Apenas mensagens que foram enfileiradas com um UUID aparecem. Um array vazio não significa que nada mais será executado.

916* Apenas mensagens da thread principal estão listadas. Mensagens endereçadas a um subagente estão fora do escopo.921* Apenas mensagens da thread principal são listadas. Mensagens endereçadas a um subagente estão fora do escopo.

917* A lista pode incluir UUIDs que seu cliente nunca enviou, como [acionadores de tarefa agendada](/docs/pt/scheduled-tasks). Ignore UUIDs que você não reconhece em vez de tratá-los como um erro.922* A lista pode incluir UUIDs que seu cliente nunca enviou, como gatilhos de [tarefas agendadas](/docs/pt/scheduled-tasks). Ignore UUIDs que você não reconhece em vez de tratá-los como erro.

918 923 

919Um cliente que dirige o protocolo de controle da CLI diretamente, em vez de através de `interrupt()`, pode definir `cancel_queued: true` na solicitação de controle `interrupt`. Claude Code v2.1.219 e posterior anuncia suporte com a capacidade `interrupt_cancel_queued_v1` em [`SDKSystemMessage.capabilities`](#sdksystemmessage); CLIs mais antigas ignoram o campo e deixam mensagens enfileiradas para executar como de costume. Tal interrupção também cancela cada mensagem que seria listada sob `still_queued`: o recebimento as lista sob `cancelled` em vez disso, `still_queued` está vazio, e nenhuma delas é executada.924Um cliente que controla o protocolo de controle da CLI diretamente, em vez de usar `interrupt()`, pode definir `cancel_queued: true` na requisição de controle `interrupt`. O Claude Code v2.1.219 e posterior anuncia suporte com a capacidade `interrupt_cancel_queued_v1` em [`SDKSystemMessage.capabilities`](#sdksystemmessage); CLIs mais antigas ignoram o campo e deixam as mensagens enfileiradas serem executadas normalmente. Essa interrupção também cancela todas as mensagens que, de outra forma, seriam listadas em `still_queued`: o recibo as lista em `cancelled`, `still_queued` fica vazio e nenhuma delas é executada.

920 925 

921A lista `cancelled` carrega as mesmas ressalvas que `still_queued`. O método `interrupt()` nunca envia `cancel_queued`, então recebimentos que ele resolve não carregam `cancelled`.926A lista `cancelled` tem as mesmas ressalvas que `still_queued`. O método `interrupt()` nunca envia `cancel_queued`, portanto os recibos com que ele resolve não contêm `cancelled`.

922 927 

923O recebimento é um snapshot tirado no momento em que a interrupção é processada, e em uma interrupção limpa chega antes do [`SDKResultMessage`](#sdkresultmessage) do turno interrompido. Leia o recebimento em vez de inspecionar a fila após esse resultado: o loop inicia o próximo turno enfileirado imediatamente, então a fila que você inspeciona após o resultado já mudou.928O recibo é um instantâneo tirado no momento em que a interrupção é processada e, em uma interrupção limpa, chega antes da [`SDKResultMessage`](#sdkresultmessage) do turno interrompido. Leia o recibo em vez de inspecionar a fila após esse resultado: o loop inicia o próximo turno enfileirado imediatamente, portanto a fila que você inspeciona após o resultado já mudou.

924 929 

925<h3 id="sdkcontrolgetcontextusageresponse">930<h3 id="sdkcontrolgetcontextusageresponse">

926 `SDKControlGetContextUsageResponse`931 `SDKControlGetContextUsageResponse`

927</h3>932</h3>

928 933 

929Tipo de retorno de [`getContextUsage()`](#query-object). Com o `detail` padrão, este é o mesmo payload que Claude Code renderiza para o comando `/context` em uma sessão interativa, então junto com as contagens de token carrega campos de exibição como `color` e `gridRows` que Claude Code usa para desenhar a grade de uso `/context`.934Tipo de retorno de [`getContextUsage()`](#query-object). Com o `detail` padrão, este é o mesmo payload que o Claude Code renderiza para o comando `/context` em uma sessão interativa, portanto, além das contagens de tokens, contém campos de exibição como `color` e `gridRows` que o Claude Code usa para desenhar a grade de uso do `/context`.

930 935 

931O argumento `detail` opcional do método escolhe como Claude Code conta cada categoria. O argumento `detail` requer Agent SDK v0.3.257 ou posterior.936O argumento opcional `detail` do método escolhe como o Claude Code conta cada categoria. O argumento `detail` requer o Agent SDK v0.3.257 ou posterior.

932 937 

933* **`'full'`**: o padrão. Claude Code conta cada categoria com [solicitações de API de contagem de token](https://platform.claude.com/docs/pt/build-with-claude/token-counting). Estas solicitações não aparecem no fluxo de mensagens, então rastreamento de custo que lê o fluxo não as verá. Na API Anthropic, contagem de token não é cobrada.938* **`'full'`**: o padrão. O Claude Code conta cada categoria com requisições de API de [contagem de tokens](https://platform.claude.com/docs/en/build-with-claude/token-counting). Essas requisições não aparecem no fluxo de mensagens, portanto o acompanhamento de custos que lê o fluxo não as verá. Na API da Anthropic, a contagem de tokens não é cobrada.

934* **`'summary'`**: passe `{ detail: 'summary' }` para obter uma resposta do uso da última resposta e estimativas locais em vez disso. Nenhuma solicitação de contagem de token sai, e os números por categoria são aproximados.939* **`'summary'`**: passe `{ detail: 'summary' }` para obter uma resposta a partir do uso da última resposta e de estimativas locais. Nenhuma requisição de contagem de tokens é enviada, e os números por categoria são aproximados.

935 940 

936Quando você envia `/context` como um prompt em vez de chamar o método, Claude Code anexa uma carga [`SDKContextUsage`](#sdkcontextusage) ao campo `context_usage` da mensagem do assistente que entrega o resultado. Esse campo requer Agent SDK v0.3.232 ou posterior.941Quando você envia `/context` como prompt em vez de chamar o método, o Claude Code anexa um payload [`SDKContextUsage`](#sdkcontextusage) ao campo `context_usage` da mensagem de assistente que entrega o resultado. Esse campo requer o Agent SDK v0.3.232 ou posterior.

937 942 

938```typescript theme={null}943```typescript theme={null}

939type SDKControlGetContextUsageResponse = {944type SDKControlGetContextUsageResponse = {


1030};1035};

1031```1036```

1032 1037 

1033Leia atribuição de token da coleção de campos:1038Leia a atribuição de tokens a partir dos campos de coleção:

1034 1039 

1035* `categories` contém os totais por categoria. Cada entrada `kind` classifica a linha com os mesmos valores que [`SDKContextUsageCategory`](#sdkcontextusagecategory). Classifique linhas nele em vez de no `name` de exibição. O campo requer Agent SDK v0.3.268 ou posterior.1040* `categories` contém os totais por categoria. O `kind` de cada entrada classifica a linha com os mesmos valores de [`SDKContextUsageCategory`](#sdkcontextusagecategory). Classifique as linhas com base nele, e não no `name` de exibição. O campo requer o Agent SDK v0.3.268 ou posterior.

1036* `mcpTools` e `agents` atribuem tokens a ferramentas MCP individuais e subagentes.1041* `mcpTools` e `agents` atribuem tokens a ferramentas MCP e subagentes individuais.

1037* `memoryFiles` lista cada arquivo de memória carregado com seu custo.1042* `memoryFiles` lista cada arquivo de memória carregado com seu custo.

1038* `skills.skillFrontmatter` atribui os tokens da listagem de skills a cada skill incluída. As contagens por skill medem cada entrada de listagem de skill conforme Claude Code realmente a envia, que pode ser mais curta que o frontmatter completo da skill. Compare `skills.totalSkills` com `skills.includedSkills` para ver se cada skill descoberta fez parte da listagem.1043* `skills.skillFrontmatter` atribui os tokens da listagem de skills a cada skill incluída. As contagens por skill medem a entrada de cada skill na listagem conforme o Claude Code realmente a envia, o que pode ser mais curto que o frontmatter completo da skill. Compare `skills.totalSkills` com `skills.includedSkills` para ver se todas as skills descobertas entraram na listagem.

1039 1044 

1040`totalTokens` é o uso de contexto atual da sessão, e `maxTokens` é a janela contra a qual o uso é medido. Essa janela é a janela de contexto do modelo, ou a janela de auto-compactação mais baixa quando uma se aplica. `rawMaxTokens` carrega o mesmo valor que `maxTokens`, e `percentage` é `totalTokens` como uma porcentagem arredondada dessa janela. `apiUsage` contém o uso da resposta de API mais recente, não um total em execução para a sessão.1045`totalTokens` é o uso atual de contexto da sessão, e `maxTokens` é a janela em relação à qual esse uso é medido. Essa janela é a janela de contexto do modelo, ou a janela menor de compactação automática quando houver uma. `rawMaxTokens` contém o mesmo valor que `maxTokens`, e `percentage` é `totalTokens` como uma porcentagem arredondada dessa janela. `apiUsage` contém o uso da resposta de API mais recente, não um total acumulado da sessão.

1041 1046 

1042Claude Code deixa os diagnósticos opcionais `deferredBuiltinTools`, `systemTools`, e `systemPromptSections` não definidos, então espere que estejam ausentes mesmo que o tipo os declare.1047O Claude Code deixa sem definir os diagnósticos opcionais `deferredBuiltinTools`, `systemTools` e `systemPromptSections`, portanto espere que estejam ausentes, embora o tipo os declare.

1043 1048 

1044<h3 id="sdkcontrolreadfileresponse">1049<h3 id="sdkcontrolreadfileresponse">

1045 `SDKControlReadFileResponse`1050 `SDKControlReadFileResponse`


1056};1061};

1057```1062```

1058 1063 

1059`contents` contém o texto do arquivo, ou dados base64 quando você solicitou `encoding: 'base64'`; o campo `encoding` da resposta é definido como `'base64'` nesse caso. `absPath` é o caminho absoluto resolvido. `truncated` é definido quando o arquivo era mais longo que o limite `maxBytes` e o conteúdo foi cortado nesse limite.1064`contents` contém o texto do arquivo, ou dados em base64 quando você solicitou `encoding: 'base64'`; nesse caso, o campo `encoding` da resposta é definido como `'base64'`. `absPath` é o caminho absoluto resolvido. `truncated` é definido quando o arquivo era maior que o limite `maxBytes` e o conteúdo foi cortado nesse limite.

1060 1065 

1061<h4 id="what-readfile-can-read">1066<h4 id="what-readfile-can-read">

1062 O que `readFile()` pode ler1067 O que `readFile()` pode ler

1063</h4>1068</h4>

1064 1069 

1065`readFile()` serve um conjunto mais estreito de arquivos do que a ferramenta Read:1070`readFile()` fornece um conjunto de arquivos mais restrito que a ferramenta Read:

1066 1071 

1067* Um arquivo regular dentro de um dos diretórios de trabalho da sessão, como `cwd` e `additionalDirectories`1072* Um arquivo regular dentro de um dos diretórios de trabalho da sessão, como `cwd` e `additionalDirectories`

1068* Alguns dos próprios arquivos do Claude Code para a sessão, como resultados de ferramentas1073* Alguns dos próprios arquivos do Claude Code para a sessão, como resultados de ferramentas

1069 1074 

1070As regras de negação e solicitação de Read ainda bloqueiam um caminho correspondente, e uma regra de permissão ampla de Read não abre o resto do sistema de arquivos para `readFile()`. Para qualquer outra coisa a chamada resolve com `null`.1075Regras de negação e de confirmação de `Read` ainda bloqueiam um caminho correspondente, e uma regra ampla de permissão de `Read` não abre o restante do sistema de arquivos para `readFile()`. Para qualquer outra coisa, a chamada resolve com `null`.

1071 1076 

1072<h3 id="sdkcontrolreloadpluginsresponse">1077<h3 id="sdkcontrolreloadpluginsresponse">

1073 `SDKControlReloadPluginsResponse`1078 `SDKControlReloadPluginsResponse`


1098 1103 

1099Os campos de coleção descrevem a sessão após a chamada:1104Os campos de coleção descrevem a sessão após a chamada:

1100 1105 

1101* `commands`, `agents`, e `mcpServers`: os comandos, subagentes e status do servidor MCP da sessão, nas mesmas formas que `supportedCommands()`, `supportedAgents()`, e `mcpServerStatus()` retornam. `supportedAgents()` continua retornando a lista capturada na inicialização, então leia `agents` aqui para o conjunto após um recarregamento1106* `commands`, `agents` e `mcpServers`: os comandos, subagentes e o status dos servidores MCP da sessão, nos mesmos formatos que `supportedCommands()`, `supportedAgents()` e `mcpServerStatus()` retornam. `supportedAgents()` continua retornando a lista capturada na inicialização, portanto leia `agents` aqui para obter o conjunto após um recarregamento

1102* `plugins`: cada plugin carregado com seu `name` e `path` de instalação. `version` repete o que o manifesto do plugin declara e é controlado pelo autor do plugin, então valide-o antes de confiar nele. É omitido quando o manifesto não declara nenhum1107* `plugins`: cada plugin carregado com seu `name` e o `path` de instalação. `version` repete o que o manifesto do plugin declara e é controlado pelo autor do plugin, portanto valide-o antes de confiar nele. É omitido quando o manifesto não declara nenhuma versão

1103* `error_count`: o número de erros ao carregar plugins1108* `error_count`: o número de erros ao carregar plugins

1104 1109 

1105Passe `{ holdOnCacheImpact: true }` para `reloadPlugins()` para manter um recarregamento que invalidaria o cache de prompt da conversa em vez de aplicá-lo. Claude Code executa a verificação que o comando interativo `/reload-plugins` faz antes de [avisar sobre o custo do cache](/docs/pt/prompt-caching#enabling-or-disabling-a-plugin). A opção requer Agent SDK v0.3.268 ou posterior. Um executável Claude Code mais antigo que v2.1.268, como um que você aponta `pathToClaudeCodeExecutable` para, ignora a opção e aplica o recarregamento.1110Passe `{ holdOnCacheImpact: true }` para `reloadPlugins()` para reter um recarregamento que invalidaria o cache de prompt da conversa em vez de aplicá-lo. O Claude Code executa a verificação que o comando interativo `/reload-plugins` faz antes de [avisar sobre o custo do cache](/docs/pt/prompt-caching#enabling-or-disabling-a-plugin). A opção requer o Agent SDK v0.3.268 ou posterior. Um executável do Claude Code anterior à v2.1.268, como um para o qual você aponta `pathToClaudeCodeExecutable`, ignora a opção e aplica o recarregamento.

1106 1111 

1107Quando você passa a opção, leia `held` para aprender o que aconteceu:1112Quando você passa a opção, leia `held` para saber o que aconteceu:

1108 1113 

1109* `true`: o recarregamento não foi aplicado, e os campos de coleção descrevem a sessão como ainda está. `cache_impact` diz o que aplicar mudaria. Para aplicar mesmo assim, chame `reloadPlugins()` novamente sem a opção.1114* `true`: o recarregamento não foi aplicado, e os campos de coleção descrevem a sessão como ela ainda está. `cache_impact` informa o que a aplicação mudaria. Para aplicar mesmo assim, chame `reloadPlugins()` novamente sem a opção.

1110* `false`: a verificação não encontrou impacto no cache, e o recarregamento foi aplicado.1115* `false`: a verificação não encontrou impacto no cache, e o recarregamento foi aplicado.

1111* Ausente: você não passou a opção, ou o executável Claude Code é mais antigo que v2.1.268 e aplicou o recarregamento.1116* Ausente: você não passou a opção, ou o executável do Claude Code é anterior à v2.1.268 e aplicou o recarregamento.

1112 1117 

1113`cache_impact` está presente apenas junto com `held: true`. `mcp_servers_added` e `mcp_servers_removed` nomeiam os servidores MCP do plugin que o recarregamento registraria ou descartaria, como nomes com escopo `plugin:<plugin>:<server>`. Os nomes são criados pelo plugin, então valide-os antes de mostrá-los. `lsp_tool_change` diz se aplicar adicionaria ou removeria a ferramenta LSP, ou `null` quando não faria nenhum dos dois. As formas `may-` significam que a verificação não conseguiu ver completamente o conjunto de plugins pendente.1118`cache_impact` está presente apenas junto com `held: true`. `mcp_servers_added` e `mcp_servers_removed` nomeiam os servidores MCP de plugins que o recarregamento registraria ou removeria, como nomes com escopo `plugin:<plugin>:<server>`. Os nomes são definidos pelos autores dos plugins, portanto valide-os antes de exibi-los. `lsp_tool_change` informa se a aplicação adicionaria ou removeria a ferramenta LSP, ou `null` quando não faria nenhuma das duas coisas. As formas `may-` significam que a verificação não conseguiu enxergar completamente o conjunto de plugins pendente.

1114 1119 

1115<h3 id="sdkcontrolreloadskillsresponse">1120<h3 id="sdkcontrolreloadskillsresponse">

1116 `SDKControlReloadSkillsResponse`1121 `SDKControlReloadSkillsResponse`


1124};1129};

1125```1130```

1126 1131 

1127`skills` lista as skills disponíveis após o recarregamento, na mesma forma [`SlashCommand`](#slashcommand) que `supportedCommands()` retorna.1132`skills` lista as skills disponíveis após o recarregamento, no mesmo formato [`SlashCommand`](#slashcommand) que `supportedCommands()` retorna.

1128 1133 

1129<h3 id="sdkcontrolreloadoutputstylesresponse">1134<h3 id="sdkcontrolreloadoutputstylesresponse">

1130 `SDKControlReloadOutputStylesResponse`1135 `SDKControlReloadOutputStylesResponse`


1144 `SDKControlMcpReadResourceResponse`1149 `SDKControlMcpReadResourceResponse`

1145</h3>1150</h3>

1146 1151 

1147Tipo de retorno de [`readMcpResource()`](#query-object), carregando o resultado `resources/read` do servidor MCP. Requer TypeScript Agent SDK v0.3.280 ou posterior.1152Tipo de retorno de [`readMcpResource()`](#query-object), contendo o resultado de `resources/read` do servidor MCP. Requer o TypeScript Agent SDK v0.3.280 ou posterior.

1148 1153 

1149```typescript theme={null}1154```typescript theme={null}

1150type SDKControlMcpReadResourceResponse = {1155type SDKControlMcpReadResourceResponse = {


1158};1163};

1159```1164```

1160 1165 

1161Passe `readMcpResource()` o nome do servidor conforme `mcpServerStatus()` o relata e um URI `ui://`, como o `ui.resourceUri` que uma ferramenta declara em sua [`_meta`](#mcpserverstatus). A chamada rejeita para qualquer outro esquema de URI, para um [servidor MCP SDK](#createsdkmcpserver) que sua aplicação hospeda a si mesma, e para um servidor que não está conectado. Está disponível quando a mensagem de inicialização [`capabilities`](#sdksystemmessage) incluem `mcp_read_resource_v1`.1166Passe para `readMcpResource()` o nome do servidor conforme `mcpServerStatus()` o informa e um URI `ui://`, como o `ui.resourceUri` que uma ferramenta declara em seu [`_meta`](#mcpserverstatus). A chamada é rejeitada para qualquer outro esquema de URI, para um [servidor MCP do SDK](#createsdkmcpserver) que seu próprio aplicativo hospeda e para um servidor que não está conectado. Está disponível quando as [`capabilities`](#sdksystemmessage) da mensagem de inicialização incluem `mcp_read_resource_v1`.

1162 1167 

1163Cada entrada `contents` é um item de conteúdo conforme o servidor o enviou, menos qualquer chave `_meta` sob o prefixo `com.anthropic/`, que é reservado para Claude Code. `blob` contém dados base64 para um item binário, e `_meta` é o próprio `_meta` do item, onde um servidor MCP Apps coloca o `ui.csp` e `ui.permissions` do recurso.1168Cada entrada de `contents` é um item de conteúdo conforme o servidor o enviou, sem nenhuma chave `_meta` sob o prefixo `com.anthropic/`, que é reservado para o Claude Code. `blob` contém dados em base64 para um item binário, e `_meta` é o próprio `_meta` do item, onde um servidor MCP Apps coloca o `ui.csp` e o `ui.permissions` do recurso.

1164 1169 

1165O conteúdo é HTML de terceiros não confiável, então renderize-o em um sandbox.1170O conteúdo é HTML de terceiros não confiável, portanto renderize-o em um sandbox.

1166 1171 

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

1168 `AgentDefinition`1173 `AgentDefinition`

1169</h3>1174</h3>

1170 1175 

1171Configuração para um subagente definido programaticamente.1176Configuração de um subagente definido programaticamente.

1172 1177 

1173```typescript theme={null}1178```typescript theme={null}

1174type AgentDefinition = {1179type AgentDefinition = {


1193| Campo | Obrigatório | Descrição |1198| Campo | Obrigatório | Descrição |

1194| :- | :- | :- |1199| :- | :- | :- |

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

1196| `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 |1201| `tools` | Não | Array de nomes de ferramentas permitidas. Se omitido, herda todas as [ferramentas disponíveis 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 |

1197| `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 |1202| `disallowedTools` | Não | Array de nomes de ferramentas a proibir explicitamente para este agente. Padrões no nível de servidor MCP também são aceitos: `mcp__server` ou `mcp__server__*` remove todas as ferramentas desse servidor, e `mcp__*` remove todas as ferramentas MCP de qualquer servidor |

1198| `prompt` | Sim | O prompt do sistema do agente |1203| `prompt` | Sim | O system prompt do agente |

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

1200| `mcpServers` | Não | Especificações de servidor MCP para este agente |1205| `mcpServers` | Não | Especificações de servidores MCP para este agente |

1201| `skills` | Não | Array de nomes de skills para pré-carregar no contexto do agente |1206| `skills` | Não | Array de nomes de skills a pré-carregar no contexto do agente |

1202| `initialPrompt` | Não | Auto-enviado como o primeiro turno de usuário quando este agente é executado como o agente da thread principal |1207| `initialPrompt` | Não | Enviado automaticamente como o primeiro turno do usuário quando este agente é executado como agente da thread principal |

1203| `maxTurns` | Não | Número máximo de turnos agênticos (round-trips de API) antes de parar |1208| `maxTurns` | Não | Número máximo de turnos agênticos (idas e voltas da API) antes de parar |

1204| `background` | Não | Executar este agente como uma tarefa de fundo não-bloqueante quando invocado |1209| `background` | Não | Executa este agente como uma tarefa em segundo plano não bloqueante quando invocado |

1205| `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 |1210| `omitClaudeMd` | Não | Executa este agente sem os arquivos CLAUDE.md de usuário, de projeto e locais quando ele é executado como subagente; os arquivos de política gerenciada ainda são carregados. Use para agentes que obtêm tudo de que precisam a partir do prompt da ferramenta Agent. Ignorado quando este agente é executado como agente da thread principal. Requer o TypeScript Agent SDK v0.3.271 ou posterior |

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

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

1208| `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) |1213| `permissionMode` | Não | Modo de permissão para a execução de ferramentas dentro deste agente. As [regras de herança de subagentes](/docs/pt/agent-sdk/permissions#available-modes) decidem quando ele se aplica. Consulte [`PermissionMode`](#permissionmode) |

1209| `criticalSystemReminder_EXPERIMENTAL` | Não | Experimental: Lembrete crítico adicionado ao prompt do sistema |1214| `criticalSystemReminder_EXPERIMENTAL` | Não | Experimental: lembrete crítico adicionado ao system prompt |

1210 1215 

1211<h3 id="agentmcpserverspec">1216<h3 id="agentmcpserverspec">

1212 `AgentMcpServerSpec`1217 `AgentMcpServerSpec`

1213</h3>1218</h3>

1214 1219 

1215Especifica servidores MCP disponíveis para um subagente. Pode ser um nome de servidor (string referenciando um servidor da configuração `mcpServers` do pai) ou um registro de configuração de servidor inline mapeando nomes de servidor para configs.1220Especifica os servidores MCP disponíveis para um subagente. Pode ser um nome de servidor (string que referencia um servidor da configuração `mcpServers` do pai) ou um registro de configuração de servidor inline que mapeia nomes de servidores para configurações.

1216 1221 

1217```typescript theme={null}1222```typescript theme={null}

1218type AgentMcpServerSpec = string | Record<string, McpServerConfigForProcessTransport>;1223type AgentMcpServerSpec = string | Record<string, McpServerConfigForProcessTransport>;


1224 `SettingSource`1229 `SettingSource`

1225</h3>1230</h3>

1226 1231 

1227Controla quais fontes de configuração baseadas em sistema de arquivos o SDK carrega configurações.1232Controla de quais fontes de configuração baseadas no sistema de arquivos o SDK carrega as configurações.

1228 1233 

1229```typescript theme={null}1234```typescript theme={null}

1230type SettingSource = "user" | "project" | "local";1235type SettingSource = "user" | "project" | "local";


1233| Valor | Descrição | Localização |1238| Valor | Descrição | Localização |

1234| :- | :- | :- |1239| :- | :- | :- |

1235| `'user'` | Configurações globais do usuário | `~/.claude/settings.json` |1240| `'user'` | Configurações globais do usuário | `~/.claude/settings.json` |

1236| `'project'` | Configurações de projeto compartilhadas (controladas por versão) | `.claude/settings.json` |1241| `'project'` | Configurações compartilhadas do projeto (com controle de versão) | `.claude/settings.json` |

1237| `'local'` | Configurações de projeto local, gitignored quando Claude Code salva uma configuração nela | `.claude/settings.local.json` |1242| `'local'` | Configurações locais do projeto, adicionadas ao gitignore quando o Claude Code salva uma configuração nele | `.claude/settings.local.json` |

1238 1243 

1239<h4 id="default-behavior">1244<h4 id="default-behavior">

1240 Comportamento padrão1245 Comportamento padrão

1241</h4>1246</h4>

1242 1247 

1243Quando `settingSources` é omitido ou `undefined`, `query()` carrega as mesmas configurações do sistema de arquivos que a CLI do Claude Code: usuário, projeto e local. Veja [O que settingSources não controla](/docs/pt/agent-sdk/claude-code-features#what-settingsources-does-not-control) para entradas que são lidas independentemente desta opção, e como desativá-las.1248Quando `settingSources` é omitido ou `undefined`, `query()` carrega as mesmas configurações do sistema de arquivos que a CLI do Claude Code: user, project e local. Consulte [O que settingSources não controla](/docs/pt/agent-sdk/claude-code-features#what-settingsources-does-not-control) para ver as entradas que são lidas independentemente desta opção e como desativá-las.

1244 1249 

1245<h4 id="why-use-settingsources">1250<h4 id="why-use-settingsources">

1246 Por que usar settingSources1251 Por que usar settingSources


1251```typescript theme={null}1256```typescript theme={null}

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

1253 1258 

1254// Não carregar configurações de usuário, projeto ou local do disco1259// Do not load user, project, or local settings from disk

1255const result = query({1260const result = query({

1256 prompt: "Analyze this code",1261 prompt: "Analyze this code",

1257 options: { settingSources: [] }1262 options: { settingSources: [] }


1263```typescript theme={null}1268```typescript theme={null}

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

1265 1270 

1266// Carregar apenas configurações de projeto, ignorar usuário e local1271// Load only project settings, ignore user and local

1267const result = query({1272const result = query({

1268 prompt: "Run CI checks",1273 prompt: "Run CI checks",

1269 options: {1274 options: {

1270 settingSources: ["project"] // Apenas .claude/settings.json1275 settingSources: ["project"] // Only .claude/settings.json

1271 }1276 }

1272});1277});

1273```1278```

1274 1279 

1275Para carregar instruções de projeto CLAUDE.md, inclua `"project"` em `settingSources`. 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.1280Para carregar as instruções de projeto do CLAUDE.md, inclua `"project"` em `settingSources`. Consulte [Modificar system prompts](/docs/pt/agent-sdk/modifying-system-prompts#claude-md-files-for-project-level-instructions) para saber como o carregamento do CLAUDE.md interage com as opções de system prompt.

1276 1281 

1277<h4 id="settings-precedence">1282<h4 id="settings-precedence">

1278 Precedência de configurações1283 Precedência das configurações

1279</h4>1284</h4>

1280 1285 

1281Quando múltiplas fontes são carregadas, as configurações são mescladas com esta precedência (maior para menor):1286Quando várias fontes são carregadas, as configurações são mescladas com esta precedência (da mais alta para a mais baixa):

1282 1287 

12831. Configurações locais (`.claude/settings.local.json`)12881. Configurações locais (`.claude/settings.local.json`)

12842. Configurações de projeto (`.claude/settings.json`)12892. Configurações do projeto (`.claude/settings.json`)

12853. Configurações do usuário (`~/.claude/settings.json`)12903. Configurações do usuário (`~/.claude/settings.json`)

1286 1291 

1287Opções programáticas como `agents`, `allowedTools`, 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.1292Opções programáticas como `agents`, `allowedTools` e `settings` sobrescrevem as configurações de user, project e local do sistema de arquivos. As configurações de política gerenciada têm precedência sobre as opções programáticas.

1288 1293 

1289<h3 id="permissionmode">1294<h3 id="permissionmode">

1290 `PermissionMode`1295 `PermissionMode`


1292 1297 

1293```typescript theme={null}1298```typescript theme={null}

1294type PermissionMode =1299type PermissionMode =

1295 | "default" // Comportamento de permissão padrão1300 | "default" // Standard permission behavior

1296 | "acceptEdits" // Auto-aceitar edições de arquivo1301 | "acceptEdits" // Auto-accept file edits

1297 | "bypassPermissions" // Bypass de verificações de permissão; regras de solicitação explícita ainda solicitam1302 | "bypassPermissions" // Bypass permission checks; explicit ask rules still prompt

1298 | "plan" // Plan Mode - explorar sem editar1303 | "plan" // Planning mode - explore without editing

1299 | "dontAsk" // Não solicitar permissões, negar se não pré-aprovado1304 | "dontAsk" // Don't prompt for permissions, deny if not pre-approved

1300 | "auto"; // Classificador de modelo aprova ou nega prompts de permissão1305 | "auto"; // A model classifier reviews actions such as shell commands and network requests

1301```1306```

1302 1307 

1303<h3 id="canusetool">1308<h3 id="canusetool">


1306 1311 

1307Tipo de função de permissão personalizada para controlar o uso de ferramentas.1312Tipo de função de permissão personalizada para controlar o uso de ferramentas.

1308 1313 

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

1310 1315 

1311Uma 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 [Como permissões são avaliadas](/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`.1316Uma regra de allow não pré-aprova as [ações que nenhum modo aprova automaticamente](/docs/pt/permission-modes#actions-no-mode-auto-approves); consulte [Como as permissões são avaliadas](/docs/pt/agent-sdk/permissions#how-permissions-are-evaluated) para saber quais delas chegam ao callback e o que acontece nos modos `dontAsk` e `auto`.

1312 1317 

1313```typescript theme={null}1318```typescript theme={null}

1314type CanUseTool = (1319type CanUseTool = (


1332| Opção | Tipo | Descrição |1337| Opção | Tipo | Descrição |

1333| :- | :- | :- |1338| :- | :- | :- |

1334| `signal` | `AbortSignal` | Sinalizado se a operação deve ser abortada |1339| `signal` | `AbortSignal` | Sinalizado se a operação deve ser abortada |

1335| `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. |1340| `suggestions` | [`PermissionUpdate`](#permissionupdate)`[]` | Atualizações de permissão sugeridas para que o usuário não seja solicitado novamente para esta ferramenta. Prompts do Bash incluem uma sugestão com o [destino](#permissionupdatedestination) `localSettings`, de modo que retorná-la em `updatedPermissions` grava a regra em `.claude/settings.local.json` e ela persiste entre sessões. |

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

1337| `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 |1342| `mcpServer` | `{ name: string; source: string }` | Para uma ferramenta `mcp__*`, o servidor MCP que a fornece e a origem da definição desse servidor, com os campos de [`McpServerProvenance`](#mcpserverprovenance). Ausente para outras ferramentas. Requer Agent SDK v0.3.274 ou posterior |

1338| `decisionReason` | `string` | Explica por que esta solicitação de permissão foi acionada |1343| `decisionReason` | `string` | Explica por que esta requisição de permissão foi acionada |

1339| `defaultToNo` | `boolean` | Quando `true`, um único toque errado não deve aprovar esta solicitação: abra seu prompt na opção de declínio, não pré-selecione aprovar, e não ofereça nenhum atalho de aprovação de uma tecla. Requer Agent SDK v0.3.268 ou posterior |1344| `defaultToNo` | `boolean` | Quando `true`, um único pressionamento de tecla acidental não deve aprovar esta requisição: abra seu prompt na opção de recusa, não pré-selecione a aprovação e não ofereça atalho de aprovação com uma única tecla. Requer Agent SDK v0.3.268 ou posterior |

1340| `suppressAlwaysAllowRule` | `boolean` | Quando `true`, não ofereça uma escolha de sempre-permitir persistente para esta solicitação, porque a regra que ela escreveria concede mais do que a ação da própria solicitação. Requer Agent SDK v0.3.268 ou posterior |1345| `suppressAlwaysAllowRule` | `boolean` | Quando `true`, não ofereça uma opção persistente de sempre permitir para esta requisição. Requer Agent SDK v0.3.268 ou posterior |

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

1342| `agentID` | `string` | Se executando dentro de um sub-agente, o ID do sub-agente |1347| `agentID` | `string` | Se estiver em execução dentro de um subagente, o ID do subagente |

1343| `requestId` | `string` | O `request_id` do envelope `control_request`. Uma `control_response` que sua aplicação envia fora do SDK, como um POST HTTP assinado, deve ecoar este valor para que o processo Claude Code possa corresponder a resposta à solicitação |1348| `requestId` | `string` | O `request_id` do envelope `control_request`. Um `control_response` que sua aplicação envia fora do SDK, como um HTTP POST assinado, deve repetir este valor para que o processo do Claude Code possa associar a resposta à requisição |

1344 1349 

1345O callback normalmente resolve a solicitação retornando um [`PermissionResult`](#permissionresult), que o SDK escreve de volta sobre seu transporte como a `control_response`. Retorne `null` apenas quando sua aplicação já enviou a `control_response` para esta solicitação sobre seu próprio canal, ecoando `requestId`; o SDK então pula escrever a resposta em seu transporte. Retornar `null` em qualquer outro caso deixa a chamada de ferramenta bloqueada indefinidamente, porque nenhuma `control_response` é jamais enviada e prompts de permissão não expiram.1350O callback normalmente resolve a requisição retornando um [`PermissionResult`](#permissionresult), que o SDK grava de volta em seu transporte como o `control_response`. Retorne `null` somente quando sua aplicação já tiver enviado o `control_response` para esta requisição por seu próprio canal, repetindo `requestId`; o SDK então deixa de gravar a resposta em seu transporte. Retornar `null` em qualquer outro caso deixa a chamada de ferramenta bloqueada indefinidamente, porque nenhum `control_response` é enviado e os prompts de permissão não atingem timeout.

1346 1351 

1347A opção `requestId` e o valor de retorno `null` requerem Claude Code v2.1.199 ou posterior.1352A opção `requestId` e o valor de retorno `null` requerem o Claude Code v2.1.199 ou posterior.

1348 1353 

1349<h3 id="permissionresult">1354<h3 id="permissionresult">

1350 `PermissionResult`1355 `PermissionResult`


1372 `ToolConfig`1377 `ToolConfig`

1373</h3>1378</h3>

1374 1379 

1375Configuração para comportamento de ferramenta integrada.1380Configuração do comportamento das ferramentas integradas.

1376 1381 

1377```typescript theme={null}1382```typescript theme={null}

1378type ToolConfig = {1383type ToolConfig = {


1384 1389 

1385| Campo | Tipo | Descrição |1390| Campo | Tipo | Descrição |

1386| :- | :- | :- |1391| :- | :- | :- |

1387| `askUserQuestion.previewFormat` | `'markdown' \| 'html'` | Opta pelo campo `preview` em opções [`AskUserQuestion`](/docs/pt/agent-sdk/user-input#question-format) e define seu formato de conteúdo. Quando não definido, Claude não emite visualizações |1392| `askUserQuestion.previewFormat` | `'markdown' \| 'html'` | Ativa o campo `preview` nas opções de [`AskUserQuestion`](/docs/pt/agent-sdk/user-input#question-format) e define o formato do seu conteúdo. Quando não definido, o Claude não emite pré-visualizações |

1388 1393 

1389<h3 id="mcpserverconfig">1394<h3 id="mcpserverconfig">

1390 `McpServerConfig`1395 `McpServerConfig`


1478 1483 

1479| Campo | Tipo | Descrição |1484| Campo | Tipo | Descrição |

1480| :- | :- | :- |1485| :- | :- | :- |

1481| `type` | `'local'` | Deve ser `'local'` (apenas plugins locais atualmente suportados) |1486| `type` | `'local'` | Deve ser `'local'` (atualmente, apenas plugins locais são suportados) |

1482| `path` | `string` | Caminho absoluto ou relativo para o diretório do plugin |1487| `path` | `string` | Caminho absoluto ou relativo para o diretório do plugin |

1483| `skipMcpDiscovery` | `boolean` | Quando `true`, o SDK carrega skills, hooks, agentes e comandos deste plugin mas não lê seu `.mcp.json` ou manifest `mcpServers`. Defina isso quando sua aplicação possui as conexões MCP do plugin. |1488| `skipMcpDiscovery` | `boolean` | Quando `true`, o SDK carrega skills, hooks, agentes e comandos deste plugin, mas não lê seu `.mcp.json` nem os `mcpServers` do manifesto. Defina isso quando sua aplicação for responsável pelas conexões MCP do plugin. |

1484 1489 

1485**Exemplo:**1490**Exemplo:**

1486 1491 


1491];1496];

1492```1497```

1493 1498 

1494Para informações completas sobre criação e uso de plugins, veja [Plugins](/docs/pt/agent-sdk/plugins).1499Para informações completas sobre como criar e usar plugins, consulte [Plugins](/docs/pt/agent-sdk/plugins).

1495 1500 

1496<h2 id="message-types">1501<h2 id="message-types">

1497 Tipos de Mensagem1502 Tipos de Mensagem


3790};3795};

3791```3796```

3792 3797 

3793Relata descobertas de revisão de código como uma lista estruturada para que Claude Code possa renderizá-las em vez de imprimi-las como texto. `level` é o nível de esforço em que a revisão foi executada. As descobertas são ordenadas mais graves primeiro, com no máximo 32 por chamada, e o array está vazio quando nenhuma sobreviveu. Requer Claude Code v2.1.196 ou posterior.3798Relata descobertas de revisão de código como uma lista estruturada para que Claude Code possa renderizá-las em vez de imprimi-las como texto. As descobertas são ordenadas mais graves primeiro, com no máximo 32 por chamada, e o array está vazio quando nenhuma sobreviveu. Requer Claude Code v2.1.196 ou posterior.

3799 

3800`level` é opcional e contém o nível de esforço que Claude relata para a revisão. Claude Code não o compara com o nível em que a revisão foi executada, então os dois podem diferir.

3794 3801 

3795Cada descoberta carrega esses campos:3802Cada descoberta carrega esses campos:

3796 3803 


4840};4847};

4841```4848```

4842 4849 

4843Retorna o número de descobertas relatadas, o nível de esforço em que a revisão foi executada e as descobertas ecoadas de volta para o corpo do resultado. Requer Claude Code v2.1.196 ou posterior. O campo `short_summary` ecoado requer Claude Code v2.1.212 ou posterior.4850Retorna o número de descobertas relatadas, o valor de `level` que Claude passou e as descobertas ecoadas de volta para o corpo do resultado. Requer Claude Code v2.1.196 ou posterior. O campo `short_summary` ecoado requer Claude Code v2.1.212 ou posterior.

4844 4851 

4845<h3 id="artifact-2">4852<h3 id="artifact-2">

4846 Artifact4853 Artifact


5461 | { type: "disabled" }; // Sem pensamento estendido5468 | { type: "disabled" }; // Sem pensamento estendido

5462```5469```

5463 5470 

5464O 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 blocos `thinking`. 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 blocos `thinking` vazios mesmo quando você define `display` para `"summarized"`.5471O 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 blocos `thinking`. Claude Code omite `display` das requisições para alguns provedores, como Amazon Bedrock e Google Cloud's Agent Platform. Nesses provedores, Opus 4.7 e posterior retornam blocos `thinking` vazios mesmo quando você define `display` para `"summarized"`.

5465 5472 

5466<h3 id="spawnedprocess">5473<h3 id="spawnedprocess">

5467 `SpawnedProcess`5474 `SpawnedProcess`


5532 5539 

5533Quando você chama `setMcpServers()`, Claude Code aplica estas regras:5540Quando você chama `setMcpServers()`, Claude Code aplica estas regras:

5534 5541 

5535* **Servidores que a chamada não nomeia**: Claude Code mantém servidores fornecidos por plugin em execução. Requer Agent SDK v0.3.210 ou posterior.5542* **Servidores que a chamada não nomeia**: fora de uma [sessão na nuvem](/docs/pt/claude-code-on-the-web), Claude Code desconecta os servidores que uma chamada anterior de `setMcpServers()` adicionou e os servidores SDK em processo, e os lista em `removed`. Outros servidores continuam em execução e não são listados em `removed`, entre eles os servidores stdio, HTTP e SSE da opção [`mcpServers`](#options), servidores de arquivos de configuração e servidores fornecidos por plugin.

5536* **Servidores que a chamada nomeia**: exceto para servidores integrados que a CLI iniciou na inicialização, Claude Code substitui um servidor em execução apenas quando sua configuração difere da que você passou.5543* **Servidores que a chamada nomeia**: Claude Code substitui um servidor stdio, HTTP ou SSE que uma chamada anterior de `setMcpServers()` adicionou apenas quando sua configuração difere da que você passou. Um servidor SDK em processo já registrado sob esse nome permanece como está, então, para trocar um, deixe-o de fora de uma chamada e adicione-o na seguinte.

5537* **Servidores integrados que a CLI iniciou na inicialização**: se a chamada nomear um, Claude Code descarta essa entrada e a relata em `errors`.5544* **Servidores integrados que a CLI iniciou na inicialização**: se a chamada nomear um, Claude Code descarta essa entrada e a relata em `errors`.

5538 5545 

5539A promise é resolvida após novos servidores stdio, HTTP e SSE adicionados se conectarem ou falharem, então ferramentas de servidores que se conectaram estão disponíveis no próximo turno.5546A promise é resolvida após novos servidores stdio, HTTP e SSE adicionados se conectarem ou falharem, então ferramentas de servidores que se conectaram estão disponíveis no próximo turno.

agent-view.md +1 −0

Details

819| `claude rm <id> --discard-unpushed <commit>@<worktree-id>` | Deletar uma sessão cuja exclusão foi recusada sobre commits não enviados, descartando o worktree junto com seu branch e commits. Passe o valor exato que a recusa imprimiu; veja [O que deletar uma sessão remove](#what-deleting-a-session-removes). Requer v2.1.260 ou posterior |819| `claude rm <id> --discard-unpushed <commit>@<worktree-id>` | Deletar uma sessão cuja exclusão foi recusada sobre commits não enviados, descartando o worktree junto com seu branch e commits. Passe o valor exato que a recusa imprimiu; veja [O que deletar uma sessão remove](#what-deleting-a-session-removes). Requer v2.1.260 ou posterior |

820| `claude rm <id> --force-remove-worktree <worktree-id>` | Deletar uma sessão cuja exclusão foi recusada porque git ou o hook `WorktreeRemove` não conseguiu remover seu worktree, deletando o diretório worktree mesmo assim e deixando seu branch no repositório. Passe o valor exato que a recusa imprimiu; veja [O que deletar uma sessão remove](#what-deleting-a-session-removes). Requer v2.1.268 ou posterior |820| `claude rm <id> --force-remove-worktree <worktree-id>` | Deletar uma sessão cuja exclusão foi recusada porque git ou o hook `WorktreeRemove` não conseguiu remover seu worktree, deletando o diretório worktree mesmo assim e deixando seu branch no repositório. Passe o valor exato que a recusa imprimiu; veja [O que deletar uma sessão remove](#what-deleting-a-session-removes). Requer v2.1.268 ou posterior |

821| `claude daemon status` | Imprimir o estado do [supervisor](#the-supervisor-process), versão, diretório de socket e contagem de workers |821| `claude daemon status` | Imprimir o estado do [supervisor](#the-supervisor-process), versão, diretório de socket e contagem de workers |

822| `claude daemon logs` | Acompanhar o arquivo de log do supervisor, [`~/.claude/daemon.log`](#where-state-is-stored), imprimindo novas linhas à medida que chegam até você pressionar `Ctrl+C` |

822| `claude daemon stop --any` | Parar o processo supervisor e as sessões em background que ele hospeda. Passe `--keep-workers` para deixar as sessões em background em execução para que o próximo supervisor se reconecte a elas. O próximo `claude agents` ou `claude --bg` inicia um novo supervisor |823| `claude daemon stop --any` | Parar o processo supervisor e as sessões em background que ele hospeda. Passe `--keep-workers` para deixar as sessões em background em execução para que o próximo supervisor se reconecte a elas. O próximo `claude agents` ou `claude --bg` inicia um novo supervisor |

823 824 

824`claude attach` e `claude logs` podem receber parte do nome de uma sessão em execução no lugar do ID, como em `claude logs "auth refactor"`. Passar um nome requer Claude Code v2.1.290 ou posterior.825`claude attach` e `claude logs` podem receber parte do nome de uma sessão em execução no lugar do ID, como em `claude logs "auth refactor"`. Passar um nome requer Claude Code v2.1.290 ou posterior.

agents.md +1 −1

Details

20 20 

21Trê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:

22 22 

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* [Worktrees](/docs/pt/worktrees) dão a cada sessão um checkout git separado, para que cada sessão paralela edite sua própria cópia dos 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.

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

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. É 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. É um uso empacotado de subagentes e worktrees, não um estilo de coordenação separado.

26 26 

Details

681 681 

682Amazon Bedrock transmite respostas `InvokeModelWithResponseStream` em um formato de evento binário event-stream com o cabeçalho `Content-Type: application/vnd.amazon.eventstream`. Um gateway ou proxy entre Claude Code e Amazon Bedrock deve encaminhar o corpo da resposta e seus cabeçalhos, incluindo `Content-Type`, exatamente como Amazon Bedrock os enviou.682Amazon Bedrock transmite respostas `InvokeModelWithResponseStream` em um formato de evento binário event-stream com o cabeçalho `Content-Type: application/vnd.amazon.eventstream`. Um gateway ou proxy entre Claude Code e Amazon Bedrock deve encaminhar o corpo da resposta e seus cabeçalhos, incluindo `Content-Type`, exatamente como Amazon Bedrock os enviou.

683 683 

684Se o gateway reescrever `Content-Type` para outro valor, Claude Code rejeita a resposta com um erro que começa com `Bedrock streaming response has content-type`, nomeando o valor que recebeu. A reescrita comum é `text/event-stream`, de uma integração que re-emite o stream como server-sent events.684Se o gateway reescrever `Content-Type` para outro valor, Claude Code rejeita a resposta com um erro que começa com `Bedrock streaming response has content-type`, nomeando o valor que recebeu. A reescrita comum é `text/event-stream`, de uma integração que re-emite o stream como server-sent events. Para a variável `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` que a mensagem de erro menciona, consulte [Bedrock streaming response has an unexpected content-type](/docs/pt/errors#bedrock-streaming-response-has-an-unexpected-content-type).

685 685 

686Se o gateway descartar ou deixar em branco o cabeçalho, Claude Code assume que o corpo é o event stream do Amazon Bedrock e o decodifica, então um corpo que o gateway passou sem modificações continua transmitindo.686Se o gateway descartar ou deixar em branco o cabeçalho, Claude Code assume que o corpo é o event stream do Amazon Bedrock e o decodifica, então um corpo que o gateway passou sem modificações continua transmitindo.

687 687 

Details

12 Faça login no Claude Code12 Faça login no Claude Code

13</h2>13</h2>

14 14 

15Após [instalar Claude Code](/docs/pt/setup#install-claude-code), execute `claude` no seu terminal. No primeiro lançamento, Claude Code abre uma janela do navegador para você fazer login. Se você tiver definido a variável de ambiente `ANTHROPIC_API_KEY`, Claude Code pula o prompt de login e pede que você aprove a chave.15Após [instalar Claude Code](/docs/pt/setup#install-claude-code), execute `claude` no seu terminal. No primeiro lançamento, Claude Code abre uma janela do navegador para você fazer login. Se você tiver definido a variável de ambiente `ANTHROPIC_API_KEY` e aprovar a chave quando Claude Code perguntar se deve usá-la, Claude Code pula o prompt de login.

16 16 

17Se o navegador não abrir automaticamente, pressione `c` para copiar a URL de login para sua área de transferência, depois cole-a no seu navegador.17Se o navegador não abrir automaticamente, pressione `c` para copiar a URL de login para sua área de transferência, depois cole-a no seu navegador.

18 18 

Details

351}351}

352```352```

353 353 

354Obtenha feedback de IA sobre suas regras personalizadas `allow`, `soft_deny` e `hard_deny`:354Obtenha feedback de IA sobre suas entradas personalizadas `allow`, `soft_deny`, `hard_deny` e `environment`:

355 355 

356```bash theme={null}356```bash theme={null}

357claude auto-mode critique357claude auto-mode critique

chrome.md +1 −1

Details

343 343 

344| Erro | Causa | Solução |344| Erro | Causa | Solução |

345| - | - | - |345| - | - | - |

346| "Browser extension is not connected" | O host de mensagens nativas não consegue alcançar a extensão, ou a lista de permissões de IP da sua organização rejeita a conexão com `bridge.claudeusercontent.com` | Reinicie Chrome e Claude Code, depois execute `/chrome` para reconectar. Se sua organização usa lista de permissões de IP e o erro persistir, consulte [Organization IP allowlists and proxy egress](/docs/pt/network-config#organization-ip-allowlists-and-proxy-egress) |346| "Browser extension is not connected" | O host de mensagens nativas não consegue alcançar a extensão, ou a allowlist de IP da sua organização rejeita a conexão com `bridge.claudeusercontent.com` | Verifique se a extensão está conectada à mesma conta claude.ai que Claude Code, reinicie Chrome e Claude Code, depois execute `/chrome` para reconectar. Se sua organização usa allowlist de IP e o erro persistir, consulte [Organization IP allowlists and proxy egress](/docs/pt/network-config#organization-ip-allowlists-and-proxy-egress) |

347| Extension shows "Not detected" in `/chrome` | A extensão Chrome não está instalada ou está desativada | Instale ou ative a extensão em `chrome://extensions` |347| Extension shows "Not detected" in `/chrome` | A extensão Chrome não está instalada ou está desativada | Instale ou ative a extensão em `chrome://extensions` |

348| "No tab available" | Claude tentou agir antes de uma aba estar pronta | Peça a Claude para criar uma nova aba e tentar novamente |348| "No tab available" | Claude tentou agir antes de uma aba estar pronta | Peça a Claude para criar uma nova aba e tentar novamente |

349| "Receiving end does not exist" | O service worker da extensão ficou inativo | Execute `/chrome` e selecione "Reconnect extension" |349| "Receiving end does not exist" | O service worker da extensão ficou inativo | Execute `/chrome` e selecione "Reconnect extension" |

Details

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 11 ou posterior | Dá suporte ao fluxo de sign-in do dispositivo e aos contadores de rate limit. Um serviço PostgreSQL gerenciado funciona, incluindo o menor nível; consulte [quais bancos de dados são suportados](/docs/pt/claude-apps-gateway-deploy#postgres). 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 ter backup. TLS via `?sslmode=require` é recomendado. PostgreSQL 11, 12 e 13 requerem Claude Code v2.1.290 ou posterior no servidor gateway. O projeto PostgreSQL não mantém mais essas versões, então use uma mais recente sempre que possível. |

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. Em `/login`, Claude Code aceita uma origem `http://` simples 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 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á. |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 


91 </Step>91 </Step>

92 92 

93 <Step title="Provisione um banco de dados PostgreSQL">93 <Step title="Provisione um banco de dados PostgreSQL">

94 Qualquer Postgres 14 ou posterior funciona, incluindo o menor nível gerenciado. O gateway executa suas próprias migrações de esquema na inicialização, então o usuário do banco de dados precisa de direitos para criar e alterar tabelas; consulte [`store`](/docs/pt/claude-apps-gateway-config#store).94 Use PostgreSQL 11 ou posterior. O menor nível gerenciado é suficiente. O gateway executa suas próprias migrações de esquema na inicialização, então a função do banco de dados precisa de direitos para criar e alterar tabelas; consulte [`store`](/docs/pt/claude-apps-gateway-config#store).

95 </Step>95 </Step>

96 96 

97 <Step title="Escreva gateway.yaml">97 <Step title="Escreva gateway.yaml">


132 auto_include_builtin_models: true132 auto_include_builtin_models: true

133 ```133 ```

134 134 

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


172 volumes: { pgdata: }172 volumes: { pgdata: }

173 ```173 ```

174 174 

175 O gateway é um único binário Linux que lê a configuração, se conecta ao Postgres e aplica suas migrações de esquema, executa descoberta OIDC contra seu IdP, constrói clientes upstream e começa a escutar. A inicialização é fail-closed para a configuração, a conexão Postgres, descoberta OIDC e construção de cliente upstream. Se qualquer um desses for inacessível ou mal configurado, o gateway sai com um erro em vez de servir tráfego em um estado degradado.175 O gateway é um único binário Linux que lê a configuração, se conecta ao Postgres e aplica suas migrações de esquema, executa descoberta OIDC contra seu IdP, constrói clientes upstream e começa a escutar.

176 176 

177 Uma inicialização bem-sucedida não valida o caminho de inferência, porque credenciais de instância Bedrock e Agent Platform resolvem na primeira solicitação, não na inicialização.177 A inicialização é fail-closed para a configuração, a conexão Postgres, descoberta OIDC e construção de cliente upstream. Se qualquer um desses for inacessível ou mal configurado, o gateway sai com um erro em vez de servir tráfego em um estado degradado.

178 

179 Uma inicialização bem-sucedida não valida o caminho de inferência, porque credenciais de instância do Amazon Bedrock e da Agent Platform do Google Cloud resolvem na primeira requisição, não na inicialização.

178 180 

179 Observe stderr para a sequência de inicialização. As linhas de log usam o formato `[gateway] <timestamp> <level> <message>`, eventos de auditoria são JSON de linha única com um campo `evt`, e um banner de inicialização, omitido abaixo, é impresso entre as linhas de migração e escuta. Um banco de dados novo imprime uma linha `migration N applied` por migração de esquema; um banco de dados já migrado não imprime nenhuma. Você deve ver, em ordem:181 Observe stderr para a sequência de inicialização. As linhas de log usam o formato `[gateway] <timestamp> <level> <message>`, eventos de auditoria são JSON de linha única com um campo `evt`, e um banner de inicialização, omitido abaixo, é impresso entre as linhas de migração e escuta. Um banco de dados novo imprime uma linha `migration N applied` por migração de esquema; um banco de dados já migrado não imprime nenhuma. Você deve ver, em ordem:

180 182 


206 208 

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

208 210 

209 No Windows PowerShell, execute `curl.exe`; o `curl` simples é um alias para `Invoke-WebRequest` e rejeita esses sinalizadores.211 No Windows PowerShell, execute `curl.exe`; o `curl` simples é um alias para `Invoke-WebRequest` e rejeita essas flags.

210 212 

211 Primeiro, busque o documento de descoberta, que confirma que o gateway está ativo, a configuração é válida e todas as verificações de inicialização passaram:213 Primeiro, busque o documento de descoberta, que confirma que o gateway está ativo, a configuração é válida e todas as verificações de inicialização passaram:

212 214 

Details

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

159 159 

1601. Envie o novo certificado para o IdP junto com o antigo.1601. Envie o novo certificado para o IdP junto com o antigo.

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

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

163 163 

164<h4 id="idp-requests-through-a-forward-proxy">164<h4 id="idp-requests-through-a-forward-proxy">

165 Solicitações do IdP através de um proxy de encaminhamento165 Solicitações do IdP através de um proxy de encaminhamento


227 227 

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

229| - | - | - |229| - | - | - |

230| `postgres_url` | Sim | URL `postgres://` ou `postgresql://`. Obrigatório: o encontro de concessão de dispositivo, onde o callback do navegador escreve e o CLI de sondagem lê, precisa de estado entre réplicas. O gateway executa suas próprias migrações de esquema na inicialização e na atualização, portanto a função precisa de direitos para criar e alterar tabelas no esquema de destino. Consulte [Atualizações](/docs/pt/claude-apps-gateway-deploy#upgrades) e [Postgres](/docs/pt/claude-apps-gateway-deploy#postgres). |230| `postgres_url` | Sim | URL `postgres://` ou `postgresql://` com um único host, não uma lista separada por vírgulas. O gateway executa suas próprias migrações de esquema na inicialização e na atualização, portanto a função precisa de direitos para criar e alterar tabelas no esquema de destino. Consulte [Atualizações](/docs/pt/claude-apps-gateway-deploy#upgrades) e [Postgres](/docs/pt/claude-apps-gateway-deploy#postgres). |

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

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

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

Details

249 Postgres249 Postgres

250</h3>250</h3>

251 251 

252O gateway armazena seu estado em um banco de dados PostgreSQL:

253 

254* **Banco de dados**: o próprio PostgreSQL, auto-hospedado ou gerenciado, na [versão mínima](/docs/pt/claude-apps-gateway#prerequisites) ou posterior. Bancos de dados que apenas implementam o protocolo Postgres, como bancos de dados SQL distribuídos, não são suportados.

255* **Endereço**: `store.postgres_url` aceita um único host. Se o banco de dados tiver vários nós, use o endereço que fica na frente deles, como o endpoint do seu serviço gerenciado, um balanceador de carga ou um IP virtual. Defina um [período de carência de prontidão](#readiness-grace-period) mais longo do que um failover leva.

256 

252O gateway mantém cinco tabelas de dados mais uma tabela `_migrations`, todas criadas por suas migrações de tempo de inicialização:257O gateway mantém cinco tabelas de dados mais uma tabela `_migrations`, todas criadas por suas migrações de tempo de inicialização:

253 258 

254| Tabela | Conteúdo | Retenção |259| Tabela | Conteúdo | Retenção |


396| 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 |401| 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 |

397| 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 |402| 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 |

398| A inicialização sai com um erro de validação de configuração que nomeia `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`. |403| A inicialização sai com um erro de validação de configuração que nomeia `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`. |

404| A inicialização sai: `store.postgres_url in <path> is not a URL the gateway can read`, ou, antes da v2.1.290, um simples `Invalid URL` ou `URI error` | A URL não pode ser analisada, por exemplo porque lista mais de um host ou sua senha tem um `/`, `?`, `#` ou `%` não codificado | Nomeie [um host](#postgres), e mova a senha para [`store.password`](/docs/pt/claude-apps-gateway-config#store) |

399| A inicialização sai: `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) |405| A inicialização sai: `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) |

400| 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 é 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 forward proxy, 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. Se o pod também não conseguir resolver o nome do host do IdP, ou o proxy recusar `CONNECT` para um endereço IP, veja [Proxy-only egress](/docs/pt/claude-apps-gateway-config#proxy-only-egress), que requer v2.1.277 ou posterior. |406| 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 é 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 forward proxy, 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. Se o pod também não conseguir resolver o nome do host do IdP, ou o proxy recusar `CONNECT` para um endereço IP, veja [Proxy-only egress](/docs/pt/claude-apps-gateway-config#proxy-only-egress), que requer v2.1.277 ou posterior. |

401| A inicialização sai com um erro de permissão do Postgres | O papel do banco de dados carece de direitos DDL em seu esquema | Conceda ao papel `CREATE` no esquema do gateway para que possa criar e alterar suas tabelas na inicialização |407| A inicialização sai com um erro de permissão do Postgres | O papel do banco de dados carece de direitos DDL em seu esquema | Conceda ao papel `CREATE` no esquema do gateway para que possa criar e alterar suas tabelas na inicialização |

402| Log: `could not connect to Postgres at boot, attempt 1 of 3` | O banco de dados não estava acessível quando o gateway iniciou, por exemplo em uma instância fria cuja rede ainda está se iniciando | Se o gateway então terminar de inicializar, nenhuma ação é necessária. Quando o banco de dados não está acessível, o gateway tenta a conexão três vezes, dois segundos de intervalo, antes de sair. Se sair com `could not connect to Postgres`, verifique `store.postgres_url` e o caminho de rede para o banco de dados. Se as tentativas atingirem o timeout em vez de serem recusadas, aumente [`store.connect_timeout_seconds`](/docs/pt/claude-apps-gateway-config#store) para dar a cada uma mais tempo. |408| Log: `could not connect to Postgres at boot, attempt 1 of 3` | O banco de dados não estava acessível quando o gateway iniciou, por exemplo em uma instância fria cuja rede ainda está se iniciando | Se o gateway então terminar de inicializar, nenhuma ação é necessária. Quando o banco de dados não está acessível, o gateway tenta a conexão três vezes, dois segundos de intervalo, antes de sair. Se sair com `could not connect to Postgres`, verifique `store.postgres_url`, incluindo se ela nomeia um único host, e o caminho de rede para o banco de dados. Se as tentativas atingirem o timeout em vez de serem recusadas, aumente [`store.connect_timeout_seconds`](/docs/pt/claude-apps-gateway-config#store) para dar a cada uma mais tempo. |

403| `/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 possibilidade de sobrescrever | 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`. |409| `/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 possibilidade de sobrescrever | 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`. |

404| 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 o incluirá no id\_token, como o servidor de autorização da organização Okta, defina `oidc.userinfo_fallback: true`. |410| 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 o incluirá no id\_token, como o servidor de autorização da organização Okta, defina `oidc.userinfo_fallback: true`. |

405| 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 requisiçã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. |411| 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 requisiçã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. |

Details

169 </Step>169 </Step>

170 170 

171 <Step title="Provisione Amazon RDS para PostgreSQL">171 <Step title="Provisione Amazon RDS para PostgreSQL">

172 A instância é executada nas subnets privadas sem endereço público e com criptografia de armazenamento ativada. A versão do mecanismo é fixada em Postgres 16, que satisfaz o piso suportado do gateway de PostgreSQL 14 e garante que a família do grupo de parâmetros abaixo corresponda à instância.172 A instância executa o Postgres 16 nas subnets privadas, sem endereço público e com criptografia de armazenamento ativada.

173 173 

174 Primeiro, crie o grupo de subnets que coloca o banco de dados nas subnets privadas e um grupo de parâmetros com `rds.force_ssl=1` para que o servidor rejeite conexões em texto simples. A versão do mecanismo é fixada uma vez porque a família do grupo de parâmetros deve corresponder à versão principal do mecanismo que a instância executa:174 Primeiro, crie o grupo de subnets que coloca o banco de dados nas subnets privadas e um grupo de parâmetros com `rds.force_ssl=1` para que o servidor rejeite conexões em texto simples. A versão do mecanismo é fixada uma vez porque a família do grupo de parâmetros deve corresponder à versão principal do mecanismo que a instância executa:

175 175 

Details

416* **Máquinas virtuais isoladas**: cada sessão é executada em uma VM isolada gerenciada pela Anthropic. 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 em vez disso, onde o isolamento é responsabilidade de sua implantação416* **Máquinas virtuais isoladas**: cada sessão é executada em uma VM isolada gerenciada pela Anthropic. 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 em vez disso, onde o isolamento é responsabilidade de sua implantação

417* <span id="default-allowed-domains" />**Controles de acesso à rede**: em ambientes hospedados pela Anthropic, o acesso à rede é limitado por padrão e pode ser desabilitado. Veja [Acesso à rede](/docs/pt/cloud-environments#network-access) para os níveis de acesso, os [domínios padrão permitidos](/docs/pt/cloud-environments#default-allowed-domains) e o tráfego que não passa pela lista de permissões. Em um ambiente auto-hospedado, você restringe a saída da sessão em seu próprio limite de rede. Ao executar com acesso à rede desabilitado, Claude Code ainda pode se comunicar com a API Anthropic, o que pode permitir que dados saiam da VM.417* <span id="default-allowed-domains" />**Controles de acesso à rede**: em ambientes hospedados pela Anthropic, o acesso à rede é limitado por padrão e pode ser desabilitado. Veja [Acesso à rede](/docs/pt/cloud-environments#network-access) para os níveis de acesso, os [domínios padrão permitidos](/docs/pt/cloud-environments#default-allowed-domains) e o tráfego que não passa pela lista de permissões. Em um ambiente auto-hospedado, você restringe a saída da sessão em seu próprio limite de rede. Ao executar com acesso à rede desabilitado, Claude Code ainda pode se comunicar com a API Anthropic, o que pode permitir que dados saiam da VM.

418* **Proteção de credenciais**: em ambientes hospedados pela Anthropic, credenciais git e chaves de assinatura ficam fora da sandbox, e um proxy autentica em nome da sessão com credenciais com escopo. Em um ambiente auto-hospedado, sua implantação fornece credenciais git; veja [Configure git](/docs/pt/self-hosted-environments-deploy#configure-git)418* **Proteção de credenciais**: em ambientes hospedados pela Anthropic, credenciais git e chaves de assinatura ficam fora da sandbox, e um proxy autentica em nome da sessão com credenciais com escopo. Em um ambiente auto-hospedado, sua implantação fornece credenciais git; veja [Configure git](/docs/pt/self-hosted-environments-deploy#configure-git)

419* **Credenciais de API**: em ambientes hospedados pela Anthropic nos planos Pro e Max, chaves que você [adiciona a um ambiente em nuvem](/docs/pt/cloud-environments#add-api-credentials) ficam fora da sandbox da mesma forma, anexadas a solicitações correspondentes depois que saem da sessão. Um ambiente auto-hospedado não tem credenciais de API, e os planos Team e Enterprise ainda não têm419* **Segredos de rede**: em ambientes hospedados pela Anthropic nos planos Pro e Max, chaves que você [adiciona a um ambiente em nuvem](/docs/pt/cloud-environments#add-api-credentials) ficam fora do sandbox da mesma forma, anexadas a requisições correspondentes depois que saem da sessão. Um ambiente auto-hospedado não tem segredos de rede, e os planos Team e Enterprise ainda não os têm

420* **Análise segura**: o código é analisado e modificado dentro do ambiente isolado da sessão antes de criar PRs420* **Análise segura**: o código é analisado e modificado dentro do ambiente isolado da sessão antes de criar PRs

421 421 

422<h2 id="troubleshooting">422<h2 id="troubleshooting">


442`claude --cloud` e `claude --teleport` requerem entrada com uma conta claude.ai. Se você autenticar com uma chave de API, ou se seus detalhes de conta armazenados estiverem obsoletos, você verá uma destas mensagens:442`claude --cloud` e `claude --teleport` requerem entrada com uma conta claude.ai. Se você autenticar com uma chave de API, ou se seus detalhes de conta armazenados estiverem obsoletos, você verá uma destas mensagens:

443 443 

444* `Unable to get organization UUID`444* `Unable to get organization UUID`

445* Uma mensagem de que a autenticação com chave de API não é suficiente445* ``Cloud sessions need a claude.ai sign-in. Run `claude auth login` (or /login in a local session), then try again.``

446* `Error loading Claude Code sessions` no seletor de sessão, quando você executa `claude --teleport` sem um ID de sessão446* `Error loading Claude Code sessions` no seletor de sessão, quando você executa `claude --teleport` sem um ID de sessão

447 447 

448Execute `/login` para entrar com sua conta claude.ai, depois tente novamente o comando. Se o erro nomear seu provedor em vez disso, veja a [tabela de erros](#errors-when-sending-to-a-cloud-session): as sessões na nuvem não estão disponíveis através de provedores de terceiros.448Execute [`claude auth login`](/docs/pt/cli-reference#cli-commands) no seu shell para entrar com sua conta claude.ai, depois tente novamente o comando. Dentro de uma sessão em execução, `/login` faz o mesmo. Se o erro nomear seu provedor em vez disso, veja a [tabela de erros](#errors-when-sending-to-a-cloud-session): as sessões na nuvem não estão disponíveis através de provedores de terceiros.

449 

450Da v2.1.274 até a v2.1.289, a mensagem de entrada dizia `Claude Code cloud sessions require authentication with a Claude.ai account. API key authentication is not sufficient. Please run /login to authenticate, or check your authentication status with /status.`

449 451 

450<h3 id="remote-control-session-expired-or-access-denied">452<h3 id="remote-control-session-expired-or-access-denied">

451 Remote Control session expired or access denied453 Remote Control session expired or access denied

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</>, <>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</>],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> in place of a <C>CLAUDE.md</C></>],

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 


164 icon: 'folder',164 icon: 'folder',

165 color: '#9B7BC4',165 color: '#9B7BC4',

166 oneLiner: 'Topic-scoped instructions, optionally gated by file paths',166 oneLiner: 'Topic-scoped instructions, optionally gated by file paths',

167 when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when a matching file enters context</>,167 when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when Claude reads, writes, or edits a matching file</>,

168 description: [<>Project instructions split into topic files that can load conditionally based on file paths. A rule without <C>paths:</C> frontmatter loads at session start like CLAUDE.md; a rule with <C>paths:</C> loads only when Claude reads, writes, or edits a matching file.</>, <>Like CLAUDE.md, rules are guidance Claude reads, not configuration Claude Code enforces. For guaranteed behavior use <A href="/docs/en/hooks">hooks</A> or <A href="/docs/en/permissions">permissions</A>.</>],168 description: [<>Project instructions split into topic files that can load conditionally based on file paths. A rule without <C>paths:</C> frontmatter loads at session start like CLAUDE.md; a rule with <C>paths:</C> loads only when Claude reads, writes, or edits a matching file.</>, <>Like CLAUDE.md, rules are guidance Claude reads, not configuration Claude Code enforces. For guaranteed behavior use <A href="/docs/en/hooks">hooks</A> or <A href="/docs/en/permissions">permissions</A>.</>],

169 tips: [<>Use <C>paths:</C> frontmatter with globs to scope rules to directories or file types</>, <>Subdirectories work: <C>.claude/rules/frontend/react.md</C> is discovered automatically</>, 'When CLAUDE.md approaches 200 lines, start splitting into rules'],169 tips: [<>Use <C>paths:</C> frontmatter with globs to scope rules to directories or file types</>, <>Subdirectories work: <C>.claude/rules/frontend/react.md</C> is discovered automatically</>, 'When CLAUDE.md approaches 200 lines, start splitting into rules'],

170 docsLink: '/en/memory#organize-rules-with-claude/rules/',170 docsLink: '/en/memory#organize-rules-with-claude/rules/',


176 color: '#9B7BC4',176 color: '#9B7BC4',

177 badge: 'committed',177 badge: 'committed',

178 oneLiner: 'Test conventions scoped to test files',178 oneLiner: 'Test conventions scoped to test files',

179 when: <>Loaded when Claude reads a file matching the <C>paths:</C> globs below</>,179 when: <>Loaded when Claude reads, writes, or edits a file matching the <C>paths:</C> globs below</>,

180 description: <>An example rule that only loads when Claude is working on test files. The <C>paths:</C> globs in the frontmatter define which files trigger it; here, anything ending in .test.ts or .test.tsx. For other files, this rule is not loaded into context.</>,180 description: <>An example rule that only loads when Claude is working on test files. The <C>paths:</C> globs in the frontmatter define which files trigger it; here, anything ending in .test.ts or .test.tsx. For other files, this rule is not loaded into context.</>,

181 example: `---181 example: `---

182paths:182paths:


197 color: '#9B7BC4',197 color: '#9B7BC4',

198 badge: 'committed',198 badge: 'committed',

199 oneLiner: 'API conventions scoped to backend code',199 oneLiner: 'API conventions scoped to backend code',

200 when: <>Loaded when Claude reads a file matching the <C>paths:</C> glob below</>,200 when: <>Loaded when Claude reads, writes, or edits a file matching the <C>paths:</C> glob below</>,

201 description: <>A second example showing a rule scoped to backend code. The <C>paths:</C> glob matches files under src/api/, so these conventions load only when Claude is editing API routes.</>,201 description: <>A second example showing a rule scoped to backend code. The <C>paths:</C> glob matches files under src/api/, so these conventions load only when Claude is working on API routes.</>,

202 example: `---202 example: `---

203paths:203paths:

204 - "src/api/**/*.ts"204 - "src/api/**/*.ts"


605 icon: 'folder',605 icon: 'folder',

606 color: '#9B7BC4',606 color: '#9B7BC4',

607 oneLiner: 'User-level rules that apply to every project',607 oneLiner: 'User-level rules that apply to every project',

608 when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when a matching file enters context</>,608 when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when Claude reads, writes, or edits a matching file</>,

609 description: 'Same as project .claude/rules/ but applies everywhere. Use this for conventions you want across all your work, like personal code style or commit message format.',609 description: 'Same as project .claude/rules/ but applies everywhere. Use this for conventions you want across all your work, like personal code style or commit message format.',

610 docsLink: '/en/memory#organize-rules-with-claude/rules/',610 docsLink: '/en/memory#organize-rules-with-claude/rules/',

611 children: []611 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`. 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.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 lê-lo](/docs/pt/memory#agents-md) no lugar de um `CLAUDE.md`. O resto do diretório é opcional: adicione skills, regras ou subagentes 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


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| `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`. |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) no lugar de um `CLAUDE.md`. |

1458| Plugins instalados | `~/.claude/plugins` | Marketplaces clonados, versões de plugins instalados, o registro de instalação `installed_plugins.json` e dados por plugin, gerenciados por comandos `claude plugin`. Plugins [sincronizados da sua conta claude.ai](/docs/pt/plugins/loading#synced-plugins) são baixados em `~/.claude/plugins/synced/`. Para um plugin instalado de um marketplace com [fonte `command`](/docs/pt/plugins/marketplace-reference#command-plugin-source) 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 que você adicionou a partir de um caminho local também [carrega no local](/docs/pt/plugins/loading#find-plugins-on-disk) a partir de seu diretório de origem, em vez de a partir de uma cópia em cache. Veja [cache de plugins](/docs/pt/plugins/loading#find-plugins-on-disk) para saber como versões órfãs são limpas. |1458| Plugins instalados | `~/.claude/plugins` | Marketplaces clonados, versões de plugins instalados, o registro de instalação `installed_plugins.json` e dados por plugin, gerenciados por comandos `claude plugin`. Plugins [sincronizados da sua conta claude.ai](/docs/pt/plugins/loading#synced-plugins) são baixados em `~/.claude/plugins/synced/`. Para um plugin instalado de um marketplace com [fonte `command`](/docs/pt/plugins/marketplace-reference#command-plugin-source) 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 que você adicionou a partir de um caminho local também [carrega no local](/docs/pt/plugins/loading#find-plugins-on-disk) a partir de seu diretório de origem, em vez de a partir de uma cópia em cache. Veja [cache de plugins](/docs/pt/plugins/loading#find-plugins-on-disk) para saber como versões órfãs são limpas. |

1459 1459 

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`~/.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.

claude-projects.md +20 −20

Details

59* **O que cada thread em nuvem começa com**:59* **O que cada thread em nuvem começa com**:

60 * Os repositórios e arquivos do projeto, mais suas [instruções e memória](#give-a-project-standing-context)60 * Os repositórios e arquivos do projeto, mais suas [instruções e memória](#give-a-project-standing-context)

61 * O `CLAUDE.md` e skills 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ém61 * O `CLAUDE.md` e skills 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

62 * Os [connectors](#get-skills-plugins-connectors-and-tools-into-threads) na sua conta claude.ai62 * Os [conectores](#get-skills-plugins-connectors-and-tools-into-threads) na sua conta claude.ai

63 * Um [ambiente em nuvem](#choose-an-environment-for-threads) que define seu acesso à rede, variáveis de ambiente, credenciais de API e ferramentas instaladas63 * Um [ambiente em nuvem](#choose-an-environment-for-threads) que define seu acesso à rede, variáveis de ambiente, segredos de rede e ferramentas instaladas

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

65 65 

66As threads em nuvem 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.66As threads em nuvem 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.


92 92 

93* **Plano**: você está no Pro ou Max e **Projects** aparece na sua barra lateral.93* **Plano**: você está no Pro ou Max e **Projects** aparece na sua barra lateral.

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

95* **Rede, credenciais e ferramentas**: para threads em nuvem, estas 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).95* **Rede, credenciais e ferramentas**: para threads na nuvem, estas vêm do [ambiente na 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 [conectores do claude.ai](https://claude.ai/customize/connectors).

96 96 

97<h3 id="start-a-new-project-from-scratch">97<h3 id="start-a-new-project-from-scratch">

98 Iniciar um novo projeto do zero98 Iniciar um novo projeto do zero


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

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

326 326 

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

328 328 

329<h3 id="write-project-instructions">329<h3 id="write-project-instructions">

330 Escrever instruções do projeto330 Escrever instruções do projeto


343```text theme={null}343```text theme={null}

344Este 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.344Este 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.

345 345 

346- Ramifique a partir de main e abra um pull request de rascunho por thread.346- Crie um branch a partir de main e abra um pull request de rascunho por thread.

347- Antes de chamar o trabalho de concluído, execute `make test` e `make lint` e cole as linhas de resumo em sua mensagem final.347- Antes de chamar o trabalho de concluído, execute `make test` e `make lint` e cole as linhas de resumo em sua mensagem final.

348- 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.348- Se você não conseguir alcançar algo que precisa, como um repositório, um segredo, uma API ou um conector, diga exatamente o que está faltando em sua primeira mensagem e pare. Não substitua, simule ou adivinhe.

349- Não mescle, force-push ou mude a configuração de CI sem me perguntar na thread.349- Não mescle, force-push ou mude a configuração de CI sem me perguntar na thread.

350```350```

351 351 

352Regras sobre um repositório, como seus comandos de compilação, pertencem ao `CLAUDE.md` desse repositório, que cada thread em nuvem 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.352Regras sobre um repositório, como seus comandos de build, pertencem ao `CLAUDE.md` desse repositório, que cada thread em nuvem 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.

353 353 

354<h3 id="decide-which-repositories-to-add">354<h3 id="decide-which-repositories-to-add">

355 Decidir quais repositórios adicionar355 Decidir quais repositórios adicionar


357 357 

358Os repositórios que você adiciona a um projeto vêm com tudo neles, seu código, `CLAUDE.md` e skills, em cada thread em nuvem. Repositórios que você não adiciona ainda estão ao alcance: uma thread em nuvem pode adicionar um a si mesma quando sua tarefa precisa. A maioria dos projetos usa ambos:358Os repositórios que você adiciona a um projeto vêm com tudo neles, seu código, `CLAUDE.md` e skills, em cada thread em nuvem. Repositórios que você não adiciona ainda estão ao alcance: uma thread em nuvem pode adicionar um a si mesma quando sua tarefa precisa. A maioria dos projetos usa ambos:

359 359 

360* **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).360* **Adicione-o ao projeto**, no diálogo **New project**, em **Project settings > Environment**, ou pedindo a Claude na conversa para adicioná-lo ao projeto. Cada thread em nuvem a partir de então 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).

361* **Deixe-o de fora e deixe as threads adicionarem quando necessário.** Uma thread em nuvem 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.361* **Deixe-o de fora e deixe as threads adicionarem quando necessário.** Uma thread em nuvem 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 as skills desse repositório não estavam lá quando a thread começou. A próxima thread começa sem ele. Um repositório adicionado dessa forma 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.

362 362 

363Um projeto não precisa de um repositório. Suas threads em nuvem ainda podem pesquisar, escrever documentos e escrever e executar código em seu próprio sandbox, e entregam arquivos à aba **Library**. Qualquer uma de suas threads em nuvem ainda pode adicionar um repositório a si mesma quando uma tarefa exigir.363Um projeto não precisa de nenhum repositório. Suas threads em nuvem ainda podem pesquisar, escrever documentos e escrever e executar código em seu próprio sandbox, e entregam arquivos à aba **Library**. Qualquer uma de suas threads em nuvem ainda pode adicionar um repositório a si mesma quando uma tarefa exigir.

364 364 

365Uma 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**.365Uma 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**.

366 366 


388| `CLAUDE.md` | Carregado quando a thread começa | Carregado de cada repositório quando a thread começa |388| `CLAUDE.md` | Carregado quando a thread começa | Carregado de cada repositório quando a thread começa |

389| Skills, agentes e comandos em `.claude/` | Carregado | Carregado de cada repositório |389| Skills, agentes e comandos em `.claude/` | Carregado | Carregado de cada repositório |

390| Plugins habilitados em `.claude/settings.json` | Não carregado. Adicione o plugin em **Project settings > Plugins** em vez disso | Não carregado. Adicione o plugin em **Project settings > Plugins** em vez disso |390| Plugins habilitados em `.claude/settings.json` | Não carregado. Adicione o plugin em **Project settings > Plugins** em vez disso | Não carregado. Adicione o plugin em **Project settings > Plugins** em vez disso |

391| 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 |391| Regras de permissão, hooks e `env` definidos em `.claude/settings.json` | Aplicam-se à thread, exceto as chaves `env` que [nenhuma sessão na nuvem honra](/docs/pt/cloud-environments#what-carries-over-from-your-setup) | Não se aplicam |

392 392 

393Em 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 tal projeto, 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).393Em 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` ativado, e é por isso que o `CLAUDE.md` e as skills de cada repositório carregam no início mesmo que a thread comece acima deles. Em tal projeto, 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).

394 394 

395<h3 id="choose-an-environment-for-threads">395<h3 id="choose-an-environment-for-threads">

396 Escolher um ambiente para threads396 Escolher um ambiente para threads

397</h3>397</h3>

398 398 

399Cada nova thread em nuvem 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 em nuvem usam um ambiente padrão hospedado pela Anthropic até que você escolha um em **Project settings > Environment**.399Cada nova thread em nuvem 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 segredos de rede são adicionados a suas requisições e o que o script de configuração instala antes de Claude começar. As threads em nuvem usam um ambiente padrão hospedado pela Anthropic até que você escolha um em **Project settings > Environment**.

400 400 

401Se as threads em nuvem 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).401Se as threads em nuvem 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 segredos de rede](/docs/pt/cloud-environments#add-api-credentials) e [Scripts de configuração](/docs/pt/cloud-environments#setup-scripts).

402 402 

403<h3 id="get-skills-plugins-connectors-and-tools-into-threads">403<h3 id="get-skills-plugins-connectors-and-tools-into-threads">

404 Obter skills, plugins, connectors e ferramentas em threads404 Obter skills, plugins, conectores e ferramentas em threads

405</h3>405</h3>

406 406 

407As threads em nuvem não têm os skills, servidores MCP, plugins e ferramentas instalados apenas na sua máquina. Uma thread que Claude executa na sua máquina através de [Remote Control](/docs/pt/remote-control) usa o que está instalado lá. Para disponibilizar cada um desses para threads em nuvem:407As threads em nuvem não têm as skills, servidores MCP, plugins e ferramentas instalados apenas na sua máquina. Uma thread que Claude executa na sua máquina através de [Remote Control](/docs/pt/remote-control) usa o que está instalado lá. Para disponibilizar cada um desses para threads em nuvem:

408 408 

409* 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 em nuvem 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 em nuvem. As threads em nuvem também carregam os skills que você habilita para sua conta claude.ai.409* Skills, subagentes e comandos: faça commit deles em um repositório que você adicionou ao projeto, por exemplo uma skill em `.claude/skills/<skill-name>/SKILL.md`. Cada thread em nuvem clona cada repositório no projeto e carrega `.claude/skills/`, `.claude/agents/` e `.claude/commands/` de cada um deles, então uma skill com commit em um repositório está disponível em cada thread em nuvem. As threads em nuvem também carregam as skills que você habilita para sua conta claude.ai.

410* Plugins: adicione-os em **Project settings > Plugins**; eles carregam em cada nova thread em nuvem. Plugins que um repositório declara em seu `.claude/settings.json` [não carregam em threads em nuvem](/docs/pt/cloud-environments#what-carries-over-from-your-setup).410* Plugins: adicione-os em **Project settings > Plugins**; eles carregam em cada nova thread em nuvem. Plugins que um repositório declara em seu `.claude/settings.json` [não carregam em threads em nuvem](/docs/pt/cloud-environments#what-carries-over-from-your-setup).

411* Servidores MCP: as threads em nuvem 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 em nuvem 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 nuvem. Em um projeto com um repositório, as threads em nuvem 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.411* Servidores MCP: as threads em nuvem obtêm suas ferramentas MCP dos conectores 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 em nuvem pode usar todos eles sem configuração por projeto. A conversa do projeto em si não tem conectores, então envie trabalho que precisa de um como uma tarefa para uma thread em nuvem. Em um projeto com um repositório, as threads em nuvem também carregam servidores MCP do [`.mcp.json`](/docs/pt/cloud-environments#what-carries-over-from-your-setup) desse repositório. [Como conectores alcançam Claude Code](/docs/pt/mcp#how-connectors-reach-claude-code) lista as regras para sessões na nuvem e as configurações que desativam conectores.

412* Ferramentas de linha de comando e pacotes: instale-os no [script de configuração](/docs/pt/cloud-environments#setup-scripts) do ambiente.412* Ferramentas de linha de comando e pacotes: instale-os no [script de configuração](/docs/pt/cloud-environments#setup-scripts) do ambiente.

413 413 

414Para ver quais connectors uma thread em nuvem 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 salva isso como seu padrão de conta, então novas threads em nuvem e chats claude.ai começam sem ele até que você o ligue novamente. Uma thread em nuvem pega um connector que você adiciona ou reconecta após a próxima mensagem que você envia a ela.414Para ver quais conectores uma thread em nuvem em execução tem em claude.ai/code, abra a thread e selecione **Connectors** no menu **+** ao lado de sua caixa de mensagem. Desativar um conector lá o remove dessa thread e salva isso como seu padrão de conta, então novas threads e chats claude.ai começam sem ele até que você o ative novamente. Uma thread em nuvem pega um conector que você adiciona ou reconecta após a próxima mensagem que você envia a ela.

415 415 

416<h2 id="project-settings-reference">416<h2 id="project-settings-reference">

417 Referência de configurações do projeto417 Referência de configurações do projeto


590</h2>590</h2>

591 591 

592* [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 requests592* [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

593* [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ção593* [Configurar ambientes em nuvem](/docs/pt/cloud-environments): mude o que as threads na nuvem podem alcançar na rede, dê a elas variáveis de ambiente e segredos de rede, e instale ferramentas com um script de configuração

594* [Automatizar trabalho com routines](/docs/pt/routines): cronogramas, gatilhos e gerenciamento para routines, incluindo as que Claude cria a partir de um projeto594* [Automatizar trabalho com routines](/docs/pt/routines): cronogramas, gatilhos e gerenciamento para routines, incluindo as que Claude cria a partir de um projeto

595* [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çar595* [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

596* [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 Claude596* [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

31| `claude attach <id\|name>` | Anexar a uma [sessão de fundo](/docs/pt/agent-view#manage-sessions-from-the-shell) neste terminal. Passar parte do nome de uma sessão em execução no lugar do ID requer Claude Code v2.1.290 ou posterior | `claude attach 7c5dcf5d` |31| `claude attach <id\|name>` | Anexar a uma [sessão de fundo](/docs/pt/agent-view#manage-sessions-from-the-shell) neste terminal. Passar parte do nome de uma sessão em execução no lugar do ID requer Claude Code v2.1.290 ou posterior | `claude attach 7c5dcf5d` |

32| `claude auto-mode defaults` | Imprimir as regras do classificador do [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) integradas como JSON. Use `claude auto-mode config` para ver sua configuração efetiva com as configurações aplicadas. `--label <prefix>` imprime apenas as regras cujo rótulo começa com esse prefixo, correspondência sem distinção de maiúsculas e minúsculas. Requer Claude Code v2.1.208 ou posterior | `claude auto-mode defaults --label 'Git Destructive'` |32| `claude auto-mode defaults` | Imprimir as regras do classificador do [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) integradas como JSON. Use `claude auto-mode config` para ver sua configuração efetiva com as configurações aplicadas. `--label <prefix>` imprime apenas as regras cujo rótulo começa com esse prefixo, correspondência sem distinção de maiúsculas e minúsculas. Requer Claude Code v2.1.208 ou posterior | `claude auto-mode defaults --label 'Git Destructive'` |

33| `claude auto-mode reset` | Restaurar a configuração padrão do [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) removendo a seção `autoMode` do seu arquivo de configurações do usuário. Solicita confirmação antes de escrever; passe `-y`/`--yes` para pular o prompt. As regras de [configurações gerenciadas](/docs/pt/server-managed-settings) ou a flag `--settings` ainda se aplicam. Requer Claude Code v2.1.212 ou posterior. Veja [Inspecionar os padrões e sua configuração efetiva](/docs/pt/auto-mode-config#inspect-the-defaults-and-your-effective-config) | `claude auto-mode reset --yes` |33| `claude auto-mode reset` | Restaurar a configuração padrão do [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) removendo a seção `autoMode` do seu arquivo de configurações do usuário. Solicita confirmação antes de escrever; passe `-y`/`--yes` para pular o prompt. As regras de [configurações gerenciadas](/docs/pt/server-managed-settings) ou a flag `--settings` ainda se aplicam. Requer Claude Code v2.1.212 ou posterior. Veja [Inspecionar os padrões e sua configuração efetiva](/docs/pt/auto-mode-config#inspect-the-defaults-and-your-effective-config) | `claude auto-mode reset --yes` |

34| `claude daemon logs` | Acompanhar o arquivo de log do [supervisor](/docs/pt/agent-view#the-supervisor-process) de sessão de fundo, `~/.claude/daemon.log`, imprimindo novas linhas à medida que chegam até você pressionar `Ctrl+C` | `claude daemon logs` |

35| `claude daemon run` | Executar o [supervisor](/docs/pt/agent-view#the-supervisor-process) de sessão de fundo em primeiro plano neste terminal, imprimindo seu log | `claude daemon run` |

34| `claude daemon status` | Imprimir o estado do [supervisor](/docs/pt/agent-view#the-supervisor-process) de sessão de fundo, versão, diretório de socket e contagem de workers para diagnósticos. Sai com 1 se o supervisor não estiver em execução | `claude daemon status` |36| `claude daemon status` | Imprimir o estado do [supervisor](/docs/pt/agent-view#the-supervisor-process) de sessão de fundo, versão, diretório de socket e contagem de workers para diagnósticos. Sai com 1 se o supervisor não estiver em execução | `claude daemon status` |

35| `claude daemon stop --any` | Parar o [supervisor](/docs/pt/agent-view#the-supervisor-process) de sessão de fundo e as sessões que ele hospeda. Passe `--keep-workers` para deixar as sessões de fundo em execução para que o próximo supervisor se reconecte a elas. `--any` confirma a parada de um supervisor sob demanda, que é o padrão. Use isto para recuperar de um [supervisor não responsivo](/docs/pt/agent-view#agent-view-says-the-background-service-did-not-respond) | `claude daemon stop --any --keep-workers` |37| `claude daemon stop --any` | Parar o [supervisor](/docs/pt/agent-view#the-supervisor-process) de sessão de fundo e as sessões que ele hospeda. Passe `--keep-workers` para deixar as sessões de fundo em execução para que o próximo supervisor se reconecte a elas. `--any` confirma a parada de um supervisor sob demanda, que é o padrão. Use isto para recuperar de um [supervisor não responsivo](/docs/pt/agent-view#agent-view-says-the-background-service-did-not-respond) | `claude daemon stop --any --keep-workers` |

36| `claude doctor` | Imprimir diagnósticos de instalação e configurações somente leitura do terminal sem iniciar uma sessão, incluindo saúde da instalação, erros de validação de arquivo de configurações e elegibilidade de Remote Control. Para a verificação de configuração em sessão que também pode aplicar correções, execute [`/doctor`](/docs/pt/commands#all-commands) | `claude doctor` |38| `claude doctor` | Imprimir diagnósticos de instalação e configurações somente leitura do terminal sem iniciar uma sessão, incluindo saúde da instalação, erros de validação de arquivo de configurações e elegibilidade de Remote Control. Para a verificação de configuração em sessão que também pode aplicar correções, execute [`/doctor`](/docs/pt/commands#all-commands) | `claude doctor` |

Details

10 Ambientes na nuvem se aplicam a [sessões na nuvem](/docs/pt/claude-code-on-the-web), que estão disponíveis em planos 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 disponíveis em planos 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 [segredos de rede](#add-api-credentials) que as sessões usam sem vê-los, 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: 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.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 


58 <Step title="Adicione ou edite um ambiente">58 <Step title="Adicione ou edite um ambiente">

59 Selecione **Cloud** para listar seus ambientes. Em seguida, selecione **Add cloud environment**, ou passe o mouse sobre um ambiente existente e selecione o ícone de configurações que aparece à direita.59 Selecione **Cloud** para listar seus ambientes. Em seguida, selecione **Add cloud environment**, ou passe o mouse sobre um ambiente existente e selecione o ícone de configurações que aparece à direita.

60 60 

61 O diálogo inclui o nome, nível de acesso à rede, variáveis de ambiente e script de configuração. Quando você edita um ambiente na nuvem existente em um plano Pro ou Max, o diálogo também inclui [credenciais de API](#add-api-credentials).61 O diálogo inclui o nome, nível de acesso à rede, variáveis de ambiente e script de configuração. Quando você edita um ambiente na nuvem existente em um plano Pro ou Max, o diálogo também inclui [segredos de rede](#add-api-credentials).

62 62 

63 <Frame>63 <Frame>

64 <img src="https://mintcdn.com/claude-code/ZFId6l95856c5LSw/images/cloud-environment-dialog.png?fit=max&auto=format&n=ZFId6l95856c5LSw&q=85&s=30d4478b31d1f879f7ee287ddab32505" alt="O diálogo New cloud environment. Um campo Name com o placeholder Default, um seletor Network access definido como Trusted com links para a política de rede e níveis de acesso, uma caixa Environment variables mostrando texto placeholder no formato .env com uma nota de que os valores são visíveis para qualquer pessoa que use o ambiente, uma caixa Setup script descrita como um script Bash que é executado quando uma nova sessão é iniciada antes do Claude Code ser lançado, e botões Cancel e Create environment." width="874" height="1372" data-path="images/cloud-environment-dialog.png" />64 <img src="https://mintcdn.com/claude-code/ZFId6l95856c5LSw/images/cloud-environment-dialog.png?fit=max&auto=format&n=ZFId6l95856c5LSw&q=85&s=30d4478b31d1f879f7ee287ddab32505" alt="O diálogo New cloud environment. Um campo Name com o placeholder Default, um seletor Network access definido como Trusted com links para a política de rede e níveis de acesso, uma caixa Environment variables mostrando texto placeholder no formato .env com uma nota de que os valores são visíveis para qualquer pessoa que use o ambiente, uma caixa Setup script descrita como um script Bash que é executado quando uma nova sessão é iniciada antes do Claude Code ser lançado, e botões Cancel e Create environment." width="874" height="1372" data-path="images/cloud-environment-dialog.png" />


91 91 

92Uma 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.92Uma 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.

93 93 

94Qualquer 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á.94Qualquer pessoa que use o ambiente pode ler os valores. Em planos Pro e Max, use um [segredo de rede](#add-api-credentials) em vez disso para uma chave que o proxy do agente pode anexar a uma requisição. As [requisições que nunca recebem um segredo](#requests-that-never-get-the-credential) estão listadas lá.

95 95 

96<h3 id="add-api-credentials">96<h3 id="add-api-credentials">

97 Adicione credenciais de API97 Adicione segredos de rede

98</h3>98</h3>

99 99 

100Uma credencial de API é uma chave de API ou token que você armazena em um ambiente na nuvem para que Claude possa chamar essa API de qualquer sessão no ambiente sem ver a chave. O proxy do agente da Anthropic adiciona a chave às solicitações para os hosts que você lista, depois que cada solicitação sai da VM da sessão. A chave nunca alcança Claude, os comandos que ele executa, ou as variáveis de ambiente da sessão.100Um segredo de rede é uma chave de API ou token que você armazena em um ambiente na nuvem para que Claude possa chamar essa API de qualquer sessão no ambiente sem ver a chave. O proxy do agente da Anthropic adiciona a chave às requisições para os hosts que você lista, depois que cada requisição sai da VM da sessão. A chave nunca alcança Claude, os comandos que ele executa, ou as variáveis de ambiente da sessão.

101 101 

102As credenciais de API estão disponíveis em planos Pro e Max. Elas ainda não estão disponíveis em planos Team ou Enterprise, portanto a seção **API credentials** não aparece no diálogo de ambiente nesses planos.102Os segredos de rede estão disponíveis em planos Pro e Max. Eles ainda não estão disponíveis em planos Team ou Enterprise, portanto a seção **Network secrets** não aparece no diálogo de ambiente nesses planos.

103 103 

104<h4 id="requirements">104<h4 id="requirements">

105 Requisitos105 Requisitos

106</h4>106</h4>

107 107 

108Dois destes decidem se você pode adicionar uma credencial, e dois decidem se o proxy do agente pode usá-la uma vez adicionada:108Dois destes decidem se você pode adicionar um segredo, e dois decidem se o proxy do agente pode usá-lo uma vez adicionado:

109 109 

110* **Função**: uma função de administrador da organização em sua organização claude.ai110* **Função**: uma função de administrador da organização em sua organização claude.ai

111 * Em Team e Enterprise, Proprietários a mantêm e Administradores não111 * Em Team e Enterprise, Proprietários a mantêm e Administradores não

112 * Em Pro e Max, você a mantém em sua própria organização112 * Em Pro e Max, você a mantém em sua própria organização

113* **Tipo de ambiente**: um ambiente na nuvem hospedado pela Anthropic que já existe. Um [ambiente auto-hospedado](/docs/pt/self-hosted-environments) não tem credenciais de API113* **Tipo de ambiente**: um ambiente na nuvem hospedado pela Anthropic que já existe. Um [ambiente auto-hospedado](/docs/pt/self-hosted-environments) não tem segredos de rede

114* **Acessibilidade de API**: a API aceita conexões da internet, porque as solicitações saem da rede da Anthropic114* **Acessibilidade de API**: a API aceita conexões da internet, porque as solicitações saem da rede da Anthropic

115* **Chaves de criptografia**: se sua organização usa chaves de criptografia gerenciadas pelo cliente, você não pode salvar credenciais115* **Chaves de criptografia**: se sua organização usa chaves de criptografia gerenciadas pelo cliente, você não pode salvar segredos de rede

116 116 

117<h4 id="add-a-credential">117<h4 id="add-a-credential">

118 Adicione uma credencial118 Adicione um segredo

119</h4>119</h4>

120 120 

121Você adiciona credenciais uma de cada vez e não pode editar uma credencial depois de adicioná-la. Para alterar os hosts ou o valor de uma credencial, delete-a e adicione-a novamente.121Você adiciona segredos um de cada vez e não pode editar um segredo depois de adicioná-lo. Para alterar os hosts ou o valor de um segredo, exclua-o e adicione-o novamente.

122 122 

123<Steps>123<Steps>

124 <Step title="Abra as credenciais de API do ambiente">124 <Step title="Abra os segredos de rede do ambiente">

125 [Abra o ambiente para edição](#configure-your-environment) em [claude.ai/code](https://claude.ai/code). No diálogo **Edit environment**, encontre a seção **API credentials**. Você vê as credenciais já no ambiente, cada uma com os hosts aos quais se aplica.125 [Abra o ambiente para edição](#configure-your-environment) em [claude.ai/code](https://claude.ai/code). No diálogo **Edit environment**, encontre a seção **Network secrets**. Você vê os segredos já no ambiente, cada um com os hosts aos quais se aplica.

126 </Step>126 </Step>

127 127 

128 <Step title="Adicione a credencial">128 <Step title="Adicione o segredo">

129 Selecione **Add credential** e preencha o formulário. Mantenha o **Credential type** padrão, **Bearer**, para uma chave de API que viaja em um cabeçalho de solicitação, e preencha estes campos:129 Selecione **Add secret** e preencha o formulário. Mantenha o **Credential type** padrão, **Bearer**, para uma chave de API que viaja em um cabeçalho de requisição, e preencha estes campos:

130 130 

131 * **Name**: um rótulo para a credencial, como `Internal billing API`131 * **Name**: um rótulo para o segredo, como `Internal billing API`

132 * **Allowed websites**: os hosts da API, como `api.example.com`. Um `*.` inicial corresponde a cada subdomínio132 * **Allowed websites**: os hosts da API, como `api.example.com`. Um `*.` inicial corresponde a cada subdomínio

133 * **Custom headers**: uma linha para o cabeçalho que carrega a chave. A linha começa com `Authorization` como o **Name** do cabeçalho e `Bearer` como seu **Prefix**; cole a chave em si como o **Value**. Para um cabeçalho como `X-Api-Key` que usa o valor simples, altere o nome e limpe o prefixo133 * **Custom headers**: uma linha para o cabeçalho que carrega a chave. A linha começa com `Authorization` como o **Name** do cabeçalho e `Bearer` como seu **Prefix**; cole a chave em si como o **Value**. Para um cabeçalho como `X-Api-Key` que usa o valor simples, altere o nome e limpe o prefixo

134 134 

135 Para uma API que se autentica de outra forma, escolha um **Credential type** diferente. A lista é a mesma que [Claude Tag](https://claude.com/docs/claude-tag/overview), a integração do Slack para planos Team e Enterprise, oferece para [conexões](https://claude.com/docs/claude-tag/admins/add-connections).135 Para uma API que se autentica de outra forma, escolha um **Credential type** diferente. A lista é a mesma que [Claude Tag](https://claude.com/docs/claude-tag/overview), a integração do Slack para planos Team e Enterprise, oferece para [conexões](https://claude.com/docs/claude-tag/admins/add-connections).

136 </Step>136 </Step>

137 137 

138 <Step title="Salve a credencial">138 <Step title="Salve o segredo">

139 Selecione **Connect**. A credencial aparece na lista com seus hosts, salva sem o botão **Save changes** do diálogo. Você não pode visualizar o valor novamente após salvar.139 Selecione **Connect**. O segredo aparece na lista com seus hosts, salvo sem o botão **Save changes** do diálogo. Você não pode visualizar o valor novamente após salvar.

140 </Step>140 </Step>

141</Steps>141</Steps>

142 142 

143Para confirmar que a credencial funciona, inicie uma sessão no ambiente e peça a Claude para chamar a API, por exemplo com `curl`. A API responde como se a chave estivesse na solicitação, e a chave não aparece nas variáveis de ambiente da sessão ou em nenhum arquivo. Se a lista marca uma credencial **Not sent** em vez disso, a nota abaixo dela diz por quê e o que fazer. Duas credenciais cujos hosts se sobrepõem sem corresponder exatamente não recebem nenhum marcador, e o proxy do agente envia apenas uma delas.143Para confirmar que o segredo funciona, inicie uma sessão no ambiente e peça a Claude para chamar a API, por exemplo com `curl`. A API responde como se a chave estivesse na requisição, e a chave não aparece nas variáveis de ambiente da sessão ou em nenhum arquivo. Se a lista marca um segredo como **Not sent** em vez disso, a nota abaixo dele diz por quê e o que fazer. Dois segredos cujos hosts se sobrepõem sem corresponder exatamente não recebem nenhum marcador, e o proxy do agente envia apenas um deles.

144 144 

145<h4 id="which-requests-get-the-credential">145<h4 id="which-requests-get-the-credential">

146 Quais solicitações recebem a credencial146 Quais requisições recebem o segredo

147</h4>147</h4>

148 148 

149O proxy do agente anexa uma credencial a uma solicitação quando o host da solicitação corresponde a um que você listou nessa credencial. As sessões podem alcançar esses hosts mesmo quando o [nível de acesso à rede](#access-levels) do ambiente não permitiria de outra forma, exceto os [hosts que nunca recebem a credencial](#requests-that-never-get-the-credential). A credencial se aplica em cada sessão que é executada no ambiente, quem quer que a tenha iniciado, até você deletá-la.149O proxy do agente anexa um segredo a uma requisição quando o host da requisição corresponde a um que você listou nesse segredo. As sessões podem alcançar esses hosts mesmo quando o [nível de acesso à rede](#access-levels) do ambiente não permitiria de outra forma, exceto os [hosts que nunca recebem o segredo](#requests-that-never-get-the-credential). O segredo se aplica em cada sessão que é executada no ambiente, quem quer que a tenha iniciado, até você excluí-lo.

150 150 

151<h4 id="requests-that-never-get-the-credential">151<h4 id="requests-that-never-get-the-credential">

152 Solicitações que nunca recebem a credencial152 Requisições que nunca recebem o segredo

153</h4>153</h4>

154 154 

155O proxy do agente nunca anexa uma credencial que você adiciona a estas solicitações:155O proxy do agente nunca anexa um segredo que você adiciona a estas requisições:

156 156 

157* **GitHub**: o [proxy do GitHub](#github-proxy) autentica solicitações para GitHub em vez disso, portanto você não precisa de uma credencial de API para isso157* **GitHub**: o [proxy do GitHub](#github-proxy) autentica requisições para o GitHub em vez disso, portanto você não precisa de um segredo de rede para isso

158* **A API Anthropic e registros de pacotes públicos**: `api.anthropic.com`, `registry.npmjs.org`, `jsr.io`, `npm.jsr.io`, `pypi.org`, `files.pythonhosted.org`, `index.crates.io` e `proxy.golang.org`158* **A API Anthropic e registros de pacotes públicos**: `api.anthropic.com`, `registry.npmjs.org`, `jsr.io`, `npm.jsr.io`, `pypi.org`, `files.pythonhosted.org`, `index.crates.io` e `proxy.golang.org`

159* **Solicitações de script de configuração**: Claude Code se conecta ao proxy do agente quando é lançado, depois que o [script de configuração](#setup-scripts) foi executado159* **Solicitações de script de configuração**: Claude Code se conecta ao proxy do agente quando é lançado, depois que o [script de configuração](#setup-scripts) foi executado

160* **Exportação de telemetria do Claude Code**: Claude Code envia sua [exportação de telemetria](/docs/pt/monitoring-usage#telemetry-from-cloud-sessions-and-claude-tag) em si mesma em vez de através de um comando que executa, e essa solicitação não passa pelo proxy do agente160* **Exportação de telemetria do Claude Code**: Claude Code envia sua [exportação de telemetria](/docs/pt/monitoring-usage#telemetry-from-cloud-sessions-and-claude-tag) em si mesma em vez de através de um comando que executa, e essa solicitação não passa pelo proxy do agente


179 179 

180* As sessões já em execução no ambiente continuam funcionando.180* As sessões já em execução no ambiente continuam funcionando.

181* O ambiente desaparece do seletor e de `/remote-env`, portanto você não pode escolhê-lo para novas sessões.181* O ambiente desaparece do seletor e de `/remote-env`, portanto você não pode escolhê-lo para novas sessões.

182* As credenciais de API no ambiente permanecem anexadas em suas sessões em execução. Delete qualquer uma que você não queira mais antes de arquivar.182* Os segredos de rede no ambiente permanecem anexados em suas sessões em execução. Exclua qualquer um que você não queira mais antes de arquivar.

183* Nenhuma nova sessão pode ser iniciada em um ambiente arquivado, em qualquer superfície. Se o ambiente era seu [padrão CLI](#select-an-environment-from-the-cli) salvo, Claude Code inicia sessões na nuvem da CLI no ambiente hospedado pela Anthropic quando sua lista tem um, e caso contrário no primeiro ambiente em sua lista que não é um [ambiente bridge Remote Control](#the-default-environment). Qualquer coisa configurada com o ambiente explicitamente, como uma [rotina](/docs/pt/routines#environments-and-network-access), não pode iniciar novas sessões nele. Aponte-a para outro ambiente.183* Nenhuma nova sessão pode ser iniciada em um ambiente arquivado, em qualquer superfície. Se o ambiente era seu [padrão CLI](#select-an-environment-from-the-cli) salvo, Claude Code inicia sessões na nuvem da CLI no ambiente hospedado pela Anthropic quando sua lista tem um, e caso contrário no primeiro ambiente em sua lista que não é um [ambiente bridge Remote Control](#the-default-environment). Qualquer coisa configurada com o ambiente explicitamente, como uma [rotina](/docs/pt/routines#environments-and-network-access), não pode iniciar novas sessões nele. Aponte-a para outro ambiente.

184 184 

185<h3 id="organization-shared-environments">185<h3 id="organization-shared-environments">


197 197 

198Os Proprietários escolhem o [ambiente padrão](#the-default-environment) da organização separadamente, em [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).198Os Proprietários escolhem o [ambiente padrão](#the-default-environment) da organização separadamente, em [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).

199 199 

200Cada sessão de membro em um ambiente compartilhado lê suas variáveis, portanto não inclua segredos nelas. [Credenciais de API](#add-api-credentials), que dão às sessões uma chave que elas não podem ler, ainda não estão disponíveis em planos Team ou Enterprise.200Cada sessão de membro em um ambiente compartilhado lê suas variáveis, portanto não inclua segredos nelas. [Segredos de rede](#add-api-credentials), que dão às sessões uma chave que elas não podem ler, ainda não estão disponíveis em planos Team ou Enterprise.

201 201 

202<h3 id="set-the-environment-a-claude-tag-channel-uses">202<h3 id="set-the-environment-a-claude-tag-channel-uses">

203 Defina o ambiente que um canal do Claude Tag usa203 Defina o ambiente que um canal do Claude Tag usa


239 239 

240* GitHub, através de seu [proxy separado](#github-proxy)240* GitHub, através de seu [proxy separado](#github-proxy)

241* [Conectores MCP](#network-access) que você ativa, cujo tráfego viaja através dos servidores da Anthropic241* [Conectores MCP](#network-access) que você ativa, cujo tráfego viaja através dos servidores da Anthropic

242* Os hosts que você listou nas [credenciais de API](#add-api-credentials) do ambiente, exceto os [hosts que nunca recebem a credencial](#requests-that-never-get-the-credential)242* Os hosts que você listou nos [segredos de rede](#add-api-credentials) do ambiente, exceto os [hosts que nunca recebem o segredo](#requests-that-never-get-the-credential)

243* A API Anthropic, para as próprias solicitações do Claude Code, até mesmo em **None**, conforme observado em [Segurança e isolamento](/docs/pt/claude-code-on-the-web#security-and-isolation)243* A API Anthropic, para as próprias solicitações do Claude Code, até mesmo em **None**, conforme observado em [Segurança e isolamento](/docs/pt/claude-code-on-the-web#security-and-isolation)

244 244 

245<h3 id="allow-specific-domains">245<h3 id="allow-specific-domains">


254registry.example.com254registry.example.com

255```255```

256 256 

257As sessões neste ambiente agora podem alcançar `api.example.com`, qualquer subdomínio de `internal.example.com` e `registry.example.com`, e nenhum outro domínio através da rede da sessão. [Tráfego do GitHub](#github-proxy), [tráfego do conector MCP](#network-access) e solicitações para os hosts das [credenciais de API](#add-api-credentials) do ambiente, outros que os [hosts que nunca recebem a credencial](#requests-that-never-get-the-credential), não passam por essa lista de permissões. Um `*.` inicial corresponde a cada subdomínio. Para manter também os [domínios Trusted](#default-allowed-domains), marque **Also include default list of common package managers**; deixe desmarcado para permitir apenas o que você listar.257As sessões neste ambiente agora podem alcançar `api.example.com`, qualquer subdomínio de `internal.example.com` e `registry.example.com`, e nenhum outro domínio através da rede da sessão. [Tráfego do GitHub](#github-proxy), [tráfego do conector MCP](#network-access) e requisições para os hosts dos [segredos de rede](#add-api-credentials) do ambiente, exceto os [hosts que nunca recebem o segredo](#requests-that-never-get-the-credential), não passam por essa allowlist. Um `*.` inicial corresponde a cada subdomínio. Para manter também os [domínios Trusted](#default-allowed-domains), marque **Also include default list of common package managers**; deixe desmarcado para permitir apenas o que você listar.

258 258 

259Se sua organização usa [artefatos](/docs/pt/artifacts#availability), você não precisa de `*.frame.claudeusercontent.com` na lista para as sessões lerem. Quando a lista deixa esse host de fora, Claude Code lê o conteúdo do artefato através da conexão da sessão com a Anthropic em vez disso. Mantenha o host em uma lista de permissões em duas situações:259Se sua organização usa [artefatos](/docs/pt/artifacts#availability), você não precisa de `*.frame.claudeusercontent.com` na lista para as sessões lerem. Quando a lista deixa esse host de fora, Claude Code lê o conteúdo do artefato através da conexão da sessão com a Anthropic em vez disso. Mantenha o host em uma lista de permissões em duas situações:

260 260 


302 O que é transferido de sua configuração302 O que é transferido de sua configuração

303</h3>303</h3>

304 304 

305As sessões na nuvem começam a partir de um clone fresco de seu repositório. Qualquer coisa que você confirme no repositório está disponível. Qualquer coisa que você tenha instalado ou configurado apenas em sua própria máquina não está disponível na sessão. A política de sua organização chega separadamente através das [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings).305As sessões na nuvem começam a partir de um clone fresco de seu repositório. Qualquer coisa de que você fizer commit no repositório está disponível. Qualquer coisa que você tenha instalado ou configurado apenas em sua própria máquina não está disponível na sessão. A política de sua organização chega separadamente através das [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings).

306 306 

307| | Disponível em sessões na nuvem | Por quê |307| | Disponível em sessões na nuvem | Por quê |

308| :- | :- | :- |308| :- | :- | :- |


313| Seu `.claude/skills/`, `.claude/agents/`, `.claude/commands/` do repositório | Sim | Parte do clone |313| Seu `.claude/skills/`, `.claude/agents/`, `.claude/commands/` do repositório | Sim | Parte do clone |

314| Plugins e marketplaces declarados em seu `.claude/settings.json` do repositório | Não | Uma sessão na nuvem não instala os plugins que um repositório ativa em [`enabledPlugins`](/docs/pt/settings-reference#enabledplugins), incluindo aqueles dos marketplaces que lista em [`extraKnownMarketplaces`](/docs/pt/settings-reference#extraknownmarketplaces) |314| Plugins e marketplaces declarados em seu `.claude/settings.json` do repositório | Não | Uma sessão na nuvem não instala os plugins que um repositório ativa em [`enabledPlugins`](/docs/pt/settings-reference#enabledplugins), incluindo aqueles dos marketplaces que lista em [`extraKnownMarketplaces`](/docs/pt/settings-reference#extraknownmarketplaces) |

315| As [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) de sua organização | Sim, exceto em sessões [Claude Tag](https://claude.com/docs/claude-tag/overview) | Buscadas dos servidores da Anthropic quando a sessão é iniciada. Veja [Cobertura de superfície](/docs/pt/model-config#surface-coverage) para como `availableModels` é aplicado em sessões na nuvem. As configurações implantadas em seu dispositivo através de MDM ou arquivos de configurações gerenciadas não se aplicam, porque a sessão é executada em uma VM gerenciada pela Anthropic; em um [ambiente auto-hospedado](/docs/pt/self-hosted-environments), as sessões também leem o arquivo de configurações gerenciadas na imagem do executor, por [como Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#how-claude-code-combines-managed-sources) |315| As [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) de sua organização | Sim, exceto em sessões [Claude Tag](https://claude.com/docs/claude-tag/overview) | Buscadas dos servidores da Anthropic quando a sessão é iniciada. Veja [Cobertura de superfície](/docs/pt/model-config#surface-coverage) para como `availableModels` é aplicado em sessões na nuvem. As configurações implantadas em seu dispositivo através de MDM ou arquivos de configurações gerenciadas não se aplicam, porque a sessão é executada em uma VM gerenciada pela Anthropic; em um [ambiente auto-hospedado](/docs/pt/self-hosted-environments), as sessões também leem o arquivo de configurações gerenciadas na imagem do executor, por [como Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#how-claude-code-combines-managed-sources) |

316| Seu `~/.claude/CLAUDE.md` do usuário | Não | Vive em sua máquina, não no repositório |316| Seu `~/.claude/CLAUDE.md` do usuário | Não | Vive em sua máquina, não no repositório. Veja [Adicione preferências pessoais sem fazer commit no repositório](#add-personal-preferences-without-committing-to-the-repo) |

317| 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 |317| Seu `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` do usuário | Não | Vivem em sua máquina, não no repositório. Faça commit deles no diretório `.claude/` do repositório em vez disso. As sessões na nuvem carregam automaticamente skills que você ativa em claude.ai |

318| Plugins ativados apenas em suas configurações de usuário | Não | O `enabledPlugins` com escopo de usuário vive em `~/.claude/settings.json` em sua máquina |318| Plugins ativados apenas em suas configurações de usuário | Não | O `enabledPlugins` com escopo de usuário vive em `~/.claude/settings.json` em sua máquina |

319| 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 |319| 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 faça commit desse arquivo. Uma sessão com um repositório o carrega |

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

321| 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 |321| Chaves de API e tokens para serviços que Claude chama | Em planos Pro e Max, como [segredos de rede](#add-api-credentials) | Você adiciona a chave uma vez no ambiente e o proxy do agente a anexa às requisiçõ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 |

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

323 323 

324Para disponibilizar sua própria configuração em sessões na nuvem, confirme-a no repositório.324Para disponibilizar sua própria configuração em sessões na nuvem, faça commit dela no repositório.

325 325 

326Qualquer pessoa que use o ambiente pode ler suas variáveis de ambiente e script de configuração. A nota do diálogo em **Environment variables** diz isso e avisa contra colocar segredos lá. Em planos Pro e Max, armazene uma chave que o proxy do agente pode anexar como uma [credencial de API](#add-api-credentials) em vez disso.326Qualquer pessoa que use o ambiente pode ler suas variáveis de ambiente e script de configuração. A nota do diálogo em **Environment variables** diz isso e avisa contra colocar segredos lá. Em planos Pro e Max, armazene uma chave que o proxy do agente pode anexar como um [segredo de rede](#add-api-credentials) em vez disso.

327 

328<h4 id="add-personal-preferences-without-committing-to-the-repo">

329 Adicione preferências pessoais sem fazer commit no repositório

330</h4>

331 

332Em um ambiente hospedado pela Anthropic, adicione um [script de configuração](#setup-scripts) que escreva `~/.claude/CLAUDE.md` para preferências que você prefere não colocar em um repositório compartilhado. Claude Code carrega esse arquivo como [instruções do usuário](/docs/pt/memory#choose-where-to-put-claude-md-files) na sessão. Este exemplo define uma preferência de mensagem de commit:

333 

334```bash theme={null}

335#!/bin/bash

336mkdir -p ~/.claude

337cat > ~/.claude/CLAUDE.md <<'EOF'

338Use conventional commit messages.

339EOF

340```

341 

342Coloque o script em um de seus próprios ambientes em vez de em um [compartilhado](#organization-shared-environments).

343 

344Execute `/context` em sua próxima sessão na nuvem e confirme que `/root/.claude/CLAUDE.md` aparece em **Memory files**.

327 345 

328<h3 id="installed-tools">346<h3 id="installed-tools">

329 Ferramentas instaladas347 Ferramentas instaladas


351 369 

352As 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`.370As 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`.

353 371 

354As cadeias de ferramentas fora dessa lista, como o SDK .NET, não estão pré-instaladas mesmo quando seus registros de pacotes estão na [lista de permissões padrão](#default-allowed-domains). Instale-as com um [script de configuração](#setup-scripts).372As cadeias de ferramentas fora dessa lista, como o SDK .NET, não estão pré-instaladas mesmo quando seus registros de pacotes estão na [allowlist padrão](#default-allowed-domains). Instale-as com um [script de configuração](#setup-scripts).

355 373 

356<h3 id="work-with-github-issues-and-pull-requests">374<h3 id="work-with-github-issues-and-pull-requests">

357 Trabalhe com problemas e solicitações de pull do GitHub375 Trabalhe com issues e pull requests do GitHub

358</h3>376</h3>

359 377 

360As sessões na nuvem incluem ferramentas GitHub integradas que permitem a Claude ler problemas, listar solicitações de pull, buscar diffs e postar comentários sem nenhuma configuração. Essas ferramentas se autenticam através do [proxy do GitHub](#github-proxy) usando qualquer método que você configurou em [opções de autenticação do GitHub](/docs/pt/claude-code-on-the-web#github-authentication-options), portanto seu token nunca entra no contêiner.378As sessões na nuvem incluem ferramentas GitHub integradas que permitem a Claude ler issues, listar pull requests, buscar diffs e postar comentários sem nenhuma configuração. Essas ferramentas se autenticam através do [proxy do GitHub](#github-proxy) usando qualquer método que você configurou em [opções de autenticação do GitHub](/docs/pt/claude-code-on-the-web#github-authentication-options), portanto seu token nunca entra no contêiner.

361 379 

362Você pode definir `GH_TOKEN` ou `GITHUB_TOKEN` você mesmo nas [configurações de ambiente](#set-environment-variables), ou deixar ambos não definidos e deixar o [proxy do GitHub](#github-proxy) autenticar para você:380Você pode definir `GH_TOKEN` ou `GITHUB_TOKEN` você mesmo nas [configurações de ambiente](#set-environment-variables), ou deixar ambos não definidos e deixar o [proxy do GitHub](#github-proxy) autenticar para você:

363 381 

364* Se você definir um token, ele passa para o contêiner inalterado, portanto seus scripts e o [`gh` CLI](https://cli.github.com) do GitHub usam-no diretamente.382* Se você definir um token, ele passa para o contêiner inalterado, portanto seus scripts e o [`gh` CLI](https://cli.github.com) do GitHub usam-no diretamente.

365* Se você não definir nenhum e o [proxy do GitHub](#github-proxy) estiver manipulando a autenticação para sua sessão, ambas as variáveis leem como a string placeholder `proxy-injected` nos comandos que Claude executa, e o proxy substitui suas credenciais reais em solicitações de saída do GitHub. `gh` funciona sem um token seu, mas um script que lê `GITHUB_TOKEN` diretamente obtém o placeholder, não um token utilizável.383* Se você não definir nenhum e o [proxy do GitHub](#github-proxy) estiver manipulando a autenticação para sua sessão, ambas as variáveis leem como a string placeholder `proxy-injected` nos comandos que Claude executa, e o proxy substitui suas credenciais reais em requisições de saída do GitHub. `gh` funciona sem um token seu, mas um script que lê `GITHUB_TOKEN` diretamente obtém o placeholder, não um token utilizável.

366 384 

367Um token que você define é uma variável de ambiente ordinária, portanto qualquer pessoa que use o ambiente pode lê-lo; o caminho do proxy mantém a credencial fora da configuração do ambiente e da VM da sessão.385Um token que você define é uma variável de ambiente ordinária, portanto qualquer pessoa que use o ambiente pode lê-lo; o caminho do proxy mantém a credencial fora da configuração do ambiente e da VM da sessão.

368 386 


438 456 

439Em ambientes hospedados pela Anthropic, estes limites de tempo se aplicam a trabalhos de longa duração em uma sessão na nuvem, como uma compilação, uma instalação ou uma execução de teste. Cada entrada vincula à seção que define o limite.457Em ambientes hospedados pela Anthropic, estes limites de tempo se aplicam a trabalhos de longa duração em uma sessão na nuvem, como uma compilação, uma instalação ou uma execução de teste. Cada entrada vincula à seção que define o limite.

440 458 

441* **Comandos que Claude executa**: um ambiente na nuvem não define seu próprio timeout de comando, portanto os padrões da ferramenta Bash se aplicam. Claude aguarda 2 minutos por um comando por padrão e pode pedir até 10 minutos.459* **Comandos que Claude executa**: um ambiente na nuvem não define seu próprio timeout de comando, portanto os padrões da ferramenta Bash se aplicam. Claude aguarda 2 minutos por um comando em foreground por padrão e pode pedir até 10 minutos.

442 460 

443 Quando um comando atinge seu [timeout](/docs/pt/tools-reference#timeout-and-output-limits), Claude Code [o move para o background](/docs/pt/tools-reference#foreground-commands-that-move-to-the-background) em vez de pará-lo, a menos que o comando comece com `sleep`. Um comando movido dessa forma pode continuar executando por até 30 minutos a mais antes de Claude Code pará-lo em seu [limite de tempo de background](/docs/pt/tools-reference#time-limit-for-background-commands). Definir `BASH_DEFAULT_TIMEOUT_MS` acima de `1800000` milissegundos alonga esse limite bem como o padrão de foreground.461 Quando um comando atinge seu [timeout](/docs/pt/tools-reference#timeout-and-output-limits), Claude Code [o move para o background](/docs/pt/tools-reference#foreground-commands-that-move-to-the-background) em vez de pará-lo, a menos que o comando comece com `sleep`. Um comando movido dessa forma pode continuar executando por até 30 minutos a mais antes de Claude Code pará-lo em seu [limite de tempo de background](/docs/pt/tools-reference#time-limit-for-background-commands). Definir `BASH_DEFAULT_TIMEOUT_MS` acima de `1800000` milissegundos alonga esse limite bem como o padrão de foreground.

444* **Hooks SessionStart**: Claude Code cancela um hook `command` após 600 segundos a menos que você defina [`timeout`](/docs/pt/hooks#common-fields), em segundos, na entrada do hook. Claude Code não aplica o timeout em um hook que você executa com [`async: true`](/docs/pt/hooks#run-hooks-in-the-background).462* **Hooks SessionStart**: Claude Code cancela um hook `command` após 600 segundos a menos que você defina [`timeout`](/docs/pt/hooks#common-fields), em segundos, na entrada do hook. Claude Code não aplica o timeout em um hook que você executa com [`async: true`](/docs/pt/hooks#run-hooks-in-the-background).

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. [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).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) podem ser carregados no lugar de 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 da apresentação**: você executa `/compact`, que 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 da apresentação**: você executa `/compact`, que 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.

costs.md +1 −1

Details

394* **Use modo de plano para tarefas complexas**: Pressione Shift+Tab para entrar em [modo de plano](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode) antes da implementação. Claude explora a base de código e propõe uma abordagem para sua aprovação, prevenindo retrabalho caro quando a direção inicial está errada.394* **Use modo de plano para tarefas complexas**: Pressione Shift+Tab para entrar em [modo de plano](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode) antes da implementação. Claude explora a base de código e propõe uma abordagem para sua aprovação, prevenindo retrabalho caro quando a direção inicial está errada.

395* **Corrija o curso cedo**: Se Claude começar a seguir a direção errada, pressione Escape para parar imediatamente. Use `/rewind` ou toque duplo em Escape para restaurar conversa e código para um checkpoint anterior.395* **Corrija o curso cedo**: Se Claude começar a seguir a direção errada, pressione Escape para parar imediatamente. Use `/rewind` ou toque duplo em Escape para restaurar conversa e código para um checkpoint anterior.

396* **Dê alvos de verificação**: Inclua casos de teste, cole capturas de tela ou defina saída esperada em seu prompt. Quando Claude pode verificar seu próprio trabalho, detecta problemas antes de você precisar solicitar correções.396* **Dê alvos de verificação**: Inclua casos de teste, cole capturas de tela ou defina saída esperada em seu prompt. Quando Claude pode verificar seu próprio trabalho, detecta problemas antes de você precisar solicitar correções.

397* **Teste incrementalmente**: Escreva um arquivo, teste-o, depois continue. Isto detecta problemas cedo quando são baratos de corrigir.397* **Teste incrementalmente**: Escreva um arquivo, teste-o, depois continue. Isto detecta problemas cedo.

398 398 

399<h2 id="background-token-usage">399<h2 id="background-token-usage">

400 Uso de tokens em segundo plano400 Uso de tokens em segundo plano

desktop.md +1 −1

Details

1092Para ver qual versão do aplicativo desktop você está executando:1092Para ver qual versão do aplicativo desktop você está executando:

1093 1093 

1094* **macOS**: clique em **Claude** na barra de menu, depois **About Claude**1094* **macOS**: clique em **Claude** na barra de menu, depois **About Claude**

1095* **Windows**: clique em **Help**, depois **About**1095* **Windows**: clique em **Help**, depois **About Claude**

1096 1096 

1097Clique no número da versão para copiá-lo para sua área de transferência.1097Clique no número da versão para copiá-lo para sua área de transferência.

1098 1098 

Details

92* Salvar uma captura de tela com **Cmd+S** ou uma gravação de tela com **Cmd+R**, usando os botões de captura do painel ou os atalhos de teclado; os arquivos são salvos em sua Desktop92* Salvar uma captura de tela com **Cmd+S** ou uma gravação de tela com **Cmd+R**, usando os botões de captura do painel ou os atalhos de teclado; os arquivos são salvos em sua Desktop

93* Parar de transmitir um dispositivo sem desligá-lo clicando em **Detach simulator**, que retorna o painel ao estado **Attach simulator**93* Parar de transmitir um dispositivo sem desligá-lo clicando em **Detach simulator**, que retorna o painel ao estado **Attach simulator**

94 94 

95Para ajustar o streaming de vídeo do simulador, abra o menu **Display** do painel. Reduza **Frame rate** ou **Resolution** se o painel sobrecarregar seu Mac. Ambas as configurações alteram como o painel exibe o dispositivo, não como o aplicativo é executado.95Se o painel mostrar um menu **Display**, use-o para ajustar o streaming de vídeo do simulador. Reduza **Frame rate** ou **Resolution** se o painel sobrecarregar seu Mac. Ambas as configurações alteram como o painel exibe o dispositivo, não como o aplicativo é executado.

96 96 

97Você e Claude controlam o mesmo dispositivo, portanto seus toques alteram o estado do aplicativo que Claude vê. Para fazer Claude verificar uma tela específica, navegue até ela tocando e depois pergunte. Enquanto Claude está controlando o dispositivo, o painel mostra um crachá **Claude is using this device** acima da tela; espere tocar até que o crachá desapareça, para que o resultado reflita o aplicativo em vez de sua entrada.97Você e Claude controlam o mesmo dispositivo, portanto seus toques alteram o estado do aplicativo que Claude vê. Para fazer Claude verificar uma tela específica, navegue até ela tocando e depois pergunte. Enquanto Claude está controlando o dispositivo, o painel mostra um crachá **Claude is using this device** acima da tela; espere tocar até que o crachá desapareça, para que o resultado reflita o aplicativo em vez de sua entrada.

98 98 

env-vars.md +1 −0

Details

354| `CLAUDE_CODE_PERFORCE_MODE` | Defina como `1` para ativar a proteção de gravação compatível com o Perforce. Quando definida, Edit, Write e NotebookEdit falham com uma dica `p4 edit <file>` se o arquivo de destino não tiver o bit de gravação do proprietário, que o Perforce remove dos arquivos sincronizados até que `p4 edit` os abra. Isso impede que o Claude Code contorne o rastreamento de alterações do Perforce |354| `CLAUDE_CODE_PERFORCE_MODE` | Defina como `1` para ativar a proteção de gravação compatível com o Perforce. Quando definida, Edit, Write e NotebookEdit falham com uma dica `p4 edit <file>` se o arquivo de destino não tiver o bit de gravação do proprietário, que o Perforce remove dos arquivos sincronizados até que `p4 edit` os abra. Isso impede que o Claude Code contorne o rastreamento de alterações do Perforce |

355| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sobrescreve o diretório raiz de plugins. Apesar do nome, isto define o diretório pai, não o cache em si: os marketplaces e o cache de plugins ficam em subdiretórios sob este caminho. O padrão é `~/.claude/plugins` |355| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sobrescreve o diretório raiz de plugins. Apesar do nome, isto define o diretório pai, não o cache em si: os marketplaces e o cache de plugins ficam em subdiretórios sob este caminho. O padrão é `~/.claude/plugins` |

356| `CLAUDE_CODE_PLUGIN_DIRS` | Diretórios de plugins a carregar para a sessão, cada um carregado da mesma forma que uma flag [`--plugin-dir`](/docs/pt/plugins/cli-reference#flags-that-load-a-plugin-for-one-session) o carrega. Separe vários caminhos com `:` no Unix ou `;` no Windows. Informe cada caminho como um caminho absoluto ou comece-o com `~`, porque o Claude Code ignora caminhos relativos. Requer o Claude Code v2.1.280 ou posterior. Consulte [Carregar um plugin para uma sessão](/docs/pt/plugins/create#load-a-directory-or-archive-for-one-session) |356| `CLAUDE_CODE_PLUGIN_DIRS` | Diretórios de plugins a carregar para a sessão, cada um carregado da mesma forma que uma flag [`--plugin-dir`](/docs/pt/plugins/cli-reference#flags-that-load-a-plugin-for-one-session) o carrega. Separe vários caminhos com `:` no Unix ou `;` no Windows. Informe cada caminho como um caminho absoluto ou comece-o com `~`, porque o Claude Code ignora caminhos relativos. Requer o Claude Code v2.1.280 ou posterior. Consulte [Carregar um plugin para uma sessão](/docs/pt/plugins/create#load-a-directory-or-archive-for-one-session) |

357| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Controla se o Claude Code recarrega um [mod](/docs/pt/plugins/mods/overview) quando os arquivos do mod mudam. O recarregamento se aplica a um mod que você carrega de um diretório com `--plugin-dir`, e fica ativado por padrão em sessões interativas. Defina como `1` para ativá-lo também em sessões não interativas, ou `0` para desativá-lo em todas as sessões. Requer Claude Code v2.1.287 ou posterior. Consulte [configurações e variáveis de ambiente de mods](/docs/pt/plugins/mods/reference#settings-and-environment-variables) |

357| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Timeout em milissegundos para clonar ou atualizar um marketplace de plugins (padrão: 120000). Aumente este valor para repositórios grandes ou conexões de rede lentas. Consulte [Git clone timed out](/docs/pt/plugins/troubleshooting#git-clone-timed-out-after-120s) |358| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Timeout em milissegundos para clonar ou atualizar um marketplace de plugins (padrão: 120000). Aumente este valor para repositórios grandes ou conexões de rede lentas. Consulte [Git clone timed out](/docs/pt/plugins/troubleshooting#git-clone-timed-out-after-120s) |

358| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Defina como `1` para pular a tentativa de clonar novamente e continuar usando o checkout existente do marketplace quando uma atualização do marketplace não consegue alcançar o remoto ou autenticar-se nele. Útil em ambientes offline ou isolados, onde clonar novamente falharia da mesma forma. Consulte [Atualizações do marketplace falham em ambientes offline](/docs/pt/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |359| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Defina como `1` para pular a tentativa de clonar novamente e continuar usando o checkout existente do marketplace quando uma atualização do marketplace não consegue alcançar o remoto ou autenticar-se nele. Útil em ambientes offline ou isolados, onde clonar novamente falharia da mesma forma. Consulte [Atualizações do marketplace falham em ambientes offline](/docs/pt/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |

359| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Defina como `1` para clonar fontes na forma abreviada `owner/repo` do GitHub via HTTPS em vez de SSH. Aplica-se à instalação e atualização de plugins e a `/plugin marketplace add` e `update`. Útil em runners de CI, contêineres ou qualquer ambiente sem uma chave SSH configurada para `github.com` |360| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Defina como `1` para clonar fontes na forma abreviada `owner/repo` do GitHub via HTTPS em vez de SSH. Aplica-se à instalação e atualização de plugins e a `/plugin marketplace add` e `update`. Útil em runners de CI, contêineres ou qualquer ambiente sem uma chave SSH configurada para `github.com` |

errors.md +3 −4

Details

197| `Cloud sessions cannot be created from a --restricted session` | [Command-line errors](#cloud-sessions-cannot-be-created-from-a-restricted-session) |197| `Cloud sessions cannot be created from a --restricted session` | [Command-line errors](#cloud-sessions-cannot-be-created-from-a-restricted-session) |

198| `Cloud sessions are disabled by your organization's policy` | [Command-line errors](#cloud-sessions-are-disabled-by-your-organizations-policy) |198| `Cloud sessions are disabled by your organization's policy` | [Command-line errors](#cloud-sessions-are-disabled-by-your-organizations-policy) |

199| `Couldn't verify your organization's policy for cloud sessions` | [Command-line errors](#cloud-sessions-are-disabled-by-your-organizations-policy) |199| `Couldn't verify your organization's policy for cloud sessions` | [Command-line errors](#cloud-sessions-are-disabled-by-your-organizations-policy) |

200| `Cloud sessions need a claude.ai sign-in` | [Unable to get organization UUID](/docs/pt/claude-code-on-the-web#unable-to-get-organization-uuid) |

200| `Error: --json-schema is not a valid JSON Schema` | [Command-line errors](#the-json-schema-value-is-not-a-valid-json-schema) |201| `Error: --json-schema is not a valid JSON Schema` | [Command-line errors](#the-json-schema-value-is-not-a-valid-json-schema) |

201| `Error: Invalid --agents configuration:` | [Command-line errors](#invalid-agents-configuration) |202| `Error: Invalid --agents configuration:` | [Command-line errors](#invalid-agents-configuration) |

202| `Error: --agents takes a JSON object, or a file path only with --print (-p)` | [Command-line errors](#invalid-agents-configuration) |203| `Error: --agents takes a JSON object, or a file path only with --print (-p)` | [Command-line errors](#invalid-agents-configuration) |


387* Uma conexão que Claude Code detecta que foi quebrada pelo seu computador entrando em modo de suspensão no meio de uma requisição. Claude Code a conta como uma conexão perdida sob as regras acima; uma vez que o rótulo de nova tentativa nomeia a razão específica, ele exibe `Connection lost while your computer was asleep`, e se o turno terminar depois que Claude terminou de pensar mas antes de qualquer texto ou chamada de ferramenta, a mensagem exibe `Your computer went to sleep before a response was produced`.388* Uma conexão que Claude Code detecta que foi quebrada pelo seu computador entrando em modo de suspensão no meio de uma requisição. Claude Code a conta como uma conexão perdida sob as regras acima; uma vez que o rótulo de nova tentativa nomeia a razão específica, ele exibe `Connection lost while your computer was asleep`, e se o turno terminar depois que Claude terminou de pensar mas antes de qualquer texto ou chamada de ferramenta, a mensagem exibe `Your computer went to sleep before a response was produced`.

388* Um fluxo de resposta travado, quando os cabeçalhos de resposta chegaram mas nenhuma parte da resposta do Claude chegou, ou quando Claude terminou de pensar mas não iniciou qualquer texto ou chamada de ferramenta: Claude Code aborta a conexão travada e reemite a requisição no máximo uma vez, fora do orçamento de 10 tentativas acima. Se a resposta travar uma segunda vez depois que Claude terminou de pensar mas antes de qualquer texto ou chamada de ferramenta, Claude Code encerra o turno com `The response stalled before a response was produced`.389* Um fluxo de resposta travado, quando os cabeçalhos de resposta chegaram mas nenhuma parte da resposta do Claude chegou, ou quando Claude terminou de pensar mas não iniciou qualquer texto ou chamada de ferramenta: Claude Code aborta a conexão travada e reemite a requisição no máximo uma vez, fora do orçamento de 10 tentativas acima. Se a resposta travar uma segunda vez depois que Claude terminou de pensar mas antes de qualquer texto ou chamada de ferramenta, Claude Code encerra o turno com `The response stalled before a response was produced`.

389* Uma requisição de streaming que a API nunca responde com cabeçalhos de resposta, em uma conexão onde o [prazo de primeiro byte é executado](/docs/pt/network-config#streaming-idle-watchdogs): Claude Code a aborta no prazo e a reenvia no máximo uma vez por requisição de modelo, dentro do orçamento de tentativas, depois encerra o turno com [No response from API](#no-response-from-api) se essa tentativa também ficar sem resposta. Em outras conexões, a requisição aguarda `API_TIMEOUT_MS`. Quando você define `CLAUDE_CODE_RETRY_WATCHDOG`, o limite de uma nova tentativa não se aplica.390* Uma requisição de streaming que a API nunca responde com cabeçalhos de resposta, em uma conexão onde o [prazo de primeiro byte é executado](/docs/pt/network-config#streaming-idle-watchdogs): Claude Code a aborta no prazo e a reenvia no máximo uma vez por requisição de modelo, dentro do orçamento de tentativas, depois encerra o turno com [No response from API](#no-response-from-api) se essa tentativa também ficar sem resposta. Em outras conexões, a requisição aguarda `API_TIMEOUT_MS`. Quando você define `CLAUDE_CODE_RETRY_WATCHDOG`, o limite de uma nova tentativa não se aplica.

391* Uma resposta de streaming que o filtro de conteúdo de saída da API interrompe antes de Claude ter terminado de pensar ou iniciado qualquer texto ou chamada de ferramenta. Claude Code reenvia a requisição uma vez, dentro do orçamento de tentativas, e mostra [Output blocked by content filtering policy](#output-blocked-by-content-filtering-policy) se o filtro também interromper a segunda resposta.

390* Throttles 429 temporários, mas não o `429` de limite de gastos de um gateway, que não é um throttle; veja [Spend limit reached](#spend-limit-reached).392* Throttles 429 temporários, mas não o `429` de limite de gastos de um gateway, que não é um throttle; veja [Spend limit reached](#spend-limit-reached).

391 * Quando você está conectado com uma assinatura claude.ai, isso inclui throttles 429 que não carregam os cabeçalhos de cota do seu plano. Antes da v2.1.199, Claude Code tentava novamente esses throttles apenas para logins com chave de API e Enterprise.393 * Quando você está conectado com uma assinatura claude.ai, isso inclui throttles 429 que não carregam os cabeçalhos de cota do seu plano. Antes da v2.1.199, Claude Code tentava novamente esses throttles apenas para logins com chave de API e Enterprise.

392* Uma requisição rejeitada porque a entrada mais `max_tokens` excede o limite de contexto. Reenviá-la sem alterações falharia da mesma forma, então Claude Code tenta novamente com um `max_tokens` reduzido, e para de tentar novamente e compacta em dois casos:394* Uma requisição rejeitada porque a entrada mais `max_tokens` excede o limite de contexto. Reenviá-la sem alterações falharia da mesma forma, então Claude Code tenta novamente com um `max_tokens` reduzido, e para de tentar novamente e compacta em dois casos:


405* Uma [resposta de streaming do Amazon Bedrock com um tipo de conteúdo inesperado](#bedrock-streaming-response-has-an-unexpected-content-type), porque o gateway ou proxy que reescreve a resposta reescreveria a nova tentativa da mesma forma. Requer Claude Code v2.1.208 ou posterior.407* Uma [resposta de streaming do Amazon Bedrock com um tipo de conteúdo inesperado](#bedrock-streaming-response-has-an-unexpected-content-type), porque o gateway ou proxy que reescreve a resposta reescreveria a nova tentativa da mesma forma. Requer Claude Code v2.1.208 ou posterior.

406* Uma nova tentativa sem streaming de uma requisição de streaming com falha que recebe um status de sucesso mas [nenhuma mensagem da API Claude no corpo](#api-returned-an-empty-or-malformed-response). Claude Code encerra o turno com esse erro.408* Uma nova tentativa sem streaming de uma requisição de streaming com falha que recebe um status de sucesso mas [nenhuma mensagem da API Claude no corpo](#api-returned-an-empty-or-malformed-response). Claude Code encerra o turno com esse erro.

407* Uma requisição que a verificação de política da sua organização negou, que aparece como uma linha `API Error:` carregando a mensagem de negação. Os administradores da sua organização configuram a verificação com [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks), um recurso do Claude Enterprise, e a mensagem termina com as instruções que eles configuraram, ou por padrão diz para você entrar em contato com eles. Claude Code não reenvia a requisição negada para o mesmo modelo ou para um [modelo de fallback](/docs/pt/model-config#fallback-model-chains), porque a negação é sobre o conteúdo da requisição e não sobre o modelo. Antes da v2.1.239, Claude Code poderia reenviar uma requisição negada, sem streaming ou em um modelo de fallback configurado, antes de mostrar a negação.409* Uma requisição que a verificação de política da sua organização negou, que aparece como uma linha `API Error:` carregando a mensagem de negação. Os administradores da sua organização configuram a verificação com [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks), um recurso do Claude Enterprise, e a mensagem termina com as instruções que eles configuraram, ou por padrão diz para você entrar em contato com eles. Claude Code não reenvia a requisição negada para o mesmo modelo ou para um [modelo de fallback](/docs/pt/model-config#fallback-model-chains), porque a negação é sobre o conteúdo da requisição e não sobre o modelo. Antes da v2.1.239, Claude Code poderia reenviar uma requisição negada, sem streaming ou em um modelo de fallback configurado, antes de mostrar a negação.

408* Uma resposta que o filtro de conteúdo de saída da API bloqueou. Claude Code mostra [Output blocked by content filtering policy](#output-blocked-by-content-filtering-policy) imediatamente e não tenta novamente nem reenvia essa requisição.

409 410 

410<h3 id="what-you-see-while-claude-code-retries-or-waits">411<h3 id="what-you-see-while-claude-code-retries-or-waits">

411 O que você vê enquanto Claude Code tenta novamente ou aguarda412 O que você vê enquanto Claude Code tenta novamente ou aguarda


2299 2300 

2300**O que fazer:**2301**O que fazer:**

2301 2302 

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

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

2304 2305 

2305<h3 id="unable-to-resize-image">2306<h3 id="unable-to-resize-image">


2905API Error: Output blocked by content filtering policy2906API Error: Output blocked by content filtering policy

2906```2907```

2907 2908 

2908Claude Code mostra o erro assim que o bloqueio chega e encerra a requisição ali. Ele não tenta novamente a requisição, não a reenvia sem streaming nem muda para um [modelo de fallback](/docs/pt/model-config#fallback-model-chains). Antes da v2.1.285, Claude Code podia reenviar e tentar novamente uma requisição bloqueada, às vezes por minutos, antes de mostrar o erro a você.

2909 

2910**O que fazer:**2909**O que fazer:**

2911 2910 

2912* Reformule sua última mensagem ou tome uma abordagem diferente2911* Reformule sua última mensagem ou tome uma abordagem diferente

fast-mode.md +1 −1

Details

88 88 

89O preço do modo rápido é fixo em toda a janela de contexto de 1M token. Para a taxa padrão do Opus para comparar, consulte a [referência de preços do Claude](https://platform.claude.com/docs/pt/about-claude/pricing).89O preço do modo rápido é fixo em toda a janela de contexto de 1M token. Para a taxa padrão do Opus para comparar, consulte a [referência de preços do Claude](https://platform.claude.com/docs/pt/about-claude/pricing).

90 90 

91A primeira vez que você ativa o modo rápido em uma conversa, você paga o preço total do token de entrada não armazenado em cache do modo rápido para todo o contexto da conversa. Quanto mais profundo você estiver em uma conversa, mais isso custa, portanto ativar o modo rápido desde o início é mais barato. O custo se aplica uma vez por conversa, portanto desativar e ativar o modo rápido novamente mais tarde não o repete. Para o mecanismo, consulte [como o modo rápido interage com o cache de prompt](/docs/pt/prompt-caching#turning-on-fast-mode).91A primeira vez que você ativa o modo rápido em uma conversa, você paga o preço total do token de entrada não armazenado em cache do modo rápido para todo o contexto da conversa. Quanto mais profundo você estiver em uma conversa, mais isso custa, portanto a cobrança é menor quando você ativa o modo rápido no início. O custo se aplica uma vez por conversa, portanto desativar e ativar o modo rápido novamente mais tarde não o repete. Para o mecanismo, consulte [como o modo rápido interage com o cache de prompt](/docs/pt/prompt-caching#turning-on-fast-mode).

92 92 

93<h3 id="see-where-fast-mode-spend-appears">93<h3 id="see-where-fast-mode-spend-appears">

94 Veja onde o gasto do modo rápido aparece94 Veja onde o gasto do modo rápido aparece

glossary.md +1 −1

Details

130 130 

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

132 132 

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.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 [política gerenciada](#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 os arquivos [AGENTS.md](#agents-md) de um projeto no lugar de CLAUDE.md.

134 134 

135Saiba mais: [CLAUDE.md files](/docs/pt/memory#claude-md-files)135Saiba mais: [CLAUDE.md files](/docs/pt/memory#claude-md-files)

136 136 

Details

210export VERTEX_REGION_CLAUDE_4_6_SONNET=europe-west1210export VERTEX_REGION_CLAUDE_4_6_SONNET=europe-west1

211```211```

212 212 

213A maioria das versões de modelo tem uma variável `VERTEX_REGION_CLAUDE_*` correspondente. Veja a [referência de variáveis de ambiente](/docs/pt/env-vars) para a lista completa. Verifique o [Jardim de Modelos da Plataforma de Agentes do Google Cloud](https://console.cloud.google.com/vertex-ai/model-garden) para determinar quais modelos suportam endpoints globais versus apenas regionais.213A maioria das versões de modelo tem uma variável `VERTEX_REGION_CLAUDE_*` correspondente. Veja a [referência de variáveis de ambiente](/docs/pt/env-vars#variables) para a lista completa. Verifique o [Jardim de Modelos da Plataforma de Agentes do Google Cloud](https://console.cloud.google.com/vertex-ai/model-garden) para determinar quais modelos suportam endpoints globais versus apenas regionais.

214 214 

215Se um valor de região não se parecer com um nome de região ou localização, Claude Code o trata como não definido. Por exemplo, Claude Code trata um valor contendo uma barra, ponto ou espaço como não definido. Claude Code volta para uma fonte diferente para cada variável:215Se um valor de região não se parecer com um nome de região ou localização, Claude Code o trata como não definido. Por exemplo, Claude Code trata um valor contendo uma barra, ponto ou espaço como não definido. Claude Code volta para uma fonte diferente para cada variável:

216 216 


364 364 

365* Confirme que o modelo está Ativado no [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden)365* Confirme que o modelo está Ativado no [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden)

366* Verifique se o modelo está disponível no local que você especificou. Alguns modelos são oferecidos apenas em locais `global` ou multi-região como `eu` e `us`, não em regiões específicas366* Verifique se o modelo está disponível no local que você especificou. Alguns modelos são oferecidos apenas em locais `global` ou multi-região como `eu` e `us`, não em regiões específicas

367* Se estiver usando `CLOUD_ML_REGION=global`, verifique se seus modelos suportam endpoints globais no [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) em "Recursos suportados". Para modelos que não suportam endpoints globais, faça um dos seguintes:367* Se estiver usando `CLOUD_ML_REGION=global`, verifique se seus modelos suportam endpoints globais no [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) em "Supported features". Para modelos que não suportam endpoints globais, faça um dos seguintes:

368 * Especifique um modelo suportado via `ANTHROPIC_MODEL` ou `ANTHROPIC_DEFAULT_HAIKU_MODEL`, ou368 * Especifique um modelo suportado via `ANTHROPIC_MODEL` ou `ANTHROPIC_DEFAULT_HAIKU_MODEL`, ou

369 * Defina uma região ou local multi-região usando variáveis de ambiente `VERTEX_REGION_<MODEL_NAME>`369 * Defina uma região ou local multi-região usando a variável `VERTEX_REGION_CLAUDE_*` do modelo, listada na [referência de variáveis de ambiente](/docs/pt/env-vars#variables)

370 370 

371Se você encontrar erros 429:371Se você encontrar erros 429:

372 372 

hooks.md +4 −5

Details

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

64| `FileChanged` | Quando um arquivo observado muda no disco. O campo `matcher` especifica quais nomes de arquivo observar |64| `FileChanged` | Quando um arquivo observado muda no disco. O campo `matcher` especifica quais nomes de arquivo observar |

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

66| `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 |66| `WorktreeRemove` | Quando um worktree que um hook `WorktreeCreate` criou está sendo removido |

67| `PreCompact` | Antes da compactação de contexto |67| `PreCompact` | Antes da compactação de contexto |

68| `PostCompact` | Depois que a compactação de contexto é concluída |68| `PostCompact` | Depois que a compactação de contexto é concluída |

69| `PreModelSwitch` | Antes de Claude Code aplicar uma mudança de modelo que você ou um cliente solicitou. Pode bloquear a mudança |69| `PreModelSwitch` | Antes de Claude Code aplicar uma mudança de modelo que você ou um cliente solicitou. Pode bloquear a mudança |


3274 WorktreeRemove3274 WorktreeRemove

3275</h3>3275</h3>

3276 3276 

3277É executado quando um worktree está sendo removido. Este é o equivalente de limpeza do [WorktreeCreate](#worktreecreate). O evento é disparado quando:3277É executado quando o Claude Code limpa um worktree que o seu hook [`WorktreeCreate`](#worktreecreate) criou. O evento é disparado quando:

3278 3278 

3279* você sai de uma sessão `--worktree` e escolhe removê-lo3279* Você sai de uma sessão `--worktree` e escolhe remover o worktree

3280* um subagente com `isolation: "worktree"` termina3280* Você exclui uma [sessão em segundo plano](/docs/pt/agent-view#what-deleting-a-session-removes) que é executada no worktree

3281* você exclui uma [sessão em segundo plano](/docs/pt/agent-view#what-deleting-a-session-removes) cujo worktree foi criado pelo hook

3282 3281 

3283Para worktrees baseados em git, o Claude Code lida com a limpeza automaticamente com `git worktree remove`. Se você configurou um hook WorktreeCreate, combine-o com um hook WorktreeRemove para controlar a limpeza dos worktrees que ele cria:3282Para worktrees baseados em git, o Claude Code lida com a limpeza automaticamente com `git worktree remove`. Se você configurou um hook WorktreeCreate, combine-o com um hook WorktreeRemove para controlar a limpeza dos worktrees que ele cria:

3284 3283 

hooks-guide.md +1 −1

Details

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

527| `FileChanged` | Quando um arquivo observado muda no disco. O campo `matcher` especifica quais nomes de arquivo observar |527| `FileChanged` | Quando um arquivo observado muda no disco. O campo `matcher` especifica quais nomes de arquivo observar |

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

529| `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 |529| `WorktreeRemove` | Quando um worktree que um hook `WorktreeCreate` criou está sendo removido |

530| `PreCompact` | Antes da compactação de contexto |530| `PreCompact` | Antes da compactação de contexto |

531| `PostCompact` | Depois que a compactação de contexto é concluída |531| `PostCompact` | Depois que a compactação de contexto é concluída |

532| `PreModelSwitch` | Antes de Claude Code aplicar uma mudança de modelo que você ou um cliente solicitou. Pode bloquear a mudança |532| `PreModelSwitch` | Antes de Claude Code aplicar uma mudança de modelo que você ou um cliente solicitou. Pode bloquear a mudança |

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. 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.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) no lugar de um 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 

keybindings.md +3 −2

Details

299| :- | :- | :- |299| :- | :- | :- |

300| `footer:next` | Right | Próximo item do rodapé |300| `footer:next` | Right | Próximo item do rodapé |

301| `footer:previous` | Left | Item anterior do rodapé |301| `footer:previous` | Left | Item anterior do rodapé |

302| `footer:up` | Up | Navegar para cima no rodapé (desseleciona no topo) |302| `footer:up` | Up, Ctrl+P | Navegar para cima no rodapé (desseleciona no topo) |

303| `footer:down` | Down | Navegar para baixo no rodapé |303| `footer:down` | Down, Ctrl+N | Navegar para baixo no rodapé |

304| `footer:openSelected` | Enter | Abrir item do rodapé selecionado |304| `footer:openSelected` | Enter | Abrir item do rodapé selecionado |

305| `footer:clearSelection` | Escape | Limpar seleção do rodapé |305| `footer:clearSelection` | Escape | Limpar seleção do rodapé |

306| `footer:close` | x | Parar o [agente](/docs/pt/sub-agents#observe-and-steer-running-forks) ou [workflow](/docs/pt/workflows#manage-runs) selecionado, ou descartar sua linha se ele não estiver mais em execução |

306| `footer:dismiss` | (desvinculado) | Vincular uma chave a esta ação não tem efeito, e um `keybindings.json` que a nomeia permanece válido. Antes da v2.1.281, Backspace e Delete estavam vinculados a ela e descartavam o link de artefato selecionado do rodapé. |307| `footer:dismiss` | (desvinculado) | Vincular uma chave a esta ação não tem efeito, e um `keybindings.json` que a nomeia permanece válido. Antes da v2.1.281, Backspace e Delete estavam vinculados a ela e descartavam o link de artefato selecionado do rodapé. |

307 308 

308Enquanto um item do rodapé está selecionado, como uma linha no painel do agente abaixo do prompt, `Enter` o abre mesmo quando você rebinda `Enter` no contexto `Chat` para `chat:queueSubmit` ou `chat:newline`.309Enquanto um item do rodapé está selecionado, como uma linha no painel do agente abaixo do prompt, `Enter` o abre mesmo quando você rebinda `Enter` no contexto `Chat` para `chat:queueSubmit` ou `chat:newline`.

Details

216* **Distribuído por um administrador**: se sua organização [implantou a configuração](/docs/pt/llm-gateway-rollout#distribute-through-managed-settings), o aplicativo desktop roteia através do gateway sem nenhuma configuração de sua parte216* **Distribuído por um administrador**: se sua organização [implantou a configuração](/docs/pt/llm-gateway-rollout#distribute-through-managed-settings), o aplicativo desktop roteia através do gateway sem nenhuma configuração de sua parte

217* **Configurado localmente**: para dispositivos sem uma configuração distribuída por administrador, abra Help → Troubleshooting → Enable Developer Mode, que reinicia o aplicativo com um menu Developer. Em seguida, abra Developer → Configure Third-Party Inference e insira a URL base do seu gateway. Uma configuração distribuída por administrador tem precedência e torna esse formulário somente leitura217* **Configurado localmente**: para dispositivos sem uma configuração distribuída por administrador, abra Help → Troubleshooting → Enable Developer Mode, que reinicia o aplicativo com um menu Developer. Em seguida, abra Developer → Configure Third-Party Inference e insira a URL base do seu gateway. Uma configuração distribuída por administrador tem precedência e torna esse formulário somente leitura

218 218 

219Com a configuração de gateway ativa, o aplicativo desktop executa sessões apenas em sua máquina local: o seletor de ambiente não oferece sessões SSH ou ambientes em nuvem hospedados pela Anthropic, e [Remote Control](/docs/pt/remote-control) não está disponível. Para usar Claude Code em um host remoto através do gateway, execute o CLI nesse host com [`ANTHROPIC_BASE_URL` e a credencial de gateway](#set-the-base-url-and-credential) definidos lá.219Com a configuração de gateway ativa, o seletor de ambiente não oferece ambientes na nuvem hospedados pela Anthropic, e [Remote Control](/docs/pt/remote-control) não está disponível.

220 

221As sessões SSH estão em beta com uma configuração de gateway e requerem Claude Desktop v1.40609.0 ou posterior. Antes de se conectar, verifique a allowlist e o endereço do gateway:

222 

223* **Hosts permitidos**: as sessões SSH ficam desativadas por padrão. Para ativá-las, você ou seu administrador lista os hosts permitidos na chave [`sshHostAllowlist`](https://claude.com/docs/third-party/claude-desktop/configuration#sshhostallowlist) da configuração de inferência de terceiros

224* **Endereço do gateway**: a máquina remota se conecta diretamente ao gateway, então um gateway em `localhost` no seu computador não funciona para sessões SSH

225 

226Consulte [Sessões remotas SSH no Claude Desktop em 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions). Você também pode executar o CLI no host remoto com [`ANTHROPIC_BASE_URL` e a credencial de gateway](#set-the-base-url-and-credential) definidos lá.

220 227 

221Se o aplicativo desktop mostrar `Gateway was unreachable`, o aplicativo não conseguiu alcançar a URL base configurada na inicialização; verifique a URL e o caminho de rede com o [teste curl acima](#verify-the-connection).228Se o aplicativo desktop mostrar `Gateway was unreachable`, o aplicativo não conseguiu alcançar a URL base configurada na inicialização; verifique a URL e o caminho de rede com o [teste curl acima](#verify-the-connection).

222 229 

managed-mcp.md +17 −5

Details

347 Como entradas `serverUrl` correspondem347 Como entradas `serverUrl` correspondem

348</h4>348</h4>

349 349 

350URLs suportam wildcards `*` em qualquer lugar do padrão, incluindo o esquema. A correspondência de nome de host não diferencia maiúsculas de minúsculas e ignora um ponto FQDN à direita, então `https://Mcp.Example.com/*` corresponde a `https://mcp.example.com/api`. Caminhos permanecem sensíveis a maiúsculas e minúsculas.350URLs suportam wildcards `*`, incluindo `*` como o esquema inteiro. A correspondência de nome de host não diferencia maiúsculas de minúsculas e ignora um ponto FQDN à direita, então `https://Mcp.Example.com/*` corresponde a `https://mcp.example.com/api`. Caminhos permanecem sensíveis a maiúsculas e minúsculas. Se você não informar nenhuma porta, a forma como você escreve o nome de host decide se o padrão corresponde apenas à porta padrão do esquema ou a todas as portas:

351 

352* **Nome de host escrito por completo**: apenas a porta padrão, 443 para `https` e 80 para `http`

353* **Nome de host com um `*`**: todas as portas

351 354 

352A tabela mostra o que padrões comuns permitem:355A tabela mostra o que padrões comuns permitem:

353 356 

354| Padrão | Permite |357| Padrão | Permite |

355| :- | :- |358| :- | :- |

356| `https://mcp.example.com/*` | Todos os caminhos em um domínio específico |359| `https://mcp.example.com/*` | Todos os caminhos em um domínio específico, apenas na porta 443 |

357| `https://mcp.example.com` | Também todos os caminhos nesse domínio. Um padrão sem caminho corresponde a qualquer caminho |360| `https://mcp.example.com` | Também todos os caminhos nesse domínio, apenas na porta 443. Um padrão sem caminho corresponde a qualquer caminho |

358| `https://*.example.com/*` | Qualquer subdomínio de `example.com` |361| `https://mcp.example.com:8443/*` | Todos os caminhos nesse domínio, apenas na porta 8443 |

362| `https://mcp.example.com:*/*` | Todos os caminhos nesse domínio, em qualquer porta, incluindo a 443 |

363| `https://*.example.com/*` | Qualquer subdomínio de `example.com`, em qualquer porta |

359| `http://localhost:*/*` | Qualquer porta em localhost |364| `http://localhost:*/*` | Qualquer porta em localhost |

360| `*://mcp.example.com/*` | Qualquer esquema para um domínio específico |365| `*://mcp.example.com/*` | Qualquer esquema para um domínio específico, cada esquema apenas em sua porta padrão |

366 

367Entradas em `deniedMcpServers` correspondem a portas da mesma forma, então escolha uma entrada para `staging.example.com` de acordo com as portas e os esquemas que você precisa bloquear:

368 

369* `https://staging.example.com/*`: bloqueia servidores `https` nesse host apenas na porta 443, então não bloqueia um servidor em `https://staging.example.com:8443/api`

370* `https://staging.example.com:*/*`: bloqueia servidores `https` nesse host em todas as portas

371* `*://staging.example.com:*/*`: bloqueia esse host em qualquer esquema e em qualquer porta

361 372 

362<h4 id="how-policy-entries-expand">373<h4 id="how-policy-entries-expand">

363 Variáveis de ambiente em entradas `serverCommand` e `serverUrl`374 Variáveis de ambiente em entradas `serverCommand` e `serverUrl`


529 | :- | :- |540 | :- | :- |

530 | Servidor HTTP em `https://mcp.example.com/api` | Permitido: corresponde ao padrão de URL da lista de permissão, sem correspondência de lista de bloqueio |541 | Servidor HTTP em `https://mcp.example.com/api` | Permitido: corresponde ao padrão de URL da lista de permissão, sem correspondência de lista de bloqueio |

531 | Servidor HTTP em `https://staging.example.com/api` | Bloqueado: corresponde a ambos, mas a lista de bloqueio tem precedência |542 | Servidor HTTP em `https://staging.example.com/api` | Bloqueado: corresponde a ambos, mas a lista de bloqueio tem precedência |

543 | Servidor HTTP em `https://staging.example.com:8443/api` | Permitido: corresponde ao padrão de URL da allowlist, [sem correspondência na denylist nesta porta](#how-serverurl-entries-match) |

532 | Servidor HTTP em `https://other.com/mcp` | Bloqueado: não corresponde à lista de permissão |544 | Servidor HTTP em `https://other.com/mcp` | Bloqueado: não corresponde à lista de permissão |

533</Accordion>545</Accordion>

534 546 

memory.md +2 −2

Details

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 persistente. Claude também pode ler arquivos [`AGENTS.md`](#agents-md) de um repositório, por conta própria ou ao lado de CLAUDE.md11* **Arquivos CLAUDE.md**: instruções que você escreve para dar a Claude contexto persistente. Claude também pode ler os [arquivos `AGENTS.md`](#agents-md) de um repositório no lugar 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.md17* [Usar um AGENTS.md existente](#agents-md) como suas instruções de projeto

18* [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/`

19* [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

20* [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

Details

551* **Configurações gerenciadas pelo servidor**: adicione-as ao bloco `env` das [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) da sua organização. Claude Code busca essas configurações na inicialização onde [as configurações gerenciadas pelo servidor se aplicam](/docs/pt/model-config#surface-coverage), o que inclui as máquinas dos seus usuários e sessões em nuvem diferentes das sessões do canal Claude Tag. Sessões Claude Tag não recebem suas configurações gerenciadas pelo servidor, portanto esta rota não as configura.551* **Configurações gerenciadas pelo servidor**: adicione-as ao bloco `env` das [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) da sua organização. Claude Code busca essas configurações na inicialização onde [as configurações gerenciadas pelo servidor se aplicam](/docs/pt/model-config#surface-coverage), o que inclui as máquinas dos seus usuários e sessões em nuvem diferentes das sessões do canal Claude Tag. Sessões Claude Tag não recebem suas configurações gerenciadas pelo servidor, portanto esta rota não as configura.

552* **As variáveis do ambiente**: adicione-as às [variáveis de ambiente](/docs/pt/cloud-environments#set-environment-variables) de um ambiente em nuvem para configurar apenas as sessões executadas nesse ambiente. Esta é a rota que alcança sessões Claude Tag.552* **As variáveis do ambiente**: adicione-as às [variáveis de ambiente](/docs/pt/cloud-environments#set-environment-variables) de um ambiente em nuvem para configurar apenas as sessões executadas nesse ambiente. Esta é a rota que alcança sessões Claude Tag.

553 553 

554Qualquer pessoa que use um ambiente pode ler suas variáveis, portanto não coloque uma credencial lá, como um token de coletor em `OTEL_EXPORTER_OTLP_HEADERS`. Uma [credencial de API](/docs/pt/cloud-environments#add-api-credentials) no ambiente também não ajuda, porque a exportação de telemetria do próprio Claude Code é uma das [solicitações que nunca recebem a credencial](/docs/pt/cloud-environments#requests-that-never-get-the-credential). Se seu coletor exigir uma credencial, configure toda a exportação através de configurações gerenciadas pelo servidor, porque quando você define uma credencial lá, [Claude Code remove variáveis de endpoint definidas fora das configurações gerenciadas](#how-managed-settings-lock-the-otlp-destination).554Qualquer pessoa que use um ambiente pode ler suas variáveis, portanto não coloque uma credencial lá, como um token de coletor em `OTEL_EXPORTER_OTLP_HEADERS`. Um [segredo de rede](/docs/pt/cloud-environments#add-api-credentials) no ambiente também não ajuda, porque a exportação de telemetria do próprio Claude Code é uma das [requisições que nunca recebem o segredo](/docs/pt/cloud-environments#requests-that-never-get-the-credential). Se seu coletor exigir uma credencial, configure toda a exportação através de configurações gerenciadas pelo servidor, porque quando você define uma credencial lá, [Claude Code remove variáveis de endpoint definidas fora das configurações gerenciadas](#how-managed-settings-lock-the-otlp-destination).

555 555 

556Mantenha essas restrições em mente ao configurar telemetria para sessões em nuvem:556Mantenha essas restrições em mente ao configurar telemetria para sessões em nuvem:

557 557 

overview.md +6 −4

Details

28 curl -fsSL https://claude.ai/install.sh | bash28 curl -fsSL https://claude.ai/install.sh | bash

29 ```29 ```

30 30 

31 No Windows, seu prompt mostra `PS C:\` quando você está no PowerShell e `C:\` sem o `PS` quando você está no CMD.

32 

31 **Windows PowerShell:**33 **Windows PowerShell:**

32 34 

33 ```powershell theme={null}35 ```powershell theme={null}


42 44 

43 Quando o instalador terminar, abra uma nova janela de terminal e execute `claude --version`. Uma instalação funcionando imprime um número de versão. Se seu shell disser que `claude` não foi encontrado ou não é reconhecido, o diretório de instalação ainda não está em seu PATH: consulte [Corrija seu PATH](/docs/pt/troubleshoot-install#command-not-found-claude-after-installation).45 Quando o instalador terminar, abra uma nova janela de terminal e execute `claude --version`. Uma instalação funcionando imprime um número de versão. Se seu shell disser que `claude` não foi encontrado ou não é reconhecido, o diretório de instalação ainda não está em seu PATH: consulte [Corrija seu PATH](/docs/pt/troubleshoot-install#command-not-found-claude-after-installation).

44 46 

45 Se você vir `The token '&&' is not a valid statement separator`, você está no PowerShell, não no CMD. Se você vir `'irm' is not recognized as an internal or external command`, você está no CMD, não no PowerShell. Seu prompt mostra `PS C:\` quando você está no PowerShell e `C:\` sem o `PS` quando você está no CMD.47 Se você vir `The token '&&' is not a valid statement separator`, você está no PowerShell, não no CMD. Se você vir `'irm' is not recognized as an internal or external command`, você está no CMD, não no PowerShell.

46 48 

47 Se o comando de instalação falhar com `syntax error near unexpected token '<'`, um `403`, ou outro erro de curl, consulte [Solucionar problemas de instalação](/docs/pt/troubleshoot-install#find-your-error) para corresponder o erro a uma correção e para métodos alternativos de instalação.49 Se o comando de instalação falhar com `syntax error near unexpected token '<'`, um `403`, ou qualquer outro erro, consulte [Solucionar problemas de instalação](/docs/pt/troubleshoot-install#find-your-error) para corresponder o erro a uma correção e para métodos alternativos de instalação.

48 50 

49 [Git for Windows](https://git-scm.com/downloads/win) é recomendado no Windows nativo para que Claude Code possa usar a ferramenta Bash. Se Git for Windows não estiver instalado, Claude Code usa PowerShell como ferramenta de shell. Configurações WSL não precisam de Git for Windows.51 [Git for Windows](https://git-scm.com/downloads/win) é recomendado no Windows nativo para que Claude Code possa usar a ferramenta Bash. Se Git for Windows não estiver instalado, Claude Code usa PowerShell como ferramenta de shell. Configurações WSL não precisam de Git for Windows.

50 52 


85 claude87 claude

86 ```88 ```

87 89 

88 Você será solicitado a fazer login no primeiro uso. Se você tiver definido a variável de ambiente `ANTHROPIC_API_KEY`, Claude Code ignora o prompt de login e pede que você aprove a chave. É isso! [Continue com o Quickstart →](/docs/pt/quickstart)90 Claude Code solicita que você faça login no primeiro uso. Se você tiver definido a variável de ambiente `ANTHROPIC_API_KEY` e aprovar a chave quando Claude Code perguntar se deve usá-la, Claude Code ignora o prompt de login. [Continue com o guia de início rápido →](/docs/pt/quickstart)

89 91 

90 <Tip>92 <Tip>

91 Veja [configuração avançada](/docs/pt/setup) para opções de instalação, atualizações manuais ou instruções de desinstalação. Visite [troubleshooting de instalação](/docs/pt/troubleshoot-install) se você encontrar problemas.93 Veja [configuração avançada](/docs/pt/setup) para opções de instalação, atualizações manuais ou instruções de desinstalação. Visite [troubleshooting de instalação](/docs/pt/troubleshoot-install) se você encontrar problemas.


171 </Accordion>173 </Accordion>

172 174 

173 <Accordion title="Personalize com instruções, skills e hooks" icon="sliders">175 <Accordion title="Personalize com instruções, skills e hooks" icon="sliders">

174 [`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.176 [`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) no lugar de um `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.

175 177 

176 Crie [skills](/docs/pt/skills) para empacotar fluxos de trabalho repetíveis que sua equipe pode compartilhar, como `/review-pr` ou `/deploy-staging`.178 Crie [skills](/docs/pt/skills) para empacotar fluxos de trabalho repetíveis que sua equipe pode compartilhar, como `/review-pr` ou `/deploy-staging`.

177 179 

plugin-evals.md +1 −1

Details

122 122 

123 O achado mais comum primeiro é um `Δ` próximo a zero com o avaliador `tool_used: Skill` do caso falhando, o que significa que Claude não está escolhendo seu skill em fraseado natural. Ajuste a [`description`](/docs/pt/skills#frontmatter-reference) do skill, execute `claude plugin eval .` novamente e compare.123 O achado mais comum primeiro é um `Δ` próximo a zero com o avaliador `tool_used: Skill` do caso falhando, o que significa que Claude não está escolhendo seu skill em fraseado natural. Ajuste a [`description`](/docs/pt/skills#frontmatter-reference) do skill, execute `claude plugin eval .` novamente e compare.

124 124 

125 Para iterar em um caso barato, execute um único braço uma vez. Uma única execução é barulhenta, então confirme qualquer mudança nas três execuções padrão antes de confiar nela. Com um braço a tabela mostra colunas `SCORE` e `PASS%` em vez de `WITH`, `W/OUT` e `Δ`:125 Para iterar em um caso com menos execuções, execute um único braço uma vez. Uma única execução é barulhenta, então confirme qualquer mudança nas três execuções padrão antes de confiar nela. Com um braço a tabela mostra colunas `SCORE` e `PASS%` em vez de `WITH`, `W/OUT` e `Δ`:

126 126 

127 ```bash theme={null}127 ```bash theme={null}

128 claude plugin eval . --case <case-name> --runs 1 --ablation none128 claude plugin eval . --case <case-name> --runs 1 --ablation none

Details

733You are a security reviewer. Read the changed files and report injection, authentication, and secrets-handling risks.733You are a security reviewer. Read the changed files and report injection, authentication, and secrets-handling risks.

734```734```

735 735 

736Este agente é nomeado `my-plugin:security-reviewer`, e o usuário pode [invocá-lo explicitamente](/docs/pt/sub-agents#invoke-subagents-explicitly) com `@agent-my-plugin:security-reviewer`. A forma do nome é `<plugin>:<name>`, onde `<name>` vem do frontmatter, ou do nome do arquivo quando não há.736Este agente é nomeado `my-plugin:security-reviewer`, e o usuário pode [invocá-lo explicitamente](/docs/pt/sub-agents#invoke-subagents-explicitly) com `@agent-my-plugin:security-reviewer`. A forma do nome é `<plugin>:<name>`, onde `<name>` vem do campo `name` do frontmatter, ou do nome do arquivo quando esse campo está ausente.

737 737 

738A chave `agents` substitui a varredura `agents/`.738A chave `agents` substitui a varredura `agents/`.

739 739 

Details

428 428 

429| Elemento | O que desenha | Onde |429| Elemento | O que desenha | Onde |

430| :- | :- | :- |430| :- | :- | :- |

431| `Box` | Um contêiner flex. Leva propriedades de layout como `flexDirection`, `columnGap`, `padding`, `borderStyle` e `width`. | Em todos os lugares |431| `Box` | Um contêiner flex. Leva props de layout como `flexDirection`, `columnGap`, `padding`, [`borderStyle`](/docs/pt/plugins/mods/reference#box-border-styles) e `width`. | Em todos os lugares |

432| `Text` | Texto estilizado. Leva `color`, `bold`, `dimColor`, `italic` e `wrap`. Uma `color` é uma chave de tema ou uma cor como `'red'`. Um `wrap` é `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'` ou `'truncate-end'`. | Em todos os lugares |432| `Text` | Texto estilizado. Leva `color`, `bold`, `dimColor`, `italic` e `wrap`. Uma `color` é uma chave de tema ou uma cor como `'red'`. Um `wrap` é `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'` ou `'truncate-end'`. | Em todos os lugares |

433| `Button` | Um controle que chama `onPress` | Em todos os lugares |433| `Button` | Um controle que chama `onPress` | Em todos os lugares |

434| `Link`, `Code`, `Markdown` | Um link com `href` e um `label` opcional, um bloco de código e texto formatado da forma que as respostas do Claude são. `Markdown` leva seu conteúdo em uma propriedade `text`, não em `children`, e precisa de uma `key` quando você passa `onLinkPress`. | Em todos os lugares |434| `Link`, `Code`, `Markdown` | Um link com `href` e um `label` opcional, um bloco de código e texto formatado da forma que as respostas do Claude são. `Markdown` leva seu conteúdo em uma propriedade `text`, não em `children`, e precisa de uma `key` quando você passa `onLinkPress`. | Em todos os lugares |


563Muitos painéis são um campo de texto com uma lista sob ele. O exemplo nesta seção é um painel de notas: você digita uma nota e pressiona Enter para adicioná-la, e cada nota tem um botão `x` que a deleta. Com duas notas adicionadas, o terminal desenha o painel desta forma:563Muitos painéis são um campo de texto com uma lista sob ele. O exemplo nesta seção é um painel de notas: você digita uma nota e pressiona Enter para adicioná-la, e cada nota tem um botão `x` que a deleta. Com duas notas adicionadas, o terminal desenha o painel desta forma:

564 564 

565```text theme={null}565```text theme={null}

566╭──────────────────────────────────────────────────────────╮566╭────────────────────────────────────────────────────────✕─╮

567│ Note: Type a note and press Enter ⏎ add ✕ │567│ Note: Type a note and press Enter ⏎ add │

568│ x buy milk │568│ x buy milk │

569│ x call bob │569│ x call bob │

570╰──────────────────────────────────────────────────────────╯570╰──────────────────────────────────────────────────────────╯

571```571```

572 572 

573O `✕` na borda superior é a marca própria do Claude Code para fechar o painel.

574 

573O exemplo usa estas técnicas:575O exemplo usa estas técnicas:

574 576 

575* **Tomar entrada digitada**: um `Input` chama `onSubmit(value)` com o texto do campo quando o usuário pressiona Enter, e `onInput(value)` em cada mudança577* **Tomar entrada digitada**: um `Input` chama `onSubmit(value)` com o texto do campo quando o usuário pressiona Enter, e `onInput(value)` em cada mudança

Details

242Para ajustar uma árvore ao seu ponto, leia estas props no hook:242Para ajustar uma árvore ao seu ponto, leia estas props no hook:

243 243 

244* **Largura de um `Pane` ou da faixa**: desenhe até `e.props.bodyColumns`244* **Largura de um `Pane` ou da faixa**: desenhe até `e.props.bodyColumns`

245* **Altura de um `Pane` ao lado da transcrição**: quando `e.props.placement` é `'dock'`, `e.props.scroll.bodyRows` é o número de linhas que o painel tem245* **Altura de um `Pane` ao lado da transcrição**: quando `e.props.placement` é `'dock'`, `e.props.scroll.bodyRows` é o número de linhas que o painel tem para a sua árvore

246* **Altura de um `Pane` acima do prompt**: quando `e.props.placement` é `'inline'`, o painel cresce com a sua árvore até um limite, e `bodyRows` é esse limite. O [campo `rows` de `$.ui.open`](/docs/pt/plugins/mods/interface#open-a-pane-at-the-right-time) solicita um limite diferente.246* **Altura de um `Pane` acima do prompt**: quando `e.props.placement` é `'inline'`, o painel cresce com a sua árvore até um limite, e `bodyRows` é esse limite. O [campo `rows` de `$.ui.open`](/docs/pt/plugins/mods/interface#open-a-pane-at-the-right-time) solicita um limite diferente.

247 247 

248Uma árvore mais alta que o painel rola como um todo.248Uma árvore mais alta que o painel rola como um todo.


255 255 

256| Elemento | Props principais | Terminal | Desktop |256| Elemento | Props principais | Terminal | Desktop |

257| :- | :- | :-: | :-: |257| :- | :- | :-: | :-: |

258| [`Box`](/docs/pt/plugins/mods/interface#build-a-tree-from-elements) | `key`, layout flex, `gap`, `padding`, `margin`, `width`, `height`, `borderStyle`, `backgroundColor`, `position`, `hover` | ✓ | ✓ |258| [`Box`](/docs/pt/plugins/mods/interface#build-a-tree-from-elements) | `key`, layout flex, `gap`, `padding`, `margin`, `width`, `height`, [`borderStyle`](#box-border-styles), `backgroundColor`, `position`, `hover` | ✓ | ✓ |

259| [`Text`](/docs/pt/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ |259| [`Text`](/docs/pt/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ |

260| [`Button`](/docs/pt/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ |260| [`Button`](/docs/pt/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ |

261| `Link` | `href`, `label` | ✓ | ✓ |261| `Link` | `href`, `label` | ✓ | ✓ |


270 270 

271Mais regras de `Button`: `action` indica uma das próprias [ações de atalho de teclado](/docs/pt/keybindings) do Claude Code, e o atalho do usuário para ela pressiona o botão quando esse atalho é um acorde ou uma tecla com modificador. Um `hotkey` numérico em um botão na faixa também é acionado quando o usuário digita apenas esse dígito em um prompt vazio e faz uma pausa. Quando dois botões em um mesmo desenho indicam o mesmo `hotkey`, o posterior fica com ele. `autoFocus` aceita apenas `true` em qualquer controle, então omita a prop para deixá-lo desativado.271Mais regras de `Button`: `action` indica uma das próprias [ações de atalho de teclado](/docs/pt/keybindings) do Claude Code, e o atalho do usuário para ela pressiona o botão quando esse atalho é um acorde ou uma tecla com modificador. Um `hotkey` numérico em um botão na faixa também é acionado quando o usuário digita apenas esse dígito em um prompt vazio e faz uma pausa. Quando dois botões em um mesmo desenho indicam o mesmo `hotkey`, o posterior fica com ele. `autoFocus` aceita apenas `true` em qualquer controle, então omita a prop para deixá-lo desativado.

272 272 

273<h3 id="box-border-styles">

274 Estilos de borda de `Box`

275</h3>

276 

277Para desenhar uma borda ao redor de um `Box`, defina seu `borderStyle` como um destes nomes, como em `borderStyle: 'round'`. Cada linha informa o que o terminal desenha para esse nome e mostra a borda superior.

278 

279| `borderStyle` | O que o terminal desenha | Borda superior |

280| :- | :- | :- |

281| `'single'` | Linhas finas com cantos retos | `┌──┐` |

282| `'double'` | Linhas duplas | `╔══╗` |

283| `'round'` | Linhas finas com cantos arredondados | `╭──╮` |

284| `'bold'` | Linhas grossas | `┏━━┓` |

285| `'singleDouble'` | Linhas finas em cima e embaixo, linhas duplas nas laterais | `╓──╖` |

286| `'doubleSingle'` | Linhas duplas em cima e embaixo, linhas finas nas laterais | `╒══╕` |

287| `'classic'` | Os caracteres ASCII `+`, `-` e `\|` | `+--+` |

288| `'arrow'` | Setas que apontam para dentro do `Box` | `↘↓↓↙` |

289| `'dashed'` | Linhas tracejadas com cantos em branco | `╌╌` |

290| `'quote'` | Uma barra, `▎`, no lado esquerdo e células em branco nos outros três lados | Em branco |

291 

292Um `Box` cujo `borderStyle` indica qualquer outro nome, como `'rounded'`, é desenhado sem borda.

293 

273<h2 id="limits">294<h2 id="limits">

274 Limites295 Limites

275</h2>296</h2>

Details

16 Estes casos são cobertos em outras páginas:16 Estes casos são cobertos em outras páginas:

17 17 

18 * **Por que escopos, o cache e precedência se comportam da maneira que fazem**: leia [Plugin loading reference](/docs/pt/plugins/loading)18 * **Por que escopos, o cache e precedência se comportam da maneira que fazem**: leia [Plugin loading reference](/docs/pt/plugins/loading)

19 * **Procurando por um sinalizador, campo ou comando**: use a [plugin commands reference](/docs/pt/plugins/cli-reference), a [manifest reference](/docs/pt/plugins/manifest-reference), ou a [marketplace reference](/docs/pt/plugins/marketplace-reference)19 * **Procurando por uma flag, campo ou comando**: use a [plugin commands reference](/docs/pt/plugins/cli-reference), a [manifest reference](/docs/pt/plugins/manifest-reference), ou a [marketplace reference](/docs/pt/plugins/marketplace-reference)

20 * **Uma mensagem `hooks module not loaded` ou `hooks module did not load`**: o plugin é um [mod](/docs/pt/plugins/mods/overview), então leia [The mod doesn't load](/docs/pt/plugins/mods/troubleshoot#the-mod-doesn’t-load)

20</Note>21</Note>

21 22 

22Procure pela mensagem exata que você viu. Cada mensagem é listada sob o estágio que a produz, o que nem sempre é o comando que você executou. Por exemplo, uma instalação pode falhar porque um marketplace está faltando, então essa mensagem está sob [Add a marketplace](#add-a-marketplace).23Procure pela mensagem exata que você viu. Cada mensagem é listada sob o estágio que a produz, o que nem sempre é o comando que você executou. Por exemplo, uma instalação pode falhar porque um marketplace está faltando, então essa mensagem está sob [Add a marketplace](#add-a-marketplace).

Details

328| Conversa principal | Uma hora | Cinco minutos |328| Conversa principal | Uma hora | Cinco minutos |

329| Tudo mais | Cinco minutos, exceto as solicitações auxiliares controladas pelo servidor, que obtêm uma hora | Cinco minutos |329| Tudo mais | Cinco minutos, exceto as solicitações auxiliares controladas pelo servidor, que obtêm uma hora | Cinco minutos |

330 330 

331Depois que você ultrapassa o limite de uso do seu plano e Claude Code usa [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans), você é cobrado por esse uso, então Claude Code reduz a conversa principal para o TTL de cinco minutos mais barato. Para manter o TTL de uma hora lá, [escolha o TTL você mesmo](#choose-the-ttl-yourself).331Depois que você ultrapassa o limite de uso do seu plano e Claude Code usa [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans), você é cobrado por esse uso, então Claude Code reduz a conversa principal para o TTL de cinco minutos, que cobra gravações de cache a uma taxa mais baixa. Para manter o TTL de uma hora lá, [escolha o TTL você mesmo](#choose-the-ttl-yourself).

332 332 

333<h3 id="choose-the-ttl-yourself">333<h3 id="choose-the-ttl-yourself">

334 Escolha o TTL você mesmo334 Escolha o TTL você mesmo

Details

1342 },1342 },

1343 "review-your-changes-before": {1343 "review-your-changes-before": {

1344 title: "Revisar suas mudanças antes de fazer commit",1344 title: "Revisar suas mudanças antes de fazer commit",

1345 teaches: "Pegue problemas enquanto ainda são baratos de corrigir. Claude lê os arquivos alterados na íntegra, não apenas as linhas de diff, para que detecte problemas que uma auto-revisão rápida perde.",1345 teaches: "Pegue problemas enquanto ainda exigem menos trabalho para corrigir. Claude lê os arquivos alterados na íntegra, não apenas as linhas de diff, para que detecte problemas que uma auto-revisão rápida perde.",

1346 next: "Execute `/code-review` para a mesma verificação em um comando",1346 next: "Execute `/code-review` para a mesma verificação em um comando",

1347 prompt: "revise minhas mudanças sem commit e sinalize qualquer coisa que pareça arriscada antes de eu fazer commit"1347 prompt: "revise minhas mudanças sem commit e sinalize qualquer coisa que pareça arriscada antes de eu fazer commit"

1348 },1348 },

quickstart.md +55 −89

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# Guia de Início Rápido5# Início rápido

6 6 

7> Bem-vindo ao Claude Code!7> Instale o Claude Code no seu terminal, faça login e use a CLI para explorar sua base de código e fazer sua primeira alteração de código.

8 8 

9Este guia de início rápido o colocará usando assistência de codificação alimentada por IA em poucos minutos. Ao final, você entenderá como usar Claude Code para tarefas comuns de desenvolvimento.9Este guia de início rápido aborda o Claude Code no seu terminal: como instalar a CLI, fazer login a partir da sua primeira sessão e usá-lo para tarefas comuns de desenvolvimento no seu próprio projeto.

10 10 

11<h2 id="before-you-begin">11<h2 id="before-you-begin">

12 Antes de começar12 Antes de começar


15Certifique-se de que você tem:15Certifique-se de que você tem:

16 16 

17* Um terminal ou prompt de comando aberto17* Um terminal ou prompt de comando aberto

18 * Se você nunca usou o terminal antes, confira o [guia de terminal](/docs/pt/terminal-guide)

19* Um projeto de código para trabalhar18* Um projeto de código para trabalhar

20* Uma [assinatura Claude](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_prereq) (Pro, Max, Team ou Enterprise), conta do [Claude Console](https://platform.claude.com/), ou acesso através de um [provedor de nuvem suportado](/docs/pt/third-party-integrations)19* Uma [assinatura Claude](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_prereq) (Pro, Max, Team ou Enterprise), conta do [Claude Console](https://platform.claude.com/), ou acesso através de um [provedor de nuvem suportado](/docs/pt/third-party-integrations)

21 20 

22<Note>21<Note>

23 Este guia cobre o CLI do terminal. Claude Code também está disponível na [web](https://claude.ai/code), como um [aplicativo de desktop](/docs/pt/desktop), em [VS Code](/docs/pt/vs-code) e [IDEs JetBrains](/docs/pt/jetbrains), no [Slack](/docs/pt/slack), e em CI/CD com [GitHub Actions](/docs/pt/github-actions) e [GitLab](/docs/pt/gitlab-ci-cd). Veja [todas as interfaces](/docs/pt/overview#use-claude-code-everywhere).22 Estes casos são abordados em outras páginas:

23 

24 * **Nunca usou um terminal antes**: comece com o [guia de terminal](/docs/pt/terminal-guide)

25 * **Quer usar o Claude Code em outro lugar que não seja o terminal**: Claude Code também está disponível na [web](https://claude.ai/code), como um [aplicativo de desktop](/docs/pt/desktop), em [VS Code](/docs/pt/vs-code) e [IDEs JetBrains](/docs/pt/jetbrains), no [Slack](/docs/pt/slack), e em CI/CD com [GitHub Actions](/docs/pt/github-actions) e [GitLab](/docs/pt/gitlab-ci-cd). Veja [todas as interfaces](/docs/pt/overview#use-claude-code-everywhere).

24</Note>26</Note>

25 27 

26<h2 id="step-1-install-claude-code">28<h2 id="step-1-install-claude-code">


33 <Tab title="Instalação Nativa (Recomendado)">35 <Tab title="Instalação Nativa (Recomendado)">

34 **macOS, Linux, WSL:**36 **macOS, Linux, WSL:**

35 37 

36 ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}38 ```bash theme={null}

37 curl -fsSL https://claude.ai/install.sh | bash39 curl -fsSL https://claude.ai/install.sh | bash

38 ```40 ```

39 41 

42 No Windows, seu prompt mostra `PS C:\` quando você está no PowerShell e `C:\` sem o `PS` quando você está no CMD.

43 

40 **Windows PowerShell:**44 **Windows PowerShell:**

41 45 

42 ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}46 ```powershell theme={null}

43 irm https://claude.ai/install.ps1 | iex47 irm https://claude.ai/install.ps1 | iex

44 ```48 ```

45 49 

46 **Windows CMD:**50 **Windows CMD:**

47 51 

48 ```batch theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}52 ```batch theme={null}

49 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd53 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

50 ```54 ```

51 55 

52 Quando o instalador terminar, abra uma nova janela de terminal e execute `claude --version`. Uma instalação funcionando imprime um número de versão. Se seu shell disser que `claude` não foi encontrado ou não é reconhecido, o diretório de instalação ainda não está em seu PATH: consulte [Corrija seu PATH](/docs/pt/troubleshoot-install#command-not-found-claude-after-installation).56 Quando o instalador terminar, abra uma nova janela de terminal e execute `claude --version`. Uma instalação funcionando imprime um número de versão. Se seu shell disser que `claude` não foi encontrado ou não é reconhecido, o diretório de instalação ainda não está em seu PATH: consulte [Corrija seu PATH](/docs/pt/troubleshoot-install#command-not-found-claude-after-installation).

53 57 

54 Se você vir `The token '&&' is not a valid statement separator`, você está no PowerShell, não no CMD. Se você vir `'irm' is not recognized as an internal or external command`, você está no CMD, não no PowerShell. Seu prompt mostra `PS C:\` quando você está no PowerShell e `C:\` sem o `PS` quando você está no CMD.58 Se você vir `The token '&&' is not a valid statement separator`, você está no PowerShell, não no CMD. Se você vir `'irm' is not recognized as an internal or external command`, você está no CMD, não no PowerShell.

55 59 

56 Se o comando de instalação falhar com `syntax error near unexpected token '<'`, um `403`, ou outro erro de curl, consulte [Solucionar problemas de instalação](/docs/pt/troubleshoot-install#find-your-error) para corresponder o erro a uma correção e para métodos alternativos de instalação.60 Se o comando de instalação falhar com `syntax error near unexpected token '<'`, um `403`, ou qualquer outro erro, consulte [Solucionar problemas de instalação](/docs/pt/troubleshoot-install#find-your-error) para corresponder o erro a uma correção e para métodos alternativos de instalação.

57 61 

58 [Git for Windows](https://git-scm.com/downloads/win) é recomendado no Windows nativo para que Claude Code possa usar a ferramenta Bash. Se Git for Windows não estiver instalado, Claude Code usa PowerShell como ferramenta de shell. Configurações WSL não precisam de Git for Windows.62 [Git for Windows](https://git-scm.com/downloads/win) é recomendado no Windows nativo para que Claude Code possa usar a ferramenta Bash. Se Git for Windows não estiver instalado, Claude Code usa PowerShell como ferramenta de shell. Configurações WSL não precisam de Git for Windows.

59 63 


63 </Tab>67 </Tab>

64 68 

65 <Tab title="Homebrew">69 <Tab title="Homebrew">

66 ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}70 ```bash theme={null}

67 brew install --cask claude-code71 brew install --cask claude-code

68 ```72 ```

69 73 


75 </Tab>79 </Tab>

76 80 

77 <Tab title="WinGet">81 <Tab title="WinGet">

78 ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}82 ```powershell theme={null}

79 winget install Anthropic.ClaudeCode83 winget install Anthropic.ClaudeCode

80 ```84 ```

81 85 


95 99 

96O comando imprime um número de versão seguido por `(Claude Code)`.100O comando imprime um número de versão seguido por `(Claude Code)`.

97 101 

98<h2 id="step-2-log-in-to-your-account">102<h2 id="step-2-start-your-first-session">

99 Passo 2: Faça login em sua conta103 Passo 2: Inicie sua primeira sessão

100</h2>104</h2>

101 105 

102Claude Code requer uma conta para usar. Inicie uma sessão interativa com o comando `claude` e você será solicitado a fazer login no primeiro uso:106Abra seu terminal em qualquer diretório de projeto e inicie o Claude Code:

103 107 

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

109cd /path/to/your/project

105claude110claude

106```111```

107 112 

108Para contas de assinatura Claude ou Console, siga os prompts para concluir a autenticação no seu navegador. Se você tiver definido a variável de ambiente `ANTHROPIC_API_KEY`, Claude Code ignora o prompt de login e pede que você aprove a chave. Para trocar de contas mais tarde ou fazer nova autenticação, digite `/login` dentro da sessão em execução:113Substitua `/path/to/your/project` pelo caminho do projeto em que você deseja trabalhar.

109 114 

110```text wrap theme={null}115O Claude Code solicita que você faça login no primeiro uso. Para contas de assinatura do Claude ou do Console, siga as instruções para concluir a autenticação no seu navegador. Se você definiu a variável de ambiente `ANTHROPIC_API_KEY` e aprovar a chave quando o Claude Code perguntar se deve usá-la, o Claude Code pula o prompt de login.

111/login

112```

113 116 

114Você pode fazer login usando qualquer um destes tipos de conta:117Você pode fazer login usando qualquer um destes tipos de conta:

115 118 

116* [Claude Pro, Max, Team ou Enterprise](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_login) (recomendado)119* [Claude Pro, Max, Team ou Enterprise](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_login) (recomendado)

117* [Claude Console](https://platform.claude.com/) (acesso à API com créditos pré-pagos). No primeiro login, um workspace "Claude Code" é criado automaticamente no Console para rastreamento centralizado de custos.120* [Claude Console](https://platform.claude.com/) (acesso à API com créditos pré-pagos). No primeiro login, um workspace "Claude Code" é criado automaticamente no Console para rastreamento centralizado de custos.

118* [Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry](/docs/pt/third-party-integrations) (provedores de nuvem empresariais)121* [Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry](/docs/pt/third-party-integrations) (provedores de nuvem empresariais)

119* Um [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway) auto-hospedado, se sua organização executar um: seu administrador pré-configura a URL do gateway, e `/login` abre diretamente na tela **Cloud gateway** para você fazer login com SSO corporativo122* Um [gateway de apps do Claude](/docs/pt/claude-apps-gateway) auto-hospedado, se sua organização executar um: seu administrador pré-configura a URL do gateway, e `/login` abre diretamente na tela **Cloud gateway** para que você entre com o SSO corporativo

120 

121Depois de fazer login, suas credenciais são armazenadas e você não precisará fazer login novamente. Saiba mais em [Gerenciamento de Credenciais](/docs/pt/authentication#credential-management).

122 

123<h2 id="step-3-start-your-first-session">

124 Passo 3: Inicie sua primeira sessão

125</h2>

126 

127Abra seu terminal em qualquer diretório de projeto e inicie Claude Code:

128 

129```bash theme={null}

130cd /path/to/your/project

131claude

132```

133 123 

134Substitua `/path/to/your/project` pelo caminho do projeto em que você deseja trabalhar.124Depois de fazer login, suas credenciais são armazenadas e você não precisará fazer login novamente. Saiba mais em [Gerenciamento de credenciais](/docs/pt/authentication#credential-management).

135 125 

136Você verá o prompt do Claude Code com a versão, modelo atual e diretório de trabalho mostrados acima. Digite `/help` para comandos disponíveis ou `/resume` para continuar uma conversa anterior.126O prompt do Claude Code aparece com a versão, o modelo atual e o diretório de trabalho exibidos acima dele. Digite `/help` para ver os comandos disponíveis ou `/resume` para continuar uma conversa anterior. Para trocar de conta mais tarde ou autenticar novamente, digite `/login` dentro da sessão em execução.

137 127 

138<h2 id="step-4-ask-your-first-question">128<h2 id="step-3-ask-your-first-question">

139 Passo 4: Faça sua primeira pergunta129 Passo 3: Faça sua primeira pergunta

140</h2>130</h2>

141 131 

142Vamos começar entendendo sua base de código. Tente um destes comandos:132Experimente um destes comandos:

143 133 

144```text wrap theme={null}134```text wrap theme={null}

145what does this project do?135what does this project do?


174```164```

175 165 

176<Note>166<Note>

177 Claude Code lê seus arquivos de projeto conforme necessário. Você não precisa adicionar contexto manualmente.167 O Claude Code lê os arquivos do seu projeto conforme necessário. Você não precisa adicionar contexto manualmente.

178</Note>168</Note>

179 169 

180<h2 id="step-5-make-your-first-code-change">170<h2 id="step-4-make-your-first-code-change">

181 Passo 5: Faça sua primeira alteração de código171 Passo 4: Faça sua primeira alteração de código

182</h2>172</h2>

183 173 

184Agora vamos fazer Claude Code fazer alguma codificação real. Tente uma tarefa simples:174Experimente uma tarefa pequena:

185 175 

186```text wrap theme={null}176```text wrap theme={null}

187add a hello world function to the main file177add a hello world function to the main file

188```178```

189 179 

190Claude Code encontra o arquivo apropriado e mostra a alteração. Se ele pedir antes de fazer a alteração, selecione **Sim** para aprovar.180O Claude Code encontra o arquivo apropriado e mostra a alteração para você. Se ele perguntar antes de fazer a alteração, selecione **Yes** para aprovar.

191 

192Com Claude Code v2.1.283 ou posterior, o modo auto é o [modo de permissão inicial integrado](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) para sessões de terminal interativas: um classificador revisa as ações em vez de você, e Claude edita a maioria dos arquivos e executa a maioria dos comandos sem pedir. Em versões anteriores, o modo auto é o modo de permissão inicial integrado apenas nos planos Pro, Max e Team. Para a sessão que você inicia logo após a instalação, consulte [Primeira sessão após uma instalação ou atualização](/docs/pt/env-vars#first-session-after-an-install-or-upgrade).

193 181 

194<Note>182O [modo de permissão](/docs/pt/permission-modes) da sessão define quais ações o Claude pode realizar sem perguntar a você primeiro. Pressione `Shift+Tab` a qualquer momento para alternar o modo de permissão da sessão em que você está.

195 Suas configurações ou sua organização podem definir um modo de permissão inicial diferente. [Qual modo de permissão uma sessão inicia](/docs/pt/permission-modes#which-mode-a-session-starts-in) lista o que faz. Pressione `Shift+Tab` a qualquer momento para alternar o modo de permissão da sessão em que você está.

196</Note>

197 183 

198<h2 id="step-6-use-git-with-claude-code">184<h2 id="step-5-use-git-with-claude-code">

199 Passo 6: Use Git com Claude Code185 Passo 5: Use o Git com o Claude Code

200</h2>186</h2>

201 187 

202Claude Code torna as operações Git conversacionais:188O Claude Code torna as operações do Git conversacionais:

203 189 

204```text wrap theme={null}190```text wrap theme={null}

205what files have I changed?191what files have I changed?


209commit my changes with a descriptive message195commit my changes with a descriptive message

210```196```

211 197 

212Você também pode solicitar operações Git mais complexas:198Você também pode solicitar operações do Git mais complexas:

213 199 

214```text wrap theme={null}200```text wrap theme={null}

215create a new branch called feature/quickstart201create a new branch called feature/quickstart


223help me resolve merge conflicts209help me resolve merge conflicts

224```210```

225 211 

226<h2 id="step-7-fix-a-bug-or-add-a-feature">212<h2 id="step-6-fix-a-bug-or-add-a-feature">

227 Passo 7: Corrija um bug ou adicione um recurso213 Passo 6: Corrija um bug ou adicione um recurso

228</h2>214</h2>

229 215 

230Claude é proficiente em depuração e implementação de recursos.216Descreva o que você deseja em linguagem natural:

231 

232Descreva o que você quer em linguagem natural:

233 217 

234```text wrap theme={null}218```text wrap theme={null}

235add input validation to the user registration form219add input validation to the user registration form


241there's a bug where users can submit empty forms - fix it225there's a bug where users can submit empty forms - fix it

242```226```

243 227 

244Claude Code irá:228<h2 id="step-7-test-out-other-common-workflows">

245 229 Passo 7: Teste outros fluxos de trabalho comuns

246* Localizar o código relevante

247* Entender o contexto

248* Implementar uma solução

249* Executar testes se disponíveis

250 

251<h2 id="step-8-test-out-other-common-workflows">

252 Passo 8: Teste outros fluxos de trabalho comuns

253</h2>230</h2>

254 231 

255Existem várias maneiras de trabalhar com Claude:232Existem várias maneiras de trabalhar com o Claude:

256 233 

257**Refatore código**234**Refatorar código**

258 235 

259```text wrap theme={null}236```text wrap theme={null}

260refactor the authentication module to use async/await instead of callbacks237refactor the authentication module to use async/await instead of callbacks

261```238```

262 239 

263**Escreva testes**240**Escrever testes**

264 241 

265```text wrap theme={null}242```text wrap theme={null}

266write unit tests for the calculator functions243write unit tests for the calculator functions

267```244```

268 245 

269**Atualize documentação**246**Atualizar documentação**

270 247 

271```text wrap theme={null}248```text wrap theme={null}

272update the README with installation instructions249update the README with installation instructions


279```256```

280 257 

281<Tip>258<Tip>

282 Fale com Claude como você falaria com um colega prestativo. Descreva o que você quer alcançar, e ele o ajudará a chegar lá.259 Converse com o Claude como você faria com um colega prestativo. Descreva o que você deseja alcançar, e ele ajudará você a chegar lá.

283</Tip>260</Tip>

284 261 

285<h2 id="essential-commands">262<h2 id="essential-commands">


357 334 

358Agora que você aprendeu o básico, explore recursos mais avançados:335Agora que você aprendeu o básico, explore recursos mais avançados:

359 336 

360<CardGroup cols={2}>337* [Como Claude Code funciona](/docs/pt/how-claude-code-works): entenda o loop agêntico, ferramentas integradas e como Claude Code interage com seu projeto

361 <Card title="Como Claude Code funciona" icon="microchip" href="/docs/pt/how-claude-code-works">338* [Boas práticas](/docs/pt/best-practices): obtenha melhores resultados com prompting eficaz e configuração de projeto

362 Entenda o loop agêntico, ferramentas integradas e como Claude Code interage com seu projeto339* [Fluxos de trabalho comuns](/docs/pt/common-workflows): guias passo a passo para tarefas comuns

363 </Card>340* [Estenda Claude Code](/docs/pt/features-overview): personalize com CLAUDE.md, skills, hooks, MCP e muito mais

364 

365 <Card title="Melhores práticas" icon="star" href="/docs/pt/best-practices">

366 Obtenha melhores resultados com prompting eficaz e configuração de projeto

367 </Card>

368 

369 <Card title="Fluxos de trabalho comuns" icon="graduation-cap" href="/docs/pt/common-workflows">

370 Guias passo a passo para tarefas comuns

371 </Card>

372 341 

373 <Card title="Estenda Claude Code" icon="puzzle-piece" href="/docs/pt/features-overview">342Consulte a [configuração avançada](/docs/pt/setup) para opções de instalação, atualizações manuais ou instruções de desinstalação.

374 Personalize com CLAUDE.md, skills, hooks, MCP e muito mais

375 </Card>

376</CardGroup>

377 343 

378<h2 id="getting-help">344<h2 id="getting-help">

379 Obtendo ajuda345 Obtendo ajuda

380</h2>346</h2>

381 347 

382* **Em Claude Code**: Digite `/help` ou pergunte "how do I..."348* **Em Claude Code**: digite `/help` ou faça uma pergunta do tipo "como faço para"

383* **Documentação**: Você está aqui! Navegue por outros guias349* **Documentação**: navegue pelos outros guias neste site

384* **Cursos**: Faça [Claude Code 101](https://academy.claude.com/courses/claude-code-101) e outros cursos gratuitos no seu próprio ritmo em [Claude Academy](https://academy.claude.com/)350* **Cursos**: Faça [Claude Code 101](https://academy.claude.com/courses/claude-code-101) e outros cursos gratuitos no seu próprio ritmo em [Claude Academy](https://academy.claude.com/)

385* **Comunidade**: Junte-se ao [servidor do Discord](https://www.anthropic.com/discord) para dicas e suporte351* **Comunidade**: Junte-se ao [servidor do Discord](https://www.anthropic.com/discord) para dicas e suporte

Details

365</h2>365</h2>

366 366 

367* **Uma sessão remota por processo interativo**: fora do modo servidor, cada instância do Claude Code suporta uma sessão remota por vez. Use [modo servidor](#start-a-remote-control-session) para executar múltiplas sessões simultâneas a partir de um único processo.367* **Uma sessão remota por processo interativo**: fora do modo servidor, cada instância do Claude Code suporta uma sessão remota por vez. Use [modo servidor](#start-a-remote-control-session) para executar múltiplas sessões simultâneas a partir de um único processo.

368* **O processo local deve continuar em execução**: Remote Control é executado como um processo local. Se você fechar o terminal, sair do aplicativo Desktop ou VS Code, ou de outra forma parar o processo `claude`, a sessão fica offline até que você [a traga de volta](#resume-sessions-after-stopping-the-server). Para manter uma sessão em execução em uma máquina remota após desconectar do SSH, inicie-a dentro de `tmux` ou `screen`.368* **O processo local deve continuar em execução**: Remote Control é executado como um processo local. Se você fechar o terminal, sair do aplicativo Desktop ou VS Code, ou de outra forma parar o processo `claude`, a sessão fica offline até que você [a traga de volta](#resume-sessions-after-stopping-the-server). Se você executar `claude` a partir de um terminal em uma máquina remota, inicie-o dentro de `tmux` ou `screen` para manter a sessão em execução após desconectar do SSH.

369* **Sessões travadas em modo servidor**: se uma sessão servida por `claude remote-control` travar, envie uma mensagem para ela a partir de um dispositivo conectado. Claude Code a serve novamente. Você não precisa reiniciar o servidor. Requer Claude Code v2.1.238 ou posterior.369* **Sessões travadas em modo servidor**: se uma sessão servida por `claude remote-control` travar, envie uma mensagem para ela a partir de um dispositivo conectado. Claude Code a serve novamente. Você não precisa reiniciar o servidor. Requer Claude Code v2.1.238 ou posterior.

370* **Recusas HTTP 403 em uma sessão conectada**: uma vez que uma sessão interativa está conectada, Claude Code continua tentando novamente por até três minutos quando algo entre sua máquina e os servidores da Anthropic responde com HTTP 403, o que pode acontecer após uma mudança de VPN ou rede. Se as recusas durarem mais tempo, Claude Code se desconecta e o motivo nomeia o que recusou: uma borda de rede, ou um proxy, VPN ou firewall em sua própria rede.370* **Recusas HTTP 403 em uma sessão conectada**: uma vez que uma sessão interativa está conectada, Claude Code continua tentando novamente por até três minutos quando algo entre sua máquina e os servidores da Anthropic responde com HTTP 403, o que pode acontecer após uma mudança de VPN ou rede. Se as recusas durarem mais tempo, Claude Code se desconecta e o motivo nomeia o que recusou: uma borda de rede, ou um proxy, VPN ou firewall em sua própria rede.

371* **Interrupção de rede estendida**: se sua máquina estiver ligada mas não conseguir alcançar a rede, o que você faz a seguir depende do modo:371* **Interrupção de rede estendida**: se sua máquina estiver ligada mas não conseguir alcançar a rede, o que você faz a seguir depende do modo:

routines.md +1 −1

Details

93 Escolha um [ambiente em nuvem](/docs/pt/cloud-environments) para a rotina. Os ambientes controlam o que a sessão em nuvem tem acesso:93 Escolha um [ambiente em nuvem](/docs/pt/cloud-environments) para a rotina. Os ambientes controlam o que a sessão em nuvem tem acesso:

94 94 

95 * **Acesso à rede**: defina o nível de acesso à internet disponível durante cada execução95 * **Acesso à rede**: defina o nível de acesso à internet disponível durante cada execução

96 * **Variáveis de ambiente**: forneça valores que Claude pode usar durante cada execução. Elas são [visíveis para qualquer pessoa que use o ambiente](/docs/pt/cloud-environments#what-carries-over-from-your-setup), portanto em planos Pro e Max, armazene chaves para as APIs que Claude chama durante uma execução como [credenciais de API](/docs/pt/cloud-environments#add-api-credentials) em vez disso. Essa seção também lista as solicitações que nunca recebem uma credencial96 * **Variáveis de ambiente**: forneça valores que Claude pode usar durante cada execução. Elas são [visíveis para qualquer pessoa que use o ambiente](/docs/pt/cloud-environments#what-carries-over-from-your-setup), portanto em planos Pro e Max, armazene chaves para as APIs que Claude chama durante uma execução como [segredos de rede](/docs/pt/cloud-environments#add-api-credentials) em vez disso. Essa seção também lista as requisições que nunca recebem um segredo

97 * **Script de configuração**: instale dependências e ferramentas que a rotina precisa. O resultado é [armazenado em cache](/docs/pt/cloud-environments#environment-caching), portanto o script não é executado novamente em cada sessão97 * **Script de configuração**: instale dependências e ferramentas que a rotina precisa. O resultado é [armazenado em cache](/docs/pt/cloud-environments#environment-caching), portanto o script não é executado novamente em cada sessão

98 98 

99 Um ambiente **Default** é fornecido com acesso à rede **Trusted**, que permite apenas a [lista de permissões padrão](/docs/pt/cloud-environments#default-allowed-domains) de registros de pacotes, APIs de provedores de nuvem, registros de contêineres e domínios de desenvolvimento comuns através da rede da sessão. Os conectores que você adiciona à rotina alcançam seus serviços através dos servidores da Anthropic, portanto não precisam de alterações na lista de permissões. Se sua rotina precisar alcançar seus próprios serviços diretamente ou um domínio fora dessa lista, edite o [acesso à rede](/docs/pt/cloud-environments#network-access) do ambiente antes de executar. Para usar um ambiente separado, [crie um](/docs/pt/cloud-environments#configure-your-environment) primeiro.99 Um ambiente **Default** é fornecido com acesso à rede **Trusted**, que permite apenas a [lista de permissões padrão](/docs/pt/cloud-environments#default-allowed-domains) de registros de pacotes, APIs de provedores de nuvem, registros de contêineres e domínios de desenvolvimento comuns através da rede da sessão. Os conectores que você adiciona à rotina alcançam seus serviços através dos servidores da Anthropic, portanto não precisam de alterações na lista de permissões. Se sua rotina precisar alcançar seus próprios serviços diretamente ou um domínio fora dessa lista, edite o [acesso à rede](/docs/pt/cloud-environments#network-access) do ambiente antes de executar. Para usar um ambiente separado, [crie um](/docs/pt/cloud-environments#configure-your-environment) primeiro.

Details

104 Script de exemplo104 Script de exemplo

105</h2>105</h2>

106 106 

107O script abaixo executa o loop completo contra `$CLAUDE_TEST_ENVIRONMENT_ID`, o ID `ccpool_...` do seu ambiente de teste, mostrado no diálogo de detalhes do ambiente na página de administração ou retornado pela [chamada create-environment](#create-a-dedicated-test-environment), e afirma uma frase sentinela em cada resposta. Execute-o a partir de um checkout de git do repositório no qual você deseja que a sessão funcione, após iniciar um runner neste host com o hook de captura instalado e `E2E_REPLY_DIR` exportado.107O script abaixo executa o loop completo contra `$CLAUDE_TEST_ENVIRONMENT_ID`, o ID `ccpool_...` do seu ambiente de teste, mostrado no diálogo de detalhes do ambiente na página de administração ou retornado pela [chamada create-environment](#create-a-dedicated-test-environment), e afirma uma frase sentinela em cada resposta. Execute-o a partir de um checkout de git do repositório no qual você deseja que a sessão funcione, após iniciar um runner neste host com o hook de captura instalado e `E2E_REPLY_DIR` exportado. Primeiro, faça login com uma conta claude.ai na máquina que executa o script, conforme descrito em [Autenticar a partir de CI](#authenticate-from-ci). Sem esse login, o primeiro envio falha com um erro como `Unable to get organization UUID for cloud session creation`.

108 108 

109```bash theme={null}109```bash theme={null}

110#!/usr/bin/env bash110#!/usr/bin/env bash

Details

43 <Step title="Abrir o console de administração">43 <Step title="Abrir o console de administração">

44 No console claude.ai, vá para [**Organization settings > Claude Code > Managed settings**](https://claude.ai/admin-settings/claude-code).44 No console claude.ai, vá para [**Organization settings > Claude Code > Managed settings**](https://claude.ai/admin-settings/claude-code).

45 45 

46 Se o link o redirecionar para uma página diferente de Organization settings em vez da página Claude Code, sua conta não tem a função necessária. Funções de Admin e outras funções que não sejam Owner não podem visualizar ou editar configurações gerenciadas, portanto, peça a um Owner ou Primary Owner em sua organização para fazer a alteração. Veja [Controle de acesso](#access-control).46 Em uma organização Team ou Enterprise, se a página informar que você não tem acesso, peça a um [Owner ou Primary Owner](#access-control) para fazer a alteração.

47 </Step>47 </Step>

48 48 

49 <Step title="Definir suas configurações">49 <Step title="Definir suas configurações">

sessions.md +3 −3

Details

83* Terminal: `claude --continue`, `claude --resume <session-id>` ou `claude --resume <name>` quando o nome corresponde a uma sessão, sem `-p`. Claude Code restaura o modo de permissão em que a sessão estava, exceto nos casos da tabela. Passe `--permission-mode` ou `--dangerously-skip-permissions` para substituir o modo restaurado.83* Terminal: `claude --continue`, `claude --resume <session-id>` ou `claude --resume <name>` quando o nome corresponde a uma sessão, sem `-p`. Claude Code restaura o modo de permissão em que a sessão estava, exceto nos casos da tabela. Passe `--permission-mode` ou `--dangerously-skip-permissions` para substituir o modo restaurado.

84* Não interativo: `claude -p --resume` ou `claude -p --continue`. Claude Code inicia a execução no modo de permissão em que uma nova execução `claude -p` iniciaria, exceto que uma sessão que terminou em modo de plano retoma em modo de plano sob as [condições abaixo](#resume-in-plan-mode-with-p).84* Não interativo: `claude -p --resume` ou `claude -p --continue`. Claude Code inicia a execução no modo de permissão em que uma nova execução `claude -p` iniciaria, exceto que uma sessão que terminou em modo de plano retoma em modo de plano sob as [condições abaixo](#resume-in-plan-mode-with-p).

85* VS Code: o painel de conversa da extensão. A tabela cobre apenas uma conversa que terminou em modo de plano; para o resto, veja [retomar conversas passadas](/docs/pt/vs-code#resume-past-conversations).85* VS Code: o painel de conversa da extensão. A tabela cobre apenas uma conversa que terminou em modo de plano; para o resto, veja [retomar conversas passadas](/docs/pt/vs-code#resume-past-conversations).

86* Seletor de sessão no lançamento: uma sessão que você seleciona do [seletor de sessão](#use-the-session-picker), se você o abriu com `claude --resume` sozinho, `claude --from-pr` ou um nome que corresponde a mais de uma sessão. Claude Code não restaura o modo de permissão armazenado. Ele inicia a sessão no modo de permissão em que iniciaria uma nova sessão a partir da mesma linha de comando.86* Seletor de sessão no lançamento: uma sessão que você seleciona do [seletor de sessão](#use-the-session-picker), se você o abriu com `claude --resume` sozinho, `claude --from-pr` ou um nome que corresponde a mais de uma sessão. Claude Code inicia a sessão no modo de permissão em que iniciaria uma nova sessão a partir da mesma linha de comando, exceto que uma sessão que terminou em modo de planejamento retoma em modo de planejamento, a menos que você passe `--permission-mode`, `--dangerously-skip-permissions` ou `--fork-session`. Nenhum outro modo de permissão armazenado é restaurado.

87* `/resume` dentro de uma sessão, com ou sem um argumento: Claude Code não restaura o modo de permissão armazenado. A conversa para a qual você alterna continua no modo de permissão em que sua sessão atual está.87* `/resume` dentro de uma sessão, com ou sem um argumento: a conversa para a qual você alterna continua no modo de permissão em que sua sessão atual está, exceto que uma conversa que terminou em modo de planejamento retoma em modo de planejamento, mesmo que você tenha iniciado Claude Code com `--permission-mode` ou `--dangerously-skip-permissions`. Se essa conversa já estava aberta anteriormente nesta execução de Claude Code, como a conversa em que você começou ou uma que você deixou com `/clear` ou `/resume`, ela continua no seu modo de permissão atual em vez disso.

88 88 

89Restaurar modo de plano nos caminhos não interativo e VS Code requer Claude Code v2.1.246 ou posterior. Cada linha nomeia o modo de permissão em que a sessão terminou, qual dos caminhos terminal, não interativo e VS Code você a retoma, e o modo de permissão em que Claude Code inicia a sessão retomada.89Restaurar modo de plano nos caminhos não interativo e VS Code requer Claude Code v2.1.246 ou posterior. Cada linha nomeia o modo de permissão em que a sessão terminou, qual dos caminhos terminal, não interativo e VS Code você a retoma, e o modo de permissão em que Claude Code inicia a sessão retomada.

90 90 

91| Sessão terminou em | Como você retoma | Modo de permissão após você retomar |91| Sessão terminou em | Como você retoma | Modo de permissão após você retomar |

92| :- | :- | :- |92| :- | :- | :- |

93| `bypassPermissions` | Terminal | O modo de permissão em que uma nova sessão iniciaria. Para [ignorar permissões](/docs/pt/permission-modes#skip-all-checks-with-bypasspermissions-mode) novamente, ative-o no lançamento com uma de suas flags de lançamento ou `permissions.defaultMode: "bypassPermissions"` em [configurações de usuário, `--settings` ou gerenciadas](/docs/pt/settings-reference#permissions-defaultmode) |93| `bypassPermissions` | Terminal | O modo de permissão em que uma nova sessão iniciaria. Para [ignorar permissões](/docs/pt/permission-modes#skip-all-checks-with-bypasspermissions-mode) novamente, ative-o no lançamento com uma de suas flags de lançamento ou `permissions.defaultMode: "bypassPermissions"` em [configurações de usuário, `--settings` ou gerenciadas](/docs/pt/settings-reference#permissions-defaultmode) |

94| `plan` | Terminal | O modo de permissão em que uma nova sessão iniciaria |94| `plan` | Terminal | Modo de planejamento. Com `--fork-session`, o modo de permissão em que uma nova sessão iniciaria |

95| `auto` | Terminal | `auto`, apenas quando sua conta ainda atende aos [requisitos do modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) |95| `auto` | Terminal | `auto`, apenas quando sua conta ainda atende aos [requisitos do modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) |

96| Manual | Terminal | Manual quando uma nova sessão iniciaria em modo auto a partir do [padrão integrado](/docs/pt/permission-modes#which-mode-a-session-starts-in). Quando um `defaultMode` de um arquivo de configurações [entra em vigor](/docs/pt/permission-modes#which-mode-a-session-starts-in), Claude Code inicia a sessão retomada nesse modo |96| Manual | Terminal | Manual quando uma nova sessão iniciaria em modo auto a partir do [padrão integrado](/docs/pt/permission-modes#which-mode-a-session-starts-in). Quando um `defaultMode` de um arquivo de configurações [entra em vigor](/docs/pt/permission-modes#which-mode-a-session-starts-in), Claude Code inicia a sessão retomada nesse modo |

97| `plan` | Não interativo, sob as [condições abaixo](#resume-in-plan-mode-with-p) | Modo de plano |97| `plan` | Não interativo, sob as [condições abaixo](#resume-in-plan-mode-with-p) | Modo de plano |

setup.md +5 −3

Details

49 curl -fsSL https://claude.ai/install.sh | bash49 curl -fsSL https://claude.ai/install.sh | bash

50 ```50 ```

51 51 

52 No Windows, seu prompt mostra `PS C:\` quando você está no PowerShell e `C:\` sem o `PS` quando você está no CMD.

53 

52 **Windows PowerShell:**54 **Windows PowerShell:**

53 55 

54 ```powershell theme={null}56 ```powershell theme={null}


63 65 

64 Quando o instalador terminar, abra uma nova janela de terminal e execute `claude --version`. Uma instalação funcionando imprime um número de versão. Se seu shell disser que `claude` não foi encontrado ou não é reconhecido, o diretório de instalação ainda não está em seu PATH: consulte [Corrija seu PATH](/docs/pt/troubleshoot-install#command-not-found-claude-after-installation).66 Quando o instalador terminar, abra uma nova janela de terminal e execute `claude --version`. Uma instalação funcionando imprime um número de versão. Se seu shell disser que `claude` não foi encontrado ou não é reconhecido, o diretório de instalação ainda não está em seu PATH: consulte [Corrija seu PATH](/docs/pt/troubleshoot-install#command-not-found-claude-after-installation).

65 67 

66 Se você vir `The token '&&' is not a valid statement separator`, você está no PowerShell, não no CMD. Se você vir `'irm' is not recognized as an internal or external command`, você está no CMD, não no PowerShell. Seu prompt mostra `PS C:\` quando você está no PowerShell e `C:\` sem o `PS` quando você está no CMD.68 Se você vir `The token '&&' is not a valid statement separator`, você está no PowerShell, não no CMD. Se você vir `'irm' is not recognized as an internal or external command`, você está no CMD, não no PowerShell.

67 69 

68 Se o comando de instalação falhar com `syntax error near unexpected token '<'`, um `403`, ou outro erro de curl, consulte [Solucionar problemas de instalação](/docs/pt/troubleshoot-install#find-your-error) para corresponder o erro a uma correção e para métodos alternativos de instalação.70 Se o comando de instalação falhar com `syntax error near unexpected token '<'`, um `403`, ou qualquer outro erro, consulte [Solucionar problemas de instalação](/docs/pt/troubleshoot-install#find-your-error) para corresponder o erro a uma correção e para métodos alternativos de instalação.

69 71 

70 [Git for Windows](https://git-scm.com/downloads/win) é recomendado no Windows nativo para que Claude Code possa usar a ferramenta Bash. Se Git for Windows não estiver instalado, Claude Code usa PowerShell como ferramenta de shell. Configurações WSL não precisam de Git for Windows.72 [Git for Windows](https://git-scm.com/downloads/win) é recomendado no Windows nativo para que Claude Code possa usar a ferramenta Bash. Se Git for Windows não estiver instalado, Claude Code usa PowerShell como ferramenta de shell. Configurações WSL não precisam de Git for Windows.

71 73 


204 206 

205Claude Code requer uma conta Pro, Max, Team, Enterprise ou Console. O plano gratuito do Claude.ai não inclui acesso ao Claude Code. Você também pode usar Claude Code com um provedor de API de terceiros como [Amazon Bedrock](/docs/pt/amazon-bedrock), [Google Cloud's Agent Platform](/docs/pt/google-vertex-ai) ou [Microsoft Foundry](/docs/pt/microsoft-foundry).207Claude Code requer uma conta Pro, Max, Team, Enterprise ou Console. O plano gratuito do Claude.ai não inclui acesso ao Claude Code. Você também pode usar Claude Code com um provedor de API de terceiros como [Amazon Bedrock](/docs/pt/amazon-bedrock), [Google Cloud's Agent Platform](/docs/pt/google-vertex-ai) ou [Microsoft Foundry](/docs/pt/microsoft-foundry).

206 208 

207Após a instalação, faça login executando `claude` e seguindo os prompts do navegador. Se a variável de ambiente `ANTHROPIC_API_KEY` estiver definida, Claude Code solicita uma vez que você aprove a chave em vez de abrir um navegador. Consulte [Autenticação](/docs/pt/authentication) para todos os tipos de conta e opções de configuração de equipe.209Após a instalação, faça login executando `claude` e seguindo os prompts do navegador. Se você definiu a variável de ambiente `ANTHROPIC_API_KEY` e aprova a chave quando Claude Code pergunta se deve usá-la, Claude Code ignora o prompt de login. Consulte [Autenticação](/docs/pt/authentication) para todos os tipos de conta e opções de configuração de equipe.

208 210 

209<h2 id="update-claude-code">211<h2 id="update-claude-code">

210 Atualizar Claude Code212 Atualizar Claude Code

sub-agents.md +3 −3

Details

310 310 

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

312| :- | :- | :- |312| :- | :- | :- |

313| `name` | Sim | Identificador único, como `code-reviewer` ou `reviewer-v2`. Os [hooks](/docs/pt/hooks#subagentstart) recebem esse valor como `agent_type`. O nome do arquivo não precisa corresponder. Os nomes não podem conter `:`, que é reservado para [identificadores com escopo de plugin](/docs/pt/plugins/overview) como `my-plugin:reviewer`. O Claude Code não carrega um arquivo cujo nome contenha esse caractere e registra um erro no log de depuração. Antes da v2.1.218, esses nomes eram aceitos |313| `name` | Sim | Identificador único de no máximo 256 caracteres, como `code-reviewer` ou `reviewer-v2`. Os [hooks](/docs/pt/hooks#subagentstart) recebem esse valor como `agent_type`. O nome do arquivo não precisa corresponder. Os nomes não podem conter `:`, que é reservado para [identificadores com escopo de plugin](/docs/pt/plugins/overview) como `my-plugin:reviewer` |

314| `description` | Sim | Quando o Claude deve delegar a este subagente |314| `description` | Sim | Quando o Claude deve delegar a este subagente |

315| `tools` | Não | [Ferramentas](#available-tools) que o subagente pode usar, como uma string separada por vírgulas, como `Read, Grep, Bash`, ou uma lista YAML. Herda todas as ferramentas disponíveis para subagentes se omitido. Se nenhuma entrada da lista resolver para uma ferramenta, o subagente geralmente [falha ao iniciar](/docs/pt/errors#agent-would-be-spawned-with-zero-tools) com um erro que nomeia as entradas. Para pré-carregar Skills no contexto, use o campo `skills` em vez de listar `Skill` aqui |315| `tools` | Não | [Ferramentas](#available-tools) que o subagente pode usar, como uma string separada por vírgulas, como `Read, Grep, Bash`, ou uma lista YAML. Herda todas as ferramentas disponíveis para subagentes se omitido. Se nenhuma entrada da lista resolver para uma ferramenta, o subagente geralmente [falha ao iniciar](/docs/pt/errors#agent-would-be-spawned-with-zero-tools) com um erro que nomeia as entradas. Para pré-carregar Skills no contexto, use o campo `skills` em vez de listar `Skill` aqui |

316| `disallowedTools` | Não | Ferramentas a negar, removidas da lista herdada ou especificada. Mesmo formato de `tools`. Uma entrada com especificador, como `Bash(git push *)`, ainda [remove a ferramenta inteira](#available-tools) |316| `disallowedTools` | Não | Ferramentas a negar, removidas da lista herdada ou especificada. Mesmo formato de `tools`. Uma entrada com especificador, como `Bash(git push *)`, ainda [remove a ferramenta inteira](#available-tools) |


348 348 

349* **Sem `name`**: o Claude Code trata o arquivo como documentação mantida ao lado dos seus agentes.349* **Sem `name`**: o Claude Code trata o arquivo como documentação mantida ao lado dos seus agentes.

350* **Um `---` de abertura que não está na primeira linha do arquivo**: o Claude Code lê o arquivo como se não tivesse frontmatter e o trata como documentação.350* **Um `---` de abertura que não está na primeira linha do arquivo**: o Claude Code lê o arquivo como se não tivesse frontmatter e o trata como documentação.

351* **Um `name` que começa com `-` ou contém `:`**: o Claude Code ignora o arquivo e grava um erro no log de depuração. Consulte a linha `name` na tabela acima.351* **Um `name` que começa com `-`, contém `:` ou tem mais de 256 caracteres**: o Claude Code ignora o arquivo e grava um erro no log de depuração.

352* **Um `name` mas sem `description`**: o Claude Code ignora o arquivo e grava o motivo no log de depuração.352* **Um `name` mas sem `description`**: o Claude Code ignora o arquivo e grava o motivo no log de depuração.

353* **YAML que não pode ser analisado**: o Claude Code não lê nenhum campo do arquivo, ignora-o e grava o erro de análise no log de depuração.353* **YAML que não pode ser analisado**: o Claude Code não lê nenhum campo do arquivo, ignora-o e grava o erro de análise no log de depuração.

354 354 


1279| Permissions | Prompts aparecem em seu terminal | [Prompts aparecem em sua sessão principal](#run-subagents-in-foreground-or-background) quando em execução em background |1279| Permissions | Prompts aparecem em seu terminal | [Prompts aparecem em sua sessão principal](#run-subagents-in-foreground-or-background) quando em execução em background |

1280| Prompt cache | Compartilhado com a sessão principal | Cache separado |1280| Prompt cache | Compartilhado com a sessão principal | Cache separado |

1281 1281 

1282Porque o prompt de sistema de uma bifurcação e as definições de ferramentas são idênticas ao pai, sua primeira solicitação reutiliza o [prompt cache](/docs/pt/prompt-caching#subagents-and-the-cache) do pai. Isso torna bifurcação mais barata do que gerar um subagente fresco para tarefas que precisam do mesmo contexto.1282Porque o system prompt de uma bifurcação e as definições de ferramentas são idênticos aos do pai, sua primeira requisição reutiliza o [cache de prompt](/docs/pt/prompt-caching#subagents-and-the-cache) do pai. Por causa dessa reutilização, uma bifurcação custa menos do que um subagente fresco para tarefas que precisam do mesmo contexto.

1283 1283 

1284Quando Claude gera uma bifurcação através da ferramenta Agent, ele pode passar `isolation: "worktree"` para que as edições de arquivo da bifurcação sejam escritas em um git worktree separado em vez de seu checkout. Uma bifurcação não pode gerar bifurcações adicionais.1284Quando Claude gera uma bifurcação através da ferramenta Agent, ele pode passar `isolation: "worktree"` para que as edições de arquivo da bifurcação sejam escritas em um git worktree separado em vez de seu checkout. Uma bifurcação não pode gerar bifurcações adicionais.

1285 1285 

vs-code.md +1 −1

Details

606| `environmentVariables` | `[]` | Definir variáveis de ambiente para o processo Claude. Use as configurações do Claude Code em vez disso para configuração compartilhada. Uma entrada [`CLAUDE_CONFIG_DIR`](/docs/pt/env-vars) se aplica apenas quando seu valor é um caminho absoluto; a extensão não expande `~` e ignora um valor relativo. |606| `environmentVariables` | `[]` | Definir variáveis de ambiente para o processo Claude. Use as configurações do Claude Code em vez disso para configuração compartilhada. Uma entrada [`CLAUDE_CONFIG_DIR`](/docs/pt/env-vars) se aplica apenas quando seu valor é um caminho absoluto; a extensão não expande `~` e ignora um valor relativo. |

607| `disableLoginPrompt` | `false` | Pular prompts de autenticação (para configurações de provedor de terceiros) |607| `disableLoginPrompt` | `false` | Pular prompts de autenticação (para configurações de provedor de terceiros) |

608| `allowDangerouslySkipPermissions` | `false` | Adiciona Bypass permissions ao seletor de modo. Use apenas em sandboxes sem acesso à internet. |608| `allowDangerouslySkipPermissions` | `false` | Adiciona Bypass permissions ao seletor de modo. Use apenas em sandboxes sem acesso à internet. |

609| `claudeProcessWrapper` | - | Executável usado para iniciar o processo Claude. O caminho do binário agrupado é passado como um argumento quando presente. Defina isso para um binário `claude` instalado separadamente se a compilação da extensão não incluir um para sua plataforma. Em uma configuração encapsulada, as conversas começam no modo Manual a menos que você defina `initialPermissionMode` ou tenha escolhido Manual, Edit automatically ou Auto em uma conversa anterior, porque a extensão pula as configurações e as etapas padrão integradas lá; veja [Switch permission modes](/docs/pt/permission-modes#switch-permission-modes). Um erro "Unsupported platform" na ativação significa que nenhum binário está agrupado para sua plataforma; veja [which platforms have prebuilt binaries](/docs/pt/troubleshoot-install#native-binary-not-found-after-npm-install). |609| `claudeProcessWrapper` | - | Executável usado para iniciar o processo Claude. O caminho do binário agrupado é passado como um argumento quando presente. Defina isso para um binário `claude` instalado separadamente se o build da extensão não incluir um para sua plataforma. |

610 610 

611<h2 id="use-a-screen-reader">611<h2 id="use-a-screen-reader">

612 Use a screen reader612 Use a screen reader

worktrees.md +3 −1

Details

6 6 

7> Isole sessões paralelas do Claude Code em worktrees git separadas para que as alterações não colidam. Abrange o sinalizador `--worktree`, isolamento de subagentes, `.worktreeinclude`, limpeza e hooks de VCS não-git.7> Isole sessões paralelas do Claude Code em worktrees git separadas para que as alterações não colidam. Abrange o sinalizador `--worktree`, isolamento de subagentes, `.worktreeinclude`, limpeza e hooks de VCS não-git.

8 8 

9Uma [git worktree](https://git-scm.com/docs/git-worktree) é um diretório de trabalho separado com seus próprios arquivos e branch, compartilhando o mesmo histórico de repositório e remoto que seu checkout principal. Executar cada sessão do Claude Code em sua própria worktree significa que edições em uma sessão nunca tocam arquivos em outra, para que uma sessão possa construir um recurso enquanto uma segunda corrige um bug.9Um [git worktree](https://git-scm.com/docs/git-worktree) é um diretório de trabalho separado com seus próprios arquivos e branch, compartilhando o mesmo histórico de repositório e remoto que seu checkout principal. Executar cada sessão do Claude Code em seu próprio worktree dá a ela uma cópia separada dos arquivos para editar, para que uma sessão possa criar um recurso enquanto uma segunda corrige um bug.

10 10 

11<Note>11<Note>

12 Worktrees exigem um repositório git; para outros sistemas de controle de versão, [configure hooks para substituir a lógica git](#non-git-version-control). No [aplicativo desktop](/docs/pt/desktop#work-in-parallel-with-sessions), selecione a opção **worktree** quando você iniciar uma sessão para dar a ela sua própria worktree.12 Worktrees exigem um repositório git; para outros sistemas de controle de versão, [configure hooks para substituir a lógica git](#non-git-version-control). No [aplicativo desktop](/docs/pt/desktop#work-in-parallel-with-sessions), selecione a opção **worktree** quando você iniciar uma sessão para dar a ela sua própria worktree.


104* **Redirecionamentos git**: Claude Code bloqueia um comando Bash ou Monitor que redireciona git para o checkout principal. O redirecionamento pode vir através de `git -C`, `--git-dir`, uma variável `GIT_DIR` ou `GIT_WORK_TREE`, ou um `cd` para o checkout principal antes de executar git.104* **Redirecionamentos git**: Claude Code bloqueia um comando Bash ou Monitor que redireciona git para o checkout principal. O redirecionamento pode vir através de `git -C`, `--git-dir`, uma variável `GIT_DIR` ou `GIT_WORK_TREE`, ou um `cd` para o checkout principal antes de executar git.

105* **Forma do comando**: Claude Code bloqueia um comando Bash ou Monitor quando não pode verificar do texto do comando que qualquer git que o comando executa fica dentro da worktree. Isso acontece, por exemplo, quando o nome do comando é computado em tempo de execução, quando a sintaxe não pode ser analisada, ou quando uma expansão como `${!name}` ou `${ command; }` poderia executar um comando que o texto não especifica. Claude Code diz a Claude como reescrever o comando recusado, como dividi-lo em comandos simples e separados. Você não pode desativar essa verificação.105* **Forma do comando**: Claude Code bloqueia um comando Bash ou Monitor quando não pode verificar do texto do comando que qualquer git que o comando executa fica dentro da worktree. Isso acontece, por exemplo, quando o nome do comando é computado em tempo de execução, quando a sintaxe não pode ser analisada, ou quando uma expansão como `${!name}` ou `${ command; }` poderia executar um comando que o texto não especifica. Claude Code diz a Claude como reescrever o comando recusado, como dividi-lo em comandos simples e separados. Você não pode desativar essa verificação.

106 106 

107Essas verificações leem o caminho que uma edição visa, o diretório em que um comando é executado e o texto do comando. Nenhuma delas rastreia quais arquivos um comando de shell escreve, então um comando que escreve no checkout principal sem executar git lá, como `cp` ou um redirecionamento do shell, não é recusado por elas. Claude Code trata esse comando como qualquer outro comando de shell, então se ele é executado ou pede sua confirmação depende do seu [modo de permissão](/docs/pt/permission-modes) e das suas regras.

108 

107As verificações se aplicam ao repositório de onde você iniciou Claude Code. Elas também cobrem o checkout principal que uma worktree vinculada está vinculada de. Para comandos PowerShell, Claude Code aplica apenas a verificação de diretório de trabalho.109As verificações se aplicam ao repositório de onde você iniciou Claude Code. Elas também cobrem o checkout principal que uma worktree vinculada está vinculada de. Para comandos PowerShell, Claude Code aplica apenas a verificação de diretório de trabalho.

108 110 

109Claude vê cada recusa como um erro de ferramenta que nomeia a worktree e diz como proceder. Para um comando recusado, veja [o que a mensagem de recusa significa e como limpá-la](/docs/pt/errors#command-blocked-by-the-worktree-isolation-checks).111Claude vê cada recusa como um erro de ferramenta que nomeia a worktree e diz como proceder. Para um comando recusado, veja [o que a mensagem de recusa significa e como limpá-la](/docs/pt/errors#command-blocked-by-the-worktree-isolation-checks).