SpyBara
Go Premium

Documentation 2026-11-12 23:02 UTC to 2026-11-13 23:02 UTC

66 files changed +692 −351. View all changes and history on the product overview
2026
Sat 14 03:01 Fri 13 23:02 Thu 12 23:02 Wed 11 22:59 Tue 10 21:57 Mon 9 23:02 Sun 8 22:58 Sat 7 23:58 Fri 6 23:01 Thu 5 23:03 Wed 4 23:59 Tue 3 23:58 Mon 2 23:57 Sun 1 23:57
Details

117 --network none \117 --network none \

118 --memory 2g \118 --memory 2g \

119 --cpus 2 \119 --cpus 2 \

120 --pids-limit 100 \120 --pids-limit 600 \

121 --user 1000:1000 \121 --user 1000:1000 \

122 -v /path/to/code:/workspace:ro \122 -v /path/to/code:/workspace:ro \

123 -v /var/run/proxy.sock:/var/run/proxy.sock:ro \123 -v /var/run/proxy.sock:/var/run/proxy.sock:ro \


135| `--tmpfs /tmp:...` | Fornece um diretório temporário gravável que é limpo quando o contêiner para |135| `--tmpfs /tmp:...` | Fornece um diretório temporário gravável que é limpo quando o contêiner para |

136| `--network none` | Isola o contêiner das redes externas |136| `--network none` | Isola o contêiner das redes externas |

137| `--memory 2g` | Limita o uso de memória RAM para evitar esgotamento de recursos |137| `--memory 2g` | Limita o uso de memória RAM para evitar esgotamento de recursos |

138| `--pids-limit 100` | Limita a quantidade de processos para evitar fork bombs |138| `--pids-limit 600` | Limita a quantidade de processos e threads para evitar fork bombs |

139| `--user 1000:1000` | Executa como um usuário não root |139| `--user 1000:1000` | Executa como um usuário não root |

140| `-v ...:/workspace:ro` | Monta o código como somente leitura para que o agente possa analisá-lo, mas não modificá-lo. **Evite montar diretórios sensíveis do host, como `~/.ssh`, `~/.aws` ou `~/.config`** |140| `-v ...:/workspace:ro` | Monta o código como somente leitura para que o agente possa analisá-lo, mas não modificá-lo. **Evite montar diretórios sensíveis do host, como `~/.ssh`, `~/.aws` ou `~/.config`** |

141| `-v .../proxy.sock:...` | Monta um socket Unix conectado a um proxy executado fora do contêiner (veja abaixo) |141| `-v .../proxy.sock:...` | Monta um socket Unix conectado a um proxy executado fora do contêiner (veja abaixo) |

Details

104| `options` | [`Options`](#options) | Objeto de configuração opcional. Igual ao parâmetro `options` para `query()` |104| `options` | [`Options`](#options) | Objeto de configuração opcional. Igual ao parâmetro `options` para `query()` |

105| `initializeTimeoutMs` | `number` | Tempo máximo em milissegundos para aguardar a inicialização do subprocesso. Padrão é `60000`. Se a inicialização não for concluída no tempo, a promise é rejeitada com um erro de timeout |105| `initializeTimeoutMs` | `number` | Tempo máximo em milissegundos para aguardar a inicialização do subprocesso. Padrão é `60000`. Se a inicialização não for concluída no tempo, a promise é rejeitada com um erro de timeout |

106 106 

107[Hooks de comando](https://code.claude.com/docs/pt/hooks.md#command-hook-fields) [SessionStart](https://code.claude.com/docs/pt/hooks.md#sessionstart) e [Setup](https://code.claude.com/docs/pt/hooks.md#setup) lentos recebem tempo extra apenas quando `initializeTimeoutMs` não está definido:

108 

109* **Se você deixá-lo sem definir:** o tempo que esses hooks passam em execução não conta para o padrão de 60 segundos, até 10 minutos no total, então a inicialização pode levar no máximo 11 minutos.

110* **Se você definir um valor, incluindo `60000`:** esse valor é o limite, mesmo enquanto um hook está em execução.

111 

112O tempo extra requer TypeScript Agent SDK v0.3.304 ou posterior.

113 

107#### Retorna114#### Retorna

108 115 

109Retorna uma `Promise<`[`WarmQuery`](#warmquery)`>` que é resolvida assim que o subprocesso é gerado e completa seu handshake de inicialização.116Retorna uma `Promise<`[`WarmQuery`](#warmquery)`>` que é resolvida assim que o subprocesso é gerado e completa seu handshake de inicialização.


128 135 

129### `prewarm()`136### `prewarm()`

130 137 

131*Alpha.* Inicia um processo Claude Code como sobressalente antes de você saber qual sessão ele servirá, para que você possa vinculá-lo a uma sessão depois com [`claim()`](#spareprocess). Use-o em uma aplicação que inicia antes do usuário escolher uma pasta. Requer TypeScript Agent SDK v0.3.282 ou posterior.138*Alpha.* Inicia um processo Claude Code como sobressalente antes de você saber qual sessão ele servirá, para que você possa vinculá-lo a uma sessão depois com [`claim()`](#spareprocess). Requer TypeScript Agent SDK v0.3.282 ou posterior.

132 139 

133`prewarm()` completa o mesmo handshake de inicialização que [`startup()`](#startup), com o processo aguardando em `options.cwd` quando você o define e caso contrário em um diretório temporário privado sob seu diretório de configuração do Claude Code. O diretório de trabalho da sessão, seus hooks `SessionStart`, seus servidores MCP stdio e seu contexto CLAUDE.md e git aguardam a reivindicação. Um sobressalente mantém aproximadamente 230 a 260 MB de memória enquanto aguarda. Se seu [`spawnClaudeCodeProcess`](#options) executa Claude Code em outra máquina ou em um contêiner, defina `options.cwd` para um diretório que existe lá para o sobressalente aguardar.140Use `prewarm()` quando sua aplicação inicia antes de o usuário escolher uma pasta.

134 141 

135```typescript theme={null}142```typescript theme={null}

136function prewarm(params?: {143function prewarm(params?: {


139}): Promise<SpareProcess>;146}): Promise<SpareProcess>;

140```147```

141 148 

142`options` e `initializeTimeoutMs` significam o mesmo que para `startup()`, exceto que `options.cwd` define apenas o diretório em que o sobressalente aguarda. A promise é resolvida com um [`SpareProcess`](#spareprocess) assim que o processo completa seu handshake de inicialização. `prewarm()` lança se `options` define `resume`, `continue` ou `forkSession`, porque um sobressalente não tem sessão ainda. Tudo o que uma reivindicação não pode definir, como `mcpServers`, `hooks`, `canUseTool`, `settingSources`, `systemPrompt` e `plugins`, é fixo pela vida do sobressalente, então mantenha um sobressalente por conjunto distinto dessas opções e pré-aqueça novamente quando elas mudarem.149#### Parâmetros

150 

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

152| :- | :- | :- |

153| `options` | [`Options`](#options) | Objeto de configuração opcional, o mesmo tipo que `startup()` recebe |

154| `initializeTimeoutMs` | `number` | Tempo máximo em milissegundos para aguardar a inicialização do sobressalente. Padrão é `60000`. Se a inicialização não for concluída no tempo, a promise é rejeitada com um erro de timeout |

155 

156`prewarm()` conta o tempo gasto em hooks [Setup](https://code.claude.com/docs/pt/hooks.md#setup) para `initializeTimeoutMs`, mesmo quando você o deixa sem definir. Para dar mais tempo a hooks Setup lentos, defina um valor maior.

157 

158#### Retorna

159 

160Retorna uma `Promise<`[`SpareProcess`](#spareprocess)`>` que é resolvida assim que o sobressalente está pronto para ser reivindicado.

161 

162A promise é rejeitada se você solicitar `resume`, `continue` ou `forkSession` em `options`, porque um sobressalente ainda não tem sessão.

163 

164#### Como um sobressalente funciona

165 

166* **Onde um sobressalente aguarda:** em um diretório temporário privado sob seu diretório de configuração do Claude Code, ou em `options.cwd` se você o definir em `prewarm()`.

167* **Se seu [`spawnClaudeCodeProcess`](#options) executa o Claude Code em outra máquina ou em um contêiner:** passe para `prewarm()` um `options.cwd` que exista lá, porque o diretório temporário padrão é criado na sua máquina.

168* **Memória:** cada sobressalente usa aproximadamente 230 a 260 MB de memória RAM enquanto aguarda.

169* **O que não acontece até você chamar `claim()`:**

170 * Mover para o diretório de trabalho que você passa para `claim()`

171 * Executar hooks SessionStart

172 * Iniciar servidores MCP stdio

173 * Carregar CLAUDE.md e o contexto git

174* **O que uma reivindicação não pode alterar:** opções como `mcpServers`, `hooks`, `canUseTool`, `settingSources` e `plugins` mantêm seus valores de `prewarm()`. [`SpareProcess`](#spareprocess) lista o que uma reivindicação pode definir.

175* **Se as sessões precisarem de valores diferentes para essas opções:** mantenha um sobressalente separado para cada conjunto de valores.

143 176 

144#### Exemplo177#### Exemplo

145 178 

agent-view.md +5 −3

Details

8 8 

9Agent view, aberto com `claude agents`, é uma tela para todas as suas sessões em background: o que está em execução, o que precisa de sua entrada e o que está concluído. Despache novas sessões, observe seu estado rapidamente em vez de rolar pelos transcritos e intervenha apenas quando uma precisar de você. Cada sessão em background é uma conversa completa do Claude Code que continua em execução sem um terminal anexado, então você pode abri-la, responder e sair sempre que quiser.9Agent view, aberto com `claude agents`, é uma tela para todas as suas sessões em background: o que está em execução, o que precisa de sua entrada e o que está concluído. Despache novas sessões, observe seu estado rapidamente em vez de rolar pelos transcritos e intervenha apenas quando uma precisar de você. Cada sessão em background é uma conversa completa do Claude Code que continua em execução sem um terminal anexado, então você pode abri-la, responder e sair sempre que quiser.

10 10 

11![Agent view em um terminal. Uma linha no topo conta as sessões aguardando entrada, trabalhando e concluídas. Quatro sessões são agrupadas em Precisa de entrada, Trabalhando e Concluído. Cada linha mostra o nome da sessão, seu status ou pergunta mais recente e um horário. Na parte inferior há uma entrada para descrever uma nova tarefa e uma linha de dicas de atalhos de teclado.](https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/agent-view-light.png?fit=max\&auto=format\&n=HDAmBwgbrZVk0pOt\&q=85\&s=d6905012bee31f3e6b3920b09c05dd02)11![Agent view em um terminal. Uma linha no topo conta as sessões aguardando entrada, trabalhando e concluídas. Quatro sessões são agrupadas em Precisa de entrada, Trabalhando e Concluído. Cada linha mostra o nome da sessão, seu status ou pergunta mais recente e um horário. Na parte inferior há uma entrada para descrever uma nova tarefa e uma linha de dicas de atalhos de teclado.](https://mintcdn.com/claude-code/v_J840yKc6uuKDX_/images/agent-view-light.png?fit=max\&auto=format\&n=v_J840yKc6uuKDX_\&q=85\&s=bd95fda83ea66ca8b2e0e7b68f8cb29e)

12 12 

13Use agent view quando você tiver várias tarefas independentes que Claude pode trabalhar sem você observar cada passo. Despache uma correção de bug, uma revisão de pull request e uma investigação de teste instável como três linhas, continue trabalhando em outra janela e verifique quando uma linha mostrar que precisa de você ou tem um resultado.13Use agent view quando você tiver várias tarefas independentes que Claude pode trabalhar sem você observar cada passo. Despache uma correção de bug, uma revisão de pull request e uma investigação de teste instável como três linhas, continue trabalhando em outra janela e verifique quando uma linha mostrar que precisa de você ou tem um resultado.

14 14 


628 628 

629* A visualização de agentes o remove, incluindo alterações não confirmadas, portanto faça commit do que você quer manter primeiro.629* A visualização de agentes o remove, incluindo alterações não confirmadas, portanto faça commit do que você quer manter primeiro.

630* `claude rm` o mantém, junto com a linha da sessão, quando tem alterações não confirmadas.630* `claude rm` o mantém, junto com a linha da sessão, quando tem alterações não confirmadas.

631* Nem a visualização de agentes nem `claude rm` remove um worktree que outra sessão em execução está usando ou bloqueou, e deletar novamente não muda isso. Claude Code mantém o worktree e a sessão, e nomeia o diretório mantido e o motivo; na visualização de agentes, a linha da sessão mostra `not deleted`. Feche a outra sessão, depois delete novamente.631* Nem a visualização de agentes nem `claude rm` remove um worktree que outra sessão em execução está usando ou bloqueou, e deletar novamente não muda isso. Claude Code mantém o worktree e a sessão, e nomeia o diretório mantido e o motivo; na visualização de agentes, a linha da sessão mostra `not removed`. Feche a outra sessão, depois delete novamente.

632* Quando você deleta uma sessão cujo worktree tem commits que Claude Code não pode confirmar que estão salvos em outro lugar, Claude Code mantém o worktree e a sessão, e a mensagem nomeia o branch do worktree e quantos commits não foram feitos push. A mensagem também oferece os dois caminhos adiante: fazer push dos commits, ou deletar novamente para descartá-los.632* Quando você deleta uma sessão cujo worktree tem commits que Claude Code não pode confirmar que estão salvos em outro lugar, Claude Code mantém o worktree e a sessão, e a mensagem nomeia o branch do worktree e quantos commits não foram feitos push. A mensagem também oferece os dois caminhos adiante: fazer push dos commits, ou deletar novamente para descartá-los.

633 633 

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


935Desligar ou reiniciar sua máquina interrompe as sessões em execução em background. Uma sessão que estava aguardando sua entrada permanece sob `Needs input` quando você volta. Para qualquer outra sessão em execução, o que agent view mostra depende de quanto tempo atrás ela fez progresso pela última vez:935Desligar ou reiniciar sua máquina interrompe as sessões em execução em background. Uma sessão que estava aguardando sua entrada permanece sob `Needs input` quando você volta. Para qualquer outra sessão em execução, o que agent view mostra depende de quanto tempo atrás ela fez progresso pela última vez:

936 936 

937* Dentro de 48 horas, a sessão mostra como falhada. Anexe ou responda a ela e ela reinicia a partir de sua conversa salva. Para retomar o trabalho interrompido, envie a ela uma resposta pedindo que continue.937* Dentro de 48 horas, a sessão mostra como falhada. Anexe ou responda a ela e ela reinicia a partir de sua conversa salva. Para retomar o trabalho interrompido, envie a ela uma resposta pedindo que continue.

938* Passadas 48 horas, como após a máquina estar desligada por dias, a sessão mostra como parada com `ended while the background service was off`. Pressione `Enter` na linha e o rodapé mostra `Press enter again to resume this session (it ended while the background service was off), or ctrl+x to delete it.` Pressione `Enter` na mesma linha novamente para retomar sua conversa salva. Uma resposta, ou `claude attach <id>`, a retoma sem esse prompt de rodapé.938* Passadas 48 horas, como após a máquina estar desligada por dias, a sessão mostra como parada com `ended while the background service was off`.

939 

940 Pressione `Enter` na linha e o rodapé mostra `Press enter again to resume this session (it ended while the background service was off), or ctrl+x to remove it.` Pressione `Enter` na mesma linha novamente para retomar sua conversa salva. Uma resposta, ou `claude attach <id>`, a retoma sem esse prompt de rodapé.

939 941 

940Quando [transcript cleanup](https://code.claude.com/docs/pt/settings-reference.md#cleanupperioddays) removeu a conversa salva de uma sessão parada, Claude Code recusa abrir a linha: a mensagem diz que não há nada para retomar. `claude rm <id>` deleta a linha, exceto nos [casos mantidos](#what-deleting-a-session-removes) descritos acima, e `claude respawn <id>` executa seu prompt original novamente. Veja [This session's saved conversation is no longer on disk](https://code.claude.com/docs/pt/errors.md#this-sessions-saved-conversation-is-no-longer-on-disk).942Quando [transcript cleanup](https://code.claude.com/docs/pt/settings-reference.md#cleanupperioddays) removeu a conversa salva de uma sessão parada, Claude Code recusa abrir a linha: a mensagem diz que não há nada para retomar. `claude rm <id>` deleta a linha, exceto nos [casos mantidos](#what-deleting-a-session-removes) descritos acima, e `claude respawn <id>` executa seu prompt original novamente. Veja [This session's saved conversation is no longer on disk](https://code.claude.com/docs/pt/errors.md#this-sessions-saved-conversation-is-no-longer-on-disk).

941 943 

Details

349 349 

350### Quando um modelo é desabilitado durante a sessão350### Quando um modelo é desabilitado durante a sessão

351 351 

352Se sua conta perder acesso ao modelo em que sua sessão está sendo executada, por exemplo porque um administrador o desabilita em sua conta Amazon Bedrock, Claude Code muda a sessão para outro modelo em vez de falhar em cada requisição, e mostra `Switched to <fallback> because <model> is not available`. Ele tenta os mesmos modelos que o fallback de inicialização: versões anteriores do mesmo nível primeiro e, para uma sessão Opus sem nenhuma versão Opus disponível, o modelo Sonnet padrão.352Quando o Amazon Bedrock rejeita o modelo da sua sessão como indisponível para sua conta, Claude Code muda sua sessão para outro modelo, e você pode continuar trabalhando. Você vê uma mensagem que começa com `Switched to <fallback> because <model> is not available`. Isso acontece, por exemplo, quando um administrador desabilita o modelo ou quando o modelo mais recente ainda não está disponível para sua conta.

353 353 

354A mudança se aplica apenas a um nível que você não fixou, a mesma condição que o fallback de inicialização. Uma sessão em uma versão específica que você escolheu, ou em um [ARN de perfil de inferência de aplicação](#map-each-model-version-to-an-inference-profile), mantém seu modelo e, sem uma cadeia de fallback de modelo, a requisição falha em vez disso. No [modo auto](https://code.claude.com/docs/pt/permission-modes.md#enable-auto-mode-on-bedrock-agent-platform-or-foundry), Claude Code muda apenas para um modelo que o modo auto suporta no Amazon Bedrock. Se nenhum desses modelos também estiver disponível, a requisição falha com [AWS authentication failed](https://code.claude.com/docs/pt/errors.md#aws-authentication-failed) e uma dica para ativar o modelo.354Se você configurou uma [cadeia de fallback de modelo](https://code.claude.com/docs/pt/model-config.md#fallback-model-chains), Claude Code muda para seu fallback configurado em vez disso. Sem uma cadeia, a requisição falha em casos como estes:

355 355 

356Uma [cadeia de fallback de modelo](https://code.claude.com/docs/pt/model-config.md#fallback-model-chains) que você configura substitui a mudança de nível: nessas recusas Claude Code muda para seu fallback configurado em vez disso. Para fazer com que requisições recusadas falhem em vez de mudar, defina [`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](https://code.claude.com/docs/pt/env-vars). Uma cadeia de fallback que você configurou ainda muda nessas recusas; remova a cadeia também se quiser que cada requisição recusada falhe.356* Sua sessão está em um modelo fixado, em uma versão específica que você escolheu ou em um [ARN de perfil de inferência de aplicação](#map-each-model-version-to-an-inference-profile)

357* Nenhum dos [modelos que Claude Code tenta](#startup-model-checks) está disponível. No [modo auto](https://code.claude.com/docs/pt/permission-modes.md#enable-auto-mode-on-bedrock-agent-platform-or-foundry), Claude Code muda apenas para um modelo que o modo auto suporta no Amazon Bedrock.

358 

359Para continuar trabalhando, execute `/model` na sessão e pressione `s` em um modelo que sua conta pode usar, o que mantém seu padrão inalterado. Um `403` aparece como [AWS authentication failed](https://code.claude.com/docs/pt/errors.md#aws-authentication-failed).

360 

361Para fazer com que requisições rejeitadas falhem em vez de mudar, defina [`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](https://code.claude.com/docs/pt/env-vars). Se você configurou uma cadeia de fallback de modelo, remova-a também, pois Claude Code ainda muda para esse fallback.

357 362 

358## Prefixos de perfil de inferência entre regiões363## Prefixos de perfil de inferência entre regiões

359 364 

Details

222 222 

223Cada um é uma matriz de descrições em prosa, lidas como regras em linguagem natural. Para bloqueios baseados em padrões de ferramentas que são executados antes do classificador, use [`permissions.deny`](https://code.claude.com/docs/pt/permissions).223Cada um é uma matriz de descrições em prosa, lidas como regras em linguagem natural. Para bloqueios baseados em padrões de ferramentas que são executados antes do classificador, use [`permissions.deny`](https://code.claude.com/docs/pt/permissions).

224 224 

225> [!NOTE]

226>

227> Em uma sessão de [Code Mode](https://code.claude.com/docs/pt/code-mode.md#permission-checks), o classificador aplica `hard_deny` e `soft_deny` quando revisa o código do Claude, e não a cada chamada de ferramenta que o código faz. As regras `permissions.deny` se aplicam a cada chamada.

228 

225Dentro do classificador, a precedência funciona em quatro camadas:229Dentro do classificador, a precedência funciona em quatro camadas:

226 230 

227* Regras `hard_deny` bloqueiam incondicionalmente. A intenção do usuário e exceções `allow` não se aplicam.231* Regras `hard_deny` bloqueiam incondicionalmente. A intenção do usuário e exceções `allow` não se aplicam.


283 287 

284Por padrão, as regras estreitas de Bash e PowerShell, como `Bash(npm test)`, permanecem em vigor no modo automático. Claude Code as resolve antes do classificador ser executado, a menos que o comando tenha [domínios permitidos por comando](https://code.claude.com/docs/pt/sandboxing.md#per-command-allowed-domains-in-auto-mode). Claude Code suspende apenas as regras amplas que concedem execução arbitrária de código, como `Bash(*)` ou intérpretes com caracteres curinga, juntamente com cada regra que nomeia [`Monitor`](https://code.claude.com/docs/pt/tools-reference#monitor-tool), porque os comandos Monitor são executados através do shell. Isso significa que uma regra estreita ainda pode deixar um argumento destrutivo passar sem o classificador vê-lo, por exemplo um caminho de script ou sinalizador que o prefixo da regra não antecipou.288Por padrão, as regras estreitas de Bash e PowerShell, como `Bash(npm test)`, permanecem em vigor no modo automático. Claude Code as resolve antes do classificador ser executado, a menos que o comando tenha [domínios permitidos por comando](https://code.claude.com/docs/pt/sandboxing.md#per-command-allowed-domains-in-auto-mode). Claude Code suspende apenas as regras amplas que concedem execução arbitrária de código, como `Bash(*)` ou intérpretes com caracteres curinga, juntamente com cada regra que nomeia [`Monitor`](https://code.claude.com/docs/pt/tools-reference#monitor-tool), porque os comandos Monitor são executados através do shell. Isso significa que uma regra estreita ainda pode deixar um argumento destrutivo passar sem o classificador vê-lo, por exemplo um caminho de script ou sinalizador que o prefixo da regra não antecipou.

285 289 

286Defina `autoMode.classifyAllShell` como `true` para suspender cada regra de permissão de Bash e PowerShell enquanto o modo automático estiver ativo, para que o classificador avalie cada comando shell independentemente da sua lista de permissões, exceto [remoções de caminho crítico](https://code.claude.com/docs/pt/permission-modes.md#critical-paths).290Defina `autoMode.classifyAllShell` como `true` para suspender cada regra de permissão de Bash e PowerShell enquanto o modo auto estiver ativo, para que o classificador avalie cada comando shell independentemente da sua lista de permissões, exceto [remoções de caminho crítico](https://code.claude.com/docs/pt/permission-modes.md#critical-paths). Em uma sessão do [Code Mode](https://code.claude.com/docs/pt/code-mode.md#permission-checks), o classificador revisa o código que executa os comandos, mesmo com essa configuração ativada.

287 291 

288```json theme={null}292```json theme={null}

289{293{

Details

315 {315 {

316 "matcher": "Edit|Write",316 "matcher": "Edit|Write",

317 "hooks": [317 "hooks": [

318 { "type": "command", "command": "npx prettier --write --ignore-unknown \"$(jq -r '.tool_input.file_path')\"" }318 { "type": "command", "command": "f=$(jq -r '.tool_input.file_path') && npx prettier --write --ignore-unknown \"$f\"" }

319 ]319 ]

320 }320 }

321 ]321 ]

Details

74| PostgreSQL 11 ou posterior | Dá suporte ao fluxo de sign-in do dispositivo e aos contadores de rate limit. Um serviço PostgreSQL gerenciado funciona, incluindo o menor nível; consulte [quais bancos de dados são suportados](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#postgres). Com [limites de gastos](https://code.claude.com/docs/pt/claude-apps-gateway-spend-limits.md), também mantém tabelas de gastos, auditoria e identidade duráveis que devem ter backup. TLS via `?sslmode=require` é recomendado. PostgreSQL 11, 12 e 13 requerem Claude Code v2.1.290 ou posterior no servidor gateway. O projeto PostgreSQL não mantém mais essas versões, então use uma mais recente sempre que possível. |74| PostgreSQL 11 ou posterior | Dá suporte ao fluxo de sign-in do dispositivo e aos contadores de rate limit. Um serviço PostgreSQL gerenciado funciona, incluindo o menor nível; consulte [quais bancos de dados são suportados](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#postgres). Com [limites de gastos](https://code.claude.com/docs/pt/claude-apps-gateway-spend-limits.md), também mantém tabelas de gastos, auditoria e identidade duráveis que devem ter backup. TLS via `?sslmode=require` é recomendado. PostgreSQL 11, 12 e 13 requerem Claude Code v2.1.290 ou posterior no servidor gateway. O projeto PostgreSQL não mantém mais essas versões, então use uma mais recente sempre que possível. |

75| Upstream de modelo | Credenciais do Amazon Bedrock, credenciais do Claude Platform on AWS, credenciais do Google Cloud, um recurso Microsoft Foundry ou uma chave de API Anthropic. Múltiplos upstreams são suportados com failover. |75| Upstream de modelo | Credenciais do Amazon Bedrock, credenciais do Claude Platform on AWS, credenciais do Google Cloud, um recurso Microsoft Foundry ou uma chave de API Anthropic. Múltiplos upstreams são suportados com failover. |

76| HTTPS | O gateway deve ser acessível via `https://` de laptops de desenvolvedores e de qualquer navegador usado para sign-in; o gateway serve a página de verificação do dispositivo no mesmo listener. Forneça um certificado TLS via `listen.tls` ou execute atrás de um ingress que termina TLS e defina `listen.public_url` para a origem externa em ambos os casos. Em `/login`, Claude Code aceita uma origem `http://` simples apenas quando o host do gateway é loopback: `localhost`, `127.0.0.1` ou `::1`. |76| HTTPS | O gateway deve ser acessível via `https://` de laptops de desenvolvedores e de qualquer navegador usado para sign-in; o gateway serve a página de verificação do dispositivo no mesmo listener. Forneça um certificado TLS via `listen.tls` ou execute atrás de um ingress que termina TLS e defina `listen.public_url` para a origem externa em ambos os casos. Em `/login`, Claude Code aceita uma origem `http://` simples apenas quando o host do gateway é loopback: `localhost`, `127.0.0.1` ou `::1`. |

77| Endereço de rede privada | Em `/login`, Claude Code requer que o nome de host ou endereço IP do gateway resolva apenas para endereços privados: RFC 1918, link-local, CGNAT `100.64.0.0/10`, ULA IPv6 `fc00::/7` ou loopback. Para um gateway que você hospeda, qualquer endereço público fora de um bloco que você declara é rejeitado; consulte o [modelo de ameaça](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#threat-model-summary) no guia de implantação. Se máquinas de desenvolvedores rotear HTTPS através de um proxy corporativo, o sign-in também requer que o host proxy resolva para endereços privados; se não resolver, adicione o host do gateway a `NO_PROXY` para que a CLI se conecte diretamente. Se sua rede interna for numerada a partir do espaço IPv4 público que sua organização possui, [declare esses blocos](#allow-a-gateway-on-public-address-space-you-own) para que `/login` aceite um gateway lá. |77| Endereço de rede privada | O `/login` do Claude Code requer que o nome de host ou endereço IP do gateway resolva apenas para endereços privados: intervalos RFC 1918 e link-local, CGNAT `100.64.0.0/10`, ULA IPv6 `fc00::/7` e loopback. Consulte o [modelo de ameaça](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#threat-model-summary). Se sua rede interna for numerada a partir do espaço IPv4 público que sua organização possui, [declare esses blocos](#allow-a-gateway-on-public-address-space-you-own) para que `/login` aceite um gateway lá. |

78| Runtime Linux | O servidor gateway é executado apenas no binário Linux nativo. macOS funciona para desenvolvimento local. Windows não é suportado como plataforma de servidor. |78| Runtime Linux | O servidor gateway é executado apenas no binário Linux nativo. macOS funciona para desenvolvimento local. Windows não é suportado como plataforma de servidor. |

79 79 

80Quando `HTTPS_PROXY` ou `HTTP_PROXY` se aplica ao host do gateway, o sign-in também precisa de um proxy cujo nome de host resolva para endereços privados ou do host do gateway em `NO_PROXY` nas máquinas de desenvolvedores. Se essas máquinas também definirem `no_proxy`, adicione o host do gateway lá também; caso contrário, as requisições de modelo ainda passarão pelo proxy.

81 

80### Etapas82### Etapas

81 83 

82**1. Registre um cliente OAuth em seu IdP**84**1. Registre um cliente OAuth em seu IdP**

Details

16 16 

17## Estrutura do arquivo17## Estrutura do arquivo

18 18 

19Cinco seções são [obrigatórias](#required-sections). Todas as outras seções são [opcionais](#optional-sections), e uma seção omitida assume seus padrões. Chaves desconhecidas falham na inicialização, portanto um erro de digitação aparece como um erro nomeado em vez de uma configuração silenciosamente ignorada.19Cinco seções são [obrigatórias](#required-sections). Todas as outras seções são [opcionais](#optional-sections), e uma seção omitida assume seus padrões.

20 20 

21**Seções obrigatórias:**21**Seções obrigatórias:**

22 22 


519 519 

520Requer um gateway executando Claude Code v2.1.281 ou posterior. [Atribuição de custos na AWS](https://code.claude.com/docs/pt/claude-apps-gateway-on-aws.md#cost-attribution) aborda a role do IAM e onde o faturamento da AWS mostra as sessões.520Requer um gateway executando Claude Code v2.1.281 ou posterior. [Atribuição de custos na AWS](https://code.claude.com/docs/pt/claude-apps-gateway-on-aws.md#cost-attribution) aborda a role do IAM e onde o faturamento da AWS mostra as sessões.

521 521 

522> [!NOTE]

523>

524> Para atribuição por desenvolvedor, defina `assume_role` com `session_name` em todos os upstreams `bedrock` e [`mantle`](#amazon-bedrock-mantle-endpoint), exceto os que usam `aws_bearer_token`. Esses [não aceitam `assume_role`](#bedrock-in-another-aws-account), então as requisições deles permanecem sob um único principal.

525 

522```yaml theme={null}526```yaml theme={null}

523upstreams:527upstreams:

524 - provider: bedrock528 - provider: bedrock


535 539 

536O gateway também faz uma chamada própria nesta role: a contagem de tokens de uma requisição que o cliente abandonou, para que os [limites de gasto](https://code.claude.com/docs/pt/claude-apps-gateway-spend-limits.md) permaneçam precisos. Essa contagem e sua [requisição de fallback de um token](#amazon-bedrock) são assinadas pela sessão compartilhada `claude-apps-gateway`, então a AWS atribui o fallback a `claude-apps-gateway` em vez de ao desenvolvedor.540O gateway também faz uma chamada própria nesta role: a contagem de tokens de uma requisição que o cliente abandonou, para que os [limites de gasto](https://code.claude.com/docs/pt/claude-apps-gateway-spend-limits.md) permaneçam precisos. Essa contagem e sua [requisição de fallback de um token](#amazon-bedrock) são assinadas pela sessão compartilhada `claude-apps-gateway`, então a AWS atribui o fallback a `claude-apps-gateway` em vez de ao desenvolvedor.

537 541 

538Para uma atribuição estrita por desenvolvedor, defina `assume_role` com `session_name` em todos os upstreams Bedrock que você listar. Um upstream sem isso assina as requisições que serve com suas próprias credenciais.

539 

540#### Endpoint Mantle do Amazon Bedrock542#### Endpoint Mantle do Amazon Bedrock

541 543 

542O provedor `mantle` envia a inferência ao [endpoint Mantle](https://code.claude.com/docs/pt/amazon-bedrock.md#use-the-mantle-endpoint) do Amazon Bedrock. Ele requer Claude Code v2.1.283 ou posterior no servidor do gateway. Versões anteriores do gateway o rejeitam na inicialização, então atualize todas as réplicas antes de adicioná-lo.544O provedor `mantle` envia a inferência ao [endpoint Mantle](https://code.claude.com/docs/pt/amazon-bedrock.md#use-the-mantle-endpoint) do Amazon Bedrock. Ele requer Claude Code v2.1.283 ou posterior no servidor do gateway. Versões anteriores do gateway o rejeitam na inicialização, então atualize todas as réplicas antes de adicioná-lo.


656 658 

657| Configuração | Como |659| Configuração | Como |

658| - | - |660| - | - |

659| RBAC | Conceda à identidade do gateway `Azure AI User` ou `Cognitive Services User` no recurso do Microsoft Foundry |661| RBAC | Conceda à identidade do gateway o papel `Foundry User` ou `Cognitive Services User` no recurso do Microsoft Foundry |

660| Implantações | O Microsoft Foundry usa nomes de implantação escolhidos pelo administrador, não IDs de modelo canônicos. Adicione um bloco [`models:`](#models) mapeando cada ID canônico para o nome da sua implantação. |662| Implantações | O Microsoft Foundry usa nomes de implantação escolhidos pelo administrador, não IDs de modelo canônicos. Adicione um bloco [`models:`](#models) mapeando cada ID canônico para o nome da sua implantação. |

661| AKS (workload identity) | Federe uma User-Assigned Managed Identity com o emissor OIDC do cluster e vincule-a à conta de serviço do gateway. `use_azure_ad: true` a detecta via `WorkloadIdentityCredential`. |663| AKS (workload identity) | Federe uma User-Assigned Managed Identity com o emissor OIDC do cluster e vincule-a à conta de serviço do gateway. `use_azure_ad: true` a detecta via `WorkloadIdentityCredential`. |

662| ACI / App Service | Ative a managed identity atribuída pelo sistema ou pelo usuário no recurso. `use_azure_ad: true` a detecta. |664| ACI / App Service | Ative a managed identity atribuída pelo sistema ou pelo usuário no recurso. `use_azure_ad: true` a detecta. |


1001 1003 

1002Cada chave em `upstream_model` deve corresponder ao `name` de um upstream configurado, que por padrão é o nome do provedor. Uma chave que não corresponde a nenhum upstream faz a inicialização falhar, então omita as linhas dos provedores que você não usa.1004Cada chave em `upstream_model` deve corresponder ao `name` de um upstream configurado, que por padrão é o nome do provedor. Uma chave que não corresponde a nenhum upstream faz a inicialização falhar, então omita as linhas dos provedores que você não usa.

1003 1005 

1006Para permitir que os desenvolvedores usem o alias `fable` com `auto_include_builtin_models: false`, adicione uma entrada `claude-fable-5` a `models`. Esse é o ID para o qual o [alias `fable`](https://code.claude.com/docs/pt/model-config#fable-alias-resolution) é resolvido para desenvolvedores conectados ao gateway. Sem ela, suas mensagens falham com um erro que começa com `API Error: 400 model claude-fable-5 is not in the operator's model allowlist`.

1007 

1004### `managed`1008### `managed`

1005 1009 

1006O bloco `managed` define políticas de acesso baseadas em funções, indexadas por grupos do IdP ou domínio de email. As políticas são avaliadas em ordem; por padrão, a primeira correspondência é selecionada e depois mesclada sobre a base genérica `match: {}`. Um usuário que corresponde a duas políticas de função recebe apenas a primeira, então as regras de negação da segunda política não se aplicam, a menos que você [aplique todas as políticas correspondentes](#apply-every-matching-policy). As políticas são servidas por usuário em `GET /managed/settings` com cache ETag/304.1010O bloco `managed` define políticas de acesso baseadas em funções, indexadas por grupos do IdP ou domínio de email. As políticas são avaliadas em ordem; por padrão, a primeira correspondência é selecionada e depois mesclada sobre a base genérica `match: {}`. Um usuário que corresponde a duas políticas de função recebe apenas a primeira, então as regras de negação da segunda política não se aplicam, a menos que você [aplique todas as políticas correspondentes](#apply-every-matching-policy). As políticas são servidas por usuário em `GET /managed/settings` com cache ETag/304.


1025Um catch-all `match: {}`, por convenção listado por último, é tratado como uma camada base. Todas as outras políticas herdam do catch-all qualquer chave que não definam, então as entradas por função só precisam listar o que difere do padrão da organização. As regras de mesclagem dependem do tipo de chave:1029Um catch-all `match: {}`, por convenção listado por último, é tratado como uma camada base. Todas as outras políticas herdam do catch-all qualquer chave que não definam, então as entradas por função só precisam listar o que difere do padrão da organização. As regras de mesclagem dependem do tipo de chave:

1026 1030 

1027* **Allowlists**: `availableModels` e `permissions.allow`. A lista de uma política específica substitui totalmente a da base.1031* **Allowlists**: `availableModels` e `permissions.allow`. A lista de uma política específica substitui totalmente a da base.

1028* **Listas de negação e arrays de hooks**: `permissions.deny`, `permissions.ask`, `disabledMcpjsonServers`, `deniedMcpServers`, `blockedMarketplaces`, `deniedModels` e todos os arrays de tipo de evento de `hooks`. Estes usam a união da base e da política, para que uma negação ou um hook de auditoria de toda a organização não possa ser removido acidentalmente por uma sobrescrita por função.1032* **Listas de negação e arrays de hooks**: estes recebem a união da base e da política:

1033 * `permissions.deny` e `permissions.ask`

1034 * `disabledMcpjsonServers` e `deniedMcpServers`

1035 * `blockedMarketplaces` e `deniedModels`

1036 * Os arrays de tipos de evento de `hooks`

1029* **Chaves do tipo registro**: `env`, `modelOverrides` e `skillOverrides`. Estas são mescladas superficialmente, então um bloco `env` por função sobrescreve as chaves que define e herda o restante da base.1037* **Chaves do tipo registro**: `env`, `modelOverrides` e `skillOverrides`. Estas são mescladas superficialmente, então um bloco `env` por função sobrescreve as chaves que define e herda o restante da base.

1030 1038 

1031`availableModels` também é aplicado no lado do servidor em `/v1/messages`, então um modelo negado retorna `400` independentemente do que o cliente envia. Uma lista vazia nega todos os modelos. A verificação também cobre o modelo com que uma sessão inicia antes de o desenvolvedor escolher um, então [inicie as sessões em um modelo que a política permite](#start-sessions-on-a-model-the-policy-allows).1039`availableModels` também é aplicado no lado do servidor em `/v1/messages`, então um modelo negado retorna `400` independentemente do que o cliente envia. Uma lista vazia nega todos os modelos. A verificação também cobre o modelo com que uma sessão inicia antes de o desenvolvedor escolher um, então [inicie as sessões em um modelo que a política permite](#start-sessions-on-a-model-the-policy-allows).


1277 1285 

1278Para desativar o contexto de 1M, defina [`CLAUDE_CODE_DISABLE_1M_CONTEXT: "1"`](https://code.claude.com/docs/pt/model-config#extended-context) no mesmo bloco `env`. O Claude Code então trata todos os modelos como tendo uma janela de 200K. Em sessões interativas, cada desenvolvedor aprova esta variável na [caixa de diálogo de aprovação](#what-goes-in-cli) antes que ela entre em vigor.1286Para desativar o contexto de 1M, defina [`CLAUDE_CODE_DISABLE_1M_CONTEXT: "1"`](https://code.claude.com/docs/pt/model-config#extended-context) no mesmo bloco `env`. O Claude Code então trata todos os modelos como tendo uma janela de 200K. Em sessões interativas, cada desenvolvedor aprova esta variável na [caixa de diálogo de aprovação](#what-goes-in-cli) antes que ela entre em vigor.

1279 1287 

1288> [!NOTE]

1289>

1290> O Claude Code não lê o `upstream_model` de um alias para dimensionar a sua janela de contexto. Para dar a um alias em `models` que o Claude Code não reconhece a janela do seu modelo, consulte [Corrigir a janela para um ID de modelo de gateway ou personalizado](https://code.claude.com/docs/pt/model-config.md#correct-the-window-for-a-gateway-or-custom-model-id).

1291 

1280#### Cache de prompt de uma hora1292#### Cache de prompt de uma hora

1281 1293 

1282Para solicitar o [TTL do cache de prompt](https://code.claude.com/docs/pt/prompt-caching.md#cache-lifetime) de uma hora em vez dos cinco minutos padrão, adicione estas chaves ao [bloco `code`, `cli` ou `settings`](#choose-cli-or-code) existente de uma política e reinicie o gateway. As chaves precisam do Claude Code v2.1.242 ou posterior no servidor do gateway e nos clientes.1294Para solicitar o [TTL do cache de prompt](https://code.claude.com/docs/pt/prompt-caching.md#cache-lifetime) de uma hora em vez dos cinco minutos padrão, adicione estas chaves ao [bloco `code`, `cli` ou `settings`](#choose-cli-or-code) existente de uma política e reinicie o gateway. As chaves precisam do Claude Code v2.1.242 ou posterior no servidor do gateway e nos clientes.


1379 1391 

1380##### O que o gateway rejeita na inicialização1392##### O que o gateway rejeita na inicialização

1381 1393 

1382O gateway valida cada bloco `desktop` na inicialização em relação ao esquema de configuração que o próprio Claude Desktop usa, para que um erro apareça na inicialização do gateway como uma mensagem que nomeia a chave, em vez de chegar a todos os desktops conectados. O gateway falha na inicialização quando um bloco contém:1394O gateway falha na inicialização quando um bloco `desktop` contém:

1383 1395 

1384* Uma chave desconhecida1396* Uma chave reconhecida cujo valor o Claude Desktop rejeitaria ou descartaria silenciosamente, como um valor vazio.

1385* Uma chave reconhecida cujo valor o Claude Desktop rejeitaria ou descartaria silenciosamente, como um valor vazio ou uma subchave com erro de digitação dentro de uma entrada aninhada. Antes da v2.1.260, o gateway descartava silenciosamente um campo com erro de digitação dentro de um objeto aninhado de uma entrada de `managedMcpServers` ou `orgPluginSettings`, em vez de falhar na inicialização.

1386* Uma chave que o próprio gateway calcula: a conexão de inferência, a lista de modelos e o relay OTLP. Configure-as por meio de [`upstreams`](#upstreams), [`models`](#models) e do `forward_to` da seção [`telemetry`](#telemetry).1397* Uma chave que o próprio gateway calcula: a conexão de inferência, a lista de modelos e o relay OTLP. Configure-as por meio de [`upstreams`](#upstreams), [`models`](#models) e do `forward_to` da seção [`telemetry`](#telemetry).

1387* Um alias legado de uma chave atual. No erro de inicialização, o gateway nomeia a chave canônica a ser escrita.1398* Um alias legado de uma chave atual. No erro de inicialização, o gateway nomeia a chave canônica a ser escrita.

1399* A partir da v2.1.300, qualquer chave cujo nome comece com `selfHosted`, como as chaves de um host de sessão auto-hospedado. Remova essas chaves antes de atualizar o gateway para a v2.1.300 ou posterior.

1388 1400 

1389Se você usar um valor ou formato de entrada descontinuado, como uma entrada de `managedMcpServers` sem `transport`, o gateway inicia e registra um aviso que nomeia a substituição.1401Se você usar um valor ou formato de entrada descontinuado, como uma entrada de `managedMcpServers` sem `transport`, o gateway inicia e registra um aviso que nomeia a substituição.

1390 1402 

1391Antes da v2.1.232, o gateway aceitava uma lista fixa de 11 chaves de controle de recursos, como `chatTabEnabled` e `disableAutoUpdates`, e rejeitava todas as outras chaves na inicialização. Antes da v2.1.227, o gateway também rejeitava `chatTabEnabled` e `chatAdvancedFileAnalysisEnabled` na inicialização.1403Antes da v2.1.232, o gateway aceitava uma lista fixa de 11 chaves de controle de recursos, como `chatTabEnabled` e `disableAutoUpdates`, e rejeitava todas as outras chaves na inicialização. Antes da v2.1.227, o gateway também rejeitava `chatTabEnabled` e `chatAdvancedFileAnalysisEnabled` na inicialização.

1392 1404 

1405##### Chaves que o gateway não conhece

1406 

1407Em um gateway executando o Claude Code v2.1.295 ou posterior, a maioria das chaves de uma versão mais recente do Claude Desktop não exige atualização do gateway. Na v2.1.321 ou posterior, a maioria das novas subchaves dentro de uma chave conhecida também não exige.

1408 

1409Algumas chaves e valores ainda falham na inicialização, como estes:

1410 

1411* Uma nova opção na lista fixa de valores de uma chave conhecida.

1412* Um provável erro de digitação de uma chave que você pode definir em um bloco `desktop`, como `disable_auto_updates` em vez de `disableAutoUpdates`. O erro sugere um nome.

1413 

1414Em cada caso, se o nome ou valor for real em uma versão mais recente do Claude Desktop, [atualize o gateway](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#upgrades) para a versão mais recente. Caso contrário, corrija-o ou remova-o. Para descobrir antes de implantar, [teste a política](#test-a-policy-before-deployment).

1415 

1393##### Chaves que precisam de uma versão mais recente do gateway ou do Claude Desktop1416##### Chaves que precisam de uma versão mais recente do gateway ou do Claude Desktop

1394 1417 

1395O gateway valida um bloco `desktop` em relação ao esquema empacotado com sua versão instalada, assim como faz com o bloco `cli`. Para entregar uma configuração introduzida por uma versão mais nova do Claude Desktop, atualize o gateway primeiro. Por exemplo, `userPluginMarketplacesEnabled` e `userPluginUploadsEnabled` precisam do Claude Code v2.1.260 ou posterior no servidor do gateway e do Claude Desktop 1.37937.0 ou posterior nas máquinas dos membros.1418`userPluginMarketplacesEnabled` e `userPluginUploadsEnabled` precisam do Claude Code v2.1.260 ou posterior no servidor do gateway e do Claude Desktop 1.37937.0 ou posterior nas máquinas dos membros.

1396 1419 

1397`blockReadsOutsideWorkingDirectories`, `disableBypassPermissionsMode`, `configRecheckIntervalMinutes` e `sshClientPath` precisam do Claude Code v2.1.281 ou posterior no servidor do gateway. O mesmo vale para o valor `required` de `microsoftAuthBroker` e o campo `continuousAccessEvaluation` de uma entrada `managedMcpServers` do Microsoft 365. Versões do Claude Desktop anteriores ao valor `required` o leem como `disabled`, então defina `required` somente depois que o Claude Desktop de todos os membros o suportar. A [referência de configuração gerenciada](https://claude.com/docs/third-party/claude-desktop/configuration) do Claude Desktop lista a versão que primeiro lê cada chave.1420`blockReadsOutsideWorkingDirectories`, `disableBypassPermissionsMode`, `configRecheckIntervalMinutes` e `sshClientPath` precisam do Claude Code v2.1.281 ou posterior no servidor do gateway. O mesmo vale para o valor `required` de `microsoftAuthBroker` e o campo `continuousAccessEvaluation` de uma entrada `managedMcpServers` do Microsoft 365. Versões do Claude Desktop anteriores ao valor `required` o leem como `disabled`, então defina `required` somente depois que o Claude Desktop de todos os membros o suportar. A [referência de configuração gerenciada](https://claude.com/docs/third-party/claude-desktop/configuration) do Claude Desktop lista a versão que primeiro lê cada chave.

1398 1421 

Details

92 92 

93Além do binário, a imagem precisa:93Além do binário, a imagem precisa:

94 94 

95* **Uma imagem baseada em glibc**: a compilação glibc tem apenas dependências dinâmicas de bibliotecas glibc. Imagens baseadas em Musl precisam da compilação `linux-x64-musl` ou `linux-arm64-musl` mais pacotes adicionais; consulte [Configuração do Alpine Linux](https://code.claude.com/docs/pt/setup.md#alpine-linux-and-musl-based-distributions).95* **Uma imagem baseada em glibc**: as únicas dependências dinâmicas do build glibc são bibliotecas glibc. Imagens baseadas em Musl precisam do build `linux-x64-musl` ou `linux-arm64-musl`, cuja única dependência dinâmica é a musl.

96* **Um diretório de estado gravável**: o gateway é executado como qualquer usuário, mas imagens mínimas não têm home gravável. Defina `CLAUDE_CONFIG_DIR` para um caminho gravável como `/tmp/.claude`.96* **Um diretório de estado gravável**: o gateway é executado como qualquer usuário, mas imagens mínimas não têm home gravável. Defina `CLAUDE_CONFIG_DIR` para um caminho gravável como `/tmp/.claude`.

97* **O comando do contêiner**: `claude gateway --config /etc/claude/gateway.yaml`, com o arquivo de configuração montado como somente leitura e segredos fornecidos como variáveis de ambiente; o gateway escuta em `listen.port`, padrão `8080`.97* **O comando do contêiner**: `claude gateway --config /etc/claude/gateway.yaml`, com o arquivo de configuração montado como somente leitura e segredos fornecidos como variáveis de ambiente; o gateway escuta em `listen.port`, padrão `8080`.

98 98 

Details

189 189 

190```190```

191Sent to cloud session.191Sent to cloud session.

192Session ID: session_01DiUkqY2kzbUbDmW1w96rfi192Session ID: session_01HJKLMNOPQRSTUVWXYZ

193View: https://claude.ai/code/session_01DiUkqY2kzbUbDmW1w96rfi?from=cli&m=0193View: https://claude.ai/code/session_01HJKLMNOPQRSTUVWXYZ?from=cli&m=0

194```194```

195 195 

196Passe `--output-format json` para um resultado legível por máquina: `{ok, session_id, url}` com sucesso, ou `{ok: false, session_id, error}` quando o envio falha, por exemplo quando a sessão está ausente ou arquivada. Erros de configuração, como um provedor não suportado ou uma política organizacional desabilitada, são impressos em stderr sem JSON. `--output-format stream-json` não é suportado com `--cloud <session-id>`.196Passe `--output-format json` para um resultado legível por máquina: `{ok, session_id, url}` com sucesso, ou `{ok: false, session_id, error}` quando o envio falha, por exemplo quando a sessão está ausente ou arquivada. Erros de configuração, como um provedor não suportado ou uma política organizacional desabilitada, são impressos em stderr sem JSON. `--output-format stream-json` não é suportado com `--cloud <session-id>`.

Details

274 274 

275A thread é executada em [modo auto](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode), então Claude executa comandos e edita arquivos naquela pasta sem pedir a você cada vez. Se o modo auto não estiver disponível ou estiver desligado no Claude Code daquele computador, a thread é executada sem ele, e qualquer prompt de permissão que ela levanta aguarda sua resposta na thread, como [Desbloquear uma thread aguardando aprovação](#unblock-a-thread-waiting-on-approval) descreve.275A thread é executada em [modo auto](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode), então Claude executa comandos e edita arquivos naquela pasta sem pedir a você cada vez. Se o modo auto não estiver disponível ou estiver desligado no Claude Code daquele computador, a thread é executada sem ele, e qualquer prompt de permissão que ela levanta aguarda sua resposta na thread, como [Desbloquear uma thread aguardando aprovação](#unblock-a-thread-waiting-on-approval) descreve.

276 276 

277Para executar a thread em outro modo, inicie `claude remote-control` com [`--settings`](https://code.claude.com/docs/pt/remote-control#start-a-remote-control-session). Então [`permissions.defaultMode`](https://code.claude.com/docs/pt/permission-modes#start-in-a-different-mode), nesse arquivo ou nas configurações daquele computador, pode escolher outro modo.

278 

277Enquanto a thread é executada, um ícone de laptop em seu cabeçalho mostra se seu computador está conectado. Clique nele para ver qual pasta a thread está usando ou para desligar a conexão. A thread pausa enquanto esse computador está dormindo, e para se o aplicativo desktop ou `claude remote-control` sair.279Enquanto a thread é executada, um ícone de laptop em seu cabeçalho mostra se seu computador está conectado. Clique nele para ver qual pasta a thread está usando ou para desligar a conexão. A thread pausa enquanto esse computador está dormindo, e para se o aplicativo desktop ou `claude remote-control` sair.

278 280 

279* **Para colocar a thread funcionando novamente**: consulte [Perda de contato com sua pasta](#lost-contact-with-your-folder)281* **Para colocar a thread funcionando novamente**: consulte [Perda de contato com sua pasta](#lost-contact-with-your-folder)

code-mode.md +224 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Execute chamadas de ferramenta a partir de código com o Code Mode

6 

7> Experimente o Code Mode, um recurso experimental no qual Claude escreve JavaScript que faz várias chamadas de ferramenta em uma única etapa.

8 

9O Code Mode muda a forma como Claude usa suas [ferramentas](https://code.claude.com/docs/pt/tools-reference.md). Sem o Code Mode, Claude solicita chamadas de ferramenta como Bash, Read ou Edit diretamente e lê cada resultado antes de decidir o que fazer em seguida. Com o Code Mode, Claude escreve um trecho de JavaScript que faz as chamadas de ferramenta, e o Claude Code executa esse código na sua sessão.

10 

11> [!NOTE]

12>

13> O Code Mode é experimental e fica desativado por padrão. Ele pode mudar ou ser removido em qualquer versão. Para compartilhar feedback, execute `/feedback`.

14 

15## Como o Code Mode funciona

16 

17Em uma sessão do Code Mode, você ainda descreve sua tarefa em um prompt, e Claude escreve JavaScript para realizá-la. Um único trecho de código pode executar comandos em paralelo, usar um resultado na chamada seguinte e retornar a parte da saída que Claude precisa ler.

18 

19Por exemplo, se você pedir a Claude para aumentar um limite de novas tentativas, Claude pode escrever este código para encontrar o arquivo, editá-lo e executar os testes. A última linha retorna a Claude o caminho do arquivo e a saída dos testes:

20 

21```javascript theme={null}

22const files = await $`rg -l "function retryPolicy" src`.text();

23const target = files.trim().split("\n")[0];

24await edit(target, "maxAttempts: 3", "maxAttempts: 5");

25({ edited: target, tests: $`npm test -- retryPolicy`.nothrow() });

26```

27 

28Na conversa, você vê as chamadas de ferramenta, como o diff da edição, e não o código. Para ler o código, pressione `Ctrl+O` para abrir o [visualizador de transcrição](https://code.claude.com/docs/pt/interactive-mode.md#transcript-viewer). Cada trecho de código aparece ali como uma linha **Code** recolhida, com uma dica de como expandi-la.

29 

30### Quando usar o Code Mode

31 

32Experimente o Code Mode em tarefas que exigem muitas chamadas de ferramenta relacionadas, como:

33 

34* Uma alteração que se repete em muitos arquivos

35* Uma pesquisa cujos resultados precisam ser filtrados antes que Claude os leia

36* Vários comandos independentes que podem ser executados ao mesmo tempo

37 

38### Limitações do Code Mode

39 

40Antes de ativar o Code Mode, verifique se você pode aceitar estas limitações:

41 

42* **Retomada**: você pode retomar uma sessão do Code Mode apenas no terminal, com o Code Mode ativado

43* **Modo auto**: o classificador do modo auto [revisa o código, não cada chamada de ferramenta](#permission-checks)

44* **Código de longa duração**: a menos que [o código possa ser executado em segundo plano](#long-running-code), você espera que ele termine, e ele é interrompido após dez minutos

45* **Hooks**: você pode ver [chamadas de ferramenta recusadas](#tool-call-refused-by-a-hook) quando um hook `PreToolUse` não consegue ser executado ou atinge o timeout, e [saída de código bloqueada](#code-output-withheld-by-a-hook) por um hook `UserPromptSubmit`

46* **Recursos indisponíveis**: você não pode usar [Remote Control](https://code.claude.com/docs/pt/remote-control.md), [Claude in Chrome](https://code.claude.com/docs/pt/chrome.md) nem [uso do computador](https://code.claude.com/docs/pt/computer-use.md)

47* **Mover a sessão**: você não pode mover a sessão para o aplicativo Desktop nem transformá-la em uma [sessão em segundo plano](https://code.claude.com/docs/pt/agent-view.md), e `/fork` não consegue iniciar uma cópia em segundo plano

48 

49## Requisitos

50 

51* **Versão**: Claude Code v2.1.323 ou posterior, em qualquer um dos [canais de lançamento](https://code.claude.com/docs/pt/setup.md#configure-release-channel). Uma versão mais antiga inicia sem o Code Mode, com ou sem o motivo `it isn't open to your account yet`

52* **Conta**: uma assinatura do Claude ou uma conta do Console. Você não pode usar o Code Mode por meio de um gateway, Amazon Bedrock, Claude Platform on AWS, Agent Platform do Google Cloud ou Microsoft Foundry

53* **Organização**: sua organização não usa a [configuração HIPAA](https://code.claude.com/docs/pt/hipaa-setup.md) nem [retenção zero de dados](https://code.claude.com/docs/pt/zero-data-retention.md)

54* **Modelo**: Claude Opus 5.5, Sonnet 5.5, Haiku 5.5 ou Fable 5.2

55* **Superfície**: uma sessão interativa do `claude` em um terminal. O Code Mode não funciona com `-p`, o Agent SDK, o painel do VS Code, o aplicativo Desktop ou sessões na nuvem

56* **Instalação**: o [build nativo](https://code.claude.com/docs/pt/setup.md) do Claude Code

57* **Windows**: o [Git for Windows](https://git-scm.com/downloads/win) está instalado

58 

59Você também não pode iniciar o Code Mode com algumas configurações ativadas, como um auxiliar de chave de API, equipes de agentes, exportação do OpenTelemetry ou `DISABLE_TELEMETRY`. Para a correção de cada uma, consulte [O Code Mode não inicia](#code-mode-doesnt-start).

60 

61## Experimente o Code Mode

62 

63Ative o Code Mode, dê uma tarefa a Claude e veja o código que Claude escreveu.

64 

65**1. Verifique sua versão**

66 

67Execute `claude --version`. Se a versão for anterior à v2.1.323, execute `claude update`. Se você estiver no canal `stable` e a atualização não chegar à v2.1.323, aguarde o `stable` alcançá-la ou [mude para `latest`](https://code.claude.com/docs/pt/setup#configure-release-channel).

68 

69**2. Inicie o Claude Code com o Code Mode ativado**

70 

71Defina a variável de ambiente [`CLAUDE_CODE_EXPERIMENTAL_CODE_MODE`](https://code.claude.com/docs/pt/env-vars#variables) como `1`. Para experimentar o Code Mode, defina-a no seu shell. Para ativar o Code Mode em todas as novas sessões, defina-a nas suas configurações de usuário.

72 

73> [tab] macOS, Linux, WSL

74>

75> ```bash theme={null}

76> CLAUDE_CODE_EXPERIMENTAL_CODE_MODE=1 claude

77> ```

78 

79> [tab] Windows PowerShell

80>

81> ```powershell theme={null}

82> $env:CLAUDE_CODE_EXPERIMENTAL_CODE_MODE = "1"

83> claude

84> ```

85 

86> [tab] settings.json

87>

88> Salve este bloco `env` em `~/.claude/settings.json` e inicie o `claude`:

89>

90> ```json theme={null}

91> {

92> "env": {

93> "CLAUDE_CODE_EXPERIMENTAL_CODE_MODE": "1"

94> }

95> }

96> ```

97>

98> O Claude Code [ignora esta variável nos arquivos de configuração de um projeto](https://code.claude.com/docs/pt/settings-reference.md#variables-claude-code-ignores-in-env), portanto um repositório que você clona não pode ativar o Code Mode por você.

99 

100**3. Confirme que você quer o Code Mode**

101 

102O Claude Code pede que você confirme antes da sua primeira sessão do Code Mode. Selecione **Yes, turn on Code Mode**. O Claude Code é reiniciado e mostra esta linha perto do topo da sessão:

103 

104```text theme={null}

105Code Mode (experimental) is on · this session can be resumed only with Code Mode on

106```

107 

108Se você vir uma linha diferente ou nenhuma, consulte [O Code Mode não inicia](#code-mode-doesnt-start).

109 

110**4. Dê a Claude uma tarefa com muitas chamadas de ferramenta**

111 

112Em um projeto que você conhece, envie um prompt como este:

113 

114```text theme={null}

115Read every Markdown file in this project and list the links that point to local files that don't exist.

116```

117 

118**5. Leia o código que Claude escreveu**

119 

120Pressione `Ctrl+O` e expanda uma linha **Code** para ver o JavaScript por trás das chamadas de ferramenta. Pressione `Ctrl+O` novamente para voltar à conversa.

121 

122> [!WARNING]

123>

124> Para retomar uma sessão do Code Mode depois, mantenha `CLAUDE_CODE_EXPERIMENTAL_CODE_MODE` definida como `1` ao executar `claude --continue` ou `claude --resume`. Com o Code Mode desativado, o Claude Code se recusa a retomar a sessão. Sessões que você iniciou sem o Code Mode são retomadas sem o Code Mode, mesmo com a variável definida.

125 

126### Desativar o Code Mode

127 

128Remova `CLAUDE_CODE_EXPERIMENTAL_CODE_MODE` do seu shell e de `~/.claude/settings.json` e, em seguida, inicie uma nova sessão. Você também pode manter a variável e alterar seu valor para `0` em qualquer um dos dois lugares. Com um `0` em um dos lugares, o Code Mode permanece desativado mesmo que você defina `1` no outro.

129 

130### Bloquear o Code Mode para sua organização

131 

132Adicione `CLAUDE_CODE_EXPERIMENTAL_CODE_MODE` com o valor `0` às suas [configurações gerenciadas](https://code.claude.com/docs/pt/managed-settings.md) para que ninguém na sua organização possa usar o Code Mode:

133 

134```json theme={null}

135{

136 "env": {

137 "CLAUDE_CODE_EXPERIMENTAL_CODE_MODE": "0"

138 }

139}

140```

141 

142Usuários que estão em uma sessão do Code Mode permanecem nela até sair ou reiniciar o Claude Code. Depois disso, seus usuários iniciam sem o Code Mode e não podem retomar suas sessões do Code Mode enquanto o `0` estiver em vigor. Você não pode ativar o Code Mode para seus usuários a partir das configurações gerenciadas.

143 

144## Permissões e código de longa duração

145 

146Seu modo de permissão decide como o código de Claude é verificado e se você pode conversar com Claude enquanto o código é executado.

147 

148### Verificações de permissão

149 

150Cada chamada de ferramenta que o código de Claude faz passa pelas suas [regras de permissão](https://code.claude.com/docs/pt/permissions.md) `deny` e `ask` e pelos seus [hooks `PreToolUse`](https://code.claude.com/docs/pt/hooks#pretooluse). Você não precisa alterar uma regra ou um matcher para uma ferramenta como `Bash`. Além das regras e dos hooks, um classificador revisa o código no modo auto, e você responde aos prompts nos modos que pedem confirmação:

151 

152* **[Modo auto](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode)**: o classificador revisa cada trecho de código antes de ser executado, não cada chamada de ferramenta. Ele não vê valores calculados em tempo de execução, como um caminho obtido da saída de uma pesquisa, portanto mantenha regras ou hooks para as chamadas que você precisa controlar. Você ainda pode [receber prompts quando um novo código começa enquanto um código anterior está em execução](#permission-prompt-with-a-countdown)

153* **Outros [modos de permissão](https://code.claude.com/docs/pt/permission-modes.md)**: o código começa sem revisão, e você recebe um prompt para cada chamada de ferramenta que solicitaria sua confirmação nesse modo

154 

155Para verificar o próprio código, escreva um hook `PreToolUse` que corresponda a `REPL`, a ferramenta que executa o código de Claude, e leia o JavaScript de `tool_input.code`.

156 

157> [!WARNING]

158>

159> As regras de Bash correspondem ao texto do comando, portanto Claude pode executar um comando negado [em uma forma que a regra não corresponde](https://code.claude.com/docs/pt/permissions.md#bash-rule-limits), com ou sem o Code Mode. Para limites que não dependem do texto do comando, consulte [sandboxing](https://code.claude.com/docs/pt/sandboxing.md).

160 

161### Código de longa duração

162 

163Enquanto o código executa um build ou teste demorado, Claude espera por ele ou o deixa continuar em segundo plano:

164 

165* **Esperando**: Claude responde depois que o código termina, e o código é interrompido após dez minutos, incluindo o tempo que você passa nos prompts de permissão

166* **Segundo plano**: você pode continuar conversando com Claude, e o código pode ser executado por até duas horas

167 

168Para código em segundo plano, inicie sua sessão no modo auto ou `bypassPermissions`. Se Claude ainda esperar, verifique seu modo atual e como você iniciou a sessão:

169 

170* **Você mudou para outro modo**: pressione `Shift+Tab` até voltar ao modo em que você começou

171* **Você começou em outro modo ou escolheu a sessão na lista do `claude --resume`**: se o [modo auto estiver disponível](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode) para você, saia e, em seguida, execute `claude --continue --permission-mode auto` com o Code Mode ativado

172* **Você passou nomes de ferramentas para `--tools`**: comece novamente no modo auto sem essa flag

173 

174## Solução de problemas

175 

176### O Code Mode não inicia

177 

178`Code Mode (experimental) isn't available` perto do topo da sessão significa que o Claude Code foi iniciado sem o Code Mode. O motivo aparece em seguida na mesma linha, e `/status` também o mostra. Encontre o motivo nesta tabela, faça a alteração e inicie uma nova sessão. Para um motivo que não está listado, verifique os [requisitos](#requirements).

179 

180| O motivo inclui | O que fazer |

181| :- | :- |

182| `it isn't open to your account yet` | Se sua versão for anterior à v2.1.323, [atualize](#try-code-mode). Caso contrário, verifique sua conexão de rede e comece novamente. Se o motivo persistir, tente novamente em outro dia |

183| `it only works with the Anthropic API` | Remova as configurações que encaminham requisições por meio de um provedor de nuvem, um gateway ou um `ANTHROPIC_BASE_URL` personalizado |

184| `it doesn't work with an API key helper` | Remova `apiKeyHelper`, `ANTHROPIC_AUTH_TOKEN` e qualquer cabeçalho `Authorization` ou `X-Api-Key` em `ANTHROPIC_CUSTOM_HEADERS`. Em seguida, faça login ou defina `ANTHROPIC_API_KEY` |

185| `it only works with Opus 5.5, Sonnet 5.5 and later models` | Comece com um [modelo compatível](#requirements), por exemplo com `--model opus`. Haiku 5.5 e Fable 5.2 também funcionam |

186| `it doesn't work in background jobs` | Comece em primeiro plano, sem `--remote-control` |

187| `it needs settings that Claude Code downloads from Anthropic` | Remova a definição da variável que [desativa a busca de feature flags](https://code.claude.com/docs/pt/env-vars.md#features-that-need-feature-flag-fetching), como `DISABLE_TELEMETRY` |

188| `OpenTelemetry is on` | Remova a definição de `CLAUDE_CODE_ENABLE_TELEMETRY` e `ENABLE_BETA_TRACING_DETAILED` se você puder trabalhar sem a [exportação do OpenTelemetry](https://code.claude.com/docs/pt/monitoring-usage.md) |

189| `it doesn't yet work with an installed mod` | Desative o [mod](https://code.claude.com/docs/pt/plugins/mods/overview.md) que verifica as chamadas de ferramenta |

190| `it can't be used together with agent teams yet` | Remova a definição de `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` |

191| `this launch's tool options` | Comece sem `--restricted`, adicione `REPL` a `--tools` e remova `REPL` de `--disallowedTools` e das suas regras `deny` |

192| `couldn't save your answer` | Torne `~/.claude.json` gravável |

193| `your organization's settings don't allow it` | Pergunte ao seu administrador sobre a [configuração gerenciada](#block-code-mode-for-your-organization) |

194 

195Se você não vir nenhuma linha sobre o Code Mode, execute `claude --version`. Se sua versão for anterior à v2.1.323, atualize. Em seguida, verifique se `CLAUDE_CODE_EXPERIMENTAL_CODE_MODE` está como `1` no seu shell ou nas suas configurações de usuário e remova qualquer `0` desses lugares e de qualquer arquivo `--settings`.

196 

197### Prompt de permissão com uma contagem regressiva

198 

199Quando Claude inicia mais código no modo auto enquanto um código anterior ainda está em execução, o código anterior perde a revisão do classificador. O Claude Code então pergunta a você sobre as chamadas restantes do código anterior que precisariam de revisão. Sem um IDE conectado, o prompt mostra uma contagem regressiva:

200 

201```text theme={null}

202Claude Code will automatically block this request in 1:59, to avoid holding up an unattended session

203```

204 

205Responda antes que a contagem regressiva termine. Caso contrário, essa chamada é recusada, e as chamadas posteriores que mostrariam uma contagem regressiva são recusadas sem prompt. Para ver os prompts novamente, envie uma mensagem a Claude.

206 

207### Chamada de ferramenta recusada por um hook

208 

209Se Claude relatar uma chamada de ferramenta recusada, peça a ele o texto do erro. Estes erros significam que um hook `PreToolUse` não deu uma decisão, o que recusa a chamada mesmo quando [`onFailure`](https://code.claude.com/docs/pt/hooks#block-the-action-when-a-hook-fails) não está definido:

210 

211* **`the hook failed`**: em uma chamada do código de Claude, seu hook não conseguiu iniciar, foi encerrado, saiu com 126, 127 ou um código acima de 128, ou retornou um erro HTTP ou uma saída inválida. Corrija o hook

212* **`the hook did not finish`**: seu hook atingiu o timeout em uma chamada do código de Claude, ou em qualquer outra chamada de ferramenta depois que Claude executou código na sessão. Aumente o [`timeout`](https://code.claude.com/docs/pt/hooks#common-fields) do hook

213 

214Para permitir que as chamadas prossigam quando um hook `command` ou `http` falha ou atinge o timeout, defina `"onFailure": "continue"` nele. Se um hook `command` sair com um código comum, como 1, a chamada prossegue, a menos que você defina `"onFailure": "block"`.

215 

216### Saída de código retida por um hook

217 

218Se Claude relatar o motivo de bloqueio de um hook onde você esperava a saída do código de Claude, verifique seus hooks [`UserPromptSubmit`](https://code.claude.com/docs/pt/hooks#userpromptsubmit). Quando [o código pode ser executado em segundo plano](#long-running-code), os hooks `command`, `http` e `mcp_tool` nesse evento também são executados sobre a saída do código. Para deixar a saída passar, altere o hook para que ele não bloqueie quando `source` na sua entrada for `poll_event`.

219 

220## Recursos relacionados

221 

222* [Modos de permissão](https://code.claude.com/docs/pt/permission-modes.md): compare o modo auto com os modos que pedem sua confirmação

223* [Referência de hooks](https://code.claude.com/docs/pt/hooks.md): escreva hooks `PreToolUse` e `UserPromptSubmit`

224* [Configurações gerenciadas](https://code.claude.com/docs/pt/managed-settings.md): aplique uma configuração em toda uma organização

commands.md +3 −5

Details

35A tabela abaixo lista todos os comandos incluídos no Claude Code. A maioria são comandos integrados cujo comportamento é codificado na CLI. Dois tipos de entradas são marcados:35A tabela abaixo lista todos os comandos incluídos no Claude Code. A maioria são comandos integrados cujo comportamento é codificado na CLI. Dois tipos de entradas são marcados:

36 36 

37* **[Skill](https://code.claude.com/docs/pt/skills.md#bundled-skills)**: uma skill incluída. Funciona como skills que você escreve: um prompt entregue ao Claude.37* **[Skill](https://code.claude.com/docs/pt/skills.md#bundled-skills)**: uma skill incluída. Funciona como skills que você escreve: um prompt entregue ao Claude.

38 * `/verify` é executado apenas quando você o invoca.

39* **[Workflow](https://code.claude.com/docs/pt/workflows.md#bundled-workflows)**: um [workflow dinâmico](https://code.claude.com/docs/pt/workflows.md) incluído que distribui trabalho entre muitos subagentes e é executado em segundo plano.38* **[Workflow](https://code.claude.com/docs/pt/workflows.md#bundled-workflows)**: um [workflow dinâmico](https://code.claude.com/docs/pt/workflows.md) incluído que distribui trabalho entre muitos subagentes e é executado em segundo plano.

40 * `/deep-research` é executado apenas quando você o invoca.

41 39 

42Para adicionar seus próprios comandos, consulte [skills](https://code.claude.com/docs/pt/skills.md).40Para adicionar seus próprios comandos, consulte [skills](https://code.claude.com/docs/pt/skills.md).

43 41 


149| `/stats` | Alias para `/usage`. Abre na aba Stats |147| `/stats` | Alias para `/usage`. Abre na aba Stats |

150| `/status` | Abra a interface de Configurações na aba Status, mostrando versão, modelo, conta e conectividade. Uma linha `Session kind` lê `background job · attached` ou `background job · unattended` em uma [sessão em segundo plano](https://code.claude.com/docs/pt/agent-view.md), dependendo se um terminal está anexado, e `interactive` em qualquer outra sessão. Antes da v2.1.221, `/status` não mostrava esta linha. Funciona enquanto Claude está respondendo |148| `/status` | Abra a interface de Configurações na aba Status, mostrando versão, modelo, conta e conectividade. Uma linha `Session kind` lê `background job · attached` ou `background job · unattended` em uma [sessão em segundo plano](https://code.claude.com/docs/pt/agent-view.md), dependendo se um terminal está anexado, e `interactive` em qualquer outra sessão. Antes da v2.1.221, `/status` não mostrava esta linha. Funciona enquanto Claude está respondendo |

151| `/statusline` | Configure a [linha de status](https://code.claude.com/docs/pt/statusline.md) do Claude Code. Descreva o que você quer, ou execute sem argumentos para auto-configurar a partir do seu prompt do shell |149| `/statusline` | Configure a [linha de status](https://code.claude.com/docs/pt/statusline.md) do Claude Code. Descreva o que você quer, ou execute sem argumentos para auto-configurar a partir do seu prompt do shell |

152| `/stickers` | Peça adesivos Claude Code |150| `/stickers` | Verifique a disponibilidade de adesivos do Claude Code |

153| `/stop` | Pare a [sessão em segundo plano](https://code.claude.com/docs/pt/agent-view.md) à qual você está anexado, ou aquela para a qual você o envia como uma [resposta de peek](https://code.claude.com/docs/pt/agent-view.md#peek-and-reply); a transcrição e qualquer worktree são mantidos. Para desanexar sem parar, use `/exit` ou pressione `←` |151| `/stop` | Pare a [sessão em segundo plano](https://code.claude.com/docs/pt/agent-view.md) à qual você está anexado, ou aquela para a qual você o envia como uma [resposta de peek](https://code.claude.com/docs/pt/agent-view.md#peek-and-reply); a transcrição e qualquer worktree são mantidos. Para desanexar sem parar, use `/exit` ou pressione `←` |

154| `/subtask <task>` | Inicie um [subagente bifurcado](https://code.claude.com/docs/pt/sub-agents.md#fork-the-current-conversation): um subagente em segundo plano que herda a conversa completa e trabalha na tarefa enquanto você continua trabalhando. Seu resultado retorna para esta conversa quando termina. Para copiar a conversa em uma sessão em segundo plano separada, use `/fork`. Quando [a visualização de agente está desativada](https://code.claude.com/docs/pt/agent-view.md#turn-off-agent-view), `/subtask` não está disponível e `/fork` inicia o subagente bifurcado em vez disso |152| `/subtask <task>` | Inicie um [subagente bifurcado](https://code.claude.com/docs/pt/sub-agents.md#fork-the-current-conversation): um subagente em segundo plano que herda a conversa completa e trabalha na tarefa enquanto você continua trabalhando. Seu resultado retorna para esta conversa quando termina. Para copiar a conversa em uma sessão em segundo plano separada, use `/fork`. Quando [a visualização de agente está desativada](https://code.claude.com/docs/pt/agent-view.md#turn-off-agent-view), `/subtask` não está disponível e `/fork` inicia o subagente bifurcado em vez disso |

155| `/tasks` | Veja e gerencie trabalho em segundo plano na sessão atual, incluindo subagentes que terminaram. Também disponível como `/bashes` |153| `/tasks` | Veja e gerencie trabalho em segundo plano na sessão atual, incluindo subagentes que terminaram. Também disponível como `/bashes` |


161| `/ultraplan <prompt>` | Removido. Use o [modo de planejamento](https://code.claude.com/docs/pt/permission-modes.md#analyze-before-you-edit-with-plan-mode). Anteriormente enviava uma tarefa de planejamento para uma [sessão na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md) para revisão no seu navegador |159| `/ultraplan <prompt>` | Removido. Use o [modo de planejamento](https://code.claude.com/docs/pt/permission-modes.md#analyze-before-you-edit-with-plan-mode). Anteriormente enviava uma tarefa de planejamento para uma [sessão na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md) para revisão no seu navegador |

162| `/ultrareview [PR or branch]` | Execute uma revisão de código profunda e multi-agente em um sandbox na nuvem com [ultrareview](https://code.claude.com/docs/pt/ultrareview.md). Passe uma referência de PR para revisar esse pull request, ou um branch base ou commit para alterar a base de comparação. A invocação preferida é `/code-review ultra`, e `/ultrareview` é um alias. Inclui 3 execuções gratuitas em Pro, Max e Ultra, depois requer [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |160| `/ultrareview [PR or branch]` | Execute uma revisão de código profunda e multi-agente em um sandbox na nuvem com [ultrareview](https://code.claude.com/docs/pt/ultrareview.md). Passe uma referência de PR para revisar esse pull request, ou um branch base ou commit para alterar a base de comparação. A invocação preferida é `/code-review ultra`, e `/ultrareview` é um alias. Inclui 3 execuções gratuitas em Pro, Max e Ultra, depois requer [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

163| `/update-config [request]` | **[Skill](https://code.claude.com/docs/pt/skills.md#bundled-skills).** Descreva uma mudança de configurações, como permitir um comando, definir uma variável de ambiente ou adicionar um [hook](https://code.claude.com/docs/pt/hooks.md), e Claude edita o arquivo [`settings.json`](https://code.claude.com/docs/pt/settings) correspondente. Para opções como tema e modelo, use `/config` |161| `/update-config [request]` | **[Skill](https://code.claude.com/docs/pt/skills.md#bundled-skills).** Descreva uma mudança de configurações, como permitir um comando, definir uma variável de ambiente ou adicionar um [hook](https://code.claude.com/docs/pt/hooks.md), e Claude edita o arquivo [`settings.json`](https://code.claude.com/docs/pt/settings) correspondente. Para opções como tema e modelo, use `/config` |

164| `/upgrade` | Abra a página de atualização no seu navegador para mudar para um nível de plano superior. Quando o navegador falha em abrir, o comando mostra um prompt de login sem imprimir a URL |162| `/upgrade` | Abra a página de atualização no seu navegador para mudar para um nível de plano superior. Quando nenhum navegador pode abrir a página, por exemplo sobre SSH, o comando imprime a URL da página acima do seu prompt de login. Imprimir a URL requer Claude Code v2.1.323 ou posterior |

165| `/usage` | Mostre custo de sessão, limites de uso do plano e estatísticas de atividade. Em um plano Pro, Max, Ultra, Team ou Enterprise, inclui um [detalhamento do que conta contra seus limites de plano](https://code.claude.com/docs/pt/costs.md#plan-usage-breakdown). Atrás de um gateway de aplicativos Claude que rastreia gastos, mostra [seus gastos através do gateway](https://code.claude.com/docs/pt/claude-apps-gateway-spend-limits.md#usage-warnings-in-claude-code). `/cost` e `/stats` são aliases |163| `/usage` | Mostre custo de sessão, limites de uso do plano e estatísticas de atividade. Em um plano Pro, Max, Ultra, Team ou Enterprise, inclui um [detalhamento do que conta contra seus limites de plano](https://code.claude.com/docs/pt/costs.md#plan-usage-breakdown). Atrás de um gateway de aplicativos Claude que rastreia gastos, mostra [seus gastos através do gateway](https://code.claude.com/docs/pt/claude-apps-gateway-spend-limits.md#usage-warnings-in-claude-code). `/cost` e `/stats` são aliases |

166| `/usage-credits` | Configure créditos de uso, ou solicite-os do seu administrador, quando você atinge um limite. Abre suas [configurações de faturamento de créditos de uso](https://code.claude.com/docs/pt/costs.md#add-usage-credits-to-your-subscription) no navegador, exceto que membros de Team e Enterprise sem acesso de faturamento enviam uma solicitação de créditos de uso para seu administrador a partir da CLI, após confirmar em um diálogo que a solicitação notifica seus administradores. Quando nenhum navegador pode abrir a página de faturamento, por exemplo sobre SSH, o comando imprime a URL para visitar; isso requer Claude Code v2.1.205 ou posterior, e versões anteriores não mostravam nada nesse caso. Anteriormente `/extra-usage` |164| `/usage-credits` | Configure créditos de uso, ou solicite-os do seu administrador, quando você atinge um limite. Abre suas [configurações de faturamento de créditos de uso](https://code.claude.com/docs/pt/costs.md#add-usage-credits-to-your-subscription) no navegador. Membros de Team e Enterprise sem acesso de faturamento, em vez disso, enviam uma solicitação de créditos de uso para seu administrador a partir da CLI. Em um terminal onde nenhum navegador pode abrir a página, por exemplo sobre SSH, o comando imprime a URL. Imprimi-la requer Claude Code v2.1.205 ou posterior. Anteriormente `/extra-usage` |

167| `/verify` | **[Skill](https://code.claude.com/docs/pt/skills.md#bundled-skills).** Confirme que uma mudança de código faz o que deveria fazendo o build do aplicativo do seu projeto, executando-o e observando o resultado, em vez de confiar em testes ou verificações de tipo. Consulte [Execute e verifique seu aplicativo](https://code.claude.com/docs/pt/skills.md#run-and-verify-your-app) |165| `/verify` | **[Skill](https://code.claude.com/docs/pt/skills.md#bundled-skills).** Confirme que uma mudança de código faz o que deveria fazendo o build do aplicativo do seu projeto, executando-o e observando o resultado, em vez de confiar em testes ou verificações de tipo. Consulte [Execute e verifique seu aplicativo](https://code.claude.com/docs/pt/skills.md#run-and-verify-your-app) |

168| `/vim` | Removido na v2.1.92. Para alternar entre modos de edição Vim e Normal, use `/config` → Editor mode |166| `/vim` | Removido na v2.1.92. Para alternar entre modos de edição Vim e Normal, use `/config` → Editor mode |

169| `/voice [hold\|tap\|off]` | Alterne [ditado por voz](https://code.claude.com/docs/pt/voice-dictation.md), ou ative-o em um modo específico. Requer uma conta Claude.ai |167| `/voice [hold\|tap\|off]` | Alterne [ditado por voz](https://code.claude.com/docs/pt/voice-dictation.md), ou ative-o em um modo específico. Requer uma conta Claude.ai |

desktop.md +0 −4

Details

2261 2261 

2262O aplicativo Desktop carrega MCP servers de `claude_desktop_config.json` em sessões da aba Code local, juntamente com servers de `~/.claude.json` e `.mcp.json`. Um server definido em `claude_desktop_config.json` está disponível tanto na superfície de chat Desktop quanto em sessões da aba Code local.2262O aplicativo Desktop carrega MCP servers de `claude_desktop_config.json` em sessões da aba Code local, juntamente com servers de `~/.claude.json` e `.mcp.json`. Um server definido em `claude_desktop_config.json` está disponível tanto na superfície de chat Desktop quanto em sessões da aba Code local.

2263 2263 

2264Se você definir o mesmo nome de server em `claude_desktop_config.json` e em `~/.claude.json` ou `.mcp.json`, a aba Code em sessões locais se conecta uma vez e usa a definição de `claude_desktop_config.json`.

2265 

2266O aplicativo também re-entrega stdio servers de `~/.claude.json` para o CLI incorporado em sessões locais. Quando o nível superior de `~/.claude.json` (escopo de usuário) e `.mcp.json` definem o mesmo nome de stdio server, a aba Code usa a definição de `~/.claude.json`, diferindo da [hierarquia de escopo](https://code.claude.com/docs/pt/mcp.md#scope-hierarchy-and-precedence) do CLI.

2267 

2268> [!NOTE]2264> [!NOTE]

2269>2265>

2270> O CLI autônomo não lê `claude_desktop_config.json`. Em macOS e WSL, execute `claude mcp add-from-claude-desktop` para copiar esses servers em `~/.claude.json`. Veja [Importar MCP servers do Claude Desktop](https://code.claude.com/docs/pt/mcp.md#import-mcp-servers-from-claude-desktop) para o fluxo de importação e opções de escopo.2266> O CLI autônomo não lê `claude_desktop_config.json`. Em macOS e WSL, execute `claude mcp add-from-claude-desktop` para copiar esses servers em `~/.claude.json`. Veja [Importar MCP servers do Claude Desktop](https://code.claude.com/docs/pt/mcp.md#import-mcp-servers-from-claude-desktop) para o fluxo de importação e opções de escopo.

Details

71 71 

72Inicie **Claude** a partir do seu inicializador de aplicativos, ou execute `claude-desktop` a partir de um terminal, e faça login com sua conta Anthropic.72Inicie **Claude** a partir do seu inicializador de aplicativos, ou execute `claude-desktop` a partir de um terminal, e faça login com sua conta Anthropic.

73 73 

74O aplicativo Linux faz login da mesma forma que no macOS e Windows: com uma assinatura claude.ai, ou através do SSO da sua organização. Para autenticação com chave de API, use a [CLI](https://code.claude.com/docs/pt/quickstart.md). Para usar o Desktop com Amazon Bedrock, a Agent Platform do Google Cloud, Microsoft Foundry ou um gateway de LLM, consulte [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview). Para servidores proxy e autoridades de certificação personalizadas nessas implantações, consulte [configuração de rede](https://code.claude.com/docs/pt/network-config.md).74O aplicativo Linux faz login da mesma forma que no macOS e Windows: com uma assinatura claude.ai, ou através do SSO da sua organização. Para usar o Desktop com uma chave de API do Claude, Amazon Bedrock, a Agent Platform do Google Cloud, Microsoft Foundry ou um gateway de LLM, consulte [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview). Para servidores proxy e autoridades de certificação personalizadas nessas implantações, consulte [configuração de rede](https://code.claude.com/docs/pt/network-config.md).

75 75 

76### Instalar a partir de um arquivo baixado76### Instalar a partir de um arquivo baixado

77 77 

Details

83 83 

84**8. Escolha o modo de permissão e o modelo**84**8. Escolha o modo de permissão e o modelo**

85 85 

86Na barra de ferramentas da caixa de instruções, selecione um [modo de permissão](#permissions-for-scheduled-tasks) e um modelo. Se você os deixar inalterados, as execuções usam suas configurações do Claude Code e o modelo padrão.86Na barra de ferramentas da caixa de instruções, selecione um [modo de permissão](#permissions-for-scheduled-tasks) e um modelo.

87 

88* **Modo de permissão**: se você o deixar inalterado, as execuções usam suas configurações do Claude Code.

89* **Modelo**: se o menu de modelos mostrar **Default · Set by admin** e você não escolher outro modelo, as execuções usam o modelo que sua organização definiu nas [configurações gerenciadas](https://code.claude.com/docs/pt/managed-settings.md). Uma [execução de recuperação](#missed-runs) que começa quando o aplicativo é aberto pode usar o [padrão de tempo de execução da sua conta](https://code.claude.com/docs/pt/model-config.md#default-model-setting) em vez disso.

87 90 

88**9. Crie a tarefa**91**9. Crie a tarefa**

89 92 

90Clique em **Create**. Se você ainda não confiou na pasta, o Desktop solicita que você confie nela neste momento. A página de detalhes da tarefa é aberta.93Clique em **Create**. Se você ainda não confiou na pasta, o Desktop solicita que você confie nela neste momento. A página de detalhes da tarefa é aberta.

91 94 

95Para ver qual modelo **Default · Set by admin** representa, clique em **Run now** na página de detalhes para executar a tarefa imediatamente. Em seguida, [abra a sessão da execução](#find-a-runs-session), onde a linha abaixo da caixa de prompt mostra o nome do modelo.

96 

92Na página de detalhes, clique no ícone de lápis para abrir o [formulário **Edit**](#manage-scheduled-tasks). Lá você pode alterar a **Description** que o Desktop preencheu a partir das suas instruções, selecionar **Worktree** ou mudar o agendamento para **Manual** ou **Custom**.97Na página de detalhes, clique no ícone de lápis para abrir o [formulário **Edit**](#manage-scheduled-tasks). Lá você pode alterar a **Description** que o Desktop preencheu a partir das suas instruções, selecionar **Worktree** ou mudar o agendamento para **Manual** ou **Custom**.

93 98 

94Você também pode criar uma tarefa descrevendo o que deseja em qualquer sessão. Por exemplo, "configurar uma revisão de código diária que é executada todos os dias de manhã às 9h" cria uma tarefa recorrente. Uma solicitação como "me lembre às 15h amanhã para verificar o deploy" cria uma tarefa única que se desativa após ser executada.99Você também pode criar uma tarefa descrevendo o que deseja em qualquer sessão. Por exemplo, "configurar uma revisão de código diária que é executada todos os dias de manhã às 9h" cria uma tarefa recorrente. Uma solicitação como "me lembre às 15h amanhã para verificar o deploy" cria uma tarefa única que se desativa após ser executada.


181 186 

182Para permitir que uma tarefa altere seu próprio agendamento ou prompt com a ferramenta MCP `update_scheduled_task`, clique em **Run now** e aprove a chamada a cada vez.187Para permitir que uma tarefa altere seu próprio agendamento ou prompt com a ferramenta MCP `update_scheduled_task`, clique em **Run now** e aprove a chamada a cada vez.

183 188 

184Para editar o prompt de uma tarefa no disco, abra `~/.claude/scheduled-tasks/<task-name>/SKILL.md` (ou em [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/pt/env-vars) se definido). O arquivo usa frontmatter YAML para `name` e `description`, com o prompt como corpo. As alterações entram em vigor na próxima execução. Schedule, pasta, modelo e estado habilitado não estão neste arquivo: altere-os através do formulário Edit ou peça ao Claude.189Para editar o prompt de uma tarefa no disco, abra `~/.claude/scheduled-tasks/<task-name>/SKILL.md` (ou em [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/pt/env-vars) se definido). O arquivo usa frontmatter YAML para `name` e `description`, com o prompt como corpo. As alterações entram em vigor na próxima execução. Agendamento, pasta e estado habilitado não estão neste arquivo: altere-os através do formulário Edit ou peça ao Claude.

185 190 

186## Recursos relacionados191## Recursos relacionados

187 192 

env-vars.md +7 −3

Details

211| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Sobrescreve a [conexão automática com o IDE](https://code.claude.com/docs/pt/vs-code.md). Por padrão, o Claude Code se conecta automaticamente quando iniciado dentro do terminal integrado de um IDE compatível. Defina como `false` para impedir isso. Defina como `true` para forçar uma tentativa de conexão quando a detecção automática falhar, como quando o tmux oculta o terminal pai. Tem precedência sobre a configuração global [`autoConnectIde`](https://code.claude.com/docs/pt/settings-reference#autoconnectide) |211| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Sobrescreve a [conexão automática com o IDE](https://code.claude.com/docs/pt/vs-code.md). Por padrão, o Claude Code se conecta automaticamente quando iniciado dentro do terminal integrado de um IDE compatível. Defina como `false` para impedir isso. Defina como `true` para forçar uma tentativa de conexão quando a detecção automática falhar, como quando o tmux oculta o terminal pai. Tem precedência sobre a configuração global [`autoConnectIde`](https://code.claude.com/docs/pt/settings-reference#autoconnectide) |

212| `CLAUDE_CODE_AUTO_MODE_MODEL` | Define o modelo para as requisições do classificador que o Claude Code envia no [modo auto](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode). Use um ID de modelo completo, como `claude-sonnet-4-6`. Para os casos em que o Claude Code a ignora, consulte [Escolher o modelo do classificador](https://code.claude.com/docs/pt/permission-modes.md#choose-the-classifier-model). Requer Claude Code v2.1.302 ou posterior |212| `CLAUDE_CODE_AUTO_MODE_MODEL` | Define o modelo para as requisições do classificador que o Claude Code envia no [modo auto](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode). Use um ID de modelo completo, como `claude-sonnet-4-6`. Para os casos em que o Claude Code a ignora, consulte [Escolher o modelo do classificador](https://code.claude.com/docs/pt/permission-modes.md#choose-the-classifier-model). Requer Claude Code v2.1.302 ou posterior |

213| `CLAUDE_CODE_AUTO_MODE_SERVER` | Controla se o Claude Code pede ao servidor para [revisar ações do modo auto](https://code.claude.com/docs/pt/permission-modes.md#server-side-classifier-review). Defina como `0` para usar as próprias requisições do classificador do Claude Code em vez disso. Em uma conexão direta com a Anthropic API, requer v2.1.281 ou posterior. A seção vinculada lista quais sessões consultam o servidor quando a variável não está definida, e a partir de qual versão. Requer Claude Code v2.1.271 ou posterior |213| `CLAUDE_CODE_AUTO_MODE_SERVER` | Controla se o Claude Code pede ao servidor para [revisar ações do modo auto](https://code.claude.com/docs/pt/permission-modes.md#server-side-classifier-review). Defina como `0` para usar as próprias requisições do classificador do Claude Code em vez disso. Em uma conexão direta com a Anthropic API, requer v2.1.281 ou posterior. A seção vinculada lista quais sessões consultam o servidor quando a variável não está definida, e a partir de qual versão. Requer Claude Code v2.1.271 ou posterior |

214| `CLAUDE_CODE_AUTOMOUNT_ROOTS` | Pastas raiz de automontagem que o Claude Code deve ignorar ao procurar, nas pastas acima do seu diretório de trabalho, arquivos como `CLAUDE.md`, skills e `.mcp.json`. Defina-a quando essas buscas ficarem aguardando seu automontador. Separe vários caminhos com `:` no Unix ou `;` no Windows, e informe cada um como um caminho absoluto sem nenhum link simbólico. Requer o Claude Code v2.1.323 ou posterior |

214| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Tempo em milissegundos que o Claude Code espera até que a cadeia de provedores de credenciais padrão da AWS produza credenciais antes que a requisição falhe com [`AWS default-chain credential resolve timed out`](https://code.claude.com/docs/pt/errors#aws-default-chain-credential-resolve-timed-out) (padrão: `60000`). Aumente-o quando uma etapa da sua cadeia legitimamente precisar de mais tempo, como um login SSO baseado em navegador com MFA por meio de um wrapper como `aws-vault`. Aplica-se ao Amazon Bedrock, ao [Claude Platform on AWS](https://code.claude.com/docs/pt/claude-platform-on-aws.md) e ao [endpoint Mantle](https://code.claude.com/docs/pt/amazon-bedrock.md#use-the-mantle-endpoint). Consulte [cache de credenciais e timeout de resolução](https://code.claude.com/docs/pt/amazon-bedrock.md#credential-caching-and-resolution-timeout). Requer Claude Code v2.1.207 ou posterior |215| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Tempo em milissegundos que o Claude Code espera até que a cadeia de provedores de credenciais padrão da AWS produza credenciais antes que a requisição falhe com [`AWS default-chain credential resolve timed out`](https://code.claude.com/docs/pt/errors#aws-default-chain-credential-resolve-timed-out) (padrão: `60000`). Aumente-o quando uma etapa da sua cadeia legitimamente precisar de mais tempo, como um login SSO baseado em navegador com MFA por meio de um wrapper como `aws-vault`. Aplica-se ao Amazon Bedrock, ao [Claude Platform on AWS](https://code.claude.com/docs/pt/claude-platform-on-aws.md) e ao [endpoint Mantle](https://code.claude.com/docs/pt/amazon-bedrock.md#use-the-mantle-endpoint). Consulte [cache de credenciais e timeout de resolução](https://code.claude.com/docs/pt/amazon-bedrock.md#credential-caching-and-resolution-timeout). Requer Claude Code v2.1.207 ou posterior |

215| `CLAUDE_CODE_BASH_EDIT_DIFF` | Defina como `0` para desativar o [diff dos arquivos que foram alterados enquanto um comando Bash era executado](https://code.claude.com/docs/pt/hooks.md#bash), ou `1` para registrá-lo em todos os modos de permissão. Tem precedência sobre a configuração [`bashEditDiffEnabled`](https://code.claude.com/docs/pt/settings-reference#basheditdiffenabled). Requer Claude Code v2.1.269 ou posterior |216| `CLAUDE_CODE_BASH_EDIT_DIFF` | Defina como `0` para desativar o [diff dos arquivos que foram alterados enquanto um comando Bash era executado](https://code.claude.com/docs/pt/hooks.md#bash), ou `1` para registrá-lo em todos os modos de permissão. Tem precedência sobre a configuração [`bashEditDiffEnabled`](https://code.claude.com/docs/pt/settings-reference#basheditdiffenabled). Requer Claude Code v2.1.269 ou posterior |

216| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Defina como `0` para fazer uma sessão não interativa relatar um status ocioso ao seu host ao final de cada turno, mesmo enquanto o trabalho em segundo plano ainda estiver em execução. Por padrão, a sessão continua relatando um status de execução após o final do turno enquanto trabalhos em segundo plano, como um agente em segundo plano ou uma execução de [workflow](https://code.claude.com/docs/pt/workflows.md), ainda estiverem ativos. Isso impede que um host que observa o status, como uma lista de sessões remotas, anuncie que o Claude está aguardando sua entrada no meio do trabalho. Comandos de shell em segundo plano, como um servidor de desenvolvimento, não mantêm o status de execução. O padrão de status de execução e a desativação com `0` requerem Claude Code v2.1.269 ou posterior; em versões anteriores, defina `1` para manter o status de execução |217| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Defina como `0` para fazer uma sessão não interativa relatar um status ocioso ao seu host ao final de cada turno, mesmo enquanto o trabalho em segundo plano ainda estiver em execução. Por padrão, a sessão continua relatando um status de execução após o final do turno enquanto trabalhos em segundo plano, como um agente em segundo plano ou uma execução de [workflow](https://code.claude.com/docs/pt/workflows.md), ainda estiverem ativos. Isso impede que um host que observa o status, como uma lista de sessões remotas, anuncie que o Claude está aguardando sua entrada no meio do trabalho. Comandos de shell em segundo plano, como um servidor de desenvolvimento, não mantêm o status de execução. O padrão de status de execução e a desativação com `0` requerem Claude Code v2.1.269 ou posterior; em versões anteriores, defina `1` para manter o status de execução |


298| `CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS` | Defina como `1` para [executar comandos `rm` perigosos sem prompt](https://code.claude.com/docs/pt/permission-modes#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode) no modo `bypassPermissions`, o que remove um prompt de segurança para exclusões destrutivas. A seção vinculada lista onde ela não tem efeito. [Defina-a no ambiente que inicia o Claude Code](#set-variables-in-your-shell), porque o Claude Code [a ignora em um bloco `env` de configurações](https://code.claude.com/docs/pt/settings-reference#variables-claude-code-ignores-in-env). Requer Claude Code v2.1.311 ou posterior |299| `CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS` | Defina como `1` para [executar comandos `rm` perigosos sem prompt](https://code.claude.com/docs/pt/permission-modes#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode) no modo `bypassPermissions`, o que remove um prompt de segurança para exclusões destrutivas. A seção vinculada lista onde ela não tem efeito. [Defina-a no ambiente que inicia o Claude Code](#set-variables-in-your-shell), porque o Claude Code [a ignora em um bloco `env` de configurações](https://code.claude.com/docs/pt/settings-reference#variables-claude-code-ignores-in-env). Requer Claude Code v2.1.311 ou posterior |

299| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Tempo em milissegundos a aguardar depois que o loop de consultas fica ocioso antes de sair automaticamente. Útil para fluxos de trabalho automatizados e scripts que usam o modo SDK |300| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Tempo em milissegundos a aguardar depois que o loop de consultas fica ocioso antes de sair automaticamente. Útil para fluxos de trabalho automatizados e scripts que usam o modo SDK |

300| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Defina como `1` para ativar as [equipes de agentes](https://code.claude.com/docs/pt/agent-teams.md). As equipes de agentes são experimentais e ficam desativadas por padrão |301| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Defina como `1` para ativar as [equipes de agentes](https://code.claude.com/docs/pt/agent-teams.md). As equipes de agentes são experimentais e ficam desativadas por padrão |

302| `CLAUDE_CODE_EXPERIMENTAL_CODE_MODE` | Defina como `1` para iniciar sessões no [Code Mode](https://code.claude.com/docs/pt/code-mode.md), um recurso experimental. Defina como `0` para mantê-lo desativado, ou nas configurações gerenciadas para [bloqueá-lo para uma organização](https://code.claude.com/docs/pt/code-mode.md#block-code-mode-for-your-organization). A variável [não é considerada em todos os arquivos de configuração](https://code.claude.com/docs/pt/settings-reference.md#variables-claude-code-ignores-in-env). Consulte os [requisitos de versão e de conta](https://code.claude.com/docs/pt/code-mode.md#requirements) |

301| `CLAUDE_CODE_EXTRA_BODY` | Objeto JSON a ser mesclado no nível superior dos corpos das requisições ao modelo, exceto em algumas requisições fora da conversa, como verificações de `/model`. Útil para passar parâmetros específicos do provedor que o Claude Code não expõe diretamente. Um valor exportado no seu shell também se aplica às [sessões em segundo plano](https://code.claude.com/docs/pt/agent-view.md) que você despacha com `claude agents` ou `--bg`. Antes da v2.1.206, as sessões em segundo plano ignoravam um valor exportado pelo shell e usavam qualquer cópia que o processo supervisor em segundo plano tivesse herdado |303| `CLAUDE_CODE_EXTRA_BODY` | Objeto JSON a ser mesclado no nível superior dos corpos das requisições ao modelo, exceto em algumas requisições fora da conversa, como verificações de `/model`. Útil para passar parâmetros específicos do provedor que o Claude Code não expõe diretamente. Um valor exportado no seu shell também se aplica às [sessões em segundo plano](https://code.claude.com/docs/pt/agent-view.md) que você despacha com `claude agents` ou `--bg`. Antes da v2.1.206, as sessões em segundo plano ignoravam um valor exportado pelo shell e usavam qualquer cópia que o processo supervisor em segundo plano tivesse herdado |

302| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Sobrescreve o limite de tokens padrão para [leituras de arquivos](https://code.claude.com/docs/pt/tools-reference.md#large-files), que é de 25.000 tokens. Útil quando você precisa ler arquivos maiores por completo. Uma leitura que o Claude faz com o parâmetro `allow_large` pode ultrapassar este limite quando a janela de contexto tem espaço |304| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Sobrescreve o limite de tokens padrão para [leituras de arquivos](https://code.claude.com/docs/pt/tools-reference.md#large-files), que é de 25.000 tokens. Útil quando você precisa ler arquivos maiores por completo. Uma leitura que o Claude faz com o parâmetro `allow_large` pode ultrapassar este limite quando a janela de contexto tem espaço |

303| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Defina como `1` para forçar a persistência da transcrição, o histórico de prompts e o registro em `claude agents` mesmo quando este `claude` foi iniciado de dentro de outra sessão do Claude Code. Use quando um valor `CLAUDE_CODE_CHILD_SESSION` herdado, por exemplo de uma sessão `screen` ou de um inicializador em segundo plano iniciado pela primeira vez pela ferramenta Bash do Claude Code, faz com que uma sessão de nível superior legítima seja classificada incorretamente como aninhada. A partir da v2.1.178, o Claude Code detecta o caso do tmux automaticamente e ignora o marcador herdado, então o tmux não precisa mais desta variável. Também respeitada na v2.1.169 e anteriores; não tem efeito na v2.1.170 e v2.1.171, em que a detecção de sessão aninhada que ela sobrescreve foi removida |305| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Defina como `1` para forçar a persistência da transcrição, o histórico de prompts e o registro em `claude agents` mesmo quando este `claude` foi iniciado de dentro de outra sessão do Claude Code. Use quando um valor `CLAUDE_CODE_CHILD_SESSION` herdado, por exemplo de uma sessão `screen` ou de um inicializador em segundo plano iniciado pela primeira vez pela ferramenta Bash do Claude Code, faz com que uma sessão de nível superior legítima seja classificada incorretamente como aninhada. A partir da v2.1.178, o Claude Code detecta o caso do tmux automaticamente e ignora o marcador herdado, então o tmux não precisa mais desta variável. Também respeitada na v2.1.169 e anteriores; não tem efeito na v2.1.170 e v2.1.171, em que a detecção de sessão aninhada que ela sobrescreve foi removida |


348| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Timeout em milissegundos para descarregar spans pendentes do OpenTelemetry (padrão: 5000). Consulte [Monitoramento](https://code.claude.com/docs/pt/monitoring-usage.md) |350| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Timeout em milissegundos para descarregar spans pendentes do OpenTelemetry (padrão: 5000). Consulte [Monitoramento](https://code.claude.com/docs/pt/monitoring-usage.md) |

349| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervalo para atualizar os cabeçalhos dinâmicos do OpenTelemetry em milissegundos (padrão: 1740000 / 29 minutos). Consulte [Cabeçalhos dinâmicos](https://code.claude.com/docs/pt/monitoring-usage.md#dynamic-headers) |351| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervalo para atualizar os cabeçalhos dinâmicos do OpenTelemetry em milissegundos (padrão: 1740000 / 29 minutos). Consulte [Cabeçalhos dinâmicos](https://code.claude.com/docs/pt/monitoring-usage.md#dynamic-headers) |

350| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Timeout em milissegundos para o exportador do OpenTelemetry terminar no encerramento (padrão: 2000). Aumente se métricas forem descartadas na saída. Consulte [Monitoramento](https://code.claude.com/docs/pt/monitoring-usage.md) |352| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Timeout em milissegundos para o exportador do OpenTelemetry terminar no encerramento (padrão: 2000). Aumente se métricas forem descartadas na saída. Consulte [Monitoramento](https://code.claude.com/docs/pt/monitoring-usage.md) |

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

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

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

354| `CLAUDE_CODE_PERFORCE_MODE` | Defina como `1` para ativar a proteção de gravação compatível com Perforce. Quando definida, Edit, Write e NotebookEdit falham com uma dica `p4 edit <file>` se o arquivo de destino não tiver o bit de gravação do proprietário, que o Perforce remove dos arquivos sincronizados até que `p4 edit` os abra. Isso impede que o Claude Code contorne o rastreamento de alterações do Perforce |356| `CLAUDE_CODE_PERFORCE_MODE` | Defina como `1` para ativar a proteção de gravação compatível com Perforce. Quando definida, Edit, Write e NotebookEdit falham com uma dica `p4 edit <file>` se o arquivo de destino não tiver o bit de gravação do proprietário, que o Perforce remove dos arquivos sincronizados até que `p4 edit` os abra. Isso impede que o Claude Code contorne o rastreamento de alterações do Perforce |

355| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sobrescreve o diretório raiz de plugins. Apesar do nome, isto define o diretório pai, não o cache em si: os marketplaces e o cache de plugins ficam em subdiretórios sob este caminho. O padrão é `~/.claude/plugins` |357| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sobrescreve o diretório raiz de plugins. Apesar do nome, isto define o diretório pai, não o cache em si: os marketplaces e o cache de plugins ficam em subdiretórios sob este caminho. O padrão é `~/.claude/plugins` |


370| `CLAUDE_CODE_REMOTE` | Definida automaticamente como `true` quando o Claude Code está sendo executado como uma [sessão na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md). Leia-a a partir de um hook ou script de configuração para detectar se você está em uma sessão na nuvem |372| `CLAUDE_CODE_REMOTE` | Definida automaticamente como `true` quando o Claude Code está sendo executado como uma [sessão na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md). Leia-a a partir de um hook ou script de configuração para detectar se você está em uma sessão na nuvem |

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

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

375| `CLAUDE_CODE_RESUME_HINT_COMMAND` | Em um script wrapper que inicia o Claude Code, defina isso como o nome que você digita para executar o wrapper, como `mytool`. Uma sessão local então imprime `mytool --resume <session-id>` ao sair, no lugar de `claude --resume <session-id>`. O Claude Code ignora um nome que não corresponda a `^\w[\w-]*$`. Ele também ignora a variável no bloco `env` de um arquivo de configurações. Requer Claude Code v2.1.323 ou posterior |

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

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

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


405| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Defina como `1` para remover credenciais dos ambientes dos subprocessos que o Claude Code inicia, como comandos Bash, hooks e servidores MCP stdio. A limpeza reconhece uma credencial pelo nome da variável ou pelo seu valor, e mantém tokens do GitHub e configurações de proxy. Consulte [O que a limpeza do ambiente de subprocessos remove](#what-the-subprocess-environment-scrub-removes). `claude-code-action` define isso automaticamente quando `allowed_non_write_users` está configurado |408| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Defina como `1` para remover credenciais dos ambientes dos subprocessos que o Claude Code inicia, como comandos Bash, hooks e servidores MCP stdio. A limpeza reconhece uma credencial pelo nome da variável ou pelo seu valor, e mantém tokens do GitHub e configurações de proxy. Consulte [O que a limpeza do ambiente de subprocessos remove](#what-the-subprocess-environment-scrub-removes). `claude-code-action` define isso automaticamente quando `allowed_non_write_users` está configurado |

406| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Defina como `1` no modo não interativo (a flag `-p`) para aguardar a conclusão da instalação de plugins antes da primeira consulta. Sem isso, os plugins são instalados em segundo plano e podem não estar disponíveis no primeiro turno. Combine com `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` para limitar a espera |409| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Defina como `1` no modo não interativo (a flag `-p`) para aguardar a conclusão da instalação de plugins antes da primeira consulta. Sem isso, os plugins são instalados em segundo plano e podem não estar disponíveis no primeiro turno. Combine com `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` para limitar a espera |

407| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Timeout em milissegundos para a instalação síncrona de plugins. Quando excedido, o Claude Code prossegue sem plugins e registra um erro em log. Sem padrão: sem esta variável, a instalação síncrona aguarda até a conclusão |410| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Timeout em milissegundos para a instalação síncrona de plugins. Quando excedido, o Claude Code prossegue sem plugins e registra um erro em log. Sem padrão: sem esta variável, a instalação síncrona aguarda até a conclusão |

408| `CLAUDE_CODE_SYNC_SKILLS` | Defina como `1` no modo não interativo com a flag `-p` para fazer o Claude Code baixar as skills habilitadas para sua conta claude.ai nessa execução e aguardar a lista delas, até `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`, antes de executar a primeira consulta. Requer autenticação do claude.ai. Sessões de terminal em que você entra com sua conta claude.ai [sincronizam essas skills](https://code.claude.com/docs/pt/skills.md#where-synced-skills-load) sem esta variável, portanto defina-a apenas quando uma execução `-p` precisar das suas skills atuais na primeira consulta |411| `CLAUDE_CODE_SYNC_SKILLS` | Defina como `1` para que o Claude Code baixe as skills habilitadas para sua conta claude.ai. No modo não interativo com a flag `-p`, o Claude Code também aguarda até `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` pela lista de skills antes de executar a primeira consulta. Requer autenticação claude.ai. Sessões de terminal em que você faz login com sua conta claude.ai [sincronizam essas skills](https://code.claude.com/docs/pt/skills.md#where-synced-skills-load) sem esta variável. Em uma sessão interativa, a variável requer v2.1.323 ou posterior |

409| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Timeout em milissegundos para a ressincronização de skills que ocorre no meio da sessão quando um aplicativo criado com o [Agent SDK](https://code.claude.com/docs/pt/agent-sdk/typescript.md#query-object) recarrega skills (padrão: 30000). Quando excedido, o recarregamento continua com as skills que já chegaram, e os downloads restantes terminam em segundo plano |412| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Timeout em milissegundos para a ressincronização de skills que ocorre no meio da sessão quando um aplicativo criado com o [Agent SDK](https://code.claude.com/docs/pt/agent-sdk/typescript.md#query-object) recarrega skills (padrão: 30000). Quando excedido, o recarregamento continua com as skills que já chegaram, e os downloads restantes terminam em segundo plano |

410| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Timeout em milissegundos que a primeira consulta aguarda pela lista inicial de skills quando `CLAUDE_CODE_SYNC_SKILLS` está definida (padrão: 5000). Quando excedido, a primeira consulta é executada com as skills que já chegaram. Os downloads terminam em segundo plano de qualquer forma, e o Claude aguarda o download de uma skill quando a invoca |413| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Timeout em milissegundos que a primeira consulta aguarda pela lista inicial de skills quando `CLAUDE_CODE_SYNC_SKILLS` está definida (padrão: 5000). Quando excedido, a primeira consulta é executada com as skills que já chegaram. Os downloads terminam em segundo plano de qualquer forma, e o Claude aguarda o download de uma skill quando a invoca |

411| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Defina como `false` para desativar o realce de sintaxe na saída de diff. Útil quando as cores interferem na configuração do seu terminal. Para desativar também o realce em blocos de código e pré-visualizações de arquivos, use a configuração [`syntaxHighlightingDisabled`](https://code.claude.com/docs/pt/settings-reference#syntaxhighlightingdisabled) |414| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Defina como `false` para desativar o realce de sintaxe na saída de diff. Útil quando as cores interferem na configuração do seu terminal. Para desativar também o realce em blocos de código e pré-visualizações de arquivos, use a configuração [`syntaxHighlightingDisabled`](https://code.claude.com/docs/pt/settings-reference#syntaxhighlightingdisabled) |


585* Ativar o [mod You should know](https://code.claude.com/docs/pt/interactive-mode.md#you-should-know-suggestions)588* Ativar o [mod You should know](https://code.claude.com/docs/pt/interactive-mode.md#you-should-know-suggestions)

586* Usar [a ferramenta advisor](https://code.claude.com/docs/pt/advisor.md#requirements), exceto no Claude Platform on AWS com o Claude Code v2.1.300 ou posterior589* Usar [a ferramenta advisor](https://code.claude.com/docs/pt/advisor.md#requirements), exceto no Claude Platform on AWS com o Claude Code v2.1.300 ou posterior

587* Usar [tarefas MCP](https://code.claude.com/docs/pt/mcp.md#mcp-tasks-that-run-on-the-server)590* Usar [tarefas MCP](https://code.claude.com/docs/pt/mcp.md#mcp-tasks-that-run-on-the-server)

591* Ativar o [Code Mode](https://code.claude.com/docs/pt/code-mode.md#requirements)

588* Ler ou responder a [comentários em um artefato](https://code.claude.com/docs/pt/artifacts.md#collect-comments-on-an-artifact)592* Ler ou responder a [comentários em um artefato](https://code.claude.com/docs/pt/artifacts.md#collect-comments-on-an-artifact)

589* Fazer o Claude ler [o artefato público de outra organização](https://code.claude.com/docs/pt/artifacts.md#read-an-artifact-shared-with-you)593* Fazer o Claude ler [o artefato público de outra organização](https://code.claude.com/docs/pt/artifacts.md#read-an-artifact-shared-with-you)

590* Obter a [ferramenta PowerShell](https://code.claude.com/docs/pt/tools-reference.md#powershell-tool) por padrão para contas do claude.ai e do Console no Windows com o Git Bash instalado; o Claude Code encaminha os comandos de shell pelo Git Bash, a menos que você defina `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. No Windows sem o Git Bash, a ferramenta permanece ativada594* Obter a [ferramenta PowerShell](https://code.claude.com/docs/pt/tools-reference.md#powershell-tool) por padrão para contas do claude.ai e do Console no Windows com o Git Bash instalado; o Claude Code encaminha os comandos de shell pelo Git Bash, a menos que você defina `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. No Windows sem o Git Bash, a ferramenta permanece ativada

errors.md +99 −14

Details

122| `A request to MCP server "<name>" was sent without your stored credentials` | [Authentication](#couldnt-read-the-stored-credentials-for-mcp-server) |122| `A request to MCP server "<name>" was sent without your stored credentials` | [Authentication](#couldnt-read-the-stored-credentials-for-mcp-server) |

123| `This server's URL is missing or not a valid URL, so sign-in can't start` | [Authentication](#mcp-server-url-is-missing-or-not-a-valid-url) |123| `This server's URL is missing or not a valid URL, so sign-in can't start` | [Authentication](#mcp-server-url-is-missing-or-not-a-valid-url) |

124| `Issuer mismatch in authorization response (RFC 9207)` | [Authentication](#issuer-mismatch-in-authorization-response) |124| `Issuer mismatch in authorization response (RFC 9207)` | [Authentication](#issuer-mismatch-in-authorization-response) |

125| `Stopped an OAuth request` | [Autenticação](#stopped-an-oauth-request) |

125| `Refusing to send credentials to non-https token endpoint` / `<short-name> from the MCP SDK for <server-url>` | [Authentication](#refusing-to-send-credentials-to-non-https-token-endpoint) |126| `Refusing to send credentials to non-https token endpoint` / `<short-name> from the MCP SDK for <server-url>` | [Authentication](#refusing-to-send-credentials-to-non-https-token-endpoint) |

126| `Cloud gateway session expired — run /login to reconnect.` | [Authentication](#cloud-gateway-session-expired) |127| `Cloud gateway session expired — run /login to reconnect.` | [Authentication](#cloud-gateway-session-expired) |

127| `Cloud gateway <url> no longer accepts this session` | [Authentication](#cloud-gateway-session-expired) |128| `Cloud gateway <url> no longer accepts this session` | [Authentication](#cloud-gateway-session-expired) |


153| `403` com `GitHub GraphQL is not available from Claude Code sessions` em uma sessão na nuvem | [GitHub proxy](https://code.claude.com/docs/pt/cloud-environments.md#github-proxy) |154| `403` com `GitHub GraphQL is not available from Claude Code sessions` em uma sessão na nuvem | [GitHub proxy](https://code.claude.com/docs/pt/cloud-environments.md#github-proxy) |

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

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

157| `Couldn't load the history of cloud session` | [Rede](#couldnt-load-the-history-of-cloud-session) |

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

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

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


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

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

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

185| `N tools left out` ao lado de um servidor em `/mcp` / `Claude wasn't given N tools because the Anthropic API would reject their input schemas` | [Ferramentas com esquemas de entrada inválidos](https://code.claude.com/docs/pt/mcp.md#tools-with-invalid-input-schemas) |

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

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

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


251| `Ultrareview did not start` | [Command-line errors](#ultrareview-did-not-start) |254| `Ultrareview did not start` | [Command-line errors](#ultrareview-did-not-start) |

252| `Remote Control did not start: "<question>" got no answer` | [Erros de linha de comando](#remote-control-did-not-start-got-no-answer) |255| `Remote Control did not start: "<question>" got no answer` | [Erros de linha de comando](#remote-control-did-not-start-got-no-answer) |

253| `` `<flag>` before `remote-control` is not carried over to the sessions Remote Control starts `` | [Command-line errors](#not-carried-over-to-the-sessions-remote-control-starts) |256| `` `<flag>` before `remote-control` is not carried over to the sessions Remote Control starts `` | [Command-line errors](#not-carried-over-to-the-sessions-remote-control-starts) |

257| `Remote Control did not start, because sessions would skip part or all of the --settings file` | [Erros de linha de comando](#remote-control-did-not-start-because-of-the-settings-file) |

258| `The settings file <file> has changed since Remote Control started, so this session did not start` | [Erros de linha de comando](#settings-file-changed-since-remote-control-started) |

254| `--sandbox is not supported by claude remote-control` / `--no-sandbox is not supported by claude remote-control` | [Command-line errors](#sandbox-is-not-supported-by-claude-remote-control) |259| `--sandbox is not supported by claude remote-control` / `--no-sandbox is not supported by claude remote-control` | [Command-line errors](#sandbox-is-not-supported-by-claude-remote-control) |

255| `` `claude import` is not yet available in this build `` | [Command-line errors](#claude-import-is-not-yet-available-in-this-build) |260| `` `claude import` is not yet available in this build `` | [Command-line errors](#claude-import-is-not-yet-available-in-this-build) |

256| `Could not read Claude Code config` | [Command-line errors](#could-not-read-claude-code-config) |261| `Could not read Claude Code config` | [Command-line errors](#could-not-read-claude-code-config) |


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

269| `Shell command failed for pattern "..."`, de `/security-review` ou qualquer skill que injete contexto dinâmico | [Command-line errors](#security-review-fails-without-origin-head) |274| `Shell command failed for pattern "..."`, de `/security-review` ou qualquer skill que injete contexto dinâmico | [Command-line errors](#security-review-fails-without-origin-head) |

270| `Shell command permission check failed for pattern "..."`, de uma skill que injete contexto dinâmico | [Command-line errors](#security-review-fails-without-origin-head) |275| `Shell command permission check failed for pattern "..."`, de uma skill que injete contexto dinâmico | [Command-line errors](#security-review-fails-without-origin-head) |

276| ``Couldn't run `<command>` for <name>. A file named HEAD or .git in this folder or one above it may not be yours``, de uma skill que injeta contexto dinâmico | [Verificações de permissão em comandos injetados](https://code.claude.com/docs/pt/skills.md#permission-checks-on-injected-commands) |

271| ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found`` | [Command-line errors](#security-review-fails-without-origin-head) |277| ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found`` | [Command-line errors](#security-review-fails-without-origin-head) |

272| `No shell command in <name> was run, because the <tool> tool does not accept one of them` | [Command-line errors](#no-shell-command-was-run) |278| `No shell command in <name> was run, because the <tool> tool does not accept one of them` | [Command-line errors](#no-shell-command-was-run) |

273| `Input must be provided either through stdin or as a prompt argument when using --print` | [Command-line errors](#input-must-be-provided-when-using-print) |279| `Input must be provided either through stdin or as a prompt argument when using --print` | [Command-line errors](#input-must-be-provided-when-using-print) |


425| `Workspace not trusted.` ao iniciar ou reiniciar uma sessão em background | [Background session errors](#workspace-not-trusted-when-dispatching-a-background-session) |431| `Workspace not trusted.` ao iniciar ou reiniciar uma sessão em background | [Background session errors](#workspace-not-trusted-when-dispatching-a-background-session) |

426| `Claude Code is being updated by npm on this machine (still not runnable after 2 min, ...)` | [Background session errors](#eacces-when-starting-a-background-session) |432| `Claude Code is being updated by npm on this machine (still not runnable after 2 min, ...)` | [Background session errors](#eacces-when-starting-a-background-session) |

427| `Claude Code process exited with code N` | [Wrapper and IDE errors](#claude-code-process-exited-with-code-n) |433| `Claude Code process exited with code N` | [Wrapper and IDE errors](#claude-code-process-exited-with-code-n) |

434| `Subprocess initialization did not complete within 60000ms` | [Erros de wrapper e IDE](#subprocess-initialization-did-not-complete-within-60000ms) |

435| `Claude Code did not finish starting` | [Erros de wrapper e IDE](#subprocess-initialization-did-not-complete-within-60000ms) |

428| `The connection to Claude Code ended before this message completed` | [Wrapper and IDE errors](#the-connection-to-claude-code-ended-before-this-message-completed) |436| `The connection to Claude Code ended before this message completed` | [Wrapper and IDE errors](#the-connection-to-claude-code-ended-before-this-message-completed) |

429| `Could not locate the Claude CLI on PATH` | [Wrapper and IDE errors](#could-not-locate-the-claude-cli-on-path) |437| `Could not locate the Claude CLI on PATH` | [Wrapper and IDE errors](#could-not-locate-the-claude-cli-on-path) |

430| `The Claude Code program for this computer, the <build> build, could not be found` | [Erros de wrapper e IDE](#the-claude-code-program-for-this-computer-could-not-be-found) |438| `The Claude Code program for this computer, the <build> build, could not be found` | [Erros de wrapper e IDE](#the-claude-code-program-for-this-computer-could-not-be-found) |


560| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_USAGE_LIMIT_WAIT_MS` | sem teto | Com `CLAUDE_CODE_RETRY_WATCHDOG` definido, o tempo máximo em milissegundos que uma requisição aguarda a redefinição do [limite de uso](#youve-hit-your-session-limit) do seu plano, como o limite da sessão ou o semanal. Quando a redefinição está mais distante do que esse teto, a requisição falha imediatamente, a menos que os créditos de uso tenham margem ou a API não tenha conseguido verificá-los. Nesses casos, ela é tentada novamente e falha se o teto for ultrapassado antes de ela ser bem-sucedida. Requer Claude Code v2.1.301 ou posterior. |568| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_USAGE_LIMIT_WAIT_MS` | sem teto | Com `CLAUDE_CODE_RETRY_WATCHDOG` definido, o tempo máximo em milissegundos que uma requisição aguarda a redefinição do [limite de uso](#youve-hit-your-session-limit) do seu plano, como o limite da sessão ou o semanal. Quando a redefinição está mais distante do que esse teto, a requisição falha imediatamente, a menos que os créditos de uso tenham margem ou a API não tenha conseguido verificá-los. Nesses casos, ela é tentada novamente e falha se o teto for ultrapassado antes de ela ser bem-sucedida. Requer Claude Code v2.1.301 ou posterior. |

561| [`CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS`](https://code.claude.com/docs/pt/env-vars) | não definido | Intervalo mínimo em milissegundos entre verificações de se um [limite de uso](#youve-hit-your-session-limit) já foi liberado, enquanto uma requisição aguarda a redefinição desse limite com `CLAUDE_CODE_RETRY_WATCHDOG` definido. Quando uma verificação constata que o limite foi liberado, a requisição é enviada imediatamente. Informe apenas dígitos de `60000` a `10800000`. Quando não definido ou fora desse intervalo, nenhuma verificação é feita. Para saber quando Claude Code ignora essas verificações, veja a [referência de variáveis de ambiente](https://code.claude.com/docs/pt/env-vars.md). Requer Claude Code v2.1.305 ou posterior. |569| [`CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS`](https://code.claude.com/docs/pt/env-vars) | não definido | Intervalo mínimo em milissegundos entre verificações de se um [limite de uso](#youve-hit-your-session-limit) já foi liberado, enquanto uma requisição aguarda a redefinição desse limite com `CLAUDE_CODE_RETRY_WATCHDOG` definido. Quando uma verificação constata que o limite foi liberado, a requisição é enviada imediatamente. Informe apenas dígitos de `60000` a `10800000`. Quando não definido ou fora desse intervalo, nenhuma verificação é feita. Para saber quando Claude Code ignora essas verificações, veja a [referência de variáveis de ambiente](https://code.claude.com/docs/pt/env-vars.md). Requer Claude Code v2.1.305 ou posterior. |

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

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

564| [`API_TIMEOUT_MS`](https://code.claude.com/docs/pt/env-vars) | 600000 | Tempo em milissegundos que cada tentativa de requisição tem para receber seus cabeçalhos de resposta. Não limita quanto tempo uma resposta de streaming dura depois disso. Aumente-o para redes lentas ou proxies. Para saber como ele limita o prazo de primeiro byte, veja [No response from API](#no-response-from-api). |572| [`API_TIMEOUT_MS`](https://code.claude.com/docs/pt/env-vars) | 600000 | Tempo em milissegundos que cada tentativa de requisição tem para receber seus cabeçalhos de resposta. Não limita quanto tempo uma resposta de streaming dura depois disso. Aumente-o para redes lentas ou proxies. Para saber como ele limita o prazo de primeiro byte, veja [No response from API](#no-response-from-api). |

565| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](https://code.claude.com/docs/pt/env-vars) | não definido | Limite de reenvios de uma [requisição sem streaming](#streaming-response-ended-before-any-complete-data-was-received) que atinge o timeout. Ao atingir o limite, a requisição falha. Uma resposta do Claude que leva mais tempo que o timeout para ser gerada atinge o timeout novamente a cada reenvio, então defina um número baixo, como `0`, para falhar mais cedo. Para o timeout de cada tentativa, veja [Quanto tempo uma tentativa sem streaming aguarda](#how-long-a-non-streaming-attempt-waits). Requer Claude Code v2.1.285 ou posterior. |573| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](https://code.claude.com/docs/pt/env-vars) | não definido | Limite de reenvios de uma [requisição sem streaming](#streaming-response-ended-before-any-complete-data-was-received) que atinge o timeout. Ao atingir o limite, a requisição falha. Uma resposta do Claude que leva mais tempo que o timeout para ser gerada atinge o timeout novamente a cada reenvio, então defina um número baixo, como `0`, para falhar mais cedo. Para o timeout de cada tentativa, veja [Quanto tempo uma tentativa sem streaming aguarda](#how-long-a-non-streaming-attempt-waits). Requer Claude Code v2.1.285 ou posterior. |

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


825Chamadas posteriores na mesma resposta de Claude podem ser negadas com este motivo:833Chamadas posteriores na mesma resposta de Claude podem ser negadas com este motivo:

826 834 

827```text theme={null}835```text theme={null}

828another call in this response was changed by a hook after auto mode reviewed it, or could not be confirmed unchanged836another call in this response was changed after auto mode reviewed it, or could not be confirmed unchanged

829```837```

830 838 

831Claude pode então emitir cada chamada negada novamente para que o servidor a revise. Se um prompt de permissão for aberto, responda a ele. Você não precisa fazer mais nada, a menos que Claude diga na resposta que o modo auto não conseguiu verificar a chamada. Nesse caso, interrompa a alteração ou aprove a chamada você mesmo, e peça a Claude para tentar a chamada novamente:839Claude pode então emitir cada chamada negada novamente para que o servidor a revise. Se um prompt de permissão for aberto, responda a ele. Você não precisa fazer mais nada, a menos que Claude diga na resposta que o modo auto não conseguiu verificar a chamada. Nesse caso, interrompa a alteração ou aprove a chamada você mesmo, e peça a Claude para tentar a chamada novamente:


978 986 

979### You've hit your monthly spend limit987### You've hit your monthly spend limit

980 988 

981O uso incluído do seu plano não pode cobrir esta requisição, e os [usage credits](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) que de outra forma pagariam por isso atingiram um limite de gastos. Isso acontece quando uma das janelas de uso do seu plano se esgotou, ou quando a requisição é uma que apenas créditos de uso pagam, como uma requisição para um modelo que [bills to usage credits](https://code.claude.com/docs/pt/model-config.md#fable-and-usage-credits). A mensagem nomeia cujo limite o bloqueou. O texto após o `·` diz como aumentar esse limite e varia com seu plano e se você gerencia o faturamento:989O uso incluído do seu plano não pode cobrir esta requisição, e os [usage credits](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) que de outra forma pagariam por isso atingiram um limite de gastos. Seu plano não pode cobrir uma requisição quando uma de suas janelas de uso se esgotou, ou quando apenas créditos de uso pagam pela requisição. Um exemplo é uma requisição para um modelo que [bills to usage credits](https://code.claude.com/docs/pt/model-config.md#fable-and-usage-credits).

990 

991As palavras antes do `·` nomeiam o limite que bloqueou você, como o limite de gastos mensais da sua organização, e o texto após ele diz como aumentar esse limite. Em uma sessão na nuvem ou sob [Remote Control](https://code.claude.com/docs/pt/remote-control.md), esse texto não fornece URL, e uma mensagem sobre o seu próprio `monthly spend limit` não diz como aumentá-lo. Outras sessões mostram formas como estas:

982 992 

983```text theme={null}993```text theme={null}

984You've hit your monthly spend limit · raise it at https://claude.ai/settings/usage?from=cc_cli_limit_message994You've hit your monthly spend limit · raise it at https://claude.ai/settings/usage?from=cc_cli_limit_message


1822 1832 

1823Antes da v2.1.232, o Claude Code usava o runtime v2 apenas em uma implantação gradual ou quando você definia `MCP_SDK_GENERATION=v2`.1833Antes da v2.1.232, o Claude Code usava o runtime v2 apenas em uma implantação gradual ou quando você definia `MCP_SDK_GENERATION=v2`.

1824 1834 

1835### Stopped an OAuth request

1836 

1837Esta mensagem significa que o Claude Code interrompeu uma [requisição OAuth para um servidor MCP](https://code.claude.com/docs/pt/mcp.md#authenticate-with-remote-mcp-servers) porque um endpoint OAuth a redirecionou. Em ambas as formas da mensagem, o primeiro endereço é aquele que enviou o redirecionamento:

1838 

1839```text theme={null}

1840Stopped an OAuth request, which can hold secrets: https://auth.example.com redirected it to https://other.example.com. Ask the owner of https://auth.example.com to remove that redirect.

1841Stopped an OAuth request: https://auth.example.com redirected it more than 5 times. Ask the owner of https://auth.example.com to fix those redirects.

1842```

1843 

1844**O que fazer:**

1845 

1846* Peça a quem administra o primeiro endereço, como o operador do servidor MCP, para remover ou corrigir o redirecionamento. Depois, tente novamente a partir de `/mcp`.

1847 

1825### Refusing to send credentials to non-https token endpoint1848### Refusing to send credentials to non-https token endpoint

1826 1849 

1827No [runtime v2](https://code.claude.com/docs/pt/mcp.md#mcp-client-runtimes), o Claude Code envia uma requisição de token do [OAuth do MCP](https://code.claude.com/docs/pt/mcp.md#authenticate-with-remote-mcp-servers) apenas para um endpoint de token servido por HTTPS ou em `localhost`, `127.0.0.1` ou `::1`. Esta mensagem significa que o endpoint de token do servidor não é nenhum desses, então o Claude Code parou antes de enviar a requisição. Isso acontece após o login no navegador, então a etapa do navegador é bem-sucedida primeiro, e novamente sempre que o Claude Code atualiza o token do servidor.1850No [runtime v2](https://code.claude.com/docs/pt/mcp.md#mcp-client-runtimes), o Claude Code envia uma requisição de token do [OAuth do MCP](https://code.claude.com/docs/pt/mcp.md#authenticate-with-remote-mcp-servers) apenas para um endpoint de token servido por HTTPS ou em `localhost`, `127.0.0.1` ou `::1`. Esta mensagem significa que o endpoint de token do servidor não é nenhum desses, então o Claude Code parou antes de enviar a requisição. Isso acontece após o login no navegador, então a etapa do navegador é bem-sucedida primeiro, e novamente sempre que o Claude Code atualiza o token do servidor.


2207 2230 

2208### Host not allowed in a cloud session2231### Host not allowed in a cloud session

2209 2232 

2210Uma requisição HTTP de saída de uma sessão na nuvem ou tarefa agendada na nuvem foi bloqueada pela política de rede do ambiente.2233Em uma sessão na nuvem ou tarefa agendada na nuvem, um `403` ou um erro de DNS como `ENOTFOUND` pode significar que o host requisitado não está na [allowlist do ambiente de nuvem](https://code.claude.com/docs/pt/cloud-environments.md#access-levels). Para confirmar, compare o host com essa lista. Um `403` com este header confirma o bloqueio, mas nem todo `403` de uma requisição bloqueada o contém:

2211 2234 

2212```text theme={null}2235```text theme={null}

2213HTTP 4032236HTTP 403


2290 2313 

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

2292 2315 

2316### Couldn't load the history of cloud session

2317 

2318Essa mensagem significa que Claude Code encontrou a [sessão na nuvem que você pediu para trazer ao seu terminal](https://code.claude.com/docs/pt/claude-code-on-the-web.md#from-cloud-to-terminal), mas a requisição do seu histórico de conversa retornou como não encontrada:

2319 

2320```text theme={null}

2321Couldn't load the history of cloud session session_01HJKLMNOPQRSTUVWXYZ. Check it at https://claude.ai/code/session_01HJKLMNOPQRSTUVWXYZ?from=cli

2322```

2323 

2324**O que fazer:**

2325 

2326* Abra o link na mensagem para verificar a sessão no seu navegador. Se ela abrir lá e o mesmo teleport falhar dessa forma novamente, [relate o problema](#report-an-error).

2327 

2293### Couldn't reconnect to your Remote Control session2328### Couldn't reconnect to your Remote Control session

2294 2329 

2295```text theme={null}2330```text theme={null}


2565 2600 

2566O Claude Code normalmente redimensiona imagens grandes automaticamente. Esses erros significam que a imagem não pôde ser decodificada ou redimensionada para caber nos limites da API.2601O Claude Code normalmente redimensiona imagens grandes automaticamente. Esses erros significam que a imagem não pôde ser decodificada ou redimensionada para caber nos limites da API.

2567 2602 

2603O erro que você vê pode mencionar um limite de pixels diferente, como `2576x2576px` onde estes exemplos dizem `2000x2000px`.

2604 

2568**O que fazer:**2605**O que fazer:**

2569 2606 

2570* Se a mensagem pedir que você converta a imagem, converta-a para PNG, JPEG, GIF ou WebP e anexe-a novamente. O Claude Code consegue verificar as dimensões desses formatos pelo cabeçalho do arquivo, sem decodificar a imagem.2607* Se a mensagem pedir que você converta a imagem, converta-a para PNG, JPEG, GIF ou WebP e anexe-a novamente. O Claude Code consegue verificar as dimensões desses formatos pelo cabeçalho do arquivo, sem decodificar a imagem.


2873* **Um motivo escrito por um hook**: um hook PreModelSwitch forneceu esse motivo ao [negar a troca ou pedir confirmação](https://code.claude.com/docs/pt/hooks.md#premodelswitch-decision-control). Resolva o que ele pede, ou escolha um modelo que seus hooks permitam.2910* **Um motivo escrito por um hook**: um hook PreModelSwitch forneceu esse motivo ao [negar a troca ou pedir confirmação](https://code.claude.com/docs/pt/hooks.md#premodelswitch-decision-control). Resolva o que ele pede, ou escolha um modelo que seus hooks permitam.

2874* **`PreModelSwitch hook <name> did not respond before its timeout`**: um hook que não responde antes do seu [timeout](https://code.claude.com/docs/pt/hooks.md#timeouts) bloqueia a troca. Corrija o comando travado ou aumente o `timeout` desse hook e depois troque novamente.2911* **`PreModelSwitch hook <name> did not respond before its timeout`**: um hook que não responde antes do seu [timeout](https://code.claude.com/docs/pt/hooks.md#timeouts) bloqueia a troca. Corrija o comando travado ou aumente o `timeout` desse hook e depois troque novamente.

2875* **`confirmation required, and this session cannot ask`**: um hook respondeu `ask` sem um motivo, e uma requisição de controle não tem como mostrar o prompt de confirmação. Um comando `/model` em uma [execução `-p`](https://code.claude.com/docs/pt/headless) informa a mesma condição com `(run /model interactively to confirm)` após o motivo. Faça a troca a partir de uma sessão interativa, ou altere a decisão do hook para esse modelo.2912* **`confirmation required, and this session cannot ask`**: um hook respondeu `ask` sem um motivo, e uma requisição de controle não tem como mostrar o prompt de confirmação. Um comando `/model` em uma [execução `-p`](https://code.claude.com/docs/pt/headless) informa a mesma condição com `(run /model interactively to confirm)` após o motivo. Faça a troca a partir de uma sessão interativa, ou altere a decisão do hook para esse modelo.

2876* **`so organization-managed PreModelSwitch hooks could not be checked`**: o Claude Code não conseguiu determinar quais hooks PreModelSwitch os [plugins gerenciados](https://code.claude.com/docs/pt/settings-reference.md#enabledplugins) da sua organização fornecem, por exemplo porque um plugin gerenciado falhou ao carregar. Um desses hooks poderia bloquear a troca, então o Claude Code recusa em vez de aplicar a troca sem verificação. O início do motivo nomeia o que falhou. O Claude Code verifica novamente a cada tentativa de troca, então uma falha que já foi resolvida deixa de bloquear; se continuar falhando, execute `claude --debug` e troque novamente para capturar os detalhes, depois corrija o plugin ou peça ao seu administrador que o corrija.2913* **`so organization-managed PreModelSwitch hooks could not be checked`**: o Claude Code anterior à v2.1.323 recusa quando não consegue determinar quais hooks PreModelSwitch seus [plugins gerenciados](https://code.claude.com/docs/pt/settings-reference.md#enabledplugins) fornecem. O texto antes dessa frase menciona o que falhou. Para acabar com a recusa, atualize o Claude Code. Para também fazer os hooks de um plugin com falha funcionarem, corrija o plugin ou fale com seu administrador. Para mais detalhes, inicie `claude --debug` no seu shell e troque de modelo, depois leia o [log de depuração](https://code.claude.com/docs/pt/hooks.md#debug-hooks).

2877* **`a PreModelSwitch hook failed before answering`** ou **`PreModelSwitch hooks were cancelled (the control stream closed) before answering`**: a execução do hook terminou sem um veredito, e o Claude Code não trata isso como aprovação. Execute `claude --debug` para ver o que falhou e depois troque novamente.2914* **`a PreModelSwitch hook failed before answering`** ou **`PreModelSwitch hooks were cancelled (the control stream closed) before answering`**: a execução do hook terminou sem um veredito, e o Claude Code não trata isso como aprovação. Execute `claude --debug` para ver o que falhou e depois troque novamente.

2878 2915 

2879Antes da v2.1.260, a recusa por plugin gerenciado dizia `plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log`. O Claude Code tentava carregar o plugin novamente uma vez e depois recusava as trocas seguintes na sessão, mesmo quando sua organização não gerenciava nenhum plugin. Nessas versões, reinicie a sessão para executar o carregamento do plugin novamente.2916Antes da v2.1.260, a recusa por plugin gerenciado dizia `plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log`. O Claude Code tentava carregar o plugin novamente uma vez e depois recusava as trocas seguintes na sessão, mesmo quando sua organização não gerenciava nenhum plugin. Nessas versões, reinicie a sessão para executar o carregamento do plugin novamente.


3499* **`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`.3536* **`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`.

3500* **`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.3537* **`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.

3501* **`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`.3538* **`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`.

3502* **``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`.3539* **``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 durante esta execução, coloque o número do PR ou o branch base antes da flag: `claude ultrareview 1234 --trust-workspace`.

3503 3540 

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

3505 3542 


3522Você iniciou o [Remote Control](https://code.claude.com/docs/pt/remote-control.md) com uma flag global de `claude` antes do verbo `remote-control`, uma que restringiria ou configuraria as sessões que o Remote Control inicia, como `--settings`, `--setting-sources`, `--permission-mode`, `--disallowed-tools` ou `--mcp-config`. Uma flag colocada antes do verbo nunca chega a essas sessões. Em vez disso, o Claude Code se recusa a iniciar, nomeando a flag:3559Você iniciou o [Remote Control](https://code.claude.com/docs/pt/remote-control.md) com uma flag global de `claude` antes do verbo `remote-control`, uma que restringiria ou configuraria as sessões que o Remote Control inicia, como `--settings`, `--setting-sources`, `--permission-mode`, `--disallowed-tools` ou `--mcp-config`. Uma flag colocada antes do verbo nunca chega a essas sessões. Em vez disso, o Claude Code se recusa a iniciar, nomeando a flag:

3523 3560 

3524```text theme={null}3561```text theme={null}

3525Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`).3562Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`). Pass settings with `claude remote-control --settings <file>`.

3526```3563```

3527 3564 

3528O Claude Code não recusa flags globais que são inofensivas de descartar, como `--verbose`, `--model` ou um `--session-id` ou `--plugin-dir` injetado por um wrapper: ele as ignora e o Remote Control inicia.3565O Claude Code não recusa flags globais que são inofensivas de descartar, como `--verbose`, `--model` ou um `--session-id` ou `--plugin-dir` injetado por um wrapper: ele as ignora e o Remote Control inicia.


3536 3573 

3537Antes da v2.1.248, `claude remote-control` não aceitava suas próprias flags quando uma flag global vinha primeiro, e o comando falhava com um erro `unknown option`.3574Antes da v2.1.248, `claude remote-control` não aceitava suas próprias flags quando uma flag global vinha primeiro, e o comando falhava com um erro `unknown option`.

3538 3575 

3576### O Remote Control não iniciou por causa do arquivo de `--settings`

3577 

3578O arquivo que você passou para [`claude remote-control --settings`](https://code.claude.com/docs/pt/remote-control#start-a-remote-control-session) tem um problema:

3579 

3580```text theme={null}

3581Error: Remote Control did not start, because sessions would skip part or all of the --settings file ./rc-settings.json: Invalid or malformed JSON

3582```

3583 

3584**O que fazer:**

3585 

3586* Corrija o problema que a mensagem cita e execute seu comando `claude remote-control` novamente

3587 

3588### O arquivo de configurações mudou desde que o Remote Control foi iniciado

3589 

3590Esta mensagem no terminal que executa `claude remote-control` significa que as sessões não serão iniciadas a partir do arquivo que você passou para [`--settings`](https://code.claude.com/docs/pt/remote-control#start-a-remote-control-session) tal como ele está agora:

3591 

3592```text theme={null}

3593Session failed: Error: The settings file /path/to/settings.json has changed since Remote Control started, so this session did not start. Restart `claude remote-control` to use it as it is now.

3594```

3595 

3596**O que fazer:**

3597 

3598* Para usar o arquivo tal como está agora, interrompa `claude remote-control` e execute o mesmo comando novamente. Para recuperar as sessões que ele estava servindo, consulte [Resume sessions after stopping the server](https://code.claude.com/docs/pt/remote-control.md#resume-sessions-after-stopping-the-server).

3599* Para manter as configurações com as quais o Remote Control foi iniciado, restaure o conteúdo do arquivo como estava e execute o comando novamente se `claude remote-control` tiver saído

3600 

3539### `--sandbox` or `--no-sandbox` is not supported by claude remote-control3601### `--sandbox` or `--no-sandbox` is not supported by claude remote-control

3540 3602 

3541Este erro significa que o comando que inicia seu servidor de [Remote Control](https://code.claude.com/docs/pt/remote-control.md) passa `--sandbox` ou `--no-sandbox` depois de `remote-control`, e `claude remote-control` não aceita nenhuma dessas flags. O servidor sai com código 1 em vez de iniciar:3603Este erro significa que o comando que inicia seu servidor de [Remote Control](https://code.claude.com/docs/pt/remote-control.md) passa `--sandbox` ou `--no-sandbox` depois de `remote-control`, e `claude remote-control` não aceita nenhuma dessas flags. O servidor sai com código 1 em vez de iniciar:


3806 3868 

3807Mensagens semelhantes são disparadas antes mesmo de o comando ser executado:3869Mensagens semelhantes são disparadas antes mesmo de o comando ser executado:

3808 3870 

3809* `Shell command permission check failed for pattern "..."`: a verificação de permissão do comando não o permitiu. [Permission checks on injected commands](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`3871* `Shell command permission check failed for pattern "..."`: a verificação de permissão do comando não o permitiu. Consulte [Permission checks on injected commands](https://code.claude.com/docs/pt/skills.md#permission-checks-on-injected-commands) para ver quais resultados abortam em cada modo de permissão e quando `allowed-tools` pré-aprova um comando

3810* ``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)3872* ``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)

3811 3873 

3812**O que fazer:**3874**O que fazer:**


3960 4022 

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

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

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

3964 4026 

3965**O que fazer:**4027**O que fazer:**

3966 4028 


4490commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory4552commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory

4491```4553```

4492 4554 

4493Uma mensagem que fornece o caminho completo de um dos próprios arquivos de um plugin de marketplace, como `hooks/hooks.json`, significa que Claude Code ignorou esse arquivo. Isso acontece quando Claude Code não consegue confirmar que o arquivo está dentro do plugin ou, para um plugin em um [marketplace local](https://code.claude.com/docs/pt/plugins/loading.md#in-place-and-copied-plugins), dentro desse marketplace. A mensagem relata cada um desses arquivos sob o nome de componente mostrado:4555Uma mensagem que fornece o caminho completo de um dos próprios arquivos de um plugin de marketplace, como `hooks/hooks.json`, significa que Claude Code ignorou esse arquivo. Quando Claude Code não consegue confirmar que o arquivo está dentro do plugin ou, para um plugin em um [marketplace local](https://code.claude.com/docs/pt/plugins/loading.md#in-place-and-copied-plugins), dentro desse marketplace, ele ignora o arquivo. A mensagem relata esses arquivos sob o nome de componente mostrado:

4494 4556 

4495* `hooks/hooks.json`: `hooks`4557* `hooks/hooks.json`: `hooks`

4496* `monitors/monitors.json`: `monitors`4558* `monitors/monitors.json`: `monitors`

4497* `settings.json`: `settings`

4498* `SKILL.md` na raiz do plugin: `skills`4559* `SKILL.md` na raiz do plugin: `skills`

4499 4560 

4500Por exemplo, esta mensagem é para um `hooks/hooks.json` que resolve fora tanto do plugin quanto de seu marketplace local:4561Por exemplo, esta mensagem é para um `hooks/hooks.json` que resolve fora tanto do plugin quanto de seu marketplace local:


5481Você abriu uma [sessão em background](https://code.claude.com/docs/pt/agent-view.md) que terminou enquanto o serviço em background estava desligado, e [limpeza de transcrição](https://code.claude.com/docs/pt/settings-reference.md#cleanupperioddays) desde então removeu sua conversa salva, por exemplo após a máquina estar desligada por semanas. Abrir tal linha normalmente [retoma sua conversa salva](https://code.claude.com/docs/pt/agent-view.md#sessions-show-as-failed-after-shutdown). Sem nada para retomar, Claude Code recusa em vez de re-executar o prompt original da sessão sem perguntar:5542Você abriu uma [sessão em background](https://code.claude.com/docs/pt/agent-view.md) que terminou enquanto o serviço em background estava desligado, e [limpeza de transcrição](https://code.claude.com/docs/pt/settings-reference.md#cleanupperioddays) desde então removeu sua conversa salva, por exemplo após a máquina estar desligada por semanas. Abrir tal linha normalmente [retoma sua conversa salva](https://code.claude.com/docs/pt/agent-view.md#sessions-show-as-failed-after-shutdown). Sem nada para retomar, Claude Code recusa em vez de re-executar o prompt original da sessão sem perguntar:

5482 5543 

5483```text theme={null}5544```text theme={null}

5484This session's saved conversation is no longer on disk (it ended while the background service was off, and old transcripts are cleaned up), so there is nothing to resume. `claude rm 7c5dcf5d` deletes the row; `claude respawn 7c5dcf5d` runs its original prompt again instead.5545This session's saved conversation is no longer on disk (it ended while the background service was off, and old transcripts are cleaned up), so there is nothing to resume. `claude rm 7c5dcf5d` removes the row; `claude respawn 7c5dcf5d` runs its original prompt again instead.

5485```5546```

5486 5547 

5487`claude attach <id>` imprime este texto. Na agent view, o rodapé é mais curto e termina com `ctrl+x deletes the row`.5548`claude attach <id>` imprime este texto. Na agent view, o rodapé é mais curto e termina com `ctrl+x removes the row`.

5488 5549 

5489**O que fazer:**5550**O que fazer:**

5490 5551 


5503 push them and run 'claude rm 7c5dcf5d' again, or discard the worktree and its commits: claude rm 7c5dcf5d --discard-unpushed a1b2c3d000000000000000000000000000000000@0123456789abcdef0123456789abcdef5564 push them and run 'claude rm 7c5dcf5d' again, or discard the worktree and its commits: claude rm 7c5dcf5d --discard-unpushed a1b2c3d000000000000000000000000000000000@0123456789abcdef0123456789abcdef

5504```5565```

5505 5566 

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

5507 5568 

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

5509 5570 


5780 5841 

5781Esses erros vêm do programa que iniciou o Claude Code para você, como uma extensão de IDE ou uma aplicação [Agent SDK](https://code.claude.com/docs/pt/agent-sdk/overview.md), em vez de virem do próprio Claude Code.5842Esses erros vêm do programa que iniciou o Claude Code para você, como uma extensão de IDE ou uma aplicação [Agent SDK](https://code.claude.com/docs/pt/agent-sdk/overview.md), em vez de virem do próprio Claude Code.

5782 5843 

5844### Subprocess initialization did not complete within 60000ms

5845 

5846Esse erro significa que um processo do Claude Code iniciado pela [extensão VS Code](https://code.claude.com/docs/pt/vs-code.md) ou por uma aplicação Agent SDK não informou a tempo que estava pronto. A extensão ou aplicação então o interrompeu. Em uma conversa no VS Code, o erro começa com `Claude Code did not finish starting`, por exemplo:

5847 

5848```text theme={null}

5849Claude Code did not finish starting: it did not answer in time. The output logs ("View output logs") show how far it got. Slow plugins, MCP servers, hooks, disks or network can each cause this.

5850```

5851 

5852Nos logs de saída da extensão, na sua tela de login e em uma aplicação Agent SDK, o erro aparece de forma diferente. Ele começa com `Subprocess initialization did not complete within` e o limite de tempo, e depois mostra o que o Claude Code relatou, por exemplo:

5853 

5854```text theme={null}

5855Subprocess initialization did not complete within 60000ms. Claude Code did not answer the initialize request and reported no SessionStart or Setup hook running. Slow plugins, MCP servers, hooks that Claude Code does not report, disks or network can each cause this.

5856```

5857 

5858**O que fazer:**

5859 

5860* Para tentar novamente no VS Code, envie uma mensagem. Se o erro apareceu enquanto você fazia login, selecione o método de login novamente.

5861* Para ver até onde o Claude Code chegou, clique em **View output logs** abaixo do erro de uma conversa ou execute **Claude Code: Show Logs** na Command Palette. Inclua as entradas em torno da linha `Subprocess initialization` ao [relatar o problema](https://github.com/anthropics/claude-code/issues).

5862* Para verificar sua rede, consulte [Configuração de rede](https://code.claude.com/docs/pt/network-config.md). Se a mensagem pedir que você verifique seu login ou autenticação, consulte [Login e autenticação](https://code.claude.com/docs/pt/troubleshoot-install.md#login-and-authentication).

5863* Se a mensagem disser que hooks [SessionStart](https://code.claude.com/docs/pt/hooks.md#sessionstart) ou [Setup](https://code.claude.com/docs/pt/hooks.md#setup) não haviam terminado, [verifique quanto tempo os seus levam para executar](https://code.claude.com/docs/pt/hooks.md#debug-hooks). No VS Code, os primeiros 10 minutos em que o Claude Code relata esses hooks em execução não contam para o limite de 60 segundos. Faça um hook lento terminar mais cedo, reduza o [`timeout`](https://code.claude.com/docs/pt/hooks#common-fields) de um hook não assíncrono ou [remova o hook](https://code.claude.com/docs/pt/hooks.md#disable-or-remove-hooks).

5864* Se sua aplicação Agent SDK chama [`startup()`](https://code.claude.com/docs/pt/agent-sdk/typescript#startup), defina `initializeTimeoutMs` com um valor longo o suficiente para toda a inicialização, ou deixe-o sem definir para que até 10 minutos de tempo de hook relatado não sejam contados.

5865 

5866Antes da extensão VS Code v2.1.304 e do TypeScript Agent SDK v0.3.304, todo o tempo de hooks contava para o limite. Com o limite padrão, a mensagem continha `Subprocess initialization did not complete within 60000ms — check authentication and network connectivity`. Se você vir essa mensagem, atualize a extensão ou o SDK.

5867 

5783### Claude Code process exited with code N5868### Claude Code process exited with code N

5784 5869 

5785O processo `claude` subjacente saiu com um código diferente de zero. O código de saída por si só não diz o que falhou: o erro real está na saída do próprio processo, que o wrapper anexa quando capturou alguma coisa e caso contrário mantém em seus logs.5870O processo `claude` subjacente saiu com um código diferente de zero. O código de saída por si só não diz o que falhou: o erro real está na saída do próprio processo, que o wrapper anexa quando capturou alguma coisa e caso contrário mantém em seus logs.

Details

117 <td>✗</td>117 <td>✗</td>

118 </tr>118 </tr>

119 119 

120 <tr>

121 <td>[Code Mode](https://code.claude.com/docs/pt/code-mode.md)</td>

122 <td>✓ (experimental, [requisitos se aplicam](https://code.claude.com/docs/pt/code-mode.md#requirements))</td>

123 <td>✓ (experimental, [requisitos se aplicam](https://code.claude.com/docs/pt/code-mode.md#requirements))</td>

124 <td>✗</td>

125 <td>✗</td>

126 <td>✗</td>

127 <td>✗</td>

128 </tr>

129 

120 <tr>130 <tr>

121 <td>[Mensagens entre sessões](https://code.claude.com/docs/pt/cross-session-messaging.md)</td>131 <td>[Mensagens entre sessões](https://code.claude.com/docs/pt/cross-session-messaging.md)</td>

122 <td>✓ <sup>[5](#fn5)</sup></td>132 <td>✓ <sup>[5](#fn5)</sup></td>


231 241 

232> [tab] Amazon Bedrock242> [tab] Amazon Bedrock

233>243>

234> **Não disponível:** todos os [recursos que requerem uma assinatura Claude](#features-that-require-a-claude-subscription), além de [web search](https://code.claude.com/docs/pt/tools-reference.md#websearch-tool-behavior), [fast mode](https://code.claude.com/docs/pt/fast-mode.md), [Advisor](https://code.claude.com/docs/pt/advisor.md), [Channels](https://code.claude.com/docs/pt/channels.md), o [dashboard de análise](https://code.claude.com/docs/pt/analytics.md), [server-managed settings](https://code.claude.com/docs/pt/server-managed-settings.md) e os [comandos `/design-sync` e `/import`](https://code.claude.com/docs/pt/commands#all-commands).244> **Não disponível:** todos os [recursos que requerem uma assinatura Claude](#features-that-require-a-claude-subscription), além de [web search](https://code.claude.com/docs/pt/tools-reference.md#websearch-tool-behavior), [fast mode](https://code.claude.com/docs/pt/fast-mode.md), [Advisor](https://code.claude.com/docs/pt/advisor.md), [Channels](https://code.claude.com/docs/pt/channels.md), [Code Mode](https://code.claude.com/docs/pt/code-mode.md), o [dashboard de análise](https://code.claude.com/docs/pt/analytics.md), [server-managed settings](https://code.claude.com/docs/pt/server-managed-settings.md) e os [comandos `/design-sync` e `/import`](https://code.claude.com/docs/pt/commands#all-commands).

235>245>

236> **Suporte parcial:**246> **Suporte parcial:**

237>247>


244 254 

245> [tab] Claude Platform on AWS255> [tab] Claude Platform on AWS

246>256>

247> **Não disponível:** todos os [recursos que requerem uma assinatura Claude](#features-that-require-a-claude-subscription), além de [fast mode](https://code.claude.com/docs/pt/fast-mode.md), [Channels](https://code.claude.com/docs/pt/channels.md), [GitHub Actions](https://code.claude.com/docs/pt/github-actions.md), o [dashboard de análise](https://code.claude.com/docs/pt/analytics.md), [server-managed settings](https://code.claude.com/docs/pt/server-managed-settings.md) e os [comandos `/design-sync` e `/import`](https://code.claude.com/docs/pt/commands#all-commands).257> **Não disponível:** todos os [recursos que requerem uma assinatura Claude](#features-that-require-a-claude-subscription), além de [fast mode](https://code.claude.com/docs/pt/fast-mode.md), [Channels](https://code.claude.com/docs/pt/channels.md), [GitHub Actions](https://code.claude.com/docs/pt/github-actions.md), [Code Mode](https://code.claude.com/docs/pt/code-mode.md), o [dashboard de análise](https://code.claude.com/docs/pt/analytics.md), [server-managed settings](https://code.claude.com/docs/pt/server-managed-settings.md) e os [comandos `/design-sync` e `/import`](https://code.claude.com/docs/pt/commands#all-commands).

248>258>

249> **Disponível aqui, mas não no Amazon Bedrock:** [web search](https://code.claude.com/docs/pt/tools-reference.md#websearch-tool-behavior), além do [Advisor](https://code.claude.com/docs/pt/advisor.md) no Claude Code v2.1.300 ou posterior.259> **Disponível aqui, mas não no Amazon Bedrock:** [web search](https://code.claude.com/docs/pt/tools-reference.md#websearch-tool-behavior), além do [Advisor](https://code.claude.com/docs/pt/advisor.md) no Claude Code v2.1.300 ou posterior.

250>260>


256 266 

257> [tab] Google Cloud's Agent Platform267> [tab] Google Cloud's Agent Platform

258>268>

259> **Não disponível:** todos os [recursos que requerem uma assinatura Claude](#features-that-require-a-claude-subscription), além de [Advisor](https://code.claude.com/docs/pt/advisor.md), [Channels](https://code.claude.com/docs/pt/channels.md), o [dashboard de análise](https://code.claude.com/docs/pt/analytics.md), [server-managed settings](https://code.claude.com/docs/pt/server-managed-settings.md) e os [comandos `/design-sync` e `/import`](https://code.claude.com/docs/pt/commands#all-commands).269> **Não disponível:** todos os [recursos que requerem uma assinatura Claude](#features-that-require-a-claude-subscription), além de [Advisor](https://code.claude.com/docs/pt/advisor.md), [Channels](https://code.claude.com/docs/pt/channels.md), [Code Mode](https://code.claude.com/docs/pt/code-mode.md), o [dashboard de análise](https://code.claude.com/docs/pt/analytics.md), [server-managed settings](https://code.claude.com/docs/pt/server-managed-settings.md) e os [comandos `/design-sync` e `/import`](https://code.claude.com/docs/pt/commands#all-commands).

260>270>

261> **Suporte parcial:**271> **Suporte parcial:**

262>272>


271 281 

272> [tab] Microsoft Foundry282> [tab] Microsoft Foundry

273>283>

274> **Não disponível:** todos os [recursos que requerem uma assinatura Claude](#features-that-require-a-claude-subscription), além de [fast mode](https://code.claude.com/docs/pt/fast-mode.md), [Advisor](https://code.claude.com/docs/pt/advisor.md), [Channels](https://code.claude.com/docs/pt/channels.md), [GitLab CI/CD](https://code.claude.com/docs/pt/gitlab-ci-cd.md), o [dashboard de análise](https://code.claude.com/docs/pt/analytics.md), [server-managed settings](https://code.claude.com/docs/pt/server-managed-settings.md) e os [comandos `/design-sync` e `/import`](https://code.claude.com/docs/pt/commands#all-commands).284> **Não disponível:** todos os [recursos que requerem uma assinatura Claude](#features-that-require-a-claude-subscription), além de [fast mode](https://code.claude.com/docs/pt/fast-mode.md), [Advisor](https://code.claude.com/docs/pt/advisor.md), [Channels](https://code.claude.com/docs/pt/channels.md), [GitLab CI/CD](https://code.claude.com/docs/pt/gitlab-ci-cd.md), [Code Mode](https://code.claude.com/docs/pt/code-mode.md), o [dashboard de análise](https://code.claude.com/docs/pt/analytics.md), [server-managed settings](https://code.claude.com/docs/pt/server-managed-settings.md) e os [comandos `/design-sync` e `/import`](https://code.claude.com/docs/pt/commands#all-commands).

275>285>

276> **Suporte parcial:**286> **Suporte parcial:**

277>287>

gateways.md +1 −1

Details

63* **Telemetria do cliente**: Claude Code desativa sua análise de cliente vinculada à Anthropic quando uma sessão se conecta a um Claude apps gateway. Para manter a telemetria de inicialização anterior à conexão desativada também, entregue [`DISABLE_TELEMETRY`](https://code.claude.com/docs/pt/managed-settings#turn-telemetry-off-for-your-organization) nas [configurações gerenciadas do lado do cliente](https://code.claude.com/docs/pt/claude-apps-gateway-config.md#client-side-managed-settings) em cada dispositivo.63* **Telemetria do cliente**: Claude Code desativa sua análise de cliente vinculada à Anthropic quando uma sessão se conecta a um Claude apps gateway. Para manter a telemetria de inicialização anterior à conexão desativada também, entregue [`DISABLE_TELEMETRY`](https://code.claude.com/docs/pt/managed-settings#turn-telemetry-off-for-your-organization) nas [configurações gerenciadas do lado do cliente](https://code.claude.com/docs/pt/claude-apps-gateway-config.md#client-side-managed-settings) em cada dispositivo.

64* **Telemetria do cliente em outros gateways**: se Claude Code envia o fluxo de telemetria do cliente opcional depende do seu provedor, e a [tabela de padrões de telemetria](https://code.claude.com/docs/pt/data-usage.md#default-behaviors-by-api-provider) aborda cada caso.64* **Telemetria do cliente em outros gateways**: se Claude Code envia o fluxo de telemetria do cliente opcional depende do seu provedor, e a [tabela de padrões de telemetria](https://code.claude.com/docs/pt/data-usage.md#default-behaviors-by-api-provider) aborda cada caso.

65* **Destinos de telemetria**: para onde Claude Code envia a telemetria de uma sessão de gateway depende de como a sessão se conectou, e [O que é imposto aos desenvolvedores](https://code.claude.com/docs/pt/claude-apps-gateway#whats-enforced-on-developers) diz para onde as exportações de cada tipo de sessão vão.65* **Destinos de telemetria**: para onde Claude Code envia a telemetria de uma sessão de gateway depende de como a sessão se conectou, e [O que é imposto aos desenvolvedores](https://code.claude.com/docs/pt/claude-apps-gateway#whats-enforced-on-developers) diz para onde as exportações de cada tipo de sessão vão.

66* **Proxies HTTP corporativos**: um `HTTPS_PROXY` fica entre Claude Code e cada servidor com o qual ele se comunica, incluindo o gateway. Se sua rede exigir um, [configure o proxy](https://code.claude.com/docs/pt/network-config.md) além do gateway. Para um Claude apps gateway que você hospeda, [o login verifica se o host do proxy também está em uma rede privada](https://code.claude.com/docs/pt/claude-apps-gateway#prerequisites); se não estiver, adicione o host do gateway a `NO_PROXY` para que a CLI se conecte a ele diretamente.66* **Proxies HTTP corporativos**: Claude Code envia suas requisições, incluindo as destinadas ao gateway, por meio do proxy em `HTTPS_PROXY`. Se sua rede exigir um proxy, [configure-o](https://code.claude.com/docs/pt/network-config.md). Se o proxy se aplicar a um Claude apps gateway que você hospeda, o [login](https://code.claude.com/docs/pt/claude-apps-gateway#prerequisites) precisa que o hostname do proxy seja resolvido para endereços privados, ou que o host do gateway esteja em `NO_PROXY`.

67 67 

68## Próximas etapas68## Próximas etapas

69 69 

Details

129| Administration | Leitura |129| Administration | Leitura |

130| Checks | Leitura e escrita |130| Checks | Leitura e escrita |

131| Contents | Leitura e escrita |131| Contents | Leitura e escrita |

132| Dependabot alerts | Leitura |

132| Discussions | Leitura e escrita |133| Discussions | Leitura e escrita |

133| Issues | Leitura e escrita |134| Issues | Leitura e escrita |

134| Members | Leitura |135| Members | Leitura |

Details

84> Crie um aplicativo Microsoft Entra com uma credencial federada para seu repositório, seguindo o [guia da Microsoft para autenticação do GitHub Actions](https://learn.microsoft.com/en-us/azure/developer/github/connect-from-azure-openid-connect):84> Crie um aplicativo Microsoft Entra com uma credencial federada para seu repositório, seguindo o [guia da Microsoft para autenticação do GitHub Actions](https://learn.microsoft.com/en-us/azure/developer/github/connect-from-azure-openid-connect):

85>85>

86> * Registre um aplicativo Microsoft Entra e adicione uma credencial de identidade federada que confie em tokens que o GitHub emite para seu repositório. Uma identidade gerenciada atribuída pelo usuário funciona no lugar de um aplicativo. Ambos têm o ID do cliente que você anota abaixo86> * Registre um aplicativo Microsoft Entra e adicione uma credencial de identidade federada que confie em tokens que o GitHub emite para seu repositório. Uma identidade gerenciada atribuída pelo usuário funciona no lugar de um aplicativo. Ambos têm o ID do cliente que você anota abaixo

87> * Atribua ao aplicativo a função `Azure AI User` em seu recurso Foundry. Veja [Configuração RBAC do Azure](https://code.claude.com/docs/pt/microsoft-foundry.md#azure-rbac-configuration) para uma função personalizada mais estreita87> * Atribua ao aplicativo a função `Foundry User` em seu recurso Foundry. Veja [Configuração RBAC do Azure](https://code.claude.com/docs/pt/microsoft-foundry.md#azure-rbac-configuration) para a outra função integrada e para funções personalizadas

88>88>

89> Anote o ID do cliente do aplicativo, seu ID de locatário e seu ID de assinatura. Você os adiciona como segredos na próxima etapa.89> Anote o ID do cliente do aplicativo, seu ID de locatário e seu ID de assinatura. Você os adiciona como segredos na próxima etapa.

90 90 

Details

228 228 

229### Quando um modelo é desativado durante a sessão229### Quando um modelo é desativado durante a sessão

230 230 

231Se seu projeto perder acesso ao modelo em que sua sessão está sendo executada, por exemplo porque um administrador o desativa no [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden), Claude Code muda a sessão para outro modelo em vez de falhar em cada solicitação, e mostra `Switched to <fallback> because <model> is not available`. Ele tenta os mesmos modelos que o fallback de inicialização: versões anteriores do mesmo nível primeiro e, para uma sessão Opus sem nenhuma versão Opus disponível, o modelo Sonnet padrão.231Quando a Plataforma de Agentes rejeita o modelo da sua sessão como indisponível no seu projeto ou região, Claude Code muda sua sessão para outro modelo, e você pode continuar trabalhando. Você vê uma mensagem que começa com `Switched to <fallback> because <model> is not available`. Isso acontece, por exemplo, quando um administrador desativa o modelo no [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) ou ele não é oferecido na sua região.

232 232 

233A mudança se aplica apenas a um nível que você não fixou, a mesma condição que o fallback de inicialização. Uma sessão em uma versão específica que você escolheu mantém seu modelo e, sem uma cadeia de modelo fallback, a solicitação falha em vez disso. No [modo automático](https://code.claude.com/docs/pt/permission-modes.md#enable-auto-mode-on-bedrock-agent-platform-or-foundry), Claude Code muda apenas para um modelo que o modo automático suporta na Plataforma de Agentes. Se nenhum desses modelos estiver disponível também, a solicitação falha.233Se você configurou uma [cadeia de modelos de fallback](https://code.claude.com/docs/pt/model-config.md#fallback-model-chains), Claude Code muda para o fallback configurado em vez disso. Sem uma cadeia, a requisição falha em casos como estes:

234 234 

235Uma [cadeia de modelo fallback](https://code.claude.com/docs/pt/model-config.md#fallback-model-chains) que você configura substitui a mudança de nível: nessas recusas Claude Code muda para seu fallback configurado em vez disso. Para fazer com que solicitações recusadas falhem em vez de mudar, defina [`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](https://code.claude.com/docs/pt/env-vars). Uma cadeia de fallback que você configurou ainda muda nessas recusas; remova a cadeia também se quiser que cada solicitação recusada falhe.235* Sua sessão está em um modelo fixado ou em uma versão específica que você escolheu

236* Nenhum dos [modelos que Claude Code tenta](#startup-model-checks) está disponível. No [modo auto](https://code.claude.com/docs/pt/permission-modes.md#enable-auto-mode-on-bedrock-agent-platform-or-foundry), Claude Code muda apenas para um modelo que o modo auto suporta na Plataforma de Agentes.

237 

238Para continuar trabalhando, execute `/model` na sessão e pressione `s` em um modelo disponível no seu projeto e região, o que mantém seu padrão inalterado.

239 

240Para fazer com que requisições rejeitadas falhem em vez de mudar de modelo, defina [`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](https://code.claude.com/docs/pt/env-vars). Se você configurou uma cadeia de modelos de fallback, remova-a também, porque Claude Code ainda muda para esse fallback.

236 241 

237## Configuração de IAM242## Configuração de IAM

238 243 

hooks.md +22 −7

Details

257Administradores podem usar [`allowManagedHooksOnly`](https://code.claude.com/docs/pt/settings-reference#allowmanagedhooksonly) em [configurações gerenciadas](https://code.claude.com/docs/pt/managed-settings.md) para restringir quais hooks executam:257Administradores podem usar [`allowManagedHooksOnly`](https://code.claude.com/docs/pt/settings-reference#allowmanagedhooksonly) em [configurações gerenciadas](https://code.claude.com/docs/pt/managed-settings.md) para restringir quais hooks executam:

258 258 

259* Seus hooks de usuário, projeto, local e plugin são bloqueados. Hooks de plugins forçadamente ativados em configurações gerenciadas `enabledPlugins` são isentos259* Seus hooks de usuário, projeto, local e plugin são bloqueados. Hooks de plugins forçadamente ativados em configurações gerenciadas `enabledPlugins` são isentos

260* Claude Code também restringe suas configurações [`statusLine`](https://code.claude.com/docs/pt/statusline), [`fileSuggestion`](https://code.claude.com/docs/pt/settings-reference#filesuggestion) e [`subagentStatusLine`](https://code.claude.com/docs/pt/statusline#subagent-status-lines) às configurações gerenciadas260* Claude Code também restringe suas configurações [`statusLine`](https://code.claude.com/docs/pt/statusline) e [`fileSuggestion`](https://code.claude.com/docs/pt/settings-reference#filesuggestion) às configurações gerenciadas

261* Claude Code também desabilita plugins com uma [fonte `command`](https://code.claude.com/docs/pt/plugins/marketplace-reference#command-plugin-source), incluindo plugins forçadamente ativados em configurações gerenciadas `enabledPlugins`, a menos que [`disableCommandPluginSources`](https://code.claude.com/docs/pt/settings-reference#disablecommandpluginsources) seja explicitamente definido como `false`. Fontes `command` requerem Claude Code v2.1.229 ou posterior261* Claude Code também desabilita plugins com uma [fonte `command`](https://code.claude.com/docs/pt/plugins/marketplace-reference#command-plugin-source), incluindo plugins forçadamente ativados em configurações gerenciadas `enabledPlugins`, a menos que [`disableCommandPluginSources`](https://code.claude.com/docs/pt/settings-reference#disablecommandpluginsources) seja explicitamente definido como `false`. Fontes `command` requerem Claude Code v2.1.229 ou posterior

262* Claude Code também bloqueia [comandos `headersHelper`](https://code.claude.com/docs/pt/plugins/host-marketplace#authenticate-archive-downloads) do marketplace a menos que [`disableCommandPluginSources`](https://code.claude.com/docs/pt/settings-reference#disablecommandpluginsources) seja explicitamente definido como `false`, exceto para um marketplace que as próprias configurações gerenciadas declarem262* Claude Code também bloqueia [comandos `headersHelper`](https://code.claude.com/docs/pt/plugins/host-marketplace#authenticate-archive-downloads) do marketplace a menos que [`disableCommandPluginSources`](https://code.claude.com/docs/pt/settings-reference#disablecommandpluginsources) seja explicitamente definido como `false`, exceto para um marketplace que as próprias configurações gerenciadas declarem

263 263 


505| `url` | sim | URL para enviar a solicitação POST |505| `url` | sim | URL para enviar a solicitação POST |

506| `headers` | não | Cabeçalhos HTTP adicionais como pares chave-valor. Valores suportam interpolação de variável de ambiente usando sintaxe `$VAR_NAME` ou `${VAR_NAME}`. Apenas variáveis listadas em `allowedEnvVars` são resolvidas |506| `headers` | não | Cabeçalhos HTTP adicionais como pares chave-valor. Valores suportam interpolação de variável de ambiente usando sintaxe `$VAR_NAME` ou `${VAR_NAME}`. Apenas variáveis listadas em `allowedEnvVars` são resolvidas |

507| `allowedEnvVars` | não | Lista de nomes de variáveis de ambiente que podem ser interpoladas em valores de cabeçalho. Referências a variáveis não listadas são substituídas por strings vazias. Obrigatório para qualquer interpolação de variável de ambiente funcionar |507| `allowedEnvVars` | não | Lista de nomes de variáveis de ambiente que podem ser interpoladas em valores de cabeçalho. Referências a variáveis não listadas são substituídas por strings vazias. Obrigatório para qualquer interpolação de variável de ambiente funcionar |

508| `onFailure` | não | O que acontece com a ação quando o hook falha: `"continue"`, o padrão, ou `"block"`. Consulte [Bloquear a ação quando um hook falha](#block-the-action-when-a-hook-fails). Requer Claude Code v2.1.295 ou posterior |508| `onFailure` | não | Se a ação que acionou o hook prossegue quando o hook falha: `"continue"` ou `"block"`. Consulte [Bloquear a ação quando um hook falha](#block-the-action-when-a-hook-fails) para `"block"` e para deixar o campo sem definir. Requer Claude Code v2.1.295 ou posterior |

509 509 

510Claude Code envia a [entrada JSON](#hook-input-and-output) do hook como corpo da solicitação POST com `Content-Type: application/json`. O corpo da resposta usa o mesmo [formato de saída JSON](#json-output) que hooks de comando.510Claude Code envia a [entrada JSON](#hook-input-and-output) do hook como corpo da solicitação POST com `Content-Type: application/json`. O corpo da resposta usa o mesmo [formato de saída JSON](#json-output) que hooks de comando.

511 511 


901 901 

902Em `PreToolUse`, um hook `command`, `http` ou `mcp_tool` expirado não bloqueia a chamada da ferramenta, exceto para hooks [cuja falha bloqueia a ação](#block-the-action-when-a-hook-fails). A chamada continua através do [fluxo de permissão](https://code.claude.com/docs/pt/permissions.md) normal, portanto não conte com um hook travado para agir como um portão. Para bloquear a chamada quando um hook `command` ou `http` atinge o timeout, defina [`onFailure: "block"`](#block-the-action-when-a-hook-fails). Um [hook de callback do Agent SDK](https://code.claude.com/docs/pt/agent-sdk/hooks.md) que excede seu timeout [bloqueia a chamada da ferramenta](#pretooluse).902Em `PreToolUse`, um hook `command`, `http` ou `mcp_tool` expirado não bloqueia a chamada da ferramenta, exceto para hooks [cuja falha bloqueia a ação](#block-the-action-when-a-hook-fails). A chamada continua através do [fluxo de permissão](https://code.claude.com/docs/pt/permissions.md) normal, portanto não conte com um hook travado para agir como um portão. Para bloquear a chamada quando um hook `command` ou `http` atinge o timeout, defina [`onFailure: "block"`](#block-the-action-when-a-hook-fails). Um [hook de callback do Agent SDK](https://code.claude.com/docs/pt/agent-sdk/hooks.md) que excede seu timeout [bloqueia a chamada da ferramenta](#pretooluse).

903 903 

904> [!NOTE]

905>

906> Se você usa o Code Mode, os timeouts em `PreToolUse` funcionam de forma diferente. Consulte [Chamada de ferramenta recusada por um hook](https://code.claude.com/docs/pt/code-mode.md#tool-call-refused-by-a-hook).

907 

904#### Hooks que iniciam um processo em segundo plano908#### Hooks que iniciam um processo em segundo plano

905 909 

906Um hook pode iniciar um programa de longa duração, como um servidor de desenvolvimento, e deixá-lo em execução enquanto a sessão continua. No script do hook ou no comando em [forma shell](#exec-form-and-shell-form):910Um hook pode iniciar um programa de longa duração, como um servidor de desenvolvimento, e deixá-lo em execução enquanto a sessão continua. No script do hook ou no comando em [forma shell](#exec-form-and-shell-form):


981* **Hooks `Stop`, `SubagentStop`, `TaskCompleted` e `TeammateIdle`**: o código de saída 2 nesses eventos manda Claude de volta para continuar trabalhando, e Claude não consegue reparar um hook que não executa985* **Hooks `Stop`, `SubagentStop`, `TaskCompleted` e `TeammateIdle`**: o código de saída 2 nesses eventos manda Claude de volta para continuar trabalhando, e Claude não consegue reparar um hook que não executa

982* **Hooks de comando em segundo plano**: hooks de comando que definem [`async` ou `asyncRewake`](#run-hooks-in-the-background)986* **Hooks de comando em segundo plano**: hooks de comando que definem [`async` ou `asyncRewake`](#run-hooks-in-the-background)

983 987 

988> [!NOTE]

989>

990> Se você usa o Code Mode, as falhas em `PreToolUse` funcionam de forma diferente. Consulte [Chamada de ferramenta recusada por um hook](https://code.claude.com/docs/pt/code-mode.md#tool-call-refused-by-a-hook).

991 

984#### Hooks com falha no Windows sem Git Bash992#### Hooks com falha no Windows sem Git Bash

985 993 

986Se o erro de uma chamada de ferramenta bloqueada incluir este texto, um hook de comando `PreToolUse` ou `PermissionRequest` falhou ou atingiu o timeout e bloqueou a chamada:994Se o erro de uma chamada de ferramenta bloqueada incluir este texto, um hook de comando `PreToolUse` ou `PermissionRequest` falhou ou atingiu o timeout e bloqueou a chamada:


1512* Uma [tarefa agendada com escopo de sessão](https://code.claude.com/docs/pt/scheduled-tasks.md) é disparada, incluindo uma iteração de `/loop`1520* Uma [tarefa agendada com escopo de sessão](https://code.claude.com/docs/pt/scheduled-tasks.md) é disparada, incluindo uma iteração de `/loop`

1513* Um [subagente em segundo plano](https://code.claude.com/docs/pt/sub-agents.md#run-subagents-in-foreground-or-background) reporta de volta à sessão que o iniciou1521* Um [subagente em segundo plano](https://code.claude.com/docs/pt/sub-agents.md#run-subagents-in-foreground-or-background) reporta de volta à sessão que o iniciou

1514* Uma [mensagem que outra sessão envia](https://code.claude.com/docs/pt/cross-session-messaging.md) chega à sua conversa principal1522* Uma [mensagem que outra sessão envia](https://code.claude.com/docs/pt/cross-session-messaging.md) chega à sua conversa principal

1523* A saída do código do Claude em uma sessão de [Code Mode](https://code.claude.com/docs/pt/code-mode.md#code-output-withheld-by-a-hook), para hooks `command`, `http` e `mcp_tool`, quando o código pode ser executado em segundo plano

1515 1524 

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

1517 1526 


1560| Campo | Descrição |1569| Campo | Descrição |

1561| :- | :- |1570| :- | :- |

1562| `decision` | `"block"` interrompe o prompt antes que ele chegue ao Claude. Omita para permitir que o prompt prossiga |1571| `decision` | `"block"` interrompe o prompt antes que ele chegue ao Claude. Omita para permitir que o prompt prossiga |

1563| `reason` | Mostrado ao usuário quando `decision` é `"block"`. Não é adicionado ao contexto |1572| `reason` | Mostrado ao usuário quando `decision` é `"block"`. Não é adicionado ao contexto, exceto quando o hook bloqueia a [saída do Code Mode](https://code.claude.com/docs/pt/code-mode.md#code-output-withheld-by-a-hook) |

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

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

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

1567 1576 

1568Um hook que bloqueia saindo com 2 é encaminhado da mesma forma que `reason`: a mensagem de bloqueio mostra o texto do stderr ao usuário, e ele não é adicionado ao contexto.1577Se o seu hook bloquear saindo com código 2, o texto do stderr é tratado da mesma forma que `reason`.

1569 1578 

1570```json theme={null}1579```json theme={null}

1571{1580{


3000 3009 

3001É executado quando um arquivo de configuração muda durante uma sessão. Use-o para auditar alterações de configurações, impor políticas de segurança ou bloquear modificações não autorizadas em arquivos de configuração.3010É executado quando um arquivo de configuração muda durante uma sessão. Use-o para auditar alterações de configurações, impor políticas de segurança ou bloquear modificações não autorizadas em arquivos de configuração.

3002 3011 

3003O Claude Code executa hooks ConfigChange quando um arquivo de configurações, um arquivo de política gerenciada ou um arquivo de skill muda. Para política gerenciada, ele os executa apenas quando `managed-settings.json` ou um arquivo em `managed-settings.d/` muda. Ele aplica [configurações gerenciadas pelo servidor](https://code.claude.com/docs/pt/server-managed-settings.md) e alterações nas preferências gerenciadas do macOS ou na política do registro do Windows sem executá-los. No WSL com [`wslInheritsWindowsSettings`](https://code.claude.com/docs/pt/settings-reference#wslinheritswindowssettings), ele também aplica um arquivo de configurações gerenciadas do lado do Windows alterado na sua verificação periódica de política sem executá-los.3012O Claude Code executa hooks ConfigChange quando um arquivo de configurações, um arquivo de política gerenciada ou um arquivo de skill muda. Para política gerenciada, ele os executa somente quando `managed-settings.json` ou um arquivo em `managed-settings.d/` muda.

3004 3013 

3005O matcher filtra pela origem da configuração:3014O matcher filtra pela origem da configuração:

3006 3015 


3012| `policy_settings` | `managed-settings.json` ou um arquivo em `managed-settings.d/` muda |3021| `policy_settings` | `managed-settings.json` ou um arquivo em `managed-settings.d/` muda |

3013| `skills` | Um arquivo de skill em `.claude/skills/` muda |3022| `skills` | Um arquivo de skill em `.claude/skills/` muda |

3014 3023 

3015Este exemplo registra em log todas as alterações de configuração para auditoria de segurança:3024Alterações como estas entram em vigor sem executar os hooks:

3025 

3026* Regras e configurações que você salva com **Yes, and don't ask again**, `/permissions` ou `/model`, na sessão a partir da qual você as salvou. Se outra sessão aberta carregar o mesmo arquivo, os hooks são executados lá.

3027* Atualizações nas [configurações gerenciadas pelo servidor](https://code.claude.com/docs/pt/server-managed-settings.md), nas preferências gerenciadas do macOS ou na política do registro do Windows

3028* No WSL com [`wslInheritsWindowsSettings`](https://code.claude.com/docs/pt/settings-reference#wslinheritswindowssettings), uma alteração no arquivo de configurações gerenciadas do lado do Windows, que o Claude Code detecta em sua verificação periódica de políticas

3029 

3030Este exemplo registra em log as alterações de configuração para auditoria de segurança:

3016 3031 

3017```json theme={null}3032```json theme={null}

3018{3033{


3335 "hooks": [3350 "hooks": [

3336 {3351 {

3337 "type": "command",3352 "type": "command",

3338 "command": "bash -c 'jq -r .worktree_path | xargs rm -rf'"3353 "command": "bash -c 'p=$(jq -er .worktree_path) && rm -rf -- \"$p\"'"

3339 }3354 }

3340 ]3355 ]

3341 }3356 }

hooks-guide.md +4 −4

Details

50 "PostToolUse": [50 "PostToolUse": [

51 {51 {

52 "matcher": "Edit|Write",52 "matcher": "Edit|Write",

53 "hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write" }]53 "hooks": [{ "type": "command", "command": "f=$(jq -r '.tool_input.file_path') && npx prettier --write --ignore-unknown \"$f\"" }]

54 }54 }

55 ],55 ],

56 "Notification": [56 "Notification": [


221 "hooks": [221 "hooks": [

222 {222 {

223 "type": "command",223 "type": "command",

224 "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"224 "command": "f=$(jq -r '.tool_input.file_path') && npx prettier --write --ignore-unknown \"$f\""

225 }225 }

226 ]226 ]

227 }227 }


336 336 

337Rastreie quando arquivos de configuração ou skills mudam durante uma sessão. O evento `ConfigChange` dispara quando um processo externo ou editor modifica um arquivo de configuração, para que você possa registrar mudanças para conformidade ou bloquear modificações não autorizadas.337Rastreie quando arquivos de configuração ou skills mudam durante uma sessão. O evento `ConfigChange` dispara quando um processo externo ou editor modifica um arquivo de configuração, para que você possa registrar mudanças para conformidade ou bloquear modificações não autorizadas.

338 338 

339Este exemplo anexa cada mudança a um log de auditoria. Adicione isto a `~/.claude/settings.json`:339Este exemplo anexa cada evento a um log de auditoria. Adicione isto a `~/.claude/settings.json`:

340 340 

341```json theme={null}341```json theme={null}

342{342{


925Seu endpoint responde com um corpo JSON no mesmo [formato de saída](https://code.claude.com/docs/pt/hooks.md#json-output) que hooks de comando, e o Claude Code também verifica o status da resposta:925Seu endpoint responde com um corpo JSON no mesmo [formato de saída](https://code.claude.com/docs/pt/hooks.md#json-output) que hooks de comando, e o Claude Code também verifica o status da resposta:

926 926 

927* **Status 2xx**: para bloquear uma chamada de ferramenta, retorne os campos `hookSpecificOutput` apropriados no corpo.927* **Status 2xx**: para bloquear uma chamada de ferramenta, retorne os campos `hookSpecificOutput` apropriados no corpo.

928* **Qualquer outro status, ou se a requisição falhar**: o Claude Code reporta um [erro não bloqueante](https://code.claude.com/docs/pt/hooks.md#exit-code-output) e permite que a ação continue. Para fazer com que um endpoint com falha bloqueie a ação, defina [`onFailure: "block"`](https://code.claude.com/docs/pt/hooks#block-the-action-when-a-hook-fails) no hook.928* **Qualquer outro status, ou se a requisição falhar**: o Claude Code reporta um [erro não bloqueante](https://code.claude.com/docs/pt/hooks.md#exit-code-output) e permite que a ação continue, exceto quando o hook é um [cuja falha bloqueia a ação](https://code.claude.com/docs/pt/hooks.md#block-the-action-when-a-hook-fails). Para fazer com que um endpoint com falha bloqueie a ação, defina [`onFailure: "block"`](https://code.claude.com/docs/pt/hooks#block-the-action-when-a-hook-fails) no hook.

929 929 

930Valores de header suportam interpolação de variável de ambiente usando sintaxe `$VAR_NAME` ou `${VAR_NAME}`. Apenas variáveis listadas no array `allowedEnvVars` são resolvidas; todas as outras referências `$VAR` permanecem vazias.930Valores de header suportam interpolação de variável de ambiente usando sintaxe `$VAR_NAME` ou `${VAR_NAME}`. Apenas variáveis listadas no array `allowedEnvVars` são resolvidas; todas as outras referências `$VAR` permanecem vazias.

931 931 

Details

32| `Ctrl+Z` | Suspender Claude Code | Apenas Unix. Suspende o processo para seu shell; execute `fg` para retomar |32| `Ctrl+Z` | Suspender Claude Code | Apenas Unix. Suspende o processo para seu shell; execute `fg` para retomar |

33| `Setas Esquerda/Direita` | Ciclar através de abas de diálogo | Navegue entre abas em diálogos de permissão e menus. Em um diálogo com abas, as teclas alternam abas enquanto a linha de abas tem foco. Consulte [Ações de abas](https://code.claude.com/docs/pt/keybindings.md#tabs-actions) para saber como o foco se move |33| `Setas Esquerda/Direita` | Ciclar através de abas de diálogo | Navegue entre abas em diálogos de permissão e menus. Em um diálogo com abas, as teclas alternam abas enquanto a linha de abas tem foco. Consulte [Ações de abas](https://code.claude.com/docs/pt/keybindings.md#tabs-actions) para saber como o foco se move |

34| `Tab` | Aceitar uma sugestão de preenchimento automático ou adicionar um comentário a uma resposta de permissão | Enquanto as sugestões de preenchimento automático estão sendo mostradas na entrada do prompt, aceita a sugestão selecionada. Na maioria dos prompts de permissão, com **Sim** ou **Não** focado, abre um campo de comentário nessa opção, e pressioná-lo novamente fecha o campo. Consulte [adicionar um comentário quando você responde a um prompt de permissão](https://code.claude.com/docs/pt/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) |34| `Tab` | Aceitar uma sugestão de preenchimento automático ou adicionar um comentário a uma resposta de permissão | Enquanto as sugestões de preenchimento automático estão sendo mostradas na entrada do prompt, aceita a sugestão selecionada. Na maioria dos prompts de permissão, com **Sim** ou **Não** focado, abre um campo de comentário nessa opção, e pressioná-lo novamente fecha o campo. Consulte [adicionar um comentário quando você responde a um prompt de permissão](https://code.claude.com/docs/pt/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) |

35| `Setas Para Cima/Para Baixo` ou `Ctrl+P`/`Ctrl+N` | Mover cursor ou navegar no histórico de comandos | Quando a entrada abrange mais de uma linha visual, seja envolvida ou multilinha, primeiro move o cursor dentro do prompt. Uma vez que o cursor está na primeira ou última linha visual, pressioná-lo novamente navega no histórico de comandos. Enquanto você tem mensagens enfileiradas, `Para Cima` da primeira linha em vez disso [as retira](#take-back-what-you-queued) |35| `Setas Para Cima/Para Baixo` ou `Ctrl+P`/`Ctrl+N` | Mover cursor ou navegar no histórico de comandos | Quando a entrada abrange mais de uma linha visual, seja envolvida ou multilinha, primeiro move o cursor dentro do prompt. Uma vez que o cursor está na primeira ou última linha visual, pressioná-lo novamente navega no histórico de comandos. Enquanto você tem mensagens enfileiradas, `Up` da primeira linha em vez disso [as retira](#take-back-what-you-queued) |

36| `Esc` | Interromper Claude ou fechar um diálogo | Pare a resposta atual ou chamada de ferramenta no meio da volta para que você possa redirecionar. Claude mantém o trabalho feito até agora. Se você tiver [mensagens enfileiradas](#queue-messages-while-claude-works), Claude Code as envia a seguir. Quando um diálogo está aberto, `Esc` fecha o diálogo. Enquanto um item de rodapé está selecionado, como uma linha no [painel de subagente](https://code.claude.com/docs/pt/sub-agents.md#run-subagents-in-foreground-or-background) abaixo do prompt, `Esc` [o deseleciona](https://code.claude.com/docs/pt/keybindings.md#footer-actions) em vez de interromper. Em um prompt de permissão, `Esc` recusa a ação, o mesmo que [**Não** sem um comentário](https://code.claude.com/docs/pt/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) |36| `Esc` | Interromper Claude ou fechar um diálogo | Pare a resposta atual ou chamada de ferramenta no meio da volta para que você possa redirecionar. Claude mantém o trabalho feito até agora. Se você tiver [mensagens enfileiradas](#queue-messages-while-claude-works), Claude Code as envia a seguir. Quando um diálogo está aberto, `Esc` fecha o diálogo. Enquanto um item de rodapé está selecionado, como uma linha no [painel de subagente](https://code.claude.com/docs/pt/sub-agents.md#run-subagents-in-foreground-or-background) abaixo do prompt, `Esc` [o deseleciona](https://code.claude.com/docs/pt/keybindings.md#footer-actions) em vez de interromper. Em um prompt de permissão, `Esc` recusa a ação, o mesmo que [**Não** sem um comentário](https://code.claude.com/docs/pt/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) |

37| `Esc` + `Esc` | Limpar rascunho de entrada ou retroceder | Quando a entrada do prompt contém texto, duplo `Esc` limpa-o e salva o rascunho no histórico para que `Para Cima` o recupere. Quando a entrada está vazia, duplo `Esc` abre o [menu de retrocesso](https://code.claude.com/docs/pt/checkpointing.md) para restaurar ou resumir código e conversa de um ponto anterior |37| `Esc` + `Esc` | Limpar rascunho de entrada ou retroceder | Quando a entrada do prompt contém texto, duplo `Esc` limpa-o e salva o rascunho no histórico para que `Up` o recupere. Quando a entrada está vazia, duplo `Esc` abre o [menu de retrocesso](https://code.claude.com/docs/pt/checkpointing.md) para restaurar ou resumir código e conversa de um ponto anterior |

38| `Ctrl+Enter` ou `Ctrl+X Ctrl+S` | Enviar mensagens enfileiradas agora | Envia suas [mensagens enfileiradas](#queue-messages-while-claude-works) e seu rascunho com elas imediatamente. [Quando Claude Code envia o que você enfileirou](#when-claude-code-sends-what-you-queued) cobre o que acontece com a volta em que Claude está trabalhando. No [modo shell](#shell-mode-with-prefix), a tecla apenas enfileira seu comando. Em terminais que não relatam chaves estendidas, `Ctrl+Enter` chega como `Enter` simples; `Ctrl+X Ctrl+S` funciona em qualquer terminal. Requer Claude Code v2.1.275 ou posterior |38| `Ctrl+Enter` ou `Ctrl+X Ctrl+S` | Enviar mensagens enfileiradas agora | Envia suas [mensagens enfileiradas](#queue-messages-while-claude-works) e seu rascunho com elas imediatamente. [Quando Claude Code envia o que você enfileirou](#when-claude-code-sends-what-you-queued) cobre o que acontece com a volta em que Claude está trabalhando. No [modo shell](#shell-mode-with-prefix), a tecla apenas enfileira seu comando. Em terminais que não relatam chaves estendidas, `Ctrl+Enter` chega como `Enter` simples; `Ctrl+X Ctrl+S` funciona em qualquer terminal. Requer Claude Code v2.1.275 ou posterior |

39| `Shift+Tab`, ou `Alt+M` no Windows quando o runtime Node ou Bun não ativa o modo de entrada VT | Ciclar modos de permissão | Cicle através de `default` (rotulado Manual no indicador de modo), `acceptEdits`, `plan` e, quando disponível, `bypassPermissions` e depois `auto`. De `auto`, o primeiro pressionamento muda para `default`. Consulte [modos de permissão](https://code.claude.com/docs/pt/permission-modes.md). Em um prompt de permissão de arquivo, a mesma tecla fecha um [campo de comentário](https://code.claude.com/docs/pt/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) aberto. Sem campo aberto, seleciona a opção que permite a ação para o resto da sessão, quando o prompt oferece essa opção |39| `Shift+Tab`, ou `Alt+M` no Windows quando o runtime Node ou Bun não ativa o modo de entrada VT | Ciclar modos de permissão | Cicle através de `default` (rotulado Manual no indicador de modo), `acceptEdits` e `plan`, depois `bypassPermissions` e `auto` quando disponíveis. Consulte [modos de permissão](https://code.claude.com/docs/pt/permission-modes.md). Em um prompt de permissão de arquivo, a mesma tecla fecha um [campo de comentário](https://code.claude.com/docs/pt/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) aberto. Sem campo aberto, seleciona a opção que permite a ação para o resto da sessão, quando o prompt oferece essa opção. No prompt de aprovação do plano, aprova o plano |

40| `Option+P` (macOS) ou `Alt+P` (Windows/Linux) | Alternar modelo | Alterne modelos sem limpar seu prompt |40| `Option+P` (macOS) ou `Alt+P` (Windows/Linux) | Alternar modelo | Alterne modelos sem limpar seu prompt |

41| `Option+T` (macOS) ou `Alt+T` (Windows/Linux) | Alternar pensamento estendido | Ativar ou desativar o modo de pensamento estendido. Não tem efeito no Opus 5.5, Sonnet 5.5, Haiku 5.5 ou nos modelos Fable, que sempre usam pensamento estendido. Funciona no macOS sem configurar Option como Meta |41| `Option+T` (macOS) ou `Alt+T` (Windows/Linux) | Alternar pensamento estendido | Ativar ou desativar o modo de pensamento estendido. Não tem efeito no Opus 5.5, Sonnet 5.5, Haiku 5.5 ou nos modelos Fable, que sempre usam pensamento estendido. Funciona no macOS sem configurar Option como Meta |

42| `Option+O` (macOS) ou `Alt+O` (Windows/Linux) | Alternar modo rápido | Ativar ou desativar [modo rápido](https://code.claude.com/docs/pt/fast-mode.md) |42| `Option+O` (macOS) ou `Alt+O` (Windows/Linux) | Alternar modo rápido | Ativar ou desativar [modo rápido](https://code.claude.com/docs/pt/fast-mode.md) |


81| :- | :- | :- |81| :- | :- | :- |

82| Escape rápido | `\` + `Enter` | Funciona em todos os terminais |82| Escape rápido | `\` + `Enter` | Funciona em todos os terminais |

83| Tecla Option | `Option+Enter` | Após ativar [Option como Meta](https://code.claude.com/docs/pt/terminal-config.md#enable-option-key-shortcuts-on-macos) no macOS |83| Tecla Option | `Option+Enter` | Após ativar [Option como Meta](https://code.claude.com/docs/pt/terminal-config.md#enable-option-key-shortcuts-on-macos) no macOS |

84| Shift+Enter | `Shift+Enter` | Nativo em iTerm2, WezTerm, Ghostty, Kitty, Warp, Apple Terminal, Windows Terminal. Para outros terminais, consulte [Inserir prompts multilinha](https://code.claude.com/docs/pt/terminal-config.md#enter-multiline-prompts) |84| Shift+Enter | `Shift+Enter` | Nativo em iTerm2, WezTerm, Ghostty, Kitty, Warp, Windows Terminal. Para outros terminais, consulte [Inserir prompts multilinha](https://code.claude.com/docs/pt/terminal-config.md#enter-multiline-prompts) |

85| Sequência de controle | `Ctrl+J` | Funciona em qualquer terminal sem configuração |85| Sequência de controle | `Ctrl+J` | Funciona em qualquer terminal sem configuração |

86| Modo de colagem | Colar diretamente | Para blocos de código, logs |86| Modo de colagem | Colar diretamente | Para blocos de código, logs |

87 87 


137 137 

138Ative a edição no estilo vim via `/config` → Editor mode.138Ative a edição no estilo vim via `/config` → Editor mode.

139 139 

140Claude Code mantém seu modo vim e posição do cursor quando você alterna o [visualizador de transcrição](#transcript-viewer) com `Ctrl+O` ou abre e fecha um painel como `/config`. Se você deixar o prompt em modo NORMAL, ele ainda estará em modo NORMAL quando você retornar, com o cursor onde você o deixou.

141 

142### Alternância de modo140### Alternância de modo

143 141 

144| Comando | Ação | Do modo |142| Comando | Ação | Do modo |


302 * Pressione `Ctrl+C` para cancelar e restaurar sua entrada original300 * Pressione `Ctrl+C` para cancelar e restaurar sua entrada original

303 * Pressione `Backspace` em pesquisa vazia para cancelar301 * Pressione `Backspace` em pesquisa vazia para cancelar

304 302 

305Aceitar uma correspondência ou cancelar a pesquisa entra em efeito imediatamente, mesmo enquanto Claude Code ainda está carregando o histórico.

306 

307Para encontrar um prompt anterior quando tudo o que você lembra é algo longo que colou nele, como um log de erro, pressione `Ctrl+R` e digite uma palavra do conteúdo colado. Requer Claude Code v2.1.314 ou posterior.303Para encontrar um prompt anterior quando tudo o que você lembra é algo longo que colou nele, como um log de erro, pressione `Ctrl+R` e digite uma palavra do conteúdo colado. Requer Claude Code v2.1.314 ou posterior.

308 304 

309## Comandos Bash em segundo plano305## Comandos Bash em segundo plano


600 596 

601### O que Claude Code sublinha597### O que Claude Code sublinha

602 598 

603Pouco depois que você pausa de digitar, Claude Code sublinha as palavras que o dicionário não conhece. Ele deixa a palavra que você ainda está digitando sozinha até que você se mova além dela, e nunca altera seu texto. Ele também pula texto que parece código:599Pouco depois que você pausa de digitar, Claude Code sublinha as palavras que o dicionário não conhece. Ele deixa a palavra que você ainda está digitando sozinha até que você se mova além dela. Ele também pula texto que parece código:

604 600 

605* Comandos como `/help`, menções `@`, URLs, caminhos de arquivo e sinalizadores como `--verbose`601* Comandos como `/help`, menções `@`, URLs, caminhos de arquivo e sinalizadores como `--verbose`

606* Palavras com dígitos, sublinhados ou uma letra maiúscula após a primeira, e texto entre backticks602* Palavras com dígitos, sublinhados ou uma letra maiúscula após a primeira, e texto entre backticks

keybindings.md +7 −2

Details

581 581 

582Claude Code vincula esses acordes padrão no prefixo `ctrl+x`, por contexto:582Claude Code vincula esses acordes padrão no prefixo `ctrl+x`, por contexto:

583 583 

584* `Chat`: `ctrl+x ctrl+k`, `ctrl+x ctrl+e`, `ctrl+x enter`, `ctrl+x ctrl+a`, `ctrl+x ctrl+s` e `ctrl+x tab`584* `Chat`: `ctrl+x ctrl+k`, `ctrl+x ctrl+e`, `ctrl+x enter`, `ctrl+x ctrl+a`, `ctrl+x ctrl+s`, `ctrl+x tab`, `ctrl+x ctrl+=`, `ctrl+x ctrl+-`, `ctrl+x ctrl+_`, `ctrl+x =` e `ctrl+x -`

585* `Task`: `ctrl+x ctrl+b`585* `Task`: `ctrl+x ctrl+b`

586* `DiffPanel`: `ctrl+x b`586* `DiffPanel`: `ctrl+x b`

587* `Pane`: `ctrl+x left`, `ctrl+x right`, `ctrl+x up`, `ctrl+x down` e `ctrl+x x`587* `Pane`: `ctrl+x left`, `ctrl+x right`, `ctrl+x up`, `ctrl+x down` e `ctrl+x x`


631 "ctrl+x ctrl+a": null,631 "ctrl+x ctrl+a": null,

632 "ctrl+x ctrl+s": null,632 "ctrl+x ctrl+s": null,

633 "ctrl+x tab": null,633 "ctrl+x tab": null,

634 "ctrl+x ctrl+=": null,

635 "ctrl+x ctrl+-": null,

636 "ctrl+x ctrl+_": null,

637 "ctrl+x =": null,

638 "ctrl+x -": null,

634 "ctrl+x": "chat:newline"639 "ctrl+x": "chat:newline"

635 }640 }

636 }641 }


716Claude Code valida seus atalhos de teclado e escreve um aviso no log de depuração para:721Claude Code valida seus atalhos de teclado e escreve um aviso no log de depuração para:

717 722 

718* Erros de análise (JSON inválido ou estrutura)723* Erros de análise (JSON inválido ou estrutura)

719* Modificadores com erro de digitação, como `ctl+k`. Claude Code descarta a parte que não reconhece e aplica a vinculação ao pressionamento de tecla que permanece, `k` neste exemplo.724* Modificadores com erro de digitação, como `ctl+k`. Claude Code ignora a vinculação inteira. Corrija o modificador, para `ctrl+k` neste exemplo.

720* Um espaço ao lado de `+` em uma string de tecla, como `ctrl+ k`. Claude Code lê a string como um [acorde](#chords) de `ctrl+` seguido de `k`. Nenhum pressionamento de tecla corresponde a `ctrl+` sozinho, então a vinculação nunca é acionada. Remova o espaço.725* Um espaço ao lado de `+` em uma string de tecla, como `ctrl+ k`. Claude Code lê a string como um [acorde](#chords) de `ctrl+` seguido de `k`. Nenhum pressionamento de tecla corresponde a `ctrl+` sozinho, então a vinculação nunca é acionada. Remova o espaço.

721* Nomes de contexto inválidos726* Nomes de contexto inválidos

722* Valores de ação inválidos, como uma ação que não é uma string ou `null`727* Valores de ação inválidos, como uma ação que não é uma string ou `null`

llm-gateway.md +4 −0

Details

43 43 

44Para fazer um gateway alcançado através de `ANTHROPIC_BASE_URL` o único destino que uma máquina gerenciada pode usar, defina [`allowedProviders`](https://code.claude.com/docs/pt/settings-reference#allowedproviders) como `["customEndpoint"]` no mesmo arquivo de configurações gerenciadas e coloque a `ANTHROPIC_BASE_URL` do gateway nesse bloco `env` do arquivo. Claude Code então recusa uma sessão apontada para qualquer outro lugar, incluindo diretamente para Anthropic ou para o próprio proxy de um desenvolvedor, e aceita `ANTHROPIC_BASE_URL` apenas com o valor que você definir lá. Para um gateway alcançado através de uma variável de endpoint específica do provedor, como `ANTHROPIC_BEDROCK_BASE_URL`, a entrada `allowedProviders` diz qual variável fixar. Requer Claude Code v2.1.285 ou posterior.44Para fazer um gateway alcançado através de `ANTHROPIC_BASE_URL` o único destino que uma máquina gerenciada pode usar, defina [`allowedProviders`](https://code.claude.com/docs/pt/settings-reference#allowedproviders) como `["customEndpoint"]` no mesmo arquivo de configurações gerenciadas e coloque a `ANTHROPIC_BASE_URL` do gateway nesse bloco `env` do arquivo. Claude Code então recusa uma sessão apontada para qualquer outro lugar, incluindo diretamente para Anthropic ou para o próprio proxy de um desenvolvedor, e aceita `ANTHROPIC_BASE_URL` apenas com o valor que você definir lá. Para um gateway alcançado através de uma variável de endpoint específica do provedor, como `ANTHROPIC_BEDROCK_BASE_URL`, a entrada `allowedProviders` diz qual variável fixar. Requer Claude Code v2.1.285 ou posterior.

45 45 

46> [!NOTE]

47>

48> Com o Desktop conectado ao claude.ai, uma sessão do Cowork na máquina do usuário conta como [`"anthropic"`](https://code.claude.com/docs/pt/settings-reference#allowedproviders). Se você deixá-lo fora desta lista em uma política MDM ou em um arquivo de configurações gerenciadas, essa sessão é recusada. Com ele incluído, as sessões enviadas diretamente para a Anthropic também passam por esta lista.

49 

46## Assinaturas e gateways50## Assinaturas e gateways

47 51 

48Enquanto uma [variável de credencial de gateway](https://code.claude.com/docs/pt/llm-gateway-connect.md#set-the-credential-variable) ou `apiKeyHelper` está ativa, as solicitações carregam essa credencial no lugar do login de assinatura claude.ai de um desenvolvedor, e os limites de uso da assinatura não se aplicam a elas. Claude Code mantém um login claude.ai salvo na máquina, mas não o envia com essas solicitações. Esse tráfego é cobrado por token para quem quer que possua a credencial que o gateway encaminha, como sua conta Anthropic Console da organização, ou sua conta Amazon Bedrock, Google Cloud's Agent Platform, ou Microsoft Foundry quando o gateway roteia para lá.52Enquanto uma [variável de credencial de gateway](https://code.claude.com/docs/pt/llm-gateway-connect.md#set-the-credential-variable) ou `apiKeyHelper` está ativa, as solicitações carregam essa credencial no lugar do login de assinatura claude.ai de um desenvolvedor, e os limites de uso da assinatura não se aplicam a elas. Claude Code mantém um login claude.ai salvo na máquina, mas não o envia com essas solicitações. Esse tráfego é cobrado por token para quem quer que possua a credencial que o gateway encaminha, como sua conta Anthropic Console da organização, ou sua conta Amazon Bedrock, Google Cloud's Agent Platform, ou Microsoft Foundry quando o gateway roteia para lá.

Details

156 156 

157### Conflitos com um login existente157### Conflitos com um login existente

158 158 

159Uma variável de credencial de gateway tem precedência sobre um login claude.ai salvo ou uma chave Console. Com `ANTHROPIC_AUTH_TOKEN`, a variável tem precedência imediatamente. Com `ANTHROPIC_API_KEY`, você é solicitado uma vez em modo interativo para aprovar a chave antes que ela assuma o controle.159Suas requisições usam uma variável de credencial de gateway em vez de um login claude.ai salvo. Com `ANTHROPIC_AUTH_TOKEN`, a variável tem precedência imediatamente. Com `ANTHROPIC_API_KEY`, você é solicitado uma vez em modo interativo para aprovar a chave antes que ela assuma o controle.

160 160 

161Execute `/status` para confirmar qual fonte de credencial está ativa. Se a inicialização mostrar um aviso de conflito de autenticação nomeando duas fontes, consulte a primeira linha da [tabela de solução de problemas](#troubleshoot-gateway-errors) para saber qual descartar. Para limpar um login salvo para que apenas a credencial de gateway permaneça, execute `/logout`.161Execute `/status` para confirmar qual fonte de credencial está ativa. Se a inicialização mostrar um aviso de conflito de autenticação nomeando duas fontes, consulte a primeira linha da [tabela de solução de problemas](#troubleshoot-gateway-errors) para saber qual descartar. Para limpar um login salvo para que apenas a credencial de gateway permaneça, execute `/logout`.

162 162 


506 506 

507| Erro | Causa | Correção |507| Erro | Causa | Correção |

508| :- | :- | :- |508| :- | :- | :- |

509| Um aviso de inicialização nomeando duas fontes de credencial e terminando em `auth may not work as expected`. Versões mais antigas mostram `Auth conflict: Both a token (SOURCE) and an API key (SOURCE) are set` em vez disso. | Uma credencial de gateway e um login salvo estão ambos ativos; a variável é usada para solicitações, mas o login obsoleto pode causar comportamento de autenticação inesperado | Desdefina a variável para usar o login salvo, ou execute `/logout` para usar a credencial de gateway |509| Um aviso de inicialização nomeando duas fontes de credencial e terminando em `auth may not work as expected`. Versões mais antigas mostram `Auth conflict: Both a token (SOURCE) and an API key (SOURCE) are set` em vez disso. | Uma credencial de gateway e um login salvo estão ambos ativos | Desdefina a variável para usar o login salvo, ou execute `/logout` para usar a credencial de gateway |

510| Erros `401` nomeando um token inválido ou não reconhecido | A credencial não é uma que o gateway emitiu, ou está em um cabeçalho que o gateway não lê | Confirme que a variável corresponde ao seu tipo de credencial na [tabela de credencial](#set-the-credential-variable) e regenere a chave no gateway se ela foi revogada |510| Erros `401` nomeando um token inválido ou não reconhecido | A credencial não é uma que o gateway emitiu, ou está em um cabeçalho que o gateway não lê | Confirme que a variável corresponde ao seu tipo de credencial na [tabela de credencial](#set-the-credential-variable) e regenere a chave no gateway se ela foi revogada |

511| `Your apiKeyHelper script is failing`, ou `apiKeyHelper failed:` no stderr em modo não interativo | O comando na configuração [`apiKeyHelper`](https://code.claude.com/docs/pt/settings-reference#apikeyhelper) não produziu uma chave utilizável, portanto as solicitações carregam uma chave de espaço reservado | Execute o comando diretamente para ver por que falha e autentique-se novamente com seu provedor de credencial se ele relatar uma sessão expirada; consulte [a referência de erro](https://code.claude.com/docs/pt/errors.md#your-apikeyhelper-script-is-failing) |511| `Your apiKeyHelper script is failing`, ou `apiKeyHelper failed:` no stderr em modo não interativo | O comando na configuração [`apiKeyHelper`](https://code.claude.com/docs/pt/settings-reference#apikeyhelper) não produziu uma chave utilizável, portanto as solicitações carregam uma chave de espaço reservado | Execute o comando diretamente para ver por que falha e autentique-se novamente com seu provedor de credencial se ele relatar uma sessão expirada; consulte [a referência de erro](https://code.claude.com/docs/pt/errors.md#your-apikeyhelper-script-is-failing) |

512| `Connection refused — a firewall or proxy may be blocking it (ConnectionRefused)` quando nada responde no endereço, ou `Can't reach the API server — check your internet or DNS (ENOTFOUND)` quando o nome do host não resolve, frequentemente após uma pausa silenciosa enquanto Claude Code [tenta novamente com backoff](https://code.claude.com/docs/pt/errors.md#automatic-retries). O código entre parênteses varia; [Unable to connect to API](https://code.claude.com/docs/pt/errors.md#unable-to-connect-to-api) cobre as variações de código e a redação anterior | Nada respondeu na URL base: o endereço está errado ou uma VPN ou firewall bloqueia o caminho para o gateway | Execute o [teste curl acima](#verify-the-connection), que falha imediatamente com a mesma causa, e confirme a URL e o caminho de rede com sua equipe de gateway |512| `Connection refused — a firewall or proxy may be blocking it (ConnectionRefused)` quando nada responde no endereço, ou `Can't reach the API server — check your internet or DNS (ENOTFOUND)` quando o nome do host não resolve, frequentemente após uma pausa silenciosa enquanto Claude Code [tenta novamente com backoff](https://code.claude.com/docs/pt/errors.md#automatic-retries). O código entre parênteses varia; [Unable to connect to API](https://code.claude.com/docs/pt/errors.md#unable-to-connect-to-api) cobre as variações de código e a redação anterior | Nada respondeu na URL base: o endereço está errado ou uma VPN ou firewall bloqueia o caminho para o gateway | Execute o [teste curl acima](#verify-the-connection), que falha imediatamente com a mesma causa, e confirme a URL e o caminho de rede com sua equipe de gateway |


520| `/fast` relata `Fast mode unavailable due to network connectivity issues` enquanto as requisições de inferência funcionam | A verificação de disponibilidade do [modo rápido](https://code.claude.com/docs/pt/fast-mode.md) vai diretamente para `api.anthropic.com` e não segue `ANTHROPIC_BASE_URL`, portanto a saída direta bloqueada falha na verificação | Adicione `api.anthropic.com` à allowlist se a saída estiver bloqueada, ou defina uma variável de skip. Consulte [usar modo rápido atrás de proxies e gateways LLM](https://code.claude.com/docs/pt/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) |520| `/fast` relata `Fast mode unavailable due to network connectivity issues` enquanto as requisições de inferência funcionam | A verificação de disponibilidade do [modo rápido](https://code.claude.com/docs/pt/fast-mode.md) vai diretamente para `api.anthropic.com` e não segue `ANTHROPIC_BASE_URL`, portanto a saída direta bloqueada falha na verificação | Adicione `api.anthropic.com` à allowlist se a saída estiver bloqueada, ou defina uma variável de skip. Consulte [usar modo rápido atrás de proxies e gateways LLM](https://code.claude.com/docs/pt/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) |

521| `/fast` relata `Fast mode is currently unavailable` em uma sessão que se autentica com uma chave emitida pelo gateway em `ANTHROPIC_API_KEY` | Enquanto `ANTHROPIC_BASE_URL` aponta para seu gateway e a chave não está no formato de uma chave de API Anthropic, Claude Code não envia a verificação de disponibilidade do [modo rápido](https://code.claude.com/docs/pt/fast-mode.md). Sem uma verificação anterior bem-sucedida em cache, ele trata o modo rápido como indisponível | Defina `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS=1`; consulte [usar modo rápido atrás de proxies e gateways LLM](https://code.claude.com/docs/pt/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) |521| `/fast` relata `Fast mode is currently unavailable` em uma sessão que se autentica com uma chave emitida pelo gateway em `ANTHROPIC_API_KEY` | Enquanto `ANTHROPIC_BASE_URL` aponta para seu gateway e a chave não está no formato de uma chave de API Anthropic, Claude Code não envia a verificação de disponibilidade do [modo rápido](https://code.claude.com/docs/pt/fast-mode.md). Sem uma verificação anterior bem-sucedida em cache, ele trata o modo rápido como indisponível | Defina `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS=1`; consulte [usar modo rápido atrás de proxies e gateways LLM](https://code.claude.com/docs/pt/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) |

522| `/fast` relata `Fast mode has been disabled by your organization` em uma sessão autenticada com `ANTHROPIC_AUTH_TOKEN`, mesmo que a organização tenha modo rápido ativado | A verificação de disponibilidade requer um login claude.ai ou uma chave de API; com apenas um token de portador, Claude Code trata o modo rápido como desativado sem enviar a verificação | Defina `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1`; consulte [usar modo rápido atrás de proxies e gateways LLM](https://code.claude.com/docs/pt/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) |522| `/fast` relata `Fast mode has been disabled by your organization` em uma sessão autenticada com `ANTHROPIC_AUTH_TOKEN`, mesmo que a organização tenha modo rápido ativado | A verificação de disponibilidade requer um login claude.ai ou uma chave de API; com apenas um token de portador, Claude Code trata o modo rápido como desativado sem enviar a verificação | Defina `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1`; consulte [usar modo rápido atrás de proxies e gateways LLM](https://code.claude.com/docs/pt/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) |

523| `/feedback` salva um arquivo local em uma sessão que usa `ANTHROPIC_BASE_URL` | Atrás de um gateway, `ANTHROPIC_AUTH_TOKEN` e uma chave que não está no formato de uma chave de API Anthropic não são credenciais Anthropic. Sem uma delas, Claude Code grava o relatório em um arquivo compactado local em `~/.claude/feedback-bundles/` em vez de enviá-lo | Envie o arquivo ao seu representante de conta Anthropic ou anexe-o a uma solicitação de suporte. Consulte [serviços de telemetria](https://code.claude.com/docs/pt/data-usage.md#telemetry-services) |

523| Claude Code pede para você fazer login mesmo que o [teste curl](#verify-the-connection) tenha sucesso | O CLI não tem credencial própria: uma URL base alcançável não é uma, e em uma sessão interativa um bloco `env` no `.claude/settings.json` ou `.claude/settings.local.json` de um projeto se aplica apenas após o assistente de primeira execução e [prompt de confiança](https://code.claude.com/docs/pt/permissions.md#what-runs-before-you-trust-a-folder) | Defina `ANTHROPIC_AUTH_TOKEN` em algum lugar que Claude Code leia antes da configuração de primeira execução: uma exportação de shell, o bloco `env` em `~/.claude/settings.json` ou configurações gerenciadas |524| Claude Code pede para você fazer login mesmo que o [teste curl](#verify-the-connection) tenha sucesso | O CLI não tem credencial própria: uma URL base alcançável não é uma, e em uma sessão interativa um bloco `env` no `.claude/settings.json` ou `.claude/settings.local.json` de um projeto se aplica apenas após o assistente de primeira execução e [prompt de confiança](https://code.claude.com/docs/pt/permissions.md#what-runs-before-you-trust-a-folder) | Defina `ANTHROPIC_AUTH_TOKEN` em algum lugar que Claude Code leia antes da configuração de primeira execução: uma exportação de shell, o bloco `env` em `~/.claude/settings.json` ou configurações gerenciadas |

524| `ANTHROPIC_API_KEY` está definido mas ignorado, sem prompt | A chave precisa de uma aprovação única em sessões interativas, e uma chave previamente recusada é ignorada sem perguntar novamente | Ative-a em `/config` com a opção `Use custom API key` |525| `ANTHROPIC_API_KEY` está definido mas ignorado, sem prompt | A chave precisa de uma aprovação única em sessões interativas, e uma chave previamente recusada é ignorada sem perguntar novamente | Ative-a em `/config` com a opção `Use custom API key` |

525| `This machine's managed settings require a first-party login`, ou [`Administrator policy requires a Cloud gateway sign-in`](https://code.claude.com/docs/pt/errors#administrator-policy-requires-a-cloud-gateway-sign-in) quando configurações gerenciadas definem `forceLoginMethod` como `"gateway"` ou também definem `forceLoginGatewayUrl` | Configurações gerenciadas incluem `forceLoginMethod` ou `forceLoginOrgUUID`, que não podem coexistir com `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` ou `apiKeyHelper` | Seu administrador deve remover `forceLoginMethod`, `forceLoginOrgUUID` e `forceLoginGatewayUrl` das configurações gerenciadas para usar credenciais de gateway, ou remover a credencial de gateway e usar o login que as configurações gerenciadas exigem. Os dois não podem ser combinados |526| `This machine's managed settings require a first-party login`, ou [`Administrator policy requires a Cloud gateway sign-in`](https://code.claude.com/docs/pt/errors#administrator-policy-requires-a-cloud-gateway-sign-in) quando configurações gerenciadas definem `forceLoginMethod` como `"gateway"` ou também definem `forceLoginGatewayUrl` | Configurações gerenciadas incluem `forceLoginMethod` ou `forceLoginOrgUUID`, que não podem coexistir com `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` ou `apiKeyHelper` | Seu administrador deve remover `forceLoginMethod`, `forceLoginOrgUUID` e `forceLoginGatewayUrl` das configurações gerenciadas para usar credenciais de gateway, ou remover a credencial de gateway e usar o login que as configurações gerenciadas exigem. Os dois não podem ser combinados |

Details

142claude -p "Reply with one word: connected"142claude -p "Reply with one word: connected"

143```143```

144 144 

145**Checkpoint**: o prompt retorna uma resposta, e a solicitação aparece no log do gateway como um `POST` para o caminho `/v1/messages` com status `200`. Claude Code anexa uma string de consulta como `?beta=true`, então corresponda no caminho, não na URL completa. Duas mensagens de falha apontam em direções diferentes:145**Checkpoint**: o prompt retorna uma resposta, e a solicitação aparece no log do gateway como um `POST` para o caminho `/v1/messages` com status `200`. Claude Code anexa uma string de consulta como `?beta=true`, então corresponda no caminho, não na URL completa. Verifique a mensagem de falha:

146 146 

147* `Not logged in`: verifique o log do gateway para distinguir as duas causas. Se estiver vazio, nenhuma credencial alcançou a sessão e nenhuma solicitação saiu da máquina; execute novamente as exportações no shell que você está testando. Se mostrar uma solicitação rejeitada com `x-api-key` no corpo `401`, o gateway espera chaves nesse cabeçalho em vez disso; mude para `ANTHROPIC_API_KEY`147* `Not logged in`: verifique o log do gateway. Se estiver vazio, nenhuma credencial alcançou a sessão e nenhuma solicitação saiu da máquina; execute novamente as exportações no shell a partir do qual você está testando. Se mostrar um `401` do gateway nomeando `x-api-key`, o gateway espera chaves nesse cabeçalho em vez disso; mude para `ANTHROPIC_API_KEY`. Se mostrar um `401` de `api.anthropic.com` ou do endpoint do seu provedor, corrija a credencial do provedor que o gateway possui

148* `Failed to authenticate. API Error: 401` significa que uma credencial foi enviada e rejeitada, e o log do gateway diz onde: um `401` nomeando `api.anthropic.com` ou o endpoint do seu provedor significa que o gateway alcançou o upstream mas sua credencial de provedor foi rejeitada, então a chave do desenvolvedor funcionou e a credencial do provedor que o gateway possui está incorreta ou é um placeholder148* `Failed to authenticate. API Error: 401` significa que uma credencial foi enviada e rejeitada, e o log do gateway diz onde: um `401` nomeando `api.anthropic.com` ou o endpoint do seu provedor significa que o gateway alcançou o upstream mas sua credencial de provedor foi rejeitada, então a chave do desenvolvedor funcionou e a credencial do provedor que o gateway possui está incorreta ou é um placeholder

149 149 

150Uma URL base incorreta ou inacessível produz um sintoma diferente: Claude Code [tenta novamente a conexão com backoff](https://code.claude.com/docs/pt/errors.md#automatic-retries) e pode ficar sem saída por vários minutos antes de relatar um erro. Se o comando parecer travar, verifique o log do gateway em vez de esperar; nenhuma solicitação chegando significa que `ANTHROPIC_BASE_URL` não aponta para o gateway.150Uma URL base incorreta ou inacessível produz um sintoma diferente: Claude Code [tenta novamente a conexão com backoff](https://code.claude.com/docs/pt/errors.md#automatic-retries) e pode ficar sem saída por vários minutos antes de relatar um erro. Se o comando parecer travar, verifique o log do gateway em vez de esperar; nenhuma solicitação chegando significa que `ANTHROPIC_BASE_URL` não aponta para o gateway.


247 247 

248Você deve ver linhas `data:` chegarem incrementalmente. A resposta inteira chegando de uma vez após uma pausa significa que o gateway está armazenando em buffer, o que paralisa Claude Code; um `404` significa que o nome do modelo não é roteado. Repita por nome de modelo.248Você deve ver linhas `data:` chegarem incrementalmente. A resposta inteira chegando de uma vez após uma pausa significa que o gateway está armazenando em buffer, o que paralisa Claude Code; um `404` significa que o nome do modelo não é roteado. Repita por nome de modelo.

249 249 

250Em seguida, inicie `claude` e envie uma mensagem. Cada sintoma nesta etapa tem uma causa:250Em seguida, inicie `claude`, envie uma mensagem e compare com o que você vê:

251 251 

252* Um prompt de login significa uma lacuna de credencial. Execute `/status` e abra a aba **Status**: quando a linha `Setting sources` não inclui configurações gerenciadas, a distribuição não alcançou a máquina; quando inclui, a credencial do desenvolvedor não foi entregue, então defina `ANTHROPIC_AUTH_TOKEN` ou o `apiKeyHelper`252* Uma tela de login, ou `Not logged in` sem nada novo no log do gateway, significa uma lacuna de credencial. Execute `/status` e abra a aba **Status**: quando a linha `Setting sources` não inclui configurações gerenciadas, a distribuição não alcançou a máquina; quando inclui, a credencial do desenvolvedor não foi entregue, então defina `ANTHROPIC_AUTH_TOKEN` ou o `apiKeyHelper`

253* Erros `Failed to authenticate` significam que o gateway está rejeitando solicitações; seu log diz qual credencial falhou. Uma rejeição que o gateway registra em si nomeia a chave do desenvolvedor, enquanto um `401` de `api.anthropic.com` ou do endpoint do seu provedor significa que a credencial do provedor que o gateway possui foi rejeitada253* `Please run /login · API Error: 401`, `Not logged in` ou `Invalid API key` com um `401` no log do gateway: verifique quem escreveu o `401`. Corrija a chave do desenvolvedor ou seu cabeçalho se foi o gateway que o escreveu, ou a credencial do provedor que ele possui se o `401` veio de `api.anthropic.com` ou do endpoint do seu provedor

254* Um prompt de aprovação única para a chave é esperado no primeiro uso quando o gateway espera chaves no cabeçalho `x-api-key`, definido como `ANTHROPIC_API_KEY`254* Um prompt de aprovação única para a chave é esperado no primeiro uso quando o gateway espera chaves no cabeçalho `x-api-key`, definido como `ANTHROPIC_API_KEY`

255 255 

256Se sua organização usa [modo rápido](https://code.claude.com/docs/pt/fast-mode.md), execute `/fast` aqui também: a verificação de disponibilidade chama `api.anthropic.com` diretamente em vez de seguir a URL base do gateway, então uma sessão roteada por gateway pode relatar modo rápido como indisponível ou desabilitado mesmo que a inferência funcione. [Use modo rápido atrás de proxies e gateways LLM](https://code.claude.com/docs/pt/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) mapeia cada mensagem para a variável que a restaura, distribuída com [o resto da configuração](#distribute-the-configuration).256Se sua organização usa [modo rápido](https://code.claude.com/docs/pt/fast-mode.md), execute `/fast` aqui também: a verificação de disponibilidade chama `api.anthropic.com` diretamente em vez de seguir a URL base do gateway, então uma sessão roteada por gateway pode relatar modo rápido como indisponível ou desabilitado mesmo que a inferência funcione. [Use modo rápido atrás de proxies e gateways LLM](https://code.claude.com/docs/pt/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) mapeia cada mensagem para a variável que a restaura, distribuída com [o resto da configuração](#distribute-the-configuration).

mcp.md +0 −2

Details

835 835 

836Um servidor que sua organização fornece através da configuração gerenciada [`managedMcpServers`](https://code.claude.com/docs/pt/managed-mcp#provide-servers-through-managed-settings) classifica-se acima de todos esses, então quando um deles o duplica, Claude Code conecta a definição da organização. Requer Claude Code v2.1.259 ou posterior.836Um servidor que sua organização fornece através da configuração gerenciada [`managedMcpServers`](https://code.claude.com/docs/pt/managed-mcp#provide-servers-through-managed-settings) classifica-se acima de todos esses, então quando um deles o duplica, Claude Code conecta a definição da organização. Requer Claude Code v2.1.259 ou posterior.

837 837 

838Se você abrir uma sessão local na [guia Code do aplicativo Desktop](https://code.claude.com/docs/pt/desktop.md#mcp-servers-from-the-claude-desktop-chat-app) com o mesmo nome de servidor stdio no nível superior de `~/.claude.json` (escopo de usuário) e em `.mcp.json`, a guia Code usa a definição `~/.claude.json`.

839 

840### Expansão de variáveis de ambiente em `.mcp.json`838### Expansão de variáveis de ambiente em `.mcp.json`

841 839 

842Claude Code suporta expansão de variáveis de ambiente em arquivos `.mcp.json`, permitindo que equipes compartilhem configurações mantendo flexibilidade para caminhos específicos da máquina e valores sensíveis como chaves de API.840Claude Code suporta expansão de variáveis de ambiente em arquivos `.mcp.json`, permitindo que equipes compartilhem configurações mantendo flexibilidade para caminhos específicos da máquina e valores sensíveis como chaves de API.

Details

147 147 

148## Configuração do Azure RBAC148## Configuração do Azure RBAC

149 149 

150As funções padrão `Azure AI User` e `Cognitive Services User` incluem todas as permissões necessárias para invocar modelos Claude.150Se você se autenticar com o Microsoft Entra ID ou com um token bearer emitido por ele, atribua à sua identidade a função `Foundry User` ou `Cognitive Services User` no seu recurso do Foundry. Você ainda poderá ver `Foundry User` com o nome anterior, `Azure AI User`.

151 151 

152Para permissões mais restritivas, crie uma função personalizada com o seguinte:152Se essas funções não atenderem às suas necessidades, consulte a [documentação RBAC do Microsoft Foundry](https://learn.microsoft.com/en-us/azure/foundry/concepts/rbac-foundry) para funções personalizadas.

153 

154```json theme={null}

155{

156 "permissions": [

157 {

158 "dataActions": [

159 "Microsoft.CognitiveServices/accounts/providers/*"

160 ]

161 }

162 ]

163}

164```

165 

166Para detalhes, consulte [documentação RBAC do Microsoft Foundry](https://learn.microsoft.com/en-us/azure/ai-foundry/concepts/rbac-azure-ai-foundry).

167 153 

168## Janela de contexto de 1M de tokens154## Janela de contexto de 1M de tokens

169 155 

model-config.md +5 −3

Details

157 157 

158Quando o modelo ativo na inicialização vem das configurações de projeto ou gerenciadas em vez de sua própria seleção, o cabeçalho de inicialização mostra qual arquivo de configurações o definiu. Execute `/model` para sobrescrever; a configuração de projeto ou gerenciada se reaplica no próximo lançamento. Em plataformas que incorporam Claude Code e definem [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/pt/env-vars), a configuração de modelo do host tem precedência sobre as configurações de modelo gerenciadas, enquanto uma allowlist `availableModels` gerenciada permanece em vigor a menos que o host forneça a sua própria; [Exceptions to managed settings precedence](https://code.claude.com/docs/pt/settings.md#exceptions-to-managed-settings-precedence) diz quais chaves e variáveis o host sobrescreve.158Quando o modelo ativo na inicialização vem das configurações de projeto ou gerenciadas em vez de sua própria seleção, o cabeçalho de inicialização mostra qual arquivo de configurações o definiu. Execute `/model` para sobrescrever; a configuração de projeto ou gerenciada se reaplica no próximo lançamento. Em plataformas que incorporam Claude Code e definem [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/pt/env-vars), a configuração de modelo do host tem precedência sobre as configurações de modelo gerenciadas, enquanto uma allowlist `availableModels` gerenciada permanece em vigor a menos que o host forneça a sua própria; [Exceptions to managed settings precedence](https://code.claude.com/docs/pt/settings.md#exceptions-to-managed-settings-precedence) diz quais chaves e variáveis o host sobrescreve.

159 159 

160Se você ou sua organização configurarem [hooks PreModelSwitch](https://code.claude.com/docs/pt/hooks.md#premodelswitch), eles são executados antes de uma mudança solicitada ser aplicada e podem bloqueá-la ou pedir que você confirme.160Se você ou sua organização configurarem [hooks PreModelSwitch](https://code.claude.com/docs/pt/hooks.md#premodelswitch), eles são executados antes de uma mudança solicitada ser aplicada e podem bloqueá-la ou pedir que você confirme. Para descobrir por que um hook bloqueou uma mudança e o que fazer, consulte [Model switch was blocked by a PreModelSwitch hook](https://code.claude.com/docs/pt/errors.md#model-switch-was-blocked-by-a-premodelswitch-hook).

161 161 

162Quando Claude Code não consegue dizer quais hooks PreModelSwitch seus [plugins gerenciados](https://code.claude.com/docs/pt/settings-reference.md#enabledplugins) da organização entregam, por exemplo porque um plugin gerenciado falhou ao carregar, ele recusa a mudança em vez de aplicá-la sem verificação, e verifica novamente em cada nova tentativa. Consulte [Model switch was blocked by a PreModelSwitch hook](https://code.claude.com/docs/pt/errors.md#model-switch-was-blocked-by-a-premodelswitch-hook) para a mensagem e recuperação.162Se um [plugin gerenciado](https://code.claude.com/docs/pt/settings-reference.md#enabledplugins) ou seus hooks falharem ao carregar, você ainda pode mudar de modelo. Os hooks PreModelSwitch do plugin não são executados, então uma mudança que um deles teria bloqueado pode prosseguir. Outros hooks PreModelSwitch que foram carregados ainda são executados e podem bloqueá-la. Se o Claude Code anterior à v2.1.323 recusar a mudança com `so organization-managed PreModelSwitch hooks could not be checked`, atualize o Claude Code.

163 

164Para ver o que falhou, execute `/plugin` em sua sessão e abra a [aba **Errors**](https://code.claude.com/docs/pt/plugins/troubleshooting.md#failed-to-load-hooks-from-and-hooks-that-dont-fire). Se nada estiver listado ali, inicie uma nova sessão com `claude --debug` a partir do seu shell e mude para um modelo diferente, depois leia o [log de depuração](https://code.claude.com/docs/pt/hooks.md#debug-hooks). Depois que você corrigir o plugin, ou que uma [atualização de plugin](https://code.claude.com/docs/pt/plugins/install.md#keep-plugins-updated) trouxer a correção do seu administrador para sua máquina, execute `/reload-plugins` em sua sessão para colocar os hooks dele em execução.

163 165 

164Quando você muda de modelos através do método `setModel()` do [Agent SDK](https://code.claude.com/docs/pt/agent-sdk/overview.md), através de um aplicativo como o [Desktop app](https://code.claude.com/docs/pt/desktop.md), ou de um dispositivo conectado através de [Remote Control](https://code.claude.com/docs/pt/remote-control.md), Claude Code verifica o valor na mudança:166Quando você muda de modelos através do método `setModel()` do [Agent SDK](https://code.claude.com/docs/pt/agent-sdk/overview.md), através de um aplicativo como o [Desktop app](https://code.claude.com/docs/pt/desktop.md), ou de um dispositivo conectado através de [Remote Control](https://code.claude.com/docs/pt/remote-control.md), Claude Code verifica o valor na mudança:

165 167 


903 905 

904### Corrigir a janela para um gateway ou ID de modelo personalizado906### Corrigir a janela para um gateway ou ID de modelo personalizado

905 907 

906Qualquer um destes avisos de inicialização significa que Claude Code não reconhece o ID de modelo da sua sessão, portanto não consegue determinar a janela de contexto do modelo e assume 200K tokens:908Qualquer um destes avisos significa que Claude Code não reconhece o ID de modelo da sua sessão, portanto não consegue determinar a janela de contexto do modelo e assume 200K tokens:

907 909 

908```text theme={null}910```text theme={null}

909⚠ Model "my-gateway-opus" isn't recognized · context assumed to be 200k tokens · ...911⚠ Model "my-gateway-opus" isn't recognized · context assumed to be 200k tokens · ...

Details

110| `CLAUDE_CODE_ENABLE_TELEMETRY` | Ativa a coleta de telemetria (obrigatória) | `1` |110| `CLAUDE_CODE_ENABLE_TELEMETRY` | Ativa a coleta de telemetria (obrigatória) | `1` |

111| `OTEL_METRICS_EXPORTER` | Tipos de exportador de métricas, separados por vírgula. Use `none` para desativar | `console`, `otlp`, `prometheus`, `none` |111| `OTEL_METRICS_EXPORTER` | Tipos de exportador de métricas, separados por vírgula. Use `none` para desativar | `console`, `otlp`, `prometheus`, `none` |

112| `OTEL_LOGS_EXPORTER` | Tipos de exportador de logs/eventos, separados por vírgula. Use `none` para desativar | `console`, `otlp`, `none` |112| `OTEL_LOGS_EXPORTER` | Tipos de exportador de logs/eventos, separados por vírgula. Use `none` para desativar | `console`, `otlp`, `none` |

113| `OTEL_EXPORTER_OTLP_PROTOCOL` | Protocolo para o exportador OTLP, aplica-se a todos os sinais. O Claude Code não tem protocolo padrão, portanto defina esta variável ou a variável de protocolo específica do sinal para cada exportador `otlp` que você ativar | `grpc`, `http/json`, `http/protobuf` |113| `OTEL_EXPORTER_OTLP_PROTOCOL` | Protocolo para o exportador OTLP, aplica-se a todos os sinais. O padrão é `http/protobuf` para um endpoint `http://` ou `https://` válido. Para um endpoint gRPC, como `http://localhost:4317`, defina esta variável como `grpc`. O padrão requer o Claude Code v2.1.323 ou posterior | `grpc`, `http/json`, `http/protobuf` |

114| `OTEL_EXPORTER_OTLP_ENDPOINT` | Endpoint do coletor OTLP para todos os sinais | `http://localhost:4317` |114| `OTEL_EXPORTER_OTLP_ENDPOINT` | Endpoint do coletor OTLP para todos os sinais | `http://localhost:4317` |

115| `OTEL_EXPORTER_OTLP_METRICS_PROTOCOL` | Protocolo para métricas, sobrescreve a configuração geral | `grpc`, `http/json`, `http/protobuf` |115| `OTEL_EXPORTER_OTLP_METRICS_PROTOCOL` | Protocolo para métricas, sobrescreve a configuração geral | `grpc`, `http/json`, `http/protobuf` |

116| `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` | Endpoint OTLP de métricas, sobrescreve a configuração geral | `http://localhost:4318/v1/metrics` |116| `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` | Endpoint OTLP de métricas, sobrescreve a configuração geral | `http://localhost:4318/v1/metrics` |


431> * **Espaços não são permitidos**: os valores não podem conter espaços. Por exemplo, `user.organizationName=My Company` é inválido431> * **Espaços não são permitidos**: os valores não podem conter espaços. Por exemplo, `user.organizationName=My Company` é inválido

432> * **Formato**: devem ser pares key=value separados por vírgula: `key1=value1,key2=value2`432> * **Formato**: devem ser pares key=value separados por vírgula: `key1=value1,key2=value2`

433> * **Caracteres permitidos**: apenas caracteres US-ASCII, excluindo caracteres de controle, espaços em branco, aspas duplas, vírgulas, ponto e vírgula e barras invertidas433> * **Caracteres permitidos**: apenas caracteres US-ASCII, excluindo caracteres de controle, espaços em branco, aspas duplas, vírgulas, ponto e vírgula e barras invertidas

434> * **Caracteres especiais**: caracteres fora do intervalo permitido devem ser codificados em porcentagem434> * **Caracteres especiais**: caracteres fora do intervalo permitido devem ser codificados em porcentagem, e um `=` dentro de um valor deve ser escrito como `%3D`

435>435>

436> Para um valor que precisaria de um espaço, use sublinhados ou camelCase. Os exemplos a seguir definem `org.name` com cada forma:436> Para um valor que precisaria de um espaço, use sublinhados ou camelCase. Os exemplos a seguir definem `org.name` com cada forma:

437>437>


475 475 

476* **Você o definiu no computador que executa o Desktop**: o Desktop não passa para a sessão SSH um valor que você define ali476* **Você o definiu no computador que executa o Desktop**: o Desktop não passa para a sessão SSH um valor que você define ali

477* **Você o exportou em `/etc/profile` ou em outro arquivo que somente shells de login leem**: o nome chega quando você executa `claude` a partir de um shell de login, mas não em uma sessão SSH do Desktop. O Desktop não inicia o Claude Code por meio de um shell de login. Em vez disso, defina a variável em `env` no [arquivo de configurações gerenciadas](https://code.claude.com/docs/pt/desktop.md#managed-settings) na máquina remota.477* **Você o exportou em `/etc/profile` ou em outro arquivo que somente shells de login leem**: o nome chega quando você executa `claude` a partir de um shell de login, mas não em uma sessão SSH do Desktop. O Desktop não inicia o Claude Code por meio de um shell de login. Em vez disso, defina a variável em `env` no [arquivo de configurações gerenciadas](https://code.claude.com/docs/pt/desktop.md#managed-settings) na máquina remota.

478* **Um valor contém um espaço**: nesse caso, o Claude Code não copia nenhuma das chaves para eventos ou pontos de dados e não informa nenhum erro. [Remova o espaço do valor](#multi-team-organization-support).478* **Um valor contém um espaço**: nesse caso, o Claude Code não copia nenhuma das chaves para eventos ou pontos de dados. Para ver qual valor contém o espaço, execute `/status` em uma sessão na máquina remota. [Remova o espaço do valor](#multi-team-organization-support).

479* **Outra coisa já define a variável**: em uma sessão que o aplicativo desktop inicia, uma variável já definida no ambiente de inicialização [tem precedência sobre os arquivos de configurações](https://code.claude.com/docs/pt/settings-reference.md#how-env-values-interact-with-your-shell). O [log de depuração](https://code.claude.com/docs/pt/debug-your-config.md) indica cada variável ignorada. Quando uma implantação do Desktop de terceiros [especifica um endpoint OTLP](#how-managed-settings-lock-the-otlp-destination) no ambiente que ela fornece, esse ambiente carrega o próprio `OTEL_RESOURCE_ATTRIBUTES` do Desktop.479* **Outra coisa já define a variável**: em uma sessão que o aplicativo desktop inicia, uma variável já definida no ambiente de inicialização [tem precedência sobre os arquivos de configurações](https://code.claude.com/docs/pt/settings-reference.md#how-env-values-interact-with-your-shell). O [log de depuração](https://code.claude.com/docs/pt/debug-your-config.md) indica cada variável ignorada. Quando uma implantação do Desktop de terceiros [especifica um endpoint OTLP](#how-managed-settings-lock-the-otlp-destination) no ambiente que ela fornece, esse ambiente carrega o próprio `OTEL_RESOURCE_ATTRIBUTES` do Desktop.

480 480 

481### Exemplos de configuração481### Exemplos de configuração

Details

304claude --permission-mode plan304claude --permission-mode plan

305```305```

306 306 

307Pressione `Shift+Tab` novamente para sair do modo de planejamento sem aprovar um plano.307Sem nenhum prompt de aprovação aberto, pressione `Shift+Tab` novamente para sair do modo de planejamento. No prompt de aprovação, pressione `Esc` primeiro, pois pressionar `Shift+Tab` ali aprova o plano.

308 308 

309### Revise e aprove um plano309### Revise e aprove um plano

310 310 


593> * Quando Claude lê um [artefato que outra pessoa criou](https://code.claude.com/docs/pt/artifacts.md#read-an-artifact-shared-with-you), os casos de aprovação listados nessa seção se aplicam593> * Quando Claude lê um [artefato que outra pessoa criou](https://code.claude.com/docs/pt/artifacts.md#read-an-artifact-shared-with-you), os casos de aprovação listados nessa seção se aplicam

594> * Uma leitura de um [caminho de rede](https://code.claude.com/docs/pt/permissions.md#network-paths) pede sua confirmação594> * Uma leitura de um [caminho de rede](https://code.claude.com/docs/pt/permissions.md#network-paths) pede sua confirmação

595> 3. Todo o resto vai para o classificador, exceto [remoções de caminho crítico](#critical-paths) sob seu tratamento padrão. As ferramentas de conector e as ferramentas MCP com `requiresUserInteraction` que pedem sua confirmação diretamente na etapa 1 também nunca chegam ao classificador, então nem uma aprovação exigida pela organização nem uma etapa de consentimento é aprovada automaticamente595> 3. Todo o resto vai para o classificador, exceto [remoções de caminho crítico](#critical-paths) sob seu tratamento padrão. As ferramentas de conector e as ferramentas MCP com `requiresUserInteraction` que pedem sua confirmação diretamente na etapa 1 também nunca chegam ao classificador, então nem uma aprovação exigida pela organização nem uma etapa de consentimento é aprovada automaticamente

596> * Com o [Code Mode](https://code.claude.com/docs/pt/code-mode.md#permission-checks) ativado, o código de Claude vai para o classificador uma vez antes de ser executado, e as chamadas de ferramenta dentro dele não vão. Você ainda pode bloquear uma chamada com uma regra `deny` ou exigir um prompt com uma regra `ask`, mas Claude pode executar comandos Bash em [formas às quais as regras não correspondem](https://code.claude.com/docs/pt/permissions.md#bash-rule-limits)

596> 4. Se o classificador bloquear, Claude recebe o motivo. Na maioria das sessões, o motivo nomeia a regra que o classificador identificou, como `[Data Exfiltration]`, em vez de dar uma explicação escrita; consulte [Revisar negações](https://code.claude.com/docs/pt/auto-mode-config.md#review-denials)597> 4. Se o classificador bloquear, Claude recebe o motivo. Na maioria das sessões, o motivo nomeia a regra que o classificador identificou, como `[Data Exfiltration]`, em vez de dar uma explicação escrita; consulte [Revisar negações](https://code.claude.com/docs/pt/auto-mode-config.md#review-denials)

597>598>

598> Um [mod](https://code.claude.com/docs/pt/plugins/mods/overview.md) que você instala e que trata `tool.check` também pode aprovar uma ação. Para os casos em que a aprovação dele não passa por suas regras e hooks, consulte [Estender permissões com hooks](https://code.claude.com/docs/pt/permissions.md#precedence-among-rules-hooks-and-mods).599> Um [mod](https://code.claude.com/docs/pt/plugins/mods/overview.md) que você instala e que trata `tool.check` também pode aprovar uma ação. Para os casos em que a aprovação dele não passa por suas regras e hooks, consulte [Estender permissões com hooks](https://code.claude.com/docs/pt/permissions.md#precedence-among-rules-hooks-and-mods).

permissions.md +1 −1

Details

784* Fora de um repositório, Claude Code baseia a confiança no diretório de onde você o iniciou, e a confiança cobre qualquer subdiretório desse diretório, exceto um repositório git aninhado dentro dele, como um clone. Cada subdiretório coberto então conta como uma pasta cujo pai você confiou.784* Fora de um repositório, Claude Code baseia a confiança no diretório de onde você o iniciou, e a confiança cobre qualquer subdiretório desse diretório, exceto um repositório git aninhado dentro dele, como um clone. Cada subdiretório coberto então conta como uma pasta cujo pai você confiou.

785* Quando você inicia no seu diretório pessoal, Claude Code mantém a confiança apenas para a sessão atual e não a escreve no disco; consulte a nota [safeguards adicionais](https://code.claude.com/docs/pt/security.md#additional-safeguards).785* Quando você inicia no seu diretório pessoal, Claude Code mantém a confiança apenas para a sessão atual e não a escreve no disco; consulte a nota [safeguards adicionais](https://code.claude.com/docs/pt/security.md#additional-safeguards).

786 786 

787Claude Code mostra o diálogo de confiança apenas em sessões interativas. Uma execução `claude -p` ou uma sessão SDK nunca o mostra, e confiar em uma pasta pai não conta para essas regras, portanto [O que é executado antes de você confiar em uma pasta](#what-runs-before-you-trust-a-folder) diz qual conteúdo do repositório Claude Code ainda usa em cada uma dessas duas situações.787A extensão do VS Code solicita a mesma confiança, em um diálogo intitulado `Trust this folder in Claude Code?`, antes de iniciar uma sessão. Claude Code mostra o diálogo de confiança em sessões interativas no terminal, mas não em sessões `claude -p` ou SDK. Confiar em uma pasta pai não conta para essas regras. [O que é executado antes de você confiar em uma pasta](#what-runs-before-you-trust-a-folder) diz qual conteúdo do repositório Claude Code ainda usa em cada caso.

788 788 

789Antes de iniciar ou reiniciar uma [sessão em background](https://code.claude.com/docs/pt/agent-view.md), Claude Code também verifica a confiança do workspace para o diretório em que a sessão é executada. Se você executar `claude --bg` a partir de um terminal em um diretório que você não confiou, o diálogo de confiança aparece primeiro e a sessão inicia assim que você a aceita. Onde nenhum diálogo pode aparecer, como em um script, o comando sai com um erro [`Workspace not trusted`](https://code.claude.com/docs/pt/errors#workspace-not-trusted-when-dispatching-a-background-session).789Antes de iniciar ou reiniciar uma [sessão em background](https://code.claude.com/docs/pt/agent-view.md), Claude Code também verifica a confiança do workspace para o diretório em que a sessão é executada. Se você executar `claude --bg` a partir de um terminal em um diretório que você não confiou, o diálogo de confiança aparece primeiro e a sessão inicia assim que você a aceita. Onde nenhum diálogo pode aparecer, como em um script, o comando sai com um erro [`Workspace not trusted`](https://code.claude.com/docs/pt/errors#workspace-not-trusted-when-dispatching-a-background-session).

790 790 

Details

4 4 

5# Adicionar componentes a um plugin5# Adicionar componentes a um plugin

6 6 

7> Adicione skills, hooks, servidores MCP e todos os outros tipos de componentes a um plugin Claude Code, com um exemplo que valida cada um.7> Adicione skills, hooks, servidores MCP e outros tipos de componentes a um plugin Claude Code, com um exemplo que valida cada um.

8 8 

9Um plugin Claude Code é construído a partir de componentes, como skills, agentes, hooks e servidores MCP. Cada componente tem uma pasta padrão no plugin, uma chave de manifesto opcional em `.claude-plugin/plugin.json` que substitui ou adiciona àquela pasta, e um nome que o usuário vê. Para cada tabela de campos completa da chave, consulte a [referência de manifesto](https://code.claude.com/docs/pt/plugins/manifest-reference.md#fields).9Um plugin Claude Code é construído a partir de componentes, como skills, agentes, hooks e servidores MCP. Cada componente tem uma pasta padrão no plugin, uma chave de manifesto opcional em `.claude-plugin/plugin.json` que substitui ou adiciona àquela pasta, e um nome que o usuário vê. Para cada tabela de campos completa da chave, consulte a [referência de manifesto](https://code.claude.com/docs/pt/plugins/manifest-reference.md#fields).

10 10 


22 22 

23## Explorar o diretório do plugin23## Explorar o diretório do plugin

24 24 

25O explorador mostra um plugin de exemplo, `my-plugin`, que tem um de cada tipo de componente em sua localização padrão:25O explorador mostra um plugin de exemplo, `my-plugin`, que tem estes componentes em suas localizações padrão:

26 26 

27* Uma skill de revisão e um comando `about`27* Uma skill de revisão e um comando `about`

28* Um subagente de revisão de segurança28* Um subagente de revisão de segurança


31* Um estilo de saída e um tema de cor31* Um estilo de saída e um tema de cor

32* Um workflow de auditoria de rotas32* Um workflow de auditoria de rotas

33* Um executável `hello-plugin`33* Um executável `hello-plugin`

34* Configurações padrão

35* Um servidor MCP local e um servidor de linguagem Go34* Um servidor MCP local e um servidor de linguagem Go

36 35 

37Cada arquivo é o menor exemplo válido de seu formato, lá para mostrar a forma em vez de ser útil: uma skill ou agente real carrega instruções completas e frequentemente arquivos de suporte, e um hook ou monitor real faz trabalho real. As seções após o explorador usam os mesmos arquivos que seus exemplos e vinculam a versões mais completas. Selecione um arquivo ou pasta para ler para que serve, veja o que entra nele e encontre a seção que o cobre.36Cada arquivo é o menor exemplo válido de seu formato, lá para mostrar a forma em vez de ser útil: uma skill ou agente real carrega instruções completas e frequentemente arquivos de suporte, e um hook ou monitor real faz trabalho real. As seções após o explorador usam os mesmos arquivos que seus exemplos e vinculam a versões mais completas. Selecione um arquivo ou pasta para ler para que serve, veja o que entra nele e encontre a seção que o cobre.

38 37 

39What goes in a plugin38What goes in a plugin

40 39 

41This example plugin, `my-plugin`, has one of every kind of component, each in its default location. Select a file or folder to read what it’s for and see what goes in it.40This example plugin, `my-plugin`, has the components listed here, each in its default location. Select a file or folder to read what it’s for and see what goes in it.

42 41 

43Plugin directory42Plugin directory

44 43 


178npx prettier --write .177npx prettier --write .

179```178```

180 179 

181Um `settings.json` na raiz do plugin contém [configurações](https://code.claude.com/docs/pt/settings-reference.md) que se aplicam enquanto o plugin está habilitado, para que um plugin possa alterar como a sessão se comporta e não apenas adicionar componentes. Apenas duas chaves têm efeito de um plugin, [`agent`](https://code.claude.com/docs/pt/settings-reference#agent) e [`subagentStatusLine`](https://code.claude.com/docs/pt/settings-reference#subagentstatusline); todas as outras chaves são descartadas. Consulte [Configurações padrão](#default-settings).

182 

183Este define `agent`, que executa o thread principal da sessão como o agente `security-reviewer` do plugin, para que o prompt do sistema, restrições de ferramentas e modelo desse agente se apliquem a toda a sessão:

184 

185```json theme={null}

186{

187 "agent": "security-reviewer"

188}

189```

190 

191Um [servidor MCP](https://code.claude.com/docs/pt/mcp.md) fornece a Claude ferramentas de um sistema externo. Declare-o em `.mcp.json` na raiz do plugin. Este inicia um servidor local a partir de um script dentro do plugin e aparece em `/mcp` como `plugin:my-plugin:db`:180Um [servidor MCP](https://code.claude.com/docs/pt/mcp.md) fornece a Claude ferramentas de um sistema externo. Declare-o em `.mcp.json` na raiz do plugin. Este inicia um servidor local a partir de um script dentro do plugin e aparece em `/mcp` como `plugin:my-plugin:db`:

192 181 

193```json theme={null}182```json theme={null}


484 473 

485claude.ai e Cowork não instalam um plugin que tem um diretório `bin/` de nível superior, incluindo um que você [distribui através das configurações da organização claude.ai](https://claude.com/docs/plugins/org-sync#keep-executables-out-of-the-top-level-bin-directory).474claude.ai e Cowork não instalam um plugin que tem um diretório `bin/` de nível superior, incluindo um que você [distribui através das configurações da organização claude.ai](https://claude.com/docs/plugins/org-sync#keep-executables-out-of-the-top-level-bin-directory).

486 475 

487### Configurações padrão

488 

489Para definir padrões que se aplicam enquanto o plugin está habilitado, adicione um `settings.json` na raiz do plugin, ou coloque o mesmo objeto inline na chave de manifesto `settings`. Duas chaves têm efeito, `agent` e `subagentStatusLine`, e todas as outras chaves são descartadas.

490 

491Defina `agent` para executar um dos próprios agentes do plugin como o thread principal:

492 

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

494{

495 "agent": "security-reviewer"

496}

497```

498 

499Carregue o plugin e inicie uma sessão. Claude então responde na conversa principal com o prompt do sistema e modelo do agente `security-reviewer`.

500 

501Para tudo que a chave controla, consulte a [configuração `agent`](https://code.claude.com/docs/pt/settings-reference#agent).

502 

503Quando a mesma chave é definida em mais de um lugar, estas regras decidem qual valor se aplica:

504 

505* **Arquivo sobre manifesto**: quando ambos existem e `settings.json` define pelo menos uma chave suportada, `settings.json` se aplica e o `settings` do manifesto é ignorado

506* **Configurações do usuário sobre padrões do plugin**: entre fontes de configurações, padrões de plugin são a camada mais baixa, então um `agent` próprio do usuário em `~/.claude/settings.json` substitui o seu

507* **Dois plugins definem a mesma chave**: o valor do plugin carregado por último se aplica, e `claude --debug` registra `overrides setting`

508 

509Para a forma `subagentStatusLine`, consulte [linhas de status de subagente](https://code.claude.com/docs/pt/statusline.md#subagent-status-lines).

510 

511### Temas e estilos de saída476### Temas e estilos de saída

512 477 

513Um plugin pode incluir temas de cor e estilos de saída. Ambos aparecem nos mesmos seletores que os do usuário. Para qualquer um, definir a chave de manifesto substitui a varredura de pasta.478Um plugin pode incluir temas de cor e estilos de saída. Ambos aparecem nos mesmos seletores que os do usuário. Para qualquer um, definir a chave de manifesto substitui a varredura de pasta.

Details

72* **`version`**: opcional. Configurá-lo mantém os usuários nessa versão até que você a altere; [Lançar uma nova versão](https://code.claude.com/docs/pt/plugins/host-marketplace.md#release-a-new-version) diz quando configurá-la ou omiti-la.72* **`version`**: opcional. Configurá-lo mantém os usuários nessa versão até que você a altere; [Lançar uma nova versão](https://code.claude.com/docs/pt/plugins/host-marketplace.md#release-a-new-version) diz quando configurá-la ou omiti-la.

73* **`author`**: quem creditar. `name` é obrigatório dentro dele; `email` e `url` são opcionais.73* **`author`**: quem creditar. `name` é obrigatório dentro dele; `email` e `url` são opcionais.

74 74 

75Todos os outros campos estão na [referência do manifest](https://code.claude.com/docs/pt/plugins/manifest-reference.md#fields).75Os outros campos estão na [referência do manifest](https://code.claude.com/docs/pt/plugins/manifest-reference.md#fields).

76 76 

77Apenas `plugin.json` vai dentro de `.claude-plugin/`. A skill que você adiciona a seguir vai diretamente sob `my-first-plugin/`, ao lado dessa pasta.77Apenas `plugin.json` vai dentro de `.claude-plugin/`. A skill que você adiciona a seguir vai diretamente sob `my-first-plugin/`, ao lado dessa pasta.

78 78 


344 "PostToolUse": [344 "PostToolUse": [

345 {345 {

346 "matcher": "Write|Edit",346 "matcher": "Write|Edit",

347 "hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npm run lint:fix" }]347 "hooks": [{ "type": "command", "command": "f=$(jq -r '.tool_input.file_path') && npm run lint:fix -- \"$f\"" }]

348 }348 }

349 ]349 ]

350 }350 }

Details

4 4 

5# Referência de manifesto de plugin5# Referência de manifesto de plugin

6 6 

7> Referência completa para plugin.json: cada campo com seu tipo e padrão, formas de caminho aceitas e os esquemas de userConfig e variáveis de ambiente.7> Referência completa para plugin.json: campos com tipos e padrões, formas de caminho aceitas e os esquemas de userConfig e variáveis de ambiente.

8 8 

9Um manifesto de plugin é o arquivo `plugin.json` no diretório `.claude-plugin/` de um plugin. Ele contém os metadados do plugin e os valores de [`userConfig`](#user-configuration) que Claude Code solicita ao usuário. Também declara qualquer componente que você define inline ou mantém fora de seu [local padrão](#standard-layout).9Um manifesto de plugin é o arquivo `plugin.json` no diretório `.claude-plugin/` de um plugin. Ele contém os metadados do plugin e os valores de [`userConfig`](#user-configuration) que Claude Code solicita ao usuário. Também declara qualquer componente que você define inline ou mantém fora de seu [local padrão](#standard-layout).

10 10 


117 117 

118## Campos118## Campos

119 119 

120A tabela lista as chaves de nível superior em `plugin.json`. `name` é a única chave obrigatória. Quando um nome de campo é um link, a seção vinculada tem suas regras completas.120A tabela lista as chaves de nível superior em `plugin.json`. `name` é a única chave obrigatória. Quando o nome de um campo é um link, a seção vinculada contém as regras completas.

121 121 

122Para chaves de componentes como `commands` e `hooks`, [Formas de caminho de componente](#component-path-forms) mostra cada forma aceita com um exemplo, e cada caminho segue as [regras de caminho](#path-rules) para o prefixo `./`, extensões e contenção.122Para chaves de componentes como `commands` e `hooks`, [Formas de caminho de componente](#component-path-forms) mostra cada forma aceita com um exemplo, e cada caminho segue as [regras de caminho](#path-rules) para o prefixo `./`, extensões e contenção.

123 123 


141| [`termsOfServiceUrl`](#directory-listing-fields) | String | Link dos termos de serviço para a listagem do plugin no diretório da Anthropic. Claude Code não o lê |141| [`termsOfServiceUrl`](#directory-listing-fields) | String | Link dos termos de serviço para a listagem do plugin no diretório da Anthropic. Claude Code não o lê |

142| [`defaultEnabled`](#defaultenabled) | Boolean | Se o plugin inicia habilitado quando o usuário não o configurou. Padrão é `true` |142| [`defaultEnabled`](#defaultenabled) | Boolean | Se o plugin inicia habilitado quando o usuário não o configurou. Padrão é `true` |

143| [`dependencies`](#dependencies) | Array de strings ou objetos | Plugins que devem estar habilitados para este funcionar |143| [`dependencies`](#dependencies) | Array de strings ou objetos | Plugins que devem estar habilitados para este funcionar |

144| [`settings`](#settings) | Object | Configurações que Claude Code aplica enquanto o plugin está habilitado. Apenas `agent` e `subagentStatusLine` têm efeito |

145| [`userConfig`](#user-configuration) | Object | Valores que Claude Code solicita ao usuário quando o plugin está habilitado |144| [`userConfig`](#user-configuration) | Object | Valores que Claude Code solicita ao usuário quando o plugin está habilitado |

146| `types` | Caminho | Um arquivo `.d.ts` que declara os valores `$.state` e os nomes `$` de um [mod](https://code.claude.com/docs/pt/plugins/mods/reference.md#files) |145| `types` | Caminho | Um arquivo `.d.ts` que declara os valores `$.state` e os nomes `$` de um [mod](https://code.claude.com/docs/pt/plugins/mods/reference.md#files) |

147| [`channels`](#channels) | Array de objetos | Canais de mensagem que o plugin fornece, cada um vinculado a um de seus servidores MCP |146| [`channels`](#channels) | Array de objetos | Canais de mensagem que o plugin fornece, cada um vinculado a um de seus servidores MCP |


211 210 

212Plugins que devem estar habilitados para este funcionar. Cada entrada é `"name"`, `"name@marketplace"` ou `{ "name": "...", "marketplace": "...", "version": "..." }`. Nomes simples resolvem contra o próprio marketplace deste plugin. Veja [restrições de dependência](https://code.claude.com/docs/pt/plugins/dependencies.md).211Plugins que devem estar habilitados para este funcionar. Cada entrada é `"name"`, `"name@marketplace"` ou `{ "name": "...", "marketplace": "...", "version": "..." }`. Nomes simples resolvem contra o próprio marketplace deste plugin. Veja [restrições de dependência](https://code.claude.com/docs/pt/plugins/dependencies.md).

213 212 

214### `settings`

215 

216Configurações que Claude Code aplica enquanto o plugin está habilitado. Apenas `agent` e `subagentStatusLine` têm efeito; outras chaves são removidas no carregamento. Um `settings.json` na raiz do plugin tem precedência sobre esta chave. Veja [Configurações padrão](https://code.claude.com/docs/pt/plugins/components.md#default-settings).

217 

218## Formas de caminho de componente213## Formas de caminho de componente

219 214 

220Cada chave de componente aceita um caminho relativo à raiz do plugin. `hooks`, `mcpServers`, `lspServers` e `experimental.monitors` também aceitam configuração inline, `commands` também aceita um mapa de objeto, e `mcpServers` também aceita caminhos de bundle MCP e URLs. Os exemplos a seguir mostram cada forma aceita uma vez. Para o que cada componente faz em tempo de execução, veja [Componentes de plugin](https://code.claude.com/docs/pt/plugins/components.md).215Cada chave de componente aceita um caminho relativo à raiz do plugin. `hooks`, `mcpServers`, `lspServers` e `experimental.monitors` também aceitam configuração inline, `commands` também aceita um mapa de objeto, e `mcpServers` também aceita caminhos de bundle MCP e URLs. Os exemplos a seguir mostram cada forma aceita uma vez. Para o que cada componente faz em tempo de execução, veja [Componentes de plugin](https://code.claude.com/docs/pt/plugins/components.md).


626| Temas | `themes/` | Arquivos de tema JSON |621| Temas | `themes/` | Arquivos de tema JSON |

627| Monitors | `monitors/monitors.json` | O array de monitors |622| Monitors | `monitors/monitors.json` | O array de monitors |

628| Executáveis | `bin/` | Arquivos aqui estão no `PATH` da ferramenta Bash enquanto o plugin está habilitado, então Claude os executa como comandos simples. claude.ai e Cowork não instalam um plugin que tem este diretório, incluindo um que você [distribui através das configurações de organização claude.ai](https://claude.com/docs/plugins/org-sync#keep-executables-out-of-the-top-level-bin-directory) |623| Executáveis | `bin/` | Arquivos aqui estão no `PATH` da ferramenta Bash enquanto o plugin está habilitado, então Claude os executa como comandos simples. claude.ai e Cowork não instalam um plugin que tem este diretório, incluindo um que você [distribui através das configurações de organização claude.ai](https://claude.com/docs/plugins/org-sync#keep-executables-out-of-the-top-level-bin-directory) |

629| Configurações | `settings.json` | Padrões `agent` e `subagentStatusLine` aplicados enquanto o plugin está habilitado |

630 624 

631Um plugin que usa cada local padrão, mais uma pasta `scripts/` que seus hooks chamam, é disposto assim:625Um plugin que usa locais padrão, mais uma pasta `scripts/` que seus hooks chamam, é disposto assim:

632 626 

633```text theme={null}627```text theme={null}

634deploy-tools/628deploy-tools/


655│ └── deploy-tool649│ └── deploy-tool

656├── scripts/650├── scripts/

657│ └── format.sh651│ └── format.sh

658├── settings.json

659├── .mcp.json652├── .mcp.json

660└── .lsp.json653└── .lsp.json

661```654```

Details

61 * A sessão é executada com [credenciais de `/login`](https://code.claude.com/docs/pt/authentication#authentication-precedence) de um plano Team ou Enterprise61 * A sessão é executada com [credenciais de `/login`](https://code.claude.com/docs/pt/authentication#authentication-precedence) de um plano Team ou Enterprise

62 62 

63 Um usuário com uma chave de API, ou no Amazon Bedrock, na Agent Platform do Google Cloud ou no Microsoft Foundry, obtém a guarda apenas em uma máquina que tem configurações gerenciadas ou `managed-mcp.json`. Uma sessão executada com um [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/pt/authentication#generate-a-long-lived-token) de longa duração também não conta como esse login, mesmo quando um login Team ou Enterprise está armazenado na máquina.63 Um usuário com uma chave de API, ou no Amazon Bedrock, na Agent Platform do Google Cloud ou no Microsoft Foundry, obtém a guarda apenas em uma máquina que tem configurações gerenciadas ou `managed-mcp.json`. Uma sessão executada com um [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/pt/authentication#generate-a-long-lived-token) de longa duração também não conta como esse login, mesmo quando um login Team ou Enterprise está armazenado na máquina.

64* **O guard protege o que você gerencia.** Um mod de um usuário não pode mudar o que seus hooks gerenciados recebem ou decidem, o prompt do sistema, seu `CLAUDE.md` gerenciado e outras instruções gerenciadas, o que qualquer mod lê como configurações, ou as ferramentas e descrições de seus servidores MCP gerenciados.64* **A guarda protege o que você gerencia.** Um mod de um usuário não pode mudar o que seus hooks gerenciados recebem ou decidem, o system prompt, ou seu `CLAUDE.md` gerenciado e outras instruções gerenciadas. Também não pode mudar o que qualquer mod lê como configurações, nem as ferramentas e descrições de seus servidores MCP gerenciados depois que eles se conectam.

65* **Fora do que você gerencia, um mod de um usuário age como esse usuário.** O mod mantém as permissões desse usuário: ainda pode ler e escrever arquivos, iniciar processos e fazer requisições de rede. Também pode reescrever chamadas de ferramenta e prompts, negar uma chamada de ferramenta e desenhar na interface.65* **Na v2.1.323 ou posterior, um mod de um usuário pode impedir que um servidor MCP gerenciado se conecte.** Na sessão desse usuário, `/mcp` lista o servidor como retido por esse mod. Para evitar isso, [impeça que mods instalados pelo usuário sejam carregados](#stop-user-installed-mods-from-loading).

66* **Fora do que você gerencia, um mod de um usuário age como esse usuário.** O mod mantém as permissões desse usuário: ainda pode ler e escrever arquivos, iniciar processos e fazer requisições de rede. Também pode reescrever chamadas de ferramenta e prompts, negar uma chamada de ferramenta, adicionar ou remover ferramentas e desenhar na interface.

66* **Regras de permissão e hooks `PreToolUse` têm precedência sobre o mod de um usuário.** Com a guarda carregada, por padrão um mod de um usuário não pode aprovar uma chamada que uma regra `deny` recusa ou para a qual uma regra `ask` pede confirmação, qualquer que seja o arquivo de configurações que contém a regra. O mod também não pode aprovar uma chamada que qualquer hook `PreToolUse` bloqueou.67* **Regras de permissão e hooks `PreToolUse` têm precedência sobre o mod de um usuário.** Com a guarda carregada, por padrão um mod de um usuário não pode aprovar uma chamada que uma regra `deny` recusa ou para a qual uma regra `ask` pede confirmação, qualquer que seja o arquivo de configurações que contém a regra. O mod também não pode aprovar uma chamada que qualquer hook `PreToolUse` bloqueou.

67 68 

68 Regras de permissão e hooks `PreToolUse` se aplicam às chamadas de ferramenta do Claude, não às [chamadas `$.fs` e `$.process` de um mod](https://code.claude.com/docs/pt/plugins/mods/api#reach-files-processes-and-the-network). Com `Read(.env)` negado, um mod ainda pode ler esse arquivo com `$.fs.read` ou iniciar um programa que o faça. Para limitar as próprias chamadas `$.fs` e `$.process` de um mod, [impeça o mod de ser carregado](#stop-user-installed-mods-from-loading) ou trate-as em um [mod de política](#enforce-a-policy-with-a-mod-of-your-own).69 Regras de permissão e hooks `PreToolUse` se aplicam às chamadas de ferramenta do Claude, não às [chamadas `$.fs` e `$.process` de um mod](https://code.claude.com/docs/pt/plugins/mods/api#reach-files-processes-and-the-network). Com `Read(.env)` negado, um mod ainda pode ler esse arquivo com `$.fs.read` ou iniciar um programa que o faça. Para limitar as próprias chamadas `$.fs` e `$.process` de um mod, [impeça o mod de ser carregado](#stop-user-installed-mods-from-loading) ou trate-as em um [mod de política](#enforce-a-policy-with-a-mod-of-your-own).


159As linhas `hooks:` e `calls:` na saída descrevem o código do mod:160As linhas `hooks:` e `calls:` na saída descrevem o código do mod:

160 161 

161```text theme={null}162```text theme={null}

162 ❯ ./register.js hooks: session.start, tool.call, ui.render{component=Pane}163 ❯ ./register.js hooks: session.start, tool.call, ui.render{component=Pane} (default matcher key: plugin)

163 ❯ ./register.js calls: $.fs.read, $.http.fetch, $.store.set, $.ui.open164 ❯ ./register.js calls: $.fs.read, $.http.fetch, $.store.set, $.ui.open

164```165```

165 166 

166A linha `hooks:` lista os eventos que o mod recebe. A linha `calls:` lista os métodos da API de mods que seu código chama. A [API de mods](https://code.claude.com/docs/pt/plugins/mods/api.md), escrita como `$` no código de um mod, é como um mod alcança arquivos, processos e a rede. Claude Code recusa carregar um mod que usa a API de mods de uma forma que este comando não consegue ler.167* **`hooks:`**: os eventos que o mod recebe. Uma nota `default matcher key: plugin` significa que o hook antes dela [ignora os controles e desenhos de outros mods](https://code.claude.com/docs/pt/plugins/mods/events.md#hook-other-mods-drawings-and-controls).

168* **`calls:`**: os métodos da API de mods que seu código chama

167 169 

168Procure na linha `calls:` por estes:170A [API de mods](https://code.claude.com/docs/pt/plugins/mods/api.md), escrita como `$` no código de um mod, é como um mod alcança arquivos, processos e a rede. Claude Code recusa carregar um mod que usa a API de mods de uma forma que este comando não consegue ler.

171 

172Não aprove um mod que falhe neste comando, porque algumas falhas não impedem que ele seja carregado. Execute o comando no Claude Code v2.1.323 ou posterior, em que uma lista longa continua em mais linhas com o mesmo rótulo, e leia cada linha `hooks:` e `calls:`. Nas linhas `calls:`, procure por estes:

169 173 

170| Chamada | O que significa |174| Chamada | O que significa |

171| :- | :- |175| :- | :- |


174| `$.http.fetch` | Faz solicitações de rede |178| `$.http.fetch` | Faz solicitações de rede |

175| `$.env.get`, `$.settings.read` | Lê variáveis de ambiente e configurações, que podem conter chaves de API. Uma linha `env reads:` na saída nomeia cada variável. |179| `$.env.get`, `$.settings.read` | Lê variáveis de ambiente e configurações, que podem conter chaves de API. Uma linha `env reads:` na saída nomeia cada variável. |

176| `$.env.set` | Define uma variável de ambiente para Claude Code e para cada comando e servidor MCP que ele inicia depois, o que pode mudar o que esses programas executam. Uma linha `env writes:` nomeia cada variável. |180| `$.env.set` | Define uma variável de ambiente para Claude Code e para cada comando e servidor MCP que ele inicia depois, o que pode mudar o que esses programas executam. Uma linha `env writes:` nomeia cada variável. |

177| `$.mcp.call` | Chama uma ferramenta em um servidor MCP conectado, sob as regras de permissão da sessão |181| `$.mcp.call` | Chama uma ferramenta em um servidor MCP conectado, sem prompt de permissão. Claude Code recusa a chamada sob uma regra de negação ou uma regra ask gerenciada. Também recusa uma chamada a uma ferramenta marcada com [`requiresUserInteraction`](https://code.claude.com/docs/pt/mcp#require-approval-for-a-specific-tool), ou a uma que sua organização [definiu como `ask`](https://code.claude.com/docs/pt/mcp#organization-controls-on-connector-tools) quando essa configuração alcança o Claude Code. |

178| `$.model.complete` | Usa o plano ou chave de API do usuário para chamadas de modelo |182| `$.model.complete` | Usa o plano ou chave de API do usuário para chamadas de modelo |

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

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ê |184| `$.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ê |


316 320 

317Claude Code levanta um evento cada vez que está prestes a agir, como executar uma ferramenta, e o passa para cada mod por sua vez. Um mod que conta como seu [é executado antes dos mods dos usuários](https://code.claude.com/docs/pt/plugins/mods/events.md#the-order-mods-run-in) mesmo quando você não o lista em lugar nenhum. Para definir seu lugar, liste seu id em uma de duas configurações. O id é o nome do plugin, `@`, e o nome do marketplace, como `acme-guard@acme-tools`.321Claude Code levanta um evento cada vez que está prestes a agir, como executar uma ferramenta, e o passa para cada mod por sua vez. Um mod que conta como seu [é executado antes dos mods dos usuários](https://code.claude.com/docs/pt/plugins/mods/events.md#the-order-mods-run-in) mesmo quando você não o lista em lugar nenhum. Para definir seu lugar, liste seu id em uma de duas configurações. O id é o nome do plugin, `@`, e o nome do marketplace, como `acme-guard@acme-tools`.

318 322 

319* **`prependPlugins`**: seu mod vê cada evento antes de qualquer mod de um usuário e cada resultado depois. Pode mudar o evento, recusá-lo ou pular os mods dos usuários.323* **`prependPlugins`**: seu mod vê um evento antes de qualquer mod de um usuário, e o resultado do evento depois deles. Pode mudar o evento, recusá-lo ou pular os mods dos usuários. Na v2.1.323 ou posterior, verifique se seus hooks ainda [alcançam os controles e desenhos de outros mods](https://code.claude.com/docs/pt/plugins/mods/events.md#hook-other-mods-drawings-and-controls).

320* **`appendPlugins`**: seu mod é executado após cada mod de um usuário, então vê apenas os eventos que aqueles mods passam, na forma que os passam324* **`appendPlugins`**: seu mod é executado após cada mod de um usuário, então vê apenas os eventos que aqueles mods passam, na forma que os passam

321 325 

322Este exemplo declara o marketplace `acme-tools` em `/opt/acme/claude-plugins`, habilita `acme-guard` dele, e executa esse mod primeiro, com a guarda integrada depois:326Este exemplo declara o marketplace `acme-tools` em `/opt/acme/claude-plugins`, habilita `acme-guard` dele, e executa esse mod primeiro, com a guarda integrada depois:


359 363 

360Cada vez que outro mod está prestes a ser carregado, seu mod recebe a lista que `claude plugin validate` imprime, em um evento nomeado [`plugin.register`](https://code.claude.com/docs/pt/plugins/mods/reference#other-mods). Um mod em `prependPlugins` pode ler essa lista e recusar o mod. Também pode [tratar qualquer chamada da API de mods por nome](https://code.claude.com/docs/pt/plugins/mods/api.md#reach-files-processes-and-the-network) para registrar ou recusar essa chamada para cada outro mod. O nome é o método sem o `$.`, então um hook em `fs.write` vê cada chamada `$.fs.write`.364Cada vez que outro mod está prestes a ser carregado, seu mod recebe a lista que `claude plugin validate` imprime, em um evento nomeado [`plugin.register`](https://code.claude.com/docs/pt/plugins/mods/reference#other-mods). Um mod em `prependPlugins` pode ler essa lista e recusar o mod. Também pode [tratar qualquer chamada da API de mods por nome](https://code.claude.com/docs/pt/plugins/mods/api.md#reach-files-processes-and-the-network) para registrar ou recusar essa chamada para cada outro mod. O nome é o método sem o `$.`, então um hook em `fs.write` vê cada chamada `$.fs.write`.

361 365 

366> [!NOTE]

367>

368> Na v2.1.323 ou posterior, um hook `ui.focus` precisa de um matcher mais amplo para receber as chamadas `$.ui.focus` de outros mods. Veja [Aplicar hooks aos desenhos e controles de outros mods](https://code.claude.com/docs/pt/plugins/mods/events.md#hook-other-mods-drawings-and-controls).

369 

362Este mod de política recusa qualquer mod de um usuário cujo próprio código chama `$.process.run` ou `$.process.spawn`. Também mantém um log de auditoria, escrevendo cada chamada de ferramenta e cada arquivo que um mod escreve no log de depuração. Porque é executado primeiro, o log registra o que foi solicitado, antes de qualquer mod de um usuário mudá-lo. Salve-o como `acme-guard/hooks/register.js`:370Este mod de política recusa qualquer mod de um usuário cujo próprio código chama `$.process.run` ou `$.process.spawn`. Também mantém um log de auditoria, escrevendo cada chamada de ferramenta e cada arquivo que um mod escreve no log de depuração. Porque é executado primeiro, o log registra o que foi solicitado, antes de qualquer mod de um usuário mudá-lo. Salve-o como `acme-guard/hooks/register.js`:

363 371 

364```javascript acme-guard/hooks/register.js theme={null}372```javascript acme-guard/hooks/register.js theme={null}


403* **`e.tier`**: onde o mod seria executado, um de `prepend`, `user`, `append` ou `builtin`. Cada mod que uma pessoa instala é `user`.411* **`e.tier`**: onde o mod seria executado, um de `prepend`, `user`, `append` ou `builtin`. Cada mod que uma pessoa instala é `user`.

404* **`e.uses.calls`**: os métodos da API de mods que o mod chama, cada um escrito `namespace.method` como `process.run`, sem o `$.` que `claude plugin validate` imprime412* **`e.uses.calls`**: os métodos da API de mods que o mod chama, cada um escrito `namespace.method` como `process.run`, sem o `$.` que `claude plugin validate` imprime

405 413 

406Quando um usuário instala um mod que chama `$.process.run`, o mod não é carregado, e seu log de depuração tem uma linha que termina com `refused by acme-guard:` e sua razão. A recusa também alcança a transcrição em uma [sessão que recarrega a quente um diretório de plugin](https://code.claude.com/docs/pt/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing). Para bloquear uma chamada sem recusar o mod inteiro, retorne `{ deny: 'your reason' }` de um hook no nome daquela chamada.414Quando um usuário instala um mod que chama `$.process.run`, o mod não é carregado, e seu log de depuração tem uma linha que termina com `refused by acme-guard:` e sua razão. A recusa também alcança a transcrição em uma [sessão que recarrega a quente um diretório de plugin](https://code.claude.com/docs/pt/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing).

415 

416Para bloquear uma chamada sem recusar o mod inteiro, retorne `{ deny: 'your reason' }` de um hook no nome daquela chamada, depois de [verificar quem fez a chamada](https://code.claude.com/docs/pt/plugins/mods/reference.md#mods-api-calls).

407 417 

408Para enviar as linhas de auditoria para algum lugar que não seja o log de depuração, chame `$.http.fetch` dos mesmos hooks.418Para enviar as linhas de auditoria para algum lugar que não seja o log de depuração, chame `$.http.fetch` dos mesmos hooks.

409 419 

Details

21 21 

22Descreva o mod que você quer em uma sessão interativa do Claude Code, e Claude o escreve. Claude trabalha a partir de uma [skill](https://code.claude.com/docs/pt/skills.md) integrada chamada `plugin-authoring`, que diz a ele onde escrever o mod, quais eventos e métodos sua versão tem, e como o mod é carregado. Claude pode carregar a skill quando você pede um mod, ou você pode carregá-la você mesmo executando `/plugin-authoring` no prompt do Claude Code.22Descreva o mod que você quer em uma sessão interativa do Claude Code, e Claude o escreve. Claude trabalha a partir de uma [skill](https://code.claude.com/docs/pt/skills.md) integrada chamada `plugin-authoring`, que diz a ele onde escrever o mod, quais eventos e métodos sua versão tem, e como o mod é carregado. Claude pode carregar a skill quando você pede um mod, ou você pode carregá-la você mesmo executando `/plugin-authoring` no prompt do Claude Code.

23 23 

24Nos [modos de permissão](https://code.claude.com/docs/pt/permission-modes.md) `auto` e `bypassPermissions`, o mod pode ser executado quando o turno termina. Caso contrário, ele é executado assim que você o aprova, exceto em [sessões onde um mod que Claude escreve não pode ser carregado](#sessions-that-skip-the-approval).24Nos [modos de permissão](https://code.claude.com/docs/pt/permission-modes.md) `auto` e `bypassPermissions`, o Claude Code [pode carregar o mod sem perguntar a você](#sessions-that-skip-the-approval). Para que seja perguntado antes, inicie uma nova sessão no modo `default` ou `acceptEdits`, ou [mude](https://code.claude.com/docs/pt/permission-modes.md#switch-permission-modes) para qualquer um desses modos antes de pedir o primeiro mod da sessão. Em [algumas sessões](#sessions-that-cant-load), o mod não pode ser carregado.

25 25 

26**1. Descreva o mod**26**1. Descreva o mod**

27 27 


33 33 

34**2. Aprove o mod**34**2. Aprove o mod**

35 35 

36Quando Claude salva o primeiro arquivo, o Claude Code pergunta se deve ativar o hot reloading para a sessão. O hot reloading executa os mods que Claude escreve nesta sessão e pega cada mudança posterior. Se nenhuma pergunta aparecer, pule esta etapa.36Quando Claude salva o primeiro arquivo, o Claude Code pergunta se deve ativar o hot reloading para a sessão. O hot reloading executa os mods que Claude escreve nesta sessão e pega cada mudança posterior. Você não vê essa pergunta em uma sessão que [carrega novos mods sem perguntar](#sessions-that-skip-the-approval) ou que [não pode carregá-los](#sessions-that-cant-load).

37 37 

38Escolha uma destas respostas:38Escolha uma destas respostas:

39 39 


57* **Em uma sessão que você inicia**: em seu shell, execute `claude --plugin-dir ~/mods/git-branch`57* **Em uma sessão que você inicia**: em seu shell, execute `claude --plugin-dir ~/mods/git-branch`

58* **Para outras pessoas**: [adicione-o a um marketplace](#share-your-mod) para que possam instalá-lo58* **Para outras pessoas**: [adicione-o a um marketplace](#share-your-mod) para que possam instalá-lo

59 59 

60### Sessões que carregam um mod sem perguntar

61 

62O Claude Code pode ativar o hot reloading sem perguntar nos modos `auto` e `bypassPermissions`, e os mods são carregados quando o turno termina.

63 

64Quando você retoma uma sessão, interativamente ou com `claude -p`, os mods que já estão na pasta de mods dela [podem ser carregados](#sessions-that-cant-load) sem perguntar. Para evitar que um mod seja carregado quando você retoma, delete seu diretório.

65 

60### Sessões onde um mod que Claude escreve não pode ser carregado66### Sessões onde um mod que Claude escreve não pode ser carregado

61 67 

62Um mod que Claude escreve é carregado em um workspace confiável onde mods podem ser executados, depois que você o aprova nos modos que pedem aprovação. Nestas sessões ele não é carregado:68Um mod que Claude escreve não é carregado nestes casos, e o Claude Code não pede para carregá-lo:

63 69 

64* **Ninguém está lá para aprovar**: a sessão não pode mostrar um prompt, como em uma execução `claude -p` fora dos modos `auto` e `bypassPermissions`, ou no [modo `dontAsk`](https://code.claude.com/docs/pt/permission-modes)70* **Ninguém está lá para aprovar**: a sessão está no [modo `dontAsk`](https://code.claude.com/docs/pt/permission-modes), ou é a execução `claude -p` que escreve o mod, no modo `default` ou `acceptEdits`, que não pode mostrar a você a pergunta sobre hot reloading.

65* **O workspace não é confiável**: você não aceitou o prompt de confiança para o diretório71* **Uma sessão interativa onde o workspace não é confiável**: você não aceitou o prompt de confiança para o diretório

66* **Mods estão desativados**: você iniciou com `--safe-mode` ou `--bare`, você definiu `disableAllHooks`, ou as [configurações gerenciadas](https://code.claude.com/docs/pt/plugins/mods/admin.md#choose-how-much-to-allow) da sua organização os bloqueiam72* **Mods estão desativados**: você iniciou com `--safe-mode` ou `--bare`, você definiu `disableAllHooks`, ou as [configurações gerenciadas](https://code.claude.com/docs/pt/plugins/mods/admin.md#choose-how-much-to-allow) da sua organização os bloqueiam

67 73 

68## Escreva um mod você mesmo74## Escreva um mod você mesmo


292 298 

293Verifique a linha `hooks:` para ver os eventos que seu módulo conecta, cada um com seu filtro entre chaves, e `calls:` para ver cada método da API de mods que ele chama. Se seu módulo lê ou define variáveis de ambiente, procure também as linhas `env reads:` e `env writes:`, e `state reads:` e `state writes:` se ele usa [`$.state`](https://code.claude.com/docs/pt/plugins/mods/interface#keep-state). Você também vê uma linha para cada hook que pode recusar uma ação, como `gating hook without .catch: tool.call`, que informa se esse hook tem um [handler `.catch`](https://code.claude.com/docs/pt/plugins/mods/events#handle-a-hook-that-fails).299Verifique a linha `hooks:` para ver os eventos que seu módulo conecta, cada um com seu filtro entre chaves, e `calls:` para ver cada método da API de mods que ele chama. Se seu módulo lê ou define variáveis de ambiente, procure também as linhas `env reads:` e `env writes:`, e `state reads:` e `state writes:` se ele usa [`$.state`](https://code.claude.com/docs/pt/plugins/mods/interface#keep-state). Você também vê uma linha para cada hook que pode recusar uma ação, como `gating hook without .catch: tool.call`, que informa se esse hook tem um [handler `.catch`](https://code.claude.com/docs/pt/plugins/mods/events#handle-a-hook-that-fails).

294 300 

295Se um evento que você pretendia tratar está faltando na primeira linha, o Claude Code não chamará esse hook também. A causa usual é um nome de evento digitado incorretamente, que o comando relata como um erro como `"tool.calls" is not an event`.301Se um evento que você pretendia tratar está faltando nas linhas `hooks:`, o Claude Code também não chamará esse hook. A causa usual é um nome de evento digitado incorretamente, que o comando relata como um erro como `"tool.calls" is not an event`.

296 302 

297Siga estas regras para que a análise estática possa encontrar cada hook e chamada:303Siga estas regras para que a análise estática possa encontrar cada hook e chamada:

298 304 

Details

91 91 

92Registre cada evento uma vez por matcher. Se você chamar `on` duas vezes para `session.start` sem um matcher, o módulo falhará ao carregar com `on("session.start") is registered twice without a matcher`. Coloque tudo o que seu mod faz no início da sessão em um hook.92Registre cada evento uma vez por matcher. Se você chamar `on` duas vezes para `session.start` sem um matcher, o módulo falhará ao carregar com `on("session.start") is registered twice without a matcher`. Coloque tudo o que seu mod faz no início da sessão em um hook.

93 93 

94#### Faça hook dos desenhos e controles de outros mods

95 

96Para fazer hook dos controles, painéis ou da linha acima do prompt de outro mod, passe um matcher com `plugin`. Use o nome do mod sem seu marketplace, como em `{ plugin: 'other-mod' }`, ou `{ plugin: '*' }` para todos os mods. Sem `plugin`, um hook em `ui.press`, `ui.input`, `ui.select` ou `ui.focus` não é executado para os controles de outros mods, e um hook `ui.render` ignora seus painéis e suas linhas acima do prompt.

97 

98Um hook em um wildcard sem matcher, como `on('*', hook)` ou `on('ui.*', hook)`, ainda é executado para todos os mods. Um wildcard com um matcher também precisa de `plugin`.

99 

100> [!NOTE]

101>

102> `{ plugin: '*' }` requer Claude Code v2.1.323 ou posterior. Antes da v2.1.323, um hook sem `plugin` era executado para todos os mods, e um hook com `{ plugin: '*' }` não era executado. Para corresponder a todos os mods em ambas as versões, use `{ plugin: /./ }` em `ui.press`, `ui.input` e `ui.select`. Para `ui.focus` e `ui.render`, use `on('ui.*', hook)` e verifique o nome do evento em `next.event`, como em `if (next.event !== 'ui.focus') return next(e)`.

103 

94## Fazer hook no que o Claude está fazendo104## Fazer hook no que o Claude está fazendo

95 105 

96Trate estes eventos para ver ou alterar uma chamada de ferramenta, um prompt, um turno ou uma leitura de configurações enquanto acontecem. Para cada evento e o que um hook pode retornar, consulte a [referência de eventos](https://code.claude.com/docs/pt/plugins/mods/reference.md#events).106Trate estes eventos para ver ou alterar uma chamada de ferramenta, um prompt, um turno ou uma leitura de configurações enquanto acontecem. Para cada evento e o que um hook pode retornar, consulte a [referência de eventos](https://code.claude.com/docs/pt/plugins/mods/reference.md#events).

Details

177 177 

178## Escolher onde desenhar178## Escolher onde desenhar

179 179 

180Um hook `ui.render` é executado para cada site de renderização a menos que você o restrinja ao que deseja desenhar. Para escolher o site de renderização, passe um filtro, chamado de [matcher](https://code.claude.com/docs/pt/plugins/mods/events.md#filter-which-events-a-hook-handles), como o segundo argumento para `on`. `{ component: 'Pane' }` executa o hook apenas para painéis. No hook, `e.component` nomeia o site, `e.surface` diz qual app está desenhando, e `e.props` contém os dados do próprio site. Para um painel, `e.requestId` é o `id` que você abriu com.180Para escolher o ponto de renderização em que um hook `ui.render` desenha, passe um filtro, chamado de [matcher](https://code.claude.com/docs/pt/plugins/mods/events.md#filter-which-events-a-hook-handles), como o segundo argumento para `on`. `{ component: 'Pane' }` executa o hook apenas para painéis. No hook, `e.component` nomeia o ponto, `e.surface` diz qual app está desenhando, e `e.props` contém os dados do próprio ponto. Para um painel, `e.requestId` é o `id` com que você o abriu.

181 181 

182O painel e a faixa ficam vazios até um mod preenchê-los. Selecione uma aba para ver o que cada um é e como desenhar nele:182O painel e a faixa ficam vazios até um mod preenchê-los. Selecione uma aba para ver o que cada um é e como desenhar nele:

183 183 


191 191 

192> [tab] Band above the prompt192> [tab] Band above the prompt

193>193>

194> A faixa é uma tira diretamente acima da entrada do prompt. Ela está sempre lá, e cada mod a compartilha.194> A faixa é uma tira diretamente acima da entrada do prompt. Cada mod que desenha ali recebe sua própria linha, e as linhas se empilham a partir do topo na [ordem em que os mods são executados](https://code.claude.com/docs/pt/plugins/mods/events.md#the-order-mods-run-in).

195>195>

196> Seu hook retorna uma árvore para mostrar algo na faixa, ou `next(e)` para não mostrar nada. Uma árvore substitui o que os mods [depois do seu](https://code.claude.com/docs/pt/plugins/mods/events.md#the-order-mods-run-in) desenham lá. Para manter o deles, coloque o resultado de `await next(e)` entre os filhos de uma [`Box`](#build-a-tree-from-elements) em sua árvore.196> Para desenhar a linha do seu mod, filtre em `{ component: 'AbovePrompt' }` e retorne uma [árvore](#build-a-tree-from-elements). Para não desenhar nada, retorne `next(e)`.

197>197>

198> Para desenhar na faixa, filtre em `{ component: 'AbovePrompt' }`.198> Antes da v2.1.323, todos os mods compartilhavam um único desenho na faixa, e sua árvore substituía o que os mods depois do seu desenhavam. Para oferecer suporte também a essas versões, coloque o resultado de `await next(e)` entre os filhos de uma [`Box` que permaneça válida](https://code.claude.com/docs/pt/plugins/mods/troubleshoot#another-mods-band-shows-and-yours-doesnt). Na v2.1.323 ou posterior, esse filho não desenha as linhas de outros mods.

199 199 

200Um mod também pode [colocar uma linha própria na transcrição](#place-a-row-in-the-transcript).200Um mod também pode [colocar uma linha própria na transcrição](#place-a-row-in-the-transcript).

201 201 


281 281 

282Enquanto o Claude trabalha, o spinner anima como antes, e `under the spinner` aparece abaixo dele.282Enquanto o Claude trabalha, o spinner anima como antes, e `under the spinner` aparece abaixo dele.

283 283 

284O prompt de permissão não é um site de renderização, então um mod não pode alterar o que mostra. O diálogo de pergunta, `AskUserQuestion`, é um, então um mod pode alterar isso. Uma árvore para o diálogo precisa conter a referência exatamente uma vez, com seus elementos acima dela. Caso contrário, o Claude Code desenha seu próprio diálogo.284O prompt de permissão não é um ponto de renderização, então um mod não pode alterar o que ele mostra. O diálogo de pergunta, `AskUserQuestion`, é um, então um mod pode alterar esse diálogo quando o Claude faz uma pergunta. Uma árvore para o diálogo precisa conter a referência exatamente uma vez, com seus elementos acima dela. Caso contrário, o Claude Code desenha seu próprio diálogo.

285 285 

286### Abrir um painel no momento certo286### Abrir um painel no momento certo

287 287 

288Um painel aparece apenas quando seu mod o abre. Como e quando você o abre decide se ele toma o foco do teclado, quanto espaço ele pede e se aparece em um terminal estreito.288Um painel aparece apenas quando seu mod o abre. Como e quando você o abre decide se ele toma o foco do teclado, quanto espaço ele pede e se aparece em um terminal estreito.

289 289 

290Para abrir um painel, chame [`$.ui.open`](https://code.claude.com/docs/pt/plugins/mods/reference#mods-api-methods) com um `id` que você escolhe. O `id` é o nome do painel: seu hook `ui.render` verifica, e você o passa novamente para fechar o painel.290Para abrir um painel, chame [`$.ui.open`](https://code.claude.com/docs/pt/plugins/mods/reference#mods-api-methods) com um `id` que você escolhe. O `id` é o nome do painel: seu hook `ui.render` verifica, e você o passa novamente para fechar o painel. Se outro mod tiver um painel aberto com esse `id`, a chamada é rejeitada.

291 291 

292```javascript theme={null}292```javascript theme={null}

293await $.ui.open({ id: 'hello-tabs', title: 'Hello tabs', focus: true })293await $.ui.open({ id: 'hello-tabs', title: 'Hello tabs', focus: true })


399 399 

400> [!NOTE]400> [!NOTE]

401>401>

402> `$.theme.set` e `$.theme.clear` substituem `$.ui.backdrop`, que o Claude Code v2.1.319 removeu. Altere `$.ui.backdrop({ id: 'your-backdrop' })` para `$.theme.set({ backdrop: { id: 'your-backdrop' } })`, e `$.ui.backdrop(undefined)` para `$.theme.clear()`, que remove o plano de fundo de qualquer mod.402> `$.theme.set` e `$.theme.clear` substituem `$.ui.backdrop`, que o Claude Code v2.1.319 removeu. Altere `$.ui.backdrop({ id: 'your-backdrop' })` para uma chamada `$.theme.set` como a do exemplo desta seção, e `$.ui.backdrop(undefined)` para `$.theme.clear()`, que remove o plano de fundo de qualquer mod.

403 403 

404Para colocar um plano de fundo atrás da conversa no app Desktop ou no app móvel, chame [`$.theme.set`](https://code.claude.com/docs/pt/plugins/mods/reference#mods-api-methods) com um `backdrop` e, em seguida, desenhe o plano de fundo no ponto de renderização [`Backdrop`](https://code.claude.com/docs/pt/plugins/mods/reference#render-sites). Para remover o plano de fundo, chame `$.theme.clear()`. O terminal não desenha plano de fundo. `$.theme.set` e `$.theme.clear` requerem o Claude Code v2.1.319 ou posterior.404Para colocar um plano de fundo atrás da conversa no app Desktop ou no app móvel, chame [`$.theme.set`](https://code.claude.com/docs/pt/plugins/mods/reference#mods-api-methods) com um `backdrop` e, em seguida, desenhe o plano de fundo no ponto de renderização [`Backdrop`](https://code.claude.com/docs/pt/plugins/mods/reference#render-sites). Para remover o plano de fundo, chame `$.theme.clear()`. O terminal não desenha plano de fundo. `$.theme.set` e `$.theme.clear` requerem o Claude Code v2.1.319 ou posterior.

405 405 

406Este mod define um plano de fundo quando a sessão começa, desenha o plano de fundo e adiciona um comando `/plain` que remove o plano de fundo:406Este exemplo requer o Claude Code v2.1.323 ou posterior, então [verifique sua versão](https://code.claude.com/docs/pt/plugins/mods/overview.md#turn-mods-on-or-off) primeiro. O mod define um plano de fundo quando a sessão começa, desenha o plano de fundo e adiciona um comando `/plain` que remove o plano de fundo:

407 407 

408```javascript theme={null}408```javascript theme={null}

409export function register(on) {409export function register(on) {

410 // Neither a reload of this mod nor --resume keeps the backdrop, so set it here410 // Neither a reload of this mod nor --resume keeps the backdrop, so set it here

411 on('session.start', async ($, e, next) => {411 on('session.start', async ($, e, next) => {

412 await $.theme.set({ backdrop: { id: 'night-sky', colorScheme: 'dark' } })412 await $.theme.set({ backdrop: { scene: 'night-sky' }, overrideColorScheme: 'dark' })

413 await $.command.register({ name: 'plain', description: 'Take the backdrop off' })413 await $.command.register({ name: 'plain', description: 'Take the backdrop off' })

414 return next(e)414 return next(e)

415 })415 })

416 416 

417 on('ui.render', { component: 'Backdrop' }, async ($, e, next) => {417 on('ui.render', { component: 'Backdrop' }, async ($, e, next) => {

418 // This hook runs for every mod's backdrop, and another mod can use the same id418 // This hook runs for every mod's backdrop, and another mod can use the same scene

419 if (e.props.plugin !== $.plugin.name || e.props.id !== 'night-sky') return next(e)419 if (e.props.plugin !== $.plugin.name || e.props.scene !== 'night-sky') return next(e)

420 const { Box, Text } = $.ui.resolve(e)420 const { Box, Text } = $.ui.resolve(e)

421 return Box({ backgroundColor: 'blue', children: [Text({ children: ['Night sky'] })] })421 return Box({ backgroundColor: 'blue', children: [Text({ children: ['Night sky'] })] })

422 })422 })


428}428}

429```429```

430 430 

431> [!NOTE]

432>

433> Antes da v2.1.323, escreva `id` no lugar de `scene` na chamada `$.theme.set` e em `e.props`, e mova `overrideColorScheme` para dentro de `backdrop` como `colorScheme`.

434 

431Para experimentar o exemplo, coloque este código em um [mod](https://code.claude.com/docs/pt/plugins/mods/create.md) e inicie uma sessão no app Desktop ou no app móvel. Para remover o plano de fundo, execute `/plain` no prompt do Claude Code. A transcrição mostra `the theme is cleared` após o nome do mod, como em `night-sky: the theme is cleared` para um mod chamado `night-sky`.435Para experimentar o exemplo, coloque este código em um [mod](https://code.claude.com/docs/pt/plugins/mods/create.md) e inicie uma sessão no app Desktop ou no app móvel. Para remover o plano de fundo, execute `/plain` no prompt do Claude Code. A transcrição mostra `the theme is cleared` após o nome do mod, como em `night-sky: the theme is cleared` para um mod chamado `night-sky`.

432 436 

433Verifique o que `backdrop` aceita, o que o resultado da chamada informa e o que outros mods podem alterar:437Verifique o que `backdrop` aceita, o que o resultado da chamada informa e o que outros mods podem alterar:

434 438 

435* **Os campos de `backdrop`**: `id`, um [nome](https://code.claude.com/docs/pt/plugins/mods/reference.md#limits) que você escolhe, é obrigatório, e os outros campos são opcionais. `colorScheme` é `'light'` ou `'dark'` e diz se seu desenho é claro ou escuro. Para `glass`, consulte [os tipos para o seu build](https://code.claude.com/docs/pt/plugins/mods/create.md#get-the-types-for-your-build).439* **Os campos de `backdrop`**: `scene` é um [nome](https://code.claude.com/docs/pt/plugins/mods/reference.md#limits) que você escolhe para um plano de fundo que seu hook desenha. Para os outros campos e `overrideColorScheme`, consulte [os tipos para o seu build](https://code.claude.com/docs/pt/plugins/mods/create.md#get-the-types-for-your-build).

436* **Se o plano de fundo é desenhado**: `$.theme.set` resolve com `isDrawn: true` quando um app Desktop ou móvel conectado à sessão informa que desenha planos de fundo. Caso contrário, `isDrawn` é `false` e `reason` diz por quê.440* **Se o plano de fundo é desenhado**: `$.theme.set` resolve com `isDrawn: true` quando um app Desktop ou móvel conectado à sessão informa que desenha planos de fundo. Caso contrário, `isDrawn` é `false` e `reason` diz por quê.

437* **Um plano de fundo para cada sessão**: uma chamada `$.theme.set` substitui o plano de fundo da sessão e `$.theme.clear()` remove esse plano de fundo, independentemente de qual mod o definiu. Chame `$.theme.clear()` apenas quando o usuário pedir.441* **Um plano de fundo para cada sessão**: uma chamada `$.theme.set` substitui o plano de fundo da sessão e `$.theme.clear()` remove esse plano de fundo, independentemente de qual mod o definiu. Chame `$.theme.clear()` apenas quando o usuário pedir.

438 442 


510>514>

511> Defina `rows` como 2 ou mais para [um campo que contém várias linhas](https://code.claude.com/docs/pt/plugins/mods/gallery.md#input).515> Defina `rows` como 2 ou mais para [um campo que contém várias linhas](https://code.claude.com/docs/pt/plugins/mods/gallery.md#input).

512 516 

513A [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:517A [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 os principais elementos:

514 518 

515| Elemento | O que desenha | Onde |519| Elemento | O que desenha | Onde |

516| :- | :- | :- |520| :- | :- | :- |


606Testes e outros mods identificam um controle por sua key:610Testes e outros mods identificam um controle por sua key:

607 611 

608* **Testes**: um [teste](https://code.claude.com/docs/pt/plugins/mods/test.md#test-a-drawing) pressiona ou digita em um controle por sua key.612* **Testes**: um [teste](https://code.claude.com/docs/pt/plugins/mods/test.md#test-a-drawing) pressiona ou digita em um controle por sua key.

609* **Outros mods**: o Claude Code dispara [`ui.press`, `ui.input` ou `ui.select`](https://code.claude.com/docs/pt/plugins/mods/reference#interface) com a key do controle em `e.element` antes de executar o callback do controle. O hook de outro mod para esse evento vê o que o usuário digitou em seu `Input` e pode alterar esse texto ou impedir que seu callback seja executado. A API de mods não dá a esse mod nenhum método para pressionar seus botões.613* **Outros mods**: o Claude Code dispara [`ui.press`, `ui.input` ou `ui.select`](https://code.claude.com/docs/pt/plugins/mods/reference#interface) com a key do controle em `e.element` antes de executar o callback do controle. O hook de outro mod também pode [ser executado para esse evento](https://code.claude.com/docs/pt/plugins/mods/events.md#hook-other-mods-drawings-and-controls). Esse hook vê o que o usuário digitou em seu `Input` e pode alterar esse texto ou impedir que seu callback seja executado. A API de mods não dá a esse mod nenhum método para pressionar seus botões.

610 614 

611Se uma mensagem disser `needs a key` ou `is drawn twice`, [encontre a causa por essa mensagem](https://code.claude.com/docs/pt/plugins/mods/troubleshoot.md#needs-a-key).615Se uma mensagem disser `needs a key` ou `is drawn twice`, [encontre a causa por essa mensagem](https://code.claude.com/docs/pt/plugins/mods/troubleshoot.md#needs-a-key).

612 616 

Details

208 208 

209### Chamadas à API de mods209### Chamadas à API de mods

210 210 

211Cada [método da API de mods](#mods-api-methods) também é um evento, nomeado pelo seu namespace e método, como `fs.read`, `model.complete` ou `ui.open`. Um hook em um deles intercepta chamadas dos mods executados depois dele e pode retornar `next(e)`, `{ deny: reason }` ou `{ value }`.211Cada [método da API de mods](#mods-api-methods) também é um evento, nomeado pelo seu namespace e método, como `fs.read`, `model.complete` ou `ui.open`. Um hook em um deles pode retornar `next(e)`, `{ deny: reason }` ou `{ value }`.

212 

213Alguns desses eventos também são disparados para as ações do próprio Claude Code, então verifique se `next.origin.plugin` é `engine` antes de recusar um deles.

212 214 

213## Métodos da API de mods215## Métodos da API de mods

214 216 


249| :- | :- | :- | :- |251| :- | :- | :- | :- |

250| [`Pane`](https://code.claude.com/docs/pt/plugins/mods/interface#pick-where-to-draw) | `title`, `isFocused`, `bodyColumns`, `placement`, `scroll`, `view` | O `id` do painel | Terminal, Desktop, VS Code |252| [`Pane`](https://code.claude.com/docs/pt/plugins/mods/interface#pick-where-to-draw) | `title`, `isFocused`, `bodyColumns`, `placement`, `scroll`, `view` | O `id` do painel | Terminal, Desktop, VS Code |

251| [`AbovePrompt`](https://code.claude.com/docs/pt/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Uma instância | Terminal, Desktop |253| [`AbovePrompt`](https://code.claude.com/docs/pt/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Uma instância | Terminal, Desktop |

254| `AbovePromptList`, a pilha de linhas `AbovePrompt` | `rows`, uma lista com um `{ plugin, tree }` para a linha de cada mod, mais as props de `AbovePrompt` | Uma instância | Terminal, Desktop. Requer Claude Code v2.1.323 ou posterior. |

252| [`Placed`](https://code.claude.com/docs/pt/plugins/mods/interface#place-a-row-in-the-transcript) | `id`, `plugin`, `onScreen` | O `requestId` que `$.ui.place` retornou | Terminal |255| [`Placed`](https://code.claude.com/docs/pt/plugins/mods/interface#place-a-row-in-the-transcript) | `id`, `plugin`, `onScreen` | O `requestId` que `$.ui.place` retornou | Terminal |

253| [`Backdrop`](https://code.claude.com/docs/pt/plugins/mods/interface#put-a-backdrop-behind-the-conversation) | `id`, `plugin`, `glass`, `colorScheme` | `backdrop` | Superfícies `desktop` e `mobile`. Seu hook é executado quando o aplicativo Desktop ou mobile solicita desenhar um plano de fundo. |256| [`Backdrop`](https://code.claude.com/docs/pt/plugins/mods/interface#put-a-backdrop-behind-the-conversation) | `scene`, `plugin`, `glass`, `overrideColorScheme`. Antes da v2.1.323, `scene` era `id` e `overrideColorScheme` era `colorScheme`. | `backdrop` | Superfícies `desktop` e `mobile`. Seu hook é executado quando o aplicativo Desktop ou mobile solicita desenhar um plano de fundo. |

254| `UserMessage` | `text`, `origin`, `isExpanded` e `task` ou `from` conforme a origem | O id da linha desenhada | Terminal, Desktop, VS Code |257| `UserMessage` | `text`, `origin`, `isExpanded` e `task` ou `from` conforme a origem | O id da linha desenhada | Terminal, Desktop, VS Code |

255| `AssistantMessage` | O texto da resposta | O id da linha desenhada | Terminal, Desktop, VS Code |258| `AssistantMessage` | O texto da resposta | O id da linha desenhada | Terminal, Desktop, VS Code |

256| `ToolUse`, `ToolResult`, `ToolGroup` | O nome, a entrada e o resultado da ferramenta | O id da chamada de ferramenta | Terminal, Desktop, VS Code |259| `ToolUse`, `ToolResult`, `ToolGroup` | O nome, a entrada e o resultado da ferramenta | O id da chamada de ferramenta | Terminal, Desktop, VS Code |


297* **`action`**: indica uma das próprias [ações de atalho de teclado](https://code.claude.com/docs/pt/keybindings.md) do Claude Code, e o atalho do usuário para ela pressiona o botão quando esse atalho é um acorde ou uma tecla com modificador300* **`action`**: indica uma das próprias [ações de atalho de teclado](https://code.claude.com/docs/pt/keybindings.md) do Claude Code, e o atalho do usuário para ela pressiona o botão quando esse atalho é um acorde ou uma tecla com modificador

298* **Hotkeys numéricos na faixa**: um `hotkey` numérico em um botão na faixa também é acionado quando o usuário digita apenas esse dígito em um prompt vazio e faz uma pausa301* **Hotkeys numéricos na faixa**: um `hotkey` numérico em um botão na faixa também é acionado quando o usuário digita apenas esse dígito em um prompt vazio e faz uma pausa

299* **Uma faixa recolhida**: enquanto a faixa está [recolhida](https://code.claude.com/docs/pt/plugins/mods/interface.md#when-the-user-collapses-the-band), nem um atalho de `action` nem um hotkey pressiona um botão nela302* **Uma faixa recolhida**: enquanto a faixa está [recolhida](https://code.claude.com/docs/pt/plugins/mods/interface.md#when-the-user-collapses-the-band), nem um atalho de `action` nem um hotkey pressiona um botão nela

300* **Dois botões com o mesmo hotkey**: quando dois botões em um mesmo desenho indicam o mesmo `hotkey`, o posterior fica com ele303* **Dois botões com o mesmo hotkey**: quando dois dos seus botões em um mesmo desenho indicam o mesmo `hotkey`, o posterior fica com ele. Para o botão de outro mod na mesma tecla, consulte [Hotkeys não fazem nada](https://code.claude.com/docs/pt/plugins/mods/troubleshoot.md#hotkeys-do-nothing).

301* **`variant`**: `primary` ou `secondary`, e qualquer outro valor lança um erro. No terminal, um botão `primary` é desenhado na cor de destaque, a menos que seja `plain`.304* **`variant`**: `primary` ou `secondary`, e qualquer outro valor lança um erro. No terminal, um botão `primary` é desenhado na cor de destaque, a menos que seja `plain`.

302* **`role`**: `dismiss` marca um botão de fechar, e qualquer outro valor lança um erro. Faça o fechamento no seu `onPress`. Em uma faixa que contém texto e uma fileira de botões, o aplicativo Desktop pode desenhar o primeiro botão `dismiss` da fileira como seu próprio controle de fechar. O terminal desenha o botão como faria sem `role`.305* **`role`**: `dismiss` marca um botão de fechar, e qualquer outro valor lança um erro. Faça o fechamento no seu `onPress`. Em uma faixa que contém texto e uma fileira de botões, o aplicativo Desktop pode desenhar o primeiro botão `dismiss` da fileira como seu próprio controle de fechar. O terminal desenha o botão como faria sem `role`.

303 306 


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

402| Elementos e filhos de texto em uma árvore | 20.000 |405| Elementos e filhos de texto em uma árvore | 20.000 |

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

407| As linhas acima do prompt, empilhadas | Elementos, células de `Raster` e bytes de `Image` se somam entre as linhas, em relação aos limites de uma árvore |

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

405| `$.store` | 4 MiB de JSON no total |409| `$.store` | 4 MiB de JSON no total |

406| `$.session.messages()` | As 4.096 entradas mais recentes |410| `$.session.messages()` | As 4.096 entradas mais recentes |


412| Profundidade de aninhamento de um evento alterado passado para `next`, fora de [hooks de gerador assíncrono](#events) como um em `turn.step` | 28.000 níveis. Além disso, `next` é rejeitado com uma mensagem que termina em `nesting deeper than 28000 levels is not supported`. Requer o Claude Code v2.1.299 ou posterior. |416| Profundidade de aninhamento de um evento alterado passado para `next`, fora de [hooks de gerador assíncrono](#events) como um em `turn.step` | 28.000 níveis. Além disso, `next` é rejeitado com uma mensagem que termina em `nesting deeper than 28000 levels is not supported`. Requer o Claude Code v2.1.299 ou posterior. |

413| Profundidade de aninhamento do valor de retorno de um hook, fora de `ui.render`, `ui.resolve` e hooks de gerador assíncrono | 28.000 níveis. Além disso, o resultado do hook é recusado, e [o aviso que o relata](https://code.claude.com/docs/pt/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing) inclui `nesting deeper than 28000 levels is not supported`. Requer o Claude Code v2.1.299 ou posterior. |417| Profundidade de aninhamento do valor de retorno de um hook, fora de `ui.render`, `ui.resolve` e hooks de gerador assíncrono | 28.000 níveis. Além disso, o resultado do hook é recusado, e [o aviso que o relata](https://code.claude.com/docs/pt/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing) inclui `nesting deeper than 28000 levels is not supported`. Requer o Claude Code v2.1.299 ou posterior. |

414| Escopos, como funções, blocos e loops, aninhados uns dentro dos outros em um arquivo de um módulo de hooks | 2.000 |418| Escopos, como funções, blocos e loops, aninhados uns dentro dos outros em um arquivo de um módulo de hooks | 2.000 |

415| Nomes de comandos, ferramentas, tipos de subagente e painéis, e o `id` de uma linha posicionada ou de um pano de fundo | Letras, dígitos, `_` e `-`, até 64 caracteres |419| Nomes de comandos, ferramentas, tipos de subagente e painéis, o `id` de uma linha posicionada e o `scene` de um pano de fundo | Letras, dígitos, `_` e `-`, até 64 caracteres |

416| Um teste do `claude plugin test` | 5 segundos, a menos que o teste defina `timeoutMs` |420| Um teste do `claude plugin test` | 5 segundos, a menos que o teste defina `timeoutMs` |

417 421 

418## Configurações e variáveis de ambiente422## Configurações e variáveis de ambiente

Details

139 on('ui.render', () => ({ type: 'Text', props: {}, children: ['drawn by Claude Code'] }))139 on('ui.render', () => ({ type: 'Text', props: {}, children: ['drawn by Claude Code'] }))

140 ```140 ```

141 141 

142 Com o stub registrado, a montagem é bem-sucedida, e `ui.find({ type: 'Text' })` retorna esse elemento sempre que seu hook retornou `next(e)`.142 Com o stub registrado, a montagem é bem-sucedida, e `ui.find({ type: 'Text' })` retorna esse elemento sempre que seu hook retornou `next(e)`. Na v2.1.323 ou posterior, para a faixa, passe o nome do seu mod como segundo argumento para `on`, como em `{ plugin: 'my-mod' }`. Sem ele, o stub não responde ao seu `next(e)`.

143 143 

144* **Um stub para `turn.step` é um gerador assíncrono**, e o teste lê o fluxo até o final para obter o resultado:144* **Um stub para `turn.step` é um gerador assíncrono**, e o teste lê o fluxo até o final para obter o resultado:

145 145 


192| `$.session.id`, `$.agent.list` | `() => ({ value: 'abc123' })`, `() => ({ value: [] })` |192| `$.session.id`, `$.agent.list` | `() => ({ value: 'abc123' })`, `() => ({ value: [] })` |

193| `session.send` | `() => ({ isDelivered: true })`. `e.to` chega como uma string mesmo quando seu mod passou `{ sessionId }`. |193| `session.send` | `() => ({ isDelivered: true })`. `e.to` chega como uma string mesmo quando seu mod passou `{ sessionId }`. |

194| `session.receive` | `($, e) => ({ text: e.text })`. Dispare-o com `$.session.receive({ origin: { kind: 'peer-send-message' }, text })`. |194| `session.receive` | `($, e) => ({ text: e.text })`. Dispare-o com `$.session.receive({ origin: { kind: 'peer-send-message' }, text })`. |

195| `ui.render` | `() => ({ type: 'Text', props: {}, children: ['...'] })` |195| `ui.render` | `() => ({ type: 'Text', props: {}, children: ['...'] })`. Para a faixa, veja o matcher em [Seguir as regras do test kit](#follow-the-test-kit’s-rules). |

196 196 

197### Verificar um resultado com `expect`197### Verificar um resultado com `expect`

198 198 

199O kit tem estas asserções, e a que você escolher vem depois do valor que está verificando, como em `expect(answer.text).toBe('ok')`:199`expect` tem seu próprio conjunto de asserções, como `toEqual` e `toHaveLength`, que vêm depois do valor que você está verificando, como em `expect(answer.text).toBe('ok')`. Para a lista completa, procure por `type Matchers` em `claude-code/index.d.ts` nos [tipos para o seu build](https://code.claude.com/docs/pt/plugins/mods/create.md#get-the-types-for-your-build). Coloque `.not` antes da asserção para verificar o oposto. Para verificar com o que uma promise é concluída, coloque `.resolves` ou `.rejects` logo depois de `expect(...)` e use `await` na linha, como em `await expect(promise).rejects.toThrow()`.

200 

201* **Igualdade**: `toBe` para o mesmo valor ou objeto, `toEqual` para estrutura, `toStrictEqual` para estrutura mais campos `undefined` e o protótipo, e `toMatchObject` para os campos que você nomear

202* **Texto**: `toMatch`, que aceita uma expressão regular ou uma substring, `toStartWith` e `toEndWith`

203* **Números**: `toBeGreaterThan`, `toBeGreaterThanOrEqual`, `toBeLessThan`, `toBeLessThanOrEqual`

204* **Conteúdo**: `toContain` para uma substring ou um membro, `toContainEqual` para um membro comparado por estrutura, `toHaveLength` e `toHaveProperty`

205* **Presença e tipo**: `toBeDefined`, `toBeUndefined`, `toBeNull`, `toBeTruthy`, `toBeFalsy`, `toBeNaN`, `toBeInstanceOf`

206* **Lançamento**: `toThrow`, para uma função que `expect` chama, ou para uma promise que você verifica com `.rejects`

207 

208Coloque `.not` antes de uma asserção para verificar o oposto, e `.resolves` ou `.rejects` para verificar com o que uma promise é concluída.

209 200 

210Quando um `expect` falha dentro de um stub ou hook que você passou para `on` como uma função simples em vez de um gerador assíncrono, o teste falha. O mecanismo pula esse hook, e a saída da falha o nomeia, como `in the test's store.set hook`.201Quando um `expect` falha dentro de um stub ou hook que você passou para `on` como uma função simples em vez de um gerador assíncrono, o teste falha. O mecanismo pula esse hook, e a saída da falha o nomeia, como `in the test's store.set hook`.

211 202 

Details

223 223 

224### A banda de outro mod aparece e a sua não224### A banda de outro mod aparece e a sua não

225 225 

226Há uma única banda acima do prompt, e todos os mods a compartilham. Um mod que executa [antes do seu](https://code.claude.com/docs/pt/plugins/mods/events.md#the-order-mods-run-in) substitui a sua banda quando retorna uma árvore sem o resultado de `next(e)` nela. Para mostrar as duas bandas, altere o hook desse mod, ou peça ao autor dele que o faça:226Cada mod que desenha acima do prompt recebe sua própria linha, então, quando a sua está ausente enquanto a de outro aparece, verifique estas causas:

227 227 

228* **Manter as bandas depois dele**: coloque o resultado de `await next(e)` entre os filhos de um `Box` na árvore dele, como na aba Banda acima do prompt de [Escolher onde desenhar](https://code.claude.com/docs/pt/plugins/mods/interface.md#pick-where-to-draw)228* **Sua árvore não valida**: [grave um log de depuração](#read-the-debug-log), procure nele por [`ui.render hook skipped`](#a-pane-or-band-is-empty) ou [`does not validate`](#ui-render-refused) e corrija o que a linha nomeia.

229* **Manter a árvore válida**: não dê a esse `Box`, nem a nenhum `Box` ao redor dele, uma prop `width`, `height`, `minWidth`, `minHeight`, `position`, `top`, `left`, `right`, `bottom`, `display` ou `overflow`229* **As linhas, juntas, excedem um limite**: [grave um log de depuração](#read-the-debug-log) e procure nele por `past the limits of the band`. As linhas [compartilham os limites de uma única árvore](https://code.claude.com/docs/pt/plugins/mods/reference.md#limits), então desenhe uma árvore menor, ou peça aos autores dos outros mods que o façam.

230* **Outro mod oculta a sua linha ou desenha sobre ela**: se o log não tiver nenhuma dessas linhas, [desative](https://code.claude.com/docs/pt/plugins/mods/overview.md#turn-mods-on-or-off) os outros mods, um de cada vez. Se a sua linha voltar, peça ao autor desse mod que o altere.

230 231 

231Para 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.232Antes da v2.1.323, todos os mods compartilhavam um único desenho na banda. Um mod que executava [antes do seu](https://code.claude.com/docs/pt/plugins/mods/events.md#the-order-mods-run-in) substituía o seu desenho quando retornava uma árvore sem o resultado de `next(e)` nela. Atualize Claude Code, ou peça ao autor desse mod que faça estas alterações:

232 233 

233A 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).234* **Manter os desenhos dos mods posteriores**: coloque o resultado de `await next(e)` entre os filhos de um `Box` na árvore dele

235* **Manter a árvore válida**: não dê a esse `Box`, nem a nenhum `Box` ao redor dele, uma prop `width`, `height`, `minWidth`, `minHeight`, `position`, `top`, `left`, `right`, `bottom`, `display` ou `overflow`

234 236 

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

236 238 


246 248 

247### Uma linha `ui.render` diz `refused`249### Uma linha `ui.render` diz `refused`

248 250 

249`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.251`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.

250 252 

251Altere 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:253Altere 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 linhas acima do prompt que, juntas, não cabem nos limites da banda, a linha diz:

252 254 

253```text theme={null}255```text theme={null}

254hooks: ui.render (AbovePrompt) refused: deeper than 32; nothing was drawn256hooks: ui.render (AbovePrompt) refused: a row past the limits of the band; nothing was drawn

255```257```

256 258 

259Apesar desse final, as linhas que cabem ainda são desenhadas.

260 

257Antes 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.261Antes 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.

258 262 

259### `needs a key`, `is drawn twice` ou `key each once`263### `needs a key`, `is drawn twice` ou `key each once`


307 311 

308### Hotkeys não fazem nada312### Hotkeys não fazem nada

309 313 

310Seu painel ou banda não tem foco de teclado, seu botão está em uma banda recolhida, ou o desenho está na extensão do VS Code, onde os botões não têm hotkeys. Faça o que corresponder ao seu caso:314Seu painel ou banda não tem foco de teclado, seu botão está em uma banda recolhida, outro mod usa a mesma tecla, ou o desenho está na extensão do VS Code.

311 315 

312* **Sem foco de teclado**: pressione Ctrl+X depois Tab ou, na [renderização em tela cheia](https://code.claude.com/docs/pt/fullscreen.md), clique no painel ou na banda. Para que o painel receba o foco ao abrir, abra-o com `focus: true` a partir de um comando.316* **Sem foco de teclado**: pressione Ctrl+X depois Tab ou, na [renderização em tela cheia](https://code.claude.com/docs/pt/fullscreen.md), clique no painel ou na banda. Para que o painel receba o foco ao abrir, abra-o com `focus: true` a partir de um comando.

313* **O botão está em uma banda recolhida**: a banda mostra uma linha esmaecida que começa com `▸ plugin panel hidden`. Pressione as teclas que a linha indica, Ctrl+X depois Ctrl+A por padrão, para [expandi-la](#plugin-panel-hidden).317* **O botão está em uma banda recolhida**: a banda mostra uma linha esmaecida que começa com `▸ plugin panel hidden`. Pressione as teclas que a linha indica, Ctrl+X depois Ctrl+A por padrão, para [expandi-la](#plugin-panel-hidden).

314* **Na extensão do VS Code**: clique no botão, ou pressione Enter sobre ele quando estiver com o foco318* **A linha de outro mod na banda usa a mesma hotkey**: no terminal, a tecla não pressiona nenhum dos dois botões. Para verificar, [desative](https://code.claude.com/docs/pt/plugins/mods/overview.md#turn-mods-on-or-off) os outros mods que desenham linhas, um de cada vez, até que a tecla funcione. Altere a `hotkey` do seu botão, ou peça ao autor desse mod que altere a dele.

319* **Na extensão do VS Code, onde os botões não têm hotkeys**: clique no botão, ou pressione Enter sobre ele quando estiver com o foco

315 320 

316### Um desenho funciona no terminal e não no aplicativo Desktop ou no VS Code321### Um desenho funciona no terminal e não no aplicativo Desktop ou no VS Code

317 322 

Details

36 36 

37![Diagrama em duas colunas unidas por cinco setas retas. À esquerda, o diretório de um plugin chamado my-plugin, contendo um manifesto em .claude-plugin/plugin.json, skills/review/SKILL.md, agents/reviewer.md, hooks/hooks.json, .mcp.json e outros componentes. À direita, o que cada arquivo oferece em sua sessão: o manifesto define o nome do plugin, my-plugin; a skill é executada como /my-plugin:review; o arquivo do agente é um subagente que Claude pode delegar; o arquivo de hooks contém hooks que são executados em eventos do ciclo de vida; e .mcp.json adiciona um servidor MCP que oferece ferramentas a Claude.](https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugin-directory.svg?fit=max\&auto=format\&n=2Q_GtOEovg5qaBem\&q=85\&s=f623b64e82713b830e48174f0a922888)37![Diagrama em duas colunas unidas por cinco setas retas. À esquerda, o diretório de um plugin chamado my-plugin, contendo um manifesto em .claude-plugin/plugin.json, skills/review/SKILL.md, agents/reviewer.md, hooks/hooks.json, .mcp.json e outros componentes. À direita, o que cada arquivo oferece em sua sessão: o manifesto define o nome do plugin, my-plugin; a skill é executada como /my-plugin:review; o arquivo do agente é um subagente que Claude pode delegar; o arquivo de hooks contém hooks que são executados em eventos do ciclo de vida; e .mcp.json adiciona um servidor MCP que oferece ferramentas a Claude.](https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugin-directory.svg?fit=max\&auto=format\&n=2Q_GtOEovg5qaBem\&q=85\&s=f623b64e82713b830e48174f0a922888)

38 38 

39Para cada tipo de componente que um plugin pode conter, com um exemplo de cada, veja [Plugin components](https://code.claude.com/docs/pt/plugins/components.md). Para ver onde cada peça está localizada no diretório de um plugin, use o [plugin explorer](https://code.claude.com/docs/pt/plugins/components.md#explore-the-plugin-directory) nessa página.39Para os tipos de componentes que um plugin pode conter, com um exemplo de cada, consulte [Componentes de plugin](https://code.claude.com/docs/pt/plugins/components.md). Para ver onde cada peça está localizada no diretório de um plugin, use o [explorador de plugins](https://code.claude.com/docs/pt/plugins/components.md#explore-the-plugin-directory) nessa página.

40 40 

41### Decida se você precisa de um plugin41### Decida se você precisa de um plugin

42 42 

Details

59 59 

60**5. Preencha os metadados que os usuários veem**60**5. Preencha os metadados que os usuários veem**

61 61 

62Defina `description`, `author`, `homepage` e `repository` em `plugin.json` e adicione um `README.md` na raiz do plugin. `homepage` deve ser analisado como uma URL. A [referência de manifesto](https://code.claude.com/docs/pt/plugins/manifest-reference.md#fields) lista todos os campos.62Defina `description`, `author`, `homepage` e `repository` em `plugin.json` e adicione um `README.md` na raiz do plugin. `homepage` deve ser analisado como uma URL. Para saber o que cada campo aceita, veja a [referência de manifesto](https://code.claude.com/docs/pt/plugins/manifest-reference.md#fields).

63 63 

64**6. Execute sua suite de avaliação**64**6. Execute sua suite de avaliação**

65 65 

Details

67> | `--capacity <N>` | Número máximo de sessões simultâneas. O padrão é 32. Não pode ser usado com `--spawn=session`. |67> | `--capacity <N>` | Número máximo de sessões simultâneas. O padrão é 32. Não pode ser usado com `--spawn=session`. |

68> | `--[no-]create-session-in-dir` | Pré-crie uma sessão no diretório atual quando o servidor inicia, para que você tenha um lugar para digitar imediatamente. Em modo `worktree`, essa sessão permanece no diretório atual enquanto as sessões sob demanda obtêm worktrees isoladas. Ativado por padrão. Se você passar `--no-create-session-in-dir` para iniciar sem nenhuma, Claude Code arquiva as sessões do servidor quando você o para, portanto não há nada para [retomar](#resume-sessions-after-stopping-the-server). |68> | `--[no-]create-session-in-dir` | Pré-crie uma sessão no diretório atual quando o servidor inicia, para que você tenha um lugar para digitar imediatamente. Em modo `worktree`, essa sessão permanece no diretório atual enquanto as sessões sob demanda obtêm worktrees isoladas. Ativado por padrão. Se você passar `--no-create-session-in-dir` para iniciar sem nenhuma, Claude Code arquiva as sessões do servidor quando você o para, portanto não há nada para [retomar](#resume-sessions-after-stopping-the-server). |

69> | `--permission-mode <mode>` | Define o [modo de permissão](https://code.claude.com/docs/pt/permission-modes.md) inicial para as sessões do servidor, como `acceptEdits`. Aceita `manual` como um alias para `default`; um modo não reconhecido para o servidor na inicialização e lista os modos válidos. |69> | `--permission-mode <mode>` | Define o [modo de permissão](https://code.claude.com/docs/pt/permission-modes.md) inicial para as sessões do servidor, como `acceptEdits`. Aceita `manual` como um alias para `default`; um modo não reconhecido para o servidor na inicialização e lista os modos válidos. |

70> | `--settings <file>` | Aplique um arquivo de configurações JSON às sessões do servidor, com a mesma [precedência](https://code.claude.com/docs/pt/settings.md#settings-precedence) de `claude --settings`. Forneça um caminho de arquivo, não uma string JSON. Requer Claude Code v2.1.321 ou posterior. |

70> | `--chrome` / `--no-chrome` | Ative ou desative a [integração Chrome](https://code.claude.com/docs/pt/chrome.md) nas sessões que o servidor cria, para que Claude possa usar Chrome na sua máquina enquanto você trabalha de outro dispositivo. Sem nenhuma das duas opções, a sessão que o servidor pré-cria e qualquer sessão que você inicia você mesmo a partir de claude.ai/code ou do aplicativo Claude começam com Chrome desativado, mesmo que você tenha [ativado Chrome por padrão](https://code.claude.com/docs/pt/chrome.md#enable-chrome-by-default). Uma sessão que o servidor inicia para um de seus threads de [projeto](https://code.claude.com/docs/pt/claude-projects.md) segue essa configuração em vez disso, exceto em modo `bypassPermissions`. Requer Claude Code v2.1.273 ou posterior. |71> | `--chrome` / `--no-chrome` | Ative ou desative a [integração Chrome](https://code.claude.com/docs/pt/chrome.md) nas sessões que o servidor cria, para que Claude possa usar Chrome na sua máquina enquanto você trabalha de outro dispositivo. Sem nenhuma das duas opções, a sessão que o servidor pré-cria e qualquer sessão que você inicia você mesmo a partir de claude.ai/code ou do aplicativo Claude começam com Chrome desativado, mesmo que você tenha [ativado Chrome por padrão](https://code.claude.com/docs/pt/chrome.md#enable-chrome-by-default). Uma sessão que o servidor inicia para um de seus threads de [projeto](https://code.claude.com/docs/pt/claude-projects.md) segue essa configuração em vez disso, exceto em modo `bypassPermissions`. Requer Claude Code v2.1.273 ou posterior. |

71> | `-d`, `--debug[=<filter>]` | Ative o registro de depuração para o servidor, opcionalmente filtrado por categoria. Passe um filtro apenas na forma `=`, como `--debug=api,hooks`. Requer Claude Code v2.1.282 ou posterior. |72> | `-d`, `--debug[=<filter>]` | Ative o registro de depuração para o servidor, opcionalmente filtrado por categoria. Passe um filtro apenas na forma `=`, como `--debug=api,hooks`. Requer Claude Code v2.1.282 ou posterior. |

72> | `--debug-file <path>` | Escreva logs de depuração no arquivo fornecido. |73> | `--debug-file <path>` | Escreva logs de depuração no arquivo fornecido. |

73> | `--verbose` | Mostre logs detalhados de conexão e sessão. |74> | `--verbose` | Mostre logs detalhados de conexão e sessão. |

74> | `--sandbox`, `--no-sandbox` | Removido na v2.1.300. Se você passar qualquer um desses sinalizadores, o servidor [sai com um erro](https://code.claude.com/docs/pt/errors.md#sandbox-is-not-supported-by-claude-remote-control) em vez de iniciar. |75> | `--sandbox`, `--no-sandbox` | Removido na v2.1.300. Se você passar qualquer um desses sinalizadores, o servidor [sai com um erro](https://code.claude.com/docs/pt/errors.md#sandbox-is-not-supported-by-claude-remote-control) em vez de iniciar. |

75>76>

76> Se você passar um sinalizador global `claude` antes de `remote-control`, ou um script wrapper adicionar um, Claude Code não leva o sinalizador para as sessões que o servidor cria. Claude Code deixa o sinalizador passar apenas quando soltá-lo é conhecido por não alterar o que essas sessões podem fazer, como `--verbose` ou `--model`. Para qualquer outro sinalizador, como `--settings`, Claude Code [recusa iniciar](https://code.claude.com/docs/pt/errors.md#not-carried-over-to-the-sessions-remote-control-starts) e nomeia o sinalizador a remover.77> Se você passar uma flag global `claude` antes de `remote-control`, ou um script wrapper adicionar uma, Claude Code não leva a flag para as sessões que o servidor cria. O servidor ainda inicia com algumas flags, como `--verbose` ou `--model`. Com qualquer outra flag, o servidor [não inicia](https://code.claude.com/docs/pt/errors.md#not-carried-over-to-the-sessions-remote-control-starts). Para passar um arquivo de configurações, coloque `--settings` após `remote-control`.

77>78>

78> Para fazer sandbox das sessões que o servidor inicia, ative [sandboxing](https://code.claude.com/docs/pt/sandboxing.md) em um arquivo de configurações.79> Para fazer sandbox das sessões que o servidor inicia, ative [sandboxing](https://code.claude.com/docs/pt/sandboxing.md) em um arquivo de configurações.

79>80>


375* **Diálogos encaminhados expiram**: o Claude Code mantém os prompts de permissão e as perguntas de `AskUserQuestion` abertos até que você os responda. Quando o Claude Code encaminha outro tipo de diálogo para a sessão remota, como o prompt de escolha de modelo exibido após uma recusa de segurança, ele aguarda cinco minutos por padrão, depois fecha o diálogo e continua com o padrão sem ação do diálogo. Defina [`dialogExpiry`](https://code.claude.com/docs/pt/settings-reference#dialogexpiry) para ajustar ou desativar o prazo. Requer Claude Code v2.1.224 ou posterior.376* **Diálogos encaminhados expiram**: o Claude Code mantém os prompts de permissão e as perguntas de `AskUserQuestion` abertos até que você os responda. Quando o Claude Code encaminha outro tipo de diálogo para a sessão remota, como o prompt de escolha de modelo exibido após uma recusa de segurança, ele aguarda cinco minutos por padrão, depois fecha o diálogo e continua com o padrão sem ação do diálogo. Defina [`dialogExpiry`](https://code.claude.com/docs/pt/settings-reference#dialogexpiry) para ajustar ou desativar o prazo. Requer Claude Code v2.1.224 ou posterior.

376* **O prompt de consentimento de créditos de uso do Fable não é encaminhado**: o Claude Code exibe o [prompt de consentimento de créditos de uso do Fable](https://code.claude.com/docs/pt/model-config.md#fable-and-usage-credits) no meio da sessão apenas onde a sessão é executada, não no seu dispositivo. Quando a sessão é executada em um terminal e ninguém responde ali antes que o Claude Code feche o prompt, o turno termina sem enviar a requisição; consulte [The prompt to confirm went unanswered](https://code.claude.com/docs/pt/errors.md#the-prompt-to-confirm-went-unanswered).377* **O prompt de consentimento de créditos de uso do Fable não é encaminhado**: o Claude Code exibe o [prompt de consentimento de créditos de uso do Fable](https://code.claude.com/docs/pt/model-config.md#fable-and-usage-credits) no meio da sessão apenas onde a sessão é executada, não no seu dispositivo. Quando a sessão é executada em um terminal e ninguém responde ali antes que o Claude Code feche o prompt, o turno termina sem enviar a requisição; consulte [The prompt to confirm went unanswered](https://code.claude.com/docs/pt/errors.md#the-prompt-to-confirm-went-unanswered).

377* **Alguns comandos são apenas locais**: comandos que só são executados na interface do terminal, como `/plugin` ou `/resume`, funcionam apenas a partir da CLI local, quer você passe um argumento ou não. `/claude-api` também fica indisponível quando você o digita pelo celular ou pela web. O Claude ainda pode [carregar essa skill por conta própria](https://code.claude.com/docs/pt/skills.md#work-on-claude-api-projects) nesses ambientes. Os seguintes funcionam pelo celular e pela web:378* **Alguns comandos são apenas locais**: comandos que só são executados na interface do terminal, como `/plugin` ou `/resume`, funcionam apenas a partir da CLI local, quer você passe um argumento ou não. `/claude-api` também fica indisponível quando você o digita pelo celular ou pela web. O Claude ainda pode [carregar essa skill por conta própria](https://code.claude.com/docs/pt/skills.md#work-on-claude-api-projects) nesses ambientes. Os seguintes funcionam pelo celular e pela web:

378 * Comandos de saída de texto: `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap` e `/reload-plugins`. `/usage-credits` imprime o URL de faturamento em vez de abrir um navegador. `/reload-plugins` funciona apenas quando a sessão é executada em um terminal interativo; uma sessão sem um terminal o recusa.379 * Comandos de saída de texto: `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap` e `/reload-plugins`. `/usage-credits` responde em texto, por exemplo, indicando onde gerenciar os créditos de uso. `/reload-plugins` funciona apenas quando a sessão é executada em um terminal interativo; uma sessão sem um terminal o recusa.

379 * `/model`, `/effort`, `/fast`, `/color` e `/rename`: passe o valor como argumento, por exemplo `/model sonnet` ou `/effort high`. Pelo celular e pela web, `/model` e `/effort` recebem o argumento no lugar do seletor ou do controle deslizante do terminal.380 * `/model`, `/effort`, `/fast`, `/color` e `/rename`: passe o valor como argumento, por exemplo `/model sonnet` ou `/effort high`. Pelo celular e pela web, `/model` e `/effort` recebem o argumento no lugar do seletor ou do controle deslizante do terminal.

380 * `/mcp`: pelo aplicativo móvel, retorna um resumo em texto do status dos servidores em vez de abrir o seletor. Na web, `/mcp` sozinho abre um diretório de [conectores do claude.ai](https://code.claude.com/docs/pt/mcp.md#use-mcp-servers-from-claude-ai) em vez de retornar o resumo. Os [subcomandos](https://code.claude.com/docs/pt/commands.md#all-commands) `reconnect`, `enable` e `disable` funcionam em ambos quando a sessão é executada em um terminal interativo. `/mcp reconnect` sem nome de servidor tenta novamente cada servidor que falhou ou que precisa de autenticação. Para autorizar um conector do claude.ai sem o seletor, consulte [Autorizar um conector novamente a partir do seu shell](#authorize-a-connector-again-from-your-shell).381 * `/mcp`: pelo aplicativo móvel, retorna um resumo em texto do status dos servidores em vez de abrir o seletor. Na web, `/mcp` sozinho abre um diretório de [conectores do claude.ai](https://code.claude.com/docs/pt/mcp.md#use-mcp-servers-from-claude-ai) em vez de retornar o resumo. Os [subcomandos](https://code.claude.com/docs/pt/commands.md#all-commands) `reconnect`, `enable` e `disable` funcionam em ambos quando a sessão é executada em um terminal interativo. `/mcp reconnect` sem nome de servidor tenta novamente cada servidor que falhou ou que precisa de autenticação. Para autorizar um conector do claude.ai sem o seletor, consulte [Autorizar um conector novamente a partir do seu shell](#authorize-a-connector-again-from-your-shell).

381 * `/config`: pelo aplicativo móvel, passe `key=value` para definir uma configuração, ou execute-o sem argumento para listar as chaves que você pode definir. Na web, `/config` abre **Settings > Code** ou **Settings > Claude Code** em vez disso.382 * `/config`: pelo aplicativo móvel, passe `key=value` para definir uma configuração, ou execute-o sem argumento para listar as chaves que você pode definir. Na web, `/config` abre **Settings > Code** ou **Settings > Claude Code** em vez disso.

routines.md +1 −1

Details

431 431 

432Cada tarefa agendada usa um [ambiente na nuvem](https://code.claude.com/docs/pt/cloud-environments.md) que controla o acesso à rede, as variáveis de ambiente e os scripts de configuração. A tarefa herda a política de rede do ambiente em cada execução.432Cada tarefa agendada usa um [ambiente na nuvem](https://code.claude.com/docs/pt/cloud-environments.md) que controla o acesso à rede, as variáveis de ambiente e os scripts de configuração. A tarefa herda a política de rede do ambiente em cada execução.

433 433 

434O ambiente **Default** usa acesso **Limited** com **Allow package managers** marcado, portanto suas execuções alcançam a [allowlist padrão](https://code.claude.com/docs/pt/cloud-environments.md#default-allowed-domains). Uma requisição para um host bloqueado falha com `403` e `x-deny-reason: host_not_allowed`. O tráfego dos conectores MCP é roteado através dos servidores da Anthropic, portanto os conectores que você adiciona à tarefa funcionam sem adicionar seus hosts a **Allowed domains**. Remova os conectores de que você não precisa em [Conectores](#connectors).434O ambiente **Default** usa acesso **Limited** com **Allow package managers** marcado, portanto suas execuções alcançam a [allowlist padrão](https://code.claude.com/docs/pt/cloud-environments.md#default-allowed-domains). Uma requisição para um host bloqueado falha com [um erro como `403` ou `ENOTFOUND`](https://code.claude.com/docs/pt/errors#host-not-allowed-in-a-cloud-session). O tráfego dos conectores MCP é roteado através dos servidores da Anthropic, portanto os conectores que você adiciona à tarefa funcionam sem adicionar seus hosts a **Allowed domains**. Remova os conectores de que você não precisa em [Conectores](#connectors).

435 435 

436Para permitir domínios adicionais em um dos seus próprios ambientes, siga estas etapas. Um [ambiente compartilhado pela organização](https://code.claude.com/docs/pt/cloud-environments.md#organization-shared-environments) é aberto como somente leitura aqui, portanto um Owner altera seu acesso à rede na página **Cloud environments** em [configurações de administração](https://claude.ai/admin-settings).436Para permitir domínios adicionais em um dos seus próprios ambientes, siga estas etapas. Um [ambiente compartilhado pela organização](https://code.claude.com/docs/pt/cloud-environments.md#organization-shared-environments) é aberto como somente leitura aqui, portanto um Owner altera seu acesso à rede na página **Cloud environments** em [configurações de administração](https://claude.ai/admin-settings).

437 437 

sandboxing.md +5 −3

Details

276 276 

277Esses caminhos são aplicados no nível do sistema operacional, portanto todos os comandos executados dentro do sandbox, incluindo seus processos filhos, os respeitam. Essa é a abordagem recomendada quando uma ferramenta precisa de acesso de gravação a um local específico, em vez de excluir a ferramenta do sandbox inteiramente com `excludedCommands`.277Esses caminhos são aplicados no nível do sistema operacional, portanto todos os comandos executados dentro do sandbox, incluindo seus processos filhos, os respeitam. Essa é a abordagem recomendada quando uma ferramenta precisa de acesso de gravação a um local específico, em vez de excluir a ferramenta do sandbox inteiramente com `excludedCommands`.

278 278 

279No Linux e no WSL2, uma entrada para um caminho que ainda não existe não tem efeito, então crie o caminho primeiro.

280 

279Quando você define o mesmo array de sistema de arquivos em vários [escopos de configurações](https://code.claude.com/docs/pt/settings.md#settings-precedence), o Claude Code os mescla, combinando os caminhos em vez de substituir o array de um escopo pelo de outro. O Claude Code deixa uma entrada fora da mesclagem quando um bloqueio descrito em [Impedir que os desenvolvedores ampliem a política](#keep-developers-from-widening-the-policy) a cobre.281Quando você define o mesmo array de sistema de arquivos em vários [escopos de configurações](https://code.claude.com/docs/pt/settings.md#settings-precedence), o Claude Code os mescla, combinando os caminhos em vez de substituir o array de um escopo pelo de outro. O Claude Code deixa uma entrada fora da mesclagem quando um bloqueio descrito em [Impedir que os desenvolvedores ampliem a política](#keep-developers-from-widening-the-policy) a cobre.

280 282 

281Se você excluir uma origem com [`--setting-sources`](https://code.claude.com/docs/pt/cli-reference) na CLI ou [`settingSources`](https://code.claude.com/docs/pt/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) no Agent SDK, o Claude Code ignora suas entradas `sandbox.filesystem`, suas regras de permissão `Edit` e suas regras de negação `Read` ao montar a configuração do sandbox. Requer o Claude Code v2.1.246 ou posterior.283Se você excluir uma origem com [`--setting-sources`](https://code.claude.com/docs/pt/cli-reference) na CLI ou [`settingSources`](https://code.claude.com/docs/pt/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) no Agent SDK, o Claude Code ignora suas entradas `sandbox.filesystem`, suas regras de permissão `Edit` e suas regras de negação `Read` ao montar a configuração do sandbox. Requer o Claude Code v2.1.246 ou posterior.


376 378 

377Como desativar o isolamento do sistema de arquivos amplia o que os comandos em sandbox podem fazer, o Claude Code respeita `filesystem.disabled` somente a partir destas origens de configurações:379Como desativar o isolamento do sistema de arquivos amplia o que os comandos em sandbox podem fazer, o Claude Code respeita `filesystem.disabled` somente a partir destas origens de configurações:

378 380 

379* Configurações de usuário, configurações gerenciadas e a flag de CLI `--settings` podem defini-la. Configurações de projeto em `.claude/settings.json` e `.claude/settings.local.json` não podem, de modo que um projeto baixado não pode desativar o isolamento do sistema de arquivos.381* Configurações de usuário, configurações gerenciadas e a flag de CLI `--settings` podem defini-la. Configurações de projeto em `.claude/settings.json` e `.claude/settings.local.json` não podem defini-la.

380* Quando as configurações gerenciadas configuram `sandbox.filesystem` de qualquer forma, ou listam qualquer entrada `sandbox.credentials.files` com `"mode": "deny"`, somente as configurações gerenciadas podem definir a chave. Isso impede que os desenvolvedores desativem o isolamento do sistema de arquivos em tal implantação; para desativá-lo para todos, defina `"disabled": true` nas configurações gerenciadas.382* Quando as configurações gerenciadas configuram `sandbox.filesystem` de qualquer forma, ou listam qualquer entrada `sandbox.credentials.files` com `"mode": "deny"`, somente as configurações gerenciadas podem definir a chave. Para desativar o isolamento do sistema de arquivos para todos, defina `"disabled": true` nas configurações gerenciadas.

381* Quando [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](https://code.claude.com/docs/pt/env-vars) está definida, o Claude Code ignora `filesystem.disabled` de todas as origens, incluindo as configurações gerenciadas, e mantém o isolamento do sistema de arquivos ativado.383* Quando [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](https://code.claude.com/docs/pt/env-vars) está definida, o Claude Code ignora `filesystem.disabled` de todas as origens, incluindo as configurações gerenciadas.

382 384 

383Uma entrada `mask` [válida](https://code.claude.com/docs/pt/settings-reference.md#invalid-credential-entries-in-managed-settings) não trava a chave, mesmo quando o Claude Code [recorre ao fallback `deny`](#mask-credential-files) para ela na inicialização. Liste um caminho que não pode ser mascarado, como um diretório de credenciais, como uma entrada `deny` explícita nas configurações gerenciadas, o que trava a chave.385Uma entrada `mask` [válida](https://code.claude.com/docs/pt/settings-reference.md#invalid-credential-entries-in-managed-settings) não trava a chave, mesmo quando o Claude Code [recorre ao fallback `deny`](#mask-credential-files) para ela na inicialização. Liste um caminho que não pode ser mascarado, como um diretório de credenciais, como uma entrada `deny` explícita nas configurações gerenciadas, o que trava a chave.

384 386 

Details

117 117 

118* **Listener**: o listener é um proxy direto em `127.0.0.1`. O runner inicia o listener antes de se registrar no plano de controle, e sai na inicialização se o listener não puder iniciar.118* **Listener**: o listener é um proxy direto em `127.0.0.1`. O runner inicia o listener antes de se registrar no plano de controle, e sai na inicialização se o listener não puder iniciar.

119* **Variáveis de proxy**: o runner reescreve qual de `HTTPS_PROXY` e `HTTP_PROXY` você definiu para que aponte para o listener. Esse valor reescrito alcança o próprio runner, seus hooks de ciclo de vida, e cada sessão que ele executa.119* **Variáveis de proxy**: o runner reescreve qual de `HTTPS_PROXY` e `HTTP_PROXY` você definiu para que aponte para o listener. Esse valor reescrito alcança o próprio runner, seus hooks de ciclo de vida, e cada sessão que ele executa.

120* **Rotação de token**: um token girado entra em vigor sem uma reinicialização. Para cada conexão que o listener abre para seu proxy, o runner executa seu comando ou lê seu arquivo novamente e adiciona o resultado como o cabeçalho.120* **Rotação de token**: quando você rotaciona o token, novas conexões carregam o novo token sem uma reinicialização do runner. Para cada conexão que o listener abre para seu proxy, o runner executa seu comando ou lê seu arquivo novamente e adiciona o resultado como o cabeçalho. Uma conexão que já está aberta continua utilizável com o token antigo até que seu proxy a feche ou o runner saia.

121* **Ambiente da sessão**: uma sessão alcança seu proxy apenas através do listener. No ambiente de cada sessão, o runner remove `ALL_PROXY`, remove qualquer grafia de `HTTPS_PROXY` ou `HTTP_PROXY` que você não definiu, e fixa `NO_PROXY` ao próprio valor do runner.121* **Ambiente da sessão**: uma sessão alcança seu proxy apenas através do listener. No ambiente de cada sessão, o runner remove `ALL_PROXY`, remove qualquer grafia de `HTTPS_PROXY` ou `HTTP_PROXY` que você não definiu, e fixa `NO_PROXY` ao próprio valor do runner.

122* **Logs**: o runner nunca registra o valor do cabeçalho.122* **Logs**: o runner nunca registra o valor do cabeçalho.

123 123 


840 840 

841### Algumas sessões não contam como ociosas841### Algumas sessões não contam como ociosas

842 842 

843Uma sessão mantendo uma tarefa em segundo plano que continua em execução não conta como ociosa, então `--release-idle-session-min` não liberará o slot dessa sessão. Uma sessão que está aguardando uma aprovação solicitada de dentro de uma chamada de ferramenta em execução também não conta como ociosa. Defina `--kill-session-after-min` ao lado dela como um backstop duro.843Enquanto uma sessão não conta como ociosa, ela mantém seu slot além do limite de `--release-idle-session-min`, então defina também `--kill-session-after-min`.

844 

845Uma sessão conta como ociosa depois que seu turno termina ou enquanto seu turno aguarda seu usuário, mas não em casos como estes:

846 

847* Seu turno terminou e ela não está aguardando seu usuário, mas uma tarefa em segundo plano continua em execução

848* Seu turno aguarda uma aprovação que uma ferramenta não MCP solicita enquanto essa ferramenta é executada

849* Seu turno aguarda uma [requisição `elicitation/create`](https://code.claude.com/docs/pt/mcp#respond-to-mcp-elicitation-requests) de um servidor MCP

844 850 

845`--kill-session-after-min` é um backstop para sessões descontroladas. Em um runner na v2.1.260 ou posterior, uma sessão que atinge o limite não é encerrada imediatamente. O runner oferece uma janela de graça, 15 minutos por padrão, que você pode alterar com [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](https://code.claude.com/docs/pt/self-hosted-environments-reference#environment-variable-only-settings):851`--kill-session-after-min` é um backstop para sessões descontroladas. Em um runner na v2.1.260 ou posterior, uma sessão que atinge o limite não é encerrada imediatamente. O runner oferece uma janela de graça, 15 minutos por padrão, que você pode alterar com [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](https://code.claude.com/docs/pt/self-hosted-environments-reference#environment-variable-only-settings):

846 852 

847* Se a sessão está aguardando seu usuário, o runner a libera. Se sua vez terminou e ela mantém apenas tarefas de fundo, o runner aguarda até 60 segundos para que essas tarefas terminem e então a libera. A sessão retoma quando seu usuário envia sua próxima mensagem.853* Se a sessão está aguardando seu usuário, o runner a libera. Se sua vez terminou e ela mantém apenas tarefas de fundo, o runner aguarda até 60 segundos para que essas tarefas terminem e então a libera. A sessão retoma quando seu usuário envia sua próxima mensagem.

848* Se uma vez ainda está em execução, o runner aguarda a vez terminar, ou para a sessão aguardar seu usuário em seguida, e então a libera.854* Se uma vez ainda está em execução, o runner aguarda a vez terminar, ou para a sessão aguardar seu usuário em seguida, e então a libera.

849* Se a sessão ainda estiver no runner quando a janela de graça terminar, o runner a encerra, e qualquer trabalho de uma vez em execução é perdido. Uma vez aguardando uma aprovação solicitada de dentro de uma chamada de ferramenta em execução é uma maneira de uma sessão ultrapassar a janela.855* Se a sessão ainda estiver no runner quando a janela de graça terminar, o runner a encerra, e qualquer trabalho de um turno em execução é perdido. Por exemplo, uma sessão pode permanecer no runner até então se seu turno aguarda uma aprovação que uma ferramenta não MCP solicita enquanto essa ferramenta é executada. Uma sessão também pode permanecer lá enquanto seu turno aguarda uma requisição `elicitation/create` de um servidor MCP.

850 856 

851Uma sessão liberada retoma de um clone fresco, então o trabalho que ela não tinha enviado se foi de qualquer forma; consulte [Sessões retomadas perdem trabalho não enviado](#resumed-sessions-lose-unpushed-work). Antes da v2.1.260, o runner encerrava cada sessão no limite, após aguardar no máximo a janela de graça para um turno em execução terminar.857Uma sessão liberada retoma de um clone fresco, então o trabalho que ela não tinha enviado se foi de qualquer forma; consulte [Sessões retomadas perdem trabalho não enviado](#resumed-sessions-lose-unpushed-work). Antes da v2.1.260, o runner encerrava cada sessão no limite, após aguardar no máximo a janela de graça para um turno em execução terminar.

852 858 

Details

252 252 

253Todas as outras chaves no bloco `env` em cache se aplicam na inicialização. Uma vez que o servidor confirme o payload, e você o aprove se precisar de [aprovação de segurança](#security-approval-dialogs), as variáveis retidas se aplicam pelo resto da sessão.253Todas as outras chaves no bloco `env` em cache se aplicam na inicialização. Uma vez que o servidor confirme o payload, e você o aprove se precisar de [aprovação de segurança](#security-approval-dialogs), as variáveis retidas se aplicam pelo resto da sessão.

254 254 

255Se sua organização precisa de um proxy para alcançar `api.anthropic.com`, a retenção afeta apenas o bloco `env` entregue pelo servidor em si: um proxy definido em um bloco `env` [gerenciado pelo endpoint](https://code.claude.com/docs/pt/managed-settings.md#delivery-mechanisms) através de MDM ou `managed-settings.json`, no ambiente do shell ou em [configurações do usuário](https://code.claude.com/docs/pt/settings.md#where-settings-live) alcança a busca de configurações. A fonte gerenciada pelo endpoint requer Claude Code v2.1.223 ou posterior: o valor de proxy gerenciado pelo servidor em cache é retido até que a busca o confirme, portanto o valor gerenciado pelo endpoint se preenche por chave e alcança a busca em si. Antes da v2.1.223, use o ambiente do shell ou configurações do usuário para que o proxy se aplique junto com um payload de servidor em cache. O primeiro lançamento não tem cache, portanto uma fonte gerenciada pelo endpoint, o ambiente do shell ou configurações do usuário ainda é necessário para a busca inicial.255Se a busca precisar de um proxy, defina `HTTPS_PROXY` em um dos seguintes locais:

256 

257* Um bloco `env` [gerenciado pelo endpoint](https://code.claude.com/docs/pt/managed-settings.md#delivery-mechanisms) através de MDM ou `managed-settings.json`. Essa fonte requer Claude Code v2.1.223 ou posterior. Antes da v2.1.223, use o ambiente do shell ou as configurações do usuário para que o proxy [se aplique junto com um payload de servidor em cache](#per-key-exceptions-across-managed-sources).

258* O ambiente do shell

259* [Configurações do usuário](https://code.claude.com/docs/pt/settings.md#where-settings-live)

260 

261Defina `HTTPS_PROXY` mesmo que `ALL_PROXY` já indique o proxy.

256 262 

257O Claude Code aplica a maioria das atualizações de configurações a sessões em execução sem uma reinicialização. Algumas atualizações se aplicam apenas na próxima inicialização, incluindo configuração do exportador OpenTelemetry, a chave `model` e a remoção de uma variável do bloco `env`.263O Claude Code aplica a maioria das atualizações de configurações a sessões em execução sem uma reinicialização. Algumas atualizações se aplicam apenas na próxima inicialização, incluindo configuração do exportador OpenTelemetry, a chave `model` e a remoção de uma variável do bloco `env`.

258 264 

settings.md +1 −1

Details

177 177 

178O Claude Code observa seus arquivos de configurações e os recarrega quando mudam, para que aplique a maioria das edições à sessão em execução sem uma reinicialização, incluindo edições em `permissions`, `hooks` e auxiliares de credenciais como `apiKeyHelper`. O Claude Code também carrega um arquivo de configurações que você cria no meio da sessão se sua pasta existia quando a sessão começou. Para a pasta `.claude/` do projeto, ele carrega o arquivo mesmo quando você cria a pasta na mesma sessão.178O Claude Code observa seus arquivos de configurações e os recarrega quando mudam, para que aplique a maioria das edições à sessão em execução sem uma reinicialização, incluindo edições em `permissions`, `hooks` e auxiliares de credenciais como `apiKeyHelper`. O Claude Code também carrega um arquivo de configurações que você cria no meio da sessão se sua pasta existia quando a sessão começou. Para a pasta `.claude/` do projeto, ele carrega o arquivo mesmo quando você cria a pasta na mesma sessão.

179 179 

180O recarregamento cobre configurações de usuário, projeto, local e gerenciadas, e o Claude Code executa o [hook `ConfigChange`](https://code.claude.com/docs/pt/hooks#configchange) para cada mudança de arquivo de configurações que detecta, não para configurações gerenciadas que chegam de MDM ou do console claude.ai. As configurações gerenciadas que chegam através de MDM ou do console claude.ai alcançam uma sessão em execução em um cronograma em vez de ao salvar; a [tabela de entrega](https://code.claude.com/docs/pt/managed-settings.md#choose-a-delivery-mechanism) fornece por fonte.180O recarregamento cobre configurações de usuário, projeto, local e gerenciadas. O Claude Code executa o [hook `ConfigChange`](https://code.claude.com/docs/pt/hooks#configchange) para edições diretas em arquivos de configurações, não para configurações gerenciadas que chegam de MDM ou do console claude.ai. As configurações gerenciadas que chegam através de MDM ou do console claude.ai alcançam uma sessão em execução em um cronograma em vez de ao salvar; a [tabela de entrega](https://code.claude.com/docs/pt/managed-settings.md#choose-a-delivery-mechanism) fornece por fonte.

181 181 

182O Claude Code lê algumas chaves apenas uma vez, na inicialização da sessão, então uma edição em uma delas não alcança a sessão em execução. As chaves do lado do administrador que também esperam por uma reinicialização, como `requiredMinimumVersion`, são listadas em [onde e quando uma política se aplica](https://code.claude.com/docs/pt/managed-settings.md#where-and-when-a-policy-applies). As que você provavelmente editará no meio da sessão:182O Claude Code lê algumas chaves apenas uma vez, na inicialização da sessão, então uma edição em uma delas não alcança a sessão em execução. As chaves do lado do administrador que também esperam por uma reinicialização, como `requiredMinimumVersion`, são listadas em [onde e quando uma política se aplica](https://code.claude.com/docs/pt/managed-settings.md#where-and-when-a-policy-applies). As que você provavelmente editará no meio da sessão:

183 183 

Details

235| [`strictPluginOnlyCustomization.mcp`](#strictpluginonlycustomization-mcp) | Bloqueie [servidores MCP](https://code.claude.com/docs/pt/mcp.md) de fontes de usuário e projeto | Plugins e skills | Managed |235| [`strictPluginOnlyCustomization.mcp`](#strictpluginonlycustomization-mcp) | Bloqueie [servidores MCP](https://code.claude.com/docs/pt/mcp.md) de fontes de usuário e projeto | Plugins e skills | Managed |

236| [`strictPluginOnlyCustomization.skills`](#strictpluginonlycustomization-skills) | Bloqueie [skills](https://code.claude.com/docs/pt/skills.md) de fontes de usuário e projeto | Plugins e skills | Managed |236| [`strictPluginOnlyCustomization.skills`](#strictpluginonlycustomization-skills) | Bloqueie [skills](https://code.claude.com/docs/pt/skills.md) de fontes de usuário e projeto | Plugins e skills | Managed |

237| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | Escolha o [tempo de vida do cache de prompt](https://code.claude.com/docs/pt/prompt-caching.md#cache-lifetime) para subagentes e outras requisições fora da conversa principal | Modelo e respostas | Any file |237| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | Escolha o [tempo de vida do cache de prompt](https://code.claude.com/docs/pt/prompt-caching.md#cache-lifetime) para subagentes e outras requisições fora da conversa principal | Modelo e respostas | Any file |

238| [`subagentStatusLine`](#subagentstatusline) | Reescreva linhas na [exibição de tarefa do subagente](https://code.claude.com/docs/pt/sub-agents.md) com seu próprio comando | Interface e terminal | Any file |

239| [`switchModelsOnFlag`](#switchmodelsonflag) | Alterne modelos automaticamente ou pause quando um [classificador de segurança](https://code.claude.com/docs/pt/model-config.md#ask-before-switching) sinalizar uma requisição | Modelo e respostas | Any file |238| [`switchModelsOnFlag`](#switchmodelsonflag) | Alterne modelos automaticamente ou pause quando um [classificador de segurança](https://code.claude.com/docs/pt/model-config.md#ask-before-switching) sinalizar uma requisição | Modelo e respostas | Any file |

240| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | Pare de carregar os [plugins ativados em sua conta claude.ai](https://code.claude.com/docs/pt/plugins/loading.md#synced-plugins) e pare de baixar novos | Plugins e skills | User, local, or managed |239| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | Pare de carregar os [plugins ativados em sua conta claude.ai](https://code.claude.com/docs/pt/plugins/loading.md#synced-plugins) e pare de baixar novos | Plugins e skills | User, local, or managed |

241| [`syncClaudeAiSkills`](#syncclaudeaiskills) | Pare de carregar as [skills ativadas em sua conta claude.ai](https://code.claude.com/docs/pt/skills.md#how-synced-skills-behave) e pare de baixar novas | Plugins e skills | User, local, or managed |240| [`syncClaudeAiSkills`](#syncclaudeaiskills) | Pare de carregar as [skills ativadas em sua conta claude.ai](https://code.claude.com/docs/pt/skills.md#how-synced-skills-behave) e pare de baixar novas | Plugins e skills | User, local, or managed |


885}884}

886```885```

887 886 

888Consulte [Rotear todos os comandos de shell através do classificador](https://code.claude.com/docs/pt/auto-mode-config.md#route-all-shell-commands-through-the-classifier).887Esta chave funciona de forma diferente em uma sessão do Code Mode. Consulte [Rotear todos os comandos de shell através do classificador](https://code.claude.com/docs/pt/auto-mode-config.md#route-all-shell-commands-through-the-classifier).

889 888 

890### `disableAutoMode`889### `disableAutoMode`

891 890 


1533}1532}

1534```1533```

1535 1534 

1535No Linux e no WSL2, uma entrada para um caminho que ainda não existe não tem efeito, então crie o caminho primeiro.

1536 

1536Claude Code mescla entradas `allowWrite` e os caminhos de suas regras de permissão `Edit(...)` allow em todos os escopos de configurações que a sessão carrega, deixando de fora os de configurações de repositório enquanto [`permissions.blockReadsOutsideWorkingDirectories`](#sandboxed-commands-under-the-block) está ativado. [Bloqueios de repositório](https://code.claude.com/docs/pt/sandboxing.md#repository-settings-under-an-admin-required-sandbox) também podem deixar de fora as entradas de um repositório. Uma entrada `allowWrite` não pode levantar um [caminho protegido](https://code.claude.com/docs/pt/sandboxing.md#protected-paths).1537Claude Code mescla entradas `allowWrite` e os caminhos de suas regras de permissão `Edit(...)` allow em todos os escopos de configurações que a sessão carrega, deixando de fora os de configurações de repositório enquanto [`permissions.blockReadsOutsideWorkingDirectories`](#sandboxed-commands-under-the-block) está ativado. [Bloqueios de repositório](https://code.claude.com/docs/pt/sandboxing.md#repository-settings-under-an-admin-required-sandbox) também podem deixar de fora as entradas de um repositório. Uma entrada `allowWrite` não pode levantar um [caminho protegido](https://code.claude.com/docs/pt/sandboxing.md#protected-paths).

1537 1538 

1538### `sandbox.filesystem.denyWrite`1539### `sandbox.filesystem.denyWrite`


2453 2454 

2454#### Como os valores de `env` interagem com o seu shell2455#### Como os valores de `env` interagem com o seu shell

2455 2456 

2456* Um valor aqui sobrescreve a mesma variável exportada no seu shell e, quando mais de um arquivo de configurações define uma variável, aplica-se o de [maior precedência](https://code.claude.com/docs/pt/settings.md#settings-precedence). [Variáveis que o Claude Code ignora em `env`](#variables-claude-code-ignores-in-env) lista as exceções para configurações de projeto e locais.2457* Um valor aqui sobrescreve a mesma variável exportada no seu shell e, quando mais de um arquivo de configurações define uma variável, aplica-se o de [maior precedência](https://code.claude.com/docs/pt/settings.md#settings-precedence). [Variáveis que o Claude Code ignora em `env`](#variables-claude-code-ignores-in-env) lista as exceções.

2457* Quando o aplicativo Claude Desktop ou um executor de [ambiente auto-hospedado](https://code.claude.com/docs/pt/self-hosted-environments) inicia a sessão, o ambiente de inicialização que ele constrói tem precedência: o Claude Code ignora um valor de `env` de qualquer arquivo de configurações para uma variável que o ambiente de inicialização já define. O [log de depuração](https://code.claude.com/docs/pt/debug-your-config.md) nomeia cada variável ignorada.2458* Quando o aplicativo Claude Desktop ou um executor de [ambiente auto-hospedado](https://code.claude.com/docs/pt/self-hosted-environments) inicia a sessão, o ambiente de inicialização que ele constrói tem precedência: o Claude Code ignora um valor de `env` de qualquer arquivo de configurações para uma variável que o ambiente de inicialização já define. O [log de depuração](https://code.claude.com/docs/pt/debug-your-config.md) nomeia cada variável ignorada.

2458* Para cancelar uma exportação do shell, defina a variável como `""`. O Claude Code trata um valor vazio como não definido para a seleção de provedor, e os subprocessos herdam o valor vazio.2459* Para cancelar uma exportação do shell, defina a variável como `""`. O Claude Code trata um valor vazio como não definido para a seleção de provedor, e os subprocessos herdam o valor vazio.

2459* `NO_COLOR` e `FORCE_COLOR` definidas aqui alcançam apenas subprocessos. Para alterar as cores da própria interface do Claude Code, defina-as no seu shell antes de iniciar o `claude`.2460* `NO_COLOR` e `FORCE_COLOR` definidas aqui alcançam apenas subprocessos. Para alterar as cores da própria interface do Claude Code, defina-as no seu shell antes de iniciar o `claude`.


2494 * [`CLAUDE_CODE_DISABLE_FILE_MENTIONS`](https://code.claude.com/docs/pt/env-vars#variables), que impede o Claude Code de expandir menções `@` de arquivos e diretórios.2495 * [`CLAUDE_CODE_DISABLE_FILE_MENTIONS`](https://code.claude.com/docs/pt/env-vars#variables), que impede o Claude Code de expandir menções `@` de arquivos e diretórios.

2495 2496 

2496 Antes da v2.1.251, configurações de projeto e locais também podiam definir as variáveis desta lista que escolhem onde o Claude Code grava seus arquivos ou que exportam o conteúdo da sessão, exceto `HOME` e `XDG_CONFIG_HOME`. Antes da v2.1.290, também podiam definir as variáveis de temporizador de diálogo e `CLAUDE_CODE_DISABLE_ATTACHMENTS`.2497 Antes da v2.1.251, configurações de projeto e locais também podiam definir as variáveis desta lista que escolhem onde o Claude Code grava seus arquivos ou que exportam o conteúdo da sessão, exceto `HOME` e `XDG_CONFIG_HOME`. Antes da v2.1.290, também podiam definir as variáveis de temporizador de diálogo e `CLAUDE_CODE_DISABLE_ATTACHMENTS`.

2498* Você pode ativar o [Code Mode](https://code.claude.com/docs/pt/code-mode.md) com [`CLAUDE_CODE_EXPERIMENTAL_CODE_MODE`](https://code.claude.com/docs/pt/env-vars#variables) a partir do seu shell, das configurações de usuário ou de um arquivo `--settings`, e não a partir de configurações gerenciadas, de projeto ou locais. Com um `0` em qualquer uma das três primeiras fontes ou nas configurações gerenciadas, o Code Mode permanece desativado, independentemente do que você definir em outro lugar. Quando as configurações gerenciadas contêm um `1`, defina o seu próprio `1` nas configurações de usuário, porque um `1` no seu shell é ignorado

2497* Variáveis de identidade pertencentes aos ambientes de hospedagem do Claude Code, como `CLAUDE_CODE_REMOTE` e `CLAUDE_CODE_ACCOUNT_UUID`, são ignoradas em todos os arquivos.2499* Variáveis de identidade pertencentes aos ambientes de hospedagem do Claude Code, como `CLAUDE_CODE_REMOTE` e `CLAUDE_CODE_ACCOUNT_UUID`, são ignoradas em todos os arquivos.

2498* [`CLAUDE_CODE_MESSAGING_SOCKET` e `CLAUDE_CODE_MESSAGING_TOKEN`](https://code.claude.com/docs/pt/env-vars#variables), que o próprio Claude Code exporta, são ignoradas em todos os arquivos. Ignorar a variável de socket requer o Claude Code v2.1.224 ou posterior, e ignorar o token requer a v2.1.228 ou posterior.2500* [`CLAUDE_CODE_MESSAGING_SOCKET` e `CLAUDE_CODE_MESSAGING_TOKEN`](https://code.claude.com/docs/pt/env-vars#variables), que o próprio Claude Code exporta, são ignoradas em todos os arquivos. Ignorar a variável de socket requer o Claude Code v2.1.224 ou posterior, e ignorar o token requer a v2.1.228 ou posterior.

2499* [`CLAUDE_CODE_PROJECT_DIR_NAME`](https://code.claude.com/docs/pt/sessions#name-the-project-directory-yourself), que o Claude Code lê apenas do ambiente de inicialização, é ignorada em todos os arquivos; requer a v2.1.234 ou posterior.2501* [`CLAUDE_CODE_PROJECT_DIR_NAME`](https://code.claude.com/docs/pt/sessions#name-the-project-directory-yourself), que o Claude Code lê apenas do ambiente de inicialização, é ignorada em todos os arquivos; requer a v2.1.234 ou posterior.


3173 3175 

3174O exemplo precisa de [`jq`](https://jqlang.org/) instalado e é executado em um shell. Para equivalentes PowerShell e Git Bash, veja [Configuração do Windows](https://code.claude.com/docs/pt/statusline.md#windows-configuration); para a configuração completa, veja [Configurar manualmente uma linha de status](https://code.claude.com/docs/pt/statusline.md#manually-configure-a-status-line).3176O exemplo precisa de [`jq`](https://jqlang.org/) instalado e é executado em um shell. Para equivalentes PowerShell e Git Bash, veja [Configuração do Windows](https://code.claude.com/docs/pt/statusline.md#windows-configuration); para a configuração completa, veja [Configurar manualmente uma linha de status](https://code.claude.com/docs/pt/statusline.md#manually-configure-a-status-line).

3175 3177 

3176### `subagentStatusLine`

3177 

3178Quando Claude executa [subagentes](https://code.claude.com/docs/pt/sub-agents.md), Claude Code os lista em uma exibição de tarefa abaixo do prompt, uma linha por subagente mostrando `name · description · token count`. Esta chave permite que você execute seu próprio comando para reescrever essas linhas, por exemplo para mostrar o uso de contexto de cada subagente como uma porcentagem. Em cada atualização, Claude Code envia as linhas visíveis como um objeto JSON em stdin, com um array `tasks` carregando `id`, `name`, `status`, `model`, `tokenCount` de cada subagente e mais, e substitui a linha para cada `id` que você escreve de volta como uma linha `{"id", "content"}`. Linhas que você não escreve de volta mantêm a renderização padrão.

3179 

3180* **Scope**: [`Any file`](#scopes). Quando [`allowManagedHooksOnly`](#allowmanagedhooksonly) está ativado, ou [`disableAllHooks`](#disableallhooks) está definido fora das configurações gerenciadas, apenas o valor das configurações gerenciadas é executado.

3181* **Type**: objeto com `type` definido como `"command"` e uma string `command`

3182* **Default**: unset, portanto Claude Code renderiza as linhas padrão

3183 

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

3185{

3186 "subagentStatusLine": {

3187 "type": "command",

3188 "command": "jq -c '.tasks[] | {id, content: \"\\(.name): \\(.tokenCount) tokens\"}'"

3189 }

3190}

3191```

3192 

3193Veja [Linhas de status de subagente](https://code.claude.com/docs/pt/statusline.md#subagent-status-lines).

3194 

3195### `syntaxHighlightingDisabled`3178### `syntaxHighlightingDisabled`

3196 3179 

3197Claude Code colore código por linguagem nos diffs, blocos de código e visualizações de arquivo que mostra no terminal, com seu highlighter integrado. Defina esta chave como `true` para mostrá-los como texto simples em vez disso, por exemplo se as cores entrarem em conflito com seu tema de terminal ou desacelerem um leitor de tela.3180Claude Code colore código por linguagem nos diffs, blocos de código e visualizações de arquivo que mostra no terminal, com seu highlighter integrado. Defina esta chave como `true` para mostrá-los como texto simples em vez disso, por exemplo se as cores entrarem em conflito com seu tema de terminal ou desacelerem um leitor de tela.


3648* **Tudo o mais é bloqueado**: hooks de usuário, projeto e local, hooks e mods de outros plugins instalados e hooks declarados no frontmatter do agente. [Mods integrados ao Claude Code](https://code.claude.com/docs/pt/plugins/mods/overview.md#mods-built-into-claude-code) continuam sendo executados. Para bloquear apenas os mods dos usuários, defina [`allowManagedModsOnly`](https://code.claude.com/docs/pt/plugins/mods/admin#set-options-on-the-built-in-guard) em vez disso.3631* **Tudo o mais é bloqueado**: hooks de usuário, projeto e local, hooks e mods de outros plugins instalados e hooks declarados no frontmatter do agente. [Mods integrados ao Claude Code](https://code.claude.com/docs/pt/plugins/mods/overview.md#mods-built-into-claude-code) continuam sendo executados. Para bloquear apenas os mods dos usuários, defina [`allowManagedModsOnly`](https://code.claude.com/docs/pt/plugins/mods/admin#set-options-on-the-built-in-guard) em vez disso.

3649* **Plugins com origem em comando são desativados**: Claude Code também desativa plugins com uma [`command` source](https://code.claude.com/docs/pt/plugins/marketplace-reference#command-plugin-source), incluindo plugins forçadamente ativados em `enabledPlugins` gerenciado, a menos que você defina [`disableCommandPluginSources`](#disablecommandpluginsources) explicitamente como `false`3632* **Plugins com origem em comando são desativados**: Claude Code também desativa plugins com uma [`command` source](https://code.claude.com/docs/pt/plugins/marketplace-reference#command-plugin-source), incluindo plugins forçadamente ativados em `enabledPlugins` gerenciado, a menos que você defina [`disableCommandPluginSources`](#disablecommandpluginsources) explicitamente como `false`

3650* **Comandos `headersHelper` do marketplace são bloqueados**: Claude Code também bloqueia comandos [`headersHelper`](https://code.claude.com/docs/pt/plugins/host-marketplace#authenticate-archive-downloads) do marketplace a menos que [`disableCommandPluginSources`](#disablecommandpluginsources) seja explicitamente definido como `false`, exceto para um marketplace que as próprias configurações gerenciadas declaram. Requer Claude Code v2.1.238 ou posterior3633* **Comandos `headersHelper` do marketplace são bloqueados**: Claude Code também bloqueia comandos [`headersHelper`](https://code.claude.com/docs/pt/plugins/host-marketplace#authenticate-archive-downloads) do marketplace a menos que [`disableCommandPluginSources`](#disablecommandpluginsources) seja explicitamente definido como `false`, exceto para um marketplace que as próprias configurações gerenciadas declaram. Requer Claude Code v2.1.238 ou posterior

3651* **Linha de status e sugestão de arquivo restringem-se a configurações gerenciadas**: Claude Code lê [`statusLine`](https://code.claude.com/docs/pt/statusline), [`fileSuggestion`](#filesuggestion) e [`subagentStatusLine`](https://code.claude.com/docs/pt/statusline#subagent-status-lines) apenas de configurações gerenciadas, seguindo os [gates de linha de status e sugestão de arquivo](#status-line-and-file-suggestion-gates)3634* **Linha de status e sugestão de arquivo restringem-se a configurações gerenciadas**: Claude Code lê [`statusLine`](https://code.claude.com/docs/pt/statusline) e [`fileSuggestion`](#filesuggestion) apenas de configurações gerenciadas, seguindo os [gates de linha de status e sugestão de arquivo](#status-line-and-file-suggestion-gates)

3652 3635 

3653O comando [`/goal`](https://code.claude.com/docs/pt/goal) não pode ser executado enquanto essa chave está definida, porque depende de hooks.3636O comando [`/goal`](https://code.claude.com/docs/pt/goal) não pode ser executado enquanto essa chave está definida, porque depende de hooks.

3654 3637 


3687 3670 

3688#### Gates de linha de status e sugestão de arquivo3671#### Gates de linha de status e sugestão de arquivo

3689 3672 

3690Claude Code toma duas decisões para `statusLine`, `fileSuggestion` e `subagentStatusLine`, nesta ordem:3673Claude Code toma duas decisões para `statusLine` e `fileSuggestion`, nesta ordem:

3691 3674 

3692* **Desativado completamente**: quando configurações gerenciadas definem `disableAllHooks`, ou quando a pasta não é confiável sob a mesma [regra de confiança de workspace que hooks em arquivos de configurações](https://code.claude.com/docs/pt/permissions.md#what-runs-before-you-trust-a-folder)3675* **Desativado completamente**: quando configurações gerenciadas definem `disableAllHooks`, ou quando a pasta não é confiável sob a mesma [regra de confiança de workspace que hooks em arquivos de configurações](https://code.claude.com/docs/pt/permissions.md#what-runs-before-you-trust-a-folder)

3693* **Restringido a configurações gerenciadas**: quando [`allowManagedHooksOnly`](#allowmanagedhooksonly) está definido, quando `disableAllHooks` é `true` fora de configurações gerenciadas após [precedência de configurações](https://code.claude.com/docs/pt/hooks.md#disable-or-remove-hooks) ser aplicada, ou quando você inicia Claude Code com `--safe-mode`3676* **Restringido a configurações gerenciadas**: quando [`allowManagedHooksOnly`](#allowmanagedhooksonly) está definido, quando `disableAllHooks` é `true` fora de configurações gerenciadas após [precedência de configurações](https://code.claude.com/docs/pt/hooks.md#disable-or-remove-hooks) ser aplicada, ou quando você inicia Claude Code com `--safe-mode`


4659 4642 

4660* **Escopo**: [`Qualquer arquivo`](#scopes)4643* **Escopo**: [`Qualquer arquivo`](#scopes)

4661* **Tipo**: string, o nome de um agente integrado ou personalizado4644* **Tipo**: string, o nome de um agente integrado ou personalizado

4662* **Padrão**: não definido, portanto a thread principal é executada como o agente padrão do Claude Code4645* **Padrão**: não definido

4663* **Substituições por sessão**: `--agent` tem precedência sobre esta chave para uma sessão4646* **Substituições por sessão**: `--agent` tem precedência sobre esta chave para uma sessão

4664 4647 

4665```json settings.json theme={null}4648```json settings.json theme={null}


4668}4651}

4669```4652```

4670 4653 

4671O próprio `settings.json` de um plugin também pode fornecer esta chave; veja [Envie configurações padrão com seu plugin](https://code.claude.com/docs/pt/plugins/components.md#default-settings).

4672 

4673### `crossSessionInbound`4654### `crossSessionInbound`

4674 4655 

4675Escolha o que esta sessão faz com [mensagens chegando de suas outras sessões do Claude Code](https://code.claude.com/docs/pt/cross-session-messaging.md#control-inbound-messages). Quando nenhum valor se aplica, Claude Code decide por mensagem das classes de modo de permissão das duas sessões.4656Escolha o que esta sessão faz com [mensagens chegando de suas outras sessões do Claude Code](https://code.claude.com/docs/pt/cross-session-messaging.md#control-inbound-messages). Quando nenhum valor se aplica, Claude Code decide por mensagem das classes de modo de permissão das duas sessões.


5207 5188 

5208* **Escopo**: [`Gerenciado`](#scopes). Uma lista que as fontes de admin próprias da máquina definem, políticas MDM e arquivos de configurações gerenciadas, continua se aplicando quando configurações gerenciadas por servidor também entregam uma: uma sessão pode então usar apenas os provedores em ambas as listas, portanto uma lista gerenciada por servidor pode estreitar o que a máquina permite mas nunca ampliá-lo. Qual `allowedProviders` da fonte da máquina conta segue [como Claude Code combina fontes gerenciadas](https://code.claude.com/docs/pt/managed-settings.md#how-claude-code-combines-managed-sources). Uma lista entregue apenas através de configurações gerenciadas por servidor alcança apenas as sessões que [buscam configurações gerenciadas por servidor](https://code.claude.com/docs/pt/server-managed-settings.md#platform-availability).5189* **Escopo**: [`Gerenciado`](#scopes). Uma lista que as fontes de admin próprias da máquina definem, políticas MDM e arquivos de configurações gerenciadas, continua se aplicando quando configurações gerenciadas por servidor também entregam uma: uma sessão pode então usar apenas os provedores em ambas as listas, portanto uma lista gerenciada por servidor pode estreitar o que a máquina permite mas nunca ampliá-lo. Qual `allowedProviders` da fonte da máquina conta segue [como Claude Code combina fontes gerenciadas](https://code.claude.com/docs/pt/managed-settings.md#how-claude-code-combines-managed-sources). Uma lista entregue apenas através de configurações gerenciadas por servidor alcança apenas as sessões que [buscam configurações gerenciadas por servidor](https://code.claude.com/docs/pt/server-managed-settings.md#platform-availability).

5209* **Tipo**: array de strings, cada uma de:5190* **Tipo**: array de strings, cada uma de:

5210 * `"anthropic"`: a API Anthropic no host próprio da Anthropic, através de um login claude.ai ou Console ou uma chave de API. Emparelhe-a com [`forceLoginMethod`](#forceloginmethod) ou [`forceLoginOrgUUID`](#forceloginorguuid) para também restringir o login5191 * `"anthropic"`: a API Anthropic no host próprio da Anthropic, através de um login claude.ai ou Console ou uma chave de API. Emparelhe-a com [`forceLoginMethod`](#forceloginmethod) ou [`forceLoginOrgUUID`](#forceloginorguuid) para também restringir o login. O Cowork do Desktop [na máquina do usuário](https://code.claude.com/docs/pt/managed-settings.md#where-and-when-a-policy-applies) conta como `"anthropic"` quando conectado ao claude.ai, portanto, sem ele na lista da máquina, o Cowork [é recusado na inicialização](https://code.claude.com/docs/pt/errors.md#managed-settings-dont-allow-this-api-provider). Para permitir que o Cowork inicie, adicione-o, o que também abre esta lista para sessões diretas da Anthropic.

5211 * `"bedrock"`: [Amazon Bedrock](https://code.claude.com/docs/pt/amazon-bedrock.md)5192 * `"bedrock"`: [Amazon Bedrock](https://code.claude.com/docs/pt/amazon-bedrock.md)

5212 * `"vertex"`: [Plataforma de Agente do Google Cloud](https://code.claude.com/docs/pt/google-vertex-ai.md), anteriormente Vertex AI5193 * `"vertex"`: [Plataforma de Agente do Google Cloud](https://code.claude.com/docs/pt/google-vertex-ai.md), anteriormente Vertex AI

5213 * `"foundry"`: [Microsoft Foundry](https://code.claude.com/docs/pt/microsoft-foundry.md)5194 * `"foundry"`: [Microsoft Foundry](https://code.claude.com/docs/pt/microsoft-foundry.md)

5214 * `"anthropicAws"`: [Claude Platform on AWS](https://code.claude.com/docs/pt/claude-platform-on-aws.md)5195 * `"anthropicAws"`: [Claude Platform on AWS](https://code.claude.com/docs/pt/claude-platform-on-aws.md)

5215 * `"mantle"`: o [endpoint Mantle](https://code.claude.com/docs/pt/amazon-bedrock.md#use-the-mantle-endpoint) do Amazon Bedrock. Uma sessão que [executa Mantle junto com a API Invoke](https://code.claude.com/docs/pt/amazon-bedrock.md#run-mantle-alongside-the-invoke-api) usa ambos os provedores, portanto liste `"bedrock"` e `"mantle"` juntos para ela5196 * `"mantle"`: o [endpoint Mantle](https://code.claude.com/docs/pt/amazon-bedrock.md#use-the-mantle-endpoint) do Amazon Bedrock. Uma sessão que [executa Mantle junto com a API Invoke](https://code.claude.com/docs/pt/amazon-bedrock.md#run-mantle-alongside-the-invoke-api) usa ambos os provedores, portanto liste `"bedrock"` e `"mantle"` juntos para ela

5216 * `"customEndpoint"`: a API Anthropic ou a API de um provedor de nuvem enviada para outro host, como um [gateway de LLM](https://code.claude.com/docs/pt/llm-gateway) nomeado por `ANTHROPIC_BASE_URL` ou por uma variável de endpoint do provedor, como `ANTHROPIC_BEDROCK_BASE_URL`. Claude Code o admite apenas para o valor exato que um bloco [`env`](#env) gerenciado fixa5197 * `"customEndpoint"`: a API Anthropic ou a API de um provedor de nuvem enviada para outro host, como um [gateway de LLM](https://code.claude.com/docs/pt/llm-gateway) nomeado por `ANTHROPIC_BASE_URL` ou por uma variável de endpoint do provedor, como `ANTHROPIC_BEDROCK_BASE_URL`. Claude Code o admite apenas para o valor exato que um bloco [`env`](#env) gerenciado fixa

5217 * `"gateway"`: um login de [gateway na nuvem](https://code.claude.com/docs/pt/claude-apps-gateway)5198 * `"gateway"`: um login de [Cloud gateway](https://code.claude.com/docs/pt/claude-apps-gateway)

5218* **Padrão**: não definido, portanto qualquer provedor pode ser usado5199* **Padrão**: não definido, portanto qualquer provedor pode ser usado

5219 5200 

5220```json managed-settings.json theme={null}5201```json managed-settings.json theme={null}

setup.md +5 −23

Details

141 141 

142### Alpine Linux e distribuições baseadas em musl142### Alpine Linux e distribuições baseadas em musl

143 143 

144Instalar Claude Code no Alpine e outras distribuições baseadas em musl/uClibc requer `bash` e `curl` para o comando de instalação, e `libgcc`, `libstdc++` e `ripgrep` em tempo de execução. O Alpine não inclui `bash` ou `curl` por padrão, portanto o comando de instalação documentado falha com um erro `not found` até que você os instale. Instale esses pacotes usando o gerenciador de pacotes da sua distribuição e defina `USE_BUILTIN_RIPGREP=0`.144No Alpine e em outras distribuições baseadas em musl, o [comando de instalação](#install-claude-code) requer `bash` e `curl`, e o próprio Claude Code requer `bash` ou `zsh`. O Alpine não inclui `bash` ou `curl` por padrão, portanto o comando de instalação documentado falha com um erro `not found` até que você os instale.

145 145 

146Este exemplo instala os pacotes necessários no Alpine:146Este exemplo instala os pacotes necessários no Alpine:

147 147 

148```bash theme={null}148```bash theme={null}

149apk add bash curl libgcc libstdc++ ripgrep149apk add bash curl

150```

151 

152No Alpine, `ripgrep` está no repositório community. Se `apk` relatar que o pacote está faltando, adicione o repositório community a `/etc/apk/repositories`, usando sua versão do Alpine:

153 

154```bash theme={null}

155echo "https://dl-cdn.alpinelinux.org/alpine/v3.22/community" >> /etc/apk/repositories

156```

157 

158Execute `apk update` para atualizar o índice de pacotes e tente novamente o comando `apk add`.

159 

160Em seguida, defina `USE_BUILTIN_RIPGREP` como `0` em seu arquivo [`settings.json`](https://code.claude.com/docs/pt/settings-reference#all-settings):

161 

162```json theme={null}

163{

164 "env": {

165 "USE_BUILTIN_RIPGREP": "0"

166 }

167}

168```150```

169 151 

170## Verificar sua instalação152## Verificar sua instalação


443> wget -O /etc/apk/keys/claude-code.rsa.pub \425> wget -O /etc/apk/keys/claude-code.rsa.pub \

444> https://downloads.claude.ai/keys/claude-code.rsa.pub426> https://downloads.claude.ai/keys/claude-code.rsa.pub

445> echo "https://downloads.claude.ai/claude-code/apk/stable" >> /etc/apk/repositories427> echo "https://downloads.claude.ai/claude-code/apk/stable" >> /etc/apk/repositories

446> apk add claude-code428> apk add bash claude-code

447> ```429> ```

448>430>

449> Para mudar para o canal `latest`, remova a linha do repositório `stable` e adicione o repositório `latest`:431> Para mudar para o canal `latest`, remova a linha do repositório `stable` e adicione o repositório `latest`:


463>445>

464> Se `npm --version` imprimir uma versão começando com `12` no seu shell, siga [Corrigir uma instalação com npm 12](https://code.claude.com/docs/pt/troubleshoot-install.md#fix-an-npm-12-install) em vez disso. Não instale com `sudo`. O Claude Code executa o npm sem `sudo` quando se atualiza, portanto uma instalação que precisa de `sudo` não pode ser atualizada automaticamente.446> Se `npm --version` imprimir uma versão começando com `12` no seu shell, siga [Corrigir uma instalação com npm 12](https://code.claude.com/docs/pt/troubleshoot-install.md#fix-an-npm-12-install) em vez disso. Não instale com `sudo`. O Claude Code executa o npm sem `sudo` quando se atualiza, portanto uma instalação que precisa de `sudo` não pode ser atualizada automaticamente.

465 447 

466Você também pode instalar Claude Code como um pacote npm global. O pacote npm requer [Node.js 22 ou posterior](https://nodejs.org/en/download). Em uma versão mais antiga do Node.js, npm imprime um aviso `EBADENGINE` durante a instalação em vez de falhar; a instalação é concluída e `claude` ainda funciona, já que o pacote baixa um binário nativo que não usa seu Node.js em tempo de execução.448Você também pode instalar Claude Code como um pacote npm global. O pacote npm requer [Node.js 22 ou posterior](https://nodejs.org/en/download). Em uma versão mais antiga do Node.js, o npm, por padrão, imprime um aviso `EBADENGINE` e conclui a instalação em vez de falhar. O `claude` instalado ainda funciona, já que o pacote baixa um binário nativo que não usa seu Node.js em tempo de execução.

467 449 

468```bash theme={null}450```bash theme={null}

469npm install -g @anthropic-ai/claude-code451npm install -g @anthropic-ai/claude-code@latest

470```452```

471 453 

472O pacote npm instala o mesmo binário nativo que o instalador autônomo. npm puxa o binário através de uma dependência opcional por plataforma como `@anthropic-ai/claude-code-darwin-arm64`, e uma etapa postinstall o vincula no lugar. O binário `claude` instalado não invoca Node em si.454O pacote npm instala o mesmo binário nativo que o instalador autônomo. npm puxa o binário através de uma dependência opcional por plataforma como `@anthropic-ai/claude-code-darwin-arm64`, e uma etapa postinstall o vincula no lugar. O binário `claude` instalado não invoca Node em si.

skills.md +5 −1

Details

787 787 

788Comandos injetados nunca pedem permissão enquanto a skill é renderizada. O Claude Code verifica primeiro cada um deles em relação às suas [regras de permissão](https://code.claude.com/docs/pt/permissions.md). Um comando correspondido por uma regra deny aborta a invocação com `Shell command permission check failed for pattern "..."`.788Comandos injetados nunca pedem permissão enquanto a skill é renderizada. O Claude Code verifica primeiro cada um deles em relação às suas [regras de permissão](https://code.claude.com/docs/pt/permissions.md). Um comando correspondido por uma regra deny aborta a invocação com `Shell command permission check failed for pattern "..."`.

789 789 

790Fora do [modo auto](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode), quando a verificação de permissão de um comando retorna qualquer coisa diferente de allow, o Claude Code aborta a invocação com o mesmo erro. Isso inclui uma regra que normalmente pediria sua confirmação. Para evitar que um comando sem correspondência aborte aqui, pré-aprove-o com [`allowed-tools`](#pre-approve-tools-for-a-skill). Se a sua organização restringe as regras de permissão às configurações gerenciadas, consulte [Quando apenas regras de permissão gerenciadas se aplicam](#when-only-managed-permission-rules-apply). As regras deny e ask ainda sobrescrevem `allowed-tools`. Consulte [Gerenciar permissões](https://code.claude.com/docs/pt/permissions.md#manage-permissions).790Fora do [modo auto](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode), quando a verificação de permissão de um comando retorna qualquer coisa diferente de allow, o Claude Code aborta a invocação. Para evitar que um comando sem correspondência aborte, pré-aprove-o com [`allowed-tools`](#pre-approve-tools-for-a-skill), dentro destes limites:

791 

792* **Regras deny e ask**: um comando correspondido por uma delas ainda aborta. Para encontrar a regra, consulte [Gerenciar permissões](https://code.claude.com/docs/pt/permissions.md#manage-permissions).

793* **Regras somente gerenciadas**: se `/status` na sessão listar a skill em `allowed-tools ignored this session`, consulte [Quando apenas regras de permissão gerenciadas se aplicam](#when-only-managed-permission-rules-apply).

794* **Pastas Git não verificadas**: onde um arquivo `HEAD` ou `.git` pode não ser seu, o Claude Code ignora `allowed-tools` para um comando Bash que contém `git` ou que o Claude Code não consegue analisar. Se você confia na pasta, por exemplo o worktree do seu próprio repositório bare, permita o comando com [`/permissions`](https://code.claude.com/docs/pt/permissions#manage-permissions) na sessão.

791 795 

792No modo auto, um comando que de outra forma precisaria da sua aprovação não aborta a invocação. A skill é carregada com uma instrução dizendo ao Claude para executar o comando primeiro, e a própria chamada do Claude então passa pelas [verificações usuais do modo auto](https://code.claude.com/docs/pt/permission-modes.md#how-the-classifier-evaluates-actions). A invocação ainda é abortada em uma [skill bifurcada](#run-skills-in-a-subagent) que define `agent` e em uma sessão em que o Claude não tem a [ferramenta de shell que executa comandos injetados](#how-injected-commands-run).796No modo auto, um comando que de outra forma precisaria da sua aprovação não aborta a invocação. A skill é carregada com uma instrução dizendo ao Claude para executar o comando primeiro, e a própria chamada do Claude então passa pelas [verificações usuais do modo auto](https://code.claude.com/docs/pt/permission-modes.md#how-the-classifier-evaluates-actions). A invocação ainda é abortada em uma [skill bifurcada](#run-skills-in-a-subagent) que define `agent` e em uma sessão em que o Claude não tem a [ferramenta de shell que executa comandos injetados](#how-injected-commands-run).

793 797 

statusline.md +0 −40

Details

1085echo "$dirname [$model]"1085echo "$dirname [$model]"

1086```1086```

1087 1087 

1088## Linhas de status de subagente

1089 

1090A configuração `subagentStatusLine` renderiza um corpo de linha personalizado para cada [subagente](https://code.claude.com/docs/pt/sub-agents.md) mostrado no painel de agente abaixo do prompt. Use-a para substituir a linha padrão `name · description · token count` pela sua própria formatação.

1091 

1092```json theme={null}

1093{

1094 "subagentStatusLine": {

1095 "type": "command",

1096 "command": "~/.claude/subagent-statusline.sh"

1097 }

1098}

1099```

1100 

1101O comando é executado uma vez por tick de atualização e recebe todas as linhas de subagente visíveis como um único objeto JSON em stdin. A entrada inclui os [campos de hook base](https://code.claude.com/docs/pt/hooks.md#common-input-fields), um campo `columns` com a largura de linha utilizável e um array `tasks` com uma entrada por linha, descrito em [Campos de tarefa](#task-fields).

1102 

1103Escreva uma linha JSON para stdout por linha que você queira substituir, na forma `{"id": "<task id>", "content": "<row body>"}`. A string `content` é renderizada como está, incluindo cores ANSI e hiperlinks OSC 8. Omita o `id` de uma tarefa para manter a renderização padrão para essa linha; emita uma string `content` vazia para ocultá-la.

1104 

1105Os mesmos portões de confiança, `disableAllHooks` e [`allowManagedHooksOnly`](https://code.claude.com/docs/pt/settings-reference#allowmanagedhooksonly) que se aplicam a `statusLine` se aplicam aqui. Plugins podem enviar um `subagentStatusLine` padrão em seu [`settings.json`](https://code.claude.com/docs/pt/plugins/manifest-reference#standard-layout), mas diferentemente de hooks, valores de plugin não são executados sob `allowManagedHooksOnly` mesmo quando o plugin é forçadamente ativado nas configurações gerenciadas `enabledPlugins`.

1106 

1107### Campos de tarefa

1108 

1109Cada entrada no array `tasks` descreve uma linha de subagente com os campos abaixo. Campos marcados como opcionais são omitidos quando não têm valor, portanto verifique sua ausência no seu script.

1110 

1111| Campo | Tipo | Descrição |

1112| :- | :- | :- |

1113| `id` | string | Identificador da tarefa. Repita-o como `id` na linha que você escrever de volta para essa linha |

1114| `name` | string, opcional | Nome pelo qual o subagente é [endereçado](https://code.claude.com/docs/pt/sub-agents.md#subagent-names), quando ele tem um |

1115| `type` | string | Tipo de tarefa: `local_agent` |

1116| `agentType` | string | Tipo de subagente como o qual a tarefa é executada, como o [`Explore`](https://code.claude.com/docs/pt/sub-agents#built-in-subagents) integrado ou um `code-reviewer` personalizado. Contém o mesmo valor que os hooks recebem como [`agent_type`](https://code.claude.com/docs/pt/hooks#subagentstart). Requer Claude Code v2.1.293 ou posterior |

1117| `status` | string | Estado da tarefa, como `running`, `completed`, `failed` ou `killed` |

1118| `description` | string | Descrição curta da tarefa, como a que Claude forneceu ao iniciar o subagente |

1119| `label` | string | Resumo curto do progresso da tarefa quando Claude Code tem um, caso contrário o mesmo texto de `description` |

1120| `startTime` | number | Quando a tarefa começou, em milissegundos desde a época Unix |

1121| `model` | string, opcional | ID do modelo resolvido em que a tarefa é executada. Omitido até que o modelo seja resolvido |

1122| `effort` | string ou number, opcional | Esforço de raciocínio definido para o subagente em seu [frontmatter de definição](https://code.claude.com/docs/pt/sub-agents.md#supported-frontmatter-fields) ou na invocação individual: `low`, `medium`, `high`, `xhigh`, `max` ou um orçamento de tokens numérico. Este é o valor configurado, e o esforço que Claude Code aplica pode ser diferente quando o modelo não suporta esse nível. Omitido quando nenhum esforço está definido |

1123| `contextWindowSize` | number, opcional | Janela de contexto de `model` em tokens, calculada da mesma forma que a [`context_window.context_window_size`](#context-window-fields) da linha de status principal, para que você possa renderizar uma porcentagem por linha a partir de `tokenCount`. Omitido quando `model` é |

1124| `tokenCount` | number | Contagem de tokens acumulada do subagente, o número que a linha padrão mostra |

1125| `tokenSamples` | array de numbers | Até as últimas 16 leituras de `tokenCount`, uma por tick de atualização, da mais antiga para a mais recente e terminando com a atual |

1126| `cwd` | string | Diretório de trabalho do subagente: seu próprio diretório quando ele é executado em um, como um worktree isolado, caso contrário o diretório de trabalho da sessão |

1127 

1128## Dicas1088## Dicas

1129 1089 

1130* **Teste com entrada simulada**: `echo '{"model":{"display_name":"Opus"},"workspace":{"current_dir":"/home/user/project"},"context_window":{"used_percentage":25},"session_id":"test-session-abc"}' | ./statusline.sh`1090* **Teste com entrada simulada**: `echo '{"model":{"display_name":"Opus"},"workspace":{"current_dir":"/home/user/project"},"context_window":{"used_percentage":25},"session_id":"test-session-abc"}' | ./statusline.sh`

Details

26 26 

27| Terminal | Shift+Enter para nova linha |27| Terminal | Shift+Enter para nova linha |

28| :- | :- |28| :- | :- |

29| Ghostty, Kitty, iTerm2, WezTerm, Warp, Apple Terminal, Windows Terminal | Funciona sem configuração |29| Ghostty, Kitty, iTerm2, WezTerm, Warp, Windows Terminal | Funciona sem configuração |

30| Outros terminais que suportam o protocolo de teclado kitty, como foot e Alacritty 0.16 ou posterior | Funciona sem configuração. Requer Claude Code v2.1.269 ou posterior |30| Outros terminais que suportam o protocolo de teclado kitty, como foot e Alacritty 0.16 ou posterior | Funciona sem configuração. Requer Claude Code v2.1.269 ou posterior |

31| VS Code, Cursor, Devin Desktop, Alacritty anterior a 0.16, Zed | Execute `/terminal-setup` uma vez |31| VS Code, Cursor, Devin Desktop, Alacritty anterior a 0.16, Zed | Execute `/terminal-setup` uma vez |

32| gnome-terminal, JetBrains IDEs como PyCharm e Android Studio | Não disponível; use Ctrl+J ou `\` depois Enter |32| gnome-terminal, JetBrains IDEs como PyCharm e Android Studio | Não disponível; use Ctrl+J ou `\` depois Enter |

Details

173 173 

174Para limitar quais dessas opções de implantação uma máquina gerenciada pode usar, defina [`allowedProviders`](https://code.claude.com/docs/pt/settings-reference#allowedproviders) nas configurações gerenciadas. Por exemplo, `["bedrock"]` permite Amazon Bedrock e nada mais; uma frota Bedrock que também ativa o endpoint Mantle lista `"mantle"` também. A entrada diz quais variáveis de endpoint também precisam de um pin `env` gerenciado. Requer Claude Code v2.1.285 ou posterior.174Para limitar quais dessas opções de implantação uma máquina gerenciada pode usar, defina [`allowedProviders`](https://code.claude.com/docs/pt/settings-reference#allowedproviders) nas configurações gerenciadas. Por exemplo, `["bedrock"]` permite Amazon Bedrock e nada mais; uma frota Bedrock que também ativa o endpoint Mantle lista `"mantle"` também. A entrada diz quais variáveis de endpoint também precisam de um pin `env` gerenciado. Requer Claude Code v2.1.285 ou posterior.

175 175 

176> [!NOTE]

177>

178> Com o Desktop conectado ao claude.ai, uma sessão do Cowork na máquina do usuário conta como [`"anthropic"`](https://code.claude.com/docs/pt/settings-reference#allowedproviders). Se você deixá-lo de fora dessa lista em uma política de MDM ou em um arquivo de configurações gerenciadas, essa sessão será recusada. Com ele incluído, as sessões enviadas diretamente à Anthropic também são aceitas por essa lista.

179 

176### Usar MCP para integrações180### Usar MCP para integrações

177 181 

178MCP é uma ótima maneira de dar a Claude Code mais informações, como conectar a sistemas de gerenciamento de tickets ou logs de erro. Faça com que uma equipe central configure servidores MCP e adicione uma configuração `.mcp.json` à base de código para que todos os usuários se beneficiem. [Saiba mais](https://code.claude.com/docs/pt/mcp.md).182MCP é uma ótima maneira de dar a Claude Code mais informações, como conectar a sistemas de gerenciamento de tickets ou logs de erro. Faça com que uma equipe central configure servidores MCP e adicione uma configuração `.mcp.json` à base de código para que todos os usuários se beneficiem. [Saiba mais](https://code.claude.com/docs/pt/mcp.md).

Details

127 127 

128Claude usa `AskUserQuestion` para fazer perguntas de múltipla escolha quando precisa de uma decisão ou esclarecimento. Responda escolhendo uma opção ou digite seu próprio texto através da linha `Other` ou do campo de notas.128Claude usa `AskUserQuestion` para fazer perguntas de múltipla escolha quando precisa de uma decisão ou esclarecimento. Responda escolhendo uma opção ou digite seu próprio texto através da linha `Other` ou do campo de notas.

129 129 

130Quando você responde digitando seu próprio texto, Claude Code retransmite a resposta com redação neutra para que Claude siga o que você escreveu, incluindo uma solicitação para aguardar ou explicar primeiro.

131 

132### Timeout de continuação automática de perguntas130### Timeout de continuação automática de perguntas

133 131 

134As perguntas permanecem abertas até que você as responda. Se você quiser que uma pergunta que deixar sem resposta eventualmente feche e permita que Claude continue sem você, defina a configuração [`askUserQuestionTimeout`](https://code.claude.com/docs/pt/settings-reference#askuserquestiontimeout) como `60s`, `5m` ou `10m`, seja no seu `settings.json` do usuário ou na linha **Question auto-continue timeout** em `/config`.132As perguntas permanecem abertas até que você as responda. Se você quiser que uma pergunta que deixar sem resposta eventualmente feche e permita que Claude continue sem você, defina a configuração [`askUserQuestionTimeout`](https://code.claude.com/docs/pt/settings-reference#askuserquestiontimeout) como `60s`, `5m` ou `10m`, seja no seu `settings.json` do usuário ou na linha **Question auto-continue timeout** em `/config`.


525 523 

526## Comportamento da ferramenta Read524## Comportamento da ferramenta Read

527 525 

528A ferramenta Read recebe um caminho de arquivo e retorna o conteúdo com números de linha. Claude é instruído a sempre passar caminhos absolutos.526A ferramenta Read recebe um caminho de arquivo e retorna o conteúdo com números de linha.

529 527 

530Ler um arquivo vazio retorna um aviso de que o arquivo existe mas seu conteúdo está vazio, e um `offset` além da última linha retorna um aviso informando a contagem de linhas do arquivo.528Ler um arquivo vazio retorna um aviso de que o arquivo existe mas seu conteúdo está vazio, e um `offset` além da última linha retorna um aviso informando a contagem de linhas do arquivo.

531 529 

Details

388> Get-Command claude | Select-Object Source388> Get-Command claude | Select-Object Source

389> ```389> ```

390 390 

391No Linux, verifique se há bibliotecas compartilhadas ausentes. Se `ldd` mostrar bibliotecas ausentes, você pode precisar instalar pacotes do sistema. No Alpine Linux e outras distribuições baseadas em musl, consulte [Alpine Linux setup](https://code.claude.com/docs/pt/setup.md#alpine-linux-and-musl-based-distributions).391No Linux, verifique se há bibliotecas compartilhadas ausentes. Se `ldd` mostrar bibliotecas ausentes, você pode precisar instalar pacotes do sistema. No Alpine Linux e outras distribuições baseadas em musl, consulte [Incompatibilidade de binário musl ou glibc no Linux](#linux-musl-or-glibc-binary-mismatch).

392 392 

393```bash theme={null}393```bash theme={null}

394ldd "$(command -v claude)" | grep "not found"394ldd "$(command -v claude)" | grep "not found"


906 906 

907### Linux musl or glibc binary mismatch907### Linux musl or glibc binary mismatch

908 908 

909Se você vir erros sobre bibliotecas compartilhadas ausentes como `libstdc++.so.6` ou `libgcc_s.so.1` após a instalação, o instalador pode ter baixado a variante binária errada para seu sistema.909Se você vir erros sobre bibliotecas compartilhadas ausentes como `ld-linux-x86-64.so.2` ou `ld-linux-aarch64.so.1` após a instalação, o instalador pode ter baixado a variante binária errada para seu sistema.

910 910 

911```text theme={null}911```text theme={null}

912Error loading shared library libstdc++.so.6: No such file or directory912Error loading shared library ld-linux-x86-64.so.2: No such file or directory

913```913```

914 914 

915Isso pode acontecer em sistemas baseados em glibc que têm pacotes de compilação cruzada musl instalados, fazendo o instalador detectar incorretamente o sistema como musl.

916 

917**Soluções:**915**Soluções:**

918 916 

9191. **Verifique qual libc seu sistema usa**:9171. **Verifique qual libc seu sistema usa**:


924 922 

9252. **Se você estiver em glibc mas recebeu o binário musl**, remova a instalação e reinstale. Você também pode baixar manualmente o binário correto usando o manifesto em `https://downloads.claude.ai/claude-code-releases/{VERSION}/manifest.json`. Abra um [GitHub issue](https://github.com/anthropics/claude-code/issues) com a saída de `ldd --version` e `ls /lib/libc.musl*`.9232. **Se você estiver em glibc mas recebeu o binário musl**, remova a instalação e reinstale. Você também pode baixar manualmente o binário correto usando o manifesto em `https://downloads.claude.ai/claude-code-releases/{VERSION}/manifest.json`. Abra um [GitHub issue](https://github.com/anthropics/claude-code/issues) com a saída de `ldd --version` e `ls /lib/libc.musl*`.

926 924 

9273. **Se você estiver realmente em musl**, como Alpine Linux, instale os pacotes necessários:9253. **Se você estiver em musl mas recebeu o binário glibc**, [remova a instalação](https://code.claude.com/docs/pt/setup.md#uninstall-claude-code). No Alpine Linux, primeiro instale os pacotes que a [Alpine Linux setup](https://code.claude.com/docs/pt/setup.md#alpine-linux-and-musl-based-distributions) indica. Depois execute o [comando de instalação](https://code.claude.com/docs/pt/setup.md#install-claude-code), que instala o binário musl.

928 ```bash theme={null}

929 apk add libgcc libstdc++ ripgrep

930 ```

931 No Alpine, `ripgrep` está no repositório community. Se `apk` relatar que o pacote está faltando, consulte [Alpine Linux setup](https://code.claude.com/docs/pt/setup.md#alpine-linux-and-musl-based-distributions).

932 926 

933### `Illegal instruction`927### `Illegal instruction`

934 928 


1001 995 

1002Estes problemas se aplicam se você instalou Claude Code com `npm install -g` dentro do WSL. Se você usou o [native installer](https://code.claude.com/docs/pt/setup.md), pule esta seção. No npm 12, instale conforme descrito em [Corrigir uma instalação com npm 12](#fix-an-npm-12-install).996Estes problemas se aplicam se você instalou Claude Code com `npm install -g` dentro do WSL. Se você usou o [native installer](https://code.claude.com/docs/pt/setup.md), pule esta seção. No npm 12, instale conforme descrito em [Corrigir uma instalação com npm 12](#fix-an-npm-12-install).

1003 997 

1004**Problemas de detecção de SO ou plataforma.** Se npm relatar uma incompatibilidade de plataforma durante a instalação, WSL provavelmente está pegando o `npm` do Windows. Execute `npm config set os linux` primeiro, depois instale com `npm install -g @anthropic-ai/claude-code --force`. Não use `sudo`.998**Problemas de detecção de SO ou plataforma.** Se npm relatar uma incompatibilidade de plataforma durante a instalação, execute `npm config set os linux` primeiro, depois instale com `npm install -g @anthropic-ai/claude-code@latest --force`. Não use `sudo`.

1005 999 

1006**`exec: node: not found` ao executar `claude`.** Seu ambiente WSL provavelmente está usando a instalação do Windows do Node.js. Confirme com `which npm` e `which node`: caminhos começando com `/mnt/c/` são binários do Windows, enquanto caminhos Linux começam com `/usr/`. Para corrigir isso, instale Node via gerenciador de pacotes da sua distribuição Linux ou via [`nvm`](https://github.com/nvm-sh/nvm).1000**`exec: node: not found` ao executar `claude`.** Seu ambiente WSL provavelmente está usando a instalação do Windows do Node.js. Confirme com `which npm` e `which node`: caminhos começando com `/mnt/c/` são binários do Windows, enquanto caminhos Linux começam com `/usr/`. Para corrigir isso, instale Node via gerenciador de pacotes da sua distribuição Linux ou via [`nvm`](https://github.com/nvm-sh/nvm).

1007 1001 


1088 3. Reinstale:1082 3. Reinstale:

1089 1083 

1090 ```bash theme={null}1084 ```bash theme={null}

1091 npm install -g @anthropic-ai/claude-code1085 npm install -g @anthropic-ai/claude-code@latest

1092 ```1086 ```

1093 1087 

1094 Se isso ou a etapa 1 falhar com `EACCES`, mude para o instalador nativo em vez de executar novamente com `sudo`. O Claude Code executa o npm sem `sudo` quando se atualiza, então as atualizações automáticas falhariam da mesma forma.1088 Se isso ou a etapa 1 falhar com `EACCES`, mude para o instalador nativo em vez de executar novamente com `sudo`. O Claude Code executa o npm sem `sudo` quando se atualiza, então as atualizações automáticas falhariam da mesma forma.


1099 1093 

1100### npm `ENOTEMPTY` error during update or reinstall1094### npm `ENOTEMPTY` error during update or reinstall

1101 1095 

1102Quando você executa `npm install -g @anthropic-ai/claude-code` sobre uma instalação existente, npm pode falhar ao mover o diretório do pacote antigo para o lado:1096Quando você executa `npm install -g @anthropic-ai/claude-code@latest` sobre uma instalação existente, npm pode falhar ao mover o diretório do pacote antigo para o lado:

1103 1097 

1104```text theme={null}1098```text theme={null}

1105npm error code ENOTEMPTY1099npm error code ENOTEMPTY


1133Depois reinstale. No npm 12, siga [Corrigir uma instalação com npm 12](#fix-an-npm-12-install). Caso contrário, execute:1127Depois reinstale. No npm 12, siga [Corrigir uma instalação com npm 12](#fix-an-npm-12-install). Caso contrário, execute:

1134 1128 

1135```bash theme={null}1129```bash theme={null}

1136npm install -g @anthropic-ai/claude-code1130npm install -g @anthropic-ai/claude-code@latest

1137```1131```

1138 1132 

1139Confirme com `claude --version`, que imprime um número de versão como `2.1.211 (Claude Code)`.1133Confirme com `claude --version`, que imprime um número de versão como `2.1.211 (Claude Code)`.

Details

152> apk add ripgrep152> apk add ripgrep

153> ```153> ```

154>154>

155> `ripgrep` está no repositório community do Alpine. Se `apk` relatar que o pacote está faltando, veja [Alpine Linux setup](https://code.claude.com/docs/pt/setup.md#alpine-linux-and-musl-based-distributions).155> `ripgrep` está no repositório community do Alpine.

156 156 

157> [tab] Arch157> [tab] Arch

158>158>

vs-code.md +10 −0

Details

202 Os blocos de pensamento que você já tem permanecem vazios. Nas respostas após o recarregamento, clique em um bloco ou pressione `Ctrl+O` para expandir todos eles.202 Os blocos de pensamento que você já tem permanecem vazios. Nas respostas após o recarregamento, clique em um bloco ou pressione `Ctrl+O` para expandir todos eles.

203* **Entrada de várias linhas**: pressione `Shift+Enter` para adicionar uma nova linha sem enviar. Isso também funciona na entrada de texto livre "Other" das caixas de diálogo de perguntas.203* **Entrada de várias linhas**: pressione `Shift+Enter` para adicionar uma nova linha sem enviar. Isso também funciona na entrada de texto livre "Other" das caixas de diálogo de perguntas.

204 204 

205### Usar ou desativar prompts sugeridos

206 

207Depois que o Claude responde, o painel pode mostrar um próximo prompt sugerido como texto cinza em itálico na caixa de prompt vazia. Cada sugestão usa uma [requisição curta em segundo plano](https://code.claude.com/docs/pt/interactive-mode.md#prompt-suggestions) que conta para os limites de uso do seu plano ou para os custos de API.

208 

209* **Usar a sugestão**: pressione `Tab` para transformá-la em texto editável e, em seguida, envie-o. Pressionar `Enter` antes de aceitá-la não envia a sugestão.

210* **Escrever seu próprio prompt**: comece a digitar, o que oculta a sugestão.

211 

212Para desativar as sugestões, defina [`promptSuggestionEnabled`](https://code.claude.com/docs/pt/settings-reference#promptsuggestionenabled) como `false` em `~/.claude/settings.json`. Você deixa de vê-las em novas conversas, ou nas conversas abertas depois de executar **Developer: Reload Window** pela Command Palette. Se você definiu [`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](https://code.claude.com/docs/pt/env-vars) como `true`, altere-a para `false` onde a definiu; caso contrário, continuará vendo sugestões.

213 

205### Referenciar arquivos e pastas214### Referenciar arquivos e pastas

206 215 

207Use @-menções para dar ao Claude contexto sobre arquivos ou pastas específicos. Quando você digita `@` seguido do nome de um arquivo ou pasta, o Claude lê esse conteúdo e pode responder a perguntas sobre ele ou fazer alterações nele. O Claude Code oferece suporte a correspondência aproximada, então você pode digitar nomes parciais para encontrar o que precisa:216Use @-menções para dar ao Claude contexto sobre arquivos ou pastas específicos. Quando você digita `@` seguido do nome de um arquivo ou pasta, o Claude lê esse conteúdo e pode responder a perguntas sobre ele ou fazer alterações nele. O Claude Code oferece suporte a correspondência aproximada, então você pode digitar nomes parciais para encontrar o que precisa:


936| `SSL certificate verification failed` ou `Self-signed certificate detected` | [Erros de certificado SSL](https://code.claude.com/docs/pt/errors.md#ssl-certificate-errors) |945| `SSL certificate verification failed` ou `Self-signed certificate detected` | [Erros de certificado SSL](https://code.claude.com/docs/pt/errors.md#ssl-certificate-errors) |

937| `Dictation error: WebSocket error:` seguido de um erro de certificado como `unable to get local issuer certificate`, ou `Remote server is not connected` na aba Web | [O ditado ou a aba Web falha atrás de um proxy com inspeção TLS](#dictation-or-the-web-tab-fails-behind-a-tls-inspecting-proxy) |946| `Dictation error: WebSocket error:` seguido de um erro de certificado como `unable to get local issuer certificate`, ou `Remote server is not connected` na aba Web | [O ditado ou a aba Web falha atrás de um proxy com inspeção TLS](#dictation-or-the-web-tab-fails-behind-a-tls-inspecting-proxy) |

938| `Claude Code process exited with code 1`, ou outro código | [Claude Code process exited with code N](https://code.claude.com/docs/pt/errors.md#claude-code-process-exited-with-code-n) |947| `Claude Code process exited with code 1`, ou outro código | [Claude Code process exited with code N](https://code.claude.com/docs/pt/errors.md#claude-code-process-exited-with-code-n) |

948| `Claude Code did not finish starting` ou `Subprocess initialization did not complete within 60000ms` | [Subprocess initialization did not complete within 60000ms](https://code.claude.com/docs/pt/errors.md#subprocess-initialization-did-not-complete-within-60000ms) |

939| `Could not locate the Claude CLI on PATH` | [Could not locate the Claude CLI on PATH](https://code.claude.com/docs/pt/errors.md#could-not-locate-the-claude-cli-on-path) |949| `Could not locate the Claude CLI on PATH` | [Could not locate the Claude CLI on PATH](https://code.claude.com/docs/pt/errors.md#could-not-locate-the-claude-cli-on-path) |

940| `The connection to Claude Code ended before this message completed` | [The connection to Claude Code ended before this message completed](https://code.claude.com/docs/pt/errors.md#the-connection-to-claude-code-ended-before-this-message-completed) |950| `The connection to Claude Code ended before this message completed` | [The connection to Claude Code ended before this message completed](https://code.claude.com/docs/pt/errors.md#the-connection-to-claude-code-ended-before-this-message-completed) |

941| `The Claude Code program for this computer, the <build> build, could not be found` | [The Claude Code program for this computer could not be found](https://code.claude.com/docs/pt/errors.md#the-claude-code-program-for-this-computer-could-not-be-found) |951| `The Claude Code program for this computer, the <build> build, could not be found` | [The Claude Code program for this computer could not be found](https://code.claude.com/docs/pt/errors.md#the-claude-code-program-for-this-computer-could-not-be-found) |

workflows.md +0 −2

Details

75| :- | :- |75| :- | :- |

76| `/deep-research <question>` | Distribui buscas na web em uma pergunta em vários ângulos, busca e verifica cruzadamente as fontes que encontra, vota em cada afirmação e retorna um relatório citado com afirmações que não sobreviveram à verificação cruzada filtradas. Requer que a [ferramenta WebSearch](https://code.claude.com/docs/pt/tools-reference.md#websearch-tool-behavior) esteja disponível |76| `/deep-research <question>` | Distribui buscas na web em uma pergunta em vários ângulos, busca e verifica cruzadamente as fontes que encontra, vota em cada afirmação e retorna um relatório citado com afirmações que não sobreviveram à verificação cruzada filtradas. Requer que a [ferramenta WebSearch](https://code.claude.com/docs/pt/tools-reference.md#websearch-tool-behavior) esteja disponível |

77 77 

78`/deep-research` é executado apenas quando você o invoca.

79 

80[Workflows que você salva](#save-the-workflow-for-reuse) você mesmo se tornam comandos da mesma forma e aparecem na autocompletar `/` junto com os agrupados.78[Workflows que você salva](#save-the-workflow-for-reuse) você mesmo se tornam comandos da mesma forma e aparecem na autocompletar `/` junto com os agrupados.

81 79 

82### Acompanhar a execução80### Acompanhar a execução