SpyBara
Go Premium

Documentation 2026-10-13 23:57 UTC to 2026-10-14 22:58 UTC

73 files changed +1,295 −647. View all changes and history on the product overview
2026
Fri 30 23:01 Thu 29 23:57 Wed 28 23:57 Tue 27 22:59 Mon 26 22:57 Sun 25 23:58 Sat 24 22:59 Fri 23 22:59 Thu 22 22:58 Wed 21 23:02 Tue 20 23:00 Mon 19 23:58 Sat 17 23:57 Fri 16 22:59 Thu 15 23:58 Wed 14 22:58 Tue 13 23:57 Sun 11 23:57 Sat 10 23:01 Fri 9 23:02 Thu 8 22:58 Wed 7 23:59 Tue 6 23:59 Mon 5 23:58 Sun 4 23:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59
Details

18 18 

19* Para uma sessão: execute `claude --ax-screen-reader`.19* Para uma sessão: execute `claude --ax-screen-reader`.

20* Para sessões iniciadas a partir de um shell: defina a variável de ambiente `CLAUDE_AX_SCREEN_READER` como `1`. Em Bash ou Zsh, execute `export CLAUDE_AX_SCREEN_READER=1`. Em PowerShell, execute `$env:CLAUDE_AX_SCREEN_READER = "1"`. Adicione essa linha ao seu perfil de shell para mantê-la para shells futuros.20* Para sessões iniciadas a partir de um shell: defina a variável de ambiente `CLAUDE_AX_SCREEN_READER` como `1`. Em Bash ou Zsh, execute `export CLAUDE_AX_SCREEN_READER=1`. Em PowerShell, execute `$env:CLAUDE_AX_SCREEN_READER = "1"`. Adicione essa linha ao seu perfil de shell para mantê-la para shells futuros.

21* Para cada sessão na máquina: adicione `"axScreenReader": true` ao seu [arquivo de configurações](/docs/pt/settings). A configuração se aplica em qualquer terminal, incluindo o terminal integrado do VS Code.21* Para cada sessão na máquina: adicione `"axScreenReader": true` ao seu [arquivo de configurações](/docs/pt/settings) de usuário. A configuração se aplica em qualquer terminal, incluindo o terminal integrado do VS Code.

22 22 

23Se você combinar métodos, Claude Code aplica a flag [`--ax-screen-reader`](/docs/pt/cli-reference#cli-flags) sobre a variável de ambiente [`CLAUDE_AX_SCREEN_READER`](/docs/pt/env-vars#variables), e a variável sobre a configuração [`axScreenReader`](/docs/pt/settings-reference#axscreenreader).23Se você combinar métodos, Claude Code aplica a flag [`--ax-screen-reader`](/docs/pt/cli-reference#cli-flags) sobre a variável de ambiente [`CLAUDE_AX_SCREEN_READER`](/docs/pt/env-vars#variables), e a variável sobre a configuração [`axScreenReader`](/docs/pt/settings-reference#axscreenreader).

24 24 

Details

855 855 

856O status de um servidor remoto também pode mudar após relatar `"connected"`. Quando a conexão com ele cai no meio da sessão, Claude Code move o servidor de volta para `"pending"` enquanto [reconecta](/docs/pt/mcp#automatic-reconnection). Uma chamada posterior a `mcpServerStatus()` em TypeScript, ou [`ClaudeSDKClient.get_mcp_status()`](/docs/pt/agent-sdk/python#methods) em Python, pode então relatar `"pending"` para um servidor que você viu conectado anteriormente, sem nenhuma mudança de configuração do seu lado.856O status de um servidor remoto também pode mudar após relatar `"connected"`. Quando a conexão com ele cai no meio da sessão, Claude Code move o servidor de volta para `"pending"` enquanto [reconecta](/docs/pt/mcp#automatic-reconnection). Uma chamada posterior a `mcpServerStatus()` em TypeScript, ou [`ClaudeSDKClient.get_mcp_status()`](/docs/pt/agent-sdk/python#methods) em Python, pode então relatar `"pending"` para um servidor que você viu conectado anteriormente, sem nenhuma mudança de configuração do seu lado.

857 857 

858Após cinco tentativas de reconexão falharem, o servidor relata `"failed"` ou `"needs-auth"` quando precisa ser autorizado novamente. Para tentar novamente manualmente, chame [`reconnectMcpServer()`](/docs/pt/agent-sdk/typescript#methods) em TypeScript ou [`ClaudeSDKClient.reconnect_mcp_server()`](/docs/pt/agent-sdk/python#methods) em Python.858Após cinco tentativas de reconexão falharem, o servidor relata `"failed"`, ou `"needs-auth"` quando precisa ser autorizado novamente. Um servidor HTTP ou SSE com status `"failed"` ainda pode voltar para `"connected"` sem nenhuma chamada sua, porque Claude Code continua [tentando novamente em segundo plano](/docs/pt/mcp#mid-session-drops-of-a-remote-server) após um erro transitório. Para tentar novamente manualmente, chame [`reconnectMcpServer()`](/docs/pt/agent-sdk/typescript#methods) em TypeScript ou [`ClaudeSDKClient.reconnect_mcp_server()`](/docs/pt/agent-sdk/python#methods) em Python.

859 859 

860<h2 id="troubleshooting">860<h2 id="troubleshooting">

861 Troubleshooting861 Troubleshooting

Details

424 Contexto que Claude Code adiciona fora do prompt do sistema424 Contexto que Claude Code adiciona fora do prompt do sistema

425</h2>425</h2>

426 426 

427Lembretes do sistema são mensagens que Claude Code adiciona à conversa durante uma sessão para dar contexto ao Claude, como o conteúdo de seus arquivos CLAUDE.md ou uma nota de que um arquivo foi alterado no disco. Claude Code os envia na conversa, não no prompt do sistema, então eles chegam ao Claude independentemente de você usar a predefinição `claude_code` ou passar sua própria string como `systemPrompt`.427Lembretes do sistema são mensagens que Claude Code adiciona à conversa durante uma sessão para dar contexto ao Claude, como o conteúdo de seus arquivos CLAUDE.md ou uma nota de que um arquivo foi alterado no disco. Claude Code os envia na conversa, não no system prompt, então a maioria deles chega ao Claude independentemente de você usar a predefinição `claude_code` ou passar sua própria string como `systemPrompt`.

428 428 

429Esta seção aborda os [lembretes mais prováveis de mudar como seu agente se comporta](#reminders-claude-code-adds-to-the-conversation), como [desativar os que seu agente substitui](#turn-off-the-context-your-agent-replaces), e como [ver o que Claude recebeu](#see-what-claude-received) em uma solicitação específica.429Esta seção aborda os [lembretes mais prováveis de mudar como seu agente se comporta](#reminders-claude-code-adds-to-the-conversation), como [desativar os que seu agente substitui](#turn-off-the-context-your-agent-replaces), e como [ver o que Claude recebeu](#see-what-claude-received) em uma solicitação específica.

430 430 


467| Cada arquivo CLAUDE.md | Defina `CLAUDE_CODE_DISABLE_CLAUDE_MDS=1` |467| Cada arquivo CLAUDE.md | Defina `CLAUDE_CODE_DISABLE_CLAUDE_MDS=1` |

468| Lembretes de lista de tarefas, notas de arquivo alterado e a lista de skills | Defina `CLAUDE_CODE_DISABLE_ATTACHMENTS=1` |468| Lembretes de lista de tarefas, notas de arquivo alterado e a lista de skills | Defina `CLAUDE_CODE_DISABLE_ATTACHMENTS=1` |

469 469 

470As instruções integradas de commit e pull request do Claude Code não são um lembrete. Elas fazem parte da descrição da ferramenta Bash, então também chegam ao Claude quando você passa um `systemPrompt` personalizado.470Defina `includeGitInstructions` como `false` para excluir as instruções integradas de commit e pull request, que fazem parte da descrição da ferramenta Bash e chegam ao Claude mesmo com um `systemPrompt` personalizado. Com o padrão mínimo, um `systemPrompt` personalizado ou um agente personalizado de thread principal que tenha seu próprio prompt, no entanto, a sessão começa sem o snapshot de status git.

471 471 

472Se você definir `CLAUDE_CODE_DISABLE_ATTACHMENTS`, Claude Code também envia menções de arquivo `@` como texto simples em vez de expandi-las no conteúdo do arquivo. A lista de subagentes disponíveis e notificações de tarefas em segundo plano ainda chegam.472Se você definir `CLAUDE_CODE_DISABLE_ATTACHMENTS`, Claude Code também envia menções de arquivo `@` como texto simples em vez de expandi-las no conteúdo do arquivo. A lista de subagentes disponíveis e notificações de tarefas em segundo plano ainda chegam. Para impedir apenas que menções de arquivo `@` sejam expandidas, defina [`CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`](/docs/pt/env-vars#variables) em vez disso, no Claude Code v2.1.299 ou posterior. Claude então recebe os caminhos mencionados mais uma nota para lê-los com suas ferramentas de arquivo.

473 473 

474O exemplo a seguir é para um agente que carrega suas próprias regras de commit em `append`. Ele define ambas as chaves `attribution` como strings vazias para remover o trailer e rodapé, e desativa `includeGitInstructions` para que as instruções de fluxo de trabalho de commit do próprio Claude Code não compitam com as suas:474O exemplo a seguir é para um agente que carrega suas próprias regras de commit em `append`. Ele define ambas as chaves `attribution` como strings vazias para remover o trailer e rodapé, e desativa `includeGitInstructions` para que as instruções de fluxo de trabalho de commit do próprio Claude Code não compitam com as suas:

475 475 

Details

164| `mcpServers` | `(string \| object)[]` | Não | Servidores MCP disponíveis para este agente, por nome ou configuração inline |164| `mcpServers` | `(string \| object)[]` | Não | Servidores MCP disponíveis para este agente, por nome ou configuração inline |

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

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

167| `autoCompactWindow` | `number` | Não | Reduz a [janela de compactação automática](/docs/pt/sub-agents#subagent-auto-compact-window) deste agente quando ele é executado como subagente, para uma contagem de tokens de `100000` a `1000000`. Requer TypeScript Agent SDK v0.3.296 ou posterior. O SDK Python [`AgentDefinition`](/docs/pt/agent-sdk/python#agentdefinition) não possui este campo |

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

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

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

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

171 172 


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

201| :- | :- |202| :- | :- |

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

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

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

205 206 

206<Note>207<Note>

Details

908 | "malformed"908 | "malformed"

909 | "not_honoured"909 | "not_honoured"

910 >;910 >;

911 claude_code_version?: string;

911};912};

912```913```

913 914 


922 923 

923O 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). Sua aplicação não define nem lê nenhum desses campos.924O 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). Sua aplicação não define nem lê nenhum desses campos.

924 925 

926`claude_code_version` é a versão do Claude Code do processo que executa os turnos da sessão. É o mesmo valor que a mensagem init de [`SDKSystemMessage`](#sdksystemmessage) contém, então você pode ler a versão da CLI antes do primeiro turno.

927 

928* O campo requer Agent SDK v0.3.296 ou posterior, que inclui o Claude Code v2.1.296.

929* Se o campo for `undefined` e você definir `pathToClaudeCodeExecutable`, aponte-o para o Claude Code v2.1.296 ou posterior.

930 

925A 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, para que você possa explicar o estado bloqueado em vez de deduzir novamente a disponibilidade. Ambos os comportamentos requerem Claude Code v2.1.219 ou posterior. Antes do v2.1.219, a resposta omitia `fast_mode_state` quando o modo rápido não estava disponível e nunca trazia um motivo. Para os códigos de motivo e seus significados, consulte [`fast_mode_disabled_reason`](#sdkresultmessage) na mensagem de resultado.931A 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, para que você possa explicar o estado bloqueado em vez de deduzir novamente a disponibilidade. Ambos os comportamentos requerem Claude Code v2.1.219 ou posterior. Antes do v2.1.219, a resposta omitia `fast_mode_state` quando o modo rápido não estava disponível e nunca trazia um motivo. Para os códigos de motivo e seus significados, consulte [`fast_mode_disabled_reason`](#sdkresultmessage) na mensagem de resultado.

926 932 

927O 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.933O 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.


1218 skills?: string[];1224 skills?: string[];

1219 initialPrompt?: string;1225 initialPrompt?: string;

1220 maxTurns?: number;1226 maxTurns?: number;

1227 autoCompactWindow?: number;

1221 background?: boolean;1228 background?: boolean;

1222 omitClaudeMd?: boolean;1229 omitClaudeMd?: boolean;

1223 memory?: "user" | "project" | "local";1230 memory?: "user" | "project" | "local";


1238| `skills` | Não | Array de nomes de skills a pré-carregar no contexto do agente |1245| `skills` | Não | Array de nomes de skills a pré-carregar no contexto do agente |

1239| `initialPrompt` | Não | Enviado automaticamente como o primeiro turno do usuário quando este agente é executado como o agente da thread principal |1246| `initialPrompt` | Não | Enviado automaticamente como o primeiro turno do usuário quando este agente é executado como o agente da thread principal |

1240| `maxTurns` | Não | Número máximo de turnos agênticos (idas e voltas à API) antes de parar |1247| `maxTurns` | Não | Número máximo de turnos agênticos (idas e voltas à API) antes de parar |

1248| `autoCompactWindow` | Não | Reduz a [janela de compactação automática](/docs/pt/sub-agents#subagent-auto-compact-window) deste agente quando ele é executado como subagente, para uma contagem de tokens de `100000` a `1000000`. Requer o TypeScript Agent SDK v0.3.296 ou posterior |

1241| `background` | Não | Executa este agente como uma tarefa em segundo plano não bloqueante quando invocado |1249| `background` | Não | Executa este agente como uma tarefa em segundo plano não bloqueante quando invocado |

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

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

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

1245| `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) determinam quando ele se aplica. Consulte [`PermissionMode`](#permissionmode) |1253| `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) determinam quando ele se aplica. Consulte [`PermissionMode`](#permissionmode) |


2434* `fromMode`: a classe de permissão da sessão remetente, `bypass` ou `prompting`, declarada por um host que retransmite uma mensagem de par entre suas sessões, como o [aplicativo de desktop](/docs/pt/desktop#work-across-sessions). Claude Code a lê na sessão receptora quando aplica os [controles de entrada](/docs/pt/cross-session-messaging#control-inbound-messages). Requer Agent SDK v0.3.234 ou posterior.2442* `fromMode`: a classe de permissão da sessão remetente, `bypass` ou `prompting`, declarada por um host que retransmite uma mensagem de par entre suas sessões, como o [aplicativo de desktop](/docs/pt/desktop#work-across-sessions). Claude Code a lê na sessão receptora quando aplica os [controles de entrada](/docs/pt/cross-session-messaging#control-inbound-messages). Requer Agent SDK v0.3.234 ou posterior.

2435* `senderTaskId`: o ID de tarefa do colega. Ausente para um par entre sessões.2443* `senderTaskId`: o ID de tarefa do colega. Ausente para um par entre sessões.

2436* `name`: o nome de exibição do remetente, normalizado por Claude Code: ele remove pontos de código Unicode de controle, formato, substitutos e separadores de linha ou parágrafo, depois apara o resultado e o limita a 64 pontos de código com reticências. Requer Claude Code v2.1.205 ou posterior.2444* `name`: o nome de exibição do remetente, normalizado por Claude Code: ele remove pontos de código Unicode de controle, formato, substitutos e separadores de linha ou parágrafo, depois apara o resultado e o limita a 64 pontos de código com reticências. Requer Claude Code v2.1.205 ou posterior.

2437* `body`: o corpo da mensagem decodificado com o envelope de par removido, idêntico byte a byte ao que o modelo vê. Sempre presente para uma mensagem de colega; para um par entre sessões, presente apenas quando o turno é exatamente um envelope de par formado por Claude Code. Renderize `name` e `body` em vez de reanalisar o texto da mensagem. Requer Claude Code v2.1.205 ou posterior.2445* `body`: o corpo decodificado da mensagem com o envelope peer removido, idêntico byte a byte ao que o modelo vê. Presente para uma única mensagem de colega de equipe, ausente quando várias são mescladas; para um par entre sessões, presente apenas quando o turno é exatamente um envelope peer formado pelo Claude Code. Renderize `name` e `body` em vez de analisar novamente o texto da mensagem. Antes da v2.1.299, mensagens mescladas mantinham o `body` da primeira mensagem. Requer Claude Code v2.1.205 ou posterior.

2438* `fromSession`: o ID de sessão do remetente que pode ser aberto pelo host, definido pelo host do remetente para que sua interface possa vincular de volta à sessão remetente. Assim como `from`, é declarado pelo remetente: use-o apenas como destino de navegação, e não o trate como prova da identidade do remetente. Requer Claude Code v2.1.216 ou posterior.2446* `fromSession`: o ID de sessão do remetente que pode ser aberto pelo host, definido pelo host do remetente para que sua interface possa vincular de volta à sessão remetente. Assim como `from`, é declarado pelo remetente: use-o apenas como destino de navegação, e não o trate como prova da identidade do remetente. Requer Claude Code v2.1.216 ou posterior.

2439* `verifiedPeerPid`: o ID do processo que se conectou ao socket de mensagens entre sessões desta sessão, verificado pelo kernel e lido da própria conexão, nunca do payload. Use-o, e não `from`, para identificar o remetente: `from` pode ser forjado por qualquer processo do mesmo usuário. O campo está ausente quando Claude Code não consegue verificá-lo, como no Windows ou em entradas que não são por socket, portanto um valor ausente significa que o remetente não está verificado. Para tráfego retransmitido, identifica o retransmissor em vez do autor da mensagem, e IDs de processo são recicláveis, portanto trate-o como proveniência em vez de um token de autenticação. Requer Claude Code v2.1.216 ou posterior.2447* `verifiedPeerPid`: o ID do processo que se conectou ao socket de mensagens entre sessões desta sessão, verificado pelo kernel e lido da própria conexão, nunca do payload. Use-o, e não `from`, para identificar o remetente: `from` pode ser forjado por qualquer processo do mesmo usuário. O campo está ausente quando Claude Code não consegue verificá-lo, como no Windows ou em entradas que não são por socket, portanto um valor ausente significa que o remetente não está verificado. Para tráfego retransmitido, identifica o retransmissor em vez do autor da mensagem, e IDs de processo são recicláveis, portanto trate-o como proveniência em vez de um token de autenticação. Requer Claude Code v2.1.216 ou posterior.

2440 2448 


3446 offset?: number;3454 offset?: number;

3447 limit?: number;3455 limit?: number;

3448 pages?: string;3456 pages?: string;

3457 allow_large?: boolean;

3449};3458};

3450```3459```

3451 3460 

3452Lê arquivos do sistema de arquivos local, incluindo texto, imagens, PDFs e notebooks Jupyter. Use `pages` para intervalos de página PDF (por exemplo, `"1-5"`).3461Lê arquivos do sistema de arquivos local, incluindo texto, imagens, PDFs e notebooks Jupyter.

3462 

3463* Use `pages` para intervalos de página PDF (por exemplo, `"1-5"`).

3464* `allow_large` permite que Claude leia um arquivo de texto além dos [limites de tamanho usuais](/docs/pt/tools-reference#large-files) quando a janela de contexto da sessão tem espaço. Requer Agent SDK v0.3.296 ou posterior, que inclui Claude Code v2.1.296.

3453 3465 

3454Para um PDF, Claude recebe o conteúdo do arquivo dentro do `tool_result` da chamada Read. Uma leitura que retorna a [saída](#tool-output-types) `pdf` carrega um bloco `text` de resumo seguido por um bloco `document`. Uma que retorna a saída `parts` carrega o bloco `text` de resumo seguido por um bloco por página extraída: um bloco `image`, ou um bloco `text` nomeando a página quando Claude Code não conseguiu renderizá-la como uma imagem. Antes do Agent SDK v0.3.242, Claude Code entregava o conteúdo do arquivo como uma mensagem `user` separada após o resultado da ferramenta.3466Para um PDF, Claude recebe o conteúdo do arquivo dentro do `tool_result` da chamada Read. Uma leitura que retorna a [saída](#tool-output-types) `pdf` carrega um bloco `text` de resumo seguido por um bloco `document`. Uma que retorna a saída `parts` carrega o bloco `text` de resumo seguido por um bloco por página extraída: um bloco `image`, ou um bloco `text` nomeando a página quando Claude Code não conseguiu renderizá-la como uma imagem. Antes do Agent SDK v0.3.242, Claude Code entregava o conteúdo do arquivo como uma mensagem `user` separada após o resultado da ferramenta.

3455 3467 

agent-teams.md +2 −1

Details

270| **Task list** | Lista compartilhada de itens de trabalho que os companheiros de equipe reivindicam e completam |270| **Task list** | Lista compartilhada de itens de trabalho que os companheiros de equipe reivindicam e completam |

271| **Mailbox** | Sistema de mensagens para comunicação entre agentes |271| **Mailbox** | Sistema de mensagens para comunicação entre agentes |

272 272 

273A caixa de correio de cada agente é um arquivo JSON em `~/.claude/teams/{team-name}/inboxes/{agent-name}.json`. Claude Code valida cada entrada quando lê um arquivo de caixa de correio. Entradas que não correspondem ao formato de mensagem são relatadas como erros e removidas do arquivo; as mensagens válidas ainda são entregues. Antes da v2.1.207, uma única entrada de caixa de correio malformada causava um erro repetido a cada segundo e bloqueava a entrega para essa caixa de correio até que você deletasse o arquivo manualmente.273A caixa de correio de cada agente é um arquivo JSON em `~/.claude/teams/{team-name}/inboxes/{agent-name}.json`. Claude Code valida cada entrada quando lê um arquivo de caixa de correio. Entradas que não correspondem ao formato de mensagem são relatadas como erros e removidas do arquivo; as mensagens válidas ainda são entregues.

274 274 

275Claude Code relata uma mensagem como enviada apenas quando a escrita no arquivo de caixa de correio do destinatário é bem-sucedida, seja a mensagem texto simples ou uma mensagem de protocolo estruturada, como uma aprovação de plano ou solicitação de encerramento. Quando a escrita falha, por exemplo porque o disco está cheio ou o diretório de caixa de correio não é gravável, o agente remetente recebe um erro e nada é enviado. Veja [Failed to write to a teammate's inbox](/docs/pt/errors#failed-to-write-to-a-teammate-inbox) para as mensagens de erro e etapas de recuperação.275Claude Code relata uma mensagem como enviada apenas quando a escrita no arquivo de caixa de correio do destinatário é bem-sucedida, seja a mensagem texto simples ou uma mensagem de protocolo estruturada, como uma aprovação de plano ou solicitação de encerramento. Quando a escrita falha, por exemplo porque o disco está cheio ou o diretório de caixa de correio não é gravável, o agente remetente recebe um erro e nada é enviado. Veja [Failed to write to a teammate's inbox](/docs/pt/errors#failed-to-write-to-a-teammate-inbox) para as mensagens de erro e etapas de recuperação.

276 276 


309* **`model`**: Claude Code usa o `model` da definição em qualquer modo de exibição quando seu prompt de geração não nomeia um. Veja [como Claude Code escolhe o modelo de um companheiro de equipe](#specify-teammates-and-models).309* **`model`**: Claude Code usa o `model` da definição em qualquer modo de exibição quando seu prompt de geração não nomeia um. Veja [como Claude Code escolhe o modelo de um companheiro de equipe](#specify-teammates-and-models).

310* **`disallowedTools`**: para um companheiro de equipe em processo, Claude Code remove as ferramentas listadas em `disallowedTools` da definição do conjunto do companheiro de equipe. `SendMessage` e as ferramentas Task que ele adiciona continuam disponíveis mesmo quando a lista as nomeia.310* **`disallowedTools`**: para um companheiro de equipe em processo, Claude Code remove as ferramentas listadas em `disallowedTools` da definição do conjunto do companheiro de equipe. `SendMessage` e as ferramentas Task que ele adiciona continuam disponíveis mesmo quando a lista as nomeia.

311* **`effort`**: para um companheiro de equipe em processo, Claude Code aplica o [`effort`](/docs/pt/sub-agents#supported-frontmatter-fields) da definição segundo as [regras de esforço do frontmatter](/docs/pt/model-config#set-the-effort-level).311* **`effort`**: para um companheiro de equipe em processo, Claude Code aplica o [`effort`](/docs/pt/sub-agents#supported-frontmatter-fields) da definição segundo as [regras de esforço do frontmatter](/docs/pt/model-config#set-the-effort-level).

312* **`autoCompactWindow`**: para um companheiro de equipe em processo, Claude Code aplica o [`autoCompactWindow`](/docs/pt/sub-agents#supported-frontmatter-fields) da definição segundo as [regras desse campo](/docs/pt/sub-agents#subagent-auto-compact-window). Um companheiro de equipe em painel dividido ignora o campo. Requer Claude Code v2.1.296 ou posterior.

312* **Body**: para um companheiro de equipe em processo, Claude Code anexa o corpo da definição ao seu prompt do sistema padrão como instruções adicionais. Para um companheiro de equipe em painel dividido, Claude Code usa o corpo no lugar do seu prompt do sistema padrão.313* **Body**: para um companheiro de equipe em processo, Claude Code anexa o corpo da definição ao seu prompt do sistema padrão como instruções adicionais. Para um companheiro de equipe em painel dividido, Claude Code usa o corpo no lugar do seu prompt do sistema padrão.

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

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

agent-view.md +2 −2

Details

74 74 

75<Steps>75<Steps>

76 <Step title="Ativar a configuração">76 <Step title="Ativar a configuração">

77 Em uma sessão regular `claude`, execute `/config` e ative **Abrir visualização de agentes por padrão**. Para pular o menu, defina a chave [`defaultToAgentsView`](/docs/pt/settings-reference#defaulttoagentsview) diretamente:77 Em uma sessão regular `claude`, execute `/config` e ative **Open agents view by default**. Para pular o menu, defina a chave [`defaultToAgentsView`](/docs/pt/settings-reference#defaulttoagentsview) diretamente:

78 78 

79 ```text theme={null}79 ```text theme={null}

80 /config defaultToAgentsView=true80 /config defaultToAgentsView=true


290 290 

291A linha em que você pressionou `←` também mantém um nome em negrito e não esmaecido depois que você move a seleção com as teclas de seta ou o mouse, para que você possa dizer de qual sessão você veio.291A linha em que você pressionou `←` também mantém um nome em negrito e não esmaecido depois que você move a seleção com as teclas de seta ou o mouse, para que você possa dizer de qual sessão você veio.

292 292 

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

294 294 

295Após cerca de dez segundos, Claude Code coloca a sessão em background sem aguardar mais, exceto em casos como estes:295Após cerca de dez segundos, Claude Code coloca a sessão em background sem aguardar mais, exceto em casos como estes:

296 296 

Details

219 Cache de credenciais e tempo limite de resolução219 Cache de credenciais e tempo limite de resolução

220</h4>220</h4>

221 221 

222Claude Code resolve a cadeia de provedor de credenciais padrão AWS uma vez e mantém as credenciais resolvidas na memória. Ele as reutiliza até cinco minutos antes de expirarem, ou por uma hora quando não têm expiração, portanto um perfil apoiado por SSO solicita credenciais do IAM Identity Center aproximadamente uma vez por tempo de vida de credencial. Um erro de credencial da API limpa o cache, e a tentativa novamente resolve credenciais novas. Requer Claude Code v2.1.207 ou posterior.222Claude Code resolve a cadeia de provedor de credenciais padrão AWS uma vez e mantém as credenciais resolvidas na memória. Ele as reutiliza até cinco minutos antes de expirarem, ou por uma hora quando não têm expiração, portanto um perfil apoiado por SSO solicita credenciais do IAM Identity Center aproximadamente uma vez por tempo de vida de credencial. Um erro de credencial da API limpa o cache, e a nova tentativa resolve credenciais novas.

223 223 

224O cache cobre todos os métodos de credencial listados no início deste passo, exceto uma chave de API do Amazon Bedrock, que não usa a cadeia de provedor. Para resolver a cadeia em cada requisição em vez disso, defina [`CLAUDE_CODE_SKIP_AWS_CRED_CACHE=1`](/docs/pt/env-vars).224O cache cobre todos os métodos de credencial listados no início deste passo, exceto uma chave de API do Amazon Bedrock, que não usa a cadeia de provedor. Para resolver a cadeia em cada requisição em vez disso, defina [`CLAUDE_CODE_SKIP_AWS_CRED_CACHE=1`](/docs/pt/env-vars).

225 225 


276 276 

277`Expiration` é opcional. Quando o comando retorna um `Expiration` ISO 8601 válido, Claude Code armazena em cache as credenciais até cinco minutos antes desse tempo. Sem ele, as credenciais são armazenadas em cache por uma hora.277`Expiration` é opcional. Quando o comando retorna um `Expiration` ISO 8601 válido, Claude Code armazena em cache as credenciais até cinco minutos antes desse tempo. Sem ele, as credenciais são armazenadas em cache por uma hora.

278 278 

279Quando você configura `awsCredentialExport` sem `awsAuthRefresh`, Claude Code usa as credenciais exportadas diretamente e não re-resolve a cadeia de provedor de credenciais padrão AWS na inicialização. Requer Claude Code v2.1.206 ou posterior.279Quando você configura `awsCredentialExport` sem `awsAuthRefresh`, Claude Code usa as credenciais exportadas diretamente e não re-resolve a cadeia de provedor de credenciais padrão AWS na inicialização.

280 280 

281<h3 id="3-configure-claude-code">281<h3 id="3-configure-claude-code">

282 3. Configurar Claude Code282 3. Configurar Claude Code


358* Para usar Haiku para tarefas em segundo plano, defina `ANTHROPIC_DEFAULT_HAIKU_MODEL` para um ID de modelo que está disponível em sua conta.358* Para usar Haiku para tarefas em segundo plano, defina `ANTHROPIC_DEFAULT_HAIKU_MODEL` para um ID de modelo que está disponível em sua conta.

359 359 

360<Warning>360<Warning>

361 Os modelos Opus têm um preço por token mais alto do que os modelos Sonnet, portanto uma implantação que não fixa um modelo primário é cobrada à taxa Opus uma vez que atualiza para v2.1.207 ou posterior. Para manter Sonnet 4.5 como o modelo primário, defina `ANTHROPIC_MODEL` para seu ID de modelo completo. Uma implantação que direciona o padrão com `ANTHROPIC_DEFAULT_SONNET_MODEL` e não define `ANTHROPIC_DEFAULT_OPUS_MODEL` mantém seu modelo Sonnet direcionado como o padrão.361 Os modelos Opus têm um preço por token mais alto do que os modelos Sonnet, portanto, se você não fixar um modelo primário, será cobrado à taxa Opus. Para usar Sonnet 4.5 como o modelo primário, defina `ANTHROPIC_MODEL` para seu ID de modelo completo. Uma implantação que direciona o padrão com `ANTHROPIC_DEFAULT_SONNET_MODEL` e não define `ANTHROPIC_DEFAULT_OPUS_MODEL` mantém seu modelo Sonnet direcionado como o padrão.

362</Warning>362</Warning>

363 363 

364Antes da v2.1.280, o modelo primário no Amazon Bedrock era padrão para Opus 5 e o alias `opus` resolveu para Opus 5 a partir da v2.1.219. Na v2.1.207 através v2.1.218, o modelo primário no Amazon Bedrock era padrão para Opus 4.8 e o alias `opus` resolveu para Opus 4.8. Antes da v2.1.207, o modelo primário era padrão para Sonnet 4.5, o alias `opus` resolveu para Opus 4.6, e as tarefas em segundo plano sempre usavam o modelo primário.364Antes da v2.1.280, o modelo primário no Amazon Bedrock era padrão para Opus 5 e o alias `opus` resolveu para Opus 5 a partir da v2.1.219. Na v2.1.207 através v2.1.218, o modelo primário no Amazon Bedrock era padrão para Opus 4.8 e o alias `opus` resolveu para Opus 4.8.

365 365 

366Para personalizar modelos ainda mais, use um destes métodos:366Para personalizar modelos ainda mais, use um destes métodos:

367 367 

artifacts.md +1 −1

Details

188 188 

189Seu [modo de permissão](/docs/pt/permission-modes) decide o que Claude faz quando um comentário enviado chega:189Seu [modo de permissão](/docs/pt/permission-modes) decide o que Claude faz quando um comentário enviado chega:

190 190 

191* **Claude responde por conta própria**: quando seu modo de permissão permite que Claude poste a resposta sem pedir a você, Claude lê a thread e responde, e edita o artefato quando o comentário pede uma alteração. Você vê `Auto-replied to comment thread on Artifact: <name>` ou `Auto-edited Artifact: <name> in response to a comment thread`.191* **Claude responde por conta própria**: se você estiver em um modo de permissão que permite que Claude poste a resposta sem pedir a você, Claude lê a thread e responde. Você vê `Auto-replied to comment thread on Artifact: <name>`.

192* **Claude espera por você**: fora do plan mode, quando postar a resposta precisaria de sua aprovação, você vê `Comments are waiting on Artifact: <name>`. Claude então pede sua aprovação para ler a thread, e novamente para postar a resposta.192* **Claude espera por você**: fora do plan mode, quando postar a resposta precisaria de sua aprovação, você vê `Comments are waiting on Artifact: <name>`. Claude então pede sua aprovação para ler a thread, e novamente para postar a resposta.

193* **Claude pausa no plan mode**: você vê `Comments are waiting on Artifact: <name>`, e Claude não responde até você sair do plan mode e pedir a ele para ler e responder.193* **Claude pausa no plan mode**: você vê `Comments are waiting on Artifact: <name>`, e Claude não responde até você sair do plan mode e pedir a ele para ler e responder.

194 194 

chrome.md +2 −2

Details

123 Gerenciar permissões de site123 Gerenciar permissões de site

124</h3>124</h3>

125 125 

126As permissões no nível do site são herdadas da extensão Chrome. Gerencie permissões nas configurações da extensão Chrome para controlar quais sites Claude pode navegar, clicar e digitar. No [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), quando o próprio classificador do modo automático aprova uma chamada do navegador para um site, a extensão pula sua própria verificação por site para essa chamada, a menos que suas regras de permissão neguem qualquer site a Claude em Chrome.126As permissões no nível do site são herdadas da extensão Chrome. Gerencie permissões nas configurações da extensão Chrome para controlar quais sites Claude pode navegar, clicar e digitar. No [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), quando o próprio classificador do modo auto aprova uma chamada do navegador para um site, a extensão pula sua própria verificação por site para essa chamada, a menos que suas regras de permissão neguem qualquer site a Claude in Chrome.

127 127 

128<h3 id="permission-prompts-in-vs-code-sessions">128<h3 id="permission-prompts-in-vs-code-sessions">

129 Prompts de permissão em sessões do VS Code129 Prompts de permissão em sessões do VS Code


134Em uma sessão que se conectou ao seu navegador ao iniciar porque [Enabled by default](#enable-chrome-by-default) está ativado, Claude Code pergunta a você antes de ações do navegador em um site que você não permitiu, nos modos de permissão Manual, Edit automatically, Auto e Bypass permissions. Nos modos de permissão Auto e Bypass permissions, isso se aplica até que você digite `@browser` nessa sessão.134Em uma sessão que se conectou ao seu navegador ao iniciar porque [Enabled by default](#enable-chrome-by-default) está ativado, Claude Code pergunta a você antes de ações do navegador em um site que você não permitiu, nos modos de permissão Manual, Edit automatically, Auto e Bypass permissions. Nos modos de permissão Auto e Bypass permissions, isso se aplica até que você digite `@browser` nessa sessão.

135 135 

136<h3 id="browser-tools-in-plan-mode">136<h3 id="browser-tools-in-plan-mode">

137 Ferramentas do navegador no modo de plano137 Ferramentas do navegador no modo de planejamento

138</h3>138</h3>

139 139 

140No [modo de planejamento](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode), um prompt de permissão aparece antes de Claude gravar um GIF, abrir uma nova aba ou executar um atalho. Em uma sessão interativa da CLI, se o [modo de bypass de permissões estiver disponível](/docs/pt/permission-modes#skip-all-checks-with-bypasspermissions-mode) e a [busca de feature flags](/docs/pt/env-vars#features-that-need-feature-flag-fetching) estiver desativada, essas chamadas são executadas sem um prompt.140No [modo de planejamento](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode), um prompt de permissão aparece antes de Claude gravar um GIF, abrir uma nova aba ou executar um atalho. Em uma sessão interativa da CLI, se o [modo de bypass de permissões estiver disponível](/docs/pt/permission-modes#skip-all-checks-with-bypasspermissions-mode) e a [busca de feature flags](/docs/pt/env-vars#features-that-need-feature-flag-fetching) estiver desativada, essas chamadas são executadas sem um prompt.

Details

1074 1074 

1075A configuração de [telemetry](#telemetry) do gateway empurra `OTEL_EXPORTER_OTLP_ENDPOINT`, então definir `telemetry.forward_to` aciona o diálogo em cada cliente interativo. O diálogo protege a máquina do desenvolvedor de um gateway comprometido ou hostil, não a organização do desenvolvedor.1075A configuração de [telemetry](#telemetry) do gateway empurra `OTEL_EXPORTER_OTLP_ENDPOINT`, então definir `telemetry.forward_to` aciona o diálogo em cada cliente interativo. O diálogo protege a máquina do desenvolvedor de um gateway comprometido ou hostil, não a organização do desenvolvedor.

1076 1076 

1077Uma [execução não interativa](/docs/pt/server-managed-settings#security-approval-dialogs), como `claude -p`, uma sessão do Agent SDK ou uma sessão na aba Code do Claude Desktop, não pode mostrar a caixa de diálogo. Ela aplica as configurações enviadas apenas para essa execução e não as registra como aprovadas, então a próxima sessão interativa do desenvolvedor ainda mostra a caixa de diálogo. Antes da v2.1.207, uma execução não interativa salvava as configurações como aprovadas e nenhuma sessão interativa posterior mostrava a caixa de diálogo para elas.1077Uma [execução não interativa](/docs/pt/server-managed-settings#security-approval-dialogs), como `claude -p`, uma sessão do Agent SDK ou uma sessão na aba Code do Claude Desktop, não pode mostrar a caixa de diálogo. Ela aplica as configurações enviadas somente para essa execução e não as registra como aprovadas, então a próxima sessão interativa do desenvolvedor ainda mostra a caixa de diálogo.

1078 1078 

1079Se um desenvolvedor recusa, Claude Code sai dessa sessão em vez de aplicar a política. Quando você empurra um novo hook, ou qualquer variável env que aciona o diálogo, para uma política ampla, cada desenvolvedor correspondido portanto vê o diálogo em suas sessões interativas. Uma sessão interativa em execução o mostra na próxima pesquisa horária e, caso contrário, ele aparece na próxima inicialização interativa do desenvolvedor.1079Se um desenvolvedor recusa, Claude Code sai dessa sessão em vez de aplicar a política. Quando você empurra um novo hook, ou qualquer variável env que aciona o diálogo, para uma política ampla, cada desenvolvedor correspondido portanto vê o diálogo em suas sessões interativas. Uma sessão interativa em execução o mostra na próxima pesquisa horária e, caso contrário, ele aparece na próxima inicialização interativa do desenvolvedor.

1080 1080 

Details

298 298 

299As sessões na nuvem suportam [comandos integrados](/docs/pt/commands) que produzem saída de texto. Comandos que só funcionam na interface do terminal, como `/plugin` ou `/resume`, não estão disponíveis. Comandos que abrem um seletor ou painel no terminal se comportam de forma diferente nas sessões na nuvem:299As sessões na nuvem suportam [comandos integrados](/docs/pt/commands) que produzem saída de texto. Comandos que só funcionam na interface do terminal, como `/plugin` ou `/resume`, não estão disponíveis. Comandos que abrem um seletor ou painel no terminal se comportam de forma diferente nas sessões na nuvem:

300 300 

301* **`/model`, `/effort`, `/color` e `/rename`**: passe o valor como um argumento, por exemplo `/model sonnet`, em vez de abrir o seletor do terminal ou controle deslizante. Os formulários de argumento exigem Claude Code v2.1.205 ou posterior no ambiente da sessão e seguem as [notas de disponibilidade](/docs/pt/commands#all-commands) de cada comando.301* **`/model`, `/effort`, `/color` e `/rename`**: passe o valor como um argumento, por exemplo `/model sonnet`, em vez de abrir o seletor do terminal ou controle deslizante. Os formulários de argumento seguem as [notas de disponibilidade](/docs/pt/commands#all-commands) de cada comando.

302* **`/fast`**: alterna o [modo rápido](/docs/pt/fast-mode#use-fast-mode-in-cloud-sessions) para a sessão quando o modo rápido está [disponível em sua conta](/docs/pt/fast-mode#requirements). Requer Claude Code v2.1.271 ou posterior no ambiente da sessão.302* **`/fast`**: alterna o [modo rápido](/docs/pt/fast-mode#use-fast-mode-in-cloud-sessions) para a sessão quando o modo rápido está [disponível em sua conta](/docs/pt/fast-mode#requirements). Requer Claude Code v2.1.271 ou posterior no ambiente da sessão.

303* **`/config`**: no seu navegador em claude.ai/code, abre a seção Claude Code de suas configurações em vez de definir um valor, e o texto após o comando, incluindo `key=value`, é ignorado. Para alterar uma configuração para uma sessão na nuvem, defina uma [variável de ambiente](/docs/pt/cloud-environments#set-environment-variables) no ambiente, ou em uma sessão com um repositório, faça commit da chave no `.claude/settings.json` desse repositório. [Configurações em sessões na nuvem](/docs/pt/settings#settings-in-cloud-sessions) lista o que cada sessão lê.303* **`/config`**: no seu navegador em claude.ai/code, abre a seção Claude Code de suas configurações em vez de definir um valor, e o texto após o comando, incluindo `key=value`, é ignorado. Para alterar uma configuração para uma sessão na nuvem, defina uma [variável de ambiente](/docs/pt/cloud-environments#set-environment-variables) no ambiente, ou em uma sessão com um repositório, faça commit da chave no `.claude/settings.json` desse repositório. [Configurações em sessões na nuvem](/docs/pt/settings#settings-in-cloud-sessions) lista o que cada sessão lê.

304 304 


420* **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ção420* **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

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

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

423* **Segredos de rede**: em ambientes hospedados pela Anthropic nos planos Pro e Max, chaves que você [adiciona a um ambiente na nuvem](/docs/pt/cloud-environments#add-network-secrets) 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êm423* **Segredos de rede**: em ambientes hospedados pela Anthropic, chaves que você [adiciona a um ambiente na nuvem](/docs/pt/cloud-environments#add-network-secrets) 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

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

425 425 

426<h2 id="troubleshooting">426<h2 id="troubleshooting">


472| Mensagem | O que significa |472| Mensagem | O que significa |

473| - | - |473| - | - |

474| `Cloud sessions aren't available with <provider>. They run on Anthropic's infrastructure and require an Anthropic account.` | Claude Code está configurado para um provedor de terceiros. A mensagem nomeia o provedor com o rótulo que sua configuração usa, como `Amazon Bedrock` ou `Google Vertex AI`. Remova a configuração desse provedor, por exemplo removendo a definição de `CLAUDE_CODE_USE_BEDROCK`, e entre com uma conta Anthropic (`claude auth login`). |474| `Cloud sessions aren't available with <provider>. They run on Anthropic's infrastructure and require an Anthropic account.` | Claude Code está configurado para um provedor de terceiros. A mensagem nomeia o provedor com o rótulo que sua configuração usa, como `Amazon Bedrock` ou `Google Vertex AI`. Remova a configuração desse provedor, por exemplo removendo a definição de `CLAUDE_CODE_USE_BEDROCK`, e entre com uma conta Anthropic (`claude auth login`). |

475| `Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.` | A política da organização `allow_remote_sessions` está desativada. |475| `Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.` | A política `allow_remote_sessions` da sua organização está desativada; veja [Cloud sessions are disabled by your organization's policy](/docs/pt/errors#cloud-sessions-are-disabled-by-your-organizations-policy). Se, em vez disso, a mensagem nomear uma credencial que esta sessão está usando, veja [As sessões na nuvem usam seu login do claude.ai](/docs/pt/errors#cloud-sessions-use-your-claude-ai-login). |

476| `Couldn't verify your organization's policy for cloud sessions. Check your network connection and try again.` | Claude Code não conseguiu obter a política da sua organização, então recusa o envio em vez de presumir que as sessões na nuvem são permitidas. Verifique sua conexão de rede e tente novamente. |476| `Couldn't verify your organization's policy for cloud sessions. Check your network connection and try again.` | Claude Code ainda não terminou de carregar a política da sua organização, então recusa o envio em vez de presumir que as sessões na nuvem são permitidas. Verifique sua conexão de rede e tente novamente. |

477| `Cloud sessions aren't available:` seguido de uma causa | O carregamento da política da sua organização falhou, e o restante da mensagem diz como. Aja de acordo com a causa indicada; veja [Couldn't verify your organization's policy for cloud sessions](/docs/pt/errors#couldnt-verify-your-organizations-policy-for-cloud-sessions). |

477| `Attaching to an existing cloud session is not enabled for your account.` | Você executou `--cloud <session-id>` sem `-p`. Envie a mensagem com `claude -p "your message" --cloud <session-id>`. |478| `Attaching to an existing cloud session is not enabled for your account.` | Você executou `--cloud <session-id>` sem `-p`. Envie a mensagem com `claude -p "your message" --cloud <session-id>`. |

478| `Session not found: <id>` | O ID ou URL não corresponde a uma sessão que você pode acessar. Compare-o com o URL claude.ai/code da sessão. |479| `Session not found: <id>` | O ID ou URL não corresponde a uma sessão que você pode acessar. Compare-o com o URL claude.ai/code da sessão. |

479| `cloud session <id> is archived and cannot accept new messages` | A sessão foi arquivada. Inicie uma nova sessão em vez disso. |480| `cloud session <id> is archived and cannot accept new messages` | A sessão foi arquivada. Inicie uma nova sessão em vez disso. |

Details

1525| - | - | - |1525| - | - | - |

1526| `skills/<name>/SKILL.md` | `name`, `description`, `when_to_use`, `argument-hint`, `arguments`, `disable-model-invocation`, `user-invocable`, `allowed-tools`, `disallowed-tools`, `model`, `effort`, `context`, `agent`, `background`, `hooks`, `paths`, `shell`, `metadata`, `license`, `compatibility` | [Frontmatter de skill](/docs/pt/skills#frontmatter-reference) |1526| `skills/<name>/SKILL.md` | `name`, `description`, `when_to_use`, `argument-hint`, `arguments`, `disable-model-invocation`, `user-invocable`, `allowed-tools`, `disallowed-tools`, `model`, `effort`, `context`, `agent`, `background`, `hooks`, `paths`, `shell`, `metadata`, `license`, `compatibility` | [Frontmatter de skill](/docs/pt/skills#frontmatter-reference) |

1527| `commands/*.md` | Os campos de skill exceto `name` e `paths` | [Frontmatter de skill](/docs/pt/skills#frontmatter-reference) |1527| `commands/*.md` | Os campos de skill exceto `name` e `paths` | [Frontmatter de skill](/docs/pt/skills#frontmatter-reference) |

1528| `agents/*.md` | `name`, `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `maxTurns`, `skills`, `mcpServers`, `hooks`, `memory`, `background`, `effort`, `isolation`, `color`, `initialPrompt`, `omitClaudeMd`, `experimental` | [Frontmatter de subagente](/docs/pt/sub-agents#supported-frontmatter-fields) |1528| `agents/*.md` | `name`, `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `maxTurns`, `autoCompactWindow`, `skills`, `mcpServers`, `hooks`, `memory`, `background`, `effort`, `isolation`, `color`, `initialPrompt`, `omitClaudeMd`, `experimental` | [Frontmatter de subagente](/docs/pt/sub-agents#supported-frontmatter-fields) |

1529| `output-styles/*.md` | `name`, `description`, `keep-coding-instructions`, `force-for-plugin` | [Frontmatter de estilo de saída](/docs/pt/output-styles#frontmatter) |1529| `output-styles/*.md` | `name`, `description`, `keep-coding-instructions`, `force-for-plugin` | [Frontmatter de estilo de saída](/docs/pt/output-styles#frontmatter) |

1530| `rules/*.md` | `paths` | [Frontmatter de regra](/docs/pt/memory#rules-frontmatter-reference) |1530| `rules/*.md` | `paths` | [Frontmatter de regra](/docs/pt/memory#rules-frontmatter-reference) |

1531 1531 

Details

291 291 

292Claude Platform on AWS usa os mesmos IDs de modelo que a API Claude direta.292Claude Platform on AWS usa os mesmos IDs de modelo que a API Claude direta.

293 293 

294Os aliases padrão `fable`, `opus`, `sonnet` e `haiku` resolvem para os padrões integrados do Claude Code para Claude Platform on AWS, que podem ficar atrás da versão mais recente. Sem `ANTHROPIC_DEFAULT_OPUS_MODEL`, o alias `opus` resolve para Opus 5.5. Antes da v2.1.280, ele resolvia para Opus 5 a partir da v2.1.219, para Opus 4.8 a partir da v2.1.207 e para Opus 4.7 antes disso.294Os aliases padrão `fable`, `opus`, `sonnet` e `haiku` resolvem para os padrões integrados do Claude Code para Claude Platform on AWS, que podem ficar atrás da versão mais recente. Sem `ANTHROPIC_DEFAULT_OPUS_MODEL`, o alias `opus` resolve para Opus 5.5. Antes da v2.1.280, ele resolvia para Opus 5 a partir da v2.1.219 e para Opus 4.8 a partir da v2.1.207.

295 295 

296Se você implantar Claude Code para uma equipe, fixe os IDs de modelo explicitamente para que um novo lançamento não mova todos de uma vez:296Se você implantar Claude Code para uma equipe, fixe os IDs de modelo explicitamente para que um novo lançamento não mova todos de uma vez:

297 297 

Details

414 414 

415* 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](/docs/pt/skills#skills-in-cowork-and-cloud-sessions).415* 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](/docs/pt/skills#skills-in-cowork-and-cloud-sessions).

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

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

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

419 419 

420Para 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.420Para 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.


435| Instruções do projeto | Memory | [Regras permanentes](#give-a-project-standing-context) que cada nova thread recebe |435| Instruções do projeto | Memory | [Regras permanentes](#give-a-project-standing-context) que cada nova thread recebe |

436| Repositórios do projeto | Environment | Os repositórios que novas threads clonam |436| Repositórios do projeto | Environment | Os repositórios que novas threads clonam |

437| Ambiente em nuvem | Environment | O [ambiente em nuvem](#choose-an-environment-for-threads) em que novas threads são executadas |437| Ambiente em nuvem | Environment | O [ambiente em nuvem](#choose-an-environment-for-threads) em que novas threads são executadas |

438| Connectors | Environment | Um link para gerenciar os connectors claude.ai que as threads obtêm |

439| Plugins | Plugins | Os plugins que carregam em cada nova thread |438| Plugins | Plugins | Os plugins que carregam em cada nova thread |

440| Usage | Usage | [Uso de token](#usage-and-cost) por thread e por modelo |439| Usage | Usage | [Uso de token](#usage-and-cost) por thread e por modelo |

441| Memory | Memory | Os [arquivos de memória](#give-a-project-standing-context) do projeto |440| Memory | Memory | Os [arquivos de memória](#give-a-project-standing-context) do projeto |

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 [segredos de rede](#add-network-secrets) que as sessões usam sem vê-los, 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, armazenar [segredos de rede](#add-network-secrets) 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 


44 Configure seu ambiente44 Configure seu ambiente

45</h2>45</h2>

46 46 

47Crie, edite e arquive ambientes a partir do seletor de ambiente, que você acessa em [claude.ai/code](https://claude.ai/code) após a [integração web](/docs/pt/web-quickstart), ou a partir da caixa de prompt no [aplicativo Desktop](/docs/pt/desktop#cloud-sessions). Os ambientes que você cria são pessoais para sua conta; [ambientes compartilhados](#organization-shared-environments) criados por um Proprietário aparecem no mesmo seletor. Veja [Ferramentas instaladas](#installed-tools) para saber o que está disponível sem nenhuma configuração.47Adicione, edite e arquive ambientes a partir do seletor de ambiente abaixo da caixa de mensagem, na tela em que você inicia uma nova sessão em [claude.ai/code](https://claude.ai/code). Para chegar a essa tela, conclua a [integração web](/docs/pt/web-quickstart). Para o aplicativo Desktop, veja [Sessões na nuvem](/docs/pt/desktop#cloud-sessions). Os ambientes que você cria são pessoais para sua conta; [ambientes compartilhados](#organization-shared-environments) criados por um Proprietário aparecem no seletor junto com eles. Veja [Ferramentas instaladas](#installed-tools) para saber o que está disponível sem nenhuma configuração.

48 

49O seletor aparece apenas até você enviar a primeira mensagem de uma nova sessão. Para editar o ambiente de uma sessão na nuvem sua que esteja em execução, selecione a seta após o título da sessão, no topo, e depois selecione **Edit cloud environment**.

48 50 

49<Steps>51<Steps>

50 <Step title="Abra o seletor de ambiente">52 <Step title="Abra o seletor de ambiente">

51 Em [claude.ai/code](https://claude.ai/code), selecione o ícone de nuvem mostrando o nome do ambiente atual, na linha acima da caixa de mensagem. Não há página de configurações ou URL direto para o seletor.53 Na tela de nova sessão, selecione o primeiro controle na linha abaixo da caixa de mensagem.

52 

53 <Frame>

54 <img src="https://mintcdn.com/claude-code/ZFId6l95856c5LSw/images/cloud-environment-selector.png?fit=max&auto=format&n=ZFId6l95856c5LSw&q=85&s=cc2813a5664519eaf5a89d793ce5af26" alt="O seletor de ambiente aberto acima da caixa de mensagem em claude.ai/code. O botão de nuvem mostrando o nome do ambiente Default fica na linha acima da caixa de mensagem. O menu aberto lista uma linha Local com rótulos Download e Desktop only, uma seção Cloud onde o ambiente Default é selecionado com uma marca de seleção e mostra um ícone de engrenagem de configurações ao passar o mouse, uma opção Add cloud environment e uma seção Remote Control com instruções de configuração." width="1672" height="682" data-path="images/cloud-environment-selector.png" />

55 </Frame>

56 </Step>54 </Step>

57 55 

58 <Step title="Adicione ou edite um ambiente">56 <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.57 * **Adicione um ambiente**: selecione **New environment** na parte inferior do menu para abrir o diálogo **New environment**. Preencha o formulário e selecione **Add environment**. Sua nova sessão então usa o ambiente que você adicionou.

58 * **Edite um ambiente**: encontre a linha dele em **Cloud**. Se **Cloud** for uma única linha, selecione-a para abrir a lista. Se seu ambiente não estiver listado em **Cloud**, selecione a linha **More** sob esse cabeçalho. Passe o mouse sobre a linha do ambiente e selecione o ícone de configurações que aparece à direita para abrir o diálogo dele.

60 59 

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-network-secrets).60 O diálogo inclui o nome, nível de acesso à rede, variáveis de ambiente e script de configuração. Para armazenar uma chave que as sessões usam sem vê-la, veja [Adicione segredos de rede](#add-network-secrets).

62 

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" />

65 </Frame>

66 </Step>61 </Step>

67</Steps>62</Steps>

68 63 


91 86 

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.87Uma 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 88 

94Qualquer pessoa que use o ambiente pode ler os valores. Em planos Pro e Max, use um [segredo de rede](#add-network-secrets) 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á.89Qualquer pessoa que use o ambiente pode ler os valores. Em um ambiente hospedado pela Anthropic, use um [segredo de rede](#add-network-secrets) 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 90 

96<span id="add-api-credentials" />91<span id="add-api-credentials" />

97 92 


101 96 

102Um 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, de modo que a própria chave permanece fora da VM.97Um 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, de modo que a própria chave permanece fora da VM.

103 98 

104Os 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.99Os segredos de rede estão disponíveis em planos Pro, Max, Team e Enterprise. Para verificar se você mesmo pode adicionar um, veja [Requisitos](#requirements).

105 100 

106<h4 id="requirements">101<h4 id="requirements">

107 Requisitos102 Requisitos


109 104 

110Estes requisitos decidem se você pode adicionar um segredo e se o proxy do agente pode usá-lo depois de adicionado:105Estes requisitos decidem se você pode adicionar um segredo e se o proxy do agente pode usá-lo depois de adicionado:

111 106 

112* **Função**: uma função de administrador da organização em sua organização claude.ai107* **Função**: em planos Pro, Max e Team, você pode adicionar e excluir segredos em seus próprios ambientes, qualquer que seja sua função. Em Team e Enterprise, Proprietários têm uma função de administrador da organização em sua organização claude.ai e Administradores não, o que muda o que você vê nestes casos:

113 * Em Team e Enterprise, Proprietários a mantêm e Administradores não108 * **Seu próprio ambiente no Enterprise**: com uma função de administrador da organização, você adiciona e exclui segredos. Sem ela, a seção **Network secrets** lista os segredos sob a nota "Only an organization admin can add or delete network secrets", sem botão **Add secret** ou de exclusão. Peça a um Proprietário para adicionar o segredo a um [ambiente compartilhado](#organization-shared-environments) e depois execute suas sessões lá

114 * Em Pro e Max, você a mantém em sua própria organização109 * **Um ambiente compartilhado**: Proprietários [adicionam e excluem seus segredos](#add-a-credential) nas configurações de administrador. Sem uma função de administrador da organização, peça a um Proprietário para adicionar o segredo, porque o diálogo do ambiente não tem a seção **Network secrets**

110 * **Seu próprio ambiente no Team**: sem uma função de administrador da organização, **Add secret** abre um [formulário mais curto](#add-a-secret-without-the-role) que aceita um host

115* **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 rede111* **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

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

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


122 118 

123Você 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.119Você 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.

124 120 

121Para adicionar um segredo a um [ambiente compartilhado](#organization-shared-environments), abra-o para edição a partir da página **Cloud environments** nas [configurações de administrador](https://claude.ai/admin-settings) e continue a etapa 1 a partir da seção **Network secrets**. Se você está em um plano Team e não tem uma [função de administrador da organização](#requirements), siga a etapa 1 em seu próprio ambiente e depois [preencha o formulário mais curto](#add-a-secret-without-the-role).

122 

125<Steps>123<Steps>

126 <Step title="Abra os segredos de rede do ambiente">124 <Step title="Abra os segredos de rede do ambiente">

127 [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.125 [Abra o ambiente para edição](#configure-your-environment) em [claude.ai/code](https://claude.ai/code). No diálogo **Edit cloud environment**, encontre a seção **Network secrets**. Você vê os segredos já no ambiente, cada um com os hosts aos quais se aplica.

128 </Step>126 </Step>

129 127 

130 <Step title="Adicione o segredo">128 <Step title="Adicione o segredo">

131 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:129 Selecione **Add secret** e preencha o formulário. Mantenha o **Secret type** padrão, **Bearer**, para uma chave de API que viaja em um cabeçalho de requisição, e preencha estes campos:

132 130 

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

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

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

136 134 

137 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 **Secret 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).

138 </Step>136 </Step>

139 137 

140 <Step title="Salve o segredo">138 <Step title="Salve o segredo">

141 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.139 Selecione **Add**. 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.

142 </Step>140 </Step>

143</Steps>141</Steps>

144 142 

145Para 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.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.

146 144 

145<h4 id="add-a-secret-without-the-role">

146 Adicione um segredo em um plano Team sem uma função de administrador da organização

147</h4>

148 

149Se você está em um plano Team e não tem uma [função de administrador da organização](#requirements), o formulário **Add secret** aceita um segredo para um host. Selecione **Add secret** na [seção **Network secrets**](#add-a-credential) do seu ambiente, preencha estes campos e depois selecione o botão **Add secret** do formulário:

150 

151* **Host**: o único host que recebe o segredo, como `api.example.com`. O formulário não aceita um curinga `*.`

152* **Name**: um rótulo opcional para o segredo

153* **Secret type**: **Token** para uma chave que viaja em um cabeçalho de requisição, ou **Username and password**. Para um token, cole a chave como o **Value**

154 

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

148 Quais requisições recebem o segredo156 Quais requisições recebem o segredo

149</h4>157</h4>


175 Arquive um ambiente183 Arquive um ambiente

176</h3>184</h3>

177 185 

178Para arquivar um de seus próprios ambientes, abra-o para edição e selecione **Archive**. Um Proprietário arquiva um [ambiente compartilhado](#organization-shared-environments) a partir da página **Cloud environments** nas configurações de administrador. Você não pode excluir um ambiente, apenas arquivá-lo.186Para arquivar um de seus próprios ambientes, abra-o para edição, selecione **Archive environment** e confirme. Se o ambiente estiver [compartilhado com sua organização](#organization-shared-environments), um Proprietário o arquiva a partir da página **Cloud environments** nas [configurações de administrador](https://claude.ai/admin-settings), portanto peça a um Proprietário, a menos que você seja um. Você não pode excluir um ambiente, apenas arquivá-lo.

179 187 

180O arquivamento afeta novas sessões, não as em execução:188O arquivamento afeta novas sessões, não as em execução:

181 189 


199 207 

200Os 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).208Os 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).

201 209 

202Cada sessão de membro em um ambiente compartilhado lê suas variáveis, portanto não inclua segredos nelas. [Segredos de rede](#add-network-secrets), 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.210Para dar às sessões de um ambiente compartilhado uma chave que elas não podem ler, adicione um [segredo de rede](#add-network-secrets) ao editar o ambiente na página **Cloud environments**. Não inclua segredos em suas variáveis, porque as sessões de cada membro as leem.

203 211 

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

205 Defina o ambiente que um canal do Claude Tag usa213 Defina o ambiente que um canal do Claude Tag usa


216 224 

217Cada ambiente define um nível de acesso à rede, que controla as conexões de saída que suas sessões podem fazer. O nível padrão, **Trusted**, permite registros de pacotes e outros [domínios na lista de permissões](#default-allowed-domains); **Custom** usa sua própria lista de domínios.225Cada ambiente define um nível de acesso à rede, que controla as conexões de saída que suas sessões podem fazer. O nível padrão, **Trusted**, permite registros de pacotes e outros [domínios na lista de permissões](#default-allowed-domains); **Custom** usa sua própria lista de domínios.

218 226 

219Para alterar o acesso à rede de um ambiente, [abra-o para edição](#configure-your-environment) e use o seletor **Network access** no diálogo. Um [ambiente compartilhado](#organization-shared-environments) abre como somente leitura lá, portanto um Owner altera seu acesso à rede a partir da página **Cloud environments** nas [configurações de administrador](https://claude.ai/admin-settings). O ícone de nuvem que abre o seletor aparece nas superfícies do aplicativo listadas em [O ambiente Default](#the-default-environment) e no [editor de rotina](/docs/pt/routines#environments-and-network-access); os ambientes pessoais não têm uma página separada nas configurações de sua conta claude.ai.227Para alterar o acesso à rede de um ambiente, [abra-o para edição](#configure-your-environment) e use o seletor **Network access** no diálogo. Um [ambiente compartilhado](#organization-shared-environments) abre como somente leitura lá, portanto um Owner altera seu acesso à rede a partir da página **Cloud environments** nas [configurações de administrador](https://claude.ai/admin-settings). O controle que abre o seletor aparece nas superfícies do aplicativo listadas em [O ambiente Default](#the-default-environment) e no [editor de rotina](/docs/pt/routines#environments-and-network-access); os ambientes pessoais não têm uma página separada nas configurações de sua conta claude.ai.

220 228 

221Quando você altera o acesso à rede de um ambiente hospedado pela Anthropic, suas sessões existentes seguem a nova configuração dentro de aproximadamente um minuto, para solicitações que passam pela [lista de permissões de rede](#access-levels) da sessão. Você não precisa iniciar uma nova sessão.229Quando você altera o acesso à rede de um ambiente hospedado pela Anthropic, suas sessões existentes seguem a nova configuração dentro de aproximadamente um minuto, para solicitações que passam pela [lista de permissões de rede](#access-levels) da sessão. Você não precisa iniciar uma nova sessão.

222 230 


274* **Credenciais do Git**: o cliente git dentro da VM usa uma credencial com escopo, que o proxy verifica e troca por seu token real do GitHub.282* **Credenciais do Git**: o cliente git dentro da VM usa uma credencial com escopo, que o proxy verifica e troca por seu token real do GitHub.

275* **Solicitações de API**: solicitações das ferramentas GitHub integradas e de `gh` sob o [placeholder `proxy-injected`](#work-with-github-issues-and-pull-requests), saem com suas credenciais reais substituídas.283* **Solicitações de API**: solicitações das ferramentas GitHub integradas e de `gh` sob o [placeholder `proxy-injected`](#work-with-github-issues-and-pull-requests), saem com suas credenciais reais substituídas.

276* **Restrições de push**: o proxy rejeita exclusões de branches e pushes de qualquer coisa que não seja um branch, como uma tag. Ele não limita quais branches um push pode atualizar. Para fazer isso, use regras de proteção de branch ou rulesets no GitHub.284* **Restrições de push**: o proxy rejeita exclusões de branches e pushes de qualquer coisa que não seja um branch, como uma tag. Ele não limita quais branches um push pode atualizar. Para fazer isso, use regras de proteção de branch ou rulesets no GitHub.

277* **Escopo do repositório**: o proxy atende requisições da API do GitHub para os repositórios anexados à sessão. Uma requisição de API para outro repositório recebe um 403 cuja mensagem começa com `GitHub access to` e contém `is not enabled for this session`.285* **Escopo do repositório**: o proxy atende requisições da API do GitHub para os repositórios anexados à sessão. Uma requisição de API para outro repositório recebe um 403 cuja mensagem começa com `GitHub access to` e contém `is not enabled for this session`. Um arquivo compactado do código-fonte que você busca por meio de uma URL `github.com/{owner}/{repo}/archive/` ou `codeload.github.com` recebe esse mesmo 403 quando o repositório não está anexado, mesmo que seja público.

278* **Restrições de GraphQL**: o proxy rejeita requisições ao endpoint de GraphQL do GitHub com um 403 cuja mensagem começa com `GitHub GraphQL is not available from Claude Code sessions` e nomeia o fallback REST, `gh api repos/{owner}/{repo}/...`. Os subcomandos `gh` que usam GraphQL, como `gh pr` e `gh issue`, recebem o mesmo 403. A restrição se aplica a cada requisição através do proxy independentemente das credenciais que você fornece, portanto um `GH_TOKEN` que você define recebe o mesmo 403. Claude não pode alcançar APIs do GitHub que existem apenas em GraphQL, como Projects v2, através do proxy.286* **Restrições de GraphQL**: o proxy rejeita requisições ao endpoint de GraphQL do GitHub com um 403 cuja mensagem começa com `GitHub GraphQL is not available from Claude Code sessions` e nomeia o fallback REST, `gh api repos/{owner}/{repo}/...`. Os subcomandos `gh` que usam GraphQL, como `gh pr` e `gh issue`, recebem o mesmo 403. A restrição se aplica a cada requisição através do proxy independentemente das credenciais que você fornece, portanto um `GH_TOKEN` que você define recebe o mesmo 403. Claude não pode alcançar APIs do GitHub que existem apenas em GraphQL, como Projects v2, através do proxy.

279 287 

280Os arquivos confirmados de repositórios públicos chegam através de `raw.githubusercontent.com`, que o [proxy de segurança](#security-proxy) manipula em vez disso. Esse domínio está na [lista Trusted](#default-allowed-domains) padrão, portanto esses arquivos permanecem acessíveis a menos que o [nível de acesso](#access-levels) do ambiente os exclua.288Os arquivos confirmados de repositórios públicos chegam através de `raw.githubusercontent.com`, que o [proxy de segurança](#security-proxy) manipula em vez disso. Esse domínio está na [lista Trusted](#default-allowed-domains) padrão, portanto esses arquivos permanecem acessíveis a menos que o [nível de acesso](#access-levels) do ambiente os exclua.


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 |326| 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 faça commit desse arquivo. Uma sessão com um repositório o carrega |327| 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 |328| 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 [segredos de rede](#add-network-secrets) | 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 |329| Chaves de API e tokens para serviços que Claude chama | Em um ambiente hospedado pela Anthropic, como [segredos de rede](#add-network-secrets) | 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) 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 |330| 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 331 

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

325 333 

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-network-secrets) em vez disso.334Qualquer 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 um ambiente hospedado pela Anthropic, armazene uma chave que o proxy do agente pode anexar como um [segredo de rede](#add-network-secrets) em vez disso.

327 335 

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

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

code-review.md +0 −2

Details

155* Você deve ter permissão de escrita, manutenção ou administrador no repositório155* Você deve ter permissão de escrita, manutenção ou administrador no repositório

156* O PR deve estar aberto156* O PR deve estar aberto

157 157 

158Se o repositório pertencer a uma organização e sua associação nessa organização for privada, que é o padrão do GitHub, o GitHub não o identifica para Claude como um membro. Claude ainda pode reagir ao seu comentário com 👀, mas não inicia uma revisão a menos que você tenha sido adicionado ao repositório diretamente como colaborador, mesmo quando uma equipe ou as permissões base da organização lhe dão acesso de escrita. Para corrigir isso, [torne sua associação à organização pública](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-membership-in-organizations/publicizing-or-hiding-organization-membership) ou peça a um administrador do repositório para adicioná-lo ao repositório como colaborador.

159 

160Diferentemente dos gatilhos automáticos, os gatilhos manuais são executados em PRs de rascunho, já que uma solicitação explícita sinaliza que você deseja a revisão agora independentemente do status de rascunho.158Diferentemente dos gatilhos automáticos, os gatilhos manuais são executados em PRs de rascunho, já que uma solicitação explícita sinaliza que você deseja a revisão agora independentemente do status de rascunho.

161 159 

162Se uma revisão já estiver em execução nesse PR, a solicitação é enfileirada até que a revisão em andamento seja concluída. Você pode monitorar o progresso através da execução de verificação no PR.160Se uma revisão já estiver em execução nesse PR, a solicitação é enfileirada até que a revisão em andamento seja concluída. Você pode monitorar o progresso através da execução de verificação no PR.

commands.md +6 −6

Details

67| `/branch [name]` | Crie um branch da conversa atual neste ponto, para que você possa tentar uma direção diferente sem perder a conversa como está. Muda você para o branch e preserva o original, ao qual você pode retornar com `/resume`. Para executar uma cópia como uma [sessão em segundo plano](/docs/pt/agent-view) separada em vez de mudar para ela, use `/fork`; para entregar uma tarefa lateral a um [subagente](/docs/pt/sub-agents) que relata de volta para esta conversa, use `/subtask` |67| `/branch [name]` | Crie um branch da conversa atual neste ponto, para que você possa tentar uma direção diferente sem perder a conversa como está. Muda você para o branch e preserva o original, ao qual você pode retornar com `/resume`. Para executar uma cópia como uma [sessão em segundo plano](/docs/pt/agent-view) separada em vez de mudar para ela, use `/fork`; para entregar uma tarefa lateral a um [subagente](/docs/pt/sub-agents) que relata de volta para esta conversa, use `/subtask` |

68| `/btw [question]` | Faça uma [pergunta lateral](/docs/pt/interactive-mode#side-questions-with-%2Fbtw) sobre a sessão atual sem adicionar à conversa. Se você executar `/btw` sem uma pergunta, Claude Code mostra sua pergunta lateral mais recente para que você possa procurar respostas anteriores; se você ainda não fez uma, Claude Code imprime uma linha de uso. Antes da v2.1.212, `/btw` exigia uma pergunta |68| `/btw [question]` | Faça uma [pergunta lateral](/docs/pt/interactive-mode#side-questions-with-%2Fbtw) sobre a sessão atual sem adicionar à conversa. Se você executar `/btw` sem uma pergunta, Claude Code mostra sua pergunta lateral mais recente para que você possa procurar respostas anteriores; se você ainda não fez uma, Claude Code imprime uma linha de uso. Antes da v2.1.212, `/btw` exigia uma pergunta |

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

70| `/cd <path>` | Mova esta sessão para um novo diretório de trabalho, mantendo a conversa. Digite um caminho parcial para ver sugestões de diretório correspondentes; pressione `Tab` para aceitar uma. As sugestões requerem Claude Code v2.1.206 ou posterior. Para o que Claude Code aplica do novo diretório assim que você se move, e como `/cd` difere de `/add-dir`, consulte [Mova a sessão para outro diretório](/docs/pt/permissions#move-the-session-to-another-directory) |70| `/cd <path>` | Mova esta sessão para um novo diretório de trabalho, mantendo a conversa. Digite um caminho parcial para ver sugestões de diretório correspondentes; pressione `Tab` para aceitar uma. Para o que Claude Code aplica do novo diretório assim que você se move, e como `/cd` difere de `/add-dir`, consulte [Mova a sessão para outro diretório](/docs/pt/permissions#move-the-session-to-another-directory) |

71| `/chrome` | Configure as configurações de [Claude em Chrome](/docs/pt/chrome) |71| `/chrome` | Configure as configurações de [Claude em Chrome](/docs/pt/chrome) |

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

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

74| `/clear [name]` | Inicie uma nova conversa com contexto vazio. Passe um nome para rotular a conversa anterior no seletor `/resume`. Para liberar contexto enquanto continua a mesma conversa, use `/compact` em vez disso. Retome a conversa anterior com `/resume`, ou, no mesmo processo Claude Code, restaure-a do [menu de retrocesso da entrada de sessão anterior](/docs/pt/checkpointing#rewind-past-a-cleared-conversation). Aliases: `/reset`, `/new` |74| `/clear [name]` | Inicie uma nova conversa com contexto vazio. Passe um nome para rotular a conversa anterior no seletor `/resume`. Para liberar contexto enquanto continua a mesma conversa, use `/compact` em vez disso. Retome a conversa anterior com `/resume`, ou, no mesmo processo Claude Code, restaure-a do [menu de retrocesso da entrada de sessão anterior](/docs/pt/checkpointing#rewind-past-a-cleared-conversation). Aliases: `/reset`, `/new` |

75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | **[Skill](/docs/pt/skills#bundled-skills).** Revise o diff atual, ou um número de PR, branch ou caminho que você passa, para bugs de correção. Dependendo do seu modelo e nível de esforço, a revisão também cobre oportunidades de limpeza. Passe `--fix` para aplicar descobertas, `--comment` para postá-las no GitHub PR ou GitLab merge request, ou `ultra` para executar uma [revisão na nuvem](/docs/pt/ultrareview) profunda. Postar em um GitLab merge request requer Claude Code v2.1.257 ou posterior. Com `ultra` em um alvo de PR `github.com`, passe `--post` para pré-selecionar [postando as descobertas concluídas no PR](/docs/pt/ultrareview#post-findings-to-the-pull-request) no diálogo de inicialização; `--post` requer Claude Code v2.1.227 ou posterior. Consulte [Revise um diff localmente](/docs/pt/code-review#review-a-diff-locally) para os níveis de esforço, direcionamento e como se relaciona com `/simplify`. Alias: `/review` |75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | **[Skill](/docs/pt/skills#bundled-skills).** Revise o diff atual, ou um número de PR, branch ou caminho que você passa, para bugs de correção. Dependendo do seu modelo e nível de esforço, a revisão também cobre oportunidades de limpeza. Passe `--fix` para aplicar descobertas, `--comment` para postá-las no GitHub PR ou GitLab merge request, ou `ultra` para executar uma [revisão na nuvem](/docs/pt/ultrareview) profunda. Postar em um GitLab merge request requer Claude Code v2.1.257 ou posterior. Com `ultra` em um alvo de PR `github.com`, passe `--post` para pré-selecionar [postando as descobertas concluídas no PR](/docs/pt/ultrareview#post-findings-to-the-pull-request) no diálogo de inicialização; `--post` requer Claude Code v2.1.227 ou posterior. Consulte [Revise um diff localmente](/docs/pt/code-review#review-a-diff-locally) para os níveis de esforço, direcionamento e como se relaciona com `/simplify`. Alias: `/review` |

76| `/color [color\|default]` | Defina a cor da barra de prompt para a sessão atual. Cores disponíveis: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Use `default` para redefinir, ou execute sem argumento para escolher uma cor aleatória. Quando [Remote Control](/docs/pt/remote-control) está conectado, a cor sincroniza com claude.ai/code. Também disponível em modo não interativo (`-p`); requer Claude Code v2.1.205 ou posterior |76| `/color [color\|default]` | Defina a cor da barra de prompt para a sessão atual. Cores disponíveis: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Use `default` para redefinir, ou execute sem argumento para escolher uma cor aleatória. Quando [Remote Control](/docs/pt/remote-control) está conectado, a cor sincroniza com claude.ai/code. Também disponível em modo não interativo (`-p`) |

77| `/compact [instructions]` | Libere contexto resumindo a conversa até agora. Opcionalmente passe instruções de foco para o resumo. Consulte [como a compactação lida com regras, skills e arquivos de memória](/docs/pt/context-window#what-survives-compaction) |77| `/compact [instructions]` | Libere contexto resumindo a conversa até agora. Opcionalmente passe instruções de foco para o resumo. Consulte [como a compactação lida com regras, skills e arquivos de memória](/docs/pt/context-window#what-survives-compaction) |

78| `/config [key=value ...]` | Abra a interface de [Configurações](/docs/pt/settings) para ajustar tema, modelo, [estilo de saída](/docs/pt/output-styles) e outras preferências. Passe um ou mais pares `key=value` para definir uma configuração diretamente sem abrir a interface, por exemplo `/config thinking=false`, `/config theme=dark`, ou `/config model=sonnet`. O formulário `key=value` também funciona em modo não interativo (`-p`) e do aplicativo móvel Claude via [Remote Control](/docs/pt/remote-control). O formulário `key=value` não pode ativar uma configuração que precisa de sua confirmação no painel, como [`autoContinueAtUsageLimit`](/docs/pt/interactive-mode#turn-automatic-continue-off), embora possa desativá-la. Execute `/config --help` para listar as chaves que aceita. Alias: `/settings` |78| `/config [key=value ...]` | Abra a interface de [Configurações](/docs/pt/settings) para ajustar tema, modelo, [estilo de saída](/docs/pt/output-styles) e outras preferências. Passe um ou mais pares `key=value` para definir uma configuração diretamente sem abrir a interface, por exemplo `/config thinking=false`, `/config theme=dark`, ou `/config model=sonnet`. O formulário `key=value` também funciona em modo não interativo (`-p`) e do aplicativo móvel Claude via [Remote Control](/docs/pt/remote-control). O formulário `key=value` não pode ativar uma configuração que precisa de sua confirmação no painel, como [`autoContinueAtUsageLimit`](/docs/pt/interactive-mode#turn-automatic-continue-off), embora possa desativá-la. Execute `/config --help` para listar as chaves que aceita. Alias: `/settings` |

79| `/context [all]` | Visualize o uso de contexto atual como uma grade colorida. Mostra sugestões de otimização para ferramentas pesadas em contexto, inchaço de memória e avisos de capacidade. Quando a conversa excede a janela de contexto, a saída inclui um [aviso](/docs/pt/errors#context-exceeds-the-token-limit) mostrando o quão longe você está do limite e qual comando libera espaço. Em [modo tela cheia](/docs/pt/fullscreen), `/context` recolhe o detalhamento por item para manter a grade visível. Passe `all` para expandi-lo |79| `/context [all]` | Visualize o uso de contexto atual como uma grade colorida. Mostra sugestões de otimização para ferramentas pesadas em contexto, inchaço de memória e avisos de capacidade. Quando a conversa excede a janela de contexto, a saída inclui um [aviso](/docs/pt/errors#context-exceeds-the-token-limit) mostrando o quão longe você está do limite e qual comando libera espaço. Em [modo tela cheia](/docs/pt/fullscreen), `/context` recolhe o detalhamento por item para manter a grade visível. Passe `all` para expandi-lo |


91| `/effort [level\|auto\|status\|ultracode [on\|off]]` | Defina o [nível de esforço](/docs/pt/model-config#adjust-effort-level): `low` a `xhigh`, `max`, ou `auto`; `status` o imprime. `ultracode` ou `ultracode on` ativa [ultracode](/docs/pt/workflows#let-claude-decide-with-ultracode) para a sessão no nível atual, e `ultracode off` o desativa; a chave [`ultracode`](/docs/pt/settings-reference#ultracode) persiste. `max` é apenas de sessão. Os argumentos `on` e `off` e manter o nível atual requerem Claude Code v2.1.284 ou posterior. Antes da v2.1.284, `/effort ultracode` definia a sessão para `xhigh`, e `/effort ultracode off` falhava com `Invalid argument`. Execute-o enquanto Claude está respondendo e, uma vez que você confirme o [aviso de cache](/docs/pt/prompt-caching#changing-effort-level), se Claude Code mostrar um, Claude Code aplica o novo nível à próxima requisição nesse turno. Antes da v2.1.242, Claude Code decidia a partir de uma flag de recurso que buscava do Anthropic se executaria o comando no meio do turno ou o enfileiraria até que o turno terminasse, e sempre o enfileirava em uma sessão que não [busca flags de recurso](/docs/pt/env-vars#features-that-need-feature-flag-fetching), como em um [provedor de terceiros](/docs/pt/third-party-integrations). Funciona em `-p` |91| `/effort [level\|auto\|status\|ultracode [on\|off]]` | Defina o [nível de esforço](/docs/pt/model-config#adjust-effort-level): `low` a `xhigh`, `max`, ou `auto`; `status` o imprime. `ultracode` ou `ultracode on` ativa [ultracode](/docs/pt/workflows#let-claude-decide-with-ultracode) para a sessão no nível atual, e `ultracode off` o desativa; a chave [`ultracode`](/docs/pt/settings-reference#ultracode) persiste. `max` é apenas de sessão. Os argumentos `on` e `off` e manter o nível atual requerem Claude Code v2.1.284 ou posterior. Antes da v2.1.284, `/effort ultracode` definia a sessão para `xhigh`, e `/effort ultracode off` falhava com `Invalid argument`. Execute-o enquanto Claude está respondendo e, uma vez que você confirme o [aviso de cache](/docs/pt/prompt-caching#changing-effort-level), se Claude Code mostrar um, Claude Code aplica o novo nível à próxima requisição nesse turno. Antes da v2.1.242, Claude Code decidia a partir de uma flag de recurso que buscava do Anthropic se executaria o comando no meio do turno ou o enfileiraria até que o turno terminasse, e sempre o enfileirava em uma sessão que não [busca flags de recurso](/docs/pt/env-vars#features-that-need-feature-flag-fetching), como em um [provedor de terceiros](/docs/pt/third-party-integrations). Funciona em `-p` |

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

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

94| `/fast [on\|off]` | Alterne o [modo rápido](/docs/pt/fast-mode) ativado ou desativado. Execute-o enquanto Claude está respondendo e Claude Code alterna o modo rápido sem esperar que o turno termine, embora o turno em execução termine na sua velocidade original. Antes da v2.1.242, Claude Code decidia a partir de uma flag de recurso que buscava do Anthropic se executaria o comando no meio do turno ou o enfileiraria até que o turno terminasse, e sempre o enfileirava em uma sessão que não [busca flags de recurso](/docs/pt/env-vars#features-that-need-feature-flag-fetching). A disponibilidade em modo não interativo com `-p` é limitada; consulte [Alterne o modo rápido](/docs/pt/fast-mode#toggle-fast-mode). Requer Claude Code v2.1.205 ou posterior |94| `/fast [on\|off]` | Alterne o [modo rápido](/docs/pt/fast-mode) ativado ou desativado. Execute-o enquanto Claude está respondendo e Claude Code alterna o modo rápido sem esperar que o turno termine, embora o turno em execução termine na sua velocidade original. Antes da v2.1.242, Claude Code decidia a partir de uma flag de recurso que buscava do Anthropic se executaria o comando no meio do turno ou o enfileiraria até que o turno terminasse, e sempre o enfileirava em uma sessão que não [busca flags de recurso](/docs/pt/env-vars#features-that-need-feature-flag-fetching). A disponibilidade em modo não interativo com `-p` é limitada; consulte [Alterne o modo rápido](/docs/pt/fast-mode#toggle-fast-mode) |

95| `/feedback [report]` | Envie feedback de produto sobre Claude Code. Abre o mesmo diálogo que [`/bug`](#all-commands), com a mesma etapa de consentimento, regras de envio e comportamento no meio do turno. Em sessões com [feedback rascunhado por Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior), `/feedback` sem argumento abre a fila de rascunhos, onde você revisa, edita, envia ou descarta os rascunhos que Claude enfileirou; a fila inclui uma opção para escrever um novo relatório no diálogo. Com um argumento, e para `/bug` sempre, o diálogo abre diretamente |95| `/feedback [report]` | Envie feedback de produto sobre Claude Code. Abre o mesmo diálogo que [`/bug`](#all-commands), com a mesma etapa de consentimento, regras de envio e comportamento no meio do turno. Em sessões com [feedback rascunhado por Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior), `/feedback` sem argumento abre a fila de rascunhos, onde você revisa, edita, envia ou descarta os rascunhos que Claude enfileirou; a fila inclui uma opção para escrever um novo relatório no diálogo. Com um argumento, e para `/bug` sempre, o diálogo abre diretamente |

96| `/fewer-permission-prompts` | **[Skill](/docs/pt/skills#bundled-skills).** Escaneie suas transcrições para chamadas de ferramenta Bash e MCP somente leitura comuns, depois adicione uma allowlist priorizada ao `.claude/settings.json` do projeto para reduzir prompts de permissão |96| `/fewer-permission-prompts` | **[Skill](/docs/pt/skills#bundled-skills).** Escaneie suas transcrições para chamadas de ferramenta Bash e MCP somente leitura comuns, depois adicione uma allowlist priorizada ao `.claude/settings.json` do projeto para reduzir prompts de permissão |

97| `/focus` | Alterne a visualização de foco, que mostra apenas seu último prompt, um resumo de chamada de ferramenta de uma linha com estatísticas de diff de edição e a resposta final. O resumo de chamada de ferramenta também conta os subagentes iniciados no turno e recolhe notificações de tarefas em segundo plano concluídas em uma única contagem. A seleção persiste entre sessões; defina [`viewMode`](/docs/pt/settings-reference#viewmode) nas configurações para sobrescrevê-la. Disponível apenas em [renderização tela cheia](/docs/pt/fullscreen). De um cliente [Remote Control](/docs/pt/remote-control), execute `/focus [on\|off]` para ativar ou desativar a visualização de foco para a sessão atual apenas, sem alterar sua seleção salva; isso requer Claude Code v2.1.281 ou posterior. A [extensão VS Code](/docs/pt/vs-code#use-the-prompt-box) oferece sua própria visualização Focus como um toggle de menu de comando, armazenado como uma configuração de extensão, independente de `viewMode` |97| `/focus` | Alterne a visualização de foco, que mostra apenas seu último prompt, um resumo de chamada de ferramenta de uma linha com estatísticas de diff de edição e a resposta final. O resumo de chamada de ferramenta também conta os subagentes iniciados no turno e recolhe notificações de tarefas em segundo plano concluídas em uma única contagem. A seleção persiste entre sessões; defina [`viewMode`](/docs/pt/settings-reference#viewmode) nas configurações para sobrescrevê-la. Disponível apenas em [renderização tela cheia](/docs/pt/fullscreen). De um cliente [Remote Control](/docs/pt/remote-control), execute `/focus [on\|off]` para ativar ou desativar a visualização de foco para a sessão atual apenas, sem alterar sua seleção salva; isso requer Claude Code v2.1.281 ou posterior. A [extensão VS Code](/docs/pt/vs-code#use-the-prompt-box) oferece sua própria visualização Focus como um toggle de menu de comando, armazenado como uma configuração de extensão, independente de `viewMode` |


111| `/login` | Conecte-se à sua conta Anthropic |111| `/login` | Conecte-se à sua conta Anthropic |

112| `/logout` | Desconecte-se de sua conta Anthropic |112| `/logout` | Desconecte-se de sua conta Anthropic |

113| `/loop [interval] [prompt]` | **[Skill](/docs/pt/skills#bundled-skills).** Execute um prompt repetidamente enquanto a sessão permanece aberta. Omita o intervalo e Claude [define o próprio ritmo entre iterações](/docs/pt/scheduled-tasks#let-claude-choose-the-interval). Omita o prompt e Claude executa o [prompt de manutenção integrado](/docs/pt/scheduled-tasks#run-the-built-in-maintenance-prompt) ou seu [`loop.md`](/docs/pt/scheduled-tasks#customize-the-default-prompt-with-loop-md). Exemplo: `/loop 5m check if the deploy finished`. Consulte [Execute prompts em um cronograma](/docs/pt/scheduled-tasks). Alias: `/proactive` |113| `/loop [interval] [prompt]` | **[Skill](/docs/pt/skills#bundled-skills).** Execute um prompt repetidamente enquanto a sessão permanece aberta. Omita o intervalo e Claude [define o próprio ritmo entre iterações](/docs/pt/scheduled-tasks#let-claude-choose-the-interval). Omita o prompt e Claude executa o [prompt de manutenção integrado](/docs/pt/scheduled-tasks#run-the-built-in-maintenance-prompt) ou seu [`loop.md`](/docs/pt/scheduled-tasks#customize-the-default-prompt-with-loop-md). Exemplo: `/loop 5m check if the deploy finished`. Consulte [Execute prompts em um cronograma](/docs/pt/scheduled-tasks). Alias: `/proactive` |

114| `/mcp [reconnect (<server>\|all)\|enable\|disable [<server>\|all]]` | Gerencie conexões de servidor MCP e autenticação OAuth. Execute sem argumento para abrir a lista interativa, ou passe `reconnect`, `enable` ou `disable` com um nome de servidor ou `all` para alterar o estado de conexão sem abri-la. `reconnect all` [tenta novamente cada servidor que falhou ou precisa de autenticação](/docs/pt/mcp#retry-failed-servers-yourself). Em modo não interativo (`-p`), executá-lo sem argumento imprime um resumo de texto do status do servidor em vez de abrir a lista; requer Claude Code v2.1.205 ou posterior |114| `/mcp [reconnect (<server>\|all)\|enable\|disable [<server>\|all]]` | Gerencie conexões de servidor MCP e autenticação OAuth. Execute sem argumento para abrir a lista interativa, ou passe `reconnect`, `enable` ou `disable` com um nome de servidor ou `all` para alterar o estado de conexão sem abri-la. `reconnect all` [tenta novamente cada servidor que falhou ou precisa de autenticação](/docs/pt/mcp#retry-failed-servers-yourself). Em modo não interativo (`-p`), executá-lo sem argumento imprime um resumo de texto do status do servidor em vez de abrir a lista |

115| `/memory` | Edite arquivos `CLAUDE.md`, ative ou desative [memória automática](/docs/pt/memory#auto-memory) e veja entradas de memória automática |115| `/memory` | Edite arquivos `CLAUDE.md`, ative ou desative [memória automática](/docs/pt/memory#auto-memory) e veja entradas de memória automática |

116| `/mobile` | Mostre código QR para baixar o aplicativo móvel Claude. Aliases: `/ios`, `/android` |116| `/mobile` | Mostre código QR para baixar o aplicativo móvel Claude. Aliases: `/ios`, `/android` |

117| `/model [model]` | Mude o modelo de IA e salve-o como seu padrão para novas sessões. Para modelos que suportam, use setas esquerda/direita para [ajustar nível de esforço](/docs/pt/model-config#adjust-effort-level). Sem argumento, abre um seletor; pressione `s` em uma linha para mudar apenas para a sessão atual. Consulte [quando Claude Code pede que você confirme a mudança](/docs/pt/prompt-caching#switching-models). Uma vez que você confirme a mudança, se Claude Code pedir, Claude Code aplica a mudança sem esperar que a resposta atual termine. Antes da v2.1.242, Claude Code decidia a partir de uma flag de recurso que buscava do Anthropic se executaria o comando no meio do turno ou o enfileiraria até que o turno terminasse, e sempre o enfileirava em uma sessão que não [busca flags de recurso](/docs/pt/env-vars#features-that-need-feature-flag-fetching), como em um [provedor de terceiros](/docs/pt/third-party-integrations). Também disponível em modo não interativo (`-p`) com um argumento de modelo em vez do seletor, onde se aplica apenas à sessão atual e não é salvo como seu padrão; requer Claude Code v2.1.205 ou posterior |117| `/model [model]` | Mude o modelo de IA e salve-o como seu padrão para novas sessões. Para modelos que suportam, use setas esquerda/direita para [ajustar nível de esforço](/docs/pt/model-config#adjust-effort-level). Sem argumento, abre um seletor; pressione `s` em uma linha para mudar apenas para a sessão atual. Consulte [quando Claude Code pede que você confirme a mudança](/docs/pt/prompt-caching#switching-models). Uma vez que você confirme a mudança, se Claude Code pedir, Claude Code aplica a mudança sem esperar que a resposta atual termine. Antes da v2.1.242, Claude Code decidia a partir de uma flag de recurso que buscava do Anthropic se executaria o comando no meio do turno ou o enfileiraria até que o turno terminasse, e sempre o enfileirava em uma sessão que não [busca flags de recurso](/docs/pt/env-vars#features-that-need-feature-flag-fetching), como em um [provedor de terceiros](/docs/pt/third-party-integrations). Também disponível em modo não interativo (`-p`) com um argumento de modelo em vez do seletor, onde se aplica apenas à sessão atual e não é salvo como seu padrão; requer Claude Code v2.1.205 ou posterior |


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

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

132| `/reload-skills` | Rescaneie diretórios de [skill](/docs/pt/skills) e comando para que skills adicionadas ou alteradas no disco durante a sessão fiquem disponíveis sem reiniciar. Relata quantas skills estão disponíveis e quantas foram adicionadas ou removidas |132| `/reload-skills` | Rescaneie diretórios de [skill](/docs/pt/skills) e comando para que skills adicionadas ou alteradas no disco durante a sessão fiquem disponíveis sem reiniciar. Relata quantas skills estão disponíveis e quantas foram adicionadas ou removidas |

133| `/remote-control` | Disponibilize esta sessão para [Remote Control](/docs/pt/remote-control) de claude.ai. Executá-lo enquanto desconectado imprime que Remote Control requer uma assinatura claude.ai e diz como conectar; antes da v2.1.206 relatava `Unknown command: /remote-control`. Alias: `/rc` |133| `/remote-control` | Disponibilize esta sessão para [Remote Control](/docs/pt/remote-control) de claude.ai. Executá-lo enquanto desconectado imprime que Remote Control requer uma assinatura claude.ai e diz como conectar. Alias: `/rc` |

134| `/remote-env` | Escolha o [ambiente na nuvem](/docs/pt/cloud-environments#select-an-environment-from-the-cli) padrão para sessões na nuvem que você inicia a partir da CLI |134| `/remote-env` | Escolha o [ambiente na nuvem](/docs/pt/cloud-environments#select-an-environment-from-the-cli) padrão para sessões na nuvem que você inicia a partir da CLI |

135| `/rename [name]` | Renomeie a sessão atual e mostre o nome na barra de prompt. Sem um nome, auto-gera um a partir do histórico de conversa. Também disponível em modo não interativo (`-p`); requer Claude Code v2.1.205 ou posterior. De cada superfície de renomeação, incluindo claude.ai e o aplicativo de desktop, Claude Code substitui caracteres de controle e invisíveis no novo nome com espaços e limita o nome a 200 caracteres. Se o nome estiver vazio uma vez que caracteres invisíveis são removidos, Claude Code o rejeita e mostra `That name is empty once invisible characters are removed. Usage: /rename <name>`. A substituição de caracteres e limite de comprimento requerem Claude Code v2.1.221 ou posterior |135| `/rename [name]` | Renomeie a sessão atual e mostre o nome na barra de prompt. Sem um nome, auto-gera um a partir do histórico de conversa. Também disponível em modo não interativo (`-p`). De cada superfície de renomeação, incluindo claude.ai e o aplicativo de desktop, Claude Code substitui caracteres de controle e invisíveis no novo nome com espaços e limita o nome a 200 caracteres. Se o nome estiver vazio uma vez que caracteres invisíveis são removidos, Claude Code o rejeita e mostra `That name is empty once invisible characters are removed. Usage: /rename <name>`. A substituição de caracteres e limite de comprimento requerem Claude Code v2.1.221 ou posterior |

136| `/resume [session]` | Retome uma conversa por ID ou nome, ou abra o seletor de sessão. [Sessões em segundo plano](/docs/pt/agent-view) aparecem no seletor marcadas com `bg`. Retomar uma que ainda está em execução, do seletor ou por ID ou nome, [abre essa sessão](/docs/pt/sessions#resume-a-running-background-session): sua conversa atual vai para segundo plano e este terminal se anexa à em execução. Pressione `←` em um prompt vazio para retornar à visualização de agente, que também lista a conversa que você deixou. Antes da v2.1.285, Claude Code recusava e dizia para abrir a sessão com `claude attach` ou pará-la primeiro. Alias: `/continue` |136| `/resume [session]` | Retome uma conversa por ID ou nome, ou abra o seletor de sessão. [Sessões em segundo plano](/docs/pt/agent-view) aparecem no seletor marcadas com `bg`. Retomar uma que ainda está em execução, do seletor ou por ID ou nome, [abre essa sessão](/docs/pt/sessions#resume-a-running-background-session): sua conversa atual vai para segundo plano e este terminal se anexa à em execução. Pressione `←` em um prompt vazio para retornar à visualização de agente, que também lista a conversa que você deixou. Antes da v2.1.285, Claude Code recusava e dizia para abrir a sessão com `claude attach` ou pará-la primeiro. Alias: `/continue` |

137| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | Alias de [`/code-review`](/docs/pt/code-review#review-a-diff-locally): revisa o diff atual, ou um número de PR, branch ou caminho que você passa, como `/review 1234`, e aceita os mesmos níveis de esforço e flags. Sem um nível dado, a revisão reutiliza o último nível `low` através `max` que você digitou; consulte [Revise um diff localmente](/docs/pt/code-review#review-a-diff-locally) para as regras exatas. Para uma revisão na nuvem profunda, use [`/code-review ultra`](/docs/pt/ultrareview). Antes da v2.1.223, `/review` era um comando separado que executava uma revisão de uma única passagem, somente leitura de um pull request GitHub por número, listando PRs abertos para escolher quando executado sem argumento; de v2.1.186 através v2.1.201, executava o mesmo mecanismo multi-agente que `/code-review medium` |137| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | Alias de [`/code-review`](/docs/pt/code-review#review-a-diff-locally): revisa o diff atual, ou um número de PR, branch ou caminho que você passa, como `/review 1234`, e aceita os mesmos níveis de esforço e flags. Sem um nível dado, a revisão reutiliza o último nível `low` através `max` que você digitou; consulte [Revise um diff localmente](/docs/pt/code-review#review-a-diff-locally) para as regras exatas. Para uma revisão na nuvem profunda, use [`/code-review ultra`](/docs/pt/ultrareview). Antes da v2.1.223, `/review` era um comando separado que executava uma revisão de uma única passagem, somente leitura de um pull request GitHub por número, listando PRs abertos para escolher quando executado sem argumento; de v2.1.186 através v2.1.201, executava o mesmo mecanismo multi-agente que `/code-review medium` |

138| `/rewind` | Retroceda a conversa e/ou código para um ponto anterior, ou resuma a partir de uma mensagem selecionada. Consulte [checkpointing](/docs/pt/checkpointing). Aliases: `/checkpoint`, `/undo` |138| `/rewind` | Retroceda a conversa e/ou código para um ponto anterior, ou resuma a partir de uma mensagem selecionada. Consulte [checkpointing](/docs/pt/checkpointing). Aliases: `/checkpoint`, `/undo` |

Details

419 * Você pode referenciar múltiplos arquivos em uma única mensagem (por exemplo, "@file1.js and @file2.js")419 * Você pode referenciar múltiplos arquivos em uma única mensagem (por exemplo, "@file1.js and @file2.js")

420</Tip>420</Tip>

421 421 

422Para impedir que referências `@` incluam conteúdos de arquivos e listagens de diretórios em sua mensagem, defina [`CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`](/docs/pt/env-vars#variables) no seu shell ou nas configurações de usuário. Claude então recebe os caminhos que você referenciou com uma nota para lê-los usando suas ferramentas de arquivo. A variável requer Claude Code v2.1.299 ou posterior, e Claude Code a ignora nas configurações de projeto e locais.

423 

422***424***

423 425 

424<h3 id="run-claude-on-a-schedule">426<h3 id="run-claude-on-a-schedule">

Details

1602| System prompt e estilo de saída | Ambos ainda se aplicam |1602| System prompt e estilo de saída | Ambos ainda se aplicam |

1603| CLAUDE.md na raiz do projeto e regras sem escopo | Re-injetado do disco |1603| CLAUDE.md na raiz do projeto e regras sem escopo | Re-injetado do disco |

1604| Memória automática | Re-injetado do disco |1604| Memória automática | Re-injetado do disco |

1605| [Snapshot de status do Git](/docs/pt/settings-reference#includegitinstructions) | Claude Code lê um novo do seu repositório |1605| [Snapshot de status do Git](/docs/pt/settings-reference#includegitinstructions) | Se a sessão começou com um, Claude Code lê um novo do seu repositório |

1606| O plano que Claude escreveu em [modo de planejamento](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode) | Re-injetado do disco |1606| O plano que Claude escreveu em [modo de planejamento](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode) | Re-injetado do disco |

1607| Regras com frontmatter `paths:` | Claude Code as recarrega [sob demanda](/docs/pt/memory#path-specific-rules) |1607| Regras com frontmatter `paths:` | Claude Code as recarrega [sob demanda](/docs/pt/memory#path-specific-rules) |

1608| CLAUDE.md aninhado em subdiretórios | Claude Code os recarrega [sob demanda](/docs/pt/memory#how-claude-md-files-load) |1608| CLAUDE.md aninhado em subdiretórios | Claude Code os recarrega [sob demanda](/docs/pt/memory#how-claude-md-files-load) |


1622 Quando sua janela de contexto se preenche1622 Quando sua janela de contexto se preenche

1623</h2>1623</h2>

1624 1624 

1625Claude Code faz compactação automática conforme você se aproxima do limite, então uma janela de contexto cheia não encerra sua sessão. A passagem automática funciona da mesma forma que a etapa `/compact` na linha do tempo. Veja [Quando o contexto se preenche](/docs/pt/how-claude-code-works#when-context-fills-up) para o que ela preserva.1625Claude Code faz compactação automática conforme você se aproxima do limite, então uma janela de contexto cheia não encerra sua sessão. A passagem automática funciona da mesma forma que a etapa `/compact` na linha do tempo. Veja [Quando o contexto se preenche](/docs/pt/how-claude-code-works#when-context-fills-up) para o que ela preserva. Para saber quando Claude Code também compacta uma conversa que você deixa ociosa, veja [compactação por inatividade](/docs/pt/settings-reference#idlecompaction).

1626 1626 

1627Você também pode agir antes da passagem automática ser executada:1627Você também pode agir antes da passagem automática ser executada:

1628 1628 

Details

128* **Tolere ser invocado de dentro de si mesmo.** Claude Code aplica o launcher a cada self-spawn aninhado, então um launcher que adquire um recurso exclusivo deve detectar que já o mantém.128* **Tolere ser invocado de dentro de si mesmo.** Claude Code aplica o launcher a cada self-spawn aninhado, então um launcher que adquire um recurso exclusivo deve detectar que já o mantém.

129* **Não escreva no terminal antes de Claude Code iniciar.** Qualquer coisa impressa antes do `exec` é relatada como a causa do crash se a sessão morrer antes de inicializar.129* **Não escreva no terminal antes de Claude Code iniciar.** Qualquer coisa impressa antes do `exec` é relatada como a causa do crash se a sessão morrer antes de inicializar.

130* **Não dependa de como os argumentos são escritos.** O valor de uma flag pode chegar como seu próprio argumento, `--flag value`, ou unido à flag, `--flag=value`. A forma que uma flag usa pode mudar entre versões.130* **Não dependa de como os argumentos são escritos.** O valor de uma flag pode chegar como seu próprio argumento, `--flag value`, ou unido à flag, `--flag=value`. A forma que uma flag usa pode mudar entre versões.

131* **Execute `exec` a partir do diretório em que o launcher foi iniciado.** Claude Code trabalha no diretório em que é iniciado, então um launcher que muda de diretório pode iniciar uma sessão no projeto errado. Se o launcher deve entrar em um namespace ou sandbox que redefine o diretório de trabalho, volte ao diretório inicial dentro dele, antes do `exec`.

131 132 

132<h3 id="format-of-the-launcher-value">133<h3 id="format-of-the-launcher-value">

133 Formato do valor do launcher134 Formato do valor do launcher

Details

170| Skill não aparece em `/skills` | O arquivo de skill está em `.claude/skills/name.md` em vez de em uma pasta | Use uma pasta com `SKILL.md` dentro: `.claude/skills/name/SKILL.md`. |170| Skill não aparece em `/skills` | O arquivo de skill está em `.claude/skills/name.md` em vez de em uma pasta | Use uma pasta com `SKILL.md` dentro: `.claude/skills/name/SKILL.md`. |

171| Skill aparece em `/skills` mas Claude nunca o invoca | Skill tem `disable-model-invocation: true` em seu frontmatter, ou sua descrição não corresponde a como você frasa a solicitação | Verifique o badge em `/skills`: um rótulo "user-only" significa que Claude não o acionará por conta própria. Consulte [invocação de skill](/docs/pt/skills). |171| Skill aparece em `/skills` mas Claude nunca o invoca | Skill tem `disable-model-invocation: true` em seu frontmatter, ou sua descrição não corresponde a como você frasa a solicitação | Verifique o badge em `/skills`: um rótulo "user-only" significa que Claude não o acionará por conta própria. Consulte [invocação de skill](/docs/pt/skills). |

172| As instruções de `CLAUDE.md` do subdiretório parecem ser ignoradas | Os arquivos do subdiretório são carregados sob demanda, não no início da sessão | Para carregar o `CLAUDE.md` de um subdiretório, peça ao Claude para ler outro arquivo nesse subdiretório. Consulte [quando os arquivos de subdiretório são carregados](/docs/pt/memory#how-claude-md-files-load). |172| As instruções de `CLAUDE.md` do subdiretório parecem ser ignoradas | Os arquivos do subdiretório são carregados sob demanda, não no início da sessão | Para carregar o `CLAUDE.md` de um subdiretório, peça ao Claude para ler outro arquivo nesse subdiretório. Consulte [quando os arquivos de subdiretório são carregados](/docs/pt/memory#how-claude-md-files-load). |

173| Subagente ignora as instruções de `CLAUDE.md` | Os agentes Explore e Plan integrados pulam `CLAUDE.md`. Um subagente personalizado o carrega da mesma forma que a conversa principal, a menos que sua definição defina [`omitClaudeMd`](/docs/pt/sub-agents#supported-frontmatter-fields) | Para Explore ou Plan, reafirme a instrução em seu prompt de delegação. Para um subagente que define `omitClaudeMd`, remova o campo. Para qualquer outro subagente personalizado, coloque instruções críticas no corpo do arquivo do agente, que se torna o prompt do sistema do agente. Consulte [o que é carregado na inicialização](/docs/pt/sub-agents#what-loads-at-startup). |173| Subagente ignora as instruções de `CLAUDE.md` | Os agentes Explore e Plan integrados pulam `CLAUDE.md` na inicialização. Um subagente personalizado o carrega da mesma forma que a conversa principal, a menos que tenha [`omitClaudeMd`](/docs/pt/sub-agents#supported-frontmatter-fields) definido em sua definição | Para Explore ou Plan, reafirme a instrução em seu prompt de delegação. Para um subagente que define `omitClaudeMd`, remova o campo. Para qualquer outro subagente personalizado, coloque instruções críticas no corpo do arquivo do agente, que se torna o system prompt do agente. Consulte [o que é carregado na inicialização](/docs/pt/sub-agents#what-loads-at-startup). |

174| A lógica de limpeza nunca é executada no final da sessão | Nenhum hook `SessionEnd` configurado | Adicione um hook `SessionEnd` em `settings.json`. Consulte a [lista de eventos de hook](/docs/pt/hooks#hook-events). |174| A lógica de limpeza nunca é executada no final da sessão | Nenhum hook `SessionEnd` configurado | Adicione um hook `SessionEnd` em `settings.json`. Consulte a [lista de eventos de hook](/docs/pt/hooks#hook-events). |

175| Servidores MCP em `.mcp.json` nunca são carregados | O arquivo está sob `.claude/`, ou seus servidores estão sob uma chave `servers` de nível superior, como no `mcp.json` do VS Code, em vez de `mcpServers` | A configuração MCP do projeto vai na raiz do repositório como `.mcp.json`, não dentro de `.claude/`, com servidores sob a chave `mcpServers`. Consulte [configuração MCP](/docs/pt/mcp). |175| Servidores MCP em `.mcp.json` nunca são carregados | O arquivo está sob `.claude/`, ou seus servidores estão sob uma chave `servers` de nível superior, como no `mcp.json` do VS Code, em vez de `mcpServers` | A configuração MCP do projeto vai na raiz do repositório como `.mcp.json`, não dentro de `.claude/`, com servidores sob a chave `mcpServers`. Consulte [configuração MCP](/docs/pt/mcp). |

176| Servidores MCP adicionados sob `mcpServers` em `settings.json` nunca aparecem | `settings.json` não lê uma chave `mcpServers` | Defina servidores de projeto em `.mcp.json` na raiz do repositório, ou execute `claude mcp add --scope user` para servidores com escopo de usuário. Consulte [configuração MCP](/docs/pt/mcp). |176| Servidores MCP adicionados sob `mcpServers` em `settings.json` nunca aparecem | `settings.json` não lê uma chave `mcpServers` | Defina servidores de projeto em `.mcp.json` na raiz do repositório, ou execute `claude mcp add --scope user` para servidores com escopo de usuário. Consulte [configuração MCP](/docs/pt/mcp). |

desktop.md +135 −11

Details

101| **Accept edits** | `acceptEdits` | Claude aceita automaticamente edições de arquivo e comandos comuns do sistema de arquivos como `mkdir`, `touch` e `mv`, mas ainda pergunta antes de executar outros comandos de terminal. Use isso quando você confia em alterações de arquivo e quer iteração mais rápida. |101| **Accept edits** | `acceptEdits` | Claude aceita automaticamente edições de arquivo e comandos comuns do sistema de arquivos como `mkdir`, `touch` e `mv`, mas ainda pergunta antes de executar outros comandos de terminal. Use isso quando você confia em alterações de arquivo e quer iteração mais rápida. |

102| **Plan** | `plan` | Claude lê arquivos e executa comandos para explorar, depois propõe um plano sem editar seu código-fonte. Bom para tarefas complexas onde você quer revisar a abordagem primeiro. |102| **Plan** | `plan` | Claude lê arquivos e executa comandos para explorar, depois propõe um plano sem editar seu código-fonte. Bom para tarefas complexas onde você quer revisar a abordagem primeiro. |

103| **Auto** | `auto` | Claude executa sem prompts de rotina; antes de ações como comandos shell e requisições de rede serem executadas, um classificador em segundo plano verifica se elas se alinham com sua solicitação. Aparece quando [o modo auto está disponível](#auto-mode-availability); não há toggle de Configurações separado para isso. |103| **Auto** | `auto` | Claude executa sem prompts de rotina; antes de ações como comandos shell e requisições de rede serem executadas, um classificador em segundo plano verifica se elas se alinham com sua solicitação. Aparece quando [o modo auto está disponível](#auto-mode-availability); não há toggle de Configurações separado para isso. |

104| **Bypass permissions** | `bypassPermissions` | Claude é executado sem prompts de permissão, exceto para as [ações que nenhum modo aprova automaticamente](/docs/pt/permission-modes#actions-no-mode-auto-approves), classificadores de segurança quando Claude [atua em sites externos](#browse-external-sites), ou ações de desktop onde Claude sempre pergunta primeiro, como [arquivar uma sessão](#work-across-sessions). Equivalente a `--dangerously-skip-permissions` no CLI. Em planos Pro e Max, ative em suas Configurações → Claude Code em "Allow bypass permissions mode"; em planos Team e Enterprise não há toggle de Configurações, e a política organizacional controla isso. Use apenas em containers ou VMs sandboxed. |104| **Bypass permissions** | `bypassPermissions` | Claude é executado sem prompts de permissão, exceto para as [ações que nenhum modo aprova automaticamente](/docs/pt/permission-modes#actions-no-mode-auto-approves), classificadores de segurança quando Claude [atua em sites externos](#browse-external-sites), ou ações de desktop como excluir uma sessão, embora não [arquivar uma](#work-across-sessions). Equivalente a `--dangerously-skip-permissions` no CLI. Em planos Pro e Max, ative em suas Configurações → Claude Code em "Allow bypass permissions mode"; em planos Team e Enterprise não há toggle de Configurações, e a política organizacional controla isso. Use apenas em containers ou VMs sandboxed. |

105 105 

106Versões anteriores da aba Code rotulavam esses modos como Ask permissions, Auto accept edits e Plan mode.106Versões anteriores da aba Code rotulavam esses modos como Ask permissions, Auto accept edits e Plan mode.

107 107 


131 131 

132O painel de navegador também pode abrir arquivos HTML estáticos, PDFs, imagens e vídeos do seu projeto. Clique em um caminho HTML, PDF, imagem ou vídeo no chat para abri-lo lá.132O painel de navegador também pode abrir arquivos HTML estáticos, PDFs, imagens e vídeos do seu projeto. Clique em um caminho HTML, PDF, imagem ou vídeo no chat para abri-lo lá.

133 133 

134<Note>

135 Em uma [sessão SSH](#ssh-sessions), Claude não consegue abrir seu aplicativo no painel de navegador, porque não tem as ferramentas do painel lá. Para ver o aplicativo você mesmo, [encaminhe a porta dele para o seu computador](#reach-a-port-on-the-remote-machine).

136</Note>

137 

134No painel de navegador, você pode:138No painel de navegador, você pode:

135 139 

136* Interagir com seu aplicativo em execução diretamente no painel de navegador140* Interagir com seu aplicativo em execução diretamente no painel de navegador


218 222 

219<Note>223<Note>

220 O monitoramento de PR requer que o [GitHub CLI (`gh`)](https://cli.github.com/) esteja instalado e autenticado em sua máquina. Se `gh` não estiver instalado, Desktop o solicita a instalar na primeira vez que você tentar criar um PR.224 O monitoramento de PR requer que o [GitHub CLI (`gh`)](https://cli.github.com/) esteja instalado e autenticado em sua máquina. Se `gh` não estiver instalado, Desktop o solicita a instalar na primeira vez que você tentar criar um PR.

225 

226 Em uma [sessão SSH](#ssh-sessions), configure `git` e `gh` na máquina remota antes de clicar em **Create PR**, porque Claude faz push do branch e executa `gh pr create` lá. Instale `gh` lá você mesmo, porque o Desktop não solicita a instalação em uma sessão SSH. Em seguida, verifique lá se `git push` funciona e se `gh auth status` informa que você está conectado.

221</Note>227</Note>

222 228 

223<h2 id="arrange-your-workspace">229<h2 id="arrange-your-workspace">


453 459 

454Claude Code aplica quatro comportamentos de segurança entre sessões:460Claude Code aplica quatro comportamentos de segurança entre sessões:

455 461 

456* Antes de arquivar qualquer sessão, Claude pede sua aprovação primeiro. Você vê o card de aprovação em todos os modos de permissão, incluindo permissões Auto e Bypass.462* Você recebe um card de aprovação antes de Claude arquivar uma sessão, exceto no modo auto e no modo Bypass permissions, nos quais Claude pode arquivar uma sessão sem ele. Para que a aprovação seja solicitada, mude para Manual.

457* Através desta superfície, Claude não pode enviar mensagens entre sessões de uma sessão que ninguém está observando, como uma execução de tarefa agendada, e não pode entregar mensagens em uma.463* Através desta superfície, Claude não pode enviar mensagens entre sessões de uma sessão que ninguém está observando, como uma execução de tarefa agendada, e não pode entregar mensagens em uma.

458* Claude Code verifica cada mensagem desta superfície contra os [controles de entrada](/docs/pt/cross-session-messaging#control-inbound-messages) da sessão receptora, mesmo quando a sessão receptora não tem [mensagens entre sessões](/docs/pt/cross-session-messaging#availability) por si mesma. Se você definir [`crossSessionInbound`](/docs/pt/settings-reference#crosssessioninbound) para `refuse` na sessão receptora, Claude Code descarta mensagens desta superfície. Claude Code relata a recusa ao aplicativo desktop Claude. Antes da v2.1.234, Claude Code descartava todas as mensagens desta superfície para uma sessão receptora sem mensagens entre sessões.464* Claude Code verifica cada mensagem desta superfície contra os [controles de entrada](/docs/pt/cross-session-messaging#control-inbound-messages) da sessão receptora, mesmo quando a sessão receptora não tem [mensagens entre sessões](/docs/pt/cross-session-messaging#availability) por si mesma. Se você definir [`crossSessionInbound`](/docs/pt/settings-reference#crosssessioninbound) para `refuse` na sessão receptora, Claude Code descarta mensagens desta superfície. Claude Code relata a recusa ao aplicativo desktop Claude. Antes da v2.1.234, Claude Code descartava todas as mensagens desta superfície para uma sessão receptora sem mensagens entre sessões.

459* Claude Code cita cada mensagem de entrada e a atribui à sessão que a enviou, e Claude ainda segue as configurações de permissão próprias da sessão receptora ao agir em uma.465* Claude Code cita cada mensagem de entrada e a atribui à sessão que a enviou, e Claude ainda segue as configurações de permissão próprias da sessão receptora ao agir em uma.


546 552 

547[Skills](/docs/pt/skills) estendem o que Claude pode fazer. Claude as carrega automaticamente quando relevante, ou você pode invocar uma diretamente: digite `/` na caixa de prompt ou clique no botão **+** e selecione **Slash commands** para navegar pelo que está disponível. Isso inclui [comandos integrados](/docs/pt/commands), suas [skills personalizadas](/docs/pt/skills#create-your-first-skill), skills de projeto de sua base de código e skills de qualquer [plugins instalados](/docs/pt/plugins/install). Selecione uma e ela aparece destacada no campo de entrada. Digite sua tarefa depois dela e envie como usual.553[Skills](/docs/pt/skills) estendem o que Claude pode fazer. Claude as carrega automaticamente quando relevante, ou você pode invocar uma diretamente: digite `/` na caixa de prompt ou clique no botão **+** e selecione **Slash commands** para navegar pelo que está disponível. Isso inclui [comandos integrados](/docs/pt/commands), suas [skills personalizadas](/docs/pt/skills#create-your-first-skill), skills de projeto de sua base de código e skills de qualquer [plugins instalados](/docs/pt/plugins/install). Selecione uma e ela aparece destacada no campo de entrada. Digite sua tarefa depois dela e envie como usual.

548 554 

549Você pode enviar um comando enquanto Claude está trabalhando, da mesma forma que qualquer outra mensagem, e a sessão retorna ao estado ocioso uma vez que a rodada termina. Antes da v2.1.206, um comando enviado no meio da rodada poderia deixar a sessão mostrando como em execução e as mensagens que você enviou depois não eram entregues.555Você pode enviar um comando enquanto Claude está trabalhando, da mesma forma que qualquer outra mensagem, e a sessão retorna ao estado ocioso assim que o turno termina.

550 556 

551Sessões locais carregam seus skills pessoais de `~/.claude/skills/`. Uma sessão [SSH](#ssh-sessions) lê `~/.claude/skills/` do diretório home do host remoto, não de sua máquina.557Sessões locais carregam seus skills pessoais de `~/.claude/skills/`. Uma sessão [SSH](#ssh-sessions) lê `~/.claude/skills/` do diretório home do host remoto, não de sua máquina.

552 558 


693 699 

694* **`true`**: Claude encontra e usa uma porta livre automaticamente. Adequado para a maioria dos servidores de desenvolvimento.700* **`true`**: Claude encontra e usa uma porta livre automaticamente. Adequado para a maioria dos servidores de desenvolvimento.

695* **`false`**: Claude falha com um erro. Use isso quando seu servidor deve usar uma porta específica, como para callbacks OAuth ou allowlists CORS.701* **`false`**: Claude falha com um erro. Use isso quando seu servidor deve usar uma porta específica, como para callbacks OAuth ou allowlists CORS.

696* **Não definido (padrão)**: Claude pergunta se o servidor precisa dessa porta exata, depois salva sua resposta.702* **Não definido (padrão)**: seu servidor recebe a próxima porta livre, como com `true`, exceto no único caso abaixo. Antes do Claude Desktop v2.37337.0, Claude pergunta se o servidor precisa dessa porta exata, depois salva sua resposta em `launch.json`.

697 703 

698Quando Claude escolhe uma porta diferente, ele passa a porta atribuída ao seu servidor via a variável de ambiente `PORT`.704Se sua porta preferida estiver em uso e `autoPort` não estiver definido, seu servidor permanece parado quando todas estas condições forem verdadeiras:

705 

706* Você inicia o servidor através de um script `npm`, `yarn`, `pnpm` ou `bun`.

707* Sua porta preferida está fixada no código desse script, ou Claude não consegue inspecionar o script.

708* Você não passa a porta em `runtimeArgs`.

709 

710Nesse caso, libere a porta, remova o valor fixo ou altere `port` para corresponder ao script. Definir `"autoPort": true` em vez disso funciona apenas para um script que lê `PORT`.

711 

712Faça seu servidor ler sua porta da variável de ambiente `PORT`, que contém a porta atribuída. Quando Claude move seu servidor para uma porta diferente, ele também reescreve um valor `--port` ou `-p` em `runtimeArgs` para corresponder.

699 713 

700<h4 id="examples">714<h4 id="examples">

701 Examples715 Examples


785 Local sessions799 Local sessions

786</h3>800</h3>

787 801 

788O aplicativo desktop nem sempre herda seu ambiente de shell completo. No macOS, quando você inicia o aplicativo do Dock ou Finder, ele lê seu perfil de shell, como `~/.zshrc` ou `~/.bashrc`, para extrair `PATH` e um conjunto fixo de variáveis Claude Code, mas outras variáveis que você exporta lá não são capturadas. No Windows, o aplicativo herda variáveis de ambiente de usuário e sistema mas não lê perfis PowerShell.802O aplicativo desktop nem sempre herda seu ambiente de shell completo. No macOS, quando você inicia o aplicativo do Dock ou Finder, ele lê seu perfil de shell, como `~/.zshrc` ou `~/.bashrc`, para fornecer ao Claude Code o `PATH` e um conjunto fixo de variáveis do Claude Code, mas não outras variáveis que você exporta lá. No Windows, o aplicativo herda variáveis de ambiente de usuário e sistema mas não lê perfis PowerShell.

789 803 

790Para definir variáveis de ambiente para sessões locais e servidores de desenvolvimento em qualquer plataforma, abra o menu suspenso de ambiente na caixa de prompt, passe o mouse sobre **Local** e clique no ícone de engrenagem para abrir o editor de ambiente local. Variáveis que você salva aqui são armazenadas criptografadas em sua máquina e se aplicam a cada sessão local e servidor de visualização que você inicia. Você também pode adicionar variáveis à chave `env` em seu arquivo `~/.claude/settings.json`, embora essas alcancem apenas sessões Claude e não servidores de desenvolvimento. Veja [variáveis de ambiente](/docs/pt/env-vars) para a lista completa de variáveis suportadas.804Para definir variáveis de ambiente para sessões locais e servidores de desenvolvimento em qualquer plataforma, abra o menu suspenso de ambiente na caixa de prompt, passe o mouse sobre **Local** e clique no ícone de engrenagem para abrir o editor de ambiente local. Variáveis que você salva aqui são armazenadas criptografadas em sua máquina e se aplicam a cada sessão local e servidor de visualização que você inicia. Você também pode adicionar variáveis à chave `env` em seu arquivo `~/.claude/settings.json`, embora essas alcancem apenas sessões Claude e não servidores de desenvolvimento. Veja [variáveis de ambiente](/docs/pt/env-vars) para a lista completa de variáveis suportadas.

791 805 


813Veja [Configure cloud environments](/docs/pt/cloud-environments) para detalhes sobre configuração de acesso de rede e variáveis de ambiente.827Veja [Configure cloud environments](/docs/pt/cloud-environments) para detalhes sobre configuração de acesso de rede e variáveis de ambiente.

814 828 

815<h3 id="ssh-sessions">829<h3 id="ssh-sessions">

816 SSH sessions830 Sessões SSH

817</h3>831</h3>

818 832 

819Sessões SSH permitem que você execute Claude Code em uma máquina remota enquanto usa o aplicativo desktop como sua interface. Isso é útil para trabalhar com bases de código que vivem em VMs em nuvem, dev containers ou servidores com hardware ou dependências específicas.833Sessões SSH permitem que você execute Claude Code em uma máquina remota enquanto usa o aplicativo desktop como sua interface. Isso é útil para trabalhar com bases de código que vivem em VMs em nuvem, dev containers ou servidores com hardware ou dependências específicas.


840 854 

841Uma máquina remota Linux ou macOS precisa de um processador compatível, um servidor SSH com SFTP, uma pasta de instalação que não esteja montada com `noexec`, um shell funcional e acesso à rede. Verifique cada requisito antes de se conectar, ou quando uma conexão falhar depois que você fizer login:855Uma máquina remota Linux ou macOS precisa de um processador compatível, um servidor SSH com SFTP, uma pasta de instalação que não esteja montada com `noexec`, um shell funcional e acesso à rede. Verifique cada requisito antes de se conectar, ou quando uma conexão falhar depois que você fizer login:

842 856 

843* **Sistema**: um processador x86\_64 ou arm64. A máquina também precisa atender aos [requisitos de sistema](/docs/pt/setup#system-requirements) do Claude Code.857* **Sistema**: um processador x86\_64 ou arm64. A máquina também precisa atender aos [requisitos de sistema](/docs/pt/setup#system-requirements) do Claude Code. No Linux, o Claude Code precisa de glibc 2.17 ou posterior, ou de musl. Para ver qual deles a máquina tem, execute `ldd --version` nela. Em uma distribuição baseada em musl, como Alpine Linux, instale também os [pacotes de que o Claude Code precisa](/docs/pt/setup#alpine-linux-and-musl-based-distributions).

844* **SFTP**: o servidor SSH precisa oferecer o subsistema SFTP, que uma linha `Subsystem sftp` em seu `sshd_config` ativa. Para verificar, conecte-se ao mesmo host e porta com `sftp` em um terminal no seu computador. Um servidor funcional mostra o prompt `sftp>`.858* **SFTP**: o servidor SSH precisa oferecer o subsistema SFTP, que uma linha `Subsystem sftp` em seu `sshd_config` ativa. Para verificar, conecte-se ao mesmo host e porta com `sftp` em um terminal no seu computador. Um servidor funcional mostra o prompt `sftp>`.

845* **Sessões por conexão**: o Desktop no macOS e no Linux abre várias sessões em uma única conexão SSH. Se o `sshd_config` do servidor definir `MaxSessions 1`, aumente o valor, por exemplo para o padrão do OpenSSH, que é 10.859* **Sessões por conexão**: o Desktop no macOS e no Linux abre várias sessões em uma única conexão SSH. Se o `sshd_config` do servidor definir `MaxSessions 1`, aumente o valor, por exemplo para o padrão do OpenSSH, que é 10.

846* **Pasta de instalação**: o Desktop instala um programa auxiliar e o Claude Code em `~/.claude/remote/` no seu diretório pessoal. Ele os executa a partir dali, então essa pasta não pode estar em um sistema de arquivos montado com `noexec`. Reserve cerca de 1 GB de espaço em disco no diretório pessoal de cada usuário que se conecta.860* **Pasta de instalação**: o Desktop instala um programa auxiliar e o Claude Code em `~/.claude/remote/` no seu diretório pessoal. Ele os executa a partir dali, então essa pasta não pode estar em um sistema de arquivos montado com `noexec`. Reserve cerca de 1 GB de espaço em disco no diretório pessoal de cada usuário que se conecta. Para saber o que essa pasta contém, veja [Arquivos e processos na máquina remota](#files-and-processes-on-the-remote-machine).

847* **Shell**: o shell definido para sua conta na máquina remota precisa executar comandos enviados via SSH, como Bash, Zsh e `sh` fazem861* **Shell**: o shell definido para sua conta na máquina remota precisa executar comandos enviados via SSH, como Bash, Zsh e `sh` fazem

848* **Rede**: o Claude Code é executado na máquina remota e faz suas requisições de rede a partir dela, então a máquina precisa do [acesso à rede que o Claude Code requer](/docs/pt/network-config#network-access-requirements). Se a máquina não conseguir baixar o Claude Code, o Desktop o baixa no seu computador e o envia. As outras requisições do Claude Code continuam saindo da máquina remota.862* **Rede**: o Claude Code é executado na máquina remota e faz suas requisições de rede a partir dela, então a máquina precisa do [acesso à rede que o Claude Code requer](/docs/pt/network-config#network-access-requirements). Se a máquina não conseguir baixar o Claude Code, o Desktop o baixa no seu computador e o envia. As outras requisições do Claude Code continuam saindo da máquina remota.

849 863 


878 892 

879Insira `devbox` no campo **SSH host**.893Insira `devbox` no campo **SSH host**.

880 894 

895<h5 id="use-variables-from-your-shell-in-a-proxycommand">

896 Usar variáveis do seu shell em um `ProxyCommand`

897</h5>

898 

899Para usar uma variável de ambiente própria em um comando `ProxyCommand` ou `Match exec`, exporte-a em um arquivo de inicialização do shell, como `~/.zshrc`, depois feche e reabra o Desktop. Quando o Desktop é iniciado, ele lê o que seu shell de login exporta e mantém esses valores até você fechá-lo.

900 

901Isso requer Claude Desktop v2.37337.0 ou posterior e um comando `env` que aceite `-0`, o que você pode verificar executando `env -0` em um terminal no seu computador.

902 

881<h5 id="raise-the-ssh-connection-timeout">903<h5 id="raise-the-ssh-connection-timeout">

882 Aumentar o timeout de conexão SSH904 Aumentar o timeout de conexão SSH

883</h5>905</h5>


894 916 

895O `ssh` usa o primeiro valor que encontra para um host, então mantenha a entrada acima de qualquer entrada `Host *` que defina `ConnectTimeout`. Para confirmar, execute `ssh -G devbox` em um terminal no seu computador. A saída inclui `connecttimeout 120`. Depois de alterar o valor, feche e reabra o Desktop.917O `ssh` usa o primeiro valor que encontra para um host, então mantenha a entrada acima de qualquer entrada `Host *` que defina `ConnectTimeout`. Para confirmar, execute `ssh -G devbox` em um terminal no seu computador. A saída inclui `connecttimeout 120`. Depois de alterar o valor, feche e reabra o Desktop.

896 918 

919<h5 id="forwarding-settings-that-desktop-leaves-off">

920 Configurações de encaminhamento que o Desktop deixa desativadas

921</h5>

922 

923Na conexão com a máquina remota, o Desktop deixa `ForwardAgent`, `ForwardX11`, `LocalForward`, `RemoteForward`, `DynamicForward` e `Tunnel` desativados, mesmo quando sua configuração SSH os ativa. No [terminal](#run-commands-in-the-terminal) ou em um comando `!`, espere que suas configurações de encaminhamento se apliquem [apenas às vezes](#limits-while-desktop-is-disconnected), porque o Desktop pode iniciar ali um `ssh` separado que as segue.

924 

925* **Para acessar uma porta na máquina remota**: [encaminhe-a você mesmo](#reach-a-port-on-the-remote-machine)

926* **Para usar suas próprias chaves a partir da máquina remota**: configure uma credencial na própria máquina remota, por exemplo para `git push`

927 

928Para impedir que o Desktop encaminhe seu agente SSH ou uma porta, execute `ssh -G devbox` em um terminal no seu computador. Depois execute-o novamente como o Desktop pode executá-lo, com os valores de `hostname` e `user` que ele imprime, como em `ssh -G -o HostName=devbox.internal.example.com -l alice devbox`. A segunda saída pode mostrar configurações de um bloco `Match` que a primeira ignora.

929 

930Procure em ambas as saídas uma linha `forwardagent` que diga qualquer coisa diferente de `no`, e linhas que comecem com `localforward`, `remoteforward` ou `dynamicforward`. Se encontrar uma, remova essa opção de configuração da sua configuração SSH. Faça o mesmo para um host que seu `ProxyCommand` acessa com `ssh`.

931 

932<h4 id="reach-a-port-on-the-remote-machine">

933 Acessar uma porta na máquina remota

934</h4>

935 

936Para abrir um servidor executado na máquina remota, como um servidor de desenvolvimento na porta 3000, encaminhe a porta você mesmo. Em um terminal no seu computador, execute `ssh` com `-L` e o host ao qual você se conecta, como `devbox`:

937 

938```bash theme={null}

939ssh -N -L 3000:localhost:3000 devbox

940```

941 

942Se você preencheu **SSH port** ou **SSH key (optional)** na conexão, adicione `-p` ou `-i` com o mesmo valor. Deixe esse comando em execução e abra `http://localhost:3000` em um navegador no seu computador para acessar a porta 3000 da máquina remota. Se o `ssh` imprimir `open failed: administratively prohibited`, peça ao administrador da máquina que permita o encaminhamento TCP, que é controlado por `AllowTcpForwarding` no `sshd_config` do servidor SSH.

943 

897<h4 id="windows-remote-machines">944<h4 id="windows-remote-machines">

898 Máquinas remotas Windows945 Máquinas remotas Windows

899</h4>946</h4>


925O Claude Code é executado como um processo na máquina remota, sob um programa auxiliar em segundo plano que o Desktop instala ali, então ele não precisa da sua conexão SSH para continuar em execução. O comportamento desta seção requer Claude Desktop v2.31226.0 ou posterior.972O Claude Code é executado como um processo na máquina remota, sob um programa auxiliar em segundo plano que o Desktop instala ali, então ele não precisa da sua conexão SSH para continuar em execução. O comportamento desta seção requer Claude Desktop v2.31226.0 ou posterior.

926 973 

927<Warning>974<Warning>

928 Se você fizer login no Desktop com uma conta Claude, não conte com uma tarefa sendo executada durante a noite. O Desktop renova esse login para a tarefa apenas enquanto o Desktop está em execução e conectado, então o login da tarefa pode expirar depois que você se desconecta, e a tarefa então para. O tempo restante quando você se desconecta varia.975 Se você fizer login no Desktop com uma conta Claude, não conte com uma tarefa sendo executada durante a noite. O Desktop renova esse login para a tarefa apenas enquanto o Desktop está em execução e conectado, então o login da tarefa pode expirar depois que você se desconecta, e a tarefa então para. O tempo restante quando você se desconecta varia, e pode ser de apenas alguns minutos.

929 976 

930 O trabalho feito até então permanece na máquina remota, e você pode continuar com uma mensagem quando voltar.977 O trabalho feito até então permanece na máquina remota, e você pode continuar com uma mensagem quando voltar.

931 978 


1076 1123 

1077O campo requer Claude Desktop v1.44121.0 ou posterior. Se sua organização restringe quais pastas as sessões podem usar, o Desktop oculta o campo e mantém os worktrees dentro do projeto.1124O campo requer Claude Desktop v1.44121.0 ou posterior. Se sua organização restringe quais pastas as sessões podem usar, o Desktop oculta o campo e mantém os worktrees dentro do projeto.

1078 1125 

1126<h4 id="files-and-processes-on-the-remote-machine">

1127 Arquivos e processos na máquina remota

1128</h4>

1129 

1130O Desktop instala um programa auxiliar e o Claude Code em `~/.claude/remote/` no diretório pessoal de cada usuário que se conecta a uma máquina remota Linux ou macOS. O programa auxiliar não escuta em nenhuma porta de rede, mas o Claude Code e os programas que ele inicia, como servidores MCP e servidores de desenvolvimento, podem escutar.

1131 

1132| Pasta | Conteúdo |

1133| - | - |

1134| `~/.claude/remote/srv/` | O programa auxiliar, em uma pasta por versão |

1135| `~/.claude/remote/ccd-cli/` | O Claude Code, em um arquivo por versão |

1136| `~/.claude/remote/run/` | Os arquivos de tempo de execução do programa auxiliar, como seu socket e seu log, em uma pasta por computador que se conecta |

1137| `~/.claude/remote/plugins/` | Plugins que o Desktop copia do computador do usuário |

1138| [`~/.claude/uploads/`](/docs/pt/claude-directory#clear-local-data) | Arquivos que o usuário anexa às mensagens, em uma pasta por sessão |

1139 

1140Para listar os processos de um usuário, execute `pgrep -fl "$HOME/.claude/remote/"` na máquina remota como esse usuário, ou com o diretório pessoal do usuário no lugar de `$HOME`:

1141 

1142* **Programa auxiliar**: um ou mais processos `server` para cada computador que se conecta

1143* **Claude Code**: os processos que o programa auxiliar inicia para as sessões do usuário, cada um a partir de um arquivo com o nome de sua versão, como `2.1.295-…`

1144 

1145O Desktop acessa o programa auxiliar por meio da conexão SSH do usuário, pelo socket Unix `rpc.sock` na pasta do programa auxiliar em `~/.claude/remote/run/`. Exceto o root, outros usuários da máquina não conseguem se conectar a esse socket, porque ele tem modo 600 e sua pasta tem modo 700.

1146 

1147Para saber quando o programa auxiliar para sozinho, veja [Limites enquanto o Desktop está desconectado](#limits-while-desktop-is-disconnected).

1148 

1149Para remover o programa auxiliar e o Claude Code de um usuário:

1150 

1151<Steps>

1152 <Step title="Fechar o Desktop">

1153 Feche o Desktop em cada computador a partir do qual o usuário se conecta. Ele instala os dois programas novamente na próxima vez que se conectar, e pode se reconectar sozinho.

1154 </Step>

1155 

1156 <Step title="Encerrar os processos">

1157 Com login como esse usuário na máquina remota, execute `kill` com cada ID de processo que o [`pgrep`](#files-and-processes-on-the-remote-machine) listar.

1158 </Step>

1159 

1160 <Step title="Excluir a pasta">

1161 Exclua `~/.claude/remote/`. Para remover os próprios arquivos do Claude Code em `~/.claude/` e `~/.claude.json`, veja [Remover arquivos de configuração](/docs/pt/setup#remove-configuration-files).

1162 </Step>

1163</Steps>

1164 

1165<h5 id="end-one-session’s-process">

1166 Encerrar o processo de uma sessão

1167</h5>

1168 

1169Para encerrar o processo do Claude Code de uma sessão, [arquive a sessão](#work-in-parallel-with-sessions) no Desktop enquanto o Desktop está conectado à máquina remota. O processo continua em execução depois que a tarefa dele termina e depois que você fecha o Desktop.

1170 

1171Antes de arquivar uma sessão que tem um worktree, veja [Trabalhar em paralelo com sessões](#work-in-parallel-with-sessions).

1172 

1173<h5 id="see-who-connected-to-the-remote-machine">

1174 Ver quem se conectou à máquina remota

1175</h5>

1176 

1177Para descobrir quem se conectou a uma máquina remota, leia o log do servidor SSH nessa máquina, onde um login a partir do Desktop parece um login a partir de um terminal. Com o Desktop no macOS ou Linux, espere uma entrada a cada vez que o Desktop se conecta, não uma para cada sessão.

1178 

1179<h4 id="use-mcp-servers-set-up-on-the-remote-machine">

1180 Usar servidores MCP configurados na máquina remota

1181</h4>

1182 

1183Para usar um [servidor MCP](/docs/pt/mcp) de `~/.claude.json` ou do `.mcp.json` de um projeto em uma sessão SSH, configure-o nesses arquivos na máquina remota. O Claude Code inicia os servidores stdio deles ali, então instale na máquina remota os comandos que esses servidores executam. Para servidores de `claude_desktop_config.json`, veja [Limites enquanto o Desktop está desconectado](#limits-while-desktop-is-disconnected).

1184 

1079<h4 id="open-an-ssh-session-from-a-link">1185<h4 id="open-an-ssh-session-from-a-link">

1080 Abrir uma sessão SSH a partir de um link1186 Abrir uma sessão SSH a partir de um link

1081</h4>1187</h4>


1207* **Cowork**: nenhuma das chaves se aplica a sessões do [Cowork](https://claude.com/docs/cowork/overview) ou a tarefas agendadas do Cowork1313* **Cowork**: nenhuma das chaves se aplica a sessões do [Cowork](https://claude.com/docs/cowork/overview) ou a tarefas agendadas do Cowork

1208* **Sessões na nuvem**: nenhuma das chaves altera se as [sessões na nuvem](#cloud-sessions) estão disponíveis. Para desativá-las, use a configuração **Cloud sessions** em [Admin console controls](#admin-console-controls).1314* **Sessões na nuvem**: nenhuma das chaves altera se as [sessões na nuvem](#cloud-sessions) estão disponíveis. Para desativá-las, use a configuração **Cloud sessions** em [Admin console controls](#admin-console-controls).

1209 1315 

1210Ao adaptar o exemplo, verifique os nomes de host e a versão do Desktop:1316Ao adaptar o exemplo, verifique os nomes de host, a versão do Desktop e as permissões do arquivo:

1211 1317 

1212* **Nomes de host**: certifique-se de que um padrão em `sshHostAllowlist` corresponda ao nome de host de cada entrada de `sshConfigs`, sem `user@`, ou os desenvolvedores não conseguirão se conectar a ela. Para saber como o Desktop faz a correspondência de um nome de host, veja [Restrict which SSH hosts users can connect to](#restrict-which-ssh-hosts-users-can-connect-to).1318* **Nomes de host**: certifique-se de que um padrão em `sshHostAllowlist` corresponda ao nome de host de cada entrada de `sshConfigs`, sem `user@`, ou os desenvolvedores não conseguirão se conectar a ela. Para saber como o Desktop faz a correspondência de um nome de host, veja [Restrict which SSH hosts users can connect to](#restrict-which-ssh-hosts-users-can-connect-to).

1213* **Versão**: `disableDesktopLocalSessions` requer Claude Desktop v1.37937.0 ou posterior1319* **Versão**: `disableDesktopLocalSessions` requer Claude Desktop v1.37937.0 ou posterior

1320* **Permissões do arquivo**: certifique-se de que a conta de cada desenvolvedor no computador consiga ler o arquivo de configurações gerenciadas. O Desktop não aplica as chaves de um arquivo que a conta não consegue ler, e o Claude Code também [é iniciado sem elas](/docs/pt/managed-settings#find-entries-claude-code-dropped).

1214 1321 

1215Coloque as três chaves em uma única [fonte gerenciada](/docs/pt/managed-settings#how-claude-code-combines-managed-sources), a de maior prioridade que você fornece. Se você fornece [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings), mantenha também uma cópia das três chaves na política MDM ou no arquivo de configurações gerenciadas de maior prioridade em cada computador. O Desktop busca as configurações gerenciadas pelo servidor na inicialização, e a cópia no computador se aplica até que uma busca seja bem-sucedida.1322Coloque as três chaves em uma única [fonte gerenciada](/docs/pt/managed-settings#how-claude-code-combines-managed-sources), a de maior prioridade que você fornece. Se você fornece [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings), mantenha também uma cópia das três chaves na política MDM ou no arquivo de configurações gerenciadas de maior prioridade em cada computador. O Desktop busca as configurações gerenciadas pelo servidor na inicialização, e a cópia no computador se aplica até que uma busca seja bem-sucedida.

1216 1323 


1558 1665 

1559Se toggles de MCP server não respondem ou servidores falham em conectar no Windows, verifique se o servidor está adequadamente configurado em suas configurações, reinicie o aplicativo, verifique se o processo do servidor está em execução no Task Manager e revise logs do servidor para erros de conexão.1666Se toggles de MCP server não respondem ou servidores falham em conectar no Windows, verifique se o servidor está adequadamente configurado em suas configurações, reinicie o aplicativo, verifique se o processo do servidor está em execução no Task Manager e revise logs do servidor para erros de conexão.

1560 1667 

1668<h3 id="ssh-connection-fails-after-you-log-in">

1669 A conexão SSH falha depois que você faz login

1670</h3>

1671 

1672Encontre o título do cartão, ou o código que encerra a mensagem de erro, nesta tabela e, em seguida, faça o que a última coluna indica. Para ver a mensagem, selecione **View details** no cartão de falha.

1673 

1674| Título no cartão | Código | O que fazer |

1675| - | - | - |

1676| `<host>'s SSH server has SFTP turned off` | `[SFTP_UNAVAILABLE]` | Ative o SFTP no `sshd_config` do servidor, conforme descrito em [requisitos da máquina remota](#remote-machine-requirements-for-ssh-sessions) |

1677| `SFTP doesn't start on <host>` | `[SFTP_NOT_STARTED]` | Conecte-se ao mesmo host com `sftp` em um terminal no seu computador para ver o que o impede e, em seguida, verifique as configurações e os arquivos que a mensagem do Desktop menciona |

1678| `<host> allows too few SSH sessions per connection` | `[SESSION_LIMIT]` | Aumente `MaxSessions` no `sshd_config` do servidor, por exemplo para o padrão do OpenSSH, que é 10 |

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

1680| `This computer is out of disk space` | `[ENOSPC]` ou `[EDQUOT]`, em uma mensagem que começa com `Couldn't prepare the deploy locally` | Libere espaço no seu computador |

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

1682 

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

1684 

1561<h3 id="app-won’t-quit">1685<h3 id="app-won’t-quit">

1562 Aplicativo não quer sair1686 Aplicativo não quer sair

1563</h3>1687</h3>

env-vars.md +10 −4

Details

268| `CLAUDE_CODE_DISABLE_FAST_MODE` | Defina como `1` para desativar o [modo rápido](/docs/pt/fast-mode) |268| `CLAUDE_CODE_DISABLE_FAST_MODE` | Defina como `1` para desativar o [modo rápido](/docs/pt/fast-mode) |

269| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Defina como `1` para desativar as pesquisas de qualidade de sessão "How is Claude doing?". As pesquisas também ficam desativadas quando `DISABLE_TELEMETRY`, `DO_NOT_TRACK` ou `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` está definida, a menos que `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` as reative. Para definir uma taxa de amostragem em vez de desativar completamente, use a configuração [`feedbackSurveyRate`](/docs/pt/settings-reference#feedbacksurveyrate). Consulte [Pesquisas de qualidade de sessão](/docs/pt/data-usage#session-quality-surveys) |269| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Defina como `1` para desativar as pesquisas de qualidade de sessão "How is Claude doing?". As pesquisas também ficam desativadas quando `DISABLE_TELEMETRY`, `DO_NOT_TRACK` ou `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` está definida, a menos que `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` as reative. Para definir uma taxa de amostragem em vez de desativar completamente, use a configuração [`feedbackSurveyRate`](/docs/pt/settings-reference#feedbacksurveyrate). Consulte [Pesquisas de qualidade de sessão](/docs/pt/data-usage#session-quality-surveys) |

270| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Defina como `1` para desativar o [checkpointing](/docs/pt/checkpointing) de arquivos. O comando `/rewind` não poderá restaurar alterações de código. Sobrescreve a configuração [`fileCheckpointingEnabled`](/docs/pt/settings-reference#filecheckpointingenabled) |270| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Defina como `1` para desativar o [checkpointing](/docs/pt/checkpointing) de arquivos. O comando `/rewind` não poderá restaurar alterações de código. Sobrescreve a configuração [`fileCheckpointingEnabled`](/docs/pt/settings-reference#filecheckpointingenabled) |

271| `CLAUDE_CODE_DISABLE_FILE_MENTIONS` | Defina como `1` para impedir que o Claude Code expanda [menções com `@`](/docs/pt/common-workflows#reference-files-and-directories) de arquivos e diretórios. Em vez disso, o Claude recebe os caminhos mencionados com uma observação para lê-los usando suas ferramentas de arquivo. Ignorada em [configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env). Requer Claude Code v2.1.299 ou posterior |

271| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Defina como `1` para remover do contexto do Claude as instruções integradas de fluxo de trabalho de commit e PR e o snapshot do git status. Útil ao usar suas próprias skills de fluxo de trabalho do git. Tem precedência sobre a configuração [`includeGitInstructions`](/docs/pt/settings-reference#includegitinstructions) quando definida |272| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Defina como `1` para remover do contexto do Claude as instruções integradas de fluxo de trabalho de commit e PR e o snapshot do git status. Útil ao usar suas próprias skills de fluxo de trabalho do git. Tem precedência sobre a configuração [`includeGitInstructions`](/docs/pt/settings-reference#includegitinstructions) quando definida |

272| `CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT` | Defina como `1` para impedir que o Claude Code leia scripts passados a um shell com `-c`, como `bash -c 'rm -rf ~'`, em busca de remoções de [caminhos críticos](/docs/pt/permission-modes#removals-inside-nested-commands-and-inline-scripts). O Claude Code ainda verifica os destinos de variáveis de shell e parâmetros posicionais nesses scripts, e as outras verificações de caminhos críticos continuam sendo executadas. Defina-a no ambiente que inicia o Claude Code, pois o Claude Code ignora uma cópia entregue por meio de um bloco `env` de configurações. Requer o Claude Code v2.1.288 ou posterior |273| `CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT` | Defina como `1` para impedir que o Claude Code leia scripts passados a um shell com `-c`, como `bash -c 'rm -rf ~'`, em busca de remoções de [caminhos críticos](/docs/pt/permission-modes#removals-inside-nested-commands-and-inline-scripts). O Claude Code ainda verifica os destinos de variáveis de shell e parâmetros posicionais nesses scripts, e as outras verificações de caminhos críticos continuam sendo executadas. Defina-a no ambiente que inicia o Claude Code, pois o Claude Code ignora uma cópia entregue por meio de um bloco `env` de configurações. Requer o Claude Code v2.1.288 ou posterior |

273| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Defina como `1` para impedir o remapeamento automático do Opus 4 e do Opus 4.1 para a versão atual do Opus na API da Anthropic. Use quando quiser intencionalmente fixar um modelo mais antigo. O remapeamento não é executado no Amazon Bedrock, no Google Cloud's Agent Platform nem no Microsoft Foundry |274| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Defina como `1` para impedir o remapeamento automático do Opus 4 e do Opus 4.1 para a versão atual do Opus na API da Anthropic. Use quando quiser intencionalmente fixar um modelo mais antigo. O remapeamento não é executado no Amazon Bedrock, no Google Cloud's Agent Platform nem no Microsoft Foundry |


328| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Sobrescreve o endereço de host usado para se conectar à extensão do IDE. Por padrão, o Claude Code detecta automaticamente o endereço correto, incluindo o roteamento do WSL para o Windows |329| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Sobrescreve o endereço de host usado para se conectar à extensão do IDE. Por padrão, o Claude Code detecta automaticamente o endereço correto, incluindo o roteamento do WSL para o Windows |

329| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Defina como `1` para ignorar a instalação automática de extensões de IDE. Equivalente a definir [`autoInstallIdeExtension`](/docs/pt/settings-reference#autoinstallideextension) como `false` |330| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Defina como `1` para ignorar a instalação automática de extensões de IDE. Equivalente a definir [`autoInstallIdeExtension`](/docs/pt/settings-reference#autoinstallideextension) como `false` |

330| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Defina como `1` para ignorar a validação das entradas do lockfile do IDE durante a conexão. Use quando a conexão automática não encontrar o seu IDE mesmo com ele em execução |331| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Defina como `1` para ignorar a validação das entradas do lockfile do IDE durante a conexão. Use quando a conexão automática não encontrar o seu IDE mesmo com ele em execução |

332| `CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS` | Tamanho do contexto, em tokens, a partir do qual a [compactação por inatividade](/docs/pt/settings-reference#idlecompaction) se aplica a uma conversa (padrão: `200000`). Aceita um número inteiro positivo, e qualquer outra coisa é ignorada. Valores abaixo de `100000` são elevados para `100000`, o limite mais baixo. A compactação por inatividade fica ativada por padrão para conversas que atendem às suas condições. Para desativá-la, defina `idleCompaction` como `false`. Requer o Claude Code v2.1.290 ou posterior |

331| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Quantos [subagentes](/docs/pt/sub-agents#concurrent-subagent-limit) podem estar em execução em uma sessão antes que a ferramenta Agent se recuse a gerar outro (padrão: 20). Aceita um número inteiro positivo em dígitos simples; qualquer outro valor é ignorado, portanto a variável pode ajustar o limite, mas não desativá-lo. Requer o Claude Code v2.1.217 ou posterior |333| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Quantos [subagentes](/docs/pt/sub-agents#concurrent-subagent-limit) podem estar em execução em uma sessão antes que a ferramenta Agent se recuse a gerar outro (padrão: 20). Aceita um número inteiro positivo em dígitos simples; qualquer outro valor é ignorado, portanto a variável pode ajustar o limite, mas não desativá-lo. Requer o Claude Code v2.1.217 ou posterior |

332| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Sobrescreve o tamanho da janela de contexto que o Claude Code assume para o modelo ativo. A partir da v2.1.193, a forma como ela se aplica depende de como o Claude Code resolve o ID do modelo; consulte [Corrigir a janela para um gateway ou ID de modelo personalizado](/docs/pt/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Use quando rotear para um modelo por meio de `ANTHROPIC_BASE_URL` cuja janela de contexto não corresponde ao tamanho interno para o seu nome |334| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Sobrescreve o tamanho da janela de contexto que o Claude Code assume para o modelo ativo. A partir da v2.1.193, a forma como ela se aplica depende de como o Claude Code resolve o ID do modelo; consulte [Corrigir a janela para um gateway ou ID de modelo personalizado](/docs/pt/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Use quando rotear para um modelo por meio de `ANTHROPIC_BASE_URL` cuja janela de contexto não corresponde ao tamanho interno para o seu nome |

333| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Comprimento máximo, em caracteres, de cada descrição de ferramenta MCP e das instruções de cada servidor MCP que o Claude Code envia ao modelo (padrão: 2048). O Claude Code [trunca textos mais longos](/docs/pt/mcp#for-mcp-server-authors). Aceita um número inteiro positivo em dígitos simples. Qualquer outro valor é ignorado e o padrão se aplica. Requer o Claude Code v2.1.280 ou posterior |335| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Comprimento máximo, em caracteres, de cada descrição de ferramenta MCP e das instruções de cada servidor MCP que o Claude Code envia ao modelo. O valor que você define substitui ambos os [limites padrão](/docs/pt/mcp#for-mcp-server-authors): 4096, e 16384 para a descrição de uma ferramenta que o Claude carrega por meio da busca de ferramentas. O Claude Code trunca textos mais longos. Aceita um número inteiro positivo em dígitos simples. Qualquer outro valor é ignorado e os padrões se aplicam. Requer Claude Code v2.1.280 ou posterior |

334| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Define o número máximo de tokens de saída para a maioria das requisições. Os padrões e limites variam por modelo; consulte [máximo de tokens de saída](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). O Claude Code reduz um valor acima do limite de um modelo para o limite. Para um ID de modelo que o Claude Code não consegue resolver para um modelo conhecido, o padrão é 32000 e o limite é 128000. Aumentar este valor reduz a janela de contexto efetiva disponível antes que a [compactação automática](/docs/pt/costs#reduce-token-usage) seja acionada |336| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Define o número máximo de tokens de saída para a maioria das requisições. Os padrões e limites variam por modelo; consulte [máximo de tokens de saída](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). O Claude Code reduz um valor acima do limite de um modelo para o limite. Para um ID de modelo que o Claude Code não consegue resolver para um modelo conhecido, o padrão é 32000 e o limite é 128000. Aumentar este valor reduz a janela de contexto efetiva disponível antes que a [compactação automática](/docs/pt/costs#reduce-token-usage) seja acionada |

335| `CLAUDE_CODE_MAX_RETRIES` | Sobrescreve o número de vezes para tentar novamente requisições à API que falharam (padrão: 10). Limitado a 15 a partir da v2.1.186; a partir da v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` aumenta o padrão e remove o limite. Para sessões não supervisionadas que precisam aguardar interrupções mais longas, defina `CLAUDE_CODE_RETRY_WATCHDOG` em vez disso |337| `CLAUDE_CODE_MAX_RETRIES` | Sobrescreve o número de vezes para tentar novamente requisições à API que falharam (padrão: 10). Limitado a 15 a partir da v2.1.186; a partir da v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` aumenta o padrão e remove o limite. Para sessões não supervisionadas que precisam aguardar interrupções mais longas, defina `CLAUDE_CODE_RETRY_WATCHDOG` em vez disso |

336| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Removida na v2.1.224 e agora sem efeito. Anteriormente limitava o número total de [subagentes](/docs/pt/sub-agents) que o Claude podia gerar com a ferramenta Agent em uma sessão (padrão: 200); gerar além do limite falhava com `Subagent spawn limit reached`. O [limite de subagentes simultâneos](/docs/pt/sub-agents#concurrent-subagent-limit) e o [limite de profundidade](/docs/pt/sub-agents#let-subagents-spawn-their-own-subagents) ainda se aplicam |338| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Removida na v2.1.224 e agora sem efeito. Anteriormente limitava o número total de [subagentes](/docs/pt/sub-agents) que o Claude podia gerar com a ferramenta Agent em uma sessão (padrão: 200); gerar além do limite falhava com `Subagent spawn limit reached`. O [limite de subagentes simultâneos](/docs/pt/sub-agents#concurrent-subagent-limit) e o [limite de profundidade](/docs/pt/sub-agents#let-subagents-spawn-their-own-subagents) ainda se aplicam |


359| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervalo para atualizar cabeçalhos dinâmicos do OpenTelemetry, em milissegundos (padrão: 1740000 / 29 minutos). Consulte [Cabeçalhos dinâmicos](/docs/pt/monitoring-usage#dynamic-headers) |361| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervalo para atualizar cabeçalhos dinâmicos do OpenTelemetry, em milissegundos (padrão: 1740000 / 29 minutos). Consulte [Cabeçalhos dinâmicos](/docs/pt/monitoring-usage#dynamic-headers) |

360| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Timeout em milissegundos para o exportador OpenTelemetry concluir no encerramento (padrão: 2000). Aumente se métricas forem descartadas na saída. Consulte [Monitoramento](/docs/pt/monitoring-usage) |362| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Timeout em milissegundos para o exportador OpenTelemetry concluir no encerramento (padrão: 2000). Aumente se métricas forem descartadas na saída. Consulte [Monitoramento](/docs/pt/monitoring-usage) |

361| `CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS` | Atraso inicial em milissegundos, no lugar do padrão de 500, do backoff exponencial entre [novas tentativas automáticas](/docs/pt/errors#tune-retry-behavior) de uma requisição que a API rejeita com um erro `529` de sobrecarga. Aumente-o para distribuir as novas tentativas por uma janela mais longa quando a API estiver na capacidade máxima. Informe milissegundos inteiros de 500 a 32000 em dígitos simples; o Claude Code trata qualquer outro valor como não definido. Não tem efeito quando `CLAUDE_CODE_RETRY_WATCHDOG` está definida como `1`, ou quando a requisição rejeitada foi enviada no [modo rápido](/docs/pt/fast-mode#handle-rate-limits). Requer o Claude Code v2.1.292 ou posterior |363| `CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS` | Atraso inicial em milissegundos, no lugar do padrão de 500, do backoff exponencial entre [novas tentativas automáticas](/docs/pt/errors#tune-retry-behavior) de uma requisição que a API rejeita com um erro `529` de sobrecarga. Aumente-o para distribuir as novas tentativas por uma janela mais longa quando a API estiver na capacidade máxima. Informe milissegundos inteiros de 500 a 32000 em dígitos simples; o Claude Code trata qualquer outro valor como não definido. Não tem efeito quando `CLAUDE_CODE_RETRY_WATCHDOG` está definida como `1`, ou quando a requisição rejeitada foi enviada no [modo rápido](/docs/pt/fast-mode#handle-rate-limits). Requer o Claude Code v2.1.292 ou posterior |

364| `CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS` | Teto em milissegundos, no lugar do padrão de 32000, do backoff exponencial entre [novas tentativas automáticas](/docs/pt/errors#tune-retry-behavior) de uma requisição que a API rejeita com um erro `529` de sobrecarga. Aumente-o para que as novas tentativas posteriores continuem se espaçando quando a API estiver no limite de capacidade. Informe milissegundos inteiros de 32000 a 64000 em dígitos simples; o Claude Code trata qualquer outro valor como não definido. Não tem efeito quando `CLAUDE_CODE_RETRY_WATCHDOG` está definida como `1`, ou quando a requisição rejeitada foi enviada no [modo rápido](/docs/pt/fast-mode#handle-rate-limits). Requer o Claude Code v2.1.296 ou posterior |

362| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Defina como `1` para permitir que o Claude Code execute o comando de atualização do seu gerenciador de pacotes em segundo plano quando uma nova versão estiver disponível. Aplica-se a instalações via Homebrew e WinGet. Outros gerenciadores de pacotes continuam mostrando o comando de atualização sem executá-lo. Consulte [Atualizações automáticas](/docs/pt/setup#auto-updates) |365| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Defina como `1` para permitir que o Claude Code execute o comando de atualização do seu gerenciador de pacotes em segundo plano quando uma nova versão estiver disponível. Aplica-se a instalações via Homebrew e WinGet. Outros gerenciadores de pacotes continuam mostrando o comando de atualização sem executá-lo. Consulte [Atualizações automáticas](/docs/pt/setup#auto-updates) |

363| `CLAUDE_CODE_PERFORCE_MODE` | Defina como `1` para ativar a proteção contra 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 nos arquivos sincronizados até que `p4 edit` os abra. Isso impede que o Claude Code contorne o controle de alterações do Perforce |366| `CLAUDE_CODE_PERFORCE_MODE` | Defina como `1` para ativar a proteção contra 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 nos arquivos sincronizados até que `p4 edit` os abra. Isso impede que o Claude Code contorne o controle de alterações do Perforce |

364| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sobrescreve o diretório raiz dos 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` |367| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sobrescreve o diretório raiz dos 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` |


380| `CLAUDE_CODE_REMOTE_SESSION_ID` | Definida automaticamente em [sessões na nuvem](/docs/pt/claude-code-on-the-web) com o ID da sessão atual. Leia-a para construir um link de volta para a transcrição da sessão. Consulte [Vincular a saída de volta à sessão](/docs/pt/cloud-environments#link-output-back-to-the-session) |383| `CLAUDE_CODE_REMOTE_SESSION_ID` | Definida automaticamente em [sessões na nuvem](/docs/pt/claude-code-on-the-web) com o ID da sessão atual. Leia-a para construir um link de volta para a transcrição da sessão. Consulte [Vincular a saída de volta à sessão](/docs/pt/cloud-environments#link-output-back-to-the-session) |

381| `CLAUDE_CODE_RESTRICTED` | Defina como `1` para iniciar a sessão no modo restrito, o mesmo que passar [`--restricted`](/docs/pt/cli-reference#cli-flags). O Claude Code ignora esta variável no bloco `env` de um arquivo de configurações. Requer o Claude Code v2.1.248 ou posterior |384| `CLAUDE_CODE_RESTRICTED` | Defina como `1` para iniciar a sessão no modo restrito, o mesmo que passar [`--restricted`](/docs/pt/cli-reference#cli-flags). O Claude Code ignora esta variável no bloco `env` de um arquivo de configurações. Requer o Claude Code v2.1.248 ou posterior |

382| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Defina como `1` para retomar automaticamente se a sessão anterior terminou no meio de um turno. Usada no modo SDK para que o modelo continue sem exigir que o SDK reenvie o prompt. Para desativá-la, remova a definição da variável ou defina-a como `0`. Para o painel de chat do VS Code, consulte [Continuar conversas após um recarregamento](/docs/pt/vs-code#continue-conversations-after-a-reload) |385| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Defina como `1` para retomar automaticamente se a sessão anterior terminou no meio de um turno. Usada no modo SDK para que o modelo continue sem exigir que o SDK reenvie o prompt. Para desativá-la, remova a definição da variável ou defina-a como `0`. Para o painel de chat do VS Code, consulte [Continuar conversas após um recarregamento](/docs/pt/vs-code#continue-conversations-after-a-reload) |

383| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Idade máxima, em milissegundos, da última mensagem da transcrição para que uma sessão que terminou no meio de um turno continue automaticamente ao ser retomada. Quando a última mensagem é mais antiga que esse limite, o Claude Code ignora a retomada automática de `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` e sua mensagem de continuação `CLAUDE_CODE_RESUME_PROMPT`, e a sessão começa ociosa para que você continue explicitamente. Não definida ou `0` significa sem limite, exceto que um turno cuja última requisição falhou com um erro de API só é retomado enquanto esse erro tiver menos de seis horas. Um valor positivo limita todos os turnos, incluindo esses; um valor negativo ou não numérico aplica um limite de uma hora. Scripts de inicialização de agentes de longa duração podem defini-la para que uma reinicialização sobre uma transcrição antiga não execute novamente um prompt obsoleto. O próprio Claude Code define um limite de uma hora quando reinicia uma sessão da [visualização de agentes](/docs/pt/agent-view) que falhou e que herdou sua conversa de uma sessão interativa. Requer o Claude Code v2.1.211 ou posterior |386| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Idade máxima, em milissegundos, da última mensagem da transcrição para que uma sessão que terminou no meio de um turno continue automaticamente ao ser retomada. Quando a última mensagem é mais antiga que esse limite, o Claude Code ignora a retomada automática de `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` e sua mensagem de continuação `CLAUDE_CODE_RESUME_PROMPT`, e a sessão começa ociosa para que você continue explicitamente. Não definida ou `0` não define limite, exceto que alguns turnos só são retomados dentro de seis horas após sua última mensagem, como um que terminou com um erro da API. Um valor positivo limita todos os turnos, incluindo esses; um valor negativo ou não numérico aplica um limite de uma hora. Scripts de inicialização para agentes de longa duração podem defini-la para que um reinício sobre uma transcrição antiga não execute novamente um prompt desatualizado. O próprio Claude Code define um limite de uma hora quando reinicia uma sessão da [visualização de agentes](/docs/pt/agent-view) que travou e herdou sua conversa de uma sessão interativa. Requer o Claude Code v2.1.211 ou posterior |

384| `CLAUDE_CODE_RESUME_PROMPT` | Sobrescreve a mensagem de continuação que o Claude Code envia ao Claude quando `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` continua um turno interrompido em vez de reenviar seu prompt, ou quando você retoma uma [chamada de ferramenta adiada](/docs/pt/hooks#defer-a-tool-call-for-later) com `-p`. O padrão é `Continue from where you left off.`. Uma string vazia usa o padrão |387| `CLAUDE_CODE_RESUME_PROMPT` | Sobrescreve a mensagem de continuação que o Claude Code envia ao Claude quando `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` continua um turno interrompido em vez de reenviar seu prompt, ou quando você retoma uma [chamada de ferramenta adiada](/docs/pt/hooks#defer-a-tool-call-for-later) com `-p`. O padrão é `Continue from where you left off.`. Uma string vazia usa o padrão |

385| `CLAUDE_CODE_RETRY_WATCHDOG` | Defina como `1` para sessões não supervisionadas, como harnesses de avaliação, jobs de CI ou workers remotos. Tenta novamente indefinidamente erros de capacidade `429` e `529` em vez de falhar após `CLAUDE_CODE_MAX_RETRIES` tentativas. O Claude Code falha imediatamente quando uma requisição de velocidade padrão recebe um `429` que informa um limite de gastos ou créditos de uso esgotados, mesmo que venha de um [limite de gastos do gateway](/docs/pt/errors#spend-limit-reached) que é redefinido em um cronograma. Antes da v2.1.239, o watchdog tentava novamente esses casos indefinidamente. Para requisições no modo rápido, consulte [Lidar com rate limits](/docs/pt/fast-mode#handle-rate-limits). O watchdog espera até 5 minutos entre as tentativas, ou até que o limite seja redefinido quando a resposta inclui um horário de redefinição do rate limit, de modo que uma sessão que atinge um limite de uso aguarda o restante da janela. Na v2.1.199 ou posterior, também aumenta o número padrão de novas tentativas para outros erros transitórios, como erros de servidor, timeouts e conexões interrompidas, para 300, aproximadamente três horas de backoff, e remove o limite de 15 em `CLAUDE_CODE_MAX_RETRIES` se você definir essa variável explicitamente. Requer o Claude Code v2.1.186 ou posterior |388| `CLAUDE_CODE_RETRY_WATCHDOG` | Defina como `1` para sessões não supervisionadas, como harnesses de avaliação, jobs de CI ou workers remotos. Tenta novamente indefinidamente erros de capacidade `429` e `529` em vez de falhar após `CLAUDE_CODE_MAX_RETRIES` tentativas. O Claude Code falha imediatamente quando uma requisição de velocidade padrão recebe um `429` que informa um limite de gastos ou créditos de uso esgotados, mesmo que venha de um [limite de gastos do gateway](/docs/pt/errors#spend-limit-reached) que é redefinido em um cronograma. Antes da v2.1.239, o watchdog tentava novamente esses casos indefinidamente. Para requisições no modo rápido, consulte [Lidar com rate limits](/docs/pt/fast-mode#handle-rate-limits). O watchdog espera até 5 minutos entre as tentativas, ou até que o limite seja redefinido quando a resposta inclui um horário de redefinição do rate limit, de modo que uma sessão que atinge um limite de uso aguarda o restante da janela. Na v2.1.199 ou posterior, também aumenta o número padrão de novas tentativas para outros erros transitórios, como erros de servidor, timeouts e conexões interrompidas, para 300, aproximadamente três horas de backoff, e remove o limite de 15 em `CLAUDE_CODE_MAX_RETRIES` se você definir essa variável explicitamente. Requer o Claude Code v2.1.186 ou posterior |

386| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS` | Tempo máximo, em milissegundos, que cada requisição à API passa aguardando erros `429` e `529` quando `CLAUDE_CODE_RETRY_WATCHDOG` está definida. Depois que esse tempo se esgota, o próximo erro desse tipo encerra a requisição. Informe um número inteiro positivo em dígitos simples, como `1800000` para 30 minutos. Quando não definida, a espera não tem limite. Requer o Claude Code v2.1.295 ou posterior |389| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS` | Tempo máximo, em milissegundos, que cada requisição à API passa aguardando erros `429` e `529` quando `CLAUDE_CODE_RETRY_WATCHDOG` está definida. Depois que esse tempo se esgota, o próximo erro desse tipo encerra a requisição. Informe um número inteiro positivo em dígitos simples, como `1800000` para 30 minutos. Quando não definida, a espera não tem limite. Requer o Claude Code v2.1.295 ou posterior |


437| `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` | Quando `CLAUDE_AUTO_BACKGROUND_TASKS` está definida como `1`, quanto tempo o Claude Code espera antes de cada lembrete para que o Claude verifique [subagentes em segundo plano](/docs/pt/sub-agents#run-subagents-in-foreground-or-background) que ainda estão em execução. Aceita uma ou mais esperas separadas por vírgula, em segundos inteiros de `1` a `86400`, como `600` ou `600,1800,3600`. Cada valor é a espera antes do próximo lembrete, e o último valor se repete. Aceita apenas dígitos simples; qualquer outro valor ou grafia é tratado como não definido. Quando não definida, não há lembretes. Requer Claude Code v2.1.283 ou posterior |440| `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` | Quando `CLAUDE_AUTO_BACKGROUND_TASKS` está definida como `1`, quanto tempo o Claude Code espera antes de cada lembrete para que o Claude verifique [subagentes em segundo plano](/docs/pt/sub-agents#run-subagents-in-foreground-or-background) que ainda estão em execução. Aceita uma ou mais esperas separadas por vírgula, em segundos inteiros de `1` a `86400`, como `600` ou `600,1800,3600`. Cada valor é a espera antes do próximo lembrete, e o último valor se repete. Aceita apenas dígitos simples; qualquer outro valor ou grafia é tratado como não definido. Quando não definida, não há lembretes. Requer Claude Code v2.1.283 ou posterior |

438| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Quantos agentes uma única execução de [workflow](/docs/pt/workflows) executa ao mesmo tempo, de `1` a `256`. Por padrão, uma execução executa até 16 agentes ao mesmo tempo, menos quando o Claude Code tem menos CPUs disponíveis; chamadas `agent()` na fila aguardam um espaço livre. A transcrição de cada agente em execução permanece na memória do Claude Code, portanto valores mais altos aumentam o uso de memória. Aceita apenas dígitos simples; valores fora do intervalo e outras grafias mantêm o padrão. Requer Claude Code v2.1.269 ou posterior |441| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Quantos agentes uma única execução de [workflow](/docs/pt/workflows) executa ao mesmo tempo, de `1` a `256`. Por padrão, uma execução executa até 16 agentes ao mesmo tempo, menos quando o Claude Code tem menos CPUs disponíveis; chamadas `agent()` na fila aguardam um espaço livre. A transcrição de cada agente em execução permanece na memória do Claude Code, portanto valores mais altos aumentam o uso de memória. Aceita apenas dígitos simples; valores fora do intervalo e outras grafias mantêm o padrão. Requer Claude Code v2.1.269 ou posterior |

439| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Limite máximo, em milissegundos, de quanto tempo um agente de [workflow](/docs/pt/workflows) espera que a primeira resposta de um agente irmão com o mesmo prefixo comece antes de enviar sua própria primeira requisição. Quando um fan-out inicia vários agentes que compartilham um [prefixo de cache de prompt](/docs/pt/workflows#prompt-caching-in-a-fan-out), o Claude Code retém todos exceto o primeiro agente por até esse tempo, para que os demais leiam o prefixo em cache em vez de cada um processá-lo sem cache. Padrão `5000`. Defina como `0` para desativar a espera. Quando `DISABLE_PROMPT_CACHING` está definida, os agentes nunca esperam. Requer Claude Code v2.1.229 ou posterior |442| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Limite máximo, em milissegundos, de quanto tempo um agente de [workflow](/docs/pt/workflows) espera que a primeira resposta de um agente irmão com o mesmo prefixo comece antes de enviar sua própria primeira requisição. Quando um fan-out inicia vários agentes que compartilham um [prefixo de cache de prompt](/docs/pt/workflows#prompt-caching-in-a-fan-out), o Claude Code retém todos exceto o primeiro agente por até esse tempo, para que os demais leiam o prefixo em cache em vez de cada um processá-lo sem cache. Padrão `5000`. Defina como `0` para desativar a espera. Quando `DISABLE_PROMPT_CACHING` está definida, os agentes nunca esperam. Requer Claude Code v2.1.229 ou posterior |

443| `CLAUDE_CODE_YOU_SHOULD_KNOW_DEBUG` | Defina como `1` para mostrar, acima do prompt, uma linha para cada uma das últimas três verificações que o [mod You should know](/docs/pt/interactive-mode#you-should-know-suggestions) fez nesta sessão. Use-a para confirmar que o mod está verificando quando nenhuma nota aparece. Requer Claude Code v2.1.287 ou posterior |

440| `CLAUDE_CONFIG_DIR` | Sobrescreve o diretório de configuração (padrão: `~/.claude`). Todas as configurações, o histórico de sessões e os plugins são armazenados nesse caminho. Para credenciais, consulte [onde o Claude Code armazena credenciais](/docs/pt/authentication#credential-management). Útil para executar várias contas lado a lado: por exemplo, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Em um arquivo de configurações, escreva o [caminho absoluto](#in-settings-files). Ignorada em [configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env) |444| `CLAUDE_CONFIG_DIR` | Sobrescreve o diretório de configuração (padrão: `~/.claude`). Todas as configurações, o histórico de sessões e os plugins são armazenados nesse caminho. Para credenciais, consulte [onde o Claude Code armazena credenciais](/docs/pt/authentication#credential-management). Útil para executar várias contas lado a lado: por exemplo, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Em um arquivo de configurações, escreva o [caminho absoluto](#in-settings-files). Ignorada em [configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env) |

441| `CLAUDE_DISABLE_ADOPT` | Defina como `1` para interromper o trabalho em segundo plano em andamento em vez de transferi-lo quando você coloca uma sessão em segundo plano pressionando `←` ou com [`/background`](/docs/pt/agent-view#from-inside-a-session). O Claude Code pede que você confirme antes de colocar em segundo plano e, em seguida, interrompe as tarefas que de outra forma seriam transferidas. Requer Claude Code v2.1.195 ou posterior |445| `CLAUDE_DISABLE_ADOPT` | Defina como `1` para interromper o trabalho em segundo plano em andamento em vez de transferi-lo quando você coloca uma sessão em segundo plano pressionando `←` ou com [`/background`](/docs/pt/agent-view#from-inside-a-session). O Claude Code pede que você confirme antes de colocar em segundo plano e, em seguida, interrompe as tarefas que de outra forma seriam transferidas. Requer Claude Code v2.1.195 ou posterior |

442| `CLAUDE_EFFORT` | Definida automaticamente em subprocessos da ferramenta Bash e em comandos de hook com o [nível de esforço](/docs/pt/model-config#adjust-effort-level) em vigor quando o subprocesso é iniciado: `low`, `medium`, `high`, `xhigh` ou `max`. Corresponde ao campo `effort.level` passado para [hooks](/docs/pt/hooks). Definida apenas quando o modelo atual oferece suporte ao parâmetro de esforço |446| `CLAUDE_EFFORT` | Definida automaticamente em subprocessos da ferramenta Bash e em comandos de hook com o [nível de esforço](/docs/pt/model-config#adjust-effort-level) em vigor quando o subprocesso é iniciado: `low`, `medium`, `high`, `xhigh` ou `max`. Corresponde ao campo `effort.level` passado para [hooks](/docs/pt/hooks). Definida apenas quando o modelo atual oferece suporte ao parâmetro de esforço |


452| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Removida na v2.1.260 e agora não tem efeito. Anteriormente limitava por quanto tempo um [comando de shell em segundo plano](/docs/pt/interactive-mode#background-bash-commands) iniciado por um [subagente](/docs/pt/sub-agents) podia ser executado, em milissegundos, com um padrão de 60 minutos. Consulte [as regras de tempo de vida de comandos em segundo plano](/docs/pt/tools-reference#background-commands) |456| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Removida na v2.1.260 e agora não tem efeito. Anteriormente limitava por quanto tempo um [comando de shell em segundo plano](/docs/pt/interactive-mode#background-bash-commands) iniciado por um [subagente](/docs/pt/sub-agents) podia ser executado, em milissegundos, com um padrão de 60 minutos. Consulte [as regras de tempo de vida de comandos em segundo plano](/docs/pt/tools-reference#background-commands) |

453| `DEBUG` | Defina como `1` para ativar o modo de depuração, equivalente a iniciar com [`--debug`](/docs/pt/cli-reference#cli-flags). Os logs de depuração são gravados em `~/.claude/debug/<session-id>.txt` ou no caminho definido por `CLAUDE_CODE_DEBUG_LOGS_DIR`. Apenas os valores verdadeiros `1`, `true`, `yes` e `on` ativam o modo de depuração, portanto padrões de namespace como `DEBUG=express:*` definidos para outras ferramentas não o acionam |457| `DEBUG` | Defina como `1` para ativar o modo de depuração, equivalente a iniciar com [`--debug`](/docs/pt/cli-reference#cli-flags). Os logs de depuração são gravados em `~/.claude/debug/<session-id>.txt` ou no caminho definido por `CLAUDE_CODE_DEBUG_LOGS_DIR`. Apenas os valores verdadeiros `1`, `true`, `yes` e `on` ativam o modo de depuração, portanto padrões de namespace como `DEBUG=express:*` definidos para outras ferramentas não o acionam |

454| `DISABLE_AUTOUPDATER` | Defina como `1` para desativar as atualizações automáticas em segundo plano. O `claude update` manual continua funcionando. Use `DISABLE_UPDATES` para bloquear ambos |458| `DISABLE_AUTOUPDATER` | Defina como `1` para desativar as atualizações automáticas em segundo plano. O `claude update` manual continua funcionando. Use `DISABLE_UPDATES` para bloquear ambos |

455| `DISABLE_AUTO_COMPACT` | Defina como `1` para desativar a compactação automática ao se aproximar do limite de contexto. O comando manual `/compact` continua disponível. Use quando quiser controle explícito sobre quando a compactação ocorre. Sobrescreve a configuração [`autoCompactEnabled`](/docs/pt/settings-reference#autocompactenabled) |459| `DISABLE_AUTO_COMPACT` | Defina como `1` para desativar a compactação automática ao se aproximar do limite de contexto, junto com a [compactação por inatividade](/docs/pt/settings-reference#idlecompaction). O comando manual `/compact` continua disponível. Use quando quiser controle explícito sobre quando a compactação ocorre. Sobrescreve a configuração [`autoCompactEnabled`](/docs/pt/settings-reference#autocompactenabled) |

456| `DISABLE_COMPACT` | Defina como `1` para desativar toda a compactação: tanto a compactação automática quanto o comando manual `/compact` |460| `DISABLE_COMPACT` | Defina como `1` para desativar toda a compactação: tanto a compactação automática quanto o comando manual `/compact` |

457| `DISABLE_COST_WARNINGS` | Defina como `1` para desativar mensagens de aviso de custo |461| `DISABLE_COST_WARNINGS` | Defina como `1` para desativar mensagens de aviso de custo |

458| `DISABLE_DOCTOR_COMMAND` | Defina como `1` para ocultar a skill de verificação de configuração [`/doctor`](/docs/pt/commands#all-commands) e seu alias `/checkup`. Útil para implantações gerenciadas em que os usuários não devem executar diagnósticos de configuração a partir de uma sessão. Não afeta o comando de terminal `claude doctor`. Antes da v2.1.205, esta variável ocultava o comando da tela de diagnóstico `/doctor` |462| `DISABLE_DOCTOR_COMMAND` | Defina como `1` para ocultar a skill de verificação de configuração [`/doctor`](/docs/pt/commands#all-commands) e seu alias `/checkup`. Útil para implantações gerenciadas em que os usuários não devem executar diagnósticos de configuração a partir de uma sessão. Não afeta o comando de terminal `claude doctor`. Antes da v2.1.205, esta variável ocultava o comando da tela de diagnóstico `/doctor` |


478| `ENABLE_CLAUDEAI_MCP_SERVERS` | Defina como `false` para impedir que o Claude Code busque [servidores MCP do claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai). Ativada por padrão para usuários conectados. Para desativar por projeto ou por organização, defina [`disableClaudeAiConnectors`](/docs/pt/settings-reference#disableclaudeaiconnectors) nas configurações |482| `ENABLE_CLAUDEAI_MCP_SERVERS` | Defina como `false` para impedir que o Claude Code busque [servidores MCP do claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai). Ativada por padrão para usuários conectados. Para desativar por projeto ou por organização, defina [`disableClaudeAiConnectors`](/docs/pt/settings-reference#disableclaudeaiconnectors) nas configurações |

479| `ENABLE_PROMPT_CACHING_1H` | Defina como `1` para solicitar um [TTL de cache de prompt](/docs/pt/prompt-caching#cache-lifetime) de 1 hora em vez do padrão de 5 minutos. Destinada a usuários de chave de API, do [Amazon Bedrock](/docs/pt/amazon-bedrock), do [Agent Platform do Google Cloud](/docs/pt/google-vertex-ai), do [Microsoft Foundry](/docs/pt/microsoft-foundry) e do [Claude Platform on AWS](/docs/pt/claude-platform-on-aws). Usuários de assinatura dentro do uso incluído recebem o TTL de 1 hora automaticamente na [conversa principal](/docs/pt/prompt-caching#which-ttl-each-request-gets). Usuários de assinatura que utilizam [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) podem defini-la para manter o TTL de 1 hora. Gravações em cache de 1 hora são cobradas a uma taxa mais alta. Para escolher o TTL por grupo de requisições, use `CLAUDE_CODE_PROMPT_CACHE_TTL` e `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, que têm precedência sobre esta variável |483| `ENABLE_PROMPT_CACHING_1H` | Defina como `1` para solicitar um [TTL de cache de prompt](/docs/pt/prompt-caching#cache-lifetime) de 1 hora em vez do padrão de 5 minutos. Destinada a usuários de chave de API, do [Amazon Bedrock](/docs/pt/amazon-bedrock), do [Agent Platform do Google Cloud](/docs/pt/google-vertex-ai), do [Microsoft Foundry](/docs/pt/microsoft-foundry) e do [Claude Platform on AWS](/docs/pt/claude-platform-on-aws). Usuários de assinatura dentro do uso incluído recebem o TTL de 1 hora automaticamente na [conversa principal](/docs/pt/prompt-caching#which-ttl-each-request-gets). Usuários de assinatura que utilizam [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) podem defini-la para manter o TTL de 1 hora. Gravações em cache de 1 hora são cobradas a uma taxa mais alta. Para escolher o TTL por grupo de requisições, use `CLAUDE_CODE_PROMPT_CACHE_TTL` e `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, que têm precedência sobre esta variável |

480| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Descontinuada. Use `ENABLE_PROMPT_CACHING_1H` em vez disso |484| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Descontinuada. Use `ENABLE_PROMPT_CACHING_1H` em vez disso |

481| `ENABLE_TOOL_SEARCH` | Controla o [MCP Tool Search](/docs/pt/mcp#scale-with-mcp-tool-search). Sem definição, o Claude Code adia todas as ferramentas MCP por padrão. Ele ainda as carrega antecipadamente em modelos do Agent Platform do Google Cloud anteriores à geração Claude 4.5, em uma implantação do Microsoft Foundry hospedada no Azure e quando `ANTHROPIC_BASE_URL` aponta para um host que não é first-party. `true` sempre adia e envia o cabeçalho beta, exceto nesses mesmos modelos do Agent Platform e implantações do Microsoft Foundry; as requisições falham em proxies que não oferecem suporte a `tool_reference`. `auto` carrega antecipadamente quando as definições de ferramentas cabem em 10% do contexto. `auto:N` define um limite personalizado, como `auto:5` para 5%. `false` carrega todas as ferramentas antecipadamente. Um valor definido por você é ignorado quando `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` está definida. Antes da v2.1.221, o Claude Code desativava a pesquisa de ferramentas para todos os modelos no Agent Platform do Google Cloud, a menos que você definisse esta variável como `true` |485| `ENABLE_TOOL_SEARCH` | Controla o [MCP Tool Search](/docs/pt/mcp#scale-with-mcp-tool-search). Sem definição, o Claude Code adia todas as ferramentas MCP por padrão e, em vez disso, as carrega antecipadamente quando `ANTHROPIC_BASE_URL` aponta para um host que não é primário. `true` as mantém adiadas também nesse tipo de host. `auto` carrega antecipadamente quando as definições de ferramentas cabem em 10% do contexto. `auto:N` define um limite personalizado, como `auto:5` para 5%. `false` carrega todas as ferramentas antecipadamente. Para os modelos e implantações que carregam todas as ferramentas antecipadamente independentemente deste valor, consulte [Configurar a busca de ferramentas](/docs/pt/mcp#configure-tool-search) |

482| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Defina como qualquer valor não vazio, como `1`, para fazer o Claude Code parar de tentar novamente em erros de sobrecarga repetidos para todos os modelos quando nenhum modelo de fallback estiver configurado. **Defini-la como `0` ou `false` ainda ativa isso**, ao contrário da maioria das variáveis de ativar/desativar; remova a definição da variável para restaurar o comportamento padrão de novas tentativas. Sem ela, o Claude Code para de tentar novamente dessa forma em modelos que reconhece como modelos Opus, Fable ou Mythos quando você se autentica com uma chave de API ou um [provedor de terceiros](/docs/pt/third-party-integrations) em vez de uma assinatura do Claude. No Claude Code v2.1.160 ou posterior, o Claude Code muda para sua [cadeia de modelos de fallback](/docs/pt/model-config#fallback-model-chains) configurada em erros de sobrecarga repetidos para qualquer modelo principal, portanto esta variável não afeta a mudança para um modelo de fallback |486| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Defina como qualquer valor não vazio, como `1`, para fazer o Claude Code parar de tentar novamente em erros de sobrecarga repetidos para todos os modelos quando nenhum modelo de fallback estiver configurado. **Defini-la como `0` ou `false` ainda ativa isso**, ao contrário da maioria das variáveis de ativar/desativar; remova a definição da variável para restaurar o comportamento padrão de novas tentativas. Sem ela, o Claude Code para de tentar novamente dessa forma em modelos que reconhece como modelos Opus, Fable ou Mythos quando você se autentica com uma chave de API ou um [provedor de terceiros](/docs/pt/third-party-integrations) em vez de uma assinatura do Claude. No Claude Code v2.1.160 ou posterior, o Claude Code muda para sua [cadeia de modelos de fallback](/docs/pt/model-config#fallback-model-chains) configurada em erros de sobrecarga repetidos para qualquer modelo principal, portanto esta variável não afeta a mudança para um modelo de fallback |

483| `FORCE_AUTOUPDATE_PLUGINS` | Defina como `1` para forçar atualizações automáticas de plugins mesmo quando o atualizador automático principal estiver desativado via `DISABLE_AUTOUPDATER` |487| `FORCE_AUTOUPDATE_PLUGINS` | Defina como `1` para forçar atualizações automáticas de plugins mesmo quando o atualizador automático principal estiver desativado via `DISABLE_AUTOUPDATER` |

484| `FORCE_HYPERLINK` | Defina como `1` para ativar hyperlinks OSC 8 clicáveis quando seu terminal oferece suporte a eles, mas não é detectado automaticamente, ou `0` para desativá-los. Quando não definida, o Claude Code ativa hyperlinks apenas quando detecta suporte no terminal. O Claude Code interpreta este valor como um número, não como um booleano, portanto um valor como `false`, `no` ou `off` ativa hyperlinks em vez de desativá-los. O [badge de PR ou merge request](/docs/pt/interactive-mode#pr-review-status) no rodapé é renderizado como hyperlink mesmo quando o Claude Code não consegue detectar suporte no terminal, como via SSH. Defina `0` para renderizar o badge como texto simples |488| `FORCE_HYPERLINK` | Defina como `1` para ativar hyperlinks OSC 8 clicáveis quando seu terminal oferece suporte a eles, mas não é detectado automaticamente, ou `0` para desativá-los. Quando não definida, o Claude Code ativa hyperlinks apenas quando detecta suporte no terminal. O Claude Code interpreta este valor como um número, não como um booleano, portanto um valor como `false`, `no` ou `off` ativa hyperlinks em vez de desativá-los. O [badge de PR ou merge request](/docs/pt/interactive-mode#pr-review-status) no rodapé é renderizado como hyperlink mesmo quando o Claude Code não consegue detectar suporte no terminal, como via SSH. Defina `0` para renderizar o badge como texto simples |


593* Executar [`claude import` ou o comando `/import`](/docs/pt/cli-reference#cli-commands)597* Executar [`claude import` ou o comando `/import`](/docs/pt/cli-reference#cli-commands)

594* Executar [`/skill-doctor`](/docs/pt/skills#find-unused-skills) ou abrir o relatório dele na aba **Stats** do `/plugin`598* Executar [`/skill-doctor`](/docs/pt/skills#find-unused-skills) ou abrir o relatório dele na aba **Stats** do `/plugin`

595* Sincronizar as [skills](/docs/pt/skills#where-synced-skills-load) e os [plugins](/docs/pt/plugins/loading#synced-plugins) habilitados para sua conta do claude.ai nas suas sessões de terminal599* Sincronizar as [skills](/docs/pt/skills#where-synced-skills-load) e os [plugins](/docs/pt/plugins/loading#synced-plugins) habilitados para sua conta do claude.ai nas suas sessões de terminal

600* Ativar o [mod You should know](/docs/pt/interactive-mode#you-should-know-suggestions)

596* Usar [a ferramenta advisor](/docs/pt/advisor#requirements)601* Usar [a ferramenta advisor](/docs/pt/advisor#requirements)

597* Ler ou responder a [comentários em um artefato](/docs/pt/artifacts#collect-comments-on-an-artifact)602* Ler ou responder a [comentários em um artefato](/docs/pt/artifacts#collect-comments-on-an-artifact)

598* Fazer o Claude ler [o artefato público de outra organização](/docs/pt/artifacts#read-an-artifact-shared-with-you)603* Fazer o Claude ler [o artefato público de outra organização](/docs/pt/artifacts#read-an-artifact-shared-with-you)


600* Obter [feedback rascunhado pelo Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior), que o Claude Code ativa por meio de uma flag buscada605* Obter [feedback rascunhado pelo Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior), que o Claude Code ativa por meio de uma flag buscada

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

602* Fazer o Claude Code [excluir ferramentas MCP cujo esquema de entrada a API rejeitaria](/docs/pt/mcp#tools-with-invalid-input-schemas); ele envia o esquema mesmo assim, e uma requisição que o inclui falha com [um erro 400 que identifica a ferramenta pela sua posição](/docs/pt/errors#tool-input-schema-is-invalid)607* Fazer o Claude Code [excluir ferramentas MCP cujo esquema de entrada a API rejeitaria](/docs/pt/mcp#tools-with-invalid-input-schemas); ele envia o esquema mesmo assim, e uma requisição que o inclui falha com [um erro 400 que identifica a ferramenta pela sua posição](/docs/pt/errors#tool-input-schema-is-invalid)

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

603 609 

604<h3 id="first-session-after-an-install-or-upgrade">610<h3 id="first-session-after-an-install-or-upgrade">

605 Primeira sessão após uma instalação ou atualização611 Primeira sessão após uma instalação ou atualização

errors.md +162 −11

Details

134| `proxy refused the connection` | [Network](#the-proxy-refused-the-connection) |134| `proxy refused the connection` | [Network](#the-proxy-refused-the-connection) |

135| `403` com `GitHub GraphQL is not available from Claude Code sessions` em uma sessão na nuvem | [GitHub proxy](/docs/pt/cloud-environments#github-proxy) |135| `403` com `GitHub GraphQL is not available from Claude Code sessions` em uma sessão na nuvem | [GitHub proxy](/docs/pt/cloud-environments#github-proxy) |

136| `The cloud environments service returned an empty response` / `The cloud environments service returned a response in an unexpected format` | [Network](#the-cloud-environments-service-returned-an-empty-or-unexpected-response) |136| `The cloud environments service returned an empty response` / `The cloud environments service returned a response in an unexpected format` | [Network](#the-cloud-environments-service-returned-an-empty-or-unexpected-response) |

137| `Failed to fetch session from Sessions API: Failed to fetch session logs` | [Network](#failed-to-fetch-session-from-sessions-api) |

137| `Couldn't reconnect to your Remote Control session` | [Network](#couldnt-reconnect-to-your-remote-control-session) |138| `Couldn't reconnect to your Remote Control session` | [Network](#couldnt-reconnect-to-your-remote-control-session) |

138| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [Network](#sessions-ended-while-this-machine-was-offline) |139| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [Network](#sessions-ended-while-this-machine-was-offline) |

139| `Couldn't share the transcript.` | [Network](#couldnt-share-the-transcript) |140| `Couldn't share the transcript.` | [Network](#couldnt-share-the-transcript) |


153| `Request too large for the API's 32MB request limit` | [Request errors](#request-too-large) |154| `Request too large for the API's 32MB request limit` | [Request errors](#request-too-large) |

154| `Image was too large` | [Request errors](#image-was-too-large) |155| `Image was too large` | [Request errors](#image-was-too-large) |

155| `Unable to resize image` | [Request errors](#unable-to-resize-image) |156| `Unable to resize image` | [Request errors](#unable-to-resize-image) |

157| `Request rejected as unprocessable by the model` | [Request errors](#request-rejected-as-unprocessable-by-the-model) |

156| `PDF too large` / `PDF is password protected` / `pdftoppm is not installed` | [Request errors](#pdf-errors) |158| `PDF too large` / `PDF is password protected` / `pdftoppm is not installed` | [Request errors](#pdf-errors) |

157| `Extra inputs are not permitted` | [Request errors](#extra-inputs-are-not-permitted) |159| `Extra inputs are not permitted` | [Request errors](#extra-inputs-are-not-permitted) |

158| `API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid` / `Property keys should match pattern` | [Request errors](#tool-input-schema-is-invalid) |160| `API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid` / `Property keys should match pattern` | [Request errors](#tool-input-schema-is-invalid) |

161| `Tool "mcp__<server>__<tool>" is not sent to Claude: its name has <N> characters and the API accepts at most 128` | [Request errors](#mcp-tool-name-over-128-characters) |

162| `tools.N.custom.name: String should have at most 128 characters` | [Request errors](#mcp-tool-name-over-128-characters) |

159| `tool_use.name: String should have at most 200 characters` | [Request errors](#tool-use-name-over-200-characters) |163| `tool_use.name: String should have at most 200 characters` | [Request errors](#tool-use-name-over-200-characters) |

160| `There's an issue with the selected model` | [Request errors](#theres-an-issue-with-the-selected-model) |164| `There's an issue with the selected model` | [Request errors](#theres-an-issue-with-the-selected-model) |

161| `Model ... is not a recognized model id` | [Request errors](#model-is-not-a-recognized-model-id) |165| `Model ... is not a recognized model id` | [Request errors](#model-is-not-a-recognized-model-id) |


198| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [Command-line errors](#conflict-between-a-system-prompt-flag-and-its-file-form) |202| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [Command-line errors](#conflict-between-a-system-prompt-flag-and-its-file-form) |

199| `Cloud sessions cannot be created from a --restricted session` | [Command-line errors](#cloud-sessions-cannot-be-created-from-a-restricted-session) |203| `Cloud sessions cannot be created from a --restricted session` | [Command-line errors](#cloud-sessions-cannot-be-created-from-a-restricted-session) |

200| `Cloud sessions are disabled by your organization's policy` | [Command-line errors](#cloud-sessions-are-disabled-by-your-organizations-policy) |204| `Cloud sessions are disabled by your organization's policy` | [Command-line errors](#cloud-sessions-are-disabled-by-your-organizations-policy) |

201| `Couldn't verify your organization's policy for cloud sessions` | [Command-line errors](#cloud-sessions-are-disabled-by-your-organizations-policy) |205| `Cloud sessions use your claude.ai login`, no final de uma negação de política que nomeia uma credencial | [Command-line errors](#cloud-sessions-use-your-claude-ai-login) |

206| `Couldn't verify your organization's policy for cloud sessions` | [Command-line errors](#couldnt-verify-your-organizations-policy-for-cloud-sessions) |

207| `Cloud sessions aren't available:` seguido do motivo pelo qual a política da sua organização não pôde ser carregada | [Command-line errors](#couldnt-verify-your-organizations-policy-for-cloud-sessions) |

202| `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) |208| `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) |

209| `Nothing was stashed: "<path>" is now a folder in place of a tracked file or link` / `are now folders in place of tracked files or links` | [Command-line errors](#nothing-was-stashed-because-a-folder-replaced-a-tracked-file) |

203| `Error: --json-schema is not a valid JSON Schema` | [Command-line errors](#the-json-schema-value-is-not-a-valid-json-schema) |210| `Error: --json-schema is not a valid JSON Schema` | [Command-line errors](#the-json-schema-value-is-not-a-valid-json-schema) |

204| `Error: Invalid --agents configuration:` | [Command-line errors](#invalid-agents-configuration) |211| `Error: Invalid --agents configuration:` | [Command-line errors](#invalid-agents-configuration) |

205| `Error: --agents takes a JSON object, or a file path only with --print (-p)` | [Command-line errors](#invalid-agents-configuration) |212| `Error: --agents takes a JSON object, or a file path only with --print (-p)` | [Command-line errors](#invalid-agents-configuration) |


259| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [Command-line errors](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |266| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [Command-line errors](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |

260| `/recap only runs when you ask for it yourself in this session` | [Command-line errors](#recap-only-runs-when-you-ask-for-it-yourself) |267| `/recap only runs when you ask for it yourself in this session` | [Command-line errors](#recap-only-runs-when-you-ask-for-it-yourself) |

261| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Plugin errors](#plugin-eval-is-currently-in-early-access) |268| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Plugin errors](#plugin-eval-is-currently-in-early-access) |

269| `cannot be evaluated where sessions load it` | [Test plugins with evals](/docs/pt/plugin-evals#cannot-be-evaluated-where-sessions-load-it) |

262| `Marketplace "<name>" is registered from an untrusted source` | [Plugin errors](#marketplace-is-registered-from-an-untrusted-source) |270| `Marketplace "<name>" is registered from an untrusted source` | [Plugin errors](#marketplace-is-registered-from-an-untrusted-source) |

263| `Claude Code refuses the marketplace name "<name>"` | [Plugin errors](#claude-code-refuses-the-marketplace-name) |271| `Claude Code refuses the marketplace name "<name>"` | [Plugin errors](#claude-code-refuses-the-marketplace-name) |

264| `Marketplace name impersonates an official Anthropic/Claude marketplace` | [Plugin errors](#claude-code-refuses-the-marketplace-name) |272| `Marketplace name impersonates an official Anthropic/Claude marketplace` | [Plugin errors](#claude-code-refuses-the-marketplace-name) |


358| `Claude Code's fullscreen renderer didn't finish starting last time on this machine` / `Claude Code's fullscreen renderer has repeatedly failed to start on this machine` | [Fullscreen rendering](/docs/pt/fullscreen#fullscreen-renderer-didnt-finish-starting) |366| `Claude Code's fullscreen renderer didn't finish starting last time on this machine` / `Claude Code's fullscreen renderer has repeatedly failed to start on this machine` | [Fullscreen rendering](/docs/pt/fullscreen#fullscreen-renderer-didnt-finish-starting) |

359| `Claude Code exited after an unrecoverable interface error (...)` | [Configuration warnings](#exited-after-an-unrecoverable-interface-error) |367| `Claude Code exited after an unrecoverable interface error (...)` | [Configuration warnings](#exited-after-an-unrecoverable-interface-error) |

360| `Agent descriptions are over the 15.0k-token limit` | [Configuration warnings](#agent-descriptions-are-over-the-15000-token-limit) |368| `Agent descriptions are over the 15.0k-token limit` | [Configuration warnings](#agent-descriptions-are-over-the-15000-token-limit) |

369| `hook needs quotes around a path with a space` | [Configuration warnings](#hook-needs-quotes-around-a-path-with-a-space) |

361| `Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account` | [Configuration warnings](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) |370| `Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account` | [Configuration warnings](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) |

371| `N skill or command names refused: run with --debug to see which ([names]), rename, then restart` | [Configuration warnings](#skill-or-command-name-refused) |

362| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Configuration warnings](#workspace-has-not-been-trusted) |372| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Configuration warnings](#workspace-has-not-been-trusted) |

363| `is a network path, which cannot be added as a working directory` | [Configuration warnings](#working-directory-is-a-network-path) |373| `is a network path, which cannot be added as a working directory` | [Configuration warnings](#working-directory-is-a-network-path) |

364| `Remote managed settings failed to load (<cause>)` | [Configuration warnings](#remote-managed-settings-failed-to-load) |374| `Remote managed settings failed to load (<cause>)` | [Configuration warnings](#remote-managed-settings-failed-to-load) |


447| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/pt/env-vars) | não definido | Defina como `1` em sessões não supervisionadas, como jobs de CI, para tentar novamente erros de capacidade `429` e `529` indefinidamente em vez de falhar após `CLAUDE_CODE_MAX_RETRIES` tentativas. Claude Code falha imediatamente quando uma requisição de velocidade padrão recebe um `429` que relata um limite de gastos ou créditos de uso esgotados, mesmo um de um [limite de gastos de gateway](#spend-limit-reached) que é redefinido em um cronograma. Antes da v2.1.239, o watchdog tentava novamente esses erros indefinidamente. Para requisições no modo rápido, veja [Handle rate limits](/docs/pt/fast-mode#handle-rate-limits). Na v2.1.199 ou posterior, também aumenta a contagem padrão de novas tentativas para outros erros transitórios, como erros de servidor, timeouts e conexões perdidas, para 300, aproximadamente três horas de backoff, e remove o limite de 15 em `CLAUDE_CODE_MAX_RETRIES` se você definir essa variável explicitamente. |457| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/pt/env-vars) | não definido | Defina como `1` em sessões não supervisionadas, como jobs de CI, para tentar novamente erros de capacidade `429` e `529` indefinidamente em vez de falhar após `CLAUDE_CODE_MAX_RETRIES` tentativas. Claude Code falha imediatamente quando uma requisição de velocidade padrão recebe um `429` que relata um limite de gastos ou créditos de uso esgotados, mesmo um de um [limite de gastos de gateway](#spend-limit-reached) que é redefinido em um cronograma. Antes da v2.1.239, o watchdog tentava novamente esses erros indefinidamente. Para requisições no modo rápido, veja [Handle rate limits](/docs/pt/fast-mode#handle-rate-limits). Na v2.1.199 ou posterior, também aumenta a contagem padrão de novas tentativas para outros erros transitórios, como erros de servidor, timeouts e conexões perdidas, para 300, aproximadamente três horas de backoff, e remove o limite de 15 em `CLAUDE_CODE_MAX_RETRIES` se você definir essa variável explicitamente. |

448| [`CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`](/docs/pt/env-vars) | não definido | Tempo máximo em milissegundos que cada requisição de API passa aguardando erros `429` e `529` quando `CLAUDE_CODE_RETRY_WATCHDOG` está definido. Quando não definido, a espera não tem limite. Requer Claude Code v2.1.295 ou posterior. |458| [`CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`](/docs/pt/env-vars) | não definido | Tempo máximo em milissegundos que cada requisição de API passa aguardando erros `429` e `529` quando `CLAUDE_CODE_RETRY_WATCHDOG` está definido. Quando não definido, a espera não tem limite. Requer Claude Code v2.1.295 ou posterior. |

449| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](/docs/pt/env-vars) | 500 | Atraso inicial em milissegundos do backoff entre novas tentativas de uma requisição que a API rejeita com um erro de sobrecarga `529`. Aumente-o, até 32000, para distribuir as novas tentativas por uma janela mais longa quando a API estiver no limite de capacidade. Não tem efeito quando `CLAUDE_CODE_RETRY_WATCHDOG` está definido como `1`, ou quando a requisição rejeitada foi enviada no [modo rápido](/docs/pt/fast-mode#handle-rate-limits). Requer Claude Code v2.1.292 ou posterior. |459| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](/docs/pt/env-vars) | 500 | Atraso inicial em milissegundos do backoff entre novas tentativas de uma requisição que a API rejeita com um erro de sobrecarga `529`. Aumente-o, até 32000, para distribuir as novas tentativas por uma janela mais longa quando a API estiver no limite de capacidade. Não tem efeito quando `CLAUDE_CODE_RETRY_WATCHDOG` está definido como `1`, ou quando a requisição rejeitada foi enviada no [modo rápido](/docs/pt/fast-mode#handle-rate-limits). Requer Claude Code v2.1.292 ou posterior. |

460| [`CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS`](/docs/pt/env-vars) | 32000 | Teto em milissegundos do backoff entre novas tentativas de uma requisição que a API rejeita com um erro de sobrecarga `529`. Aumente-o, até 64000, para que as novas tentativas posteriores continuem se espaçando quando a API estiver no limite de capacidade. Não tem efeito quando `CLAUDE_CODE_RETRY_WATCHDOG` está definido como `1`, ou quando a requisição rejeitada foi enviada no [modo rápido](/docs/pt/fast-mode#handle-rate-limits). Requer Claude Code v2.1.296 ou posterior. |

450| [`API_TIMEOUT_MS`](/docs/pt/env-vars) | 600000 | Timeout por requisição em milissegundos. Aumente-o para redes lentas ou proxies. Também limita quanto tempo Claude Code aguarda os cabeçalhos de resposta, conforme descrito em [No response from API](#no-response-from-api). |461| [`API_TIMEOUT_MS`](/docs/pt/env-vars) | 600000 | Timeout por requisição em milissegundos. Aumente-o para redes lentas ou proxies. Também limita quanto tempo Claude Code aguarda os cabeçalhos de resposta, conforme descrito em [No response from API](#no-response-from-api). |

451| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](/docs/pt/env-vars) | não definido | Limite de reenvios de uma [requisição sem streaming](#streaming-response-ended-before-any-complete-data-was-received) que atinge o timeout. Ao atingir o limite, a requisição falha. Uma resposta do Claude que leva mais tempo que o timeout para ser gerada atinge o timeout novamente a cada reenvio, então defina um número baixo, como `0`, para falhar mais cedo. Cada tentativa sem streaming atinge o timeout após 300 segundos em uma sessão local, ou após `API_TIMEOUT_MS` quando você define um valor positivo. Requer Claude Code v2.1.285 ou posterior. |462| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](/docs/pt/env-vars) | não definido | Limite de reenvios de uma [requisição sem streaming](#streaming-response-ended-before-any-complete-data-was-received) que atinge o timeout. Ao atingir o limite, a requisição falha. Uma resposta do Claude que leva mais tempo que o timeout para ser gerada atinge o timeout novamente a cada reenvio, então defina um número baixo, como `0`, para falhar mais cedo. Cada tentativa sem streaming atinge o timeout após 300 segundos em uma sessão local, ou após `API_TIMEOUT_MS` quando você define um valor positivo. Requer Claude Code v2.1.285 ou posterior. |

452| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/pt/env-vars) | não definido | Prazo em milissegundos para o primeiro byte de resposta de uma requisição de streaming. Requer Claude Code v2.1.242 ou posterior. Para saber como Claude Code escolhe o prazo quando esta variável não está definida, veja [No response from API](#no-response-from-api). |463| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/pt/env-vars) | não definido | Prazo em milissegundos para o primeiro byte de resposta de uma requisição de streaming. Requer Claude Code v2.1.242 ou posterior. Para saber como Claude Code escolhe o prazo quando esta variável não está definida, veja [No response from API](#no-response-from-api). |


2045Essas etapas alteram um de seus próprios ambientes. Um [ambiente compartilhado pela organização](/docs/pt/cloud-environments#organization-shared-environments) abre como somente leitura no seletor, então peça a um Owner para alterar seu acesso de rede na página **Cloud environments** em [admin settings](https://claude.ai/admin-settings).2056Essas etapas alteram um de seus próprios ambientes. Um [ambiente compartilhado pela organização](/docs/pt/cloud-environments#organization-shared-environments) abre como somente leitura no seletor, então peça a um Owner para alterar seu acesso de rede na página **Cloud environments** em [admin settings](https://claude.ai/admin-settings).

2046 2057 

2047* Abra seu ambiente para edição, ou a partir do [formulário da rotina](/docs/pt/routines#environments-and-network-access) ou a partir do [seletor de ambiente](/docs/pt/cloud-environments#configure-your-environment) onde você inicia sessões na nuvem.2058* Abra seu ambiente para edição, ou a partir do [formulário da rotina](/docs/pt/routines#environments-and-network-access) ou a partir do [seletor de ambiente](/docs/pt/cloud-environments#configure-your-environment) onde você inicia sessões na nuvem.

2048* No diálogo **Edit environment**, altere **Network access** de **Trusted** para **Custom**, depois adicione o domínio bloqueado a **Allowed domains**. Digite um domínio por linha. Marque **Also include default list of common package managers** para manter a [allowlist padrão](/docs/pt/cloud-environments#default-allowed-domains) junto com seus domínios personalizados. Selecione **Full** em vez disso se você quiser acesso irrestrito.2059* No diálogo **Edit cloud environment**, altere **Network access** de **Trusted** para **Custom**, depois adicione o domínio bloqueado a **Allowed domains**. Digite um domínio por linha. Marque **Also include default list of common package managers** para manter a [allowlist padrão](/docs/pt/cloud-environments#default-allowed-domains) junto com seus domínios personalizados. Selecione **Full** em vez disso se você quiser acesso irrestrito.

2049* Clique em **Save changes**. A próxima execução usa a allowlist atualizada. Para uma sessão na nuvem que já está aberta, veja [quando uma mudança de acesso de rede alcança sessões existentes](/docs/pt/cloud-environments#network-access).2060* Clique em **Save changes**. A próxima execução usa a allowlist atualizada. Para uma sessão na nuvem que já está aberta, veja [quando uma mudança de acesso de rede alcança sessões existentes](/docs/pt/cloud-environments#network-access).

2050 2061 

2051Veja [Network access](/docs/pt/cloud-environments#network-access) para níveis de acesso e a allowlist padrão. Sessões locais da CLI não são afetadas por essa política.2062Veja [Network access](/docs/pt/cloud-environments#network-access) para níveis de acesso e a allowlist padrão. Sessões locais da CLI não são afetadas por essa política.


2097 2108 

2098Antes da v2.1.236, Claude Code mostrava um TypeError JavaScript bruto em vez dessas mensagens.2109Antes da v2.1.236, Claude Code mostrava um TypeError JavaScript bruto em vez dessas mensagens.

2099 2110 

2111<h3 id="failed-to-fetch-session-from-sessions-api">

2112 Failed to fetch session from Sessions API

2113</h3>

2114 

2115Essa mensagem significa que Claude Code encontrou a [sessão na nuvem que você pediu para trazer ao seu terminal](/docs/pt/claude-code-on-the-web#from-cloud-to-terminal), mas não conseguiu ler seu histórico de conversa dos servidores da Anthropic, então não a abriu:

2116 

2117```text theme={null}

2118Failed to fetch session from Sessions API: Failed to fetch session logs

2119```

2120 

2121Você a vê após `claude --teleport`, `/teleport`, ou ao escolher a sessão na lista [`/tasks`](/docs/pt/commands). `claude --teleport <session-id>` a imprime e sai com código 1.

2122 

2123**O que fazer:**

2124 

2125* Execute o mesmo teleport novamente. Se falhar da mesma forma, [relate o problema](#report-an-error)

2126 

2127Antes da v2.1.296, Claude Code não tentava novamente uma leitura com falha e, após uma, podia abrir a sessão com uma conversa vazia e relatar sucesso em vez de imprimir essa mensagem.

2128 

2100<h3 id="couldnt-reconnect-to-your-remote-control-session">2129<h3 id="couldnt-reconnect-to-your-remote-control-session">

2101 Couldn't reconnect to your Remote Control session2130 Couldn't reconnect to your Remote Control session

2102</h3>2131</h3>


2344* Se a mensagem relatar um limite de dimensão ou tamanho, redimensione ou recomprima a imagem abaixo desse limite antes de anexar.2373* Se a mensagem relatar um limite de dimensão ou tamanho, redimensione ou recomprima a imagem abaixo desse limite antes de anexar.

2345* Se a mensagem nomear uma causa, como um JPEG CMYK, um WebP animado ou um arquivo possivelmente danificado, salve novamente a imagem no formato que a mensagem sugere e anexe-a novamente.2374* Se a mensagem nomear uma causa, como um JPEG CMYK, um WebP animado ou um arquivo possivelmente danificado, salve novamente a imagem no formato que a mensagem sugere e anexe-a novamente.

2346 2375 

2376<h3 id="request-rejected-as-unprocessable-by-the-model">

2377 Request rejected as unprocessable by the model

2378</h3>

2379 

2380A API recusou a requisição como uma que o modelo não consegue processar. A mensagem é da própria API.

2381 

2382```text theme={null}

2383API Error: 400 Request rejected as unprocessable by the model (too many or oversized images, or unsupported parameters)

2384```

2385 

2386O Claude Code pode remover as imagens e documentos mais antigos de uma requisição recusada e enviá-la novamente. Antes da v2.1.290, o Claude Code não removia imagens nessa recusa, então uma sessão longa que acumulasse centenas delas podia falhar com esse erro a cada turno.

2387 

2388**O que fazer:**

2389 

2390* Se a mensagem continuar aparecendo em uma conversa com imagens ou documentos, remova-os você mesmo. Pressione Esc duas vezes para voltar antes dos turnos que os adicionaram, ou execute `/clear` para começar do zero.

2391 

2347<h3 id="pdf-errors">2392<h3 id="pdf-errors">

2348 Erros de PDF2393 Erros de PDF

2349</h3>2394</h3>


2413* Remova ou [desabilite](/docs/pt/mcp#disable-a-server-without-removing-it) o servidor MCP que declara o esquema inválido. O erro nomeia a ferramenta apenas por posição. Na v2.1.216 ou posterior, verifique o log de cada servidor para uma linha nomeando uma ferramenta cujo esquema de entrada seria rejeitado. Se nenhum log nomear uma, desabilite servidores um de cada vez.2458* Remova ou [desabilite](/docs/pt/mcp#disable-a-server-without-removing-it) o servidor MCP que declara o esquema inválido. O erro nomeia a ferramenta apenas por posição. Na v2.1.216 ou posterior, verifique o log de cada servidor para uma linha nomeando uma ferramenta cujo esquema de entrada seria rejeitado. Se nenhum log nomear uma, desabilite servidores um de cada vez.

2414* Se você mantém o servidor, corrija o `input_schema` da ferramenta. O esquema deve ser um JSON Schema válido, e nomes de propriedades de nível superior devem ter 1 a 64 caracteres e usar apenas letras ASCII e dígitos, `_`, `.` e `-`. Veja [Ferramentas com esquemas de entrada inválidos](/docs/pt/mcp#tools-with-invalid-input-schemas).2459* Se você mantém o servidor, corrija o `input_schema` da ferramenta. O esquema deve ser um JSON Schema válido, e nomes de propriedades de nível superior devem ter 1 a 64 caracteres e usar apenas letras ASCII e dígitos, `_`, `.` e `-`. Veja [Ferramentas com esquemas de entrada inválidos](/docs/pt/mcp#tools-with-invalid-input-schemas).

2415 2460 

2461<h3 id="mcp-tool-name-over-128-characters">

2462 Nome de ferramenta MCP com mais de 128 caracteres

2463</h3>

2464 

2465Um servidor MCP lista uma ferramenta cujo nome completo, como `mcp__<server>__<tool>`, é mais longo que os 128 caracteres que a API aceita. Claude Code [deixa essa ferramenta fora das ferramentas que envia para Claude](/docs/pt/mcp#tools-with-names-longer-than-128-characters), e as outras ferramentas do servidor continuam funcionando. Em uma sessão que você inicia com `claude --debug` a partir do seu shell, Claude Code escreve esta mensagem no log de depuração em `~/.claude/debug/<session-id>.txt`:

2466 

2467```text theme={null}

2468Tool "mcp__<server>__<tool>" is not sent to Claude: its name has <N> characters and the API accepts at most 128

2469```

2470 

2471**O que fazer:**

2472 

2473* Se você mantém o servidor, encurte o nome da ferramenta.

2474* Se o servidor está em sua [configuração MCP](/docs/pt/mcp#mcp-installation-scopes), dê a ele um nome mais curto lá, como `db` no lugar de `analytics-database`. Depois atualize o que se refere ao servidor ou às suas ferramentas pelo nome antigo, como [regras de permissão](/docs/pt/permissions#mcp) e [matchers de hook](/docs/pt/hooks#match-mcp-tools).

2475* Se um [plugin agrupa o servidor](/docs/pt/mcp#plugin-provided-mcp-servers), o nome completo da ferramenta também inclui o nome do plugin. Peça ao mantenedor do plugin para encurtar o nome do servidor ou da ferramenta.

2476 

2477Antes da v2.1.292, Claude Code enviava a ferramenta mesmo assim, e a API rejeitava cada requisição que a incluía com `API Error: 400 ... tools.N.custom.name: String should have at most 128 characters`.

2478 

2416<h3 id="tool-use-name-over-200-characters">2479<h3 id="tool-use-name-over-200-characters">

2417 tool\_use.name com mais de 200 caracteres2480 tool\_use.name com mais de 200 caracteres

2418</h3>2481</h3>


3022 3085 

3023A mensagem aparece quando você [cria uma sessão na nuvem a partir do terminal](/docs/pt/claude-code-on-the-web#from-terminal-to-cloud) e quando você envia um comando que precisa de sessões na nuvem, como `/teleport`, `/remote-env` ou `/web-setup`. Antes da v2.1.268, enviar um desses comandos retornava [`Unknown command`](#unknown-command).3086A mensagem aparece quando você [cria uma sessão na nuvem a partir do terminal](/docs/pt/claude-code-on-the-web#from-terminal-to-cloud) e quando você envia um comando que precisa de sessões na nuvem, como `/teleport`, `/remote-env` ou `/web-setup`. Antes da v2.1.268, enviar um desses comandos retornava [`Unknown command`](#unknown-command).

3024 3087 

3025Esta é uma política de organização do lado do servidor, então não pode ser sobrescrita por configurações locais, variáveis de ambiente ou flags da CLI.3088Se a mensagem, em vez disso, nomear uma credencial que esta sessão está usando e terminar com `Cloud sessions use your claude.ai login.`, consulte [Cloud sessions use your claude.ai login](#cloud-sessions-use-your-claude-ai-login). Se o Claude Code não conseguiu carregar a política da sua organização de forma alguma, você verá [uma mensagem diferente](#couldnt-verify-your-organizations-policy-for-cloud-sessions).

3026 

3027Se o Claude Code ainda não carregou a política da sua organização ou não consegue buscá-la, esses comandos respondem `Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.`.

3028 3089 

3029**O que fazer:**3090**O que fazer:**

3030 3091 

3031* Peça a um [Owner](/docs/pt/server-managed-settings#access-control) da sua organização para ativar sessões na nuvem nas configurações de administrador do Claude Code em [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)3092* Peça a um [Owner](/docs/pt/server-managed-settings#access-control) da sua organização para ativar sessões na nuvem nas configurações de administrador do Claude Code em [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)

3032* Se a mensagem disser que não foi possível verificar a política, verifique sua conexão de rede, reinicie o Claude Code e tente novamente3093 

3094<h3 id="cloud-sessions-use-your-claude-ai-login">

3095 Cloud sessions use your claude.ai login

3096</h3>

3097 

3098Quando a [negação por política](#cloud-sessions-are-disabled-by-your-organizations-policy) nomeia uma credencial que esta sessão está usando e termina com esta frase, o Claude Code verificou a política de sessões na nuvem da organização que emitiu essa credencial. Essa organização pode ser diferente daquela à qual seu login do claude.ai pertence:

3099 

3100```text theme={null}

3101Cloud sessions are disabled by your organization's policy. This session is using ANTHROPIC_API_KEY, so Claude Code checked the policy for the organization that key belongs to. Cloud sessions use your claude.ai login.

3102```

3103 

3104A última frase significa que as sessões na nuvem são executadas com seu login do claude.ai, e não com essa credencial. Essa forma aparece quando você inicia, retoma ou envia uma mensagem para uma sessão na nuvem a partir do seu shell, como com `--cloud` ou `--teleport`. Antes da v2.1.296, o Claude Code também imprimia nesse caso a forma que instrui você a contatar o administrador da sua organização.

3105 

3106<h3 id="couldnt-verify-your-organizations-policy-for-cloud-sessions">

3107 Couldn't verify your organization's policy for cloud sessions

3108</h3>

3109 

3110Essas mensagens significam que o Claude Code não conseguiu carregar a política da sua organização, que ele verifica antes de criar, retomar ou enviar mensagens para uma [sessão na nuvem](/docs/pt/claude-code-on-the-web). Enquanto a requisição da política não terminou, a mensagem é:

3111 

3112```text theme={null}

3113Couldn't verify your organization's policy for cloud sessions. Check your network connection and try again.

3114```

3115 

3116Dentro de uma sessão, um comando que precisa de sessões na nuvem, como `/teleport` ou `/web-setup`, também exibe esta mensagem. Ele faz isso mesmo onde seu shell imprimiria uma forma `Cloud sessions aren't available:`, e sua segunda frase diz `Check your network connection, then restart Claude Code and try again.`

3117 

3118Depois que a requisição da política falha, a mensagem diz o que falhou. Isso se aplica quando você inicia, retoma ou envia uma mensagem para uma sessão na nuvem a partir do seu shell com uma flag como `--cloud` ou `--teleport`. Sem rota até a API, ela diz:

3119 

3120```text theme={null}

3121Cloud sessions aren't available: couldn't reach api.anthropic.com to load your organization's policy. Check your network or proxy.

3122```

3123 

3124Outras falhas seguem a mesma abertura com sua própria causa, como um proxy que recusou a requisição com HTTP 403, um erro de servidor ou credenciais que a API não aceitou. Quando a API não aceitou uma credencial que esta sessão usa no lugar do seu login do claude.ai, como uma variável de ambiente `ANTHROPIC_API_KEY`, a mensagem também pode nomeá-la e dizer para removê-la:

3125 

3126```text theme={null}

3127Cloud sessions aren't available: api.anthropic.com didn't accept this session's credentials when Claude Code asked for your organization's policy. Cloud sessions use your claude.ai login. ANTHROPIC_API_KEY is set, so this session is using API-key auth — unset it (or run in a shell without it) to use cloud sessions.

3128```

3129 

3130Antes da v2.1.296, essas falhas também imprimiam a mensagem `Couldn't verify`.

3131 

3132**O que fazer:**

3133 

3134* Para a mensagem `Couldn't verify`, verifique sua conexão de rede e tente novamente. Dentro de uma sessão, reinicie o Claude Code primeiro

3135* Para uma mensagem `Cloud sessions aren't available:`, faça o que sua causa exige, como verificar seu proxy ou remover a credencial que ela nomeia, e execute o comando novamente

3136 

3137<h3 id="nothing-was-stashed-because-a-folder-replaced-a-tracked-file">

3138 Nada foi guardado no stash porque uma pasta substituiu um arquivo rastreado

3139</h3>

3140 

3141Esta mensagem significa que uma pasta no seu checkout agora está onde antes havia um arquivo ou link rastreado pelo git. Ela aparece depois que você escolhe a opção de stash ao trazer uma [sessão na nuvem](/docs/pt/claude-code-on-the-web#from-cloud-to-terminal) para o seu terminal, por exemplo com `claude --teleport` ou `/teleport`. Fazer stash desse estado poderia excluir os arquivos dentro da pasta, então o Claude Code recusa o stash e deixa seu checkout e seu índice inalterados:

3142 

3143```text wrap theme={null}

3144Error: Nothing was stashed: "f" is now a folder in place of a tracked file or link, and stashing could delete what's in it for good. Commit the change or move the folder somewhere else, then try again.

3145```

3146 

3147**O que fazer:**

3148 

3149* Faça commit da alteração ou mova a pasta para outro lugar, como a mensagem diz, e execute o teleport novamente

3033 3150 

3034<h3 id="the-json-schema-value-is-not-a-valid-json-schema">3151<h3 id="the-json-schema-value-is-not-a-valid-json-schema">

3035 O valor de `--json-schema` não é um JSON Schema válido3152 O valor de `--json-schema` não é um JSON Schema válido


3577 3694 

3578* **Você não passou um branch base**: o Claude Code comparou com o branch padrão do repositório e sugere passar seu branch base explicitamente, como no exemplo acima3695* **Você não passou um branch base**: o Claude Code comparou com o branch padrão do repositório e sugere passar seu branch base explicitamente, como no exemplo acima

3579* **Você passou um branch base que já estava no seu clone**: a dica diz ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``3696* **Você passou um branch base que já estava no seu clone**: a dica diz ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``

3580* **Você passou um branch base que não estava no seu clone**: o Claude Code fez fetch dele a partir do origin antes de comparar. A dica diz ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; quando o Claude Code não consegue determinar se seu clone é raso (shallow), ele sugere `git fetch --unshallow origin` em vez disso. Antes da v2.1.221, a dica sugeria `git fetch --unshallow origin` para todo branch base obtido por fetch, e em um clone completo esse comando falha com `fatal: --unshallow on a complete repository does not make sense`.3697* **Você passou um branch base que não estava no seu clone**: o Claude Code fez fetch dele a partir do origin antes de comparar. A dica diz ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; quando o Claude Code não consegue determinar se seu clone é shallow, ele sugere `git fetch --unshallow origin`. Antes da v2.1.221, a dica sugeria `git fetch --unshallow origin` para todo branch base obtido por fetch, e em um clone completo esse comando falha com `fatal: --unshallow on a complete repository does not make sense`.

3581 3698 

3582**O que fazer:**3699**O que fazer:**

3583 3700 


3835 Claude Code couldn't restart3952 Claude Code couldn't restart

3836</h3>3953</h3>

3837 3954 

3838O Claude Code estava reiniciando, por exemplo para ativar ou desativar a renderização em tela cheia depois que você executou [`/tui`](/docs/pt/fullscreen#enable-fullscreen-rendering). Ele fechou a sessão, mas não conseguiu iniciar o novo processo, então imprimiu esta mensagem e saiu com o status 1:3955Quando essa mensagem diz que sua conversa está salva, a conversa está no disco e você pode retomá-la de onde parou. O Claude Code estava se reiniciando, por exemplo para ativar ou desativar a renderização em tela cheia depois que você executou [`/tui`](/docs/pt/fullscreen#enable-fullscreen-rendering), e não conseguiu iniciar o novo processo, então saiu com status 1:

3839 3956 

3840```text theme={null}3957```text theme={null}

3841Claude Code couldn't restart. Your conversation is saved. Start Claude Code again and run /resume to pick it up.3958Claude Code couldn't restart. Your conversation is saved. Start Claude Code again and run /resume to pick it up.


3845 3962 

3846**O que fazer:**3963**O que fazer:**

3847 3964 

3848* Execute `claude` novamente no seu shell a partir do mesmo diretório. Se a mensagem disse que sua conversa foi salva, execute [`/resume`](/docs/pt/sessions#resume-a-session) na nova sessão e selecione-a3965* Execute `claude` novamente no seu shell. Se a mensagem disse que sua conversa está salva, execute [`/resume`](/docs/pt/sessions#resume-a-session) na nova sessão e selecione a conversa. Se ela não estiver na lista, [amplie o seletor de sessões](/docs/pt/sessions#where-the-session-picker-looks)

3849* Se as reinicializações continuarem falhando, inicie o Claude Code a partir do seu shell com [`claude --debug-file claude-debug.log`](/docs/pt/cli-reference#cli-flags). Se uma reinicialização a partir dessa sessão falhar, o `claude-debug.log` no diretório de onde você iniciou registra uma linha `Failed to relaunch:` com o erro do sistema operacional. Inclua essa linha ao [relatar o problema](#report-an-error)3966* Se as reinicializações continuarem falhando, inicie o Claude Code a partir do seu shell com [`claude --debug-file claude-debug.log`](/docs/pt/cli-reference#cli-flags). Se uma reinicialização a partir dessa sessão falhar, o `claude-debug.log` no diretório de onde você iniciou registra uma linha `Failed to relaunch:` com o erro do sistema operacional. Inclua essa linha ao [relatar o problema](#report-an-error)

3850 3967 

3851<h3 id="couldnt-open-claude-desktop">3968<h3 id="couldnt-open-claude-desktop">


4894 5011 

4895Quando Claude Code não consegue resumir os commits, a linha de detalhe lê `The worktree has unpushed commits` em vez disso. Na [agent view](/docs/pt/agent-view), a linha da sessão mostra `not deleted` com a mesma razão.5012Quando Claude Code não consegue resumir os commits, a linha de detalhe lê `The worktree has unpushed commits` em vez disso. Na [agent view](/docs/pt/agent-view), a linha da sessão mostra `not deleted` com a mesma razão.

4896 5013 

4897Commits em um remote não bloqueiam o delete. Nem commits na cópia local do branch padrão do seu remote `origin`, desde que esse branch esteja verificado no seu checkout principal, o diretório do repositório em si em vez de um worktree.5014Commits em um remote não bloqueiam o delete. Nem commits na cópia local do branch padrão do seu remote `origin`, desde que esse branch esteja em checkout no seu checkout principal, o diretório do repositório em si em vez de um worktree.

4898 5015 

4899**O que fazer:**5016**O que fazer:**

4900 5017 

4901* Para manter os commits, envie o branch do worktree, ou mescle-o no branch padrão verificado no seu checkout principal, depois delete a sessão novamente5018* Para manter os commits, envie o branch do worktree, ou mescle-o no branch padrão em checkout no seu checkout principal, depois delete a sessão novamente

4902* Para descartar os commits, execute o comando `claude rm <id> --discard-unpushed` que a mensagem imprimiu, ou pressione `Ctrl+X` duas vezes na linha da sessão na agent view novamente. Isso remove a sessão e o worktree junto com seu branch, os commits não enviados, e quaisquer mudanças sem commit. Se o worktree ganhou um commit desde a recusa, Claude Code o mantém novamente e mostra o estado atualizado5019* Para descartar os commits, execute o comando `claude rm <id> --discard-unpushed` que a mensagem imprimiu, ou pressione `Ctrl+X` duas vezes na linha da sessão na agent view novamente. Isso remove a sessão e o worktree junto com seu branch, os commits não enviados, e quaisquer mudanças sem commit. Se o worktree ganhou um commit desde a recusa, Claude Code o mantém novamente e mostra o estado atualizado

4903* Quando a mensagem diz que o worktree também é registrado por outra sessão terminada, deletar novamente não o descarta: envie os commits, depois delete a sessão novamente5020* Quando a mensagem diz que o worktree também é registrado por outra sessão terminada, deletar novamente não o descarta: envie os commits, depois delete a sessão novamente

4904 5021 


5366* Encurte o frontmatter `description` de seus arquivos de agente, ou peça a Claude para aparar para você.5483* Encurte o frontmatter `description` de seus arquivos de agente, ou peça a Claude para aparar para você.

5367* Remova arquivos de agente que você não usa mais.5484* Remova arquivos de agente que você não usa mais.

5368 5485 

5486<h3 id="hook-needs-quotes-around-a-path-with-a-space">

5487 Hook precisa de aspas em torno de um caminho com espaço

5488</h3>

5489 

5490Esta notificação na visualização de conversa significa que o script de um hook não foi executado porque seu caminho tem um espaço e não está entre aspas. Esse hook é um hook [`asyncRewake`](/docs/pt/hooks#run-hooks-in-the-background) em forma de shell. Em seu `command`, um interpretador como `python3` é seguido por um placeholder de caminho sem aspas, e o caminho resolvido contém um espaço.

5491 

5492A notificação começa com o nome do evento do hook e nomeia o script:

5493 

5494```text theme={null}

5495Stop hook needs quotes around a path with a space (check.py)

5496```

5497 

5498**O que fazer:**

5499 

5500* No `command` do hook que executa o script que a notificação nomeia, coloque o caminho entre aspas duplas. Em um arquivo JSON, escreva-o como `"command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/check.py\""`.

5501 

5369<h3 id="a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved">5502<h3 id="a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved">

5370 Uma skill, comando ou workflow não foi carregado porque seu nome é reservado5503 Uma skill, comando ou workflow não foi carregado porque seu nome é reservado

5371</h3>5504</h3>


5386 5519 

5387Antes da v2.1.282, Claude Code carregava skills e comandos com esses nomes.5520Antes da v2.1.282, Claude Code carregava skills e comandos com esses nomes.

5388 5521 

5522<h3 id="skill-or-command-name-refused">

5523 Nome de skill ou comando recusado

5524</h3>

5525 

5526Este aviso de inicialização significa que Claude Code recusou o nome de pelo menos uma [skill ou comando personalizado](/docs/pt/skills), então ela não foi carregada ou foi carregada sem seu campo `name`:

5527 

5528```text theme={null}

55291 skill or command name refused: run with --debug to see which ([names]), rename, then restart — a name may not hold hidden, direction-changing or blank-like characters, < or >, or be over 256 characters

5530```

5531 

5532* **Não carregada**: Claude Code recusou o nome pelo qual uma skill ou comando é conhecido, como o nome do seu diretório ou o nome ou subpasta de um arquivo de comando. Ela não aparece no menu `/` e Claude não pode invocá-la. Sua linha no log de depuração diz `<name> is not offered`.

5533* **Campo `name` ignorado**: Claude Code recusou o `name` do frontmatter de uma skill. A skill ainda é carregada, mas o menu `/` não mostra o valor de `name` e digitá-lo não invoca a skill. Sua linha no log de depuração diz `<name value> is not shown for <skill>`.

5534 

5535**O que fazer:**

5536 

5537* Inicie Claude Code com `claude --debug` a partir do seu shell e pesquise `[names]` no [log de depuração](/docs/pt/debug-your-config). Cada nome que o aviso conta tem uma linha lá. A linha escreve alguns caracteres ocultos como códigos, como `\u{200B}` para um espaço de largura zero, para que você possa ver onde estão.

5538* Remova os [caracteres que um nome de skill não pode conter](/docs/pt/skills#characters-a-skill-name-cant-hold) renomeando a pasta ou o arquivo ou editando a linha `name:`, ou encurte um nome com mais de 256 caracteres. Depois reinicie a sessão, a menos que o arquivo esteja em um diretório que Claude Code [monitora quanto a alterações](/docs/pt/skills#live-change-detection). Para uma skill de um plugin que você não escreveu, peça ao autor do plugin para renomeá-la.

5539 

5389<h3 id="workspace-has-not-been-trusted">5540<h3 id="workspace-has-not-been-trusted">

5390 O espaço de trabalho não foi confiável5541 O espaço de trabalho não foi confiável

5391</h3>5542</h3>

Details

220</table>220</table>

221 221 

222<span id="fn1" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>1</sup> No Google Cloud's Agent Platform, web search está disponível para Opus 4, Sonnet 4, Haiku 4.5 e modelos posteriores.<br />222<span id="fn1" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>1</sup> No Google Cloud's Agent Platform, web search está disponível para Opus 4, Sonnet 4, Haiku 4.5 e modelos posteriores.<br />

223<span id="fn2" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>2</sup> Nesses provedores, auto mode suporta apenas Claude Sonnet 5 ou posterior, Opus 4.7 ou posterior, Haiku 5.5 e os modelos Fable. Consulte [Configuração de Auto mode](/docs/pt/auto-mode-config). Para o modo de permissão em que uma sessão nesses provedores inicia, consulte [Qual modo uma sessão inicia](/docs/pt/permission-modes#which-mode-a-session-starts-in). Na v2.1.158 até v2.1.206, auto mode nesses provedores também exigia definir `CLAUDE_CODE_ENABLE_AUTO_MODE=1`; v2.1.207 removeu o requisito.<br />223<span id="fn2" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>2</sup> Nesses provedores, auto mode suporta apenas Claude Sonnet 5 ou posterior, Opus 4.7 ou posterior, Haiku 5.5 e os modelos Fable. Consulte [Configuração de Auto mode](/docs/pt/auto-mode-config). Para o modo de permissão em que uma sessão nesses provedores inicia, consulte [Qual modo uma sessão inicia](/docs/pt/permission-modes#which-mode-a-session-starts-in).<br />

224<span id="fn3" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>3</sup> Sujeito ao seu acordo com o provedor de nuvem.<br />224<span id="fn3" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>3</sup> Sujeito ao seu acordo com o provedor de nuvem.<br />

225<span id="fn4" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>4</sup> Dashboard e API apenas. [Contribution metrics](/docs/pt/analytics#enable-contribution-metrics) requer uma organização Claude.ai Team ou Enterprise.<br />225<span id="fn4" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>4</sup> Dashboard e API apenas. [Contribution metrics](/docs/pt/analytics#enable-contribution-metrics) requer uma organização Claude.ai Team ou Enterprise.<br />

226<span id="fn5" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>5</sup> Requer Claude Code v2.1.224 ou posterior em macOS e Linux, incluindo Linux dentro do WSL 2. No Windows nativo, requer Claude Code v2.1.234 ou posterior. Com autenticação de chave de API, mensagens são apenas na mesma máquina. No Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform e Microsoft Foundry, mensagens são apenas na mesma máquina e requerem Claude Code v2.1.248 ou posterior. Claude pode encontrar suas [sessões na nuvem](/docs/pt/claude-code-on-the-web) e suas sessões em outras máquinas apenas a partir de uma sessão que está conectada ao [Remote Control](/docs/pt/remote-control). Para conectar, você precisa de um login claude.ai e dos outros [requisitos do Remote Control](/docs/pt/remote-control#requirements). Consulte [Mensagens em sessões em outras máquinas](/docs/pt/cross-session-messaging#message-sessions-on-other-machines).226<span id="fn5" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>5</sup> Requer Claude Code v2.1.224 ou posterior em macOS e Linux, incluindo Linux dentro do WSL 2. No Windows nativo, requer Claude Code v2.1.234 ou posterior. Com autenticação de chave de API, mensagens são apenas na mesma máquina. No Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform e Microsoft Foundry, mensagens são apenas na mesma máquina e requerem Claude Code v2.1.248 ou posterior. Claude pode encontrar suas [sessões na nuvem](/docs/pt/claude-code-on-the-web) e suas sessões em outras máquinas apenas a partir de uma sessão que está conectada ao [Remote Control](/docs/pt/remote-control). Para conectar, você precisa de um login claude.ai e dos outros [requisitos do Remote Control](/docs/pt/remote-control#requirements). Consulte [Mensagens em sessões em outras máquinas](/docs/pt/cross-session-messaging#message-sessions-on-other-machines).

Details

312 312 

313 **O que carrega:** Contexto fresco e isolado contendo:313 **O que carrega:** Contexto fresco e isolado contendo:

314 314 

315 * O prompt do sistema do agente, não o prompt do sistema de Claude Code315 * O system prompt do próprio agente, não o system prompt de Claude Code

316 * Conteúdo completo de skills listadas no campo `skills:` do agente316 * Conteúdo completo de skills listadas no campo `skills:` do agente

317 * CLAUDE.md e status git, exceto os agentes Explore e Plan integrados [omitem ambos](/docs/pt/sub-agents#what-loads-at-startup), e um agente cuja definição define [`omitClaudeMd`](/docs/pt/sub-agents#supported-frontmatter-fields) pula os arquivos CLAUDE.md de usuário, projeto e local317 * CLAUDE.md e status git. Os agentes Explore e Plan integrados [não iniciam com nenhum dos dois](/docs/pt/sub-agents#what-loads-at-startup), e um agente cuja definição define [`omitClaudeMd`](/docs/pt/sub-agents#supported-frontmatter-fields) inicia sem os arquivos CLAUDE.md de usuário, projeto e local.

318 * Qualquer contexto que o agente principal passa no prompt318 * Qualquer contexto que o agente principal passa no prompt

319 319 

320 Para um [fork](/docs/pt/sub-agents#fork-the-current-conversation), Claude Code carrega a conversa pai até agora, prompt do sistema e ferramentas em vez disso.320 Para um [fork](/docs/pt/sub-agents#fork-the-current-conversation), Claude Code carrega a conversa pai até agora, prompt do sistema e ferramentas em vez disso.

Details

22 22 

23| Recurso | Suporte GHES | Notas |23| Recurso | Suporte GHES | Notas |

24| :- | :- | :- |24| :- | :- | :- |

25| Sessões na nuvem | ✅ Suportado | Um proprietário conecta a instância GHES uma vez; os desenvolvedores usam `claude --cloud` ou [claude.ai/code](https://claude.ai/code) como de costume |25| Sessões na nuvem | ✅ Suportado | Um proprietário conecta a instância GHES uma vez; os desenvolvedores usam `claude --cloud` ou [claude.ai/code](https://claude.ai/code) |

26| Code Review | ✅ Suportado | Mesmas revisões automatizadas de PR que github.com |26| Code Review | ✅ Suportado | Mesmas revisões automatizadas de PR que github.com |

27| Claude Security | ✅ Suportado | Disponível em beta público para planos Enterprise em [claude.ai/security](https://claude.ai/security) |27| Claude Security | ✅ Suportado | Disponível em beta público para planos Enterprise em [claude.ai/security](https://claude.ai/security) |

28| Sessões Teleport | ✅ Suportado | Mova sessões entre nuvem e terminal com `--teleport` |28| Sessões Teleport | ✅ Suportado | Mova sessões entre nuvem e terminal com `--teleport` |


35 Configuração do administrador35 Configuração do administrador

36</h2>36</h2>

37 37 

38Um Proprietário conecta sua instância GHES ao Claude Code uma vez. Depois disso, os desenvolvedores em sua organização podem usar repositórios GHES sem nenhuma configuração adicional. Você precisa da função Proprietário ou Proprietário Primário em sua organização Claude e permissão para criar GitHub Apps em sua instância GHES.38Um Proprietário conecta sua instância GHES ao Claude Code uma vez. Você precisa da função Proprietário ou Proprietário Primário em sua organização Claude e permissão para criar GitHub Apps em sua instância GHES.

39 39 

40A configuração guiada gera um manifesto de GitHub App e o redireciona para sua instância GHES para criar o app em um clique. Se seu ambiente bloquear o fluxo de redirecionamento, uma [configuração manual alternativa](#manual-setup) está disponível.40A configuração guiada gera um manifesto de GitHub App e o redireciona para sua instância GHES para criar o app em um clique. Se seu ambiente bloquear o fluxo de redirecionamento, uma [configuração manual alternativa](#manual-setup) está disponível.

41 41 


103 Fluxo de trabalho do desenvolvedor103 Fluxo de trabalho do desenvolvedor

104</h2>104</h2>

105 105 

106Depois que um Proprietário conectar a instância GHES, nenhuma configuração do lado do desenvolvedor é necessária. Claude Code detecta automaticamente o nome do host GHES a partir do git remote em seu diretório de trabalho.106Claude Code detecta automaticamente o nome do host GHES a partir do git remote em seu diretório de trabalho.

107 107 

108Clone um repositório de sua instância GHES como você normalmente faria, substituindo `github.example.com` e o caminho do repositório pelo seu nome de host GHES e repositório:108Clone um repositório de sua instância GHES como você normalmente faria, substituindo `github.example.com` e o caminho do repositório pelo seu nome de host GHES e repositório:

109 109 


228 228 

229Se `claude --cloud` falhar com um erro de clone, verifique se um Owner concluiu a configuração para sua instância GHES e se o GitHub App está instalado no repositório em que você está trabalhando. Peça ao Owner que conectou a instância para confirmar que o nome do host registrado nas configurações do Claude corresponde ao nome do host em seu git remote.229Se `claude --cloud` falhar com um erro de clone, verifique se um Owner concluiu a configuração para sua instância GHES e se o GitHub App está instalado no repositório em que você está trabalhando. Peça ao Owner que conectou a instância para confirmar que o nome do host registrado nas configurações do Claude corresponde ao nome do host em seu git remote.

230 230 

231Se a sessão parar com "Authentication failed while accessing the repository", talvez você não tenha conectado sua própria conta GitHub Enterprise. Conecte-a a partir do seletor de repositório em [claude.ai/code](https://claude.ai/code) e, em seguida, inicie uma nova sessão.

232 

231<h3 id="marketplace-add-fails-with-a-policy-error">233<h3 id="marketplace-add-fails-with-a-policy-error">

232 Falha ao adicionar marketplace com erro de política234 Falha ao adicionar marketplace com erro de política

233</h3>235</h3>

Details

261* Para usar Haiku para tarefas em segundo plano, defina `ANTHROPIC_DEFAULT_HAIKU_MODEL` para um ID de modelo que esteja disponível no seu projeto.261* Para usar Haiku para tarefas em segundo plano, defina `ANTHROPIC_DEFAULT_HAIKU_MODEL` para um ID de modelo que esteja disponível no seu projeto.

262 262 

263<Warning>263<Warning>

264 Modelos Opus têm um preço por token mais alto do que modelos Sonnet, portanto uma implantação que não fixa um modelo primário é cobrada à taxa Opus uma vez que atualiza para v2.1.207 ou posterior. Para manter Sonnet 4.5 como o modelo primário, defina `ANTHROPIC_MODEL` para seu ID de modelo completo. Uma implantação que direciona o padrão com `ANTHROPIC_DEFAULT_SONNET_MODEL` e não define `ANTHROPIC_DEFAULT_OPUS_MODEL` mantém seu modelo Sonnet direcionado como o padrão.264 Modelos Opus têm um preço por token mais alto do que modelos Sonnet, portanto, se você não fixar um modelo primário, será cobrado à taxa Opus. Para usar Sonnet 4.5 como o modelo primário, defina `ANTHROPIC_MODEL` para seu ID de modelo completo. Uma implantação que direciona o padrão com `ANTHROPIC_DEFAULT_SONNET_MODEL` e não define `ANTHROPIC_DEFAULT_OPUS_MODEL` mantém seu modelo Sonnet direcionado como o padrão.

265</Warning>265</Warning>

266 266 

267Antes de v2.1.280, o modelo primário na Plataforma de Agentes do Google Cloud era padrão para Opus 5 e o alias `opus` resolvia para Opus 5 a partir de v2.1.219. Em v2.1.207 através de v2.1.218, o modelo primário na Plataforma de Agentes do Google Cloud era padrão para Opus 4.8 e o alias `opus` resolvia para Opus 4.8. Antes de v2.1.207, o modelo primário era padrão para Sonnet 4.5, o alias `opus` resolvia para Opus 4.6, e tarefas em segundo plano sempre usavam o modelo primário.267Antes de v2.1.280, o modelo primário na Plataforma de Agentes do Google Cloud era padrão para Opus 5 e o alias `opus` resolvia para Opus 5 a partir de v2.1.219. Em v2.1.207 através de v2.1.218, o modelo primário na Plataforma de Agentes do Google Cloud era padrão para Opus 4.8 e o alias `opus` resolvia para Opus 4.8.

268 268 

269Para personalizar modelos ainda mais:269Para personalizar modelos ainda mais:

270 270 

headless.md +6 −6

Details

38 Comece mais rápido com modo bare38 Comece mais rápido com modo bare

39</h3>39</h3>

40 40 

41Adicione `--bare` para reduzir o tempo de inicialização pulando a descoberta automática de hooks, skills, comandos personalizados, [subagentes](/docs/pt/sub-agents), plugins instalados, servidores MCP, memória automática e CLAUDE.md. Sem ele, `claude -p` carrega o mesmo [contexto](/docs/pt/how-claude-code-works#the-context-window) que uma sessão interativa carregaria, incluindo qualquer coisa configurada no diretório de trabalho ou `~/.claude`.41Adicione `--bare` para reduzir o tempo de inicialização pulando a descoberta automática de hooks, skills, comandos personalizados, [subagentes](/docs/pt/sub-agents), plugins instalados, servidores MCP, memória automática e CLAUDE.md. Sem ele, `claude -p` descobre e carrega esses itens como uma sessão interativa faria, incluindo qualquer coisa configurada no diretório de trabalho ou `~/.claude`.

42 42 

43O modo bare é útil para CI e scripts onde você precisa do mesmo resultado em cada máquina. Um hook no `~/.claude` de um colega de trabalho ou um servidor MCP no `.mcp.json` do projeto não serão executados, porque o modo bare nunca os lê. Um diretório que você nomeia com `--add-dir` é uma exceção parcial: o modo bare carrega skills de sua pasta `.claude/skills/`, mas ainda pula suas pastas `.claude/commands/` e `.claude/agents/`. [Skills de diretórios adicionais](/docs/pt/skills#skills-from-additional-directories) cobre o que carrega e o que não carrega.43O modo bare é útil para CI e scripts onde você precisa do mesmo resultado em cada máquina. Um hook no `~/.claude` de um colega de trabalho ou um servidor MCP no `.mcp.json` do projeto não serão executados, porque o modo bare nunca os lê. Um diretório que você nomeia com `--add-dir` é uma exceção parcial: o modo bare carrega skills de sua pasta `.claude/skills/`, mas ainda pula suas pastas `.claude/commands/` e `.claude/agents/`. [Skills de diretórios adicionais](/docs/pt/skills#skills-from-additional-directories) cobre o que carrega e o que não carrega.

44 44 


184 --json-schema '{"type":"object","properties":{"functions":{"type":"array","items":{"type":"string"}}},"required":["functions"]}'184 --json-schema '{"type":"object","properties":{"functions":{"type":"array","items":{"type":"string"}}},"required":["functions"]}'

185```185```

186 186 

187Se o valor não for um JSON Schema válido, `claude` sai com `Error: --json-schema is not a valid JSON Schema` seguido pelo diagnóstico do validador. Claude Code aceita esquemas que usam a palavra-chave `format`, como `"format": "email"`, mas trata `format` como uma anotação e não a impõe. Antes da v2.1.205, Claude Code ignorava silenciosamente um esquema inválido e retornava texto não estruturado, e tratava qualquer esquema contendo `format` como inválido.187Se o valor não for um JSON Schema válido, `claude` sai com `Error: --json-schema is not a valid JSON Schema` seguido pelo diagnóstico do validador. Claude Code aceita esquemas que usam a palavra-chave `format`, como `"format": "email"`, mas trata `format` como uma anotação e não a impõe.

188 188 

189<Tip>189<Tip>

190 Use uma ferramenta como [jq](https://jqlang.org/) para analisar a resposta e extrair campos específicos:190 Use uma ferramenta como [jq](https://jqlang.org/) para analisar a resposta e extrair campos específicos:


281O evento `system/init` relata metadados de sessão incluindo o modelo, ferramentas, servidores MCP e plugins carregados. É o primeiro evento no stream a menos que eventos de inicialização o precedam:281O evento `system/init` relata metadados de sessão incluindo o modelo, ferramentas, servidores MCP e plugins carregados. É o primeiro evento no stream a menos que eventos de inicialização o precedam:

282 282 

283* eventos `plugin_install`, quando [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/pt/env-vars) está definido.283* eventos `plugin_install`, quando [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/pt/env-vars) está definido.

284* [eventos `hook_started`, `hook_progress` e `hook_response`](/docs/pt/agent-sdk/typescript#sdkhookstartedmessage), enquanto um hook [`SessionStart`](/docs/pt/hooks#sessionstart) ou [`Setup`](/docs/pt/hooks#setup) configurado é executado. Estes fazem stream conforme o hook os produz. Claude Code v2.1.169 através v2.1.203 os entregou em um lote após o hook ser concluído, ainda à frente de `system/init`; v2.1.204 restaurou a entrega ao vivo.284* [eventos `hook_started`, `hook_progress` e `hook_response`](/docs/pt/agent-sdk/typescript#sdkhookstartedmessage), enquanto um hook [`SessionStart`](/docs/pt/hooks#sessionstart) ou [`Setup`](/docs/pt/hooks#setup) configurado é executado. Estes fazem stream conforme o hook os produz.

285 285 

286O evento também carrega uma matriz `capabilities` opcional de strings nomeando os comportamentos do protocolo que esta versão do Claude Code implementa, como `interrupt_receipt_v1` ou `interrupt_cancel_queued_v1`. Verifique-a para detectar recursos em vez de comparar strings de versão, e ignore valores que você não reconheça. O campo requer Claude Code v2.1.205 ou posterior e está ausente em versões anteriores. Consulte [`SDKSystemMessage`](/docs/pt/agent-sdk/typescript#sdksystemmessage) para a lista de capacidades.286O evento também carrega uma matriz `capabilities` opcional de strings nomeando os comportamentos do protocolo que esta versão do Claude Code implementa, como `interrupt_receipt_v1` ou `interrupt_cancel_queued_v1`. Verifique-a para detectar recursos em vez de comparar strings de versão, e ignore valores que você não reconheça. Consulte [`SDKSystemMessage`](/docs/pt/agent-sdk/typescript#sdksystemmessage) para a lista de capacidades.

287 287 

288<h4 id="fail-ci-when-a-plugin-or-mcp-server-doesn’t-load">288<h4 id="fail-ci-when-a-plugin-or-mcp-server-doesn’t-load">

289 Falhar CI quando um plugin ou servidor MCP não carrega289 Falhar CI quando um plugin ou servidor MCP não carrega


388 388 

389 * [Skills](/docs/pt/skills) invocadas pelo usuário e comandos personalizados funcionam. Inclua `/skill-name` na string de prompt e Claude Code o expande antes de executar.389 * [Skills](/docs/pt/skills) invocadas pelo usuário e comandos personalizados funcionam. Inclua `/skill-name` na string de prompt e Claude Code o expande antes de executar.

390 * Comandos integrados que só são executados na interface do terminal, como `/login`, não estão disponíveis.390 * Comandos integrados que só são executados na interface do terminal, como `/login`, não estão disponíveis.

391 * `/model`, `/effort`, `/fast`, `/color` e `/rename` aceitam o valor como um argumento, por exemplo `/model sonnet`, e `/mcp` sem argumento imprime um resumo de texto do status do servidor. Essas formas requerem Claude Code v2.1.205 ou posterior e seguem as [notas de disponibilidade de cada comando](/docs/pt/commands#all-commands).391 * `/model`, `/effort`, `/fast`, `/color` e `/rename` aceitam o valor como um argumento, por exemplo `/model sonnet`, e `/mcp` sem argumento imprime um resumo de texto do status do servidor. Essas formas seguem as [notas de disponibilidade de cada comando](/docs/pt/commands#all-commands).

392 * Para alterar uma configuração, passe `key=value` para `/config`, por exemplo `/config thinking=false`.392 * Para alterar uma configuração, passe `key=value` para `/config`, por exemplo `/config thinking=false`.

393 * `/output-style <style>` alterna [estilos de saída](/docs/pt/output-styles) e `/output-style` sozinho os lista. Requer Claude Code v2.1.269 ou posterior.393 * `/output-style <style>` alterna [estilos de saída](/docs/pt/output-styles) e `/output-style` sozinho os lista. Requer Claude Code v2.1.269 ou posterior.

394</Note>394</Note>


407 407 

408No script, `"$1"` representa o primeiro argumento que você passa na linha de comando. Execute `bash review.sh 123` e o shell substitui `"$1"` por `123`, então o script busca o diff para PR 123. Claude Code imprime a revisão como JSON, com o texto no campo `result`.408No script, `"$1"` representa o primeiro argumento que você passa na linha de comando. Execute `bash review.sh 123` e o shell substitui `"$1"` por `123`, então o script busca o diff para PR 123. Claude Code imprime a revisão como JSON, com o texto no campo `result`.

409 409 

410Consulte [flags de system prompt](/docs/pt/cli-reference#system-prompt-flags) para mais opções, incluindo `--system-prompt` para substituir completamente o prompt padrão.410Consulte [flags de system prompt](/docs/pt/cli-reference#system-prompt-flags) para mais opções, incluindo `--system-prompt` para substituir completamente o prompt padrão. Se você o substituir, a execução também começa sem o [snapshot do status do git](/docs/pt/settings-reference#includegitinstructions).

411 411 

412<h3 id="continue-conversations">412<h3 id="continue-conversations">

413 Continuar conversas413 Continuar conversas

hipaa-setup.md +1 −0

Details

228| `--cloud`, `/teleport` e [Remote Control](/docs/pt/remote-control) são recusados | [Sessões na nuvem](/docs/pt/claude-code-on-the-web) e o Remote Control estão desativados |228| `--cloud`, `/teleport` e [Remote Control](/docs/pt/remote-control) são recusados | [Sessões na nuvem](/docs/pt/claude-code-on-the-web) e o Remote Control estão desativados |

229| `/feedback` e `/bug` estão indisponíveis | O envio de feedback está desativado |229| `/feedback` e `/bug` estão indisponíveis | O envio de feedback está desativado |

230| O Claude não consegue publicar um [artefato](/docs/pt/artifacts) | A publicação de artefatos está desativada |230| O Claude não consegue publicar um [artefato](/docs/pt/artifacts) | A publicação de artefatos está desativada |

231| As ferramentas MCP são carregadas no contexto antecipadamente | O [MCP Tool Search](/docs/pt/mcp#configure-tool-search) está desativado. Nem `ENABLE_TOOL_SEARCH` nem as configurações gerenciadas o reativam |

231| Um servidor MCP ou hook que lê `ANTHROPIC_API_KEY` deixa de se autenticar | O Claude Code [remove as credenciais da Anthropic](#anthropic-credentials-in-commands-hooks-and-mcp-servers) dos processos que inicia |232| Um servidor MCP ou hook que lê `ANTHROPIC_API_KEY` deixa de se autenticar | O Claude Code [remove as credenciais da Anthropic](#anthropic-credentials-in-commands-hooks-and-mcp-servers) dos processos que inicia |

232| As restrições permanecem após `/login` em uma organização diferente | O status HIPAA dura até o Claude Code ser reiniciado |233| As restrições permanecem após `/login` em uma organização diferente | O status HIPAA dura até o Claude Code ser reiniciado |

233 234 

hooks.md +410 −384

Details

827 827 

828O código de saída do seu hook diz ao Claude Code se deve continuar com a ação que disparou o hook, como uma chamada de ferramenta ou um prompt. Uma execução que termina tem um de três resultados:828O código de saída do seu hook diz ao Claude Code se deve continuar com a ação que disparou o hook, como uma chamada de ferramenta ou um prompt. Uma execução que termina tem um de três resultados:

829 829 

830* **Sucesso**: seu hook sai com 0. Claude Code aplica quaisquer campos de [saída JSON](#json-output) que seu hook imprimiu, e a ação prossegue, a menos que esses campos a bloqueiem ou neguem.830* **Sucesso**: seu hook sai com 0. Claude Code aplica quaisquer campos de [saída JSON](#json-output) que seu hook imprimiu, e a ação prossegue, a menos que esses campos a bloqueiem ou neguem. [Hooks que iniciam um processo em segundo plano](#hooks-that-start-a-background-process) cobre a exceção.

831* **Erro bloqueador**: seu hook sai com 2. Em [eventos que podem bloquear](#exit-code-2-behavior-per-event), Claude Code interrompe a ação.831* **Erro bloqueador**: seu hook sai com 2. Em [eventos que podem bloquear](#exit-code-2-behavior-per-event), Claude Code interrompe a ação.

832* **Erro não-bloqueador**: seu hook sai com qualquer outro código, ou falha de alguma outra forma, como não iniciar ou imprimir JSON inválido. A ação prossegue, e em eventos como `PreToolUse` você vê um aviso `<hook name> hook error` na transcrição. Se você quiser que um hook com falha bloqueie a ação, defina [`onFailure: "block"`](#block-the-action-when-a-hook-fails).832* **Erro não-bloqueador**: seu hook sai com qualquer outro código, ou falha de alguma outra forma, como não iniciar ou imprimir JSON inválido. A ação prossegue, e em eventos como `PreToolUse` você vê um aviso `<hook name> hook error` na transcrição. Se você quiser que um hook com falha bloqueie a ação, defina [`onFailure: "block"`](#block-the-action-when-a-hook-fails).

833 833 


932* Um hook `command`, `http` ou `mcp_tool` expirado não bloqueia a chamada da ferramenta. A chamada continua através do [fluxo de permissão](/docs/pt/permissions) normal, portanto não conte com um hook travado para agir como um portão. Para bloquear a chamada quando um hook `command` ou `http` atinge o timeout, defina [`onFailure: "block"`](#block-the-action-when-a-hook-fails).932* Um hook `command`, `http` ou `mcp_tool` expirado não bloqueia a chamada da ferramenta. A chamada continua através do [fluxo de permissão](/docs/pt/permissions) normal, portanto não conte com um hook travado para agir como um portão. Para bloquear a chamada quando um hook `command` ou `http` atinge o timeout, defina [`onFailure: "block"`](#block-the-action-when-a-hook-fails).

933* Um hook de callback [Agent SDK](/docs/pt/agent-sdk/hooks) que excede seu timeout [bloqueia a chamada da ferramenta](#pretooluse).933* Um hook de callback [Agent SDK](/docs/pt/agent-sdk/hooks) que excede seu timeout [bloqueia a chamada da ferramenta](#pretooluse).

934 934 

935<h4 id="hooks-that-start-a-background-process">

936 Hooks que iniciam um processo em segundo plano

937</h4>

938 

939Se seu hook de comando toma sua decisão em um processo em segundo plano e sai, uma negação que esse processo imprime depois que Claude Code parou de ler não bloqueia a chamada de ferramenta. Para um hook que não é [async](#run-hooks-in-the-background), Claude Code termina de ler a saída do hook logo após o próprio processo do hook sair.

940 

941Imprima a decisão antes de iniciar um processo em segundo plano, e redirecione o stdout e o stderr desse processo. Se seu script imprime um allow e depois inicia um processo em segundo plano sem redirecionar o stdout e o stderr desse processo, Claude Code bloqueia a chamada de ferramenta. O erro do hook inclui `refusing to honor the suspect capture`.

942 

943Este script de hook `PreToolUse` imprime a decisão com `policy-check.sh` e depois envia métricas em segundo plano:

944 

945```bash theme={null}

946#!/bin/bash

947"$CLAUDE_PROJECT_DIR"/.claude/hooks/policy-check.sh || exit $?

948"$CLAUDE_PROJECT_DIR"/.claude/hooks/upload-metrics.sh >/dev/null 2>&1 &

949```

950 

951O restante do script faz o seguinte:

952 

953* **`|| exit $?`**: torna o código de saída da verificação o código do próprio hook, para que uma verificação que sai com 2 para negar ainda bloqueie. Caso contrário, o hook sai com o código da última linha, que é 0.

954* **`>/dev/null 2>&1 &`**: executa `upload-metrics.sh` em segundo plano com sua saída redirecionada, para que ele não mantenha a saída do hook aberta.

955 

956Para testar o script, faça `policy-check.sh` sair com 2 e então dispare uma chamada de ferramenta correspondida pelo hook. A chamada de ferramenta é bloqueada.

957 

935<h4 id="block-the-action-when-a-hook-fails">958<h4 id="block-the-action-when-a-hook-fails">

936 Bloquear a ação quando um hook falha959 Bloquear a ação quando um hook falha

937</h4>960</h4>


1245 Eventos de hook1268 Eventos de hook

1246</h2>1269</h2>

1247 1270 

1248Cada evento corresponde a um ponto no ciclo de vida do Claude Code em que hooks podem ser executados. As seções abaixo estão ordenadas de acordo com o ciclo de vida: da configuração da sessão, passando pelo loop agêntico, até o fim da sessão. Cada seção descreve quando o evento é disparado, quais matchers ele suporta, a entrada JSON que ele recebe e como controlar o comportamento por meio da saída.1271Cada evento corresponde a um ponto no ciclo de vida do Claude Code em que hooks podem ser executados. As seções abaixo estão ordenadas de acordo com o ciclo de vida: da configuração da sessão, passando pelo loop agêntico, até o fim da sessão. Cada seção descreve quando o evento é disparado, quais matchers ele suporta, a entrada JSON que recebe e como controlar o comportamento por meio da saída.

1249 1272 

1250<h3 id="sessionstart">1273<h3 id="sessionstart">

1251 SessionStart1274 SessionStart

1252</h3>1275</h3>

1253 1276 

1254É executado quando o Claude Code inicia uma nova sessão ou retoma uma sessão existente. Útil para carregar contexto de desenvolvimento, como issues existentes ou alterações recentes na sua base de código, ou para configurar variáveis de ambiente. Para contexto estático que não exige um script, use [CLAUDE.md](/docs/pt/memory) em vez disso.1277É executado quando o Claude Code inicia uma nova sessão ou retoma uma sessão existente. Útil para carregar contexto de desenvolvimento, como issues existentes ou alterações recentes na sua base de código, ou para configurar variáveis de ambiente. Para contexto estático que não requer um script, use o [CLAUDE.md](/docs/pt/memory).

1255 1278 

1256O SessionStart é executado em todas as sessões, portanto mantenha esses hooks rápidos. Apenas hooks `type: "command"` e `type: "mcp_tool"` são suportados. Consulte [campos de hook de ferramenta MCP](#mcp-tool-hook-fields) para saber quando hooks `mcp_tool` são executados.1279O SessionStart é executado em todas as sessões, portanto mantenha esses hooks rápidos. Somente hooks `type: "command"` e `type: "mcp_tool"` são suportados. Consulte [Campos de hook de ferramenta MCP](#mcp-tool-hook-fields) para saber quando hooks `mcp_tool` são executados.

1257 1280 

1258O valor do matcher corresponde a como a sessão foi iniciada:1281O valor do matcher corresponde a como a sessão foi iniciada:

1259 1282 


1263| `resume` | `--resume`, `--continue` ou `/resume` |1286| `resume` | `--resume`, `--continue` ou `/resume` |

1264| `clear` | `/clear` |1287| `clear` | `/clear` |

1265| `compact` | Compactação automática ou manual |1288| `compact` | Compactação automática ou manual |

1266| `fork` | Uma nova sessão bifurcada de uma existente: `--fork-session` com `--resume` ou `--continue`, a cópia em segundo plano de `/fork`, `/branch` ou uma conversa que você [move para o segundo plano](/docs/pt/agent-view#from-inside-a-session) |1289| `fork` | Uma nova sessão bifurcada de uma existente: `--fork-session` com `--resume` ou `--continue`, a cópia em segundo plano do `/fork`, `/branch` ou uma conversa que você [move para o segundo plano](/docs/pt/agent-view#from-inside-a-session) |

1267 1290 

1268Antes da v2.1.214, sessões bifurcadas informavam a origem `"resume"`.1291Antes da v2.1.214, sessões bifurcadas informavam a origem `"resume"`.

1269 1292 


1283 1306 

1284| Campo | Descrição |1307| Campo | Descrição |

1285| :- | :- |1308| :- | :- |

1286| `source` | Como a sessão foi iniciada: `"startup"` para novas sessões, `"resume"` para sessões retomadas, `"clear"` após `/clear`, `"compact"` após compactação ou `"fork"` para uma nova sessão bifurcada de uma existente |1309| `source` | Como a sessão começou: `"startup"` para novas sessões, `"resume"` para sessões retomadas, `"clear"` após `/clear`, `"compact"` após a compactação, ou `"fork"` para uma nova sessão bifurcada de uma existente |

1287| `model` | O identificador do modelo ativo. Pode ser omitido, por exemplo após `/clear` ou quando uma sessão é restaurada por meio da recuperação de conversa, portanto verifique se o campo existe antes de lê-lo |1310| `model` | O identificador do modelo ativo. Ele pode ser omitido, por exemplo após `/clear` ou quando uma sessão é restaurada por meio da recuperação de conversa, portanto verifique se o campo existe antes de lê-lo |

1288| `agent_type` | O nome do agente, presente quando você inicia o Claude Code com `claude --agent <name>` |1311| `agent_type` | O nome do agente, presente quando você inicia o Claude Code com `claude --agent <name>` |

1289| `session_title` | O título personalizado da sessão, presente quando um estiver definido, por exemplo com `--name`, `/rename`, a saída `sessionTitle` de um hook ou o `renameSession()` do Agent SDK. Um hook que emite `sessionTitle` pode verificar este campo primeiro para evitar sobrescrever um título personalizado existente |1312| `session_title` | O título personalizado da sessão, presente quando um é definido, por exemplo com `--name`, `/rename`, a saída `sessionTitle` de um hook ou o `renameSession()` do Agent SDK. Um hook que emite `sessionTitle` pode verificar esse campo primeiro para evitar sobrescrever um título personalizado existente |

1290 1313 

1291Uma sessão que você não nomeou ainda pode ter um [título gerado](/docs/pt/sessions#name-your-sessions). Esse título não é um título personalizado e não aparece em `session_title`.1314Uma sessão que você não nomeou ainda pode ter um [título gerado](/docs/pt/sessions#name-your-sessions). Esse título não é um título personalizado e não aparece em `session_title`.

1292 1315 

1293Quando `source` é `"resume"` ou `"fork"` e a transcrição contém pelo menos uma resposta do Claude, os hooks SessionStart também recebem os quatro campos abaixo. Seu hook pode usá-los para informar quanto custa retomar uma conversa antiga antes da primeira requisição, por exemplo em um [`systemMessage`](#json-output). Esses campos exigem o Claude Code v2.1.251 ou posterior.1316Quando `source` é `"resume"` ou `"fork"` e a transcrição contém pelo menos uma resposta do Claude, os hooks SessionStart também recebem os quatro campos abaixo. Seu hook pode usá-los para informar quanto custa retomar uma conversa antiga antes da primeira requisição, por exemplo em um [`systemMessage`](#json-output). Esses campos requerem o Claude Code v2.1.251 ou posterior.

1294 1317 

1295| Campo | Descrição |1318| Campo | Descrição |

1296| :- | :- |1319| :- | :- |


1325| Campo | Descrição |1348| Campo | Descrição |

1326| :- | :- |1349| :- | :- |

1327| `additionalContext` | String adicionada ao contexto do Claude no início da conversa, antes do primeiro prompt. Consulte [Adicionar contexto para o Claude](#add-context-for-claude) para saber como o texto é entregue e o que colocar nele |1350| `additionalContext` | String adicionada ao contexto do Claude no início da conversa, antes do primeiro prompt. Consulte [Adicionar contexto para o Claude](#add-context-for-claude) para saber como o texto é entregue e o que colocar nele |

1328| `initialUserMessage` | String usada como a primeira mensagem do usuário da sessão, no [modo não interativo](/docs/pt/headless) com a flag `-p`. Ela se torna o primeiro turno mesmo que você não passe nenhum prompt. Um prompt que você passar vem em seguida como o próximo turno |1351| `initialUserMessage` | String usada como a primeira mensagem do usuário da sessão, no [modo não interativo](/docs/pt/headless) com a flag `-p`. Ela se torna o primeiro turno mesmo que você não passe nenhum prompt. Um prompt que você passe vem em seguida, como o próximo turno |

1329| `sessionTitle` | Define o título da sessão, com o mesmo efeito de `/rename`. Aplica-se quando `source` é `"startup"`, `"resume"` ou `"fork"` |1352| `sessionTitle` | Define o título da sessão, com o mesmo efeito de `/rename`. Aplica-se quando `source` é `"startup"`, `"resume"` ou `"fork"` |

1330| `watchPaths` | Array de caminhos absolutos a observar para eventos [FileChanged](#filechanged) durante esta sessão |1353| `watchPaths` | Array de caminhos absolutos a serem observados para eventos [FileChanged](#filechanged) durante esta sessão |

1331| `reloadSkills` | Booleano. Quando `true`, o Claude Code verifica novamente os diretórios de [skills](/docs/pt/skills) e comandos após a conclusão dos hooks SessionStart. Consulte [Recarregar skills que um hook instala](#reload-skills-that-a-hook-installs) |1354| `reloadSkills` | Booleano. Quando `true`, o Claude Code verifica novamente os diretórios de [skills](/docs/pt/skills) e de comandos após a conclusão dos hooks SessionStart. Consulte [Recarregar skills que um hook instala](#reload-skills-that-a-hook-installs) |

1332 1355 

1333Esta saída adiciona contexto e nomeia a sessão:1356Esta saída adiciona contexto e nomeia a sessão:

1334 1357 


1342}1365}

1343```1366```

1344 1367 

1345Um hook que apenas adiciona contexto pode imprimi-lo sem construir JSON, porque o Claude Code adiciona o [stdout em texto simples](#exit-code-0) de um hook SessionStart ao contexto do Claude.1368Um hook que apenas adiciona contexto pode imprimi-lo sem montar JSON, porque o Claude Code adiciona o [stdout em texto simples](#exit-code-0) de um hook SessionStart ao contexto do Claude.

1346 1369 

1347Se o hook SessionStart do seu plugin fornecer `initialUserMessage` ou `sessionTitle`, instale o plugin antes de a sessão começar. O Claude Code ignora ambos os campos de um plugin cuja instalação termina depois que os hooks SessionStart já foram executados.1370Se o hook SessionStart do seu plugin fornece `initialUserMessage` ou `sessionTitle`, instale o plugin antes do início da sessão. O Claude Code ignora ambos os campos de um plugin cuja instalação termina depois que os hooks SessionStart foram executados.

1348 1371 

1349<h4 id="reload-skills-that-a-hook-installs">1372<h4 id="reload-skills-that-a-hook-installs">

1350 Recarregar skills que um hook instala1373 Recarregar skills que um hook instala

1351</h4>1374</h4>

1352 1375 

1353Para disponibilizar na mesma sessão as skills que um hook SessionStart instala, retorne `reloadSkills`. A descoberta de skills normalmente é executada antes de os hooks SessionStart terminarem, então, sem isso, arquivos que um hook grava em `~/.claude/skills/` ou `.claude/skills/` podem estar ausentes quando o primeiro prompt for executado.1376Para disponibilizar na mesma sessão as skills que um hook SessionStart instala, retorne `reloadSkills`. A descoberta de skills normalmente é executada antes de os hooks SessionStart terminarem; portanto, sem isso, arquivos que um hook grava em `~/.claude/skills/` ou `.claude/skills/` podem estar ausentes quando o primeiro prompt for executado.

1354 1377 

1355Este exemplo sincroniza um repositório compartilhado de skills e solicita a nova verificação:1378Este exemplo sincroniza um repositório compartilhado de skills e solicita a nova verificação:

1356 1379 


1363echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'1386echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'

1364```1387```

1365 1388 

1366A URL do repositório é um espaço reservado. Substitua-a pelo seu próprio repositório de skills.1389A URL do repositório é um marcador de exemplo. Substitua-a pelo seu próprio repositório de skills.

1367 1390 

1368<h4 id="persist-environment-variables">1391<h4 id="persist-environment-variables">

1369 Persistir variáveis de ambiente1392 Persistir variáveis de ambiente

1370</h4>1393</h4>

1371 1394 

1372Os hooks SessionStart têm acesso à variável de ambiente `CLAUDE_ENV_FILE`, que fornece um caminho de arquivo onde você pode persistir variáveis de ambiente para os comandos de shell que o Claude executa mais tarde na sessão.1395Os hooks SessionStart têm acesso à variável de ambiente `CLAUDE_ENV_FILE`, que fornece um caminho de arquivo onde você pode persistir variáveis de ambiente para os comandos de shell que o Claude executa mais adiante na sessão.

1373 1396 

1374Para definir variáveis de ambiente individuais, escreva instruções `export` em `CLAUDE_ENV_FILE`. Use anexação (`>>`) para preservar variáveis definidas por outros hooks:1397Para definir variáveis de ambiente individuais, escreva instruções `export` em `CLAUDE_ENV_FILE`. Use anexação (`>>`) para preservar variáveis definidas por outros hooks:

1375 1398 


1385exit 01408exit 0

1386```1409```

1387 1410 

1388Para capturar todas as alterações de ambiente de comandos de configuração, compare as variáveis exportadas antes e depois:1411Para capturar todas as alterações de ambiente dos comandos de configuração, compare as variáveis exportadas antes e depois:

1389 1412 

1390```bash theme={null}1413```bash theme={null}

1391#!/bin/bash1414#!/bin/bash


1404exit 01427exit 0

1405```1428```

1406 1429 

1407Cada comando Bash executa o conteúdo do arquivo como código de shell antes do próprio comando, portanto uma linha ali pode usar qualquer coisa que o Bash avalie, como a referência `$PATH` em `export PATH="$PATH:./node_modules/.bin"`.1430Cada comando Bash executa o conteúdo do arquivo como código de shell antes do próprio comando, portanto uma linha ali pode usar qualquer coisa que o Bash avalia, como a referência `$PATH` em `export PATH="$PATH:./node_modules/.bin"`.

1408 1431 

1409<a id="persisted-variables-in-powershell-commands" />1432<a id="persisted-variables-in-powershell-commands" />

1410 1433 


1412 Variáveis persistidas em comandos PowerShell1435 Variáveis persistidas em comandos PowerShell

1413</h5>1436</h5>

1414 1437 

1415Os comandos [PowerShell](/docs/pt/tools-reference#powershell-tool) também recebem as variáveis de `CLAUDE_ENV_FILE`, no Claude Code v2.1.296 ou posterior, mas o PowerShell nunca executa o arquivo. Em vez disso, o Claude Code lê as atribuições do arquivo e as copia para o ambiente do comando PowerShell. Ele faz isso somente quando cada linha é uma das seguintes, considerando o que todos os hooks desta sessão gravaram e qualquer script para o qual você [definiu `CLAUDE_ENV_FILE`](/docs/pt/env-vars) antes da inicialização:1438Comandos [PowerShell](/docs/pt/tools-reference#powershell-tool) também recebem as variáveis de `CLAUDE_ENV_FILE`, no Claude Code v2.1.296 ou posterior, mas o PowerShell nunca executa o arquivo. Em vez disso, o Claude Code lê as atribuições do arquivo e as copia para o ambiente do comando PowerShell. Ele faz isso somente quando cada linha é de um dos tipos a seguir, considerando tudo o que cada hook nesta sessão gravou e qualquer script para o qual você [definiu `CLAUDE_ENV_FILE`](/docs/pt/env-vars) antes da inicialização:

1416 1439 

1417* Uma linha em branco ou um comentário `#`1440* Uma linha em branco ou um comentário `#`

1418* Uma atribuição no início da linha, escrita como `export NAME=value`, `declare -x NAME=value` ou `NAME=value`, com um valor que o Bash usaria exatamente como escrito, composto por qualquer combinação destas partes: texto sem aspas que usa apenas letras, dígitos e os caracteres `_ @ % + = : , . / -`, texto entre aspas simples e texto entre aspas duplas em que qualquer `$`, crase ou `"` interno esteja escapado com uma barra invertida1441* Uma atribuição no início da linha, escrita como `export NAME=value`, `declare -x NAME=value` ou `NAME=value`, com um valor que o Bash usaria exatamente como escrito, composto por qualquer combinação destas partes: texto sem aspas que use apenas letras, dígitos e os caracteres `_ @ % + = : , . / -`, texto entre aspas simples e texto entre aspas duplas em que qualquer `$`, acento grave ou `"` interno esteja escapado com uma barra invertida

1419 1442 

1420Se qualquer linha for de outro tipo, como `export PATH="$PATH:./node_modules/.bin"` com seu `$PATH` não escapado, um comando `source` ou as strings `$'...'` que `direnv export bash` imprime, os comandos PowerShell não recebem nenhuma das variáveis, e `claude --debug` registra `Session environment is not all plain assignments`. Os comandos Bash ainda recebem todas elas. No Windows, os comandos PowerShell também não recebem uma variável cujo valor contenha `/` ou `\`, porque o Git Bash e o Windows escrevem caminhos de forma diferente. Um comando PowerShell em [sandbox](/docs/pt/sandboxing) não recebe nenhuma das variáveis.1443Se qualquer linha for de outro tipo, como `export PATH="$PATH:./node_modules/.bin"` com seu `$PATH` sem escape, um comando `source` ou as strings `$'...'` que `direnv export bash` imprime, os comandos PowerShell não recebem nenhuma das variáveis, e `claude --debug` registra `Session environment is not all plain assignments`. Os comandos Bash ainda recebem todas elas. No Windows, os comandos PowerShell também não recebem uma variável cujo valor contenha `/` ou `\`, porque o Git Bash e o Windows escrevem caminhos de forma diferente. Um comando PowerShell em [sandbox](/docs/pt/sandboxing) não recebe nenhuma das variáveis.

1421 1444 

1422<Note>1445<Note>

1423 `CLAUDE_ENV_FILE` está disponível para os hooks SessionStart, [Setup](#setup), [CwdChanged](#cwdchanged) e [FileChanged](#filechanged). Outros eventos de hook não têm acesso a esta variável, nem um hook que é executado no PowerShell, seja por meio de [`"shell": "powershell"`](#command-hook-fields) ou por padrão no Windows sem Git Bash.1446 `CLAUDE_ENV_FILE` está disponível para hooks SessionStart, [Setup](#setup), [CwdChanged](#cwdchanged) e [FileChanged](#filechanged). Outros eventos de hook não têm acesso a essa variável, nem um hook executado no PowerShell, seja por meio de [`"shell": "powershell"`](#command-hook-fields) ou por padrão no Windows sem Git Bash.

1424</Note>1447</Note>

1425 1448 

1426<h3 id="setup">1449<h3 id="setup">

1427 Setup1450 Setup

1428</h3>1451</h3>

1429 1452 

1430É disparado apenas quando você inicia o Claude Code com `--init-only`, ou com `--init` ou `--maintenance` no [modo não interativo](/docs/pt/headless) com a flag `-p`. Não é disparado na inicialização normal. Use-o para instalação única de dependências ou limpeza agendada que você aciona explicitamente a partir de CI ou scripts, separadamente da inicialização normal da sessão. Para inicialização por sessão, use [SessionStart](#sessionstart) em vez disso.1453É disparado somente quando você inicia o Claude Code com `--init-only`, ou com `--init` ou `--maintenance` no [modo não interativo](/docs/pt/headless) com a flag `-p`. Ele não é disparado na inicialização normal. Use-o para instalação única de dependências ou limpeza agendada que você aciona explicitamente a partir de CI ou scripts, separadamente da inicialização normal da sessão. Para inicialização por sessão, use o [SessionStart](#sessionstart).

1431 1454 

1432O valor do matcher corresponde à flag da CLI que acionou o hook:1455O valor do matcher corresponde à flag da CLI que acionou o hook:

1433 1456 


1438 1461 

1439Quando você executa `claude --init-only`, o Claude Code executa os hooks Setup e os hooks `SessionStart` com o matcher `startup` e, em seguida, sai sem iniciar uma conversa.1462Quando você executa `claude --init-only`, o Claude Code executa os hooks Setup e os hooks `SessionStart` com o matcher `startup` e, em seguida, sai sem iniciar uma conversa.

1440 1463 

1441Quando você inicia ou continua uma conversa com `-p`, também precisa fornecer um prompt, como argumento ou via pipe no stdin. Você pode omitir o prompt quando um hook `SessionStart` fornece [`initialUserMessage`](#sessionstart-decision-control) ou quando você retoma uma sessão com uma [chamada de ferramenta adiada](#defer-a-tool-call-for-later).1464Quando você inicia ou continua uma conversa com `-p`, também precisa fornecer um prompt, como argumento ou via stdin. Você pode omitir o prompt quando um hook `SessionStart` fornece [`initialUserMessage`](#sessionstart-decision-control) ou quando você retoma uma sessão com uma [chamada de ferramenta adiada](#defer-a-tool-call-for-later).

1442 1465 

1443Em caso de sucesso, `--init-only` não imprime nada no terminal. Para confirmar que os hooks foram executados, inicie com `claude --debug-file <path> --init-only`, substituindo `<path>` pelo local de um arquivo de log, e verifique no log as entradas dos hooks Setup e SessionStart.1466Em caso de sucesso, `--init-only` não imprime nada no terminal. Para confirmar que os hooks foram executados, inicie com `claude --debug-file <path> --init-only`, substituindo `<path>` por um local de arquivo de log, e verifique no log as entradas dos hooks Setup e SessionStart.

1444 1467 

1445Como o Setup não é disparado em toda inicialização, um plugin que precisa de uma dependência instalada não pode depender apenas do Setup. O padrão prático é verificar a dependência no primeiro uso e instalá-la se estiver ausente, por exemplo um hook ou skill que testa a existência de `${CLAUDE_PLUGIN_DATA}/node_modules` e executa `npm install` se não existir. Consulte o [diretório de dados persistentes](/docs/pt/plugins/components#path-variables-and-persistent-data) para saber onde armazenar dependências instaladas. Se você distribui seu plugin por meio de um marketplace, talvez não precise desse padrão: o Claude Code [instala automaticamente as dependências de pacotes Node.js elegíveis](/docs/pt/plugins/loading#node-js-package-dependencies) quando armazena o plugin em cache.1468Como o Setup não é disparado em toda inicialização, um plugin que precisa de uma dependência instalada não pode depender apenas do Setup. O padrão prático é verificar a dependência no primeiro uso e instalá-la caso esteja ausente, por exemplo, um hook ou skill que testa `${CLAUDE_PLUGIN_DATA}/node_modules` e executa `npm install` se não existir. Consulte o [diretório de dados persistentes](/docs/pt/plugins/components#path-variables-and-persistent-data) para saber onde armazenar as dependências instaladas. Se você distribui seu plugin por meio de um marketplace, talvez não precise desse padrão: o Claude Code [instala automaticamente as dependências de pacotes Node.js elegíveis](/docs/pt/plugins/loading#node-js-package-dependencies) quando armazena o plugin em cache.

1446 1469 

1447<h4 id="setup-input">1470<h4 id="setup-input">

1448 Entrada do Setup1471 Entrada do Setup


1464 Controle de decisão do Setup1487 Controle de decisão do Setup

1465</h4>1488</h4>

1466 1489 

1467Os hooks Setup não podem bloquear; a execução continua com qualquer código de saída. Em todos os códigos de saída, o Claude Code descarta os [campos de saída JSON](#json-output) de um hook Setup, como `systemMessage`, `continue` e `hookSpecificOutput.additionalContext`. Com `-p`, o stdout, o stderr e o código de saída de um hook Setup aparecem na saída da execução apenas como [eventos `hook_response`](/docs/pt/headless#read-session-metadata) quando você inicia com `--output-format stream-json --verbose`.1490Os hooks Setup não podem bloquear; a execução continua com qualquer código de saída. Em todos os códigos de saída, o Claude Code descarta os [campos de saída JSON](#json-output) de um hook Setup, como `systemMessage`, `continue` e `hookSpecificOutput.additionalContext`. Com `-p`, o stdout, o stderr e o código de saída de um hook Setup aparecem na saída da execução somente como [eventos `hook_response`](/docs/pt/headless#read-session-metadata) quando você inicia com `--output-format stream-json --verbose`.

1468 1491 

1469Os hooks Setup têm acesso a `CLAUDE_ENV_FILE`. Variáveis gravadas nesse arquivo persistem nos comandos Bash subsequentes da sessão, como nos [hooks SessionStart](#persist-environment-variables). Apenas hooks `type: "command"` são executados no `Setup`. Um hook `type: "mcp_tool"` no `Setup` é sempre ignorado, conforme descrito em [campos de hook de ferramenta MCP](#mcp-tool-hook-fields).1492Os hooks Setup têm acesso a `CLAUDE_ENV_FILE`. As variáveis gravadas nesse arquivo persistem nos comandos Bash subsequentes da sessão, como nos [hooks SessionStart](#persist-environment-variables). Somente hooks `type: "command"` são executados no `Setup`. Um hook `type: "mcp_tool"` no `Setup` é sempre ignorado, conforme descrito em [Campos de hook de ferramenta MCP](#mcp-tool-hook-fields).

1470 1493 

1471<h3 id="instructionsloaded">1494<h3 id="instructionsloaded">

1472 InstructionsLoaded1495 InstructionsLoaded

1473</h3>1496</h3>

1474 1497 

1475É disparado quando um arquivo `CLAUDE.md` ou `.claude/rules/*.md` é carregado no contexto. Este evento é disparado no início da sessão para arquivos carregados antecipadamente e novamente mais tarde quando arquivos são carregados de forma preguiçosa, por exemplo quando o Claude acessa um subdiretório que contém um `CLAUDE.md` aninhado ou quando regras condicionais com frontmatter `paths:` correspondem. O hook não suporta bloqueio nem controle de decisão. Ele é executado de forma assíncrona para fins de observabilidade.1498É disparado quando um arquivo `CLAUDE.md` ou `.claude/rules/*.md` é carregado no contexto. Esse evento é disparado no início da sessão para arquivos carregados antecipadamente e novamente mais tarde quando arquivos são carregados sob demanda, por exemplo, quando o Claude acessa um subdiretório que contém um `CLAUDE.md` aninhado ou quando regras condicionais com frontmatter `paths:` correspondem. O hook não suporta bloqueio nem controle de decisão. Ele é executado de forma assíncrona para fins de observabilidade.

1476 1499 

1477Este evento não é disparado quando o Claude [lê `AGENTS.md` diretamente](/docs/pt/memory#agents-md) por meio da configuração **Project instructions**. Ele é disparado quando um `CLAUDE.md` importa seu `AGENTS.md`, com `load_reason` definido como `include`, como para qualquer outro arquivo importado, e quando `CLAUDE.md` é um link simbólico para ele, como um carregamento normal de `CLAUDE.md`.1500Esse evento não é disparado quando o Claude [lê o `AGENTS.md` diretamente](/docs/pt/memory#agents-md) por meio da configuração **Project instructions**. Ele é disparado quando um `CLAUDE.md` importa seu `AGENTS.md`, com `load_reason` definido como `include` como para qualquer outro arquivo importado, e quando o `CLAUDE.md` é um link simbólico para ele, como um carregamento normal de `CLAUDE.md`.

1478 1501 

1479O matcher é avaliado contra `load_reason`. Por exemplo, use `"matcher": "session_start"` para disparar apenas para arquivos carregados no início da sessão, ou `"matcher": "path_glob_match|nested_traversal"` para disparar apenas para carregamentos preguiçosos.1502O matcher é aplicado a `load_reason`. Por exemplo, use `"matcher": "session_start"` para disparar somente para arquivos carregados no início da sessão, ou `"matcher": "path_glob_match|nested_traversal"` para disparar somente para carregamentos sob demanda.

1480 1503 

1481<h4 id="instructionsloaded-input">1504<h4 id="instructionsloaded-input">

1482 Entrada do InstructionsLoaded1505 Entrada do InstructionsLoaded


1489| `file_path` | Caminho absoluto para o arquivo de instruções que foi carregado |1512| `file_path` | Caminho absoluto para o arquivo de instruções que foi carregado |

1490| `memory_type` | Escopo do arquivo: `"User"`, `"Project"`, `"Local"` ou `"Managed"` |1513| `memory_type` | Escopo do arquivo: `"User"`, `"Project"`, `"Local"` ou `"Managed"` |

1491| `load_reason` | Por que o arquivo foi carregado: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` ou `"compact"`. O valor `"compact"` é disparado quando arquivos de instruções são recarregados após um evento de compactação |1514| `load_reason` | Por que o arquivo foi carregado: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` ou `"compact"`. O valor `"compact"` é disparado quando arquivos de instruções são recarregados após um evento de compactação |

1492| `globs` | Padrões glob de caminho do frontmatter `paths:` do arquivo, se houver. Presente apenas para carregamentos `path_glob_match` |1515| `globs` | Padrões glob de caminho do frontmatter `paths:` do arquivo, se houver. Presente somente para carregamentos `path_glob_match` |

1493| `trigger_file_path` | Caminho para o arquivo cujo acesso acionou este carregamento, para carregamentos preguiçosos |1516| `trigger_file_path` | Caminho para o arquivo cujo acesso acionou esse carregamento, para carregamentos sob demanda |

1494| `parent_file_path` | Caminho para o arquivo de instruções pai que incluiu este, para carregamentos `include` |1517| `parent_file_path` | Caminho para o arquivo de instruções pai que incluiu este, para carregamentos `include` |

1495 1518 

1496```json theme={null}1519```json theme={null}


1509 Controle de decisão do InstructionsLoaded1532 Controle de decisão do InstructionsLoaded

1510</h4>1533</h4>

1511 1534 

1512Os hooks InstructionsLoaded não têm controle de decisão. Eles não podem bloquear nem modificar o carregamento de instruções. O Claude Code descarta seus [campos de saída JSON](#json-output), como `systemMessage` e `continue`. Use este evento para log de auditoria, rastreamento de conformidade ou observabilidade.1535Os hooks InstructionsLoaded não têm controle de decisão. Eles não podem bloquear nem modificar o carregamento de instruções. O Claude Code descarta seus [campos de saída JSON](#json-output), como `systemMessage` e `continue`. Use esse evento para logs de auditoria, rastreamento de conformidade ou observabilidade.

1513 1536 

1514<h3 id="userpromptsubmit">1537<h3 id="userpromptsubmit">

1515 UserPromptSubmit1538 UserPromptSubmit

1516</h3>1539</h3>

1517 1540 

1518É executado quando um prompt é enviado, antes de o Claude processá-lo. Isso permite1541É executado quando um prompt é enviado, antes que o Claude o processe. Isso permite

1519adicionar contexto extra com base no prompt/conversa, validar prompts ou1542adicionar contexto extra com base no prompt/conversa, validar prompts ou

1520bloquear certos tipos de prompts.1543bloquear certos tipos de prompts.

1521 1544 


1525* Um [subagente em segundo plano](/docs/pt/sub-agents#run-subagents-in-foreground-or-background) reporta de volta à sessão que o iniciou1548* Um [subagente em segundo plano](/docs/pt/sub-agents#run-subagents-in-foreground-or-background) reporta de volta à sessão que o iniciou

1526* Uma [mensagem que outra sessão envia](/docs/pt/cross-session-messaging) chega à sua conversa principal1549* Uma [mensagem que outra sessão envia](/docs/pt/cross-session-messaging) chega à sua conversa principal

1527 1550 

1528Os hooks `UserPromptSubmit` têm um timeout padrão de 30 segundos para os tipos `command`, `http` e `mcp_tool`, menor que o padrão de 600 segundos desses tipos na maioria dos outros eventos. Como este hook é executado antes de cada prompt e bloqueia o processamento do modelo até terminar, um hook travado paralisa a sessão. Se seu hook precisar de mais tempo, defina o campo `timeout` na entrada do hook.1551Os hooks `UserPromptSubmit` têm um timeout padrão de 30 segundos para os tipos `command`, `http` e `mcp_tool`, menor que o padrão de 600 segundos para esses tipos na maioria dos outros eventos. Como esse hook é executado antes de cada prompt e bloqueia o processamento do modelo até terminar, um hook travado paralisa a sessão. Se o seu hook precisar de mais tempo, defina o campo `timeout` na entrada do hook.

1529 1552 

1530Com exceção de um hook de comando que você executa com [`async: true`](#run-hooks-in-the-background), um hook `UserPromptSubmit` de comando, HTTP ou ferramenta MCP que atinge seu timeout é cancelado e sua saída, incluindo qualquer `additionalContext`, é descartada. O prompt ainda chega ao Claude sem esse contexto. Para bloquear o prompt em vez disso, defina [`onFailure: "block"`](#block-the-action-when-a-hook-fails) em um hook de comando ou HTTP. A transcrição mostra um aviso nomeando o hook, o timeout que foi atingido e que a saída foi descartada.1553Exceto por um hook de comando que você executa com [`async: true`](#run-hooks-in-the-background), um hook de comando, HTTP ou de ferramenta MCP em `UserPromptSubmit` que atinge seu timeout é cancelado, e sua saída, incluindo qualquer `additionalContext`, é descartada. O prompt ainda chega ao Claude sem esse contexto. Para bloquear o prompt em vez disso, defina [`onFailure: "block"`](#block-the-action-when-a-hook-fails) em um hook de comando ou HTTP. A transcrição mostra um aviso nomeando o hook, o timeout que foi atingido e que a saída foi descartada.

1531 1554 

1532Um [hook de callback do Agent SDK](/docs/pt/agent-sdk/hooks) em `UserPromptSubmit` que atinge seu timeout bloqueia o prompt com uma mensagem que nomeia o hook e o timeout, porque um callback nesse ponto pode estar atuando como uma barreira de política que não deve falhar de forma permissiva. A sessão continua. Antes da v2.1.208, um timeout de callback nesse evento encerrava o turno com um erro de execução.1555Um [hook de callback do Agent SDK](/docs/pt/agent-sdk/hooks) em `UserPromptSubmit` que atinge seu timeout bloqueia o prompt com uma mensagem nomeando o hook e o timeout, porque um callback ali pode estar atuando como uma barreira de política que não deve falhar de forma permissiva. A sessão continua. Antes da v2.1.208, um timeout de callback nesse evento encerrava o turno com um erro de execução.

1533 1556 

1534<h4 id="userpromptsubmit-input">1557<h4 id="userpromptsubmit-input">

1535 Entrada do UserPromptSubmit1558 Entrada do UserPromptSubmit

1536</h4>1559</h4>

1537 1560 

1538Além dos [campos de entrada comuns](#common-input-fields), os hooks UserPromptSubmit recebem o campo `prompt` contendo o texto enviado. Conteúdo colado que foi recolhido em um espaço reservado `[Pasted text #N]` chega expandido no lugar. Em sessões em que o Claude Code [marca o texto colado para o Claude](/docs/pt/terminal-config#how-claude-treats-pasted-text), esse conteúdo expandido fica entre uma linha `<pasted_content id="…">` e uma linha `</pasted_content id="…">`, portanto leve essas linhas em conta se seu hook analisar o prompt.1561Além dos [campos de entrada comuns](#common-input-fields), os hooks UserPromptSubmit recebem o campo `prompt` contendo o texto enviado. Conteúdo colado que foi recolhido em um marcador `[Pasted text #N]` chega expandido no lugar. Em sessões em que o Claude Code [marca texto colado para o Claude](/docs/pt/terminal-config#how-claude-treats-pasted-text), esse conteúdo expandido fica entre uma linha `<pasted_content id="…">` e uma linha `</pasted_content id="…">`, portanto leve essas linhas em conta se o seu hook analisar o prompt.

1539 1562 

1540Os hooks UserPromptSubmit também recebem `session_title` quando a sessão tem um título personalizado, com o mesmo significado do [campo `session_title` do SessionStart](#sessionstart-input).1563Os hooks UserPromptSubmit também recebem `session_title` quando a sessão tem um título personalizado, com o mesmo significado do [campo `session_title` do SessionStart](#sessionstart-input).

1541 1564 


1573| `sessionTitle` | Define o título da sessão. Use para nomear sessões automaticamente com base no conteúdo do prompt |1596| `sessionTitle` | Define o título da sessão. Use para nomear sessões automaticamente com base no conteúdo do prompt |

1574| `suppressOriginalPrompt` | Se `true` quando o hook bloqueia o prompt, deixa o texto do prompt fora da mensagem de bloqueio. Consulte [O que um prompt bloqueado deixa para trás](#what-a-blocked-prompt-leaves-behind) |1597| `suppressOriginalPrompt` | Se `true` quando o hook bloqueia o prompt, deixa o texto do prompt fora da mensagem de bloqueio. Consulte [O que um prompt bloqueado deixa para trás](#what-a-blocked-prompt-leaves-behind) |

1575 1598 

1576Um hook que bloqueia saindo com 2 é tratado da mesma forma que `reason`: a mensagem de bloqueio mostra o texto do stderr ao usuário, e ele não é adicionado ao contexto.1599Um hook que bloqueia saindo com 2 é encaminhado da mesma forma que `reason`: a mensagem de bloqueio mostra o texto do stderr ao usuário, e ele não é adicionado ao contexto.

1577 1600 

1578```json theme={null}1601```json theme={null}

1579{1602{


1592 O que um prompt bloqueado deixa para trás1615 O que um prompt bloqueado deixa para trás

1593</h4>1616</h4>

1594 1617 

1595Um prompt bloqueado nunca chega ao Claude, mas seu texto não é removido de todos os lugares. Por padrão, a mensagem de bloqueio mostrada ao usuário termina com `Original prompt:` seguido do texto enviado, e o Claude Code grava essa mensagem no arquivo de transcrição da sessão no disco. Para deixar o texto fora da mensagem, imprima JSON com `"suppressOriginalPrompt": true` dentro de `hookSpecificOutput`. Isso funciona tanto quando o hook bloqueia com `decision: "block"` quanto saindo com 2.1618Um prompt bloqueado nunca chega ao Claude, mas seu texto não é removido de todos os lugares. Por padrão, a mensagem de bloqueio mostrada ao usuário termina com `Original prompt:` seguido do texto enviado, e o Claude Code grava essa mensagem no arquivo de transcrição da sessão no disco. Para deixar o texto fora da mensagem, imprima JSON com `"suppressOriginalPrompt": true` dentro de `hookSpecificOutput`. Isso funciona tanto se o hook bloquear com `decision: "block"` quanto saindo com 2.

1596 1619 

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

1598 1621 

1599<h3 id="userpromptexpansion">1622<h3 id="userpromptexpansion">

1600 UserPromptExpansion1623 UserPromptExpansion

1601</h3>1624</h3>

1602 1625 

1603É executado quando um comando digitado pelo usuário é expandido em um prompt antes de chegar ao Claude. Use-o para impedir que comandos específicos sejam invocados diretamente, injetar contexto para uma skill específica ou registrar em log quais comandos os usuários invocam. Por exemplo, um hook que corresponde a `deploy` pode bloquear `/deploy` a menos que um arquivo de aprovação esteja presente, ou um hook que corresponde a uma skill de revisão pode anexar a checklist de revisão da equipe como `additionalContext`.1626É executado quando um comando digitado pelo usuário se expande em um prompt antes de chegar ao Claude. Use-o para impedir a invocação direta de comandos específicos, injetar contexto para uma skill específica ou registrar quais comandos os usuários invocam. Por exemplo, um hook que corresponde a `deploy` pode bloquear `/deploy` a menos que um arquivo de aprovação esteja presente, ou um hook que corresponde a uma skill de revisão pode anexar a checklist de revisão da equipe como `additionalContext`.

1604 1627 

1605Este evento cobre o caminho que o `PreToolUse` não cobre: um hook `PreToolUse` que corresponde à ferramenta `Skill` é disparado apenas quando o Claude chama a ferramenta, mas digitar `/skillname` diretamente contorna o `PreToolUse`. O `UserPromptExpansion` é disparado nesse caminho direto.1628Esse evento cobre o caminho que o `PreToolUse` não cobre: um hook `PreToolUse` que corresponde à ferramenta `Skill` é disparado somente quando o Claude chama a ferramenta, mas digitar `/skillname` diretamente ignora o `PreToolUse`. O `UserPromptExpansion` é disparado nesse caminho direto.

1606 1629 

1607Faz a correspondência com `command_name`. Deixe o matcher vazio para disparar em todo comando do tipo prompt.1630Faz a correspondência em `command_name`. Deixe o matcher vazio para disparar em todo comando do tipo prompt.

1608 1631 

1609<h4 id="userpromptexpansion-input">1632<h4 id="userpromptexpansion-input">

1610 Entrada do UserPromptExpansion1633 Entrada do UserPromptExpansion


1635 1658 

1636| Campo | Descrição |1659| Campo | Descrição |

1637| :- | :- |1660| :- | :- |

1638| `decision` | `"block"` impede que o comando seja expandido. Omita para permitir que ele prossiga |1661| `decision` | `"block"` impede que o comando se expanda. Omita para permitir que ele prossiga |

1639| `reason` | Mostrado ao usuário quando `decision` é `"block"` |1662| `reason` | Mostrado ao usuário quando `decision` é `"block"` |

1640| `additionalContext` | String adicionada ao contexto do Claude junto com o prompt expandido. Consulte [Adicionar contexto para o Claude](#add-context-for-claude) |1663| `additionalContext` | String adicionada ao contexto do Claude junto com o prompt expandido. Consulte [Adicionar contexto para o Claude](#add-context-for-claude) |

1641 1664 

1642Um hook que bloqueia saindo com 2 é tratado da mesma forma que `reason`: a mensagem de bloqueio mostra o texto do stderr ao usuário.1665Um hook que bloqueia saindo com 2 é encaminhado da mesma forma que `reason`: a mensagem de bloqueio mostra o texto do stderr ao usuário.

1643 1666 

1644```json theme={null}1667```json theme={null}

1645{1668{


1656 MessageDisplay1679 MessageDisplay

1657</h3>1680</h3>

1658 1681 

1659É executado enquanto uma mensagem do assistente é transmitida para a tela. O Claude Code exibe a mensagem em incrementos: cada vez que um lote de linhas recém-concluídas está pronto para ser renderizado, o hook é executado uma vez com essas linhas e o Claude Code renderiza o texto de substituição do hook no lugar delas. Uma mensagem longa produz várias chamadas; uma mensagem curta pode produzir apenas uma.1682É executado enquanto uma mensagem do assistente é transmitida para a tela. O Claude Code exibe a mensagem em incrementos: cada vez que um lote de linhas recém-concluídas está pronto para ser renderizado, o hook é executado uma vez com essas linhas, e o Claude Code renderiza o texto de substituição do hook no lugar delas. Uma mensagem longa produz várias chamadas; uma mensagem curta pode produzir apenas uma.

1660 1683 

1661Use o MessageDisplay para:1684Use o MessageDisplay para:

1662 1685 

1663* remover markdown para uma exibição minimalista1686* remover markdown para uma exibição minimalista

1664* transformar o texto que uma aplicação do Agent SDK mostra aos seus usuários1687* transformar o texto que um aplicativo do Agent SDK mostra aos seus usuários

1665* ocultar chaves de API ou nomes de host internos das respostas do Claude1688* ocultar chaves de API ou nomes de host internos das respostas do Claude

1666 1689 

1667O Claude Code retém cada lote até que seu hook retorne, portanto mantenha o hook rápido. Se o hook falhar ou atingir o timeout, o Claude Code exibe o texto original. O timeout padrão para este evento é de 10 segundos; se seu hook precisar de mais tempo, defina o campo `timeout` na entrada do hook.1690O Claude Code retém cada lote até que seu hook retorne, portanto mantenha o hook rápido. Se o hook falhar ou atingir o timeout, o Claude Code exibe o texto original. O timeout padrão para esse evento é de 10 segundos; se o seu hook precisar de mais tempo, defina o campo `timeout` na entrada do hook.

1668 1691 

1669O MessageDisplay é apenas de exibição: o texto de substituição altera somente o que é renderizado na tela. A transcrição e o que o Claude vê mantêm o texto original, então o Claude nunca vê a substituição, e o modo verboso mostra o original. O hook recebe apenas o texto das mensagens do assistente, portanto resultados de ferramentas e o texto que você digita são renderizados sem alterações.1692O MessageDisplay serve apenas para exibição: o texto de substituição altera somente o que é renderizado na tela. A transcrição e o que o Claude vê mantêm o texto original, portanto o Claude nunca vê a substituição, e o modo verbose mostra o original. O hook recebe apenas o texto das mensagens do assistente, portanto resultados de ferramentas e o texto que você digita são renderizados sem alteração.

1670 1693 

1671O MessageDisplay não suporta matchers e é disparado para toda mensagem do assistente que transmite texto; mensagens sem texto, como respostas que contêm apenas chamadas de ferramenta, não o acionam.1694O MessageDisplay não suporta matchers e é disparado para toda mensagem do assistente que transmite texto; mensagens sem texto, como respostas que contêm apenas chamadas de ferramenta, não o acionam.

1672 1695 

1673Em execuções não interativas, incluindo consultas do Agent SDK e `claude -p`, o MessageDisplay é executado uma vez por mensagem do assistente em vez de uma vez por lote de linhas. A chamada única chega depois que a mensagem é concluída e carrega o texto completo da mensagem: `index` é `0`, `final` é `true` e `delta` contém a mensagem inteira. Um hook que coleta o texto de `delta` para cada mensagem recebe o mesmo texto total em ambos os modos.1696Em execuções não interativas, incluindo consultas do Agent SDK e `claude -p`, o MessageDisplay é executado uma vez por mensagem do assistente, em vez de uma vez por lote de linhas. A chamada única chega após a conclusão da mensagem e carrega o texto completo da mensagem: `index` é `0`, `final` é `true` e `delta` contém a mensagem inteira. Um hook que coleta o texto de `delta` de cada mensagem recebe o mesmo texto total em ambos os modos.

1674 1697 

1675<h4 id="messagedisplay-input">1698<h4 id="messagedisplay-input">

1676 Entrada do MessageDisplay1699 Entrada do MessageDisplay

1677</h4>1700</h4>

1678 1701 

1679Além dos [campos de entrada comuns](#common-input-fields), os hooks MessageDisplay recebem identificadores do turno e da mensagem, a posição desta chamada dentro da mensagem e o novo texto em `delta`. Os limites dos lotes dependem de como o texto é transmitido, portanto use `index` e `final` para acompanhar o progresso em uma mensagem, em vez de esperar que as linhas sejam agrupadas de uma forma específica.1702Além dos [campos de entrada comuns](#common-input-fields), os hooks MessageDisplay recebem identificadores do turno e da mensagem, a posição dessa chamada dentro da mensagem e o novo texto em `delta`. Os limites dos lotes dependem de como o texto é transmitido, portanto use `index` e `final` para acompanhar o progresso pela mensagem, em vez de esperar que as linhas sejam agrupadas de uma forma específica.

1680 1703 

1681| Campo | Descrição |1704| Campo | Descrição |

1682| :- | :- |1705| :- | :- |

1683| `turn_id` | UUID do turno atual |1706| `turn_id` | UUID do turno atual |

1684| `message_id` | UUID da mensagem do assistente sendo exibida. Estável em todos os lotes da mesma mensagem. Este não é o id `msg_…` da API, portanto não pode ser correlacionado com os ids de mensagem da transcrição |1707| `message_id` | UUID da mensagem do assistente sendo exibida. Estável em todos os lotes da mesma mensagem. Este não é o id `msg_…` da API, portanto não pode ser correlacionado com os ids de mensagem da transcrição |

1685| `index` | Índice baseado em zero deste lote dentro da mensagem |1708| `index` | Índice, começando em zero, deste lote dentro da mensagem |

1686| `final` | `true` no último lote da mensagem. Cada mensagem tem exatamente um lote final |1709| `final` | `true` no último lote da mensagem. Cada mensagem tem exatamente um lote final |

1687| `delta` | As linhas recém-concluídas desde o lote anterior, incluindo as quebras de linha finais. Sempre linhas inteiras, exceto o lote final, que pode terminar no meio de uma linha. Em execuções interativas, o delta do lote final fica vazio quando a mensagem termina com uma quebra de linha, portanto trate `final`, e não um delta não vazio, como o sinal de fim de mensagem. Em execuções do Agent SDK e `claude -p`, a chamada única carrega a mensagem inteira |1710| `delta` | As linhas recém-concluídas desde o lote anterior, incluindo as quebras de linha finais. Sempre linhas inteiras, exceto o lote final, que pode terminar no meio de uma linha. Em execuções interativas, o delta do lote final fica vazio quando a mensagem termina com uma quebra de linha, portanto trate `final`, e não um delta não vazio, como o sinal de fim da mensagem. Em execuções do Agent SDK e de `claude -p`, a chamada única carrega a mensagem inteira |

1688 1711 

1689```json theme={null}1712```json theme={null}

1690{1713{


1710| :- | :- |1733| :- | :- |

1711| `displayContent` | Texto exibido no lugar do delta. Omita-o para exibir o original |1734| `displayContent` | Texto exibido no lugar do delta. Omita-o para exibir o original |

1712 1735 

1713Os hooks MessageDisplay não têm controle de decisão. Eles não podem bloquear a mensagem nem alterar o que é armazenado na transcrição ou enviado ao Claude. O Claude Code age com base em `displayContent` da saída JSON deles e descarta `systemMessage` e `continue`.1736Os hooks MessageDisplay não têm controle de decisão. Eles não podem bloquear a mensagem nem alterar o que é armazenado na transcrição ou enviado ao Claude. O Claude Code age sobre o `displayContent` da saída JSON deles e descarta `systemMessage` e `continue`.

1714 1737 

1715Este exemplo remove a formatação markdown das respostas do Claude para uma exibição em texto simples. O script lê cada lote do stdin, remove os marcadores de negrito e as crases de código inline de `delta` e retorna o resultado como `displayContent`.1738Este exemplo remove a formatação markdown das respostas do Claude para uma exibição em texto simples. O script lê cada lote do stdin, remove os marcadores de negrito e os acentos graves de código inline de `delta` e retorna o resultado como `displayContent`.

1716 1739 

1717<Tabs>1740<Tabs>

1718 <Tab title="macOS/Linux">1741 <Tab title="macOS/Linux">


1771 }1794 }

1772 ```1795 ```

1773 1796 

1774 A flag `-NoProfile` pula o carregamento do seu perfil do PowerShell para que o hook inicie rapidamente, e `-ExecutionPolicy Bypass` permite que o PowerShell execute o arquivo de script local.1797 A flag `-NoProfile` evita o carregamento do seu perfil do PowerShell para que o hook inicie rapidamente, e `-ExecutionPolicy Bypass` permite que o PowerShell execute o arquivo de script local.

1775 1798 

1776 Salve este script em `.claude/hooks/plain-display.ps1` no seu projeto:1799 Salve este script em `.claude/hooks/plain-display.ps1` no seu projeto:

1777 1800 


1788 </Tab>1811 </Tab>

1789</Tabs>1812</Tabs>

1790 1813 

1791Lotes sem markdown passam sem alterações. Se o script falhar, por exemplo porque o `jq` não está instalado, o Claude Code exibe o texto original e registra a falha apenas na [saída de depuração](#debug-hooks), não na sessão.1814Lotes sem markdown passam sem alteração. Se o script falhar, por exemplo porque o `jq` não está instalado, o Claude Code exibe o texto original e registra a falha apenas na [saída de depuração](#debug-hooks), não na sessão.

1792 1815 

1793<h3 id="pretooluse">1816<h3 id="pretooluse">

1794 PreToolUse1817 PreToolUse

1795</h3>1818</h3>

1796 1819 

1797É executado depois que o Claude cria os parâmetros da ferramenta e antes de processar a chamada de ferramenta. Faz correspondência com qualquer nome de ferramenta, exceto `EndConversation`: ferramentas integradas como `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion` e `ExitPlanMode`, e quaisquer [nomes de ferramentas MCP](#match-mcp-tools).1820É executado depois que o Claude cria os parâmetros da ferramenta e antes de processar a chamada de ferramenta. Faz a correspondência com qualquer nome de ferramenta, exceto `EndConversation`: ferramentas integradas como `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion` e `ExitPlanMode`, e quaisquer [nomes de ferramentas MCP](#match-mcp-tools).

1798 1821 

1799Para executar um hook quando um arquivo específico muda no disco, independentemente de quem o gravou, use [FileChanged](#filechanged) em vez de corresponder às ferramentas de edição de arquivos pelo nome. Ao contrário do PreToolUse, o Claude Code executa os hooks FileChanged depois da alteração, e eles não têm controle de decisão, portanto não podem bloquear a gravação.1822Para executar um hook quando um arquivo específico muda no disco, independentemente de quem o gravou, use o [FileChanged](#filechanged) em vez de fazer a correspondência de ferramentas de edição de arquivos pelo nome. Diferentemente do PreToolUse, o Claude Code executa os hooks FileChanged após a alteração, e eles não têm controle de decisão, portanto não podem bloquear a gravação.

1800 1823 

1801<Warning>1824<Warning>

1802 O PreToolUse é executado apenas quando o Claude chama uma ferramenta. Arquivos que você [referencia com `@` no seu prompt](/docs/pt/common-workflows#reference-files-and-directories) são adicionados sem nenhuma chamada de ferramenta: o Claude Code insere o conteúdo deles ao montar o prompt, portanto nenhum hook PreToolUse é disparado para eles, incluindo hooks que correspondem a `Read`. Para bloquear caminhos específicos de referências `@`, use uma [regra de negação de `Read`](/docs/pt/permissions#read-and-edit) em vez disso.1825 O PreToolUse é executado somente quando o Claude chama uma ferramenta. Por padrão, arquivos que você [referencia com `@` no seu prompt](/docs/pt/common-workflows#reference-files-and-directories) são adicionados sem nenhuma chamada de ferramenta. O Claude Code insere o conteúdo deles enquanto monta o prompt, portanto nenhum hook PreToolUse é disparado para eles, incluindo hooks que correspondem a `Read`. O PreToolUse também não é disparado para [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior).

1826 

1827 Você pode bloquear caminhos específicos de referências `@` ou desativar a inserção:

1803 1828 

1804 O PreToolUse também não é disparado para [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior).1829 * **Bloquear caminhos específicos**: adicione uma [regra de negação de `Read`](/docs/pt/permissions#read-and-edit) para eles

1830 * **Desativar a inserção**: defina [`CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`](/docs/pt/env-vars#variables) no seu shell, nas configurações de usuário ou nas configurações gerenciadas. O Claude então recebe os caminhos mencionados com uma nota para lê-los usando suas ferramentas de arquivo. Se ele fizer isso, seus hooks PreToolUse correspondentes serão executados. A variável requer o Claude Code v2.1.299 ou posterior, e o Claude Code a ignora nas configurações de projeto e locais.

1805</Warning>1831</Warning>

1806 1832 

1807Use o [controle de decisão do PreToolUse](#pretooluse-decision-control) para permitir, negar, pedir confirmação ou adiar a chamada de ferramenta.1833Use o [controle de decisão do PreToolUse](#pretooluse-decision-control) para permitir, negar, perguntar ou adiar a chamada de ferramenta.

1808 1834 

1809Um [hook de callback do Agent SDK](/docs/pt/agent-sdk/hooks) em `PreToolUse` que excede seu timeout bloqueia a chamada de ferramenta, e o Claude recebe um resultado de erro que nomeia o timeout. Uma negação explícita retornada por outro hook ainda tem precedência.1835Um [hook de callback do Agent SDK](/docs/pt/agent-sdk/hooks) em `PreToolUse` que excede seu timeout bloqueia a chamada de ferramenta, e o Claude recebe um resultado de erro nomeando o timeout. Uma negação explícita retornada por outro hook ainda tem precedência.

1810 1836 

1811<h4 id="pretooluse-input">1837<h4 id="pretooluse-input">

1812 Entrada do PreToolUse1838 Entrada do PreToolUse


1814 1840 

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

1816 1842 

1817Para uma [ferramenta MCP](#match-mcp-tools), a entrada também carrega `mcp_server`, um objeto com o `name` do servidor e um `source` que indica de onde veio a definição do servidor. Os valores de `source` incluem `plugin`, `sdk` e escopos de configuração como `user` e `project`. [`McpServerProvenance`](/docs/pt/agent-sdk/typescript#mcpserverprovenance) na referência do Agent SDK lista todos eles e explica como tratar um que você não reconhece. Baseie decisões de confiança em `source`, e não em `name` ou no prefixo de nome de ferramenta `mcp__<server>__`. O campo `mcp_server` exige o Claude Code v2.1.274 ou posterior.1843Para uma [ferramenta MCP](#match-mcp-tools), a entrada também carrega `mcp_server`, um objeto com o `name` do servidor e um `source` que indica de onde veio a definição do servidor. Os valores de `source` incluem `plugin`, `sdk` e escopos de configuração como `user` e `project`. [`McpServerProvenance`](/docs/pt/agent-sdk/typescript#mcpserverprovenance) na referência do Agent SDK lista todos eles e explica como tratar um que você não reconheça. Baseie decisões de confiança em `source`, e não em `name` ou no prefixo de nome de ferramenta `mcp__<server>__`. O campo `mcp_server` requer o Claude Code v2.1.274 ou posterior.

1818 1844 

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

1820 1846 

1821* O Claude Code expande `~` e caminhos relativos antes de os hooks serem executados, portanto um hook que faz correspondência por caminhos não pode ser contornado via `~` ou por uma grafia relativa do mesmo caminho1847* O Claude Code expande `~` e caminhos relativos antes de os hooks serem executados, portanto um hook que faz a correspondência de caminhos não pode ser contornado por meio de `~` ou de uma grafia relativa do mesmo caminho

1822* No Windows, o caminho chega com separadores de barra invertida, mesmo quando seu hook é executado no Git Bash, onde `$PWD` se parece com `/c/project`1848* No Windows, o caminho chega com separadores de barra invertida, mesmo quando seu hook é executado no Git Bash, onde `$PWD` se parece com `/c/project`

1823* Uma comparação escrita com barras normais, como uma verificação de `/src/`, nunca corresponde a um caminho com barras invertidas, e a chamada de ferramenta prossegue como se o hook não tivesse nada a bloquear1849* Uma comparação escrita com barras normais, como uma verificação de `/src/`, nunca corresponde a um caminho com barras invertidas, e a chamada de ferramenta prossegue como se o hook não tivesse nada a bloquear

1824* Normalize os separadores antes de comparar: `FILE_PATH="${FILE_PATH//\\//}"` no Bash, ou `file_path.replace("\\", "/")` no Python, e então faça a correspondência com um segmento de caminho como `/src/` em vez de ancorar com `^`, já que o caminho é absoluto1850* Normalize os separadores antes de comparar: `FILE_PATH="${FILE_PATH//\\//}"` no Bash, ou `file_path.replace("\\", "/")` no Python, e então faça a correspondência de um segmento de caminho como `/src/` em vez de ancorar com `^`, já que o caminho é absoluto

1825 1851 

1826Uma chamada `Write` no Windows entrega:1852Uma chamada `Write` no Windows entrega:

1827 1853 


1854| `timeout` | number | `120000` | Timeout opcional em milissegundos. Valores acima do [máximo](/docs/pt/tools-reference#bash-tool-behavior) são reduzidos ao máximo em vez de rejeitados |1880| `timeout` | number | `120000` | Timeout opcional em milissegundos. Valores acima do [máximo](/docs/pt/tools-reference#bash-tool-behavior) são reduzidos ao máximo em vez de rejeitados |

1855| `run_in_background` | boolean | `false` | Se o comando deve ser executado em segundo plano |1881| `run_in_background` | boolean | `false` | Se o comando deve ser executado em segundo plano |

1856 1882 

1857Quando um comando Bash altera arquivos em um repositório Git, o Claude Code pode registrar o que mudou. Ele registra as alterações em todos os modos de permissão quando a configuração [`bashEditDiffEnabled`](/docs/pt/settings-reference#basheditdiffenabled) ativa o registro; a entrada dessa configuração indica quais arquivos podem defini-la. Caso contrário, ele as registra apenas no modo auto e no modo `bypassPermissions`, e somente quando o Claude Code orienta o Claude a editar arquivos por meio do Bash. Defina `bashEditDiffEnabled` como `false` para desativar o registro. Comandos em segundo plano e comandos somente leitura não carregam diff.1883Quando um comando Bash altera arquivos em um repositório Git, o Claude Code pode registrar o que mudou. Ele registra as alterações em todos os modos de permissão quando a configuração [`bashEditDiffEnabled`](/docs/pt/settings-reference#basheditdiffenabled) ativa o registro; a entrada dessa configuração indica quais arquivos podem defini-la. Caso contrário, ele as registra somente no modo auto e no modo `bypassPermissions`, e somente quando o Claude Code orienta o Claude a editar arquivos por meio do Bash. Defina `bashEditDiffEnabled` como `false` para desativar o registro. Comandos em segundo plano e comandos somente leitura não carregam diff.

1858 1884 

1859Seu [hook PostToolUse](#posttooluse) então recebe os arquivos alterados em `tool_response.bashEditDiff`. A lista cobre o que mudou no repositório enquanto o comando era executado. Arquivos que o Git ignora e arquivos em submódulos não são listados. Exige o Claude Code v2.1.269 ou posterior.1885Seu [hook PostToolUse](#posttooluse) então recebe os arquivos alterados em `tool_response.bashEditDiff`. A lista abrange o que mudou no repositório enquanto o comando era executado. Arquivos que o Git ignora e arquivos em submódulos não são listados. Requer o Claude Code v2.1.269 ou posterior.

1860 1886 

1861<Note>1887<Note>

1862 A lista é de melhor esforço e está em beta público. O Claude Code pode deixar passar uma alteração, incluir um arquivo que outro processo alterou ao mesmo tempo ou parar em seus limites de tamanho. O formato do campo pode mudar. Use a lista para descobrir o que revisar, não para impor uma política.1888 A lista é de melhor esforço e está em beta público. O Claude Code pode deixar de capturar uma alteração, incluir um arquivo que outro processo alterou ao mesmo tempo ou parar em seus limites de tamanho. O formato do campo pode mudar. Use a lista para encontrar o que revisar, não para impor uma política.

1863</Note>1889</Note>

1864 1890 

1865`changedFiles` e `files` listam o que o comando alterou; os demais campos indicam quão completa e quão confiável essa lista é.1891`changedFiles` e `files` listam o que o comando alterou; os campos restantes indicam quão completa e quão confiável é essa lista.

1866 1892 

1867| Campo | Tipo | Exemplo | Descrição |1893| Campo | Tipo | Exemplo | Descrição |

1868| :- | :- | :- | :- |1894| :- | :- | :- | :- |

1869| `changedFiles` | array | `["/path/to/src/app.ts"]` | Caminhos absolutos dos arquivos que o comando alterou, no máximo 200. Presente sempre que `files` contém um diff ou `moreFiles` é maior que zero |1895| `changedFiles` | array | `["/path/to/src/app.ts"]` | Caminhos absolutos dos arquivos que o comando alterou, no máximo 200. Presente sempre que `files` contém um diff ou `moreFiles` é maior que zero |

1870| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | Diffs de até 5 arquivos alterados, para exibição. `created` ou `deleted` é `true` para um arquivo que o comando adicionou ou removeu |1896| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | Diffs de até 5 arquivos alterados, para exibição. `created` ou `deleted` é `true` para um arquivo que o comando adicionou ou removeu |

1871| `moreFiles` | number | `2` | Contagem de arquivos alterados sem diff em `files` |1897| `moreFiles` | number | `2` | Quantidade de arquivos alterados sem diff em `files` |

1872| `unavailable` | boolean | `true` | Definido quando o diff está incompleto ou não pôde ser obtido |1898| `unavailable` | boolean | `true` | Definido quando o diff está incompleto ou não pôde ser obtido |

1873| `skipped` | boolean | `true` | Definido para um comando Git que move a árvore de trabalho, como `git checkout` ou `git stash`, de modo que o Claude Code não obtém diff |1899| `skipped` | boolean | `true` | Definido para um comando Git que move a árvore de trabalho, como `git checkout` ou `git stash`, de modo que o Claude Code não obtém nenhum diff |

1874| `shared` | boolean | `true` | Definido quando outra chamada da ferramenta Bash, como a de um subagente, foi executada no mesmo repositório ao mesmo tempo, de modo que algumas alterações listadas podem ser desse comando |1900| `shared` | boolean | `true` | Definido quando outra chamada da ferramenta Bash, como a de um subagente, foi executada no mesmo repositório ao mesmo tempo, de modo que algumas alterações listadas podem ser desse comando |

1875 1901 

1876<a id="powershell" />1902<a id="powershell" />


1879 PowerShell1905 PowerShell

1880</h5>1906</h5>

1881 1907 

1882Executa comandos do PowerShell. Consulte a [ferramenta PowerShell](/docs/pt/tools-reference#powershell-tool) para ver a disponibilidade por plataforma.1908Executa comandos PowerShell. Consulte a [ferramenta PowerShell](/docs/pt/tools-reference#powershell-tool) para ver a disponibilidade por plataforma.

1883 1909 

1884Os campos correspondem aos da ferramenta Bash, com a string do comando em `command`:1910Os campos correspondem aos da ferramenta Bash, com a string do comando em `command`:

1885 1911 

1886| Campo | Tipo | Exemplo | Descrição |1912| Campo | Tipo | Exemplo | Descrição |

1887| :- | :- | :- | :- |1913| :- | :- | :- | :- |

1888| `command` | string | `"Get-ChildItem -Recurse"` | O comando do PowerShell a ser executado |1914| `command` | string | `"Get-ChildItem -Recurse"` | O comando PowerShell a ser executado |

1889| `description` | string | `"List files recursively"` | Descrição opcional do que o comando faz |1915| `description` | string | `"List files recursively"` | Descrição opcional do que o comando faz |

1890| `timeout` | number | `120000` | Timeout opcional em milissegundos |1916| `timeout` | number | `120000` | Timeout opcional em milissegundos |

1891| `run_in_background` | boolean | `false` | Se o comando deve ser executado em segundo plano |1917| `run_in_background` | boolean | `false` | Se o comando deve ser executado em segundo plano |

1892 1918 

1893Use `Bash|PowerShell` como matcher em hooks que inspecionam comandos de shell, para que eles cubram ambas as ferramentas:1919Use `Bash|PowerShell` como matcher em hooks que inspecionam comandos de shell, para que cubram ambas as ferramentas:

1894 1920 

1895* No Windows, sempre que a ferramenta PowerShell estiver habilitada, o Claude trata o PowerShell como o shell principal e encaminha os comandos de shell por ele.1921* No Windows, onde quer que a ferramenta PowerShell esteja habilitada, o Claude trata o PowerShell como o shell principal e encaminha os comandos de shell por meio dele.

1896* No Windows sem Git Bash, a ferramenta é habilitada automaticamente e o Claude Code não registra a ferramenta Bash.1922* No Windows sem Git Bash, a ferramenta é habilitada automaticamente e o Claude Code não registra a ferramenta Bash.

1897* Um hook que corresponde apenas a `Bash` nunca é disparado nesse caso.1923* Um hook que corresponde apenas a `Bash` nunca é disparado nesse caso.

1898 1924 


1940 1966 

1941| Campo | Tipo | Exemplo | Descrição |1967| Campo | Tipo | Exemplo | Descrição |

1942| :- | :- | :- | :- |1968| :- | :- | :- | :- |

1943| `pattern` | string | `"**/*.ts"` | Padrão glob com o qual os arquivos serão comparados |1969| `pattern` | string | `"**/*.ts"` | Padrão glob com o qual comparar os arquivos |

1944| `path` | string | `"/path/to/dir"` | Diretório opcional onde pesquisar. O padrão é o diretório de trabalho atual |1970| `path` | string | `"/path/to/dir"` | Diretório opcional no qual pesquisar. O padrão é o diretório de trabalho atual |

1945 1971 

1946<h5 id="grep">1972<h5 id="grep">

1947 Grep1973 Grep


1952| Campo | Tipo | Exemplo | Descrição |1978| Campo | Tipo | Exemplo | Descrição |

1953| :- | :- | :- | :- |1979| :- | :- | :- | :- |

1954| `pattern` | string | `"TODO.*fix"` | Padrão de expressão regular a ser pesquisado |1980| `pattern` | string | `"TODO.*fix"` | Padrão de expressão regular a ser pesquisado |

1955| `path` | string | `"/path/to/dir"` | Arquivo ou diretório opcional onde pesquisar |1981| `path` | string | `"/path/to/dir"` | Arquivo ou diretório opcional no qual pesquisar |

1956| `glob` | string | `"*.ts"` | Padrão glob opcional para filtrar arquivos |1982| `glob` | string | `"*.ts"` | Padrão glob opcional para filtrar arquivos |

1957| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"` ou `"count"`. O padrão é `"files_with_matches"` |1983| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"` ou `"count"`. O padrão é `"files_with_matches"` |

1958| `-i` | boolean | `true` | Pesquisa sem diferenciar maiúsculas de minúsculas |1984| `-i` | boolean | `true` | Pesquisa sem diferenciar maiúsculas de minúsculas |

1959| `multiline` | boolean | `false` | Habilita correspondência em várias linhas |1985| `multiline` | boolean | `false` | Habilita a correspondência em várias linhas |

1960 1986 

1961<h5 id="webfetch">1987<h5 id="webfetch">

1962 WebFetch1988 WebFetch


1966 1992 

1967| Campo | Tipo | Exemplo | Descrição |1993| Campo | Tipo | Exemplo | Descrição |

1968| :- | :- | :- | :- |1994| :- | :- | :- | :- |

1969| `url` | string | `"https://example.com/api"` | URL de onde buscar o conteúdo |1995| `url` | string | `"https://example.com/api"` | URL da qual buscar o conteúdo |

1970| `prompt` | string | `"Extract the API endpoints"` | Prompt a ser executado sobre o conteúdo buscado |1996| `prompt` | string | `"Extract the API endpoints"` | Prompt a ser executado no conteúdo buscado |

1971| `offset` | number | `100000` | Número opcional de caracteres a pular a partir do início da página. O Claude o define para continuar lendo uma página longa. Exige o Claude Code v2.1.290 ou posterior |1997| `offset` | number | `100000` | Número opcional de caracteres a pular a partir do início da página. O Claude o define para continuar lendo uma página longa. Requer o Claude Code v2.1.290 ou posterior |

1972 1998 

1973<h5 id="websearch">1999<h5 id="websearch">

1974 WebSearch2000 WebSearch


1999 2025 

2000| Campo | Tipo | Exemplo | Descrição |2026| Campo | Tipo | Exemplo | Descrição |

2001| :- | :- | :- | :- |2027| :- | :- | :- | :- |

2002| `status` | string | `"completed"` | `"completed"` para subagentes em primeiro plano, `"async_launched"` para subagentes em segundo plano. Subagentes são executados em segundo plano por padrão, portanto uma chamada Agent que omite `run_in_background` também produz `"async_launched"` |2028| `status` | string | `"completed"` | `"completed"` para subagentes em primeiro plano, `"async_launched"` para subagentes em segundo plano. Os subagentes são executados em segundo plano por padrão, portanto uma chamada Agent que omite `run_in_background` também produz `"async_launched"` |

2003| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificador da execução do subagente |2029| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificador da execução do subagente |

2004| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Os blocos de texto finais do subagente ou, para um subagente cujo relatório passa por `SubagentHandback`, uma nota curta sobre essa entrega no lugar deles |2030| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Os blocos de texto finais do subagente ou, para um subagente cujo relatório passa pelo `SubagentHandback`, uma nota curta sobre essa entrega no lugar deles |

2005| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modelo com o qual o subagente começou, que pode ser diferente do modelo solicitado |2031| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modelo com o qual o subagente começou, que pode ser diferente do modelo solicitado |

2006| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Modelos usados em ordem, com repetições consecutivas condensadas; definido apenas quando o modelo foi trocado no meio da execução. Exige o Claude Code v2.1.212 ou posterior |2032| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Modelos usados em ordem, com repetições consecutivas agrupadas; definido somente quando o modelo foi trocado no meio da execução. Requer o Claude Code v2.1.212 ou posterior |

2007| `totalTokens` | number | `12450` | Contagem de tokens da requisição final à API do subagente: tokens de entrada, saída e cache combinados. Isso não é um total de toda a execução |2033| `totalTokens` | number | `12450` | Contagem de tokens da requisição final de API do subagente: tokens de entrada, de saída e de cache combinados. Não é um total de toda a execução |

2008| `totalDurationMs` | number | `48211` | Duração em tempo real da execução do subagente |2034| `totalDurationMs` | number | `48211` | Duração em tempo real da execução do subagente |

2009| `totalToolUseCount` | number | `7` | Contagem de chamadas de ferramenta que o subagente fez |2035| `totalToolUseCount` | number | `7` | Quantidade de chamadas de ferramenta que o subagente fez |

2010| `usage` | object | `{"input_tokens": 8320, ...}` | Detalhamento de tokens por tipo da requisição final à API: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |2036| `usage` | object | `{"input_tokens": 8320, ...}` | Detalhamento por tipo dos tokens da requisição final de API: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |

2011 2037 

2012No Claude Code v2.1.271 ou posterior, um subagente executado com a ferramenta [`SubagentHandback`](/docs/pt/tools-reference), que o Claude Code fornece no [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), entrega seu relatório por meio dessa ferramenta em vez de retorná-lo como texto. O campo `content` do seu resultado `completed` então carrega uma nota curta sobre essa entrega em vez do próprio relatório. Para ler o relatório, configure um hook `PreToolUse` ou `PostToolUse` com matcher em `SubagentHandback` e leia `tool_input.message`.2038No Claude Code v2.1.271 ou posterior, um subagente executado com a ferramenta [`SubagentHandback`](/docs/pt/tools-reference), que o Claude Code fornece no [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), entrega seu relatório por meio dessa ferramenta em vez de retorná-lo como texto. O campo `content` de seu resultado `completed` então carrega uma nota curta sobre essa entrega em vez do próprio relatório. Para ler o relatório, faça a correspondência de um hook `PreToolUse` ou `PostToolUse` com `SubagentHandback` e leia `tool_input.message`.

2013 2039 

2014Para subagentes em segundo plano, a ferramenta retorna quando a tarefa passa para o segundo plano, portanto `tool_response` não carrega campos de uso: uma inicialização em segundo plano retorna imediatamente, e uma tarefa em primeiro plano que o Claude Code move para o segundo plano no meio da execução retorna nessa transição. Ela tem `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` e `resolvedModel`.2040Para subagentes em segundo plano, a ferramenta retorna quando a tarefa passa para o segundo plano, portanto `tool_response` não carrega campos de uso: um lançamento em segundo plano retorna imediatamente, e uma tarefa em primeiro plano que o Claude Code move para o segundo plano no meio da execução retorna nessa transição. Ele tem `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` e `resolvedModel`.

2015 2041 

2016Em uma resposta `completed`, `resolvedModel` nomeia o modelo com o qual o subagente começou, que pode ser diferente do valor de `model` em `tool_input`, como quando `availableModels` ou outra substituição se aplica. Em uma resposta `async_launched`, `resolvedModel` nomeia o modelo em uso quando o agente passou para o segundo plano, de modo que uma troca ocorrida antes disso é refletida ali. `modelsUsed` e o comportamento de `resolvedModel` no momento da passagem para segundo plano exigem o Claude Code v2.1.212 ou posterior.2042Em uma resposta `completed`, `resolvedModel` indica o modelo com o qual o subagente começou, que pode ser diferente do valor de `model` em `tool_input`, como quando `availableModels` ou outra substituição se aplica. Em uma resposta `async_launched`, `resolvedModel` indica o modelo em uso quando o agente passou para o segundo plano, de modo que uma troca ocorrida antes disso é refletida ali. `modelsUsed` e o comportamento de `resolvedModel` no momento da passagem para o segundo plano requerem o Claude Code v2.1.212 ou posterior.

2017 2043 

2018<a id="askuserquestion" />2044<a id="askuserquestion" />

2019 2045 


2025 2051 

2026| Campo | Tipo | Exemplo | Descrição |2052| Campo | Tipo | Exemplo | Descrição |

2027| :- | :- | :- | :- |2053| :- | :- | :- | :- |

2028| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React", "description": "Component library"}, {"label": "Vue", "description": "Progressive framework"}], "multiSelect": false}]` | Perguntas a apresentar, cada uma com uma string `question`, um `header` curto, um array `options` e uma flag `multiSelect` opcional |2054| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React", "description": "Component library"}, {"label": "Vue", "description": "Progressive framework"}], "multiSelect": false}]` | Perguntas a serem apresentadas, cada uma com uma string `question`, um `header` curto, um array `options` e uma flag `multiSelect` opcional |

2029| `answers` | object | `{"Which framework?": "React"}` | Opcional. Mapeia o texto da pergunta para o rótulo da opção selecionada. Respostas de múltipla seleção unem os rótulos com vírgulas. O Claude não define este campo; forneça-o via `updatedInput` para responder programaticamente |2055| `answers` | object | `{"Which framework?": "React"}` | Opcional. Mapeia o texto da pergunta para o rótulo da opção selecionada. Respostas de seleção múltipla unem os rótulos com vírgulas. O Claude não define esse campo; forneça-o via `updatedInput` para responder programaticamente |

2030 2056 

2031<h5 id="exitplanmode">2057<h5 id="exitplanmode">

2032 ExitPlanMode2058 ExitPlanMode

2033</h5>2059</h5>

2034 2060 

2035Apresenta um plano e pede ao usuário que o aprove antes de o Claude sair do [modo de planejamento](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode). O Claude grava o plano em um arquivo no disco antes de chamar a ferramenta, portanto o `tool_input` literal vindo do modelo normalmente está vazio. O Claude Code injeta o conteúdo do plano e o caminho do arquivo antes de passar a entrada para os hooks.2061Apresenta um plano e pede ao usuário que o aprove antes de o Claude sair do [modo de planejamento](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode). O Claude grava o plano em um arquivo no disco antes de chamar a ferramenta, portanto o `tool_input` literal do modelo normalmente está vazio. O Claude Code injeta o conteúdo do plano e o caminho do arquivo antes de passar a entrada para os hooks.

2036 2062 

2037| Campo | Tipo | Exemplo | Descrição |2063| Campo | Tipo | Exemplo | Descrição |

2038| :- | :- | :- | :- |2064| :- | :- | :- | :- |

2039| `plan` | string | `"## Refactor auth\n1. Extract..."` | Conteúdo do plano em Markdown. Injetado a partir do arquivo de plano no disco |2065| `plan` | string | `"## Refactor auth\n1. Extract..."` | Conteúdo do plano em Markdown. Injetado a partir do arquivo do plano no disco |

2040| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Caminho para o arquivo de plano. Injetado |2066| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Caminho para o arquivo do plano. Injetado |

2041| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Descontinuado. O Claude Code aceita o campo, mas o ignora. Antes da v2.1.205, ele carregava permissões baseadas em prompt que o Claude solicitava para implementar o plano |2067| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Descontinuado. O Claude Code aceita o campo, mas o ignora. Antes da v2.1.205, ele carregava permissões baseadas em prompt que o Claude solicitava para implementar o plano |

2042 2068 

2043No `PostToolUse`, `tool_response` é um objeto com os campos `plan` e `filePath` contendo o plano aprovado, além de flags de status internas. Leia `tool_response.plan` para obter o conteúdo do plano em vez de ler o arquivo do disco novamente.2069No `PostToolUse`, `tool_response` é um objeto com os campos `plan` e `filePath` contendo o plano aprovado, além de flags de status internas. Leia `tool_response.plan` para obter o conteúdo do plano em vez de ler novamente o arquivo do disco.

2044 2070 

2045<h4 id="pretooluse-decision-control">2071<h4 id="pretooluse-decision-control">

2046 Controle de decisão do PreToolUse2072 Controle de decisão do PreToolUse

2047</h4>2073</h4>

2048 2074 

2049Os hooks `PreToolUse` podem controlar se uma chamada de ferramenta prossegue. Ao contrário de outros hooks que usam um campo `decision` de nível superior, o PreToolUse retorna sua decisão dentro de um objeto `hookSpecificOutput`. Isso lhe dá um controle mais rico: quatro resultados (permitir, negar, pedir confirmação ou adiar) e a capacidade de modificar a entrada da ferramenta antes da execução.2075Os hooks `PreToolUse` podem controlar se uma chamada de ferramenta prossegue. Diferentemente de outros hooks que usam um campo `decision` de nível superior, o PreToolUse retorna sua decisão dentro de um objeto `hookSpecificOutput`. Isso lhe dá um controle mais rico: quatro resultados (allow, deny, ask ou defer), além da capacidade de modificar a entrada da ferramenta antes da execução.

2050 2076 

2051| Campo | Descrição |2077| Campo | Descrição |

2052| :- | :- |2078| :- | :- |

2053| `permissionDecision` | `"allow"` ignora o prompt de permissão, exceto para as [ações que nenhum modo aprova automaticamente](/docs/pt/permission-modes#actions-no-mode-auto-approves), para [leituras de caminhos de rede](/docs/pt/permissions#network-paths) e para `AskUserQuestion` e `ExitPlanMode`, que precisam de [`updatedInput` combinado com ele](#allow-with-updatedinput). `"deny"` impede a chamada de ferramenta. `"ask"` pede ao usuário que confirme. `"defer"` sai de forma controlada para que a ferramenta possa ser retomada mais tarde. As [regras de negação e de confirmação](/docs/pt/permissions#manage-permissions) ainda são avaliadas independentemente do que o hook retorne |2079| `permissionDecision` | `"allow"` ignora o prompt de permissão, exceto para as [ações que nenhum modo aprova automaticamente](/docs/pt/permission-modes#actions-no-mode-auto-approves), para [leituras de caminhos de rede](/docs/pt/permissions#network-paths) e para `AskUserQuestion` e `ExitPlanMode`, que precisam de [`updatedInput` associado a ele](#allow-with-updatedinput). `"deny"` impede a chamada de ferramenta. `"ask"` pede ao usuário que confirme. `"defer"` sai de forma controlada para que a ferramenta possa ser retomada mais tarde. As [regras de negação e de pergunta](/docs/pt/permissions#manage-permissions) ainda são avaliadas independentemente do que o hook retorna |

2054| `permissionDecisionReason` | Para `"ask"`, mostrado ao usuário no prompt de permissão. Quando o Claude Code [nega a chamada](/docs/pt/headless#turn-off-permission-prompts-in-unattended-runs) em uma execução `-p` em que ninguém pode responder a esse prompt, o Claude lê o motivo no resultado da ferramenta. Para `"deny"`, mostrado ao Claude. Para `"allow"` e `"defer"`, gravado apenas no [log de depuração](#debug-hooks) |2080| `permissionDecisionReason` | Para `"ask"`, mostrado ao usuário no prompt de permissão. Quando o Claude Code [nega a chamada](/docs/pt/headless#turn-off-permission-prompts-in-unattended-runs) em uma execução `-p` em que ninguém pode responder a esse prompt, o Claude lê o motivo no resultado da ferramenta. Para `"deny"`, mostrado ao Claude. Para `"allow"` e `"defer"`, gravado apenas no [log de depuração](#debug-hooks) |

2055| `updatedInput` | Modifica os parâmetros de entrada da ferramenta antes da execução. Substitui todo o objeto de entrada, portanto inclua os campos inalterados junto com os modificados. O Claude Code avalia as regras de permissão e a [elegibilidade para segundo plano automático](/docs/pt/tools-reference#foreground-commands-that-move-to-the-background) de um comando Bash com base na entrada que seu hook retorna, não na entrada que o Claude enviou. Combine com `"allow"` para aprovar automaticamente, ou com `"ask"` para mostrar a entrada modificada ao usuário. Para `"defer"`, é ignorado |2081| `updatedInput` | Modifica os parâmetros de entrada da ferramenta antes da execução. Substitui o objeto de entrada inteiro, portanto inclua os campos inalterados junto com os modificados. O Claude Code avalia as regras de permissão e a [elegibilidade para segundo plano automático](/docs/pt/tools-reference#foreground-commands-that-move-to-the-background) de um comando Bash com base na entrada que seu hook retorna, e não na entrada que o Claude enviou. Combine com `"allow"` para aprovar automaticamente, ou com `"ask"` para mostrar a entrada modificada ao usuário. Para `"defer"`, é ignorado |

2056| `additionalContext` | String adicionada ao contexto do Claude junto com o resultado da ferramenta. Ignorada quando `permissionDecision` é `"defer"`. Consulte [Adicionar contexto para o Claude](#add-context-for-claude) |2082| `additionalContext` | String adicionada ao contexto do Claude junto com o resultado da ferramenta. Ignorado quando `permissionDecision` é `"defer"`. Consulte [Adicionar contexto para o Claude](#add-context-for-claude) |

2057 2083 

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

2059 2085 

2060Um hook que bloqueia saindo com 2 é tratado da mesma forma que `"deny"`: o Claude vê a mensagem do stderr como o motivo da negação.2086Um hook que bloqueia saindo com 2 é encaminhado da mesma forma que `"deny"`: o Claude vê a mensagem do stderr como o motivo da negação.

2061 2087 

2062Quando um hook retorna `"ask"`, o prompt de permissão exibido ao usuário inclui um rótulo que identifica a origem do hook: `[settings]` para um hook de qualquer arquivo de configurações ou do frontmatter de um agente, `[plugin:<name>]` para o hook de um plugin, ou `[skill]` para um hook do frontmatter de uma skill. Isso ajuda os usuários a entender qual fonte de configuração está solicitando a confirmação.2088Quando um hook retorna `"ask"`, o prompt de permissão exibido ao usuário inclui um rótulo que identifica de onde o hook veio: `[settings]` para um hook de qualquer arquivo de configurações ou do frontmatter de um agente, `[plugin:<name>]` para o hook de um plugin, ou `[skill]` para um hook do frontmatter de uma skill. Isso ajuda os usuários a entender qual fonte de configuração está solicitando a confirmação.

2063 2089 

2064Um `"ask"` de um hook também força um prompt de permissão no [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode): o classificador ainda pode negar a chamada de ferramenta, mas não pode aprová-la silenciosamente. Antes da v2.1.211, o classificador podia aprovar um comando Bash executado fora do [sandbox](/docs/pt/sandboxing) sem mostrar o prompt que o hook solicitou; o classificador ainda aplicava suas próprias regras de segurança a esse comando, e um `"deny"` de hook sempre era respeitado.2090O `"ask"` de um hook também força um prompt de permissão no [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode): o classificador ainda pode negar a chamada de ferramenta, mas não pode aprová-la silenciosamente. Antes da v2.1.211, o classificador podia aprovar um comando Bash executado fora do [sandbox](/docs/pt/sandboxing) sem mostrar o prompt que o hook solicitou; o classificador ainda aplicava suas próprias regras de segurança a esse comando, e um `"deny"` de hook sempre era respeitado.

2065 2091 

2066```json theme={null}2092```json theme={null}

2067{2093{


2078```2104```

2079 2105 

2080<Note>2106<Note>

2081 O PreToolUse usava anteriormente os campos `decision` e `reason` de nível superior, mas eles estão descontinuados para este evento. Use `hookSpecificOutput.permissionDecision` e `hookSpecificOutput.permissionDecisionReason` em vez disso. Os valores descontinuados `"approve"` e `"block"` são mapeados para `"allow"` e `"deny"`, respectivamente. Outros eventos, como PostToolUse e Stop, continuam usando `decision` e `reason` de nível superior como seu formato atual.2107 O PreToolUse usava anteriormente os campos de nível superior `decision` e `reason`, mas eles estão descontinuados para esse evento. Use `hookSpecificOutput.permissionDecision` e `hookSpecificOutput.permissionDecisionReason`. Os valores descontinuados `"approve"` e `"block"` correspondem a `"allow"` e `"deny"`, respectivamente. Outros eventos, como PostToolUse e Stop, continuam a usar `decision` e `reason` de nível superior como seu formato atual.

2082</Note>2108</Note>

2083 2109 

2084<h4 id="allow-with-updatedinput">2110<h4 id="allow-with-updatedinput">

2085 Ferramentas que exigem interação do usuário2111 Ferramentas que exigem interação do usuário

2086</h4>2112</h4>

2087 2113 

2088`AskUserQuestion` e `ExitPlanMode` exigem interação do usuário. No [modo não interativo](/docs/pt/headless) com a flag `-p`, o Claude Code as oferece apenas quando a execução tem um [host de permissão](/docs/pt/headless#turn-off-permission-prompts-in-unattended-runs) para receber o prompt, como um callback `canUseTool` do Agent SDK.2114`AskUserQuestion` e `ExitPlanMode` exigem interação do usuário. No [modo não interativo](/docs/pt/headless) com a flag `-p`, o Claude Code as oferece somente quando a execução tem um [host de permissão](/docs/pt/headless#turn-off-permission-prompts-in-unattended-runs) para receber o prompt, como um callback `canUseTool` do Agent SDK.

2089 2115 

2090Um hook `PreToolUse` satisfaz esse requisito quando faz o seguinte:2116Um hook `PreToolUse` satisfaz esse requisito quando faz o seguinte:

2091 2117 

20921. Lê a entrada da ferramenta do stdin21181. Lê a entrada da ferramenta do stdin

20932. Coleta a resposta por meio da sua própria interface21192. Coleta a resposta por meio da sua própria interface

20943. Retorna `permissionDecision: "allow"` junto com `updatedInput` contendo a resposta, para que a ferramenta seja executada sem solicitar confirmação21203. Retorna `permissionDecision: "allow"` junto com um `updatedInput` que contém a resposta, para que a ferramenta seja executada sem solicitar confirmação

2095 2121 

2096Retornar apenas `"allow"` não é suficiente para essas ferramentas.2122Retornar apenas `"allow"` não é suficiente para essas ferramentas.

2097 2123 


2117}2143}

2118```2144```

2119 2145 

2120Uma ferramenta MCP cujo servidor a marca com [`_meta["anthropic/requiresUserInteraction"]`](/docs/pt/mcp#require-approval-for-a-specific-tool) é mais restrita: um hook não pode pular seu prompt de aprovação com `"allow"`, com ou sem `updatedInput`, porque o Claude Code não pode confirmar que o hook coletou a interação de que a ferramenta precisa.2146Uma ferramenta MCP que seu servidor marca com [`_meta["anthropic/requiresUserInteraction"]`](/docs/pt/mcp#require-approval-for-a-specific-tool) é mais restrita: um hook não pode ignorar seu prompt de aprovação com `"allow"`, com ou sem `updatedInput`, porque o Claude Code não pode confirmar que o hook coletou a interação de que a ferramenta precisa.

2121 2147 

2122<h4 id="defer-a-tool-call-for-later">2148<h4 id="defer-a-tool-call-for-later">

2123 Adiar uma chamada de ferramenta para depois2149 Adiar uma chamada de ferramenta para mais tarde

2124</h4>2150</h4>

2125 2151 

2126`"defer"` é para integrações que executam `claude -p` como subprocesso e leem sua saída JSON, como um app do Agent SDK ou uma interface personalizada construída sobre o Claude Code. Ele permite que esse processo chamador pause o Claude em uma chamada de ferramenta, colete a entrada por meio de sua própria interface e retome de onde parou. O Claude Code respeita esse valor apenas no [modo não interativo](/docs/pt/headless) com a flag `-p`. Em sessões interativas, ele registra um aviso em log e ignora o resultado do hook.2152`"defer"` destina-se a integrações que executam `claude -p` como subprocesso e leem sua saída JSON, como um aplicativo do Agent SDK ou uma interface personalizada construída sobre o Claude Code. Ele permite que esse processo chamador pause o Claude em uma chamada de ferramenta, colete a entrada por meio de sua própria interface e retome de onde parou. O Claude Code respeita esse valor somente no [modo não interativo](/docs/pt/headless) com a flag `-p`. Em sessões interativas, ele registra um aviso e ignora o resultado do hook.

2127 2153 

2128A ferramenta `AskUserQuestion` é o caso típico: o Claude quer perguntar algo ao usuário, mas não há terminal para responder. Uma execução `-p` oferece `AskUserQuestion` apenas quando tem um [host de permissão](/docs/pt/headless#turn-off-permission-prompts-in-unattended-runs), como uma ferramenta MCP que você passa com `--permission-prompt-tool`, portanto inicie a execução com um. O ciclo completo funciona assim:2154A ferramenta `AskUserQuestion` é o caso típico: o Claude quer perguntar algo ao usuário, mas não há terminal para responder. Uma execução `-p` oferece `AskUserQuestion` somente quando tem um [host de permissão](/docs/pt/headless#turn-off-permission-prompts-in-unattended-runs), como uma ferramenta MCP que você passa com `--permission-prompt-tool`, portanto inicie a execução com um. O ciclo funciona assim:

2129 2155 

21301. O Claude chama `AskUserQuestion`. O hook `PreToolUse` é disparado.21561. O Claude chama `AskUserQuestion`. O hook `PreToolUse` é disparado.

21312. O hook retorna `permissionDecision: "defer"`. A ferramenta não é executada. O processo sai com `stop_reason: "tool_deferred"` e a chamada de ferramenta pendente preservada na transcrição.21572. O hook retorna `permissionDecision: "defer"`. A ferramenta não é executada. O processo sai com `stop_reason: "tool_deferred"` e a chamada de ferramenta pendente preservada na transcrição.

21323. O processo chamador lê `deferred_tool_use` do resultado do SDK, apresenta a pergunta em sua própria interface e aguarda uma resposta.21583. O processo chamador lê `deferred_tool_use` do resultado do SDK, exibe a pergunta em sua própria interface e aguarda uma resposta.

21334. O processo chamador executa `claude -p --resume <session-id>` com o mesmo host de permissão. A mesma chamada de ferramenta dispara o `PreToolUse` novamente.21594. O processo chamador executa `claude -p --resume <session-id>` com o mesmo host de permissão. A mesma chamada de ferramenta dispara o `PreToolUse` novamente.

21345. O hook retorna `permissionDecision: "allow"` com a resposta em `updatedInput`. A ferramenta é executada e o Claude continua.21605. O hook retorna `permissionDecision: "allow"` com a resposta em `updatedInput`. A ferramenta é executada e o Claude continua.

2135 2161 


2149}2175}

2150```2176```

2151 2177 

2152Não há timeout nem limite de novas tentativas. A sessão permanece no disco até que você a retome, sujeita à varredura de retenção [`cleanupPeriodDays`](/docs/pt/settings-reference#cleanupperioddays), que exclui arquivos de sessão após 30 dias por padrão, seguindo as [regras da varredura de retenção](/docs/pt/claude-directory#cleaned-up-automatically). Se a resposta não estiver pronta quando você retomar, o hook pode retornar `"defer"` novamente e o processo sai da mesma forma. O processo chamador controla quando interromper o loop, retornando eventualmente `"allow"` ou `"deny"` a partir do hook.2178Não há timeout nem limite de novas tentativas. A sessão permanece no disco até você retomá-la, sujeita à limpeza de retenção de [`cleanupPeriodDays`](/docs/pt/settings-reference#cleanupperioddays), que exclui arquivos de sessão após 30 dias por padrão, seguindo as [regras da limpeza de retenção](/docs/pt/claude-directory#cleaned-up-automatically). Se a resposta não estiver pronta quando você retomar, o hook pode retornar `"defer"` novamente e o processo sai da mesma forma. O processo chamador controla quando interromper o ciclo, retornando eventualmente `"allow"` ou `"deny"` do hook.

2153 2179 

2154`"defer"` só funciona quando o Claude faz uma única chamada de ferramenta no turno. Se o Claude fizer várias chamadas de ferramenta de uma vez, `"defer"` é ignorado com um aviso e a ferramenta prossegue pelo fluxo normal de permissão. A restrição existe porque a retomada só pode reexecutar uma ferramenta: não há como adiar uma chamada de um lote sem deixar as outras sem resolução.2180`"defer"` só funciona quando o Claude faz uma única chamada de ferramenta no turno. Se o Claude fizer várias chamadas de ferramenta ao mesmo tempo, `"defer"` é ignorado com um aviso e a ferramenta prossegue pelo fluxo normal de permissão. A restrição existe porque a retomada só pode executar novamente uma ferramenta: não há como adiar uma chamada de um lote sem deixar as outras sem resolução.

2155 2181 

2156Se a ferramenta adiada não estiver mais disponível quando você retomar, o processo sai com `stop_reason: "tool_deferred_unavailable"` e `is_error: true` antes de o hook ser disparado. Isso acontece quando um servidor MCP que fornecia a ferramenta não está conectado na sessão retomada. O payload `deferred_tool_use` ainda é incluído para que você possa identificar qual ferramenta ficou indisponível.2182Se a ferramenta adiada não estiver mais disponível quando você retomar, o processo sai com `stop_reason: "tool_deferred_unavailable"` e `is_error: true` antes de o hook ser disparado. Isso acontece quando um servidor MCP que fornecia a ferramenta não está conectado na sessão retomada. O payload `deferred_tool_use` ainda é incluído para que você possa identificar qual ferramenta ficou indisponível.

2157 2183 

2158<Note>2184<Note>

2159 Para retomar uma sessão adiada no modo de planejamento, passe [`--permission-prompt-tool`](/docs/pt/cli-reference#cli-flags) junto com `--resume` para que o Claude Code possa apresentar o plano para aprovação. Para as demais condições, consulte [Retomar no modo de planejamento com `-p`](/docs/pt/sessions#resume-in-plan-mode-with-p). Requer o Claude Code v2.1.246 ou posterior.2185 Para retomar uma sessão adiada no modo de planejamento, passe [`--permission-prompt-tool`](/docs/pt/cli-reference#cli-flags) junto com `--resume` para que o Claude Code possa apresentar o plano para aprovação. Para as demais condições, consulte [Retomar no modo de planejamento com `-p`](/docs/pt/sessions#resume-in-plan-mode-with-p). Requer o Claude Code v2.1.246 ou posterior.

2160 2186 

2161 Quando você retoma com `-p`, o Claude Code não restaura nenhum outro modo de permissão armazenado. Ele inicia a execução no modo de permissão em que uma nova execução `claude -p` iniciaria, portanto passe `--permission-mode` ou `--dangerously-skip-permissions` novamente se a sessão adiada usava um deles. Quando você retoma com `claude --resume <session-id>` sem `-p`, o Claude Code restaura o modo de permissão armazenado, com as exceções listadas em [modo de permissão na retomada](/docs/pt/sessions#permission-mode-on-resume).2187 Quando você retoma com `-p`, o Claude Code não restaura nenhum outro modo de permissão armazenado. Ele inicia a execução no modo de permissão em que uma nova execução `claude -p` começaria, portanto passe `--permission-mode` ou `--dangerously-skip-permissions` novamente se a sessão adiada usava um deles. Quando você retoma com `claude --resume <session-id>` sem `-p`, o Claude Code restaura o modo de permissão armazenado, com as exceções listadas em [modo de permissão na retomada](/docs/pt/sessions#permission-mode-on-resume).

2162</Note>2188</Note>

2163 2189 

2164<h3 id="permissionrequest">2190<h3 id="permissionrequest">

2165 PermissionRequest2191 PermissionRequest

2166</h3>2192</h3>

2167 2193 

2168É executado quando o Claude Code está prestes a pedir sua permissão para usar uma ferramenta. Em sessões que não podem mostrar um prompt, como subagentes em segundo plano no [modo não interativo](/docs/pt/headless), o Claude Code ainda executa esses hooks e, se nenhum hook retornar uma decisão, nega a chamada de ferramenta. Para uma chamada que chega a um `--permission-prompt-tool` ou ao [callback `canUseTool`](/docs/pt/agent-sdk/permissions) do Agent SDK, os hooks são executados junto com seu host, e vale a decisão de quem decidir primeiro.2194É executado quando o Claude Code está prestes a pedir sua permissão para usar uma ferramenta. Em sessões que não podem mostrar um prompt, como subagentes em segundo plano no [modo não interativo](/docs/pt/headless), o Claude Code ainda executa esses hooks e, se nenhum hook retornar uma decisão, nega a chamada de ferramenta. Para uma chamada que chega a um `--permission-prompt-tool` ou ao [callback `canUseTool`](/docs/pt/agent-sdk/permissions) do Agent SDK, os hooks são executados junto com o seu host, e vale a decisão de quem decidir primeiro.

2169Use o [controle de decisão do PermissionRequest](#permissionrequest-decision-control) para permitir ou negar em nome do usuário.2195Use o [controle de decisão do PermissionRequest](#permissionrequest-decision-control) para permitir ou negar em nome do usuário.

2170 2196 

2171Use este evento quando precisar de um sinal no momento em que o Claude pede permissão para usar uma ferramenta. O Claude Code executa um hook [Notification](#notification) com o tipo `permission_prompt` somente depois que o prompt aguardou cerca de seis segundos.2197Use esse evento quando precisar de um sinal no momento em que o Claude pede permissão para usar uma ferramenta. O Claude Code executa um hook [Notification](#notification) com o tipo `permission_prompt` somente depois que o prompt fica aguardando por cerca de seis segundos.

2172 2198 

2173O Claude Code não executa hooks PermissionRequest para a [requisição de rede](/docs/pt/sandboxing#network-isolation) de um comando em sandbox. Para obter um sinal para esse prompt, use o tipo de notificação `permission_prompt`.2199O Claude Code não executa hooks PermissionRequest para a [requisição de rede](/docs/pt/sandboxing#network-isolation) de um comando em sandbox. Para obter um sinal para esse prompt, use o tipo de notificação `permission_prompt`.

2174 2200 

2175Faz correspondência com o nome da ferramenta, com os mesmos valores do PreToolUse.2201Faz a correspondência com o nome da ferramenta, com os mesmos valores do PreToolUse.

2176 2202 

2177<h4 id="permissionrequest-input">2203<h4 id="permissionrequest-input">

2178 Entrada do PermissionRequest2204 Entrada do PermissionRequest

2179</h4>2205</h4>

2180 2206 

2181Os hooks PermissionRequest recebem os campos `tool_name` e `tool_input` como os hooks PreToolUse, mas sem `tool_use_id`. Para uma ferramenta MCP, eles também recebem o objeto [`mcp_server`](#pretooluse-input). Um array opcional `permission_suggestions` contém as [atualizações de permissão](#permission-update-entries) que o Claude Code sugere para esta solicitação, como adicionar uma regra de permissão ou alterar o modo de permissão.2207Os hooks PermissionRequest recebem os campos `tool_name` e `tool_input` como os hooks PreToolUse, mas sem `tool_use_id`. Para uma ferramenta MCP, eles também recebem o objeto [`mcp_server`](#pretooluse-input). Um array opcional `permission_suggestions` contém as [atualizações de permissão](#permission-update-entries) que o Claude Code sugere para essa requisição, como adicionar uma regra de permissão allow ou alterar o modo de permissão.

2182 2208 

2183O array `permission_suggestions` não é uma lista exata das opções que você vê, porque cada diálogo de permissão monta suas próprias opções. Alguns diálogos, como o de edição de arquivos, não leem o array e derivam suas opções da própria solicitação. Um diálogo que o lê ainda pode ocultar uma opção cuja sugestão permanece no array, por exemplo quando [`allowManagedPermissionRulesOnly`](/docs/pt/settings-reference#allowmanagedpermissionrulesonly) oculta as opções de salvar regras. Ele também pode oferecer opções que não têm entrada de sugestão, como [**Yes, and switch to auto mode**](/docs/pt/permission-modes#switch-permission-modes), que altera o modo de permissão diretamente em vez de por meio de uma atualização de permissão.2209O array `permission_suggestions` não é uma lista exata das opções que você vê, porque cada diálogo de permissão monta as próprias opções. Alguns diálogos, como o de edições de arquivo, não leem o array e derivam suas opções da própria requisição. Um diálogo que o lê ainda pode omitir uma opção cuja sugestão permanece no array, por exemplo quando [`allowManagedPermissionRulesOnly`](/docs/pt/settings-reference#allowmanagedpermissionrulesonly) oculta opções de salvar regras. Ele também pode oferecer opções que não têm entrada de sugestão, como [**Yes, and switch to auto mode**](/docs/pt/permission-modes#switch-permission-modes), que altera o modo de permissão diretamente em vez de por meio de uma atualização de permissão.

2184 2210 

2185Os hooks PreToolUse são executados antes de toda chamada de ferramenta, precise ela de permissão ou não. Os hooks PermissionRequest são executados apenas quando o Claude Code está prestes a pedir sua permissão, ou quando ele negaria automaticamente uma chamada que não pode solicitar confirmação. Nenhum dos dois eventos é disparado para [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior).2211Os hooks PreToolUse são executados antes de cada chamada de ferramenta, precise ela de permissão ou não. Os hooks PermissionRequest são executados apenas quando o Claude Code está prestes a pedir sua permissão, ou quando, de outra forma, negaria automaticamente uma chamada que não pode solicitar confirmação. Nenhum dos dois eventos é disparado para [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior).

2186 2212 

2187```json theme={null}2213```json theme={null}

2188{2214{


2211 Controle de decisão do PermissionRequest2237 Controle de decisão do PermissionRequest

2212</h4>2238</h4>

2213 2239 

2214Os hooks `PermissionRequest` podem permitir ou negar solicitações de permissão. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar um objeto `decision` com estes campos específicos do evento:2240Os hooks `PermissionRequest` podem permitir ou negar requisições de permissão. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar um objeto `decision` com estes campos específicos do evento:

2215 2241 

2216| Campo | Descrição |2242| Campo | Descrição |

2217| :- | :- |2243| :- | :- |

2218| `behavior` | `"allow"` concede a permissão, `"deny"` a nega. [Regras de negação e de confirmação](/docs/pt/permissions#manage-permissions) ainda são avaliadas, portanto um hook que retorna `"allow"` não sobrescreve uma regra de negação correspondente |2244| `behavior` | `"allow"` concede a permissão, `"deny"` a nega. [Regras deny e ask](/docs/pt/permissions#manage-permissions) ainda são avaliadas, portanto um hook que retorna `"allow"` não sobrescreve uma regra deny correspondente |

2219| `updatedInput` | Apenas para `"allow"`: modifica os parâmetros de entrada da ferramenta antes da execução. Substitui todo o objeto de entrada, portanto inclua os campos inalterados junto com os modificados. A entrada modificada é reavaliada com base nas regras de negação e de confirmação |2245| `updatedInput` | Apenas para `"allow"`: modifica os parâmetros de entrada da ferramenta antes da execução. Substitui o objeto de entrada inteiro, então inclua os campos inalterados junto com os modificados. A entrada modificada é reavaliada em relação às regras deny e ask |

2220| `updatedPermissions` | Apenas para `"allow"`: array de [entradas de atualização de permissão](#permission-update-entries) a aplicar, como adicionar uma regra de permissão ou alterar o modo de permissão da sessão |2246| `updatedPermissions` | Apenas para `"allow"`: array de [entradas de atualização de permissão](#permission-update-entries) a aplicar, como adicionar uma regra allow ou alterar o modo de permissão da sessão |

2221| `message` | Apenas para `"deny"`: informa ao Claude por que a permissão foi negada |2247| `message` | Apenas para `"deny"`: informa ao Claude por que a permissão foi negada |

2222| `interrupt` | Apenas para `"deny"`: se `true`, interrompe o Claude |2248| `interrupt` | Apenas para `"deny"`: se `true`, interrompe o Claude |

2223 2249 

2224Um hook que sai com código 2 sem um objeto `decision` deixa o fluxo de permissão inalterado, e seu stderr é descartado. Para conceder ou negar a solicitação, retorne o objeto `decision`.2250Um hook que sai com código 2 sem um objeto `decision` deixa o fluxo de permissão inalterado, e seu stderr é descartado. Para conceder ou negar a requisição, retorne o objeto `decision`.

2225 2251 

2226```json theme={null}2252```json theme={null}

2227{2253{


2241 Entradas de atualização de permissão2267 Entradas de atualização de permissão

2242</h4>2268</h4>

2243 2269 

2244O campo de saída `updatedPermissions` e o [campo de entrada `permission_suggestions`](#permissionrequest-input) usam o mesmo array de objetos de entrada. Cada entrada tem um `type` que determina seus outros campos e um `destination` que controla onde a alteração é gravada.2270O campo de saída `updatedPermissions` e o [campo de entrada `permission_suggestions`](#permissionrequest-input) usam o mesmo array de objetos de entrada. Cada entrada tem um `type` que determina seus outros campos, e um `destination` que controla onde a alteração é gravada.

2245 2271 

2246| `type` | Campos | Efeito |2272| `type` | Campos | Efeito |

2247| :- | :- | :- |2273| :- | :- | :- |

2248| `addRules` | `rules`, `behavior`, `destination` | Adiciona regras de permissão. `rules` é um array de objetos `{toolName, ruleContent?}`. Omita `ruleContent` para corresponder à ferramenta inteira. `behavior` é `"allow"`, `"deny"` ou `"ask"` |2274| `addRules` | `rules`, `behavior`, `destination` | Adiciona regras de permissão. `rules` é um array de objetos `{toolName, ruleContent?}`. Omita `ruleContent` para corresponder à ferramenta inteira. `behavior` é `"allow"`, `"deny"` ou `"ask"` |

2249| `replaceRules` | `rules`, `behavior`, `destination` | Substitui todas as regras do `behavior` informado no `destination` pelas `rules` fornecidas |2275| `replaceRules` | `rules`, `behavior`, `destination` | Substitui todas as regras do `behavior` informado no `destination` pelas `rules` fornecidas |

2250| `removeRules` | `rules`, `behavior`, `destination` | Remove as regras correspondentes do `behavior` informado |2276| `removeRules` | `rules`, `behavior`, `destination` | Remove as regras correspondentes do `behavior` informado |

2251| `setMode` | `mode`, `destination` | Altera o modo de permissão. Os modos válidos são `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan` e `manual` como alias de `default` |2277| `setMode` | `mode`, `destination` | Altera o modo de permissão. Os modos válidos são `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan` e `manual` como alias para `default` |

2252| `addDirectories` | `directories`, `destination` | Adiciona diretórios de trabalho. `directories` é um array de strings de caminho |2278| `addDirectories` | `directories`, `destination` | Adiciona diretórios de trabalho. `directories` é um array de strings de caminho |

2253| `removeDirectories` | `directories`, `destination` | Remove diretórios de trabalho |2279| `removeDirectories` | `directories`, `destination` | Remove diretórios de trabalho |

2254 2280 


2275 2301 

2276É executado imediatamente após uma ferramenta ser concluída com sucesso.2302É executado imediatamente após uma ferramenta ser concluída com sucesso.

2277 2303 

2278Faz correspondência pelo nome da ferramenta, com os mesmos valores de PreToolUse.2304Corresponde ao nome da ferramenta, com os mesmos valores do PreToolUse.

2279 2305 

2280Faça uma correspondência mais ampla quando o nome da ferramenta não for o filtro certo:2306Use uma correspondência mais ampla quando o nome da ferramenta não for o filtro certo:

2281 2307 

2282* Para executar um hook após qualquer ferramenta ser concluída com sucesso, omita o `matcher` ou defina-o como `"*"`. Seu hook pode então descobrir por conta própria o que mudou, por exemplo executando `git status --porcelain`, que também lista arquivos não rastreados que o `git diff` deixa passar. Para chamadas de ferramenta que falham, adicione o mesmo hook em [PostToolUseFailure](#posttoolusefailure).2308* Para executar um hook depois que qualquer ferramenta for concluída com sucesso, omita o `matcher` ou defina-o como `"*"`. Seu hook pode então descobrir por conta própria o que mudou, por exemplo executando `git status --porcelain`, que também lista arquivos não rastreados que `git diff` não mostra. Para chamadas de ferramenta que falham, adicione o mesmo hook em [PostToolUseFailure](#posttoolusefailure).

2283* Para executar um hook quando um arquivo específico mudar no disco, independentemente do que o gravou, use [FileChanged](#filechanged). O Claude Code não executa um hook `PostToolUse` que corresponde a `Edit|Write` quando um comando `Bash` ou um processo fora do Claude Code reescreve o mesmo arquivo.2309* Para executar um hook quando um arquivo específico muda no disco, independentemente de quem o gravou, use [FileChanged](#filechanged). O Claude Code não executa um hook `PostToolUse` com matcher `Edit|Write` quando um comando `Bash` ou um processo fora do Claude Code reescreve o mesmo arquivo.

2284 2310 

2285<h4 id="posttooluse-input">2311<h4 id="posttooluse-input">

2286 Entrada de PostToolUse2312 Entrada do PostToolUse

2287</h4>2313</h4>

2288 2314 

2289Os hooks `PostToolUse` são disparados depois que uma ferramenta já foi executada com sucesso. A entrada inclui tanto `tool_input`, os argumentos enviados à ferramenta, quanto `tool_response`, o resultado que ela retornou. O esquema exato de ambos depende da ferramenta. Os caminhos em `tool_input` das ferramentas de arquivo chegam no mesmo formato que em [PreToolUse](#pretooluse-input): sempre absolutos, com os separadores nativos da plataforma, ou seja, barras invertidas no Windows. Para uma ferramenta MCP, a entrada também traz o objeto [`mcp_server`](#pretooluse-input).2315Os hooks `PostToolUse` são disparados depois que uma ferramenta já foi executada com sucesso. A entrada inclui tanto `tool_input`, os argumentos enviados à ferramenta, quanto `tool_response`, o resultado que ela retornou. O esquema exato de ambos depende da ferramenta. Os caminhos em `tool_input` de ferramentas de arquivo chegam no mesmo formato que no [PreToolUse](#pretooluse-input): sempre absolutos, com os separadores nativos da plataforma, ou seja, barras invertidas no Windows. Para uma ferramenta MCP, a entrada também traz o objeto [`mcp_server`](#pretooluse-input).

2290 2316 

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

2292{2318{


2314| `duration_ms` | Opcional. Tempo de execução da ferramenta em milissegundos. Exclui o tempo gasto em prompts de permissão e em hooks PreToolUse |2340| `duration_ms` | Opcional. Tempo de execução da ferramenta em milissegundos. Exclui o tempo gasto em prompts de permissão e em hooks PreToolUse |

2315 2341 

2316<h4 id="posttooluse-decision-control">2342<h4 id="posttooluse-decision-control">

2317 Controle de decisão de PostToolUse2343 Controle de decisão do PostToolUse

2318</h4>2344</h4>

2319 2345 

2320Os hooks `PostToolUse` podem fornecer feedback ao Claude após a execução da ferramenta. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar estes campos específicos do evento:2346Os hooks `PostToolUse` podem fornecer feedback ao Claude após a execução da ferramenta. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar estes campos específicos do evento:


2346```2372```

2347 2373 

2348<Warning>2374<Warning>

2349 `updatedToolOutput` altera apenas o que o Claude vê. A ferramenta já foi executada quando o hook é disparado, portanto quaisquer arquivos gravados, comandos executados ou requisições de rede enviadas já tiveram efeito. A telemetria, como spans de ferramenta do OpenTelemetry e eventos de analytics, também captura a saída original antes de o hook ser executado. Para impedir ou modificar uma chamada de ferramenta antes que ela seja executada, use um hook [PreToolUse](#pretooluse).2375 `updatedToolOutput` altera apenas o que o Claude vê. A ferramenta já foi executada quando o hook é disparado, então quaisquer arquivos gravados, comandos executados ou requisições de rede enviadas já surtiram efeito. A telemetria, como spans de ferramenta do OpenTelemetry e eventos de analytics, também captura a saída original antes de o hook ser executado. Para impedir ou modificar uma chamada de ferramenta antes que ela seja executada, use um hook [PreToolUse](#pretooluse).

2350 2376 

2351 O valor de substituição deve corresponder ao formato de saída da ferramenta. As ferramentas integradas retornam objetos estruturados em vez de strings simples. Por exemplo, `Bash` retorna um objeto com os campos `stdout`, `stderr`, `interrupted` e `isImage`. Para ferramentas integradas, um valor que não corresponda ao esquema de saída da ferramenta é ignorado e a saída original é usada. A saída de ferramentas MCP é repassada sem validação de esquema. Remover detalhes de erro de que o Claude precisa pode fazer com que ele prossiga com base em uma suposição falsa.2377 O valor de substituição deve corresponder ao formato de saída da ferramenta. As ferramentas integradas retornam objetos estruturados em vez de strings simples. Por exemplo, `Bash` retorna um objeto com os campos `stdout`, `stderr`, `interrupted` e `isImage`. Para ferramentas integradas, um valor que não corresponde ao esquema de saída da ferramenta é ignorado e a saída original é usada. A saída de ferramentas MCP é repassada sem validação de esquema. Remover detalhes de erro de que o Claude precisa pode fazer com que ele prossiga com base em uma suposição falsa.

2352</Warning>2378</Warning>

2353 2379 

2354<h4 id="annotate-a-result-for-the-auto-mode-classifier">2380<h4 id="annotate-a-result-for-the-auto-mode-classifier">

2355 Anotar um resultado para o classificador do modo auto2381 Anotar um resultado para o classificador do modo auto

2356</h4>2382</h4>

2357 2383 

2358Retorne `classifierContext` para enviar uma nota curta sobre o resultado da chamada de ferramenta ao classificador do [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), e não ao Claude. O classificador [nunca recebe os próprios resultados das ferramentas](/docs/pt/permission-modes#how-the-classifier-evaluates-actions), então este campo é a forma suportada de informar algo sobre o que uma chamada retornou antes que ele revise ações posteriores. O campo requer Claude Code v2.1.236 ou posterior.2384Retorne `classifierContext` para enviar uma nota curta sobre o resultado da chamada de ferramenta ao classificador do [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), e não ao Claude. O classificador [nunca recebe os próprios resultados das ferramentas](/docs/pt/permission-modes#how-the-classifier-evaluates-actions), então este campo é a forma suportada de informar algo sobre o que uma chamada retornou antes que ele revise as ações seguintes. O campo requer Claude Code v2.1.236 ou posterior.

2359 2385 

2360O exemplo abaixo informa ao classificador de onde veio a saída de uma consulta:2386O exemplo abaixo informa ao classificador de onde veio a saída de uma consulta:

2361 2387 


2370 2396 

2371O peso que o classificador dá à nota depende de onde você configurou o hook:2397O peso que o classificador dá à nota depende de onde você configurou o hook:

2372 2398 

2373* **Hooks configurados no Claude Code**: para hooks de arquivos de configurações, plugins, skills e frontmatter de agentes, o classificador trata a nota como contexto não verificado fornecido pela aplicação. A nota nunca estabelece a intenção do usuário e, se afirmar que você aprovou ou solicitou algo, o classificador verifica essa afirmação em relação às suas próprias mensagens na conversa2399* **Hooks configurados no Claude Code**: para hooks de arquivos de configurações, plugins, skills e frontmatter de agentes, o classificador trata a nota como contexto não verificado fornecido pela aplicação. A nota nunca estabelece a intenção do usuário e, se afirmar que você aprovou ou solicitou algo, o classificador confere essa afirmação com suas próprias mensagens na conversa

2374* **Callbacks do Agent SDK em processo**: quando uma aplicação que incorpora o Claude Code registra o hook como um [callback do SDK em TypeScript](/docs/pt/agent-sdk/hooks) e retorna a nota durante a sessão ativa, o classificador pode considerar uma declaração do usuário repassada na nota como intenção do usuário. Essa declaração pode satisfazer um requisito de consentimento que o classificador aceitaria de uma mensagem enviada por você, mas nunca suspende um bloqueio que sua própria mensagem também não conseguiria suspender. Depois que uma sessão é retomada, o Claude Code trata as notas restauradas como contexto não verificado. Quando hooks de ambos os grupos anotam a mesma chamada, o classificador trata a nota combinada como não verificada2400* **Callbacks do Agent SDK em processo**: quando uma aplicação que incorpora o Claude Code registra o hook como um [callback do TypeScript SDK](/docs/pt/agent-sdk/hooks) e retorna a nota durante a sessão ativa, o classificador pode considerar uma declaração do usuário transmitida na nota como intenção do usuário. Essa declaração pode satisfazer um requisito de consentimento que o classificador aceitaria de uma mensagem enviada por você, mas nunca suspende um bloqueio que sua própria mensagem também não conseguiria suspender. Depois que uma sessão é retomada, o Claude Code trata as notas restauradas como contexto não verificado. Quando hooks dos dois grupos anotam a mesma chamada, o classificador trata a nota combinada como não verificada

2375 2401 

2376O Claude Code aplica estes limites ao entregar a nota:2402O Claude Code aplica estes limites ao entregar a nota:

2377 2403 

2378* **Tamanho**: o Claude Code limita as notas de uma chamada de ferramenta a 2.000 caracteres e trunca o restante. O limite é compartilhado entre todos os hooks que respondem a essa chamada2404* **Tamanho**: o Claude Code limita as notas de uma chamada de ferramenta a 2.000 caracteres e trunca o restante. O limite é compartilhado entre todos os hooks que respondem a essa chamada

2379* **Somente respostas síncronas**: o Claude Code ignora o campo na resposta de um hook que [é executado em segundo plano](#run-hooks-in-the-background), porque essa resposta chega depois que o Claude Code registra o resultado da ferramenta2405* **Somente respostas síncronas**: o Claude Code ignora o campo na resposta de um hook que [é executado em segundo plano](#run-hooks-in-the-background), porque essa resposta chega depois que o Claude Code registra o resultado da ferramenta

2380* **Chamadas que o classificador não registra**: a transcrição do classificador omite consultas somente leitura, como leituras de arquivos e buscas. O Claude Code descarta uma nota anexada a uma dessas chamadas2406* **Chamadas que o classificador não registra**: a transcrição do classificador omite consultas somente leitura, como leituras de arquivos e buscas. O Claude Code descarta uma nota anexada a uma dessas chamadas

2381* **Interação com reescritas**: quando a nota descreve uma saída que você está substituindo com `updatedToolOutput`, retorne ambos os campos na mesma resposta do hook. O Claude Code descarta a nota se essa reescrita for rejeitada ou se a reescrita de outro hook a substituir. O Claude Code entrega uma nota que você retorna sem reescrita mesmo quando outro hook reescreve a saída2407* **Interação com reescritas**: quando a nota descreve uma saída que você está substituindo com `updatedToolOutput`, retorne os dois campos na mesma resposta do hook. O Claude Code descarta a nota se essa reescrita for rejeitada ou se a reescrita de outro hook a substituir. O Claude Code entrega uma nota que você retorna sem reescrita mesmo quando outro hook reescreve a saída

2382 2408 

2383<Warning>2409<Warning>

2384 O classificador lê o conteúdo que você coloca em `classifierContext` como informação da aplicação que hospeda a sessão, então não copie saídas de ferramentas não confiáveis nem textos de terceiros para ele. Limite a nota a uma afirmação curta sobre esta única chamada, como um fato sobre sua origem ou uma declaração do usuário sobre ela; não use o campo para entregar mensagens não relacionadas ou um fluxo de eventos.2410 O classificador lê o conteúdo que você coloca em `classifierContext` como informação vinda da aplicação que hospeda a sessão, portanto não copie saída de ferramenta não confiável nem texto de terceiros para ele. Mantenha a nota como uma afirmação curta sobre esta única chamada, como um fato sobre sua origem ou uma declaração do usuário sobre ela; não use o campo para entregar mensagens não relacionadas ou um fluxo de eventos.

2385</Warning>2411</Warning>

2386 2412 

2387<h3 id="posttoolusefailure">2413<h3 id="posttoolusefailure">

2388 PostToolUseFailure2414 PostToolUseFailure

2389</h3>2415</h3>

2390 2416 

2391É executado quando uma ferramenta que começou a ser executada falha: a ferramenta lançou um erro ou uma ferramenta MCP retornou um resultado de erro. Use-o para registrar falhas em log, enviar alertas ou fornecer feedback corretivo ao Claude.2417É executado quando uma ferramenta que começou a ser executada falha: a ferramenta lançou um erro, ou uma ferramenta MCP retornou um resultado de erro. Use-o para registrar falhas em log, enviar alertas ou fornecer feedback corretivo ao Claude.

2392 2418 

2393Faz correspondência pelo nome da ferramenta, com os mesmos valores de PreToolUse.2419Corresponde ao nome da ferramenta, com os mesmos valores do PreToolUse.

2394 2420 

2395<Note>2421<Note>

2396 Este evento não é disparado para chamadas de ferramenta rejeitadas antes da execução: um nome de ferramenta desconhecido, uma entrada que falha na validação de esquema ou na validação específica da ferramenta, ou uma negação de permissão. As rejeições de validação são retornadas como resultados `tool_use_error` e acontecem antes de os hooks serem executados, portanto não disparam nem `PreToolUse` nem `PostToolUseFailure`. As negações de permissão disparam `PreToolUse`, mas não este evento; consulte [PermissionDenied](#permissiondenied).2422 Este evento não é disparado para chamadas de ferramenta rejeitadas antes da execução: um nome de ferramenta desconhecido, uma entrada que falha na validação de esquema ou na validação específica da ferramenta, ou uma negação de permissão. As rejeições de validação são retornadas como resultados `tool_use_error` e acontecem antes da execução dos hooks, portanto não disparam nem `PreToolUse` nem `PostToolUseFailure`. As negações de permissão disparam `PreToolUse`, mas não este evento; consulte [PermissionDenied](#permissiondenied).

2397</Note>2423</Note>

2398 2424 

2399<h4 id="posttoolusefailure-input">2425<h4 id="posttoolusefailure-input">

2400 Entrada de PostToolUseFailure2426 Entrada do PostToolUseFailure

2401</h4>2427</h4>

2402 2428 

2403Os hooks PostToolUseFailure recebem os mesmos campos `tool_name` e `tool_input` que PostToolUse, junto com informações de erro como campos de nível superior. Para uma ferramenta MCP, eles também recebem o objeto [`mcp_server`](#pretooluse-input). Por exemplo, um comando `npm test` com falha poderia entregar:2429Os hooks PostToolUseFailure recebem os mesmos campos `tool_name` e `tool_input` que o PostToolUse, junto com informações de erro como campos de nível superior. Para uma ferramenta MCP, eles também recebem o objeto [`mcp_server`](#pretooluse-input). Por exemplo, um comando `npm test` que falhou pode entregar:

2404 2430 

2405```json theme={null}2431```json theme={null}

2406{2432{


2424| Campo | Descrição |2450| Campo | Descrição |

2425| :- | :- |2451| :- | :- |

2426| `error` | String que descreve o que deu errado. O formato depende da ferramenta que falhou |2452| `error` | String que descreve o que deu errado. O formato depende da ferramenta que falhou |

2427| `is_interrupt` | Booleano opcional. Verdadeiro quando a falha chegou ao Claude Code como um aborto, e não como um erro relatado pela ferramenta. Cancelar uma ferramenta em execução não dispara este hook; em vez disso, o resultado da ferramenta traz a mensagem de interrupção |2453| `is_interrupt` | Booleano opcional. Verdadeiro quando a falha chegou ao Claude Code como uma interrupção (abort), e não como um erro relatado pela ferramenta. Cancelar uma ferramenta em execução não dispara este hook; em vez disso, o resultado da ferramenta traz a mensagem de interrupção |

2428| `duration_ms` | Opcional. Tempo de execução da ferramenta em milissegundos. Exclui o tempo gasto em prompts de permissão e em hooks PreToolUse |2454| `duration_ms` | Opcional. Tempo de execução da ferramenta em milissegundos. Exclui o tempo gasto em prompts de permissão e em hooks PreToolUse |

2429 2455 

2430A string `error` geralmente é o mesmo texto que o Claude recebe como resultado da ferramenta com falha. Seu formato varia conforme a ferramenta e a falha. Baseie seu hook em `tool_name`, `is_interrupt` e na primeira linha `Exit code N`; trate o restante da string como texto de exibição, não como um formato estável.2456A string `error` geralmente é o mesmo texto que o Claude recebe como resultado da ferramenta que falhou. Seu formato varia conforme a ferramenta e a falha. Baseie seu hook em `tool_name`, `is_interrupt` e na primeira linha `Exit code N`; trate o restante da string como texto de exibição, e não como um formato estável.

2431 2457 

2432* Para Bash e PowerShell, um comando que foi executado e encerrado produz uma primeira linha `Exit code N`, seguida de qualquer saída que o comando tenha produzido como um único bloco com stdout e stderr intercalados2458* Para Bash e PowerShell, um comando que foi executado e encerrado produz uma primeira linha `Exit code N`, seguida de qualquer saída que o comando produziu como um único bloco com stdout e stderr intercalados

2433* Um payload também pode trazer apenas uma mensagem de falha sem linha de código de saída, quando o Claude Code não conseguiu iniciar o próprio processo do shell2459* Um payload também pode trazer uma mensagem de falha simples, sem a linha de código de saída, quando o Claude Code não conseguiu iniciar o próprio processo do shell

2434* O Claude Code trunca strings longas no meio em torno de um marcador `... [N characters truncated] ...` e pode inserir linhas próprias, como `Command timed out after 2m 0s`2460* O Claude Code trunca strings longas no meio em torno de um marcador `... [N characters truncated] ...` e pode inserir linhas próprias, como `Command timed out after 2m 0s`

2435 2461 

2436<h4 id="posttoolusefailure-decision-control">2462<h4 id="posttoolusefailure-decision-control">

2437 Controle de decisão de PostToolUseFailure2463 Controle de decisão do PostToolUseFailure

2438</h4>2464</h4>

2439 2465 

2440Os hooks `PostToolUseFailure` podem fornecer contexto ao Claude após uma falha de ferramenta. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar estes campos específicos do evento:2466Os hooks `PostToolUseFailure` podem fornecer contexto ao Claude após a falha de uma ferramenta. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar estes campos específicos do evento:

2441 2467 

2442| Campo | Descrição |2468| Campo | Descrição |

2443| :- | :- |2469| :- | :- |


2456 PostToolBatch2482 PostToolBatch

2457</h3>2483</h3>

2458 2484 

2459É executado uma vez depois que todas as chamadas de ferramenta de um lote foram resolvidas, antes que o Claude Code envie a próxima requisição ao modelo. `PostToolUse` é disparado uma vez por ferramenta, o que significa que é disparado de forma concorrente quando o Claude faz chamadas de ferramenta paralelas. `PostToolBatch` é disparado exatamente uma vez com o lote completo, então é o lugar certo para injetar contexto que depende do conjunto de ferramentas executadas, e não de uma única ferramenta. Não há matcher para este evento.2485É executado uma vez depois que todas as chamadas de ferramenta de um lote foram resolvidas, antes de o Claude Code enviar a próxima requisição ao modelo. `PostToolUse` é disparado uma vez por ferramenta, o que significa que é disparado de forma concorrente quando o Claude faz chamadas de ferramenta em paralelo. `PostToolBatch` é disparado exatamente uma vez com o lote completo, então é o lugar certo para injetar contexto que depende do conjunto de ferramentas executadas, e não de uma ferramenta isolada. Não há matcher para este evento.

2460 2486 

2461<h4 id="posttoolbatch-input">2487<h4 id="posttoolbatch-input">

2462 Entrada de PostToolBatch2488 Entrada do PostToolBatch

2463</h4>2489</h4>

2464 2490 

2465Além dos [campos de entrada comuns](#common-input-fields), os hooks PostToolBatch recebem `tool_calls`, um array que descreve cada chamada de ferramenta do lote:2491Além dos [campos de entrada comuns](#common-input-fields), os hooks PostToolBatch recebem `tool_calls`, um array que descreve cada chamada de ferramenta do lote:


2491`tool_response` contém o mesmo conteúdo que o modelo recebe no bloco `tool_result` correspondente. O valor é uma string serializada ou um array de blocos de conteúdo, exatamente como a ferramenta o emitiu. Para `Read`, isso significa texto prefixado com números de linha, e não o conteúdo bruto do arquivo. As respostas podem ser grandes, então analise apenas os campos de que você precisa.2517`tool_response` contém o mesmo conteúdo que o modelo recebe no bloco `tool_result` correspondente. O valor é uma string serializada ou um array de blocos de conteúdo, exatamente como a ferramenta o emitiu. Para `Read`, isso significa texto prefixado com números de linha, e não o conteúdo bruto do arquivo. As respostas podem ser grandes, então analise apenas os campos de que você precisa.

2492 2518 

2493<Note>2519<Note>

2494 O formato de `tool_response` difere do de `PostToolUse`. `PostToolUse` passa o objeto `Output` estruturado da ferramenta, como `{filePath: "...", type: "create"}` para `Write`; `PostToolBatch` passa o conteúdo serializado de `tool_result` que o modelo vê.2520 O formato de `tool_response` difere do de `PostToolUse`. `PostToolUse` repassa o objeto `Output` estruturado da ferramenta, como `{filePath: "...", type: "create"}` para `Write`; `PostToolBatch` repassa o conteúdo serializado de `tool_result` que o modelo vê.

2495</Note>2521</Note>

2496 2522 

2497<h4 id="posttoolbatch-decision-control">2523<h4 id="posttoolbatch-decision-control">

2498 Controle de decisão de PostToolBatch2524 Controle de decisão do PostToolBatch

2499</h4>2525</h4>

2500 2526 

2501Os hooks `PostToolBatch` podem injetar contexto para o Claude. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar estes campos específicos do evento:2527Os hooks `PostToolBatch` podem injetar contexto para o Claude. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar estes campos específicos do evento:

2502 2528 

2503| Campo | Descrição |2529| Campo | Descrição |

2504| :- | :- |2530| :- | :- |

2505| `additionalContext` | String de contexto injetada uma vez antes da próxima chamada ao modelo. Consulte [Adicionar contexto para o Claude](#add-context-for-claude) para detalhes de entrega, o que colocar nela e como as sessões retomadas lidam com valores anteriores |2531| `additionalContext` | String de contexto injetada uma vez antes da próxima chamada ao modelo. Consulte [Adicionar contexto para o Claude](#add-context-for-claude) para detalhes de entrega, o que incluir e como sessões retomadas lidam com valores anteriores |

2506 2532 

2507```json theme={null}2533```json theme={null}

2508{2534{


2513}2539}

2514```2540```

2515 2541 

2516Retornar `decision: "block"` ou `continue: false` interrompe o loop agêntico antes da próxima chamada ao modelo. A mensagem de bloqueio vem do `reason` ou do `stopReason` do JSON, ou do stderr no código de saída 2. Você a vê como um aviso na transcrição, e ela permanece na conversa, então o Claude a vê quando a conversa continua.2542Retornar `decision: "block"` ou `continue: false` interrompe o loop agêntico antes da próxima chamada ao modelo. A mensagem de bloqueio vem do `reason` ou `stopReason` do JSON, ou do stderr na saída com código 2. Você a vê como um aviso na transcrição, e ela permanece na conversa, então o Claude a vê quando a conversa continua.

2517 2543 

2518<h3 id="permissiondenied">2544<h3 id="permissiondenied">

2519 PermissionDenied2545 PermissionDenied

2520</h3>2546</h3>

2521 2547 

2522É executado quando o [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) nega uma chamada de ferramenta, inclusive quando nega sem um veredito do classificador porque [uma verificação de segurança separada do modo auto recusou a própria requisição do classificador](/docs/pt/errors#auto-mode-cannot-determine-the-safety-of-an-action) ou porque sua resposta não pôde ser analisada. Este hook só é disparado no modo auto: ele não é executado quando você nega manualmente uma caixa de diálogo de permissão, quando um hook `PreToolUse` bloqueia uma chamada ou quando uma regra `deny` corresponde. Use-o para registrar negações em log, ajustar a configuração ou informar ao modelo que ele pode tentar novamente a chamada de ferramenta.2548É executado quando o [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) nega uma chamada de ferramenta, inclusive quando nega sem um veredito do classificador porque [uma verificação de segurança separada do modo auto recusou a própria requisição do classificador](/docs/pt/errors#auto-mode-cannot-determine-the-safety-of-an-action) ou sua resposta não pôde ser analisada. Este hook só é disparado no modo auto: ele não é executado quando você nega manualmente um diálogo de permissão, quando um hook `PreToolUse` bloqueia uma chamada ou quando uma regra `deny` corresponde. Use-o para registrar negações em log, ajustar a configuração ou informar ao modelo que ele pode tentar novamente a chamada de ferramenta.

2523 2549 

2524Faz correspondência pelo nome da ferramenta, com os mesmos valores de PreToolUse.2550Corresponde ao nome da ferramenta, com os mesmos valores do PreToolUse.

2525 2551 

2526<h4 id="permissiondenied-input">2552<h4 id="permissiondenied-input">

2527 Entrada de PermissionDenied2553 Entrada do PermissionDenied

2528</h4>2554</h4>

2529 2555 

2530Além dos [campos de entrada comuns](#common-input-fields), os hooks PermissionDenied recebem `tool_name`, `tool_input`, `tool_use_id` e `reason`. Para uma ferramenta MCP, eles também recebem o objeto [`mcp_server`](#pretooluse-input).2556Além dos [campos de entrada comuns](#common-input-fields), os hooks PermissionDenied recebem `tool_name`, `tool_input`, `tool_use_id` e `reason`. Para uma ferramenta MCP, eles também recebem o objeto [`mcp_server`](#pretooluse-input).


2551| `reason` | O motivo da negação. Para um veredito do classificador, na maioria das sessões ele nomeia a regra correspondente entre colchetes, como `[Data Exfiltration]`; consulte [Revisar negações](/docs/pt/auto-mode-config#review-denials) para as outras formas. Para uma [negação sem veredito](#permissiondenied-decision-control), ele começa com `Auto mode could not evaluate this action and is blocking it for safety`. Para uma negação porque o modelo do classificador estava indisponível, é o texto fixo `Classifier unavailable` |2577| `reason` | O motivo da negação. Para um veredito do classificador, na maioria das sessões ele nomeia a regra correspondente entre colchetes, como `[Data Exfiltration]`; consulte [Revisar negações](/docs/pt/auto-mode-config#review-denials) para as outras formas. Para uma [negação sem veredito](#permissiondenied-decision-control), ele começa com `Auto mode could not evaluate this action and is blocking it for safety`. Para uma negação porque o modelo do classificador estava indisponível, é o texto fixo `Classifier unavailable` |

2552 2578 

2553<h4 id="permissiondenied-decision-control">2579<h4 id="permissiondenied-decision-control">

2554 Controle de decisão de PermissionDenied2580 Controle de decisão do PermissionDenied

2555</h4>2581</h4>

2556 2582 

2557Os hooks PermissionDenied podem informar ao modelo que ele pode tentar novamente a chamada de ferramenta negada. Retorne um objeto JSON com `hookSpecificOutput.retry` definido como `true`:2583Os hooks PermissionDenied podem informar ao modelo que ele pode tentar novamente a chamada de ferramenta negada. Retorne um objeto JSON com `hookSpecificOutput.retry` definido como `true`:


2565}2591}

2566```2592```

2567 2593 

2568Quando `retry` é `true`, o Claude Code adiciona uma mensagem à conversa informando ao modelo que ele pode tentar novamente a chamada de ferramenta. O Claude Code não reverte a negação em si. Se o seu hook não retornar JSON, ou retornar `retry: false`, a negação permanece e o modelo recebe a mensagem de rejeição original.2594Quando `retry` é `true`, o Claude Code adiciona uma mensagem à conversa informando ao modelo que ele pode tentar novamente a chamada de ferramenta. O próprio Claude Code não reverte a negação. Se o seu hook não retornar JSON, ou retornar `retry: false`, a negação se mantém e o modelo recebe a mensagem de rejeição original.

2569 2595 

2570O Claude Code ignora `retry: true` quando o classificador não produziu [nenhum veredito sobre a ação](/docs/pt/errors#auto-mode-cannot-determine-the-safety-of-an-action): sua resposta não pôde ser analisada, ou uma verificação de segurança separada do modo auto recusou a própria requisição do classificador. Para essas negações, o Claude Code já informa ao modelo, na mensagem de rejeição, se deve tentar novamente mais tarde ou seguir em frente.2596O Claude Code ignora `retry: true` quando o classificador não produziu [nenhum veredito sobre a ação](/docs/pt/errors#auto-mode-cannot-determine-the-safety-of-an-action): sua resposta não pôde ser analisada, ou uma verificação de segurança separada do modo auto recusou a própria requisição do classificador. Para essas negações, o Claude Code já informa ao modelo, na mensagem de rejeição, se deve tentar novamente mais tarde ou seguir adiante.

2571 2597 

2572<h3 id="notification">2598<h3 id="notification">

2573 Notification2599 Notification

2574</h3>2600</h3>

2575 2601 

2576É executado quando o Claude Code envia notificações. Faz correspondência pelo tipo de notificação. Omita o matcher para executar hooks para todos os tipos de notificação.2602É executado quando o Claude Code envia notificações. Corresponde ao tipo de notificação. Omita o matcher para executar hooks para todos os tipos de notificação.

2577 2603 

2578Você recebe esses eventos de hook mesmo com as notificações da área de trabalho desativadas: a configuração `preferredNotifChannel`, incluindo `notifications_disabled`, altera apenas como você é alertado, não se o seu hook é executado.2604Você recebe esses eventos de hook mesmo com as notificações da área de trabalho desativadas: a configuração `preferredNotifChannel`, incluindo `notifications_disabled`, altera apenas como você é alertado, e não se o seu hook é executado.

2579 2605 

2580| Matcher | Quando é disparado |2606| Matcher | Quando é disparado |

2581| :- | :- |2607| :- | :- |

2582| `permission_prompt` | O Claude precisa que você aprove o uso de uma ferramenta ou a [requisição de rede](/docs/pt/sandboxing#network-isolation) de um comando em sandbox, e o prompt está aguardando há cerca de seis segundos |2608| `permission_prompt` | O Claude precisa que você aprove um uso de ferramenta ou a [requisição de rede](/docs/pt/sandboxing#network-isolation) de um comando em sandbox, e o prompt está aguardando há cerca de seis segundos |

2583| `idle_prompt` | O Claude terminou de responder há cerca de 60 segundos e você não digitou nada desde então |2609| `idle_prompt` | O Claude terminou de responder há cerca de 60 segundos e você não digitou nada desde então |

2584| `auth_success` | A autenticação é concluída |2610| `auth_success` | A autenticação é concluída |

2585| `elicitation_dialog` | Um servidor MCP abre um formulário de elicitação e você não digita há cerca de seis segundos |2611| `elicitation_dialog` | Um servidor MCP abre um formulário de elicitação e você não digitou nada por cerca de seis segundos |

2586| `elicitation_url_dialog` | Um servidor MCP pede que você abra uma URL no navegador e você não digita há cerca de seis segundos |2612| `elicitation_url_dialog` | Um servidor MCP pede que você abra uma URL no navegador e você não digitou nada por cerca de seis segundos |

2587| `elicitation_complete` | Um servidor MCP informa que uma [elicitação no modo URL](#elicitation-input) foi concluída |2613| `elicitation_complete` | Um servidor MCP informa que uma [elicitação em modo URL](#elicitation-input) foi concluída |

2588| `elicitation_response` | Uma resposta de elicitação MCP é enviada de volta ao servidor |2614| `elicitation_response` | Uma resposta de elicitação MCP é enviada de volta ao servidor |

2589| `agent_needs_input` | Uma sessão em segundo plano começa a aguardar sua entrada enquanto a [visualização de agentes](/docs/pt/agent-view) está aberta em um terminal. Também é disparado quando uma sessão de terminal mostra a você uma [pergunta de configuração de terminal de um colega de uma equipe de agentes](/docs/pt/agent-teams#choose-a-display-mode) ou o aviso do modo auto sobre [cobranças de requisições do classificador](/docs/pt/auto-mode-classifier-billing) e você não digita há cerca de seis segundos |2615| `agent_needs_input` | Uma sessão em segundo plano começa a aguardar sua entrada enquanto a [visualização de agentes](/docs/pt/agent-view) está aberta em um terminal. Também é disparado quando uma sessão de terminal mostra a você uma [pergunta de configuração do terminal de um colega de equipe de agentes](/docs/pt/agent-teams#choose-a-display-mode) ou o aviso do modo auto sobre [cobranças de requisições do classificador](/docs/pt/auto-mode-classifier-billing) e você não digitou nada por cerca de seis segundos |

2590| `agent_completed` | Uma sessão em segundo plano termina ou falha. É disparado somente enquanto a [visualização de agentes](/docs/pt/agent-view) está aberta em um terminal |2616| `agent_completed` | Uma sessão em segundo plano termina ou falha. É disparado apenas enquanto a [visualização de agentes](/docs/pt/agent-view) está aberta em um terminal |

2591| `quota_auto_resume_fired` | O Claude Code continua sua tarefa depois que um limite de uso do claude.ai a pausou: no momento da redefinição, ou antes disso quando algo que você faz no Claude Code durante a espera, como adicionar créditos de uso, fazer upgrade do seu plano ou trocar de modelo, torna o uso disponível novamente, com a [exceção da configuração de modelo](/docs/pt/interactive-mode#wait-for-a-usage-limit-to-reset) |2617| `quota_auto_resume_fired` | O Claude Code continua sua tarefa depois que um limite de uso do claude.ai a pausou: no momento da redefinição, ou antes, quando algo que você faz no Claude Code durante a espera, como adicionar créditos de uso, fazer upgrade do seu plano ou trocar de modelo, torna o uso disponível novamente, com a [exceção da configuração de modelo](/docs/pt/interactive-mode#wait-for-a-usage-limit-to-reset) |

2592| `quota_auto_resume_stale` | Um limite de uso do claude.ai foi redefinido enquanto seu computador ficou em suspensão por mais de cerca de 30 minutos. O Claude Code aguarda que você pressione `Enter` em vez de continuar. Após uma suspensão mais curta, ele continua e dispara `quota_auto_resume_fired` em vez disso |2618| `quota_auto_resume_stale` | Um limite de uso do claude.ai foi redefinido enquanto seu computador ficou em suspensão por mais de cerca de 30 minutos. O Claude Code aguarda você pressionar `Enter` em vez de continuar. Após uma suspensão mais curta, ele continua e dispara `quota_auto_resume_fired` |

2593| `quota_auto_resume_disabled` | O Claude Code encerra a espera por um limite de uso do claude.ai sem continuar sua tarefa: [`autoContinueAtUsageLimit`](/docs/pt/settings-reference#autocontinueatusagelimit) foi desativado ou a redefinição foi adiada para mais de 24 horas durante uma espera que o Claude Code iniciou por conta própria, a tarefa continuada continuou atingindo o limite, ou a continuação foi bloqueada antes de chegar ao modelo. Não é disparado quando você pressiona `Esc` ou `Ctrl+C`, ou escolhe **Don't continue automatically** |2619| `quota_auto_resume_disabled` | O Claude Code encerra a espera por um limite de uso do claude.ai sem continuar sua tarefa: [`autoContinueAtUsageLimit`](/docs/pt/settings-reference#autocontinueatusagelimit) foi desativado ou a redefinição passou para mais de 24 horas de distância durante uma espera que o Claude Code iniciou por conta própria, a tarefa continuada continuou atingindo o limite, ou a continuação foi bloqueada antes de chegar ao modelo. Não é disparado quando você pressiona `Esc` ou `Ctrl+C`, ou escolhe **Don't continue automatically** |

2594 2620 

2595Os tipos `quota_auto_resume_fired`, `quota_auto_resume_stale` e `quota_auto_resume_disabled` requerem Claude Code v2.1.234 ou posterior.2621Os tipos `quota_auto_resume_fired`, `quota_auto_resume_stale` e `quota_auto_resume_disabled` requerem Claude Code v2.1.234 ou posterior.

2596 2622 

2597Em sessões de terminal, `permission_prompt` para a requisição de rede de um comando em sandbox requer Claude Code v2.1.246 ou posterior.2623Em sessões de terminal, `permission_prompt` para a requisição de rede de um comando em sandbox requer Claude Code v2.1.246 ou posterior.

2598 2624 

2599`agent_needs_input` para a pergunta de configuração de terminal de um colega requer Claude Code v2.1.248 ou posterior.2625`agent_needs_input` para a pergunta de configuração do terminal de um colega de equipe requer Claude Code v2.1.248 ou posterior.

2600 2626 

2601<Note>2627<Note>

2602 Os tipos `permission_prompt`, `idle_prompt`, `elicitation_dialog` e `elicitation_url_dialog` compartilham o tempo com as notificações da área de trabalho, então, em sessões de terminal, você só os vê quando parece estar longe do terminal:2628 Os tipos `permission_prompt`, `idle_prompt`, `elicitation_dialog` e `elicitation_url_dialog` compartilham o mesmo timing das notificações da área de trabalho, então, em sessões de terminal, você só os vê quando parece estar longe do terminal:

2603 2629 

2604 * Espere `permission_prompt` quando você não digitar por cerca de seis segundos. O temporizador começa quando o prompt de permissão aparece, e cada tecla pressionada o adia. Para executar um hook imediatamente quando o Claude pedir permissão para usar uma ferramenta, use [PermissionRequest](#permissionrequest) em vez disso.2630 * Espere `permission_prompt` depois que você ficar cerca de seis segundos sem digitar. O cronômetro começa quando o prompt de permissão aparece, e cada tecla pressionada o adia. Para executar um hook imediatamente quando o Claude pedir permissão para usar uma ferramenta, use [PermissionRequest](#permissionrequest).

2605 * Espere `idle_prompt` cerca de 60 segundos depois que o Claude terminar de responder, e somente se você não tiver digitado desde então e nenhum agente em segundo plano, como um [subagente](/docs/pt/sub-agents) em segundo plano, ainda estiver em execução. O Claude Code não envia `idle_prompt` enquanto aguarda a redefinição de um limite de uso do claude.ai. Quando a espera termina por conta própria, um dos tipos `quota_auto_resume_*` é disparado em vez disso.2631 * Espere `idle_prompt` cerca de 60 segundos depois que o Claude terminar de responder, e apenas se você não tiver digitado nada desde então e nenhum agente em segundo plano, como um [subagente](/docs/pt/sub-agents) em segundo plano, ainda estiver em execução. O Claude Code não envia `idle_prompt` enquanto aguarda a redefinição de um limite de uso do claude.ai. Quando a espera termina por conta própria, um dos tipos `quota_auto_resume_*` é disparado em seu lugar.

2606 * Espere `elicitation_dialog` para um formulário de elicitação, ou `elicitation_url_dialog` para uma solicitação de URL no navegador, quando você não digitar por cerca de seis segundos. Ambos compartilham o mesmo limite de seis segundos que `permission_prompt`: o temporizador começa quando a caixa de diálogo aparece, e cada tecla pressionada o adia.2632 * Espere `elicitation_dialog` para um formulário de elicitação, ou `elicitation_url_dialog` para uma requisição de URL no navegador, depois que você ficar cerca de seis segundos sem digitar. Ambos compartilham o mesmo limite de seis segundos do `permission_prompt`: o cronômetro começa quando o diálogo aparece, e cada tecla pressionada o adia.

2607 2633 

2608 Uma solicitação de permissão ou elicitação que chega enquanto outra caixa de diálogo está na tela mantém o mesmo limite de seis segundos, contado a partir da chegada da solicitação. Sua notificação pode chegar até você enquanto a solicitação ainda aguarda atrás da caixa de diálogo aberta.2634 Uma requisição de permissão ou elicitação que chega enquanto outro diálogo está na tela mantém o mesmo limite de seis segundos, contado a partir do momento em que a requisição chega. Sua notificação pode chegar a você enquanto a requisição ainda aguarda atrás do diálogo aberto.

2609</Note>2635</Note>

2610 2636 

2611O Claude Code temporiza `permission_prompt` de forma diferente em sessões nas quais envia solicitações de permissão ao [callback `canUseTool`](/docs/pt/agent-sdk/user-input) do Agent SDK, que é como o Claude Desktop e a extensão do VS Code hospedam o Claude Code:2637O Claude Code calcula o timing de `permission_prompt` de forma diferente em sessões em que envia requisições de permissão ao [callback `canUseTool`](/docs/pt/agent-sdk/user-input) do Agent SDK, que é como o Claude Desktop e a extensão do VS Code hospedam o Claude Code:

2612 2638 

2613* Espere `permission_prompt` cerca de seis segundos depois que o Claude pedir permissão. O Claude Code não o adia enquanto você digita.2639* Espere `permission_prompt` cerca de seis segundos depois que o Claude pedir permissão. O Claude Code não o adia enquanto você digita.

2614* Se você ou um hook [PermissionRequest](#permissionrequest) responder antes, o Claude Code não executa `permission_prompt`.2640* Se você ou um hook [PermissionRequest](#permissionrequest) responderem antes, o Claude Code não executa `permission_prompt`.

2615* Defina [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/pt/env-vars) como `1` para desativar `permission_prompt` nessas sessões.2641* Defina [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/pt/env-vars) como `1` para desativar `permission_prompt` nessas sessões.

2616 2642 

2617Antes da v2.1.233, `permission_prompt` não era disparado nessas sessões.2643Antes da v2.1.233, `permission_prompt` não era disparado nessas sessões.


2646```2672```

2647 2673 

2648<h4 id="notification-input">2674<h4 id="notification-input">

2649 Entrada de Notification2675 Entrada do Notification

2650</h4>2676</h4>

2651 2677 

2652Além dos [campos de entrada comuns](#common-input-fields), os hooks Notification recebem `message` com o texto da notificação, um `title` opcional e `notification_type`, que indica qual tipo foi disparado.2678Além dos [campos de entrada comuns](#common-input-fields), os hooks Notification recebem `message` com o texto da notificação, um `title` opcional e `notification_type`, que indica qual tipo foi disparado.


2663}2689}

2664```2690```

2665 2691 

2666Os hooks Notification não podem bloquear nem modificar notificações. O Claude Code descarta seus campos `systemMessage` e `continue`, mas ainda emite [`terminalSequence`](#emit-terminal-notifications), que é o recurso em que o exemplo de notificação da área de trabalho se baseia. Os hooks Notification destinam-se a efeitos colaterais, como encaminhar a notificação a um serviço externo.2692Os hooks Notification não podem bloquear nem modificar notificações. O Claude Code descarta seus campos `systemMessage` e `continue`, mas ainda emite [`terminalSequence`](#emit-terminal-notifications), que é do que o exemplo de notificação da área de trabalho depende. Os hooks Notification são destinados a efeitos colaterais, como encaminhar a notificação para um serviço externo.

2667 2693 

2668<h3 id="subagentstart">2694<h3 id="subagentstart">

2669 SubagentStart2695 SubagentStart

2670</h3>2696</h3>

2671 2697 

2672É executado quando o Claude cria um subagente com a ferramenta Agent, quando o Claude [retoma um subagente](/docs/pt/sub-agents#resume-subagents) e sempre que um colega em processo de uma [equipe de agentes](/docs/pt/agent-teams) processa uma nova mensagem. Oferece suporte a matchers para filtrar pelo nome do tipo de agente. Para agentes integrados, é o nome do agente, como `general-purpose`, `Explore` ou `Plan`. Para [subagentes personalizados](/docs/pt/sub-agents), é o campo `name` do frontmatter do agente, não o nome do arquivo.2698É executado quando o Claude inicia um subagente com a ferramenta Agent, quando o Claude [retoma um subagente](/docs/pt/sub-agents#resume-subagents) e cada vez que um colega de uma [equipe de agentes](/docs/pt/agent-teams) em processo lida com uma nova mensagem. Suporta matchers para filtrar pelo nome do tipo de agente. Para agentes integrados, é o nome do agente, como `general-purpose`, `Explore` ou `Plan`. Para [subagentes personalizados](/docs/pt/sub-agents), é o campo `name` do frontmatter do agente, e não o nome do arquivo.

2673 2699 

2674Para subagentes distribuídos por um [plugin](/docs/pt/plugins/overview), o tipo de agente é o identificador com escopo de plugin, como `my-plugin:reviewer`, e não o nome simples do frontmatter. Os dois-pontos colocam um nome com escopo de plugin no caminho de expressão regular, então ancore o matcher com `^` e `$` para uma correspondência exata: `^my-plugin:reviewer$`.2700Para subagentes fornecidos por um [plugin](/docs/pt/plugins/overview), o tipo de agente é o identificador com escopo de plugin, como `my-plugin:reviewer`, e não o nome simples do frontmatter. Os dois-pontos colocam um nome com escopo de plugin no caminho de expressão regular, então ancore o matcher com `^` e `$` para uma correspondência exata: `^my-plugin:reviewer$`.

2675 2701 

2676<h4 id="subagentstart-input">2702<h4 id="subagentstart-input">

2677 Entrada de SubagentStart2703 Entrada do SubagentStart

2678</h4>2704</h4>

2679 2705 

2680Além dos [campos de entrada comuns](#common-input-fields), os hooks SubagentStart recebem `agent_id` com o identificador exclusivo do subagente e `agent_type` com o nome do agente pelo qual o matcher filtra.2706Além dos [campos de entrada comuns](#common-input-fields), os hooks SubagentStart recebem `agent_id` com o identificador único do subagente e `agent_type` com o nome do agente usado pelo filtro do matcher.

2681 2707 

2682```json theme={null}2708```json theme={null}

2683{2709{


2694 2720 

2695| Campo | Descrição |2721| Campo | Descrição |

2696| :- | :- |2722| :- | :- |

2697| `additionalContext` | String adicionada ao contexto do subagente no início de sua conversa, antes do seu primeiro prompt. Consulte [Adicionar contexto para o Claude](#add-context-for-claude) |2723| `additionalContext` | String adicionada ao contexto do subagente no início da conversa, antes do primeiro prompt. Consulte [Adicionar contexto para o Claude](#add-context-for-claude) |

2698 2724 

2699```json theme={null}2725```json theme={null}

2700{2726{


2705}2731}

2706```2732```

2707 2733 

2708Quando o hook é executado novamente para o mesmo subagente, o Claude Code injeta o contexto retornado somente quando o contexto do subagente ainda não contém a cópia de uma execução anterior. A cópia injetada na inicialização permanece no lugar, mantendo intacto o [cache de prompt](/docs/pt/prompt-caching#subagents-and-the-cache) do subagente. Depois que a [compactação automática](/docs/pt/sub-agents#auto-compaction) descarta essa cópia, o Claude Code injeta novamente o contexto da execução seguinte.2734Quando o hook é executado novamente para o mesmo subagente, o Claude Code injeta o contexto retornado apenas quando o contexto do subagente ainda não contém a cópia de uma execução anterior. A cópia injetada na inicialização permanece no lugar, mantendo intacto o [cache de prompt](/docs/pt/prompt-caching#subagents-and-the-cache) do subagente. Depois que a [compactação automática](/docs/pt/sub-agents#auto-compaction) descarta essa cópia, o Claude Code injeta novamente o contexto da próxima execução.

2709 2735 

2710<h3 id="subagentstop">2736<h3 id="subagentstop">

2711 SubagentStop2737 SubagentStop

2712</h3>2738</h3>

2713 2739 

2714É executado quando um subagente do Claude Code termina de responder. Faz correspondência pelo tipo de agente, com os mesmos valores de SubagentStart.2740É executado quando um subagente do Claude Code termina de responder. Corresponde ao tipo de agente, com os mesmos valores do SubagentStart.

2715 2741 

2716<h4 id="subagentstop-input">2742<h4 id="subagentstop-input">

2717 Entrada de SubagentStop2743 Entrada do SubagentStop

2718</h4>2744</h4>

2719 2745 

2720Além dos [campos de entrada comuns](#common-input-fields), os hooks SubagentStop recebem `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path` e `last_assistant_message`. O campo `agent_type` é o valor usado para a filtragem do matcher. O `transcript_path` é a transcrição da sessão principal, enquanto `agent_transcript_path` é a transcrição do próprio subagente, armazenada em uma pasta aninhada `subagents/`. O campo `last_assistant_message` contém o conteúdo de texto da resposta final do subagente, para que os hooks possam acessá-lo sem analisar o arquivo de transcrição.2746Além dos [campos de entrada comuns](#common-input-fields), os hooks SubagentStop recebem `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path` e `last_assistant_message`. O campo `agent_type` é o valor usado para a filtragem do matcher. O `transcript_path` é a transcrição da sessão principal, enquanto `agent_transcript_path` é a transcrição do próprio subagente, armazenada em uma pasta aninhada `subagents/`. O campo `last_assistant_message` contém o conteúdo de texto da resposta final do subagente, para que os hooks possam acessá-lo sem analisar o arquivo de transcrição.

2721 2747 

2722Nem todo evento SubagentStop vem de um subagente criado pelo Claude. O Claude Code também executa agentes internos para alguns de seus próprios recursos, como [sugestões de prompt](/docs/pt/interactive-mode#prompt-suggestions) e [perguntas paralelas com `/btw`](/docs/pt/interactive-mode#side-questions-with-%2Fbtw), e SubagentStop também é disparado quando um deles termina. Para esses eventos, `agent_type` é o nome do agente com o qual a própria sessão é executada, como um definido com [`--agent`](/docs/pt/cli-reference#cli-flags) ou com a [configuração `agent`](/docs/pt/settings-reference#agent), e uma string vazia quando a sessão é executada sem um.2748Nem todo evento SubagentStop vem de um subagente iniciado pelo Claude. O Claude Code também executa agentes internos para alguns de seus próprios recursos, como [sugestões de prompt](/docs/pt/interactive-mode#prompt-suggestions) e [perguntas paralelas com `/btw`](/docs/pt/interactive-mode#side-questions-with-%2Fbtw), e o SubagentStop também é disparado quando um deles termina. Para esses eventos, `agent_type` é o nome do agente com que a própria sessão é executada, como um definido com [`--agent`](/docs/pt/cli-reference#cli-flags) ou com a [configuração `agent`](/docs/pt/settings-reference#agent), e uma string vazia quando a sessão é executada sem um.

2723 2749 

2724Um `matcher` que nomeia tipos de agente não corresponde a um `agent_type` vazio. Um hook cujo matcher é omitido, `""` ou `"*"`, ou é uma expressão regular que corresponde a uma string vazia, também é executado para eventos com `agent_type` vazio.2750Um `matcher` que nomeia tipos de agente não corresponde a um `agent_type` vazio. Um hook cujo matcher é omitido, `""` ou `"*"`, ou é uma expressão regular que corresponde a uma string vazia, também é executado para eventos com `agent_type` vazio.

2725 2751 

2726No Claude Code v2.1.271 ou posterior, um subagente que é executado com a ferramenta [`SubagentHandback`](/docs/pt/tools-reference) entrega seu relatório por meio dessa ferramenta antes de parar. O campo `last_assistant_message` então contém o texto final do subagente, se houver, que não é o relatório entregue. O relatório é a entrada `message` dessa chamada, que um hook `PreToolUse` ou `PostToolUse` com correspondência em `SubagentHandback` recebe como `tool_input.message`.2752No Claude Code v2.1.271 ou posterior, um subagente que é executado com a ferramenta [`SubagentHandback`](/docs/pt/tools-reference) entrega seu relatório por meio dessa ferramenta antes de parar. O campo `last_assistant_message` então contém o texto final do subagente, se houver, que não é o relatório entregue. O relatório é a entrada `message` dessa chamada, que um hook `PreToolUse` ou `PostToolUse` com matcher em `SubagentHandback` recebe como `tool_input.message`.

2727 2753 

2728Os hooks SubagentStop também recebem os arrays `background_tasks` e `session_crons` descritos em [Entrada de Stop](#stop-input). Ambos os arrays têm escopo na sessão pai, não no subagente.2754Os hooks SubagentStop também recebem os arrays `background_tasks` e `session_crons` descritos em [Entrada do Stop](#stop-input). Ambos os arrays têm como escopo a sessão pai, e não o subagente.

2729 2755 

2730```json theme={null}2756```json theme={null}

2731{2757{


2744}2770}

2745```2771```

2746 2772 

2747Os hooks SubagentStop usam o mesmo formato de controle de decisão que os [hooks Stop](#stop-decision-control), incluindo `hookSpecificOutput.additionalContext` com `hookEventName` definido como `"SubagentStop"`, para feedback sem erro que mantém o subagente em execução. Retornar `decision: "block"` com um `reason` mantém o subagente em execução e entrega `reason` ao subagente como sua próxima instrução. Um hook que bloqueia saindo com código 2 entrega sua mensagem de stderr da mesma forma. Para injetar contexto na sessão pai depois que um subagente retorna, use um hook [`PostToolUse`](#posttooluse) na ferramenta `Agent`.2773Os hooks SubagentStop usam o mesmo formato de controle de decisão dos [hooks Stop](#stop-decision-control), incluindo `hookSpecificOutput.additionalContext` com `hookEventName` definido como `"SubagentStop"`, para feedback sem erro que mantém o subagente em execução. Retornar `decision: "block"` com um `reason` mantém o subagente em execução e entrega `reason` ao subagente como sua próxima instrução. Um hook que bloqueia saindo com código 2 entrega sua mensagem de stderr da mesma forma. Para injetar contexto na sessão pai depois que um subagente retorna, use um hook [`PostToolUse`](#posttooluse) na ferramenta `Agent`.

2748 2774 

2749<h3 id="taskcreated">2775<h3 id="taskcreated">

2750 TaskCreated2776 TaskCreated

2751</h3>2777</h3>

2752 2778 

2753É executado quando uma tarefa está sendo criada por meio da ferramenta `TaskCreate`. Use-o para impor convenções de nomenclatura, exigir descrições de tarefas ou impedir que determinadas tarefas sejam criadas. Em uma [sessão sem as ferramentas Task](/docs/pt/tools-reference#task-tool-availability), este evento não é disparado.2779É executado quando uma tarefa está sendo criada por meio da ferramenta `TaskCreate`. Use-o para impor convenções de nomenclatura, exigir descrições de tarefas ou impedir que certas tarefas sejam criadas. Em uma [sessão sem as ferramentas Task](/docs/pt/tools-reference#task-tool-availability), este evento não é disparado.

2754 2780 

2755Os hooks TaskCreated não oferecem suporte a matchers e são disparados em todas as ocorrências.2781Os hooks TaskCreated não suportam matchers e são disparados em todas as ocorrências.

2756 2782 

2757<h4 id="taskcreated-input">2783<h4 id="taskcreated-input">

2758 Entrada de TaskCreated2784 Entrada do TaskCreated

2759</h4>2785</h4>

2760 2786 

2761Além dos [campos de entrada comuns](#common-input-fields), os hooks TaskCreated recebem `task_id`, `task_subject` e, opcionalmente, `task_description`, `teammate_name` e `team_name`.2787Além dos [campos de entrada comuns](#common-input-fields), os hooks TaskCreated recebem `task_id`, `task_subject` e, opcionalmente, `task_description`, `teammate_name` e `team_name`.


2779| `task_id` | Identificador da tarefa que está sendo criada |2805| `task_id` | Identificador da tarefa que está sendo criada |

2780| `task_subject` | Título da tarefa |2806| `task_subject` | Título da tarefa |

2781| `task_description` | Descrição detalhada da tarefa. Pode estar ausente |2807| `task_description` | Descrição detalhada da tarefa. Pode estar ausente |

2782| `teammate_name` | Nome do colega que está criando a tarefa. Pode estar ausente |2808| `teammate_name` | Nome do colega de equipe que está criando a tarefa. Pode estar ausente |

2783| `team_name` | Descontinuado. Nome da equipe derivado da sessão; será removido em uma versão futura |2809| `team_name` | Descontinuado. Nome da equipe derivado da sessão; será removido em uma versão futura |

2784| `agent_id` | Neste evento, o [campo de entrada comum](#common-input-fields) identifica o subagente ou o [colega em processo](/docs/pt/agent-teams#choose-a-display-mode) que está criando a tarefa. Pode estar ausente. Requer Claude Code v2.1.290 ou posterior |2810| `agent_id` | Neste evento, o [campo de entrada comum](#common-input-fields) identifica o subagente ou o [colega de equipe em processo](/docs/pt/agent-teams#choose-a-display-mode) que está criando a tarefa. Pode estar ausente. Requer Claude Code v2.1.290 ou posterior |

2785 2811 

2786<h4 id="taskcreated-decision-control">2812<h4 id="taskcreated-decision-control">

2787 Controle de decisão de TaskCreated2813 Controle de decisão do TaskCreated

2788</h4>2814</h4>

2789 2815 

2790Um hook TaskCreated pode bloquear a criação com o código de saída 2 ou com uma decisão JSON. De qualquer forma, o Claude Code exclui a tarefa e retorna sua mensagem ao Claude como o erro da ferramenta. O Claude Code ignora `continue: false` deste evento e o Claude continua trabalhando.2816Um hook TaskCreated pode bloquear a criação com o código de saída 2 ou com uma decisão JSON. Em ambos os casos, o Claude Code exclui a tarefa e retorna sua mensagem ao Claude como o erro da ferramenta. O Claude Code ignora `continue: false` deste evento e o Claude continua trabalhando.

2791 2817 

2792* **Código de saída 2**: o Claude Code retorna o texto do stderr como a mensagem.2818* **Código de saída 2**: o Claude Code retorna o texto do stderr como a mensagem.

2793* **JSON `{"decision": "block", "reason": "..."}`**: o Claude Code retorna `reason` como a mensagem.2819* **JSON `{"decision": "block", "reason": "..."}`**: o Claude Code retorna `reason` como a mensagem.


2811 TaskCompleted2837 TaskCompleted

2812</h3>2838</h3>

2813 2839 

2814É executado quando uma tarefa está sendo marcada como concluída. Isso é disparado em duas situações: quando qualquer agente marca explicitamente uma tarefa como concluída por meio da ferramenta TaskUpdate, ou quando um colega de uma [equipe de agentes](/docs/pt/agent-teams) termina seu turno com tarefas em andamento. Use-o para impor critérios de conclusão, como testes aprovados ou verificações de lint, antes que uma tarefa possa ser fechada.2840É executado quando uma tarefa está sendo marcada como concluída. Isso é disparado em duas situações: quando qualquer agente marca explicitamente uma tarefa como concluída por meio da ferramenta TaskUpdate, ou quando um colega de uma [equipe de agentes](/docs/pt/agent-teams) termina seu turno com tarefas em andamento. Use-o para impor critérios de conclusão, como testes aprovados ou verificações de lint, antes que uma tarefa possa ser encerrada.

2815 2841 

2816Os hooks TaskCompleted não oferecem suporte a matchers e são disparados em todas as ocorrências.2842Os hooks TaskCompleted não suportam matchers e são disparados em todas as ocorrências.

2817 2843 

2818<h4 id="taskcompleted-input">2844<h4 id="taskcompleted-input">

2819 Entrada de TaskCompleted2845 Entrada do TaskCompleted

2820</h4>2846</h4>

2821 2847 

2822Além dos [campos de entrada comuns](#common-input-fields), os hooks TaskCompleted recebem `task_id`, `task_subject` e, opcionalmente, `task_description`, `teammate_name` e `team_name`.2848Além dos [campos de entrada comuns](#common-input-fields), os hooks TaskCompleted recebem `task_id`, `task_subject` e, opcionalmente, `task_description`, `teammate_name` e `team_name`.


2841| `task_id` | Identificador da tarefa que está sendo concluída |2867| `task_id` | Identificador da tarefa que está sendo concluída |

2842| `task_subject` | Título da tarefa |2868| `task_subject` | Título da tarefa |

2843| `task_description` | Descrição detalhada da tarefa. Pode estar ausente |2869| `task_description` | Descrição detalhada da tarefa. Pode estar ausente |

2844| `teammate_name` | Nome do colega que está concluindo a tarefa. Pode estar ausente |2870| `teammate_name` | Nome do colega de equipe que está concluindo a tarefa. Pode estar ausente |

2845| `team_name` | Descontinuado. Nome da equipe derivado da sessão; será removido em uma versão futura |2871| `team_name` | Descontinuado. Nome da equipe derivado da sessão; será removido em uma versão futura |

2846| `agent_id` | Neste evento, o [campo de entrada comum](#common-input-fields) identifica o subagente ou o [colega em processo](/docs/pt/agent-teams#choose-a-display-mode) que está concluindo a tarefa. Pode estar ausente. Requer Claude Code v2.1.290 ou posterior |2872| `agent_id` | Neste evento, o [campo de entrada comum](#common-input-fields) identifica o subagente ou o [colega de equipe em processo](/docs/pt/agent-teams#choose-a-display-mode) que está concluindo a tarefa. Pode estar ausente. Requer Claude Code v2.1.290 ou posterior |

2847 2873 

2848<h4 id="taskcompleted-decision-control">2874<h4 id="taskcompleted-decision-control">

2849 Controle de decisão de TaskCompleted2875 Controle de decisão do TaskCompleted

2850</h4>2876</h4>

2851 2877 

2852Os hooks TaskCompleted oferecem duas formas de controlar a conclusão de tarefas:2878Os hooks TaskCompleted suportam duas formas de controlar a conclusão de tarefas:

2853 2879 

2854* **Código de saída 2**: a tarefa não é marcada como concluída e a mensagem do stderr é enviada de volta ao modelo como feedback.2880* **Código de saída 2**: a tarefa não é marcada como concluída e a mensagem do stderr é enviada de volta ao modelo como feedback.

2855* **JSON `{"continue": false, "stopReason": "..."}`**: quando um colega terminando seu turno acionou o evento, interrompe o colega completamente, correspondendo ao comportamento do hook `Stop`. O `stopReason` é mostrado ao usuário. Quando a ferramenta `TaskUpdate` acionou o evento, o Claude Code ignora `continue: false`; o código de saída 2 ainda bloqueia a conclusão.2881* **JSON `{"continue": false, "stopReason": "..."}`**: quando um colega de equipe terminando seu turno acionou o evento, interrompe o colega de equipe por completo, correspondendo ao comportamento do hook `Stop`. O `stopReason` é mostrado ao usuário. Quando a ferramenta `TaskUpdate` acionou o evento, o Claude Code ignora `continue: false`; o código de saída 2 ainda bloqueia a conclusão.

2856 2882 

2857Este exemplo executa testes e bloqueia a conclusão da tarefa se eles falharem:2883Este exemplo executa testes e bloqueia a conclusão da tarefa se eles falharem:

2858 2884 


2876 2902 

2877É executado quando o agente principal do Claude Code termina de responder. Não é executado se2903É executado quando o agente principal do Claude Code termina de responder. Não é executado se

2878a parada ocorreu devido a uma interrupção do usuário. Erros de API disparam2904a parada ocorreu devido a uma interrupção do usuário. Erros de API disparam

2879[StopFailure](#stopfailure) em vez disso.2905[StopFailure](#stopfailure) em seu lugar.

2880 2906 

2881<Tip>2907<Tip>

2882 O comando [`/goal`](/docs/pt/goal) é um atalho integrado para um hook Stop baseado em prompt com escopo de sessão. Use-o quando quiser que o Claude continue trabalhando em direção a uma condição sem escrever uma configuração de hook.2908 O comando [`/goal`](/docs/pt/goal) é um atalho integrado para um hook Stop baseado em prompt com escopo de sessão. Use-o quando quiser que o Claude continue trabalhando em direção a uma condição sem escrever configuração de hook.

2883</Tip>2909</Tip>

2884 2910 

2885<h4 id="stop-input">2911<h4 id="stop-input">

2886 Entrada de Stop2912 Entrada do Stop

2887</h4>2913</h4>

2888 2914 

2889Além dos [campos de entrada comuns](#common-input-fields), os hooks Stop recebem `stop_hook_active`, `last_assistant_message`, `background_tasks` e `session_crons`. O campo `stop_hook_active` é `true` quando o Claude Code já está continuando como resultado de um hook de parada. Verifique esse valor ou processe a transcrição para evitar bloquear com base em uma condição que nunca será resolvida.2915Além dos [campos de entrada comuns](#common-input-fields), os hooks Stop recebem `stop_hook_active`, `last_assistant_message`, `background_tasks` e `session_crons`. O campo `stop_hook_active` é `true` quando o Claude Code já está continuando como resultado de um hook Stop. Verifique esse valor ou processe a transcrição para evitar bloquear em uma condição que nunca será resolvida.

2890 2916 

2891O Claude Code aplica um limite de 8 continuações consecutivas: depois que os hooks de parada continuarem o turno oito vezes seguidas, o Claude Code sobrescreve o próximo bloqueio e encerra o turno. A contagem de continuações consecutivas é redefinida sempre que o Claude chama uma ferramenta. Para aumentar o limite, defina [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/pt/env-vars).2917O Claude Code aplica um limite de 8 continuações consecutivas: depois que os hooks Stop continuaram o turno oito vezes seguidas, o Claude Code sobrescreve o próximo bloqueio e encerra o turno. A contagem de continuações consecutivas é redefinida cada vez que o Claude chama uma ferramenta. Para aumentar o limite, defina [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/pt/env-vars).

2892 2918 

2893O campo `last_assistant_message` contém o conteúdo de texto da resposta final do Claude, para que os hooks possam acessá-lo sem analisar o arquivo de transcrição. Para hooks que atuam sobre o turno recém-concluído, como hooks de leitura em voz alta ou de notificação, use este campo em vez de ler `transcript_path`: não há garantia de que o arquivo de transcrição inclua a mensagem final no momento do Stop em todas as versões.2919O campo `last_assistant_message` contém o conteúdo de texto da resposta final do Claude, para que os hooks possam acessá-lo sem analisar o arquivo de transcrição. Para hooks que atuam sobre o turno recém-concluído, como hooks de leitura em voz alta ou de notificação, use este campo em vez de ler `transcript_path`: não há garantia de que o arquivo de transcrição inclua a mensagem final no momento do Stop em todas as versões.

2894 2920 

2895Os arrays `background_tasks` e `session_crons` permitem que os hooks distingam entre "a sessão terminou" e "a sessão está pausada aguardando que um trabalho em segundo plano a desperte novamente". Ambos os arrays estão presentes quando o registro de tarefas está acessível e ficam vazios quando nada está em andamento ou agendado.2921Os arrays `background_tasks` e `session_crons` permitem que os hooks diferenciem "a sessão terminou" de "a sessão está pausada aguardando que um trabalho em segundo plano a desperte novamente". Ambos os arrays estão presentes quando o registro de tarefas está acessível e ficam vazios quando nada está em andamento ou agendado.

2896 2922 

2897Cada entrada em `background_tasks` descreve uma tarefa em andamento e usa estes campos:2923Cada entrada em `background_tasks` descreve uma tarefa em andamento e usa estes campos:

2898 2924 

2899| Campo | Descrição |2925| Campo | Descrição |

2900| :- | :- |2926| :- | :- |

2901| `id` | Identificador da tarefa |2927| `id` | Identificador da tarefa |

2902| `type` | Rótulo amigável do tipo de tarefa, como `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session` ou `MCP task`. Cada rótulo identifica qual recurso do Claude Code criou a tarefa. Usa o discriminante bruto como alternativa para tipos não reconhecidos |2928| `type` | Rótulo amigável do tipo de tarefa, como `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session` ou `MCP task`. Cada rótulo identifica qual recurso do Claude Code criou a tarefa. Recorre ao discriminante bruto para tipos não reconhecidos |

2903| `status` | Status atual da tarefa |2929| `status` | Status atual da tarefa |

2904| `description` | Descrição em texto livre, limitada a 1000 caracteres, com um marcador `… [+N chars]` na própria string quando cortada |2930| `description` | Descrição em texto livre, limitada a 1000 caracteres com um marcador `… [+N chars]` na própria string quando cortada |

2905| `command` | Linha de comando do shell, limitada a 1000 caracteres. Presente somente para tarefas `shell` |2931| `command` | Linha de comando do shell, limitada a 1000 caracteres. Presente apenas para tarefas `shell` |

2906| `agent_type` | Nome do tipo de subagente. Presente somente para tarefas `subagent` |2932| `agent_type` | Nome do tipo de subagente. Presente apenas para tarefas `subagent` |

2907| `server` | Nome do servidor MCP. Presente somente para tarefas `monitor` e `MCP task` |2933| `server` | Nome do servidor MCP. Presente apenas para tarefas `monitor` e `MCP task` |

2908| `tool` | Nome da ferramenta MCP. Presente somente para tarefas `monitor` e `MCP task` |2934| `tool` | Nome da ferramenta MCP. Presente apenas para tarefas `monitor` e `MCP task` |

2909| `name` | Nome do workflow. Presente somente para tarefas `workflow` |2935| `name` | Nome do workflow. Presente apenas para tarefas `workflow` |

2910 2936 

2911Cada entrada em `session_crons` descreve um despertar agendado com escopo de sessão, originado de `CronCreate`, `ScheduleWakeup` e `/loop`:2937Cada entrada em `session_crons` descreve um despertar agendado com escopo de sessão, proveniente de `CronCreate`, `ScheduleWakeup` e `/loop`:

2912 2938 

2913| Campo | Descrição |2939| Campo | Descrição |

2914| :- | :- |2940| :- | :- |

2915| `id` | Identificador da tarefa cron |2941| `id` | Identificador da tarefa cron |

2916| `schedule` | Expressão cron, por exemplo `0 9 * * 1-5` |2942| `schedule` | Expressão cron, por exemplo `0 9 * * 1-5` |

2917| `recurring` | `false` para despertares únicos cujo agendamento codifica um único horário de disparo, `true` para tarefas que disparam novamente a cada correspondência |2943| `recurring` | `false` para despertares únicos cujo agendamento codifica um único horário de disparo, `true` para tarefas que são disparadas novamente a cada correspondência |

2918| `prompt` | Prompt enviado quando o cron é disparado, limitado a 1000 caracteres com o mesmo marcador `… [+N chars]` |2944| `prompt` | Prompt enviado quando o cron é disparado, limitado a 1000 caracteres com o mesmo marcador `… [+N chars]` |

2919 2945 

2920Este exemplo mostra uma entrada de Stop com uma tarefa shell em andamento e um cron recorrente:2946Este exemplo mostra uma entrada do Stop com uma tarefa de shell em andamento e um cron recorrente:

2921 2947 

2922```json theme={null}2948```json theme={null}

2923{2949{


2949```2975```

2950 2976 

2951<h4 id="stop-decision-control">2977<h4 id="stop-decision-control">

2952 Controle de decisão de Stop2978 Controle de decisão do Stop

2953</h4>2979</h4>

2954 2980 

2955Os hooks `Stop` e `SubagentStop` podem controlar se o Claude continua. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar estes campos específicos do evento:2981Os hooks `Stop` e `SubagentStop` podem controlar se o Claude continua. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar estes campos específicos do evento:


2958| :- | :- |2984| :- | :- |

2959| `decision` | `"block"` impede que o Claude pare. Omita para permitir que o Claude pare |2985| `decision` | `"block"` impede que o Claude pare. Omita para permitir que o Claude pare |

2960| `reason` | Obrigatório quando `decision` é `"block"`. Informa ao Claude por que ele deve continuar |2986| `reason` | Obrigatório quando `decision` é `"block"`. Informa ao Claude por que ele deve continuar |

2961| `hookSpecificOutput.additionalContext` | Feedback sem erro para o Claude. A conversa continua para que o Claude possa agir sobre ele, mas, diferentemente de `decision: "block"`, ele é mostrado na transcrição como feedback de hook, e não como erro de hook |2987| `hookSpecificOutput.additionalContext` | Feedback sem erro para o Claude. A conversa continua para que o Claude possa agir com base nele, mas, ao contrário de `decision: "block"`, ele é mostrado na transcrição como feedback do hook, e não como um erro de hook |

2962 2988 

2963Um hook que bloqueia saindo com código 2 é encaminhado da mesma forma que `reason`: o Claude recebe a mensagem do stderr como a explicação de por que deve continuar.2989Um hook que bloqueia saindo com código 2 é encaminhado da mesma forma que `reason`: o Claude recebe a mensagem do stderr como a explicação de por que deve continuar.

2964 2990 


2969}2995}

2970```2996```

2971 2997 

2972Use `additionalContext` quando o hook estiver funcionando conforme projetado e dando orientações ao Claude, como "execute o conjunto de testes antes de terminar". Ele mantém a conversa em andamento com as mesmas proteções contra loop que `decision: "block"`, ou seja, a entrada `stop_hook_active` e o limite de 8 continuações consecutivas, mas a transcrição o rotula como `Stop hook feedback` e nenhuma notificação de erro de hook é mostrada:2998Use `additionalContext` quando o hook estiver funcionando como projetado e dando orientação ao Claude, como "execute a suíte de testes antes de terminar". Ele mantém a conversa em andamento com as mesmas proteções contra loop de `decision: "block"`, a saber, a entrada `stop_hook_active` e o limite de 8 continuações consecutivas, mas a transcrição o rotula como `Stop hook feedback` e nenhuma notificação de erro de hook é exibida:

2973 2999 

2974```json theme={null}3000```json theme={null}

2975{3001{


2984 StopFailure3010 StopFailure

2985</h3>3011</h3>

2986 3012 

2987É executado em vez de [Stop](#stop) quando o turno termina devido a um erro de API. O Claude Code ignora a saída e o código de saída do hook, com exceção de [`terminalSequence`](#emit-terminal-notifications). Use-o para registrar falhas em log, enviar alertas ou tomar ações de recuperação quando o Claude não consegue concluir uma resposta devido a rate limits, problemas de autenticação ou outros erros de API.3013É executado em vez do [Stop](#stop) quando o turno termina devido a um erro de API. O Claude Code ignora a saída e o código de saída do hook, exceto [`terminalSequence`](#emit-terminal-notifications). Use-o para registrar falhas em log, enviar alertas ou tomar ações de recuperação quando o Claude não consegue concluir uma resposta devido a rate limits, problemas de autenticação ou outros erros de API.

2988 3014 

2989<h4 id="stopfailure-input">3015<h4 id="stopfailure-input">

2990 Entrada de StopFailure3016 Entrada do StopFailure

2991</h4>3017</h4>

2992 3018 

2993Além dos [campos de entrada comuns](#common-input-fields), os hooks StopFailure recebem `error`, `error_details` opcional e `last_assistant_message` opcional. O campo `error` identifica o tipo de erro e é usado para a filtragem do matcher.3019Além dos [campos de entrada comuns](#common-input-fields), os hooks StopFailure recebem `error`, `error_details` opcional e `last_assistant_message` opcional. O campo `error` identifica o tipo de erro e é usado para a filtragem do matcher.


2996| :- | :- |3022| :- | :- |

2997| `error` | Tipo de erro: `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error` ou `unknown` |3023| `error` | Tipo de erro: `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error` ou `unknown` |

2998| `error_details` | Detalhes adicionais sobre o erro, quando disponíveis |3024| `error_details` | Detalhes adicionais sobre o erro, quando disponíveis |

2999| `last_assistant_message` | O texto de erro renderizado mostrado na conversa. Diferentemente de `Stop` e `SubagentStop`, em que este campo contém a saída conversacional do Claude, para `StopFailure` ele contém a própria string do erro de API, como `"API Error: Rate limit reached"` |3025| `last_assistant_message` | O texto de erro renderizado mostrado na conversa. Ao contrário de `Stop` e `SubagentStop`, em que este campo contém a saída conversacional do Claude, para `StopFailure` ele contém a própria string de erro da API, como `"API Error: Rate limit reached"` |

3000 3026 

3001```json theme={null}3027```json theme={null}

3002{3028{


3010}3036}

3011```3037```

3012 3038 

3013Os hooks StopFailure não têm controle de decisão. Eles são executados apenas para fins de notificação e registro em log.3039Os hooks StopFailure não têm controle de decisão. Eles são executados apenas para fins de notificação e log.

3014 3040 

3015<h3 id="teammateidle">3041<h3 id="teammateidle">

3016 TeammateIdle3042 TeammateIdle

3017</h3>3043</h3>

3018 3044 

3019É executado quando um colega de uma [equipe de agentes](/docs/pt/agent-teams) está prestes a ficar ocioso após terminar seu turno. Use-o para impor critérios de qualidade antes que um colega pare de trabalhar, como exigir verificações de lint aprovadas ou verificar se os arquivos de saída existem.3045É executado quando um colega de uma [equipe de agentes](/docs/pt/agent-teams) está prestes a ficar ocioso depois de terminar seu turno. Use-o para impor critérios de qualidade antes que um colega de equipe pare de trabalhar, como exigir que as verificações de lint passem ou verificar se os arquivos de saída existem.

3020 3046 

3021Os hooks TeammateIdle não oferecem suporte a matchers e são disparados em todas as ocorrências.3047Os hooks TeammateIdle não suportam matchers e são disparados em todas as ocorrências.

3022 3048 

3023<h4 id="teammateidle-input">3049<h4 id="teammateidle-input">

3024 Entrada de TeammateIdle3050 Entrada do TeammateIdle

3025</h4>3051</h4>

3026 3052 

3027Além dos [campos de entrada comuns](#common-input-fields), os hooks TeammateIdle recebem `teammate_name` e `team_name`.3053Além dos [campos de entrada comuns](#common-input-fields), os hooks TeammateIdle recebem `teammate_name` e `team_name`.


3040 3066 

3041| Campo | Descrição |3067| Campo | Descrição |

3042| :- | :- |3068| :- | :- |

3043| `teammate_name` | Nome do colega que está prestes a ficar ocioso |3069| `teammate_name` | Nome do colega de equipe que está prestes a ficar ocioso |

3044| `team_name` | Descontinuado. Nome da equipe derivado da sessão; será removido em uma versão futura |3070| `team_name` | Descontinuado. Nome da equipe derivado da sessão; será removido em uma versão futura |

3045| `agent_id` | Neste evento, o [campo de entrada comum](#common-input-fields) identifica o [colega em processo](/docs/pt/agent-teams#choose-a-display-mode) que está prestes a ficar ocioso. Pode estar ausente. Requer Claude Code v2.1.290 ou posterior |3071| `agent_id` | Neste evento, o [campo de entrada comum](#common-input-fields) identifica o [colega de equipe em processo](/docs/pt/agent-teams#choose-a-display-mode) que está prestes a ficar ocioso. Pode estar ausente. Requer Claude Code v2.1.290 ou posterior |

3046 3072 

3047<h4 id="teammateidle-decision-control">3073<h4 id="teammateidle-decision-control">

3048 Controle de decisão de TeammateIdle3074 Controle de decisão do TeammateIdle

3049</h4>3075</h4>

3050 3076 

3051Os hooks TeammateIdle oferecem duas formas de controlar o comportamento do colega:3077Os hooks TeammateIdle suportam duas formas de controlar o comportamento do colega de equipe:

3052 3078 

3053* **Código de saída 2**: o colega recebe a mensagem do stderr como feedback e continua trabalhando em vez de ficar ocioso.3079* **Código de saída 2**: o colega de equipe recebe a mensagem do stderr como feedback e continua trabalhando em vez de ficar ocioso.

3054* **JSON `{"continue": false, "stopReason": "..."}`**: interrompe o colega completamente, correspondendo ao comportamento do hook `Stop`. O `stopReason` é mostrado ao usuário.3080* **JSON `{"continue": false, "stopReason": "..."}`**: interrompe o colega de equipe por completo, correspondendo ao comportamento do hook `Stop`. O `stopReason` é mostrado ao usuário.

3055 3081 

3056Este exemplo verifica se um artefato de build existe antes de permitir que um colega fique ocioso:3082Este exemplo verifica se um artefato de build existe antes de permitir que um colega de equipe fique ocioso:

3057 3083 

3058```bash theme={null}3084```bash theme={null}

3059#!/bin/bash3085#!/bin/bash


3072 3098 

3073É executado quando um arquivo de configuração muda durante uma sessão. Use-o para auditar alterações de configurações, impor políticas de segurança ou bloquear modificações não autorizadas em arquivos de configuração.3099É executado quando um arquivo de configuração muda durante uma sessão. Use-o para auditar alterações de configurações, impor políticas de segurança ou bloquear modificações não autorizadas em arquivos de configuração.

3074 3100 

3075O Claude Code executa hooks ConfigChange quando um arquivo de configurações, um arquivo de política gerenciada ou um arquivo de skill muda. Para política gerenciada, ele os executa somente quando `managed-settings.json` ou um arquivo em `managed-settings.d/` muda. Ele aplica [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) e alterações nas preferências gerenciadas do macOS ou na política do registro do Windows sem executá-los. No WSL com [`wslInheritsWindowsSettings`](/docs/pt/settings-reference#wslinheritswindowssettings), ele também aplica um arquivo de configurações gerenciadas alterado do lado do Windows em sua verificação periódica de política sem executá-los.3101O Claude Code executa hooks ConfigChange quando um arquivo de configurações, um arquivo de política gerenciada ou um arquivo de skill muda. Para política gerenciada, ele os executa apenas quando `managed-settings.json` ou um arquivo em `managed-settings.d/` muda. Ele aplica [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) e alterações nas preferências gerenciadas do macOS ou na política do registro do Windows sem executá-los. No WSL com [`wslInheritsWindowsSettings`](/docs/pt/settings-reference#wslinheritswindowssettings), ele também aplica um arquivo de configurações gerenciadas do lado do Windows alterado na sua verificação periódica de política sem executá-los.

3076 3102 

3077O matcher filtra pela origem da configuração:3103O matcher filtra pela origem da configuração:

3078 3104 


3105```3131```

3106 3132 

3107<h4 id="configchange-input">3133<h4 id="configchange-input">

3108 Entrada de ConfigChange3134 Entrada do ConfigChange

3109</h4>3135</h4>

3110 3136 

3111Além dos [campos de entrada comuns](#common-input-fields), os hooks ConfigChange recebem `source` e, opcionalmente, `file_path`. O campo `source` indica qual tipo de configuração mudou, e `file_path` fornece o caminho para o arquivo específico que foi modificado.3137Além dos [campos de entrada comuns](#common-input-fields), os hooks ConfigChange recebem `source` e, opcionalmente, `file_path`. O campo `source` indica qual tipo de configuração mudou, e `file_path` fornece o caminho do arquivo específico que foi modificado.

3112 3138 

3113```json theme={null}3139```json theme={null}

3114{3140{


3122```3148```

3123 3149 

3124<h4 id="configchange-decision-control">3150<h4 id="configchange-decision-control">

3125 Controle de decisão de ConfigChange3151 Controle de decisão do ConfigChange

3126</h4>3152</h4>

3127 3153 

3128Os hooks ConfigChange podem impedir que alterações de configuração entrem em vigor. Use o código de saída 2 ou uma `decision` em JSON para impedir a alteração. Quando bloqueadas, as novas configurações não são aplicadas à sessão em execução.3154Os hooks ConfigChange podem impedir que alterações de configuração entrem em vigor. Use o código de saída 2 ou uma `decision` JSON para impedir a alteração. Quando bloqueadas, as novas configurações não são aplicadas à sessão em execução.

3129 3155 

3130| Campo | Descrição |3156| Campo | Descrição |

3131| :- | :- |3157| :- | :- |

3132| `decision` | `"block"` impede que a alteração de configuração seja aplicada. Omita para permitir a alteração |3158| `decision` | `"block"` impede que a alteração de configuração seja aplicada. Omita para permitir a alteração |

3133| `reason` | Aceito, mas nunca mostrado |3159| `reason` | Aceito, mas nunca exibido |

3134 3160 

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

3136{3162{


3141 3167 

3142Alterações de `policy_settings` não podem ser bloqueadas. Os hooks ainda são disparados para origens `policy_settings` quando um arquivo de configurações gerenciadas na máquina muda, então você pode usá-los para registrar essas edições em log, mas qualquer decisão de bloqueio é ignorada. Isso garante que as configurações gerenciadas pela empresa sempre entrem em vigor. O Claude Code não executa hooks `ConfigChange` quando [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) chegam ou são atualizadas.3168Alterações de `policy_settings` não podem ser bloqueadas. Os hooks ainda são disparados para origens `policy_settings` quando um arquivo de configurações gerenciadas na máquina muda, então você pode usá-los para registrar essas edições em log, mas qualquer decisão de bloqueio é ignorada. Isso garante que as configurações gerenciadas pela empresa sempre entrem em vigor. O Claude Code não executa hooks `ConfigChange` quando [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) chegam ou são atualizadas.

3143 3169 

3144O Claude Code age sobre a decisão de bloqueio da saída JSON de um hook ConfigChange e descarta `systemMessage` e `continue`. Uma alteração bloqueada não exibe nenhuma mensagem para você nem para o Claude, seja bloqueando com `reason` ou com stderr no código de saída 2. O Claude Code apenas grava uma linha no log de depuração.3170O Claude Code age com base na decisão de bloqueio da saída JSON de um hook ConfigChange e descarta `systemMessage` e `continue`. Uma alteração bloqueada não exibe nenhuma mensagem para você nem para o Claude, quer você bloqueie com `reason` ou com stderr na saída com código 2. O Claude Code apenas grava uma linha no log de depuração.

3145 3171 

3146<h3 id="cwdchanged">3172<h3 id="cwdchanged">

3147 CwdChanged3173 CwdChanged

3148</h3>3174</h3>

3149 3175 

3150É executado quando um comando de shell na conversa principal altera o diretório de trabalho, por exemplo quando o Claude executa um comando `cd`. Use-o para reagir a mudanças de diretório: recarregar variáveis de ambiente, ativar toolchains específicos do projeto ou executar scripts de configuração automaticamente. Funciona em conjunto com [FileChanged](#filechanged) para ferramentas como o [direnv](https://direnv.net/), que gerenciam o ambiente por diretório.3176É executado quando um comando de shell na conversa principal altera o diretório de trabalho, por exemplo quando o Claude executa um comando `cd`. Use-o para reagir a mudanças de diretório: recarregar variáveis de ambiente, ativar toolchains específicas do projeto ou executar scripts de configuração automaticamente. Combina com [FileChanged](#filechanged) para ferramentas como o [direnv](https://direnv.net/), que gerenciam o ambiente por diretório.

3151 3177 

3152Os hooks CwdChanged têm acesso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). As variáveis gravadas nesse arquivo persistem nos comandos Bash subsequentes até o próximo evento CwdChanged, quando o Claude Code as limpa.3178Os hooks CwdChanged têm acesso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). As variáveis gravadas nesse arquivo persistem nos comandos Bash subsequentes até o próximo evento CwdChanged, quando o Claude Code as limpa.

3153 3179 

3154CwdChanged não oferece suporte a matchers e é disparado em todas as ocorrências.3180O CwdChanged não suporta matchers e é disparado em todas as ocorrências.

3155 3181 

3156<h4 id="cwdchanged-input">3182<h4 id="cwdchanged-input">

3157 Entrada de CwdChanged3183 Entrada do CwdChanged

3158</h4>3184</h4>

3159 3185 

3160Além dos [campos de entrada comuns](#common-input-fields), os hooks CwdChanged recebem `old_cwd` e `new_cwd`.3186Além dos [campos de entrada comuns](#common-input-fields), os hooks CwdChanged recebem `old_cwd` e `new_cwd`.


3171```3197```

3172 3198 

3173<h4 id="cwdchanged-output">3199<h4 id="cwdchanged-output">

3174 Saída de CwdChanged3200 Saída do CwdChanged

3175</h4>3201</h4>

3176 3202 

3177Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, os hooks CwdChanged podem retornar `watchPaths` para definir dinamicamente quais caminhos de arquivo o [FileChanged](#filechanged) observa:3203Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, os hooks CwdChanged podem retornar `watchPaths` para definir dinamicamente quais caminhos de arquivo o [FileChanged](#filechanged) observa:


3182 3208 

3183Os hooks CwdChanged não têm controle de decisão. Eles não podem bloquear a mudança de diretório.3209Os hooks CwdChanged não têm controle de decisão. Eles não podem bloquear a mudança de diretório.

3184 3210 

3185O Claude Code lê `watchPaths` e `systemMessage` da saída JSON desses hooks e descarta `continue`. Em sessões interativas, ele mostra o `systemMessage` como uma breve notificação no terminal. A mensagem não chega ao fluxo de mensagens do SDK.3211O Claude Code lê `watchPaths` e `systemMessage` da saída JSON deles e descarta `continue`. Em sessões interativas, ele mostra o `systemMessage` como uma breve notificação no terminal. A mensagem não chega ao fluxo de mensagens do SDK.

3186 3212 

3187<h3 id="directoryadded">3213<h3 id="directoryadded">

3188 DirectoryAdded3214 DirectoryAdded

3189</h3>3215</h3>

3190 3216 

3191É executado depois que você adiciona um diretório de trabalho no meio da sessão com o comando `/add-dir`, ou depois que um cliente do SDK adiciona um com a requisição de controle `register_repo_root`. Use-o para preparar um repositório recém-adicionado, por exemplo instalando suas dependências.3217É executado depois que você adiciona um diretório de trabalho no meio da sessão com o comando `/add-dir`, ou depois que um cliente SDK adiciona um com a requisição de controle `register_repo_root`. Use-o para preparar um repositório recém-adicionado, por exemplo instalando suas dependências.

3192 3218 

3193O Claude Code não dispara este evento quando:3219O Claude Code não dispara este evento quando:

3194 3220 

3195* Você passa um diretório com a flag de inicialização `--add-dir`; [SessionStart](#sessionstart) cobre esses diretórios3221* Você passa um diretório com a flag de inicialização `--add-dir`; o [SessionStart](#sessionstart) cobre esses diretórios

3196* Você adiciona um diretório na aba Workspace de `/permissions`3222* Você adiciona um diretório na aba Workspace de `/permissions`

3197* Você adiciona um diretório que já é um diretório de trabalho ou que está dentro de um3223* Você adiciona um diretório que já é um diretório de trabalho ou está dentro de um

3198 3224 

3199O Claude Code dispara DirectoryAdded depois de atualizar o estado do sandbox e das permissões, então as ferramentas em sandbox já veem o novo diretório quando seu hook é executado. Os próprios comandos do hook são executados fora do sandbox.3225O Claude Code dispara o DirectoryAdded depois de atualizar o estado do sandbox e das permissões, então as ferramentas em sandbox já veem o novo diretório quando seu hook é executado. Os próprios comandos de hook são executados fora do sandbox.

3200 3226 

3201O Claude Code não espera pelo hook: a adição é concluída imediatamente, e o hook é executado em segundo plano com o timeout padrão de 600 segundos.3227O Claude Code não espera pelo hook: a adição é concluída imediatamente, e o hook é executado em segundo plano com o timeout padrão de 600 segundos.

3202 3228 


3205| Matcher | Quando é disparado |3231| Matcher | Quando é disparado |

3206| :- | :- |3232| :- | :- |

3207| `slash_command` | Você adiciona um diretório com `/add-dir` |3233| `slash_command` | Você adiciona um diretório com `/add-dir` |

3208| `register_repo_root` | Um cliente do SDK adiciona um diretório com a requisição de controle `register_repo_root` |3234| `register_repo_root` | Um cliente SDK adiciona um diretório com a requisição de controle `register_repo_root` |

3209 3235 

3210<h4 id="directoryadded-input">3236<h4 id="directoryadded-input">

3211 Entrada de DirectoryAdded3237 Entrada do DirectoryAdded

3212</h4>3238</h4>

3213 3239 

3214Além dos [campos de entrada comuns](#common-input-fields), os hooks DirectoryAdded recebem `directory` e `source`.3240Além dos [campos de entrada comuns](#common-input-fields), os hooks DirectoryAdded recebem `directory` e `source`.


3216| Campo | Descrição |3242| Campo | Descrição |

3217| :- | :- |3243| :- | :- |

3218| `directory` | Caminho absoluto do diretório que foi adicionado |3244| `directory` | Caminho absoluto do diretório que foi adicionado |

3219| `source` | Como o diretório foi adicionado: `"slash_command"` para `/add-dir` ou `"register_repo_root"` para a requisição de controle do SDK |3245| `source` | Como o diretório foi adicionado, `"slash_command"` para `/add-dir` ou `"register_repo_root"` para a requisição de controle do SDK |

3220 3246 

3221```json theme={null}3247```json theme={null}

3222{3248{


3229}3255}

3230```3256```

3231 3257 

3232Os hooks DirectoryAdded não têm controle de decisão. Eles não podem bloquear a adição, que já foi concluída quando o hook é executado. O Claude Code descarta o campo `continue` da saída JSON desses hooks e exibe o restante de forma diferente conforme a origem:3258Os hooks DirectoryAdded não têm controle de decisão. Eles não podem bloquear a adição, que já foi concluída quando o hook é executado. O Claude Code descarta o campo `continue` da saída JSON deles e trata o restante de forma diferente conforme a origem:

3233 3259 

3234* `slash_command`: o Claude Code entrega o `systemMessage` do hook ao Claude como contexto no próximo turno da conversa, em vez de mostrá-lo a você. Uma contagem de hooks com falha aparece na transcrição. A saída completa da falha vai para o log de depuração3260* `slash_command`: o Claude Code entrega o `systemMessage` do hook ao Claude como contexto no próximo turno da conversa, em vez de mostrá-lo a você. Uma contagem de hooks com falha aparece na transcrição. A saída completa das falhas vai para o log de depuração

3235* `register_repo_root`: o Claude Code grava a saída de `systemMessage` e a saída de falhas somente no log de depuração3261* `register_repo_root`: o Claude Code grava a saída de `systemMessage` e a saída das falhas apenas no log de depuração

3236 3262 

3237<h3 id="filechanged">3263<h3 id="filechanged">

3238 FileChanged3264 FileChanged

3239</h3>3265</h3>

3240 3266 

3241É executado quando um arquivo observado muda no disco. O Claude Code detecta mudanças com um observador do sistema de arquivos, e não inspecionando chamadas de ferramenta, então executa o hook independentemente do que alterou o arquivo: uma chamada de ferramenta `Edit` ou `Write`, um script que o Claude executa com `Bash` ou um processo totalmente fora do Claude Code. Um uso comum é recarregar variáveis de ambiente quando arquivos de configuração do projeto mudam.3267É executado quando um arquivo monitorado muda no disco. O Claude Code detecta alterações com um monitor do sistema de arquivos, não inspecionando chamadas de ferramenta, então ele executa o hook independentemente do que alterou o arquivo: uma chamada de ferramenta `Edit` ou `Write`, um script que o Claude executa com `Bash` ou um processo totalmente fora do Claude Code. Um uso comum é recarregar variáveis de ambiente quando arquivos de configuração do projeto mudam.

3242 3268 

3243O `matcher` deste evento tem duas funções:3269O `matcher` deste evento tem duas funções:

3244 3270 

3245* **Construir a lista de observação**: o valor é dividido em `|` e cada segmento é registrado como um nome de arquivo literal no diretório de trabalho, então `".envrc|.env"` observa exatamente esses dois arquivos. Padrões regex não são úteis aqui: um valor como `^\.env` observaria um arquivo literalmente chamado `^\.env`.3271* **Montar a lista de monitoramento**: o valor é dividido em `|` e cada segmento é registrado como um nome de arquivo literal no diretório de trabalho, então `".envrc|.env"` monitora exatamente esses dois arquivos. Padrões regex não são úteis aqui: um valor como `^\.env` monitoraria um arquivo chamado literalmente `^\.env`.

3246* **Filtrar quais hooks são executados**: quando um arquivo observado muda, o mesmo valor filtra quais grupos de hooks são executados usando as [regras de matcher](#matcher-patterns) padrão em relação ao nome base do arquivo alterado.3272* **Filtrar quais hooks são executados**: quando um arquivo monitorado muda, o mesmo valor filtra quais grupos de hooks são executados usando as [regras de matcher](#matcher-patterns) padrão em relação ao nome base do arquivo alterado.

3247 3273 

3248Este exemplo normaliza as terminações de linha em `data.csv` após qualquer alteração, incluindo um comando `Bash` ou um script externo que reescreva o arquivo:3274Este exemplo normaliza as quebras de linha em `data.csv` após qualquer alteração, incluindo um comando `Bash` ou um script externo reescrevendo o arquivo:

3249 3275 

3250```json theme={null}3276```json theme={null}

3251{3277{


3265}3291}

3266```3292```

3267 3293 

3268O hook lê o caminho absoluto do arquivo alterado do campo `file_path` da [entrada JSON](#filechanged-input) no stdin. Sua verificação com `grep` testa exatamente o que o `perl` remove, um CR no final de uma linha, então a execução após uma normalização termina sem tocar no arquivo. Uma verificação mais frouxa entra em loop infinito, porque `perl -i` reescreve o arquivo mesmo quando não substitui nada e o Claude Code executa o hook novamente após cada reescrita. Salve este script em `/path/to/normalize-line-endings.sh` e torne-o executável:3294O hook lê o caminho absoluto do arquivo alterado no campo `file_path` da [entrada JSON](#filechanged-input) em stdin. Sua verificação com `grep` testa a mesma coisa que o `perl` remove, um CR no final de uma linha, então a execução após uma normalização termina sem tocar no arquivo. Uma verificação mais permissiva entra em loop infinito, porque `perl -i` reescreve o arquivo mesmo quando não substitui nada e o Claude Code executa o hook novamente após cada reescrita. Salve este script em `/path/to/normalize-line-endings.sh` e torne-o executável:

3269 3295 

3270```bash theme={null}3296```bash theme={null}

3271#!/bin/bash3297#!/bin/bash


3275fi3301fi

3276```3302```

3277 3303 

3278Para confirmar que o hook funciona, peça ao Claude para acrescentar uma linha CRLF a `data.csv` com um comando `Bash`. O Claude Code executa o hook e o arquivo termina com terminações LF.3304Para confirmar que o hook funciona, peça ao Claude para acrescentar uma linha CRLF a `data.csv` com um comando `Bash`. O Claude Code executa o hook e o arquivo termina com quebras de linha LF.

3279 3305 

3280Para observar arquivos que você não consegue nomear de antemão, retorne [`watchPaths`](#filechanged-output) de um hook para atualizar a lista de observação dinamicamente. O Claude Code inicia o observador somente quando algo nomeia um arquivo a ser observado, então inicialize a lista com um grupo FileChanged cujo matcher nomeie pelo menos um arquivo, ou com um hook [SessionStart](#sessionstart-decision-control) ou [CwdChanged](#cwdchanged) que retorne `watchPaths`. O matcher ainda filtra quais grupos de hooks são executados quando um arquivo observado muda, então deixe o matcher omitido no grupo que lida com caminhos dinâmicos, o que corresponde a todo arquivo observado e não adiciona nada à lista de observação. Um matcher `"*"` também corresponde a todos os arquivos, mas o Claude Code o registra na lista de observação como qualquer outro valor, como um arquivo literal chamado `*`.3306Para monitorar arquivos que você não pode nomear de antemão, retorne [`watchPaths`](#filechanged-output) de um hook para atualizar a lista de monitoramento dinamicamente. O Claude Code inicia o monitor somente quando algo nomeia um arquivo a ser monitorado, então inicialize a lista com um grupo FileChanged cujo matcher nomeie pelo menos um arquivo, ou com um hook [SessionStart](#sessionstart-decision-control) ou [CwdChanged](#cwdchanged) que retorne `watchPaths`. O matcher ainda filtra quais grupos de hooks são executados quando um arquivo monitorado muda, então deixe sem matcher o grupo que lida com caminhos dinâmicos, o que corresponde a todos os arquivos monitorados e não adiciona nada à lista de monitoramento. Um matcher `"*"` também corresponde a todos os arquivos, mas o Claude Code o registra na lista de monitoramento como qualquer outro valor, como um arquivo literal chamado `*`.

3281 3307 

3282Os hooks FileChanged têm acesso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). As variáveis gravadas nesse arquivo persistem nos comandos Bash subsequentes até o próximo evento [CwdChanged](#cwdchanged), quando o Claude Code as limpa.3308Os hooks FileChanged têm acesso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). As variáveis gravadas nesse arquivo persistem nos comandos Bash subsequentes até o próximo evento [CwdChanged](#cwdchanged), quando o Claude Code as limpa.

3283 3309 

3284<h4 id="filechanged-input">3310<h4 id="filechanged-input">

3285 Entrada de FileChanged3311 Entrada do FileChanged

3286</h4>3312</h4>

3287 3313 

3288Além dos [campos de entrada comuns](#common-input-fields), os hooks FileChanged recebem `file_path` e `event`.3314Além dos [campos de entrada comuns](#common-input-fields), os hooks FileChanged recebem `file_path` e `event`.

3289 3315 

3290| Campo | Descrição |3316| Campo | Descrição |

3291| :- | :- |3317| :- | :- |

3292| `file_path` | Caminho absoluto para o arquivo que mudou |3318| `file_path` | Caminho absoluto do arquivo que mudou |

3293| `event` | O que aconteceu: `"change"` para um arquivo modificado, `"add"` para um arquivo criado ou `"unlink"` para um arquivo excluído |3319| `event` | O que aconteceu: `"change"` para um arquivo modificado, `"add"` para um arquivo criado ou `"unlink"` para um arquivo excluído |

3294 3320 

3295```json theme={null}3321```json theme={null}


3304```3330```

3305 3331 

3306<h4 id="filechanged-output">3332<h4 id="filechanged-output">

3307 Saída de FileChanged3333 Saída do FileChanged

3308</h4>3334</h4>

3309 3335 

3310Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, os hooks FileChanged podem retornar `watchPaths` para atualizar dinamicamente quais caminhos de arquivo são observados:3336Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, os hooks FileChanged podem retornar `watchPaths` para atualizar dinamicamente quais caminhos de arquivo são monitorados:

3311 3337 

3312| Campo | Descrição |3338| Campo | Descrição |

3313| :- | :- |3339| :- | :- |

3314| `watchPaths` | Array de caminhos absolutos. Substitui a lista dinâmica de observação atual. Os caminhos da sua configuração de `matcher` são sempre observados. Use isto quando seu script de hook descobrir arquivos adicionais a serem observados com base no arquivo alterado |3340| `watchPaths` | Array de caminhos absolutos. Substitui a lista de monitoramento dinâmica atual. Os caminhos da sua configuração de `matcher` são sempre monitorados. Use isto quando o seu script de hook descobrir arquivos adicionais a serem monitorados com base no arquivo alterado |

3315 3341 

3316Os hooks FileChanged não têm controle de decisão. Eles não podem impedir que a alteração do arquivo ocorra.3342Os hooks FileChanged não têm controle de decisão. Eles não podem impedir que a alteração do arquivo ocorra.

3317 3343 

3318O Claude Code lê `watchPaths` e `systemMessage` da saída JSON desses hooks e descarta `continue`. Em sessões interativas, ele mostra o `systemMessage` como uma breve notificação no terminal. A mensagem não chega ao fluxo de mensagens do SDK.3344O Claude Code lê `watchPaths` e `systemMessage` da saída JSON deles e descarta `continue`. Em sessões interativas, ele mostra a `systemMessage` como uma breve notificação no terminal. A mensagem não chega ao fluxo de mensagens do SDK.

3319 3345 

3320<h3 id="worktreecreate">3346<h3 id="worktreecreate">

3321 WorktreeCreate3347 WorktreeCreate


3330* O Claude Code isola uma [sessão em segundo plano](/docs/pt/agent-view#how-file-edits-are-isolated) em seu próprio worktree3356* O Claude Code isola uma [sessão em segundo plano](/docs/pt/agent-view#how-file-edits-are-isolated) em seu próprio worktree

3331* [`claude remote-control`](/docs/pt/remote-control#start-a-remote-control-session) no modo `worktree` inicia uma sessão em seu próprio worktree3357* [`claude remote-control`](/docs/pt/remote-control#start-a-remote-control-session) no modo `worktree` inicia uma sessão em seu próprio worktree

3332 3358 

3333Quando o Claude executa `git worktree add` por meio da ferramenta Bash em vez de chamar `EnterWorktree`, seu hook WorktreeCreate não é executado. Para inspecionar ou bloquear esse comando, adicione um hook [`PreToolUse`](#pretooluse) com o matcher `Bash`.3359Quando o Claude executa `git worktree add` por meio da ferramenta Bash em vez de chamar `EnterWorktree`, o seu hook WorktreeCreate não é executado. Para inspecionar ou bloquear esse comando, adicione um hook [`PreToolUse`](#pretooluse) com o matcher `Bash`.

3334 3360 

3335Por padrão, o Claude Code cria a cópia de trabalho isolada com `git worktree`. Configurar um hook WorktreeCreate substitui esse comportamento padrão do git, permitindo que você use um sistema de controle de versão diferente, como SVN, Perforce ou Mercurial.3361Por padrão, o Claude Code cria a cópia de trabalho isolada com `git worktree`. Configurar um hook WorktreeCreate substitui esse comportamento padrão do git, permitindo que você use um sistema de controle de versão diferente, como SVN, Perforce ou Mercurial.

3336 3362 

3337Como o hook substitui totalmente o comportamento padrão, o [`.worktreeinclude`](/docs/pt/worktrees#copy-gitignored-files-into-worktrees) não é processado. Se você precisar copiar arquivos de configuração locais como `.env` para o novo worktree, faça isso dentro do seu script de hook.3363Como o hook substitui totalmente o comportamento padrão, [`.worktreeinclude`](/docs/pt/worktrees#copy-gitignored-files-into-worktrees) não é processado. Se você precisar copiar arquivos de configuração locais como `.env` para o novo worktree, faça isso dentro do seu script de hook.

3338 3364 

3339O hook deve retornar o caminho para o diretório do worktree criado. O Claude Code usa esse caminho como diretório de trabalho para a sessão isolada. Consulte [Saída de WorktreeCreate](#worktreecreate-output) para ver como cada tipo de hook retorna o caminho.3365O hook deve retornar o caminho para o diretório do worktree criado. O Claude Code usa esse caminho como diretório de trabalho para a sessão isolada. Consulte [Saída do WorktreeCreate](#worktreecreate-output) para saber como cada tipo de hook retorna o caminho.

3340 3366 

3341O Claude Code age com base no sucesso do hook e no caminho retornado, e descarta `systemMessage` e `continue`.3367O Claude Code age com base no sucesso do hook e no caminho retornado, e descarta `systemMessage` e `continue`.

3342 3368 


3359}3385}

3360```3386```

3361 3387 

3362O hook lê o `name` do worktree a partir da entrada JSON no stdin, faz checkout de uma cópia nova em um novo diretório e imprime o caminho do diretório. O `echo` na última linha é o que o Claude Code lê como o caminho do worktree. Redirecione qualquer outra saída para o stderr para que ela não interfira no caminho.3388O hook lê o `name` do worktree da entrada JSON em stdin, faz checkout de uma cópia nova em um novo diretório e imprime o caminho do diretório. O `echo` na última linha é o que o Claude Code lê como caminho do worktree. Redirecione qualquer outra saída para stderr para que ela não interfira no caminho.

3363 3389 

3364<h4 id="worktreecreate-input">3390<h4 id="worktreecreate-input">

3365 Entrada de WorktreeCreate3391 Entrada do WorktreeCreate

3366</h4>3392</h4>

3367 3393 

3368Além dos [campos de entrada comuns](#common-input-fields), os hooks WorktreeCreate recebem o campo `name`. Este é um identificador slug para o novo worktree, especificado pelo usuário ou gerado automaticamente, por exemplo `bold-oak-a3f2`.3394Além dos [campos de entrada comuns](#common-input-fields), os hooks WorktreeCreate recebem o campo `name`. Este é um identificador slug para o novo worktree, especificado pelo usuário ou gerado automaticamente, por exemplo `bold-oak-a3f2`.


3378```3404```

3379 3405 

3380<h4 id="worktreecreate-output">3406<h4 id="worktreecreate-output">

3381 Saída de WorktreeCreate3407 Saída do WorktreeCreate

3382</h4>3408</h4>

3383 3409 

3384Os hooks WorktreeCreate não usam o modelo padrão de decisão de permitir/bloquear. Em vez disso, o sucesso ou a falha do hook determina o resultado. O hook deve retornar o caminho para o diretório do worktree criado:3410Os hooks WorktreeCreate não usam o modelo padrão de decisão permitir/bloquear. Em vez disso, o sucesso ou a falha do hook determina o resultado. O hook deve retornar o caminho para o diretório do worktree criado:

3385 3411 

3386* **Hooks de comando** (`type: "command"`): imprima o caminho como a última linha não vazia do stdout. O Claude Code remove códigos de escape ANSI antes de ler essa linha, então banners de inicialização do shell impressos antes do seu `echo` são ignorados. Redirecione qualquer outra saída do hook para o stderr.3412* **Hooks de comando** (`type: "command"`): imprima o caminho como a última linha não vazia de stdout. O Claude Code remove códigos de escape ANSI antes de ler essa linha, então banners de inicialização do shell impressos antes do seu `echo` são ignorados. Redirecione qualquer outra saída do hook para stderr.

3387* **Hooks HTTP** (`type: "http"`): retorne `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` no corpo da resposta.3413* **Hooks HTTP** (`type: "http"`): retorne `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` no corpo da resposta.

3388 3414 

3389Se o hook falhar ou não produzir nenhum caminho, a criação do worktree falha com um erro.3415Se o hook falhar ou não produzir um caminho, a criação do worktree falha com um erro.

3390 3416 

3391O Claude Code resolve um caminho relativo em relação ao diretório em que o hook foi executado, eliminando quaisquer segmentos `.` ou `..` nele. Se o caminho resultante não for um diretório em que o Claude Code possa entrar, a sessão imprime um erro indicando o caminho e encerra com o código 1.3417O Claude Code resolve um caminho relativo em relação ao diretório em que o hook foi executado, resolvendo quaisquer segmentos `.` ou `..` nele. Se o caminho resultante não for um diretório em que o Claude Code possa entrar, a sessão imprime um erro indicando o caminho e termina com código 1.

3392 3418 

3393O Claude Code recusa um caminho absoluto que contenha segmentos `.` ou `..`, e qualquer caminho que passe por um link simbólico abaixo da raiz do repositório, porque um link simbólico commitado no repositório poderia redirecionar o worktree para fora dele. O erro indica o componente rejeitado. Retorne um caminho normalizado que não passe por um link simbólico dentro do repositório. Antes da v2.1.216, a criação do worktree seguia o caminho do hook sem essa verificação.3419O Claude Code recusa um caminho absoluto que contenha segmentos `.` ou `..`, e qualquer caminho que passe por um link simbólico abaixo da raiz do repositório, porque um link simbólico incluído em um commit do repositório poderia redirecionar o worktree para fora dele. O erro indica o componente rejeitado. Retorne um caminho normalizado que não passe por um link simbólico dentro do repositório. Antes da v2.1.216, a criação do worktree seguia o caminho do hook sem essa verificação.

3394 3420 

3395<h3 id="worktreeremove">3421<h3 id="worktreeremove">

3396 WorktreeRemove3422 WorktreeRemove


3398 3424 

3399É executado quando o Claude Code limpa um worktree que o seu hook [`WorktreeCreate`](#worktreecreate) criou. O evento é disparado quando:3425É executado quando o Claude Code limpa um worktree que o seu hook [`WorktreeCreate`](#worktreecreate) criou. O evento é disparado quando:

3400 3426 

3401* Você sai de uma [sessão de worktree](/docs/pt/worktrees#start-claude-in-a-worktree) interativa e opta por remover o worktree quando o Claude Code pergunta3427* Você sai de uma [sessão de worktree](/docs/pt/worktrees#start-claude-in-a-worktree) interativa e escolhe remover o worktree quando o Claude Code solicita

3402* Você sai de uma sessão de worktree interativa que não [nomeou](/docs/pt/sessions#name-your-sessions), o Claude Code não encontra arquivos alterados ou não rastreados, e remove o worktree sem perguntar3428* Você sai de uma sessão de worktree interativa que não [nomeou](/docs/pt/sessions#name-your-sessions), o Claude Code não encontra arquivos alterados ou não rastreados e remove o worktree sem solicitar confirmação

3403* Você exclui uma [sessão em segundo plano](/docs/pt/agent-view#what-deleting-a-session-removes) que é executada no worktree3429* Você exclui uma [sessão em segundo plano](/docs/pt/agent-view#what-deleting-a-session-removes) que é executada no worktree

3404* Você pede ao Claude para sair e remover o worktree durante uma sessão, e o Claude o remove com a ferramenta [`ExitWorktree`](/docs/pt/tools-reference)3430* Você pede ao Claude para sair e remover o worktree durante uma sessão, e o Claude o remove com a ferramenta [`ExitWorktree`](/docs/pt/tools-reference)

3405* Uma sessão que [`claude remote-control`](/docs/pt/remote-control#start-a-remote-control-session) iniciou no modo `worktree` termina sem travar, e o Claude Code não encontra arquivos alterados ou não rastreados nem novos commits em seu worktree3431* Uma sessão que [`claude remote-control`](/docs/pt/remote-control#start-a-remote-control-session) iniciou no modo `worktree` termina sem falhar, e o Claude Code não encontra arquivos alterados ou não rastreados nem novos commits em seu worktree

3406* Você para o `claude remote-control` enquanto sessões que ele iniciou no modo `worktree` ainda estão em execução, e o Claude Code não encontra arquivos alterados ou não rastreados nem novos commits em seus worktrees3432* Você interrompe `claude remote-control` enquanto sessões que ele iniciou no modo `worktree` ainda estão em execução, e o Claude Code não encontra arquivos alterados ou não rastreados nem novos commits em seus worktrees

3407 3433 

3408Quando um subagente ou um agente de fluxo de trabalho termina, o Claude Code mantém o worktree que seu hook WorktreeCreate criou para ele e não executa seu hook WorktreeRemove. Remova esses worktrees você mesmo quando o trabalho estiver concluído.3434Quando um subagente ou um agente de fluxo de trabalho termina, o Claude Code mantém o worktree que o seu hook WorktreeCreate criou para ele e não executa o seu hook WorktreeRemove. Remova esses worktrees você mesmo quando o trabalho estiver concluído.

3409 3435 

3410O Claude Code não pede confirmação antes de seu hook ser executado para uma chamada `ExitWorktree` ou uma limpeza do `claude remote-control`. `ExitWorktree` se recusa a remover um worktree criado por hook, a menos que a chamada passe [`discard_changes: true`](/docs/pt/agent-sdk/typescript#exitworktree), o que torna seu hook a última verificação nesse caminho.3436O Claude Code não solicita confirmação antes de o seu hook ser executado para uma chamada `ExitWorktree` ou uma limpeza do `claude remote-control`. `ExitWorktree` se recusa a remover um worktree criado por hook, a menos que a chamada passe [`discard_changes: true`](/docs/pt/agent-sdk/typescript#exitworktree), o que torna o seu hook a última verificação nesse caminho.

3411 3437 

3412O Claude Code usa o git para procurar arquivos alterados ou não rastreados, então não encontra nenhum em um worktree que não seja um checkout git nem esteja dentro de um, mesmo quando o diretório contém trabalho não commitado. Verifique esse trabalho no seu hook WorktreeRemove antes que ele exclua qualquer coisa.3438O Claude Code usa o git para procurar arquivos alterados ou não rastreados, então não encontra nenhum em um worktree que não seja um checkout git nem esteja dentro de um, mesmo quando o diretório contém trabalho sem commit. Verifique esse trabalho no seu hook WorktreeRemove antes que ele exclua qualquer coisa.

3413 3439 

3414Para worktrees baseados em git, o Claude Code faz a limpeza automaticamente com `git worktree remove`. Se você configurou um hook WorktreeCreate, combine-o com um hook WorktreeRemove para controlar a limpeza:3440Para 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:

3415 3441 

3416* **Sem hook WorktreeRemove**: o Claude Code recorre ao git para uma remoção na saída ou por meio de `ExitWorktree`, e mantém o worktree quando o `claude remote-control` faz a limpeza:3442* **Sem hook WorktreeRemove**: o Claude Code recorre ao git para uma remoção ao sair ou por meio de `ExitWorktree`, e mantém o worktree quando o `claude remote-control` faz a limpeza:

3417 * **Você sai de uma sessão de worktree, ou o Claude chama `ExitWorktree`**: o Claude Code remove o caminho que seu hook WorktreeCreate retornou como `git worktree remove --force` faria, de modo que um worktree que o git reconhece é removido. Um worktree que o git não reconhece, por exemplo um que seu hook criou com um sistema de controle de versão que não seja git, permanece no disco.3443 * **Você sai de uma sessão de worktree, ou o Claude chama `ExitWorktree`**: o Claude Code remove o caminho que o seu hook WorktreeCreate retornou como `git worktree remove --force` faria, então um worktree que o git reconhece é removido. Um worktree que o git não reconhece, por exemplo um que o seu hook criou com um sistema de controle de versão que não seja git, permanece no disco.

3418 * **O `claude remote-control` limpa o worktree de uma sessão**: o worktree permanece no disco, e o terminal que executa `claude remote-control` mostra `worktree removal failed, kept: <path>`.3444 * **`claude remote-control` limpa o worktree de uma sessão**: o worktree permanece no disco, e o terminal que executa `claude remote-control` mostra `worktree removal failed, kept: <path>`.

3419 * **Você exclui uma sessão em segundo plano**: consulte [O que a exclusão de uma sessão remove](/docs/pt/agent-view#what-deleting-a-session-removes).3445 * **Você exclui uma sessão em segundo plano**: consulte [O que a exclusão de uma sessão remove](/docs/pt/agent-view#what-deleting-a-session-removes).

3420* **O hook sai com 0**: o worktree conta como removido. O Claude Code não lê mais nada do hook, então certifique-se de que seu hook excluiu o diretório.3446* **O hook termina com 0**: o worktree conta como removido. O Claude Code não lê mais nada do hook, então certifique-se de que o seu hook excluiu o diretório.

3421* **O hook sai com código diferente de zero**: a remoção falha se o diretório em `worktree_path` ainda existir depois, e o worktree permanece no disco sem fallback para o git. Um hook que excluiu o diretório antes de sair com código diferente de zero conta como removido. Para saber como a falha é relatada, consulte [Entrada de WorktreeRemove](#worktreeremove-input).3447* **O hook termina com código diferente de zero**: a remoção falha se o diretório em `worktree_path` ainda existir depois, e o worktree permanece no disco sem fallback para o git. Um hook que excluiu o diretório antes de terminar com código diferente de zero conta como removido. Para saber como a falha é relatada, consulte [Entrada do WorktreeRemove](#worktreeremove-input).

3422 3448 

3423O Claude Code nunca exclui um branch pertencente a um worktree criado por hook, porque ele só conhece o caminho que seu hook WorktreeCreate retornou. Se o seu hook WorktreeCreate cria um branch, exclua-o no seu hook WorktreeRemove.3449O Claude Code nunca exclui um branch pertencente a um worktree criado por hook, porque ele só conhece o caminho que o seu hook WorktreeCreate retornou. Se o seu hook WorktreeCreate criar um branch, exclua-o no seu hook WorktreeRemove.

3424 3450 

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

3426 3452 

3427Para a exclusão de uma sessão em segundo plano, o Claude Code verifica o caminho do worktree armazenado antes de executar o hook e recusa um caminho que seja um link simbólico ou passe por um abaixo da raiz do repositório. Nesse caminho, o hook é executado para um worktree que ainda contém arquivos somente quando você confirma a exclusão na [visualização de agentes](/docs/pt/agent-view#what-deleting-a-session-removes); para esse worktree, [`claude rm`](/docs/pt/agent-view#manage-sessions-from-the-shell) mantém a sessão e o worktree. Antes da v2.1.216, o hook era executado no caminho armazenado sem essas verificações.3453Para a exclusão de uma sessão em segundo plano, o Claude Code verifica o caminho do worktree armazenado antes de executar o hook e recusa um caminho que seja um link simbólico ou passe por um abaixo da raiz do repositório. Nesse caminho, o hook é executado para um worktree que ainda contém arquivos somente quando você confirma a exclusão na [visualização de agentes](/docs/pt/agent-view#what-deleting-a-session-removes); para esse worktree, [`claude rm`](/docs/pt/agent-view#manage-sessions-from-the-shell) mantém a sessão e o worktree. Antes da v2.1.216, o hook era executado no caminho armazenado sem essas verificações.

3428 3454 

3429O Claude Code passa o caminho retornado por WorktreeCreate como `worktree_path` na entrada do hook. Este exemplo lê esse caminho e remove o diretório:3455O Claude Code passa o caminho retornado pelo WorktreeCreate como `worktree_path` na entrada do hook. Este exemplo lê esse caminho e remove o diretório:

3430 3456 

3431```json theme={null}3457```json theme={null}

3432{3458{


3446```3472```

3447 3473 

3448<h4 id="worktreeremove-input">3474<h4 id="worktreeremove-input">

3449 Entrada de WorktreeRemove3475 Entrada do WorktreeRemove

3450</h4>3476</h4>

3451 3477 

3452Além dos [campos de entrada comuns](#common-input-fields), os hooks WorktreeRemove recebem o campo `worktree_path`, que é o caminho absoluto para o worktree que está sendo removido.3478Além dos [campos de entrada comuns](#common-input-fields), os hooks WorktreeRemove recebem o campo `worktree_path`, que é o caminho absoluto para o worktree sendo removido.

3453 3479 

3454```json theme={null}3480```json theme={null}

3455{3481{


3461}3487}

3462```3488```

3463 3489 

3464O código de saída de um hook WorktreeRemove decide o resultado. Quando um hook sai com código diferente de zero e o diretório em `worktree_path` ainda existe depois, a remoção falha:3490O código de saída de um hook WorktreeRemove decide o resultado. Quando um hook termina com código diferente de zero e o diretório em `worktree_path` ainda existe depois, a remoção falha:

3465 3491 

3466* O worktree permanece no disco, e o comando do hook e o stderr vão para o [log de depuração](#debug-hooks).3492* O worktree permanece no disco, e o comando e o stderr do hook vão para o [log de depuração](#debug-hooks).

3467* Se você estava excluindo uma sessão em segundo plano, a sessão também permanece. A mensagem de recusa no [agent view](/docs/pt/agent-view#what-deleting-a-session-removes) informa como o hook terminou, como `exited 1`, cita o início do stderr e diz se excluir a sessão novamente remove o diretório mesmo assim.3493* Se você estava excluindo uma sessão em segundo plano, a sessão também permanece. A mensagem de recusa na [visualização de agentes](/docs/pt/agent-view#what-deleting-a-session-removes) informa como o hook terminou, como `exited 1`, cita o início do seu stderr e diz se excluir a sessão novamente remove o diretório mesmo assim.

3468* Se o `claude remote-control` estava limpando o worktree de uma sessão, o terminal que o executa mostra `worktree removal failed, kept: <path>`.3494* Se o `claude remote-control` estava limpando o worktree de uma sessão, o terminal que o executa mostra `worktree removal failed, kept: <path>`.

3469 3495 

3470<h3 id="precompact">3496<h3 id="precompact">


3478| Matcher | Quando é disparado |3504| Matcher | Quando é disparado |

3479| :- | :- |3505| :- | :- |

3480| `manual` | `/compact` |3506| `manual` | `/compact` |

3481| `auto` | Compactação automática quando a conversa atinge a [janela de compactação automática](/docs/pt/model-config#set-the-auto-compact-window) |3507| `auto` | Compactação automática quando a conversa atinge a [janela de compactação automática](/docs/pt/model-config#set-the-auto-compact-window), e [compactação por inatividade](/docs/pt/settings-reference#idlecompaction) |

3482 3508 

3483Saia com o código 2 para bloquear a compactação. Para um `/compact` manual, a mensagem do stderr é mostrada ao usuário. Você também pode bloquear retornando JSON com `"decision": "block"`.3509Termine com código 2 para bloquear a compactação. Para um `/compact` manual, a mensagem de stderr é mostrada ao usuário. Você também pode bloquear retornando JSON com `"decision": "block"`.

3484 3510 

3485Bloquear a compactação automática tem efeitos diferentes dependendo de quando ela é disparada. Se a compactação foi acionada proativamente antes do limite de contexto, o Claude Code a ignora e a conversa continua sem compactação. Se a compactação foi acionada para se recuperar de um erro de limite de contexto já retornado pela API, o erro subjacente aparece e a requisição atual falha.3511Bloquear a compactação automática tem efeitos diferentes dependendo de quando ela é disparada. Se a compactação foi acionada proativamente antes do limite de contexto, o Claude Code a ignora e a conversa continua sem compactação. Se a compactação foi acionada para se recuperar de um erro de limite de contexto já retornado pela API, o erro subjacente aparece e a requisição atual falha.

3486 3512 

3487O Claude Code descarta os campos `systemMessage` e `continue` de um hook PreCompact.3513O Claude Code descarta os campos `systemMessage` e `continue` de um hook PreCompact.

3488 3514 

3489<h4 id="precompact-input">3515<h4 id="precompact-input">

3490 Entrada de PreCompact3516 Entrada do PreCompact

3491</h4>3517</h4>

3492 3518 

3493Além dos [campos de entrada comuns](#common-input-fields), os hooks PreCompact recebem `trigger` e `custom_instructions`. Para `manual`, `custom_instructions` contém o que o usuário passa para `/compact` e é `null` quando ele não passa nada. Para `auto`, `custom_instructions` é `null`.3519Além dos [campos de entrada comuns](#common-input-fields), os hooks PreCompact recebem `trigger` e `custom_instructions`. Para `manual`, `custom_instructions` contém o que o usuário passa para `/compact` e é `null` quando ele não passa nada. Para `auto`, `custom_instructions` é `null`.


3507 PostCompact3533 PostCompact

3508</h3>3534</h3>

3509 3535 

3510É executado após o Claude Code concluir uma operação de compactação. Use este evento para reagir ao novo estado compactado, por exemplo para registrar em log o resumo gerado ou atualizar um estado externo. O Claude Code descarta os campos `systemMessage` e `continue` de um hook PostCompact.3536É executado depois que o Claude Code conclui uma operação de compactação. Use este evento para reagir ao novo estado compactado, por exemplo para registrar em log o resumo gerado ou atualizar um estado externo. O Claude Code descarta os campos `systemMessage` e `continue` de um hook PostCompact.

3511 3537 

3512Os mesmos valores de matcher se aplicam como para `PreCompact`:3538Os mesmos valores de matcher se aplicam como no `PreCompact`:

3513 3539 

3514| Matcher | Quando é disparado |3540| Matcher | Quando é disparado |

3515| :- | :- |3541| :- | :- |

3516| `manual` | Após `/compact` |3542| `manual` | Após `/compact` |

3517| `auto` | Após a compactação automática quando a conversa atinge a [janela de compactação automática](/docs/pt/model-config#set-the-auto-compact-window) |3543| `auto` | Após a compactação automática quando a conversa atinge a [janela de compactação automática](/docs/pt/model-config#set-the-auto-compact-window), e após a [compactação por inatividade](/docs/pt/settings-reference#idlecompaction) |

3518 3544 

3519<h4 id="postcompact-input">3545<h4 id="postcompact-input">

3520 Entrada de PostCompact3546 Entrada do PostCompact

3521</h4>3547</h4>

3522 3548 

3523Além dos [campos de entrada comuns](#common-input-fields), os hooks PostCompact recebem `trigger` e `compact_summary`. O campo `compact_summary` contém o resumo da conversa gerado pela operação de compactação.3549Além dos [campos de entrada comuns](#common-input-fields), os hooks PostCompact recebem `trigger` e `compact_summary`. O campo `compact_summary` contém o resumo da conversa gerado pela operação de compactação.


3541 3567 

3542É executado antes de o Claude Code aplicar uma troca de modelo que você ou um cliente solicitou. Use-o para bloquear uma troca, exigir confirmação ou mostrar quanto a troca custará antes que ela aconteça.3568É executado antes de o Claude Code aplicar uma troca de modelo que você ou um cliente solicitou. Use-o para bloquear uma troca, exigir confirmação ou mostrar quanto a troca custará antes que ela aconteça.

3543 3569 

3544O PreModelSwitch requer o Claude Code v2.1.251 ou posterior. O Claude Code o executa para estas requisições:3570O PreModelSwitch requer o Claude Code v2.1.251 ou posterior. O Claude Code o executa para estas solicitações:

3545 3571 

3546* `/model <name>` e o seletor do `/model`3572* `/model <name>` e o seletor do `/model`

3547* O seletor de modelo `Option+P` ou `Alt+P`3573* O seletor de modelo `Option+P` ou `Alt+P`


3551 3577 

3552O Claude Code não executa hooks PreModelSwitch para trocas que ele faz por conta própria, como um [fallback automático de modelo](/docs/pt/model-config#automatic-model-fallback) ou a restauração do modelo quando você retoma uma sessão. Essas alterações chegam apenas ao [PostModelSwitch](#postmodelswitch).3578O Claude Code não executa hooks PreModelSwitch para trocas que ele faz por conta própria, como um [fallback automático de modelo](/docs/pt/model-config#automatic-model-fallback) ou a restauração do modelo quando você retoma uma sessão. Essas alterações chegam apenas ao [PostModelSwitch](#postmodelswitch).

3553 3579 

3554O Claude Code compara o matcher com o nome canônico do modelo para o qual a sessão está trocando, ignorando qualquer sufixo `[1m]`. Um alias como `opus`, um ID de modelo com data e um ID específico de provedor, como um ID de modelo do Amazon Bedrock, correspondem todos ao único nome canônico para o qual são resolvidos, então `claude-opus-5` cobre todas as grafias do Opus 5.3580O Claude Code compara o matcher com o nome canônico do modelo para o qual a sessão está mudando, ignorando qualquer sufixo `[1m]`. Um alias como `opus`, um ID de modelo com data e um ID específico de provedor, como um ID de modelo do Amazon Bedrock, correspondem todos ao único nome canônico para o qual são resolvidos, então `claude-opus-5` cobre todas as grafias do Opus 5.

3555 3581 

3556Quando o Claude Code não consegue determinar um nome canônico para o destino, por exemplo um ID de modelo personalizado que só o seu [gateway de LLM](/docs/pt/llm-gateway) conhece, ele executa todos os hooks PreModelSwitch independentemente do matcher. Um hook que bloqueia deve, portanto, verificar `to_model` na sua entrada em vez de depender apenas do matcher.3582Quando o Claude Code não consegue determinar um nome canônico para o destino, por exemplo um ID de modelo personalizado que só o seu [gateway de LLM](/docs/pt/llm-gateway) conhece, ele executa todos os hooks PreModelSwitch independentemente do matcher. Um hook que bloqueia deve, portanto, verificar `to_model` na sua entrada em vez de confiar apenas no matcher.

3557 3583 

3558Escreva o matcher como um nome exato, uma lista separada por `|` como `claude-opus-4-6|claude-opus-5`, ou uma expressão regular como `.*opus.*`. Este exemplo usa um matcher de nome exato e também verifica `to_model` na entrada do hook, de modo que recusa uma troca para o Opus 4.6 saindo com o código 2 e deixa passar qualquer outro destino:3584Escreva o matcher como um nome exato, uma lista separada por `|` como `claude-opus-4-6|claude-opus-5`, ou uma expressão regular como `.*opus.*`. Este exemplo usa um matcher de nome exato e também verifica `to_model` na entrada do hook, então recusa uma troca para o Opus 4.6 terminando com código 2 e deixa passar qualquer outro destino:

3559 3585 

3560<Tabs>3586<Tabs>

3561 <Tab title="macOS/Linux">3587 <Tab title="macOS/Linux">


3621 </Tab>3647 </Tab>

3622</Tabs>3648</Tabs>

3623 3649 

3624Para confirmar que o hook funciona, execute `/model claude-opus-4-6` a partir de uma sessão que esteja usando um modelo diferente. O Claude Code mantém o modelo atual e informa que um hook PreModelSwitch bloqueou a troca, com a sua mensagem como motivo.3650Para confirmar que o hook funciona, execute `/model claude-opus-4-6` a partir de uma sessão que esteja executando um modelo diferente. O Claude Code mantém o modelo atual e informa que um hook PreModelSwitch bloqueou a troca, com a sua mensagem como motivo.

3625 3651 

3626<h4 id="premodelswitch-input">3652<h4 id="premodelswitch-input">

3627 Entrada de PreModelSwitch3653 Entrada do PreModelSwitch

3628</h4>3654</h4>

3629 3655 

3630Além dos [campos de entrada comuns](#common-input-fields), os hooks PreModelSwitch recebem os campos desta tabela. Os últimos cinco descrevem quanto custa reenviar a conversa para o novo modelo, para que um hook possa mostrar esse valor antes que a troca aconteça.3656Além dos [campos de entrada comuns](#common-input-fields), os hooks PreModelSwitch recebem os campos desta tabela. Os últimos cinco descrevem quanto custa reenviar a conversa para o novo modelo, para que um hook possa mostrar esse valor antes que a troca aconteça.


3632| Campo | Tipo | Descrição |3658| Campo | Tipo | Descrição |

3633| :- | :- | :- |3659| :- | :- | :- |

3634| `from_model` | string | ID do modelo do qual a troca parte |3660| `from_model` | string | ID do modelo do qual a troca parte |

3635| `to_model` | string | ID do modelo para o qual a troca muda. O matcher é comparado com o nome canônico deste modelo |3661| `to_model` | string | ID do modelo para o qual a troca vai. O matcher compara com o nome canônico deste modelo |

3636| `requested_model` | string ou `null` | O modelo indicado na requisição: um alias como `opus`, um ID de modelo completo, ou `null` quando a requisição foi para o modelo padrão |3662| `requested_model` | string ou `null` | O modelo que a solicitação nomeou: um alias como `opus`, um ID de modelo completo ou `null` quando a solicitação era para o modelo padrão |

3637| `source` | string | De onde veio a requisição: `"command"` para `/model <name>`, a configuração Model em `/config` ou a ativação do modo rápido; `"picker"` para um seletor de modelo; `"sdk"` para uma requisição `set_model`, ou uma alteração de modelo em uma requisição `apply_flag_settings`, de um host do Agent SDK ou do Remote Control |3663| `source` | string | De onde veio a solicitação: `"command"` para `/model <name>`, a configuração Model em `/config` ou a ativação do modo rápido; `"picker"` para um seletor de modelo; `"sdk"` para uma requisição `set_model`, ou uma alteração de modelo em uma requisição `apply_flag_settings`, de um host do Agent SDK ou do Remote Control |

3638| `context_tokens` | number | Tokens que a próxima requisição reenvia como seu prompt: os tokens de entrada, de leitura de cache, de criação de cache e de saída da última resposta na conversa principal, somados. `0` antes da primeira resposta |3664| `context_tokens` | number | Tokens que a próxima requisição reenvia como seu prompt: os tokens de entrada, de leitura de cache, de criação de cache e de saída da última resposta na conversa principal, somados. `0` antes da primeira resposta |

3639| `prompt_cache_warm` | boolean | Se o cache de prompt do modelo atual provavelmente ainda está aquecido, o que significa que a troca o perde |3665| `prompt_cache_warm` | boolean | Se o cache de prompt do modelo atual provavelmente ainda está aquecido, o que significa que a troca o perde |

3640| `cache_ttl` | string | [Tempo de vida do cache de prompt](/docs/pt/prompt-caching#cache-lifetime) que o Claude Code solicita para esta sessão: `"5m"` ou `"1h"` |3666| `cache_ttl` | string | [Tempo de vida do cache de prompt](/docs/pt/prompt-caching#cache-lifetime) que o Claude Code solicita para esta sessão: `"5m"` ou `"1h"` |

3641| `estimated_cache_write_usd` | number | Custo estimado em dólares americanos de gravar `context_tokens` no cache de prompt em `to_model` na tarifa de `cache_ttl`, excluindo a próxima resposta. O servidor pode não precisar armazenar em cache todo o contexto novamente, então trate-o como uma estimativa |3667| `estimated_cache_write_usd` | number | Custo estimado em dólares americanos de gravar `context_tokens` no cache de prompt em `to_model` na taxa de `cache_ttl`, excluindo a próxima resposta. O servidor pode não precisar armazenar em cache novamente todo o contexto, então trate-o como uma estimativa |

3642| `pricing` | string | Como o Claude Code precificou `estimated_cache_write_usd`: `"configured"` nas tarifas próprias da sua organização quando ela as configurou, `"catalog"` no preço de tabela, ou `"default"` quando `to_model` não tem preço conhecido e o Claude Code assumiu uma tarifa padrão |3668| `pricing` | string | Como o Claude Code precificou `estimated_cache_write_usd`: `"configured"` nas taxas da sua organização quando ela as configurou, `"catalog"` no preço de tabela ou `"default"` quando `to_model` não tem preço conhecido e o Claude Code assumiu uma taxa padrão |

3643 3669 

3644Este exemplo mostra a entrada para `/model opus` em uma sessão que está usando o Sonnet 5:3670Este exemplo mostra a entrada para `/model opus` em uma sessão que executa o Sonnet 5:

3645 3671 

3646```json theme={null}3672```json theme={null}

3647{3673{


3662```3688```

3663 3689 

3664<h4 id="premodelswitch-decision-control">3690<h4 id="premodelswitch-decision-control">

3665 Controle de decisão de PreModelSwitch3691 Controle de decisão do PreModelSwitch

3666</h4>3692</h4>

3667 3693 

3668Os hooks `PreModelSwitch` podem cancelar a troca, pedir ao usuário que a confirme ou deixá-la prosseguir. O código de saída 2 ou um `decision: "block"` de nível superior cancela a troca.3694Os hooks `PreModelSwitch` podem cancelar a troca, pedir ao usuário que a confirme ou deixá-la prosseguir. O código de saída 2 ou um `decision: "block"` de nível superior cancela a troca.


3671 3697 

3672| Campo | Descrição |3698| Campo | Descrição |

3673| :- | :- |3699| :- | :- |

3674| `permissionDecision` | `"allow"` prossegue e pula a [confirmação que o Claude Code mostra enquanto o cache de prompt está aquecido](/docs/pt/prompt-caching#switching-models). `"deny"` cancela a troca. `"ask"` solicita ao usuário que a confirme |3700| `permissionDecision` | `"allow"` prossegue e ignora a [confirmação que o Claude Code mostra enquanto o cache de prompt está aquecido](/docs/pt/prompt-caching#switching-models). `"deny"` cancela a troca. `"ask"` pede ao usuário que a confirme |

3675| `permissionDecisionReason` | Para `"deny"`, mostrado ao usuário como o motivo pelo qual a troca foi bloqueada, ou retornado como o erro de uma requisição `set_model`. Para `"ask"`, mostrado no prompt de confirmação. Ignorado para `"allow"` |3701| `permissionDecisionReason` | Para `"deny"`, mostrado ao usuário como o motivo pelo qual a troca foi bloqueada, ou retornado como o erro de uma requisição `set_model`. Para `"ask"`, mostrado no prompt de confirmação. Ignorado para `"allow"` |

3676 3702 

3677Somente o `/model` em uma sessão interativa pode mostrar o prompt de `"ask"`. Em todas as outras superfícies, incluindo o modo não interativo com a flag `-p`, `/config` e requisições `set_model`, o Claude Code trata `"ask"` como uma recusa.3703Somente o `/model` em uma sessão interativa pode mostrar o prompt de `"ask"`. Em todas as outras superfícies, incluindo o modo não interativo com a flag `-p`, `/config` e requisições `set_model`, o Claude Code trata `"ask"` como uma recusa.


3690 3716 

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

3692 3718 

3693O Claude Code mostra ao usuário qualquer `systemMessage` que o seu hook retorne, independentemente da decisão, então um hook de relatório de custo pode retornar `{"systemMessage": "..."}` e sair com 0.3719O Claude Code mostra ao usuário qualquer `systemMessage` que o seu hook retorne, independentemente da decisão, então um hook de relatório de custos pode retornar `{"systemMessage": "..."}` e terminar com 0.

3694 3720 

3695Um hook PreModelSwitch que não responde antes do seu timeout bloqueia a troca. Para saber o que um timeout faz em outros eventos, consulte [Timeouts](#timeouts). O timeout padrão para este evento é de 30 segundos. O `PreModelSwitch` executa apenas hooks `command`, `http` e `mcp_tool`, portanto os padrões de `prompt` e `agent` não se aplicam.3721Um hook PreModelSwitch que não responde antes do seu timeout bloqueia a troca. Para saber o que um timeout faz em outros eventos, consulte [Timeouts](#timeouts). O timeout padrão para este evento é de 30 segundos. O `PreModelSwitch` executa apenas hooks `command`, `http` e `mcp_tool`, então os padrões de `prompt` e `agent` não se aplicam.

3696 3722 

3697Um hook que sai com um código diferente de 0 ou 2 e não imprime nenhuma decisão JSON é um erro não bloqueante, conforme descrito em [Outros códigos de saída](#other-exit-codes).3723Um hook que termina com um código diferente de 0 ou 2 e não imprime nenhuma decisão JSON é um erro não bloqueante, conforme descrito em [Outros códigos de saída](#other-exit-codes).

3698 3724 

3699<h3 id="postmodelswitch">3725<h3 id="postmodelswitch">

3700 PostModelSwitch3726 PostModelSwitch

3701</h3>3727</h3>

3702 3728 

3703É executado após a alteração do modelo da sessão. Use-o para dar ao Claude orientações específicas do modelo sem editar cada CLAUDE.md, por exemplo uma instrução válida para toda a organização que se aplica a determinados modelos.3729É executado depois que o modelo da sessão muda. Use-o para dar ao Claude orientações específicas do modelo sem editar cada CLAUDE.md, por exemplo uma instrução para toda a organização que se aplica a determinados modelos.

3704 3730 

3705O PostModelSwitch requer o Claude Code v2.1.251 ou posterior. Ele não pode bloquear, porque o modelo já foi alterado. O Claude Code executa hooks PostModelSwitch após qualquer uma destas alterações:3731O PostModelSwitch requer o Claude Code v2.1.251 ou posterior. Ele não pode bloquear, porque o modelo já mudou. O Claude Code executa hooks PostModelSwitch após qualquer uma destas alterações:

3706 3732 

3707* Uma troca que você ou um cliente solicitou3733* Uma troca que você ou um cliente solicitou

3708* Um [fallback automático de modelo](/docs/pt/model-config#automatic-model-fallback), que altera o modelo da sessão3734* Um [fallback automático de modelo](/docs/pt/model-config#automatic-model-fallback), que altera o modelo da sessão

3709* Uma configuração como [`opusplan`](/docs/pt/model-config#opusplan-model-setting) entrando ou saindo do modo de planejamento3735* Uma configuração como [`opusplan`](/docs/pt/model-config#opusplan-model-setting) entrando ou saindo do modo de planejamento

3710* O Claude Code restaurando o modelo quando você retoma uma sessão3736* O Claude Code restaurando o modelo quando você retoma uma sessão

3711 3737 

3712O Claude Code não executa hooks PostModelSwitch quando um modelo de uma [cadeia de modelos de fallback](/docs/pt/model-config#fallback-model-chains) atende a um turno, porque essa substituição dura um turno e deixa o modelo da sessão inalterado.3738O Claude Code não executa hooks PostModelSwitch quando um modelo de uma [cadeia de modelos de fallback](/docs/pt/model-config#fallback-model-chains) atende um turno, porque essa substituição dura um turno e deixa o modelo da sessão inalterado.

3713 3739 

3714O matcher segue as mesmas regras que o [PreModelSwitch](#premodelswitch): o Claude Code o compara com o nome canônico do modelo para o qual a sessão trocou.3740O matcher segue as mesmas regras do [PreModelSwitch](#premodelswitch): o Claude Code o compara com o nome canônico do modelo para o qual a sessão mudou.

3715 3741 

3716Este exemplo adiciona orientações sempre que o modelo da sessão muda para qualquer modelo Opus:3742Este exemplo adiciona orientações sempre que o modelo da sessão muda para qualquer modelo Opus:

3717 3743 


3733}3759}

3734```3760```

3735 3761 

3736Para confirmar que o hook funciona, troque para um modelo Opus a partir de uma sessão que esteja usando um modelo diferente, por exemplo execute `/model opus` a partir de uma sessão do Sonnet, e depois pergunte ao Claude que orientações ele tem sobre o modelo atual.3762Para confirmar que o hook funciona, mude para um modelo Opus a partir de uma sessão que esteja executando um modelo diferente, por exemplo execute `/model opus` em uma sessão do Sonnet, e depois pergunte ao Claude quais orientações ele tem sobre o modelo atual.

3737 3763 

3738<h4 id="postmodelswitch-input">3764<h4 id="postmodelswitch-input">

3739 Entrada de PostModelSwitch3765 Entrada do PostModelSwitch

3740</h4>3766</h4>

3741 3767 

3742Os hooks PostModelSwitch recebem os mesmos campos que o [PreModelSwitch](#premodelswitch-input), com `hook_event_name` definido como `"PostModelSwitch"` e mais dois valores de `source`: `"auto"` para um fallback automático ou outra alteração que o Claude Code fez por conta própria, e `"resume"` para o modelo restaurado quando você retoma uma sessão.3768Os hooks PostModelSwitch recebem os mesmos campos que o [PreModelSwitch](#premodelswitch-input), com `hook_event_name` definido como `"PostModelSwitch"` e mais dois valores de `source`: `"auto"` para um fallback automático ou outra alteração que o Claude Code fez por conta própria, e `"resume"` para o modelo restaurado quando você retoma uma sessão.

3743 3769 

3744`requested_model` é `null` quando `source` é `"auto"`. Quando `source` é `"resume"`, ele é a configuração de modelo salva que o Claude Code restaurou.3770`requested_model` é `null` quando `source` é `"auto"`. Quando `source` é `"resume"`, é a configuração de modelo salva que o Claude Code restaurou.

3745 3771 

3746<h4 id="postmodelswitch-decision-control">3772<h4 id="postmodelswitch-decision-control">

3747 Controle de decisão de PostModelSwitch3773 Controle de decisão do PostModelSwitch

3748</h4>3774</h4>

3749 3775 

3750O Claude Code pega o [stdout em texto simples](#exit-code-0) do seu hook na saída 0, ou o `additionalContext` da saída JSON, e o entrega ao Claude com a próxima requisição após a troca. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, você pode retornar:3776O Claude Code pega o [stdout em texto simples](#exit-code-0) do seu hook ao terminar com 0, ou `additionalContext` da saída JSON, e o entrega ao Claude com a próxima requisição após a troca. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, você pode retornar:

3751 3777 

3752| Campo | Descrição |3778| Campo | Descrição |

3753| :- | :- |3779| :- | :- |

3754| `additionalContext` | String adicionada ao contexto do Claude com a próxima requisição. Consulte [Adicionar contexto para o Claude](#add-context-for-claude) |3780| `additionalContext` | String adicionada ao contexto do Claude com a próxima requisição. Consulte [Adicionar contexto para o Claude](#add-context-for-claude) |

3755 3781 

3756Se o hook não tiver terminado em até cinco segundos após você enviar o próximo prompt, o Claude Code envia essa requisição sem a saída e a anexa à requisição seguinte. Se o modelo mudar várias vezes antes da próxima requisição, o Claude Code entrega apenas a saída para o modelo de destino da última troca.3782Se o hook não tiver terminado dentro de cinco segundos após você enviar o próximo prompt, o Claude Code envia essa requisição sem a saída e a anexa à requisição seguinte. Se o modelo mudar várias vezes antes da próxima requisição, o Claude Code entrega apenas a saída correspondente ao modelo de destino da última troca.

3757 3783 

3758<h3 id="sessionend">3784<h3 id="sessionend">

3759 SessionEnd3785 SessionEnd


3774| `bypass_permissions_disabled` | Removido na v2.1.234; o Claude Code não o envia. Remova-o dos seus matchers de `SessionEnd` |3800| `bypass_permissions_disabled` | Removido na v2.1.234; o Claude Code não o envia. Remova-o dos seus matchers de `SessionEnd` |

3775 3801 

3776<h4 id="sessionend-input">3802<h4 id="sessionend-input">

3777 Entrada de SessionEnd3803 Entrada do SessionEnd

3778</h4>3804</h4>

3779 3805 

3780Além dos [campos de entrada comuns](#common-input-fields), os hooks SessionEnd recebem um campo `reason` indicando por que a sessão terminou. Consulte a [tabela de motivos](#sessionend) acima para ver todos os valores.3806Além dos [campos de entrada comuns](#common-input-fields), os hooks SessionEnd recebem um campo `reason` indicando por que a sessão terminou. Consulte a [tabela de motivos](#sessionend) acima para todos os valores.

3781 3807 

3782```json theme={null}3808```json theme={null}

3783{3809{


3789}3815}

3790```3816```

3791 3817 

3792Os hooks SessionEnd não têm controle de decisão. Eles não podem bloquear o encerramento da sessão, mas podem executar tarefas de limpeza. O Claude Code descarta seus [campos de saída JSON](#json-output), como `systemMessage`.3818Os hooks SessionEnd não têm controle de decisão. Eles não podem bloquear o encerramento da sessão, mas podem executar tarefas de limpeza. O Claude Code descarta os [campos de saída JSON](#json-output) deles, como `systemMessage`.

3793 3819 

3794Os hooks SessionEnd têm um timeout padrão de 1,5 segundo. Ele se aplica quando você sai, executa `/clear` ou troca de sessão com o `/resume` interativo. Você pode dar mais tempo a um hook de duas maneiras:3820Os hooks SessionEnd têm um timeout padrão de 1,5 segundo. Ele se aplica quando você sai, executa `/clear` ou troca de sessão com o `/resume` interativo. Você pode dar mais tempo a um hook de duas maneiras:

3795 3821 

3796* **`timeout` por hook**: defina `timeout` na configuração desse hook. O orçamento geral aumenta automaticamente para corresponder ao maior `timeout` por hook nos seus arquivos de configuração, até 60 segundos. Se você aumentar o orçamento dessa forma, um hook sem seu próprio `timeout` ainda mantém o padrão. Timeouts definidos em hooks fornecidos por plugins não aumentam o orçamento.3822* **`timeout` por hook**: defina `timeout` na configuração desse hook. O orçamento geral aumenta automaticamente para corresponder ao maior `timeout` por hook nos seus arquivos de configurações, até 60 segundos. Se você aumentar o orçamento dessa forma, um hook sem seu próprio `timeout` ainda mantém o padrão. Timeouts definidos em hooks fornecidos por plugins não aumentam o orçamento.

3797* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: defina esta variável de ambiente em milissegundos para sobrescrever o orçamento explicitamente. O valor que você define também se torna o timeout de cada hook sem seu próprio `timeout`.3823* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: defina esta variável de ambiente em milissegundos para sobrescrever o orçamento explicitamente. O valor que você definir também se torna o timeout de cada hook sem seu próprio `timeout`.

3798 3824 

3799Este exemplo define o orçamento como 5 segundos:3825Este exemplo define o orçamento para 5 segundos:

3800 3826 

3801```bash theme={null}3827```bash theme={null}

3802CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude3828CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude


3808 Elicitation3834 Elicitation

3809</h3>3835</h3>

3810 3836 

3811É executado quando um servidor MCP solicita entrada do usuário no meio de uma tarefa. Por padrão, o Claude Code mostra um diálogo interativo para o usuário responder. Os hooks podem interceptar essa solicitação e responder programaticamente, pulando o diálogo completamente.3837É executado quando um servidor MCP solicita entrada do usuário no meio de uma tarefa. Por padrão, o Claude Code mostra um diálogo interativo para o usuário responder. Os hooks podem interceptar essa solicitação e responder programaticamente, ignorando totalmente o diálogo.

3812 3838 

3813Para um hook completo com sua entrada de configuração e script, consulte [Responder a uma solicitação de formulário a partir de um script](#answer-a-form-request-from-a-script).3839Para um hook completo com sua entrada de configurações e script, consulte [Responder a uma solicitação de formulário a partir de um script](#answer-a-form-request-from-a-script).

3814 3840 

3815O campo matcher é comparado com o nome do servidor MCP.3841O campo matcher corresponde ao nome do servidor MCP.

3816 3842 

3817<h4 id="elicitation-input">3843<h4 id="elicitation-input">

3818 Entrada de Elicitation3844 Entrada do Elicitation

3819</h4>3845</h4>

3820 3846 

3821Além dos [campos de entrada comuns](#common-input-fields), os hooks Elicitation recebem `mcp_server_name`, `message` e os campos opcionais `mode`, `url`, `elicitation_id` e `requested_schema`.3847Além dos [campos de entrada comuns](#common-input-fields), os hooks Elicitation recebem `mcp_server_name`, `message` e os campos opcionais `mode`, `url`, `elicitation_id` e `requested_schema`.

3822 3848 

3823Para elicitation no modo formulário, o caso mais comum:3849Para elicitação no modo de formulário, o caso mais comum:

3824 3850 

3825```json theme={null}3851```json theme={null}

3826{3852{


3840}3866}

3841```3867```

3842 3868 

3843Para elicitation no modo URL, usado para autenticação baseada em navegador:3869Para elicitação no modo URL, usada para autenticação baseada em navegador:

3844 3870 

3845```json theme={null}3871```json theme={null}

3846{3872{


3856```3882```

3857 3883 

3858<h4 id="elicitation-output">3884<h4 id="elicitation-output">

3859 Saída de Elicitation3885 Saída do Elicitation

3860</h4>3886</h4>

3861 3887 

3862Um hook Elicitation pode responder à solicitação pelo usuário, recusá-la ou cancelá-la, ou deixá-la para o diálogo. Para responder, recusar ou cancelar, saia com 0 e imprima um objeto `hookSpecificOutput` com uma `action`. O servidor recebe sua resposta e nenhum diálogo aparece. Cada linha desta tabela mostra o que retornar para um resultado e o que o servidor MCP recebe:3888Um hook Elicitation pode responder à solicitação pelo usuário, recusá-la ou cancelá-la, ou deixá-la para o diálogo. Para responder, recusar ou cancelar, termine com 0 e imprima um objeto `hookSpecificOutput` com uma `action`. O servidor recebe a sua resposta e nenhum diálogo aparece. Cada linha desta tabela mostra o que retornar para um resultado e o que o servidor MCP recebe:

3863 3889 

3864| Para | Retorne | O servidor recebe |3890| Para | Retorne | O servidor recebe |

3865| :- | :- | :- |3891| :- | :- | :- |


3868| Cancelar a solicitação | `"action": "cancel"` | `cancel` |3894| Cancelar a solicitação | `"action": "cancel"` | `cancel` |

3869| Deixar a solicitação para o usuário | Nenhuma saída, com código de saída 0 | A resposta do usuário no [diálogo](/docs/pt/mcp#respond-to-mcp-elicitation-requests) |3895| Deixar a solicitação para o usuário | Nenhuma saída, com código de saída 0 | A resposta do usuário no [diálogo](/docs/pt/mcp#respond-to-mcp-elicitation-requests) |

3870 3896 

3871Esta saída responde à solicitação no modo formulário mostrada em [Entrada de Elicitation](#elicitation-input). As chaves em `content` são os nomes das propriedades do `requested_schema` dessa solicitação:3897Esta saída responde à solicitação no modo de formulário mostrada em [Entrada do Elicitation](#elicitation-input). As chaves em `content` são os nomes de propriedades do `requested_schema` dessa solicitação:

3872 3898 

3873```json theme={null}3899```json theme={null}

3874{3900{


3895 3921 

3896No diálogo, selecionar **Decline** envia `decline` e pressionar `Esc` envia `cancel`, então retorne aquele que você quer que o servidor veja.3922No diálogo, selecionar **Decline** envia `decline` e pressionar `Esc` envia `cancel`, então retorne aquele que você quer que o servidor veja.

3897 3923 

3898Para uma solicitação no modo URL, um hook que retorna `accept` pula o diálogo, então a URL nunca é aberta.3924Para uma solicitação no modo URL, um hook que retorna `accept` ignora o diálogo, então a URL nunca é aberta.

3899 3925 

3900O Claude Code descarta `reason`, `systemMessage` e `continue` da saída JSON de um hook Elicitation, qualquer que seja a `action` que você retorne.3926O Claude Code descarta `reason`, `systemMessage` e `continue` da saída JSON de um hook Elicitation, seja qual for a `action` que você retornar.

3901 3927 

3902<h4 id="other-ways-to-decline-an-elicitation">3928<h4 id="other-ways-to-decline-an-elicitation">

3903 Outras maneiras de recusar uma elicitation3929 Outras maneiras de recusar uma elicitação

3904</h4>3930</h4>

3905 3931 

3906Seu hook também pode recusar destas maneiras. O servidor recebe o mesmo `decline` que para `"action": "decline"`:3932O seu hook também pode recusar destas maneiras. O servidor recebe o mesmo `decline` que para `"action": "decline"`:

3907 3933 

3908* **Sai com o código 2**: o Claude Code ignora um `hookSpecificOutput` impresso pelo mesmo hook3934* **Termina com código 2**: o Claude Code ignora um `hookSpecificOutput` impresso pelo mesmo hook

3909* **Imprime um `"decision": "block"` de nível superior**: o bloqueio sobrescreve uma `action` na mesma saída3935* **Imprime um `"decision": "block"` de nível superior**: o bloqueio sobrescreve uma `action` na mesma saída

3910 3936 

3911Quando vários hooks correspondem à mesma solicitação, uma recusa de um deles sobrescreve um `accept` ou `cancel` de outro.3937Quando vários hooks correspondem à mesma solicitação, uma recusa de um deles sobrescreve um `accept` ou `cancel` de outro.


3919fi3945fi

3920```3946```

3921 3947 

3922Nem o usuário nem o servidor veem por que seu hook recusou, porque o Claude Code não mostra seu stderr nem seu `reason`.3948Nem o usuário nem o servidor veem por que o seu hook recusou, porque o Claude Code não mostra o seu stderr nem o seu `reason`.

3923 3949 

3924O Claude Code ignorou um `decision` de nível superior de hooks `Elicitation` e `ElicitationResult` desde a v2.1.105 até a correção na v2.1.284.3950O Claude Code ignorou um `decision` de nível superior dos hooks `Elicitation` e `ElicitationResult` da v2.1.105 até a correção na v2.1.284.

3925 3951 

3926<h4 id="answer-a-form-request-from-a-script">3952<h4 id="answer-a-form-request-from-a-script">

3927 Responder a uma solicitação de formulário a partir de um script3953 Responder a uma solicitação de formulário a partir de um script


3931 3957 

3932<Tabs>3958<Tabs>

3933 <Tab title="macOS/Linux">3959 <Tab title="macOS/Linux">

3934 Registre um hook de comando para o evento no seu arquivo de configuração, com o nome do servidor como matcher:3960 Registre um hook de comando para o evento no seu arquivo de configurações, com o nome do servidor como matcher:

3935 3961 

3936 ```json theme={null}3962 ```json theme={null}

3937 {3963 {


4018 ElicitationResult4044 ElicitationResult

4019</h3>4045</h3>

4020 4046 

4021É executado depois que um usuário responde a uma elicitation MCP. Os hooks podem observar, modificar ou bloquear a resposta antes que ela seja enviada de volta ao servidor MCP.4047É executado depois que um usuário responde a uma elicitação MCP. Os hooks podem observar, modificar ou bloquear a resposta antes que ela seja enviada de volta ao servidor MCP.

4022 4048 

4023Quando um hook [Elicitation](#elicitation) responde a uma solicitação, o Claude Code envia essa resposta ao servidor sem executar hooks ElicitationResult.4049Quando um hook [Elicitation](#elicitation) responde a uma solicitação, o Claude Code envia essa resposta ao servidor sem executar hooks ElicitationResult.

4024 4050 

4025O campo matcher é comparado com o nome do servidor MCP.4051O campo matcher corresponde ao nome do servidor MCP.

4026 4052 

4027<h4 id="elicitationresult-input">4053<h4 id="elicitationresult-input">

4028 Entrada de ElicitationResult4054 Entrada do ElicitationResult

4029</h4>4055</h4>

4030 4056 

4031Além dos [campos de entrada comuns](#common-input-fields), os hooks ElicitationResult recebem `mcp_server_name`, `action` e os campos opcionais `mode`, `elicitation_id` e `content`.4057Além dos [campos de entrada comuns](#common-input-fields), os hooks ElicitationResult recebem `mcp_server_name`, `action` e os campos opcionais `mode`, `elicitation_id` e `content`.


4044```4070```

4045 4071 

4046<h4 id="elicitationresult-output">4072<h4 id="elicitationresult-output">

4047 Saída de ElicitationResult4073 Saída do ElicitationResult

4048</h4>4074</h4>

4049 4075 

4050Um hook ElicitationResult pode deixar a resposta do usuário passar, alterar seus valores ou bloqueá-la. Para alterar ou bloquear a resposta, saia com 0 e imprima um objeto `hookSpecificOutput` com uma `action`. Cada linha desta tabela mostra o que retornar para um resultado e o que o servidor MCP recebe:4076Um hook ElicitationResult pode deixar a resposta do usuário passar, alterar seus valores ou bloqueá-la. Para alterar ou bloquear a resposta, termine com 0 e imprima um objeto `hookSpecificOutput` com uma `action`. Cada linha desta tabela mostra o que retornar para um resultado e o que o servidor MCP recebe:

4051 4077 

4052| Para | Retorne | O servidor recebe |4078| Para | Retorne | O servidor recebe |

4053| :- | :- | :- |4079| :- | :- | :- |


4056| Bloquear a resposta | `"action": "decline"` | `decline`, sem os valores do usuário |4082| Bloquear a resposta | `"action": "decline"` | `decline`, sem os valores do usuário |

4057| Cancelar a solicitação | `"action": "cancel"` | `cancel`, junto com os valores que o usuário enviou. Para retê-los, retorne `"decline"` |4083| Cancelar a solicitação | `"action": "cancel"` | `cancel`, junto com os valores que o usuário enviou. Para retê-los, retorne `"decline"` |

4058 4084 

4059Esta saída altera a resposta mostrada em [Entrada de ElicitationResult](#elicitationresult-input), de modo que o servidor recebe `alice@example.com` onde o usuário enviou `alice`:4085Esta saída altera a resposta mostrada em [Entrada do ElicitationResult](#elicitationresult-input), então o servidor recebe `alice@example.com` onde o usuário enviou `alice`:

4060 4086 

4061```json theme={null}4087```json theme={null}

4062{4088{


4070}4096}

4071```4097```

4072 4098 

4073Seu `content` substitui todo o objeto `content` do usuário, então inclua os campos que você não está alterando. Retorne `action` junto com ele, porque o Claude Code ignora um `hookSpecificOutput` que não tenha `action`.4099O seu `content` substitui todo o objeto `content` do usuário, então inclua os campos que você não está alterando. Retorne `action` junto com ele, porque o Claude Code ignora um `hookSpecificOutput` que não tenha `action`.

4074 4100 

4075Os hooks ElicitationResult também são executados quando o usuário recusa ou cancela, e sua `action` substitui a dele. Verifique se a `action` da entrada é `accept` antes de retornar `accept`, ou seu hook transformará uma solicitação recusada em uma aceita. Este script faz a mesma alteração quando o usuário aceitou, mantém os outros campos e não imprime nada caso contrário:4101Os hooks ElicitationResult também são executados quando o usuário recusa ou cancela, e a sua `action` substitui a dele. Verifique se a `action` da entrada é `accept` antes de retornar `accept`, ou o seu hook transformará uma solicitação recusada em uma aceita. Este script faz a mesma alteração quando o usuário aceitou, mantém os outros campos e não imprime nada caso contrário:

4076 4102 

4077```bash theme={null}4103```bash theme={null}

4078#!/bin/bash4104#!/bin/bash


4094}4120}

4095```4121```

4096 4122 

4097O código de saída 2 e um `"decision": "block"` de nível superior também bloqueiam a resposta. [Outras maneiras de recusar uma elicitation](#other-ways-to-decline-an-elicitation) explica qual deles tem efeito quando um hook os combina, o que o usuário vê e quais versões ignoravam `decision`.4123O código de saída 2 e um `"decision": "block"` de nível superior também bloqueiam a resposta. [Outras maneiras de recusar uma elicitação](#other-ways-to-decline-an-elicitation) aborda qual deles tem efeito quando um hook os combina, o que o usuário vê e quais versões ignoravam `decision`.

4098 4124 

4099O Claude Code descarta `reason`, `systemMessage` e `continue` da saída JSON de um hook ElicitationResult, qualquer que seja a `action` que você retorne.4125O Claude Code descarta `reason`, `systemMessage` e `continue` da saída JSON de um hook ElicitationResult, seja qual for a `action` que você retornar.

4100 4126 

4101<h2 id="prompt-based-hooks">4127<h2 id="prompt-based-hooks">

4102 Hooks baseados em prompt4128 Hooks baseados em prompt


4351* **Sozinha no stdout**: quando a resposta é o único texto no stdout, ela pode ocupar várias linhas, como a saída formatada do `jq`. Ocupar várias linhas requer Claude Code v2.1.295 ou posterior.4377* **Sozinha no stdout**: quando a resposta é o único texto no stdout, ela pode ocupar várias linhas, como a saída formatada do `jq`. Ocupar várias linhas requer Claude Code v2.1.295 ou posterior.

4352* **Em uma linha própria**: um hook assíncrono pode imprimir outro texto no stdout quando a resposta cabe sozinha em uma linha, por exemplo com `jq -c`.4378* **Em uma linha própria**: um hook assíncrono pode imprimir outro texto no stdout quando a resposta cabe sozinha em uma linha, por exemplo com `jq -c`.

4353 4379 

4354Claude Code valida que a resposta JSON contra o mesmo [esquema de saída](#json-output) que hooks síncronos, e descarta qualquer campo cujo valor tenha o tipo errado, como um `systemMessage` que não seja uma string, em vez de entregá-lo. Execute com `--debug` para ver um aviso nomeando cada campo descartado. Antes da v2.1.202, saída JSON malformada de um hook assíncrono poderia travar a sessão, e a falha recorria cada vez que a sessão era retomada.4380Claude Code valida essa resposta JSON contra o mesmo [esquema de saída](#json-output) que hooks síncronos, e descarta qualquer campo cujo valor tenha o tipo errado, como um `systemMessage` que não seja uma string, em vez de entregá-lo. Execute com `--debug` para ver um aviso nomeando cada campo descartado.

4355 4381 

4356Notificações de conclusão de hook assíncrono são suprimidas por padrão. Para vê-las, ative modo verbose com `Ctrl+O` ou inicie Claude Code com `--verbose`.4382Notificações de conclusão de hook assíncrono são suprimidas por padrão. Para vê-las, ative modo verbose com `Ctrl+O` ou inicie Claude Code com `--verbose`.

4357 4383 

Details

491 491 

492Para desativar as sugestões de prompt em toda uma organização, defina `promptSuggestionEnabled` como `false` em [configurações gerenciadas](/docs/pt/managed-settings). Também defina `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` como `false` sob a chave [`env`](/docs/pt/settings-reference#env) gerenciada para que os usuários não possam reativá-las com sua própria variável de ambiente.492Para desativar as sugestões de prompt em toda uma organização, defina `promptSuggestionEnabled` como `false` em [configurações gerenciadas](/docs/pt/managed-settings). Também defina `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` como `false` sob a chave [`env`](/docs/pt/settings-reference#env) gerenciada para que os usuários não possam reativá-las com sua própria variável de ambiente.

493 493 

494<h2 id="you-should-know-suggestions">

495 Sugestões do You should know

496</h2>

497 

498O "You should know" procura uma coisa que você deveria saber, mas que pode ter deixado passar, como uma compensação que Claude escolheu sem mencioná-la ou um resultado que pode estar incorreto. Quando encontra uma, ele mostra uma nota curta acima da entrada do prompt:

499 

500```text theme={null}

501✦ Heads up · There was a change to how folder sharing starts in June, which may have bumped usage metrics artificially.

502 1: Learn more 2: Knew this already 0: Dismiss

503```

504 

505Ele é um dos [mods integrados](/docs/pt/plugins/mods/overview#mods-built-into-claude-code) do Claude Code, um plugin integrado ao Claude Code que vem desativado por padrão. Requer o Claude Code v2.1.287 ou posterior.

506 

507Enquanto ele está ativado, um agente paralelo relê a conversa de tempos em tempos à medida que Claude trabalha em uma tarefa mais longa. O agente paralelo é uma requisição separada ao mesmo modelo e não tem ferramentas, portanto não pode ler arquivos, executar comandos nem alterar o que Claude faz.

508 

509Se o mod estiver disponível para sua organização, `/plugin` o lista quando você se conecta diretamente à Claude API com uma conta do claude.ai ou uma chave de API do Console. Ele não é listado quando você se conecta por meio de um [gateway de LLM](/docs/pt/llm-gateway) ou de um [Claude apps gateway](/docs/pt/claude-apps-gateway), ou quando obtém sua chave de um [`apiKeyHelper`](/docs/pt/settings-reference#apikeyhelper). Mesmo com uma conexão direta, estas sessões não o listam:

510 

511* Uma sessão que [não busca as feature flags](/docs/pt/env-vars#features-that-need-feature-flag-fetching) das quais o mod depende, como uma com `DISABLE_TELEMETRY` definida

512* Uma [primeira sessão após uma instalação ou atualização](/docs/pt/env-vars#first-session-after-an-install-or-upgrade) cujas flags ainda não chegaram

513 

514Para ativá-lo, execute isto no prompt do Claude Code:

515 

516```text theme={null}

517/plugin enable cc-plugin-you-should-know@builtin

518```

519 

520Onde `/plugin` não lista o mod, o comando de ativação responde `Plugin "cc-plugin-you-should-know@builtin" is not installed in this project`.

521 

522<h3 id="cost-of-checks">

523 Custo das verificações

524</h3>

525 

526Enquanto o mod está ativado, as verificações são requisições em segundo plano ao mesmo modelo que sua sessão está usando, e elas contam para os limites de uso do seu plano ou para seus custos de API. Cada verificação envia o que já está no contexto de Claude, ou seja, a conversa até o momento com os resultados de suas ferramentas, seguida pelas instruções do próprio mod e pelo texto das suas notas recentes. A parte da conversa é lida do [cache de prompt](/docs/pt/prompt-caching) da sessão nos mesmos termos da próxima requisição do próprio Claude. As instruções, que somam vários milhares de tokens, e a resposta do agente paralelo são cobradas integralmente em cada verificação.

527 

528Para acompanhar as verificações acontecendo, defina [`CLAUDE_CODE_YOU_SHOULD_KNOW_DEBUG=1`](/docs/pt/env-vars) no seu shell antes de iniciar o Claude Code.

529 

530<h3 id="answer-a-note">

531 Responder a uma nota

532</h3>

533 

534Digite apenas o dígito da opção em uma entrada de prompt vazia. Uma nota oferece estas opções:

535 

536* **Learn more**: abre uma explicação curta abaixo da nota, com suas próprias opções:

537 * **Understood**: fecha a explicação e marca o tópico como conhecido

538 * **Chat in main session**: cita a nota na sua entrada de prompt para que você possa adicionar uma pergunta e enviá-la a Claude

539 * **Dismiss**: fecha a explicação sem marcar o tópico como conhecido

540* **Knew this already**: fecha a nota e marca o tópico como conhecido.

541* **Dismiss**: fecha a nota.

542 

543O agente principal não vê uma nota, a menos que você a envie com **Chat in main session**.

544 

545O Claude Code mantém suas notas recentes e os tópicos que você marcou como conhecidos em um arquivo cujo nome começa com `cc-plugin-you-should-know` em `~/.claude/plugins/store/`. Cada verificação, nesta sessão e nas posteriores, os lista para o agente paralelo como itens que não devem ser repetidos. O Claude Code exclui o arquivo depois que ele passa [`cleanupPeriodDays`](/docs/pt/settings-reference#cleanupperioddays) sem que uma sessão o leia ou grave. Para limpá-los antes disso, exclua esse arquivo enquanto nenhuma sessão estiver em execução.

546 

547<h3 id="turn-off-you-should-know">

548 Desativar o You should know

549</h3>

550 

551Para desativar o You should know, use uma das seguintes opções:

552 

553* No prompt do Claude Code, execute `/plugin disable cc-plugin-you-should-know@builtin`, ou desative-o na aba **Installed** de `/plugin`

554* Depois de escolher **Dismiss** em uma nota sem abrir **Learn more** primeiro, escolha **Turn off suggestions** na linha `Dismissed.`, que desaparece após 20 segundos

555 

494<h2 id="emoji-shortcodes">556<h2 id="emoji-shortcodes">

495 Códigos de emoji557 Códigos de emoji

496</h2>558</h2>

Details

257 257 

258Liste diretórios em `sparsePaths`, não arquivos individuais. Arquivos no nível raiz como `package.json`, `tsconfig.base.json` e arquivos de lock são sempre feitos checkout ao lado dos diretórios que você lista. Diretórios no nível raiz não são, então inclua `.claude` na lista se você quiser que o `.claude/settings.json` da raiz do repositório ou `.claude/rules/` estejam disponíveis dentro da worktree. Para skills de projeto, agentes e comandos, veja [O que worktrees compartilham com o checkout principal](/docs/pt/worktrees#what-worktrees-share-with-the-main-checkout).258Liste diretórios em `sparsePaths`, não arquivos individuais. Arquivos no nível raiz como `package.json`, `tsconfig.base.json` e arquivos de lock são sempre feitos checkout ao lado dos diretórios que você lista. Diretórios no nível raiz não são, então inclua `.claude` na lista se você quiser que o `.claude/settings.json` da raiz do repositório ou `.claude/rules/` estejam disponíveis dentro da worktree. Para skills de projeto, agentes e comandos, veja [O que worktrees compartilham com o checkout principal](/docs/pt/worktrees#what-worktrees-share-with-the-main-checkout).

259 259 

260O sparse checkout requer que o git habilite `extensions.worktreeConfig` no `.git/config` compartilhado do repositório enquanto uma worktree esparsa existe. Claude Code remove essa entrada após a última worktree ser removida, mas apenas se Claude Code a adicionou. Nunca remove um valor que você definiu você mesmo. Antes da v2.1.207, a entrada permanecia após a última worktree ser removida, e ferramentas baseadas em go-git como `tea` falhavam ao abrir o repositório até que você executasse `git config --unset extensions.worktreeConfig`.260O sparse checkout requer que o git habilite `extensions.worktreeConfig` no `.git/config` compartilhado do repositório enquanto um worktree esparso existe. Claude Code remove essa entrada após o último worktree ser removido, mas apenas se Claude Code a adicionou. Nunca remove um valor que você definiu você mesmo.

261 261 

262Para evitar duplicar diretórios grandes como `node_modules` entre worktrees, combine `sparsePaths` com `symlinkDirectories` no mesmo `.claude/settings.json`:262Para evitar duplicar diretórios grandes como `node_modules` entre worktrees, combine `sparsePaths` com `symlinkDirectories` no mesmo `.claude/settings.json`:

263 263 

Details

518 518 

519Coloque a credencial do gateway em `ANTHROPIC_FOUNDRY_API_KEY`; ela é enviada para o gateway como o cabeçalho `x-api-key`. Um gateway que espera um token bearer pode usar [`ANTHROPIC_FOUNDRY_AUTH_TOKEN`](/docs/pt/env-vars) em vez disso. Claude Code envia esse valor como o cabeçalho `Authorization: Bearer`, e ele tem precedência sobre `ANTHROPIC_FOUNDRY_API_KEY` quando ambos estão definidos. Requer Claude Code v2.1.203 ou posterior.519Coloque a credencial do gateway em `ANTHROPIC_FOUNDRY_API_KEY`; ela é enviada para o gateway como o cabeçalho `x-api-key`. Um gateway que espera um token bearer pode usar [`ANTHROPIC_FOUNDRY_AUTH_TOKEN`](/docs/pt/env-vars) em vez disso. Claude Code envia esse valor como o cabeçalho `Authorization: Bearer`, e ele tem precedência sobre `ANTHROPIC_FOUNDRY_API_KEY` quando ambos estão definidos. Requer Claude Code v2.1.203 ou posterior.

520 520 

521Para um gateway que injeta seu próprio cabeçalho `Authorization`, defina `CLAUDE_CODE_SKIP_FOUNDRY_AUTH=1` e deixe ambas as variáveis de credencial indefinidas. Claude Code então envia solicitações sem uma credencial do Azure e preserva o cabeçalho `Authorization` que você fornece, por exemplo através de `ANTHROPIC_CUSTOM_HEADERS`. Antes de v2.1.203, `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` sem uma chave de API deixava o cliente Microsoft Foundry incapaz de enviar solicitações.521Para um gateway que injeta seu próprio cabeçalho `Authorization`, defina `CLAUDE_CODE_SKIP_FOUNDRY_AUTH=1` e deixe ambas as variáveis de credencial indefinidas. Claude Code então envia requisições sem uma credencial do Azure e preserva o cabeçalho `Authorization` que você fornece, por exemplo através de `ANTHROPIC_CUSTOM_HEADERS`.

522 522 

523<Tabs>523<Tabs>

524 <Tab title="Bash ou Zsh">524 <Tab title="Bash ou Zsh">

Details

168| :- | :- |168| :- | :- |

169| `x-claude-code-request-class` | Que tipo de solicitação é esta: `main` para uma volta da conversa principal, `subagent` para uma volta de um [subagente](/docs/pt/sub-agents), `workflow` para um agente executando dentro de um workflow, `compaction` para a solicitação de resumo que compacta uma conversa, ou `auxiliary` para solicitações laterais como títulos de sessão, classificadores e resumos. Enviado em cada solicitação |169| `x-claude-code-request-class` | Que tipo de solicitação é esta: `main` para uma volta da conversa principal, `subagent` para uma volta de um [subagente](/docs/pt/sub-agents), `workflow` para um agente executando dentro de um workflow, `compaction` para a solicitação de resumo que compacta uma conversa, ou `auxiliary` para solicitações laterais como títulos de sessão, classificadores e resumos. Enviado em cada solicitação |

170| `x-claude-code-agent-type` | O tipo de subagente que emitiu a solicitação: um nome de tipo de agente integrado como `Explore`, `Plan` ou `general-purpose`, ou `custom` para um agente definido pelo usuário, `teammate` para um membro da [equipe de agentes](/docs/pt/agent-teams) executando no processo do líder, ou `fork` para um [fork](/docs/pt/sub-agents#fork-the-current-conversation). Presente apenas nas próprias voltas de um subagente; solicitações de compactação ou laterais de um subagente mantêm o ID do agente mas não carregam tipo. Um nome de agente escolhido pelo usuário nunca é enviado |170| `x-claude-code-agent-type` | O tipo de subagente que emitiu a solicitação: um nome de tipo de agente integrado como `Explore`, `Plan` ou `general-purpose`, ou `custom` para um agente definido pelo usuário, `teammate` para um membro da [equipe de agentes](/docs/pt/agent-teams) executando no processo do líder, ou `fork` para um [fork](/docs/pt/sub-agents#fork-the-current-conversation). Presente apenas nas próprias voltas de um subagente; solicitações de compactação ou laterais de um subagente mantêm o ID do agente mas não carregam tipo. Um nome de agente escolhido pelo usuário nunca é enviado |

171| `x-claude-code-compaction` | Presente na solicitação que resume a conversa durante uma [compactação](/docs/pt/prompt-caching#compacting-the-conversation). O valor diz o que a acionou: `auto` quando a janela de contexto se aproximava da capacidade, `manual` para `/compact`, ou `reactive` quando a API rejeitou uma solicitação como muito longa. Ausente em todas as outras solicitações |171| `x-claude-code-compaction` | Presente na requisição que resume a conversa durante uma [compactação](/docs/pt/prompt-caching#compacting-the-conversation). O valor diz o que a acionou: `auto` quando a janela de contexto se aproximava da capacidade, `manual` para `/compact`, ou `reactive` quando a API rejeitou uma requisição como muito longa. O valor também é `auto` para [compactação por inatividade](/docs/pt/settings-reference#idlecompaction). Ausente em todas as outras requisições |

172| `x-claude-code-context-compacted` | Presente uma vez, na primeira solicitação de conversa principal após uma compactação, com os mesmos valores que `x-claude-code-compaction`. O prefixo de conversa antes desta solicitação não é mais usado, então um cache com chave nele pode ser descartado |172| `x-claude-code-context-compacted` | Presente uma vez, na primeira solicitação de conversa principal após uma compactação, com os mesmos valores que `x-claude-code-compaction`. O prefixo de conversa antes desta solicitação não é mais usado, então um cache com chave nele pode ser descartado |

173| `x-claude-code-prev-tool-durations` | Tempo de execução medido das chamadas de ferramenta cujos resultados esta solicitação carrega, como `<name>=<ms>;<name>=<ms>`, por exemplo `Bash=742;Read=9`. Enviado na próxima solicitação da mesma conversa após um lote de chamadas de ferramenta, da sessão principal ou de um subagente |173| `x-claude-code-prev-tool-durations` | Tempo de execução medido das chamadas de ferramenta cujos resultados esta solicitação carrega, como `<name>=<ms>;<name>=<ms>`, por exemplo `Bash=742;Read=9`. Enviado na próxima solicitação da mesma conversa após um lote de chamadas de ferramenta, da sessão principal ou de um subagente |

174| `x-claude-code-prompt-id` | UUID aleatório que identifica o prompt do usuário que uma solicitação serve. Solicitações servindo um prompt compartilham o valor, incluindo as voltas de subagentes que o prompt iniciou. Solicitações não atribuídas a um prompt o omitem. Use-o para agrupar as solicitações de uma sessão por prompt. Requer Claude Code v2.1.283 ou posterior |174| `x-claude-code-prompt-id` | UUID aleatório que identifica o prompt do usuário que uma solicitação serve. Solicitações servindo um prompt compartilham o valor, incluindo as voltas de subagentes que o prompt iniciou. Solicitações não atribuídas a um prompt o omitem. Use-o para agrupar as solicitações de uma sessão por prompt. Requer Claude Code v2.1.283 ou posterior |


291 291 

292Em Claude Code v2.1.227 ou posterior, sua organização pode manter [busca de ferramenta MCP](/docs/pt/mcp#scale-with-mcp-tool-search) ativada sob essa variável através de [configurações gerenciadas](/docs/pt/managed-settings). O que Claude Code envia com essa substituição em vigor depende de como você se conecta:292Em Claude Code v2.1.227 ou posterior, sua organização pode manter [busca de ferramenta MCP](/docs/pt/mcp#scale-with-mcp-tool-search) ativada sob essa variável através de [configurações gerenciadas](/docs/pt/managed-settings). O que Claude Code envia com essa substituição em vigor depende de como você se conecta:

293 293 

294* Em uma conexão direta, ou através de um gateway definido com `ANTHROPIC_BASE_URL`, Claude Code continua enviando o header beta de busca de ferramenta, campos de ferramenta `defer_loading`, e blocos `tool_reference`, e remove o resto294* Em uma conexão direta sem a configuração HIPAA, ou através de um gateway definido com `ANTHROPIC_BASE_URL`, Claude Code continua enviando o header beta de busca de ferramenta, campos de ferramenta `defer_loading`, e blocos `tool_reference`

295* Em um provedor de nuvem, ou conectado através de um [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway), a substituição não tem efeito295* Em um provedor de nuvem, ou conectado através de um [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway), a substituição não tem efeito

296* Em uma sessão que [recebe a configuração HIPAA](/docs/pt/hipaa-setup#check-how-developers-sign-in-and-connect), a substituição não tem efeito e a busca de ferramenta permanece desativada

296 297 

297O conjunto de capacidades que Claude Code envia cresce ao longo dos lançamentos. Para strings de header beta atuais, consulte a [referência de headers beta](https://platform.claude.com/docs/en/api/beta-headers); teste seu gateway contra novos lançamentos de Claude Code em vez de fixar a uma lista observada.298O conjunto de capacidades que Claude Code envia cresce ao longo dos lançamentos. Para strings de header beta atuais, consulte a [referência de headers beta](https://platform.claude.com/docs/en/api/beta-headers); teste seu gateway contra novos lançamentos de Claude Code em vez de fixar a uma lista observada.

298 299 

mcp.md +57 −28

Details

90 90 

91Ao configurar servidores MCP via JSON em `.mcp.json`, `~/.claude.json`, ou `claude mcp add-json`, o campo `type` aceita `streamable-http` como um alias para `http`. A especificação MCP usa o nome `streamable-http` para este transporte, portanto as configurações copiadas da documentação do servidor funcionam sem modificação.91Ao configurar servidores MCP via JSON em `.mcp.json`, `~/.claude.json`, ou `claude mcp add-json`, o campo `type` aceita `streamable-http` como um alias para `http`. A especificação MCP usa o nome `streamable-http` para este transporte, portanto as configurações copiadas da documentação do servidor funcionam sem modificação.

92 92 

93Uma entrada JSON que tem uma `url` mas nenhum `type` é um erro de configuração, porque Claude Code lê uma entrada sem `type` como um servidor stdio. Claude Code pula esse servidor e relata `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`. Antes da v2.1.202, Claude Code relatava essa configuração incorreta como `command: expected string, received undefined`.93Uma entrada JSON que tem uma `url` mas nenhum `type` é um erro de configuração, porque Claude Code lê uma entrada sem `type` como um servidor stdio. Claude Code pula esse servidor e relata `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`.

94 94 

95Apenas um aplicativo host SDK, como um aplicativo [Agent SDK](/docs/pt/agent-sdk/mcp) ou o [aplicativo de desktop](/docs/pt/desktop), pode registrar um servidor `"type": "sdk"` em processo. Claude Code pula uma entrada `"type": "sdk"` em `.mcp.json`, `~/.claude.json`, ou configurações e relata `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.95Apenas um aplicativo host SDK, como um aplicativo [Agent SDK](/docs/pt/agent-sdk/mcp) ou o [aplicativo de desktop](/docs/pt/desktop), pode registrar um servidor `"type": "sdk"` em processo. Claude Code pula uma entrada `"type": "sdk"` em `.mcp.json`, `~/.claude.json`, ou configurações e relata `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.

96 96 


128 128 

129Claude Code define `CLAUDE_PROJECT_DIR` no ambiente do servidor gerado para a raiz do projeto, para que seu servidor possa resolver caminhos relativos ao projeto sem depender do diretório de trabalho. Este é o mesmo diretório que hooks recebem em sua variável `CLAUDE_PROJECT_DIR`. Leia-o de dentro do seu processo de servidor, por exemplo `process.env.CLAUDE_PROJECT_DIR` em Node ou `os.environ["CLAUDE_PROJECT_DIR"]` em Python.129Claude Code define `CLAUDE_PROJECT_DIR` no ambiente do servidor gerado para a raiz do projeto, para que seu servidor possa resolver caminhos relativos ao projeto sem depender do diretório de trabalho. Este é o mesmo diretório que hooks recebem em sua variável `CLAUDE_PROJECT_DIR`. Leia-o de dentro do seu processo de servidor, por exemplo `process.env.CLAUDE_PROJECT_DIR` em Node ou `os.environ["CLAUDE_PROJECT_DIR"]` em Python.

130 130 

131`CLAUDE_PROJECT_DIR` é a raiz do projeto estável e não muda quando você adiciona ou remove diretórios de trabalho no meio da sessão. Um servidor que limita seu próprio acesso ao sistema de arquivos a um conjunto de diretórios permitidos deve implementar a solicitação MCP `roots/list` em vez disso. Claude Code responde a `roots/list` com o diretório de inicialização da sessão mais cada [diretório de trabalho adicional](/docs/pt/permissions#working-directories) que você concedeu com `--add-dir`, `/add-dir`, ou a configuração `additionalDirectories`. Claude Code envia `notifications/roots/list_changed` quando esse conjunto muda. Antes da v2.1.203, `roots/list` retornava apenas o diretório de inicialização e Claude Code não enviava `notifications/roots/list_changed`.131`CLAUDE_PROJECT_DIR` é a raiz do projeto estável e não muda quando você adiciona ou remove diretórios de trabalho no meio da sessão. Um servidor que limita seu próprio acesso ao sistema de arquivos a um conjunto de diretórios permitidos deve implementar a solicitação MCP `roots/list` em vez disso. Claude Code responde a `roots/list` com o diretório de inicialização da sessão mais cada [diretório de trabalho adicional](/docs/pt/permissions#working-directories) que você concedeu com `--add-dir`, `/add-dir`, ou a configuração `additionalDirectories`. Claude Code envia `notifications/roots/list_changed` quando esse conjunto muda.

132 132 

133Esta variável é definida no ambiente do servidor, não no ambiente do próprio Claude Code, portanto fazer referência a ela via expansão `${VAR}` no `command` ou `args` de uma entrada `.mcp.json` com escopo de projeto ou uma entrada de servidor com escopo local ou de usuário em `~/.claude.json` requer um padrão como `${CLAUDE_PROJECT_DIR:-.}`. As configurações MCP fornecidas por plugins substituem `${CLAUDE_PROJECT_DIR}` diretamente e não precisam do padrão.133Esta variável é definida no ambiente do servidor, não no ambiente do próprio Claude Code, portanto fazer referência a ela via expansão `${VAR}` no `command` ou `args` de uma entrada `.mcp.json` com escopo de projeto ou uma entrada de servidor com escopo local ou de usuário em `~/.claude.json` requer um padrão como `${CLAUDE_PROJECT_DIR:-.}`. As configurações MCP fornecidas por plugins substituem `${CLAUDE_PROJECT_DIR}` diretamente e não precisam do padrão.

134 134 


154 `--env` aceita múltiplos pares `KEY=value`. Se o nome do servidor vem imediatamente após `--env`, a CLI lê o nome como outro par e o rejeita, portanto coloque pelo menos uma outra opção, como `--transport stdio`, entre `--env` e o nome do servidor.154 `--env` aceita múltiplos pares `KEY=value`. Se o nome do servidor vem imediatamente após `--env`, a CLI lê o nome como outro par e o rejeita, portanto coloque pelo menos uma outra opção, como `--transport stdio`, entre `--env` e o nome do servidor.

155</Note>155</Note>

156 156 

157<h4 id="how-claude-code-stops-a-stdio-server">

158 Como Claude Code para um servidor stdio

159</h4>

160 

161Quando Claude Code desconecta um servidor stdio, por exemplo quando sua sessão termina, ele sinaliza o processo do servidor e aguarda brevemente que ele saia antes de forçá-lo a parar. Se seu servidor salva estado ou remove arquivos de bloqueio no desligamento, trate o sinal da sua plataforma e termine dentro desse tempo:

162 

163* **No macOS e Linux**: Claude Code envia `SIGINT`, depois `SIGTERM` se o processo ainda estiver em execução 100 milissegundos depois, depois `SIGKILL` após mais 400 milissegundos.

164* **No Windows**: Claude Code fecha o stdin do servidor, depois encerra a árvore de processos do servidor se o processo ainda estiver em execução 300 milissegundos depois.

165 

166Antes da v2.1.296, Claude Code no Windows encerrava a árvore de processos do servidor de imediato, sem fechar o stdin primeiro nem aguardar.

167 

157<h3 id="option-4-add-a-remote-websocket-server">168<h3 id="option-4-add-a-remote-websocket-server">

158 Opção 4: Adicionar um servidor WebSocket remoto169 Opção 4: Adicionar um servidor WebSocket remoto

159</h3>170</h3>


415 Quedas de um servidor remoto no meio da sessão426 Quedas de um servidor remoto no meio da sessão

416</h4>427</h4>

417 428 

418Claude Code reconecta um servidor remoto caído com backoff exponencial: até cinco tentativas, começando com um atraso de um segundo e dobrando a cada vez. O que você vê depende de como você está executando Claude Code:429Claude Code primeiro tenta reconectar um servidor remoto caído até cinco vezes com backoff exponencial, começando com um atraso de um segundo e dobrando-o a cada vez:

419 430 

420* **Em uma sessão interativa**: `/mcp` mostra o servidor como pendente enquanto Claude Code reconecta. Após cinco tentativas falhadas, Claude Code marca o servidor como com falha, ou como precisando de autenticação quando o servidor precisa ser autorizado novamente. Quando marca o servidor como com falha, você vê uma notificação `MCP server "<name>" disconnected · open /mcp to reconnect`. Você pode tentar novamente manualmente de `/mcp`.431* **Em uma sessão interativa**: `/mcp` mostra o servidor como pendente enquanto Claude Code reconecta. Após cinco tentativas falhadas, Claude Code marca o servidor como com falha, ou como precisando de autenticação quando o servidor precisa ser autorizado novamente. Quando marca o servidor como com falha, você vê uma notificação `MCP server "<name>" disconnected · open /mcp to reconnect`. Você pode tentar novamente manualmente de `/mcp`.

421* **Em execuções [`claude -p`](/docs/pt/headless) e sessões [Agent SDK](/docs/pt/agent-sdk/overview)**: Claude Code reconecta no mesmo cronograma, sem painel `/mcp` para mostrar as tentativas.432* **Em execuções [`claude -p`](/docs/pt/headless) e sessões [Agent SDK](/docs/pt/agent-sdk/overview)**: Claude Code faz as mesmas cinco tentativas, sem painel `/mcp` para mostrá-las. Quando as tentativas de um servidor HTTP ou SSE falham com um erro transitório, ele continua tentando novamente em segundo plano por até cerca de meia hora, e o servidor e suas ferramentas ficam disponíveis novamente quando uma nova tentativa se conecta.

422 433 

423<h4 id="failed-first-connections">434<h4 id="failed-first-connections">

424 Primeiras conexões com falha435 Primeiras conexões com falha


479 490 

480O `timeout` por servidor é um limite rígido de tempo real por chamada de ferramenta, e notificações de progresso do servidor não o estendem. Valores abaixo de 1000 são ignorados e caem para `MCP_TOOL_TIMEOUT`, ou para seu padrão de cerca de 28 horas quando essa variável não está definida. Para um servidor HTTP, SSE, ou [conector claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai) há também um segundo temporizador por solicitação que cobre cada solicitação até o primeiro byte de resposta do servidor. Claude Code define esse temporizador para o maior de três valores: 60 segundos, o tempo limite de ferramenta que se aplica ao servidor, e `MCP_TIMEOUT`. O padrão de 28 horas de um `MCP_TOOL_TIMEOUT` não definido não entra nessa comparação, e um valor abaixo de 60 segundos não encurta o temporizador. Os servidores Stdio e WebSocket não têm temporizador por solicitação.491O `timeout` por servidor é um limite rígido de tempo real por chamada de ferramenta, e notificações de progresso do servidor não o estendem. Valores abaixo de 1000 são ignorados e caem para `MCP_TOOL_TIMEOUT`, ou para seu padrão de cerca de 28 horas quando essa variável não está definida. Para um servidor HTTP, SSE, ou [conector claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai) há também um segundo temporizador por solicitação que cobre cada solicitação até o primeiro byte de resposta do servidor. Claude Code define esse temporizador para o maior de três valores: 60 segundos, o tempo limite de ferramenta que se aplica ao servidor, e `MCP_TIMEOUT`. O padrão de 28 horas de um `MCP_TOOL_TIMEOUT` não definido não entra nessa comparação, e um valor abaixo de 60 segundos não encurta o temporizador. Os servidores Stdio e WebSocket não têm temporizador por solicitação.

481 492 

482Um `timeout` por servidor de pelo menos 1000 também atua como um piso no tempo limite de inatividade descrito abaixo: Claude Code nunca aborta as chamadas de ferramenta desse servidor por inatividade mais cedo do que o `timeout` por servidor. Requer Claude Code v2.1.203 ou posterior.493Um `timeout` por servidor de pelo menos 1000 também atua como um piso no tempo limite de inatividade descrito abaixo: Claude Code nunca aborta as chamadas de ferramenta desse servidor por inatividade mais cedo do que o `timeout` por servidor.

483 494 

484Uma chamada de ferramenta para um servidor MCP que não envia resposta e nenhuma notificação de progresso para a janela de inatividade aborta com um erro em vez de aguardar o limite de tempo real. O tempo limite de inatividade se aplica a todos os tipos de servidor exceto servidores IDE e SDK em processo. A janela de inatividade padrão é de cinco minutos para servidores HTTP, SSE, WebSocket, e [conector claude.ai](#use-mcp-servers-from-claude-ai), e de 30 minutos para servidores stdio. Antes da v2.1.203, servidores stdio eram isentos do tempo limite de inatividade.495Uma chamada de ferramenta para um servidor MCP que não envia resposta e nenhuma notificação de progresso para a janela de inatividade aborta com um erro em vez de aguardar o limite de tempo real. O tempo limite de inatividade se aplica a todos os tipos de servidor exceto servidores IDE e SDK em processo. A janela de inatividade padrão é de cinco minutos para servidores HTTP, SSE, WebSocket, e [conector claude.ai](#use-mcp-servers-from-claude-ai), e de 30 minutos para servidores stdio.

485 496 

486Defina a variável de ambiente [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/pt/env-vars) em milissegundos para alterar a janela de inatividade, ou defina-a como `0` para desabilitar a verificação.497Defina a variável de ambiente [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/pt/env-vars) em milissegundos para alterar a janela de inatividade, ou defina-a como `0` para desabilitar a verificação.

487 498 


493 504 

494Uma chamada de ferramenta MCP na conversa principal que ainda está em execução após dois minutos se move para uma tarefa em segundo plano em vez de bloquear a sessão. Claude recebe o ID da tarefa imediatamente e continua trabalhando, e o resultado chega como uma notificação de tarefa quando a chamada se resolve. O backgrounding automático requer Claude Code v2.1.212 ou posterior.505Uma chamada de ferramenta MCP na conversa principal que ainda está em execução após dois minutos se move para uma tarefa em segundo plano em vez de bloquear a sessão. Claude recebe o ID da tarefa imediatamente e continua trabalhando, e o resultado chega como uma notificação de tarefa quando a chamada se resolve. O backgrounding automático requer Claude Code v2.1.212 ou posterior.

495 506 

496A tarefa aparece em [`/tasks`](/docs/pt/commands#all-commands), onde você também pode pará-la, e não sobrevive ao sair da sessão. A entrada da tarefa mostra o progresso mais recente que o servidor relatou.507A tarefa aparece em [`/tasks`](/docs/pt/commands#all-commands), onde você também pode pará-la, e não sobrevive ao sair da sessão. A entrada da tarefa mostra o progresso mais recente que o servidor relatou. Se você parar a tarefa, Claude Code cancela a chamada e informa a Claude que nenhum resultado virá. Parar não garante que o servidor pare: ele pode já ter feito parte do trabalho, ou ainda pode concluí-lo.

497 508 

498Os limites por chamada ainda se aplicam enquanto a chamada é executada em segundo plano: o limite de tempo real definido pelo `timeout` por servidor ou [`MCP_TOOL_TIMEOUT`](/docs/pt/env-vars), e o tempo limite de inatividade definido por [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/pt/env-vars).509Os limites por chamada ainda se aplicam enquanto a chamada é executada em segundo plano: o limite de tempo real definido pelo `timeout` por servidor ou [`MCP_TOOL_TIMEOUT`](/docs/pt/env-vars), e o tempo limite de inatividade definido por [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/pt/env-vars).

499 510 


793 --header "Authorization: Bearer YOUR_GITHUB_PAT"804 --header "Authorization: Bearer YOUR_GITHUB_PAT"

794```805```

795 806 

796Substitua `YOUR_GITHUB_PAT` pelo seu token de acesso pessoal. O comando `claude mcp add` salva a configuração sem validar credenciais, portanto um valor de espaço reservado é aceito aqui, mas o servidor falha ao conectar mais tarde. Para verificar a conexão, execute `/mcp` e verifique se o servidor mostra `connected`. Um servidor com credenciais inválidas mostra `failed`, e o detalhe da falha inclui o status HTTP que o servidor retornou, como um 401.807Substitua `YOUR_GITHUB_PAT` pelo seu token de acesso pessoal. O comando `claude mcp add` salva a configuração sem validar credenciais, portanto um valor de espaço reservado é aceito aqui, mas o servidor falha ao conectar mais tarde. Para verificar a conexão, execute `/mcp` e verifique se a linha do servidor mostra uma marca de seleção. Um servidor com credenciais inválidas mostra um ✘ em vez disso, e seu [detalhe da falha](#server-status-detail) inclui o status HTTP que o servidor retornou, como um 401.

797 808 

798Então trabalhe com GitHub:809Então trabalhe com GitHub:

799 810 


820 --dsn "postgresql://readonly:pass@prod.db.com:5432/analytics"831 --dsn "postgresql://readonly:pass@prod.db.com:5432/analytics"

821```832```

822 833 

823Para confirmar que o servidor inicia, execute `/mcp` e verifique se `db` mostra `connected`.834Para confirmar que o servidor inicia, execute `/mcp` e verifique se a linha `db` mostra uma marca de seleção.

824 835 

825Então consulte seu banco de dados naturalmente:836Então consulte seu banco de dados naturalmente:

826 837 


847* Para um servidor no qual você ainda não fez login, qualquer código de status o sinaliza em `/mcp` para que você possa completar o fluxo OAuth.858* Para um servidor no qual você ainda não fez login, qualquer código de status o sinaliza em `/mcp` para que você possa completar o fluxo OAuth.

848* Para um [conector claude.ai](#use-mcp-servers-from-claude-ai), um `401` causado por claude.ai rejeitando seu token de sessão não sinaliza o conector, porque re-autorizar o conector não pode corrigir seu login. Claude Code mostra o [estado de token de sessão rejeitado](/docs/pt/errors#claude-ai-rejected-the-session-token) em vez disso.859* Para um [conector claude.ai](#use-mcp-servers-from-claude-ai), um `401` causado por claude.ai rejeitando seu token de sessão não sinaliza o conector, porque re-autorizar o conector não pode corrigir seu login. Claude Code mostra o [estado de token de sessão rejeitado](/docs/pt/errors#claude-ai-rejected-the-session-token) em vez disso.

849* Para um servidor cujo cabeçalho `Authorization` você configurou, em `headers` ou através de um [`headersHelper`](#use-dynamic-headers-for-custom-authentication), um `401` ou `403` ao conectar não sinaliza o servidor, porque a credencial a corrigir é a que você configurou. Claude Code relata a conexão como falha em vez disso. Se você definiu esse cabeçalho a partir de uma referência `${VAR}`, verifique se essa variável é uma que Claude Code [lê como vazia](#credential-variables-that-read-as-empty).860* Para um servidor cujo cabeçalho `Authorization` você configurou, em `headers` ou através de um [`headersHelper`](#use-dynamic-headers-for-custom-authentication), um `401` ou `403` ao conectar não sinaliza o servidor, porque a credencial a corrigir é a que você configurou. Claude Code relata a conexão como falha em vez disso. Se você definiu esse cabeçalho a partir de uma referência `${VAR}`, verifique se essa variável é uma que Claude Code [lê como vazia](#credential-variables-that-read-as-empty).

850* Para um conector [entregue a uma sessão em nuvem](#how-connectors-reach-claude-code), Claude Code não executa um fluxo de login, porque o proxy da sessão se autentica no conector com a autorização que você concedeu em claude.ai. Quando um conector lá precisa ser autorizado novamente, reconecte-o em [claude.ai/customize/connectors](https://claude.ai/customize/connectors) em vez de a partir da sessão.861* Para um conector [entregue a uma sessão na nuvem](#how-connectors-reach-claude-code), Claude Code não executa um fluxo de login, porque o proxy da sessão se autentica no conector com a autorização que você concedeu em claude.ai. Quando um conector lá precisa ser autorizado novamente, reconecte-o em [claude.ai/customize/connectors](https://claude.ai/customize/connectors) em vez de a partir da sessão.

851 862 

852Quando uma solicitação para um servidor OAuth no qual você já fez login retorna `401 Unauthorized`, Claude Code atualiza o token armazenado, reconecta e tenta a solicitação novamente uma vez. Ele sinaliza o servidor em `/mcp` apenas se essa tentativa também falhar. Antes da v2.1.206, uma atualização de token que falhava por um motivo transitório, como um erro de rede, sinalizava um servidor OAuth como necessitando autenticação pelo resto da sessão, mesmo que seu token de atualização ainda fosse válido.863Quando uma requisição para um servidor OAuth no qual você já fez login retorna `401 Unauthorized`, Claude Code atualiza o token armazenado, reconecta e tenta a requisição novamente uma vez. Ele sinaliza o servidor em `/mcp` apenas se essa tentativa também falhar.

853 864 

854Quando o servidor rejeita o token de atualização armazenado, Claude Code imediatamente mostra um aviso apontando para `/mcp`. Abra `/mcp` e selecione **Re-autenticar** no servidor para fazer login novamente antes que a próxima chamada de ferramenta falhe.865Quando o servidor rejeita o token de atualização armazenado, Claude Code imediatamente mostra um aviso apontando para `/mcp`. Abra `/mcp` e selecione **Re-autenticar** no servidor para fazer login novamente antes que a próxima chamada de ferramenta falhe.

855 866 


859 870 

860O aviso anuncia cada servidor uma vez e o deixa de fora da contagem em inicializações posteriores até que esse servidor tenha se conectado e precise de login novamente. `/mcp` ainda lista todos os servidores que precisam de login.871O aviso anuncia cada servidor uma vez e o deixa de fora da contagem em inicializações posteriores até que esse servidor tenha se conectado e precise de login novamente. `/mcp` ainda lista todos os servidores que precisam de login.

861 872 

862No modo não interativo não há painel `/mcp`, então Claude Code não pode executar o fluxo OAuth para você. Quando um servidor configurado precisa de autenticação durante uma execução `claude -p` ou Agent SDK com [busca de ferramentas](#scale-with-mcp-tool-search) ativada, que é o padrão, Claude Code informa ao Claude que as ferramentas do servidor estão indisponíveis até que você o autorize. Claude pode então nomear o servidor que precisa de login. Complete o login de uma sessão interativa com `/mcp` ou `claude mcp login <name>`.873Uma execução `claude -p` ou do Agent SDK não tem painel `/mcp`, então Claude Code não pode executar o fluxo OAuth nela. Para usar um servidor que precisa de autenticação, complete o login primeiro a partir de uma sessão interativa: execute `/mcp` na sessão, ou `claude mcp login <name>` no seu shell. Quando um servidor configurado precisa de autenticação durante uma execução `claude -p` ou do Agent SDK com [busca de ferramentas](#scale-with-mcp-tool-search) ativada, Claude Code informa ao Claude que as ferramentas do servidor estão indisponíveis até que você o autorize.

863 874 

864Se você configurou `headers.Authorization` para o servidor e o servidor rejeita esse cabeçalho, Claude Code relata a conexão como falha em vez de voltar para OAuth. Verifique se o token é válido para o endpoint MCP, ou remova o cabeçalho para usar o fluxo OAuth.875Se você configurou `headers.Authorization` para o servidor e o servidor rejeita esse cabeçalho, Claude Code relata a conexão como falha em vez de voltar para OAuth. Verifique se o token é válido para o endpoint MCP, ou remova o cabeçalho para usar o fluxo OAuth.

865 876 


1003</Tip>1014</Tip>

1004 1015 

1005<h3 id="override-oauth-metadata-discovery">1016<h3 id="override-oauth-metadata-discovery">

1006 Substituir descoberta de metadados OAuth1017 Sobrescrever a descoberta de metadados OAuth

1007</h3>1018</h3>

1008 1019 

1009Aponte Claude Code para uma URL de metadados específica de servidor de autorização OAuth para contornar a cadeia de descoberta padrão. Defina `authServerMetadataUrl` quando os endpoints padrão do servidor MCP falharem, ou quando você deseja rotear a descoberta através de um proxy interno. Por padrão, Claude Code primeiro verifica os Metadados de Recurso Protegido RFC 9728 em `/.well-known/oauth-protected-resource`, depois volta para os metadados do servidor de autorização RFC 8414 em `/.well-known/oauth-authorization-server`.1020Aponte Claude Code para uma URL de metadados específica de servidor de autorização OAuth para contornar a cadeia de descoberta padrão. Defina `authServerMetadataUrl` quando os endpoints padrão do servidor MCP falharem, ou quando você deseja rotear a descoberta através de um proxy interno. Por padrão, Claude Code primeiro verifica os Metadados de Recurso Protegido RFC 9728 em `/.well-known/oauth-protected-resource`, depois volta para os metadados do servidor de autorização RFC 8414 em `/.well-known/oauth-authorization-server`.


1024}1035}

1025```1036```

1026 1037 

1027A URL deve usar `https://`. Os `scopes_supported` da URL de metadados substituem os escopos que o servidor upstream anuncia.1038A URL deve usar `https://`. Os `scopes_supported` da URL de metadados sobrescrevem os escopos que o servidor upstream anuncia.

1028 1039 

1029<h3 id="restrict-oauth-scopes">1040<h3 id="restrict-oauth-scopes">

1030 Restringir escopos OAuth1041 Restringir escopos OAuth


1060 Usar cabeçalhos dinâmicos para autenticação personalizada1071 Usar cabeçalhos dinâmicos para autenticação personalizada

1061</h3>1072</h3>

1062 1073 

1063Se seu servidor MCP usar um esquema de autenticação diferente de OAuth, como Kerberos, tokens de curta duração ou um SSO interno, use `headersHelper` para gerar cabeçalhos de solicitação no momento da conexão. Claude Code executa o comando e mescla sua saída nos cabeçalhos de conexão.1074Se seu servidor MCP usar um esquema de autenticação diferente de OAuth, como Kerberos, tokens de curta duração ou um SSO interno, use `headersHelper` para gerar cabeçalhos de requisição no momento da conexão. Claude Code executa o comando e mescla sua saída nos cabeçalhos de conexão.

1064 1075 

1065```json theme={null}1076```json theme={null}

1066{1077{


1093* O comando deve escrever um objeto JSON de pares chave-valor de string para stdout1104* O comando deve escrever um objeto JSON de pares chave-valor de string para stdout

1094* Claude Code executa o comando em um shell e desiste dele após 10 segundos1105* Claude Code executa o comando em um shell e desiste dele após 10 segundos

1095* Claude Code escolhe o diretório de trabalho do comando por [onde você configurou o servidor](#where-the-helper-runs), então forneça o script como um caminho absoluto ou coloque-o em `PATH`1106* Claude Code escolhe o diretório de trabalho do comando por [onde você configurou o servidor](#where-the-helper-runs), então forneça o script como um caminho absoluto ou coloque-o em `PATH`

1096* Cabeçalhos dinâmicos substituem qualquer `headers` estático com o mesmo nome1107* Cabeçalhos dinâmicos sobrescrevem qualquer `headers` estático com o mesmo nome

1097 1108 

1098Claude Code executa o auxiliar novamente em cada conexão, no início da sessão e ao reconectar, uma vez que a [regra de confiança para servidores de escopo de projeto e local](#trust-a-folder-before-its-headershelper-runs) permite que ele seja executado. Ele não armazena em cache o resultado, então seu script é responsável por qualquer reutilização de token.1109Claude Code executa o auxiliar novamente em cada conexão, no início da sessão e ao reconectar, uma vez que a [regra de confiança para servidores de escopo de projeto e local](#trust-a-folder-before-its-headershelper-runs) permite que ele seja executado. Ele não armazena em cache o resultado, então seu script é responsável por qualquer reutilização de token.

1099 1110 


1151 1162 

1152* **Confiança que não conta**: a confiança de uma pasta pai, e a confiança automática que uma sessão `claude -p` ou SDK obtém para [hooks em arquivos de configurações](/docs/pt/permissions#what-runs-before-you-trust-a-folder)1163* **Confiança que não conta**: a confiança de uma pasta pai, e a confiança automática que uma sessão `claude -p` ou SDK obtém para [hooks em arquivos de configurações](/docs/pt/permissions#what-runs-before-you-trust-a-folder)

1153* **Até você confiar na pasta**: Claude Code conecta o servidor apenas com seus `headers` estáticos. Em uma sessão `claude -p` ou SDK ele também imprime uma linha [`headersHelper not run`](/docs/pt/errors#headershelper-not-run) por servidor para stderr, dizendo-lhe como conceder a confiança.1164* **Até você confiar na pasta**: Claude Code conecta o servidor apenas com seus `headers` estáticos. Em uma sessão `claude -p` ou SDK ele também imprime uma linha [`headersHelper not run`](/docs/pt/errors#headershelper-not-run) por servidor para stderr, dizendo-lhe como conceder a confiança.

1154* **Confiança sem um diálogo**: defina `projects["<path>"].hasTrustDialogAccepted` para `true` em `~/.claude.json`. `<path>` é a pasta que [Regras de permissão de projeto e confiança de espaço de trabalho](/docs/pt/permissions#project-allow-rules-and-workspace-trust) diz que Claude Code usa como chave para a confiança.1165* **Confiança sem um diálogo**: defina `projects["<path>"].hasTrustDialogAccepted` para `true` em `~/.claude.json`. `<path>` é a pasta que [Regras de permissão de projeto e confiança de workspace](/docs/pt/permissions#project-allow-rules-and-workspace-trust) diz que Claude Code usa como chave para a confiança.

1155 1166 

1156Claude Code aplica a mesma regra a um servidor declarado inline em um [arquivo de agente](/docs/pt/sub-agents#scope-mcp-servers-to-a-subagent), verificando onde esse arquivo de agente veio: seu projeto, para um arquivo em seu diretório `.claude/agents/`, ou um diretório `--add-dir`. Até você [confiar nesse projeto ou diretório em si](/docs/pt/permissions#what-runs-before-you-trust-a-folder), Claude Code não carrega o servidor, então seu auxiliar nunca é executado também.1167Claude Code aplica a mesma regra a um servidor declarado inline em um [arquivo de agente](/docs/pt/sub-agents#scope-mcp-servers-to-a-subagent), verificando onde esse arquivo de agente veio: seu projeto, para um arquivo em seu diretório `.claude/agents/`, ou um diretório `--add-dir`. Até você [confiar nesse projeto ou diretório em si](/docs/pt/permissions#what-runs-before-you-trust-a-folder), Claude Code não carrega o servidor, então seu auxiliar nunca é executado também.

1157 1168 


1218 </Step>1229 </Step>

1219</Steps>1230</Steps>

1220 1231 

1221Os nomes de servidores adicionados através de comandos `claude mcp` podem conter apenas letras, números, hífens e sublinhados. O Claude Desktop não aplica essa restrição, portanto um servidor do Claude Desktop cujo nome contém qualquer outro caractere, como um espaço, não pode ser importado. A importação relata cada nome que rejeita e ainda importa os outros servidores que você selecionou. Antes da v2.1.205, o primeiro nome inválido interrompia a importação e nenhum dos servidores selecionados era adicionado.1232Os nomes de servidores adicionados através de comandos `claude mcp` podem conter apenas letras, números, hífens e sublinhados. O Claude Desktop não aplica essa restrição, portanto um servidor do Claude Desktop cujo nome contém qualquer outro caractere, como um espaço, não pode ser importado. A importação relata cada nome que rejeita e ainda importa os outros servidores que você selecionou.

1222 1233 

1223<Tip>1234<Tip>

1224 Dicas:1235 Dicas:


1398 * Este servidor MCP apenas expõe as ferramentas do Claude Code ao seu cliente MCP, portanto seu próprio cliente é responsável por implementar confirmação do usuário para chamadas de ferramentas individuais.1409 * Este servidor MCP apenas expõe as ferramentas do Claude Code ao seu cliente MCP, portanto seu próprio cliente é responsável por implementar confirmação do usuário para chamadas de ferramentas individuais.

1399</Tip>1410</Tip>

1400 1411 

1412Quando o texto JSON no resultado de uma chamada de ferramenta Bash ou PowerShell inclui um campo `backgroundOutputPath`, a chamada deixou seu comando em execução [em segundo plano](/docs/pt/tools-reference#background-commands), como quando a chamada definiu `run_in_background: true` ou o comando atingiu seu timeout. O campo fornece o caminho do arquivo de saída do comando. Nada notifica seu cliente quando o comando termina, e o arquivo não recebe nenhuma linha de encerramento quando isso acontece, então ler o arquivo mostra a saída escrita até o momento. Para detectar o fim, acrescente um marcador ao comando, como `npm test; echo DONE`, e procure por ele no arquivo. O campo `backgroundOutputPath` requer Claude Code v2.1.295 ou posterior.

1413 

1401<h2 id="mcp-output-limits-and-warnings">1414<h2 id="mcp-output-limits-and-warnings">

1402 Limites de saída do MCP e avisos1415 Limites de saída do MCP e avisos

1403</h2>1416</h2>


1409* **Limite padrão**: o máximo padrão é 25.000 tokens1422* **Limite padrão**: o máximo padrão é 25.000 tokens

1410* **Escopo**: a variável de ambiente se aplica a ferramentas que não declaram seu próprio limite. Ferramentas que definem [`anthropic/maxResultSizeChars`](#raise-the-limit-for-a-specific-tool) usam esse valor em vez disso para conteúdo de texto, independentemente do que `MAX_MCP_OUTPUT_TOKENS` está definido. Ferramentas que retornam dados de imagem ainda estão sujeitas a `MAX_MCP_OUTPUT_TOKENS`1423* **Escopo**: a variável de ambiente se aplica a ferramentas que não declaram seu próprio limite. Ferramentas que definem [`anthropic/maxResultSizeChars`](#raise-the-limit-for-a-specific-tool) usam esse valor em vez disso para conteúdo de texto, independentemente do que `MAX_MCP_OUTPUT_TOKENS` está definido. Ferramentas que retornam dados de imagem ainda estão sujeitas a `MAX_MCP_OUTPUT_TOKENS`

1411* **Acima do limite**: quando um resultado bem-sucedido sem conteúdo de imagem excede o limite de tokens, Claude Code o salva em um arquivo e o substitui na conversa com uma mensagem que nomeia o caminho do arquivo, para que Claude leia o arquivo quando precisar do conteúdo. O arquivo fica no diretório `tool-results` da sessão em [`~/.claude/projects/`](/docs/pt/claude-directory#cleaned-up-automatically).1424* **Acima do limite**: quando um resultado bem-sucedido sem conteúdo de imagem excede o limite de tokens, Claude Code o salva em um arquivo e o substitui na conversa com uma mensagem que nomeia o caminho do arquivo, para que Claude leia o arquivo quando precisar do conteúdo. O arquivo fica no diretório `tool-results` da sessão em [`~/.claude/projects/`](/docs/pt/claude-directory#cleaned-up-automatically).

1412* **Tamanho da resposta de servidores HTTP e SSE**: Claude Code para de ler uma resposta de um servidor [HTTP](#option-1-add-a-remote-http-server) ou [SSE](#option-2-add-a-remote-sse-server) assim que um corpo de resposta JSON, ou um evento de um fluxo de eventos, ultrapassa 16 MB após a descompressão. A requisição à qual essa resposta corresponde falha. Se você mantém o servidor, retorne menos dados por resposta para permanecer abaixo do limite, por exemplo, paginando os resultados1425* **Tamanho da resposta de servidores HTTP e SSE**: quando uma resposta de um servidor [HTTP](#option-1-add-a-remote-http-server) ou [SSE](#option-2-add-a-remote-sse-server) ultrapassa 16 MiB, Claude Code para de lê-la e a requisição falha. O limite se aplica após a descompressão a um corpo de resposta JSON ou a um evento de um fluxo de eventos. Se você mantém o servidor, retorne menos dados por resposta para permanecer abaixo do limite, por exemplo, paginando os resultados

1426* **Tamanho da mensagem de servidores WebSocket**: quando um servidor [WebSocket](#option-4-add-a-remote-websocket-server) envia uma mensagem com mais de 16 MiB, Claude Code [fecha a conexão](#mid-session-drops-of-a-remote-server), e as chamadas em andamento nesse servidor falham. Se você mantém o servidor, retorne menos dados por mensagem para permanecer abaixo do limite

1413 1427 

1414Uma chamada que Claude Code [moveu para uma tarefa em segundo plano](#automatic-backgrounding-of-long-tool-calls) informa seu resultado por meio da notificação da tarefa. Mais dois limites se aplicam a uma chamada que é concluída em primeiro plano:1428Uma chamada que Claude Code [moveu para uma tarefa em segundo plano](#automatic-backgrounding-of-long-tool-calls) informa seu resultado por meio da notificação da tarefa. Mais dois limites se aplicam a uma chamada que é concluída em primeiro plano:

1415 1429 


1483 1497 

1484O [tratamento do combinador de nível raiz](#tool-input-schemas-with-a-root-level-combinator) é separado e mantém seu próprio comportamento quando a busca de sinalizadores está desativada ou os sinalizadores nunca chegaram.1498O [tratamento do combinador de nível raiz](#tool-input-schemas-with-a-root-level-combinator) é separado e mantém seu próprio comportamento quando a busca de sinalizadores está desativada ou os sinalizadores nunca chegaram.

1485 1499 

1500<h2 id="tools-with-names-longer-than-128-characters">

1501 Ferramentas com nomes maiores que 128 caracteres

1502</h2>

1503 

1504Se `/mcp` listar uma ferramenta que Claude não consegue chamar, verifique se o nome completo da ferramenta tem mais de 128 caracteres. Execute `/mcp` na sua sessão e selecione a ferramenta para ver seu nome completo, como `mcp__<server>__<tool>`. O Claude Code deixa uma ferramenta MCP de fora das ferramentas que envia ao Claude quando seu nome completo tem mais de 128 caracteres. A API do Claude rejeita uma requisição que inclua tal ferramenta, portanto deixar a ferramenta de fora mantém as outras ferramentas do servidor funcionando.

1505 

1506Para a mensagem que nomeia a ferramenta e as formas de encurtar seu nome completo, consulte [Nome de ferramenta MCP com mais de 128 caracteres](/docs/pt/errors#mcp-tool-name-over-128-characters).

1507 

1486<h2 id="require-approval-for-a-specific-tool">1508<h2 id="require-approval-for-a-specific-tool">

1487 Exigir aprovação para uma ferramenta específica1509 Exigir aprovação para uma ferramenta específica

1488</h2>1510</h2>


1584A busca de ferramentas mantém o uso de contexto MCP baixo ao adiar as definições de ferramentas até que Claude as necessite. Apenas nomes de ferramentas e instruções do servidor são carregados no início da sessão, portanto adicionar mais servidores MCP tem impacto mínimo na sua janela de contexto. Claude Code não impõe um limite fixo de ferramentas por servidor; o limite prático é o seu orçamento de janela de contexto.1606A busca de ferramentas mantém o uso de contexto MCP baixo ao adiar as definições de ferramentas até que Claude as necessite. Apenas nomes de ferramentas e instruções do servidor são carregados no início da sessão, portanto adicionar mais servidores MCP tem impacto mínimo na sua janela de contexto. Claude Code não impõe um limite fixo de ferramentas por servidor; o limite prático é o seu orçamento de janela de contexto.

1585 1607 

1586<Note>1608<Note>

1587 A busca de ferramentas não é suportada em implantações do Microsoft Foundry [hospedadas no Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options), que a rejeitam no lado do servidor: Claude Code detecta a rejeição e carrega as ferramentas MCP antecipadamente para essa implantação. [`ENABLE_TOOL_SEARCH`](#configure-tool-search) não pode sobrescrever isso, pois a rejeição vem da implantação em si.1609 A busca de ferramentas não é suportada em [implantações do Microsoft Foundry hospedadas no Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options), que a rejeitam no lado do servidor: Claude Code detecta a rejeição e carrega as ferramentas MCP antecipadamente para essa implantação. [`ENABLE_TOOL_SEARCH`](#configure-tool-search) não pode sobrescrever isso, pois a rejeição vem da implantação em si.

1588</Note>1610</Note>

1589 1611 

1590<span id="for-mcp-server-authors" />1612<span id="for-mcp-server-authors" />


1601* Quando Claude deve procurar por suas ferramentas1623* Quando Claude deve procurar por suas ferramentas

1602* Capacidades principais que seu servidor fornece1624* Capacidades principais que seu servidor fornece

1603 1625 

1604Claude Code trunca cada descrição de ferramenta e instruções de cada servidor em 2.048 caracteres por padrão. Mantenha-as concisas e coloque detalhes críticos perto do início.1626Claude Code corta uma descrição de ferramenta ou instruções de servidor que ultrapassem estes limites padrão, e Claude vê apenas o texto antes do corte:

1627 

1628* **Instruções do servidor e a descrição de uma ferramenta carregada antecipadamente**: 4.096 caracteres

1629* **A descrição de uma ferramenta que Claude carrega através da busca de ferramentas**: 16.384 caracteres

1630 

1631Mantenha descrições e instruções concisas e coloque detalhes críticos perto do início. Quando a busca de ferramentas compara a consulta de Claude com a descrição de uma ferramenta, ela lê apenas a parte dentro do limite menor, então coloque também perto do início as palavras que Claude buscaria. Uma ferramenta é carregada antecipadamente e mantém o limite menor sempre que não é adiada, por exemplo quando [a busca de ferramentas está desativada](#configure-tool-search), quando a ferramenta está [marcada para carregar antecipadamente](#per-tool-alwaysload) ou quando seu servidor está [isento do adiamento](#exempt-a-server-from-deferral).

1632 

1633Antes da v2.1.296, o limite menor era de 2.048 caracteres e, antes da v2.1.295, ele se aplicava a todas as descrições de ferramentas, incluindo as carregadas através da busca de ferramentas.

1605 1634 

1606Para alterar o limite para cada servidor MCP em sua sessão, defina [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](/docs/pt/env-vars#variables) como um número de caracteres. Esta variável requer Claude Code v2.1.280 ou posterior.1635Para alterar os limites para cada servidor MCP em sua sessão, defina [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](/docs/pt/env-vars#variables) como um número de caracteres. O número que você define substitui ambos os limites: `8192`, por exemplo, aumenta o limite menor e reduz o maior. Esta variável requer Claude Code v2.1.280 ou posterior.

1607 1636 

1608<h4 id="per-tool-alwaysload">1637<h4 id="per-tool-alwaysload">

1609 Marcar uma ferramenta para carregar antecipadamente ou permanecer adiada1638 Marcar uma ferramenta para carregar antecipadamente ou permanecer adiada


1634 1663 

1635A busca de ferramentas é ativada por padrão: as ferramentas MCP são adiadas e descobertas sob demanda. Claude Code a desativa quando `ANTHROPIC_BASE_URL` aponta para um host que não é de primeira parte, pois a maioria dos proxies não encaminha blocos `tool_reference`. Defina `ENABLE_TOOL_SEARCH` explicitamente para sobrescrever esse fallback.1664A busca de ferramentas é ativada por padrão: as ferramentas MCP são adiadas e descobertas sob demanda. Claude Code a desativa quando `ANTHROPIC_BASE_URL` aponta para um host que não é de primeira parte, pois a maioria dos proxies não encaminha blocos `tool_reference`. Defina `ENABLE_TOOL_SEARCH` explicitamente para sobrescrever esse fallback.

1636 1665 

1637Definir [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/pt/env-vars) mantém a busca de ferramentas desativada. Você não pode sobrescrever isso definindo `ENABLE_TOOL_SEARCH` você mesmo. Sua organização pode manter a busca de ferramentas ativada através de [configurações gerenciadas](/docs/pt/managed-settings), no Claude Code v2.1.227 ou posterior. [Desativar capacidades de pré-lançamento](/docs/pt/llm-gateway-protocol#disable-pre-release-capabilities) cobre onde a substituição se aplica e o que a variável remove.1666Definir [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/pt/env-vars) mantém a busca de ferramentas desativada. Você não pode sobrescrever isso definindo `ENABLE_TOOL_SEARCH` você mesmo. No Claude Code v2.1.227 ou posterior, sua organização pode manter a busca de ferramentas ativada sob essa variável através de [configurações gerenciadas](/docs/pt/managed-settings). Em uma sessão que [recebe a configuração HIPAA](/docs/pt/hipaa-setup#check-how-developers-sign-in-and-connect), a busca de ferramentas fica desativada, e nem `ENABLE_TOOL_SEARCH` nem as configurações gerenciadas a reativam. [Desativar capacidades de pré-lançamento](/docs/pt/llm-gateway-protocol#disable-pre-release-capabilities) cobre onde a substituição se aplica e o que a variável remove.

1638 1667 

1639A busca de ferramentas requer um modelo que suporte blocos `tool_reference`: Claude Sonnet 4.5, Claude Haiku 4.5, Claude Opus 4.5 e modelos posteriores. Consulte [compatibilidade de modelo na documentação da API](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool#model-compatibility) para a lista atual.1668Claude Code usa a busca de ferramentas no Claude Opus 4, Claude Sonnet 4, Claude Haiku 4.5 e modelos posteriores, ou no Opus 4.5, Sonnet 4.5, Haiku 4.5 e modelos posteriores na Agent Platform do Google Cloud. Em modelos anteriores, Claude Code carrega todas as ferramentas MCP antecipadamente, e `ENABLE_TOOL_SEARCH=true` não sobrescreve isso.

1640 1669 

1641Na Agent Platform do Google Cloud, Claude Code decide por geração de modelo:1670Na Agent Platform do Google Cloud, Claude Code decide por geração de modelo:

1642 1671 


1649 1678 

1650| Valor | Comportamento |1679| Valor | Comportamento |

1651| :- | :- |1680| :- | :- |

1652| (não definido) | Todas as ferramentas MCP adiadas e carregadas sob demanda. Recorre ao carregamento antecipado na Agent Platform do Google Cloud com modelos anteriores à geração Claude 4.5, quando `ANTHROPIC_BASE_URL` é um host que não é de primeira parte, ou em uma implantação do Microsoft Foundry hospedada no Azure |1681| (não definido) | Todas as ferramentas MCP adiadas e carregadas sob demanda. Recorre ao carregamento antecipado em modelos anteriores ao Opus 4 e Sonnet 4, em modelos da Agent Platform do Google Cloud anteriores ao Opus 4.5, Sonnet 4.5 e Haiku 4.5, quando `ANTHROPIC_BASE_URL` é um host que não é de primeira parte, ou em uma implantação do Microsoft Foundry hospedada no Azure |

1653| `true` | Todas as ferramentas MCP adiadas, exceto em uma implantação do Microsoft Foundry hospedada no Azure, onde a rejeição no lado do servidor ainda força o carregamento antecipado, e em modelos da Agent Platform do Google Cloud anteriores à geração Claude 4.5, onde Claude Code continua carregando ferramentas antecipadamente. Claude Code envia o cabeçalho beta através de proxies e as requisições falham em proxies que não suportam blocos `tool_reference` |1682| `true` | As ferramentas MCP permanecem adiadas quando `ANTHROPIC_BASE_URL` é um host que não é de primeira parte. Os outros fallbacks de (não definido) ainda se aplicam. Claude Code envia o cabeçalho beta através de proxies e as requisições falham em proxies que não suportam blocos `tool_reference` |

1654| `auto` | Modo de limite: Claude Code carrega as ferramentas que de outra forma adiaria antecipadamente enquanto suas definições totalizam menos de 10% da janela de contexto e adia todas elas uma vez que as definições atingem 10% |1683| `auto` | Modo de limite: Claude Code carrega as ferramentas que de outra forma adiaria antecipadamente enquanto suas definições totalizam menos de 10% da janela de contexto e adia todas elas uma vez que as definições atingem 10% |

1655| `auto:N` | Modo de limite com uma porcentagem personalizada, onde `N` é 0-100. Por exemplo, `auto:5` para 5% |1684| `auto:N` | Modo de limite com uma porcentagem personalizada, onde `N` é 0-100. Por exemplo, `auto:5` para 5% |

1656| `false` | Todas as ferramentas MCP carregadas antecipadamente, sem adiamento |1685| `false` | Todas as ferramentas MCP carregadas antecipadamente, sem adiamento |


1663ENABLE_TOOL_SEARCH=false claude1692ENABLE_TOOL_SEARCH=false claude

1664```1693```

1665 1694 

1666Ou defina o valor no campo `env` do seu [settings.json](/docs/pt/settings-reference#env).1695Ou defina o valor no [campo `env` do seu settings.json](/docs/pt/settings-reference#env).

1667 1696 

1668Você também pode desativar a ferramenta `ToolSearch` especificamente:1697Você também pode desativar a ferramenta `ToolSearch` especificamente:

1669 1698 


1697 1726 

1698O campo `alwaysLoad` está disponível em todos os tipos de servidor.1727O campo `alwaysLoad` está disponível em todos os tipos de servidor.

1699 1728 

1700Definir `alwaysLoad: true` também faz a inicialização aguardar as ferramentas do servidor, limitado ao timeout de conexão padrão de 5 segundos, pois elas devem estar presentes quando o primeiro prompt é construído. Um servidor remoto com uma entrada [`cached`](#server-status-detail) válida fornece suas ferramentas do cache sem se conectar, portanto não retarda a inicialização. Outros servidores se conectam em segundo plano por padrão; defina [`MCP_CONNECTION_NONBLOCKING=0`](/docs/pt/env-vars) para fazer a inicialização aguardá-los também.1729Definir `alwaysLoad: true` também faz a inicialização aguardar as ferramentas do servidor, limitado ao timeout de conexão padrão de 5 segundos, pois elas devem estar presentes quando o primeiro prompt é construído. Um servidor remoto com uma [entrada `cached`](#server-status-detail) válida fornece suas ferramentas do cache sem se conectar, portanto não retarda a inicialização. Outros servidores se conectam em segundo plano por padrão; defina [`MCP_CONNECTION_NONBLOCKING=0`](/docs/pt/env-vars) para fazer a inicialização aguardá-los também.

1701 1730 

1702<h3 id="defer-a-servers-tools">1731<h3 id="defer-a-servers-tools">

1703 Adiar as ferramentas de um servidor1732 Adiar as ferramentas de um servidor

memory.md +3 −3

Details

258 258 

259Claude Code usa qualquer padrão que excederia o orçamento não expandido, e suas chaves literais não correspondem a nenhum arquivo. Antes da v2.1.217, um valor `paths` com muitos grupos de chaves travava ou fazia o CLI falhar na inicialização.259Claude Code usa qualquer padrão que excederia o orçamento não expandido, e suas chaves literais não correspondem a nenhum arquivo. Antes da v2.1.217, um valor `paths` com muitos grupos de chaves travava ou fazia o CLI falhar na inicialização.

260 260 

261A sintaxe Glob trata `[` como o início de uma expressão de colchete como `[abc]`. Um padrão com um `[` que não pode ser lido como uma expressão de colchete, como `photos [2024/**`, é inválido: não corresponde a nada, e os outros padrões da regra continuam funcionando. Para corresponder um `[` literal em um nome de arquivo, escape-o como `photos \[2024/**`. Antes da v2.1.207, um padrão inválido fazia a ferramenta Read falhar para cada arquivo em que a regra era avaliada, em vez de não corresponder a nada.261A sintaxe Glob trata `[` como o início de uma expressão de colchete como `[abc]`. Um padrão com um `[` que não pode ser lido como uma expressão de colchete, como `photos [2024/**`, é inválido: não corresponde a nada, e os outros padrões da regra continuam funcionando. Para corresponder um `[` literal em um nome de arquivo, escape-o como `photos \[2024/**`.

262 262 

263<h4 id="rules-frontmatter-reference">263<h4 id="rules-frontmatter-reference">

264 Referência de frontmatter de regra264 Referência de frontmatter de regra


413 413 

414* **No início da sessão**: cada `AGENTS.md` e `.claude/AGENTS.md` em seu diretório de trabalho e nos diretórios acima dele. Em uma sessão interativa você vê uma linha como `no CLAUDE.md found; AGENTS.md loaded: /home/you/repo/AGENTS.md` na conversa414* **No início da sessão**: cada `AGENTS.md` e `.claude/AGENTS.md` em seu diretório de trabalho e nos diretórios acima dele. Em uma sessão interativa você vê uma linha como `no CLAUDE.md found; AGENTS.md loaded: /home/you/repo/AGENTS.md` na conversa

415* **Conforme Claude trabalha em subdiretórios**: um `AGENTS.md` de subdiretório, quando Claude abre um arquivo lá com a ferramenta Read e esse subdiretório não tem nenhum dos três arquivos `CLAUDE.md` próprios415* **Conforme Claude trabalha em subdiretórios**: um `AGENTS.md` de subdiretório, quando Claude abre um arquivo lá com a ferramenta Read e esse subdiretório não tem nenhum dos três arquivos `CLAUDE.md` próprios

416* **Dentro de cada `AGENTS.md`**: [importações `@path`](#import-additional-files) são expandidas, padrões [`claudeMdExcludes`](#exclude-specific-claude-md-files) se aplicam e subagentes que [pulam instruções de projeto](/docs/pt/sub-agents#what-loads-at-startup) também pulam esses arquivos416* **Dentro de cada `AGENTS.md`**: [importações `@path`](#import-additional-files) são expandidas, padrões [`claudeMdExcludes`](#exclude-specific-claude-md-files) se aplicam e subagentes que [iniciam sem instruções de projeto](/docs/pt/sub-agents#what-loads-at-startup) também iniciam sem esses arquivos

417* **Não lido**: `AGENTS.local.md`, `AGENTS.override.md` ou qualquer coisa sob um diretório `.agents/`417* **Não lido**: `AGENTS.local.md`, `AGENTS.override.md` ou qualquer coisa sob um diretório `.agents/`

418 418 

419<Note>419<Note>


692 692 

693Se um de seus arquivos de instrução estiver acima do comprimento recomendado, você verá um aviso na inicialização e quando executar `/status`. Você também verá um aviso quando arquivos que estão cada um dentro desse comprimento somam mais do que um limite combinado no início da sessão. Cada CLAUDE.md, arquivo de regras e importação `@path` conta como um arquivo separado.693Se um de seus arquivos de instrução estiver acima do comprimento recomendado, você verá um aviso na inicialização e quando executar `/status`. Você também verá um aviso quando arquivos que estão cada um dentro desse comprimento somam mais do que um limite combinado no início da sessão. Cada CLAUDE.md, arquivo de regras e importação `@path` conta como um arquivo separado.

694 694 

695O checkup [`/doctor`](/docs/pt/commands#all-commands) propõe cortes para um CLAUDE.md verificado: ele corta conteúdo que Claude pode derivar da base de código, como layouts de diretório, listas de dependências e visões gerais de arquitetura, e mantém armadilhas, justificativa e convenções que diferem dos padrões de ferramentas. A verificação de corte requer Claude Code v2.1.206 ou posterior.695O checkup [`/doctor`](/docs/pt/commands#all-commands) propõe cortes para um CLAUDE.md versionado: ele corta conteúdo que Claude pode derivar da base de código, como layouts de diretório, listas de dependências e visões gerais de arquitetura, e mantém armadilhas, justificativa e convenções que diferem dos padrões de ferramentas.

696 696 

697<h3 id="instructions-seem-lost-after-/compact">697<h3 id="instructions-seem-lost-after-/compact">

698 Instruções parecem perdidas após `/compact`698 Instruções parecem perdidas após `/compact`

Details

160 Usar um token de portador160 Usar um token de portador

161</h4>161</h4>

162 162 

163Claude Code envia o valor de `ANTHROPIC_FOUNDRY_AUTH_TOKEN` em cada solicitação como o cabeçalho `Authorization: Bearer`. Use esta opção quando outro processo, como um aplicativo host ou um script de login, já tiver obtido um token de acesso para você. Requer Claude Code v2.1.203 ou posterior.163Claude Code envia o valor de `ANTHROPIC_FOUNDRY_AUTH_TOKEN` em cada requisição como o cabeçalho `Authorization: Bearer`. Use esta opção quando outro processo, como um aplicativo host ou um script de login, já tiver obtido um token de acesso para você.

164 164 

165Defina a variável para um token de portador que o Microsoft Entra ID emitiu para seu recurso:165Defina a variável para um token de portador que o Microsoft Entra ID emitiu para seu recurso:

166 166 

model-config.md +3 −0

Details

867* **Para todos os modelos**: defina [`autoCompactWindow`](/docs/pt/settings-reference#autocompactwindow) em um arquivo de configurações, como `"autoCompactWindow": 200000` em `~/.claude/settings.json`. Uma janela que você salvou para um modelo com `/autocompact` tem precedência sobre essa chave no mesmo arquivo para esse modelo.867* **Para todos os modelos**: defina [`autoCompactWindow`](/docs/pt/settings-reference#autocompactwindow) em um arquivo de configurações, como `"autoCompactWindow": 200000` em `~/.claude/settings.json`. Uma janela que você salvou para um modelo com `/autocompact` tem precedência sobre essa chave no mesmo arquivo para esse modelo.

868* **Para um lançamento**: passe [`--autocompact`](/docs/pt/cli-reference#cli-flags) ao iniciar Claude Code. A flag sobrescreve sua configuração salva para esse lançamento sem alterá-la, e `claude --autocompact auto` executa a sessão na janela ajustada mesmo se sua configuração salva tiver um valor. Diferentemente de `/autocompact`, a flag não é preemptada por um escopo de configurações de prioridade mais alta, como configurações gerenciadas.868* **Para um lançamento**: passe [`--autocompact`](/docs/pt/cli-reference#cli-flags) ao iniciar Claude Code. A flag sobrescreve sua configuração salva para esse lançamento sem alterá-la, e `claude --autocompact auto` executa a sessão na janela ajustada mesmo se sua configuração salva tiver um valor. Diferentemente de `/autocompact`, a flag não é preemptada por um escopo de configurações de prioridade mais alta, como configurações gerenciadas.

869* **Em scripts e ambientes em nuvem**: defina [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/pt/env-vars). Enquanto estiver definida, ela tem precedência sobre o comando, a flag e a configuração, e `/autocompact` relata a substituição em vez de alterar a janela.869* **Em scripts e ambientes em nuvem**: defina [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/pt/env-vars). Enquanto estiver definida, ela tem precedência sobre o comando, a flag e a configuração, e `/autocompact` relata a substituição em vez de alterar a janela.

870* **Para um subagente**: consulte [Definir a janela de compactação automática para um subagente](/docs/pt/sub-agents#subagent-auto-compact-window).

870 871 

871O comando e a flag aceitam um tamanho de janela de 100K a 1M de tokens, em qualquer uma destas formas:872O comando e a flag aceitam um tamanho de janela de 100K a 1M de tokens, em qualquer uma destas formas:

872 873 


888* Modelos executando com uma janela nativa de 1M compactam antes da janela se encher, em aproximadamente 967K tokens por padrão. Estes incluem os modelos Fable, Sonnet 5 e posteriores, Haiku 5.5 e Opus 4.7 e posteriores. Atrás de uma `ANTHROPIC_BASE_URL` personalizada, consulte [a janela de contexto atrás de um gateway](#context-window-behind-a-gateway)889* Modelos executando com uma janela nativa de 1M compactam antes da janela se encher, em aproximadamente 967K tokens por padrão. Estes incluem os modelos Fable, Sonnet 5 e posteriores, Haiku 5.5 e Opus 4.7 e posteriores. Atrás de uma `ANTHROPIC_BASE_URL` personalizada, consulte [a janela de contexto atrás de um gateway](#context-window-behind-a-gateway)

889* Sessões em um ID de modelo que Claude Code não reconhece, como um alias de [gateway de LLM](/docs/pt/llm-gateway), compactam na janela de contexto que Claude Code assume para o ID; consulte [Corrigir a janela para um gateway ou ID de modelo personalizado](#correct-the-window-for-a-gateway-or-custom-model-id)890* Sessões em um ID de modelo que Claude Code não reconhece, como um alias de [gateway de LLM](/docs/pt/llm-gateway), compactam na janela de contexto que Claude Code assume para o ID; consulte [Corrigir a janela para um gateway ou ID de modelo personalizado](#correct-the-window-for-a-gateway-or-custom-model-id)

890 891 

892Consulte a configuração [`idleCompaction`](/docs/pt/settings-reference#idlecompaction) para saber quando Claude Code também compacta uma conversa que você deixa ociosa.

893 

891<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">894<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">

892 Corrigir a janela para um gateway ou ID de modelo personalizado895 Corrigir a janela para um gateway ou ID de modelo personalizado

893</h3>896</h3>

Details

635 Eventos que o Claude Code registra antes de um desenvolvedor fazer login não trazem a identidade do gateway. Quando o Claude Code abre uma sessão desconectada do gateway, por exemplo depois que [o gateway encerra o login](/docs/pt/errors#cloud-gateway-session-expired), os eventos de inicialização registrados antes do login trazem o `user.id` anônimo e nenhum `identity.source`. Eles incluem [`managed_settings_resolved`](#managed-settings-resolved-event), [`plugin_loaded`](#plugin-loaded-event) e [`mcp_server_connection`](#mcp-server-connection-event).635 Eventos que o Claude Code registra antes de um desenvolvedor fazer login não trazem a identidade do gateway. Quando o Claude Code abre uma sessão desconectada do gateway, por exemplo depois que [o gateway encerra o login](/docs/pt/errors#cloud-gateway-session-expired), os eventos de inicialização registrados antes do login trazem o `user.id` anônimo e nenhum `identity.source`. Eles incluem [`managed_settings_resolved`](#managed-settings-resolved-event), [`plugin_loaded`](#plugin-loaded-event) e [`mcp_server_connection`](#mcp-server-connection-event).

636</Note>636</Note>

637 637 

638Para os atributos de identidade em sessões Claude Desktop e Cowork que se conectam através de um gateway, veja a [referência de telemetria do gateway](/docs/pt/claude-apps-gateway-config#telemetry).638Para os atributos de identidade em sessões do Claude Desktop e do Cowork que se conectam por meio de um gateway, consulte a [referência de `telemetry` do gateway](/docs/pt/claude-apps-gateway-config#telemetry).

639 639 

640Os eventos incluem adicionalmente os seguintes atributos. Estes nunca são anexados a métricas porque causariam cardinalidade ilimitada:640Os eventos incluem adicionalmente os seguintes atributos. Estes nunca são anexados a métricas porque causariam cardinalidade ilimitada:

641 641 

642* `prompt.id`: UUID correlacionando um prompt do usuário com todos os eventos subsequentes até o próximo prompt. Veja [Atributos de correlação de eventos](#event-correlation-attributes).642* `prompt.id`: UUID correlacionando um prompt do usuário com todos os eventos subsequentes até o próximo prompt. Veja [Atributos de correlação de eventos](#event-correlation-attributes).

643* `workspace.host_paths`: diretórios de workspace do host selecionados no aplicativo desktop, como um array de strings643* `workspace.host_paths`: diretórios de workspace do host selecionados no aplicativo desktop, como um array de strings

644* `workflow.run_id`: identificador de execução, prefixado com `wf_`, na API e eventos de ferramenta emitidos por agentes que pertencem a uma execução de ferramenta [Workflow](/docs/pt/workflows). Filtrar eventos por um `workflow.run_id` reconstrói as requisições de API e resultados de ferramenta dessa execução. O identificador cobre os agentes que o script de workflow gera e quaisquer agentes que esses gerem por sua vez, como invocações de skill. Corresponde ao identificador de execução relatado no resultado da ferramenta Workflow. Ausente em todos os outros eventos. Requer Claude Code v2.1.202 ou posterior644* `workflow.run_id`: identificador de execução, com prefixo `wf_`, nos eventos de API e de ferramenta emitidos por agentes que pertencem a uma execução da ferramenta [Workflow](/docs/pt/workflows). Filtrar eventos por um `workflow.run_id` reconstrói as requisições de API e os resultados de ferramentas dessa execução. O identificador abrange os agentes que o script do workflow gera e quaisquer agentes que estes, por sua vez, gerem, como invocações de skills. Ele corresponde ao identificador de execução informado no resultado da ferramenta Workflow. Ausente em todos os outros eventos.

645* `workflow.name`: nome do workflow, o `meta.name` do seu script, emitido junto com `workflow.run_id`. Os nomes de workflow integrados aparecem literalmente quando a execução executa o script integrado não modificado. Nomes criados pelo usuário, incluindo cópias editadas de scripts integrados, são substituídos por `custom` a menos que `OTEL_LOG_TOOL_DETAILS=1` esteja definido. Requer Claude Code v2.1.202 ou posterior645* `workflow.name`: nome do workflow, o `meta.name` do seu script, emitido junto com `workflow.run_id`. Nomes de workflows integrados aparecem literalmente quando a execução roda o script integrado sem modificações. Nomes criados pelo usuário, incluindo cópias editadas de scripts integrados, são substituídos por `custom`, a menos que `OTEL_LOG_TOOL_DETAILS=1` esteja definido.

646 646 

647<h4 id="repository-attributes">647<h4 id="repository-attributes">

648 Atributos de repositório648 Atributos de repositório


1374* `pre_tokens`: Contagem aproximada de tokens antes da compactação1374* `pre_tokens`: Contagem aproximada de tokens antes da compactação

1375* `post_tokens`: Contagem aproximada de tokens após a compactação1375* `post_tokens`: Contagem aproximada de tokens após a compactação

1376* `error`: Mensagem de erro quando a compactação falhou1376* `error`: Mensagem de erro quando a compactação falhou

1377* `precompute_reuse`: Definido apenas quando `trigger` é `"manual"`. A compactação automática pode preparar um resumo em segundo plano antes que a janela de contexto se encha, e este atributo registra se `/compact` reutilizou esse resumo preparado. `"hit"` significa que ele foi reutilizado; `"miss_custom_instructions"`, `"miss_hook"` e `"miss_not_ready"` indicam o motivo pelo qual um novo resumo foi calculado1377* `precompute_reuse`: Definido apenas quando `trigger` é `"manual"` ou para uma [compactação ociosa](/docs/pt/settings-reference#idlecompaction), que informa `trigger` como `"auto"`. A compactação automática pode preparar um resumo em segundo plano antes que a janela de contexto se encha, e este atributo registra se a compactação reutilizou esse resumo preparado. `"hit"` significa que ele foi reutilizado; `"miss_custom_instructions"`, `"miss_hook"` e `"miss_not_ready"` indicam o motivo pelo qual um novo resumo foi calculado

1378 1378 

1379<h4 id="subagent-completed-event">1379<h4 id="subagent-completed-event">

1380 Evento de subagente concluído1380 Evento de subagente concluído

Details

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

210| Prazo de primeiro byte | Nenhum cabeçalho de resposta chega após Claude Code enviar a solicitação | API Anthropic direta e [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), incluindo através de um proxy HTTPS, mas não quando `ANTHROPIC_BASE_URL` ou `ANTHROPIC_AWS_BASE_URL` as roteia através de um [gateway](/docs/pt/gateways). Opt-in no Amazon Bedrock com `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; não executa no Agent Platform do Google Cloud ou no Microsoft Foundry | 180 segundos na API Anthropic direta, 300 segundos em outro lugar, mais um segundo por 32KB de corpo da solicitação |210| Prazo de primeiro byte | Nenhum cabeçalho de resposta chega após Claude Code enviar a solicitação | API Anthropic direta e [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), incluindo através de um proxy HTTPS, mas não quando `ANTHROPIC_BASE_URL` ou `ANTHROPIC_AWS_BASE_URL` as roteia através de um [gateway](/docs/pt/gateways). Opt-in no Amazon Bedrock com `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; não executa no Agent Platform do Google Cloud ou no Microsoft Foundry | 180 segundos na API Anthropic direta, 300 segundos em outro lugar, mais um segundo por 32KB de corpo da solicitação |

211| Watchdog de nível de evento | Nenhum evento de resposta é analisado. Em conexões onde o watchdog de nível de byte executa, bytes chegando, incluindo pings de keep-alive, também redefinem este watchdog, por até cerca de cinco minutos sem um evento analisado | Cada provedor | 300 segundos |211| Watchdog de nível de evento | Nenhum evento de resposta é analisado. Em conexões onde o watchdog de nível de byte executa, bytes chegando, incluindo pings de keep-alive, também redefinem este watchdog, por até cerca de cinco minutos sem um evento analisado | Cada provedor | 300 segundos |

212| Watchdog de nível de byte | Nenhum byte chega no fio, incluindo pings de keep-alive SSE | API Anthropic direta, [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), e [gateway](/docs/pt/gateways) conexões, incluindo um `ANTHROPIC_BASE_URL` customizado. Opt-in no Amazon Bedrock `vnd.amazon.eventstream` respostas com `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; não executa no Agent Platform do Google Cloud ou no Microsoft Foundry | 180 segundos na API Anthropic direta. Através de um `ANTHROPIC_BASE_URL` customizado, 180 segundos quando Claude Code [buscou as feature flags](/docs/pt/env-vars#features-that-need-feature-flag-fetching) e 300 segundos quando não buscou. 300 segundos em outro lugar |212| Watchdog de nível de byte | Nenhum byte chega no fio, incluindo pings de keep-alive SSE | API Anthropic direta, [Claude Platform on AWS](/docs/pt/claude-platform-on-aws) e conexões de [gateway](/docs/pt/gateways), incluindo um `ANTHROPIC_BASE_URL` customizado. Opt-in em respostas `vnd.amazon.eventstream` do Amazon Bedrock com `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; não executa no Agent Platform do Google Cloud ou no Microsoft Foundry | 180 segundos na API Anthropic direta. 300 segundos no Claude Platform on AWS, no Amazon Bedrock, em uma sessão do [Claude apps gateway](/docs/pt/claude-apps-gateway) e através de um `ANTHROPIC_BASE_URL` customizado |

213| Tempo limite de inatividade do corpo | Nenhum byte chega por 5 minutos | Provedores diferentes da API Anthropic direta, Claude Platform on AWS, e Amazon Bedrock com `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` definido, a menos que [`API_FORCE_IDLE_TIMEOUT`](/docs/pt/env-vars) mude isso | 5 minutos |213| Tempo limite de inatividade do corpo | Nenhum byte chega por 5 minutos | Provedores diferentes da API Anthropic direta, Claude Platform on AWS, e Amazon Bedrock com `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` definido, a menos que [`API_FORCE_IDLE_TIMEOUT`](/docs/pt/env-vars) mude isso | 5 minutos |

214 214 

215Se você definir `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`, o watchdog de nível de byte substitui o tempo limite de inatividade do corpo no Bedrock em vez de executar junto com ele. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` então também governa quanto tempo um stream Bedrock pode permanecer silencioso antes de Claude Code tratar a conexão como morta, dentro dos limites listados abaixo. Bytes chegando ainda não redefinem o watchdog de nível de evento no Bedrock. Com logging de debug ativado, cada stream Bedrock então registra uma mensagem de debug que começa com `wire-heartbeat: _chunkTimes absent`.215Se você definir `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`, o watchdog de nível de byte substitui o tempo limite de inatividade do corpo no Bedrock em vez de executar junto com ele. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` então também governa quanto tempo um stream Bedrock pode permanecer silencioso antes de Claude Code tratar a conexão como morta, dentro dos limites listados abaixo. Bytes chegando ainda não redefinem o watchdog de nível de evento no Bedrock. Com logging de debug ativado, cada stream Bedrock então registra uma mensagem de debug que começa com `wire-heartbeat: _chunkTimes absent`.

Details

239 * **[Sessões de Remote Control](/docs/pt/remote-control)** em sua máquina local: Manual, Accept edits, Plan e Auto para uma sessão que você mesmo iniciou, e você não pode selecionar Bypass permissions do aplicativo. Para usar Auto, a sessão precisa atender aos [requisitos de disponibilidade](#eliminate-prompts-with-auto-mode) do modo auto. Para um thread de projeto executado em seu computador, veja [Execute um thread em seu próprio computador](/docs/pt/claude-projects#run-a-thread-on-your-own-computer).239 * **[Sessões de Remote Control](/docs/pt/remote-control)** em sua máquina local: Manual, Accept edits, Plan e Auto para uma sessão que você mesmo iniciou, e você não pode selecionar Bypass permissions do aplicativo. Para usar Auto, a sessão precisa atender aos [requisitos de disponibilidade](#eliminate-prompts-with-auto-mode) do modo auto. Para um thread de projeto executado em seu computador, veja [Execute um thread em seu próprio computador](/docs/pt/claude-projects#run-a-thread-on-your-own-computer).

240 * Exceto por Bypass permissions, o dropdown mostra o modo de permissão em que a sessão local está, incluindo um definido do terminal. Ele atualiza quando o modo de permissão muda no aplicativo ou no terminal.240 * Exceto por Bypass permissions, o dropdown mostra o modo de permissão em que a sessão local está, incluindo um definido do terminal. Ele atualiza quando o modo de permissão muda no aplicativo ou no terminal.

241 * Sessões hospedadas pelo [aplicativo de desktop](/docs/pt/desktop) ou pela [extensão VS Code](/docs/pt/vs-code) relatam mudanças de modo de permissão ao claude.ai conforme acontecem, da mesma forma que sessões hospedadas em um terminal.241 * Sessões hospedadas pelo [aplicativo de desktop](/docs/pt/desktop) ou pela [extensão VS Code](/docs/pt/vs-code) relatam mudanças de modo de permissão ao claude.ai conforme acontecem, da mesma forma que sessões hospedadas em um terminal.

242 * Antes de v2.1.202, sessões conectadas com `/remote-control` ou `claude --remote-control` não relatavam seu modo de permissão, então claude.ai e o aplicativo móvel poderiam mostrar um modo em que a sessão não estava. A incompatibilidade afetava apenas o rótulo. Claude Code gerou prompts de permissão a partir do modo de permissão real da sessão, e eles ainda apareciam no aplicativo para aprovação.

243 242 

244 Para Remote Control, a máquina local executando a sessão deve estar conectada com sua conta claude.ai; chaves de API não são suportadas. Você também pode definir o modo de permissão inicial ao iniciar essa sessão local:243 Para Remote Control, a máquina local executando a sessão deve estar conectada com sua conta claude.ai; chaves de API não são suportadas. Você também pode definir o modo de permissão inicial ao iniciar essa sessão local:

245 244 


352 351 

353Para impedir que desenvolvedores usem o modo auto, defina `disableAutoMode` como `"disable"` em [configurações gerenciadas](/docs/pt/managed-settings). Isso remove `auto` do ciclo `Shift+Tab` e uma sessão iniciada com `--permission-mode auto` inicia em Manual em vez disso. Uma sessão já em execução no modo auto o deixa quando a configuração chega a essa sessão de uma [fonte implantada por administrador](/docs/pt/managed-settings#which-managed-source-claude-code-uses) e mostra `auto mode disabled by settings`. Antes de v2.1.251, uma sessão em execução mantinha o modo auto até que terminasse.352Para impedir que desenvolvedores usem o modo auto, defina `disableAutoMode` como `"disable"` em [configurações gerenciadas](/docs/pt/managed-settings). Isso remove `auto` do ciclo `Shift+Tab` e uma sessão iniciada com `--permission-mode auto` inicia em Manual em vez disso. Uma sessão já em execução no modo auto o deixa quando a configuração chega a essa sessão de uma [fonte implantada por administrador](/docs/pt/managed-settings#which-managed-source-claude-code-uses) e mostra `auto mode disabled by settings`. Antes de v2.1.251, uma sessão em execução mantinha o modo auto até que terminasse.

354 353 

355Da v2.1.158 até a v2.1.206, o modo auto estava desativado nesses provedores até você definir `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, e Claude Code ignorava `defaultMode: "auto"` nesses provedores a menos que a variável também fosse definida. A variável ainda é aceita para compatibilidade e não tem efeito a partir da v2.1.207.

356 

357<h3 id="server-side-classifier-review">354<h3 id="server-side-classifier-review">

358 Revisão do classificador no servidor355 Revisão do classificador no servidor

359</h3>356</h3>


408* Lançamento de um loop de agente autônomo que executa sem aprovação humana ou sandbox, como um iniciado com `--dangerously-skip-permissions` ou `--no-sandbox`. Isso inclui a execução de um agente de terceiros ou harness de avaliação com isolamento e aprovação por ação desabilitados, como um runner iniciado com `--yes-always`405* Lançamento de um loop de agente autônomo que executa sem aprovação humana ou sandbox, como um iniciado com `--dangerously-skip-permissions` ou `--no-sandbox`. Isso inclui a execução de um agente de terceiros ou harness de avaliação com isolamento e aprovação por ação desabilitados, como um runner iniciado com `--yes-always`

409* Ações de navegador do [Claude in Chrome](/docs/pt/chrome) que poderiam enviar conteúdo de página, cookies ou credenciais para fora da origem406* Ações de navegador do [Claude in Chrome](/docs/pt/chrome) que poderiam enviar conteúdo de página, cookies ou credenciais para fora da origem

410* Exclusão de arquivos em `/tmp`, `$TMPDIR` ou outro diretório compartilhado de rascunho ou cache por wildcard, glob ou filtro de idade em vez de por um caminho nomeado específico407* Exclusão de arquivos em `/tmp`, `$TMPDIR` ou outro diretório compartilhado de rascunho ou cache por wildcard, glob ou filtro de idade em vez de por um caminho nomeado específico

411* Inclusão de detalhes sensíveis em conteúdo enviado, carregado, publicado ou escrito para outras pessoas ou sistemas compartilhados, quando sua própria mensagem não autorizou esses detalhes para esse destinatário. Corpos de PR e issue, mensagens de commit e comentários contam como esse tipo de conteúdo de saída quando o repositório está fora do limite de confiança ou é público, incluindo os próprios repositórios públicos da sua organização; caminhos de arquivo internos, codinomes, dados ativos de respostas de API como emails ou identificadores de conta, e identificadores de infraestrutura contam como detalhes sensíveis. Dados pessoais ativos de uma resposta de API em um corpo de PR ou issue, como um endereço de email, um identificador de conta ou organização ou uma métrica de uso, exigem que você nomeie esses detalhes e o destinatário independentemente da visibilidade ou do limite de confiança do repositório. Essa verificação requer Claude Code v2.1.203 ou posterior408* Inclusão de detalhes sensíveis em conteúdo enviado, carregado, publicado ou escrito para outras pessoas ou sistemas compartilhados, quando sua própria mensagem não autorizou esses detalhes para esse destinatário. Corpos de PR e issue, mensagens de commit e comentários contam como esse tipo de conteúdo de saída quando o repositório está fora do limite de confiança ou é público, incluindo os próprios repositórios públicos da sua organização; caminhos de arquivo internos, codinomes, dados ativos de respostas de API como emails ou identificadores de conta, e identificadores de infraestrutura contam como detalhes sensíveis. Dados pessoais ativos de uma resposta de API em um corpo de PR ou issue, como um endereço de email, um identificador de conta ou organização ou uma métrica de uso, exigem que você nomeie esses detalhes e o destinatário independentemente da visibilidade ou do limite de confiança do repositório

412* Envio de pressionamentos de tecla para o próprio painel tmux de Claude Code para conduzir sua própria interface, o que o classificador trata como Claude alterando suas próprias permissões ou supervisão409* Envio de pressionamentos de tecla para o próprio painel tmux de Claude Code para conduzir sua própria interface, o que o classificador trata como Claude alterando suas próprias permissões ou supervisão

413* Comentar, excluir ou forçar a aprovação de um teste ou asserção que protege comportamento de segurança, como autenticação, controle de acesso, validação de entrada ou sandboxing410* Comentar, excluir ou forçar a aprovação de um teste ou asserção que protege comportamento de segurança, como autenticação, controle de acesso, validação de entrada ou sandboxing

414* Exclusão ou desmontagem de um recurso com estado que Claude não criou na sessão, quando nenhuma regra de exclusão mais específica se aplica e você não nomeou esse recurso411* Exclusão ou desmontagem de um recurso com estado que Claude não criou na sessão, quando nenhuma regra de exclusão mais específica se aplica e você não nomeou esse recurso

415* Reapontamento de uma URL base de API, endpoint de proxy, receptor de webhook ou espelho de registro para um host de terceiros que não se encaixa na tarefa, incluindo em arquivos de exemplo como `.env.example`412* Reapontamento de uma URL base de API, endpoint de proxy, receptor de webhook ou espelho de registro para um host de terceiros que não se encaixa na tarefa, incluindo em arquivos de exemplo como `.env.example`

416* Alteração do destino dos pushes com `git remote set-url` ou `git remote add`, a menos que você tenha nomeado o novo remoto413* Alteração do destino dos pushes com `git remote set-url` ou `git remote add`, a menos que você tenha nomeado o novo remoto

417* Push de segredos ou dados pessoais ou confiados para um repositório sabidamente público, ou push para ele de material confidencial que não faz parte do próprio trabalho desse repositório. O próprio assunto de um repositório de dotfiles é a única exceção para dados pessoais ou confiados, e conteúdo de um repositório privado chegando a qualquer superfície pública é bloqueado da mesma forma; ambos os refinamentos requerem Claude Code v2.1.203 ou posterior. Antes da v2.1.203, dados pessoais eram agrupados com material confidencial e bloqueados apenas quando não faziam parte do próprio trabalho desse repositório. Quando a visibilidade de um repositório não está estabelecida, o classificador não bloqueia apenas com base nisso; em vez disso, ele julga o conteúdo segundo as outras regras414* Push de segredos ou dados pessoais ou confiados para um repositório sabidamente público, ou push para ele de material confidencial que não faz parte do próprio trabalho desse repositório. O próprio assunto de um repositório de dotfiles é a única exceção para dados pessoais ou confiados, e conteúdo de um repositório privado chegando a qualquer superfície pública é bloqueado da mesma forma. Quando a visibilidade de um repositório não está estabelecida, o classificador não bloqueia apenas com base nisso; em vez disso, ele julga o conteúdo segundo as outras regras

418* Abertura de um pull request contra um repositório ou organização diferente, criação de fork com `gh repo fork` ou push para um repositório de terceiros, a menos que você tenha nomeado esse alvo externo415* Abertura de um pull request contra um repositório ou organização diferente, criação de fork com `gh repo fork` ou push para um repositório de terceiros, a menos que você tenha nomeado esse alvo externo

419 

420Várias dessas categorias dependem de entradas de [ambiente](/docs/pt/auto-mode-config#define-trusted-infrastructure), como alvos remotos sensíveis e escopos IaC protegidos, que você pode restringir a nomes concretos.

421 

422Claude Code v2.1.203 e posterior também bloqueiam estes por padrão:

423 

424* Conteúdo de um armazenamento local sensível, ou de um arquivo cujo nome, caminho ou tipo o marca como sensível, entrando em um commit, um push, texto de PR ou issue, um gist ou paste ou uma publicação de pacote, a menos que você tenha nomeado tanto a origem quanto o destino. Transcrições de sessão e logs de conversa, pastas ocultas de credenciais e configuração como chaves SSH, credenciais de nuvem, perfis de navegador e histórico de shell, e exportações de dados de usuário contam, e o fato de o repositório ser privado não libera o bloqueio416* Conteúdo de um armazenamento local sensível, ou de um arquivo cujo nome, caminho ou tipo o marca como sensível, entrando em um commit, um push, texto de PR ou issue, um gist ou paste ou uma publicação de pacote, a menos que você tenha nomeado tanto a origem quanto o destino. Transcrições de sessão e logs de conversa, pastas ocultas de credenciais e configuração como chaves SSH, credenciais de nuvem, perfis de navegador e histórico de shell, e exportações de dados de usuário contam, e o fato de o repositório ser privado não libera o bloqueio

425 

426Claude Code v2.1.205 e posterior também bloqueiam estes por padrão:

427 

428* Escrita em transcrições de sessão de Claude Code, os arquivos de histórico `.jsonl` em `~/.claude/projects/` ou em seu diretório de configuração configurado, seja diretamente ou através de um comando de shell. A regra também cobre as linhas de metadados que Claude Code acrescenta a cada entrada de transcrição para suas próprias verificações. Ler uma transcrição não é bloqueado417* Escrita em transcrições de sessão de Claude Code, os arquivos de histórico `.jsonl` em `~/.claude/projects/` ou em seu diretório de configuração configurado, seja diretamente ou através de um comando de shell. A regra também cobre as linhas de metadados que Claude Code acrescenta a cada entrada de transcrição para suas próprias verificações. Ler uma transcrição não é bloqueado

429* Uma exclusão forçada recursiva como `rm -rf "$VAR"` ou `Remove-Item -Recurse -Force $dir` cujo alvo é uma variável de shell que não é atribuída em nenhum lugar da conversa que o classificador vê, ou um glob enraizado em tal variável. O valor veio apenas de saídas de comando anteriores, que o classificador nunca recebe, então o classificador não consegue verificar o alvo da exclusão segundo as outras regras de exclusão. O bloqueio é liberado quando você nomeia o caminho exato sendo excluído, ou quando Claude executa novamente a exclusão com o caminho literal resolvido escrito no comando. Exclusões cujo alvo o classificador consegue resolver não são afetadas.418* Uma exclusão forçada recursiva como `rm -rf "$VAR"` ou `Remove-Item -Recurse -Force $dir` cujo alvo é uma variável de shell que não é atribuída em nenhum lugar da conversa que o classificador vê, ou um glob enraizado em tal variável. O valor veio apenas de saídas de comando anteriores, que o classificador nunca recebe, então o classificador não consegue verificar o alvo da exclusão segundo as outras regras de exclusão. O bloqueio é liberado quando você nomeia o caminho exato sendo excluído, ou quando Claude executa novamente a exclusão com o caminho literal resolvido escrito no comando. Exclusões cujo alvo o classificador consegue resolver não são afetadas.

430 419 

431 Um glob diretamente sob a variável, como em `rm -rf "$VAR"/*`, é em vez disso um [caminho crítico](#critical-paths). Alvos de `Remove-Item` que são um `*` simples ou terminam em `/*` ou `\*` nunca chegam ao classificador: Claude Code [os nega imediatamente](#remove-item-in-powershell).420 Um glob diretamente sob a variável, como em `rm -rf "$VAR"/*`, é em vez disso um [caminho crítico](#critical-paths). Alvos de `Remove-Item` que são um `*` simples ou terminam em `/*` ou `\*` nunca chegam ao classificador: Claude Code [os nega imediatamente](#remove-item-in-powershell).

432 421 

422Várias dessas categorias dependem de entradas de [ambiente](/docs/pt/auto-mode-config#define-trusted-infrastructure), como alvos remotos sensíveis e escopos IaC protegidos, que você pode restringir a nomes concretos.

423 

433Claude Code v2.1.257 e posterior também bloqueiam estes por padrão:424Claude Code v2.1.257 e posterior também bloqueiam estes por padrão:

434 425 

435* Solicitação de credenciais do endpoint de metadados da instância de nuvem, como `169.254.169.254`, ou autenticação explícita de uma chamada de nuvem, cluster ou registro com a identidade de conta de serviço ou de nó da própria máquina426* Solicitação de credenciais do endpoint de metadados da instância de nuvem, como `169.254.169.254`, ou autenticação explícita de uma chamada de nuvem, cluster ou registro com a identidade de conta de serviço ou de nó da própria máquina


449* Instalação de dependências declaradas em seus arquivos de lock ou manifestos440* Instalação de dependências declaradas em seus arquivos de lock ou manifestos

450* Leitura de `.env` e envio de credenciais para sua API correspondente441* Leitura de `.env` e envio de credenciais para sua API correspondente

451* Requisições HTTP somente leitura442* Requisições HTTP somente leitura

452* Push para qualquer branch do repositório em que você está trabalhando, incluindo o branch padrão. Um branch não padrão cujo nome o marca como alvo de implantação ou publicação, como `production` ou `gh-pages`, não está coberto: o classificador julga um push para ele por seus próprios méritos. O conteúdo do push ainda é verificado segundo as outras regras, [regras `permissions.deny`](/docs/pt/permissions#manage-permissions) ainda podem bloquear comandos de push [como escritos](/docs/pt/permissions#bash-rule-limits) em todos os modos, e a proteção de branch do próprio remoto ainda se aplica. Antes da v2.1.211, apenas pushes para o branch em que você iniciou, branches que Claude criou e pushes rotineiros para o branch padrão eram permitidos por padrão, e antes da v2.1.203 qualquer push direto para o branch padrão era bloqueado443* Push para qualquer branch do repositório em que você está trabalhando, incluindo o branch padrão. Um branch não padrão cujo nome o marca como alvo de implantação ou publicação, como `production` ou `gh-pages`, não está coberto: o classificador julga um push para ele por seus próprios méritos. O conteúdo do push ainda é verificado segundo as outras regras, [regras `permissions.deny`](/docs/pt/permissions#manage-permissions) ainda podem bloquear comandos de push [como escritos](/docs/pt/permissions#bash-rule-limits) em todos os modos, e a proteção de branch do próprio remoto ainda se aplica. Antes da v2.1.211, apenas pushes para o branch em que você iniciou, branches que Claude criou e pushes rotineiros para o branch padrão eram permitidos por padrão

453* Exclusão dos trabalhos exatos que Claude criou anteriormente na mesma sessão444* Exclusão dos trabalhos exatos que Claude criou anteriormente na mesma sessão

454* Leitura, revisão ou escrita de código, configs e modelos de ameaça relacionados à segurança como parte de sua tarefa445* Leitura, revisão ou escrita de código, configs e modelos de ameaça relacionados à segurança como parte de sua tarefa

455* Mensagens entre agentes trabalhando juntos na mesma sessão multiagente446* Mensagens entre agentes trabalhando juntos na mesma sessão multiagente

permissions.md +8 −3

Details

384 384 

385As regras `Edit` se aplicam a todas as ferramentas integradas que editam arquivos. Claude faz uma tentativa de melhor esforço para aplicar regras `Read` a todas as ferramentas integradas que leem arquivos como Grep e Glob, a menções `@file` em seus prompts, e à seleção e contexto de arquivo aberto que um [IDE](/docs/pt/vs-code#the-built-in-ide-mcp-server) conectado compartilha com Claude.385As regras `Edit` se aplicam a todas as ferramentas integradas que editam arquivos. Claude faz uma tentativa de melhor esforço para aplicar regras `Read` a todas as ferramentas integradas que leem arquivos como Grep e Glob, a menções `@file` em seus prompts, e à seleção e contexto de arquivo aberto que um [IDE](/docs/pt/vs-code#the-built-in-ide-mcp-server) conectado compartilha com Claude.

386 386 

387Uma regra deny `Read(path)` também se aplica a caminhos de imagem que você cola em um prompt e a diretórios que você menciona com @:

388 

389* **Caminho de imagem**: quando você cola o caminho de uma imagem ou arrasta um arquivo de imagem para o seu prompt no terminal e a regra corresponde a esse caminho, Claude Code não anexa a imagem. Se o conteúdo colado não contiver nenhuma outra imagem, o caminho permanece no seu prompt como texto.

390* **Diretório**: a [listagem que Claude recebe](/docs/pt/common-workflows#reference-files-and-directories) omite os nomes de arquivos e diretórios que a regra corresponde.

391 

392Claude Code verifica caminhos de imagem colados e listagens de diretório em v2.1.290 e posterior.

393 

387Uma regra deny `Read` também bloqueia as [ferramentas Edit e Write](/docs/pt/errors#file-is-covered-by-a-read-deny-rule) no mesmo caminho, incluindo criar um novo arquivo lá. NotebookEdit não é coberto, portanto adicione uma regra deny `Edit` para caminhos que nenhuma ferramenta pode alterar. A verificação requer Claude Code v2.1.208 ou posterior em edições, e v2.1.228 ou posterior em escritas.394Uma regra deny `Read` também bloqueia as [ferramentas Edit e Write](/docs/pt/errors#file-is-covered-by-a-read-deny-rule) no mesmo caminho, incluindo criar um novo arquivo lá. NotebookEdit não é coberto, portanto adicione uma regra deny `Edit` para caminhos que nenhuma ferramenta pode alterar. A verificação requer Claude Code v2.1.208 ou posterior em edições, e v2.1.228 ou posterior em escritas.

388 395 

389Claude Code verifica permissões de arquivo apenas contra regras `Edit(path)` e `Read(path)`. Se você escrever uma regra de caminho para `Write`, `NotebookEdit`, `Glob` ou a ferramenta legada `MultiEdit` em vez disso, Claude Code aceita a regra mas nunca a consulta, e [avisa na inicialização](/docs/pt/errors#is-not-matched-by-file-permission-checks), exceto por uma regra `Glob` passada em `--allowedTools`. Use `Edit(docs/**)` no lugar de `Write(docs/**)`, `NotebookEdit(docs/**)` ou `MultiEdit(docs/**)`, e `Read(docs/**)` no lugar de `Glob(docs/**)`. Claude Code não avisa sobre uma regra de nome de ferramenta sem caminho, como uma regra deny para `Write`; ela corresponde a essa regra no nível de ferramenta em todos os lugares. Requer Claude Code v2.1.210 ou posterior.396Claude Code verifica permissões de arquivo apenas contra regras `Edit(path)` e `Read(path)`. Se você escrever uma regra de caminho para `Write`, `NotebookEdit`, `Glob` ou a ferramenta legada `MultiEdit` em vez disso, Claude Code aceita a regra mas nunca a consulta, e [avisa na inicialização](/docs/pt/errors#is-not-matched-by-file-permission-checks), exceto por uma regra `Glob` passada em `--allowedTools`. Use `Edit(docs/**)` no lugar de `Write(docs/**)`, `NotebookEdit(docs/**)` ou `MultiEdit(docs/**)`, e `Read(docs/**)` no lugar de `Glob(docs/**)`. Claude Code não avisa sobre uma regra de nome de ferramenta sem caminho, como uma regra deny para `Write`; ela corresponde a essa regra no nível de ferramenta em todos os lugares. Requer Claude Code v2.1.210 ou posterior.


467 Em padrões gitignore, `*` corresponde dentro de um único segmento de caminho e pode aparecer em qualquer posição no padrão, enquanto `**` corresponde entre diretórios.474 Em padrões gitignore, `*` corresponde dentro de um único segmento de caminho e pode aparecer em qualquer posição no padrão, enquanto `**` corresponde entre diretórios.

468</Note>475</Note>

469 476 

470Quando você aprova um caminho de arquivo com "Sim, não pergunte novamente", Claude Code escapa caracteres de padrão gitignore nesse caminho, como `[`, `]` e `*`, portanto a regra gerada corresponde apenas ao caminho literal que você aprovou. Regras que você escreve você mesmo não são escapadas. Antes de v2.1.202, Claude Code salvava o caminho não escapado, portanto uma regra gerada para um diretório nomeado `[2024-06] Reports` poderia falhar em corresponder seu próprio caminho ou corresponder diretórios irmãos não intencionais.477Quando você aprova um caminho de arquivo com "Sim, não pergunte novamente", Claude Code escapa caracteres de padrão gitignore nesse caminho, como `[`, `]` e `*`, portanto a regra gerada corresponde apenas ao caminho literal que você aprovou. Regras que você escreve você mesmo não são escapadas.

471 478 

472Você não precisa escapar parênteses em um caminho, portanto `Edit(./Finance (2024)/**)` corresponde à pasta `Finance (2024)` conforme escrito.479Você não precisa escapar parênteses em um caminho, portanto `Edit(./Finance (2024)/**)` corresponde à pasta `Finance (2024)` conforme escrito.

473 480 


805 A exceção do diretório de configuração ignora apenas a etapa de confiança. `~/.claude/settings.local.json` ainda é [escopo local](/docs/pt/settings#compare-the-scope-of-each-settings-file), portanto Claude Code o lê apenas em sessões que você inicia no seu próprio diretório inicial, não em todos os projetos. Para aplicar regras de permissão em todos os seus projetos, adicione-as às suas configurações de usuário: `~/.claude/settings.json`, ou `$CLAUDE_CONFIG_DIR/settings.json` quando `CLAUDE_CONFIG_DIR` está definido.812 A exceção do diretório de configuração ignora apenas a etapa de confiança. `~/.claude/settings.local.json` ainda é [escopo local](/docs/pt/settings#compare-the-scope-of-each-settings-file), portanto Claude Code o lê apenas em sessões que você inicia no seu próprio diretório inicial, não em todos os projetos. Para aplicar regras de permissão em todos os seus projetos, adicione-as às suas configurações de usuário: `~/.claude/settings.json`, ou `$CLAUDE_CONFIG_DIR/settings.json` quando `CLAUDE_CONFIG_DIR` está definido.

806</Note>813</Note>

807 814 

808Antes da v2.1.207, Claude Code aplicava as regras de um arquivo não rastreado antes de você aceitar o diálogo.

809 

810<h3 id="what-runs-before-you-trust-a-folder">815<h3 id="what-runs-before-you-trust-a-folder">

811 O que é executado antes de você confiar em uma pasta816 O que é executado antes de você confiar em uma pasta

812</h3>817</h3>

plugin-evals.md +36 −5

Details

443 443 

444| Código de saída | Significado |444| Código de saída | Significado |

445| :- | :- |445| :- | :- |

446| 0 | Cada caso marcou em ou acima de `--threshold` e cada arquivo de caso carregou |446| 0 | O conjunto passou: cada caso marcou em ou acima de `--threshold` e nada mais fez a execução falhar |

447| 1 | Um caso marcou abaixo do limite, um arquivo de caso falhou ao carregar, nenhum caso foi encontrado, uma execução não pôde ser iniciada, o diretório do plugin não é confiável e `--trust-plugin` não foi passado, ou uma opção era inválida |447| 1 | Um caso marcou abaixo do limite, um arquivo de caso falhou ao carregar, nenhum caso foi encontrado, uma execução não pôde ser iniciada ou uma execução [terminou em um erro de API](#runs-ended-on-an-api-error). Também retornado quando o diretório do plugin não é confiável e `--trust-plugin` não foi passado, uma opção era inválida ou o resultado de `--json` não pôde ser escrito |

448| 2 | Execução parcial: o teto `--max-cost-usd` foi atingido, ou sua credencial foi rejeitada antes ou na primeira execução. `results.json` ainda é escrito com `partial: true` e o motivo |448| 2 | Execução parcial: o teto `--max-cost-usd` foi atingido, ou sua credencial foi rejeitada antes ou na primeira execução. `results.json` ainda é escrito com `partial: true` e o motivo |

449| 130 | Interrompido. Resultados parciais são escritos |449| 130 | Interrompido. Resultados parciais são escritos |

450| 143 | Terminado, como por um timeout de CI |450| 143 | Terminado, como por um timeout de CI |


503| `cases[].name` | Nome do caso |503| `cases[].name` | Nome do caso |

504| `cases[].aggregates.score` | Pontuação média de execução de braço com para o caso |504| `cases[].aggregates.score` | Pontuação média de execução de braço com para o caso |

505| `cases[].aggregates.delta` | Pontuação de braço com menos pontuação de braço sem. Omitido quando os braços não são comparáveis |505| `cases[].aggregates.delta` | Pontuação de braço com menos pontuação de braço sem. Omitido quando os braços não são comparáveis |

506| `cases[].arms.with[].error` | `null`, ou por que uma execução terminou anormalmente, como `timed out after 300s`. Uma execução que começou mas terminou mal ainda é classificada no que produziu, então um erro não nulo não implica pontuação 0 |506| `cases[].arms.with[].error` | `null`, ou por que uma execução terminou anormalmente, como `timed out after 300s`. Algumas dessas execuções ainda são avaliadas pelo que produziram, então um erro não nulo não implica pontuação 0. Uma execução que [terminou com um erro de API](#runs-ended-on-an-api-error) recebe pontuação 0 sem avaliação |

507| `cases[].arms.with[].aborted` | Presente quando um [mock](#mock-mcp-servers) parou a execução por meio de `expect:`, `abort_when` ou do [orçamento de chamadas de agent-mock](#mock-call-budget-exceeded), com `server`, `tool` e `reason`. A execução marca 0 e `error` permanece `null` |507| `cases[].arms.with[].aborted` | Presente quando um [mock](#mock-mcp-servers) parou a execução por meio de `expect:`, `abort_when` ou do [orçamento de chamadas de agent-mock](#mock-call-budget-exceeded), com `server`, `tool` e `reason`. A execução marca 0 e `error` permanece `null` |

508| `cases[].arms.with[].skippedPaidGraders` | `true` quando o teto de custo pulou os avaliadores de juiz dessa execução, então sua pontuação não é comparável |508| `cases[].arms.with[].skippedPaidGraders` | `true` quando o teto de custo pulou os avaliadores de juiz dessa execução, então sua pontuação não é comparável |

509| `costUsd`, `durationSeconds`, `claudeVersion` | Custo estimado a preço de lista incluindo chamadas de juiz, segundos de parede e a versão de Claude Code que executou o conjunto |509| `costUsd`, `durationSeconds`, `claudeVersion` | Custo estimado a preço de lista incluindo chamadas de juiz, segundos de parede e a versão de Claude Code que executou o conjunto |


724 724 

725Antes da v2.1.283, `claude plugin eval` não verificava a versão do git, e em um git mais antigo o conjunto executava com esses programas deixados ligados.725Antes da v2.1.283, `claude plugin eval` não verificava a versão do git, e em um git mais antigo o conjunto executava com esses programas deixados ligados.

726 726 

727<h3 id="cannot-be-evaluated-where-sessions-load-it">

728 "cannot be evaluated where sessions load it"

729</h3>

730 

731Você executou `claude plugin eval` no seu shell com o nome de um plugin instalado a partir de um marketplace que você [adicionou a partir de um caminho local](/docs/pt/plugins/loading#in-place-and-copied-plugins). Nenhuma sessão conseguiria carregar o plugin desse marketplace agora, então o comando recusa com esta mensagem e sai com código 1.

732 

733```text theme={null}

734Error: formatter@my-marketplace cannot be evaluated where sessions load it: no session could load it now. Its marketplace is a folder whose catalog could not be read, or lists it no more. Check the marketplace with `claude plugin marketplace list`, or pass ./<dir> to evaluate a directory.

735```

736 

737A frase após `no session could load it now.` nomeia o que falhou.

738 

739Execute `claude plugin marketplace list` no seu shell e corrija o que a mensagem nomeia. Por exemplo, restaure o diretório do marketplace ou coloque a entrada do plugin de volta em seu catálogo. Para avaliar o código-fonte do plugin sem o marketplace, passe seu diretório como o destino, como `claude plugin eval ./plugins/formatter`.

740 

727<h3 id="no-eval-cases-found">741<h3 id="no-eval-cases-found">

728 "No eval cases found"742 "No eval cases found"

729</h3>743</h3>


774 A execução sai 1 mas os resultados parecem bons788 A execução sai 1 mas os resultados parecem bons

775</h3>789</h3>

776 790 

777O `--threshold` padrão é 1.0, então o comando sai 1 quando qualquer caso marca abaixo do perfeito. Defina um limite que corresponda à pontuação que você requer. Saída 1 também cobre um arquivo de caso que falhou ao carregar, que é relatado em stderr acima da tabela.791Quando todos os casos marcaram igual ou acima de `--threshold` e o comando ainda sai com 1, uma linha em stderr nomeia a causa, mesmo sob `--json`. Por exemplo, um arquivo de caso falhou ao carregar, ou execuções [terminaram com um erro de API](#runs-ended-on-an-api-error). Para as outras causas, veja os [códigos de saída](#run-evals-in-ci).

792 

793O `--threshold` padrão é 1.0, então o comando sai 1 quando qualquer caso marca abaixo do perfeito. Defina um limite que corresponda à pontuação que você requer.

778 794 

779<h3 id="json-output-path-must-end-in-json">795<h3 id="json-output-path-must-end-in-json">

780 `--json output path must end in .json`796 `--json output path must end in .json`


788 804 

789Esse avaliador é excluído da pontuação por design em uma execução de dois braços, e seu campo `scored` é `false`. Veja [Comparar com uma linha de base sem plugin](#compare-against-a-no-plugin-baseline).805Esse avaliador é excluído da pontuação por design em uma execução de dois braços, e seu campo `scored` é `false`. Veja [Comparar com uma linha de base sem plugin](#compare-against-a-no-plugin-baseline).

790 806 

807<h3 id="runs-ended-on-an-api-error">

808 "ended on an API error and scored 0 without grading"

809</h3>

810 

811Este aviso em stderr significa que a API respondeu à última requisição de pelo menos uma execução com um erro HTTP, como um rate limit ou um limite de uso do plano. Tal execução marca 0 sem resultados de avaliadores, e o comando sai com código diferente de zero independentemente das pontuações e do `--threshold`.

812 

813Para corrigir, encontre o erro de cada execução afetada e resolva a causa que ele relata, então execute o conjunto novamente:

814 

815* **Sem `--json`**: o erro está no final da linha de progresso da execução, após `error:`

816* **Sob `--json`**: o erro está no [resultado JSON](#json-result), em `cases[].arms.with[].error` ou `cases[].arms.without[].error`

817 

818A contagem inclui também execuções de [linha de base](#the-no-plugin-baseline). Suas pontuações nunca decidem se um caso passa, então todos os casos podem passar enquanto o comando ainda falha. Em uma execução de dois braços, `W/OUT` e `Δ` do caso afetado são impressos como `—`. Para um limite de uso ou rate limit, veja [Execuções falham com um erro de limite de uso ou rate limit no meio](#runs-fail-with-a-usage-limit-or-rate-limit-error-partway-through).

819 

820Antes da v2.1.299, tal execução era avaliada com base no que havia produzido.

821 

791<h3 id="runs-fail-with-a-usage-limit-or-rate-limit-error-partway-through">822<h3 id="runs-fail-with-a-usage-limit-or-rate-limit-error-partway-through">

792 Execuções falham com um erro de limite de uso ou limite de taxa no meio823 Execuções falham com um erro de limite de uso ou limite de taxa no meio

793</h3>824</h3>

794 825 

795Se sua conta atinge o limite de uso do plano ou um limite de taxa de API enquanto um conjunto está em execução, cada execução posterior termina com esse erro, é classificada no que produziu e geralmente marca 0. O conjunto ainda termina e não é marcado `partial`, então o resultado pode parecer uma regressão. Verifique a coluna `NOTES` ou `cases[].arms.with[].error` no JSON para a mensagem de limite antes de confiar nas pontuações, então re-execute após o limite redefinir, com `--runs 1` ou um filtro `--case` se você precisar ficar abaixo dele.826Execuções que terminam com um erro de limite de uso ou rate limit [marcam 0 sem avaliação](#runs-ended-on-an-api-error), e o comando sai com código diferente de zero. O conjunto ainda termina e não é marcado `partial`. Re-execute após o limite redefinir, com `--runs 1` ou um filtro `--case` se você precisar ficar abaixo dele.

796 827 

797<h3 id="mock-call-budget-exceeded">828<h3 id="mock-call-budget-exceeded">

798 "mock call budget exceeded"829 "mock call budget exceeded"

Details

523 523 

524| Código de saída | Significado |524| Código de saída | Significado |

525| :- | :- |525| :- | :- |

526| `0` | Cada caso atende ao threshold |526| `0` | O conjunto passou: cada caso atende ao threshold e nada mais fez a execução falhar |

527| `1` | Um caso falhando, um erro de carregamento ou um diretório de plugin não confiável |527| `1` | Um caso falhando, um erro de carregamento, um diretório de plugin não confiável, uma execução que [terminou em um erro de API](/docs/pt/plugin-evals#runs-ended-on-an-api-error) ou outra causa listada em [Executar evals em CI](/docs/pt/plugin-evals#run-evals-in-ci) |

528| `2` | Uma execução parcial |528| `2` | Uma execução parcial |

529| `130` | Interrompido |529| `130` | Interrompido |

530| `143` | Terminado |530| `143` | Terminado |

Details

752 752 

753O frontmatter de um agente de plugin segue estas regras:753O frontmatter de um agente de plugin segue estas regras:

754 754 

755* **Campos suportados**: `name`, `description`, `model`, `effort`, `maxTurns`, `tools`, `disallowedTools`, `skills`, `memory`, `background`, `omitClaudeMd`, `isolation`, `color` e a chave `cacheTtl` de `experimental`. O único valor `isolation` válido é `"worktree"`. Consulte [campos de frontmatter suportados](/docs/pt/sub-agents#supported-frontmatter-fields) para saber o que cada um faz755* **Campos suportados**: `name`, `description`, `model`, `effort`, `maxTurns`, `autoCompactWindow`, `tools`, `disallowedTools`, `skills`, `memory`, `background`, `omitClaudeMd`, `isolation`, `color` e a chave `cacheTtl` de `experimental`. O único valor `isolation` válido é `"worktree"`. Consulte [campos de frontmatter suportados](/docs/pt/sub-agents#supported-frontmatter-fields) para saber o que cada um faz

756* **Campos ignorados**: `permissionMode`, `hooks`, `mcpServers` e `initialPrompt`. Um arquivo de agente não pode adicionar hooks ou servidores MCP por conta própria, então adicione-os como plugin [hooks](#hooks) e [servidores MCP](#mcp-servers) em vez disso756* **Campos ignorados**: `permissionMode`, `hooks`, `mcpServers` e `initialPrompt`. Um arquivo de agente não pode adicionar hooks ou servidores MCP por conta própria, então adicione-os como plugin [hooks](#hooks) e [servidores MCP](#mcp-servers) em vez disso

757* **Frontmatter que não analisa**: o agente ainda carrega com cada campo ignorado. É nomeado após o arquivo, e sua descrição lê `Agent from my-plugin plugin`. Execute [`claude plugin validate`](/docs/pt/plugins/cli-reference#plugin-validate) no seu shell para encontrar esses arquivos757* **Frontmatter que não analisa**: o agente ainda carrega com cada campo ignorado. É nomeado após o arquivo, e sua descrição lê `Agent from my-plugin plugin`. Execute [`claude plugin validate`](/docs/pt/plugins/cli-reference#plugin-validate) no seu shell para encontrar esses arquivos

758 758 

Details

237 237 

238Quando um usuário desinstala o último plugin que restringe uma dependência, a dependência não é mais restrita a um intervalo de versão e retoma o rastreamento de sua entrada de marketplace na próxima atualização.238Quando um usuário desinstala o último plugin que restringe uma dependência, a dependência não é mais restrita a um intervalo de versão e retoma o rastreamento de sua entrada de marketplace na próxima atualização.

239 239 

240<h3 id="dependencies-when-your-plugin-loads-from-claude-ai">

241 Dependências quando seu plugin é carregado a partir do claude.ai

242</h3>

243 

244Quando um usuário ativa seu plugin para a conta dele no claude.ai, Claude Code o carrega como `<name>@synced`, [sem marketplace](/docs/pt/plugins/loading#synced-plugins). Para essa cópia do seu plugin, Claude Code considera atendida uma entrada de dependência que nomeia um marketplace quando o usuário tem qualquer um destes:

245 

246* **A dependência a partir do marketplace dela**: instalada a partir do marketplace que sua entrada nomeia, e ativada. Claude Code verifica um intervalo `version` em sua entrada contra a versão da cópia instalada.

247* **Um plugin do claude.ai com o mesmo nome**: ativado a partir da conta dele no claude.ai. Claude Code verifica um intervalo `version` em sua entrada contra a `version` desse plugin, e um plugin que não declara nenhuma `version` passa na verificação.

248 

249Se você orientar os usuários a ativar seu plugin a partir do claude.ai, oriente-os a ativar a dependência lá também, ou a instalá-la a partir do marketplace dela.

250 

251Um plugin do claude.ai atende à entrada somente quando seu plugin também é carregado a partir do claude.ai.

252 

240<h2 id="see-also">253<h2 id="see-also">

241 Veja também254 Veja também

242</h2>255</h2>

Details

48* **Nomes de marketplace comunitário**: `claude-community`, `claude-plugins-community` e `healthcare`. Reservado sob a mesma regra que os nomes oficiais.48* **Nomes de marketplace comunitário**: `claude-community`, `claude-plugins-community` e `healthcare`. Reservado sob a mesma regra que os nomes oficiais.

49* **Nomes de diretório de plugins**: `anthropic-plugin-directory` e `claude-plugin-directory`. Reservado sob a mesma regra que os nomes oficiais.49* **Nomes de diretório de plugins**: `anthropic-plugin-directory` e `claude-plugin-directory`. Reservado sob a mesma regra que os nomes oficiais.

50* **Nomes que se passam por um marketplace oficial**: nomes como `official-claude-plugins` ou `claude-plugins-v2`, e qualquer nome contendo um caractere não-ASCII. O erro é `Marketplace name impersonates an official Anthropic/Claude marketplace`. Um caractere de controle ou formatação bidirecional em um nome também relata `Marketplace name cannot contain control or bidirectional-formatting characters`. Um marketplace já registrado sob tal nome para de carregar, junto com seus plugins.50* **Nomes que se passam por um marketplace oficial**: nomes como `official-claude-plugins` ou `claude-plugins-v2`, e qualquer nome contendo um caractere não-ASCII. O erro é `Marketplace name impersonates an official Anthropic/Claude marketplace`. Um caractere de controle ou formatação bidirecional em um nome também relata `Marketplace name cannot contain control or bidirectional-formatting characters`. Um marketplace já registrado sob tal nome para de carregar, junto com seus plugins.

51* <span id="reserved-name-spellings" />**Outra grafia de um nome reservado**: um nome que difere de um nome reservado apenas por um ponto final, ou por um símbolo diferente de um hífen no lugar de um hífen, então `claude.code.plugins` conta como `claude-code-plugins`. Adicionar o marketplace falha com [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/pt/errors#marketplace-name-is-another-spelling-of-a-reserved-name), e um marketplace já registrado sob um para de carregar. Esta verificação requer Claude Code v2.1.280 ou posterior.51* <span id="reserved-name-spellings" />**Outra grafia de um nome reservado**: um nome que difere de um nome reservado apenas por um ponto final, ou por um símbolo diferente de um sublinhado no lugar de um hífen, então `claude.code.plugins` conta como `claude-code-plugins`. Adicionar o marketplace falha com [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/pt/errors#marketplace-name-is-another-spelling-of-a-reserved-name), e um marketplace já registrado sob um para de carregar. Esta verificação requer Claude Code v2.1.280 ou posterior.

52* **Nomes que Claude Code usa para plugins que não vêm de um marketplace**: `inline` para plugins carregados com [`--plugin-dir`](/docs/pt/cli-reference), `builtin` para plugins integrados, `skills-dir` para plugins carregados automaticamente de [`.claude/skills/`](/docs/pt/skills) e `synced` para plugins sincronizados de sua conta claude.ai. `claude-plugin-test` também é reservado. `skills-dir` também aparece como `{"source": "skills-dir"}` em `strictKnownMarketplaces` e `blockedMarketplaces`, descrito em [Source values valid only in policy lists](#source-values-valid-only-in-policy-lists).52* **Nomes que Claude Code usa para plugins que não vêm de um marketplace**: `inline` para plugins carregados com [`--plugin-dir`](/docs/pt/cli-reference), `builtin` para plugins integrados, `skills-dir` para plugins carregados automaticamente de [`.claude/skills/`](/docs/pt/skills) e `synced` para plugins sincronizados de sua conta claude.ai. `claude-plugin-test` também é reservado. `skills-dir` também aparece como `{"source": "skills-dir"}` em `strictKnownMarketplaces` e `blockedMarketplaces`, descrito em [Source values valid only in policy lists](#source-values-valid-only-in-policy-lists).

53* **`npm`, `pip`, `uv`, `cargo`, `github` e `gh`**: reservado em qualquer capitalização. Esta verificação requer Claude Code v2.1.275 ou posterior.53* **`npm`, `pip`, `uv`, `cargo`, `github` e `gh`**: reservado em qualquer capitalização. Esta verificação requer Claude Code v2.1.275 ou posterior.

54* **Nomes de membros que todo objeto JavaScript possui**: `constructor`, `hasOwnProperty`, `isPrototypeOf`, `propertyIsEnumerable`, `toLocaleString`, `toString` e `valueOf`. `claude plugin marketplace add` recusa um marketplace que use um deles com [`Claude Code reserves this name and cannot register a marketplace under it`](/docs/pt/plugins/troubleshooting#claude-code-reserves-this-name). Esta verificação requer Claude Code v2.1.296 ou posterior.54* **Nomes de membros que todo objeto JavaScript possui**: `constructor`, `hasOwnProperty`, `isPrototypeOf`, `propertyIsEnumerable`, `toLocaleString`, `toString` e `valueOf`. `claude plugin marketplace add` recusa um marketplace que use um deles com [`Claude Code reserves this name and cannot register a marketplace under it`](/docs/pt/plugins/troubleshooting#claude-code-reserves-this-name). Esta verificação requer Claude Code v2.1.296 ou posterior.

Details

252 252 

253Para impedir um prompt, retorne `{ drop: 'the reason' }` sem chamar `next`. O texto volta para a entrada de prompt do usuário, e ele vê `Prompt dropped by a hook:` seguido do seu motivo, então dirija o motivo a ele. Se o seu hook retornar um `drop` depois que sua chamada `next(e)` deixou o prompt passar, o turno ainda é executado, e o hook [falha](#handle-a-hook-that-fails) com uma mensagem que inclui `a drop after its next() was answered`.253Para impedir um prompt, retorne `{ drop: 'the reason' }` sem chamar `next`. O texto volta para a entrada de prompt do usuário, e ele vê `Prompt dropped by a hook:` seguido do seu motivo, então dirija o motivo a ele. Se o seu hook retornar um `drop` depois que sua chamada `next(e)` deixou o prompt passar, o turno ainda é executado, e o hook [falha](#handle-a-hook-that-fails) com uma mensagem que inclui `a drop after its next() was answered`.

254 254 

255[Outros eventos](/docs/pt/plugins/mods/reference#prompts-and-what-claude-reads) cobrem o restante do que o Claude lê: `prompt.section` para cada seção do system prompt, `prompt.context` para o contexto enviado com a primeira mensagem e `skill.prompt` para o texto de uma skill. Texto desses hooks que muda entre requisições [invalida o cache de prompt](/docs/pt/prompt-caching).255[Outros eventos](/docs/pt/plugins/mods/reference#prompts-and-what-claude-reads) cobrem o restante do que o Claude lê: `prompt.section` para cada seção do system prompt, `prompt.context` para o contexto enviado com a primeira mensagem e `skill.prompt` para o texto de uma skill. Texto desses hooks que muda entre requisições [invalida o cache de prompt](/docs/pt/prompt-caching). Em um hook `skill.prompt`, você também pode ler [de qual plugin ou arquivo a skill veio](/docs/pt/plugins/mods/reference#skill-prompt-fields).

256 256 

257<h3 id="follow-a-turn">257<h3 id="follow-a-turn">

258 Acompanhar um turno258 Acompanhar um turno

Details

4 4 

5# Visão geral de mods5# Visão geral de mods

6 6 

7> Adicione painéis, comandos e regras de chamada de ferramentas ao Claude Code com um mod. Veja o que um mod pode fazer, como criar ou instalar um, e onde os mods são executados.7> Adicione painéis, comandos e regras de chamada de ferramenta ao Claude Code com um mod. Veja o que um mod pode fazer, como criar ou instalar um, e onde os mods são executados.

8 8 

9Um mod é um [plugin](/docs/pt/plugins/overview) que muda como o Claude Code se parece e se comporta. É feito de manipuladores de eventos em JavaScript ou TypeScript: Claude Code chama um quando um evento acontece, como uma chamada de ferramenta, um prompt enviado, ou uma parte da interface sendo desenhada, e o manipulador pode observar o evento, alterá-lo ou assumir o controle dele. Use um mod para adicionar um recurso próprio ao Claude Code, como um painel que mostra graficamente o quão cheio seu contexto está após cada solicitação. Para os arquivos em um mod e um exemplo completo, veja [Como um mod funciona](#how-a-mod-works).9Um mod é um [plugin](/docs/pt/plugins/overview) que muda como o Claude Code se parece e se comporta. É feito de manipuladores de eventos em JavaScript ou TypeScript: Claude Code chama um quando um evento acontece, como uma chamada de ferramenta, um prompt enviado, ou uma parte da interface sendo desenhada, e o manipulador pode observar o evento, alterá-lo ou assumir o controle dele. Use um mod para adicionar um recurso próprio ao Claude Code, como um painel que mostra graficamente o quão cheio seu contexto está após cada solicitação. Para os arquivos em um mod e um exemplo completo, veja [Como um mod funciona](#how-a-mod-works).

10 10 


212 Onde os mods são executados212 Onde os mods são executados

213</h3>213</h3>

214 214 

215Os hooks de um mod são executados em todos os tipos de sessão que carregam o plugin. O desenho é mais restrito: apenas o terminal e o aplicativo Desktop mostram painéis, faixas e linhas substituídas de um mod. Esta tabela lista cada lugar onde você pode executar o Claude Code:215Os hooks de um mod são executados em todos os tipos de sessão que carregam o plugin, qualquer que seja o provedor que atende o modelo, incluindo Amazon Bedrock, Agent Platform do Google Cloud e Microsoft Foundry. O desenho é mais restrito: apenas o terminal e o aplicativo Desktop mostram painéis, faixas e linhas substituídas de um mod. Esta tabela lista cada lugar onde você pode executar o Claude Code:

216 216 

217| Onde você executa o Claude Code | Hooks são executados | O que o mod desenha aparece |217| Onde você executa o Claude Code | Hooks são executados | O que o mod desenha aparece |

218| :- | :- | :- |218| :- | :- | :- |


263| `cc-plugin-plugin-authoring` | Dá ao Claude a [skill `plugin-authoring`](/docs/pt/plugins/mods/create#ask-claude-for-a-mod) para escrever mods. Contém uma skill e nenhum código de mod. | A menos que a Anthropic tenha desativado mods instalados remotamente | Desabilite em `/plugin` |263| `cc-plugin-plugin-authoring` | Dá ao Claude a [skill `plugin-authoring`](/docs/pt/plugins/mods/create#ask-claude-for-a-mod) para escrever mods. Contém uma skill e nenhum código de mod. | A menos que a Anthropic tenha desativado mods instalados remotamente | Desabilite em `/plugin` |

264| `cc-plugin-sec-default` | Guarda o que sua organização gerencia dos mods que um usuário instala | [Onde o guarda carrega](/docs/pt/plugins/mods/admin#know-what-happens-by-default) | Você não consegue. Um administrador [define a ordem](/docs/pt/plugins/mods/admin#install-your-organizations-mods) em configurações gerenciadas |264| `cc-plugin-sec-default` | Guarda o que sua organização gerencia dos mods que um usuário instala | [Onde o guarda carrega](/docs/pt/plugins/mods/admin#know-what-happens-by-default) | Você não consegue. Um administrador [define a ordem](/docs/pt/plugins/mods/admin#install-your-organizations-mods) em configurações gerenciadas |

265| `cc-plugin-telemetry` | Envia os registros de análise que o Claude Code e seus mods integrados registram | Onde a análise própria do Claude Code está ativada | Desabilite em `/plugin` ou desative a análise, por exemplo com [`DISABLE_TELEMETRY`](/docs/pt/env-vars) |265| `cc-plugin-telemetry` | Envia os registros de análise que o Claude Code e seus mods integrados registram | Onde a análise própria do Claude Code está ativada | Desabilite em `/plugin` ou desative a análise, por exemplo com [`DISABLE_TELEMETRY`](/docs/pt/env-vars) |

266| `cc-plugin-you-should-know` | Executa um agente lateral que vigia você enquanto Claude trabalha em tarefas mais longas. Quando encontra algo que vale a pena saber que você pode perder, mostra uma nota acima do prompt. | Desativado por padrão. Listado em `/plugin` -> **Installed** -> **Show disabled** se disponível para sua organização. Ative com [`/plugin enable cc-plugin-you-should-know@builtin`](/docs/pt/plugins/cli-reference#plugin-in-a-session). | Desabilite em `/plugin` |266| `cc-plugin-you-should-know` | [You should know](/docs/pt/interactive-mode#you-should-know-suggestions): um agente lateral mostra uma nota acima do prompt quando encontra algo que você pode ter deixado passar | Desativado até que você [o ative](/docs/pt/interactive-mode#you-should-know-suggestions) | Desabilite em `/plugin` |

267 267 

268As configurações e flags que param mods instalados, como `disableAllHooks`, `--bare` e `--safe-mode`, não param mods integrados.268As configurações e flags que param mods instalados, como `disableAllHooks`, `--bare` e `--safe-mode`, não param mods integrados.

269 269 

Details

43| `next.origin` | `{ plugin, tier }` de quem disparou o evento. O próprio Claude Code é `{ plugin: 'engine', tier: 'core' }`. O `tier` de um mod é seu grupo de prioridade na [ordem em que os mods são executados](/docs/pt/plugins/mods/events#the-order-mods-run-in): `prepend`, `user`, `append` ou `builtin`. |43| `next.origin` | `{ plugin, tier }` de quem disparou o evento. O próprio Claude Code é `{ plugin: 'engine', tier: 'core' }`. O `tier` de um mod é seu grupo de prioridade na [ordem em que os mods são executados](/docs/pt/plugins/mods/events#the-order-mods-run-in): `prepend`, `user`, `append` ou `builtin`. |

44| `next.budget` | O limite de tempo do hook em milissegundos: `next.budget.ms` é o limite inteiro e `next.budget.remainingMs` é o que resta agora |44| `next.budget` | O limite de tempo do hook em milissegundos: `next.budget.ms` é o limite inteiro e `next.budget.remainingMs` é o que resta agora |

45| `next.to(e, tier)` | Pula para um tier posterior, que é `append`, `builtin` ou `core`. `next.to(e, 'append')` pula os mods que um usuário instalou. Somente um mod em `prependPlugins` ou `appendPlugins` pode chamá-lo. |45| `next.to(e, tier)` | Pula para um tier posterior, que é `append`, `builtin` ou `core`. `next.to(e, 'append')` pula os mods que um usuário instalou. Somente um mod em `prependPlugins` ou `appendPlugins` pode chamá-lo. |

46| `next.error` | Somente em um manipulador `.catch`. `kind` é `throw` ou `timeout` quando o hook falhou, e `message` é o texto do erro. `kind` é `re-entry` quando o hook foi ignorado porque o evento veio de dentro de uma de suas próprias chamadas à API de mods, e `cause` é `lent` se um método que outro mod adiciona à API de mods disparou esse evento. `re-entry` e `cause` exigem o Claude Code v2.1.292 ou posterior. |46| `next.error` | Somente em um manipulador `.catch`. `kind` é `throw` ou `timeout` quando o hook falhou, e `message` é o texto do erro. `kind` é `re-entry` quando o hook foi ignorado porque o evento veio de dentro de uma chamada à API de mods feita por esse hook ou pelo código do seu mod fora de seus hooks. `re-entry` exige o Claude Code v2.1.292 ou posterior. |

47| `next.error.cause` | Definido somente quando `kind` é `re-entry`. `rewritten` se um hook `tool.call` ou [`PreToolUse`](/docs/pt/hooks#pretooluse) alterou a chamada à API de mods da qual o evento veio, ou se um hook `agent.spawn` alterou um agente iniciado por essa chamada. `lent` quando um método que outro mod adiciona à API de mods disparou esse evento, a menos que `rewritten` também se aplique. `lent` exige o Claude Code v2.1.292 ou posterior e `rewritten`, v2.1.300 ou posterior. |

47| `next.called` | Somente em um manipulador `.catch`. `true` quando o hook havia chamado `next`. |48| `next.called` | Somente em um manipulador `.catch`. `true` quando o hook havia chamado `next`. |

48 49 

49<h2 id="events">50<h2 id="events">


97| [`skill.prompt`](/docs/pt/plugins/mods/events#rewrite-or-add-to-a-prompt) | O texto de uma skill é expandido para o Claude | `{ text }` |98| [`skill.prompt`](/docs/pt/plugins/mods/events#rewrite-or-add-to-a-prompt) | O texto de uma skill é expandido para o Claude | `{ text }` |

98| `attribution.text` | O Claude Code compõe o texto de atribuição de um commit ou pull request | `{ text }` |99| `attribution.text` | O Claude Code compõe o texto de atribuição de um commit ou pull request | `{ text }` |

99 100 

101<h4 id="skill-prompt-fields">

102 Campos de origem e de frontmatter em `skill.prompt`

103</h4>

104 

105Em um hook `skill.prompt`, você pode ler estes campos junto com o nome da skill em `e.skill` e o texto que o Claude lê em `e.text`:

106 

107| Campo | Tipo | O que contém |

108| :- | :- | :- |

109| `e.source` | string | Quem fornece a skill: `policySettings`, `userSettings` ou `projectSettings` para uma skill no [local](/docs/pt/skills#where-skills-live) corporativo, pessoal ou de projeto, respectivamente. Outras origens fornecem uma palavra como `plugin`, `mcp`, `syncedSkills` ou `built-in`. |

110| `e.pluginName` | string | O nome do plugin, para uma skill cujo `e.source` é `plugin` |

111| `e.path` | string | O caminho absoluto do arquivo `SKILL.md` da skill, ou do seu arquivo `.md` para uma skill escrita como um [arquivo de comando](/docs/pt/skills#where-skills-live). Ausente quando a skill não tem arquivo nesta máquina, como no caso de uma skill integrada. |

112| `e.frontmatter` | object | O frontmatter do arquivo da skill, como dados simples |

113| `e.frontmatterProblem` | string | O motivo pelo qual `e.frontmatter` não contém o frontmatter do arquivo ou uma de suas chaves, como em `is a list or a single value, not a table`. Ausente quando `e.frontmatter` contém o frontmatter inteiro ou a skill não tem nenhum. |

114 

115Um hook pode passar um `text` ou um `frontmatter` alterado para `next`: os hooks depois dele leem ambos, e o Claude lê o `text` final. Um hook que altera qualquer outro campo [falha](/docs/pt/plugins/mods/events#handle-a-hook-that-fails).

116 

117Em `skill.prompt`, `e.source`, `e.pluginName`, `e.path`, `e.frontmatter` e `e.frontmatterProblem` exigem o Claude Code v2.1.299 ou posterior.

118 

100<h3 id="commands-and-configuration">119<h3 id="commands-and-configuration">

101 Comandos e configuração120 Comandos e configuração

102</h3>121</h3>

Details

31* [**Skills**](/docs/pt/plugins/components#skills): instruções `SKILL.md` que Claude carrega quando relevante, e que você também pode executar como um comando31* [**Skills**](/docs/pt/plugins/components#skills): instruções `SKILL.md` que Claude carrega quando relevante, e que você também pode executar como um comando

32* [**Agents**](/docs/pt/plugins/components#agents): definições de subagentes que Claude pode delegar32* [**Agents**](/docs/pt/plugins/components#agents): definições de subagentes que Claude pode delegar

33* [**Hooks**](/docs/pt/plugins/components#hooks): comandos que Claude Code executa em pontos do seu ciclo de vida, como após cada edição33* [**Hooks**](/docs/pt/plugins/components#hooks): comandos que Claude Code executa em pontos do seu ciclo de vida, como após cada edição

34* [**Um módulo de hooks**](/docs/pt/plugins/mods/overview): hooks escritos como funções JavaScript, que também podem desenhar painéis e adicionar comandos. Um plugin que tem um é chamado de mod34* [**Um módulo de hooks**](/docs/pt/plugins/mods/overview): hooks escritos como funções JavaScript, que também podem desenhar painéis e adicionar comandos. Um plugin que tem um é chamado de mod. Alguns mods são [integrados ao Claude Code](/docs/pt/plugins/mods/overview#mods-built-into-claude-code).

35* [**MCP servers**](/docs/pt/plugins/components#mcp-servers): servidores de ferramentas aos quais Claude Code se conecta enquanto o plugin está ativado35* [**MCP servers**](/docs/pt/plugins/components#mcp-servers): servidores de ferramentas aos quais Claude Code se conecta enquanto o plugin está ativado

36 36 

37Este diagrama mostra um plugin chamado `my-plugin` que contém uma skill, um agente, hooks e um servidor MCP, e o que você obtém de cada arquivo uma vez que o plugin é carregado.37Este diagrama mostra um plugin chamado `my-plugin` que contém uma skill, um agente, hooks e um servidor MCP, e o que você obtém de cada arquivo uma vez que o plugin é carregado.

Details

693| Mensagem | Significado | Como resolver |693| Mensagem | Significado | Como resolver |

694| :- | :- | :- |694| :- | :- | :- |

695| `Dependency "<dep>" is not installed` | Uma dependência declarada não está instalada. | Instale-a no seu shell com `claude plugin install <dep>@<marketplace>`, ou desinstale o plugin. Se o marketplace da dependência ainda não está registrado, adicione-o e execute `/reload-plugins` em sua sessão, que instala as dependências faltantes que consegue resolver. |695| `Dependency "<dep>" is not installed` | Uma dependência declarada não está instalada. | Instale-a no seu shell com `claude plugin install <dep>@<marketplace>`, ou desinstale o plugin. Se o marketplace da dependência ainda não está registrado, adicione-o e execute `/reload-plugins` em sua sessão, que instala as dependências faltantes que consegue resolver. |

696| `"<name>@synced" is loaded from your claude.ai account but meets a marketplace dependency only for other claude.ai plugins`, dentro da mensagem `is not installed` | A dependência nomeia um marketplace, e um plugin com esse nome é carregado a partir da sua conta claude.ai. O plugin que declara a dependência não é carregado a partir do claude.ai, então o plugin do claude.ai não a satisfaz. | No seu shell, execute `claude plugin install <dep>@<marketplace>` para instalar a dependência a partir do seu marketplace. A cópia do marketplace então é carregada em vez da do claude.ai. |

696| `Dependency "<dep>" is disabled` | A dependência está instalada mas desligada. | Habilite a dependência, ou desinstale o plugin que a precisa. |697| `Dependency "<dep>" is disabled` | A dependência está instalada mas desligada. | Habilite a dependência, ou desinstale o plugin que a precisa. |

697| `Requires "<dep>" <range>, installed <version>` | A versão da dependência instalada está fora do intervalo declarado do plugin. | Atualize a dependência para uma versão no intervalo, ou desinstale o plugin. |698| `Requires "<dep>" <range>, installed <version>` | A versão da dependência instalada está fora do intervalo declarado do plugin. | Atualize a dependência para uma versão no intervalo, ou desinstale o plugin. |

698| `<Plugin or Dependency> "<name>" has conflicting version requirements` | Nenhuma versão satisfaz cada intervalo que a fixa. A mensagem lista os intervalos. | Desinstale ou atualize um dos plugins conflitantes, ou peça ao autor upstream para ampliar sua restrição. |699| `<Plugin or Dependency> "<name>" has conflicting version requirements` | Nenhuma versão satisfaz cada intervalo que a fixa. A mensagem lista os intervalos. | Desinstale ou atualize um dos plugins conflitantes, ou peça ao autor upstream para ampliar sua restrição. |


700| `... has no git tag satisfying <range>` | O repositório da dependência não tem uma tag `<name>--v*` no intervalo. | Verifique que o upstream marca lançamentos com essa convenção, ou relaxe o intervalo. |701| `... has no git tag satisfying <range>` | O repositório da dependência não tem uma tag `<name>--v*` no intervalo. | Verifique que o upstream marca lançamentos com essa convenção, ou relaxe o intervalo. |

701| `Dependency "<dep>" (required by <plugin>) is in <marketplace>, which is not in the allowlist` | A dependência está em um marketplace diferente, e a resolução entre marketplaces está desligada por padrão. | Instale a dependência você mesmo no mesmo escopo, no seu shell com `claude plugin install <dep>@<marketplace>` mais o `--scope` em que você está instalando o plugin, depois tente novamente. |702| `Dependency "<dep>" (required by <plugin>) is in <marketplace>, which is not in the allowlist` | A dependência está em um marketplace diferente, e a resolução entre marketplaces está desligada por padrão. | Instale a dependência você mesmo no mesmo escopo, no seu shell com `claude plugin install <dep>@<marketplace>` mais o `--scope` em que você está instalando o plugin, depois tente novamente. |

702 703 

703Para ver estes programaticamente, execute `claude plugin list --json` no seu shell. Plugins com problemas carregam um campo `errors` com as mensagens e um campo `errorDetails` com um `type` para cada: as duas primeiras linhas são `dependency-unsatisfied` e a terceira é `dependency-version-unsatisfied`.704Para ver estes programaticamente, execute `claude plugin list --json` no seu shell. Plugins com problemas carregam um campo `errors` com as mensagens e um campo `errorDetails` com um `type` para cada: as três primeiras linhas são `dependency-unsatisfied` e a quarta é `dependency-version-unsatisfied`.

704 705 

705<h2 id="plugin-installed-but-not-working">706<h2 id="plugin-installed-but-not-working">

706 Plugin installed but not working707 Plugin installed but not working

Details

211 Compaction funciona a seu favor quando o contexto que você descarta é conteúdo que você não precisa mais. Para escolher quando sua sobrecarga acontece, execute `/compact` em uma pausa natural em seu trabalho, como entre tarefas, em vez de esperar que a auto-compactação seja acionada no meio da tarefa. Se você seguiu um caminho que deseja abandonar inteiramente, [`/rewind`](#rewinding-the-conversation) para um turno anterior em vez disso. Rewind trunca de volta para um prefixo que já está armazenado em cache, em vez de construir um novo como compaction faz.211 Compaction funciona a seu favor quando o contexto que você descarta é conteúdo que você não precisa mais. Para escolher quando sua sobrecarga acontece, execute `/compact` em uma pausa natural em seu trabalho, como entre tarefas, em vez de esperar que a auto-compactação seja acionada no meio da tarefa. Se você seguiu um caminho que deseja abandonar inteiramente, [`/rewind`](#rewinding-the-conversation) para um turno anterior em vez disso. Rewind trunca de volta para um prefixo que já está armazenado em cache, em vez de construir um novo como compaction faz.

212</Tip>212</Tip>

213 213 

214Se você deixar uma conversa longa ociosa em uma sessão de terminal enquanto ela estiver no [TTL de uma hora](#which-ttl-each-request-gets), Claude Code pode compactá-la pouco antes de o cache expirar. Para desativar a compactação por inatividade, defina [`idleCompaction`](/docs/pt/settings-reference#idlecompaction) como `false`, o que requer Claude Code v2.1.290 ou posterior.

215 

214<h3 id="accumulating-many-images">216<h3 id="accumulating-many-images">

215 Accumulating many images217 Accumulating many images

216</h3>218</h3>

Details

261 261 

262Verificações biométricas são executadas no dispositivo através do sistema operacional ou navegador, o mesmo mecanismo que o login com passkey. Anthropic nunca recebe ou armazena impressões digitais, dados faciais ou qualquer outra informação biométrica. Apenas a chave pública do dispositivo e metadados básicos como nome de exibição, plataforma e hora de inscrição são armazenados.262Verificações biométricas são executadas no dispositivo através do sistema operacional ou navegador, o mesmo mecanismo que o login com passkey. Anthropic nunca recebe ou armazena impressões digitais, dados faciais ou qualquer outra informação biométrica. Apenas a chave pública do dispositivo e metadados básicos como nome de exibição, plataforma e hora de inscrição são armazenados.

263 263 

264A configuração se aplica ao Remote Control tanto no Claude Code quanto no [Cowork](https://claude.com/docs/cowork/overview). Esta página aborda o lado do Claude Code. Chat regular do Claude, Claude Code no terminal e uso de API não são afetados.264A configuração se aplica ao Remote Control no Claude Code e ao acesso Computer no [Cowork](https://claude.com/docs/cowork/overview). Esta página aborda o lado do Claude Code. Chat regular do Claude, Claude Code no terminal e uso de API não são afetados.

265 265 

266<h3 id="enable-trusted-devices-for-your-organization">266<h3 id="enable-trusted-devices-for-your-organization">

267 Ativar Dispositivos Confiáveis para uma organização Team ou Enterprise267 Ativar Dispositivos Confiáveis para uma organização Team ou Enterprise

routines.md +28 −15

Details

52 52 

53O formulário de criação configura o prompt da rotina, repositórios, ambiente, conectores e acionadores.53O formulário de criação configura o prompt da rotina, repositórios, ambiente, conectores e acionadores.

54 54 

55As rotinas são executadas autonomamente como sessões completas de Claude Code em nuvem: não há seletor de modo de permissão, e a sessão executa comandos shell, usa [skills](/docs/pt/skills) confirmadas no repositório clonado e chama qualquer conector que você incluir, tudo sem parar para aprovação, exceto por algumas ações de [artifact](/docs/pt/artifacts).55As rotinas são executadas autonomamente como sessões completas de Claude Code na nuvem: não há seletor de modo de permissão, e a sessão executa comandos shell, usa [skills](/docs/pt/skills) incluídas via commit no repositório clonado e chama qualquer conector que você incluir, tudo sem parar para aprovação, exceto por algumas [ações de artefato](#when-a-run-publishes-an-artifact-without-asking).

56 56 

57O que uma rotina pode alcançar é determinado pelos repositórios que você seleciona, o [acesso à rede do ambiente](/docs/pt/cloud-environments) e variáveis, e os conectores que você inclui. Escopo cada um desses para o que a rotina realmente precisa.57O que uma rotina pode alcançar é determinado pelos repositórios que você seleciona, o [acesso à rede do ambiente](/docs/pt/cloud-environments) e variáveis, e os conectores que você inclui. Escopo cada um desses para o que a rotina realmente precisa.

58 58 

59Quando o cronograma da rotina ou **Run now** inicia uma execução, Claude republica um artifact existente sem perguntar apenas quando todos estes se aplicam:

60 

61* Você pode editar o artifact e ele pertence à sua própria organização

62* O artifact não é compartilhado publicamente

63* Se o artifact é compartilhado com pessoas específicas ou sua organização, seus visualizadores não veem automaticamente cada nova versão

64* A publicação carrega apenas a página, sem arquivos de suporte ou qualquer outra coisa adicionada, e não força sobre uma versão mais recente

65* A página não contém uma concessão que vai além da página, como [chamadas de conector](/docs/pt/artifacts#pull-live-data-with-mcp-connectors)

66 

67Em todos os outros casos, incluindo publicar um novo artifact, Claude pergunta primeiro. Quando o trabalho de uma rotina é manter uma página atual, dê a ela um artifact que você já publicou.

68 

69As rotinas pertencem à sua conta individual claude.ai. Elas não são compartilhadas com colegas de equipe e suas execuções contam contra a [utilização e limites](#usage-and-limits) da sua conta. Qualquer coisa que uma rotina faz através de sua identidade do GitHub conectada ou conectores aparece como você: commits e pull requests carregam seu usuário do GitHub, e mensagens do Slack, tickets do Linear ou outras ações de conector usam suas contas vinculadas para esses serviços.59As rotinas pertencem à sua conta individual claude.ai. Elas não são compartilhadas com colegas de equipe e suas execuções contam contra a [utilização e limites](#usage-and-limits) da sua conta. Qualquer coisa que uma rotina faz através de sua identidade do GitHub conectada ou conectores aparece como você: commits e pull requests carregam seu usuário do GitHub, e mensagens do Slack, tickets do Linear ou outras ações de conector usam suas contas vinculadas para esses serviços.

70 60 

71<h3 id="create-from-the-web">61<h3 id="create-from-the-web">


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:83 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 84 

95 * **Acesso à rede**: defina o nível de acesso à internet disponível durante cada execução85 * **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 [segredos de rede](/docs/pt/cloud-environments#add-network-secrets) em vez disso. Essa seção também lista as requisições que nunca recebem um segredo86 * **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 um ambiente hospedado pela Anthropic, armazene chaves para as APIs que Claude chama durante uma execução como [segredos de rede](/docs/pt/cloud-environments#add-network-secrets) 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ão87 * **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 88 

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


182 172 

183Um acionador de API fornece a uma rotina um endpoint HTTP dedicado. POSTando para o endpoint com o token de portador da rotina inicia uma nova sessão e retorna uma URL de sessão. Use isso para conectar Claude Code em sistemas de alerta, pipelines de implantação, ferramentas internas ou em qualquer lugar onde você possa fazer uma solicitação HTTP autenticada.173Um acionador de API fornece a uma rotina um endpoint HTTP dedicado. POSTando para o endpoint com o token de portador da rotina inicia uma nova sessão e retorna uma URL de sessão. Use isso para conectar Claude Code em sistemas de alerta, pipelines de implantação, ferramentas internas ou em qualquer lugar onde você possa fazer uma solicitação HTTP autenticada.

184 174 

185Os acionadores de API são adicionados a uma rotina existente a partir da web. A CLI atualmente não pode criar ou revogar tokens.175Os acionadores de API são adicionados a uma rotina existente a partir da web. A CLI atualmente não pode criar, regenerar ou excluir tokens.

186 176 

187<Steps>177<Steps>

188 <Step title="Abrir a rotina para edição">178 <Step title="Abrir a rotina para edição">


202 </Step>192 </Step>

203</Steps>193</Steps>

204 194 

205Cada rotina tem seu próprio token, limitado ao acionamento apenas dessa rotina. Para rotacioná-lo ou revogá-lo, retorne ao mesmo modal e clique em **Regenerar** ou **Revogar**.195Cada rotina tem seu próprio token, limitado ao acionamento apenas dessa rotina. Para desativar o acesso à API ou rotacionar o token, retorne ao mesmo modal:

196 

197* **Desativar o acesso à API**: clique em **Excluir token**, o ícone de lixeira ao lado de **Regenerar**

198* **Rotacionar o token**: clique em **Regenerar**

206 199 

207<h4 id="trigger-a-routine">200<h4 id="trigger-a-routine">

208 Acionar uma rotina201 Acionar uma rotina


379 372 

380Para gerenciar ou adicionar conectores fora do formulário de rotina, visite [claude.ai/customize/connectors](https://claude.ai/customize/connectors) ou use `/schedule update` na CLI.373Para gerenciar ou adicionar conectores fora do formulário de rotina, visite [claude.ai/customize/connectors](https://claude.ai/customize/connectors) ou use `/schedule update` na CLI.

381 374 

375<h3 id="when-a-run-publishes-an-artifact-without-asking">

376 Quando uma execução publica um artefato sem perguntar

377</h3>

378 

379Quando o cronograma de uma rotina ou **Executar agora** inicia uma execução, Claude pode publicar um novo [artefato](/docs/pt/artifacts) sem perguntar. O novo artefato fica visível apenas para você até que você [o compartilhe](/docs/pt/artifacts#share-an-artifact). Se a publicação declarar recursos de tempo de execução para a página, como [chamadas de conectores](/docs/pt/artifacts#pull-live-data-with-mcp-connectors) ou [downloads de arquivos](/docs/pt/artifacts#offer-a-file-download), Claude pergunta primeiro.

380 

381Nessas execuções, Claude republica um artefato existente sem perguntar somente quando todas estas condições forem atendidas:

382 

383* Você pode editar o artefato e ele pertence à sua própria organização

384* Se a publicação incluir mais do que a página, como arquivos de suporte, você é o proprietário do artefato

385* O artefato não está compartilhado publicamente

386* Se o artefato estiver compartilhado com pessoas específicas ou com sua organização, seus visualizadores não veem automaticamente cada nova versão

387* A publicação não sobrescreve à força uma versão mais recente

388* A publicação não declara recursos de tempo de execução para a página

389* A página existente não contém nenhuma concessão que vá além da página, como [chamadas de conectores](/docs/pt/artifacts#pull-live-data-with-mcp-connectors)

390 

391Em todos os outros casos, incluindo uma execução iniciada por um acionador de API ou do GitHub, Claude pergunta primeiro.

392 

393Quando a função de uma rotina é manter uma página atualizada, forneça a ela um artefato que você já publicou.

394 

382<h3 id="environments-and-network-access">395<h3 id="environments-and-network-access">

383 Ambientes e acesso à rede396 Ambientes e acesso à rede

384</h3>397</h3>


403 </Step>416 </Step>

404 417 

405 <Step title="Altere o nível de acesso à rede">418 <Step title="Altere o nível de acesso à rede">

406 Na caixa de diálogo **Editar ambiente**, altere **Acesso à rede** para **Personalizado** e insira seus domínios em **Domínios permitidos**. Marque **Também incluir lista padrão de gerenciadores de pacotes comuns** para manter a [allowlist padrão](/docs/pt/cloud-environments#default-allowed-domains) junto com seus domínios personalizados. Selecione **Completo** em vez disso para acesso irrestrito.419 Na caixa de diálogo **Editar ambiente em nuvem**, altere **Acesso à rede** para **Personalizado** e insira seus domínios em **Domínios permitidos**. Marque **Também incluir lista padrão de gerenciadores de pacotes comuns** para manter a [allowlist padrão](/docs/pt/cloud-environments#default-allowed-domains) junto com seus domínios personalizados. Selecione **Completo** em vez disso para acesso irrestrito.

407 </Step>420 </Step>

408 421 

409 <Step title="Salvar">422 <Step title="Salvar">

Details

79 79 

80Em uma sessão onde a [ferramenta Monitor está disponível](/docs/pt/tools-reference#monitor-tool), Claude pode usá-la diretamente quando você pede um cronograma `/loop` dinâmico. Monitor executa um script em segundo plano e transmite cada linha de saída de volta, o que evita pesquisa completamente e geralmente é mais eficiente em tokens e responsivo do que re-executar um prompt em um intervalo.80Em uma sessão onde a [ferramenta Monitor está disponível](/docs/pt/tools-reference#monitor-tool), Claude pode usá-la diretamente quando você pede um cronograma `/loop` dinâmico. Monitor executa um script em segundo plano e transmite cada linha de saída de volta, o que evita pesquisa completamente e geralmente é mais eficiente em tokens e responsivo do que re-executar um prompt em um intervalo.

81 81 

82Um loop agendado dinamicamente aparece em sua [lista de tarefas agendadas](#manage-scheduled-tasks) como qualquer outra tarefa, portanto você pode listá-lo ou cancelá-lo da mesma forma. As [regras de jitter](#jitter) não se aplicam a ele, mas a [expiração de sete dias](#seven-day-expiry) se aplica.82Um loop agendado dinamicamente aparece em sua [lista de tarefas agendadas](#manage-scheduled-tasks) como qualquer outra tarefa, portanto você pode listá-lo ou cancelá-lo da mesma forma. A lista mostra seu despertar pendente como uma tarefa única, portanto um despertar agendado para `:00` ou `:30` pode [ser executado um pouco antes](#when-a-one-shot-task-runs-early). A [expiração de sete dias](#seven-day-expiry) também se aplica ao loop.

83 83 

84<span id="loop-provider-differences" />84<span id="loop-provider-differences" />

85 85 


174| Ferramenta | Propósito |174| Ferramenta | Propósito |

175| :- | :- |175| :- | :- |

176| `CronCreate` | Agendar uma nova tarefa. Aceita uma expressão cron de 5 campos, o prompt a ser executado e se recorre ou dispara uma vez. |176| `CronCreate` | Agendar uma nova tarefa. Aceita uma expressão cron de 5 campos, o prompt a ser executado e se recorre ou dispara uma vez. |

177| `CronList` | Listar todas as tarefas agendadas com seus IDs, cronogramas e prompts. |177| `CronList` | Listar tarefas agendadas com seus IDs, cronogramas, [próximos horários de execução](#jitter) e prompts. |

178| `CronDelete` | Cancelar uma tarefa por ID. |178| `CronDelete` | Cancelar uma tarefa por ID. |

179 179 

180Cada tarefa agendada tem um ID de 8 caracteres que você pode passar para `CronDelete`. Uma sessão pode conter até 50 tarefas agendadas por vez.180Cada tarefa agendada tem um ID de 8 caracteres que você pode passar para `CronDelete`. Uma sessão pode conter até 50 tarefas agendadas por vez.


193 193 

194Uma tarefa agendada pode ser executada em um horário diferente do que seu agendamento indica. Se as tarefas de todas as sessões fossem executadas exatamente no horário agendado, muitas delas chamariam a API no mesmo momento, então Claude Code desloca o horário de execução de cada tarefa. Tarefas recorrentes são executadas com atraso, exceto uma tarefa executada a cada cinco minutos, escrita como `*/5 * * * *`. Tarefas únicas agendadas para a hora cheia ou a meia hora são executadas um pouco mais cedo.194Uma tarefa agendada pode ser executada em um horário diferente do que seu agendamento indica. Se as tarefas de todas as sessões fossem executadas exatamente no horário agendado, muitas delas chamariam a API no mesmo momento, então Claude Code desloca o horário de execução de cada tarefa. Tarefas recorrentes são executadas com atraso, exceto uma tarefa executada a cada cinco minutos, escrita como `*/5 * * * *`. Tarefas únicas agendadas para a hora cheia ou a meia hora são executadas um pouco mais cedo.

195 195 

196Para ver quando uma tarefa vence novamente, leia a linha abaixo da chamada `CronCreate` de Claude no seu terminal. A linha mostra esse horário após o agendamento, por exemplo `next run 10:21 AM`. Para verificar novamente mais tarde, [peça a Claude para listar suas tarefas](#manage-scheduled-tasks) e procure `next run` nas linhas abaixo da chamada `CronList`. Os horários da próxima execução nessas linhas exigem Claude Code v2.1.299 ou posterior.

197 

196<h4 id="how-late-a-recurring-task-runs">198<h4 id="how-late-a-recurring-task-runs">

197 Quanto atraso uma tarefa recorrente tem199 Quanto atraso uma tarefa recorrente tem

198</h4>200</h4>

Details

1001. Um runner com capacidade livre reclama a sessão e mantém uma concessão sobre ela.1001. Um runner com capacidade livre reclama a sessão e mantém uma concessão sobre ela.

1012. O runner clona o repositório em seu diretório de trabalho e gera um processo filho de Claude Code.1012. O runner clona o repositório em seu diretório de trabalho e gera um processo filho de Claude Code.

1023. O filho transmite eventos de volta por HTTPS enquanto o runner continua sondando; cada sondagem atualiza a concessão e funciona como o batimento cardíaco.1023. O filho transmite eventos de volta por HTTPS enquanto o runner continua sondando; cada sondagem atualiza a concessão e funciona como o batimento cardíaco.

1034. Se o runner parar de sondar, sua concessão expira após cerca de 60 segundos, e o servidor recoloca a sessão na fila para outro runner em poucos minutos.1034. Se o runner parar de sondar, sua concessão expira após cerca de 60 segundos. O servidor pode então levar alguns minutos, e às vezes mais, para recolocar a sessão na fila para outro runner.

104 104 

105O runner dá a cada solicitação de sondagem 10 segundos. Quando uma solicitação expira, é perdida ou recebe uma resposta que o runner não consegue analisar, o runner continua servindo suas sessões ativas e tenta novamente após um segundo ou dois em vez de esperar pela próxima sondagem agendada. Por exemplo, um proxy interceptador que responde à sondagem com sua própria página produz uma resposta que o runner não consegue analisar. Cada vez que outra solicitação falha de uma dessas maneiras, o runner dobra a lacuna antes da próxima tentativa, até 20 segundos, e encurta a lacuna sempre que a concessão está próxima de expirar.105O runner dá a cada solicitação de sondagem 10 segundos. Quando uma solicitação expira, é perdida ou recebe uma resposta que o runner não consegue analisar, o runner continua servindo suas sessões ativas e tenta novamente após um segundo ou dois em vez de esperar pela próxima sondagem agendada. Por exemplo, um proxy interceptador que responde à sondagem com sua própria página produz uma resposta que o runner não consegue analisar. Cada vez que outra solicitação falha de uma dessas maneiras, o runner dobra a lacuna antes da próxima tentativa, até 20 segundos, e encurta a lacuna sempre que a concessão está próxima de expirar.

106 106 

Details

40| `CLAUDE_CODE_REMOTE_SLACK_THREAD_TS` | Para uma sessão do Claude Tag que pertence a uma thread do Slack, o timestamp do Slack dessa thread, como `1700000000.000100`. Pode não estar definido, e pode estar definido quando `CLAUDE_CODE_REMOTE_SLACK_THREAD_URL` não está, então verifique cada variável separadamente. |40| `CLAUDE_CODE_REMOTE_SLACK_THREAD_TS` | Para uma sessão do Claude Tag que pertence a uma thread do Slack, o timestamp do Slack dessa thread, como `1700000000.000100`. Pode não estar definido, e pode estar definido quando `CLAUDE_CODE_REMOTE_SLACK_THREAD_URL` não está, então verifique cada variável separadamente. |

41| `CLAUDE_SESSION_INGRESS_TOKEN_FILE` | Caminho absoluto para um arquivo por sessão contendo o JWT da sessão atual, mantido atualizado em atualizações de token. Subprocessos shell o leem para seu cabeçalho `Authorization` ao baixar anexos que o usuário adicionou à sessão. `exec` preserva a variável automaticamente; um wrapper que reconstrói o ambiente do filho deve levar a variável, ou downloads de anexos param silenciosamente de funcionar. |41| `CLAUDE_SESSION_INGRESS_TOKEN_FILE` | Caminho absoluto para um arquivo por sessão contendo o JWT da sessão atual, mantido atualizado em atualizações de token. Subprocessos shell o leem para seu cabeçalho `Authorization` ao baixar anexos que o usuário adicionou à sessão. `exec` preserva a variável automaticamente; um wrapper que reconstrói o ambiente do filho deve levar a variável, ou downloads de anexos param silenciosamente de funcionar. |

42| `CLAUDE_CONFIG_DIR` | Diretório de configuração Claude por sessão, escrito no início da sessão a partir do snapshot da configuração do host do runner que o runner captura na inicialização; consulte [Permissions and tool approval](#permissions-and-tool-approval). Escritas aqui são isoladas para esta sessão. O diretório fica sob `<base-dir>/_sessions/` após o término da sessão, a menos que você inicie o runner com [`--remove-session-state`](/docs/pt/self-hosted-environments-reference#runner-cli-flags); consulte [Reuse a pre-warmed checkout](/docs/pt/self-hosted-environments-deploy#reuse-a-pre-warmed-checkout). |42| `CLAUDE_CONFIG_DIR` | Diretório de configuração Claude por sessão, escrito no início da sessão a partir do snapshot da configuração do host do runner que o runner captura na inicialização; consulte [Permissions and tool approval](#permissions-and-tool-approval). Escritas aqui são isoladas para esta sessão. O diretório fica sob `<base-dir>/_sessions/` após o término da sessão, a menos que você inicie o runner com [`--remove-session-state`](/docs/pt/self-hosted-environments-reference#runner-cli-flags); consulte [Reuse a pre-warmed checkout](/docs/pt/self-hosted-environments-deploy#reuse-a-pre-warmed-checkout). |

43| `CLAUDE_CODE_REMOTE_MCP_CONFIG` | Caminho para um arquivo em `CLAUDE_CONFIG_DIR` contendo as definições de servidores MCP que o plano de controle da Anthropic entregou para esta sessão. Se seu wrapper reconstrói o ambiente do filho, leve esta variável junto. Sem ela, quando o plano de controle atualiza os servidores entregues, o filho encerra qualquer servidor stdio, HTTP ou SSE que seu wrapper adiciona com [`--mcp-config`](/docs/pt/cli-reference#cli-flags) que não esteja na atualização. Requer Claude Code v2.1.299 ou posterior. |

43| `ANTHROPIC_BASE_URL` | A URL base da API que o filho usará, entregue pelo plano de controle por sessão e normalmente `https://api.anthropic.com`. Não a sobrescreva: a credencial de inferência da sessão é um token OAuth emitido pela Anthropic que outros provedores não aceitam. |44| `ANTHROPIC_BASE_URL` | A URL base da API que o filho usará, entregue pelo plano de controle por sessão e normalmente `https://api.anthropic.com`. Não a sobrescreva: a credencial de inferência da sessão é um token OAuth emitido pela Anthropic que outros provedores não aceitam. |

44| `CLAUDE_CODE_OAUTH_TOKEN` | O token de acesso OAuth de curta duração que o filho usa para inferência de modelo, com escopo apenas para inferência de modelo e upload de arquivo, com uma vida útil de cerca de 30 minutos. O runner o re-emite antes da expiração e entrega a rotação pela stdin do filho, então um wrapper que não [mantém stdin anexado](#keep-stdin-and-file-descriptor-3-attached) vê apenas o valor inicial. Não confie na allowlist de IP da sua organização para limitar o uso deste token: trate-o como uma credencial de portador que permanece utilizável por aproximadamente 30 minutos se vazar, e não o registre em log, não o escreva em disco nem o encaminhe para fora do contêiner da sessão. |45| `CLAUDE_CODE_OAUTH_TOKEN` | O token de acesso OAuth de curta duração que o filho usa para inferência de modelo, com escopo apenas para inferência de modelo e upload de arquivo, com uma vida útil de cerca de 30 minutos. O runner o re-emite antes da expiração e entrega a rotação pela stdin do filho, então um wrapper que não [mantém stdin anexado](#keep-stdin-and-file-descriptor-3-attached) vê apenas o valor inicial. Não confie na allowlist de IP da sua organização para limitar o uso deste token: trate-o como uma credencial de portador que permanece utilizável por aproximadamente 30 minutos se vazar, e não o registre em log, não o escreva em disco nem o encaminhe para fora do contêiner da sessão. |

45 46 


51 Give a default to variables that can be unset52 Give a default to variables that can be unset

52</h3>53</h3>

53 54 

54`CCR_SESSION_ACCOUNT_EMAIL`, `CLAUDE_RUNNER_CLIENT_PLATFORM`, `CLAUDE_CODE_REMOTE_SLACK_THREAD_URL` e `CLAUDE_CODE_REMOTE_SLACK_THREAD_TS` podem, cada uma, não estar definidas. Se seu script usa `set -u`, o Bash para com `unbound variable` ao expandir uma que não está definida, então expanda-as com um valor padrão, como `${CCR_SESSION_ACCOUNT_EMAIL:-}`.55`CCR_SESSION_ACCOUNT_EMAIL`, `CLAUDE_RUNNER_CLIENT_PLATFORM`, `CLAUDE_CODE_REMOTE_SLACK_THREAD_URL` e `CLAUDE_CODE_REMOTE_SLACK_THREAD_TS` podem, cada uma, não estar definidas. Se seu script usa `set -u`, o Bash para com `unbound variable` ao expandir uma que não está definida, então expanda-as com um valor padrão, como `"${CCR_SESSION_ACCOUNT_EMAIL:-}"`.

55 56 

56Onde quer que um shell expanda o link da thread do Slack, tome estas precauções:57<h3 id="quote-the-arguments-and-variables-your-script-expands">

58 Quote the arguments and variables your script expands

59</h3>

60 

61Coloque entre aspas cada argumento e variável que o runner passa para seu wrapper ou [hook `command`](#command). Alguns valores contêm caracteres que um shell interpreta, porque contêm JSON, frases inteiras ou uma [regra de permissão](/docs/pt/permissions#permission-rule-syntax) como `Bash(npm run test *)`.

57 62 

58* **Coloque-o entre aspas**: o link pode conter caracteres que um shell interpreta, como `?` e `&`, então coloque a variável entre aspas, como em `"${CLAUDE_CODE_REMOTE_SLACK_THREAD_URL:-}"`.63* **Argumentos**: repasse-os como `"$@"`

59* **Mantenha seu valor fora de strings de `eval` e `sh -c`**: não substitua seu valor em uma string que `eval` ou `sh -c` executa, mesmo entre aspas. Em vez disso, faça essa string referenciar a variável.64* **Variáveis**: coloque cada uma entre aspas, como em `"${CLAUDE_CODE_REMOTE_SLACK_THREAD_URL:-}"`. O link da thread do Slack, por exemplo, pode conter `?` e `&`.

65* **Strings de `eval` e `sh -c`**: não substitua um valor em uma string que `eval` ou `sh -c` executa, mesmo entre aspas. Em vez disso, faça essa string referenciar a variável.

60 66 

61<h3 id="keep-stdin-and-file-descriptor-3-attached">67<h3 id="keep-stdin-and-file-descriptor-3-attached">

62 Keep stdin and file descriptor 3 attached68 Keep stdin and file descriptor 3 attached


136| `CLAUDE_RUNNER_SESSION_ID` | ID da sessão na forma marcada `session_...`, para logging e correlação |142| `CLAUDE_RUNNER_SESSION_ID` | ID da sessão na forma marcada `session_...`, para logging e correlação |

137| `CLAUDE_RUNNER_SESSION_UUID` | O mesmo ID da sessão na forma UUID canônica |143| `CLAUDE_RUNNER_SESSION_UUID` | O mesmo ID da sessão na forma UUID canônica |

138| `CLAUDE_RUNNER_API_BASE_URL` | URL base da API Anthropic para chamadas com escopo de sessão |144| `CLAUDE_RUNNER_API_BASE_URL` | URL base da API Anthropic para chamadas com escopo de sessão |

139| `CLAUDE_RUNNER_CLIENT_PLATFORM` | A superfície do cliente que criou a sessão, como `web_claude_ai`, `desktop_app` ou `ios`. Não definido quando a sessão não tem superfície registrada ou reconhecida, então referencie-a como `${CLAUDE_RUNNER_CLIENT_PLATFORM:-}` sob `set -u`. Requer Claude Code v2.1.229 ou posterior. |145| `CLAUDE_RUNNER_CLIENT_PLATFORM` | A superfície do cliente que criou a sessão, como `web_claude_ai`, `desktop_app` ou `ios`. Não definido quando a sessão não tem superfície registrada ou reconhecida, então referencie-a como `"${CLAUDE_RUNNER_CLIENT_PLATFORM:-}"` sob `set -u`. Requer Claude Code v2.1.229 ou posterior. |

140| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | O token de acesso da sessão, para chamadas de API com escopo de sessão |146| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | O token de acesso da sessão, para chamadas de API com escopo de sessão |

141| `GIT_CONFIG_COUNT`, `GIT_CONFIG_KEY_n`, `GIT_CONFIG_VALUE_n` | Configurações git que o runner fixa para o git que seu hook executa. [Configuração do Git dentro de lifecycle hooks](#git-configuration-inside-lifecycle-hooks) as descreve. Requer Claude Code v2.1.280 ou posterior. |147| `GIT_CONFIG_COUNT`, `GIT_CONFIG_KEY_n`, `GIT_CONFIG_VALUE_n` | Configurações git que o runner fixa para o git que seu hook executa. [Configuração do Git dentro de lifecycle hooks](#git-configuration-inside-lifecycle-hooks) as descreve. Requer Claude Code v2.1.280 ou posterior. |

142 148 


159 165 

160O hook falha quando sai com código diferente de zero, ou sai com 0 sem deixar um checkout utilizável para trás:166O hook falha quando sai com código diferente de zero, ou sai com 0 sem deixar um checkout utilizável para trás:

161 167 

162* **Um repositório para o qual a sessão faz push de resultados**: o runner falha a sessão, e em uma saída diferente de zero exibe a cauda do stderr do script para o usuário.168* **Um repositório para o qual a sessão faz push de resultados**: o runner falha a sessão, e em uma saída diferente de zero exibe a cauda do stderr do script para o usuário. Escreva o motivo no stderr como uma única linha curta, escreva-a por último e então saia com código diferente de zero. Não imprima segredos no stderr e remova `set -x` antes de implantar o hook.

163* **Um repositório que a sessão apenas lê**, como um repositório adicionado a uma sessão em execução: o runner registra uma linha `[runner:warn]` com o detalhe da falha, publica um passo `Skipped` para a sessão, remove o que o hook deixou no caminho de checkout e continua com os repositórios restantes. Se pular deixa a sessão sem nenhum repositório, o runner falha a sessão mesmo assim.169* **Um repositório que a sessão apenas lê**, como um repositório adicionado a uma sessão em execução: o runner registra uma linha `[runner:warn]` com o detalhe da falha, publica um passo `Skipped` para a sessão, remove o que o hook deixou no caminho de checkout e continua com os repositórios restantes. Se pular deixa a sessão sem nenhum repositório, o runner falha a sessão mesmo assim.

164 170 

165Quando o hook é bem-sucedido, o runner remove o caminho de checkout após a sessão terminar.171Quando o hook é bem-sucedido, o runner remove o caminho de checkout após a sessão terminar.


180| `CLAUDE_RUNNER_WORKSPACE_PATHS` | Caminhos absolutos separados por dois-pontos das árvores de trabalho da sessão. Vazio para sessões sem repositório. |186| `CLAUDE_RUNNER_WORKSPACE_PATHS` | Caminhos absolutos separados por dois-pontos das árvores de trabalho da sessão. Vazio para sessões sem repositório. |

181| `CLAUDE_RUNNER_DEBUG_LOG_PATH` | Caminho para o log de debug da sessão, ainda em disco enquanto o hook é executado |187| `CLAUDE_RUNNER_DEBUG_LOG_PATH` | Caminho para o log de debug da sessão, ainda em disco enquanto o hook é executado |

182| `CLAUDE_RUNNER_API_BASE_URL` | URL base da API Anthropic para chamadas com escopo de sessão |188| `CLAUDE_RUNNER_API_BASE_URL` | URL base da API Anthropic para chamadas com escopo de sessão |

183| `CLAUDE_RUNNER_CLIENT_PLATFORM` | A superfície do cliente que criou a sessão, como `web_claude_ai`, `desktop_app` ou `ios`. Não definido quando a sessão não tem superfície registrada ou reconhecida, então referencie-a como `${CLAUDE_RUNNER_CLIENT_PLATFORM:-}` sob `set -u`. Requer Claude Code v2.1.229 ou posterior. |189| `CLAUDE_RUNNER_CLIENT_PLATFORM` | A superfície do cliente que criou a sessão, como `web_claude_ai`, `desktop_app` ou `ios`. Não definido quando a sessão não tem superfície registrada ou reconhecida, então referencie-a como `"${CLAUDE_RUNNER_CLIENT_PLATFORM:-}"` sob `set -u`. Requer Claude Code v2.1.229 ou posterior. |

184| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | O token de acesso da sessão, para chamadas de API com escopo de sessão |190| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | O token de acesso da sessão, para chamadas de API com escopo de sessão |

185| `GIT_CONFIG_COUNT`, `GIT_CONFIG_KEY_n`, `GIT_CONFIG_VALUE_n` | Configurações git que o runner fixa para o git que seu hook executa. [Configuração do Git dentro de lifecycle hooks](#git-configuration-inside-lifecycle-hooks) as descreve. Requer Claude Code v2.1.280 ou posterior. |191| `GIT_CONFIG_COUNT`, `GIT_CONFIG_KEY_n`, `GIT_CONFIG_VALUE_n` | Configurações git que o runner fixa para o git que seu hook executa. [Configuração do Git dentro de lifecycle hooks](#git-configuration-inside-lifecycle-hooks) as descreve. Requer Claude Code v2.1.280 ou posterior. |

186 192 


3293. **Use o contrato de código de saída.** Saia com o status que corresponde ao resultado:3353. **Use o contrato de código de saída.** Saia com o status que corresponde ao resultado:

330 336 

331 * **Saída 0**: submetido.337 * **Saída 0**: submetido.

332 * **Saída 1**: falha retentável. A sessão recua e é re-oferecida.338 * **Saída 1, ou ainda em execução quando `--hook-timeout` termina**: falha retentável. A sessão recua e é re-oferecida.

333 * **Saída 2 ou superior**: falha não-retentável. A sessão é bloqueada de gerar novamente até que um usuário envie uma nova mensagem a ela ou um [Owner](/docs/pt/cloud-environments#organization-shared-environments) selecione **Retry** nela na aba **Activity** do ambiente.339 * **Saída 2 ou superior**: falha não-retentável. A sessão é bloqueada de gerar novamente até que um usuário envie uma nova mensagem a ela ou um [Owner](/docs/pt/cloud-environments#organization-shared-environments) selecione **Retry** nela na aba **Activity** do ambiente.

334 340 

335 Em saída diferente de zero, a cauda do stderr do hook aparece na aba **Activity** como o motivo da falha, então escreva o erro acionável para stderr e nunca escreva segredos lá. Em um hook de shell, [mantenha falhas transitórias retentáveis](#keep-transient-failures-retryable-in-a-shell-hook).341 Em saída diferente de zero, a cauda do stderr do hook aparece na aba **Activity** como o motivo da falha, então escreva o erro acionável para stderr e nunca escreva segredos lá. Em um hook de shell, [mantenha falhas transitórias retentáveis](#keep-transient-failures-retryable-in-a-shell-hook).


341 347 

342Uma sessão que fica enfileirada sem erro de spawn na aba **Activity** pode significar que o hook está usando a chave do ID de sessão. Para confirmar, verifique se sua plataforma tem uma carga de trabalho para a primeira solicitação de spawn dessa sessão e nenhuma para as re-solicitações. Se for assim, use `CLAUDE_RUNNER_ORDER_ID` como chave da carga de trabalho.348Uma sessão que fica enfileirada sem erro de spawn na aba **Activity** pode significar que o hook está usando a chave do ID de sessão. Para confirmar, verifique se sua plataforma tem uma carga de trabalho para a primeira solicitação de spawn dessa sessão e nenhuma para as re-solicitações. Se for assim, use `CLAUDE_RUNNER_ORDER_ID` como chave da carga de trabalho.

343 349 

350<h4 id="make-on-demand-runners-exit-when-idle">

351 Faça runners sob demanda saírem quando ociosos

352</h4>

353 

354Por padrão, um runner que seu hook inicia não sai quando o turno da sua sessão termina, então a carga de trabalho que você submeteu continua em execução. Para fazer os runners saírem, faça seu hook passar estas [flags do runner](/docs/pt/self-hosted-environments-reference#runner-cli-flags):

355 

356| Flag, com um valor de exemplo | Passe-a para | O que ela faz |

357| :- | :- | :- |

358| `--release-idle-session-min 30` | Todo runner que seu hook inicia | O runner libera sua sessão após essa quantidade de minutos ociosos e então sai com 0. A sessão é retomada quando o usuário envia a próxima mensagem, mas [o trabalho que ela não havia enviado com push é perdido](/docs/pt/self-hosted-environments-deploy#additional-limitations). |

359| `--kill-session-after-min 480` | Todo runner que seu hook inicia | Limita cada sessão a essa quantidade de minutos, como proteção para [sessões que não contam como ociosas](/docs/pt/self-hosted-environments-deploy#some-sessions-don’t-count-as-idle), então defina-a acima da sua sessão mais longa esperada |

360| `--exit-if-unused-min 60` | Runners em standby, que seu hook inicia para solicitações de pré-aquecimento | Um runner em standby que nunca assume uma sessão sai após essa quantidade de minutos. Se você definir [`--min-idle`](/docs/pt/self-hosted-environments-reference#orchestrator-cli-flags), você recebe um substituto, a menos que o runner em standby fosse excedente, então use um valor bem acima do seu tempo de boot. |

361 

362Remova a carga de trabalho quando o runner sair, por exemplo definindo `ttlSecondsAfterFinished` em um Kubernetes Job ou fazendo o script de inicialização da VM excluir a VM depois.

363 

344<h4 id="keep-transient-failures-retryable-in-a-shell-hook">364<h4 id="keep-transient-failures-retryable-in-a-shell-hook">

345 Mantenha falhas transitórias retentáveis em um hook de shell365 Mantenha falhas transitórias retentáveis em um hook de shell

346</h4>366</h4>


484* O [arquivo MCP gerenciado](/docs/pt/managed-mcp) de escopo enterprise em seu caminho padrão do sistema: `/etc/claude-code/managed-mcp.json` em hosts de runner Linux, `/Library/Application Support/ClaudeCode/managed-mcp.json` em hosts macOS. Use-o para frotas restritas em que apenas servidores listados pelo administrador podem ser carregados. Consulte [controle exclusivo com managed-mcp.json](/docs/pt/managed-mcp#exclusive-control-with-managed-mcp-json) para as regras de precedência. Quando esse arquivo está no host do runner, o Claude Code ignora os servidores MCP que o plano de controle da Anthropic entrega a uma sessão, incluindo conectores do claude.ai, e os nomeia em um aviso no stderr do processo filho da sessão, que o runner registra no nível de log `debug`. Antes da v2.1.229, essas sessões encerravam na inicialização com `You cannot dynamically configure MCP servers when an enterprise MCP config is present`.504* O [arquivo MCP gerenciado](/docs/pt/managed-mcp) de escopo enterprise em seu caminho padrão do sistema: `/etc/claude-code/managed-mcp.json` em hosts de runner Linux, `/Library/Application Support/ClaudeCode/managed-mcp.json` em hosts macOS. Use-o para frotas restritas em que apenas servidores listados pelo administrador podem ser carregados. Consulte [controle exclusivo com managed-mcp.json](/docs/pt/managed-mcp#exclusive-control-with-managed-mcp-json) para as regras de precedência. Quando esse arquivo está no host do runner, o Claude Code ignora os servidores MCP que o plano de controle da Anthropic entrega a uma sessão, incluindo conectores do claude.ai, e os nomeia em um aviso no stderr do processo filho da sessão, que o runner registra no nível de log `debug`. Antes da v2.1.229, essas sessões encerravam na inicialização com `You cannot dynamically configure MCP servers when an enterprise MCP config is present`.

485* A chave [`managedMcpServers`](/docs/pt/settings-reference#managedmcpservers) nas [configurações gerenciadas](/docs/pt/managed-settings) no host do runner: fornece servidores HTTP e SSE sem assumir controle exclusivo, de modo que os servidores das outras fontes ainda são carregados. Requer o Claude Code v2.1.259 ou posterior.505* A chave [`managedMcpServers`](/docs/pt/settings-reference#managedmcpservers) nas [configurações gerenciadas](/docs/pt/managed-settings) no host do runner: fornece servidores HTTP e SSE sem assumir controle exclusivo, de modo que os servidores das outras fontes ainda são carregados. Requer o Claude Code v2.1.259 ou posterior.

486* `<repo>/.mcp.json`: escopo de projeto. Faça commit do arquivo no repositório; seus servidores são aprovados automaticamente em sessões na nuvem. Em uma sessão com vários repositórios, [no máximo o arquivo de um repositório é carregado](#repository-settings-in-sessions-with-several-repositories).506* `<repo>/.mcp.json`: escopo de projeto. Faça commit do arquivo no repositório; seus servidores são aprovados automaticamente em sessões na nuvem. Em uma sessão com vários repositórios, [no máximo o arquivo de um repositório é carregado](#repository-settings-in-sessions-with-several-repositories).

507* Um arquivo [`--mcp-config`](/docs/pt/cli-reference#cli-flags) do seu script wrapper: acrescente a flag depois de `"$@"`, como em `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@" --mcp-config /etc/claude/mcp.json`. Para manter os servidores desse arquivo em execução quando os servidores entregues à sessão forem atualizados no meio da sessão, faça com que seu wrapper passe o [ambiente completo](#wrapper-scripts) para o processo filho, como o `exec` faz. Antes da v2.1.299, os servidores stdio, HTTP e SSE desse arquivo eram encerrados na primeira atualização desse tipo que não os nomeasse.

487 508 

488Quando a entrega de conectores está habilitada para sua organização, o plano de controle da Anthropic entrega os conectores que você configurou no claude.ai para sessões criadas interativamente por meio de configuração MCP fornecida pelo servidor, roteada através de `api.anthropic.com`. Sessões criadas programaticamente, como [despachos pela CLI](/docs/pt/self-hosted-environments-testing#run-the-test-loop), não recebem a entrega de conectores; forneça servidores MCP a elas por meio de qualquer uma das outras fontes listadas nesta seção. O token OAuth do processo filho não carrega um escopo para buscar conectores diretamente, então o processo filho não tenta fazer essa busca por conta própria; a entrega é conduzida pelo servidor.509Quando a entrega de conectores está habilitada para sua organização, o plano de controle da Anthropic entrega os conectores que você configurou no claude.ai para sessões criadas interativamente por meio de configuração MCP fornecida pelo servidor, roteada através de `api.anthropic.com`. Sessões criadas programaticamente, como [despachos pela CLI](/docs/pt/self-hosted-environments-testing#run-the-test-loop), não recebem a entrega de conectores; forneça servidores MCP a elas por meio de qualquer uma das outras fontes listadas nesta seção. O token OAuth do processo filho não carrega um escopo para buscar conectores diretamente, então o processo filho não tenta fazer essa busca por conta própria; a entrega é conduzida pelo servidor.

489 510 

Details

182* Um `credential.helper` que retorna um token com escopo mínimo182* Um `credential.helper` que retorna um token com escopo mínimo

183* `GIT_SSH_COMMAND` apontando para uma chave com escopo restrito183* `GIT_SSH_COMMAND` apontando para uma chave com escopo restrito

184 184 

185Qualquer mecanismo que você configure deve funcionar sem um prompt, porque o clone integrado do runner e fetch desabilitam os prompts que git, SSH, e Git Credential Manager mostrariam de outra forma:185<span id="git-must-work-without-a-prompt" />Qualquer mecanismo que você configure deve funcionar sem um prompt, porque o clone integrado do runner e fetch desabilitam os prompts que git, SSH, e Git Credential Manager mostrariam de outra forma:

186 186 

187* O runner define `GIT_TERMINAL_PROMPT=0`, para que git não peça um nome de usuário ou senha.187* O runner define `GIT_TERMINAL_PROMPT=0`, para que git não peça um nome de usuário ou senha.

188* O runner executa SSH com `BatchMode=yes`, anexado ao seu `GIT_SSH_COMMAND` se você definir um, para que SSH não peça uma frase-passe ou confirmação de host.188* O runner executa SSH com `BatchMode=yes`, anexado ao seu `GIT_SSH_COMMAND` se você definir um, para que SSH não peça uma frase-passe ou confirmação de host.


212* **Somente github.com**: a Anthropic serve uma sessão apenas quando todos os seus repositórios estão em github.com, e o proxy git ainda não suporta GitHub Enterprise Server. Em um runner com o proxy git, uma sessão com um repositório em outro host git [falha ao iniciar](#when-anthropic-doesnt-serve-a-session).212* **Somente github.com**: a Anthropic serve uma sessão apenas quando todos os seus repositórios estão em github.com, e o proxy git ainda não suporta GitHub Enterprise Server. Em um runner com o proxy git, uma sessão com um repositório em outro host git [falha ao iniciar](#when-anthropic-doesnt-serve-a-session).

213* **Credenciais somente para os repositórios da sessão**: a Anthropic fornece credenciais git para os repositórios que fazem parte da sessão, não para outros repositórios no mesmo host git. Um submódulo privado, uma dependência que seu gerenciador de pacotes busca com git ou um marketplace de plugins em outro repositório não recebe nenhuma credencial da Anthropic. Peça às pessoas que criam sessões que [adicionem todos os repositórios](/docs/pt/web-quickstart#start-a-task) de que uma sessão precisa ao criá-la.213* **Credenciais somente para os repositórios da sessão**: a Anthropic fornece credenciais git para os repositórios que fazem parte da sessão, não para outros repositórios no mesmo host git. Um submódulo privado, uma dependência que seu gerenciador de pacotes busca com git ou um marketplace de plugins em outro repositório não recebe nenhuma credencial da Anthropic. Peça às pessoas que criam sessões que [adicionem todos os repositórios](/docs/pt/web-quickstart#start-a-task) de que uma sessão precisa ao criá-la.

214* **Somente pushes de branch**: um push que exclui um branch falha, assim como um push para qualquer outro tipo de ref, como uma tag. Para saber quais branches um push pode atualizar, consulte [Proxy do GitHub](/docs/pt/cloud-environments#github-proxy).214* **Somente pushes de branch**: um push que exclui um branch falha, assim como um push para qualquer outro tipo de ref, como uma tag. Para saber quais branches um push pode atualizar, consulte [Proxy do GitHub](/docs/pt/cloud-environments#github-proxy).

215* **Contas do GitHub conectadas**: a pessoa que criou uma sessão de usuário deve ter conectado o GitHub em claude.ai, ou a sessão [não inicia](#creator-has-no-github-connection).215* **Contas do GitHub conectadas**: peça a cada pessoa que cria sessões de usuário com um repositório que [conecte o GitHub](/docs/pt/web-quickstart#connect-github). Sem a própria conexão, essas sessões [não iniciam](#creator-has-no-github-connection).

216* **`--capacity 1`**: o proxy git requer uma sessão por processo runner, então execute mais réplicas para paralelismo. [Ative o proxy git da Anthropic](#turn-the-anthropic-git-proxy-on) lista os requisitos.216* **`--capacity 1`**: o proxy git requer uma sessão por processo runner, então execute mais réplicas para paralelismo. [Ative o proxy git da Anthropic](#turn-the-anthropic-git-proxy-on) lista os requisitos.

217* **Configuração git global substituída**: o runner [exclui e substitui a configuração git global](#git-proxy-replaces-global-git-config) do usuário com o qual é executado. Execute-o como um usuário dedicado ou em um contêiner.217* **Configuração git global substituída**: o runner [exclui e substitui a configuração git global](#git-proxy-replaces-global-git-config) do usuário com o qual é executado. Execute-o como um usuário dedicado ou em um contêiner.

218* **Credenciais do host para pushes do host**: o push de [`--push-outcome-on-release`](/docs/pt/self-hosted-environments-reference#runner-cli-flags) do runner e qualquer push que seu [hook `post-session`](/docs/pt/self-hosted-environments-configuration#post-session) faça ainda usam as próprias credenciais git do host runner e seu [caminho de rede até `github.com`](#github-com-egress-with-the-anthropic-git-proxy). Para essas credenciais, consulte [Envie configuração git em sua imagem](#ship-git-config-in-your-image).218* **Credenciais do host para pushes do host**: o push de [`--push-outcome-on-release`](/docs/pt/self-hosted-environments-reference#runner-cli-flags) do runner e qualquer push que seu [hook `post-session`](/docs/pt/self-hosted-environments-configuration#post-session) faça ainda usam as próprias credenciais git do host runner e seu [caminho de rede até `github.com`](#github-com-egress-with-the-anthropic-git-proxy). Mantenha essas credenciais fora da [configuração git global](#git-proxy-replaces-global-git-config) e consulte [Envie configuração git em sua imagem](#ship-git-config-in-your-image) para ver formas de fornecê-las.

219* **Decisão por sessão**: a Anthropic decide, para cada sessão no runner, se serve o git dela, e uma sessão que ela não serve falha ao iniciar. [Quando as sessões falham ao iniciar em um runner com o proxy git](#when-anthropic-doesnt-serve-a-session) cobre as causas.219* **Decisão por sessão**: a Anthropic decide, para cada sessão no runner, se serve o git dela, e uma sessão que ela não serve falha ao iniciar. [Quando as sessões falham ao iniciar em um runner com o proxy git](#when-anthropic-doesnt-serve-a-session) cobre as causas.

220 220 

221<span id="git-proxy-replaces-global-git-config" />221<span id="git-proxy-replaces-global-git-config" />


271 * **Um repositório não está em github.com**: uma sessão com mesmo um único repositório em outro host git, como GitHub Enterprise Server, não é servida, incluindo seus repositórios em github.com. [Desative o proxy git da Anthropic](#turn-the-anthropic-git-proxy-off) para os runners desse ambiente.271 * **Um repositório não está em github.com**: uma sessão com mesmo um único repositório em outro host git, como GitHub Enterprise Server, não é servida, incluindo seus repositórios em github.com. [Desative o proxy git da Anthropic](#turn-the-anthropic-git-proxy-off) para os runners desse ambiente.

272 * **Todos os repositórios estão em github.com**: relate a falha à [sua equipe de conta da Anthropic](#report-an-issue) com o ID da sessão da linha `withheld`. A Anthropic registra o motivo do lado dela.272 * **Todos os repositórios estão em github.com**: relate a falha à [sua equipe de conta da Anthropic](#report-an-issue) com o ID da sessão da linha `withheld`. A Anthropic registra o motivo do lado dela.

273* **Uma linha contendo `remote: access denied by the git proxy`**: uma sessão que a Anthropic serve ainda pode ser recusada, por exemplo quando a política da organização nega acesso git para a sessão, ou a sessão não está autorizada para o repositório. O log do runner então mostra uma linha contendo `remote: access denied by the git proxy`, e o restante dessa linha diz o motivo.273* **Uma linha contendo `remote: access denied by the git proxy`**: uma sessão que a Anthropic serve ainda pode ser recusada, por exemplo quando a política da organização nega acesso git para a sessão, ou a sessão não está autorizada para o repositório. O log do runner então mostra uma linha contendo `remote: access denied by the git proxy`, e o restante dessa linha diz o motivo.

274* <span id="creator-has-no-github-connection" />**`GitHub authentication required`**: isso aparece quando o criador da sessão não tem uma conexão funcional com o GitHub em claude.ai. O clone da sessão falha, e o erro git diz `GitHub authentication required. Please reconnect your GitHub account.` Peça a essa pessoa que conecte ou reconecte o GitHub nas configurações do claude.ai.274* <span id="creator-has-no-github-connection" />**`GitHub authentication required`**: isso aparece quando o criador da sessão não tem uma conexão funcional com o GitHub em claude.ai. O clone da sessão falha, e o erro git contém `GitHub authentication required. Please reconnect your GitHub account.` Peça a essa pessoa que conecte ou reconecte o GitHub nas configurações do claude.ai.

275 275 

276Depois de corrigir a causa, inicie novamente as sessões que falharam.276Depois de corrigir a causa, inicie novamente as sessões que falharam.

277 277 


356URLs de repositório chegam do plano de controle como HTTPS, com o nome do host do seu host git; para GitHub Enterprise, esse é o nome do host que você configurou para a [integração GitHub Enterprise](/docs/pt/github-enterprise-server) em claude.ai. Duas flags repetíveis reescrevem essas URLs antes do clone:356URLs de repositório chegam do plano de controle como HTTPS, com o nome do host do seu host git; para GitHub Enterprise, esse é o nome do host que você configurou para a [integração GitHub Enterprise](/docs/pt/github-enterprise-server) em claude.ai. Duas flags repetíveis reescrevem essas URLs antes do clone:

357 357 

358* `--git-host-rewrite <from>=<to>`: para DNS de horizonte dividido, onde a Anthropic alcança seu host git através de um nome do host externo, mas runners devem usar um interno358* `--git-host-rewrite <from>=<to>`: para DNS de horizonte dividido, onde a Anthropic alcança seu host git através de um nome do host externo, mas runners devem usar um interno

359* `--git-ssh-rewrite <host>`: para hosts git que apenas aceitam SSH, reescrevendo `https://<host>/owner/repo` para `git@<host>:owner/repo`359* `--git-ssh-rewrite <host>`: para hosts git que apenas aceitam SSH, ou um host runner que tem apenas uma chave SSH. Por exemplo, para clonar repositórios do github.com via SSH, adicione `--git-ssh-rewrite github.com` ao comando do runner. O runner então reescreve `https://github.com/owner/repo` para `git@github.com:owner/repo`. O SSH deve [conectar sem um prompt](#git-must-work-without-a-prompt).

360 360 

361A reescrita de host é executada primeiro, então liste o nome do host interno em `--git-ssh-rewrite` se você precisar de ambos. Para controle total sobre checkout, use um [hook de ciclo de vida `checkout`](/docs/pt/self-hosted-environments-configuration#checkout).361A reescrita de host é executada primeiro, então liste o nome do host interno em `--git-ssh-rewrite` se você precisar de ambos. Para controle total sobre checkout, use um [hook de ciclo de vida `checkout`](/docs/pt/self-hosted-environments-configuration#checkout).

362 362 


578 578 

579Dê ao timeout de parada do seu host pelo menos a soma de três partes: os `n` minutos que você configura, a carência pós-lançamento e a drenagem que [Tempo de encerramento](#shutdown-timing) descreve. Com as configurações padrão, a carência pós-lançamento é 75 segundos e a drenagem leva até 80 segundos, portanto permita `n` minutos mais 155 segundos. O runner imprime essa soma na inicialização sempre que `--defer-shutdown-max-min` está definido.579Dê ao timeout de parada do seu host pelo menos a soma de três partes: os `n` minutos que você configura, a carência pós-lançamento e a drenagem que [Tempo de encerramento](#shutdown-timing) descreve. Com as configurações padrão, a carência pós-lançamento é 75 segundos e a drenagem leva até 80 segundos, portanto permita `n` minutos mais 155 segundos. O runner imprime essa soma na inicialização sempre que `--defer-shutdown-max-min` está definido.

580 580 

581Se o timeout de parada se esgotar antes do runner terminar, o host mata o runner. As sessões que ele ainda mantém não recebem nenhum hook `post-session`. O runner não se desregistra, e o plano de controle recoloca as sessões na fila em poucos minutos. Se você não puder dar ao timeout de parada essa soma, deixe `--defer-shutdown-max-min` indefinido para que o runner drene no primeiro sinal.581Se o timeout de parada se esgotar antes do runner terminar, as sessões que ele ainda mantém não recebem nenhum hook `post-session`. O runner não se desregistra, portanto o plano de controle pode levar alguns minutos, e às vezes mais, para recolocar essas sessões na fila. Se você não puder dar ao timeout de parada essa soma, deixe `--defer-shutdown-max-min` indefinido para que o runner drene no primeiro sinal.

582 582 

583<h3 id="what-reaches-a-running-post-session-hook">583<h3 id="what-reaches-a-running-post-session-hook">

584 O que atinge um hook post-session em execução584 O que atinge um hook post-session em execução


720 720 

721* **Runner não aparece no ambiente**: confirme que o host pode alcançar `api.anthropic.com` via HTTPS, o segredo do ambiente está atual e o relógio do host está dentro de cinco minutos da hora real; desvios maiores causam falha na autenticação. O runner registra `[runner:fatal]` com o motivo da rejeição em caso de falha de autenticação.721* **Runner não aparece no ambiente**: confirme que o host pode alcançar `api.anthropic.com` via HTTPS, o segredo do ambiente está atual e o relógio do host está dentro de cinco minutos da hora real; desvios maiores causam falha na autenticação. O runner registra `[runner:fatal]` com o motivo da rejeição em caso de falha de autenticação.

722* **Runner sai na inicialização com `cannot create or write to base directory`**: o runner não consegue criar ou escrever em `--base-dir`, que padrão é `/workspace`. Corrija a propriedade do diretório ou aponte `--base-dir` para um caminho gravável, conforme descrito em [Keep the base directory and capacity identical across runners](#keep-the-base-directory-and-capacity-identical-across-runners). Se o runner registrar `[runner:fatal]` dizendo que a verificação do diretório base expirou, o diretório está em uma montagem NFS ou CSI travada. Verifique a saúde da montagem em vez de permissões. O runner imprime ambas essas falhas de inicialização para stderr antes de abrir `--log-file`, então procure por elas no terminal ou nos logs do contêiner da sua plataforma em vez do arquivo de log. Antes da v2.1.225, o runner não verificava o diretório base na inicialização, e essa configuração incorreta falhava nas sessões após a coleta.722* **Runner sai na inicialização com `cannot create or write to base directory`**: o runner não consegue criar ou escrever em `--base-dir`, que padrão é `/workspace`. Corrija a propriedade do diretório ou aponte `--base-dir` para um caminho gravável, conforme descrito em [Keep the base directory and capacity identical across runners](#keep-the-base-directory-and-capacity-identical-across-runners). Se o runner registrar `[runner:fatal]` dizendo que a verificação do diretório base expirou, o diretório está em uma montagem NFS ou CSI travada. Verifique a saúde da montagem em vez de permissões. O runner imprime ambas essas falhas de inicialização para stderr antes de abrir `--log-file`, então procure por elas no terminal ou nos logs do contêiner da sua plataforma em vez do arquivo de log. Antes da v2.1.225, o runner não verificava o diretório base na inicialização, e essa configuração incorreta falhava nas sessões após a coleta.

723* **O runner sai na inicialização com `RegisterRunner failed:` e um erro de certificado TLS**: o erro pode ser `self signed certificate in certificate chain`, por exemplo. O runner não confia na autoridade certificadora (CA) por trás do certificado que recebeu, como acontece atrás de um proxy que inspeciona TLS. Defina [`NODE_EXTRA_CA_CERTS`](/docs/pt/network-config#custom-ca-certificates) no ambiente do runner para um arquivo PEM com a CA raiz do proxy.

724 

725 Você não precisa defini-la novamente para as sessões, que a herdam. O Git não a lê: para clones através desse proxy, defina também [`GIT_SSL_CAINFO`](#trust-a-private-certificate-authority-with-anthropic-managed-git).

726* **O orquestrador registra `poll failed:` com um erro de certificado TLS e continua tentando novamente**: o orquestrador não confia na CA por trás do certificado que recebeu, como acontece atrás de um proxy que inspeciona TLS. Defina [`NODE_EXTRA_CA_CERTS`](/docs/pt/network-config#custom-ca-certificates) no ambiente do orquestrador para um arquivo PEM com a CA raiz do proxy. Defina-a também para os runners que seu hook `spawn-runner` inicia.

727 

728 Por exemplo, uma linha pode terminar com `poll failed: self signed certificate in certificate chain — retrying in 1s`, com as palavras da biblioteca TLS entre os dois-pontos e o travessão. Para confirmar a correção, verifique se `connected` é `true` no corpo de [`/healthz`](/docs/pt/self-hosted-environments-reference#health-endpoint) do orquestrador.

723* **Sessions stay queued**: cada runner online pode estar bloqueado para um proprietário diferente. Verifique a métrica `claude_code_self_hosted_runner_locked_account` [metric](/docs/pt/self-hosted-environments-reference#prometheus-metrics) de cada runner ou o campo `locked_account` de sua linha de log `[runner:health]` para ver quem a mantém. Ambos mostram o email do proprietário apenas depois que o runner recebeu um token de sessão com uma reivindicação `act.email`, que as sessões de um agente Claude Tag nunca fazem. Sem a reivindicação, o runner não emite nenhuma série `locked_account` e registra `locked_account=yes`, o que informa que o runner está bloqueado, mas não para qual proprietário. Adicione réplicas ou aguarde um runner existente drenar e reiniciar. Se o ambiente usar runners sob demanda, verifique o orquestrador; consulte [On-demand runners](/docs/pt/self-hosted-environments-configuration#on-demand-runners).729* **Sessions stay queued**: cada runner online pode estar bloqueado para um proprietário diferente. Verifique a métrica `claude_code_self_hosted_runner_locked_account` [metric](/docs/pt/self-hosted-environments-reference#prometheus-metrics) de cada runner ou o campo `locked_account` de sua linha de log `[runner:health]` para ver quem a mantém. Ambos mostram o email do proprietário apenas depois que o runner recebeu um token de sessão com uma reivindicação `act.email`, que as sessões de um agente Claude Tag nunca fazem. Sem a reivindicação, o runner não emite nenhuma série `locked_account` e registra `locked_account=yes`, o que informa que o runner está bloqueado, mas não para qual proprietário. Adicione réplicas ou aguarde um runner existente drenar e reiniciar. Se o ambiente usar runners sob demanda, verifique o orquestrador; consulte [On-demand runners](/docs/pt/self-hosted-environments-configuration#on-demand-runners).

724* **As sessões falham imediatamente após a coleta**: abra a sessão em claude.ai/code para ver o erro. As causas mais comuns são [credenciais git](#configure-git) ausentes na imagem do runner e ferramentas de build que não estão instaladas. Em um runner iniciado com `--use-anthropic-git-proxy`, consulte [Quando as sessões não iniciam em um runner com o proxy git](#when-anthropic-doesnt-serve-a-session). Um diretório base não gravável interrompe o runner na inicialização em vez de fazer as sessões falharem. Consulte a entrada **O runner sai na inicialização com `cannot create or write to base directory`** nesta lista.730* **As sessões falham imediatamente após a coleta**: abra a sessão em claude.ai/code para ver o erro. As causas mais comuns são [credenciais git](#configure-git) ausentes na imagem do runner e ferramentas de build que não estão instaladas. Em um runner iniciado com `--use-anthropic-git-proxy`, consulte [Quando as sessões não iniciam em um runner com o proxy git](#when-anthropic-doesnt-serve-a-session). Um diretório base não gravável interrompe o runner na inicialização em vez de fazer as sessões falharem. Consulte a entrada **O runner sai na inicialização com `cannot create or write to base directory`** nesta lista.

725* **As sessões não iniciam em um runner que definiu `--use-anthropic-git-proxy`**: procure no log do runner por `access denied by the git proxy`, ou por um erro do git que mencione um endereço de `api.anthropic.com` contendo `/git_proxy/`. Para saber se a Anthropic atendeu a sessão e corrigir a causa, consulte [Quando as sessões não iniciam em um runner com o proxy git](#when-anthropic-doesnt-serve-a-session).731* **As sessões não iniciam em um runner que definiu `--use-anthropic-git-proxy`**: procure no log do runner por `access denied by the git proxy`, ou por um erro do git que mencione um endereço de `api.anthropic.com` contendo `/git_proxy/`. Para saber se a Anthropic atendeu a sessão e corrigir a causa, consulte [Quando as sessões não iniciam em um runner com o proxy git](#when-anthropic-doesnt-serve-a-session).

726* **Sessions can't reach the network through an authenticating egress proxy**: quando a fonte que você definiu com [`--proxy-authorization-command` ou `--proxy-authorization-file`](#authenticate-to-an-egress-proxy) falha, expira após 30 segundos ou produz um valor vazio, o runner responde essa conexão com `502 Bad Gateway` e registra o motivo. O runner redige o stderr do comando nesse log e nunca registra o valor do cabeçalho. Com `--proxy-authorization-command`, execute o comando você mesmo no host para confirmar que ele imprime o valor do cabeçalho inteiro em stdout. Se o runner sair na inicialização com `could not start the proxy-authorization listener`, ele não conseguiu abrir seu listener de loopback.732* **Sessions can't reach the network through an authenticating egress proxy**: quando a fonte que você definiu com [`--proxy-authorization-command` ou `--proxy-authorization-file`](#authenticate-to-an-egress-proxy) falha, expira após 30 segundos ou produz um valor vazio, o runner responde essa conexão com `502 Bad Gateway` e registra o motivo. O runner redige o stderr do comando nesse log e nunca registra o valor do cabeçalho. Com `--proxy-authorization-command`, execute o comando você mesmo no host para confirmar que ele imprime o valor do cabeçalho inteiro em stdout. Se o runner sair na inicialização com `could not start the proxy-authorization listener`, ele não conseguiu abrir seu listener de loopback.

727* **Runner logs `Poll failed` lines containing `rejecting the malformed poll response`**: o runner recebeu uma resposta de work-poll cujo corpo não é o JSON esperado da fila, na maioria das vezes porque algo entre o runner e `api.anthropic.com`, como um proxy interceptador ou um portal cativo, respondeu com sua própria página. O runner rejeita a resposta, a conta sob o tipo `transport` da métrica `claude_code_self_hosted_runner_poll_errors_total` [metric](/docs/pt/self-hosted-environments-reference#prometheus-metrics), e tenta novamente no cronograma de falha de pesquisa descrito em [Session lifecycle](/docs/pt/self-hosted-environments#session-lifecycle). O runner continua servindo suas sessões ativas. Configure o proxy para passar respostas de `api.anthropic.com` inalteradas. Antes da v2.1.246, o runner lia tal resposta como uma fila de trabalho vazia, o que poderia encerrar suas sessões ativas ou fazer com que saísse.733* **Runner logs `Poll failed` lines containing `rejecting the malformed poll response`**: o runner recebeu uma resposta de work-poll cujo corpo não é o JSON esperado da fila, na maioria das vezes porque algo entre o runner e `api.anthropic.com`, como um proxy interceptador ou um portal cativo, respondeu com sua própria página. O runner rejeita a resposta, a conta sob o tipo `transport` da métrica `claude_code_self_hosted_runner_poll_errors_total` [metric](/docs/pt/self-hosted-environments-reference#prometheus-metrics), e tenta novamente no cronograma de falha de pesquisa descrito em [Session lifecycle](/docs/pt/self-hosted-environments#session-lifecycle). O runner continua servindo suas sessões ativas. Configure o proxy para passar respostas de `api.anthropic.com` inalteradas. Antes da v2.1.246, o runner lia tal resposta como uma fila de trabalho vazia, o que poderia encerrar suas sessões ativas ou fazer com que saísse.

728* **A session's branch no longer exists on the remote**: para uma fonte git que a sessão apenas lê, o runner pula essa fonte e continua nas restantes. Para a fonte para a qual a sessão envia resultados, uma ramificação excluída, normalmente porque foi mesclada e auto-excluída, falha na sessão com um erro nomeando o repositório e a ramificação e pedindo que você restaure a ramificação e tente novamente. O runner falha na sessão com o mesmo erro quando pular deixaria sem nenhum repositório. Antes da v2.1.228, tal sessão começava em um diretório vazio.734* **A session's branch no longer exists on the remote**: para uma fonte git que a sessão apenas lê, o runner pula essa fonte e continua nas restantes. Para a fonte para a qual a sessão envia resultados, uma ramificação excluída, normalmente porque foi mesclada e auto-excluída, falha na sessão com um erro nomeando o repositório e a ramificação e pedindo que você restaure a ramificação e tente novamente. O runner falha na sessão com o mesmo erro quando pular deixaria sem nenhum repositório. Antes da v2.1.228, tal sessão começava em um diretório vazio.

729* **A session starts without one of its repositories**: em um runner sem um [checkout hook](/docs/pt/self-hosted-environments-configuration#checkout), o host git pode recusar a verificação de acesso do runner para um repositório que a sessão apenas lê. O runner então pula esse repositório, registra uma linha `[runner:warn] could not access context source` nomeando a recusa, e inicia a sessão nos restantes.735* **Uma sessão inicia sem um de seus repositórios**: em um runner sem um [hook `checkout`](/docs/pt/self-hosted-environments-configuration#checkout), o host git pode recusar a verificação de acesso do runner para um repositório que a sessão apenas lê. O runner então pula esse repositório, registra uma linha `[runner:warn] could not access context source` nomeando a recusa e inicia a sessão nos restantes.

730 736 

731 O runner pula apenas uma recusa clara: o host responde que o repositório não foi encontrado, git não encontra credenciais para o host, ou a autenticação falha. Uma falha de rede, um timeout ou um HTTP `403` ainda falha no início da sessão, assim como uma recusa para um repositório para o qual a sessão envia resultados. O runner ainda falha em uma sessão que pular deixaria sem nenhum repositório. Com [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy), o runner pula apenas um repositório que o proxy git em si nega.737 O runner pula apenas uma recusa clara: o host responde que o repositório não foi encontrado, git não encontra credenciais para o host, ou a autenticação falha. Uma falha de rede, um timeout ou um HTTP `403` ainda falha no início da sessão, assim como uma recusa para um repositório para o qual a sessão envia resultados. O runner ainda falha em uma sessão que pular deixaria sem nenhum repositório. Com [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy), o runner pula apenas um repositório que o proxy git em si nega.

732 738 


741 Antes da v2.1.274, o runner parou de tentar novamente uma busca com falha após algumas tentativas e aguardou a próxima agendada. Uma volta com falha não acionou uma busca, então cada volta falhou com um 401 até a próxima busca agendada.747 Antes da v2.1.274, o runner parou de tentar novamente uma busca com falha após algumas tentativas e aguardou a próxima agendada. Uma volta com falha não acionou uma busca, então cada volta falhou com um 401 até a próxima busca agendada.

742* **Pod is killed mid-drain**: aumente `terminationGracePeriodSeconds` para pelo menos o valor que o runner registra na inicialização. Consulte [Shutdown timing](#shutdown-timing).748* **Pod is killed mid-drain**: aumente `terminationGracePeriodSeconds` para pelo menos o valor que o runner registra na inicialização. Consulte [Shutdown timing](#shutdown-timing).

743 749 

744Depois que o logging é inicializado, o runner escreve seu log de ciclo de vida, incluindo linhas `[runner:fatal]`, para stdout, e saída de depuração para stderr, tudo como linhas de texto simples em vez de JSON. As falhas de inicialização descritas nas entradas de troubleshooting acima são impressas em stderr antes desse ponto. Capture ambos os fluxos com `--log-file`, que também permite que `self-hosted-runner doctor` os acompanhe, ou com a coleta de logs da sua plataforma.750Depois que o logging é inicializado, o runner escreve seu log de ciclo de vida, incluindo linhas `[runner:fatal]`, em stdout, e a saída de depuração em stderr, tudo como linhas de texto simples em vez de JSON. As falhas do diretório base descritas nas entradas de solução de problemas acima são impressas em stderr antes desse ponto. Capture ambos os fluxos com `--log-file`, que também permite que `self-hosted-runner doctor` os acompanhe, ou com a coleta de logs da sua plataforma.

745 751 

746O processo filho de cada sessão escreve um log de depuração separado. Em caso de falha, o runner exibe a cauda do log junto com a sessão em claude.ai/code. A menos que você tenha iniciado o runner com [`--remove-session-state`](/docs/pt/self-hosted-environments-reference#runner-cli-flags), ele também mantém o log de uma sessão com falha no disco e imprime seu caminho no log do runner.752O processo filho de cada sessão escreve um log de depuração separado. Em caso de falha, o runner exibe a cauda do log junto com a sessão em claude.ai/code. A menos que você tenha iniciado o runner com [`--remove-session-state`](/docs/pt/self-hosted-environments-reference#runner-cli-flags), ele também mantém o log de uma sessão com falha no disco e imprime seu caminho no log do runner.

747 753 

Details

25O lado claude.ai precisa de:25O lado claude.ai precisa de:

26 26 

27* **Permitir ambientes auto-hospedados** ativado por um [Proprietário](/docs/pt/cloud-environments#organization-shared-environments) na [página de administração **Cloud environments**](https://claude.ai/admin-settings/cloud-environments); o botão **Novo** não aparece até que esteja. Se você não tiver a função, alguém que tiver pode criar o ambiente e passar seu segredo para você; as etapas de runner e terminal nesta página não precisam de nenhuma função claude.ai, e onde uma etapa verifica o status na interface de administração, as próprias linhas de log do runner fornecem o mesmo sinal.27* **Permitir ambientes auto-hospedados** ativado por um [Proprietário](/docs/pt/cloud-environments#organization-shared-environments) na [página de administração **Cloud environments**](https://claude.ai/admin-settings/cloud-environments); o botão **Novo** não aparece até que esteja. Se você não tiver a função, alguém que tiver pode criar o ambiente e passar seu segredo para você; as etapas de runner e terminal nesta página não precisam de nenhuma função claude.ai, e onde uma etapa verifica o status na interface de administração, as próprias linhas de log do runner fornecem o mesmo sinal.

28* Uma [conexão GitHub](/docs/pt/claude-code-on-the-web#github-authentication-options) para sua organização, para que os desenvolvedores possam escolher repositórios quando iniciarem sessões.28* O [conector GitHub](https://claude.ai/admin-settings/connectors) ativado por um Owner, e a própria [conexão GitHub](/docs/pt/web-quickstart#connect-github) de cada desenvolvedor, para que possam escolher repositórios do github.com quando iniciarem sessões.

29 29 

30<h3 id="host-and-network">30<h3 id="host-and-network">

31 Host e rede31 Host e rede


34O host do runner precisa de:34O host do runner precisa de:

35 35 

36* Um host ou container Linux ou macOS com HTTPS de saída para `api.anthropic.com`, para `claude.ai` e os hosts de download para os quais ele redireciona para a etapa de instalação abaixo, e para seu host git para o clone; a [tabela de requisitos de rede](/docs/pt/self-hosted-environments-deploy#network-requirements) tem a lista completa. Windows não é suportado como host de runner; execute o runner em um container Linux. Estações de trabalho de desenvolvedores não são afetadas, pois as sessões começam a partir de claude.ai em um navegador.36* Um host ou container Linux ou macOS com HTTPS de saída para `api.anthropic.com`, para `claude.ai` e os hosts de download para os quais ele redireciona para a etapa de instalação abaixo, e para seu host git para o clone; a [tabela de requisitos de rede](/docs/pt/self-hosted-environments-deploy#network-requirements) tem a lista completa. Windows não é suportado como host de runner; execute o runner em um container Linux. Estações de trabalho de desenvolvedores não são afetadas, pois as sessões começam a partir de claude.ai em um navegador.

37* Um repositório para a sessão de teste: um público, ou um que este host já consiga clonar pela sua URL HTTPS sem que sejam solicitadas credenciais.37* Um repositório para a sessão de teste: um público, ou um que este host já consiga clonar pela sua URL HTTPS sem que sejam solicitadas credenciais. Uma chave SSH sozinha não é suficiente, porque o runner clona a URL `https://` do repositório. Para clonar via SSH, consulte [Reescrever URLs git para redes privadas](/docs/pt/self-hosted-environments-deploy#rewrite-git-urls-for-private-networks).

38* Um relógio sincronizado com a hora real, por exemplo com NTP. A autenticação falha quando o relógio está mais de cinco minutos atrasado; consulte [Troubleshooting](/docs/pt/self-hosted-environments-deploy#troubleshooting).38* Um relógio sincronizado com a hora real, por exemplo com NTP. A autenticação falha quando o relógio está mais de cinco minutos atrasado; consulte [Troubleshooting](/docs/pt/self-hosted-environments-deploy#troubleshooting).

39 39 

40<h3 id="software-on-the-runner-host">40<h3 id="software-on-the-runner-host">


105 105 

106 Escolha um diretório base, substituindo `<writable-dir>` no comando runner abaixo por um caminho absoluto que o runner possa escrever ou criar. O runner cria o diretório na inicialização, depois verifica repositórios e cria diretórios por sessão sob ele. Sem `--base-dir` ele usa `/workspace`, que só funciona se esse diretório já existe e é gravável ou você inicia o runner como root.106 Escolha um diretório base, substituindo `<writable-dir>` no comando runner abaixo por um caminho absoluto que o runner possa escrever ou criar. O runner cria o diretório na inicialização, depois verifica repositórios e cria diretórios por sessão sob ele. Sem `--base-dir` ele usa `/workspace`, que só funciona se esse diretório já existe e é gravável ou você inicia o runner como root.

107 107 

108 Se o runner não conseguir criar ou escrever no caminho, ele sai na inicialização com um erro nomeando o diretório em vez de se registrar. Consulte [Troubleshooting](/docs/pt/self-hosted-environments-deploy#troubleshooting).108 <Warning>

109 Use um diretório dedicado ao runner, não o seu diretório pessoal nem um diretório com seus próprios clones. O runner trata o que encontrar em `<writable-dir>/<repo-owner>/<repo>` como seu próprio clone e pode redefini-lo e sobrescrever ou excluir arquivos nele.

110 </Warning>

111 

112 Se o runner não conseguir criar ou escrever no diretório base, ele sai na inicialização com um erro nomeando o diretório em vez de se registrar. Consulte [Solução de problemas](/docs/pt/self-hosted-environments-deploy#troubleshooting).

109 113 

110 Depois inicie o runner com `--environment-secret-file` e `--base-dir`:114 Depois inicie o runner com `--environment-secret-file` e `--base-dir`:

111 115 


113 claude self-hosted-runner --environment-secret-file '/etc/claude/environment-secret' --base-dir '<writable-dir>'117 claude self-hosted-runner --environment-secret-file '/etc/claude/environment-secret' --base-dir '<writable-dir>'

114 ```118 ```

115 119 

116 O runner registra `Registered: runner_id=<runner-id>` no log assim que se registra com seu ambiente e, em seguida, começa a pesquisar por trabalho. Se o runner sair mais tarde, reinicie-o você mesmo. Consulte [Se o runner sair](#if-the-runner-exits) para saber quando isso acontece.120 O runner registra `Registered: runner_id=<runner-id>` no log assim que se registra com seu ambiente e, em seguida, começa a pesquisar por trabalho. Iniciado com este comando, ele sai por design após atender uma sessão, e não após cada turno. Para atender mais sessões, inicie o runner novamente cada vez que ele sair. Consulte [Se o runner sair](#if-the-runner-exits) para saber quando isso acontece e o que o runner registra no log.

117 </Step>121 </Step>

118 122 

119 <Step title="Verificar se o runner aparece">123 <Step title="Verificar se o runner aparece">


121 </Step>125 </Step>

122 126 

123 <Step title="Rotear uma sessão para o ambiente">127 <Step title="Rotear uma sessão para o ambiente">

124 <span id="route-a-session" />Inicie uma sessão em claude.ai/code e selecione seu ambiente no seletor de ambiente, onde ambientes auto-hospedados aparecem ao lado dos hospedados pela Anthropic. Para o repositório, escolha o dos [pré-requisitos](#host-and-network): um repositório público ou um que este host já possa clonar. O runner clona com quaisquer credenciais git que o host já tenha.128 <span id="route-a-session" />Inicie uma sessão em claude.ai/code e selecione seu ambiente no seletor de ambiente, onde ambientes auto-hospedados aparecem ao lado dos hospedados pela Anthropic. Para o repositório, escolha o dos [pré-requisitos](#host-and-network): um repositório público ou um que este host já possa clonar pela URL HTTPS sem que sejam solicitadas credenciais.

125 129 

126 O próximo runner disponível pega a sessão enfileirada e registra `Picked up session <session-id>` junto com sua contagem ativa e capacidade, para que você possa confirmar a partir da própria saída do runner qual host pegou a sessão. Observe a sessão funcionar e leia as respostas do Claude em [claude.ai/code](https://claude.ai/code).130 O próximo runner disponível pega a sessão enfileirada e registra `Picked up session <session-id>` junto com sua contagem ativa e capacidade, para que você possa confirmar a partir da própria saída do runner qual host pegou a sessão. Observe a sessão funcionar e leia as respostas do Claude em [claude.ai/code](https://claude.ai/code).

127 131 

128 Se a sessão não começar a funcionar, compare com o que você vê:132 <span id="session-doesnt-start" />Se a sessão não começar a funcionar, compare com o que você vê:

129 133 

130 * **A sessão fica enfileirada**: consulte [Solução de problemas](/docs/pt/self-hosted-environments-deploy#troubleshooting).134 * **A sessão fica enfileirada**: consulte [Solução de problemas](/docs/pt/self-hosted-environments-deploy#troubleshooting).

131 * **A sessão falha ao iniciar com um erro do git**: o erro aparece na sessão e no log do runner. Se ele incluir `could not read Username for` do git seguido da URL do seu host git, o runner não tinha credenciais HTTPS para esse host. Consulte [Configurar git](/docs/pt/self-hosted-environments-deploy#configure-git), que também cobre as opções de credencial para repositórios privados em produção.135 * **A sessão falha ao iniciar com um erro do git**: se o erro incluir `could not read Username for` do git seguido da URL do seu host git, o runner não tinha credenciais HTTPS para esse host.

136 * **Fornecer credenciais HTTPS**: consulte [Configurar git](/docs/pt/self-hosted-environments-deploy#configure-git)

137 * **Clonar via SSH**: se o host do runner já tiver uma chave SSH, consulte [Reescrever URLs do git para redes privadas](/docs/pt/self-hosted-environments-deploy#rewrite-git-urls-for-private-networks)

132 </Step>138 </Step>

133</Steps>139</Steps>

134 140 


136 Se o runner sair142 Se o runner sair

137</h3>143</h3>

138 144 

139Se o runner sair durante este guia de início rápido, inicie-o novamente com o mesmo comando. O runner pode sair por conta própria:145Se o runner sair durante este guia de início rápido, inicie-o novamente. O runner pode sair por conta própria:

140 146 

141* **Sessões concluídas**: o log mostra `[runner:exit] account workload drained — exiting`. O runner sai por design uma vez que suas sessões ativas terminam. Consulte [Ciclo de vida do runner](/docs/pt/self-hosted-environments#runner-lifecycle).147* **Nada mais em execução**: o log mostra `[runner:exit] account workload drained — exiting`. O runner [sai por design](/docs/pt/self-hosted-environments#runner-lifecycle) quando não está mais executando nenhuma sessão, por exemplo:

148 * **Você arquivou ou excluiu a sessão**: inicie o runner novamente

149 * **A sessão falhou ao iniciar**: [corrija a causa](#session-doesnt-start) e inicie o runner novamente

142* **Perda de contato**: o log mostra uma linha `[runner:fatal]` com `runner record gone server-side` ou com `poll auth failed`. Se o runner perder contato com a Anthropic por um tempo, por exemplo porque o host entra em suspensão, ele pode sair quando alcançar a Anthropic novamente.150* **Perda de contato**: o log mostra uma linha `[runner:fatal]` com `runner record gone server-side` ou com `poll auth failed`. Se o runner perder contato com a Anthropic por um tempo, por exemplo porque o host entra em suspensão, ele pode sair quando alcançar a Anthropic novamente.

143 151 

144Um turno concluído não encerra sua sessão de teste. Após o primeiro turno, a sessão ainda está anexada e o runner ainda está ativo, então você pode [enviar uma mensagem de acompanhamento para a sessão](#send-a-follow-up-message-to-a-running-session) sem reiniciar o runner primeiro.152Um turno concluído não encerra sua sessão de teste. Após o primeiro turno, a sessão ainda está anexada e o runner ainda está ativo, então você pode [enviar uma mensagem de acompanhamento para a sessão](#send-a-follow-up-message-to-a-running-session) sem reiniciar o runner primeiro.

Details

54| `--retire-at <epoch-seconds>` | `SELF_HOSTED_RUNNER_RETIRE_AT` | não definido | Aposentar o executor em um timestamp Unix absoluto em segundos, para infraestrutura que mata o executor em um tempo conhecido; [Runner lifecycle](/docs/pt/self-hosted-environments#runner-lifecycle) descreve a sequência de liberação e como dimensionar a margem. Valores antes de 2001 ou após o ano 5138 são rejeitados pelo sinalizador e ignorados pela variável de ambiente. |54| `--retire-at <epoch-seconds>` | `SELF_HOSTED_RUNNER_RETIRE_AT` | não definido | Aposentar o executor em um timestamp Unix absoluto em segundos, para infraestrutura que mata o executor em um tempo conhecido; [Runner lifecycle](/docs/pt/self-hosted-environments#runner-lifecycle) descreve a sequência de liberação e como dimensionar a margem. Valores antes de 2001 ou após o ano 5138 são rejeitados pelo sinalizador e ignorados pela variável de ambiente. |

55| `--server-auto-mode-lists <mode>` | `SELF_HOSTED_RUNNER_SERVER_AUTO_MODE_LISTS` | `no-allow` | Quais das listas de regras do classificador do [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) que o plano de controle envia com uma sessão podem chegar a essa sessão: `all`, `no-allow` ou `none`. Consulte [Listas de regras do modo auto](#auto-mode-rule-lists) para saber o que cada valor aplica. Um valor inválido interrompe o executor na inicialização. Requer Claude Code v2.1.295 ou posterior. |55| `--server-auto-mode-lists <mode>` | `SELF_HOSTED_RUNNER_SERVER_AUTO_MODE_LISTS` | `no-allow` | Quais das listas de regras do classificador do [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) que o plano de controle envia com uma sessão podem chegar a essa sessão: `all`, `no-allow` ou `none`. Consulte [Listas de regras do modo auto](#auto-mode-rule-lists) para saber o que cada valor aplica. Um valor inválido interrompe o executor na inicialização. Requer Claude Code v2.1.295 ou posterior. |

56| `--session-stop-grace-sec <n>` | `SELF_HOSTED_RUNNER_SESSION_STOP_GRACE_MS` | `5` | Quanto tempo aguardar para que o processo Claude saia limpo após uma sessão terminar, antes de forçar o encerramento. Aumente o valor se os hooks `SessionEnd` do próprio filho precisarem de mais tempo. |56| `--session-stop-grace-sec <n>` | `SELF_HOSTED_RUNNER_SESSION_STOP_GRACE_MS` | `5` | Quanto tempo aguardar para que o processo Claude saia limpo após uma sessão terminar, antes de forçar o encerramento. Aumente o valor se os hooks `SessionEnd` do próprio filho precisarem de mais tempo. |

57| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | Libere um slot de sessão se o filho não tiver sinalizado que inicializou dentro de N minutos de geração. A clonagem acontece antes da geração, então o tempo de clonagem não conta. Limpo pelo sinal de inicialização do filho no [canal de atividade](/docs/pt/self-hosted-environments-configuration#keep-stdin-and-file-descriptor-3-attached), não por saída ordinária, após o qual `--release-idle-session-min` assume. `0` desabilita. |57| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | Libere um slot de sessão se o filho não tiver sinalizado no [canal de atividade](/docs/pt/self-hosted-environments-configuration#keep-stdin-and-file-descriptor-3-attached) que inicializou dentro de N minutos. Os N minutos começam na geração, após a clonagem, e recomeçam a cada mensagem `user` ou `assistant` que o filho emite antes de ter inicializado ou relatado seu estado. Antes da v2.1.299, este timeout deixava de se aplicar na primeira mensagem desse tipo da sessão. Para liberação após o sinal de inicialização, consulte `--release-idle-session-min`. `0` desabilita. |

58| `--trust-workspace [bool]` | `SELF_HOSTED_RUNNER_TRUST_WORKSPACE` | ativado | Semeie confiança persistida para cada caminho de repositório de sessão para que `permissions.allow` e `additionalDirectories` confirmados no repo sejam honrados. Defina `false` para descartar concessões de permissão confirmadas no repo e configure regras de permissão no `settings.json` da configuração do host em vez disso; configurações `sandbox.*` confirmadas no repositório ainda se aplicam de qualquer forma, é por isso que a [proteção de configurações do repo](/docs/pt/self-hosted-environments-deploy#harden-your-deployment) as verifica independentemente deste sinalizador. |58| `--trust-workspace [bool]` | `SELF_HOSTED_RUNNER_TRUST_WORKSPACE` | ativado | Semeie confiança persistida para cada caminho de repositório de sessão para que `permissions.allow` e `additionalDirectories` confirmados no repo sejam honrados. Defina `false` para descartar concessões de permissão confirmadas no repo e configure regras de permissão no `settings.json` da configuração do host em vez disso; configurações `sandbox.*` confirmadas no repositório ainda se aplicam de qualquer forma, é por isso que a [proteção de configurações do repo](/docs/pt/self-hosted-environments-deploy#harden-your-deployment) as verifica independentemente deste sinalizador. |

59| `--use-anthropic-git-proxy` | `CLAUDE_RUNNER_USE_GIT_PROXY=1` | desligado | Clone repositórios no github.com via [proxy git da Anthropic](/docs/pt/self-hosted-environments-deploy#use-the-anthropic-git-proxy) em vez de autenticação git gerenciada pelo cliente. Requer `--capacity 1` e git 2.32 ou mais recente; o executor recusa iniciar caso contrário. Substitui as flags de reescrita. |59| `--use-anthropic-git-proxy` | `CLAUDE_RUNNER_USE_GIT_PROXY=1` | desligado | Clone repositórios no github.com via [proxy git da Anthropic](/docs/pt/self-hosted-environments-deploy#use-the-anthropic-git-proxy) em vez de autenticação git gerenciada pelo cliente. Requer `--capacity 1` e git 2.32 ou mais recente; o executor recusa iniciar caso contrário. Substitui as flags de reescrita. |

60 60 


160 160 

161Use `last_poll_age_ms` como um sinal de vivacidade em sondas personalizadas; um valor que cresce sem limite indica que o loop de pesquisa está preso. Tanto `last_poll_at` quanto `last_poll_age_ms` são `null` até a primeira pesquisa ser concluída.161Use `last_poll_age_ms` como um sinal de vivacidade em sondas personalizadas; um valor que cresce sem limite indica que o loop de pesquisa está preso. Tanto `last_poll_at` quanto `last_poll_age_ms` são `null` até a primeira pesquisa ser concluída.

162 162 

163O orquestrador serve seu próprio `/healthz` em sua porta de saúde. Seu ponto de extremidade sempre retorna `200`, e o corpo carrega um campo `connected` relatando se a pesquisa mais recente foi bem-sucedida, mais contagens de fila de geração por estado em `queue_counts`. Controle prontidão e alertas em `connected` em vez do código de status.163O próprio `/healthz` do orquestrador, em sua porta de saúde, sempre retorna `200`. O corpo carrega um campo `connected` relatando se a pesquisa mais recente foi bem-sucedida, mais contagens de fila de geração por estado em `queue_counts`. Para ver por que `connected` é `false`, leia o campo de nível superior `last_error`, que cada pesquisa bem-sucedida redefine para `null`. Controle prontidão e alertas em `connected` em vez do código de status.

164 164 

165Quando o [conector SCM](#scm-connector-flags) está configurado, o corpo `/healthz` do orquestrador também carrega `scm_connector_connected` e um objeto `scm_connector` com `connected`, `last_connected_at`, `last_error`, `reconnects` e `requests_forwarded`. Ambos os campos são `null` quando `--scm-connector-host` não está definido.165Quando o [conector SCM](#scm-connector-flags) está configurado, o corpo `/healthz` do orquestrador também carrega `scm_connector_connected` e um objeto `scm_connector` com `connected`, `last_connected_at`, `last_error`, `reconnects` e `requests_forwarded`. Ambos os campos são `null` quando `--scm-connector-host` não está definido.

166 166 

Details

692| [`gcpAuthRefresh`](#gcpauthrefresh) | Atualize as [credenciais do Google Cloud](/docs/pt/google-vertex-ai#advanced-credential-configuration) com seu próprio comando | Autenticação e provedores | Any file |692| [`gcpAuthRefresh`](#gcpauthrefresh) | Atualize as [credenciais do Google Cloud](/docs/pt/google-vertex-ai#advanced-credential-configuration) com seu próprio comando | Autenticação e provedores | Any file |

693| [`hooks`](#hooks) | Execute seus próprios comandos como [hooks](/docs/pt/hooks) em pontos do ciclo de vida de Claude Code | Hooks e automação | Any file |693| [`hooks`](#hooks) | Execute seus próprios comandos como [hooks](/docs/pt/hooks) em pontos do ciclo de vida de Claude Code | Hooks e automação | Any file |

694| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | Limite quais variáveis de ambiente os [hooks HTTP](/docs/pt/hooks) podem colocar em cabeçalhos | Hooks e automação | Any file |694| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | Limite quais variáveis de ambiente os [hooks HTTP](/docs/pt/hooks) podem colocar em cabeçalhos | Hooks e automação | Any file |

695| [`idleCompaction`](#idlecompaction) | Impeça Claude Code de compactar uma conversa longa enquanto sua sessão de terminal está ociosa | Memória e contexto | Any file |

695| [`includeCoAuthoredBy`](#includecoauthoredby) | Descontinuado; use `attribution` para ocultar ou alterar a atribuição de commit e PR | Git e atribuição | Any file |696| [`includeCoAuthoredBy`](#includecoauthoredby) | Descontinuado; use `attribution` para ocultar ou alterar a atribuição de commit e PR | Git e atribuição | Any file |

696| [`includeGitInstructions`](#includegitinstructions) | Remova as instruções de commit e PR integradas do contexto de Claude | Git e atribuição | Any file |697| [`includeGitInstructions`](#includegitinstructions) | Remova as instruções de commit e PR integradas do contexto de Claude | Git e atribuição | Any file |

697| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | Receba uma [notificação push](/docs/pt/remote-control#mobile-push-notifications) quando Claude estiver esperando por você | Remoto, desktop e notificações | Any file |698| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | Receba uma [notificação push](/docs/pt/remote-control#mobile-push-notifications) quando Claude estiver esperando por você | Remoto, desktop e notificações | Any file |


1425 * `true`: sessões começam com ultracode ativado quando workflows dinâmicos estão habilitados para você e seu modelo suporta `xhigh`1426 * `true`: sessões começam com ultracode ativado quando workflows dinâmicos estão habilitados para você e seu modelo suporta `xhigh`

1426 * `false`: sessões começam com ultracode desativado1427 * `false`: sessões começam com ultracode desativado

1427* **Padrão**: sem definir, então ultracode está desativado1428* **Padrão**: sem definir, então ultracode está desativado

1428* **Substituições por sessão**: `/effort ultracode` ativa ultracode para uma sessão sem essa chave, e `/effort ultracode off` o desativa para uma sessão quando essa chave é `true`. O sinalizador `--effort ultracode` também o ativa para uma sessão, em esforço `xhigh`, e requer Claude Code v2.1.203 ou posterior1429* **Substituições por sessão**: `/effort ultracode` ativa ultracode para uma sessão sem essa chave, e `/effort ultracode off` o desativa para uma sessão quando essa chave é `true`. A flag `--effort ultracode` também o ativa para uma sessão, em esforço `xhigh`

1429 1430 

1430```json settings.json theme={null}1431```json settings.json theme={null}

1431{1432{


2952}2953}

2953```2954```

2954 2955 

2955O comando manual `/compact` continua funcionando enquanto auto-compact está desativado.2956O comando manual `/compact` continua funcionando enquanto auto-compact está desativado. Se você desativar auto-compact, a [compactação em ociosidade](#idlecompaction) também é desativada.

2956 2957 

2957<h3 id="autocompactwindow">2958<h3 id="autocompactwindow">

2958 `autoCompactWindow`2959 `autoCompactWindow`


3133 * Variáveis que alteram como Claude Code inicia ou sincroniza, como `CLAUDE_CODE_PROCESS_WRAPPER`, `CLAUDE_CODE_SYNC_SKILLS`, `CLAUDE_CODE_SYNC_PLUGINS`, `CLAUDE_CODE_PLUGIN_CACHE_DIR` e `CLAUDE_CODE_PLUGIN_SEED_DIR`.3134 * Variáveis que alteram como Claude Code inicia ou sincroniza, como `CLAUDE_CODE_PROCESS_WRAPPER`, `CLAUDE_CODE_SYNC_SKILLS`, `CLAUDE_CODE_SYNC_PLUGINS`, `CLAUDE_CODE_PLUGIN_CACHE_DIR` e `CLAUDE_CODE_PLUGIN_SEED_DIR`.

3134 * Variáveis que definem os timers de um diálogo não respondido: [`CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS`, `CLAUDE_AFK_TIMEOUT_MS` e `CLAUDE_AFK_COUNTDOWN_MS`](/docs/pt/env-vars#variables).3135 * Variáveis que definem os timers de um diálogo não respondido: [`CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS`, `CLAUDE_AFK_TIMEOUT_MS` e `CLAUDE_AFK_COUNTDOWN_MS`](/docs/pt/env-vars#variables).

3135 * [`CLAUDE_CODE_DISABLE_ATTACHMENTS`](/docs/pt/env-vars#variables), que desativa o processamento de anexos.3136 * [`CLAUDE_CODE_DISABLE_ATTACHMENTS`](/docs/pt/env-vars#variables), que desativa o processamento de anexos.

3137 * [`CLAUDE_CODE_DISABLE_FILE_MENTIONS`](/docs/pt/env-vars#variables), que impede Claude Code de expandir menções `@` de arquivos e diretórios.

3136 3138 

3137 Antes de v2.1.251, configurações de projeto e local também podiam definir as variáveis nesta lista que escolhem onde Claude Code escreve seus arquivos ou que exportam conteúdo de sessão, exceto `HOME` e `XDG_CONFIG_HOME`. Antes de v2.1.290, elas também podiam definir as variáveis de timer de diálogo e `CLAUDE_CODE_DISABLE_ATTACHMENTS`.3139 Antes de v2.1.251, configurações de projeto e local também podiam definir as variáveis nesta lista que escolhem onde Claude Code escreve seus arquivos ou que exportam conteúdo de sessão, exceto `HOME` e `XDG_CONFIG_HOME`. Antes de v2.1.290, elas também podiam definir as variáveis de timer de diálogo e `CLAUDE_CODE_DISABLE_ATTACHMENTS`.

3138* Variáveis de identidade que os ambientes de hospedagem de Claude Code possuem, como `CLAUDE_CODE_REMOTE` e `CLAUDE_CODE_ACCOUNT_UUID`, são ignoradas de cada arquivo.3140* Variáveis de identidade que os ambientes de hospedagem de Claude Code possuem, como `CLAUDE_CODE_REMOTE` e `CLAUDE_CODE_ACCOUNT_UUID`, são ignoradas de cada arquivo.


3163 3165 

3164Em uma execução `-p` ou uma sessão do Agent SDK, Claude Code ignora essa chave. O SDK ativa checkpointing com sua opção `enableFileCheckpointing`, e uma execução `-p` simples precisa de `CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING=true`. Veja [File checkpointing in the Agent SDK](/docs/pt/agent-sdk/file-checkpointing).3166Em uma execução `-p` ou uma sessão do Agent SDK, Claude Code ignora essa chave. O SDK ativa checkpointing com sua opção `enableFileCheckpointing`, e uma execução `-p` simples precisa de `CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING=true`. Veja [File checkpointing in the Agent SDK](/docs/pt/agent-sdk/file-checkpointing).

3165 3167 

3168<h3 id="idlecompaction">

3169 `idleCompaction`

3170</h3>

3171 

3172A compactação em ociosidade [compacta](/docs/pt/context-window#what-survives-compaction) uma conversa longa da qual você se afastou, pouco antes de seu cache de prompt expirar. Sua próxima mensagem então envia um resumo em vez da conversa inteira. Quando você volta, a conversa mostra `Compacted while idle, before the prompt cache expired`.

3173 

3174A compactação em ociosidade fica ativada por padrão para conversas que atendem a todas estas condições:

3175 

3176* **Sessão**: você está em uma sessão interativa de terminal

3177* **Cache de prompt**: a conversa está no [TTL de uma hora do cache de prompt](/docs/pt/prompt-caching#which-ttl-each-request-gets)

3178* **Feature flags**: Claude Code consegue [buscar feature flags da Anthropic](/docs/pt/env-vars#features-that-need-feature-flag-fetching)

3179* **Tamanho**: o contexto da conversa atingiu o limite de tokens, que você pode [alterar](#change-the-idle-compaction-threshold) a partir do padrão de 200.000

3180* **Tempo ocioso**: cerca de 54 minutos se passaram desde a última requisição, e seu computador está ativo nesse momento

3181 

3182Para desativar a compactação em ociosidade, defina essa chave como `false`.

3183 

3184* **Scope**: [`Any file`](#scopes)

3185* **Type**: Boolean

3186 * `true`: Claude Code compacta conversas ociosas que atendem às condições

3187 * `false`: Claude Code não compacta enquanto sua sessão está ociosa

3188* **Default**: `true`

3189* **Per-session overrides**: [`DISABLE_AUTO_COMPACT`](/docs/pt/env-vars) desativa a compactação em ociosidade junto com a compactação automática

3190 

3191```json settings.json theme={null}

3192{

3193 "idleCompaction": false

3194}

3195```

3196 

3197A chave requer Claude Code v2.1.290 ou posterior. Em uma versão anterior, que ignora essa chave, desative [`autoCompactEnabled`](#autocompactenabled) para interromper a compactação em ociosidade.

3198 

3199<h4 id="change-the-idle-compaction-threshold">

3200 Alterar o limite de compactação em ociosidade

3201</h4>

3202 

3203Defina [`CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS`](/docs/pt/env-vars) como o número de tokens que o contexto de uma conversa deve atingir antes que a compactação em ociosidade se aplique a ela. Use um número inteiro positivo. Valores abaixo de `100000` são elevados para `100000`, o limite mais baixo.

3204 

3205No padrão, uma conversa em uma janela de contexto de 200K compacta automaticamente antes de atingir 200.000 tokens. Este exemplo reduz o limite para 150.000 para que essas conversas se qualifiquem:

3206 

3207```json settings.json theme={null}

3208{

3209 "env": {

3210 "CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS": "150000"

3211 }

3212}

3213```

3214 

3166<h3 id="plansdirectory">3215<h3 id="plansdirectory">

3167 `plansDirectory`3216 `plansDirectory`

3168</h3>3217</h3>


4209}4258}

4210```4259```

4211 4260 

4261Se você substituir o system prompt no [modo não interativo](/docs/pt/headless) ou no Agent SDK, a sessão começa sem o snapshot mesmo quando esta chave é `true`:

4262 

4263* **Execuções com `-p`**: você substitui o prompt quando passa [`--system-prompt`](/docs/pt/cli-reference#system-prompt-flags) ou `--system-prompt-file`. Você também o substitui quando executa um agente customizado com seu próprio prompt, selecionado com [`--agent`](/docs/pt/sub-agents#invoke-subagents-explicitly) ou a configuração [`agent`](#agent). Fora do [modo bare](/docs/pt/headless#start-faster-with-bare-mode), para manter o snapshot, execute sem um agente customizado e adicione suas instruções com [`--append-system-prompt`](/docs/pt/cli-reference#system-prompt-flags) em vez de substituir o prompt.

4264* **[Agent SDK](/docs/pt/agent-sdk/modifying-system-prompts)**: você substitui o prompt com um system prompt customizado ou um agente de thread principal customizado. Se você não definir nenhum system prompt, o SDK usa seu padrão mínimo e a sessão também começa sem o snapshot. Fora do [modo bare](/docs/pt/headless#start-faster-with-bare-mode), para manter o snapshot, use o preset `claude_code` sem um `agent` customizado.

4265 

4212<h3 id="prurltemplate">4266<h3 id="prurltemplate">

4213 `prUrlTemplate`4267 `prUrlTemplate`

4214</h3>4268</h3>


5175 5229 

5176Plugins integrados armazenam suas opções sob a mesma chave com um sufixo `@builtin`. Por exemplo, a configuração [**Project instructions**](/docs/pt/memory#choose-which-instruction-files-load) que controla se Claude Code lê arquivos `AGENTS.md` é `pluginConfigs["cc-plugin-agents-md@builtin"].options.instructionFiles`. Antes de v2.1.285, o ID do plugin era `agents-md@builtin`. Versões posteriores leem uma entrada sob qualquer um dos dois IDs.5230Plugins integrados armazenam suas opções sob a mesma chave com um sufixo `@builtin`. Por exemplo, a configuração [**Project instructions**](/docs/pt/memory#choose-which-instruction-files-load) que controla se Claude Code lê arquivos `AGENTS.md` é `pluginConfigs["cc-plugin-agents-md@builtin"].options.instructionFiles`. Antes de v2.1.285, o ID do plugin era `agents-md@builtin`. Versões posteriores leem uma entrada sob qualquer um dos dois IDs.

5177 5231 

5178Claude Code ignora entradas de projeto e local porque substitui esses valores em configurações de plugin hook, MCP e LSP, e um repositório clonado não deve ser capaz de fornecê-los. Antes de v2.1.207, configurações de projeto e local também eram lidas.5232Claude Code ignora entradas de projeto e local porque substitui esses valores em configurações de hook, MCP e LSP de plugins, e um repositório clonado não deve ser capaz de fornecê-los.

5179 5233 

5180<h3 id="prependplugins">5234<h3 id="prependplugins">

5181 `prependPlugins`5235 `prependPlugins`


5680}5734}

5681```5735```

5682 5736 

5683Fora de um repositório git, um [hook `WorktreeCreate`](/docs/pt/worktrees#non-git-version-control) que falha libera o bloqueio para que a sessão possa editar o diretório de trabalho no local; essa liberação requer Claude Code v2.1.203 ou posterior.5737Fora de um repositório git, um [hook `WorktreeCreate`](/docs/pt/worktrees#non-git-version-control) que falha libera o bloqueio para que a sessão possa editar o diretório de trabalho no local.

5684 5738 

5685<h3 id="worktree-location">5739<h3 id="worktree-location">

5686 `worktree.location`5740 `worktree.location`

setup.md +1 −1

Details

226 226 

227Execute `claude doctor` para ver o resultado da tentativa de atualização mais recente.227Execute `claude doctor` para ver o resultado da tentativa de atualização mais recente.

228 228 

229No macOS e Linux, o instalador nativo gerencia o inicializador em `~/.local/bin/claude` como um symlink para `~/.local/share/claude/versions/`. Se você substituir esse inicializador com seu próprio script ou symlink, a auto-atualização e `claude update` o deixam no lugar: novas versões ainda são instaladas no diretório `versions/`, e seu inicializador decide qual versão é executada. Antes da v2.1.207, o auto-atualizador substituía um inicializador personalizado nesse caminho com seu próprio symlink a cada atualização.229No macOS e Linux, o instalador nativo gerencia o inicializador em `~/.local/bin/claude` como um symlink para `~/.local/share/claude/versions/`. Se você substituir esse inicializador com seu próprio script ou symlink, a auto-atualização e `claude update` o deixam no lugar: novas versões ainda são instaladas no diretório `versions/`, e seu inicializador decide qual versão é executada.

230 230 

231Com um inicializador personalizado, Claude Code também mantém todas as versões instaladas no disco porque não consegue determinar qual versão o inicializador precisa. `claude doctor` relata um inicializador que o instalador nativo não criou.231Com um inicializador personalizado, Claude Code também mantém todas as versões instaladas no disco porque não consegue determinar qual versão o inicializador precisa. `claude doctor` relata um inicializador que o instalador nativo não criou.

232 232 

skills.md +26 −3

Details

31Para desativar skills agrupadas, use a configuração [`disableBundledSkills`](/docs/pt/settings-reference#disablebundledskills).31Para desativar skills agrupadas, use a configuração [`disableBundledSkills`](/docs/pt/settings-reference#disablebundledskills).

32 32 

33<Note>33<Note>

34 A verificação de configuração [`/doctor`](/docs/pt/commands#all-commands) permanece digitável quando `disableBundledSkills` está ativado, no Claude Code v2.1.205 e posterior. Para ocultá-la, defina a variável de ambiente `DISABLE_DOCTOR_COMMAND` ou uma entrada [`skillOverrides`](#override-skill-visibility-from-settings) de `"doctor": "off"`. Antes da v2.1.205, `/doctor` era um comando integrado em vez de uma skill agrupada.34 A verificação de configuração [`/doctor`](/docs/pt/commands#all-commands) permanece digitável quando `disableBundledSkills` está ativado. Para ocultá-la, defina a variável de ambiente `DISABLE_DOCTOR_COMMAND` ou uma entrada [`skillOverrides`](#override-skill-visibility-from-settings) de `"doctor": "off"`.

35</Note>35</Note>

36 36 

37Skills agrupadas são listadas junto com comandos integrados na [referência de comandos](/docs/pt/commands), marcadas como **Skill** na coluna Propósito.37Skills agrupadas são listadas junto com comandos integrados na [referência de comandos](/docs/pt/commands), marcadas como **Skill** na coluna Propósito.


69 69 

70`/verify` também pode registrar sua própria receita. Quando ele precisa compilar e conduzir seu aplicativo sem uma receita registrada, ele escreve o que funcionou em `.claude/skills/verify/SKILL.md` na raiz do repositório, ou no diretório de pacote tocado em um monorepo, para que execuções posteriores e outros agentes sigam as mesmas etapas. Na raiz do repositório, a skill registrada substitui o `/verify` incluído.70`/verify` também pode registrar sua própria receita. Quando ele precisa compilar e conduzir seu aplicativo sem uma receita registrada, ele escreve o que funcionou em `.claude/skills/verify/SKILL.md` na raiz do repositório, ou no diretório de pacote tocado em um monorepo, para que execuções posteriores e outros agentes sigam as mesmas etapas. Na raiz do repositório, a skill registrada substitui o `/verify` incluído.

71 71 

72Claude edita o arquivo registrado apenas quando direcionou uma execução incorretamente, como um comando que falhou ou uma etapa ausente, para que você possa confirmar o arquivo sem diffs por sessão. Antes da v2.1.205, a skill agrupada dizia ao Claude para incorporar qualquer coisa que uma execução aprendesse, o que causava conflitos de mesclagem frequentes.72Claude edita o arquivo registrado apenas quando direcionou uma execução incorretamente, como um comando que falhou ou uma etapa ausente, para que você possa fazer commit do arquivo sem diffs por sessão.

73 73 

74<h3 id="run-your-checks-before-each-commit">74<h3 id="run-your-checks-before-each-commit">

75 Execute suas verificações antes de cada commit75 Execute suas verificações antes de cada commit


183* **Pastas com symlink**: uma entrada `<skill-name>` no local enterprise, personal ou project pode ser um symlink para um diretório em outro lugar no disco. Claude Code lê `SKILL.md` do alvo e carrega a skill uma vez mesmo que vários locais apontem para o mesmo alvo. Skills de plugin [lidam com symlinks de forma diferente](/docs/pt/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks).183* **Pastas com symlink**: uma entrada `<skill-name>` no local enterprise, personal ou project pode ser um symlink para um diretório em outro lugar no disco. Claude Code lê `SKILL.md` do alvo e carrega a skill uma vez mesmo que vários locais apontem para o mesmo alvo. Skills de plugin [lidam com symlinks de forma diferente](/docs/pt/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks).

184* **Nome reservado `synced`**: não nomeie uma pasta de skill como `synced`, em qualquer capitalização. Claude Code usa `~/.claude/skills/synced/` para [skills baixadas do claude.ai](#where-synced-skills-load) e pula uma skill que você cria com esse nome nos locais enterprise, personal e project.184* **Nome reservado `synced`**: não nomeie uma pasta de skill como `synced`, em qualquer capitalização. Claude Code usa `~/.claude/skills/synced/` para [skills baixadas do claude.ai](#where-synced-skills-load) e pula uma skill que você cria com esse nome nos locais enterprise, personal e project.

185* **Nome reservado `anthropic-skills`**: fora de um plugin, uma pasta de skill ou arquivo de comando cujo nome é `anthropic-skills` ou começa com `anthropic-skills:` não carrega. Veja [Nomes reservados para skills sincronizadas](#names-reserved-for-synced-skills).185* **Nome reservado `anthropic-skills`**: fora de um plugin, uma pasta de skill ou arquivo de comando cujo nome é `anthropic-skills` ou começa com `anthropic-skills:` não carrega. Veja [Nomes reservados para skills sincronizadas](#names-reserved-for-synced-skills).

186* **Caracteres no nome**: fora de um plugin, uma pasta de skill não carrega quando seu nome tem um caractere como um espaço de largura zero ou `<`. Veja [Caracteres que um nome de skill não pode conter](#characters-a-skill-name-cant-hold).

186* **Arquivos de comando**: um arquivo Markdown em `.claude/commands/` é o formato mais antigo e ainda funciona. Ele suporta o mesmo [frontmatter](#frontmatter-reference) exceto `name` e `paths`. Para encontrar o nome que você digita para invocá-lo, veja [Como uma skill obtém seu nome de comando](#how-a-skill-gets-its-command-name). Prefira uma skill para novo trabalho, já que skills também suportam [arquivos de suporte](#add-supporting-files).187* **Arquivos de comando**: um arquivo Markdown em `.claude/commands/` é o formato mais antigo e ainda funciona. Ele suporta o mesmo [frontmatter](#frontmatter-reference) exceto `name` e `paths`. Para encontrar o nome que você digita para invocá-lo, veja [Como uma skill obtém seu nome de comando](#how-a-skill-gets-its-command-name). Prefira uma skill para novo trabalho, já que skills também suportam [arquivos de suporte](#add-supporting-files).

187* **Pasta de skill como um plugin**: adicione um `.claude-plugin/plugin.json` a uma pasta de skill e ela carrega como um [plugin](/docs/pt/plugins/loading#plugins-shared-through-a-repository) nomeado `<name>@skills-dir`, para que possa agrupar agents, hooks e servidores MCP. Em um `.claude/skills/` de projeto, isso requer aceitar primeiro o diálogo de confiança do workspace.188* **Pasta de skill como um plugin**: adicione um `.claude-plugin/plugin.json` a uma pasta de skill e ela carrega como um [plugin](/docs/pt/plugins/loading#plugins-shared-through-a-repository) nomeado `<name>@skills-dir`, para que possa agrupar agents, hooks e servidores MCP. Em um `.claude/skills/` de projeto, isso requer aceitar primeiro o diálogo de confiança do workspace.

188 189 


495 496 

496Para um `SKILL.md` na raiz do plugin, não há diretório de skill de onde obter o nome, então `name` fornece todo o segmento final. Sem um campo `name`, o Claude Code recorre ao nome do diretório do plugin.497Para um `SKILL.md` na raiz do plugin, não há diretório de skill de onde obter o nome, então `name` fornece todo o segmento final. Sem um campo `name`, o Claude Code recorre ao nome do diretório do plugin.

497 498 

499<h4 id="characters-a-skill-name-cant-hold">

500 Caracteres que um nome de skill não pode conter

501</h4>

502 

503Se uma skill ou um comando personalizado estiver ausente do menu `/`, ou se o menu não exibir o `name` do frontmatter de uma skill, verifique o nome. O Claude Code recusa um nome de comando ou um `name` do frontmatter que contenha caracteres como estes:

504 

505* Um espaço de largura zero ou um caractere de controle

506* Um caractere de uso privado ou não atribuído, como um glifo de uma fonte de ícones

507* Um caractere que altera a direção do texto ao seu redor

508* Um espaço em branco diferente de um único espaço simples entre palavras, como um espaço não separável, dois espaços seguidos ou um espaço no início ou no final

509* `<` ou `>`

510 

511Um comando personalizado ou uma skill não é carregado quando o Claude Code recusa o nome do seu diretório ou arquivo. Renomeie essa pasta ou esse arquivo para remover os caracteres. Uma skill ainda é carregada quando esses caracteres estão apenas no nome da pasta de uma skill de plugin ou no seu `name` do frontmatter:

512 

513* **Pasta no diretório `skills/` de um plugin ou nos [caminhos `skills`](/docs/pt/plugins/components#skills) do seu manifesto**: você não precisa renomear a pasta. Esses caracteres se tornam hifens no nome de comando da skill, então digite o comando com os hifens.

514* **`name` do frontmatter**: o menu `/` não exibe o valor de `name` e digitá-lo não invoca a skill. Edite a linha `name:` para remover os caracteres.

515 

516Para descobrir qual nome o Claude Code recusou, inicie-o com [`claude --debug`](/docs/pt/cli-reference#cli-flags) a partir do seu shell e procure `[names]` no [log de depuração](/docs/pt/debug-your-config). Em uma sessão interativa, um [aviso de inicialização](/docs/pt/errors#skill-or-command-name-refused) também informa que nomes foram recusados. Após renomear ou editar `name:`, reinicie a sessão, a menos que o arquivo esteja em um diretório que o Claude Code [monitora em busca de alterações](#live-change-detection).

517 

498<h4 id="available-string-substitutions">518<h4 id="available-string-substitutions">

499 Substituições de string disponíveis519 Substituições de string disponíveis

500</h4>520</h4>


858| Skill com `context: fork` | Do tipo de agente | Conteúdo SKILL.md | CLAUDE.md, conforme o [startup context](/docs/pt/sub-agents#what-loads-at-startup) do agente |878| Skill com `context: fork` | Do tipo de agente | Conteúdo SKILL.md | CLAUDE.md, conforme o [startup context](/docs/pt/sub-agents#what-loads-at-startup) do agente |

859| Subagente com campo `skills` | Corpo markdown do subagente | Mensagem de delegação de Claude | Skills pré-carregadas + CLAUDE.md, conforme o [startup context](/docs/pt/sub-agents#what-loads-at-startup) do subagente |879| Subagente com campo `skills` | Corpo markdown do subagente | Mensagem de delegação de Claude | Skills pré-carregadas + CLAUDE.md, conforme o [startup context](/docs/pt/sub-agents#what-loads-at-startup) do subagente |

860 880 

861Com `context: fork`, você escreve a tarefa em sua skill e escolhe um tipo de agente para executá-la. Os agentes Explore e Plan integrados [pulam CLAUDE.md e git status](/docs/pt/sub-agents#what-loads-at-startup) para manter seu contexto pequeno, então uma skill bifurcada usando `agent: Explore` vê apenas o conteúdo SKILL.md e o prompt do sistema do agente. Para o inverso, onde você define um subagente personalizado que usa skills como material de referência, veja [Subagentes](/docs/pt/sub-agents#preload-skills-into-subagents).881Com `context: fork`, você escreve a tarefa em sua skill e escolhe um tipo de agente para executá-la. Os agentes Explore e Plan integrados [iniciam sem CLAUDE.md e git status](/docs/pt/sub-agents#what-loads-at-startup) para manter seu contexto pequeno. Coloque tudo o que a tarefa precisa em seu SKILL.md. Uma skill bifurcada usando `agent: Explore` começa com esse conteúdo e o system prompt do próprio agente, e nenhum dos seus arquivos CLAUDE.md.

882 

883Para o inverso, onde você define um subagente personalizado que usa skills como material de referência, veja [Subagentes](/docs/pt/sub-agents#preload-skills-into-subagents).

862 884 

863<h4 id="example-research-skill-using-explore-agent">885<h4 id="example-research-skill-using-explore-agent">

864 Exemplo: Skill de pesquisa usando agente Explore886 Exemplo: Skill de pesquisa usando agente Explore


12472. Verifique se a skill aparece em `What skills are available?`12692. Verifique se a skill aparece em `What skills are available?`

12483. Tente reformular sua solicitação para corresponder mais closely à descrição12703. Tente reformular sua solicitação para corresponder mais closely à descrição

12494. Invoque-a diretamente com `/skill-name` se a skill for invocável pelo usuário12714. Invoque-a diretamente com `/skill-name` se a skill for invocável pelo usuário

12725. Se `/skill-name` também não for reconhecido, verifique se Claude Code [recusou o nome da skill](#characters-a-skill-name-cant-hold)

1250 1273 

1251Se o YAML do frontmatter estiver malformado, Claude Code carrega o corpo da skill com metadados vazios, então `/skill-name` ainda funciona, mas Claude não pode corresponder contra sua `description`. Execute com `--debug` para ver o erro de análise.1274Se o YAML do frontmatter estiver malformado, Claude Code carrega o corpo da skill com metadados vazios, então `/skill-name` ainda funciona, mas Claude não pode corresponder contra sua `description`. Execute com `--debug` para ver o erro de análise.

1252 1275 

statusline.md +2 −2

Details

1198| `description` | string | Descrição curta da tarefa, como a que Claude forneceu ao iniciar o subagente |1198| `description` | string | Descrição curta da tarefa, como a que Claude forneceu ao iniciar o subagente |

1199| `label` | string | Resumo curto do progresso da tarefa quando Claude Code tem um, caso contrário o mesmo texto de `description` |1199| `label` | string | Resumo curto do progresso da tarefa quando Claude Code tem um, caso contrário o mesmo texto de `description` |

1200| `startTime` | number | Quando a tarefa começou, em milissegundos desde a época Unix |1200| `startTime` | number | Quando a tarefa começou, em milissegundos desde a época Unix |

1201| `model` | string, opcional | ID do modelo resolvido em que a tarefa é executada. Omitido até que o modelo seja resolvido. Requer Claude Code v2.1.205 ou posterior |1201| `model` | string, opcional | ID do modelo resolvido em que a tarefa é executada. Omitido até que o modelo seja resolvido |

1202| `effort` | string ou number, opcional | Esforço de raciocínio definido para o subagente em seu [frontmatter de definição](/docs/pt/sub-agents#supported-frontmatter-fields) ou na invocação individual: `low`, `medium`, `high`, `xhigh`, `max` ou um orçamento de tokens numérico. Este é o valor configurado, e o esforço que Claude Code aplica pode ser diferente quando o modelo não suporta esse nível. Omitido quando nenhum esforço está definido. Requer Claude Code v2.1.213 ou posterior |1202| `effort` | string ou number, opcional | Esforço de raciocínio definido para o subagente em seu [frontmatter de definição](/docs/pt/sub-agents#supported-frontmatter-fields) ou na invocação individual: `low`, `medium`, `high`, `xhigh`, `max` ou um orçamento de tokens numérico. Este é o valor configurado, e o esforço que Claude Code aplica pode ser diferente quando o modelo não suporta esse nível. Omitido quando nenhum esforço está definido. Requer Claude Code v2.1.213 ou posterior |

1203| `contextWindowSize` | number, opcional | Janela de contexto de `model` em tokens, calculada da mesma forma que a [`context_window.context_window_size`](#context-window-fields) da linha de status principal, para que você possa renderizar uma porcentagem por linha a partir de `tokenCount`. Omitido quando `model` é omitido. Requer Claude Code v2.1.205 ou posterior |1203| `contextWindowSize` | number, opcional | Janela de contexto de `model` em tokens, calculada da mesma forma que a [`context_window.context_window_size`](#context-window-fields) da linha de status principal, para que você possa renderizar uma porcentagem por linha a partir de `tokenCount`. Omitido quando `model` é |

1204| `tokenCount` | number | Contagem de tokens acumulada do subagente, o número que a linha padrão mostra |1204| `tokenCount` | number | Contagem de tokens acumulada do subagente, o número que a linha padrão mostra |

1205| `tokenSamples` | array de numbers | Até as últimas 16 leituras de `tokenCount`, uma por tick de atualização, da mais antiga para a mais recente e terminando com a atual |1205| `tokenSamples` | array de numbers | Até as últimas 16 leituras de `tokenCount`, uma por tick de atualização, da mais antiga para a mais recente e terminando com a atual |

1206| `cwd` | string | Diretório de trabalho do subagente: seu próprio diretório quando ele é executado em um, como um worktree isolado, caso contrário o diretório de trabalho da sessão |1206| `cwd` | string | Diretório de trabalho do subagente: seu próprio diretório quando ele é executado em um, como um worktree isolado, caso contrário o diretório de trabalho da sessão |

sub-agents.md +40 −11

Details

32 32 

33Claude Code inclui subagentes integrados que Claude usa automaticamente quando apropriado. Cada um herda as permissões da conversa pai; a maioria é executada com um conjunto de ferramentas restrito.33Claude Code inclui subagentes integrados que Claude usa automaticamente quando apropriado. Cada um herda as permissões da conversa pai; a maioria é executada com um conjunto de ferramentas restrito.

34 34 

35Explore e Plan pulam seus arquivos CLAUDE.md e o snapshot de status git para manter a pesquisa rápida e econômica. Todos os outros subagentes integrados e [subagentes personalizados](#configure-subagents) carregam ambos, a menos que sua definição defina o campo [`omitClaudeMd`](#supported-frontmatter-fields) para pular os arquivos CLAUDE.md do usuário, projeto e local. Para o detalhamento completo do que chega a um subagente, consulte [o que é carregado na inicialização](#what-loads-at-startup).35Explore e Plan iniciam sem seus arquivos CLAUDE.md e sem o snapshot de status git para manter a pesquisa rápida e econômica. Outros subagentes integrados e [subagentes personalizados](#configure-subagents) carregam ambos, a menos que você defina [`omitClaudeMd`](#supported-frontmatter-fields) na definição de um subagente personalizado para iniciá-lo sem os arquivos CLAUDE.md do usuário, do projeto e locais. Para o detalhamento completo do que chega a um subagente, consulte [o que é carregado na inicialização](#what-loads-at-startup).

36 36 

37<Tabs>37<Tabs>

38 <Tab title="Explore">38 <Tab title="Explore">


185 185 

186O Claude Code verifica `.claude/agents/` e `~/.claude/agents/` recursivamente, então você pode organizar as definições em subpastas como `agents/review/` ou `agents/research/`. O caminho do subdiretório não afeta como um subagente é identificado ou invocado, porque a identidade vem apenas do campo `name` do frontmatter.186O Claude Code verifica `.claude/agents/` e `~/.claude/agents/` recursivamente, então você pode organizar as definições em subpastas como `agents/review/` ou `agents/research/`. O caminho do subdiretório não afeta como um subagente é identificado ou invocado, porque a identidade vem apenas do campo `name` do frontmatter.

187 187 

188Mantenha os valores de `name` únicos em toda a árvore: se dois arquivos sob o mesmo diretório `.claude/agents/`, incluindo suas subpastas, declararem o mesmo nome, o Claude Code carrega apenas um deles, escolhido pela ordem de leitura do sistema de arquivos, e não por uma precedência documentada. Entre diretórios de projeto aninhados, a definição mais próxima do diretório de trabalho prevalece, conforme descrito acima. A verificação de configuração [`/doctor`](/docs/pt/commands#all-commands) informa arquivos no mesmo diretório que compartilham um nome e propõe renomear ou remover todos, exceto um. Antes da v2.1.205, o `/doctor` abria uma tela de diagnóstico que listava duplicatas e mostrava qual definição estava ativa.188Mantenha os valores de `name` únicos em toda a árvore: se dois arquivos sob o mesmo diretório `.claude/agents/`, incluindo suas subpastas, declararem o mesmo nome, o Claude Code carrega apenas um deles, escolhido pela ordem de leitura do sistema de arquivos, e não por uma precedência documentada. Entre diretórios de projeto aninhados, a definição mais próxima do diretório de trabalho prevalece, conforme descrito acima. A verificação de configuração [`/doctor`](/docs/pt/commands#all-commands) informa arquivos no mesmo diretório que compartilham um nome e propõe renomear ou remover todos, exceto um.

189 189 

190Os diretórios `agents/` de plugins também são verificados recursivamente. Diferentemente dos escopos de projeto e de usuário, uma subpasta dentro do diretório `agents/` de um plugin passa a fazer parte do [identificador com escopo](#invoke-subagents-explicitly): um arquivo em `agents/review/security.md` no plugin `my-plugin` é registrado como `my-plugin:review:security`.190Os diretórios `agents/` de plugins também são verificados recursivamente. Diferentemente dos escopos de projeto e de usuário, uma subpasta dentro do diretório `agents/` de um plugin passa a fazer parte do [identificador com escopo](#invoke-subagents-explicitly): um arquivo em `agents/review/security.md` no plugin `my-plugin` é registrado como `my-plugin:review:security`.

191 191 


234Cada chave de nível superior no JSON é o nome de um agente, e seu valor é a definição desse agente. Não comece um nome com `-`. Uma definição aceita estes campos:234Cada chave de nível superior no JSON é o nome de um agente, e seu valor é a definição desse agente. Não comece um nome com `-`. Uma definição aceita estes campos:

235 235 

236* **`prompt`**: o system prompt do agente, equivalente ao corpo em markdown nos subagentes baseados em arquivo. `prompt` pode estar vazio. Se você selecionar um agente com `prompt` vazio e sem campo `memory` como o agente da sessão com `--agent`, o system prompt da sessão permanece inalterado. Um `prompt` vazio requer o Claude Code v2.1.281 ou posterior.236* **`prompt`**: o system prompt do agente, equivalente ao corpo em markdown nos subagentes baseados em arquivo. `prompt` pode estar vazio. Se você selecionar um agente com `prompt` vazio e sem campo `memory` como o agente da sessão com `--agent`, o system prompt da sessão permanece inalterado. Um `prompt` vazio requer o Claude Code v2.1.281 ou posterior.

237* **[Campos do frontmatter](#supported-frontmatter-fields)**: `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `mcpServers`, `hooks`, `maxTurns`, `skills`, `initialPrompt`, `memory`, `effort`, `background`, `omitClaudeMd` e `isolation`.237* **[Campos do frontmatter](#supported-frontmatter-fields)**: `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `mcpServers`, `hooks`, `maxTurns`, `autoCompactWindow`, `skills`, `initialPrompt`, `memory`, `effort`, `background`, `omitClaudeMd` e `isolation`.

238* **Campos ignorados**: `color` e `experimental` não são aceitos aqui e são ignorados em vez de rejeitados.238* **Campos ignorados**: `color` e `experimental` não são aceitos aqui e são ignorados em vez de rejeitados.

239 239 

240Para saber o que o Claude Code faz com um valor que não consegue carregar, e as flags e a variável de ambiente que ignoram essa verificação, consulte [`Invalid --agents configuration`](/docs/pt/errors#invalid-agents-configuration).240Para saber o que o Claude Code faz com um valor que não consegue carregar, e as flags e a variável de ambiente que ignoram essa verificação, consulte [`Invalid --agents configuration`](/docs/pt/errors#invalid-agents-configuration).


285 285 

286Um subagente começa no diretório de trabalho atual da conversa principal. Dentro de um subagente, comandos `cd` não persistem entre chamadas das ferramentas Bash ou PowerShell e não afetam o diretório de trabalho da conversa principal. Para dar ao subagente uma cópia isolada do repositório, defina [`isolation: worktree`](#supported-frontmatter-fields).286Um subagente começa no diretório de trabalho atual da conversa principal. Dentro de um subagente, comandos `cd` não persistem entre chamadas das ferramentas Bash ou PowerShell e não afetam o diretório de trabalho da conversa principal. Para dar ao subagente uma cópia isolada do repositório, defina [`isolation: worktree`](#supported-frontmatter-fields).

287 287 

288Um subagente com `isolation: worktree` executa seus comandos Bash e PowerShell dentro do seu worktree. Um comando cujo diretório de trabalho resolve para o seu checkout principal, por exemplo porque o diretório do worktree foi removido enquanto o subagente estava em execução, falha com um erro. Antes da v2.1.203, tal comando podia ser executado no checkout principal.288Um subagente com `isolation: worktree` executa seus comandos Bash e PowerShell dentro do seu worktree. Um comando cujo diretório de trabalho resolve para o seu checkout principal, por exemplo porque o diretório do worktree foi removido enquanto o subagente estava em execução, falha com um erro.

289 289 

290Essa verificação de diretório de trabalho abrange todo o repositório que contém o diretório a partir do qual você iniciou o Claude Code. Quando sua sessão é executada em um [worktree](/docs/pt/worktrees) vinculado próprio, a verificação também abrange o checkout principal ao qual esse worktree está vinculado. Antes da v2.1.210, a verificação abrangia apenas o próprio diretório de inicialização. Um comando cujo diretório de trabalho resolvia para outro lugar no mesmo repositório, como a raiz do repositório quando você iniciava o Claude Code a partir de um subdiretório de um monorepo, era executado ali em vez de falhar.290Essa verificação de diretório de trabalho abrange todo o repositório que contém o diretório a partir do qual você iniciou o Claude Code. Quando sua sessão é executada em um [worktree](/docs/pt/worktrees) vinculado próprio, a verificação também abrange o checkout principal ao qual esse worktree está vinculado. Antes da v2.1.210, a verificação abrangia apenas o próprio diretório de inicialização. Um comando cujo diretório de trabalho resolvia para outro lugar no mesmo repositório, como a raiz do repositório quando você iniciava o Claude Code a partir de um subdiretório de um monorepo, era executado ali em vez de falhar.

291 291 


306 306 

307Configure um subagente com [frontmatter](/docs/pt/glossary#frontmatter) YAML entre marcadores `---` no topo do arquivo e escreva seu system prompt em Markdown após o `---` de fechamento. Apenas `name` e `description` são obrigatórios.307Configure um subagente com [frontmatter](/docs/pt/glossary#frontmatter) YAML entre marcadores `---` no topo do arquivo e escreva seu system prompt em Markdown após o `---` de fechamento. Apenas `name` e `description` são obrigatórios.

308 308 

309Nomes de campos com várias palavras usam camelCase, como `maxTurns` e `disallowedTools`, e devem corresponder exatamente à tabela: o Claude Code ignora um campo que não reconhece sem relatar um erro. Para descobrir por que um arquivo de subagente não foi carregado, consulte [Arquivos de subagentes que o Claude Code ignora](#subagent-files-claude-code-skips).309Nomes de campos com várias palavras usam camelCase, como `maxTurns` e `disallowedTools`, e devem corresponder exatamente à tabela: o Claude Code ignora um campo que não reconhece sem relatar um erro.

310 

311* Para encontrar um campo com erro de digitação em um subagente que foi carregado, execute [`claude --debug`](/docs/pt/cli-reference#cli-flags) no seu shell e pesquise `does not recognize or apply` no log de depuração em `~/.claude/debug/<session-id>.txt`. O log de depuração nomeia até cinco campos de nível superior no arquivo do subagente que o Claude Code não reconhece, com o nome provavelmente pretendido quando um campo suportado é semelhante. Requer o Claude Code v2.1.296 ou posterior.

312* Para descobrir por que um arquivo de subagente não foi carregado, consulte [Arquivos de subagentes que o Claude Code ignora](#subagent-files-claude-code-skips).

310 313 

311| Campo | Obrigatório | Descrição |314| Campo | Obrigatório | Descrição |

312| :- | :- | :- |315| :- | :- | :- |


317| `model` | Não | [Modelo](#choose-a-model) a usar: `sonnet`, `opus`, `haiku`, `fable`, um ID de modelo completo como `claude-opus-5-5`, ou `inherit`. Quando você o omite, o Claude Code escolhe o modelo na [ordem de modelos de subagentes](#choose-a-model) |320| `model` | Não | [Modelo](#choose-a-model) a usar: `sonnet`, `opus`, `haiku`, `fable`, um ID de modelo completo como `claude-opus-5-5`, ou `inherit`. Quando você o omite, o Claude Code escolhe o modelo na [ordem de modelos de subagentes](#choose-a-model) |

318| `permissionMode` | Não | [Modo de permissão](#permission-modes): `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions`, `plan`, ou `manual` como alias para `default`. Ignorado para [subagentes de plugin](#choose-the-subagent-scope) |321| `permissionMode` | Não | [Modo de permissão](#permission-modes): `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions`, `plan`, ou `manual` como alias para `default`. Ignorado para [subagentes de plugin](#choose-the-subagent-scope) |

319| `maxTurns` | Não | Número máximo de turnos agênticos antes de o subagente parar. Quando o subagente atinge o limite, o Claude Code retorna sua saída marcada como parcial, e o Claude pode [retomá-lo](#resume-subagents) para continuar. A marcação parcial requer o Claude Code v2.1.246 ou posterior |322| `maxTurns` | Não | Número máximo de turnos agênticos antes de o subagente parar. Quando o subagente atinge o limite, o Claude Code retorna sua saída marcada como parcial, e o Claude pode [retomá-lo](#resume-subagents) para continuar. A marcação parcial requer o Claude Code v2.1.246 ou posterior |

323| `autoCompactWindow` | Não | Reduz a [janela de compactação automática](#subagent-auto-compact-window) deste subagente para uma contagem de tokens de `100000` a `1000000`. Requer o Claude Code v2.1.296 ou posterior |

320| `skills` | Não | [Skills](/docs/pt/skills) a pré-carregar no contexto do subagente na inicialização. O conteúdo completo da skill é injetado, não apenas a descrição. Os subagentes ainda podem invocar skills de projeto, de usuário e de plugin não listadas por meio da ferramenta Skill |324| `skills` | Não | [Skills](/docs/pt/skills) a pré-carregar no contexto do subagente na inicialização. O conteúdo completo da skill é injetado, não apenas a descrição. Os subagentes ainda podem invocar skills de projeto, de usuário e de plugin não listadas por meio da ferramenta Skill |

321| `mcpServers` | Não | [Servidores MCP](/docs/pt/mcp) disponíveis para este subagente. Cada entrada é um nome de servidor que referencia um servidor já configurado (por exemplo, `"slack"`) ou uma definição inline com o nome do servidor como chave e uma [configuração completa de servidor MCP](/docs/pt/mcp#installing-mcp-servers) como valor. Ignorado para [subagentes de plugin](#choose-the-subagent-scope) |325| `mcpServers` | Não | [Servidores MCP](/docs/pt/mcp) disponíveis para este subagente. Cada entrada é um nome de servidor que referencia um servidor já configurado (por exemplo, `"slack"`) ou uma definição inline com o nome do servidor como chave e uma [configuração completa de servidor MCP](/docs/pt/mcp#installing-mcp-servers) como valor. Ignorado para [subagentes de plugin](#choose-the-subagent-scope) |

322| `hooks` | Não | [Hooks de ciclo de vida](#define-hooks-for-subagents) restritos a este subagente. Ignorado para [subagentes de plugin](#choose-the-subagent-scope) |326| `hooks` | Não | [Hooks de ciclo de vida](#define-hooks-for-subagents) restritos a este subagente. Ignorado para [subagentes de plugin](#choose-the-subagent-scope) |

323| `memory` | Não | [Escopo de memória persistente](#enable-persistent-memory): `user`, `project` ou `local`. Permite aprendizado entre sessões |327| `memory` | Não | [Escopo de memória persistente](#enable-persistent-memory): `user`, `project` ou `local`. Permite aprendizado entre sessões |

324| `background` | Não | Defina como `true` para manter este subagente em segundo plano mesmo quando o Claude pedir para executá-lo em primeiro plano. Onde o [modo fork](#turn-fork-mode-on-or-off) está ativado, o Claude Code já executa os subagentes que o Claude cria [em segundo plano](#run-subagents-in-foreground-or-background) |328| `background` | Não | Defina como `true` para manter este subagente em segundo plano mesmo quando o Claude pedir para executá-lo em primeiro plano. Onde o [modo fork](#turn-fork-mode-on-or-off) está ativado, o Claude Code já executa os subagentes que o Claude cria [em segundo plano](#run-subagents-in-foreground-or-background) |

325| `omitClaudeMd` | Não | Defina como `true` para iniciar este subagente sem os arquivos CLAUDE.md de usuário, de projeto e locais; os [arquivos de política gerenciada](/docs/pt/memory#how-claude-md-files-load) ainda são carregados, exceto para [subagentes gerenciados](#choose-the-subagent-scope). Use-o para subagentes que obtêm tudo de que precisam do [prompt de delegação](#what-loads-at-startup). Ignorado quando o agente é executado como agente da sessão principal via `--agent` ou a configuração `agent`. Requer o Claude Code v2.1.271 ou posterior |329| `omitClaudeMd` | Não | Defina como `true` para iniciar este subagente sem os arquivos CLAUDE.md de usuário, de projeto e locais no seu [contexto inicial](#what-loads-at-startup); os [arquivos de política gerenciada](/docs/pt/memory#how-claude-md-files-load) ainda são carregados, exceto para [subagentes gerenciados](#choose-the-subagent-scope). Use-o para subagentes que obtêm tudo de que precisam do prompt de delegação. Ignorado quando o agente é executado como agente da sessão principal via `--agent` ou a configuração `agent`. Requer o Claude Code v2.1.271 ou posterior |

326| `effort` | Não | Nível de esforço quando este subagente está ativo. Sobrescreve o nível de esforço da sessão, mas não a variável de ambiente [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/pt/env-vars#variables). Opções: `low`, `medium`, `high`, `xhigh`, `max`; os níveis disponíveis dependem do modelo. Consulte [Escolher um nível de esforço](#choose-an-effort-level) |330| `effort` | Não | Nível de esforço quando este subagente está ativo. Sobrescreve o nível de esforço da sessão, mas não a variável de ambiente [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/pt/env-vars#variables). Opções: `low`, `medium`, `high`, `xhigh`, `max`; os níveis disponíveis dependem do modelo. Consulte [Escolher um nível de esforço](#choose-an-effort-level) |

327| `isolation` | Não | Defina como `worktree` para executar o subagente em um [git worktree](/docs/pt/worktrees) temporário, dando a ele uma cópia isolada do repositório criada por padrão a partir do seu [branch padrão](/docs/pt/worktrees#choose-the-base-branch), e não do `HEAD` da sessão pai. O worktree é limpo automaticamente se o subagente não fizer alterações |331| `isolation` | Não | Defina como `worktree` para executar o subagente em um [git worktree](/docs/pt/worktrees) temporário, dando a ele uma cópia isolada do repositório criada por padrão a partir do seu [branch padrão](/docs/pt/worktrees#choose-the-base-branch), e não do `HEAD` da sessão pai. O worktree é limpo automaticamente se o subagente não fizer alterações |

328| `color` | Não | Cor de exibição do subagente na lista de tarefas e na transcrição. Aceita `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink` ou `cyan` |332| `color` | Não | Cor de exibição do subagente na lista de tarefas e na transcrição. Aceita `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink` ou `cyan` |


914claude --agent code-reviewer918claude --agent code-reviewer

915```919```

916 920 

917A menos que o prompt do agente esteja [vazio](#choose-the-subagent-scope), o system prompt de um subagente personalizado substitui completamente o system prompt padrão do Claude Code, da mesma forma que [`--system-prompt`](/docs/pt/cli-reference) faz. Os arquivos `CLAUDE.md` e a memória do projeto ainda são carregados através do fluxo de mensagens normal, mesmo quando a definição do agente define [`omitClaudeMd`](#supported-frontmatter-fields).921A menos que o prompt do agente esteja [vazio](#choose-the-subagent-scope), o system prompt de um subagente personalizado substitui completamente o system prompt padrão do Claude Code, da mesma forma que [`--system-prompt`](/docs/pt/cli-reference) faz. Os arquivos `CLAUDE.md` e a memória do projeto ainda são carregados através do fluxo de mensagens normal, mesmo quando a definição do agente define [`omitClaudeMd`](#supported-frontmatter-fields). Se você executar a sessão com `-p` como um agente personalizado que tem seu próprio prompt, ela também inicia sem o [snapshot de status do git](/docs/pt/settings-reference#includegitinstructions).

918 922 

919O nome do agente aparece como `@<name>` no cabeçalho de inicialização para que você possa confirmar que está ativo.923O nome do agente aparece como `@<name>` no cabeçalho de inicialização para que você possa confirmar que está ativo.

920 924 


1150* **Arquivos CLAUDE.md**: cada nível da [hierarquia CLAUDE.md](/docs/pt/memory#how-claude-md-files-load) que a conversa principal carrega, incluindo `~/.claude/CLAUDE.md`, regras do projeto, `CLAUDE.local.md`, arquivos de política gerenciada e qualquer arquivo [`AGENTS.md`](/docs/pt/memory#agents-md) carregado como instruções do projeto. Os agentes Explore e Plan integrados pulam isso. Um subagente cuja definição define [`omitClaudeMd`](#supported-frontmatter-fields) carrega apenas os arquivos de política gerenciada, ou nenhum quando a definição vem de [configurações gerenciadas](#choose-the-subagent-scope).1154* **Arquivos CLAUDE.md**: cada nível da [hierarquia CLAUDE.md](/docs/pt/memory#how-claude-md-files-load) que a conversa principal carrega, incluindo `~/.claude/CLAUDE.md`, regras do projeto, `CLAUDE.local.md`, arquivos de política gerenciada e qualquer arquivo [`AGENTS.md`](/docs/pt/memory#agents-md) carregado como instruções do projeto. Os agentes Explore e Plan integrados pulam isso. Um subagente cuja definição define [`omitClaudeMd`](#supported-frontmatter-fields) carrega apenas os arquivos de política gerenciada, ou nenhum quando a definição vem de [configurações gerenciadas](#choose-the-subagent-scope).

1151* **Status Git**: um snapshot que Claude Code lê do seu repositório quando o subagente é iniciado. Para um subagente em [seu próprio worktree](/docs/pt/worktrees#isolate-subagents-with-worktrees) desse repositório, o snapshot mostra o branch, o status e os commits recentes do worktree. Ausente fora de um repositório Git ou sempre que o snapshot estiver desativado; consulte [`includeGitInstructions`](/docs/pt/settings-reference#includegitinstructions). Explore e Plan o pulam de qualquer forma.1155* **Status Git**: um snapshot que Claude Code lê do seu repositório quando o subagente é iniciado. Para um subagente em [seu próprio worktree](/docs/pt/worktrees#isolate-subagents-with-worktrees) desse repositório, o snapshot mostra o branch, o status e os commits recentes do worktree. Ausente fora de um repositório Git ou sempre que o snapshot estiver desativado; consulte [`includeGitInstructions`](/docs/pt/settings-reference#includegitinstructions). Explore e Plan o pulam de qualquer forma.

1152* **Skills pré-carregadas**: conteúdo completo de qualquer skill nomeada no campo [`skills`](#preload-skills-into-subagents) do agente. Agentes integrados não pré-carregam skills.1156* **Skills pré-carregadas**: conteúdo completo de qualquer skill nomeada no campo [`skills`](#preload-skills-into-subagents) do agente. Agentes integrados não pré-carregam skills.

1153* **Roster de irmãos**: um [lembrete do sistema](/docs/pt/glossary#system-reminder) listando `main` e cada outro agente nomeado na sessão, cada um um valor `to` válido para [`SendMessage`](#resume-subagents). Requer Claude Code v2.1.206 ou posterior. O roster aparece apenas quando as ferramentas do subagente incluem `SendMessage` e pelo menos um outro agente tem um nome, seja Claude o nomeou ao gerá-lo ou ele é executado como um colega de [equipe de agentes](/docs/pt/agent-teams). É um snapshot tirado quando o subagente começa, então agentes nomeados depois não aparecem.1157* **Roster de irmãos**: um [lembrete do sistema](/docs/pt/glossary#system-reminder) listando `main` e cada outro agente nomeado na sessão, cada um um valor `to` válido para [`SendMessage`](#resume-subagents). O roster aparece apenas quando as ferramentas do subagente incluem `SendMessage` e pelo menos um outro agente tem um nome, seja Claude o nomeou ao gerá-lo ou ele é executado como um colega de [equipe de agentes](/docs/pt/agent-teams). É um snapshot tirado quando o subagente começa, então agentes nomeados depois não aparecem.

1154 1158 

1155Para lançar um de seus próprios subagentes sem os arquivos CLAUDE.md do usuário, projeto e local, defina [`omitClaudeMd: true`](#supported-frontmatter-fields) em seu frontmatter ou `--agents` JSON.1159Para lançar um de seus próprios subagentes sem os arquivos CLAUDE.md do usuário, projeto e local, defina [`omitClaudeMd: true`](#supported-frontmatter-fields) em seu frontmatter ou `--agents` JSON. Para Explore, Plan e subagentes com `omitClaudeMd`, o `CLAUDE.md` de um subdiretório e as [regras com escopo de caminho](/docs/pt/memory#path-specific-rules) correspondentes ainda são [carregados](/docs/pt/memory#how-claude-md-files-load) quando o subagente trabalha com arquivos nesse local.

1156 1160 

1157A conversa principal ainda tem seu CLAUDE.md completo quando lê os resultados desses subagentes, então a maioria das regras não precisa alcançar o subagente em si. Se uma regra deve, como "ignore o diretório `vendor/`," reafirme-a no prompt que você dá a Claude ao delegar.1161A conversa principal ainda tem seu CLAUDE.md completo quando lê os resultados desses subagentes, então a maioria das regras não precisa alcançar o subagente em si. Se uma regra deve, como "ignore o diretório `vendor/`," reafirme-a no prompt que você dá a Claude ao delegar.

1158 1162 


1196 1200 

1197Enquanto [a linha desse subagente ainda está no painel de subagentes](#run-subagents-in-foreground-or-background), digite em sua transcrição para retomá-lo você mesmo. Depois disso, uma mensagem de Claude pode retomá-lo automaticamente novamente.1201Enquanto [a linha desse subagente ainda está no painel de subagentes](#run-subagents-in-foreground-or-background), digite em sua transcrição para retomá-lo você mesmo. Depois disso, uma mensagem de Claude pode retomá-lo automaticamente novamente.

1198 1202 

1199Retomar inicia uma nova execução do agente sob o mesmo ID, então um subagente que já havia falhado ou sido concluído mostra como em execução novamente na lista de tarefas e nos eventos de tarefa do Agent SDK. Antes da v2.1.205, ele mantinha seu status anterior de falha ou conclusão enquanto a execução retomada estava funcionando.1203Retomar inicia uma nova execução do agente sob o mesmo ID, então um subagente que já havia falhado ou sido concluído mostra como em execução novamente na lista de tarefas e nos eventos de tarefa do Agent SDK.

1200 1204 

1201`SendMessage` verifica que um nome ainda se refere ao mesmo agente que alcançou anteriormente na conversa. Se um agente mais novo assumiu o nome, como um agente em segundo plano re-gerado que o reutilizou, Claude Code recusa o envio em vez de entregá-lo ao agente errado, e o erro relata qual agente o nome agora alcança para que Claude possa redirecionar. Para alcançar o agente anterior enquanto ainda está em execução, Claude o endereça pelo ID do agente que recebeu quando gerou esse agente. A verificação é restrita à conversa atual e é redefinida em `/clear`.1205`SendMessage` verifica que um nome ainda se refere ao mesmo agente que alcançou anteriormente na conversa. Se um agente mais novo assumiu o nome, como um agente em segundo plano re-gerado que o reutilizou, Claude Code recusa o envio em vez de entregá-lo ao agente errado, e o erro relata qual agente o nome agora alcança para que Claude possa redirecionar. Para alcançar o agente anterior enquanto ainda está em execução, Claude o endereça pelo ID do agente que recebeu quando gerou esse agente. A verificação é restrita à conversa atual e é redefinida em `/clear`.

1202 1206 


1214 Compactação automática1218 Compactação automática

1215</h4>1219</h4>

1216 1220 

1217Subagentes suportam compactação automática usando a mesma lógica que a conversa principal. A compactação é acionada sob as mesmas condições, e `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` se aplica a subagentes também. Consulte [variáveis de ambiente](/docs/pt/env-vars) para quando a substituição entra em vigor.1221Subagentes suportam compactação automática. A compactação é acionada à medida que a própria janela de contexto do subagente se enche, e `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` se aplica a subagentes também. Consulte [variáveis de ambiente](/docs/pt/env-vars) para quando a substituição entra em vigor.

1218 1222 

1219Eventos de compactação são registrados em arquivos de transcrição de subagentes:1223Eventos de compactação são registrados em arquivos de transcrição de subagentes:

1220 1224 


1231 1235 

1232O valor `preTokens` mostra quantos tokens foram usados antes da compactação ocorrer.1236O valor `preTokens` mostra quantos tokens foram usados antes da compactação ocorrer.

1233 1237 

1238<a id="subagent-auto-compact-window" />

1239 

1240<h5 id="set-the-auto-compact-window-for-one-subagent">

1241 Definir a janela de compactação automática para um subagente

1242</h5>

1243 

1244Para fazer um subagente compactar mais cedo do que faria de outra forma, defina `autoCompactWindow` em seu [frontmatter](#supported-frontmatter-fields) como uma contagem de tokens de `100000` a `1000000`. Se você definir [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/pt/env-vars#variables) como um inteiro positivo, o subagente usa a janela dessa variável e o campo não tem efeito. Requer Claude Code v2.1.296 ou posterior.

1245 

1246Este frontmatter define `autoCompactWindow` como 200.000 tokens para um subagente que lê arquivos de log longos:

1247 

1248```yaml theme={null}

1249---

1250name: log-reader

1251description: Reads long log files and reports the errors it finds

1252autoCompactWindow: 200000

1253---

1254```

1255 

1256Escreva o valor como um inteiro simples, como `200000`, porque no frontmatter Claude Code lê `200k` como 200, que está fora do intervalo permitido. O subagente ainda é carregado e compacta como se o campo estivesse ausente. Para verificar se Claude Code ignorou seu valor, execute `claude --debug` em seu shell e procure `invalid autoCompactWindow` no [log de depuração](#supported-frontmatter-fields).

1257 

1258Se o valor estiver dentro do intervalo e você ainda não vir nenhuma mudança, verifique estas causas:

1259 

1260* **O valor não está abaixo da [janela de compactação automática](/docs/pt/model-config#context-window-and-auto-compaction) que o subagente herdaria de outra forma**: para compactar mais cedo, defina um valor abaixo dessa janela.

1261* **Você executa toda a sessão como este subagente com `--agent` ou a configuração `agent`**: o campo não tem efeito nesse caso. Para definir a janela da sessão, consulte [Definir a janela de compactação automática](/docs/pt/model-config#set-the-auto-compact-window).

1262 

1234<h2 id="fork-the-current-conversation">1263<h2 id="fork-the-current-conversation">

1235 Bifurcar a conversa atual1264 Bifurcar a conversa atual

1236</h2>1265</h2>

Details

44| `ReadMcpResourceTool` | Lê um recurso MCP específico por URI | Não |44| `ReadMcpResourceTool` | Lê um recurso MCP específico por URI | Não |

45| `RemoteTrigger` | Cria, atualiza, executa e lista [Rotinas](/docs/pt/routines) no claude.ai. Respalda o comando `/schedule`. A [referência de entrada `RemoteTrigger`](/docs/pt/agent-sdk/typescript#remotetrigger) documenta cada ação e as políticas organizacionais que removem a ferramenta. Rotinas vivem no claude.ai e requerem um plano Pro, Max, Team ou Enterprise, então esta ferramenta não é acessível do Amazon Bedrock, Claude Platform na AWS, Agent Platform do Google Cloud ou Microsoft Foundry | Não |45| `RemoteTrigger` | Cria, atualiza, executa e lista [Rotinas](/docs/pt/routines) no claude.ai. Respalda o comando `/schedule`. A [referência de entrada `RemoteTrigger`](/docs/pt/agent-sdk/typescript#remotetrigger) documenta cada ação e as políticas organizacionais que removem a ferramenta. Rotinas vivem no claude.ai e requerem um plano Pro, Max, Team ou Enterprise, então esta ferramenta não é acessível do Amazon Bedrock, Claude Platform na AWS, Agent Platform do Google Cloud ou Microsoft Foundry | Não |

46| `ReportFindings` | Relata descobertas de revisão de código como uma lista estruturada, com um arquivo, resumo e cenário de falha por descoberta, para que Claude Code possa renderizá-las em vez de imprimi-las como texto. Claude a chama quando instruções ativas de revisão de código dizem para fazê-lo. Uma descoberta também pode carregar um slug `category` opcional, como `correctness` ou `test-coverage`, mostrado ao lado da localização do arquivo na lista renderizada | Não |46| `ReportFindings` | Relata descobertas de revisão de código como uma lista estruturada, com um arquivo, resumo e cenário de falha por descoberta, para que Claude Code possa renderizá-las em vez de imprimi-las como texto. Claude a chama quando instruções ativas de revisão de código dizem para fazê-lo. Uma descoberta também pode carregar um slug `category` opcional, como `correctness` ou `test-coverage`, mostrado ao lado da localização do arquivo na lista renderizada | Não |

47| `ScheduleWakeup` | Reagenda a próxima iteração de um [`/loop` auto-paced](/docs/pt/scheduled-tasks#let-claude-choose-the-interval). Claude chama isso no final de cada iteração para escolher quando a próxima é executada, entre um minuto e uma hora; você não a chama diretamente. Para encerrar o loop em vez disso, Claude a chama com `stop: true`, que cancela o wakeup pendente. O campo `stop` requer Claude Code v2.1.202 ou posterior. O wakeup pendente aparece em `session_crons` em [Entrada do hook Stop](/docs/pt/hooks#stop-input) | Não |47| `ScheduleWakeup` | Reagenda a próxima iteração de um [`/loop` auto-paced](/docs/pt/scheduled-tasks#let-claude-choose-the-interval). Claude chama isso no final de cada iteração para escolher quando a próxima é executada, entre um minuto e uma hora; você não a chama diretamente. Para encerrar o loop em vez disso, Claude a chama com `stop: true`, que cancela o wakeup pendente. O wakeup pendente aparece em `session_crons` em [Entrada do hook Stop](/docs/pt/hooks#stop-input) | Não |

48| `SendFeedback` | Redige um relatório de feedback sobre Claude Code, cobrindo um problema de produto ou o próprio comportamento de Claude na sessão, e o coloca na fila em sua máquina para você revisar. Claude Code não envia nada até que você escolha enviar o rascunho. Veja [Comportamento da ferramenta SendFeedback](#sendfeedback-tool-behavior). Requer Claude Code v2.1.238 ou posterior | Não |48| `SendFeedback` | Redige um relatório de feedback sobre Claude Code, cobrindo um problema de produto ou o próprio comportamento de Claude na sessão, e o coloca na fila em sua máquina para você revisar. Claude Code não envia nada até que você escolha enviar o rascunho. Veja [Comportamento da ferramenta SendFeedback](#sendfeedback-tool-behavior). Requer Claude Code v2.1.238 ou posterior | Não |

49| `SendMessage` | Envia uma mensagem para outro agente: um colega de equipe de [equipe de agentes](/docs/pt/agent-teams), um [subagente que ele retoma](/docs/pt/sub-agents#resume-subagents) por ID ou nome de agente, ou uma de suas outras sessões de Claude Code, nesta máquina ou além dela. Mensagens para outras sessões requerem Claude Code v2.1.224 ou posterior. [Mensagens entre sessões](/docs/pt/cross-session-messaging) cobrem quais sessões Claude pode alcançar, [como uma mensagem se parece quando chega](/docs/pt/cross-session-messaging#what-a-message-looks-like) e [como Claude recebe um aviso quando outra sessão fica inativa](/docs/pt/cross-session-messaging#get-a-notice-when-another-session-goes-idle). Claude pode incluir uma entrada `summary` opcional, normalmente 5-10 palavras, que Claude Code mostra como uma visualização de uma linha. Quando Claude a omite em uma [mensagem de texto simples](/docs/pt/cross-session-messaging#limitations), Claude Code usa a primeira linha da mensagem como resumo. Claude Code trunca um resumo mais longo que 200 caracteres com reticências | Não |49| `SendMessage` | Envia uma mensagem para outro agente: um colega de equipe de [equipe de agentes](/docs/pt/agent-teams), um [subagente que ele retoma](/docs/pt/sub-agents#resume-subagents) por ID ou nome de agente, ou uma de suas outras sessões de Claude Code, nesta máquina ou além dela. Mensagens para outras sessões requerem Claude Code v2.1.224 ou posterior. [Mensagens entre sessões](/docs/pt/cross-session-messaging) cobrem quais sessões Claude pode alcançar, [como uma mensagem se parece quando chega](/docs/pt/cross-session-messaging#what-a-message-looks-like) e [como Claude recebe um aviso quando outra sessão fica inativa](/docs/pt/cross-session-messaging#get-a-notice-when-another-session-goes-idle). Claude pode incluir uma entrada `summary` opcional, normalmente 5-10 palavras, que Claude Code mostra como uma visualização de uma linha. Quando Claude a omite em uma [mensagem de texto simples](/docs/pt/cross-session-messaging#limitations), Claude Code usa a primeira linha da mensagem como resumo. Claude Code trunca um resumo mais longo que 200 caracteres com reticências | Não |

50| `SendUserFile` | Envia arquivos da sessão para você com uma legenda opcional, para que um relatório gerado, diagrama, captura de tela ou artefato construído chegue ao seu dispositivo em vez de apenas ser mencionado na transcrição. A entrada `display` opcional controla a apresentação: `render` abre o arquivo inline no cliente, `attach` mostra apenas um cartão de download e quando não definido o cliente decide por tipo de arquivo. Disponível quando um cliente de [Remote Control](/docs/pt/remote-control) está conectado ou em uma [sessão na nuvem](/docs/pt/claude-code-on-the-web). A entrega é executada através de infraestrutura hospedada pela Anthropic, então a ferramenta não está disponível no Amazon Bedrock, Agent Platform do Google Cloud ou Microsoft Foundry | Não |50| `SendUserFile` | Envia arquivos da sessão para você com uma legenda opcional, para que um relatório gerado, diagrama, captura de tela ou artefato construído chegue ao seu dispositivo em vez de apenas ser mencionado na transcrição. A entrada `display` opcional controla a apresentação: `render` abre o arquivo inline no cliente, `attach` mostra apenas um cartão de download e quando não definido o cliente decide por tipo de arquivo. Disponível quando um cliente de [Remote Control](/docs/pt/remote-control) está conectado ou em uma [sessão na nuvem](/docs/pt/claude-code-on-the-web). A entrega é executada através de infraestrutura hospedada pela Anthropic, então a ferramenta não está disponível no Amazon Bedrock, Agent Platform do Google Cloud ou Microsoft Foundry | Não |


54| `TaskCreate` | Cria uma nova tarefa na lista de tarefas. Fornecido por padrão apenas nos modelos listados em [Disponibilidade da ferramenta Task](#task-tool-availability) e em outros modelos quando você optar por participar | Não |54| `TaskCreate` | Cria uma nova tarefa na lista de tarefas. Fornecido por padrão apenas nos modelos listados em [Disponibilidade da ferramenta Task](#task-tool-availability) e em outros modelos quando você optar por participar | Não |

55| `TaskGet` | Recupera detalhes completos para uma tarefa específica. Fornecido por padrão apenas nos modelos listados em [Disponibilidade da ferramenta Task](#task-tool-availability) e em outros modelos quando você optar por participar | Não |55| `TaskGet` | Recupera detalhes completos para uma tarefa específica. Fornecido por padrão apenas nos modelos listados em [Disponibilidade da ferramenta Task](#task-tool-availability) e em outros modelos quando você optar por participar | Não |

56| `TaskList` | Lista todas as tarefas com seu status atual. Fornecido por padrão apenas nos modelos listados em [Disponibilidade da ferramenta Task](#task-tool-availability) e em outros modelos quando você optar por participar | Não |56| `TaskList` | Lista todas as tarefas com seu status atual. Fornecido por padrão apenas nos modelos listados em [Disponibilidade da ferramenta Task](#task-tool-availability) e em outros modelos quando você optar por participar | Não |

57| `TaskOutput` | Recupera saída de uma tarefa em segundo plano. Descontinuado em favor de `Read` no caminho do arquivo de saída da tarefa. Quando nenhuma tarefa corresponde ao ID, o erro lista os agentes de fundo em execução por ID e descrição. Antes da v2.1.203, o erro nomeava apenas o ID ausente | Não |57| `TaskOutput` | Removido na v2.1.277. Anteriormente recuperava a saída de uma tarefa em segundo plano; Claude lê o [arquivo de saída](/docs/pt/interactive-mode#how-backgrounding-works) de uma tarefa em segundo plano com `Read` em vez disso | Não |

58| `TaskStop` | Para uma tarefa em segundo plano em execução por ID. Também aceita um colega de equipe de [equipe de agentes](/docs/pt/agent-teams) ou um agente em segundo plano nomeado por ID ou nome de agente. Quando nenhuma tarefa corresponde ao ID, o erro lista os agentes em segundo plano em execução por ID e descrição, incluindo agentes que outro agente gerou. Antes da v2.1.203, o erro listava colegas de equipe em execução e agentes nomeados, mas não agentes em segundo plano que outro agente gerou, então eles não podiam ser identificados ou parados da conversa principal | Não |58| `TaskStop` | Para uma tarefa em segundo plano em execução por ID. Também aceita um [colega de equipe de equipe de agentes](/docs/pt/agent-teams) ou um agente em segundo plano nomeado por ID ou nome de agente. Quando nenhuma tarefa corresponde ao ID, o erro lista os agentes em segundo plano em execução por ID e descrição, incluindo agentes que outro agente gerou | Não |

59| `TaskUpdate` | Atualiza status da tarefa, dependências, detalhes ou deleta tarefas. Fornecido por padrão apenas nos modelos listados em [Disponibilidade da ferramenta Task](#task-tool-availability) e em outros modelos quando você optar por participar | Não |59| `TaskUpdate` | Atualiza status da tarefa, dependências, detalhes ou deleta tarefas. Fornecido por padrão apenas nos modelos listados em [Disponibilidade da ferramenta Task](#task-tool-availability) e em outros modelos quando você optar por participar | Não |

60| `TodoWrite` | Gerencia a lista de verificação de tarefas da sessão. Desativado por padrão em favor de `TaskCreate`, `TaskGet`, `TaskList` e `TaskUpdate`. Defina `CLAUDE_CODE_ENABLE_TASKS=0` para reativá-lo em [sessões que têm as ferramentas de rastreamento de tarefas](#task-tool-availability) | Não |60| `TodoWrite` | Gerencia a lista de verificação de tarefas da sessão. Desativado por padrão em favor de `TaskCreate`, `TaskGet`, `TaskList` e `TaskUpdate`. Defina `CLAUDE_CODE_ENABLE_TASKS=0` para reativá-lo em [sessões que têm as ferramentas de rastreamento de tarefas](#task-tool-availability) | Não |

61| `ToolSearch` | Pesquisa e carrega ferramentas adiadas quando [pesquisa de ferramentas](/docs/pt/mcp#scale-with-mcp-tool-search) está ativada | Não |61| `ToolSearch` | Pesquisa e carrega ferramentas adiadas quando [pesquisa de ferramentas](/docs/pt/mcp#scale-with-mcp-tool-search) está ativada | Não |

ultrareview.md +2 −2

Details

149 Acompanhe uma revisão em execução149 Acompanhe uma revisão em execução

150</h2>150</h2>

151 151 

152Uma revisão normalmente leva 5 a 10 minutos. A revisão é executada como uma tarefa em segundo plano, portanto você pode continuar trabalhando em sua sessão ou iniciar outros comandos. Se você escolheu [postar as descobertas no pull request](#post-findings-to-the-pull-request), mantenha a sessão aberta até que a revisão termine; se a sessão terminar primeiro, Claude Code não publica nada.152Uma revisão normalmente leva 15 a 25 minutos. A revisão é executada como uma tarefa em segundo plano, portanto você pode continuar trabalhando em sua sessão ou iniciar outros comandos. Se você escolheu [postar as descobertas no pull request](#post-findings-to-the-pull-request), mantenha a sessão aberta até que a revisão termine; se a sessão terminar primeiro, Claude Code não publica nada.

153 153 

154Use `/tasks` para ver revisões em execução e concluídas, abrir a visualização de detalhes de uma revisão ou parar uma revisão em andamento. Se você parar uma revisão, Claude Code arquiva a sessão na nuvem e não retorna descobertas parciais.154Use `/tasks` para ver revisões em execução e concluídas, abrir a visualização de detalhes de uma revisão ou parar uma revisão em andamento. Se você parar uma revisão, Claude Code arquiva a sessão na nuvem e não retorna descobertas parciais.

155 155 


216| Alvo | seu diff de trabalho, um pull request, uma branch ou um caminho | seu diff de trabalho ou um pull request |216| Alvo | seu diff de trabalho, um pull request, uma branch ou um caminho | seu diff de trabalho ou um pull request |

217| Execuções | localmente em sua sessão | em um sandbox na nuvem |217| Execuções | localmente em sua sessão | em um sandbox na nuvem |

218| Profundidade | escala com o argumento de esforço | frota multi-agente com verificação independente |218| Profundidade | escala com o argumento de esforço | frota multi-agente com verificação independente |

219| Duração | segundos a alguns minutos | aproximadamente 5 a 10 minutos |219| Duração | segundos a alguns minutos | aproximadamente 15 a 25 minutos |

220| Custo | conta para uso normal | execuções gratuitas, depois aproximadamente \$5 a \$25 por revisão como créditos de uso |220| Custo | conta para uso normal | execuções gratuitas, depois aproximadamente \$5 a \$25 por revisão como créditos de uso |

221| Melhor para | feedback rápido durante iteração | confiança pré-merge em mudanças substanciais |221| Melhor para | feedback rápido durante iteração | confiança pré-merge em mudanças substanciais |

222 222 

Details

146 146 

147<Steps>147<Steps>

148 <Step title="Selecione um repositório e branch">148 <Step title="Selecione um repositório e branch">

149 De [claude.ai/code](https://claude.ai/code) ou da aba Code no aplicativo móvel Claude, clique no seletor de repositório abaixo da caixa de entrada e escolha um repositório para Claude trabalhar. Cada repositório mostra um seletor de branch. Altere-o para iniciar Claude a partir de um branch de recurso em vez do padrão. Você pode adicionar múltiplos repositórios para trabalhar entre eles em uma sessão.149 De [claude.ai/code](https://claude.ai/code) ou da aba Code no aplicativo móvel Claude, clique no seletor de repositório abaixo da caixa de entrada e escolha um repositório para Claude trabalhar. Você pode adicionar múltiplos repositórios para trabalhar entre eles em uma sessão.

150 

151 Em claude.ai/code, para iniciar Claude a partir de um branch de recurso em vez do padrão, altere o branch no controle após o seletor de repositório.

150 </Step>152 </Step>

151 153 

152 <Step title="Escolha um modo de permissão">154 <Step title="Escolha um modo de permissão">

workflows.md +4 −4

Details

99| :- | :- |99| :- | :- |

100| `↑` / `↓` | Selecionar uma fase ou agente |100| `↑` / `↓` | Selecionar uma fase ou agente |

101| `Enter` ou `→` | Aprofundar-se na fase selecionada e depois no detalhe de um agente. No detalhe, `Enter` expande ou recolhe |101| `Enter` ou `→` | Aprofundar-se na fase selecionada e depois no detalhe de um agente. No detalhe, `Enter` expande ou recolhe |

102| `Esc` ou `←` | Voltar um nível. Na v2.1.203 até v2.1.205, `←` não recuou de uma fase ou agente; use `Esc` nessas versões |102| `Esc` ou `←` | Voltar um nível |

103| `j` / `k` | Rolar dentro do detalhe do agente quando ele transborda |103| `j` / `k` | Rolar dentro do detalhe do agente quando ele transborda |

104| `f` | Filtrar a lista de agentes na fase selecionada por status. Pressione novamente para ciclar |104| `f` | Filtrar a lista de agentes na fase selecionada por status. Pressione novamente para ciclar |

105| `p` | Pausar ou retomar a execução |105| `p` | Pausar ou retomar a execução |


167/effort ultracode167/effort ultracode

168```168```

169 169 

170Para iniciar uma sessão com ultracode já ativado, inicie com `claude --effort ultracode`, que também define o nível de esforço para `xhigh`. Requer Claude Code v2.1.203 ou posterior.170Para iniciar uma sessão com ultracode já ativado, inicie com `claude --effort ultracode`, que também define o nível de esforço para `xhigh`.

171 171 

172Para ativá-lo a partir do controle deslizante `/effort`, pressione `Tab` para alternar o botão **Ultracode**, depois `Enter` para aplicá-lo. [Ajustar nível de esforço](/docs/pt/model-config#adjust-effort-level) lista as rotas que ativam ultracode.172Para ativá-lo a partir do controle deslizante `/effort`, pressione `Tab` para alternar o botão **Ultracode**, depois `Enter` para aplicá-lo. [Ajustar nível de esforço](/docs/pt/model-config#adjust-effort-level) lista as rotas que ativam ultracode.

173 173 


505 505 

506Um fluxo de trabalho spawna muitos agentes, então uma única execução pode usar significativamente mais tokens do que trabalhar através da mesma tarefa em conversa. As execuções contam para o uso do seu plano e limites de taxa.506Um fluxo de trabalho spawna muitos agentes, então uma única execução pode usar significativamente mais tokens do que trabalhar através da mesma tarefa em conversa. As execuções contam para o uso do seu plano e limites de taxa.

507 507 

508Para avaliar o gasto antes de se comprometer com uma tarefa grande, execute o fluxo de trabalho em um pequeno recorte primeiro: um diretório em vez de todo o repositório, ou uma pergunta estreita em vez de uma ampla. A visualização `/workflows` mostra o uso de tokens de cada agente conforme a execução progride, e você pode parar a execução lá a qualquer momento, geralmente sem perder o trabalho concluído. [Retomar após uma pausa](#resume-after-a-pause) cobre o que uma execução parada mantém. Os [limites de agente](#behavior-and-limits) do runtime limitam quantos agentes uma única execução pode spawnar, o que limita o custo de um script descontrolado. Para manter execuções com menos agentes, escolha a diretriz de tamanho `small` [](#set-a-size-guideline).508Para avaliar o gasto antes de se comprometer com uma tarefa grande, execute o fluxo de trabalho em um pequeno recorte primeiro: um diretório em vez de todo o repositório, ou uma pergunta estreita em vez de uma ampla. A visualização `/workflows` mostra o uso de tokens de cada agente conforme a execução progride, e você pode parar a execução lá a qualquer momento, geralmente sem perder o trabalho concluído. [Retomar após uma pausa](#resume-after-a-pause) cobre o que uma execução parada mantém. Os [limites de agente](#behavior-and-limits) do runtime limitam quantos agentes uma única execução pode spawnar, o que limita o custo de um script descontrolado. Para manter execuções com menos agentes, escolha a [diretriz de tamanho](#set-a-size-guideline) `small`.

509 509 

510Claude Code também sinaliza uma execução que cresce incomumente grande. Quando um fluxo de trabalho agenda mais de 25 agentes, ou sua projeção de token total passa 1,5 milhão, sua linha de progresso no painel de tarefas abaixo da caixa de entrada mostra um aviso `Large workflow`. O aviso aponta você para [`/workflows`](#watch-the-run), onde você pode parar a execução.510Claude Code também sinaliza uma execução que cresce incomumente grande. Quando um fluxo de trabalho agenda mais de 25 agentes, ou sua projeção de token total passa 1,5 milhão, sua linha de progresso no painel de tarefas abaixo da caixa de entrada mostra um aviso `Large workflow`. O aviso aponta você para [`/workflows`](#watch-the-run), onde você pode parar a execução.

511 511 


527 Defina uma diretriz de tamanho527 Defina uma diretriz de tamanho

528</h3>528</h3>

529 529 

530Uma diretriz de tamanho diz a Claude quantos agentes visar quando escreve um fluxo de trabalho dinâmico. Claude Code envia a diretriz para Claude como conselho, não um limite, então um prompt que chama por uma escala diferente ainda a substitui. Requer Claude Code v2.1.202 ou posterior.530Uma diretriz de tamanho diz a Claude quantos agentes visar quando escreve um fluxo de trabalho dinâmico. Claude Code envia a diretriz para Claude como conselho, não um limite, então um prompt que pede uma escala diferente ainda a sobrescreve.

531 531 

532Cada valor mapeia para uma contagem de agentes:532Cada valor mapeia para uma contagem de agentes:

533 533