SpyBara
Go Premium

Documentation 2026-10-25 23:58 UTC to 2026-10-26 22:57 UTC

40 files changed +704 −141. 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

admin-setup.md +1 −1

Details

93| [Sandboxing](https://code.claude.com/docs/pt/sandboxing.md) | Isolamento de sistema de arquivos e rede de nível do SO com listas de permissão de domínio | `sandbox.enabled`, `sandbox.network.allowedDomains` |93| [Sandboxing](https://code.claude.com/docs/pt/sandboxing.md) | Isolamento de sistema de arquivos e rede de nível do SO com listas de permissão de domínio | `sandbox.enabled`, `sandbox.network.allowedDomains` |

94| [Managed policy CLAUDE.md](https://code.claude.com/docs/pt/memory.md#deploy-organization-wide-claude-md) | Orientação comportamental para o Claude em toda a organização, em vez de uma regra aplicada pelo cliente | Arquivo no caminho da política gerenciada |94| [Managed policy CLAUDE.md](https://code.claude.com/docs/pt/memory.md#deploy-organization-wide-claude-md) | Orientação comportamental para o Claude em toda a organização, em vez de uma regra aplicada pelo cliente | Arquivo no caminho da política gerenciada |

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

96| [Plugin marketplace control](https://code.claude.com/docs/pt/plugins/org.md#restrict-what-users-can-install) | Restringir quais fontes de marketplace os usuários podem adicionar e instalar, rejeitar os sinalizadores CLI que carregam plugins, agents e servidores MCP para uma única execução, bloquear [fontes de plugin `command`](https://code.claude.com/docs/pt/plugins/marketplace-reference#command-plugin-source), e criar uma lista de permissão de quais plugins dos marketplaces podem ser sugeridos | `strictKnownMarketplaces`, `blockedMarketplaces`, `disableSideloadFlags`, `disableCommandPluginSources`, `pluginSuggestionMarketplaces` |96| [Plugin marketplace control](https://code.claude.com/docs/pt/plugins/org.md#restrict-what-users-can-install) | Restringir quais fontes de marketplace os usuários podem adicionar e a partir das quais podem instalar, e rejeitar as flags da CLI que carregam plugins, agents e servidores MCP para uma única execução. Bloquear [fontes de plugin `command`](https://code.claude.com/docs/pt/plugins/marketplace-reference#command-plugin-source), e adicionar à allowlist os marketplaces cujos plugins podem ser sugeridos no terminal | `strictKnownMarketplaces`, `blockedMarketplaces`, `disableSideloadFlags`, `disableCommandPluginSources`, `pluginSuggestionMarketplaces` |

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

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

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

Details

233| `"default"` | Chamadas de ferramentas que precisam de aprovação e não são cobertas por regras de permissão acionam seu callback `canUseTool`; nenhum callback significa negar | Aplicações interativas com um callback de aprovação personalizado |233| `"default"` | Chamadas de ferramentas que precisam de aprovação e não são cobertas por regras de permissão acionam seu callback `canUseTool`; nenhum callback significa negar | Aplicações interativas com um callback de aprovação personalizado |

234| `"acceptEdits"` | Aprova automaticamente edições de arquivo e comandos comuns do sistema de arquivos (`mkdir`, `touch`, `mv`, `cp`, etc.); outros comandos Bash seguem as regras padrão | Você confia nas edições do Claude e quer iteração mais rápida, como durante prototipagem ou ao trabalhar em um diretório isolado |234| `"acceptEdits"` | Aprova automaticamente edições de arquivo e comandos comuns do sistema de arquivos (`mkdir`, `touch`, `mv`, `cp`, etc.); outros comandos Bash seguem as regras padrão | Você confia nas edições do Claude e quer iteração mais rápida, como durante prototipagem ou ao trabalhar em um diretório isolado |

235| `"plan"` | Claude explora e planeja sem editar seus arquivos de origem; edições de arquivo nunca são aprovadas automaticamente e solicitam através de seu callback `canUseTool` | Você quer que Claude proponha mudanças sem executá-las, como durante revisão de código ou quando você precisa aprovar mudanças antes de serem feitas |235| `"plan"` | Claude explora e planeja sem editar seus arquivos de origem; edições de arquivo nunca são aprovadas automaticamente e solicitam através de seu callback `canUseTool` | Você quer que Claude proponha mudanças sem executá-las, como durante revisão de código ou quando você precisa aprovar mudanças antes de serem feitas |

236| `"dontAsk"` | Nunca solicita. Ferramentas pré-aprovadas por [regras de permissão](https://code.claude.com/docs/pt/settings-reference.md#permission-settings) são executadas, assim como chamadas que não precisam de aprovação no modo `default`, como leituras de arquivo dentro de seus diretórios de trabalho. Toda chamada que de outra forma solicitaria é negada, embora um [mod](https://code.claude.com/docs/pt/plugins/mods/overview.md) que você instalou ainda possa aprovar [algumas dessas chamadas](https://code.claude.com/docs/pt/permissions.md#precedence-among-rules-hooks-and-mods). `AskUserQuestion`, ferramentas de conector [que sua organização definiu como `ask`](https://code.claude.com/docs/pt/mcp#organization-controls-on-connector-tools), ferramentas MCP marcadas [`requiresUserInteraction`](https://code.claude.com/docs/pt/mcp#require-approval-for-a-specific-tool) e [leituras de caminhos de rede](https://code.claude.com/docs/pt/permissions.md#network-paths) são negadas mesmo que você as tenha permitido | Você quer uma superfície de ferramenta fixa e explícita para um agente sem cabeça e prefere uma negação rígida sobre confiança silenciosa em `canUseTool` estar ausente |236| `"dontAsk"` | Nunca solicita. Ferramentas pré-aprovadas por [regras de permissão](https://code.claude.com/docs/pt/settings-reference.md#permission-settings) são executadas, assim como chamadas que não precisam de aprovação no modo `default`, como leituras de arquivo dentro de seus diretórios de trabalho. Toda chamada que de outra forma solicitaria é negada, embora um [mod](https://code.claude.com/docs/pt/plugins/mods/overview.md) que você instalou ainda possa aprovar [algumas dessas chamadas](https://code.claude.com/docs/pt/permissions.md#precedence-among-rules-hooks-and-mods). Algumas chamadas, como [leituras de caminhos de rede](https://code.claude.com/docs/pt/permissions.md#network-paths), são negadas mesmo que você as tenha permitido. Para a lista, veja [Don't ask mode](https://code.claude.com/docs/pt/agent-sdk/permissions.md#don’t-ask-mode-dontask) | Agentes headless sem ninguém para aprovar chamadas |

237| `"auto"` | Usa um classificador de modelo para revisar ações como comandos shell e solicitações de rede, permitindo ou bloqueando cada uma que revisa. Veja [Auto mode](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode) para disponibilidade e a ordem de decisão | Agentes autônomos que ainda querem proteções de segurança no uso de ferramentas |237| `"auto"` | Usa um classificador de modelo para revisar ações como comandos shell e solicitações de rede, permitindo ou bloqueando cada uma que revisa. Veja [Auto mode](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode) para disponibilidade e a ordem de decisão | Agentes autônomos que ainda querem proteções de segurança no uso de ferramentas |

238| `"bypassPermissions"` | Executa todas as ferramentas permitidas sem perguntar, exceto ferramentas correspondidas por uma regra [`ask`](https://code.claude.com/docs/pt/settings-reference#permission-settings) explícita, ferramentas de conector [que sua organização definiu como `ask`](https://code.claude.com/docs/pt/mcp#organization-controls-on-connector-tools) e ferramentas que exigem interação do usuário. As [proteções de mensagens entre sessões](https://code.claude.com/docs/pt/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) ainda se aplicam. Veja [How permissions are evaluated](https://code.claude.com/docs/pt/agent-sdk/permissions.md#how-permissions-are-evaluated) para a ordem de precedência. No SDK TypeScript, também requer `allowDangerouslySkipPermissions: true` em `options`. Não pode ser usado ao executar como root no Unix. Use apenas em ambientes isolados onde as ações do agente não podem afetar sistemas que você se importa | CI, contêineres ou outros ambientes isolados |238| `"bypassPermissions"` | Executa chamadas de ferramenta sem pedir aprovação, incluindo chamadas a ferramentas que você não listou em `allowedTools`. Algumas chamadas ainda vão para seu callback `canUseTool`, listadas em [Bypass permissions mode](https://code.claude.com/docs/pt/agent-sdk/permissions.md#bypass-permissions-mode-bypasspermissions). No SDK TypeScript, também requer `allowDangerouslySkipPermissions: true` em `options`. Não pode ser usado ao executar como root no Unix. Use apenas em ambientes isolados onde as ações do agente não podem afetar sistemas que você se importa | CI, contêineres ou outros ambientes isolados |

239 239 

240Para aplicações interativas, use `"default"` com um callback de aprovação de ferramenta para exibir solicitações de aprovação. Para agentes autônomos em uma máquina de desenvolvimento, `"acceptEdits"` aprova automaticamente edições de arquivo e comandos comuns do sistema de arquivos (`mkdir`, `touch`, `mv`, `cp`, etc.) enquanto ainda controla outros comandos `Bash` atrás de regras de permissão. Reserve `"bypassPermissions"` para CI, contêineres ou outros ambientes isolados. Veja [Permissions](https://code.claude.com/docs/pt/agent-sdk/permissions.md) para detalhes completos.240Para aplicações interativas, use `"default"` com um callback de aprovação de ferramenta para exibir solicitações de aprovação. Para agentes autônomos em uma máquina de desenvolvimento, `"acceptEdits"` aprova automaticamente edições de arquivo e comandos comuns do sistema de arquivos (`mkdir`, `touch`, `mv`, `cp`, etc.) enquanto ainda controla outros comandos `Bash` atrás de regras de permissão. Reserve `"bypassPermissions"` para CI, contêineres ou outros ambientes isolados. Veja [Permissions](https://code.claude.com/docs/pt/agent-sdk/permissions.md) para detalhes completos.

241 241 

Details

16| Tornar um parâmetro opcional | Declare-o como opcional no esquema e aplique o valor padrão no manipulador. Veja [Tornar um parâmetro opcional](#make-a-parameter-optional). |16| Tornar um parâmetro opcional | Declare-o como opcional no esquema e aplique o valor padrão no manipulador. Veja [Tornar um parâmetro opcional](#make-a-parameter-optional). |

17| Registrar uma ferramenta com Claude | Envolva em `create_sdk_mcp_server` / `createSdkMcpServer` e passe para `mcpServers` em `query()`. Veja [Chamar uma ferramenta personalizada](#call-a-custom-tool). |17| Registrar uma ferramenta com Claude | Envolva em `create_sdk_mcp_server` / `createSdkMcpServer` e passe para `mcpServers` em `query()`. Veja [Chamar uma ferramenta personalizada](#call-a-custom-tool). |

18| Pré-aprovar uma ferramenta | Adicione às suas ferramentas permitidas. Veja [Configurar ferramentas permitidas](#configure-allowed-tools). |18| Pré-aprovar uma ferramenta | Adicione às suas ferramentas permitidas. Veja [Configurar ferramentas permitidas](#configure-allowed-tools). |

19| Exigir aprovação para chamadas a uma ferramenta, ou bloquear a ferramenta | No SDK TypeScript, adicione uma `permission_policy` para a ferramenta ao objeto de configuração que `createSdkMcpServer()` retorna. Veja [Exigir aprovação para ferramentas específicas](#require-approval-for-specific-tools). |

19| Remover uma ferramenta integrada do contexto de Claude | Passe um array `tools` listando apenas os integrados que você quer. Veja [Configurar ferramentas permitidas](#configure-allowed-tools). |20| Remover uma ferramenta integrada do contexto de Claude | Passe um array `tools` listando apenas os integrados que você quer. Veja [Configurar ferramentas permitidas](#configure-allowed-tools). |

20| Deixar Claude chamar ferramentas em paralelo | Defina `readOnlyHint: true` em ferramentas sem efeitos colaterais. Veja [Adicionar anotações de ferramentas](#add-tool-annotations). |21| Deixar Claude chamar ferramentas em paralelo | Defina `readOnlyHint: true` em ferramentas sem efeitos colaterais. Veja [Adicionar anotações de ferramentas](#add-tool-annotations). |

21| Controlar a mensagem de erro que Claude lê | Retorne `isError: true` para compor a mensagem em vez de expor a exceção bruta. Veja [Tratar erros](#handle-errors). |22| Controlar a mensagem de erro que Claude lê | Retorne `isError: true` para compor a mensagem em vez de expor a exceção bruta. Veja [Tratar erros](#handle-errors). |


327| Campo | Padrão | Significado |328| Campo | Padrão | Significado |

328| :- | :- | :- |329| :- | :- | :- |

329| `readOnlyHint` | `false` | A ferramenta não modifica seu ambiente. Controla se a ferramenta pode ser chamada em paralelo com outras ferramentas somente leitura. |330| `readOnlyHint` | `false` | A ferramenta não modifica seu ambiente. Controla se a ferramenta pode ser chamada em paralelo com outras ferramentas somente leitura. |

330| `destructiveHint` | `true` | A ferramenta pode realizar atualizações destrutivas. Apenas informativo. |331| `destructiveHint` | `true` | A ferramenta pode realizar atualizações destrutivas. Defina-o explicitamente como `true` em qualquer ferramenta que você [marcar como `always_ask`](#require-approval-for-specific-tools). |

331| `idempotentHint` | `false` | Chamadas repetidas com os mesmos argumentos não têm efeito adicional. Apenas informativo. |332| `idempotentHint` | `false` | Chamadas repetidas com os mesmos argumentos não têm efeito adicional. Apenas informativo. |

332| `openWorldHint` | `true` | A ferramenta alcança sistemas fora de seu processo. Apenas informativo. |333| `openWorldHint` | `true` | A ferramenta alcança sistemas fora de seu processo. Apenas informativo. |

333 334 


383 384 

384Para remover uma ferramenta integrada completamente, omita-a de `tools` ou liste seu nome simples em `disallowedTools` (Python: `disallowed_tools`); ambas mantêm a ferramenta fora do contexto para que Claude nunca tente usá-la. Uma regra `disallowedTools` com escopo bloqueia as chamadas correspondentes, mas deixa a ferramenta visível, então Claude pode desperdiçar um turno tentando usá-la. Consulte [Configurar permissões](https://code.claude.com/docs/pt/agent-sdk/permissions.md) para a ordem de avaliação completa.385Para remover uma ferramenta integrada completamente, omita-a de `tools` ou liste seu nome simples em `disallowedTools` (Python: `disallowed_tools`); ambas mantêm a ferramenta fora do contexto para que Claude nunca tente usá-la. Uma regra `disallowedTools` com escopo bloqueia as chamadas correspondentes, mas deixa a ferramenta visível, então Claude pode desperdiçar um turno tentando usá-la. Consulte [Configurar permissões](https://code.claude.com/docs/pt/agent-sdk/permissions.md) para a ordem de avaliação completa.

385 386 

387### Exigir aprovação para ferramentas específicas

388 

389Defina a `permission_policy` de uma ferramenta como `always_ask`, e `allowedTools` deixa de aprovar as chamadas dessa ferramenta, de modo que elas podem chegar ao seu callback [`canUseTool`](https://code.claude.com/docs/pt/agent-sdk/user-input) mesmo que a ferramenta esteja listada. Em vez disso, defina `always_deny`, e [uma chamada à ferramenta é negada](https://code.claude.com/docs/pt/agent-sdk/permissions.md#how-permissions-are-evaluated), mas um [mod](https://code.claude.com/docs/pt/plugins/mods/overview.md) em um plugin que você carrega [ainda pode aprová-la](https://code.claude.com/docs/pt/permissions.md#precedence-among-rules-hooks-and-mods). O campo é exclusivo do TypeScript e requer o Agent SDK v0.3.301 ou posterior.

390 

391Coloque a entrada da política em um array `tools` no objeto de configuração que `createSdkMcpServer()` retorna, e não na opção `tools` que você passa para essa função. Este exemplo espalha `weatherServer` do [exemplo de ferramenta de clima](#weather-tool-example) e adiciona um array `tools` que atribui a `get_temperature` a política `always_ask`:

392 

393```typescript TypeScript theme={null}

394options: {

395 mcpServers: {

396 weather: {

397 ...weatherServer,

398 tools: [{ name: "get_temperature", permission_policy: "always_ask" as const }]

399 }

400 },

401 allowedTools: ["mcp__weather__get_temperature"],

402 permissionMode: "default",

403 canUseTool: async (toolName, input) => {

404 console.log(`Approval requested for ${toolName}`);

405 return { behavior: "allow", updatedInput: input };

406 }

407}

408```

409 

410Para testar a política, substitua as `options` no script de [Chamar uma ferramenta personalizada](#call-a-custom-tool) pelas `options` deste exemplo e, em seguida, execute esse script no seu terminal. O script imprime `Approval requested for mcp__weather__get_temperature`, seguido da resposta do Claude sobre a temperatura. Para um script completo, consulte a [referência do TypeScript](https://code.claude.com/docs/pt/agent-sdk/typescript.md#mcpsdkserverconfigwithinstance).

411 

412Se você usar o [modo de permissão](https://code.claude.com/docs/pt/agent-sdk/permissions.md#permission-modes) `auto` ou `plan`, defina `destructiveHint: true` nas [anotações](#add-tool-annotations) da ferramenta para que as chamadas à ferramenta ainda cheguem ao seu callback. Caso contrário, o [classificador do modo auto](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode) pode aprovar algumas chamadas `always_ask`, sob [condições listadas na referência do TypeScript](https://code.claude.com/docs/pt/agent-sdk/typescript.md#permission-modes-that-can-approve-an-always_ask-call), e uma chamada que ele aprova não chega ao seu callback. Defina a dica explicitamente, porque um `destructiveHint` não definido conta como `false` para chamadas `always_ask`, em vez de assumir `true` como padrão.

413 

386## Tratar erros414## Tratar erros

387 415 

388Um erro de handler não interrompe o loop do agente. O servidor MCP em processo do SDK captura exceções não capturadas e as retorna como resultados de erro, portanto, a forma como você relata um erro determina o que Claude lê, não se a consulta falha:416Um erro de handler não interrompe o loop do agente. O servidor MCP em processo do SDK captura exceções não capturadas e as retorna como resultados de erro, portanto, a forma como você relata um erro determina o que Claude lê, não se a consulta falha:

Details

10 10 

11## Como as permissões são avaliadas11## Como as permissões são avaliadas

12 12 

13> [!NOTE]

14>

15> Se você carregar um plugin que contém um [mod](https://code.claude.com/docs/pt/plugins/mods/overview.md), consulte [onde as decisões de um mod se encaixam entre regras e hooks](https://code.claude.com/docs/pt/permissions.md#precedence-among-rules-hooks-and-mods).

16 

13Quando Claude solicita uma ferramenta, o SDK verifica as permissões nesta ordem:17Quando Claude solicita uma ferramenta, o SDK verifica as permissões nesta ordem:

14 18 

15**1. Hooks**19**1. Hooks**


20 24 

21**2. Regras de negação**25**2. Regras de negação**

22 26 

23Verifique as regras `deny` (de `disallowed_tools` e [settings.json](https://code.claude.com/docs/pt/settings-reference.md#permission-settings)). Se uma regra de negação corresponder, a ferramenta é bloqueada, mesmo no modo `bypassPermissions`. Regras de negação com nome simples como `Bash` removem a ferramenta do contexto do Claude antes desta avaliação começar, portanto apenas regras com escopo como `Bash(rm *)` são verificadas nesta etapa.27Se uma regra de negação de `disallowed_tools` ou de [settings.json](https://code.claude.com/docs/pt/settings-reference.md#permission-settings) corresponder, a chamada é negada e [`canUseTool`](https://code.claude.com/docs/pt/agent-sdk/user-input) não é chamado, mesmo no modo [`bypassPermissions`](#bypass-permissions-mode-bypasspermissions) e mesmo quando um hook retornou `allow`.

28 

29No SDK TypeScript, se você definir a `permission_policy` de uma [ferramenta personalizada](https://code.claude.com/docs/pt/agent-sdk/custom-tools.md#require-approval-for-specific-tools) como [`always_deny`](https://code.claude.com/docs/pt/agent-sdk/typescript#mcpservertoolpolicy), uma chamada a essa ferramenta é negada nesta etapa.

24 30 

25**3. Regras de pergunta**31**3. Regras de pergunta**

26 32 


30 36 

31Ferramentas do conector [claude.ai](https://code.claude.com/docs/pt/mcp.md#organization-controls-on-connector-tools) que sua organização definiu como `ask` também saem do fluxo nesta etapa. Cada chamada passa para o callback, mesmo no modo `bypassPermissions` e mesmo quando uma regra de permissão corresponde. O callback recebe o motivo `Your organization requires approval for this tool`. No modo `dontAsk` a chamada é negada, porque esse modo nunca solicita.37Ferramentas do conector [claude.ai](https://code.claude.com/docs/pt/mcp.md#organization-controls-on-connector-tools) que sua organização definiu como `ask` também saem do fluxo nesta etapa. Cada chamada passa para o callback, mesmo no modo `bypassPermissions` e mesmo quando uma regra de permissão corresponde. O callback recebe o motivo `Your organization requires approval for this tool`. No modo `dontAsk` a chamada é negada, porque esse modo nunca solicita.

32 38 

39No SDK TypeScript, se você definir a `permission_policy` de uma ferramenta personalizada como [`always_ask`](https://code.claude.com/docs/pt/agent-sdk/custom-tools#require-approval-for-specific-tools), nenhuma regra de permissão aprova suas chamadas, nem mesmo uma entrada `allowedTools`. No modo `dontAsk`, Claude Code nega essas chamadas, e nos modos `auto`, `plan` ou `bypassPermissions` ele [pode aprová-las](https://code.claude.com/docs/pt/agent-sdk/typescript.md#permission-modes-that-can-approve-an-always_ask-call) antes de seu callback ser executado.

40 

33**4. Modo de permissão**41**4. Modo de permissão**

34 42 

35Aplique o [modo de permissão](#permission-modes) ativo:43Aplique o [modo de permissão](#permission-modes) ativo:

36 44 

37* No modo `bypassPermissions`, Claude Code aprova tudo que chega a esta etapa, exceto [remoções de caminho crítico](https://code.claude.com/docs/pt/permission-modes.md#critical-paths) reconhecidas, que passam para a próxima etapa.45* No modo `bypassPermissions`, Claude Code aprova tudo que chega a esta etapa, exceto [remoções de caminho crítico](https://code.claude.com/docs/pt/permission-modes.md#critical-paths) reconhecidas e comandos Bash sinalizados com [`Dangerous rm operation not ruled out`](https://code.claude.com/docs/pt/permission-modes#dangerous-rm-operation-not-ruled-out), que passam para a próxima etapa.

38* No modo `acceptEdits`, Claude Code aprova as operações de arquivo listadas em [Modo Accept edits](#accept-edits-mode-acceptedits).46* No modo `acceptEdits`, Claude Code aprova as operações de arquivo listadas em [Modo Accept edits](#accept-edits-mode-acceptedits).

39* No modo `plan`, Claude Code envia ferramentas de edição de arquivo e escrita de shell para seu callback `canUseTool` independentemente das regras de permissão, para que operações de escrita não possam ser aprovadas automaticamente durante o planejamento.47* No modo `plan`, Claude Code envia ferramentas de edição de arquivo para seu callback `canUseTool` independentemente das regras de permissão.

40* Em outros modos, a solicitação passa para a próxima etapa.48* Em outros modos, a solicitação passa para a próxima etapa.

41 49 

42**5. Regras de permissão**50**5. Regras de permissão**

43 51 

44Verifique as regras `allow` (de `allowed_tools` e settings.json). Se uma regra corresponder, a ferramenta é aprovada. Uma chamada que a ferramenta aprova por conta própria é resolvida nesta etapa também, sem necessidade de regra: por exemplo uma leitura de arquivo dentro de seus diretórios de trabalho ou um [comando Bash somente leitura](https://code.claude.com/docs/pt/permissions.md#read-only-commands).52Verifique as regras `allow` (de `allowed_tools` e settings.json). Se uma regra corresponder, a ferramenta é aprovada. Uma chamada que a ferramenta aprova por conta própria é resolvida nesta etapa também, sem necessidade de regra: por exemplo uma leitura de arquivo dentro de seus diretórios de trabalho ou um [comando Bash somente leitura](https://code.claude.com/docs/pt/permissions.md#read-only-commands).

45 53 

46[Remoções de caminho crítico](https://code.claude.com/docs/pt/permission-modes.md#critical-paths) reconhecidas não são aprovadas por uma regra de permissão. Se elas então chegarem ao seu callback depende do modo de permissão: em uma sessão do Agent SDK no modo `auto`, por exemplo, Claude Code as nega por padrão sem chamá-lo. A [tabela de modos de Caminhos críticos](https://code.claude.com/docs/pt/permission-modes.md#critical-path-removals-in-each-permission-mode) lista o que cada modo faz com elas.54[Remoções de caminho crítico](https://code.claude.com/docs/pt/permission-modes.md#critical-paths) reconhecidas não são aprovadas por uma regra de permissão, e comandos sinalizados com `Dangerous rm operation not ruled out` não são aprovados por uma regra `Bash` ou `Bash(*)`. Se eles então chegarem ao seu callback depende do modo de permissão: em uma sessão do Agent SDK no modo `auto`, por exemplo, Claude Code os nega por padrão sem chamá-lo. A [tabela de modos de Caminhos críticos](https://code.claude.com/docs/pt/permission-modes.md#critical-path-removals-in-each-permission-mode) lista o que cada modo faz com eles.

47 55 

48Uma regra de permissão não aprova uma leitura de um [caminho de rede](https://code.claude.com/docs/pt/permissions.md#network-paths).56Uma regra de permissão não aprova uma leitura de um [caminho de rede](https://code.claude.com/docs/pt/permissions.md#network-paths).

49 57 


57 65 

58Se você passar um callback `canUseTool` em uma configuração onde o SDK TypeScript espera que a ordem de avaliação aprove automaticamente as chamadas antes do callback ser consultado, o SDK emite um aviso de processo Node.js uma vez quando a consulta é construída. O código do aviso é `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED`. Duas configurações o acionam:66Se você passar um callback `canUseTool` em uma configuração onde o SDK TypeScript espera que a ordem de avaliação aprove automaticamente as chamadas antes do callback ser consultado, o SDK emite um aviso de processo Node.js uma vez quando a consulta é construída. O código do aviso é `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED`. Duas configurações o acionam:

59 67 

60* `permissionMode: 'bypassPermissions'`, que aprova automaticamente cada chamada que chega à etapa do modo de permissão, exceto pelas [ações que nenhum modo aprova automaticamente](https://code.claude.com/docs/pt/permission-modes.md#actions-no-mode-auto-approves)68* `permissionMode: 'bypassPermissions'`: o texto do aviso começa com `canUseTool will not be invoked: permissionMode 'bypassPermissions'`. As chamadas de ferramenta são aprovadas antes de `canUseTool` ser consultado, então seu callback é executado apenas para algumas chamadas, como as chamadas listadas em [Modo bypass permissions](#bypass-permissions-mode-bypasspermissions). Para verificar também as chamadas aprovadas, coloque as verificações do seu callback em um [hook `PreToolUse`](https://code.claude.com/docs/pt/agent-sdk/hooks)

61* Cada entrada `allowedTools` simples como `"Read"`, que aprova automaticamente essa ferramenta inteira antes do callback ser consultado, exceto pelas [ações que nenhum modo aprova automaticamente](https://code.claude.com/docs/pt/permission-modes.md#actions-no-mode-auto-approves) e pelas [leituras de caminhos de rede](https://code.claude.com/docs/pt/permissions.md#network-paths)69* Uma entrada `allowedTools` que é apenas um nome de ferramenta, como `"Read"`: o aviso lista cada entrada desse tipo após `canUseTool will not be invoked for:`. Chamadas a uma ferramenta listada são aprovadas antes de `canUseTool` ser consultado, exceto pelas [chamadas que uma regra de permissão nunca aprova](#calls-an-allow-rule-never-approves). Para que seu callback seja executado para as chamadas de uma ferramenta listada que precisam de aprovação, remova a entrada dessa ferramenta de `allowedTools`

62 70 

63Entradas com um especificador como `Bash(ls *)` e o modo `acceptEdits` não o acionam, e regras de permissão provenientes de arquivos de configuração não são visíveis para a verificação.71Entradas com um especificador como `Bash(ls *)` e o modo `acceptEdits` não o acionam, e regras de permissão provenientes de arquivos de configuração não são visíveis para a verificação.

64 72 

65Ouça com `process.on('warning', ...)` e corresponda o código para registrá-lo ou suprimi-lo. Para controlar cada chamada de ferramenta independentemente do modo e das regras, use um [hook `PreToolUse`](https://code.claude.com/docs/pt/agent-sdk/hooks).73O aviso não bloqueia nenhuma chamada nem altera nenhuma opção. Se seu callback já recebe todas as chamadas que você deseja verificar, deixe sua configuração como está. Para registrar o aviso em log, ouça com `process.on('warning', ...)` e corresponda ao código `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED`.

66 74 

67Esta página se concentra em **regras de permissão e negação** e **modos de permissão**. Para as outras etapas:75Esta página se concentra em **regras de permissão e negação** e **modos de permissão**. Para as outras etapas:

68 76 


90>98>

91> **Ferramentas aprovadas automaticamente nunca chegam a `canUseTool`.** Uma chamada de ferramenta aprovada em qualquer etapa anterior, por `acceptEdits` ou `bypassPermissions`, ou por uma regra de permissão, ignora seu callback `canUseTool`, portanto as verificações de permissão que você coloca lá são silenciosamente ignoradas para essa ferramenta.99> **Ferramentas aprovadas automaticamente nunca chegam a `canUseTool`.** Uma chamada de ferramenta aprovada em qualquer etapa anterior, por `acceptEdits` ou `bypassPermissions`, ou por uma regra de permissão, ignora seu callback `canUseTool`, portanto as verificações de permissão que você coloca lá são silenciosamente ignoradas para essa ferramenta.

92>100>

93> Nenhuma regra de permissão aprova automaticamente `AskUserQuestion`, ferramentas MCP marcadas [`_meta["anthropic/requiresUserInteraction"]`](https://code.claude.com/docs/pt/mcp#require-approval-for-a-specific-tool), ferramentas de conector [que sua organização definiu como `ask`](https://code.claude.com/docs/pt/mcp#organization-controls-on-connector-tools), ou [remoções de caminho crítico](https://code.claude.com/docs/pt/permission-modes.md#critical-paths) reconhecidas com `rm` e `rmdir`. No modo `dontAsk` Claude Code nega essas chamadas sem invocar o callback. Em outros modos os três primeiros chegam ao callback. A [tabela de modos de caminhos críticos](https://code.claude.com/docs/pt/permission-modes.md#critical-path-removals-in-each-permission-mode) lista o que cada modo faz com uma remoção de caminho crítico. A verificação que reconhece essas remoções [pode deixar passar alguns comandos](https://code.claude.com/docs/pt/permission-modes.md#critical-paths).101> Se chamadas a uma ferramenta em `allowed_tools` ainda chegarem ao seu callback `canUseTool`, ou forem negadas no modo `dontAsk`, verifique se são [leituras de caminhos de rede](https://code.claude.com/docs/pt/permissions.md#network-paths) ou se estão entre as chamadas a seguir. Nenhuma regra de permissão aprova essas chamadas. No modo `dontAsk`, que nunca exibe prompts, Claude Code as nega sem chamar `canUseTool`, e nos outros modos de permissão você as trata conforme indicado em cada item:

102>

103> * `AskUserQuestion`, ferramentas MCP marcadas [`_meta["anthropic/requiresUserInteraction"]`](https://code.claude.com/docs/pt/mcp#require-approval-for-a-specific-tool) e ferramentas de conector [que sua organização definiu como `ask`](https://code.claude.com/docs/pt/mcp#organization-controls-on-connector-tools): responda a elas no callback. [Lidar com perguntas de esclarecimento](https://code.claude.com/docs/pt/agent-sdk/user-input.md#handle-clarifying-questions) mostra como responder a `AskUserQuestion`, e uma chamada de conector chega com o motivo `Your organization requires approval for this tool`

104>

105> * Ferramentas personalizadas que sua aplicação marca como [`always_ask`](https://code.claude.com/docs/pt/agent-sdk/custom-tools#require-approval-for-specific-tools): decida a chamada no callback. Para impedir que essas chamadas cheguem, [altere a política no meio da sessão](https://code.claude.com/docs/pt/agent-sdk/typescript.md#mcpsdkserverconfigwithinstance). Nos modos `auto`, `plan` e `bypassPermissions`, a chamada pode, em vez disso, ser aprovada antes do callback, nos casos listados em [Modos de permissão que podem aprovar uma chamada `always_ask`](https://code.claude.com/docs/pt/agent-sdk/typescript#permission-modes-that-can-approve-an-always_ask-call)

94>106>

95> A cobertura depende da forma da entrada: um nome simples como `Read` ou `mcp__github__get_issue` aprova automaticamente todas as chamadas a essa ferramenta, exceto essas exceções e [leituras de caminhos de rede](https://code.claude.com/docs/pt/permissions.md#network-paths), enquanto uma regra com escopo como `Bash(npm test *)` aprova automaticamente apenas chamadas correspondentes, e outras chamadas `Bash` que precisam de aprovação ainda passam para o callback. Para verificações que devem ser executadas em todas as chamadas de ferramenta, use um [hook `PreToolUse`](https://code.claude.com/docs/pt/agent-sdk/hooks): hooks são executados antes de qualquer outra etapa, e uma negação de hook se aplica mesmo no modo `bypassPermissions`.107> * [Remoções de caminho crítico](https://code.claude.com/docs/pt/permission-modes.md#critical-paths) reconhecidas com `rm` e `rmdir`: nos modos `default`, `acceptEdits` e `bypassPermissions`, permita ou negue a remoção no callback, onde [`decisionReason`](https://code.claude.com/docs/pt/agent-sdk/typescript#canusetool) começa com `Dangerous rm`. Para os modos `auto` e `plan`, veja [Remoções de caminho crítico em cada modo de permissão](https://code.claude.com/docs/pt/permission-modes.md#critical-path-removals-in-each-permission-mode). A verificação que reconhece essas remoções [pode deixar passar alguns comandos](https://code.claude.com/docs/pt/permission-modes.md#critical-paths)

108>

109> * **Nome simples**: uma entrada como `Read` ou `mcp__github__get_issue` aprova automaticamente todas as chamadas a essa ferramenta, exceto as [ações que nenhum modo aprova automaticamente](https://code.claude.com/docs/pt/permission-modes.md#actions-no-mode-auto-approves) e as [leituras de caminhos de rede](https://code.claude.com/docs/pt/permissions.md#network-paths).

110>

111> * **Regra com escopo**: uma entrada como `Bash(npm test *)` aprova automaticamente apenas chamadas correspondentes, e outras chamadas `Bash` que precisam de aprovação ainda passam para o callback.

112>

113> Para verificações que devem ser executadas em todas as chamadas de ferramenta, use um [hook `PreToolUse`](https://code.claude.com/docs/pt/agent-sdk/hooks): hooks são executados antes de qualquer outra etapa, e uma negação de hook se aplica mesmo no modo `bypassPermissions`.

96 114 

97Para um agente bloqueado, combine `allowedTools` com `permissionMode: "dontAsk"`:115Para um agente bloqueado, combine `allowedTools` com `permissionMode: "dontAsk"`:

98 116 


103};121};

104```122```

105 123 

106As ferramentas listadas são aprovadas, exceto pelas [ações que nenhum modo aprova automaticamente](https://code.claude.com/docs/pt/permission-modes.md#actions-no-mode-auto-approves) e pelas [leituras de caminhos de rede](https://code.claude.com/docs/pt/permissions.md#network-paths). Todas as outras chamadas que exibiriam um prompt são negadas em vez disso, embora um [mod](https://code.claude.com/docs/pt/plugins/mods/overview.md) que você instalou ainda possa aprovar [algumas dessas chamadas](https://code.claude.com/docs/pt/permissions.md#precedence-among-rules-hooks-and-mods).124As chamadas listadas de `Read`, `Glob` e `Grep` são aprovadas, exceto pelas [ações que nenhum modo aprova automaticamente](https://code.claude.com/docs/pt/permission-modes.md#actions-no-mode-auto-approves) e pelas [leituras de caminhos de rede](https://code.claude.com/docs/pt/permissions.md#network-paths). Todas as outras chamadas que exibiriam um prompt são negadas em vez disso, embora um [mod](https://code.claude.com/docs/pt/plugins/mods/overview.md) que você instalou ainda possa aprovar [algumas dessas chamadas](https://code.claude.com/docs/pt/permissions.md#precedence-among-rules-hooks-and-mods).

107 125 

108Chamadas que não precisam de aprovação no modo `default` são executadas independentemente de você listá-las. Elas incluem [comandos Bash somente leitura](https://code.claude.com/docs/pt/permissions.md#read-only-commands), ferramentas como `Agent` que não solicitam aprovação antes de executar, e leituras de arquivo dentro de seus diretórios de trabalho. Para remover uma ferramenta completamente da requisição, adicione seu nome simples a `disallowedTools`.126Chamadas que não precisam de aprovação no modo `default` são executadas independentemente de você listá-las. Elas incluem [comandos Bash somente leitura](https://code.claude.com/docs/pt/permissions.md#read-only-commands), ferramentas como `Agent` que não solicitam aprovação antes de executar, e leituras de arquivo dentro de seus diretórios de trabalho. Para ocultar completamente uma ferramenta integrada de Claude em vez de negar suas chamadas, adicione seu nome simples a `disallowedTools`.

109 127 

110> [!WARNING]128> [!WARNING]

111>129>


128| `default` | Comportamento de permissão padrão | Sem aprovações automáticas baseadas em modo; chamadas que precisam de aprovação e não correspondem a nenhuma regra de permissão acionam seu callback `canUseTool` |146| `default` | Comportamento de permissão padrão | Sem aprovações automáticas baseadas em modo; chamadas que precisam de aprovação e não correspondem a nenhuma regra de permissão acionam seu callback `canUseTool` |

129| `dontAsk` | Negar em vez de solicitar | Qualquer chamada que de outra forma solicitaria é negada sem chamar `canUseTool`, embora um [mod](https://code.claude.com/docs/pt/plugins/mods/overview.md) que você instalou ainda possa aprovar [algumas dessas chamadas](https://code.claude.com/docs/pt/permissions.md#precedence-among-rules-hooks-and-mods). Chamadas aprovadas por `allowed_tools` ou por regras de permissão em `settings.json` são executadas, assim como chamadas que não precisam de aprovação no modo `default`. Algumas chamadas, como [leituras de caminhos de rede](https://code.claude.com/docs/pt/permissions.md#network-paths), são negadas mesmo quando `allowed_tools` ou uma regra de permissão corresponde a elas. Para a lista, consulte [Modo não perguntar](#don’t-ask-mode-dontask) |147| `dontAsk` | Negar em vez de solicitar | Qualquer chamada que de outra forma solicitaria é negada sem chamar `canUseTool`, embora um [mod](https://code.claude.com/docs/pt/plugins/mods/overview.md) que você instalou ainda possa aprovar [algumas dessas chamadas](https://code.claude.com/docs/pt/permissions.md#precedence-among-rules-hooks-and-mods). Chamadas aprovadas por `allowed_tools` ou por regras de permissão em `settings.json` são executadas, assim como chamadas que não precisam de aprovação no modo `default`. Algumas chamadas, como [leituras de caminhos de rede](https://code.claude.com/docs/pt/permissions.md#network-paths), são negadas mesmo quando `allowed_tools` ou uma regra de permissão corresponde a elas. Para a lista, consulte [Modo não perguntar](#don’t-ask-mode-dontask) |

130| `acceptEdits` | Aceitar automaticamente edições de arquivo | Edições de arquivo e [operações do sistema de arquivos](#accept-edits-mode-acceptedits) (`mkdir`, `rm`, `mv`, etc.) são automaticamente aprovadas |148| `acceptEdits` | Aceitar automaticamente edições de arquivo | Edições de arquivo e [operações do sistema de arquivos](#accept-edits-mode-acceptedits) (`mkdir`, `rm`, `mv`, etc.) são automaticamente aprovadas |

131| `bypassPermissions` | Contornar verificações de permissão | As ferramentas são executadas sem prompts de permissão, exceto pelas [ações que nenhum modo aprova automaticamente](https://code.claude.com/docs/pt/permission-modes.md#actions-no-mode-auto-approves). Use com cuidado |149| `bypassPermissions` | Contornar verificações de permissão | As ferramentas são executadas sem prompts de permissão, exceto pelas [ações que nenhum modo aprova automaticamente](https://code.claude.com/docs/pt/permission-modes.md#actions-no-mode-auto-approves) e, fora de uma [sessão na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md), ferramentas personalizadas que sua aplicação [marca como `always_ask`](https://code.claude.com/docs/pt/agent-sdk/custom-tools#require-approval-for-specific-tools). Use com cuidado |

132| `plan` | Modo de planejamento | Claude explora e planeja sem editar seus arquivos de origem; edições de arquivo nunca são aprovadas automaticamente e solicitam através de seu callback `canUseTool` |150| `plan` | Modo de planejamento | Claude explora e planeja sem editar seus arquivos de origem; edições de arquivo nunca são aprovadas automaticamente e solicitam através de seu callback `canUseTool` |

133| `auto` | Aprovações classificadas pelo modelo | Um classificador de modelo revisa ações como comandos shell e solicitações de rede, permitindo ou bloqueando cada uma que revisa. Consulte [Modo Auto](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode) para disponibilidade e a ordem de decisão |151| `auto` | Aprovações classificadas pelo modelo | Um classificador de modelo revisa ações como comandos shell e solicitações de rede, permitindo ou bloqueando cada uma que revisa. Consulte [Modo Auto](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode) para disponibilidade e a ordem de decisão |

134 152 


256* Trabalha em um caminho fora desse escopo274* Trabalha em um caminho fora desse escopo

257* Escreve em um caminho protegido275* Escreve em um caminho protegido

258* Remove com `rm` ou `rmdir` um caminho que Claude Code reconhece como um [caminho crítico](https://code.claude.com/docs/pt/permission-modes.md#critical-paths)276* Remove com `rm` ou `rmdir` um caminho que Claude Code reconhece como um [caminho crítico](https://code.claude.com/docs/pt/permission-modes.md#critical-paths)

277* Executa [`touch`](https://code.claude.com/docs/pt/permission-modes#auto-approve-file-edits-with-acceptedits-mode) com, por exemplo, uma opção, um glob ou um prefixo `timeout 5` ou `LANG=C`

259 278 

260**Use quando:** você confia nas edições de Claude e deseja iteração mais rápida, como durante prototipagem ou ao trabalhar em um diretório isolado.279**Use quando:** você confia nas edições de Claude e deseja iteração mais rápida, como durante prototipagem ou ao trabalhar em um diretório isolado.

261 280 


263 282 

264Converte qualquer prompt de permissão em uma negação, sem chamar `canUseTool`, embora um [mod](https://code.claude.com/docs/pt/plugins/mods/overview.md) que você instalou ainda possa aprovar [algumas dessas chamadas](https://code.claude.com/docs/pt/permissions.md#precedence-among-rules-hooks-and-mods). Ferramentas pré-aprovadas por `allowed_tools`, regras de permissão em `settings.json` ou um hook são executadas normalmente. Chamadas que não precisam de aprovação no modo `default` também são executadas, como leituras de arquivo dentro de seus diretórios de trabalho e chamadas para `Agent`.283Converte qualquer prompt de permissão em uma negação, sem chamar `canUseTool`, embora um [mod](https://code.claude.com/docs/pt/plugins/mods/overview.md) que você instalou ainda possa aprovar [algumas dessas chamadas](https://code.claude.com/docs/pt/permissions.md#precedence-among-rules-hooks-and-mods). Ferramentas pré-aprovadas por `allowed_tools`, regras de permissão em `settings.json` ou um hook são executadas normalmente. Chamadas que não precisam de aprovação no modo `default` também são executadas, como leituras de arquivo dentro de seus diretórios de trabalho e chamadas para `Agent`.

265 284 

266Ferramentas de conector [que sua organização definiu como `ask`](https://code.claude.com/docs/pt/mcp#organization-controls-on-connector-tools), ferramentas que exigem interação do usuário, [leituras de caminhos de rede](https://code.claude.com/docs/pt/permissions.md#network-paths) e [remoções de caminhos críticos](https://code.claude.com/docs/pt/permission-modes.md#critical-paths) reconhecidas são negadas mesmo quando uma regra de permissão corresponde. Uma permissão de hook `PreToolUse` também não libera uma remoção de caminho crítico reconhecida nem uma leitura de um caminho de rede. A verificação que reconhece essas remoções [pode deixar passar alguns comandos](https://code.claude.com/docs/pt/permission-modes.md#critical-paths).285Estas chamadas são negadas mesmo quando uma regra de permissão corresponde:

286 

287* Ferramentas de conector [que sua organização definiu como `ask`](https://code.claude.com/docs/pt/mcp#organization-controls-on-connector-tools)

288* Ferramentas que exigem interação do usuário, como `AskUserQuestion` e ferramentas MCP cujo servidor define [`_meta["anthropic/requiresUserInteraction"]`](https://code.claude.com/docs/pt/mcp#require-approval-for-a-specific-tool)

289* Ferramentas personalizadas cuja `permission_policy` sua aplicação define como [`always_ask`](https://code.claude.com/docs/pt/agent-sdk/custom-tools#require-approval-for-specific-tools)

290* [Leituras de caminhos de rede](https://code.claude.com/docs/pt/permissions.md#network-paths)

291* [Remoções de caminhos críticos](https://code.claude.com/docs/pt/permission-modes.md#critical-paths) reconhecidas

292 

293Se seu hook `PreToolUse` retornar `allow` para uma remoção de caminho crítico reconhecida, uma leitura de um caminho de rede ou uma chamada a uma ferramenta marcada como `always_ask`, a chamada ainda é negada. A verificação que reconhece essas remoções [pode deixar passar alguns comandos](https://code.claude.com/docs/pt/permission-modes.md#critical-paths).

267 294 

268**Use quando:** você deseja uma superfície de ferramenta fixa e explícita para um agente sem interface e prefere uma negação definitiva em vez de depender silenciosamente de `canUseTool` estar ausente.295**Use quando:** você deseja uma superfície de ferramenta fixa e explícita para um agente sem interface e prefere uma negação definitiva em vez de depender silenciosamente de `canUseTool` estar ausente.

269 296 

270#### Modo contornar permissões (`bypassPermissions`)297#### Modo contornar permissões (`bypassPermissions`)

271 298 

272Aprova automaticamente usos de ferramentas sem solicitar, exceto os casos listados no aviso abaixo. Hooks ainda são executados e podem bloquear operações se necessário. No Linux e macOS, Claude Code recusa iniciar neste modo como root ou sob `sudo` fora de uma [sandbox reconhecida](https://code.claude.com/docs/pt/permission-modes.md#skip-all-checks-with-bypasspermissions-mode), e a consulta falha antes da primeira volta.299Aprova automaticamente usos de ferramentas sem solicitar, exceto as [ações que nenhum modo aprova automaticamente](https://code.claude.com/docs/pt/permission-modes.md#actions-no-mode-auto-approves). Hooks ainda são executados e podem bloquear operações se necessário. No Linux e macOS, Claude Code recusa iniciar neste modo como root ou sob `sudo` fora de um [sandbox reconhecido](https://code.claude.com/docs/pt/permission-modes.md#skip-all-checks-with-bypasspermissions-mode), e a consulta falha antes do primeiro turno.

273 300 

274> [!WARNING]301> [!WARNING]

275>302>


278> `allowed_tools` não restringe este modo. Cada ferramenta é aprovada, não apenas as que você listou. Estes controles ainda se aplicam:305> `allowed_tools` não restringe este modo. Cada ferramenta é aprovada, não apenas as que você listou. Estes controles ainda se aplicam:

279>306>

280> * Regras de negação, regras explícitas `ask` e hooks são avaliados antes da verificação de modo e ainda podem bloquear uma ferramenta.307> * Regras de negação, regras explícitas `ask` e hooks são avaliados antes da verificação de modo e ainda podem bloquear uma ferramenta.

281> * Ferramentas de conector [que sua organização definiu como `ask`](https://code.claude.com/docs/pt/mcp#organization-controls-on-connector-tools), ferramentas que exigem interação do usuário e [remoções de caminhos críticos](https://code.claude.com/docs/pt/permission-modes.md#critical-paths) reconhecidas ainda caem para seu callback `canUseTool`. A verificação que reconhece essas remoções [pode deixar passar alguns comandos](https://code.claude.com/docs/pt/permission-modes.md#critical-paths).308> * Ferramentas de conector [que sua organização definiu como `ask`](https://code.claude.com/docs/pt/mcp#organization-controls-on-connector-tools), ferramentas que exigem interação do usuário e [remoções de caminhos críticos](https://code.claude.com/docs/pt/permission-modes.md#critical-paths) reconhecidas ainda caem para seu callback `canUseTool`. A verificação que reconhece essas remoções [pode deixar passar alguns comandos](https://code.claude.com/docs/pt/permission-modes.md#critical-paths). Fora de uma [sessão na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md), chamadas a ferramentas personalizadas que sua aplicação [marca como `always_ask`](https://code.claude.com/docs/pt/agent-sdk/custom-tools#require-approval-for-specific-tools) também caem para o callback.

282> * Os [salvaguardas de mensagens entre sessões](https://code.claude.com/docs/pt/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) ainda se aplicam.309> * Os [salvaguardas de mensagens entre sessões](https://code.claude.com/docs/pt/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) ainda se aplicam.

283 310 

284#### Modo plano (`plan`)311#### Modo plano (`plan`)

285 312 

286Claude explora a base de código e produz um plano sem editar seus arquivos de origem. Ferramentas somente leitura são executadas como fazem no modo de permissão `default`.313Claude explora a base de código e produz um plano sem editar seus arquivos de origem. Edições de arquivo nunca são aprovadas automaticamente no modo de planejamento, mesmo quando uma regra de permissão corresponde ou um hook `PreToolUse` retorna `allow`. Em vez disso, elas solicitam através de seu callback `canUseTool`.

287 314 

288Edições de arquivo nunca são aprovadas automaticamente no modo de planejamento, mesmo quando uma regra de permissão corresponde ou um hook `PreToolUse` retorna `allow`. Em vez disso, elas solicitam através de seu callback `canUseTool`. No Claude Code v2.1.212 ou posterior, comandos shell que modificam arquivos, como `touch` e `rm`, chegam ao seu callback `canUseTool` da mesma forma.315Enquanto o modo auto estiver disponível para a sessão, os comandos que Claude executa durante o planejamento não chegam ao seu callback por padrão, porque o modelo classificador que o [modo auto](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode) usa [os revisa em vez disso](https://code.claude.com/docs/pt/permission-modes.md#analyze-before-you-edit-with-plan-mode). Com essa revisão ativada, o classificador também pode aprovar chamadas somente leitura que de outra forma chegariam ao seu callback, como uma chamada `WebFetch` sem regra de permissão.

289 316 

290No SDK TypeScript, se você definir `allowDangerouslySkipPermissions: true` junto com `permissionMode: 'plan'`, edições de arquivo e comandos shell que modificam arquivos ainda chegam ao seu callback `canUseTool`. A opção permite que você alterne para `bypassPermissions` mais tarde com `setPermissionMode()`.317> [!NOTE]

318>

319> No SDK TypeScript, se você definir `allowDangerouslySkipPermissions: true` junto com `permissionMode: 'plan'`, edições de arquivo ainda chegam ao seu callback `canUseTool`. Para alternar mais tarde uma sessão que inicia no modo de planejamento para `bypassPermissions` com `setPermissionMode()`, você precisa ter `allowDangerouslySkipPermissions` definido desde o início.

291 320 

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

293 322 

Details

70>70>

71> O caminho deve apontar para o diretório raiz do plugin: o diretório pai de `skills/`, `agents/`, `hooks/`, `commands/`, ou `.claude-plugin/`.71> O caminho deve apontar para o diretório raiz do plugin: o diretório pai de `skills/`, `agents/`, `hooks/`, `commands/`, ou `.claude-plugin/`.

72 72 

73### Adicionar plugins a uma sessão em execução

74 

75No SDK TypeScript, chame [`reloadPlugins()`](https://code.claude.com/docs/pt/agent-sdk/typescript#load-more-plugin-folders-with-addplugins) no objeto `Query` que `query()` retornou e liste o diretório do plugin na opção `addPlugins` dessa chamada. Cada entrada de `addPlugins` é um objeto `{ type: "local", path }` com um `path` absoluto. Requer o TypeScript Agent SDK v0.3.301 ou posterior.

76 

77Neste exemplo, `q` é o objeto `Query` que `query()` retornou. O exemplo adiciona um diretório de plugin à sessão em execução e, depois que `reloadPlugins()` retorna, imprime o caminho de cada plugin na sessão:

78 

79```typescript theme={null}

80const result = await q.reloadPlugins({

81 addPlugins: [{ type: "local", path: "/home/user/plugins/another-plugin" }]

82});

83 

84console.log(result.plugins.map((plugin) => plugin.path));

85```

86 

87Se o plugin foi carregado, a lista impressa inclui `/home/user/plugins/another-plugin`. Se esse caminho estiver ausente da lista, ou se `reloadPlugins()` for rejeitado, consulte [Quando `reloadPlugins()` não carrega as pastas de `addPlugins`](https://code.claude.com/docs/pt/agent-sdk/typescript#when-reloadplugins-doesnt-load-the-addplugins-folders) para conhecer as causas.

88 

73## Verificando a instalação do plugin89## Verificando a instalação do plugin

74 90 

75Quando os plugins carregam com sucesso, eles aparecem na mensagem de inicialização do sistema. Você pode verificar que seus plugins estão disponíveis:91Quando os plugins carregam com sucesso, eles aparecem na mensagem de inicialização do sistema. Você pode verificar que seus plugins estão disponíveis:

Details

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

201| `title` | `string` | `undefined` | Título legível para a ferramenta |201| `title` | `string` | `undefined` | Título legível para a ferramenta |

202| `readOnlyHint` | `boolean` | `false` | Se `true`, a ferramenta não modifica seu ambiente |202| `readOnlyHint` | `boolean` | `false` | Se `true`, a ferramenta não modifica seu ambiente |

203| `destructiveHint` | `boolean` | `true` | Se `true`, a ferramenta pode realizar atualizações destrutivas (apenas significativo quando `readOnlyHint` é `false`) |203| `destructiveHint` | `boolean` | `true` | Se `true`, a ferramenta pode realizar atualizações destrutivas. Defina `destructiveHint: true` explicitamente em qualquer ferramenta que você marcar como [`always_ask`](#mcpservertoolpolicy), caso contrário o classificador do modo auto pode aprovar as chamadas dessa ferramenta no lugar do seu callback `canUseTool`. Deixar `destructiveHint` sem definir não é suficiente, porque o Claude Code trata um `destructiveHint` não definido como `false` ao lidar com chamadas `always_ask`, embora o padrão da especificação MCP seja `true` |

204| `idempotentHint` | `boolean` | `false` | Se `true`, chamadas repetidas com os mesmos argumentos não têm efeito adicional (apenas significativo quando `readOnlyHint` é `false`) |204| `idempotentHint` | `boolean` | `false` | Se `true`, chamadas repetidas com os mesmos argumentos não têm efeito adicional (apenas significativo quando `readOnlyHint` é `false`) |

205| `openWorldHint` | `boolean` | `true` | Se `true`, a ferramenta interage com entidades externas (por exemplo, busca na web). Se `false`, o domínio da ferramenta é fechado (por exemplo, uma ferramenta de memória) |205| `openWorldHint` | `boolean` | `true` | Se `true`, a ferramenta interage com entidades externas (por exemplo, busca na web). Se `false`, o domínio da ferramenta é fechado (por exemplo, uma ferramenta de memória) |

206 206 


630 ): Promise<SDKControlReadFileResponse | null>;630 ): Promise<SDKControlReadFileResponse | null>;

631 reloadPlugins(options?: {631 reloadPlugins(options?: {

632 holdOnCacheImpact?: boolean;632 holdOnCacheImpact?: boolean;

633 addPlugins?: SdkPluginConfig[];

633 }): Promise<SDKControlReloadPluginsResponse>;634 }): Promise<SDKControlReloadPluginsResponse>;

634 reloadSkills(): Promise<SDKControlReloadSkillsResponse>;635 reloadSkills(): Promise<SDKControlReloadSkillsResponse>;

635 reloadOutputStyles(): Promise<SDKControlReloadOutputStylesResponse>;636 reloadOutputStyles(): Promise<SDKControlReloadOutputStylesResponse>;


669| `mcpServerStatus()` | Retorna o status dos servidores MCP conectados como [`McpServerStatus`](#mcpserverstatus)`[]` |670| `mcpServerStatus()` | Retorna o status dos servidores MCP conectados como [`McpServerStatus`](#mcpserverstatus)`[]` |

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

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

672| `reloadPlugins(options?)` | Recarrega os plugins do disco, para que plugins que você instala ou edita no meio da sessão cheguem à sessão em execução. É resolvido com um [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) listando os comandos, subagentes, plugins e o status dos servidores MCP da sessão. Requer o Agent SDK v0.2.85 ou posterior. A [opção `holdOnCacheImpact`](#sdkcontrolreloadpluginsresponse) requer o Agent SDK v0.3.268 ou posterior |673| `reloadPlugins(options?)` | Recarrega os plugins do disco, para que plugins que você instala ou edita no meio da sessão cheguem à sessão em execução. Resolve com um [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) listando os comandos, subagentes, plugins e o status dos servidores MCP da sessão. Requer Agent SDK v0.2.85 ou posterior. A [opção `holdOnCacheImpact`](#sdkcontrolreloadpluginsresponse) requer Agent SDK v0.3.268 ou posterior. A [opção `addPlugins`](#load-more-plugin-folders-with-addplugins) requer Agent SDK v0.3.301 ou posterior |

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

674| `reloadOutputStyles()` | Relê os [estilos de saída](https://code.claude.com/docs/pt/output-styles.md) do disco, para que um arquivo de estilo que você adiciona ou edita no meio da sessão fique disponível para a sessão em execução. É resolvido com um [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse) listando os nomes de estilos disponíveis após o recarregamento. Requer o Agent SDK v0.3.261 ou posterior |675| `reloadOutputStyles()` | Relê os [estilos de saída](https://code.claude.com/docs/pt/output-styles.md) do disco, para que um arquivo de estilo que você adiciona ou edita no meio da sessão fique disponível para a sessão em execução. É resolvido com um [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse) listando os nomes de estilos disponíveis após o recarregamento. Requer o Agent SDK v0.3.261 ou posterior |

675| `seedReadState(path, mtime)` | Marca um arquivo como já lido para que um Edit posterior não falhe com `File has not been read yet`. Consulte [`seedReadState()`](#seedreadstate). Requer o TypeScript SDK v0.2.83 ou posterior |676| `seedReadState(path, mtime)` | Marca um arquivo como já lido para que um Edit posterior não falhe com `File has not been read yet`. Consulte [`seedReadState()`](#seedreadstate). Requer o TypeScript SDK v0.2.83 ou posterior |


1135 1136 

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

1137 1138 

1139#### Carregar mais pastas de plugins com `addPlugins`

1140 

1141Para carregar pastas de plugins que não estavam na opção [`plugins`](#options) na inicialização, passe-as para `reloadPlugins()` como `addPlugins`, uma lista de entradas [`SdkPluginConfig`](#sdkpluginconfig) cujo `path` é absoluto. O Claude Code carrega as novas pastas e recarrega os plugins existentes da sessão em uma única passagem. Os servidores MCP de cada plugin adicionado também se conectam, a menos que você defina [`skipMcpDiscovery`](#sdkpluginconfig) na entrada dessa pasta. Requer o Agent SDK v0.3.301 ou posterior e o Claude Code v2.1.301 ou posterior.

1142 

1143Este exemplo adiciona uma pasta a uma query `q` em execução e imprime o caminho de instalação de cada plugin que a sessão carregou quando a chamada retorna:

1144 

1145```typescript theme={null}

1146const result = await q.reloadPlugins({

1147 addPlugins: [{ type: "local", path: "/opt/my-app/plugins/reports" }]

1148});

1149 

1150console.log(result.plugins.map((plugin) => plugin.path));

1151```

1152 

1153Se a pasta foi carregada, a lista impressa inclui `/opt/my-app/plugins/reports`, e os comandos e subagentes do plugin aparecem em `result.commands` e `result.agents`.

1154 

1155Uma pasta adicionada permanece parte da sessão. Quando você chama `reloadPlugins()` novamente, o Claude Code a recarrega com os outros plugins, e você não a passa em `addPlugins` de novo.

1156 

1157##### Quando `reloadPlugins()` não carrega as pastas de `addPlugins`

1158 

1159Se `reloadPlugins()` for rejeitada, nenhuma das pastas de `addPlugins` é adicionada, então passe-as em `addPlugins` novamente ao tentar novamente. Quando a rejeição tem uma das causas a seguir, a sessão mantém os plugins que já tinha:

1160 

1161* **Um `path` relativo ou uma entrada malformada**: a mensagem de erro diz `add_plugins must be a list of { type: "local", path } entries with absolute paths`. O Claude Code recusa a lista inteira por causa de uma única entrada inválida, então passe cada entrada como `{ type: "local", path }` com um `path` absoluto

1162* **Um administrador ativou [`disableSideloadFlags`](https://code.claude.com/docs/pt/settings-reference#disablesideloadflags) nas suas configurações gerenciadas**: a mensagem diz `reload_plugins add_plugins is disabled by managed settings (disableSideloadFlags)`. Para carregar a pasta, peça a esse administrador que remova a configuração

1163* **O [sandbox](https://code.claude.com/docs/pt/sandboxing.md) não pôde ser reconstruído**: com o [sandboxing](#sandboxsettings) ativado, o Claude Code reconstrói a configuração do sandbox para que comandos de shell em sandbox não possam gravar nas pastas que você adiciona. A mensagem diz `the sandbox could not be rebuilt to keep shell commands out of this folder`. Verifique se as suas [configurações de sandbox](#sandboxsettings) ainda formam uma configuração válida

1164 

1165Se você passar `holdOnCacheImpact` e a chamada for resolvida com [`held: true`](#sdkcontrolreloadpluginsresponse), as pastas de `addPlugins` não são adicionadas. Para adicioná-las mesmo assim, chame `reloadPlugins()` novamente com a mesma lista `addPlugins` e sem `holdOnCacheImpact`.

1166 

1167Quando a chamada é resolvida sem `held: true` e uma pasta ainda está ausente de `result.plugins`, comece verificando estas causas:

1168 

1169* **A pasta não existe ou o plugin dela falhou ao carregar**: `result.error_count` é `1` ou maior. Mesmo assim, a pasta permanece parte da sessão. Depois de corrigir a pasta, chame `reloadPlugins()` novamente para carregá-la, desta vez sem listá-la em `addPlugins`

1170* **O executável do Claude Code é anterior à v2.1.301**: um executável anterior à v2.1.301 ignora `addPlugins` e recarrega somente os plugins que a sessão já tinha. Verifique `claude_code_version` na [mensagem de inicialização](#sdksystemmessage) e execute um executável na v2.1.301 ou posterior

1171 

1138### `SDKControlReloadSkillsResponse`1172### `SDKControlReloadSkillsResponse`

1139 1173 

1140Tipo de retorno de [`reloadSkills()`](#query-object).1174Tipo de retorno de [`reloadSkills()`](#query-object).


1430 1464 

1431#### `McpSdkServerConfigWithInstance`1465#### `McpSdkServerConfigWithInstance`

1432 1466 

1467A configuração para um servidor MCP em processo, um que [`createSdkMcpServer()`](#createsdkmcpserver) cria e que é executado dentro do processo da sua aplicação. É o objeto que `createSdkMcpServer()` retorna, mais uma lista opcional `tools` de entradas [`McpServerToolPolicy`](#mcpservertoolpolicy) que você mesmo adiciona. Para exigir aprovação para chamadas a uma das ferramentas do servidor, ou para negá-las, adicione uma entrada que nomeie a ferramenta.

1468 

1433```typescript theme={null}1469```typescript theme={null}

1434type McpSdkServerConfigWithInstance = {1470type McpSdkServerConfigWithInstance = {

1435 type: "sdk";1471 type: "sdk";

1436 name: string;1472 name: string;

1437 timeout?: number;1473 timeout?: number;

1474 tools?: McpServerToolPolicy[];

1438 instance: McpServer;1475 instance: McpServer;

1439};1476};

1440```1477```

1441 1478 

1479Para definir uma política, espalhe o objeto que `createSdkMcpServer()` retorna em um novo objeto em `mcpServers` e adicione a lista `tools` a esse novo objeto. A opção `tools` do próprio `createSdkMcpServer()` é uma lista diferente, que contém as definições das ferramentas e não aceita entradas de política. A lista de políticas requer o Agent SDK v0.3.301 ou posterior, e [`McpServerToolPolicy`](#mcpservertoolpolicy) descreve o que cada valor de `permission_policy` faz.

1480 

1481Este exemplo pré-aprova todas as ferramentas do servidor `records` com um curinga em `allowedTools` e, em seguida, marca `delete_record` como `always_ask` para que as chamadas a ela cheguem a `canUseTool` mesmo assim. Com a anotação `destructiveHint: true`, a chamada ainda chega ao callback se a sessão for executada no modo `auto`, em que o [classificador](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode) do modo auto poderia aprová-la de outra forma.

1482 

1483```typescript theme={null}

1484import { query, tool, createSdkMcpServer } from "@anthropic-ai/claude-agent-sdk";

1485import { z } from "zod";

1486 

1487const deleteRecord = tool(

1488 "delete_record",

1489 "Delete a customer record by ID",

1490 { id: z.string() },

1491 async ({ id }) => ({ content: [{ type: "text", text: `Deleted record ${id}` }] }),

1492 { annotations: { destructiveHint: true } }

1493);

1494 

1495const records = createSdkMcpServer({ name: "records", tools: [deleteRecord] });

1496 

1497for await (const message of query({

1498 prompt: "Delete customer record 42",

1499 options: {

1500 mcpServers: {

1501 // Spread the returned config and add the policy list beside it

1502 records: {

1503 ...records,

1504 tools: [{ name: "delete_record", permission_policy: "always_ask" as const }]

1505 }

1506 },

1507 allowedTools: ["mcp__records__*"],

1508 canUseTool: async (toolName, input) => {

1509 console.log(`Approval requested for ${toolName}`);

1510 return { behavior: "allow", updatedInput: input };

1511 }

1512 }

1513})) {

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

1515 console.log(message.result);

1516 }

1517}

1518```

1519 

1520Quando o Claude chama a ferramenta, o script imprime `Approval requested for mcp__records__delete_record` antes de a ferramenta `delete_record` ser executada, embora a entrada de `allowedTools` fosse, de outra forma, aprovar a chamada.

1521 

1522Para alterar ou remover a política de uma ferramenta enquanto a sessão está em execução, passe a configuração do servidor com um novo valor de `tools` para [`setMcpServers()`](#mcpsetserversresult). O valor de `tools` que você passa entra em vigor a partir da próxima chamada do Claude às ferramentas desse servidor:

1523 

1524* **Uma lista com entradas**: as entradas substituem as políticas atuais

1525* **Uma lista vazia**: todas as políticas do servidor são removidas

1526* **Nenhuma chave `tools`**: as políticas atuais permanecem

1527 

1528Inclua nessa chamada os seus outros servidores em processo e qualquer servidor que uma chamada anterior de `setMcpServers()` tenha adicionado, caso contrário a chamada os desconecta.

1529 

1530#### `McpServerToolPolicy`

1531 

1532Uma entrada na lista `tools` de um [`McpSdkServerConfigWithInstance`](#mcpsdkserverconfigwithinstance), que nomeia uma das ferramentas do servidor e define a política de permissão para chamadas a essa ferramenta. A lista requer o Agent SDK v0.3.301 ou posterior e o Claude Code v2.1.301 ou posterior. Um executável mais antigo do Claude Code, como um executável para o qual você aponta `pathToClaudeCodeExecutable`, ignora a lista. Nesse caso, `always_ask` e `always_deny` não são aplicados, e cada chamada passa pelo [fluxo de permissões](https://code.claude.com/docs/pt/agent-sdk/permissions.md#how-permissions-are-evaluated).

1533 

1534```typescript theme={null}

1535type McpServerToolPolicy = {

1536 name: string;

1537 permission_policy?: "always_allow" | "always_ask" | "always_deny";

1538 org_max_permission?: "allow" | "ask" | "blocked";

1539};

1540```

1541 

1542| Campo | Tipo | Descrição |

1543| :- | :- | :- |

1544| `name` | `string` | O nome simples da ferramenta, como passado para [`tool()`](#tool), sem o prefixo `mcp__<server>__` |

1545| `permission_policy` | `'always_allow' \| 'always_ask' \| 'always_deny'` | A política de aprovação para as chamadas da ferramenta, [`always_ask` ou `always_deny`](#permission-policy-values). `always_allow` é ignorado em um servidor em processo: para pré-aprovar uma ferramenta, liste-a em [`allowedTools`](#options) em vez disso |

1546| `org_max_permission` | `'allow' \| 'ask' \| 'blocked'` | Um limite máximo por ferramenta que um administrador da organização define. Ignorado em um servidor em processo, então deixe-o sem definir |

1547 

1548##### Valores de `permission_policy`

1549 

1550Escolha `always_ask` para aprovar cada chamada você mesmo, ou `always_deny` para bloquear a ferramenta completamente:

1551 

1552* **`always_ask`**: cada chamada à ferramenta [precisa de aprovação](https://code.claude.com/docs/pt/agent-sdk/permissions.md#how-permissions-are-evaluated), mesmo que uma entrada de `allowedTools` ou uma regra de permissão a cubra. A chamada vai para o seu callback `canUseTool` ou para a ferramenta [`permissionPromptToolName`](#options), a menos que seja resolvida antes. Um [mod](https://code.claude.com/docs/pt/plugins/mods/overview.md) em um plugin que você carrega [pode aprová-la antes](https://code.claude.com/docs/pt/permissions.md#precedence-among-rules-hooks-and-mods). Caso contrário, no modo `dontAsk` ela é negada, e nos [modos `auto`, `plan` e `bypassPermissions`](#permission-modes-that-can-approve-an-always_ask-call) ela pode ser aprovada antes de chegar ao seu callback

1553* **`always_deny`**: uma chamada à ferramenta [é negada](https://code.claude.com/docs/pt/agent-sdk/permissions.md#how-permissions-are-evaluated) em todos os modos de permissão, incluindo `bypassPermissions`, mas um mod em um plugin que você carrega [ainda pode aprová-la](https://code.claude.com/docs/pt/permissions.md#precedence-among-rules-hooks-and-mods)

1554 

1555Se você não passar nem `canUseTool` nem `permissionPromptToolName`, ou definir [`permissionPrompts`](#options) como `'none'`, uma chamada `always_ask` que não seja resolvida antes é negada, a menos que um [hook `PermissionRequest`](https://code.claude.com/docs/pt/hooks#permissionrequest) a permita.

1556 

1557##### Modos de permissão que podem aprovar uma chamada `always_ask`

1558 

1559Nos modos `auto`, `plan` e `bypassPermissions`, uma chamada a uma ferramenta marcada como [`always_ask`](#permission-policy-values) pode ser aprovada antes de chegar ao seu callback `canUseTool`. Encontre o modo da sua sessão nesta lista para ver quando essa aprovação acontece e o que definir para que a chamada chegue ao seu callback mesmo assim:

1560 

1561* **`auto`**: o [classificador](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode) do modo auto revisa a chamada e pode permiti-la. Para fazer com que todas as chamadas cheguem ao seu callback no modo `auto`, defina `destructiveHint: true` nas [anotações](#toolannotations) da ferramenta

1562* **`plan`**: enquanto o [modo auto estiver disponível](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode) para a sessão, as chamadas a uma ferramenta `always_ask` anotada com `readOnlyHint: true` vão para o classificador do modo auto, que pode permiti-las. As chamadas a outras ferramentas `always_ask` chegam ao seu callback. Para fazer com que as chamadas de uma ferramenta somente leitura também cheguem ao seu callback, adicione `destructiveHint: true` às anotações dessa ferramenta junto com `readOnlyHint: true`. Como alternativa, defina [`useAutoModeDuringPlan`](https://code.claude.com/docs/pt/settings-reference#useautomodeduringplan) como `false`, o que desativa o classificador durante o planejamento

1563* **`bypassPermissions`**: quando a variável de ambiente [`CLAUDE_CODE_REMOTE`](https://code.claude.com/docs/pt/env-vars#variables) é `true`, como acontece em uma [sessão na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md), a chamada é aprovada sem o seu callback, independentemente das anotações da ferramenta. Em qualquer outro lugar, a chamada chega ao seu callback. Para fazer com que ela chegue ao seu callback também em uma sessão na nuvem, execute a sessão no modo `default` ou `acceptEdits` em vez disso

1564 

1565Defina `destructiveHint` como `true` explicitamente nos modos `auto` e `plan`. Para chamadas `always_ask`, o Claude Code interpreta um `destructiveHint` não definido como `false`, embora o padrão listado em [`ToolAnnotations`](#toolannotations) seja `true`.

1566 

1442#### `McpClaudeAIProxyServerConfig`1567#### `McpClaudeAIProxyServerConfig`

1443 1568 

1444```typescript theme={null}1569```typescript theme={null}


1464| Campo | Tipo | Descrição |1589| Campo | Tipo | Descrição |

1465| :- | :- | :- |1590| :- | :- | :- |

1466| `type` | `'local'` | Deve ser `'local'` (atualmente apenas plugins locais são suportados) |1591| `type` | `'local'` | Deve ser `'local'` (atualmente apenas plugins locais são suportados) |

1467| `path` | `string` | Caminho absoluto ou relativo para o diretório do plugin |1592| `path` | `string` | Caminho para o diretório do plugin. Um caminho relativo é resolvido em relação à opção [`cwd`](#options) quando a sessão inicia. O caminho deve ser absoluto quando você carrega o plugin no meio da sessão com [`addPlugins`](#load-more-plugin-folders-with-addplugins) |

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

1469 1594 

1470**Exemplo:**1595**Exemplo:**


5076};5201};

5077```5202```

5078 5203 

5079`source` diz de onde a definição do servidor veio, com os mesmos valores e regra de confiança que o `source` de [`McpServerProvenance`](#mcpserverprovenance). O campo requer Agent SDK v0.3.274 ou posterior e está ausente em versões anteriores.5204Use `source` para decidir o quanto confiar em um servidor, e o `_meta` em cada entrada `tools` para encontrar um recurso de UI que o servidor anexou a essa ferramenta:

5205 

5206* **`source`**: de onde a definição do servidor veio, com os mesmos valores que `source` em [`McpServerProvenance`](#mcpserverprovenance). Baseie decisões de confiança em `source` em vez de em `name`, porque apenas seu próprio servidor em processo relata `sdk`, qualquer que seja o nome sob o qual qualquer outro servidor esteja registrado. Se você não reconhecer um valor de `source`, trate esse servidor como trata qualquer servidor cujo `source` não seja `sdk`. Requer Agent SDK v0.3.274 ou posterior

5207* **`_meta`**: o objeto `ui` e a string `ui/resourceUri` do `_meta` que o servidor declarou para a ferramenta. Claude Code retém todas as outras chaves de `_meta`. `ui/resourceUri` é uma grafia de nível superior mais antiga de `ui.resourceUri`. Quando o servidor anexa um [recurso de UI do MCP Apps](https://code.claude.com/docs/pt/mcp.md#reference-mcp-resources) à ferramenta, `ui.resourceUri` ou `ui/resourceUri` contém o URI `ui://` do recurso. Busque esse URI com [`readMcpResource()`](#query-object) e renderize o recurso em sua aplicação. Requer Agent SDK v0.3.280 ou posterior

5208 

5209Claude Code envia `_meta` apenas quando o array [`capabilities`](#sdksystemmessage) da mensagem `system` com subtipo `init` lista `mcp_tool_ui_meta_v1`. Você não ativa `mcp_tool_ui_meta_v1` por conta própria.

5210 

5211#### Quando o `_meta.ui` de uma ferramenta contém apenas `visibility`

5212 

5213Se seu servidor declara `ui.resourceUri` para uma ferramenta, mas o `_meta.ui` que sua aplicação recebe contém apenas `visibility`, o objeto `ui` que o servidor enviou falhou em uma das verificações do Claude Code. Claude Code verifica `ui` e `ui/resourceUri` separadamente, então uma chave pode chegar à sua aplicação quando a outra falha. Compare o `_meta` na resposta `tools/list` do seu servidor com as verificações de cada chave:

5214 

5215* **`ui`**: chega à sua aplicação inalterado, incluindo quaisquer membros além de `resourceUri` e `visibility`, se todas as três verificações forem aprovadas:

5216 

5217 * `resourceUri` está ausente, ou é uma string que começa com `ui://`

5218 * `visibility` está ausente, ou lista apenas `"model"` e `"app"`

5219 * O objeto inteiro tem no máximo 4.096 caracteres quando serializado como JSON

5220 

5221 Se qualquer uma das verificações falhar, sua aplicação recebe no máximo um `ui` cujo único membro é um array `visibility` com as entradas `"model"` e `"app"` que o servidor listou.

5222* **`ui/resourceUri`**: chega à sua aplicação se for uma string que começa com `ui://` e tem no máximo 4.096 caracteres. Caso contrário, Claude Code a descarta

5080 5223 

5081`_meta` em uma entrada `tools` carrega os membros MCP Apps de `_meta` dessa ferramenta, para que sua aplicação possa encontrar o recurso `ui://` para renderizar com [`readMcpResource()`](#query-object). Claude Code passa através do objeto `ui` e da string `ui/resourceUri` plana descontinuada, e retém todas as outras chaves. Dentro de `ui`, `resourceUri` é uma string `ui://` e `visibility` um array de `"model"` e `"app"` quando o servidor os define, e qualquer outro membro passa através inalterado. Claude Code descarta qualquer chave quando o valor é malformado, e omite `_meta` de uma ferramenta que não declara nenhum. O campo está presente apenas quando o [`capabilities`](#sdksystemmessage) da mensagem init incluem `mcp_tool_ui_meta_v1`, e requer TypeScript Agent SDK v0.3.280 ou posterior.5224Quando Claude Code fica sem nenhum membro `ui` e sem nenhuma string `ui/resourceUri` para enviar, a entrada `tools` não tem nenhum `_meta`.

5082 5225 

5083### `McpServerStatusConfig`5226### `McpServerStatusConfig`

5084 5227 


5313Quando você chama `setMcpServers()`, Claude Code aplica estas regras:5456Quando você chama `setMcpServers()`, Claude Code aplica estas regras:

5314 5457 

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

5316* **Servidores que a chamada nomeia**: Claude Code substitui um servidor stdio, HTTP ou SSE que uma chamada anterior de `setMcpServers()` adicionou apenas quando sua configuração difere da que você passou. Um servidor SDK em processo já registrado sob esse nome permanece como está, então, para trocar um, deixe-o de fora de uma chamada e adicione-o na seguinte.5459* **Servidores stdio, HTTP e SSE que uma chamada anterior de `setMcpServers()` adicionou**: fora de uma sessão na nuvem, um servidor que você nomeia novamente com uma configuração idêntica mantém sua conexão e suas ferramentas. Ele não aparece nem em `added` nem em `removed`. Se você passar uma configuração alterada, Claude Code reconecta o servidor usando essa configuração e o lista em `added`, não em `removed`.

5460* **Servidores stdio, HTTP e SSE que a chamada nomeia e que nenhuma chamada anterior adicionou**: fora de uma sessão na nuvem, Claude Code adiciona o servidor e o lista em `added`, ou em `errors` se recusar o servidor.

5461* **Servidores SDK em processo que a chamada nomeia**: um servidor já registrado por meio de `mcpServers` ou de uma chamada anterior mantém sua instância em execução e seu timeout. Se você passar uma [lista de políticas `tools`](#mcpsdkserverconfigwithinstance) para ele, mesmo vazia, você substitui suas políticas; caso contrário, elas permanecem. Para executar uma nova instância fora de uma sessão na nuvem, omita o servidor de uma chamada e nomeie-o na seguinte.

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

5318* **Servidores stdio, HTTP ou SSE que compartilham um nome com um servidor de um escopo de instalação MCP, como `.mcp.json`**: sob esse nome, a sessão usa as ferramentas do seu servidor em vez das do [servidor do escopo de instalação](https://code.claude.com/docs/pt/mcp.md#mcp-installation-scopes). Antes do Claude Code v2.1.305, Claude Code podia desconectar seu servidor e conectar o servidor do escopo de instalação quando sua aplicação [recarregava plugins](#query-object).5463* **Servidores stdio, HTTP ou SSE que compartilham um nome com um servidor de um escopo de instalação MCP, como `.mcp.json`**: sob esse nome, a sessão usa as ferramentas do seu servidor em vez das do [servidor do escopo de instalação](https://code.claude.com/docs/pt/mcp.md#mcp-installation-scopes). Antes do Claude Code v2.1.305, Claude Code podia desconectar seu servidor e conectar o servidor do escopo de instalação quando sua aplicação [recarregava plugins](#query-object).

5319 5464 


5800 5945 

5801As tipagens publicadas do SDK declaram `SDKConversationResetMessage` no Claude Code v2.1.203 e posterior. Antes de v2.1.203, `SDKMessage` referenciava o tipo sem declará-lo, então o estreitamento em `type === "conversation_reset"` falhou ao verificar o tipo quando `skipLibCheck` estava desativado.5946As tipagens publicadas do SDK declaram `SDKConversationResetMessage` no Claude Code v2.1.203 e posterior. Antes de v2.1.203, `SDKMessage` referenciava o tipo sem declará-lo, então o estreitamento em `type === "conversation_reset"` falhou ao verificar o tipo quando `skipLibCheck` estava desativado.

5802 5947 

5948### `BUILTIN_TOOL_NAMES` e `LEGACY_TOOL_NAME_ALIASES`

5949 

5950Use estas duas constantes para verificar nomes de ferramentas que os usuários da sua aplicação digitam. Ambas escrevem cada nome da forma como você o escreve em regras de permissão, matchers de hook e nas opções `tools` e `disallowedTools`. Importe-as de `@anthropic-ai/claude-agent-sdk` ou de `@anthropic-ai/claude-agent-sdk/core`. Elas requerem Agent SDK v0.3.301 ou posterior e estão em alfa.

5951 

5952As declarações de tipo do SDK dão a `BUILTIN_TOOL_NAMES` um tipo de tupla readonly e a `LEGACY_TOOL_NAME_ALIASES` um tipo de registro de string para string:

5953 

5954```typescript theme={null}

5955const BUILTIN_TOOL_NAMES: readonly ["Agent", /* ...more names... */ "Write"];

5956const LEGACY_TOOL_NAME_ALIASES: Readonly<Record<string, string>>;

5957```

5958 

5959* **`BUILTIN_TOOL_NAMES`**: nomes das ferramentas integradas do Claude Code em ordem alfabética, como `Agent`, `Bash` e `Read`. Nomes de ferramentas MCP não estão incluídos. Como o tipo é uma tupla de literais de string, `(typeof BUILTIN_TOOL_NAMES)[number]` fornece um tipo união dos nomes

5960* **`LEGACY_TOOL_NAME_ALIASES`**: nomes de ferramentas anteriores que regras de permissão, matchers de hook e as opções `tools` e `disallowedTools` ainda aceitam. Cada chave é um nome anterior e seu valor é o atual: por exemplo, `Task` mapeia para `Agent`, e `KillShell` e `KillBash` mapeiam para `TaskStop`

5961 

5962Você pode confirmar um nome com qualquer um de dois testes: `BUILTIN_TOOL_NAMES` o inclui, ou `Object.hasOwn(LEGACY_TOOL_NAME_ALIASES, name)` retorna `true`. Um nome que falha em ambos ainda pode ser válido, porque `BUILTIN_TOOL_NAMES` deixa de fora ferramentas MCP e algumas ferramentas integradas. Se você construir uma lista de negação a partir de `BUILTIN_TOOL_NAMES`, Claude ainda pode usar as ferramentas que a constante deixa de fora. Para negar todas as ferramentas, defina [`disallowedTools: ["*"]`](https://code.claude.com/docs/pt/agent-sdk/permissions#allow-and-deny-rules) em vez disso.

5963 

5964Encontrar um nome em `BUILTIN_TOOL_NAMES` não indica que a sessão tem essa ferramenta: `TodoWrite` está listada mesmo estando [desativada por padrão](https://code.claude.com/docs/pt/tools-reference.md). Para ver quais ferramentas uma sessão tem, leia o array `tools` de seu [`SDKSystemMessage`](#sdksystemmessage). Esse array inclui ferramentas MCP e lista a ferramenta Agent como `Task`, então mapeie cada nome por meio de `LEGACY_TOOL_NAME_ALIASES` antes de compará-lo com `BUILTIN_TOOL_NAMES`.

5965 

5803### `AbortError`5966### `AbortError`

5804 5967 

5805Classe de erro personalizada para operações de abort.5968Classe de erro personalizada para operações de abort.

agent-teams.md +1 −1

Details

188 188 

189### Atribuir e reivindicar tarefas189### Atribuir e reivindicar tarefas

190 190 

191A lista de tarefas compartilhada coordena o trabalho em toda a equipe. O líder cria tarefas e os companheiros de equipe as trabalham. As tarefas têm três estados: pendente, em progresso e concluída. As tarefas também podem depender de outras tarefas: uma tarefa pendente com dependências não resolvidas não pode ser reivindicada até que essas dependências sejam concluídas.191A lista de tarefas compartilhada coordena o trabalho em toda a equipe. O líder cria tarefas e os companheiros de equipe as trabalham. As tarefas têm três estados: pendente, em progresso e concluída. Uma tarefa também pode depender de outras tarefas e aparece como bloqueada na lista de tarefas até que elas sejam concluídas. Os companheiros de equipe não auto-reivindicam uma tarefa bloqueada, mas você ou o líder ainda podem atribuí-la.

192 192 

193Agentes [sem as ferramentas Task](https://code.claude.com/docs/pt/tools-reference.md#task-tool-availability) coordenam através de mensagens em vez da lista de tarefas compartilhada.193Agentes [sem as ferramentas Task](https://code.claude.com/docs/pt/tools-reference.md#task-tool-availability) coordenam através de mensagens em vez da lista de tarefas compartilhada.

194 194 

agent-view.md +42 −33

Details

206* Uma sessão concluída: seu resultado206* Uma sessão concluída: seu resultado

207* Uma sessão funcionando: sua sentença de status completa207* Uma sessão funcionando: sua sentença de status completa

208 208 

209Quaisquer pull requests vinculados à sessão são listados em seguida. Para uma sessão que está aguardando você, uma linha como `waiting 3m` abaixo deles mostra há quanto tempo está aguardando, e é a única hora mostrada no painel. A idade na borda direita da linha é um número diferente: ela conta a partir de quando a sessão começou.209Quaisquer pull requests vinculados à sessão são listados em seguida. Mais uma linha aparece abaixo deles para uma sessão que está aguardando você ou em execução no modo seguro:

210 

211* Uma linha como `waiting 3m`: há quanto tempo a sessão está aguardando você. A idade na borda direita da linha é um número diferente: ela conta a partir de quando a sessão começou

212* `safe mode · customizations are off`: esta sessão é executada com [suas personalizações desativadas](https://code.claude.com/docs/pt/debug-your-config.md#test-against-a-clean-configuration) porque você a iniciou a partir do seu shell com `claude --bg --safe-mode`. Você pode deixá-la como está. Para continuar a conversa com suas personalizações ativadas novamente, execute [`claude stop <id>`](#manage-sessions-from-the-shell) e depois [`claude --resume`](https://code.claude.com/docs/pt/sessions#resume-a-session), ambos no seu shell

210 213 

211Na maioria das vezes, o painel de espiada é suficiente e você não precisa abrir a transcrição completa.214Na maioria das vezes, o painel de espiada é suficiente e você não precisa abrir a transcrição completa.

212 215 


468 471 

469#### O que é transferido quando você coloca em segundo plano472#### O que é transferido quando você coloca em segundo plano

470 473 

471Colocar em segundo plano inicia um novo processo que retoma da conversa salva, e o trabalho em segundo plano em andamento se move para ele. Comandos de shell em segundo plano em execução, subagentes em segundo plano, fluxos de trabalho dinâmicos, tarefas agendadas que você criou com [`/loop`](https://code.claude.com/docs/pt/scheduled-tasks) e as [respostas automáticas do Claude a comentários de artefatos](https://code.claude.com/docs/pt/artifacts.md#let-claude-reply-to-comments-on-its-own) são todos transferidos e continuam em execução lá. Um subagente se move junto com tudo o que iniciou, portanto se transfere apenas quando todo esse trabalho também pode se mover.474Quando você coloca a sessão em segundo plano, cada tipo de trabalho em segundo plano em andamento é transferido para a sessão em segundo plano, continua apenas quando Claude o reinicia lá, ou para:

472 

473Quando um [fluxo de trabalho dinâmico](https://code.claude.com/docs/pt/workflows.md) ainda tem subagentes em execução, Claude Code pergunta antes de colocar em segundo plano com o diálogo `Background this session?`, que diz quantos subagentes seriam reiniciados. Escolha `Stay` para deixá-los terminar primeiro. Se você confirmar, Claude Code reproduz a execução na sessão em segundo plano: subagentes que ainda estavam em execução começam do início, portanto os tokens que usaram até agora são gastos novamente. Veja [Retomar após uma pausa](https://code.claude.com/docs/pt/workflows.md#resume-after-a-pause) para saber quais subagentes concluídos retornam seus resultados salvos e quais são executados novamente.

474 475 

475Claude Code interrompe o trabalho em segundo plano que não pode ser transferido, como um [monitor](https://code.claude.com/docs/pt/tools-reference.md#monitor-tool) em execução, e também interrompe um subagente em segundo plano que possui um monitor. Quando qualquer trabalho desse tipo está em execução, Claude Code mostra o diálogo `Background this session?` para que você possa confirmar antes de parar o trabalho.476* **É transferido**: comandos de shell em segundo plano em execução, subagentes em segundo plano, tarefas agendadas que você criou com [`/loop`](https://code.claude.com/docs/pt/scheduled-tasks) e as [respostas automáticas do Claude a comentários de artefatos](https://code.claude.com/docs/pt/artifacts.md#let-claude-reply-to-comments-on-its-own) continuam em execução na sessão em segundo plano. Um subagente se move junto com tudo o que iniciou, portanto se transfere apenas quando todo esse trabalho também pode se mover.

477* **Continua apenas quando Claude o reinicia**: um [fluxo de trabalho dinâmico](https://code.claude.com/docs/pt/workflows.md) em execução. Se o fluxo de trabalho não tiver continuado quando você verificar a sessão em segundo plano, [peça a Claude para reiniciá-lo](#dynamic-workflows-when-you-background).

478* **Para**: trabalho que não pode ser movido para a sessão em segundo plano, como um [monitor](https://code.claude.com/docs/pt/tools-reference.md#monitor-tool) em execução. Quando qualquer trabalho desse tipo está em execução, Claude Code mostra o diálogo `Background this session?` para que você possa confirmar antes de parar o trabalho. Um subagente em segundo plano que possui um monitor para junto com o monitor.

476 479 

477Uma vez em segundo plano, a sessão pode iniciar novos subagentes, monitores e comandos em segundo plano, e esses continuam em execução em desanexações e reanexações posteriores.480Uma vez em segundo plano, a sessão pode iniciar novos subagentes, monitores e comandos em segundo plano, e esses continuam em execução em desanexações e reanexações posteriores.

478 481 


488 491 

489Os diretórios que você adicionou durante a sessão com [`/add-dir`](https://code.claude.com/docs/pt/permissions#additional-directories-grant-file-access-not-configuration) também são transferidos. Transferir `--allow-dangerously-skip-permissions` mantém `bypassPermissions` acessível na sessão em segundo plano, mas não concede nada novo: o modo ainda requer sua [aceitação do aviso de bypass](https://code.claude.com/docs/pt/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) registrada.492Os diretórios que você adicionou durante a sessão com [`/add-dir`](https://code.claude.com/docs/pt/permissions#additional-directories-grant-file-access-not-configuration) também são transferidos. Transferir `--allow-dangerously-skip-permissions` mantém `bypassPermissions` acessível na sessão em segundo plano, mas não concede nada novo: o modo ainda requer sua [aceitação do aviso de bypass](https://code.claude.com/docs/pt/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) registrada.

490 493 

494##### Fluxos de trabalho dinâmicos quando você coloca em segundo plano

495 

496Se um [fluxo de trabalho dinâmico](https://code.claude.com/docs/pt/workflows.md) não tiver continuado depois que você colocou sua sessão em segundo plano, peça a Claude para [reiniciar o fluxo de trabalho](https://code.claude.com/docs/pt/workflows.md#resume-after-you-leave-the-session). A execução continua apenas quando Claude a reinicia na sessão em segundo plano, e Claude Code pode pedir que você aprove essa reinicialização primeiro. A conversa da sessão mostra um aviso de que o fluxo de trabalho `could not be resumed`.

497 

498Quando Claude reinicia o fluxo de trabalho, quaisquer subagentes dele que ainda estavam em execução quando você colocou a sessão em segundo plano começam do início e gastam seus tokens novamente. Se você pressionar `←` ou executar `/background` enquanto algum ainda estiver em execução, o diálogo `Background this session?` diz quantos. Para deixá-los terminar primeiro, escolha `Stay`.

499 

491### Despachar um agente a partir do seu shell500### Despachar um agente a partir do seu shell

492 501 

493Passe `--bg` ou sua forma longa `--background` para iniciar uma sessão que vai direto para o segundo plano:502Passe `--bg` ou sua forma longa `--background` para iniciar uma sessão que vai direto para o segundo plano:


826 835 

827Se você quer que uma sessão relate progresso em suas próprias palavras, faça-a escrever um arquivo próprio, por exemplo em `$CLAUDE_JOB_DIR/tmp`, em vez de editar `state.json`.836Se você quer que uma sessão relate progresso em suas próprias palavras, faça-a escrever um arquivo próprio, por exemplo em `$CLAUDE_JOB_DIR/tmp`, em vez de editar `state.json`.

828 837 

829## Como as sessões em background são hospedadas838## Como as sessões em segundo plano são hospedadas

830 839 

831Claude Code trata cada sessão listada na visualização de agente como uma sessão em background, independentemente de você estar atualmente anexado a ela. Em contraste, uma sessão iniciada executando `claude` diretamente está vinculada a esse terminal e termina quando ele fecha, a menos que você [a envie para o background](#from-inside-a-session).840O Claude Code trata cada sessão listada na visualização de agentes como uma sessão em segundo plano, esteja você conectado a ela no momento ou não. Por outro lado, uma sessão iniciada ao executar `claude` diretamente fica vinculada àquele terminal e termina quando ele é fechado, a menos que você [a envie para o segundo plano](#from-inside-a-session).

832 841 

833Para verificar em que tipo de sessão você está, execute [`/status`](https://code.claude.com/docs/pt/commands). A linha `Session kind` mostra `background job · attached` ou `background job · unattended` em uma sessão em background, dependendo de haver um terminal anexado, e `interactive` em qualquer outra sessão.842Para verificar em que tipo de sessão você está, execute [`/status`](https://code.claude.com/docs/pt/commands). A linha `Session kind` mostra `background job · attached` ou `background job · unattended` em uma sessão em segundo plano, dependendo de haver um terminal conectado, e `interactive` em qualquer outra sessão.

834 843 

835### O processo supervisor844### O processo supervisor

836 845 

837O supervisor é um serviço em background que executa suas sessões em background para que continuem funcionando depois que você fecha a visualização de agente ou seu terminal. Claude Code o inicia na primeira vez que você coloca uma sessão em background ou abre a visualização de agente, e você não precisa gerenciá-lo.846O supervisor é um serviço em segundo plano que executa suas sessões em segundo plano para que elas continuem funcionando depois que você fecha a visualização de agentes ou o terminal. O Claude Code o inicia na primeira vez que você envia uma sessão para o segundo plano ou abre a visualização de agentes, e você não precisa gerenciá-lo.

838 847 

839Cada sessão é seu próprio processo Claude Code sob o supervisor, e o que acontece com esse processo depende do estado da sessão:848Cada sessão é seu próprio processo do Claude Code sob o supervisor, e o que acontece com esse processo depende do estado da sessão:

840 849 

841* **Funcionando, pausado em um prompt de permissão ou outro diálogo, ou anexado**: o processo continua em execução. Um subagente, fluxo de trabalho ou monitor em execução conta como funcionando, assim como uma [tarefa agendada com escopo de sessão](https://code.claude.com/docs/pt/scheduled-tasks.md) pendente, como um despertar de `/loop`.850* **Trabalhando, pausada em um prompt de permissão ou outra caixa de diálogo, ou conectada**: o processo continua em execução. Um subagente, fluxo de trabalho ou monitor em execução conta como trabalhando, assim como uma [tarefa agendada com escopo de sessão](https://code.claude.com/docs/pt/scheduled-tasks.md) pendente, como um despertar de `/loop`.

842* **Terminado ou aguardando sua próxima mensagem, e desanexado por cerca de uma hora**: o supervisor interrompe o processo para liberar recursos. Uma sessão que terminou seu turno fazendo uma pergunta a você conta como aguardando sua próxima mensagem. A conversa fica no disco, e na próxima vez que você anexar ou responder, a sessão retoma de onde parou. Fixe uma sessão com `Ctrl+T` para manter seu processo em execução.851* **Concluída ou aguardando sua próxima mensagem, e desconectada por cerca de uma hora**: o supervisor interrompe o processo para liberar recursos. Uma sessão que encerrou seu turno fazendo uma pergunta a você conta como aguardando sua próxima mensagem. A conversa permanece no disco e, na próxima vez que você se conectar ou responder, a sessão é retomada de onde parou. Fixe uma sessão com `Ctrl+T` para manter seu processo em execução.

843* **Saiu inesperadamente enquanto o supervisor está em execução**: o supervisor reinicia o processo. Terminar uma sessão que você colocou em background com `←` ou `/background`, por exemplo com `kill`, marca-a como parada em vez de reiniciá-la. Para sessões que terminaram com um desligamento, consulte [Sessões aparecem como falhadas ou paradas após desligamento](#sessions-show-as-failed-after-shutdown).852* **Encerrada inesperadamente enquanto o supervisor está em execução**: o supervisor reinicia o processo. Encerrar uma sessão que você mesmo enviou para o segundo plano com `←` ou `/background`, por exemplo com `kill`, a marca como interrompida em vez de reiniciá-la. Para sessões que terminaram com um desligamento, consulte [Sessões aparecem como com falha ou interrompidas após o desligamento](#sessions-show-as-failed-after-shutdown).

844* **Após uma atualização automática**: o supervisor reinicia a si mesmo para a nova versão e move sessões inativas em background. Sessões que estão funcionando, aguardando você ou anexadas não são interrompidas.853* **Após uma atualização automática**: o supervisor reinicia a si mesmo na nova versão e transfere as sessões ociosas em segundo plano. Sessões que estão trabalhando, aguardando você ou conectadas não são interrompidas.

845* **O próprio supervisor para**, por exemplo porque seu processo foi encerrado de fora do Claude Code: no macOS e no Linux, suas sessões param, a menos que um novo supervisor se conecte em cerca de um minuto. Para iniciar um, execute `claude agents` no seu shell. Após esse minuto, consulte [Manter as sessões em execução depois que o supervisor para](#keep-sessions-running-after-the-supervisor-stops).854* **O próprio supervisor para**, por exemplo porque seu processo foi encerrado de fora do Claude Code: no macOS e no Linux, suas sessões param, a menos que um novo supervisor se conecte em cerca de um minuto. Para iniciar um, execute `claude agents` no seu shell. Depois desse minuto, consulte [Manter as sessões em execução após o supervisor parar](#keep-sessions-running-after-the-supervisor-stops).

846 855 

847Quando o processo de uma sessão para ou reinicia, os comandos de shell em background, fluxos de trabalho dinâmicos e subagentes em background que Claude iniciou nela são transferidos para seu próximo processo; monitors em execução e comandos de shell que um subagente iniciou param com o processo. Deletar a sessão para tudo que ela transferiu. Para parar tudo com o processo em vez disso, defina [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](https://code.claude.com/docs/pt/env-vars#variables) como `1`.856Quando o processo de uma sessão para ou reinicia, os comandos de shell em segundo plano e os subagentes em segundo plano que o Claude iniciou nela são transferidos para o próximo processo. Um fluxo de trabalho dinâmico [continua somente quando o Claude o reinicia](#dynamic-workflows-when-you-background). Monitores em execução e comandos de shell que um subagente iniciou param junto com o processo. Se você excluir a sessão, tudo o que ela transferiu para de ser executado. Para, em vez disso, interromper tudo isso junto com o processo, defina [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](https://code.claude.com/docs/pt/env-vars#variables) como `1`.

848 857 

849O supervisor e suas sessões se autenticam com as mesmas credenciais armazenadas que suas sessões interativas. Para quais configurações e variáveis de shell chegam a uma sessão, incluindo `PATH`, consulte [Configurações e provedor](#settings-and-provider). Para endpoints de gateway, consulte [Gateway de LLM](#llm-gateway).858O supervisor e suas sessões se autenticam com as mesmas credenciais armazenadas que suas sessões interativas. Para saber quais configurações e variáveis de shell chegam a uma sessão, incluindo `PATH`, consulte [Configurações e provedor](#settings-and-provider). Para endpoints de gateway, consulte [Gateway de LLM](#llm-gateway).

850 859 

851#### Manter as sessões em execução depois que o supervisor para860#### Manter as sessões em execução após o supervisor parar

852 861 

853Se a visualização de agente exibir este aviso ao sair, nenhum [supervisor](#the-supervisor-process) está em execução:862Se a visualização de agentes exibir este aviso ao ser encerrada, nenhum [supervisor](#the-supervisor-process) está em execução:

854 863 

855```text theme={null}864```text theme={null}

856Background sessions still running will stop in about a minute. Run 'claude agents' to keep them.865Background sessions still running will stop in about a minute. Run 'claude agents' to keep them.


858 867 

859Execute `claude agents` no seu shell dentro desse minuto para iniciar um novo supervisor e manter suas sessões em execução.868Execute `claude agents` no seu shell dentro desse minuto para iniciar um novo supervisor e manter suas sessões em execução.

860 869 

861Se o minuto passar antes, as sessões param, mas suas conversas salvas permanecem no disco. Para reiniciar uma sessão a partir de sua conversa salva, [anexe-se](#attach-to-a-session) a ela ou [responda](#peek-and-reply) a ela, conforme descrito em [Sessões aparecem como falhadas ou paradas após desligamento](#sessions-show-as-failed-after-shutdown).870Se o minuto passar antes, as sessões param, mas suas conversas salvas permanecem no disco. Para reiniciar uma sessão a partir da conversa salva, [conecte-se](#attach-to-a-session) a ela ou [responda](#peek-and-reply) a ela, conforme descrito em [Sessões aparecem como com falha ou interrompidas após o desligamento](#sessions-show-as-failed-after-shutdown).

862 871 

863### Onde o estado é armazenado872### Onde o estado é armazenado

864 873 

865O estado da sessão é armazenado sob seu diretório de configuração Claude Code. Se você definir [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/pt/env-vars), o supervisor usa esse diretório em vez de `~/.claude` e é executado como uma instância separada com suas próprias sessões.874O estado das sessões é armazenado no diretório de configuração do Claude Code. Se você definir [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/pt/env-vars), o supervisor usa esse diretório em vez de `~/.claude` e é executado como uma instância separada, com suas próprias sessões.

866 875 

867| Caminho | Conteúdo |876| Caminho | Conteúdo |

868| :- | :- |877| :- | :- |

869| `~/.claude/daemon.log` | Log do supervisor |878| `~/.claude/daemon.log` | Log do supervisor |

870| `~/.claude/daemon/roster.json` | Lista de sessões em background em execução, usada para se reconectar após uma reinicialização |879| `~/.claude/daemon/roster.json` | Lista das sessões em segundo plano em execução, usada para reconectar após uma reinicialização |

871| `~/.claude/jobs/<id>/state.json` | Estado por sessão mostrado na visualização de agente. Leia-o através de [`claude agents --json`](#read-session-state-from-a-script) em vez de analisar o arquivo |880| `~/.claude/jobs/<id>/state.json` | Estado por sessão exibido na visualização de agentes. Leia-o por meio de [`claude agents --json`](#read-session-state-from-a-script) em vez de analisar o arquivo |

872| `~/.claude/jobs/<id>/tmp/` | Diretório de rascunho por sessão. Chamadas `Write` e `Edit` de Claude aqui não solicitam permissão. Removido quando a sessão é deletada |881| `~/.claude/jobs/<id>/tmp/` | Diretório de rascunho por sessão. As chamadas de `Write` e `Edit` do Claude aqui não solicitam permissão. Removido quando a sessão é excluída |

873 882 

874Cada sessão em background tem a variável de ambiente `CLAUDE_JOB_DIR` definida para seu diretório `~/.claude/jobs/<id>`, então comandos de shell que a sessão executa podem escrever arquivos temporários em `$CLAUDE_JOB_DIR/tmp` sem colidir com sessões paralelas.883Cada sessão em segundo plano tem a variável de ambiente `CLAUDE_JOB_DIR` definida como seu diretório `~/.claude/jobs/<id>`, para que os comandos de shell que a sessão executa possam gravar arquivos temporários em `$CLAUDE_JOB_DIR/tmp` sem colidir com sessões paralelas.

875 884 

876Para inspecionar este estado sem ler os arquivos diretamente, execute `claude daemon status`. Ele relata se o supervisor está acessível, seu ID de processo e versão, o diretório do socket e quantas sessões em background estão ativas.885Para inspecionar esse estado sem ler os arquivos diretamente, execute `claude daemon status`. Ele informa se o supervisor está acessível, seu ID de processo e versão, o diretório do socket e quantas sessões em segundo plano estão ativas.

877 886 

878O comando também avisa quando o supervisor em execução está em uma versão diferente do `claude` que você invocou, o que acontece após uma atualização que o supervisor ainda não reiniciou. O aviso mostra ambas as versões e diz para você executar `claude daemon stop --any` para pegar a nova versão.887O comando também avisa quando o supervisor em execução está em uma versão diferente do `claude` que você invocou, o que acontece após uma atualização para a qual o supervisor ainda não reiniciou. O aviso mostra as duas versões e instrui você a executar `claude daemon stop --any` para adotar a nova versão.

879 888 

880Sessões sobrevivem a esse desajuste de versão intactas: uma versão mais antiga do Claude Code que atualiza o `state.json` de uma sessão preserva campos que não reconhece e mantém a sessão listada. A lista de sessões em `roster.json` segue a mesma regra, então sessões iniciadas pela versão mais nova permanecem acessíveis e continuam aceitando entrada após o supervisor reiniciar.889As sessões sobrevivem intactas a essa incompatibilidade de versões: uma versão mais antiga do Claude Code que atualiza o `state.json` de uma sessão preserva os campos que não reconhece e mantém a sessão listada. A lista de sessões em `roster.json` segue a mesma regra, de modo que as sessões iniciadas pela versão mais recente continuam acessíveis e continuam aceitando entrada após a reinicialização do supervisor.

881 890 

882### Desativar a visualização de agente891### Desativar a visualização de agentes

883 892 

884Para desativar agentes em background e a visualização de agente completamente, defina a [configuração](https://code.claude.com/docs/pt/settings.md) `disableAgentView` como `true` ou defina a variável de ambiente `CLAUDE_CODE_DISABLE_AGENT_VIEW`. Os administradores podem impor isso através de [configurações gerenciadas](https://code.claude.com/docs/pt/managed-settings.md).893Para desativar completamente os agentes em segundo plano e a visualização de agentes, defina a [configuração](https://code.claude.com/docs/pt/settings.md) `disableAgentView` como `true` ou defina a variável de ambiente `CLAUDE_CODE_DISABLE_AGENT_VIEW`. Os administradores podem impor isso por meio de [configurações gerenciadas](https://code.claude.com/docs/pt/managed-settings.md).

885 894 

886## Solução de problemas895## Solução de problemas

887 896 


897 906 

898### Backgrounding mostra um diálogo `Background this session?`907### Backgrounding mostra um diálogo `Background this session?`

899 908 

900Se você pressionar `←` para colocar a sessão atual em background e Claude Code mostrar um diálogo `Background this session?`, a sessão tem trabalho em segundo plano em andamento que o backgrounding interromperia, reiniciaria ou deixaria em execução sem supervisão, e Claude Code pergunta antes de fazer qualquer um desses:909Quando você pressiona `←` para colocar uma sessão em background, um diálogo `Background this session?` significa que a sessão tem trabalho em segundo plano em andamento que seria interrompido, seria interrompido no meio ou continuaria em execução sem supervisão:

901 910 

902* **Trabalho que não pode se mover**: a sessão tem trabalho que não pode se mover para a sessão em background, como um [monitor](https://code.claude.com/docs/pt/tools-reference.md#monitor-tool) em execução. O diálogo nomeia o trabalho em segundo plano que Claude Code interromperia e, separadamente, conta as tarefas que são transferidas.911* **Trabalho que não pode se mover**: a sessão tem trabalho que não pode se mover para a sessão em background, como um [monitor](https://code.claude.com/docs/pt/tools-reference.md#monitor-tool) em execução. O diálogo nomeia o trabalho em segundo plano que Claude Code interromperia e, separadamente, conta as tarefas que são transferidas.

903* **Um fluxo de trabalho com subagentes em execução**: um [fluxo de trabalho dinâmico](https://code.claude.com/docs/pt/workflows.md) ainda tem subagentes em execução. O fluxo de trabalho em si é transferido, mas seus subagentes em execução reiniciam do início, e o diálogo diz quantos.912* **Um fluxo de trabalho com subagentes em execução**: um [fluxo de trabalho dinâmico](https://code.claude.com/docs/pt/workflows.md) ainda tem subagentes em execução. Esses subagentes são interrompidos se você colocar em background mesmo assim, e o diálogo diz quantos. Eles recomeçam do início quando Claude [reinicia o fluxo de trabalho na sessão em background](#dynamic-workflows-when-you-background).

904* **Respostas automáticas de artefatos**: Claude está [respondendo a comentários em um artefato por conta própria](https://code.claude.com/docs/pt/artifacts.md#let-claude-reply-to-comments-on-its-own). Essas respostas continuam na sessão em background, e o diálogo diz isso.913* **Respostas automáticas de artefatos**: Claude está [respondendo a comentários em um artefato por conta própria](https://code.claude.com/docs/pt/artifacts.md#let-claude-reply-to-comments-on-its-own). Essas respostas continuam na sessão em background, e o diálogo diz isso.

905 914 

906Execute `/tasks` para ver tudo que está em execução, depois confirme para colocar em background mesmo assim ou escolha `Stay` para deixar o trabalho terminar primeiro. Veja [What carries over when you background](#what-carries-over-when-you-background) para quais tipos de trabalho são transferidos e quais Claude Code interrompe.915Execute `/tasks` para ver tudo que está em execução, depois confirme para colocar em background mesmo assim ou escolha `Stay` para deixar o trabalho terminar primeiro. Veja [What carries over when you background](#what-carries-over-when-you-background) para quais tipos de trabalho são transferidos e quais Claude Code interrompe.


1118| v2.1.200 | Uma versão mais antiga do Claude Code que reescreve a lista de sessão em `roster.json` preserva campos escritos por uma versão mais nova, correspondendo à garantia existente de `state.json`, para que sessões iniciadas pela versão mais nova continuem aceitando entrada após o supervisor reiniciar. Quando você abre uma sessão que parou de responder, o supervisor reinicia seu processo e a sessão continua a resposta interrompida de onde parou. Agent view aplica uma flag `--plugin-dir` colocada após `agents` a seu próprio autocomplete de subagentes e skills na entrada de despacho assim como a sessões despachadas. |1127| v2.1.200 | Uma versão mais antiga do Claude Code que reescreve a lista de sessão em `roster.json` preserva campos escritos por uma versão mais nova, correspondendo à garantia existente de `state.json`, para que sessões iniciadas pela versão mais nova continuem aceitando entrada após o supervisor reiniciar. Quando você abre uma sessão que parou de responder, o supervisor reinicia seu processo e a sessão continua a resposta interrompida de onde parou. Agent view aplica uma flag `--plugin-dir` colocada após `agents` a seu próprio autocomplete de subagentes e skills na entrada de despacho assim como a sessões despachadas. |

1119| v2.1.199 | Uma sessão em background cujo processo sai antes de terminar de iniciar em um host com pouca memória RAM mostra `possibly low memory — free some up and retry` no status de sua linha em vez de apenas o motivo de saída simples. Colocar uma sessão em background com `←` ou `/background` carrega seu `/color` para a nova linha. |1128| v2.1.199 | Uma sessão em background cujo processo sai antes de terminar de iniciar em um host com pouca memória RAM mostra `possibly low memory — free some up and retry` no status de sua linha em vez de apenas o motivo de saída simples. Colocar uma sessão em background com `←` ou `/background` carrega seu `/color` para a nova linha. |

1120| v2.1.198 | Agent view envia uma notificação através de `preferredNotifChannel` quando uma sessão em background precisa de entrada, termina ou falha, e dispara o hook `Notification` com o tipo `agent_needs_input` ou `agent_completed`. `←` e `/exit` dentro de `claude attach <id>` retornam para agent view em vez de sair para o shell; `Ctrl+Z` retorna para o shell. Uma sessão em background que isolou seu trabalho em um worktree faz commit, envia seu próprio branch isolado, nunca `main` ou `master`, e abre um pull request em rascunho quando termina em vez de perguntar primeiro. `/login` é executado em agent view e abre o diálogo de entrada. O diálogo de saída `Background work is running` oferece `Move to background and exit`. A entrega de saída também cobre subagentes em background, que retomam de sua transcrição no próximo despertar em vez de serem relatados como falhados. `claude --bg` combinado com `-p` ou `--print` é rejeitado com um erro. O host da sessão em background solicita permissão de Rede Local do macOS no primeiro acesso LAN em vez de falhar com `connect: no route to host`. |1129| v2.1.198 | Agent view envia uma notificação através de `preferredNotifChannel` quando uma sessão em background precisa de entrada, termina ou falha, e dispara o hook `Notification` com o tipo `agent_needs_input` ou `agent_completed`. `←` e `/exit` dentro de `claude attach <id>` retornam para agent view em vez de sair para o shell; `Ctrl+Z` retorna para o shell. Uma sessão em background que isolou seu trabalho em um worktree faz commit, envia seu próprio branch isolado, nunca `main` ou `master`, e abre um pull request em rascunho quando termina em vez de perguntar primeiro. `/login` é executado em agent view e abre o diálogo de entrada. O diálogo de saída `Background work is running` oferece `Move to background and exit`. A entrega de saída também cobre subagentes em background, que retomam de sua transcrição no próximo despertar em vez de serem relatados como falhados. `claude --bg` combinado com `-p` ou `--print` é rejeitado com um erro. O host da sessão em background solicita permissão de Rede Local do macOS no primeiro acesso LAN em vez de falhar com `connect: no route to host`. |

1121| v2.1.196 | Um único pressionamento de `←` coloca em background uma sessão em primeiro plano; versões anteriores exigiam dois pressionamentos, com uma dica de rodapé e uma confirmação. `--dangerously-skip-permissions` passado para `claude agents` mostra o aviso de bypass em vez de ser silenciosamente descartado. Sessões interativas que você nunca nomeou carregam um nome padrão como `my-app-3f` em listagens de sessão e `claude agents --json`. Comandos shell em background e fluxos de trabalho dinâmicos sobrevivem ao processo da sessão sendo interrompido, reiniciado ou atualizado, incluindo no Windows; defina `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1` para desativar a entrega. Uma transcrição lida incorretamente como vazia no reinício é renomeada com um sufixo `.orphaned-` em vez de ser deletada. |1130| v2.1.196 | Um único pressionamento de `←` coloca em background uma sessão em primeiro plano; versões anteriores exigiam dois pressionamentos, com uma dica de rodapé e uma confirmação. `--dangerously-skip-permissions` passado para `claude agents` mostra o aviso de bypass em vez de ser silenciosamente descartado. Sessões interativas que você nunca nomeou carregam um nome padrão como `my-app-3f` em listagens de sessão e `claude agents --json`. Comandos shell em background sobrevivem ao processo da sessão sendo interrompido, reiniciado ou atualizado, incluindo no Windows; defina `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1` para desativar a entrega. Uma transcrição lida incorretamente como vazia no reinício é renomeada com um sufixo `.orphaned-` em vez de ser deletada. |

1122| v2.1.195 | O trabalho em segundo plano em andamento é transferido quando você coloca em background uma sessão no Windows também. O grupo `Completed` preenche o espaço vertical restante e o cabeçalho se compacta em terminais curtos. Uma versão mais antiga do Claude Code não descarta mais campos `state.json` de sessões mais novas nem oculta essas sessões de `claude agents`. Anexar a uma sessão parada muda imediatamente em vez de mostrar uma tela em branco por até cinco segundos. Um supervisor que não consegue aceitar conexões sai e libera seu bloqueio por conta própria. |1131| v2.1.195 | O trabalho em segundo plano em andamento é transferido quando você coloca em background uma sessão no Windows também. O grupo `Completed` preenche o espaço vertical restante e o cabeçalho se compacta em terminais curtos. Uma versão mais antiga do Claude Code não descarta mais campos `state.json` de sessões mais novas nem oculta essas sessões de `claude agents`. Anexar a uma sessão parada muda imediatamente em vez de mostrar uma tela em branco por até cinco segundos. Um supervisor que não consegue aceitar conexões sai e libera seu bloqueio por conta própria. |

1123| v2.1.191 | `claude --bg` com um nome `--agent` que não corresponde a nenhum de seus subagentes falha no lançamento: a sessão sai imediatamente com um erro `--agent '<name>' not found` em vez de executar com o agente padrão. |1132| v2.1.191 | `claude --bg` com um nome `--agent` que não corresponde a nenhum de seus subagentes falha no lançamento: a sessão sai imediatamente com um erro `--agent '<name>' not found` em vez de executar com o agente padrão. |

1124| v2.1.174 | Sessões em background não herdam mais variáveis de endpoint de gateway como `ANTHROPIC_BASE_URL` do shell de inicialização do supervisor; o supervisor fornece um snapshot de credenciais fresco para workers pré-aquecidos, corrigindo erros espúrios de `Could not resolve authentication method`. |1133| v2.1.174 | Sessões em background não herdam mais variáveis de endpoint de gateway como `ANTHROPIC_BASE_URL` do shell de inicialização do supervisor; o supervisor fornece um snapshot de credenciais fresco para workers pré-aquecidos, corrigindo erros espúrios de `Could not resolve authentication method`. |

Details

927 927 

928Ao mudar, exclua qualquer linha `serve_to_desktop` na mesma edição que renomeia os blocos. Onde uma instrução mencionar o bloco `cli`, use seu bloco `code`.928Ao mudar, exclua qualquer linha `serve_to_desktop` na mesma edição que renomeia os blocos. Onde uma instrução mencionar o bloco `cli`, use seu bloco `code`.

929 929 

930`serve_to_desktop: true` é uma forma legada de oferecer as configurações `cli` de uma política à guia Code. Não tem efeito quando o Claude Desktop se conecta por meio de [`bootstrapUrl`](#claude-desktop-overlay). Enquanto suas políticas usarem `cli`, um aviso de inicialização que nomeia essa chave significa que essas configurações não estão chegando à guia Code:

931 

932* **Para cobrir a guia Code**: mude para `code`, assim que as máquinas dos usuários atenderem às condições em [Aplicar configurações de `code` na guia Code](#apply-code-settings-in-the-code-tab)

933* **Para permanecer em `cli`**: defina `serve_to_desktop: false` ao lado de `cli` em uma política para silenciar o aviso

934 

930#### O que vai em `cli`935#### O que vai em `cli`

931 936 

932Cada valor de `code` ou `cli` é um documento `managed-settings.json` completo do Claude Code, o mesmo esquema que você implantaria via MDM ou `/etc/claude-code/managed-settings.json`, expresso aqui como YAML. A CLI aplica o documento entregue no nível gerenciado, acima das configurações de usuário e de projeto, no lugar das configurações gerenciadas pelo servidor. Portanto, ela ignora as configurações [restritas a fontes de política no nível do sistema operacional](https://code.claude.com/docs/pt/server-managed-settings.md#current-limitations), como `policyHelper` e `wslInheritsWindowsSettings`.937Cada valor de `code` ou `cli` é um documento `managed-settings.json` completo do Claude Code, o mesmo esquema que você implantaria via MDM ou `/etc/claude-code/managed-settings.json`, expresso aqui como YAML. A CLI aplica o documento entregue no nível gerenciado, acima das configurações de usuário e de projeto, no lugar das configurações gerenciadas pelo servidor. Portanto, ela ignora as configurações [restritas a fontes de política no nível do sistema operacional](https://code.claude.com/docs/pt/server-managed-settings.md#current-limitations), como `policyHelper` e `wslInheritsWindowsSettings`.


974| - | - | - |979| - | - | - |

975| `availableModels` | Gateway + CLI | Allowlist de modelos. Também verificada em `/v1/messages`, então um cliente modificado não pode contorná-la. |980| `availableModels` | Gateway + CLI | Allowlist de modelos. Também verificada em `/v1/messages`, então um cliente modificado não pode contorná-la. |

976| [`deniedModels`](https://code.claude.com/docs/pt/settings-reference#deniedmodels), [`availableModelsMatch`](https://code.claude.com/docs/pt/settings-reference#availablemodelsmatch) | Gateway + CLI | [Bloqueiam modelos ou versões específicos](https://code.claude.com/docs/pt/model-config.md#block-specific-models-or-versions) que `availableModels` de outra forma permitiria. Um modelo bloqueado é rejeitado com um `400` em `/v1/messages` e fica de fora de `/v1/models`. A verificação do próprio gateway requer o Claude Code v2.1.299 ou posterior no servidor do gateway. A verificação da CLI requer v2.1.283 ou posterior nos clientes, e clientes anteriores ignoram ambas as chaves. |981| [`deniedModels`](https://code.claude.com/docs/pt/settings-reference#deniedmodels), [`availableModelsMatch`](https://code.claude.com/docs/pt/settings-reference#availablemodelsmatch) | Gateway + CLI | [Bloqueiam modelos ou versões específicos](https://code.claude.com/docs/pt/model-config.md#block-specific-models-or-versions) que `availableModels` de outra forma permitiria. Um modelo bloqueado é rejeitado com um `400` em `/v1/messages` e fica de fora de `/v1/models`. A verificação do próprio gateway requer o Claude Code v2.1.299 ou posterior no servidor do gateway. A verificação da CLI requer v2.1.283 ou posterior nos clientes, e clientes anteriores ignoram ambas as chaves. |

977| `permissions.allow` / `.deny` | CLI | Regras de ferramentas e comandos. Consulte [Permissões](https://code.claude.com/docs/pt/permissions.md). |982| `permissions.allow` / `.deny` | CLI | Regras de ferramentas e comandos. Consulte [Permissões](https://code.claude.com/docs/pt/permissions.md) e [o que uma regra de Bash não corresponde](https://code.claude.com/docs/pt/permissions.md#bash-rule-limits). |

978| `permissions.disableBypassPermissionsMode` | CLI | Defina como `disable` para bloquear [`bypassPermissions`](https://code.claude.com/docs/pt/permission-modes#skip-all-checks-with-bypasspermissions-mode), o modo que ignora os prompts de permissão, e a flag `--dangerously-skip-permissions` |983| `permissions.disableBypassPermissionsMode` | CLI | Defina como `disable` para bloquear [`bypassPermissions`](https://code.claude.com/docs/pt/permission-modes#skip-all-checks-with-bypasspermissions-mode), o modo que ignora os prompts de permissão, e a flag `--dangerously-skip-permissions` |

979| `allowManagedPermissionRulesOnly` | CLI | Quando `true`, as configurações gerenciadas se tornam a única fonte de configurações para regras de permissão. A entrada [`allowManagedPermissionRulesOnly`](https://code.claude.com/docs/pt/settings-reference#allowmanagedpermissionrulesonly) lista todas as fontes que o Claude Code então ignora. |984| `allowManagedPermissionRulesOnly` | CLI | Quando `true`, as configurações gerenciadas se tornam a única fonte de configurações para regras de permissão. A entrada [`allowManagedPermissionRulesOnly`](https://code.claude.com/docs/pt/settings-reference#allowmanagedpermissionrulesonly) lista todas as fontes que o Claude Code então ignora. |

980| `env` | CLI | Variáveis de ambiente mescladas no processo da CLI. Use para telemetria, atualização automática e sobrescritas de nomes de modelos. |985| `env` | CLI | Variáveis de ambiente mescladas no processo da CLI. Use para telemetria, atualização automática e sobrescritas de nomes de modelos. |


1003 1008 

1004A chave `cli` se chamava `settings` em versões anteriores, e o gateway ainda aceita essa grafia como alias. Para novas implantações, use [`code`](#choose-cli-or-code).1009A chave `cli` se chamava `settings` em versões anteriores, e o gateway ainda aceita essa grafia como alias. Para novas implantações, use [`code`](#choose-cli-or-code).

1005 1010 

1011#### Testar uma política antes da implantação

1012 

1013Para testar uma alteração de política, inicie o gateway com um banco de dados Postgres descartável. O gateway se conecta ao Postgres e aplica suas migrações de esquema antes de verificar o conteúdo dos blocos `cli`, `code` e `desktop`. Quando não consegue acessar o banco de dados, a inicialização para em `could not connect to Postgres` e não informa nada sobre o conteúdo deles.

1014 

1006#### Janela de contexto em sessões de terminal1015#### Janela de contexto em sessões de terminal

1007 1016 

1008Sessões de terminal conectadas por meio de `/login` usam a janela de contexto de 1M para Opus 4.7 e posteriores, Sonnet 5 e posteriores e os modelos Fable. O ID do modelo não precisa do sufixo `[1m]`, e as sessões compactam em cerca de 967K tokens. Antes do Claude Code v2.1.287 na máquina do desenvolvedor, o Claude Code tratava os modelos Opus e Fable como tendo uma janela de 200K, a menos que o ID do modelo terminasse em `[1m]`.1017Sessões de terminal conectadas por meio de `/login` usam a janela de contexto de 1M para Opus 4.7 e posteriores, Sonnet 5 e posteriores e os modelos Fable. O ID do modelo não precisa do sufixo `[1m]`, e as sessões compactam em cerca de 967K tokens. Antes do Claude Code v2.1.287 na máquina do desenvolvedor, o Claude Code tratava os modelos Opus e Fable como tendo uma janela de 200K, a menos que o ID do modelo terminasse em `[1m]`.


1510# fail_closed_on_error: false1519# fail_closed_on_error: false

1511 1520 

1512# Teste de carga desta implantação sem chamar um provedor de modelo. Nunca em um1521# Teste de carga desta implantação sem chamar um provedor de modelo. Nunca em um

1513# gateway que desenvolvedores usam: cada solicitação recebe uma resposta enlatada.1522# gateway que desenvolvedores usam: cada requisição recebe uma resposta enlatada.

1514# load_test_mode:1523# load_test_mode:

1515# enabled: true1524# enabled: true

1516# # reply_tokens: 7501525# # reply_tokens: 750


1589 # A política de contractors herda esta chave.1598 # A política de contractors herda esta chave.

1590 enforceAvailableModels: true1599 enforceAvailableModels: true

1591 permissions:1600 permissions:

1592 allow: [Read, Grep, Bash, Edit]1601 allow: [Read, Grep, Edit]

1593 deny: ["WebFetch"]1602 deny: ["WebFetch"]

1594 env: { HTTP_PROXY: http://proxy.example.com:8080 }1603 env: { HTTP_PROXY: http://proxy.example.com:8080 }

1595 1604 

Details

393| O `/login` de um desenvolvedor mostra o seletor de conta padrão em vez da tela **Cloud gateway** | `forceLoginMethod` ou `forceLoginGatewayUrl` não está definido nas configurações gerenciadas nessa máquina | Implante o [arquivo de configurações gerenciadas](https://code.claude.com/docs/pt/claude-apps-gateway#set-the-gateway-url) no dispositivo; `/login` lê a URL do gateway de lá |393| O `/login` de um desenvolvedor mostra o seletor de conta padrão em vez da tela **Cloud gateway** | `forceLoginMethod` ou `forceLoginGatewayUrl` não está definido nas configurações gerenciadas nessa máquina | Implante o [arquivo de configurações gerenciadas](https://code.claude.com/docs/pt/claude-apps-gateway#set-the-gateway-url) no dispositivo; `/login` lê a URL do gateway de lá |

394| As requisições de um desenvolvedor falham com `Not signed in to the Cloud gateway — run /login.` | As configurações gerenciadas da máquina definem `forceLoginMethod: "gateway"` ou `forceLoginGatewayUrl`, e a sessão não tem login no gateway. Um login claude.ai restante não satisfaz o requisito. | Peça ao desenvolvedor para executar `/login` e completar o login no gateway. Veja também [Administrator policy requires a Cloud gateway sign-in](https://code.claude.com/docs/pt/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in). |394| As requisições de um desenvolvedor falham com `Not signed in to the Cloud gateway — run /login.` | As configurações gerenciadas da máquina definem `forceLoginMethod: "gateway"` ou `forceLoginGatewayUrl`, e a sessão não tem login no gateway. Um login claude.ai restante não satisfaz o requisito. | Peça ao desenvolvedor para executar `/login` e completar o login no gateway. Veja também [Administrator policy requires a Cloud gateway sign-in](https://code.claude.com/docs/pt/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in). |

395| Claude Desktop relata que sua configuração de bootstrap não pôde ser buscada | `/user/bootstrap` retornou 404: a política que corresponde ao usuário não carrega uma chave `desktop`, ou nenhuma política correspondeu. O log de auditoria do gateway registra cada rejeição como `desktop_bootstrap.denied` com o motivo. | Adicione um bloco `desktop` à política que corresponde ao usuário, ou à camada base `match: {}`; um `desktop: {}` vazio é suficiente. Veja [Claude Desktop overlay](https://code.claude.com/docs/pt/claude-apps-gateway-config.md#claude-desktop-overlay). |395| Claude Desktop relata que sua configuração de bootstrap não pôde ser buscada | `/user/bootstrap` retornou 404: a política que corresponde ao usuário não carrega uma chave `desktop`, ou nenhuma política correspondeu. O log de auditoria do gateway registra cada rejeição como `desktop_bootstrap.denied` com o motivo. | Adicione um bloco `desktop` à política que corresponde ao usuário, ou à camada base `match: {}`; um `desktop: {}` vazio é suficiente. Veja [Claude Desktop overlay](https://code.claude.com/docs/pt/claude-apps-gateway-config.md#claude-desktop-overlay). |

396| O log de auditoria mostra `auth.denied` com `reason: invalid_token` em `/v1/logs` ou `/v1/metrics` | Você definiu [`otelHeadersHelper`](https://code.claude.com/docs/pt/settings-reference#otelheadershelper) nas configurações gerenciadas de uma máquina. Em uma sessão do Claude Desktop nessa máquina, o Claude Code envia o cabeçalho `Authorization` do helper para o relay de telemetria do gateway no lugar do token de sessão. Onde o Claude Desktop inclui uma versão do Claude Code anterior à v2.1.307, você recebe a mesma negação se definir um cabeçalho `Authorization` em `OTEL_EXPORTER_OTLP_HEADERS` ou em uma forma por sinal nessas configurações. | Remova o helper dessas configurações. Onde o Claude Desktop inclui uma versão do Claude Code anterior à v2.1.307, remova a variável. |

396| A inicialização mostra `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | O build do Claude Code instalado é anterior ao suporte de gateway | Peça ao desenvolvedor para atualizar Claude Code para uma versão que inclua suporte de Cloud gateway |397| A inicialização mostra `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | O build do Claude Code instalado é anterior ao suporte de gateway | Peça ao desenvolvedor para atualizar Claude Code para uma versão que inclua suporte de Cloud gateway |

397| A inicialização sai com `Administrator policy requires a Cloud gateway sign-in on this machine` | O ambiente do desenvolvedor define `ANTHROPIC_API_KEY` ou `ANTHROPIC_AUTH_TOKEN`, suas configurações configuram um [`apiKeyHelper`](https://code.claude.com/docs/pt/settings-reference#apikeyhelper), ou uma chave de API de um login anterior do Claude Console ainda está salva | Peça ao desenvolvedor para limpar cada um que se aplica: desdefina a variável, remova a entrada `apiKeyHelper`, ou execute `claude auth logout` para remover a chave salva. Uma sessão que seleciona um provedor de nuvem com `CLAUDE_CODE_USE_*` então inicia sem login; para todas as outras sessões, peça para iniciar `claude` e fazer login com `/login`. Veja também [Administrator policy requires a Cloud gateway sign-in](https://code.claude.com/docs/pt/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in). |398| A inicialização sai com `Administrator policy requires a Cloud gateway sign-in on this machine` | O ambiente do desenvolvedor define `ANTHROPIC_API_KEY` ou `ANTHROPIC_AUTH_TOKEN`, suas configurações configuram um [`apiKeyHelper`](https://code.claude.com/docs/pt/settings-reference#apikeyhelper), ou uma chave de API de um login anterior do Claude Console ainda está salva | Peça ao desenvolvedor para limpar cada um que se aplica: desdefina a variável, remova a entrada `apiKeyHelper`, ou execute `claude auth logout` para remover a chave salva. Uma sessão que seleciona um provedor de nuvem com `CLAUDE_CODE_USE_*` então inicia sem login; para todas as outras sessões, peça para iniciar `claude` e fazer login com `/login`. Veja também [Administrator policy requires a Cloud gateway sign-in](https://code.claude.com/docs/pt/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in). |

398| A inicialização ou `/login` relata `Claude Code may not be enabled for your organization` após um 403 no carregamento de configurações gerenciadas | O gateway, ou algo na frente dele, respondeu à requisição `/managed/settings` com 403. A rota de configurações do próprio gateway nunca responde com 403. O status vem das verificações de IP [`access_control`](https://code.claude.com/docs/pt/claude-apps-gateway-config#http-tuning) ou de um proxy ou WAF na frente do gateway. O log de auditoria registra uma negação de verificação de IP como `access.denied` com o motivo. O desenvolvedor permanece conectado. | Verifique o log de auditoria para `access.denied` no momento da falha e corrija as listas `access_control` ou o front end, depois peça ao desenvolvedor para iniciar `claude` novamente |399| A inicialização ou `/login` relata `Claude Code may not be enabled for your organization` após um 403 no carregamento de configurações gerenciadas | O gateway, ou algo na frente dele, respondeu à requisição `/managed/settings` com 403. A rota de configurações do próprio gateway nunca responde com 403. O status vem das verificações de IP [`access_control`](https://code.claude.com/docs/pt/claude-apps-gateway-config#http-tuning) ou de um proxy ou WAF na frente do gateway. O log de auditoria registra uma negação de verificação de IP como `access.denied` com o motivo. O desenvolvedor permanece conectado. | Verifique o log de auditoria para `access.denied` no momento da falha e corrija as listas `access_control` ou o front end, depois peça ao desenvolvedor para iniciar `claude` novamente |

Details

288 288 

289[Equipes de agentes](https://code.claude.com/docs/pt/agent-teams.md) estão desativadas por padrão, mas podem ser habilitadas adicionando `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` às suas [variáveis de ambiente](https://code.claude.com/docs/pt/cloud-environments.md#set-environment-variables).289[Equipes de agentes](https://code.claude.com/docs/pt/agent-teams.md) estão desativadas por padrão, mas podem ser habilitadas adicionando `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` às suas [variáveis de ambiente](https://code.claude.com/docs/pt/cloud-environments.md#set-environment-variables).

290 290 

291### Sugestões de plugins na conversa

292 

293Um cartão na conversa que lista um ou mais [plugins](https://code.claude.com/docs/pt/plugins/overview.md), com um botão **Add**, significa que Claude está sugerindo plugins para sua tarefa. Claude pode fazer essas sugestões sem que você peça. Você não precisa responder, e Claude continua com a tarefa de qualquer forma.

294 

295#### Adicionar ou remover um plugin sugerido

296 

297Selecione **Add** em um plugin para ativá-lo na sua conta claude.ai, onde ele permanece ativado após o término da sessão. Para desfazer, abra o plugin adicionado a partir do cartão, selecione **Manage** para acessar a página do plugin em claude.ai e remova o plugin nessa página.

298 

299#### Desativar sugestões de plugins

300 

301Para impedir que Claude sugira plugins, negue as ferramentas `SearchPlugins` e `SuggestPluginInstall` com [regras de permissão](https://code.claude.com/docs/pt/permissions.md#manage-permissions). Em uma sessão com um repositório fora de um [projeto](https://code.claude.com/docs/pt/claude-projects.md), faça commit das regras no `.claude/settings.json` desse repositório, listando os dois nomes de ferramentas em `permissions.deny`:

302 

303```json theme={null}

304{

305 "permissions": {

306 "deny": ["SearchPlugins", "SuggestPluginInstall"]

307 }

308}

309```

310 

311Claude Code ignora as regras de permissão no `.claude/settings.json` do repositório, incluindo essas regras de negação, quando as [configurações gerenciadas](https://code.claude.com/docs/pt/managed-settings.md) que se aplicam à sessão definem [`allowManagedPermissionRulesOnly`](https://code.claude.com/docs/pt/settings-reference#allowmanagedpermissionrulesonly). Nesse caso, coloque as regras nessas configurações gerenciadas. Para outras configurações, como uma sessão com vários repositórios ou uma thread na nuvem em um projeto, veja quais [configurações chegam a uma sessão na nuvem](https://code.claude.com/docs/pt/settings.md#settings-in-cloud-sessions).

312 

291### Recuperar uma mensagem enfileirada313### Recuperar uma mensagem enfileirada

292 314 

293Se você enviar uma mensagem enquanto Claude está trabalhando, a mensagem fica enfileirada até que Claude a leia. Para recuperar uma mensagem enfileirada, clique no ✕ nela. O texto retorna à caixa de mensagem para que você possa editá-lo ou enviar algo diferente.315Se você enviar uma mensagem enquanto Claude está trabalhando, a mensagem fica enfileirada até que Claude a leia. Para recuperar uma mensagem enfileirada, clique no ✕ nela. O texto retorna à caixa de mensagem para que você possa editá-lo ou enviar algo diferente.

Details

103 103 

104Além da configuração que você cria, `~/.claude` contém dados que Claude Code escreve durante as sessões. Esses arquivos são texto simples. Qualquer coisa que passa por uma ferramenta é escrita em uma transcrição no disco: conteúdo de arquivos, saída de comandos, texto colado.104Além da configuração que você cria, `~/.claude` contém dados que Claude Code escreve durante as sessões. Esses arquivos são texto simples. Qualquer coisa que passa por uma ferramenta é escrita em uma transcrição no disco: conteúdo de arquivos, saída de comandos, texto colado.

105 105 

106A transcrição também pode conter o que Claude Code envia ao modelo junto com suas mensagens:

107 

108* O system prompt

109* Definições de ferramentas

110* Parâmetros de requisição

111* Os arquivos de instruções que ele carregou, como CLAUDE.md

112 

106### Limpeza automática113### Limpeza automática

107 114 

108Claude Code deleta os arquivos nos caminhos abaixo uma vez que tenham mais de [`cleanupPeriodDays`](https://code.claude.com/docs/pt/settings-reference#cleanupperioddays) de idade, desde que possa determinar com segurança o período de retenção. O padrão é 30 dias e o mínimo é 1; definir `0` falha com um erro de validação. O mesmo limite de idade se aplica à remoção automática de [worktrees órfãs](https://code.claude.com/docs/pt/worktrees.md#clean-up-subagent-and-background-session-worktrees).115Claude Code deleta os arquivos nos caminhos abaixo uma vez que tenham mais de [`cleanupPeriodDays`](https://code.claude.com/docs/pt/settings-reference#cleanupperioddays) de idade, desde que possa determinar com segurança o período de retenção. O padrão é 30 dias e o mínimo é 1; definir `0` falha com um erro de validação. O mesmo limite de idade se aplica à remoção automática de [worktrees órfãs](https://code.claude.com/docs/pt/worktrees.md#clean-up-subagent-and-background-session-worktrees).

109 116 

110| Caminho sob `~/.claude/` | Conteúdo |117| Caminho sob `~/.claude/` | Conteúdo |

111| - | - |118| - | - |

112| `projects/<project>/<session>.jsonl` | Transcrição completa da conversa: cada mensagem, chamada de ferramenta e resultado de ferramenta |119| `projects/<project>/<session>.jsonl` | Transcrição da conversa: mensagens, chamadas de ferramenta e resultados de ferramenta, além do system prompt, das definições de ferramentas e dos parâmetros das requisições que Claude Code enviou ao modelo |

113| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`, `projects/<project>/<session>.jsonl.superseded-<timestamp>` | Uma transcrição anterior da sessão que Claude Code separou em vez de sobrescrever ou deletar. Não aparece no seletor de sessão |120| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`, `projects/<project>/<session>.jsonl.superseded-<timestamp>` | Uma transcrição anterior da sessão que Claude Code separou em vez de sobrescrever ou deletar. Não aparece no seletor de sessão |

114| `projects/<project>/<session>/subagents/` | Transcrições de conversa de [Subagent](https://code.claude.com/docs/pt/sub-agents.md), removidas com a transcrição da sessão pai quando envelhece |121| `projects/<project>/<session>/subagents/` | Transcrições de [subagentes](https://code.claude.com/docs/pt/sub-agents.md) no mesmo formato da transcrição da sessão, removidas com a transcrição da sessão pai quando ela envelhece |

115| `projects/<project>/<session>/tool-results/` | Grandes saídas de ferramentas derramadas em arquivos separados, e cópias em tamanho completo de [imagens que ferramentas MCP retornam](https://code.claude.com/docs/pt/mcp.md#images-in-tool-results) |122| `projects/<project>/<session>/tool-results/` | Grandes saídas de ferramentas derramadas em arquivos separados, e cópias em tamanho completo de [imagens que ferramentas MCP retornam](https://code.claude.com/docs/pt/mcp.md#images-in-tool-results) |

116| `projects/<project>/<session>/mcp-tasks/` | O que uma sessão retomada precisa para acompanhar novamente suas [tarefas MCP](https://code.claude.com/docs/pt/mcp.md#mcp-tasks-that-run-on-the-server) em execução, e os resultados de tarefas concluídas que Claude ainda não leu |123| `projects/<project>/<session>/mcp-tasks/` | O que uma sessão retomada precisa para acompanhar novamente suas [tarefas MCP](https://code.claude.com/docs/pt/mcp.md#mcp-tasks-that-run-on-the-server) em execução, e os resultados de tarefas concluídas que Claude ainda não leu |

117| `file-history/<session>/` | Snapshots pré-edição de arquivos que Claude alterou, usados para [restauração de checkpoint](https://code.claude.com/docs/pt/checkpointing.md). Contém snapshots dos 100 checkpoints mais recentes; arquivos de snapshot que nenhum checkpoint retido referencia são deletados, exceto o primeiro snapshot de cada arquivo |124| `file-history/<session>/` | Snapshots pré-edição de arquivos que Claude alterou, usados para [restauração de checkpoint](https://code.claude.com/docs/pt/checkpointing.md). Contém snapshots dos 100 checkpoints mais recentes; arquivos de snapshot que nenhum checkpoint retido referencia são deletados, exceto o primeiro snapshot de cada arquivo |

Details

6 6 

7> Instale o plugin de Segurança Claude para digitalizar seu código em busca de vulnerabilidades em uma sessão Claude Code e transforme as descobertas em patches que você revisa e aplica.7> Instale o plugin de Segurança Claude para digitalizar seu código em busca de vulnerabilidades em uma sessão Claude Code e transforme as descobertas em patches que você revisa e aplica.

8 8 

9O plugin de Segurança Claude executa uma digitalização de vulnerabilidades multi-agente de seu código em uma sessão Claude Code. Uma equipe de agentes Claude mapeia sua arquitetura, constrói um modelo de ameaça, procura por vulnerabilidades e revisa independentemente cada descoberta antes de escrever o relatório. Use o plugin para digitalizar um repositório inteiro ou [apenas um conjunto de alterações](#scan-only-your-changes), como o diff de uma branch, o diff de uma solicitação de pull ou um único commit, depois transforme as descobertas que você escolher em patches que você revisa e aplica você mesmo.9O plugin Claude Security executa uma varredura de vulnerabilidades multiagente da sua base de código em uma sessão do Claude Code. [Por padrão](#choose-a-scan-effort), quando você faz a varredura de um repositório inteiro, agentes Claude mapeiam sua arquitetura, constroem um modelo de ameaças, procuram vulnerabilidades e revisam independentemente cada descoberta antes de escrever o relatório.

10 

11Use o plugin para fazer a varredura de um repositório inteiro ou de [apenas um conjunto de alterações](#scan-only-your-changes), como o diff de um branch, o diff de um pull request ou um único commit, e depois transforme as descobertas que você escolher em patches que você mesmo revisa e aplica.

10 12 

11O plugin é executado localmente na sua sessão, usa [quaisquer modelos aos quais você tenha acesso no Claude Code](#models-and-providers), e cada varredura conta para o seu [uso](https://code.claude.com/docs/pt/costs.md). Se você deseja um serviço gerenciado que monitore seus repositórios, ou deseja executar varreduras no [Claude Mythos](https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5), consulte o produto [Claude Security](https://claude.com/product/claude-security), disponível no plano Enterprise.13O plugin é executado localmente na sua sessão, usa [quaisquer modelos aos quais você tenha acesso no Claude Code](#models-and-providers), e cada varredura conta para o seu [uso](https://code.claude.com/docs/pt/costs.md). Se você deseja um serviço gerenciado que monitore seus repositórios, ou deseja executar varreduras no [Claude Mythos](https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5), consulte o produto [Claude Security](https://claude.com/product/claude-security), disponível no plano Enterprise.

12 14 


51 53 

52Assim que o plugin estiver ativo, você está pronto para [digitalizar e corrigir seu repositório de código](#scan-and-fix-your-codebase).54Assim que o plugin estiver ativo, você está pronto para [digitalizar e corrigir seu repositório de código](#scan-and-fix-your-codebase).

53 55 

56### Atualize o plugin

57 

58Para atualizar o plugin você mesmo, consulte [Atualizar plugins agora](https://code.claude.com/docs/pt/plugins/install.md#update-plugins-now). O Claude Code também [atualiza o plugin automaticamente](https://code.claude.com/docs/pt/plugins/install.md#keep-plugins-updated), a menos que a atualização automática esteja desativada.

59 

54### Desinstale o plugin60### Desinstale o plugin

55 61 

56Para remover o plugin, desinstale-o do menu `/plugin`, ou execute `claude plugin uninstall claude-security` em seu terminal.62Para remover o plugin, desinstale-o do menu `/plugin`, ou execute `claude plugin uninstall claude-security` em seu terminal.


95 101 

96Em um repositório grande, digitalize uma área por vez em vez de toda a árvore. Escolha um dos escopos focados que o plugin oferece, como sua camada de API ou seu código de autenticação, e a execução se dimensiona para o que você escolher. A seção de cobertura do relatório indica o que foi e o que não foi examinado. Execute outra digitalização em uma área diferente a qualquer momento.102Em um repositório grande, digitalize uma área por vez em vez de toda a árvore. Escolha um dos escopos focados que o plugin oferece, como sua camada de API ou seu código de autenticação, e a execução se dimensiona para o que você escolher. A seção de cobertura do relatório indica o que foi e o que não foi examinado. Execute outra digitalização em uma área diferente a qualquer momento.

97 103 

104### Escolha um esforço de digitalização

105 

106O esforço de digitalização define a profundidade de uma digitalização. Suas descobertas passam pela mesma verificação independente em `low`, `medium` e `high`.

107 

108* **`low`**: uma primeira olhada rápida. Ele pula o mapa de arquitetura e o modelo de ameaças quando você digitaliza sua base de código.

109* **`medium`**: o padrão.

110* **`high`**: o que `medium` faz, mais uma busca adicional por vulnerabilidades no mesmo código.

111 

112Indique o esforço de digitalização em sua solicitação no prompt do Claude Code, como `/claude-security scan my public API code at high` ou `/claude-security scan my branch at high`.

113 

114Se uma digitalização de um repositório grande encontrar menos do que você espera, escolha o esforço de digitalização `high`, digitalize uma segunda vez ou faça ambos. Cada um pode relatar descobertas que uma única digitalização `medium` não relata.

115 

98### Leia os resultados da digitalização116### Leia os resultados da digitalização

99 117 

100Cada digitalização escreve seus resultados em um diretório `CLAUDE-SECURITY-<timestamp>/` com timestamp em seu repositório:118Cada digitalização escreve seus resultados em um diretório `CLAUDE-SECURITY-<timestamp>/` com timestamp em seu repositório:


102* **`CLAUDE-SECURITY-RESULTS.md`**: o relatório, com o ID de cada descoberta, como `F1`, além de seu impacto, cenário de exploração, severidade, confiança e recomendação120* **`CLAUDE-SECURITY-RESULTS.md`**: o relatório, com o ID de cada descoberta, como `F1`, além de seu impacto, cenário de exploração, severidade, confiança e recomendação

103* **`CLAUDE-SECURITY-RESULTS.jsonl`**: as mesmas descobertas em forma legível por máquina, um objeto JSON por linha121* **`CLAUDE-SECURITY-RESULTS.jsonl`**: as mesmas descobertas em forma legível por máquina, um objeto JSON por linha

104* **`CLAUDE-SECURITY-RESULTS.sarif`**: as mesmas descobertas como um log [SARIF 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) para varredura de código do GitHub e qualquer outra ferramenta que leia o padrão. A digitalização classifica descobertas sob suas categorias de fraqueza [CWE](https://cwe.mitre.org/)122* **`CLAUDE-SECURITY-RESULTS.sarif`**: as mesmas descobertas como um log [SARIF 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) para varredura de código do GitHub e qualquer outra ferramenta que leia o padrão. A digitalização classifica descobertas sob suas categorias de fraqueza [CWE](https://cwe.mitre.org/)

105* **`CLAUDE-SECURITY-REVISION-<commit>.json`**: o carimbo de revisão, registrando qual commit foi digitalizado, com qual esforço, se alterações não confirmadas faziam parte da árvore digitalizada e quão completamente a execução foi verificada, para que um relatório sempre esteja vinculado ao código que descreve. Uma digitalização fora do controle de versão carimba `UNVERSIONED` no lugar do commit123* **`CLAUDE-SECURITY-REVISION-<commit>.json`**: o carimbo de revisão, registrando qual commit foi digitalizado, com qual [esforço de digitalização](#choose-a-scan-effort), se alterações sem commit faziam parte da árvore digitalizada e quão completamente a execução foi verificada, para que um relatório sempre esteja vinculado ao código que descreve. Uma digitalização fora do controle de versão carimba `UNVERSIONED` no lugar do commit

106 124 

107Esse diretório é a única alteração que uma digitalização faz em seu checkout, e ele carrega seu próprio `.gitignore`, para que um `git add` perdido nunca varre um relatório para um commit. Para manter um relatório no histórico para uma trilha de auditoria, delete esse único arquivo `.gitignore` e confirme o diretório como qualquer outro.125Esse diretório é a única alteração que uma digitalização faz em seu checkout, e ele carrega seu próprio `.gitignore`, para que um `git add` perdido nunca varre um relatório para um commit. Para manter um relatório no histórico para uma trilha de auditoria, delete esse único arquivo `.gitignore` e confirme o diretório como qualquer outro.

108 126 

desktop.md +64 −0

Details

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

995* **Rede**: o Claude Code é executado na máquina remota e faz suas requisições de rede a partir dali, portanto a máquina precisa do [acesso à rede que o Claude Code exige](https://code.claude.com/docs/pt/network-config.md#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 ainda saem da máquina remota. Em uma máquina remota Linux, se essas requisições precisarem de um proxy, [defina-o para sessões SSH](#set-a-proxy-or-a-ca-certificate-for-ssh-sessions).995* **Rede**: o Claude Code é executado na máquina remota e faz suas requisições de rede a partir dali, portanto a máquina precisa do [acesso à rede que o Claude Code exige](https://code.claude.com/docs/pt/network-config.md#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 ainda saem da máquina remota. Em uma máquina remota Linux, se essas requisições precisarem de um proxy, [defina-o para sessões SSH](#set-a-proxy-or-a-ca-certificate-for-ssh-sessions).

996 996 

997#### Verificar a chave de host de uma máquina remota

998 

999Uma chave de host é a chave que uma máquina remota apresenta para provar qual máquina ela é, e uma impressão digital é uma forma curta dessa chave. Quando você confia em uma chave, seu computador a salva e se conecta a qualquer coisa que a apresente, sem perguntar novamente. Verifique uma chave antes de confiar nela, porque algo pode estar interceptando a conexão.

1000 

1001Primeiro, descubra a qual máquina a chave pertence, com base em onde você vê a impressão digital:

1002 

1003* **O Desktop pergunta `Connect to <host> for the first time?`, ou você selecionou Review new key**: a máquina que o Desktop nomeia, `<host>`

1004* **O Desktop pergunta `Connect through <jump host> for the first time?`**: o jump host, que é a máquina pela qual sua conexão passa, não a máquina que você quer alcançar

1005* **O `ssh` pergunta ou avisa em um terminal**: a máquina que a mensagem dele nomeia, que pode não ser a que você digitou

1006 

1007Obtenha a impressão digital própria dessa máquina a partir da própria máquina, não pela conexão que você está verificando:

1008 

1009* **Outra pessoa gerencia a máquina**: peça a ela a impressão digital da chave de host

1010* **Você a gerencia, e ela executa Linux ou macOS**: execute `ssh-keygen -lf /etc/ssh/ssh_host_<type>_key.pub` nela, no console dela ou por uma conexão em que você já confia. Para `<type>`, use o tipo de chave que o Desktop ou o `ssh` mostra ao lado da impressão digital, em letras minúsculas: `ed25519` para `ED25519` ou `ssh-ed25519`.

1011 

1012Em seguida, compare a impressão digital própria da máquina com a que foi mostrada a você:

1013 

1014* **Elas coincidem**: confie na chave. Selecione **Trust and connect** ou **Trust new key** no Desktop, ou responda `yes` no terminal.

1015* **Elas diferem, ou você não consegue verificar**: não se conecte. Selecione **Cancel** no Desktop, ou responda `no` no terminal. Se outra pessoa gerencia a máquina, informe a ela qual impressão digital foi mostrada a você.

1016 

1017Se uma etapa de solução de problemas enviou você até aqui, volte para essa etapa depois de qualquer um dos resultados.

1018 

997#### Definir um proxy ou um certificado de CA para sessões SSH1019#### Definir um proxy ou um certificado de CA para sessões SSH

998 1020 

999Se uma máquina remota Linux acessa a internet por meio de um proxy ou precisa de um certificado de CA, adicione as [variáveis de proxy e de CA](https://code.claude.com/docs/pt/network-config.md) em `env` no `~/.claude/settings.json` dessa máquina. Adicione-as mesmo que você já as exporte em `~/.profile`, `~/.bash_profile`, `~/.zprofile` ou `~/.zshrc` nessa máquina.1021Se uma máquina remota Linux acessa a internet por meio de um proxy ou precisa de um certificado de CA, adicione as [variáveis de proxy e de CA](https://code.claude.com/docs/pt/network-config.md) em `env` no `~/.claude/settings.json` dessa máquina. Adicione-as mesmo que você já as exporte em `~/.profile`, `~/.bash_profile`, `~/.zprofile` ou `~/.zshrc` nessa máquina.


2135 2157 

2136Se 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.2158Se 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.

2137 2159 

2160### SSH host key verification failed

2161 

2162Cada uma destas mensagens significa que o Desktop recusou uma [chave de host](#check-a-remote-machines-host-key):

2163 

2164* `SSH host key verification failed` ou `Host denied (verification failed)` em **View details** em um cartão `Couldn't connect to <host>`

2165* `Connection failed: Host key changed or not trusted` junto à caixa de prompt ou após **Test connection**

2166* `<host>'s host key is not trusted` ou `<host>'s host key has changed` em uma sessão desconectada

2167 

2168O Desktop geralmente recusa uma chave porque ela difere da que está salva no seu computador, ou porque nenhuma chave está salva para essa máquina. Uma máquina que foi reconstruída ou reinstalada geralmente apresenta uma nova chave, assim como algo que intercepta a conexão. Verifique a chave antes de se conectar novamente, começando pelo que o Desktop mostra com a mensagem:

2169 

2170* **Você está no Windows e o Desktop diz `Connection failed: Host key changed or not trusted`**: primeiro descarte um [cliente OpenSSH ausente](#ssh-host-key-refused-on-windows-without-an-openssh-client)

2171* **O Desktop pede que você defina `UserKnownHostsFile`**: em `~/.ssh/config`, defina-o como `~/.ssh/known_hosts` e, em seguida, [verifique a chave a partir de um terminal](#check-the-host-key-from-a-terminal)

2172* **Você vê um botão Review new key**: selecione-o e [compare](#check-a-remote-machines-host-key) a impressão digital que o Desktop mostra com a da própria máquina. Se corresponderem, selecione **Trust new key** para substituir a chave salva. Caso contrário, selecione **Cancel**.

2173* **Você não vê nenhum botão Review new key, o Desktop mostra `Couldn't show the new key`, ou o Desktop recusa a chave novamente após Trust new key**: [verifique a chave a partir de um terminal](#check-the-host-key-from-a-terminal)

2174 

2175#### Verificar a chave de host a partir de um terminal

2176 

2177Execute `ssh <SSH host>` no seu computador, com o valor de **SSH host** da sua [conexão SSH](#ssh-sessions) no Desktop. Adicione `-p <SSH port>` se a conexão tiver um valor de **SSH port**. No Windows, use o PowerShell, porque o Desktop não se conecta com o `ssh` do Git Bash ou do WSL. Se o PowerShell não encontrar nenhum `ssh`, [instale o cliente OpenSSH da Microsoft](#ssh-host-key-refused-on-windows-without-an-openssh-client).

2178 

2179Observe qual máquina o `ssh` nomeia em sua mensagem, que pode ser um jump host e não `<SSH host>`, e siga o caso que se aplica:

2180 

2181* **O `ssh` pergunta se deve continuar conectando**: [compare](#check-a-remote-machines-host-key) a impressão digital que ele mostra com a da própria máquina. Responda `yes` somente se corresponderem.

2182* **O `ssh` avisa que a chave de host mudou**: [compare](#check-a-remote-machines-host-key) a impressão digital do aviso com a da própria máquina. Somente se corresponderem, exclua a linha que `Offending <type> key in <file>:<line>` indica e execute o `ssh` novamente. Se o `ssh` avisar novamente sobre outra linha, compare, exclua e execute novamente como antes.

2183* **O `ssh` recusa uma chave que não conhece, sem perguntar**: obtenha a linha `known_hosts` dessa máquina com quem a gerencia, não pela conexão que você está verificando. Adicione a linha ao seu arquivo `known_hosts`, com o nome da mensagem do `ssh` como nome de host, e execute o `ssh` novamente.

2184* **O `ssh` prossegue para fazer login sem perguntar sobre a chave de host**: não digite uma senha ainda. [Verifique as chaves em que o `ssh` já confia](#check-the-keys-that-ssh-already-trusts).

2185 

2186Assim que o `ssh` aceitar uma chave que você verificou ou adicionou, tente novamente no Desktop. Se o Desktop recusar a chave novamente, veja [Obter os logs do Desktop para um problema de SSH](#get-desktops-logs-for-an-ssh-problem).

2187 

2188##### Verificar as chaves em que o `ssh` já confia

2189 

2190Execute novamente o mesmo comando `ssh` com `-v -S none` adicionado. Na saída, uma linha `Server host key:` mostra uma impressão digital, e a linha `Host '<name>' is known` seguinte nomeia a máquina a que ela pertence. [Compare](#check-a-remote-machines-host-key) cada impressão digital que você encontrar com a da própria máquina.

2191 

2192* **Um jump host não tem linha `Server host key:`**: execute também `ssh -v -S none <jump host>` e compare essa impressão digital da mesma forma.

2193* **Uma impressão digital não corresponde, ou você não consegue verificá-la**: não se conecte novamente. Remova a chave salva: em `Host '<name>' is known`, a linha `Found key in <file>:<line>` indica o arquivo que a contém. Execute `ssh-keygen -R "<name>" -f <file>`. Se você mantém chaves de host em mais de um arquivo, remova a chave de cada um. Se você não puder alterar um arquivo, avise quem gerencia seu computador.

2194* **Todas as impressões digitais correspondem**: tente novamente no Desktop. Se o Desktop recusar a chave novamente, veja [Obter os logs do Desktop para um problema de SSH](#get-desktops-logs-for-an-ssh-problem).

2195 

2196### Chave de host SSH recusada no Windows sem um cliente OpenSSH

2197 

2198No Windows sem um cliente OpenSSH, o Desktop recusa até mesmo uma chave de host correta, com `Connection failed: Host key changed or not trusted`. Ele precisa do cliente para consultar as chaves salvas. Para ver se você tem um, execute `ssh` no PowerShell. Se o PowerShell não reconhecer `ssh`, instale o [cliente OpenSSH da Microsoft](https://learn.microsoft.com/windows-server/administration/openssh/openssh_install_firstuse) e reinicie o Desktop.

2199 

2200Em seguida, conecte-se novamente. Se o Desktop perguntar se deve se conectar pela primeira vez, [verifique a chave de host da máquina](#check-a-remote-machines-host-key) antes de confiar nela. Se o Desktop ainda recusar a chave, siga os outros casos em [SSH host key verification failed](#ssh-host-key-verification-failed).

2201 

2138### A conexão SSH falha depois que você faz login2202### A conexão SSH falha depois que você faz login

2139 2203 

2140Encontre 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.2204Encontre 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.

env-vars.md +2 −2

Details

236| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Defina como `1` para remover o parâmetro `run_in_background` das ferramentas Bash, PowerShell e de subagente, e para desativar o atalho Ctrl+B e as execuções em segundo plano de [skills bifurcadas](https://code.claude.com/docs/pt/skills.md#run-skills-in-a-subagent). O Claude Code então também deixa de mover automaticamente para segundo plano subagentes, chamadas longas de ferramentas MCP e comandos de shell que atingiram o timeout. As [tarefas MCP](https://code.claude.com/docs/pt/mcp.md#make-claude-wait-for-the-result-of-an-mcp-task) e a [ferramenta Monitor](https://code.claude.com/docs/pt/tools-reference.md#monitor-tool) continuam sendo executadas em segundo plano |236| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Defina como `1` para remover o parâmetro `run_in_background` das ferramentas Bash, PowerShell e de subagente, e para desativar o atalho Ctrl+B e as execuções em segundo plano de [skills bifurcadas](https://code.claude.com/docs/pt/skills.md#run-skills-in-a-subagent). O Claude Code então também deixa de mover automaticamente para segundo plano subagentes, chamadas longas de ferramentas MCP e comandos de shell que atingiram o timeout. As [tarefas MCP](https://code.claude.com/docs/pt/mcp.md#make-claude-wait-for-the-result-of-an-mcp-task) e a [ferramenta Monitor](https://code.claude.com/docs/pt/tools-reference.md#monitor-tool) continuam sendo executadas em segundo plano |

237| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Defina como `1` para impedir que o Claude Code trate uma resposta de streaming do [Amazon Bedrock](https://code.claude.com/docs/pt/amazon-bedrock.md) com um cabeçalho `Content-Type` ausente ou vazio como o stream de eventos binário do Amazon Bedrock. Por padrão, o Claude Code presume que um gateway removeu o cabeçalho de uma resposta que, de resto, não foi modificada; então ele decodifica o corpo e o streaming continua funcionando. Defina-a apenas para um gateway que também reemite o stream como server-sent events; o Claude Code então lê o corpo sem cabeçalho como server-sent events. Requer o Claude Code v2.1.239 ou posterior |237| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Defina como `1` para impedir que o Claude Code trate uma resposta de streaming do [Amazon Bedrock](https://code.claude.com/docs/pt/amazon-bedrock.md) com um cabeçalho `Content-Type` ausente ou vazio como o stream de eventos binário do Amazon Bedrock. Por padrão, o Claude Code presume que um gateway removeu o cabeçalho de uma resposta que, de resto, não foi modificada; então ele decodifica o corpo e o streaming continua funcionando. Defina-a apenas para um gateway que também reemite o stream como server-sent events; o Claude Code então lê o corpo sem cabeçalho como server-sent events. Requer o Claude Code v2.1.239 ou posterior |

238| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Defina como `1` para ignorar a verificação de que uma resposta de streaming do [Amazon Bedrock](https://code.claude.com/docs/pt/amazon-bedrock.md) tem o content-type `application/vnd.amazon.eventstream`. Sem esta variável, quando uma resposta tem um content-type diferente, o Claude Code faz a requisição falhar com um erro que nomeia esse tipo, o que significa que um [gateway ou proxy está transformando a resposta](https://code.claude.com/docs/pt/amazon-bedrock.md#streaming-errors-behind-a-gateway-or-proxy). Configure o gateway para encaminhar o cabeçalho `Content-Type` e o corpo sem modificações, em vez de definir esta variável. Requer o Claude Code v2.1.208 ou posterior |238| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Defina como `1` para ignorar a verificação de que uma resposta de streaming do [Amazon Bedrock](https://code.claude.com/docs/pt/amazon-bedrock.md) tem o content-type `application/vnd.amazon.eventstream`. Sem esta variável, quando uma resposta tem um content-type diferente, o Claude Code faz a requisição falhar com um erro que nomeia esse tipo, o que significa que um [gateway ou proxy está transformando a resposta](https://code.claude.com/docs/pt/amazon-bedrock.md#streaming-errors-behind-a-gateway-or-proxy). Configure o gateway para encaminhar o cabeçalho `Content-Type` e o corpo sem modificações, em vez de definir esta variável. Requer o Claude Code v2.1.208 ou posterior |

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

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

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

242| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Defina como `1` para manter as ferramentas de navegador do [Claude in Chrome](https://code.claude.com/docs/pt/chrome.md) disponíveis enquanto omite a seção do Chrome do system prompt e a [skill incluída](https://code.claude.com/docs/pt/skills.md#bundled-skills) `/claude-in-chrome`. Destinada a hosts que incorporam o Claude Code e fornecem suas próprias orientações de navegador. Requer o Claude Code v2.1.257 ou posterior |242| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Defina como `1` para manter as ferramentas de navegador do [Claude in Chrome](https://code.claude.com/docs/pt/chrome.md) disponíveis enquanto omite a seção do Chrome do system prompt e a [skill incluída](https://code.claude.com/docs/pt/skills.md#bundled-skills) `/claude-in-chrome`. Destinada a hosts que incorporam o Claude Code e fornecem suas próprias orientações de navegador. Requer o Claude Code v2.1.257 ou posterior |

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

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

245| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Defina como `1` para desativar o limite de tempo nos prompts de [remoção de caminhos críticos](https://code.claude.com/docs/pt/permission-modes.md#critical-paths). No modo `auto`, o Claude Code passa então a enviar essas remoções ao classificador e, no modo `bypassPermissions`, o prompt aguarda sua resposta. 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.281 ou posterior |245| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Defina como `1` para desativar o [limite de tempo e as negações](https://code.claude.com/docs/pt/permission-modes.md#time-limits-and-denials-in-auto-and-bypasspermissions-modes) de `auto` e `bypassPermissions` em remoções de caminhos críticos. Essas remoções então vão para o classificador no modo `auto` e recebem um prompt sem limite de tempo no modo `bypassPermissions` sempre que o Claude Code puder exibir um. Defina-a no ambiente que inicia o Claude Code, já que o Claude Code ignora uma cópia entregue por meio de um bloco `env` de configurações. Requer Claude Code v2.1.281 ou posterior |

246| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Defina como `1` para remover os cabeçalhos de requisição `anthropic-beta` de pré-lançamento, os campos do corpo associados a eles e os campos beta de esquema de ferramentas, como `defer_loading` e `eager_input_streaming`, das requisições de API. Use quando um gateway proxy rejeitar requisições com um erro `Unexpected value(s)` para o cabeçalho `anthropic-beta` ou um erro `Extra inputs are not permitted`. [Desativar recursos de pré-lançamento](https://code.claude.com/docs/pt/llm-gateway-protocol.md#disable-pre-release-capabilities) lista o que a variável remove, incluindo o [MCP Tool Search](https://code.claude.com/docs/pt/mcp.md#scale-with-mcp-tool-search), e o que o Claude Code continua enviando |246| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Defina como `1` para remover os cabeçalhos de requisição `anthropic-beta` de pré-lançamento, os campos do corpo associados a eles e os campos beta de esquema de ferramentas, como `defer_loading` e `eager_input_streaming`, das requisições de API. Use quando um gateway proxy rejeitar requisições com um erro `Unexpected value(s)` para o cabeçalho `anthropic-beta` ou um erro `Extra inputs are not permitted`. [Desativar recursos de pré-lançamento](https://code.claude.com/docs/pt/llm-gateway-protocol.md#disable-pre-release-capabilities) lista o que a variável remove, incluindo o [MCP Tool Search](https://code.claude.com/docs/pt/mcp.md#scale-with-mcp-tool-search), e o que o Claude Code continua enviando |

247| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Defina como `1` para desativar os [subagentes Explore e Plan](https://code.claude.com/docs/pt/sub-agents.md#built-in-subagents) integrados. O Claude explora com suas ferramentas de busca ou com o subagente general-purpose, e o [modo de planejamento](https://code.claude.com/docs/pt/permission-modes.md#analyze-before-you-edit-with-plan-mode) lê arquivos diretamente em vez de iniciar agentes Explore e Plan. Subagentes personalizados chamados `Explore` ou `Plan` não são afetados. Para remover todos os tipos de subagente integrados no Agent SDK ou no modo não interativo, use `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`. Requer o Claude Code v2.1.198 ou posterior |247| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Defina como `1` para desativar os [subagentes Explore e Plan](https://code.claude.com/docs/pt/sub-agents.md#built-in-subagents) integrados. O Claude explora com suas ferramentas de busca ou com o subagente general-purpose, e o [modo de planejamento](https://code.claude.com/docs/pt/permission-modes.md#analyze-before-you-edit-with-plan-mode) lê arquivos diretamente em vez de iniciar agentes Explore e Plan. Subagentes personalizados chamados `Explore` ou `Plan` não são afetados. Para remover todos os tipos de subagente integrados no Agent SDK ou no modo não interativo, use `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`. Requer o Claude Code v2.1.198 ou posterior |

248| `CLAUDE_CODE_DISABLE_FAST_MODE` | Defina como `1` para desativar o [modo rápido](https://code.claude.com/docs/pt/fast-mode.md) |248| `CLAUDE_CODE_DISABLE_FAST_MODE` | Defina como `1` para desativar o [modo rápido](https://code.claude.com/docs/pt/fast-mode.md) |

errors.md +34 −2

Details

244| `MCP server "<name>" was not saved to` / `was not removed from` | [Command-line errors](#mcp-server-was-not-saved-or-removed) |244| `MCP server "<name>" was not saved to` / `was not removed from` | [Command-line errors](#mcp-server-was-not-saved-or-removed) |

245| `MCP server "<name>" may not have been saved` / `may not have been removed` | [Command-line errors](#mcp-server-may-not-have-been-saved-or-removed) |245| `MCP server "<name>" may not have been saved` / `may not have been removed` | [Command-line errors](#mcp-server-may-not-have-been-saved-or-removed) |

246| `Server rejected the Authorization header minted by the configured headersHelper` | [Command-line errors](#server-rejected-the-authorization-header-minted-by-the-configured-headershelper) |246| `Server rejected the Authorization header minted by the configured headersHelper` | [Command-line errors](#server-rejected-the-authorization-header-minted-by-the-configured-headershelper) |

247| `This server (Java MCP SDK 0.17.0 or older) rejected Claude Code's elicitation capability` | [Erros de linha de comando](#mcp-server-rejected-the-elicitation-capability) |

247| `Error: MCP tool <name> (passed via --permission-prompt-tool) not found` | [Command-line errors](#mcp-permission-prompt-tool-not-found) |248| `Error: MCP tool <name> (passed via --permission-prompt-tool) not found` | [Command-line errors](#mcp-permission-prompt-tool-not-found) |

248| `OAuth callback port <port> is already in use — another process may be holding it` | [Command-line errors](#oauth-callback-port-is-already-in-use) |249| `OAuth callback port <port> is already in use — another process may be holding it` | [Command-line errors](#oauth-callback-port-is-already-in-use) |

249| `No available ports for OAuth redirect` | [Command-line errors](#no-available-ports-for-oauth-redirect) |250| `No available ports for OAuth redirect` | [Command-line errors](#no-available-ports-for-oauth-redirect) |


3280* **`Error: Workspace not trusted. <folder> is your home directory`**: como a confiança para seu diretório pessoal nunca é salva, executar `claude` ali primeiro não ajuda. Execute `claude ultrareview` a partir de um diretório de projeto, depois de executar `claude` ali uma vez para aceitar a caixa de diálogo de confiança, ou acrescente `--trust-workspace`.3281* **`Error: Workspace not trusted. <folder> is your home directory`**: como a confiança para seu diretório pessoal nunca é salva, executar `claude` ali primeiro não ajuda. Execute `claude ultrareview` a partir de um diretório de projeto, depois de executar `claude` ali uma vez para aceitar a caixa de diálogo de confiança, ou acrescente `--trust-workspace`.

3281* **`No answer in time.` seguido de `Error: Workspace not trusted`**: a pergunta `Trust <folder>? [y/N]` ficou sem resposta por 5 minutos. Execute `claude ultrareview` novamente e responda.3282* **`No answer in time.` seguido de `Error: Workspace not trusted`**: a pergunta `Trust <folder>? [y/N]` ficou sem resposta por 5 minutos. Execute `claude ultrareview` novamente e responda.

3282* **`Ultrareview did not start: <folder> is not trusted`**: você recusou na pergunta `Trust <folder>? [y/N]`, por exemplo respondendo `n` ou pressionando Enter. Para iniciar a revisão, execute `claude ultrareview` novamente e responda `y`.3283* **`Ultrareview did not start: <folder> is not trusted`**: você recusou na pergunta `Trust <folder>? [y/N]`, por exemplo respondendo `n` ou pressionando Enter. Para iniciar a revisão, execute `claude ultrareview` novamente e responda `y`.

3283* **``Ultrareview did not start: `--trust-workspace` takes no value``**: algo que não é uma flag vem depois de `--trust-workspace`, como um número de PR ou `false`. Se você não confia na pasta, omita a flag. Para confiar nela nesta execução, coloque o número do PR ou o branch base antes da flag: `claude ultrareview 1234 --trust-workspace`.3284* **``Ultrareview did not start: `--trust-workspace` takes no value``**: algo que não é uma flag segue `--trust-workspace`, como um número de PR ou `false`. Se você não confia na pasta, omita a flag. Para confiar nela nesta execução, coloque o número do PR ou o branch base antes da flag: `claude ultrareview 1234 --trust-workspace`.

3284 3285 

3285Antes da v2.1.309, `claude ultrareview` não aceitava `--trust-workspace`.3286Antes da v2.1.309, `claude ultrareview` não aceitava `--trust-workspace`.

3286 3287 


3473 3474 

3474Antes da v2.1.248, o Claude Code executava a descoberta OAuth para um servidor cujo helper fornecia o cabeçalho `Authorization`. Essa descoberta podia falhar com `Incompatible auth server: does not support dynamic client registration` em vez de relatar a credencial rejeitada.3475Antes da v2.1.248, o Claude Code executava a descoberta OAuth para um servidor cujo helper fornecia o cabeçalho `Authorization`. Essa descoberta podia falhar com `Incompatible auth server: does not support dynamic client registration` em vez de relatar a credencial rejeitada.

3475 3476 

3477### O servidor MCP rejeitou a capacidade de elicitation

3478 

3479Um servidor MCP criado com o Java MCP SDK de 0.11.0 a 0.17.0 recusou a conexão. Essas versões do SDK não conseguem analisar os [modos de elicitation](https://code.claude.com/docs/pt/mcp.md#elicitation-modes-claude-code-declares) `form` e `url` que o Claude Code declara em seu handshake. `claude mcp list` mostra o servidor como com falha, com esta mensagem no lugar do erro do próprio servidor:

3480 

3481```text theme={null}

3482This server (Java MCP SDK 0.17.0 or older) rejected Claude Code's elicitation capability. Set "bareElicitationCapability": true for it, or upgrade to Java MCP SDK 0.17.1+ (Spring AI 1.0.7+ or 1.1.6+).

3483```

3484 

3485**O que fazer:**

3486 

3487* Atualize o servidor para o Java MCP SDK 0.17.1 ou posterior, ou para uma das versões do Spring AI indicadas na mensagem

3488* Ou adicione `"bareElicitationCapability": true` à entrada desse servidor na sua configuração de MCP e reinicie o Claude Code. O campo é aceito em entradas stdio, `sse`, `http` e `ws` e requer o Claude Code v2.1.281 ou posterior

3489 

3490Esta entrada de `.mcp.json` define o campo para um servidor HTTP:

3491 

3492```json theme={null}

3493{

3494 "mcpServers": {

3495 "inventory": {

3496 "type": "http",

3497 "url": "https://mcp.example.com/mcp",

3498 "bareElicitationCapability": true

3499 }

3500 }

3501}

3502```

3503 

3504Após a reinicialização, `/mcp` mostra o servidor como conectado. O Claude Code declara o modo form somente para esse servidor, então remova o campo assim que atualizá-lo.

3505 

3506Um servidor também pode falhar com seu próprio texto de erro, como um contendo `Unrecognized field "form"`. As mesmas correções se aplicam.

3507 

3476### Ferramenta de prompt de permissão MCP não encontrada3508### Ferramenta de prompt de permissão MCP não encontrada

3477 3509 

3478A ferramenta que você passou para [`--permission-prompt-tool`](https://code.claude.com/docs/pt/cli-reference#cli-flags) não estava entre as ferramentas MCP conectadas quando a execução precisou pela primeira vez de uma decisão de permissão, seja porque seu servidor nunca se conectou, seja porque nenhum servidor conectado expõe uma ferramenta com esse nome. O Claude Code ainda envia seu prompt: a execução [não interativa](https://code.claude.com/docs/pt/headless.md) sai com este erro, e código de saída 1, na primeira chamada de ferramenta, então não produz nenhuma resposta mesmo que a requisição tenha sido feita. Antes do primeiro prompt, o Claude Code aguarda até o timeout de conexão por servidor de 30 segundos, definido por [`MCP_TIMEOUT`](https://code.claude.com/docs/pt/env-vars), para que esse servidor se conecte. Antes da v2.1.206, a inicialização não esperava o servidor terminar de se conectar, então um servidor saudável, mas lento para iniciar, também produzia este erro.3510A ferramenta que você passou para [`--permission-prompt-tool`](https://code.claude.com/docs/pt/cli-reference#cli-flags) não estava entre as ferramentas MCP conectadas quando a execução precisou pela primeira vez de uma decisão de permissão, seja porque seu servidor nunca se conectou, seja porque nenhum servidor conectado expõe uma ferramenta com esse nome. O Claude Code ainda envia seu prompt: a execução [não interativa](https://code.claude.com/docs/pt/headless.md) sai com este erro, e código de saída 1, na primeira chamada de ferramenta, então não produz nenhuma resposta mesmo que a requisição tenha sido feita. Antes do primeiro prompt, o Claude Code aguarda até o timeout de conexão por servidor de 30 segundos, definido por [`MCP_TIMEOUT`](https://code.claude.com/docs/pt/env-vars), para que esse servidor se conecte. Antes da v2.1.206, a inicialização não esperava o servidor terminar de se conectar, então um servidor saudável, mas lento para iniciar, também produzia este erro.


3541 3573 

3542Mensagens semelhantes são disparadas antes mesmo de o comando ser executado:3574Mensagens semelhantes são disparadas antes mesmo de o comando ser executado:

3543 3575 

3544* `Shell command permission check failed for pattern "..."`: a verificação de permissão do comando não o permitiu. [Verificações de permissão em comandos injetados](https://code.claude.com/docs/pt/skills.md#permission-checks-on-injected-commands) explica quais resultados abortam em cada modo de permissão e como pré-aprovar um comando com `allowed-tools`3576* `Shell command permission check failed for pattern "..."`: a verificação de permissão do comando não o permitiu. [Verificações de permissão em comandos injetados](https://code.claude.com/docs/pt/skills.md#permission-checks-on-injected-commands) aborda quais resultados causam o aborto em cada modo de permissão e como pré-aprovar um comando com `allowed-tools`

3545* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: o frontmatter da skill exige bash em uma máquina que não o tem. Instale o Git for Windows ou altere o frontmatter para `shell: powershell`. Consulte [Como os comandos injetados são executados](https://code.claude.com/docs/pt/skills.md#how-injected-commands-run)3577* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: o frontmatter da skill exige bash em uma máquina que não o tem. Instale o Git for Windows ou altere o frontmatter para `shell: powershell`. Consulte [Como os comandos injetados são executados](https://code.claude.com/docs/pt/skills.md#how-injected-commands-run)

3546* `No shell command in <name> was run`: um dos comandos `!` do arquivo contém um caractere de controle bruto diferente de tab ou nova linha, então nenhum deles é executado. Consulte [como encontrar e remover o caractere](#no-shell-command-was-run)3578* `No shell command in <name> was run`: um dos comandos `!` do arquivo contém um caractere de controle bruto diferente de tab ou nova linha, então nenhum deles é executado. Consulte [como encontrar e remover o caractere](#no-shell-command-was-run)

3547 3579 

hooks.md +1 −1

Details

1957 1957 

1958| Campo | Descrição |1958| Campo | Descrição |

1959| :- | :- |1959| :- | :- |

1960| `permissionDecision` | `"allow"` pula o prompt de permissão, exceto para [ações que nenhum modo aprova automaticamente](https://code.claude.com/docs/pt/permission-modes.md#actions-no-mode-auto-approves) e [leituras de caminhos de rede](https://code.claude.com/docs/pt/permissions.md#network-paths). `AskUserQuestion` e `ExitPlanMode` precisam de [`updatedInput` combinado com `"allow"`](#allow-with-updatedinput). Para o modo de planejamento, consulte [Aprovações de hooks no modo de planejamento](https://code.claude.com/docs/pt/permissions.md#hook-approvals-in-plan-mode). `"deny"` impede a chamada de ferramenta. `"ask"` pede ao usuário que confirme. `"defer"` encerra o turno para que a ferramenta possa ser retomada depois, e exige o [modo não interativo](#defer-a-tool-call-for-later) com a flag `-p`. As [regras de negação e de pergunta](https://code.claude.com/docs/pt/permissions.md#manage-permissions) continuam sendo avaliadas independentemente do que o hook retornar |1960| `permissionDecision` | `"allow"` pula o prompt de permissão, exceto para [ações que nenhum modo aprova automaticamente](https://code.claude.com/docs/pt/permission-modes.md#actions-no-mode-auto-approves) e [leituras de caminhos de rede](https://code.claude.com/docs/pt/permissions.md#network-paths). Ele também não pula a aprovação de chamadas a [ferramentas que um aplicativo do Agent SDK marca como `always_ask`](https://code.claude.com/docs/pt/agent-sdk/custom-tools#require-approval-for-specific-tools), a menos que o [modo de permissão aprove a chamada](https://code.claude.com/docs/pt/agent-sdk/typescript.md#permission-modes-that-can-approve-an-always_ask-call). `AskUserQuestion` e `ExitPlanMode` precisam de [`updatedInput` combinado com `"allow"`](#allow-with-updatedinput). Para o modo de planejamento, consulte [Aprovações de hooks no modo de planejamento](https://code.claude.com/docs/pt/permissions.md#hook-approvals-in-plan-mode). `"deny"` impede a chamada de ferramenta. `"ask"` pede ao usuário que confirme. `"defer"` encerra o turno para que a ferramenta possa ser retomada depois e exige o [modo não interativo](#defer-a-tool-call-for-later) com a flag `-p`. As [regras de deny e ask](https://code.claude.com/docs/pt/permissions.md#manage-permissions) continuam sendo avaliadas, independentemente do que o hook retorne |

1961| `permissionDecisionReason` | Para `"ask"`, mostrado ao usuário no prompt de permissão. Quando o Claude Code [nega a chamada](https://code.claude.com/docs/pt/headless.md#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) |1961| `permissionDecisionReason` | Para `"ask"`, mostrado ao usuário no prompt de permissão. Quando o Claude Code [nega a chamada](https://code.claude.com/docs/pt/headless.md#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) |

1962| `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](https://code.claude.com/docs/pt/tools-reference.md#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 |1962| `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](https://code.claude.com/docs/pt/tools-reference.md#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 |

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

hooks-guide.md +2 −0

Details

629 629 

630* Leituras de [caminhos de rede](https://code.claude.com/docs/pt/permissions.md#network-paths)630* Leituras de [caminhos de rede](https://code.claude.com/docs/pt/permissions.md#network-paths)

631* Ferramentas MCP marcadas [`requiresUserInteraction`](https://code.claude.com/docs/pt/mcp#require-approval-for-a-specific-tool)631* Ferramentas MCP marcadas [`requiresUserInteraction`](https://code.claude.com/docs/pt/mcp#require-approval-for-a-specific-tool)

632* Chamadas a [ferramentas que um app do Agent SDK marca como `always_ask`](https://code.claude.com/docs/pt/agent-sdk/custom-tools#require-approval-for-specific-tools), a menos que o [modo de permissão aprove a chamada](https://code.claude.com/docs/pt/agent-sdk/typescript.md#permission-modes-that-can-approve-an-always_ask-call)

632* Ferramentas de conector [que sua organização definiu como `ask`](https://code.claude.com/docs/pt/mcp#organization-controls-on-connector-tools) em sessões onde essa configuração chega ao Claude Code633* Ferramentas de conector [que sua organização definiu como `ask`](https://code.claude.com/docs/pt/mcp#organization-controls-on-connector-tools) em sessões onde essa configuração chega ao Claude Code

633 634 

634 Para o que `"allow"` faz no modo de planejamento, consulte [Aprovações de hook no modo de planejamento](https://code.claude.com/docs/pt/permissions.md#hook-approvals-in-plan-mode).635 Para o que `"allow"` faz no modo de planejamento, consulte [Aprovações de hook no modo de planejamento](https://code.claude.com/docs/pt/permissions.md#hook-approvals-in-plan-mode).


963* **O que ainda prevalece sobre `"allow"`**: um hook retornando `"allow"` não contorna regras de negação de configurações, e não pode suprimir o prompt para:964* **O que ainda prevalece sobre `"allow"`**: um hook retornando `"allow"` não contorna regras de negação de configurações, e não pode suprimir o prompt para:

964 * Leituras de [caminhos de rede](https://code.claude.com/docs/pt/permissions.md#network-paths)965 * Leituras de [caminhos de rede](https://code.claude.com/docs/pt/permissions.md#network-paths)

965 * Ferramentas MCP marcadas [`requiresUserInteraction`](https://code.claude.com/docs/pt/mcp#require-approval-for-a-specific-tool)966 * Ferramentas MCP marcadas [`requiresUserInteraction`](https://code.claude.com/docs/pt/mcp#require-approval-for-a-specific-tool)

967 * Chamadas a [ferramentas que um app do Agent SDK marca como `always_ask`](https://code.claude.com/docs/pt/agent-sdk/custom-tools#require-approval-for-specific-tools), a menos que o [modo de permissão aprove a chamada](https://code.claude.com/docs/pt/agent-sdk/typescript.md#permission-modes-that-can-approve-an-always_ask-call)

966 * Ferramentas de conector [que sua organização definiu como `ask`](https://code.claude.com/docs/pt/mcp#organization-controls-on-connector-tools) em sessões onde essa configuração chega ao Claude Code968 * Ferramentas de conector [que sua organização definiu como `ask`](https://code.claude.com/docs/pt/mcp#organization-controls-on-connector-tools) em sessões onde essa configuração chega ao Claude Code

967 969 

968Em [modo de planejamento](https://code.claude.com/docs/pt/permissions.md#hook-approvals-in-plan-mode), se seu hook `PreToolUse` retornar `"allow"` para uma edição de arquivo, você recebe o mesmo prompt, bloqueio ou aprovação que a edição receberia sem nenhum hook. Para remover este limite nas aprovações de hooks, [aprove o plano](https://code.claude.com/docs/pt/permission-modes.md#review-and-approve-a-plan) ou mude para outro modo de permissão.970Em [modo de planejamento](https://code.claude.com/docs/pt/permissions.md#hook-approvals-in-plan-mode), se seu hook `PreToolUse` retornar `"allow"` para uma edição de arquivo, você recebe o mesmo prompt, bloqueio ou aprovação que a edição receberia sem nenhum hook. Para remover este limite nas aprovações de hooks, [aprove o plano](https://code.claude.com/docs/pt/permission-modes.md#review-and-approve-a-plan) ou mude para outro modo de permissão.

Details

407| [`managedMcpServers`](https://code.claude.com/docs/pt/settings-reference#managedmcpservers) | Servidores MCP remotos fornecidos a cada usuário junto com os seus próprios. Fornece servidores em vez de bloquear qualquer coisa. Veja [Fornecer servidores através de configurações gerenciadas](https://code.claude.com/docs/pt/managed-mcp.md#provide-servers-through-managed-settings). Requer Claude Code v2.1.259 ou posterior |407| [`managedMcpServers`](https://code.claude.com/docs/pt/settings-reference#managedmcpservers) | Servidores MCP remotos fornecidos a cada usuário junto com os seus próprios. Fornece servidores em vez de bloquear qualquer coisa. Veja [Fornecer servidores através de configurações gerenciadas](https://code.claude.com/docs/pt/managed-mcp.md#provide-servers-through-managed-settings). Requer Claude Code v2.1.259 ou posterior |

408| [`managedSourcesBehavior`](https://code.claude.com/docs/pt/settings-reference#managedsourcesbehavior) | Se Claude Code aplica apenas a fonte gerenciada de prioridade mais alta ou [compõe cada uma delas](#compose-every-managed-source) |408| [`managedSourcesBehavior`](https://code.claude.com/docs/pt/settings-reference#managedsourcesbehavior) | Se Claude Code aplica apenas a fonte gerenciada de prioridade mais alta ou [compõe cada uma delas](#compose-every-managed-source) |

409| [`parentSettingsBehavior`](https://code.claude.com/docs/pt/settings-reference#parentsettingsbehavior) | Se as configurações pai fornecidas pelo host são mescladas sob a política gerenciada |409| [`parentSettingsBehavior`](https://code.claude.com/docs/pt/settings-reference#parentsettingsbehavior) | Se as configurações pai fornecidas pelo host são mescladas sob a política gerenciada |

410| [`pluginSuggestionMarketplaces`](https://code.claude.com/docs/pt/settings-reference#pluginsuggestionmarketplaces) | Marketplaces cujos plugins Claude Code pode sugerir aos usuários |410| [`pluginSuggestionMarketplaces`](https://code.claude.com/docs/pt/settings-reference#pluginsuggestionmarketplaces) | Marketplaces cujos plugins Claude Code pode sugerir aos usuários no terminal |

411| [`pluginTrustMessage`](https://code.claude.com/docs/pt/settings-reference#plugintrustmessage) | Mensagem personalizada anexada ao aviso de confiança de plugin mostrado antes da instalação |411| [`pluginTrustMessage`](https://code.claude.com/docs/pt/settings-reference#plugintrustmessage) | Mensagem personalizada anexada ao aviso de confiança de plugin mostrado antes da instalação |

412| [`policyHelper`](https://code.claude.com/docs/pt/settings-reference#policyhelper) | Executável que calcula configurações gerenciadas na inicialização; veja [Calcular configurações gerenciadas com um auxiliar de política](https://code.claude.com/docs/pt/settings-reference.md#policyhelper) |412| [`policyHelper`](https://code.claude.com/docs/pt/settings-reference#policyhelper) | Executável que calcula configurações gerenciadas na inicialização; veja [Calcular configurações gerenciadas com um auxiliar de política](https://code.claude.com/docs/pt/settings-reference.md#policyhelper) |

413| [`sandbox.filesystem.allowManagedReadPathsOnly`](https://code.claude.com/docs/pt/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) | Quando `true`, apenas caminhos `filesystem.allowRead` das configurações gerenciadas são respeitados. `denyRead` ainda é mesclado de todas as fontes |413| [`sandbox.filesystem.allowManagedReadPathsOnly`](https://code.claude.com/docs/pt/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) | Quando `true`, apenas caminhos `filesystem.allowRead` das configurações gerenciadas são respeitados. `denyRead` ainda é mesclado de todas as fontes |

mcp.md +10 −1

Details

1624 1624 

1625Se você está construindo um servidor MCP que usa elicitação, consulte a [especificação de elicitação MCP](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation) para detalhes do protocolo e exemplos de esquema.1625Se você está construindo um servidor MCP que usa elicitação, consulte a [especificação de elicitação MCP](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation) para detalhes do protocolo e exemplos de esquema.

1626 1626 

1627Em conexões que usam [revisão de protocolo 2026-07-28](#mcp-client-runtimes), Claude Code declara `elicitation: {form: {}, url: {}}` em suas capacidades de cliente, portanto um servidor lá pode solicitar qualquer modo através da solicitação de elicitação padrão do protocolo.1627### Modos de elicitação que Claude Code declara

1628 

1629Se você desenvolve um servidor MCP, as capacidades de cliente que Claude Code envia ao se conectar informam ao seu servidor quais modos de elicitação ele pode solicitar. Claude Code declara `elicitation: {form: {}, url: {}}` nas seguintes conexões, portanto um servidor em qualquer uma delas pode solicitar ambos os modos:

1630 

1631* Conexões que usam [revisão de protocolo 2026-07-28](#mcp-client-runtimes)

1632* Conexões nas revisões de protocolo anteriores, 2025-11-25 e mais antigas, aos servidores stdio, `sse`, `http` e `ws` na configuração MCP do Claude Code de um usuário. Requer Claude Code v2.1.287 ou posterior

1633 

1634Em suas outras conexões nas revisões anteriores, como aos [conectores do claude.ai](#use-mcp-servers-from-claude-ai), Claude Code declara apenas `elicitation: {}`, o que permite solicitações de elicitação somente no modo de formulário.

1635 

1636Um servidor criado com o Java MCP SDK 0.17.0 ou anterior pode recusar uma declaração que contenha `form` e `url`. Consulte [MCP server rejected the elicitation capability](https://code.claude.com/docs/pt/errors.md#mcp-server-rejected-the-elicitation-capability).

1628 1637 

1629## Usar recursos MCP1638## Usar recursos MCP

1630 1639 

Details

36* Ferramentas correspondidas por uma [regra de solicitação](https://code.claude.com/docs/pt/permissions.md#manage-permissions) explícita36* Ferramentas correspondidas por uma [regra de solicitação](https://code.claude.com/docs/pt/permissions.md#manage-permissions) explícita

37* Ferramentas de conector que sua organização [definiu como `ask`](https://code.claude.com/docs/pt/mcp#organization-controls-on-connector-tools), em sessões onde essa configuração chega a Claude Code37* Ferramentas de conector que sua organização [definiu como `ask`](https://code.claude.com/docs/pt/mcp#organization-controls-on-connector-tools), em sessões onde essa configuração chega a Claude Code

38* Ferramentas que requerem interação do usuário: a ferramenta integrada `AskUserQuestion` e ferramentas MCP marcadas [`requiresUserInteraction`](https://code.claude.com/docs/pt/mcp#require-approval-for-a-specific-tool)38* Ferramentas que requerem interação do usuário: a ferramenta integrada `AskUserQuestion` e ferramentas MCP marcadas [`requiresUserInteraction`](https://code.claude.com/docs/pt/mcp#require-approval-for-a-specific-tool)

39* Remoções reconhecidas de `rm` e `rmdir` em [caminhos críticos](#critical-paths), que nenhuma regra allow ou `"allow"` de hook `PreToolUse` aprova39* Remoções reconhecidas de `rm` e `rmdir` em [caminhos críticos](#critical-paths), que nenhuma regra allow ou `"allow"` de hook `PreToolUse` aprova, e comandos Bash sinalizados com [`Dangerous rm operation not ruled out`](#dangerous-rm-operation-not-ruled-out)

40* As [salvaguardas de mensagens entre sessões](#skip-all-checks-with-bypasspermissions-mode)40* As [salvaguardas de mensagens entre sessões](#skip-all-checks-with-bypasspermissions-mode)

41* Leituras fora dos diretórios de trabalho enquanto [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) está ativado: comandos Bash reconhecidos de leitura de arquivo e qualquer [retry não-sandboxizado](https://code.claude.com/docs/pt/sandboxing.md#the-unsandboxed-retry-escape-hatch) que precisa de aprovação para executar fora do sandbox, mesmo em modo automático e modo `bypassPermissions`. Requer Claude Code v2.1.257 ou posterior.41* Leituras fora dos diretórios de trabalho enquanto [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) está ativado: comandos Bash reconhecidos de leitura de arquivo e qualquer [retry não-sandboxizado](https://code.claude.com/docs/pt/sandboxing.md#the-unsandboxed-retry-escape-hatch) que precisa de aprovação para executar fora do sandbox, mesmo em modo automático e modo `bypassPermissions`. Requer Claude Code v2.1.257 ou posterior.

42 42 


265 265 

266O modo `acceptEdits` permite que Claude crie e edite arquivos em seu diretório de trabalho sem solicitar. A barra de status mostra `⏵⏵ accept edits on` enquanto este modo está ativo.266O modo `acceptEdits` permite que Claude crie e edite arquivos em seu diretório de trabalho sem solicitar. A barra de status mostra `⏵⏵ accept edits on` enquanto este modo está ativo.

267 267 

268Além de edições de arquivo, o modo `acceptEdits` auto-aprova comandos Bash comuns do sistema de arquivos: `mkdir`, `touch`, `rm`, `rmdir`, `mv`, `cp` e `sed`. Esses comandos também são auto-aprovados quando prefixados com variáveis de ambiente seguras como `LANG=C` ou `NO_COLOR=1`, ou wrappers de processo como `timeout`, `nice` ou `nohup`. Como edições de arquivo, a auto-aprovação se aplica apenas a caminhos dentro de seu diretório de trabalho ou `additionalDirectories`.268Além de edições de arquivo, o modo `acceptEdits` auto-aprova comandos Bash comuns do sistema de arquivos: `mkdir`, `touch`, `rm`, `rmdir`, `mv`, `cp` e `sed`. Exceto por `touch`, esses comandos também são auto-aprovados quando prefixados com variáveis de ambiente seguras como `LANG=C` ou `NO_COLOR=1`, ou wrappers de processo como `timeout`, `nice` ou `nohup`. Como edições de arquivo, a auto-aprovação se aplica apenas a caminhos dentro de seu diretório de trabalho ou `additionalDirectories`.

269 269 

270Estes ainda solicitam confirmação:270Estes ainda solicitam confirmação:

271 271 

272* Caminhos fora desse escopo272* Caminhos fora desse escopo

273* Gravações em [caminhos protegidos](#protected-paths)273* Gravações em [caminhos protegidos](#protected-paths)

274* [Remoções de caminho crítico](#critical-paths) reconhecidas de `rm` e `rmdir`274* [Remoções de caminho crítico](#critical-paths) reconhecidas de `rm` e `rmdir`

275* `touch` com qualquer coisa além de caminhos de arquivo simples, por exemplo uma opção, um glob ou um prefixo como `timeout 5` ou `LANG=C`

275* Todos os outros comandos Bash, exceto o [conjunto integrado somente leitura](https://code.claude.com/docs/pt/permissions.md#read-only-commands)276* Todos os outros comandos Bash, exceto o [conjunto integrado somente leitura](https://code.claude.com/docs/pt/permissions.md#read-only-commands)

276 277 

277Cada caminho também passa pela [verificação de symlink](https://code.claude.com/docs/pt/permissions.md#symlinks), portanto uma gravação que se resolve fora desse escopo também não é auto-aprovada.278Cada caminho também passa pela [verificação de symlink](https://code.claude.com/docs/pt/permissions.md#symlinks), portanto uma gravação que se resolve fora desse escopo também não é auto-aprovada.


369* **Uma conexão direta com a API Anthropic**: em sessões de terminal interativo e em sessões `-p`, Agent SDK, [extensão VS Code](https://code.claude.com/docs/pt/vs-code.md) e [aplicativo desktop](https://code.claude.com/docs/pt/desktop.md), qualquer que seja seu plano ou tipo de conta, conforme a Anthropic disponibiliza o recurso. Em sessões de terminal interativo, isso requer Claude Code v2.1.271 ou posterior nos planos Pro, Max e Team, e v2.1.278 ou posterior nos planos Enterprise e contas da API Claude. Em sessões `-p`, Agent SDK, extensão VS Code e aplicativo desktop, isso requer Claude Code v2.1.281 ou posterior. A partir da v2.1.282, uma sessão que [não busca feature flags](https://code.claude.com/docs/pt/env-vars.md#features-that-need-feature-flag-fetching), por exemplo porque você desativou a telemetria, pede ao servidor por padrão em qualquer tipo de sessão.370* **Uma conexão direta com a API Anthropic**: em sessões de terminal interativo e em sessões `-p`, Agent SDK, [extensão VS Code](https://code.claude.com/docs/pt/vs-code.md) e [aplicativo desktop](https://code.claude.com/docs/pt/desktop.md), qualquer que seja seu plano ou tipo de conta, conforme a Anthropic disponibiliza o recurso. Em sessões de terminal interativo, isso requer Claude Code v2.1.271 ou posterior nos planos Pro, Max e Team, e v2.1.278 ou posterior nos planos Enterprise e contas da API Claude. Em sessões `-p`, Agent SDK, extensão VS Code e aplicativo desktop, isso requer Claude Code v2.1.281 ou posterior. A partir da v2.1.282, uma sessão que [não busca feature flags](https://code.claude.com/docs/pt/env-vars.md#features-that-need-feature-flag-fetching), por exemplo porque você desativou a telemetria, pede ao servidor por padrão em qualquer tipo de sessão.

370* **Um provedor de nuvem, ou um gateway de LLM ou proxy**: em [Claude Platform on AWS](https://code.claude.com/docs/pt/claude-platform-on-aws.md), Amazon Bedrock, Agent Platform do Google Cloud e Microsoft Foundry, e sempre que você aponta `ANTHROPIC_BASE_URL` para um [gateway de LLM ou proxy](https://code.claude.com/docs/pt/llm-gateway), qualquer que seja seu plano. Pedir por padrão requer Claude Code v2.1.278 ou posterior.371* **Um provedor de nuvem, ou um gateway de LLM ou proxy**: em [Claude Platform on AWS](https://code.claude.com/docs/pt/claude-platform-on-aws.md), Amazon Bedrock, Agent Platform do Google Cloud e Microsoft Foundry, e sempre que você aponta `ANTHROPIC_BASE_URL` para um [gateway de LLM ou proxy](https://code.claude.com/docs/pt/llm-gateway), qualquer que seja seu plano. Pedir por padrão requer Claude Code v2.1.278 ou posterior.

371* **Uma sessão [gateway de aplicativos Claude](https://code.claude.com/docs/pt/claude-apps-gateway) conectada**: requer Claude Code v2.1.280 ou posterior372* **Uma sessão [gateway de aplicativos Claude](https://code.claude.com/docs/pt/claude-apps-gateway) conectada**: requer Claude Code v2.1.280 ou posterior

373* **Uma [sessão na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md) em um ambiente hospedado pela Anthropic**: qualquer que seja seu plano, quando você a inicia pela web, pelo aplicativo móvel ou pelo aplicativo desktop com **Cloud** selecionado. Sessões iniciadas por uma [tarefa agendada na nuvem](https://code.claude.com/docs/pt/routines.md) pedem ao servidor conforme a Anthropic disponibiliza o recurso.

372 374 

373Onde o servidor revisa as ações, seus vereditos as decidem. Dois outros resultados são possíveis:375Onde o servidor revisa as ações, seus vereditos as decidem. Dois outros resultados são possíveis:

374 376 


647 649 

648O modo `bypassPermissions` desativa prompts de permissão e verificações de segurança para que chamadas de ferramentas sejam executadas imediatamente, incluindo gravações em [caminhos protegidos](#protected-paths).650O modo `bypassPermissions` desativa prompts de permissão e verificações de segurança para que chamadas de ferramentas sejam executadas imediatamente, incluindo gravações em [caminhos protegidos](#protected-paths).

649 651 

650As [ações que nenhum modo auto-aprova](#actions-no-mode-auto-approves) ainda solicitam neste modo. Ler [o artefato público de outra organização](https://code.claude.com/docs/pt/artifacts.md#read-an-artifact-shared-with-you) requer sua aprovação, e este modo não a solicita, então Claude não consegue ler um. As [Remove-Item no PowerShell](#remove-item-in-powershell) negações também se aplicam neste modo.652Mesmo no modo `bypassPermissions`, cada uma das [ações que nenhum modo auto-aprova](#actions-no-mode-auto-approves) recebe um prompt ou uma negação em vez de ser executada por conta própria. Ler [o artefato público de outra organização](https://code.claude.com/docs/pt/artifacts.md#read-an-artifact-shared-with-you) requer sua aprovação, e este modo não a solicita, então Claude não consegue ler um. As [Remove-Item no PowerShell](#remove-item-in-powershell) negações também se aplicam neste modo.

651 653 

652Duas [salvaguardas de mensagens entre sessões](https://code.claude.com/docs/pt/cross-session-messaging.md) ainda se aplicam neste modo, e em sessões de modo plan interativas onde permissões de bypass estão disponíveis:654Duas [salvaguardas de mensagens entre sessões](https://code.claude.com/docs/pt/cross-session-messaging.md) ainda se aplicam neste modo, e em sessões de modo plan interativas onde permissões de bypass estão disponíveis:

653 655 


769* `.devcontainer.json`771* `.devcontainer.json`

770* `.ripgreprc`, `pyrightconfig.json`772* `.ripgreprc`, `pyrightconfig.json`

771* `.mcp.json`, `.claude.json`773* `.mcp.json`, `.claude.json`

774* Um arquivo que você passou para [`--settings`](https://code.claude.com/docs/pt/cli-reference#cli-flags), `--mcp-config` ou `--agents` ao iniciar a sessão

772* O arquivo para o qual seu [arquivo de configurações](https://code.claude.com/docs/pt/settings.md#settings-files-and-who-they-affect) de usuário, de projeto ou local aponta quando o próprio arquivo de configurações é um link simbólico, por exemplo, para um repositório de dotfiles. Nos modos que roteiam gravações em caminhos protegidos para o classificador, uma gravação nesse arquivo solicita você em vez disso, mesmo quando uma regra de permissão corresponde. Se o caminho do próprio arquivo também for o de um arquivo de configurações, como `.claude/settings.json` em outra pasta, a gravação vai para o classificador como as demais gravações em caminhos protegidos775* O arquivo para o qual seu [arquivo de configurações](https://code.claude.com/docs/pt/settings.md#settings-files-and-who-they-affect) de usuário, de projeto ou local aponta quando o próprio arquivo de configurações é um link simbólico, por exemplo, para um repositório de dotfiles. Nos modos que roteiam gravações em caminhos protegidos para o classificador, uma gravação nesse arquivo solicita você em vez disso, mesmo quando uma regra de permissão corresponde. Se o caminho do próprio arquivo também for o de um arquivo de configurações, como `.claude/settings.json` em outra pasta, a gravação vai para o classificador como as demais gravações em caminhos protegidos

773 776 

774## Caminhos críticos777## Caminhos críticos


844 847 

845Para um glob ou barra à direita sob uma variável, o prompt nomeia o `rm` sinalizado e diz como reescrevê-lo para que a verificação passe.848Para um glob ou barra à direita sob uma variável, o prompt nomeia o `rm` sinalizado e diz como reescrevê-lo para que a verificação passe.

846 849 

850### O prompt `Dangerous rm operation not ruled out`

851 

852O motivo completo diz:

853 

854```text theme={null}

855Dangerous rm operation not ruled out — the shell may read this command differently than it was parsed

856```

857 

858Esse motivo significa que o shell pode ler o comando de forma diferente de como Claude Code o leu, então uma remoção pode estar em uma parte não verificada, mesmo sem nenhum `rm` presente. Em modo `auto` ou `bypassPermissions`, uma negação com esta frase vem da mesma verificação:

859 

860```text theme={null}

861This command could not be checked for dangerous rm operations: the shell may read it differently than it was parsed.

862```

863 

864Você recebe o prompt ou a negação que uma remoção de caminho crítico recebe [no seu modo de permissão](#critical-path-removals-in-each-permission-mode), incluindo `bypassPermissions`. Você não pode aprovar o comando com uma regra de permissão `Bash` ou `Bash(*)`, com o [modo de permissão automática](https://code.claude.com/docs/pt/sandboxing.md#auto-allow-mode) do sandbox ou com um hook `PreToolUse` que retorna `"allow"`. Leia o comando e, em seguida, aprove o prompt ou, após uma negação, execute-o no seu shell.

865 

847### O prompt de unidade montada866### O prompt de unidade montada

848 867 

849O prompt de unidade montada aparece no macOS, Linux e WSL quando um `rm` recursivo tem como alvo um [caminho de unidade montada](#paths-that-get-the-mounted-drive-prompt) listado, como `/mnt/c` ou `/Volumes/USB/build`. Seu motivo diz `Dangerous rm operation on mounted drive path: <path>`. Um alvo `/*` recebe o prompt sem a flag recursiva, já que Claude Code lê `rm /Volumes/USB/build/*` como uma remoção de `/Volumes/USB/build`.868O prompt de unidade montada aparece no macOS, Linux e WSL quando um `rm` recursivo tem como alvo um [caminho de unidade montada](#paths-that-get-the-mounted-drive-prompt) listado, como `/mnt/c` ou `/Volumes/USB/build`. Seu motivo diz `Dangerous rm operation on mounted drive path: <path>`. Um alvo `/*` recebe o prompt sem a flag recursiva, já que Claude Code lê `rm /Volumes/USB/build/*` como uma remoção de `/Volumes/USB/build`.


900| `plan` | Pede que você o aprove. Quando [o classificador revisa comandos durante o planejamento](#analyze-before-you-edit-with-plan-mode) e nenhuma permissão de bypass está disponível, trata como em modo `auto` |919| `plan` | Pede que você o aprove. Quando [o classificador revisa comandos durante o planejamento](#analyze-before-you-edit-with-plan-mode) e nenhuma permissão de bypass está disponível, trata como em modo `auto` |

901| `auto` | Pede que você o aprove no terminal, com um [limite de tempo](#time-limits-and-denials-in-auto-and-bypasspermissions-modes). Em outro lugar, nega-o |920| `auto` | Pede que você o aprove no terminal, com um [limite de tempo](#time-limits-and-denials-in-auto-and-bypasspermissions-modes). Em outro lugar, nega-o |

902| `dontAsk` | Nega-o |921| `dontAsk` | Nega-o |

903| `bypassPermissions` | Pede que você o aprove, com um limite de tempo no terminal |922| `bypassPermissions` | No terminal, pede que você o aprove antes que um limite de tempo se esgote. Em outros lugares, consulte [o que acontece em cada lugar](#time-limits-and-denials-in-auto-and-bypasspermissions-modes) |

904 923 

905Se uma [regra de solicitação](https://code.claude.com/docs/pt/permissions.md#manage-permissions) explícita corresponder ao comando, Claude Code o solicita em vez disso, mesmo em modo `auto` e sem um limite de tempo. Em modos que solicitam, um hook [`PermissionRequest`](https://code.claude.com/docs/pt/hooks#permissionrequest) pode responder ao prompt.924Se uma [regra de solicitação](https://code.claude.com/docs/pt/permissions.md#manage-permissions) explícita corresponder ao comando, Claude Code o solicita em vez disso, mesmo em modo `auto` e sem um limite de tempo. Em modos que solicitam, um hook [`PermissionRequest`](https://code.claude.com/docs/pt/hooks#permissionrequest) pode responder ao prompt.

906 925 


912* Pressione qualquer tecla enquanto o prompt está aberto para parar a contagem regressiva e manter o prompt aguardando sua resposta.931* Pressione qualquer tecla enquanto o prompt está aberto para parar a contagem regressiva e manter o prompt aguardando sua resposta.

913* Após três desses prompts expirarem sem resposta em uma sessão, Claude Code para de mostrá-los e nega remoções de caminho crítico adicionais imediatamente. Enviar uma nova mensagem reinicia a contagem.932* Após três desses prompts expirarem sem resposta em uma sessão, Claude Code para de mostrá-los e nega remoções de caminho crítico adicionais imediatamente. Enviar uma nova mensagem reinicia a contagem.

914 933 

915Em modo `auto`, onde quer que Claude Code não possa mostrar um prompt de terminal, nega o comando imediatamente, por exemplo em [execuções não interativas](https://code.claude.com/docs/pt/headless.md) com `-p`, em sessões do [Agent SDK](https://code.claude.com/docs/pt/agent-sdk/permissions.md) e no painel de chat da extensão VS Code e no aplicativo Desktop. A negação diz a Claude para relatar o que queria deletar e deixar a remoção para você.934O limite de tempo se aplica no Claude Code v2.1.281 e posterior, assim como a negação do modo `auto` fora do terminal.

935 

936Longe do terminal, você não recebe esse prompt:

916 937 

917O tratamento de `auto` e `bypassPermissions` requer Claude Code v2.1.281 ou posterior. Para desativá-lo, defina [`CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT=1`](https://code.claude.com/docs/pt/env-vars#variables) no ambiente que inicia Claude Code. Em modo `auto`, as remoções de caminho crítico vão para o classificador em vez disso, e em modo `bypassPermissions` o prompt não tem limite de tempo.938| Onde | `auto` | `bypassPermissions` |

939| :- | :- | :- |

940| Painel de chat da [extensão VS Code](https://code.claude.com/docs/pt/vs-code.md) | Nega-o | Nega-o, a menos que um [hook `PermissionRequest`](https://code.claude.com/docs/pt/hooks#permissionrequest) o permita |

941| [Aplicativo Desktop](https://code.claude.com/docs/pt/desktop.md) | Nega-o | Nega-o, a menos que um hook `PermissionRequest` o permita |

942| [Execução com `-p`](https://code.claude.com/docs/pt/headless) ou [sessão do Agent SDK](https://code.claude.com/docs/pt/agent-sdk/permissions.md) | Nega-o | Sua [`--permission-prompt-tool`](https://code.claude.com/docs/pt/cli-reference#cli-flags) ou seu [callback `canUseTool`](https://code.claude.com/docs/pt/agent-sdk/user-input#handle-tool-approval-requests) decide. Sem nenhum dos dois, ou com [`--permission-prompts none`](https://code.claude.com/docs/pt/headless#turn-off-permission-prompts-in-unattended-runs), nega-o, a menos que um hook `PermissionRequest` o permita |

943 

944Onde quer que a remoção seja negada, você pode ler o comando inteiro e executá-lo no seu shell.

945 

946Para mudar o que você recebe em cada modo, defina [`CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT`](https://code.claude.com/docs/pt/env-vars#variables) como `1`:

947 

948* **`bypassPermissions`**: o prompt do terminal não tem limite de tempo, e o painel de chat do VS Code pergunta a você

949* **`auto`**: o [classificador](#eliminate-prompts-with-auto-mode) decide, no terminal, no painel de chat do VS Code, em execuções com `-p` e em sessões do Agent SDK

950 

951Defina-a no ambiente que inicia Claude Code, como seu shell ou a opção `env` do SDK, e não em um arquivo de configurações do Claude Code. Para o painel de chat, adicione-a a [`claudeCode.environmentVariables`](https://code.claude.com/docs/pt/vs-code#extension-settings) no `settings.json` de usuário do próprio VS Code e, em seguida, inicie uma nova conversa:

952 

953```json theme={null}

954{

955 "claudeCode.environmentVariables": [

956 { "name": "CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT", "value": "1" }

957 ]

958}

959```

918 960 

919### Remove-Item em PowerShell961### Remove-Item em PowerShell

920 962 

Details

41 41 

42Se um tutorial ou um conjunto de instruções mais antigo disser para você executar `/plugin marketplace add anthropics/claude-code`, isso adiciona o marketplace de demonstração, chamado `claude-code-plugins`. Ele não é o marketplace oficial.42Se um tutorial ou um conjunto de instruções mais antigo disser para você executar `/plugin marketplace add anthropics/claude-code`, isso adiciona o marketplace de demonstração, chamado `claude-code-plugins`. Ele não é o marketplace oficial.

43 43 

44A maioria dos plugins do marketplace de demonstração também está no marketplace oficial com os mesmos nomes. Por exemplo, `code-review`, `feature-dev`, `commit-commands` e `security-guidance` estão em ambos. Instale-os a partir de `claude-plugins-official` para não ter duas cópias instaladas.44A maioria dos plugins do marketplace de demonstração também está no marketplace oficial com os mesmos nomes. Por exemplo, `code-review`, `feature-dev` e `commit-commands` estão em ambos. Instale-os a partir de `claude-plugins-official` para não ter duas cópias instaladas.

45 45 

46## Encontrar plugins no marketplace oficial46## Encontrar plugins no marketplace oficial

47 47 

Details

403 403 

404Para intervalos de versão, a convenção de tag git `<plugin>--v<version>` que eles se resolvem contra e confiança entre marketplaces, veja [Plugin dependencies](https://code.claude.com/docs/pt/plugins/dependencies.md).404Para intervalos de versão, a convenção de tag git `<plugin>--v<version>` que eles se resolvem contra e confiança entre marketplaces, veja [Plugin dependencies](https://code.claude.com/docs/pt/plugins/dependencies.md).

405 405 

406Para ter Claude Code sugerir um plugin quando um projeto o corresponde, adicione um bloco `relevance` à entrada com os sinais que identificam o projeto. Os usuários veem sugestões do seu marketplace apenas quando um administrador o lista em `pluginSuggestionMarketplaces`. Para os sinais e a etapa de habilitação, veja [Plugin relevance](https://code.claude.com/docs/pt/plugins/relevance.md).406Para ter Claude Code sugerir um plugin quando um projeto o corresponde, adicione um bloco `relevance` à entrada com os sinais que identificam o projeto. Os usuários veem essas sugestões apenas quando um administrador lista seu marketplace em `pluginSuggestionMarketplaces`. Para os sinais e a etapa de habilitação, veja [Plugin relevance](https://code.claude.com/docs/pt/plugins/relevance.md).

407 407 

408## Work around what a marketplace can't do408## Work around what a marketplace can't do

409 409 

Details

95 95 

96Nenhum desses controles faz sandbox de um mod. Um mod que você permite é executado como o usuário, com o acesso do usuário a arquivos, processos e a rede.96Nenhum desses controles faz sandbox de um mod. Um mod que você permite é executado como o usuário, com o acesso do usuário a arquivos, processos e a rede.

97 97 

98### Saiba quais hooks do mod de um usuário não são executados

99 

100Onde a [guarda integrada](#know-what-happens-by-default) é carregada, um hook que o mod de um usuário registra em um destes eventos nunca é executado, e `/plugin` informa isso a esse usuário em uma nota. Nas linhas de [`session.append`](https://code.claude.com/docs/pt/plugins/mods/reference#session), `door` é o tipo de linha armazenada ao qual o hook é filtrado.

101 

102| Hook em | O que é o evento |

103| :- | :- |

104| [`classic.<Event>`](https://code.claude.com/docs/pt/plugins/mods/events#hook-the-settings-hook-events), como `classic.Stop` | Um [evento de hook de configuração](https://code.claude.com/docs/pt/hooks.md#hook-events) |

105| [`prompt.compose`](https://code.claude.com/docs/pt/plugins/mods/reference#prompts-and-what-claude-reads) | A lista de seções do system prompt |

106| `prompt.section` | Uma seção do system prompt |

107| `prompt.context` | O contexto enviado com a primeira mensagem de uma conversa |

108| `prompt.attachment` | Uma mensagem que o Claude Code adiciona para o Claude, como um lembrete |

109| `skill.prompt` | O texto de uma skill conforme é expandido para o Claude |

110| `attribution.text` | Texto de atribuição de commit ou pull request |

111| [`session.compact`](https://code.claude.com/docs/pt/plugins/mods/reference#session) | Uma compactação da conversa |

112| `settings.read` | Uma leitura de configurações, como uma chamada `$.settings.read` de um mod |

113| `session.append{door=attachment}` | A linha armazenada de uma mensagem que o Claude Code adiciona para o Claude |

114| `session.append{door=hook-context}` | A linha armazenada de contexto de um hook de configuração |

115| `session.append{door=compaction}` | As linhas armazenadas do resumo e do limite de uma compactação |

116 

117A guarda também ignora os hooks de um usuário em alguns outros casos, como as descrições das ferramentas da sua organização, em [`tool.describe`](https://code.claude.com/docs/pt/plugins/mods/reference#tools), e a linha armazenada do texto de uma skill. `/plugin` não mostra nenhuma nota para esses casos. Se um hook em outro evento não faz nada, veja [Descobrir por que um mod não faz nada](https://code.claude.com/docs/pt/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing).

118 

119A nota aparece nos detalhes do plugin e na aba **Errors** de `/plugin`. Ela requer o Claude Code v2.1.299 ou posterior. Ela nomeia cada hook da tabela como o mod o registrou, como neste exemplo:

120 

121```text theme={null}

122Its hooks on classic.Stop, prompt.section do not run here: where an organization manages Claude Code, these events pass over the plugins you install

123Only a plugin that counts as your organization's own runs hooks on these events. An administrator sets that up in managed settings

124```

125 

126Para permitir que esses hooks sejam executados, altere as configurações gerenciadas de uma de duas maneiras:

127 

128* **Execute o mod como sendo da sua organização**: [instale o mod de modo que ele conte como seu](#install-your-organizations-mods). Seus hooks nesses eventos passam então a ser executados, e a guarda permanece carregada para todos os outros mods. O mod é ativado para todos que recebem essas configurações, e ele precisa ficar em um diretório que você coloca em cada máquina. Se você o listar em `prependPlugins`, mantenha `sec-default@builtin` na lista.

129* **Remova a guarda**: deixe `sec-default@builtin` fora de `prependPlugins`. Uma lista vazia, `"prependPlugins": []`, é suficiente. Você perde a guarda inteira, não apenas esses eventos. O mod de um usuário pode então fazer o que [a guarda de outra forma o impede de fazer](#know-what-happens-by-default), e [as opções da guarda](#set-options-on-the-built-in-guard) não se aplicam.

130 

131Se você entregar uma lista sem a guarda por meio de [configurações gerenciadas pelo servidor](https://code.claude.com/docs/pt/server-managed-settings.md#fetch-and-caching-behavior), a guarda permanece carregada até que o servidor confirme as configurações para a sessão. Para confirmar qualquer uma das alterações em uma máquina que executa a v2.1.299 ou posterior, abra `/plugin` em uma sessão nela e verifique se a nota desapareceu.

132 

133Um hook `session.append` sem filtro `door` ainda é executado e não recebe nenhuma nota, mas as linhas armazenadas da tabela não chegam até ele.

134 

98## Decida se deixa mods ativados135## Decida se deixa mods ativados

99 136 

100Um mod pode fazer mais do que as outras partes de um plugin porque é executado dentro do Claude Code. Ele vê cada prompt e chamada de ferramenta, pode mudá-los e pode permitir ou negar uma chamada de ferramenta antes de um prompt de permissão aparecer.137Um mod pode fazer mais do que as outras partes de um plugin porque é executado dentro do Claude Code. Ele vê cada prompt e chamada de ferramenta, pode mudá-los e pode permitir ou negar uma chamada de ferramenta antes de um prompt de permissão aparecer.


142| `$.prompt.submit` | Envia um prompt e pode enviá-lo como as próprias palavras do usuário |179| `$.prompt.submit` | Envia um prompt e pode enviá-lo como as próprias palavras do usuário |

143| `$.session.send` | Envia uma mensagem que o Claude de outra sessão, de um subagente ou de um [colega de equipe](https://code.claude.com/docs/pt/agent-teams.md) lê |180| `$.session.send` | Envia uma mensagem que o Claude de outra sessão, de um subagente ou de um [colega de equipe](https://code.claude.com/docs/pt/agent-teams.md) lê |

144 181 

145Na linha `hooks:`, [`tool.call`](https://code.claude.com/docs/pt/plugins/mods/reference#tools) e [`prompt.submit`](https://code.claude.com/docs/pt/plugins/mods/reference#prompts-and-what-claude-reads) significam que o mod vê cada chamada de ferramenta e cada prompt, e pode mudá-los. [`session.append`](https://code.claude.com/docs/pt/plugins/mods/reference#session) significa que o mod pode reescrever cada linha da conversa antes de ser armazenada. [`ui.render{component=AskUserQuestion}`](https://code.claude.com/docs/pt/plugins/mods/interface#change-what-claude-code-already-draws) significa que o mod pode redesenhar o diálogo que Claude usa para fazer uma pergunta ao usuário. `tool.check` significa que o mod pode aprovar ou negar uma chamada de ferramenta antes de um prompt de permissão aparecer. [Saiba o que acontece por padrão](#know-what-happens-by-default) lista quais de suas regras e hooks têm precedência sobre sua resposta.182Na linha `hooks:`, [`tool.call`](https://code.claude.com/docs/pt/plugins/mods/reference#tools) e [`prompt.submit`](https://code.claude.com/docs/pt/plugins/mods/reference#prompts-and-what-claude-reads) significam que o mod vê cada chamada de ferramenta e cada prompt, e pode mudá-los. [`session.append`](https://code.claude.com/docs/pt/plugins/mods/reference#session) significa que o mod pode reescrever cada linha da conversa antes de ser armazenada, exceto [as linhas que a proteção ignora](#hooks-the-guard-passes-over). [`ui.render{component=AskUserQuestion}`](https://code.claude.com/docs/pt/plugins/mods/interface#change-what-claude-code-already-draws) significa que o mod pode redesenhar o diálogo que Claude usa para fazer uma pergunta ao usuário. `tool.check` significa que o mod pode aprovar ou negar uma chamada de ferramenta antes de um prompt de permissão aparecer. [Saiba o que acontece por padrão](#know-what-happens-by-default) lista quais de suas regras e hooks têm precedência sobre sua resposta.

146 183 

147## Escolha quanto permitir184## Escolha quanto permitir

148 185 

Details

377 377 

378### Tratar os eventos de hooks de configuração378### Tratar os eventos de hooks de configuração

379 379 

380Hooks de configuração são os hooks de comando, HTTP, prompt e agente que você configura em arquivos de configuração. Cada [evento de hook de configuração](https://code.claude.com/docs/pt/hooks.md#hook-events), como `Stop`, `SessionEnd` ou `PostToolUse`, também é um evento nomeado `classic.` seguido do nome do evento de hook de configuração, como `classic.Stop`. `e` é o JSON que um hook de configuração recebe no stdin, incluindo `transcript_path`.380Hooks de configuração são os hooks de comando, HTTP, prompt e agente que você configura em arquivos de configuração. Cada [evento de hook de configuração](https://code.claude.com/docs/pt/hooks.md#hook-events), como `Stop`, `SessionEnd` ou `PostToolUse`, também é um evento nomeado `classic.` seguido do nome do evento de hook de configuração, como `classic.Stop`. `e` é o JSON que um hook de configuração recebe no stdin, incluindo `transcript_path`. Onde a [guarda integrada](https://code.claude.com/docs/pt/plugins/mods/admin.md#know-what-happens-by-default) é carregada, [um hook nesses eventos em um mod que você instala não é executado](https://code.claude.com/docs/pt/plugins/mods/admin.md#hooks-the-guard-passes-over).

381 381 

382Este hook usa `Stop`, que é disparado quando o Claude termina de responder, para registrar em log onde a transcrição da sessão está salva:382Este hook usa `Stop`, que é disparado quando o Claude termina de responder, para registrar em log onde a transcrição da sessão está salva:

383 383 


425* **Falhou antes de chamar `next`**: Claude Code o pula e o próximo manipulador é executado em seu lugar425* **Falhou antes de chamar `next`**: Claude Code o pula e o próximo manipulador é executado em seu lugar

426* **Falhou após `next` ser resolvido**: esse resultado permanece e nada é executado uma segunda vez426* **Falhou após `next` ser resolvido**: esse resultado permanece e nada é executado uma segunda vez

427 427 

428Uma linha nomeia o mod, o evento e o motivo, como `my-mod: tool.call hook skipped: threw Error: boom`. Onde você o lê depende da sessão, como [Descubra por que um mod não faz nada](https://code.claude.com/docs/pt/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing) lista. Um hook `ui.render` cujo desenho não valida é relatado diferentemente, como [Crie uma árvore a partir de elementos](https://code.claude.com/docs/pt/plugins/mods/interface.md#build-a-tree-from-elements) descreve.428Uma linha nomeia o mod, o evento e o motivo, como `my-mod: tool.call hook skipped: threw Error: boom`. Onde você o lê depende da sessão, como [Descubra por que um mod não faz nada](https://code.claude.com/docs/pt/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing) lista. Um hook `ui.render` cuja [árvore não valida](https://code.claude.com/docs/pt/plugins/mods/interface.md#build-a-tree-from-elements) conta como um que retornou um resultado da forma errada.

429 429 

430Para fazer um hook que bloqueia chamadas falhar fechado, adicione um manipulador de erro `.catch` que responda em seu lugar. Aqui, `guard` é sua função de hook, e o manipulador testa [`next.called`](https://code.claude.com/docs/pt/plugins/mods/reference#the-hook-function) para saber se `guard` já tinha chamado `next` quando falhou:430Para fazer um hook que bloqueia chamadas falhar fechado, adicione um manipulador de erro `.catch` que responda em seu lugar. Aqui, `guard` é sua função de hook, e o manipulador testa [`next.called`](https://code.claude.com/docs/pt/plugins/mods/reference#the-hook-function) para saber se `guard` já tinha chamado `next` quando falhou:

431 431 

Details

421Note: Type a note and press Enter421Note: Type a note and press Enter

422```422```

423 423 

424Adicione `rows` para permitir que o campo contenha várias linhas. Enter continua enviando, e uma barra invertida antes de Enter inicia uma nova linha, assim como Shift+Enter onde [o terminal oferece suporte](https://code.claude.com/docs/pt/terminal-config.md#enter-multiline-prompts). A galeria mostra [um campo com `rows`](https://code.claude.com/docs/pt/plugins/mods/gallery#input).

425 

424A [galeria de interface](https://code.claude.com/docs/pt/plugins/mods/gallery.md) tem exemplos e capturas de tela da maioria dos elementos. Esta tabela lista cada elemento:426A [galeria de interface](https://code.claude.com/docs/pt/plugins/mods/gallery.md) tem exemplos e capturas de tela da maioria dos elementos. Esta tabela lista cada elemento:

425 427 

426| Elemento | O que desenha | Onde |428| Elemento | O que desenha | Onde |


436 438 

437Se seu módulo é um arquivo `.tsx` ou `.jsx`, você pode escrever a árvore como JSX. Desestruture os elementos de `$.ui.resolve(e)` primeiro.439Se seu módulo é um arquivo `.tsx` ou `.jsx`, você pode escrever a árvore como JSX. Desestruture os elementos de `$.ui.resolve(e)` primeiro.

438 440 

439Se uma árvore usa um elemento que o app não tem, uma propriedade que um elemento não leva, ou um filho onde nenhum vai, o Claude Code desenha sua própria versão do site.441Se seu desenho não aparecer, verifique se a árvore tem uma prop que um elemento não leva ou um filho onde nenhum vai. Um hook que retorna uma árvore assim [falha](https://code.claude.com/docs/pt/plugins/mods/events.md#handle-a-hook-that-fails), e uma [linha `hook skipped`](https://code.claude.com/docs/pt/plugins/mods/troubleshoot#a-pane-or-band-is-empty) nomeia seu mod e a regra que a árvore violou. Para um `Text` em um painel com uma prop chamada `bogusProp`, essa linha diz:

440 442 

441Em uma sessão iniciada com `--plugin-dir`, uma linha de transcrição diz assim, como `ui.render (Pane) refused: Text prop "bogusProp" is not allowed; the engine drew its own`. O [log de depuração](https://code.claude.com/docs/pt/plugins/mods/troubleshoot.md#read-the-debug-log) registra como `ui.render (Pane): a hook returned a tree that does not validate` com a mesma razão. Nada mais aparece na sessão, então quando um desenho não aparece, verifique essa linha ou o log.443```text theme={null}

444my-mod: ui.render hook skipped: returned the wrong shape (a tree Pane refuses: Text prop "bogusProp" is not allowed)

445```

442 446 

443### `Link` no app Desktop e no VS Code447### `Link` no app Desktop e no VS Code

444 448 


542| Tecla | O que faz |546| Tecla | O que faz |

543| :- | :- |547| :- | :- |

544| Tab | Move para o próximo controle |548| Tab | Move para o próximo controle |

545| Para cima e Para baixo | Movem entre controles enquanto seu desenho cabe. Quando o painel ou faixa tem mais linhas do que pode mostrar, eles o rolam. |549| Para cima e Para baixo | Movem entre controles enquanto seu desenho cabe. Quando o painel ou faixa tem mais linhas do que pode mostrar, eles o rolam. Em um `Input`, eles primeiro [se movem entre as linhas do campo](https://code.claude.com/docs/pt/plugins/mods/gallery.md#input). |

546| Enter | Pressiona o `Button` focado, envia o `Input` focado ou escolhe em um `Select` |550| Enter | Pressiona o `Button` focado, envia o `Input` focado ou escolhe em um `Select` |

547| Atalho de teclado de um botão | Pressiona esse botão. Enquanto um `Input` tem o foco, cada tecla imprimível vai para o campo. |551| Atalho de teclado de um botão | Pressiona esse botão. Enquanto um `Input` tem o foco, cada tecla imprimível vai para o campo. |

548| Page Up, Page Down, Home e End | Rolam seu painel ou faixa quando ele tem mais linhas do que pode mostrar |552| Page Up, Page Down, Home e End | Rolam seu painel ou faixa quando ele tem mais linhas do que pode mostrar |

Details

275| [`Link`](https://code.claude.com/docs/pt/plugins/mods/interface#link-in-the-desktop-app) | `href`, `label`. Consulte [Limites](#limits). | ✓ | ✓ | ✓ |275| [`Link`](https://code.claude.com/docs/pt/plugins/mods/interface#link-in-the-desktop-app) | `href`, `label`. Consulte [Limites](#limits). | ✓ | ✓ | ✓ |

276| [`Code`](https://code.claude.com/docs/pt/plugins/mods/gallery#show-code-and-changes) | `source`, `language`, `path`, `startLine`, `format`, `wrap` | ✓ | ✓ | ✓ |276| [`Code`](https://code.claude.com/docs/pt/plugins/mods/gallery#show-code-and-changes) | `source`, `language`, `path`, `startLine`, `format`, `wrap` | ✓ | ✓ | ✓ |

277| `Markdown` | `text`, `key`, `dimColor`, `onLinkPress`, `pressableLinks` | ✓ | ✓ | ✓ |277| `Markdown` | `text`, `key`, `dimColor`, `onLinkPress`, `pressableLinks` | ✓ | ✓ | ✓ |

278| [`Input`](https://code.claude.com/docs/pt/plugins/mods/interface#take-typed-input-and-draw-a-row-for-each-item) | `key`, `label`, `placeholder`, `value`, `submitLabel`, `onSubmit`, `onInput`, `autoFocus` | ✓ | ✓ | ✓ |278| [`Input`](https://code.claude.com/docs/pt/plugins/mods/interface#take-typed-input-and-draw-a-row-for-each-item) | `key`, `label`, `placeholder`, `value`, `submitLabel`, [`rows`](https://code.claude.com/docs/pt/plugins/mods/gallery#input), `onSubmit`, `onInput`, `autoFocus` | ✓ | ✓ | ✓ |

279| `Select` | `key`, `label`, `options`, `value`, `onSelect`, `autoFocus` | ✓ | ✓ | ✓ |279| `Select` | `key`, `label`, `options`, `value`, `onSelect`, `autoFocus` | ✓ | ✓ | ✓ |

280| `Svg` | um `source` de marcação SVG de até 131.072 caracteres, texto `alt`, `width`, `height` e `isInteractive` | | ✓ | ✓ |280| `Svg` | um `source` de marcação SVG de até 131.072 caracteres, texto `alt`, `width`, `height` e `isInteractive` | | ✓ | ✓ |

281| [`Client`](https://code.claude.com/docs/pt/plugins/mods/interface#build-a-tree-from-elements) | `module`, `key`, `props`, `width`, `height`, `flexGrow` | ✓ | ✓ | |281| [`Client`](https://code.claude.com/docs/pt/plugins/mods/interface#build-a-tree-from-elements) | `module`, `key`, `props`, `width`, `height`, `flexGrow` | ✓ | ✓ | |


333 333 

334Se você definir `gap`, `padding` ou `margin` como um passo, o passo se aplica na horizontal e na vertical ao mesmo tempo. Por exemplo, no terminal e na extensão do VS Code, `padding: 'md'` equivale a duas células de cada lado e uma linha acima e abaixo.334Se você definir `gap`, `padding` ou `margin` como um passo, o passo se aplica na horizontal e na vertical ao mesmo tempo. Por exemplo, no terminal e na extensão do VS Code, `padding: 'md'` equivale a duas células de cada lado e uma linha acima e abaixo.

335 335 

336Nomes de passos exigem o Claude Code v2.1.299 ou posterior. Em uma versão anterior, o Claude Code [desenha sua própria versão do site](https://code.claude.com/docs/pt/plugins/mods/interface.md#build-a-tree-from-elements) no lugar de uma árvore que usa um nome de passo.336Nomes de passos exigem o Claude Code v2.1.299 ou posterior. Em uma versão anterior, uma árvore que usa um nome de passo não é desenhada.

337 337 

338### Props de tipografia de `Text`338### Props de tipografia de `Text`

339 339 


346| `mono` | `true` para pedir a fonte monoespaçada do aplicativo | Ignorada: o terminal é sempre monoespaçado | Ignorada, então o texto mantém a fonte própria da extensão |346| `mono` | `true` para pedir a fonte monoespaçada do aplicativo | Ignorada: o terminal é sempre monoespaçado | Ignorada, então o texto mantém a fonte própria da extensão |

347| `tabular` | `true` para pedir dígitos de largura igual, para que um número que é atualizado no lugar ou uma coluna de números permaneça alinhado | Ignorada: os dígitos do terminal já têm uma célula de largura | Ignorada |347| `tabular` | `true` para pedir dígitos de largura igual, para que um número que é atualizado no lugar ou uma coluna de números permaneça alinhado | Ignorada: os dígitos do terminal já têm uma célula de largura | Ignorada |

348 348 

349Essas quatro props exigem o Claude Code v2.1.299 ou posterior. Em uma versão anterior, o Claude Code [desenha sua própria versão do site](https://code.claude.com/docs/pt/plugins/mods/interface.md#build-a-tree-from-elements) no lugar de uma árvore que define `size`, `weight`, `mono` ou `tabular`.349Essas quatro props exigem o Claude Code v2.1.299 ou posterior. Em uma versão anterior, uma árvore que define `size`, `weight`, `mono` ou `tabular` não é desenhada.

350 350 

351#### Substituir `bold` por `weight`351#### Substituir `bold` por `weight`

352 352 

353`bold` em um `Text` foi descontinuado em favor de `weight` e ainda funciona. Para substituí-lo em um `Text` sem `weight`, altere `bold: true` para `weight: 'semibold'` para obter o mesmo resultado no Claude Code v2.1.299 ou posterior.353`bold` em um `Text` foi descontinuado em favor de `weight` e ainda funciona. Para substituí-lo em um `Text` sem `weight`, altere `bold: true` para `weight: 'semibold'` para obter o mesmo resultado no Claude Code v2.1.299 ou posterior.

354 354 

355Em uma versão anterior à v2.1.299, uma árvore que define `weight` não é desenhada, e o Claude Code [desenha sua própria versão do site](https://code.claude.com/docs/pt/plugins/mods/interface.md#build-a-tree-from-elements) em vez dela. Se você definir tanto `bold` quanto `weight` em um `Text`, `bold` não tem efeito.355Em uma versão anterior à v2.1.299, uma árvore que define `weight` não é desenhada. Se você definir tanto `bold` quanto `weight` em um `Text`, `bold` não tem efeito.

356 356 

357## Limites357## Limites

358 358 

359Hooks e chamadas à API de mods são executados sob limites de tempo e de tamanho. O Claude Code ignora um hook que excede um limite de tempo.359Hooks e chamadas à API de mods são executados sob limites de tempo e de tamanho. O Claude Code ignora um hook que excede um limite de tempo. Uma árvore acima do limite de aninhamento, de elementos, de células de `Raster` ou de bytes de `Image` [não é desenhada](https://code.claude.com/docs/pt/plugins/mods/troubleshoot.md#a-pane-or-band-is-empty).

360 360 

361| Limite | Valor |361| Limite | Valor |

362| :- | :- |362| :- | :- |


372| Redirecionamentos que uma chamada de `$.http.fetch` segue | 5 |372| Redirecionamentos que uma chamada de `$.http.fetch` segue | 5 |

373| O motivo de `drop` de um hook ou o motivo de `deny` de `config.set` | 4.096 caracteres. O final de um motivo mais longo é cortado, e o drop ou deny ainda se aplica. O corte requer o Claude Code v2.1.292 ou posterior e, em versões anteriores, o hook [falha](https://code.claude.com/docs/pt/plugins/mods/events.md#handle-a-hook-that-fails) em vez disso. |373| O motivo de `drop` de um hook ou o motivo de `deny` de `config.set` | 4.096 caracteres. O final de um motivo mais longo é cortado, e o drop ou deny ainda se aplica. O corte requer o Claude Code v2.1.292 ou posterior e, em versões anteriores, o hook [falha](https://code.claude.com/docs/pt/plugins/mods/events.md#handle-a-hook-that-fails) em vez disso. |

374| Texto em uma árvore | Os primeiros 100.000 caracteres são desenhados |374| Texto em uma árvore | Os primeiros 100.000 caracteres são desenhados |

375| O `language` ou `path` de um `Code`, o `value` de uma opção de `Select` ou o `module` de um `Client` | 10.000 caracteres. Se algum for mais longo, o Claude Code [desenha sua própria versão do site](https://code.claude.com/docs/pt/plugins/mods/interface.md#build-a-tree-from-elements). |375| O `language` ou `path` de um `Code`, o `value` de uma opção de `Select` ou o `module` de um `Client` | 10.000 caracteres. Se algum for mais longo, o hook `ui.render` que o retornou [falha](https://code.claude.com/docs/pt/plugins/mods/events.md#handle-a-hook-that-fails). |

376| O `href` de um `Link` | 2.048 caracteres. Um `href` mais longo impede que a árvore inteira seja desenhada. |376| O `href` de um `Link` | 2.048 caracteres. Se for mais longo, o hook `ui.render` que o retornou [falha](https://code.claude.com/docs/pt/plugins/mods/events.md#handle-a-hook-that-fails). |

377| Profundidade de aninhamento de uma árvore | 32 níveis abaixo do elemento raiz |

378| Elementos e filhos de texto em uma árvore | 20.000 |

379| Células de `Raster` em uma árvore, o `columns` de cada `Raster` multiplicado pelo seu `rows` | 262.144 |

380| Bytes PNG ou RGBA de todas as `Image`s em uma árvore | 2 MiB |

377| `$.store` | 4 MiB de JSON no total |381| `$.store` | 4 MiB de JSON no total |

378| `$.session.messages()` | As 4.096 entradas mais recentes |382| `$.session.messages()` | As 4.096 entradas mais recentes |

379| Redesenhos de `$.ui.invalidate('ui.render')` | Limitados a 10 por segundo, ou 30 no terminal para o painel visível, a faixa expandida e a linha de dica abaixo do prompt. Chamadas que chegam antes disso são agrupadas. |383| Redesenhos de `$.ui.invalidate('ui.render')` | Limitados a 10 por segundo, ou 30 no terminal para o painel visível, a faixa expandida e a linha de dica abaixo do prompt. Chamadas que chegam antes disso são agrupadas. |

Details

312| Método | O que faz |312| Método | O que faz |

313| :- | :- |313| :- | :- |

314| `press({ key: 'more' })` | Pressiona o `Button` com essa chave |314| `press({ key: 'more' })` | Pressiona o `Button` com essa chave |

315| `input({ key: 'new-note', text: 'buy milk' })` | Digita o texto no `Input` com essa chave e pressiona Enter. Adicione `kind: 'change'` para digitar sem enviar. |315| `input({ key: 'new-note', text: 'buy milk' })` | Digita o texto no `Input` com essa chave e pressiona Enter. Adicione `kind: 'change'` para digitar sem enviar. Para um campo com `rows`, o texto pode conter `\n`. |

316| `select({ key: 'size', value: 'large' })` | Escolhe a opção com esse valor no `Select` com essa chave |316| `select({ key: 'size', value: 'large' })` | Escolhe a opção com esse valor no `Select` com essa chave |

317| `find({ key: 'more' })` ou `find({ type: 'Text', text: 'Count: 2' })` | Retorna o primeiro elemento correspondente como `{ type, props, children }`, ou `undefined`. `text` pode ser uma string ou uma expressão regular. |317| `find({ key: 'more' })` ou `find({ type: 'Text', text: 'Count: 2' })` | Retorna o primeiro elemento correspondente como `{ type, props, children }`, ou `undefined`. `text` pode ser uma string ou uma expressão regular. |

318| `unmount()` | Remove o desenho |318| `unmount()` | Remove o desenho |

319 319 

320Cada método resolve depois que seu manipulador terminou, então você pode verificar o resultado na próxima linha. Defina `props` para o que Claude Code passaria para esse site. A [tabela de render sites](https://code.claude.com/docs/pt/plugins/mods/reference.md#render-sites) lista os props de cada site, e [os tipos para sua compilação](https://code.claude.com/docs/pt/plugins/mods/create.md#get-the-types-for-your-build) têm seus tipos.320Cada método resolve depois que seu manipulador terminou, então você pode verificar o resultado na próxima linha. Defina `props` para o que Claude Code passaria para esse site. A [tabela de render sites](https://code.claude.com/docs/pt/plugins/mods/reference.md#render-sites) lista os props de cada site, e [os tipos para sua compilação](https://code.claude.com/docs/pt/plugins/mods/create.md#get-the-types-for-your-build) têm seus tipos.

321 321 

322Um teste de desenho verifica a árvore que seu hook retorna e se é válida para esse aplicativo. Não verifica como o aplicativo a pinta, então veja um novo layout em uma sessão real também.322Para detectar uma [árvore de elementos](https://code.claude.com/docs/pt/plugins/mods/interface.md#build-a-tree-from-elements) que não é válida para o aplicativo que você indicou em `surface`, verifique com `find` um elemento que seu hook adiciona. O teste não verifica como o aplicativo pinta uma árvore, então veja um novo layout em uma sessão real também.

323 323 

324### Testar um desenho após `/clear`324### Testar um desenho após `/clear`

325 325 

Details

226 226 

227Para encontrar esse mod, [grave um log de depuração](#read-the-debug-log) e procure nele por `answered ui.render without next()`. Uma linha como `other-mod (user) answered ui.render without next()` nomeia um mod que retornou sua árvore sem chamar `next(e)`. Ela não nomeia o [ponto de renderização](https://code.claude.com/docs/pt/plugins/mods/reference.md#render-sites), então um mod que desenha apenas em um painel também pode aparecer. Um mod que chama `next(e)` e descarta o resultado não gera nenhuma linha, então verifique também os hooks que executam antes do seu.227Para encontrar esse mod, [grave um log de depuração](#read-the-debug-log) e procure nele por `answered ui.render without next()`. Uma linha como `other-mod (user) answered ui.render without next()` nomeia um mod que retornou sua árvore sem chamar `next(e)`. Ela não nomeia o [ponto de renderização](https://code.claude.com/docs/pt/plugins/mods/reference.md#render-sites), então um mod que desenha apenas em um painel também pode aparecer. Um mod que chama `next(e)` e descarta o resultado não gera nenhuma linha, então verifique também os hooks que executam antes do seu.

228 228 

229Após a alteração, você não vê nada na banda se algum dos mods retornar uma árvore que não valida. Para ler o motivo, procure uma linha `ui.render (AbovePrompt) refused:` na transcrição de uma sessão com `--plugin-dir`, ou procure `does not validate` no log de depuração. Com vários mods na banda, nenhuma das linhas nomeia um mod, então verifique a árvore de cada mod.229A banda de um mod também fica ausente quando a árvore que o próprio hook dele retornou não valida, e as bandas dos outros mods permanecem. Para descobrir qual mod e por quê, [grave um log de depuração](#read-the-debug-log) e procure nele por [`ui.render hook skipped`](#a-pane-or-band-is-empty).

230 230 

231### Um painel ou banda está vazio ou mostra o conteúdo usual de Claude Code231### Um painel ou banda está vazio ou mostra o conteúdo usual de Claude Code

232 232 

233A [árvore](https://code.claude.com/docs/pt/plugins/mods/interface.md#build-a-tree-from-elements) que seu hook retornou não validou. Com `--plugin-dir`, a transcrição diz `ui.render (Pane) refused:` com o motivo, como em `first-mod: ui.render (Pane) refused: Box prop "flexDirection" must be one of row, column, row-reverse, column-reverse; the engine drew its own`. O log de depuração tem `a hook returned a tree that does not validate` com o mesmo motivo.233A [árvore](https://code.claude.com/docs/pt/plugins/mods/interface.md#build-a-tree-from-elements) que seu hook retornou não validou. Uma linha [`hook skipped`](#hook-skipped) [na transcrição ou no log de depuração](#find-out-why-a-mod-does-nothing) nomeia seu mod e o motivo, como nesta para um `Box` em um painel:

234 234 

235Leia o motivo nessa linha. As causas comuns são uma prop que o elemento não aceita e um elemento que o aplicativo não tem.235```text theme={null}

236first-mod: ui.render hook skipped: returned the wrong shape (a tree Pane refuses: Box prop "flexDirection" must be one of row, column, row-reverse, column-reverse)

237```

238 

239Corrija o que o motivo nomeia. Se o motivo estiver cortado, [grave um log de depuração](#read-the-debug-log) e procure nele por `a hook returned a tree that does not validate` para ler o restante.

240 

241Se, em vez disso, a linha disser `refused:` logo após o nome do ponto, como em `ui.render (Pane) refused:`, consulte [Uma linha `ui.render` diz `refused`](#ui-render-refused).

242 

243### Uma linha `ui.render` diz `refused`

244 

245`ui.render (<site>) refused:`, ou `ui.render (<site>): the chain settled on a tree that does not validate` no [log de depuração](#read-the-debug-log), significa que a [árvore](https://code.claude.com/docs/pt/plugins/mods/interface.md#build-a-tree-from-elements) nesse ponto excede um [limite de tamanho](https://code.claude.com/docs/pt/plugins/mods/reference.md#limits). Qualquer uma das linhas nomeia o [ponto de renderização](https://code.claude.com/docs/pt/plugins/mods/reference.md#render-sites) e depois o motivo, e o motivo nomeia o limite.

246 

247Altere os mods que desenham nesse ponto para que seus hooks [`ui.render`](https://code.claude.com/docs/pt/plugins/mods/reference#interface) retornem árvores menores, ou peça aos autores deles que o façam. Se a linha da transcrição começar com `hooks`, mais de um mod carregado tem um hook `ui.render` para esse ponto, então verifique as árvores de cada um desses mods. Para vários mods cujas bandas acima do prompt se aninham em uma árvore com mais de 32 níveis de profundidade, a linha diz:

248 

249```text theme={null}

250hooks: ui.render (AbovePrompt) refused: deeper than 32; nothing was drawn

251```

252 

253Antes da v2.1.307, uma linha `refused:` para qualquer ponto relatava qualquer árvore que não validava e, para `Pane` e `AbovePrompt`, terminava com `; the engine drew its own`. Nessas versões, corrija o que o motivo nomeia.

236 254 

237### `needs a key`, `is drawn twice` ou `key each once`255### `needs a key`, `is drawn twice` ou `key each once`

238 256 


383hooks module first-mod@inline loaded (worker, environment 2, tier user); events: session.start,tool.call,command.run,ui.render401hooks module first-mod@inline loaded (worker, environment 2, tier user); events: session.start,tool.call,command.run,ui.render

384```402```

385 403 

386Um desenho que não validou conta como um resultado recusado e também recebe uma linha. Para escrever suas próprias linhas no log, chame [`$.ui.log`](https://code.claude.com/docs/pt/plugins/mods/api#show-something-without-starting-a-turn) com um segundo argumento, como em `$.ui.log('message', { to: 'debug' })`. Sem o segundo argumento, `$.ui.log` adiciona uma linha fraca à transcrição.404Para escrever suas próprias linhas no log, chame [`$.ui.log`](https://code.claude.com/docs/pt/plugins/mods/api#show-something-without-starting-a-turn) com um segundo argumento, como em `$.ui.log('message', { to: 'debug' })`. Sem o segundo argumento, `$.ui.log` adiciona uma linha fraca à transcrição.

387 405 

388Enquanto você edita um mod carregado com `--plugin-dir`, a transcrição mostra uma linha para cada recarregamento que nomeia o mod e lista seus hooks. Se um salvamento quebrar o módulo, a linha diz `reload failed, the previous version stays loaded:` com o motivo, e a última versão de trabalho continua executando até que Claude Code recarregue os plugins novamente, como quando você executa `/reload-plugins`.406Enquanto você edita um mod carregado com `--plugin-dir`, a transcrição mostra uma linha para cada recarregamento que nomeia o mod e lista seus hooks. Se um salvamento quebrar o módulo, a linha diz `reload failed, the previous version stays loaded:` com o motivo, e a última versão de trabalho continua executando até que Claude Code recarregue os plugins novamente, como quando você executa `/reload-plugins`.

389 407 

plugins/org.md +6 −2

Details

182| `blockedMarketplaces` | Lista de bloqueio de fontes de marketplace, verificada antes da allowlist | Não bloqueia um marketplace já registrado a partir de uma fonte que ela não corresponde |182| `blockedMarketplaces` | Lista de bloqueio de fontes de marketplace, verificada antes da allowlist | Não bloqueia um marketplace já registrado a partir de uma fonte que ela não corresponde |

183| `syncClaudeAiPlugins` | Defina como `false` para impedir que o Claude Code baixe e carregue os plugins [sincronizados do claude.ai](https://code.claude.com/docs/pt/plugins/loading.md#synced-plugins) para a conta de cada usuário. Requer o Claude Code v2.1.273 ou posterior | Não desativa um plugin sincronizado específico. Para isso, defina `"<name>@synced": false` em [`enabledPlugins`](https://code.claude.com/docs/pt/settings-reference#enabledplugins) |183| `syncClaudeAiPlugins` | Defina como `false` para impedir que o Claude Code baixe e carregue os plugins [sincronizados do claude.ai](https://code.claude.com/docs/pt/plugins/loading.md#synced-plugins) para a conta de cada usuário. Requer o Claude Code v2.1.273 ou posterior | Não desativa um plugin sincronizado específico. Para isso, defina `"<name>@synced": false` em [`enabledPlugins`](https://code.claude.com/docs/pt/settings-reference#enabledplugins) |

184| `enabledPlugins` | `true` força a ativação, `false` bloqueia em todos os escopos e oculta o plugin | Não instala um plugin cujo marketplace não está registrado ou permitido |184| `enabledPlugins` | `true` força a ativação, `false` bloqueia em todos os escopos e oculta o plugin | Não instala um plugin cujo marketplace não está registrado ou permitido |

185| `disableSideloadFlags` | Rejeita `--plugin-dir`, `--plugin-url`, `--agents`, a opção `plugins` do Agent SDK e `--mcp-config` fora do SDK na inicialização, e rejeita pastas nomeadas na variável [`CLAUDE_CODE_PLUGIN_DIRS`](https://code.claude.com/docs/pt/env-vars#variables) da mesma forma | Não restringe `.mcp.json`, `claude mcp add` nem servidores fornecidos pelo SDK. Combine-a com [`allowedMcpServers`](https://code.claude.com/docs/pt/managed-mcp) |185| `disableSideloadFlags` | Rejeita `--plugin-dir`, `--plugin-url`, `--agents`, a opção `plugins` do Agent SDK e pastas nomeadas na variável [`CLAUDE_CODE_PLUGIN_DIRS`](https://code.claude.com/docs/pt/env-vars#variables) na inicialização, e também `--mcp-config`, a menos que todos os servidores nele sejam entradas `type: "sdk"` em processo. Recusa pastas de plugin que um aplicativo do Agent SDK adiciona no meio da sessão com [`addPlugins`](https://code.claude.com/docs/pt/agent-sdk/typescript#load-more-plugin-folders-with-addplugins) | Não restringe `.mcp.json`, `claude mcp add` nem servidores fornecidos pelo SDK. Combine-a com [`allowedMcpServers`](https://code.claude.com/docs/pt/managed-mcp) |

186| `disableCommandPluginSources` | Impede que plugins com uma fonte `command` sejam instalados, atualizados ou carregados. Uma fonte `command` é aquela cujo diretório de plugin é produzido pela execução de um comando na máquina. Quando não definida, assume o valor de `allowManagedHooksOnly` | Não afeta outros tipos de fonte |186| `disableCommandPluginSources` | Impede que plugins com uma fonte `command` sejam instalados, atualizados ou carregados. Uma fonte `command` é aquela cujo diretório de plugin é produzido pela execução de um comando na máquina. Quando não definida, assume o valor de `allowManagedHooksOnly` | Não afeta outros tipos de fonte |

187| `allowManagedHooksOnly` | Restringe quais hooks são executados. Consulte [`allowManagedHooksOnly`](https://code.claude.com/docs/pt/settings-reference#allowmanagedhooksonly) | Não confia em hooks de plugins que os próprios usuários ativam |187| `allowManagedHooksOnly` | Restringe quais hooks são executados. Consulte [`allowManagedHooksOnly`](https://code.claude.com/docs/pt/settings-reference#allowmanagedhooksonly) | Não confia em hooks de plugins que os próprios usuários ativam |

188| `strictPluginOnlyCustomization` | Bloqueia skills, agentes, hooks e servidores MCP que não vêm de um plugin, de configurações gerenciadas ou dos recursos integrados do Claude Code. Também impede que [plugins de diretório de skills](#keep-skills-directory-plugins-loading) sejam carregados. Defina como `true` para abranger os quatro tipos, ou como um array de valores `skills`, `agents`, `hooks` e `mcp`, como `["skills", "hooks"]`, para abranger alguns | Não restringe quais plugins os usuários instalam. Combine-a com `strictKnownMarketplaces` |188| `strictPluginOnlyCustomization` | Bloqueia skills, agentes, hooks e servidores MCP que não vêm de um plugin, de configurações gerenciadas ou dos recursos integrados do Claude Code. Também impede que [plugins de diretório de skills](#keep-skills-directory-plugins-loading) sejam carregados. Defina como `true` para abranger os quatro tipos, ou como um array de valores `skills`, `agents`, `hooks` e `mcp`, como `["skills", "hooks"]`, para abranger alguns | Não restringe quais plugins os usuários instalam. Combine-a com `strictKnownMarketplaces` |

189| `pluginSuggestionMarketplaces` | Marketplaces cujos plugins podem aparecer como sugestões de instalação. Consulte [Recomendar plugins](#recommend-plugins) | Não afeta as dicas integradas |189| `pluginSuggestionMarketplaces` | Marketplaces cujos plugins podem aparecer como sugestões de instalação no terminal. Consulte [Recomendar plugins](#recommend-plugins) | Não afeta as dicas integradas |

190| `pluginTrustMessage` | Acrescenta seu texto ao aviso de confiança que o `/plugin` mostra antes de um plugin ser instalado | Não altera o texto do próprio aviso |190| `pluginTrustMessage` | Acrescenta seu texto ao aviso de confiança que o `/plugin` mostra antes de um plugin ser instalado | Não altera o texto do próprio aviso |

191| `allowedChannelPlugins` | Substitui a lista padrão de plugins autorizados a enviar mensagens de canal. Requer `channelsEnabled: true` | Consulte [Restringir quais plugins de canal podem ser executados](https://code.claude.com/docs/pt/channels.md#restrict-which-channel-plugins-can-run) |191| `allowedChannelPlugins` | Substitui a lista padrão de plugins autorizados a enviar mensagens de canal. Requer `channelsEnabled: true` | Consulte [Restringir quais plugins de canal podem ser executados](https://code.claude.com/docs/pt/channels.md#restrict-which-channel-plugins-can-run) |

192| [`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL=1`](https://code.claude.com/docs/pt/env-vars) | Impede que sessões interativas de terminal registrem automaticamente o marketplace oficial | Não remove um marketplace já registrado. A allowlist e a lista de bloqueio controlam o mesmo registro automático sem ela. Uma máquina que iniciou uma vez com ela definida não retoma o registro automático depois que você a remove |192| [`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL=1`](https://code.claude.com/docs/pt/env-vars) | Impede que sessões interativas de terminal registrem automaticamente o marketplace oficial | Não remove um marketplace já registrado. A allowlist e a lista de bloqueio controlam o mesmo registro automático sem ela. Uma máquina que iniciou uma vez com ela definida não retoma o registro automático depois que você a remove |


361 361 

362As sugestões de um marketplace aparecem apenas quando ele está registrado na máquina do usuário, você lista seu nome em `pluginSuggestionMarketplaces` em configurações gerenciadas, e você declara sua fonte na mesma política. Declare a fonte como a entrada `extraKnownMarketplaces` do marketplace ou como uma entrada de allowlist. O marketplace oficial precisa apenas do nome. Veja [Enable suggestions in managed settings](https://code.claude.com/docs/pt/plugins/relevance.md#enable-suggestions-in-managed-settings).362As sugestões de um marketplace aparecem apenas quando ele está registrado na máquina do usuário, você lista seu nome em `pluginSuggestionMarketplaces` em configurações gerenciadas, e você declara sua fonte na mesma política. Declare a fonte como a entrada `extraKnownMarketplaces` do marketplace ou como uma entrada de allowlist. O marketplace oficial precisa apenas do nome. Veja [Enable suggestions in managed settings](https://code.claude.com/docs/pt/plugins/relevance.md#enable-suggestions-in-managed-settings).

363 363 

364> [!NOTE]

365>

366> Na conversa de uma sessão na nuvem, o Claude pode sugerir plugins independentemente de você definir `pluginSuggestionMarketplaces`. Para desativar essas sugestões, veja [Desativar sugestões de plugins](https://code.claude.com/docs/pt/claude-code-on-the-web.md#turn-off-plugin-suggestions).

367 

364## Audit and review368## Audit and review

365 369 

366Eventos OpenTelemetry e a API Analytics dizem o que sua frota instala e executa.370Eventos OpenTelemetry e a API Analytics dizem o que sua frota instala e executa.

Details

8 8 

9O Claude Code pode sugerir a instalação de um plugin do marketplace da sua organização quando a sessão de um usuário corresponde aos sinais que você define para esse plugin. Os sinais incluem o diretório de trabalho, os arquivos que o Claude leu e os comandos que o Claude executou. Você os define adicionando um bloco `relevance` à entrada do plugin em `marketplace.json`.9O Claude Code pode sugerir a instalação de um plugin do marketplace da sua organização quando a sessão de um usuário corresponde aos sinais que você define para esse plugin. Os sinais incluem o diretório de trabalho, os arquivos que o Claude leu e os comandos que o Claude executou. Você os define adicionando um bloco `relevance` à entrada do plugin em `marketplace.json`.

10 10 

11Um operador de marketplace escreve as entradas `relevance`. Em seguida, um administrador adiciona o marketplace à allowlist nas configurações gerenciadas. Os usuários não veem sugestões de um marketplace até que ele seja adicionado à allowlist.11Um operador de marketplace escreve as entradas `relevance`. Em seguida, um administrador adiciona o marketplace à allowlist nas configurações gerenciadas. No terminal, os usuários não veem sugestões de um marketplace até que ele seja adicionado à allowlist.

12 12 

13> [!NOTE]13> [!NOTE]

14>14>

15> Estes casos são abordados em outras páginas:15> Estes casos são abordados em outras páginas:

16>16>

17> * **Você quer instalar plugins**: consulte [Instalar e gerenciar plugins](https://code.claude.com/docs/pt/plugins/install.md)17> * **Você quer instalar plugins**: consulte [Instalar e gerenciar plugins](https://code.claude.com/docs/pt/plugins/install.md)

18> * **Você quer desativar as sugestões**: consulte [Entender como funciona a relevância de plugins](#understand-how-plugin-relevance-works)18> * **Você quer desativar as sugestões**: consulte [Entender como funciona a relevância de plugins](#understand-how-plugin-relevance-works) ou, para as sugestões que o Claude faz na conversa de uma sessão na nuvem, [Desativar sugestões de plugins](https://code.claude.com/docs/pt/claude-code-on-the-web.md#turn-off-plugin-suggestions)

19 19 

20Comece pelas seções correspondentes à sua função:20Comece pelas seções correspondentes à sua função:

21 21 


158 158 

159## Habilitar sugestões nas configurações gerenciadas159## Habilitar sugestões nas configurações gerenciadas

160 160 

161Os usuários não veem sugestões de um marketplace até que um administrador o adicione à allowlist nas [configurações gerenciadas](https://code.claude.com/docs/pt/plugins/org.md), mesmo quando seu `marketplace.json` declara `relevance`.161No terminal, os usuários não veem sugestões de um marketplace até que um administrador o adicione à allowlist nas [configurações gerenciadas](https://code.claude.com/docs/pt/plugins/org.md), mesmo quando seu `marketplace.json` declara `relevance`.

162 162 

163Para adicionar um marketplace à allowlist, edite suas configurações gerenciadas da seguinte forma:163Para adicionar um marketplace à allowlist, edite suas configurações gerenciadas da seguinte forma:

164 164 

sandboxing.md +1 −1

Details

891 891 

892### Uma pasta chamada `objects` ou `refs` desaparece após um comando892### Uma pasta chamada `objects` ou `refs` desaparece após um comando

893 893 

894Uma pasta `objects` ou `refs` de nível superior que apareceu durante a sessão pode ser [excluída após o término de um comando em sandbox](#when-the-sandbox-deletes-head-objects-or-refs). Não importa se foi um comando, o Claude ou você quem a criou. Para manter uma pasta, deixe algo dentro dela. Se um arquivo ou link simbólico `HEAD` esteve no nível superior durante a sessão, mova-o para outro lugar e, em seguida, reinicie todas as sessões do Claude Code abertas ali.894Uma pasta `objects` ou `refs` de nível superior que apareceu durante a sessão pode ser [excluída após o término de um comando em sandbox](#when-the-sandbox-deletes-head-objects-or-refs). Não importa se foi um comando, o Claude ou você quem a criou. Para manter uma pasta, deixe algo dentro dela. Se um arquivo ou link simbólico `HEAD` esteve no nível superior durante a sessão, mova-o para outro lugar e, em seguida, reinicie todas as sessões do Claude Code abertas no seu diretório de trabalho.

895 895 

896Antes da v2.1.307, a pasta era excluída mesmo com algo dentro dela e sem `HEAD`. Em uma versão anterior, [atualize o Claude Code](https://code.claude.com/docs/pt/setup.md#update-claude-code).896Antes da v2.1.307, a pasta era excluída mesmo com algo dentro dela e sem `HEAD`. Em uma versão anterior, [atualize o Claude Code](https://code.claude.com/docs/pt/setup.md#update-claude-code).

897 897 

Details

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

811* **Uma sessão é coletada, mas o Claude nunca responde à primeira mensagem**: se seus runners alcançam `api.anthropic.com` através de um proxy, configure-o para repassar a resposta `/worker/events/stream` da sessão à medida que ela chega. Aumentar os timeouts do runner não ajuda. Para confirmar a causa no log do runner, consulte [Uma sessão é coletada, mas o Claude nunca responde à primeira mensagem](#when-a-sessions-first-message-is-never-answered).811* **Uma sessão é coletada, mas o Claude nunca responde à primeira mensagem**: se seus runners alcançam `api.anthropic.com` através de um proxy, configure-o para repassar a resposta `/worker/events/stream` da sessão à medida que ela chega. Aumentar os timeouts do runner não ajuda. Para confirmar a causa no log do runner, consulte [Uma sessão é coletada, mas o Claude nunca responde à primeira mensagem](#when-a-sessions-first-message-is-never-answered).

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

813* **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.813* **As sessões não conseguem alcançar a rede através de um proxy de saída com autenticação**: 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 oculta 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.

814* **O runner registra linhas `Poll failed` contendo `rejecting the malformed poll response`**: o runner recebeu uma resposta de work-poll cujo corpo não é o JSON esperado da fila. Uma causa é um proxy interceptador ou um portal cativo respondendo com sua própria página. Se o runner se conecta através de um proxy, configure o proxy para passar as respostas de `api.anthropic.com` inalteradas.814* **O runner registra linhas `Poll failed` contendo `rejecting the malformed poll response`**: o runner recebeu uma resposta de work-poll cujo corpo não é o JSON esperado da fila. Uma causa é um proxy interceptador ou um portal cativo respondendo com sua própria página. Se o runner se conecta através de um proxy, configure o proxy para passar as respostas de `api.anthropic.com` inalteradas.

815 815 

816 O runner rejeita a resposta malformada, a contabiliza sob o tipo `transport` da [métrica](https://code.claude.com/docs/pt/self-hosted-environments-reference.md#prometheus-metrics) `claude_code_self_hosted_runner_poll_errors_total` e tenta novamente no cronograma de poll com falha descrito em [Ciclo de vida da sessão](https://code.claude.com/docs/pt/self-hosted-environments#session-lifecycle). O runner continua servindo suas sessões ativas. 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 ele saísse.816 O runner rejeita a resposta malformada, a contabiliza sob o tipo `transport` da [métrica](https://code.claude.com/docs/pt/self-hosted-environments-reference.md#prometheus-metrics) `claude_code_self_hosted_runner_poll_errors_total` e tenta novamente no cronograma de poll com falha descrito em [Ciclo de vida da sessão](https://code.claude.com/docs/pt/self-hosted-environments#session-lifecycle). O runner continua servindo suas sessões ativas. 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 ele saísse.

Details

90| Sinalizador | Padrão | Descrição |90| Sinalizador | Padrão | Descrição |

91| :- | :- | :- |91| :- | :- | :- |

92| `--hook-concurrency <n>` | `4` | Máximo de hooks `spawn-runner` em execução em paralelo. Também limita quantas requisições de geração são reivindicadas por pesquisa. O orquestrador verifica novas requisições de geração somente depois que todos os hooks que iniciou tiverem terminado, portanto um hook lento atrasa os próximos hooks desse orquestrador. |92| `--hook-concurrency <n>` | `4` | Máximo de hooks `spawn-runner` em execução em paralelo. Também limita quantas requisições de geração são reivindicadas por pesquisa. O orquestrador verifica novas requisições de geração somente depois que todos os hooks que iniciou tiverem terminado, portanto um hook lento atrasa os próximos hooks desse orquestrador. |

93| `--hook-timeout <sec>` | `60` | Encerre a árvore de processos do hook após muitos segundos. O tempo limite mais sua graça de morte de 5 segundos deve ficar abaixo de `--expected-spawn-seconds`; o orquestrador impõe isso na inicialização. |93| `--hook-timeout <sec>` | `60` | Encerre a árvore de processos do hook após esse número de segundos. O tempo limite mais sua graça de morte de 5 segundos deve ficar abaixo de `--expected-spawn-seconds`; o orquestrador impõe isso na inicialização. |

94| `--expected-spawn-seconds <sec>` | `120` | Tempo p99 esperado desde o momento em que o orquestrador recebe uma requisição de geração até o momento em que o executor se registra, incluindo qualquer espera por capacidade na sua plataforma. O servidor impõe um intervalo de 10 a 3600. Enviado em cada pesquisa como a concessão do lado do servidor: se nenhum executor se registrar antes de decorrido, a sessão é re-oferecida com um novo ID de pedido. Todas as réplicas devem compartilhar este valor. |94| `--expected-spawn-seconds <sec>` | `120` | Tempo p99 esperado desde o momento em que o orquestrador recebe uma requisição de geração até o momento em que o executor se registra, incluindo qualquer espera por capacidade na sua plataforma. O servidor impõe um intervalo de 10 a 3600. Enviado em cada pesquisa como a concessão do lado do servidor: se nenhum executor se registrar antes de decorrido, a sessão é re-oferecida com um novo ID de pedido. Todas as réplicas devem compartilhar este valor. |

95| `--min-idle <n>` | `0` | Mantenha pelo menos N slots de sessão ociosos livres gerando executores de espera de forma proativa. `0` desabilita pré-aquecimento. Emparelhe com o `--exit-if-unused-min` do executor para que executores de espera em excesso se recuperem. |95| `--min-idle <n>` | `0` | Mantenha pelo menos N slots de sessão ociosos livres gerando executores de espera de forma proativa. `0` desabilita pré-aquecimento. Emparelhe com o `--exit-if-unused-min` do executor para que executores de espera em excesso se recuperem. |

96| `--debug-dir <path>` | não definido | Escreva a ordem de trabalho de cada solicitação de geração e stderr do hook em disco. Apenas depuração; nunca defina em produção. |96| `--debug-dir <path>` | não definido | Escreva a ordem de trabalho de cada solicitação de geração e stderr do hook em disco. Apenas depuração; nunca defina em produção. |

Details

170 170 

171**Lançamentos subsequentes com configurações em cache:**171**Lançamentos subsequentes com configurações em cache:**

172 172 

173* As configurações em cache se aplicam imediatamente na inicialização, exceto pelos valores em cache `modelPricing` e `managedMcpServers` e as variáveis de ambiente que o Claude Code retém até que o servidor confirme o payload173* As configurações em cache se aplicam imediatamente na inicialização, exceto pelos valores em cache `modelPricing` e `managedMcpServers`; as variáveis de ambiente que o Claude Code retém até que o servidor confirme o payload; a remoção, o reposicionamento ou a desativação da [guarda integrada](https://code.claude.com/docs/pt/plugins/mods/admin.md#know-what-happens-by-default) por uma lista de plugins em cache; e, em uma máquina onde uma fonte gerenciada pelo endpoint lista ou ativa plugins próprios, o [status organizacional](https://code.claude.com/docs/pt/plugins/mods/admin.md#install-your-organizations-mods) de um plugin que apenas uma lista em cache ativa

174* Um [`modelPricing`](https://code.claude.com/docs/pt/settings-reference#modelpricing) em cache não se aplica até que a busca da sessão confirme o payload. Até então, os valores de custo que os desenvolvedores veem em `/usage` e na linha de status estão no preço de lista174* Um [`modelPricing`](https://code.claude.com/docs/pt/settings-reference#modelpricing) em cache não se aplica até que a busca da sessão confirme o payload. Até então, os valores de custo que os desenvolvedores veem em `/usage` e na linha de status estão no preço de lista

175* Um bloco [`managedMcpServers`](https://code.claude.com/docs/pt/settings-reference#managedmcpservers) em cache não se aplica até que a busca da sessão confirme o payload. O Claude Code aguarda até 30 segundos por essa busca antes de conectar servidores MCP. Se a busca falhar ou expirar, a sessão inicia sem os servidores da organização, `/status` diz isso, e eles se conectam uma vez que uma busca posterior os confirma. Veja [Quando servidores fornecidos se conectam](https://code.claude.com/docs/pt/managed-mcp.md#when-provided-servers-connect) para o comportamento completo, incluindo primeiro lançamento. Requer Claude Code v2.1.259 ou posterior175* Um bloco [`managedMcpServers`](https://code.claude.com/docs/pt/settings-reference#managedmcpservers) em cache não se aplica até que a busca da sessão confirme o payload. O Claude Code aguarda até 30 segundos por essa busca antes de conectar servidores MCP. Se a busca falhar ou expirar, a sessão inicia sem os servidores da organização, `/status` diz isso, e eles se conectam uma vez que uma busca posterior os confirma. Veja [Quando servidores fornecidos se conectam](https://code.claude.com/docs/pt/managed-mcp.md#when-provided-servers-connect) para o comportamento completo, incluindo primeiro lançamento. Requer Claude Code v2.1.259 ou posterior

176* Um valor em cache de [`prependPlugins`](https://code.claude.com/docs/pt/settings-reference#prependplugins), [`appendPlugins`](https://code.claude.com/docs/pt/settings-reference#appendplugins) ou [`enabledPlugins`](https://code.claude.com/docs/pt/settings-reference#enabledplugins) não pode remover a guarda integrada, alterar sua posição ou desativá-la até que a busca da sessão confirme o payload

177* Em uma máquina onde uma [fonte gerenciada pelo endpoint](https://code.claude.com/docs/pt/managed-settings.md#choose-a-delivery-mechanism) lista ou ativa plugins próprios, um plugin que apenas uma lista em cache ativa conta como [do usuário](https://code.claude.com/docs/pt/plugins/mods/admin.md#install-your-organizations-mods), e não da sua organização, até que a busca confirme o payload

176* O Claude Code busca configurações atualizadas em segundo plano178* O Claude Code busca configurações atualizadas em segundo plano

177* As configurações em cache persistem através de falhas de rede. Se a busca de inicialização falhar, o Claude Code avisa em sessões interativas que a política em cache está em vigor179* As configurações em cache persistem através de falhas de rede. Se a busca de inicialização falhar, o Claude Code avisa em sessões interativas que a política em cache está em vigor

178* Até que uma busca seja bem-sucedida, os valores retidos na inicialização permanecem retidos180* Até que uma busca seja bem-sucedida, os valores retidos na inicialização permanecem retidos

sessions.md +1 −1

Details

249 249 

250Por padrão, Claude Code armazena transcritos como JSONL em `~/.claude/projects/<project>/<session-id>.jsonl`, onde `<project>` é o caminho do seu diretório de trabalho com caracteres não alfanuméricos substituídos por `-`. Para um diretório de trabalho cujo nome convertido excede 200 caracteres, Claude Code trunca o nome para 200 caracteres e anexa um hash do caminho completo, para que o nome do diretório permaneça dentro dos limites do sistema de arquivos.250Por padrão, Claude Code armazena transcritos como JSONL em `~/.claude/projects/<project>/<session-id>.jsonl`, onde `<project>` é o caminho do seu diretório de trabalho com caracteres não alfanuméricos substituídos por `-`. Para um diretório de trabalho cujo nome convertido excede 200 caracteres, Claude Code trunca o nome para 200 caracteres e anexa um hash do caminho completo, para que o nome do diretório permaneça dentro dos limites do sistema de arquivos.

251 251 

252Cada linha é um objeto JSON para uma mensagem, uso de ferramenta ou entrada de metadados. O formato de entrada é interno ao Claude Code e muda entre versões, portanto scripts que analisam esses arquivos diretamente podem quebrar em qualquer versão. Para construir sobre dados de sessão, use `/export` ou as [interfaces de script](#access-conversations-from-scripts) em vez disso.252Cada linha é um objeto JSON: uma mensagem, um uso ou resultado de ferramenta, um registro de uma requisição que Claude Code enviou ao modelo, ou uma entrada de metadados. O formato de entrada é interno ao Claude Code e muda entre versões, portanto scripts que analisam esses arquivos diretamente podem quebrar em qualquer versão. Para construir sobre dados de sessão, use `/export` ou as [interfaces de script](#access-conversations-from-scripts) em vez disso.

253 253 

254A localização, retenção e comportamento de gravação são configuráveis:254A localização, retenção e comportamento de gravação são configuráveis:

255 255 

Details

2037* **Type**: array de strings, cada um um nome de serviço; um único `*` final corresponde a um prefixo e `"*"` sozinho corresponde a cada serviço2037* **Type**: array de strings, cada um um nome de serviço; um único `*` final corresponde a um prefixo e `"*"` sozinho corresponde a cada serviço

2038* **Default**: não definido2038* **Default**: não definido

2039 2039 

2040Isso permite cada serviço sob o prefixo `com.apple.coresimulator.`:2040Isto permite todos os serviços sob o prefixo `com.apple.CoreSimulator.`:

2041 2041 

2042```json settings.json theme={null}2042```json settings.json theme={null}

2043{2043{

2044 "sandbox": {2044 "sandbox": {

2045 "network": {2045 "network": {

2046 "allowMachLookup": ["com.apple.coresimulator.*"]2046 "allowMachLookup": ["com.apple.CoreSimulator.*"]

2047 }2047 }

2048 }2048 }

2049}2049}


4729* **Tipo**: array de strings, caminhos de diretório relativos à raiz do repositório4729* **Tipo**: array de strings, caminhos de diretório relativos à raiz do repositório

4730* **Padrão**: não definido, portanto cada worktree faz checkout de toda a árvore4730* **Padrão**: não definido, portanto cada worktree faz checkout de toda a árvore

4731 4731 

4732Este exemplo faz checkout apenas de `packages/my-app` e `shared/utils`, mais arquivos no nível raiz, em cada worktree:4732Inclua `.claude` na lista para que cada worktree também tenha o `.claude/settings.json` e o `.claude/rules/` do repositório. Este exemplo faz checkout apenas de `.claude`, `packages/my-app` e `shared/utils`, mais arquivos no nível raiz, em cada worktree:

4733 4733 

4734```json settings.json theme={null}4734```json settings.json theme={null}

4735{4735{

4736 "worktree": {4736 "worktree": {

4737 "sparsePaths": ["packages/my-app", "shared/utils"]4737 "sparsePaths": [".claude", "packages/my-app", "shared/utils"]

4738 }4738 }

4739}4739}

4740```4740```


5525 5525 

5526Claude Code ainda aceita um `--mcp-config` cujos servidores são todas entradas `type: "sdk"` em processo, então o Agent SDK e a extensão VS Code continuam funcionando. Os usuários ainda podem adicionar servidores com `claude mcp add` ou um arquivo `.mcp.json`; para controle por servidor, defina [`allowedMcpServers`](https://code.claude.com/docs/pt/managed-mcp) também. Requer Claude Code v2.1.193 ou posterior.5526Claude Code ainda aceita um `--mcp-config` cujos servidores são todas entradas `type: "sdk"` em processo, então o Agent SDK e a extensão VS Code continuam funcionando. Os usuários ainda podem adicionar servidores com `claude mcp add` ou um arquivo `.mcp.json`; para controle por servidor, defina [`allowedMcpServers`](https://code.claude.com/docs/pt/managed-mcp) também. Requer Claude Code v2.1.193 ou posterior.

5527 5527 

5528A mesma verificação cobre pastas de plugins nomeadas na variável de ambiente [`CLAUDE_CODE_PLUGIN_DIRS`](https://code.claude.com/docs/pt/env-vars#variables), que requer Claude Code v2.1.280 ou posterior. Quando a variável nomeia uma pasta, Claude Code sai com o mesmo erro, e o erro diz para desconfigurar a variável.5528`disableSideloadFlags` também rejeita pastas de plugins destas fontes:

5529 

5530* **A variável de ambiente [`CLAUDE_CODE_PLUGIN_DIRS`](https://code.claude.com/docs/pt/env-vars#variables)**: quando a variável nomeia uma pasta de plugin, Claude Code sai na inicialização com um erro que nomeia a variável e diz para desconfigurá-la. Requer Claude Code v2.1.280 ou posterior

5531* **A opção [`addPlugins`](https://code.claude.com/docs/pt/agent-sdk/typescript#load-more-plugin-folders-with-addplugins) do Agent SDK**: quando uma aplicação passa pastas de plugins para `reloadPlugins()` em `addPlugins`, essa chamada falha com um erro. A sessão continua em execução com os plugins que já tinha. Requer Claude Code v2.1.301 ou posterior

5529 5532 

5530Em sessões na nuvem, Claude Code também ignora atualizações MCP entregues pelo servidor no meio da sessão, o caminho por trás da configuração de sessão na nuvem e SDK `setMcpServers()` que alcançam essas sessões. Entradas `type: "sdk"` em processo e as ferramentas Slack de uma sessão Claude Tag permanecem isentas lá também. Antes da v2.1.268, tanto esse descarte quanto o descarte de inicialização também removiam as ferramentas Slack de uma sessão Claude Tag. Antes da v2.1.239, um `--mcp-config` entregue pelo servidor bloqueava uma sessão na nuvem de iniciar.5533Em sessões na nuvem, Claude Code também ignora atualizações MCP entregues pelo servidor no meio da sessão, o caminho por trás da configuração de sessão na nuvem e SDK `setMcpServers()` que alcançam essas sessões. Entradas `type: "sdk"` em processo e as ferramentas Slack de uma sessão Claude Tag permanecem isentas lá também. Antes da v2.1.268, tanto esse descarte quanto o descarte de inicialização também removiam as ferramentas Slack de uma sessão Claude Tag. Antes da v2.1.239, um `--mcp-config` entregue pelo servidor bloqueava uma sessão na nuvem de iniciar.

5531 5534 


5748}5751}

5749```5752```

5750 5753 

5751Uma vez que uma fonte de administrador ativa a cadeia, a política HKCU se une a ela no WSL apenas quando HKCU também define a chave como `true`. Essa cópia não ativa a cadeia por si só. Uma fonte do Windows que contém apenas essa chave não conta como uma fonte de política, então uma fonte de prioridade mais baixa ainda fornece a política. Esta chave não tem efeito no Windows nativo.5754Uma vez que uma fonte de administrador ativa a cadeia, a política HKCU se une a ela no WSL apenas quando HKCU também define a chave como `true`. Essa cópia não ativa a cadeia por si só. Uma fonte do Windows que contém apenas essa chave, definida como `true` ou `false`, não conta como uma fonte de política, então uma fonte de prioridade mais baixa ainda fornece a política. Esta chave não tem efeito no Windows nativo.

5752 5755 

5753Claude Code lê `true` e `false` com ou sem aspas e lê `null` como removendo a chave. Uma fonte do Windows controlada por administrador que contém qualquer outro valor conta como um [documento de administrador presente](https://code.claude.com/docs/pt/managed-settings.md#present-admin-documents) com a cadeia ativada: nem `/etc/claude-code` nem HKCU se aplica, e um aviso de inicialização nomeia a chave. Um valor HKLM ou arquivo de pasta do Windows que existe mas não pode ser lido também impede que `/etc/claude-code` se aplique independentemente de a cadeia estar ativada. Requer Claude Code v2.1.282 ou posterior.5756Claude Code lê `true` e `false` com ou sem aspas e lê `null` como removendo a chave. Uma fonte do Windows controlada por administrador que contém qualquer outro valor conta como um [documento de administrador presente](https://code.claude.com/docs/pt/managed-settings.md#present-admin-documents) com a cadeia ativada: nem `/etc/claude-code` nem HKCU se aplica, e um aviso de inicialização nomeia a chave. Um valor HKLM ou arquivo de pasta do Windows que existe mas não pode ser lido também impede que `/etc/claude-code` se aplique independentemente de a cadeia estar ativada. Requer Claude Code v2.1.282 ou posterior.

5754 5757 

vs-code.md +36 −17

Details

203What's in @src/components/ (include a trailing slash for folders)203What's in @src/components/ (include a trailing slash for folders)

204```204```

205 205 

206Para PDFs grandes, você pode pedir ao Claude que leia páginas específicas em vez do arquivo inteiro. Peça uma única página, um intervalo como as páginas 1-10 ou um intervalo aberto como da página 3 em diante. Ler páginas específicas requer o [poppler-utils](https://code.claude.com/docs/pt/tools-reference.md#read-tool-behavior) na máquina onde o Claude Code é executado.206### Ler páginas específicas de um PDF

207 

208Quando você seleciona texto no editor, o Claude pode ver automaticamente o código destacado. O rodapé da caixa de prompt mostra quantas linhas estão selecionadas. Pressione `Option+K` (Mac) / `Alt+K` (Windows/Linux) para inserir uma @-menção com o caminho do arquivo e os números das linhas, por exemplo `@app.ts#5-10`. Clique no **X** do indicador de seleção para removê-la, de modo que o Claude não receba a seleção. O indicador volta quando você seleciona outro texto.

209 207 

210A extensão retém o texto selecionado de alguns arquivos:208Para PDFs grandes, você pode pedir ao Claude que leia páginas específicas em vez do arquivo inteiro. Peça uma única página, um intervalo como as páginas 1-10 ou um intervalo aberto como da página 3 em diante. Ler páginas específicas requer o [poppler-utils](https://code.claude.com/docs/pt/tools-reference.md#read-tool-behavior) na máquina onde o Claude Code é executado.

211 

212* Quando o arquivo está dentro do seu workspace e corresponde às suas configurações `files.exclude` ou `search.exclude`, o Claude recebe no máximo o caminho do arquivo, e não o texto que você selecionou.

213* O mesmo se aplica a um arquivo ignorado pelo git, desde que a configuração `search.useIgnoreFiles` do VS Code e a [configuração `respectGitIgnore`](#extension-settings) da extensão estejam ambas ativadas, que é o padrão.

214 209 

215Esse filtro abrange somente o painel de chat. Quando o Claude Code é executado no terminal integrado, a CLI envia o texto selecionado independentemente do arquivo. Para impedir que o conteúdo de um arquivo chegue ao Claude nesse caso, adicione uma [regra de negação de `Read`](#the-built-in-ide-mcp-server).210### Incluir a saída do terminal nos prompts

216 211 

217O Claude também vê qual arquivo você tem aberto no editor, mesmo quando nada está selecionado, e a caixa de prompt mostra o nome dele. Para adicionar somente o texto selecionado, desative a [configuração Attach Open File](vscode://settings/claudeCode.attachOpenFile). A configuração requer o Claude Code v2.1.271 ou posterior.212Referencie a saída do terminal nos seus prompts usando `@terminal:name`, em que `name` é o título do terminal. Isso permite que o Claude veja a saída de comandos, mensagens de erro ou logs sem copiar e colar.

218 213 

219Você também pode anexar imagens e arquivos à sua mensagem:214### Anexar imagens e arquivos

220 215 

221* Para anexar uma imagem, cole-a da área de transferência na caixa de prompt.216* Para anexar uma imagem, cole-a da área de transferência na caixa de prompt.

222* Para anexar arquivos, mantenha `Shift` pressionado enquanto os arrasta para a caixa de prompt.217* Para anexar arquivos, mantenha `Shift` pressionado enquanto os arrasta para a caixa de prompt.

223* Para remover um anexo do contexto, clique no X dele.218* Para remover um anexo do contexto, clique no X dele.

224 219 

225### Incluir a saída do terminal nos prompts

226 

227Referencie a saída do terminal nos seus prompts usando `@terminal:name`, em que `name` é o título do terminal. Isso permite que o Claude veja a saída de comandos, mensagens de erro ou logs sem copiar e colar.

228 

229### Colar texto220### Colar texto

230 221 

231O texto que você cola permanece visível na caixa de prompt, em vez de ser recolhido em um espaço reservado como acontece [no terminal](https://code.claude.com/docs/pt/terminal-config.md#paste-large-content). Em sessões em que o Claude Code [marca o texto colado](https://code.claude.com/docs/pt/terminal-config.md#how-claude-treats-pasted-text), o Claude ainda vê uma colagem grande como texto que você colou, e não digitou.222O texto que você cola permanece visível na caixa de prompt, em vez de ser recolhido em um espaço reservado como acontece [no terminal](https://code.claude.com/docs/pt/terminal-config.md#paste-large-content). Em sessões em que o Claude Code [marca o texto colado](https://code.claude.com/docs/pt/terminal-config.md#how-claude-treats-pasted-text), o Claude ainda vê uma colagem grande como texto que você colou, e não digitou.


235* Se um aviso como `Removed 3 invisible characters from the pasted text` aparecer quando você colar, o texto foi inserido sem esses caracteres.226* Se um aviso como `Removed 3 invisible characters from the pasted text` aparecer quando você colar, o texto foi inserido sem esses caracteres.

236* Se um aviso sobre caracteres removidos aparecer quando você enviar, nada foi enviado. O texto limpo está de volta na caixa de prompt. Envie novamente para enviar o texto como exibido.227* Se um aviso sobre caracteres removidos aparecer quando você enviar, nada foi enviado. O texto limpo está de volta na caixa de prompt. Envie novamente para enviar o texto como exibido.

237 228 

229### Contexto automático da sua seleção e do arquivo aberto

230 

231Quando você seleciona texto no editor, o Claude pode ver automaticamente o código destacado. O rodapé da caixa de prompt mostra quantas linhas estão selecionadas. O Claude também vê qual arquivo você tem aberto no editor, mesmo quando nada está selecionado, e a caixa de prompt mostra o nome dele.

232 

233Pressione `Option+K` (Mac) / `Alt+K` (Windows/Linux) para inserir uma @-menção com o caminho do arquivo e os números das linhas, por exemplo `@app.ts#5-10`.

234 

235#### Manter sua seleção e o arquivo aberto fora das suas mensagens

236 

237Para impedir que o texto selecionado ou o arquivo aberto entre nas suas mensagens, desative a configuração correspondente nas configurações do VS Code:

238 

239* **Texto selecionado**: desative a [configuração Attach Selection](vscode://settings/claudeCode.attachSelection). Requer o Claude Code v2.1.300 ou posterior. Para descartar uma seleção, clique no **X** ao lado da contagem de linhas. A contagem volta quando você seleciona outro texto.

240* **Arquivo aberto**: desative a [configuração Attach Open File](vscode://settings/claudeCode.attachOpenFile). Requer o Claude Code v2.1.271 ou posterior. O arquivo fica de fora, a menos que sua mensagem inclua texto que você selecionou nele.

241 

242Para adicionar texto como uma @-menção com Attach Selection desativado, selecione-o e pressione `Option+K` no Mac ou `Alt+K` no Windows e no Linux.

243 

244Ambas as configurações também se aplicam quando você executa `claude` no terminal integrado do VS Code.

245 

246#### Texto selecionado de arquivos excluídos ou ignorados

247 

248No painel de chat, a extensão retém o texto selecionado de alguns arquivos:

249 

250* Quando o arquivo está dentro do seu workspace e corresponde às suas configurações `files.exclude` ou `search.exclude`, o Claude recebe no máximo o caminho do arquivo, e não o texto que você selecionou.

251* O mesmo se aplica a um arquivo ignorado pelo git, desde que a configuração `search.useIgnoreFiles` do VS Code e a [configuração `respectGitIgnore`](#extension-settings) da extensão estejam ambas ativadas, que é o padrão.

252 

253Esse filtro abrange somente o painel de chat. Quando o Claude Code é executado no terminal integrado, o Claude pode receber o texto que você seleciona nesses arquivos. Para impedir que o conteúdo de um arquivo chegue ao Claude nesse caso, adicione uma [regra de negação de `Read`](https://code.claude.com/docs/pt/permissions#read-and-edit).

254 

238### Matemática em LaTeX nas respostas255### Matemática em LaTeX nas respostas

239 256 

240O painel de chat mostra a matemática em LaTeX nas respostas do Claude como fórmulas tipografadas. A renderização de matemática requer o Claude Code v2.1.301 ou posterior. No [modo terminal](#switch-to-terminal-mode), a matemática não é tipografada. O painel tipografa tanto matemática em destaque quanto matemática inline:257O painel de chat mostra a matemática em LaTeX nas respostas do Claude como fórmulas tipografadas. A renderização de matemática requer o Claude Code v2.1.301 ou posterior. No [modo terminal](#switch-to-terminal-mode), a matemática não é tipografada. O painel tipografa tanto matemática em destaque quanto matemática inline:


694| `preferredLocation` | `panel` | Onde o Claude abre: `sidebar` (à direita) ou `panel` (nova aba) |711| `preferredLocation` | `panel` | Onde o Claude abre: `sidebar` (à direita) ou `panel` (nova aba) |

695| `lockEditorGroups` | `true` | [Bloquear os grupos de editores que o Claude inicia para suas abas](#choose-where-claude-lives), para que os arquivos que você abre enquanto uma aba do Claude está em foco vão para outro grupo. Quando desativada, a extensão nunca bloqueia um grupo de editores. Requer o Claude Code v2.1.274 ou posterior |712| `lockEditorGroups` | `true` | [Bloquear os grupos de editores que o Claude inicia para suas abas](#choose-where-claude-lives), para que os arquivos que você abre enquanto uma aba do Claude está em foco vão para outro grupo. Quando desativada, a extensão nunca bloqueia um grupo de editores. Requer o Claude Code v2.1.274 ou posterior |

696| `autosave` | `true` | Salvar arquivos automaticamente antes que o Claude os leia ou grave |713| `autosave` | `true` | Salvar arquivos automaticamente antes que o Claude os leia ou grave |

697| `attachOpenFile` | `true` | Adicionar o arquivo aberto no editor às suas mensagens e exibi-lo na caixa de prompt. Quando desativada, apenas o texto selecionado é adicionado. Requer o Claude Code v2.1.271 ou posterior |714| `attachOpenFile` | `true` | Adicionar o arquivo aberto no editor às suas mensagens e exibi-lo na caixa de prompt. Quando desativada, o arquivo é adicionado apenas junto com o texto que você seleciona. Requer o Claude Code v2.1.271 ou posterior |

715| `attachSelection` | `true` | Adicionar o texto que você seleciona no editor às suas mensagens e exibi-lo na caixa de prompt. Quando desativada, você ainda pode [adicionar uma seleção como uma @-menção](#automatic-context-from-your-selection-and-open-file). Requer o Claude Code v2.1.300 ou posterior |

698| `useCtrlEnterToSend` | `false` | Usar Ctrl/Cmd+Enter em vez de Enter para enviar prompts |716| `useCtrlEnterToSend` | `false` | Usar Ctrl/Cmd+Enter em vez de Enter para enviar prompts |

699| `scrollToBottomOnSend` | `true` | Rolar a conversa até o final quando você envia uma mensagem. Quando desativada, a conversa permanece onde você a deixou. Requer o Claude Code v2.1.275 ou posterior |717| `scrollToBottomOnSend` | `true` | Rolar a conversa até o final quando você envia uma mensagem. Quando desativada, a conversa permanece onde você a deixou. Requer o Claude Code v2.1.275 ou posterior |

700| `showMessageTimestamps` | `true` | Mostrar quando cada mensagem foi enviada. Uma linha de data marca onde o dia muda. Requer o Claude Code v2.1.284 ou posterior. Antes da v2.1.290, o padrão era `false` |718| `showMessageTimestamps` | `true` | Mostrar quando cada mensagem foi enviada. Uma linha de data marca onde o dia muda. Requer o Claude Code v2.1.284 ou posterior. Antes da v2.1.290, o padrão era `false` |


705| `continueAfterReload` | `true` | Após recarregar a janela, o Claude [continua a etapa que foi interrompida](#continue-conversations-after-a-reload) na sessão restaurada. Requer o Claude Code v2.1.274 ou posterior |723| `continueAfterReload` | `true` | Após recarregar a janela, o Claude [continua a etapa que foi interrompida](#continue-conversations-after-a-reload) na sessão restaurada. Requer o Claude Code v2.1.274 ou posterior |

706| `hideOnboarding` | `false` | Ocultar a lista de verificação de integração (ícone de capelo de formatura) |724| `hideOnboarding` | `false` | Ocultar a lista de verificação de integração (ícone de capelo de formatura) |

707| `focusView` | `false` | Ocultar chamadas de ferramenta, resultados de ferramentas e pensamento atrás de linhas expansíveis, deixando seus prompts e as respostas do Claude. A lista de tarefas mais recente do Claude permanece visível; isso requer o Claude Code v2.1.225 ou posterior. Você também pode alternar a visualização Focus no menu de comandos. Requer o Claude Code v2.1.221 ou posterior |725| `focusView` | `false` | Ocultar chamadas de ferramenta, resultados de ferramentas e pensamento atrás de linhas expansíveis, deixando seus prompts e as respostas do Claude. A lista de tarefas mais recente do Claude permanece visível; isso requer o Claude Code v2.1.225 ou posterior. Você também pode alternar a visualização Focus no menu de comandos. Requer o Claude Code v2.1.221 ou posterior |

708| `respectGitIgnore` | `true` | Excluir padrões do .gitignore das pesquisas de arquivos e do [contexto de seleção](#reference-files-and-folders) |726| `respectGitIgnore` | `true` | Excluir padrões do .gitignore das pesquisas de arquivos e do [contexto de seleção](#selected-text-from-excluded-or-ignored-files) |

709| `usePythonEnvironment` | `true` | Ativar o ambiente Python do workspace ao executar o Claude. Requer a extensão Python. |727| `usePythonEnvironment` | `true` | Ativar o ambiente Python do workspace ao executar o Claude. Requer a extensão Python. |

710| `environmentVariables` | `[]` | Definir variáveis de ambiente para o processo do Claude. Use as configurações do Claude Code para configurações compartilhadas. Uma entrada [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/pt/env-vars) se aplica apenas quando seu valor é um caminho absoluto; a extensão não expande `~` e ignora um valor relativo. |728| `environmentVariables` | `[]` | Definir variáveis de ambiente para o processo do Claude. Use as configurações do Claude Code para configurações compartilhadas. Uma entrada [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/pt/env-vars) se aplica apenas quando seu valor é um caminho absoluto; a extensão não expande `~` e ignora um valor relativo. |

711| `disableLoginPrompt` | `false` | Ignorar prompts de autenticação (para configurações de provedores de terceiros) |729| `disableLoginPrompt` | `false` | Ignorar prompts de autenticação (para configurações de provedores de terceiros) |


835 853 

836**Contexto de seleção e de arquivo aberto.** Enquanto estiver conectada, a CLI inclui sua seleção atual no editor e o caminho do arquivo ativo como contexto em cada prompt que você envia. A transcrição mostra uma linha `⧉ Selected N lines from <file>` quando isso acontece. Estes casos alteram esse contexto:854**Contexto de seleção e de arquivo aberto.** Enquanto estiver conectada, a CLI inclui sua seleção atual no editor e o caminho do arquivo ativo como contexto em cada prompt que você envia. A transcrição mostra uma linha `⧉ Selected N lines from <file>` quando isso acontece. Estes casos alteram esse contexto:

837 855 

856* **[Configuração Attach Selection](#keep-your-selection-and-open-file-out-of-your-messages) desativada**: a CLI não inclui sua seleção como contexto.

857* **Configuração Attach Open File desativada**: a CLI inclui o caminho do arquivo ativo somente quando também inclui uma seleção.

838* **Mensagens na fila**: se você [colocar uma mensagem na fila enquanto Claude trabalha](https://code.claude.com/docs/pt/interactive-mode.md#queue-messages-while-claude-works), ela mantém a seleção que você tinha quando pressionou `Enter`, independentemente do que você selecionar depois.858* **Mensagens na fila**: se você [colocar uma mensagem na fila enquanto Claude trabalha](https://code.claude.com/docs/pt/interactive-mode.md#queue-messages-while-claude-works), ela mantém a seleção que você tinha quando pressionou `Enter`, independentemente do que você selecionar depois.

839* **Arquivos sensíveis**: para excluir um arquivo sensível como `.env`, adicione uma [regra de negação de `Read`](https://code.claude.com/docs/pt/permissions#read-and-edit) para o caminho dele. Uma regra de negação correspondente impede que tanto o texto selecionado quanto o aviso de arquivo aberto desse arquivo cheguem a Claude.859* **Arquivos sensíveis**: para excluir um arquivo sensível como `.env`, adicione uma [regra de negação de `Read`](https://code.claude.com/docs/pt/permissions#read-and-edit) para o caminho dele. Uma regra de negação correspondente impede que tanto o texto selecionado quanto o aviso de arquivo aberto desse arquivo cheguem a Claude.

840* **Attach Open File desativado**: se você desativar a [configuração Attach Open File](#extension-settings), a CLI recebe o caminho do arquivo ativo somente enquanto você tiver texto selecionado nele.

841 860 

842**Transporte e autenticação.** O servidor se vincula a `127.0.0.1` em uma porta aleatória no intervalo 10000–65535, e a porta não é configurável. O transporte e o token de autenticação funcionam da seguinte forma:861**Transporte e autenticação.** O servidor se vincula a `127.0.0.1` em uma porta aleatória no intervalo 10000–65535, e a porta não é configurável. O transporte e o token de autenticação funcionam da seguinte forma:

843 862 

workflows.md +5 −4

Details

333 333 

334O runtime do fluxo de trabalho executa o script em um ambiente isolado, separado de sua conversa. Os resultados intermediários permanecem em variáveis de script em vez de chegar ao contexto de Claude.334O runtime do fluxo de trabalho executa o script em um ambiente isolado, separado de sua conversa. Os resultados intermediários permanecem em variáveis de script em vez de chegar ao contexto de Claude.

335 335 

336Cada execução escreve seu script em um arquivo sob o diretório da sua sessão em `~/.claude/projects/`. Claude recebe o caminho quando a execução começa, então você pode pedir por ele. Você pode abrir esse arquivo para ler a orquestração que Claude escreveu, compará-lo com o script de uma execução anterior, ou editá-lo e pedir a Claude para relançar a partir da versão editada.336A menos que Claude inicie uma execução a partir do caminho de um arquivo de script, Claude Code escreve o script da execução em um arquivo sob o diretório da sua sessão em `~/.claude/projects/`. Claude recebe o caminho do script quando a execução começa, então você pode pedir por ele. Você pode abrir esse arquivo para ler a orquestração que Claude escreveu, fazer um diff com o script de uma execução anterior, ou editá-lo e pedir a Claude para relançar a partir da versão editada.

337 337 

338Claude pode iniciar um fluxo de trabalho apenas a partir de um arquivo de script que a sessão já tem permissão para ler. Para executar um script mantido fora do seu diretório de trabalho, adicione seu diretório com [`/add-dir`](https://code.claude.com/docs/pt/permissions#working-directories) ou uma [regra de permissão Read](https://code.claude.com/docs/pt/permissions.md#read-and-edit) primeiro.338Claude pode iniciar um fluxo de trabalho apenas a partir de um arquivo de script que a sessão já tem permissão para ler. Para executar um script mantido fora do seu diretório de trabalho, adicione seu diretório com [`/add-dir`](https://code.claude.com/docs/pt/permissions#working-directories) ou uma [regra de permissão Read](https://code.claude.com/docs/pt/permissions.md#read-and-edit) primeiro.

339 339 


387 387 

388#### Retomar após sair da sessão388#### Retomar após sair da sessão

389 389 

390Você pode retomar uma execução dentro da mesma sessão de Claude Code. O que acontece com um fluxo de trabalho em execução quando você sai da sessão depende de como você sai:390Se você colocar sua sessão em segundo plano ou sair de Claude Code enquanto uma execução de fluxo de trabalho está em andamento, a execução não continua por conta própria. A execução só continua quando Claude a relança com uma chamada `Workflow`, que [reproduz a execução a partir de seus resultados salvos](#which-agents-run-again).

391 391 

392* Se você [colocar a sessão em segundo plano](https://code.claude.com/docs/pt/agent-view.md#what-carries-over-when-you-background), Claude Code reproduz a execução da mesma forma na sessão em segundo plano e continua.392* **Você colocou a sessão em segundo plano ou escolheu [`Move to background and exit`](https://code.claude.com/docs/pt/agent-view#from-inside-a-session)**: se a execução não tiver continuado quando você verificar a [sessão em segundo plano](https://code.claude.com/docs/pt/agent-view.md#what-carries-over-when-you-background), peça a Claude nela para relançar o fluxo de trabalho. Dependendo do seu [modo de permissão](#approve-the-plan-before-it-runs), Claude Code pede que você aprove o relançamento primeiro. Se a sessão aparecer em `Needs input` no agent view, [conecte-se a ela](https://code.claude.com/docs/pt/agent-view.md#attach-to-a-session) para responder ao prompt de aprovação.

393* Se você sair de Claude Code enquanto um fluxo de trabalho está em execução e [agent view está ativado](https://code.claude.com/docs/pt/agent-view.md#from-inside-a-session), o diálogo de saída oferece `Move to background and exit`, que transfere a execução da mesma forma. Se você escolher `Exit and stop tasks` em vez disso, ou a opção não for oferecida, a execução para com a sessão. Claude Code mantém os resultados salvos da execução no diretório dessa sessão em `~/.claude/projects/`, para que uma sessão que você retome com `claude --resume` possa reproduzi-los quando você pedir a Claude para relançar o fluxo de trabalho. Em uma sessão que você inicia do zero, Claude não tem nenhuma execução anterior para relançar e inicia o fluxo de trabalho novamente como uma nova execução.393* **O relançamento na sessão em segundo plano falhou com `nothing to resume`**: peça a Claude para iniciar o fluxo de trabalho novamente como uma nova execução. Se Claude iniciou a execução a partir do caminho de um arquivo de script fora de `~/.claude/projects/`, como um no seu diretório de trabalho, Claude não consegue relançá-la na sessão em segundo plano.

394* **Você escolheu `Exit and stop tasks`, ou `Move to background and exit` não foi oferecido**: a execução parou com a sessão, e Claude Code mantém os resultados salvos da execução no diretório dessa sessão em `~/.claude/projects/`. Retome a sessão com `claude --resume` no seu shell e, em seguida, peça a Claude para relançar o fluxo de trabalho. Em uma sessão nova, Claude não tem nenhuma execução anterior para relançar e inicia o fluxo de trabalho do zero.

394 395 

395Em uma [sessão em nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md), Claude Code também salva os resultados da execução com o histórico de conversa da sessão, que sobrevive quando a VM da sessão é recuperada. Quando você [reabre tal sessão](https://code.claude.com/docs/pt/claude-code-on-the-web.md#environment-expired) e pede a Claude para relançar o fluxo de trabalho, agentes concluídos ainda retornam seus resultados salvos.396Em uma [sessão em nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md), Claude Code também salva os resultados da execução com o histórico de conversa da sessão, que sobrevive quando a VM da sessão é recuperada. Quando você [reabre tal sessão](https://code.claude.com/docs/pt/claude-code-on-the-web.md#environment-expired) e pede a Claude para relançar o fluxo de trabalho, agentes concluídos ainda retornam seus resultados salvos.

396 397