6 6
7> Controle como seu agente usa ferramentas com modos de permissão, hooks e regras declarativas de permissão/negação.7> Controle como seu agente usa ferramentas com modos de permissão, hooks e regras declarativas de permissão/negação.
8 8
9O Claude Agent SDK fornece controles de permissão para gerenciar como Claude usa ferramentas. Use modos de permissão e regras para definir o que é permitido automaticamente, e o callback [`canUseTool`](/docs/pt/agent-sdk/user-input) para lidar com tudo mais em tempo de execução.9O Claude Agent SDK fornece controles de permissão para gerenciar como Claude usa ferramentas. Use modos de permissão e regras para definir o que é permitido automaticamente, e o callback [`canUseTool`](https://code.claude.com/docs/pt/agent-sdk/user-input) para lidar com tudo mais em tempo de execução.
10 10
11## Como as permissões são avaliadas11## Como as permissões são avaliadas
12 12
14 14
15**1. Hooks**15**1. Hooks**
16 16
17Execute [hooks](/docs/pt/agent-sdk/hooks.md) primeiro. Um hook pode negar a chamada completamente ou deixá-la passar. Um hook que retorna `allow` não ignora as regras de negação e pergunta abaixo; essas são avaliadas independentemente do resultado do hook.17Execute [hooks](https://code.claude.com/docs/pt/agent-sdk/hooks.md) primeiro. Um hook pode negar a chamada completamente ou deixá-la passar. Um hook que retorna `allow` não ignora as regras de negação e pergunta abaixo; essas são avaliadas independentemente do resultado do hook.
18 18
19Um hook `PreToolUse` que retorna `allow` também não pode aprovar um comando `rm` ou `rmdir` cujo alvo Claude Code reconhece como um [caminho crítico](/docs/pt/permission-modes.md#critical-paths), como `rm -rf ~`. Para saber o que esse `allow` faz no modo de planejamento, consulte [Aprovações de hooks no modo de planejamento](/docs/pt/permissions.md#hook-approvals-in-plan-mode).19Um hook `PreToolUse` que retorna `allow` também não pode aprovar um comando `rm` ou `rmdir` cujo alvo Claude Code reconhece como um [caminho crítico](https://code.claude.com/docs/pt/permission-modes.md#critical-paths), como `rm -rf ~`. Para saber o que esse `allow` faz no 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).
20 20
21**2. Regras de negação**21**2. Regras de negação**
22 22
23Verifique as regras `deny` (de `disallowed_tools` e [settings.json](/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.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.
24 24
25**3. Regras de pergunta**25**3. Regras de pergunta**
26 26
27Verifique as regras `ask` de [settings.json](/docs/pt/settings-reference.md#permission-settings). Se uma regra de pergunta corresponder, a chamada passa para seu callback [`canUseTool`](/docs/pt/agent-sdk/user-input) para confirmação, mesmo no modo `bypassPermissions`.27Verifique as regras `ask` de [settings.json](https://code.claude.com/docs/pt/settings-reference.md#permission-settings). Se uma regra de pergunta corresponder, a chamada passa para seu callback [`canUseTool`](https://code.claude.com/docs/pt/agent-sdk/user-input) para confirmação, mesmo no modo `bypassPermissions`.
28 28
29Ferramentas que requerem interação do usuário se comportam da mesma forma: `AskUserQuestion` e ferramentas MCP cujo servidor define [`_meta["anthropic/requiresUserInteraction"]`](/docs/pt/mcp#require-approval-for-a-specific-tool) sempre passam para o callback, mesmo quando uma regra de permissão corresponde. No modo `dontAsk` ambos os casos são negados, porque esse modo nunca solicita. A anotação MCP requer Claude Code v2.1.199 ou posterior.29Ferramentas que requerem interação do usuário se comportam da mesma forma: `AskUserQuestion` e ferramentas MCP cujo servidor define [`_meta["anthropic/requiresUserInteraction"]`](https://code.claude.com/docs/pt/mcp#require-approval-for-a-specific-tool) sempre passam para o callback, mesmo quando uma regra de permissão corresponde. No modo `dontAsk` ambos os casos são negados, porque esse modo nunca solicita. A anotação MCP requer Claude Code v2.1.199 ou posterior.
30 30
31Ferramentas do conector [claude.ai](/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.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.
32 32
33**4. Modo de permissão**33**4. Modo de permissão**
34 34
35Aplique o [modo de permissão](#permission-modes) ativo:35Aplique o [modo de permissão](#permission-modes) ativo:
36 36
37* No modo `bypassPermissions`, Claude Code aprova tudo que chega a esta etapa, exceto [remoções de caminho crítico](/docs/pt/permission-modes.md#critical-paths) reconhecidas, que passam para a próxima etapa.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.
38* No modo `acceptEdits`, Claude Code aprova as operações de arquivo listadas em [Modo Accept edits](#accept-edits-mode-acceptedits).38* 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.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.
40* Em outros modos, a solicitação passa para a próxima etapa.40* Em outros modos, a solicitação passa para a próxima etapa.
41 41
42**5. Regras de permissão**42**5. Regras de permissão**
43 43
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](/docs/pt/permissions.md#read-only-commands).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).
45 45
46[Remoções de caminho crítico](/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](/docs/pt/permission-modes.md#critical-path-removals-in-each-permission-mode) lista o que cada modo faz com elas.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.
47 47
48Uma regra de permissão não aprova uma leitura de um [caminho de rede](/docs/pt/permissions.md#network-paths).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).
49 49
50**6. Callback canUseTool**50**6. Callback canUseTool**
51 51
52Se não for resolvido por nenhum dos anteriores, chame seu callback [`canUseTool`](/docs/pt/agent-sdk/user-input) para uma decisão. No modo `dontAsk`, esta etapa é ignorada e a ferramenta é negada, embora um [mod](/docs/pt/plugins/mods/overview.md) que você instalou ainda possa aprovar [algumas dessas chamadas](/docs/pt/permissions.md#precedence-among-rules-hooks-and-mods).52Se não for resolvido por nenhum dos anteriores, chame seu callback [`canUseTool`](https://code.claude.com/docs/pt/agent-sdk/user-input) para uma decisão. No modo `dontAsk`, esta etapa é ignorada e a ferramenta é 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).
53 53
54No SDK TypeScript, se você definir [`permissionPrompts: 'none'`](/docs/pt/agent-sdk/typescript#options), seu callback não é chamado nesta etapa. Um hook [`PermissionRequest`](/docs/pt/hooks#permissionrequest) ainda tem a chance de decidir, e se não decidir, Claude Code nega a chamada. A opção requer Claude Code v2.1.259 ou posterior.54No SDK TypeScript, se você definir [`permissionPrompts: 'none'`](https://code.claude.com/docs/pt/agent-sdk/typescript#options), seu callback não é chamado nesta etapa. Um hook [`PermissionRequest`](https://code.claude.com/docs/pt/hooks#permissionrequest) ainda tem a chance de decidir, e se não decidir, Claude Code nega a chamada. A opção requer Claude Code v2.1.259 ou posterior.
55 55
5656
57 57
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: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:
59 59
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](/docs/pt/permission-modes.md#actions-no-mode-auto-approves)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)
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](/docs/pt/permission-modes.md#actions-no-mode-auto-approves) e pelas [leituras de caminhos de rede](/docs/pt/permissions.md#network-paths)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)
62 62
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.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.
64 64
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`](/docs/pt/agent-sdk/hooks).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).
66 66
67Esta página se concentra em **regras de permissão e negação** e **modos de permissão**. Para as outras etapas:67Esta página se concentra em **regras de permissão e negação** e **modos de permissão**. Para as outras etapas:
68 68
69* **Hooks:** execute código personalizado para permitir, negar ou modificar solicitações de ferramenta. Veja [Controlar execução com hooks](/docs/pt/agent-sdk/hooks.md).69* **Hooks:** execute código personalizado para permitir, negar ou modificar solicitações de ferramenta. Veja [Controlar execução com hooks](https://code.claude.com/docs/pt/agent-sdk/hooks.md).
70* **Callback canUseTool:** solicite aprovação dos usuários em tempo de execução, quando nenhuma etapa anterior resolver a chamada. Veja [Lidar com aprovações e entrada do usuário](/docs/pt/agent-sdk/user-input.md).70* **Callback canUseTool:** solicite aprovação dos usuários em tempo de execução, quando nenhuma etapa anterior resolver a chamada. Veja [Lidar com aprovações e entrada do usuário](https://code.claude.com/docs/pt/agent-sdk/user-input.md).
71 71
72## Regras de permissão e negação72## Regras de permissão e negação
73 73
74`allowed_tools` e `disallowed_tools` (TypeScript: `allowedTools` / `disallowedTools`) adicionam entradas às listas de regras de permissão e negação no fluxo de avaliação acima. Se você nomear uma das [ferramentas de rastreamento de tarefas](/docs/pt/agent-sdk/todo-tracking.md#model-availability) em `allowed_tools`, Claude Code também as habilita na sessão. Qualquer outra ferramenta não listada em `allowed_tools` ainda está disponível para Claude, e uma chamada a ela que precisa de aprovação passa para o modo de permissão. As regras de negação se comportam de forma diferente dependendo se nomeiam uma ferramenta ou definem um padrão dentro de uma.74`allowed_tools` e `disallowed_tools` (TypeScript: `allowedTools` / `disallowedTools`) adicionam entradas às listas de regras de permissão e negação no fluxo de avaliação acima. Se você nomear uma das [ferramentas de rastreamento de tarefas](https://code.claude.com/docs/pt/agent-sdk/todo-tracking.md#model-availability) em `allowed_tools`, Claude Code também as habilita na sessão. Qualquer outra ferramenta não listada em `allowed_tools` ainda está disponível para Claude, e uma chamada a ela que precisa de aprovação passa para o modo de permissão. As regras de negação se comportam de forma diferente dependendo se nomeiam uma ferramenta ou definem um padrão dentro de uma.
75 75
76| Opção | Efeito |76| Opção | Efeito |
77| :- | :- |77| :- | :- |
78| `allowed_tools=["Read", "Grep"]` | `Read` e `Grep` são aprovadas automaticamente, exceto por [leituras de caminhos de rede](/docs/pt/permissions.md#network-paths). Outras ferramentas não listadas aqui ainda existem, e chamadas a elas que precisam de aprovação passam para o modo de permissão e `canUseTool`. |78| `allowed_tools=["Read", "Grep"]` | `Read` e `Grep` são aprovadas automaticamente, exceto por [leituras de caminhos de rede](https://code.claude.com/docs/pt/permissions.md#network-paths). Outras ferramentas não listadas aqui ainda existem, e chamadas a elas que precisam de aprovação passam para o modo de permissão e `canUseTool`. |
79| `disallowed_tools=["Bash"]` | A definição da ferramenta `Bash` é removida da solicitação. Claude não vê a ferramenta e não pode tentar usá-la. |79| `disallowed_tools=["Bash"]` | A definição da ferramenta `Bash` é removida da solicitação. Claude não vê a ferramenta e não pode tentar usá-la. |
80| `disallowed_tools=["Bash(rm *)"]` | `Bash` permanece disponível. Chamadas correspondentes a `rm *` [conforme escrito](/docs/pt/permissions.md#bash-rule-limits) são negadas em todos os modos de permissão, incluindo `bypassPermissions`. Outras chamadas `Bash`, incluindo `/bin/rm`, passam para o modo de permissão. |80| `disallowed_tools=["Bash(rm *)"]` | `Bash` permanece disponível. Chamadas correspondentes a `rm *` [conforme escrito](https://code.claude.com/docs/pt/permissions.md#bash-rule-limits) são negadas em todos os modos de permissão, incluindo `bypassPermissions`. Outras chamadas `Bash`, incluindo `/bin/rm`, passam para o modo de permissão. |
81| `disallowed_tools=["*"]` | Toda definição de ferramenta é removida da solicitação. Globs de nome de ferramenta são suportados em regras de negação: `"*"` corresponde a todas as ferramentas e `"mcp__*"` corresponde a todas as ferramentas MCP em todos os servidores. |81| `disallowed_tools=["*"]` | Toda definição de ferramenta é removida da solicitação. Globs de nome de ferramenta são suportados em regras de negação: `"*"` corresponde a todas as ferramentas e `"mcp__*"` corresponde a todas as ferramentas MCP em todos os servidores. |
82 82
83As regras de permissão aceitam globs de nome de ferramenta apenas após um prefixo literal `mcp__<server>__`. O segmento do servidor deve estar livre de glob para que a regra nomeie um servidor específico que você configurou: `mcp__puppeteer__*` corresponde a todas as ferramentas do servidor `puppeteer`, e `mcp__github__get_*` corresponde às suas ferramentas `get_`. Uma entrada não ancorada como `allowed_tools=["*"]` ou `allowed_tools=["mcp__*"]` é ignorada e não aprova automaticamente nada.83As regras de permissão aceitam globs de nome de ferramenta apenas após um prefixo literal `mcp__<server>__`. O segmento do servidor deve estar livre de glob para que a regra nomeie um servidor específico que você configurou: `mcp__puppeteer__*` corresponde a todas as ferramentas do servidor `puppeteer`, e `mcp__github__get_*` corresponde às suas ferramentas `get_`. Uma entrada não ancorada como `allowed_tools=["*"]` ou `allowed_tools=["mcp__*"]` é ignorada e não aprova automaticamente nada.
84 84
85As regras com escopo para `Read` e `Edit` usam um padrão de caminho. As regras `Edit(path)` governam todas as ferramentas integradas que escrevem arquivos, incluindo `Write` e `NotebookEdit`; uma regra `Write(path)` nunca é correspondida pelas verificações de permissão de arquivo.85As regras com escopo para `Read` e `Edit` usam um padrão de caminho. As regras `Edit(path)` governam todas as ferramentas integradas que escrevem arquivos, incluindo `Write` e `NotebookEdit`; uma regra `Write(path)` nunca é correspondida pelas verificações de permissão de arquivo.
86 86
87Use `//path` para um caminho absoluto do sistema de arquivos: uma regra de negação de `Edit(//secrets/**)` bloqueia escritas em qualquer lugar sob `/secrets` no disco. Com uma única barra inicial, `Edit(/secrets/**)` ancora na fonte da regra. Para regras passadas através de `allowed_tools` ou `disallowed_tools`, isso significa o diretório de trabalho da sessão, portanto a regra não bloqueia `/secrets` no disco. Veja [Regras Read e Edit](/docs/pt/permissions.md#read-and-edit) para as quatro formas de âncora e como as regras dos arquivos de configuração são resolvidas.87Use `//path` para um caminho absoluto do sistema de arquivos: uma regra de negação de `Edit(//secrets/**)` bloqueia escritas em qualquer lugar sob `/secrets` no disco. Com uma única barra inicial, `Edit(/secrets/**)` ancora na fonte da regra. Para regras passadas através de `allowed_tools` ou `disallowed_tools`, isso significa o diretório de trabalho da sessão, portanto a regra não bloqueia `/secrets` no disco. Veja [Regras Read e Edit](https://code.claude.com/docs/pt/permissions.md#read-and-edit) para as quatro formas de âncora e como as regras dos arquivos de configuração são resolvidas.
88 88
89> [!WARNING]89> [!WARNING]
90>90>
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.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.
92>92>
93> Nenhuma regra de permissão aprova automaticamente `AskUserQuestion`, ferramentas MCP marcadas [`_meta["anthropic/requiresUserInteraction"]`](/docs/pt/mcp#require-approval-for-a-specific-tool), ferramentas de conector [que sua organização definiu como `ask`](/docs/pt/mcp#organization-controls-on-connector-tools), ou [remoções de caminho crítico](/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](/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](/docs/pt/permission-modes.md#critical-paths).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).
94>94>
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](/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`](/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`.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`.
96 96
97Para um agente bloqueado, combine `allowedTools` com `permissionMode: "dontAsk"`:97Para um agente bloqueado, combine `allowedTools` com `permissionMode: "dontAsk"`:
98 98
103};103};
104```104```
105 105
106As ferramentas listadas são aprovadas, exceto pelas [ações que nenhum modo aprova automaticamente](/docs/pt/permission-modes.md#actions-no-mode-auto-approves) e pelas [leituras de caminhos de rede](/docs/pt/permissions.md#network-paths). Todas as outras chamadas que exibiriam um prompt são negadas em vez disso, embora um [mod](/docs/pt/plugins/mods/overview.md) que você instalou ainda possa aprovar [algumas dessas chamadas](/docs/pt/permissions.md#precedence-among-rules-hooks-and-mods).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).
107 107
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](/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`.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`.
109 109
110> [!WARNING]110> [!WARNING]
111>111>
112> **`allowed_tools` não restringe `bypassPermissions`.** `allowed_tools` aprova previamente as ferramentas que você lista. Outras ferramentas não listadas não são correspondidas por nenhuma regra de permissão e passam para o modo de permissão, onde `bypassPermissions` as aprova. Definir `allowed_tools=["Read"]` junto com `permission_mode="bypassPermissions"` ainda aprova todas as ferramentas, incluindo `Bash`, `Write` e `Edit`. Se você precisar de `bypassPermissions` mas quiser ferramentas específicas bloqueadas, use `disallowed_tools`.112> **`allowed_tools` não restringe `bypassPermissions`.** `allowed_tools` aprova previamente as ferramentas que você lista. Outras ferramentas não listadas não são correspondidas por nenhuma regra de permissão e passam para o modo de permissão, onde `bypassPermissions` as aprova. Definir `allowed_tools=["Read"]` junto com `permission_mode="bypassPermissions"` ainda aprova todas as ferramentas, incluindo `Bash`, `Write` e `Edit`. Se você precisar de `bypassPermissions` mas quiser ferramentas específicas bloqueadas, use `disallowed_tools`.
113 113
114Você também pode configurar regras de permissão, negação e solicitação de forma declarativa em `.claude/settings.json`. Essas regras são lidas quando a fonte de configuração `project` está habilitada, o que é o padrão para opções `query()`. Se você definir `setting_sources` (TypeScript: `settingSources`) explicitamente, inclua `"project"` para que se apliquem. Veja [Configurações de permissão](/docs/pt/settings-reference.md#permission-settings) para a sintaxe das regras.114Você também pode configurar regras de permissão, negação e solicitação de forma declarativa em `.claude/settings.json`. Essas regras são lidas quando a fonte de configuração `project` está habilitada, o que é o padrão para opções `query()`. Se você definir `setting_sources` (TypeScript: `settingSources`) explicitamente, inclua `"project"` para que se apliquem. Veja [Configurações de permissão](https://code.claude.com/docs/pt/settings-reference.md#permission-settings) para a sintaxe das regras.
115 115
116## Modos de permissão116## Modos de permissão
117 117
118Os modos de permissão fornecem controle global sobre como Claude usa ferramentas. Você pode definir o modo de permissão ao chamar `query()` ou alterá-lo dinamicamente durante sessões de streaming.118Os modos de permissão fornecem controle global sobre como Claude usa ferramentas. Você pode definir o modo de permissão ao chamar `query()` ou alterá-lo dinamicamente durante sessões de streaming.
119 119
120Com Claude Code v2.1.302 ou posterior, sua aplicação inicia no modo `default`, a menos que você defina um modo de permissão ou ela obtenha um de [`permissions.defaultMode`](/docs/pt/settings-reference#permissions-defaultmode) em seus arquivos de configuração. No modo `default`, Claude Code nega qualquer chamada de ferramenta que precise de aprovação, a menos que você a aprove por meio de uma regra de permissão, hook, callback `canUseTool` ou ferramenta de prompt de permissão. Se chamadas de ferramenta forem negadas, consulte [Chamadas de ferramenta negadas em execuções de `claude -p` e do Agent SDK](/docs/pt/permission-modes#which-mode-a-non-interactive-run-starts-in).120Com Claude Code v2.1.302 ou posterior, sua aplicação inicia no modo `default`, a menos que você defina um modo de permissão ou ela obtenha um de [`permissions.defaultMode`](https://code.claude.com/docs/pt/settings-reference#permissions-defaultmode) em seus arquivos de configuração. No modo `default`, Claude Code nega qualquer chamada de ferramenta que precise de aprovação, a menos que você a aprove por meio de uma regra de permissão, hook, callback `canUseTool` ou ferramenta de prompt de permissão. Se chamadas de ferramenta forem negadas, consulte [Chamadas de ferramenta negadas em execuções de `claude -p` e do Agent SDK](https://code.claude.com/docs/pt/permission-modes#which-mode-a-non-interactive-run-starts-in).
121 121
122### Modos disponíveis122### Modos disponíveis
123 123
126| Modo | Descrição | Comportamento da ferramenta |126| Modo | Descrição | Comportamento da ferramenta |
127| :- | :- | :- |127| :- | :- | :- |
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` |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` |
129| `dontAsk` | Negar em vez de solicitar | Qualquer chamada que de outra forma solicitaria é negada sem chamar `canUseTool`, embora um [mod](/docs/pt/plugins/mods/overview.md) que você instalou ainda possa aprovar [algumas dessas chamadas](/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](/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) |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) |
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 |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 |
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](/docs/pt/permission-modes.md#actions-no-mode-auto-approves). Use com cuidado |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 |
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` |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` |
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](/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode) para disponibilidade e a ordem de decisão |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 |
134 134
135> [!WARNING]135> [!WARNING]
136>136>
137> **Herança de subagente:** Um subagente é executado no modo de permissão da sessão pai, a menos que você defina `permissionMode` em sua [`AgentDefinition`](/docs/pt/agent-sdk/typescript#agentdefinition) e a sessão pai esteja em modo `default`, `dontAsk` ou `plan`. Mesmo assim, Claude Code nunca aplica um valor `"bypassPermissions"` e aplica um valor `"auto"` somente quando o [modo auto está disponível](/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode) para esse subagente. Um subagente é executado em modo `bypassPermissions` apenas quando a sessão pai também está. A exceção `bypassPermissions` requer Claude Code v2.1.267 ou posterior.137> **Herança de subagente:** Se sua sessão principal estiver no [modo de planejamento](https://code.claude.com/docs/pt/permission-modes.md#analyze-before-you-edit-with-plan-mode), um subagente cuja [`AgentDefinition`](https://code.claude.com/docs/pt/agent-sdk/typescript#agentdefinition) define `permissionMode: "acceptEdits"` ainda é executado no modo de planejamento. As chamadas `Edit` e `Write` desse subagente em seus arquivos de origem ainda vão para seu callback `canUseTool`. O modo de planejamento também vale para os subagentes que você define, para que delegar trabalho a um deles não contorne a revisão prévia do plano.
138>138>
139> Subagentes podem ter prompts de sistema diferentes e comportamento menos restrito do que seu agente principal, portanto herdar `bypassPermissions` concede a eles acesso completo e autônomo ao sistema. As [ações que nenhum modo aprova automaticamente](/docs/pt/permission-modes.md#actions-no-mode-auto-approves) ainda se aplicam.139> O subagente herda `plan`, `acceptEdits`, `auto` ou `bypassPermissions` da sessão principal e, sob uma sessão principal em modo `default` ou `dontAsk`, é executado no modo que você definiu. Mesmo assim, Claude Code nunca aplica um valor `"bypassPermissions"` e aplica um valor `"auto"` somente quando o [modo auto está disponível](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode) para esse subagente. A exceção `bypassPermissions` requer Claude Code v2.1.267 ou posterior.
140>
141> Subagentes podem ter prompts de sistema diferentes e comportamento menos restrito do que seu agente principal, portanto herdar `bypassPermissions` concede a eles acesso completo e autônomo ao sistema. As [ações que nenhum modo aprova automaticamente](https://code.claude.com/docs/pt/permission-modes.md#actions-no-mode-auto-approves) ainda se aplicam.
140 142
141### Definir modo de permissão143### Definir modo de permissão
142 144
253 255
254* Trabalha em um caminho fora desse escopo256* Trabalha em um caminho fora desse escopo
255* Escreve em um caminho protegido257* Escreve em um caminho protegido
256* Remove com `rm` ou `rmdir` um caminho que Claude Code reconhece como um [caminho crítico](/docs/pt/permission-modes.md#critical-paths)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)
257 259
258**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.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.
259 261
260#### Modo não perguntar (`dontAsk`)262#### Modo não perguntar (`dontAsk`)
261 263
262Converte qualquer prompt de permissão em uma negação, sem chamar `canUseTool`, embora um [mod](/docs/pt/plugins/mods/overview.md) que você instalou ainda possa aprovar [algumas dessas chamadas](/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`.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`.
263 265
264Ferramentas de conector [que sua organização definiu como `ask`](/docs/pt/mcp#organization-controls-on-connector-tools), ferramentas que exigem interação do usuário, [leituras de caminhos de rede](/docs/pt/permissions.md#network-paths) e [remoções de caminhos críticos](/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](/docs/pt/permission-modes.md#critical-paths).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).
265 267
266**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.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.
267 269
268#### Modo contornar permissões (`bypassPermissions`)270#### Modo contornar permissões (`bypassPermissions`)
269 271
270Aprova 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](/docs/pt/permission-modes.md#skip-all-checks-with-bypasspermissions-mode), e a consulta falha antes da primeira volta.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.
271 273
272> [!WARNING]274> [!WARNING]
273>275>
276> `allowed_tools` não restringe este modo. Cada ferramenta é aprovada, não apenas as que você listou. Estes controles ainda se aplicam:278> `allowed_tools` não restringe este modo. Cada ferramenta é aprovada, não apenas as que você listou. Estes controles ainda se aplicam:
277>279>
278> * 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.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.
279> * Ferramentas de conector [que sua organização definiu como `ask`](/docs/pt/mcp#organization-controls-on-connector-tools), ferramentas que exigem interação do usuário e [remoções de caminhos críticos](/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](/docs/pt/permission-modes.md#critical-paths).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).
280> * Os [salvaguardas de mensagens entre sessões](/docs/pt/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) ainda se aplicam.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.
281 283
282#### Modo plano (`plan`)284#### Modo plano (`plan`)
283 285
287 289
288No 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()`.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()`.
289 291
290Claude pode usar `AskUserQuestion` para esclarecer requisitos antes de finalizar o plano. Consulte [Lidar com aprovações e entrada do usuário](/docs/pt/agent-sdk/user-input.md#handle-clarifying-questions) para lidar com esses prompts.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.
291 293
292**Use quando:** você deseja que Claude proponha alterações sem executá-las, como durante revisão de código ou quando você precisa aprovar alterações antes que sejam feitas.294**Use quando:** você deseja que Claude proponha alterações sem executá-las, como durante revisão de código ou quando você precisa aprovar alterações antes que sejam feitas.
293 295
294#### Modo auto (`auto`)296#### Modo auto (`auto`)
295 297
296Um modelo classificador revisa ações como comandos shell e requisições de rede antes que sejam executadas, e permite ou bloqueia cada uma que revisa. Para os modelos e provedores que o modo auto exige e a ordem em que ele avalia as ações, consulte [Eliminar prompts de permissão com o modo auto](/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode).298Um modelo classificador revisa ações como comandos shell e requisições de rede antes que sejam executadas, e permite ou bloqueia cada uma que revisa. Para os modelos e provedores que o modo auto exige e a ordem em que ele avalia as ações, consulte [Eliminar prompts de permissão com o modo auto](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode).
297 299
298Se você alternar uma sessão que está em modo auto para um modelo que o modo auto não suporta, usando [`set_model()`](/docs/pt/agent-sdk/python#claudesdkclient), [`setModel()`](/docs/pt/agent-sdk/typescript#query-object) ou [`applyFlagSettings()`](/docs/pt/agent-sdk/typescript#applyflagsettings), a sessão muda para o modo `default`:300Se você alternar uma sessão que está em modo auto para um modelo que o modo auto não suporta, usando [`set_model()`](https://code.claude.com/docs/pt/agent-sdk/python#claudesdkclient), [`setModel()`](https://code.claude.com/docs/pt/agent-sdk/typescript#query-object) ou [`applyFlagSettings()`](https://code.claude.com/docs/pt/agent-sdk/typescript#applyflagsettings), a sessão muda para o modo `default`:
299 301
300* **O que você vê**: uma mensagem `system` com subtipo `status` e `permissionMode` definido como `"default"`, que o TypeScript SDK tipa como [`SDKStatusMessage`](/docs/pt/agent-sdk/typescript#sdkstatusmessage). A partir daí, chamadas que precisam de aprovação e não correspondem a nenhuma regra de permissão chegam ao seu callback `canUseTool`.302* **O que você vê**: uma mensagem `system` com subtipo `status` e `permissionMode` definido como `"default"`, que o TypeScript SDK tipa como [`SDKStatusMessage`](https://code.claude.com/docs/pt/agent-sdk/typescript#sdkstatusmessage). A partir daí, chamadas que precisam de aprovação e não correspondem a nenhuma regra de permissão chegam ao seu callback `canUseTool`.
301* **Para retornar ao modo auto**: alterne para um modelo suportado e, em seguida, chame `set_permission_mode("auto")` ou `setPermissionMode("auto")`. Se você alternar o modelo de volta sem fazer essa chamada, a sessão permanece no modo `default`. Enquanto o modelo não suportado estiver ativo, a chamada falha com `Cannot set permission mode to auto: auto mode unavailable for this model`.303* **Para retornar ao modo auto**: alterne para um modelo suportado e, em seguida, chame `set_permission_mode("auto")` ou `setPermissionMode("auto")`. Se você alternar o modelo de volta sem fazer essa chamada, a sessão permanece no modo `default`. Enquanto o modelo não suportado estiver ativo, a chamada falha com `Cannot set permission mode to auto: auto mode unavailable for this model`.
302 304
303A mudança para o modo `default` após uma chamada `set_model()`, `setModel()` ou `applyFlagSettings()` requer Claude Code v2.1.299 ou posterior.305A mudança para o modo `default` após uma chamada `set_model()`, `setModel()` ou `applyFlagSettings()` requer Claude Code v2.1.299 ou posterior.
306 308
307Para as outras etapas no fluxo de avaliação de permissões:309Para as outras etapas no fluxo de avaliação de permissões:
308 310
309* [Lidar com aprovações e entrada do usuário](/docs/pt/agent-sdk/user-input.md): prompts de aprovação interativa e perguntas de esclarecimento311* [Lidar com aprovações e entrada do usuário](https://code.claude.com/docs/pt/agent-sdk/user-input.md): prompts de aprovação interativa e perguntas de esclarecimento
310* [Guia de hooks](/docs/pt/agent-sdk/hooks.md): executar código personalizado em pontos-chave do ciclo de vida do agente312* [Guia de hooks](https://code.claude.com/docs/pt/agent-sdk/hooks.md): executar código personalizado em pontos-chave do ciclo de vida do agente
311* [Regras de permissão](/docs/pt/settings-reference.md#permission-settings): regras declarativas de permissão/negação em `settings.json`313* [Regras de permissão](https://code.claude.com/docs/pt/settings-reference.md#permission-settings): regras declarativas de permissão/negação em `settings.json`