SpyBara
Go Premium

Documentation 2026-11-09 23:02 UTC to 2026-11-10 21:57 UTC

82 files changed +922 −624. View all changes and history on the product overview
2026
Thu 12 21:00 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

advisor.md +1 −1

Details

160* **Faturamento por API**: você paga as taxas de entrada e saída do modelo advisor para tokens do advisor160* **Faturamento por API**: você paga as taxas de entrada e saída do modelo advisor para tokens do advisor

161* **Planos de assinatura**: o uso do advisor conta para os limites de uso do seu plano, exceto que um advisor Fable é cobrado em [créditos de uso](https://code.claude.com/docs/pt/model-config.md#fable-and-usage-credits) em planos onde o uso de Fable o faz161* **Planos de assinatura**: o uso do advisor conta para os limites de uso do seu plano, exceto que um advisor Fable é cobrado em [créditos de uso](https://code.claude.com/docs/pt/model-config.md#fable-and-usage-credits) em planos onde o uso de Fable o faz

162 162 

163Se sua conta exigir o consentimento de créditos de uso, um advisor Fable não cobra nada antes de você concedê-lo, porque Claude Code [não aplica a seleção](#fable-advisor-and-usage-credits) até então.163Para saber como um advisor Fable funciona com créditos de uso, veja [Advisor Fable e créditos de uso](#fable-advisor-and-usage-credits).

164 164 

165Claude chama o advisor em pontos de decisão em vez de em cada turno, então emparelhar um modelo principal mais rápido com um advisor mais forte tipicamente custa menos que executar o modelo mais forte em toda parte. O uso do advisor conta para os totais da sessão mostrados por [`/usage`](https://code.claude.com/docs/pt/costs#track-your-costs).165Claude chama o advisor em pontos de decisão em vez de em cada turno, então emparelhar um modelo principal mais rápido com um advisor mais forte tipicamente custa menos que executar o modelo mais forte em toda parte. O uso do advisor conta para os totais da sessão mostrados por [`/usage`](https://code.claude.com/docs/pt/costs#track-your-costs).

166 166 

Details

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

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

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

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

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

252 252 

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

Details

189 ...process.env,189 ...process.env,

190 // ... exporter configuration from the Enable telemetry export example ...190 // ... exporter configuration from the Enable telemetry export example ...

191 OTEL_SERVICE_NAME: "support-triage-agent",191 OTEL_SERVICE_NAME: "support-triage-agent",

192 OTEL_RESOURCE_ATTRIBUTES":192 OTEL_RESOURCE_ATTRIBUTES:

193 "service.version=1.4.0,deployment.environment=production",193 "service.version=1.4.0,deployment.environment=production",

194 },194 },

195};195};

Details

1858 1858 

1859### `TaskStartedMessage`1859### `TaskStartedMessage`

1860 1860 

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

1862 1862 

1863```python theme={null}1863```python theme={null}

1864@dataclass1864@dataclass


1878| `uuid` | `str` | Identificador único de mensagem |1878| `uuid` | `str` | Identificador único de mensagem |

1879| `session_id` | `str` | Identificador de sessão |1879| `session_id` | `str` | Identificador de sessão |

1880| `tool_use_id` | `str \| None` | ID de uso de ferramenta associado |1880| `tool_use_id` | `str \| None` | ID de uso de ferramenta associado |

1881| `task_type` | `str \| None` | Que tipo de tarefa em segundo plano: `"local_bash"` para Bash em segundo plano e watches de Monitor, `"local_agent"`, ou `"remote_agent"` |1881| `task_type` | `str \| None` | Que tipo de tarefa em segundo plano, como `"local_bash"` para Bash em segundo plano e watches de Monitor, `"local_agent"` para subagentes, `"mcp_task"` para [chamadas de ferramenta MCP em segundo plano](https://code.claude.com/docs/pt/mcp.md#automatic-backgrounding-of-long-tool-calls), ou `"remote_agent"` |

1882 1882 

1883### `TaskUsage`1883### `TaskUsage`

1884 1884 

Details

12 12 

13## Por que saídas estruturadas?13## Por que saídas estruturadas?

14 14 

15Agentes retornam texto livre por padrão, o que funciona para chat, mas não quando você precisa usar a saída programaticamente. Saídas estruturadas fornecem dados tipados que você pode passar diretamente para sua lógica de aplicação, banco de dados ou componentes de UI.15Os agentes retornam texto livre por padrão, o que funciona para chat, mas não quando você precisa usar a saída programaticamente. As saídas estruturadas fornecem dados tipados que você pode passar diretamente para a lógica da sua aplicação, banco de dados ou componentes de UI.

16 16 

17Considere um aplicativo de receitas onde um agente pesquisa a web e traz receitas. Sem saídas estruturadas, você obtém texto livre que precisaria analisar você mesmo. Com saídas estruturadas, você define a forma que deseja e obtém dados tipados que pode usar diretamente em seu aplicativo.17Considere um aplicativo de receitas em que um agente pesquisa na web e traz receitas. Sem saídas estruturadas, você recebe texto livre que precisaria analisar por conta própria. Com saídas estruturadas, você define o formato desejado e obtém dados tipados que pode usar diretamente no seu aplicativo.

18 18 

19> [accordion] Sem saídas estruturadas19> [accordion] Sem saídas estruturadas

20>20>

21> ```text theme={null}21> ```text theme={null}

22> Aqui está uma receita clássica de biscoito com gotas de chocolate!22> Here's a classic chocolate chip cookie recipe!

23>23>

24> **Biscoitos com Gotas de Chocolate**24> **Chocolate Chip Cookies**

25> Tempo de preparo: 15 minutos | Tempo de cozimento: 10 minutos25> Prep time: 15 minutes | Cook time: 10 minutes

26>26>

27> Ingredientes:27> Ingredients:

28> - 2 1/4 xícaras de farinha de trigo28> - 2 1/4 cups all-purpose flour

29> - 1 xícara de manteiga, amolecida29> - 1 cup butter, softened

30> ...30> ...

31> ```31> ```

32>32>

33> Para usar isso em seu aplicativo, você precisaria analisar o título, converter "15 minutos" em um número, separar ingredientes de instruções e lidar com formatação inconsistente entre respostas.33> Para usar isso no seu aplicativo, você precisaria extrair o título, converter "15 minutes" em um número, separar os ingredientes das instruções e lidar com formatação inconsistente entre as respostas.

34 34 

35> [accordion] Com saídas estruturadas35> [accordion] Com saídas estruturadas

36>36>

37> ```jsonc theme={null}37> ```jsonc theme={null}

38> {38> {

39> "name": "Biscoitos com Gotas de Chocolate",39> "name": "Chocolate Chip Cookies",

40> "prep_time_minutes": 15,40> "prep_time_minutes": 15,

41> "cook_time_minutes": 10,41> "cook_time_minutes": 10,

42> "ingredients": [42> "ingredients": [

43> { "item": "farinha de trigo", "amount": 2.25, "unit": "xícaras" },43> { "item": "all-purpose flour", "amount": 2.25, "unit": "cups" },

44> { "item": "manteiga, amolecida", "amount": 1, "unit": "xícara" }44> { "item": "butter, softened", "amount": 1, "unit": "cup" }

45> // ...45> // ...

46> ],46> ],

47> "steps": ["Preaqueça o forno a 375°F", "Misture manteiga e açúcar" /* ... */]47> "steps": ["Preheat oven to 375°F", "Cream butter and sugar" /* ... */]

48> }48> }

49> ```49> ```

50>50>

51> Dados tipados que você pode usar diretamente em sua UI.51> Dados tipados que você pode usar diretamente na sua UI.

52 52 

53## Início rápido53## Início rápido

54 54 


81 }81 }

82 })) {82 })) {

83 // A mensagem de resultado contém structured_output com dados validados83 // A mensagem de resultado contém structured_output com dados validados

84 if (message.type === "result" && message.subtype === "success" && message.structured_output) {84 if (message.type === "result" && message.subtype === "success" && !message.is_error && message.structured_output) {

85 console.log(message.structured_output);85 console.log(message.structured_output);

86 // { company_name: "Anthropic", founded_year: 2021, headquarters: "San Francisco, CA" }86 // { company_name: "Anthropic", founded_year: 2021, headquarters: "San Francisco, CA" }

87 }87 }


118 ),118 ),

119 ):119 ):

120 # A mensagem de resultado contém structured_output com dados validados120 # A mensagem de resultado contém structured_output com dados validados

121 if isinstance(message, ResultMessage) and message.structured_output:121 if (

122 isinstance(message, ResultMessage)

123 and not message.is_error

124 and message.structured_output

125 ):

122 print(message.structured_output)126 print(message.structured_output)

123 # {'company_name': 'Anthropic', 'founded_year': 2021, 'headquarters': 'San Francisco, CA'}127 # {'company_name': 'Anthropic', 'founded_year': 2021, 'headquarters': 'San Francisco, CA'}

124 except Exception as error:128 except Exception as error:


173 }177 }

174 }178 }

175 })) {179 })) {

176 if (message.type === "result" && message.subtype === "success" && message.structured_output) {180 if (message.type === "result" && message.subtype === "success" && !message.is_error && message.structured_output) {

177 // Valide e obtenha resultado totalmente tipado181 // Valide e obtenha resultado totalmente tipado

178 const parsed = FeaturePlan.safeParse(message.structured_output);182 const parsed = FeaturePlan.safeParse(message.structured_output);

179 if (parsed.success) {183 if (parsed.success) {


223 }227 }

224 ),228 ),

225 ):229 ):

226 if isinstance(message, ResultMessage) and message.structured_output:230 if (

231 isinstance(message, ResultMessage)

232 and not message.is_error

233 and message.structured_output

234 ):

227 # Valide e obtenha resultado totalmente tipado235 # Valide e obtenha resultado totalmente tipado

228 plan = FeaturePlan.model_validate(message.structured_output)236 plan = FeaturePlan.model_validate(message.structured_output)

229 print(f"Feature: {plan.feature_name}")237 print(f"Feature: {plan.feature_name}")


297 }305 }

298 }306 }

299 })) {307 })) {

300 if (message.type === "result" && message.subtype === "success" && message.structured_output) {308 if (message.type === "result" && message.subtype === "success" && !message.is_error && message.structured_output) {

301 const data = message.structured_output as { total_count: number; todos: Array<{ file: string; line: number; text: string; author?: string; date?: string }> };309 const data = message.structured_output as { total_count: number; todos: Array<{ file: string; line: number; text: string; author?: string; date?: string }> };

302 console.log(`Found ${data.total_count} TODOs`);310 console.log(`Found ${data.total_count} TODOs`);

303 data.todos.forEach((todo) => {311 data.todos.forEach((todo) => {


352 output_format={"type": "json_schema", "schema": todo_schema}360 output_format={"type": "json_schema", "schema": todo_schema}

353 ),361 ),

354 ):362 ):

355 if isinstance(message, ResultMessage) and message.structured_output:363 if (

364 isinstance(message, ResultMessage)

365 and not message.is_error

366 and message.structured_output

367 ):

356 data = message.structured_output368 data = message.structured_output

357 print(f"Found {data['total_count']} TODOs")369 print(f"Found {data['total_count']} TODOs")

358 for todo in data["todos"]:370 for todo in data["todos"]:


383 395 

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

385 397 

386Quando um erro ocorre, a mensagem de resultado tem um `subtype` indicando o que deu errado:398Verifique o `subtype` da mensagem de resultado:

387 399 

388| Subtype | Significado |400| Subtype | Significado |

389| - | - |401| - | - |

390| `success` | Saída foi gerada e validada com sucesso |402| `success` | A execução terminou sem um subtype de erro |

391| `error_max_structured_output_retries` | Nenhuma saída válida sobreviveu após múltiplas tentativas (falhas de validação, ou uma retração de fallback de modelo sem tentativa bem-sucedida) |403| `error_max_structured_output_retries` | Nenhuma saída válida sobreviveu após múltiplas tentativas (falhas de validação, ou uma retração de fallback de modelo sem tentativa bem-sucedida) |

392 404 

393Um resultado também pode terminar com subtype `success` mas sem valor `structured_output`, por exemplo quando a execução é concluída sem o agente produzir uma saída estruturada. Trate esse caso como uma falha também. A entrada de troubleshooting [structured\_output is None but the result says success](https://code.claude.com/docs/pt/agent-sdk/troubleshooting.md#structured_output-is-none-but-the-result-says-success) cobre esse caso. O exemplo abaixo trata um resultado como bem-sucedido apenas quando o `subtype` é `success` e `structured_output` está presente, e trata todos os outros resultados como uma falha:405Um subtype `success` não significa por si só que a execução produziu uma resposta. Trate um resultado como uma falha quando o `is_error` do resultado for `true` ou `structured_output` estiver ausente:

406 

407* **`is_error` no resultado é `true`**: por exemplo, a requisição final ao modelo terminou em um erro de API ou em uma recusa. Não use um valor `structured_output` em tal resultado.

408* **`structured_output` está ausente**: para encontrar a causa, consulte [structured\_output is None but the result says success](https://code.claude.com/docs/pt/agent-sdk/troubleshooting.md#structured_output-is-none-but-the-result-says-success)

409 

410O exemplo abaixo aplica essas verificações:

394 411 

395```typescript TypeScript theme={null}412```typescript TypeScript theme={null}

396import { query } from "@anthropic-ai/claude-agent-sdk";413import { query } from "@anthropic-ai/claude-agent-sdk";


415 }432 }

416 })) {433 })) {

417 if (msg.type === "result") {434 if (msg.type === "result") {

418 if (msg.subtype === "success" && msg.structured_output) {435 if (msg.subtype === "success" && !msg.is_error && msg.structured_output) {

419 // Use the validated output436 // Use the validated output

420 console.log(msg.structured_output);437 console.log(msg.structured_output);

421 } else if (msg.subtype === "error_max_structured_output_retries") {438 } else if (msg.subtype === "error_max_structured_output_retries") {

422 console.error("Could not produce valid output");439 console.error("Could not produce valid output");

423 } else {440 } else {

424 console.error("Run ended without a structured output");441 console.error("Run ended with an error or without a structured output");

425 }442 }

426 }443 }

427 }444 }


456 ),473 ),

457 ):474 ):

458 if isinstance(message, ResultMessage):475 if isinstance(message, ResultMessage):

459 if message.subtype == "success" and message.structured_output:476 if (

477 message.subtype == "success"

478 and not message.is_error

479 and message.structured_output

480 ):

460 # Use the validated output481 # Use the validated output

461 print(message.structured_output)482 print(message.structured_output)

462 elif message.subtype == "error_max_structured_output_retries":483 elif message.subtype == "error_max_structured_output_retries":

463 print("Could not produce valid output")484 print("Could not produce valid output")

464 else:485 else:

465 print("Run ended without a structured output")486 print("Run ended with an error or without a structured output")

466 except Exception as error:487 except Exception as error:

467 # A single-shot query() raises after yielding an error result. If the488 # A single-shot query() raises after yielding an error result. If the

468 # failure was an error result, the error subtype branches above have489 # failure was an error result, the error subtype branches above have

Details

142 142 

143Uma mensagem de resultado pode terminar com `subtype: "success"` enquanto `structured_output` é `None` em Python ou `undefined` em TypeScript. A execução é concluída, mas nenhuma saída validada existe.143Uma mensagem de resultado pode terminar com `subtype: "success"` enquanto `structured_output` é `None` em Python ou `undefined` em TypeScript. A execução é concluída, mas nenhuma saída validada existe.

144 144 

145Trate este resultado como uma falha no código da aplicação. Verifique se `subtype` é `success` e se `structured_output` está presente antes de usá-lo. A seção [Error handling](https://code.claude.com/docs/pt/agent-sdk/structured-outputs.md#error-handling) mostra este padrão para ambos os SDKs. Em seguida, verifique estas causas:145Trate este resultado como uma falha no código da aplicação. A seção [Error handling](https://code.claude.com/docs/pt/agent-sdk/structured-outputs.md#error-handling) mostra este padrão para ambos os SDKs. Em seguida, verifique estas causas:

146 146 

147* **Uma requisição que Claude recusou**: para detectar este caso no seu código, verifique se o `stop_reason` da mensagem de resultado é `"refusal"`. Para saber o que tentar em seguida, consulte [Usage Policy refusal](https://code.claude.com/docs/pt/errors.md#usage-policy-refusal).147* **Uma requisição que Claude recusou**: para detectar este caso no seu código, verifique se o `stop_reason` da mensagem de resultado é `"refusal"`. Para saber o que tentar em seguida, consulte [Usage Policy refusal](https://code.claude.com/docs/pt/errors.md#usage-policy-refusal).

148* **Um esquema que nenhuma saída pode satisfazer**: por exemplo, uma string cujo `minLength` é maior que seu `maxLength`. Se `structured_output` estiver ausente repetidamente com um esquema que você acredita estar correto, procure restrições que se contradizem. Se não encontrar nenhuma, simplifique o esquema até que as saídas sejam validadas e, em seguida, reintroduza suas restrições uma de cada vez.148* **Um esquema que nenhuma saída pode satisfazer**: por exemplo, uma string cujo `minLength` é maior que seu `maxLength`. Se `structured_output` estiver ausente repetidamente com um esquema que você acredita estar correto, procure restrições que se contradizem. Se não encontrar nenhuma, simplifique o esquema até que as saídas sejam validadas e, em seguida, reintroduza suas restrições uma de cada vez.

Details

1923| `extra_usage_disabled` | Créditos de uso estão desativados para a conta |1923| `extra_usage_disabled` | Créditos de uso estão desativados para a conta |

1924| `network_error` | A [verificação de disponibilidade](https://code.claude.com/docs/pt/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) não conseguiu alcançar `api.anthropic.com` |1924| `network_error` | A [verificação de disponibilidade](https://code.claude.com/docs/pt/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) não conseguiu alcançar `api.anthropic.com` |

1925| `unknown` | Claude Code não conseguiu determinar a disponibilidade |1925| `unknown` | Claude Code não conseguiu determinar a disponibilidade |

1926| `not_first_party` | A sessão usa um provedor diferente da API Anthropic |1926| `not_first_party` | A sessão usa um provedor que não oferece o modo rápido |

1927| `disabled_by_env` | [`CLAUDE_CODE_DISABLE_FAST_MODE`](https://code.claude.com/docs/pt/env-vars) está definido |1927| `disabled_by_env` | [`CLAUDE_CODE_DISABLE_FAST_MODE`](https://code.claude.com/docs/pt/env-vars) está definida, ou a região do modelo na [Agent Platform do Google Cloud](https://code.claude.com/docs/pt/fast-mode.md#use-fast-mode-on-agent-platform) não oferece o modo rápido |

1928| `model_not_allowed` | O modelo Opus do modo rápido não está na allowlist [`availableModels`](https://code.claude.com/docs/pt/model-config#restrict-model-selection) da organização |1928| `model_not_allowed` | O modelo do modo rápido não está na allowlist [`availableModels`](https://code.claude.com/docs/pt/model-config#restrict-model-selection) da organização, ou o provedor recusou o modo rápido para o modelo da sessão |

1929| `sdk_opt_in_required` | A sessão não optou pelo modo rápido: passe `fastMode: true` na opção [`settings`](#options) ou através de [`applyFlagSettings()`](#applyflagsettings) |1929| `sdk_opt_in_required` | A sessão não optou pelo modo rápido: passe `fastMode: true` na opção [`settings`](#options) ou através de [`applyFlagSettings()`](#applyflagsettings) |

1930| `pending` | A verificação de disponibilidade ainda não foi concluída |1930| `pending` | A verificação de disponibilidade ainda não foi concluída |

1931 1931 


2007 2007 

2008#### `startup_failure_reason`2008#### `startup_failure_reason`

2009 2009 

2010Por que Claude Code se recusou a iniciar, para que sua aplicação possa oferecer a correção em vez de uma nova tentativa. Claude Code o define no resultado `error_during_execution` que escreve antes de sair em uma falha de inicialização conhecida. Esse resultado carrega totais zerados, e seu array `errors` carrega o mesmo texto que stderr. O campo está ausente em todos os outros resultados. Requer Agent SDK v0.3.274 ou posterior.2010Por que o Claude Code se recusou a iniciar, para que sua aplicação possa oferecer a correção em vez de uma nova tentativa. O Claude Code o define no resultado `error_during_execution` que escreve antes de sair devido a uma falha de inicialização conhecida. Esse resultado carrega totais zerados, e seu array `errors` carrega a mensagem de falha. O campo está ausente em todos os outros resultados. Requer o Agent SDK v0.3.274 ou posterior.

2011 2011 

2012Defina `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` como `1` em [`env`](#options) para receber este resultado para cada valor de `SDKStartupFailureReason`. Sem essa variável, Claude Code escreve o resultado apenas para estas falhas, e as demais terminam com saída em stderr, um código de saída diferente de zero e nenhuma mensagem de resultado:2012Defina `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` como `1` em [`env`](#options) para receber este resultado para cada valor de `SDKStartupFailureReason`. Sem essa variável, Claude Code escreve o resultado apenas para estas falhas, e as demais terminam com saída em stderr, um código de saída diferente de zero e nenhuma mensagem de resultado:

2013 2013 


5711 5711 

5712### `SDKTaskStartedMessage`5712### `SDKTaskStartedMessage`

5713 5713 

5714Emitida quando uma tarefa começa. O campo `task_type` é `"local_bash"` para comandos Bash e observações do [Monitor](#monitor), `"local_agent"` para subagentes, ou `"remote_agent"`.5714Emitida quando uma tarefa começa. `task_type` nomeia o tipo de tarefa, como `"local_bash"` para comandos Bash e observações do [Monitor](#monitor), `"local_agent"` para subagentes, `"mcp_task"` para [chamadas de ferramenta MCP em segundo plano](https://code.claude.com/docs/pt/mcp.md#automatic-backgrounding-of-long-tool-calls), ou `"remote_agent"`.

5715 5715 

5716```typescript theme={null}5716```typescript theme={null}

5717type SDKTaskStartedMessage = {5717type SDKTaskStartedMessage = {


5920 errorCode?: "credits_required";5920 errorCode?: "credits_required";

5921 canUserPurchaseCredits?: boolean;5921 canUserPurchaseCredits?: boolean;

5922 hasChargeableSavedPaymentMethod?: boolean;5922 hasChargeableSavedPaymentMethod?: boolean;

5923 overageEnabled?: boolean;

5923 };5924 };

5924 uuid: UUID;5925 uuid: UUID;

5925 session_id: string;5926 session_id: string;


5928 5929 

5929Quando `errorCode` é `"credits_required"`, a rejeição vem de uma assinatura do claude.ai cujo uso incluído se esgotou, e a sessão não pode continuar até que o usuário compre créditos de uso. `canUserPurchaseCredits` indica se o usuário autenticado pode comprar créditos para a conta, e `hasChargeableSavedPaymentMethod` indica se há um método de pagamento salvo registrado. Os três campos ficam ausentes em eventos de rate limit que não são rejeições por exigência de créditos. Requer Claude Code v2.1.181 ou posterior.5930Quando `errorCode` é `"credits_required"`, a rejeição vem de uma assinatura do claude.ai cujo uso incluído se esgotou, e a sessão não pode continuar até que o usuário compre créditos de uso. `canUserPurchaseCredits` indica se o usuário autenticado pode comprar créditos para a conta, e `hasChargeableSavedPaymentMethod` indica se há um método de pagamento salvo registrado. Os três campos ficam ausentes em eventos de rate limit que não são rejeições por exigência de créditos. Requer Claude Code v2.1.181 ou posterior.

5930 5931 

5932Em um aviso sobre um limite de uso do plano, em que `status` é `"allowed_warning"`, `overageEnabled` informa se a conta tem [créditos de uso](https://code.claude.com/docs/pt/costs.md#add-usage-credits-to-your-subscription) ativados. Requer Claude Code v2.1.295 ou posterior.

5933 

5931### `SDKLocalCommandOutputMessage`5934### `SDKLocalCommandOutputMessage`

5932 5935 

5933O Claude Code não emite este tipo de mensagem. Quando você envia um comando como `/context` ou `/usage` como prompt, a saída dele chega como uma [`SDKAssistantMessage`](#sdkassistantmessage).5936O Claude Code não emite este tipo de mensagem. Quando você envia um comando como `/context` ou `/usage` como prompt, a saída dele chega como uma [`SDKAssistantMessage`](#sdkassistantmessage).

Details

647 647 

648 648 

649def parse_response(response: str, options: list) -> str:649def parse_response(response: str, options: list) -> str:

650 """Analise a entrada do usuário como número(s) de opção ou texto livre."""650 """Parse user input as option number(s) or free text."""

651 try:651 try:

652 indices = [int(s.strip()) - 1 for s in response.split(",")]652 indices = [int(s.strip()) - 1 for s in response.split(",")]

653 labels = [options[i]["label"] for i in indices if 0 <= i < len(options)]653 labels = [options[i]["label"] for i in indices if 0 <= i < len(options)]


657 657 

658 658 

659async def handle_ask_user_question(input_data: dict) -> PermissionResultAllow:659async def handle_ask_user_question(input_data: dict) -> PermissionResultAllow:

660 """Exiba as perguntas do Claude e colete respostas do usuário."""660 """Display Claude's questions and collect user answers."""

661 answers = {}661 answers = {}

662 662 

663 for q in input_data.get("questions", []):663 for q in input_data.get("questions", []):

agent-teams.md +15 −15

Details

8 8 

9> [!WARNING]9> [!WARNING]

10>10>

11> Equipes de agentes são experimentais e desabilitadas por padrão. Ative-as definindo `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` no seu [settings.json](https://code.claude.com/docs/pt/settings.md) ou ambiente. Sem essa variável, nenhuma equipe é configurada no início da sessão, nenhum diretório de equipe é escrito, e Claude não gera ou propõe companheiros de equipe. Equipes de agentes têm [limitações conhecidas](#limitations) em torno de retomada de sessão, coordenação de tarefas e comportamento de encerramento.11> Equipes de agentes são experimentais e desabilitadas por padrão. Ative-as definindo `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` no seu [settings.json](https://code.claude.com/docs/pt/settings.md) ou ambiente. Equipes de agentes têm [limitações conhecidas](#limitations) em torno de retomada de sessão, coordenação de tarefas e comportamento de encerramento.

12 12 

13Equipes de agentes permitem que você coordene múltiplas instâncias Claude Code trabalhando juntas. Uma sessão atua como o líder da equipe, coordenando o trabalho, atribuindo tarefas e sintetizando resultados. Os companheiros de equipe trabalham independentemente, cada um em sua própria context window, e se comunicam diretamente uns com os outros. Você também pode conversar com qualquer companheiro de equipe diretamente sem passar pelo líder.13Equipes de agentes permitem que você coordene múltiplas instâncias Claude Code trabalhando juntas. Uma sessão atua como o líder da equipe, coordenando o trabalho, atribuindo tarefas e sintetizando resultados. Os companheiros de equipe trabalham independentemente, cada um em sua própria context window, e se comunicam diretamente uns com os outros. Você também pode conversar com qualquer companheiro de equipe diretamente sem passar pelo líder.

14 14 


255 255 

256A configuração da equipe contém estado de tempo de execução, como IDs de sessão e IDs de painel tmux, portanto não a edite manualmente ou a crie previamente: suas alterações são sobrescritas na próxima atualização de estado.256A configuração da equipe contém estado de tempo de execução, como IDs de sessão e IDs de painel tmux, portanto não a edite manualmente ou a crie previamente: suas alterações são sobrescritas na próxima atualização de estado.

257 257 

258Para definir papéis de companheiros de equipe reutilizáveis, use [definições de subagent](#use-subagent-definitions-for-teammates) em vez disso.258Para definir papéis de companheiros de equipe reutilizáveis, use [definições de subagente](#use-subagent-definitions-for-teammates) em vez disso.

259 259 

260A configuração da equipe contém um array `members` com o nome de cada companheiro de equipe e ID do agente. A entrada do líder sempre carrega o tipo de agente `team-lead`. A entrada de um companheiro de equipe carrega qualquer tipo de agente que o líder nomeou ao gerá-lo, seja um [tipo integrado](https://code.claude.com/docs/pt/sub-agents.md#built-in-subagents) ou uma [definição de subagent](#use-subagent-definitions-for-teammates), e omite o campo quando o líder não nomeou nenhum. Os companheiros de equipe podem ler este arquivo para descobrir outros membros da equipe.260A configuração da equipe contém um array `members` com o nome de cada membro e ID do agente. A entrada do líder sempre carrega o tipo de agente `team-lead`. A entrada de um companheiro de equipe carrega qualquer tipo de agente que o líder nomeou ao gerá-lo, seja um [tipo integrado](https://code.claude.com/docs/pt/sub-agents.md#built-in-subagents) ou uma [definição de subagente](#use-subagent-definitions-for-teammates), e omite o campo quando o líder não nomeou nenhum. Os companheiros de equipe podem ler este arquivo para descobrir outros membros da equipe.

261 261 

262Não há equivalente em nível de projeto da configuração da equipe. Um arquivo como `.claude/teams/teams.json` no seu diretório de projeto não é reconhecido como configuração; Claude o trata como um arquivo ordinário.262Não há equivalente em nível de projeto da configuração da equipe. Um arquivo como `.claude/teams/teams.json` no seu diretório de projeto não é reconhecido como configuração; Claude o trata como um arquivo ordinário.

263 263 

264### Use subagent definitions for teammates264### Usar definições de subagente para companheiros de equipe

265 265 

266Ao gerar um companheiro de equipe em qualquer modo de exibição, você pode referenciar um tipo de [subagente](https://code.claude.com/docs/pt/sub-agents.md) do [escopo de subagente](https://code.claude.com/docs/pt/sub-agents.md#choose-the-subagent-scope) de projeto, usuário, gerenciado ou de plugin. Isso permite que você defina um papel uma vez, como um revisor de segurança ou executor de testes, e o reutilize tanto como um subagente delegado quanto como um companheiro de equipe de equipe de agentes.266Ao gerar um companheiro de equipe em qualquer modo de exibição, você pode referenciar um tipo de [subagente](https://code.claude.com/docs/pt/sub-agents.md) do [escopo de subagente](https://code.claude.com/docs/pt/sub-agents.md#choose-the-subagent-scope) de projeto, usuário, gerenciado ou de plugin. Isso permite que você defina um papel uma vez, como um revisor de segurança ou executor de testes, e o reutilize tanto como um subagente delegado quanto como um companheiro de equipe de equipe de agentes.

267 267 

268Para usar uma definição de subagent, mencione-a pelo nome ao pedir ao Claude para gerar o companheiro de equipe:268Para usar uma definição de subagente, mencione-a pelo nome ao pedir ao Claude para gerar o companheiro de equipe:

269 269 

270```text wrap theme={null}270```text wrap theme={null}

271Spawn a teammate using the security-reviewer agent type to audit the auth module.271Spawn a teammate using the security-reviewer agent type to audit the auth module.

272```272```

273 273 

274Claude Code lê a definição de subagent que você nomeou e aplica estas partes dela ao companheiro de equipe. Onde uma parte depende do [modo de exibição](#choose-a-display-mode) do companheiro de equipe, a entrada diz assim:274Claude Code lê a definição de subagente que você nomeou e aplica estas partes dela ao companheiro de equipe. Onde uma parte depende do [modo de exibição](#choose-a-display-mode) do companheiro de equipe, a entrada diz assim:

275 275 

276* **`tools`**: Claude Code limita o companheiro de equipe às ferramentas na lista `tools` da definição. Para um companheiro de equipe em processo, Claude Code adiciona `SendMessage` a essa lista, e em uma [sessão que tem as ferramentas Task](https://code.claude.com/docs/pt/tools-reference.md#task-tool-availability) ele também adiciona `TaskCreate`, `TaskGet`, `TaskList` e `TaskUpdate`.276* **`tools`**: Claude Code limita o companheiro de equipe às ferramentas na lista `tools` da definição. Para um companheiro de equipe em processo, Claude Code adiciona `SendMessage` a essa lista, e em uma [sessão que tem as ferramentas Task](https://code.claude.com/docs/pt/tools-reference.md#task-tool-availability) ele também adiciona `TaskCreate`, `TaskGet`, `TaskList` e `TaskUpdate`.

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

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

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

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

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

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

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

284 284 


307 307 

308#### Mensagens entre agentes308#### Mensagens entre agentes

309 309 

310Quando um agente envia uma mensagem para outro sobre `SendMessage`, Claude Code informa ao agente receptor que a mensagem veio de outra sessão Claude, não de você. Um companheiro de equipe não pode aprovar um prompt de permissão ou fornecer consentimento em seu nome, e um companheiro de equipe que foi negado uma ação não pode retransmiti-la para outro companheiro de equipe para contornar a verificação. As mesmas regras se aplicam a uma mensagem que chega de [uma de suas outras sessões Claude Code](https://code.claude.com/docs/pt/cross-session-messaging.md#how-a-session-treats-an-incoming-message), fora da equipe inteiramente.310Quando um agente envia uma mensagem para outro por meio de `SendMessage`, Claude Code informa ao agente receptor que a mensagem veio de outra sessão Claude, não de você. Um companheiro de equipe não pode aprovar um prompt de permissão ou fornecer consentimento em seu nome, e um companheiro de equipe que teve uma ação negada não pode retransmiti-la para outro companheiro de equipe para contornar a verificação. As mesmas regras se aplicam a uma mensagem que chega de [uma de suas outras sessões Claude Code](https://code.claude.com/docs/pt/cross-session-messaging.md#how-a-session-treats-an-incoming-message), inteiramente fora da equipe.

311 311 

312Em [modo automático](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode), o classificador aplica duas verificações a mensagens entre agentes:312No [modo auto](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode), o classificador aplica duas verificações a mensagens entre agentes:

313 313 

314* Ele trata uma reivindicação de aprovação retransmitida de outro agente como entrada não confiável em vez de confirmação de você.314* Ele trata uma reivindicação de aprovação retransmitida de outro agente como entrada não confiável em vez de confirmação sua.

315* Ele revisa cada mensagem antes que Claude Code a entregue, seja uma mensagem simples ou uma mensagem de protocolo estruturada, como uma solicitação de encerramento ou resposta de aprovação de plano. Uma mensagem que ele bloqueia nunca chega ao destinatário.315* Ele revisa cada mensagem antes que Claude Code a entregue, seja uma mensagem simples ou uma mensagem de protocolo estruturada, como uma solicitação de encerramento ou resposta de aprovação de plano. Uma mensagem que ele bloqueia nunca chega ao destinatário.

316 316 

317### Context e comunicação317### Contexto e comunicação

318 318 

319Cada companheiro de equipe tem sua própria context window. Quando gerado, um companheiro de equipe carrega o mesmo contexto de projeto que uma sessão regular: CLAUDE.md, MCP servers e skills. Se você iniciar o líder com [`--setting-sources`](https://code.claude.com/docs/pt/cli-reference#cli-flags), os companheiros de equipe carregam de uma lista restrita de fontes. Antes da v2.1.281, os companheiros de equipe em [painel dividido](#choose-a-display-mode) carregavam todas as fontes de configurações.319Cada companheiro de equipe tem sua própria janela de contexto. Quando gerado, um companheiro de equipe carrega o mesmo contexto de projeto que uma sessão regular: CLAUDE.md, servidores MCP e skills. Se você iniciar o líder com [`--setting-sources`](https://code.claude.com/docs/pt/cli-reference#cli-flags), os companheiros de equipe carregam da mesma lista restrita de fontes. Antes da v2.1.281, os companheiros de equipe em [painel dividido](#choose-a-display-mode) carregavam todas as fontes de configurações.

320 320 

321Um companheiro de equipe também recebe o prompt de geração do líder. O histórico de conversa do líder não é transferido.321Um companheiro de equipe também recebe o prompt de geração do líder. O histórico de conversa do líder não é transferido.

322 322 

323**Como os companheiros de equipe compartilham informações:**323**Como os companheiros de equipe compartilham informações:**

324 324 

325* **Entrega automática de mensagens**: quando os companheiros de equipe enviam mensagens, elas são entregues automaticamente aos destinatários. O líder não precisa fazer polling para atualizações.325* **Entrega automática de mensagens**: quando os companheiros de equipe enviam mensagens, elas são entregues automaticamente aos destinatários. O líder não precisa fazer polling para atualizações.

326* **Notificações de ociosidade**: quando um companheiro de equipe termina e para, ele notifica automaticamente o líder e inclui sua resposta final na notificação. Um companheiro de equipe cuja vez termina em um erro de API notifica o líder que falhou e inclui o texto do erro.326* **Notificações de ociosidade**: quando um companheiro de equipe termina e para, ele notifica automaticamente o líder e inclui sua resposta final na notificação. Um companheiro de equipe cujo turno termina em um erro de API notifica o líder que falhou e inclui o texto do erro.

327* **Lista de tarefas compartilhada**: [agentes que têm as ferramentas Task](https://code.claude.com/docs/pt/tools-reference.md#task-tool-availability) podem ver o status da tarefa e reivindicar trabalho disponível.327* **Lista de tarefas compartilhada**: [agentes que têm as ferramentas Task](https://code.claude.com/docs/pt/tools-reference.md#task-tool-availability) podem ver o status da tarefa e reivindicar trabalho disponível.

328* **Mensagens de companheiros de equipe**: envie uma mensagem para um companheiro de equipe específico pelo nome. Para alcançar todos, envie uma mensagem por destinatário.328* **Mensagens de companheiros de equipe**: envie uma mensagem para um companheiro de equipe específico pelo nome. Para alcançar todos, envie uma mensagem por destinatário.

329 329 


331 331 

332### Uso de tokens332### Uso de tokens

333 333 

334Equipes de agentes usam significativamente mais tokens do que uma única sessão. Cada companheiro de equipe tem sua própria context window, e o uso de tokens escala com o número de companheiros de equipe ativos. Para pesquisa, revisão e trabalho de novos recursos, os tokens extras geralmente valem a pena. Para tarefas rotineiras, uma única sessão é mais econômica. Veja [custos de token de equipe de agentes](https://code.claude.com/docs/pt/costs.md#agent-team-token-costs) para orientação de uso.334Equipes de agentes usam significativamente mais tokens do que uma única sessão. Cada companheiro de equipe tem sua própria janela de contexto, e o uso de tokens escala com o número de companheiros de equipe ativos. Para pesquisa, revisão e trabalho de novos recursos, os tokens extras geralmente valem a pena. Para tarefas rotineiras, uma única sessão é mais econômica. Veja [custos de token de equipe de agentes](https://code.claude.com/docs/pt/costs.md#agent-team-token-costs) para orientação de uso.

335 335 

336A solicitação de um companheiro de equipe em processo fica fora do [bucket TTL de cache da conversa principal](https://code.claude.com/docs/pt/prompt-caching.md#which-ttl-each-request-gets), portanto seu cache dura cinco minutos por padrão, inclusive em uma assinatura Claude. Para mantê-lo por uma hora, defina [`subagentPromptCacheTtl`](https://code.claude.com/docs/pt/settings-reference#subagentpromptcachettl) como `1h`. A API cobra gravações de cache de 1 hora a uma taxa mais alta.336As requisições de um companheiro de equipe em processo ficam fora do [bucket TTL de cache da conversa principal](https://code.claude.com/docs/pt/prompt-caching.md#which-ttl-each-request-gets), portanto seu cache dura cinco minutos por padrão, inclusive em uma assinatura Claude. Para mantê-lo por uma hora, defina [`subagentPromptCacheTtl`](https://code.claude.com/docs/pt/settings-reference#subagentpromptcachettl) como `1h`. A API cobra gravações de cache de 1 hora a uma taxa mais alta.

337 337 

338## Exemplos de casos de uso338## Exemplos de casos de uso

339 339 

agent-view.md +0 −2

Details

892 892 

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

894 894 

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

896 

897### Desativar a visualização de agentes895### Desativar a visualização de agentes

898 896 

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

Details

367| `ap-*` | `apac.` |367| `ap-*` | `apac.` |

368| Todas as outras regiões | `global.` |368| Todas as outras regiões | `global.` |

369 369 

370Defina `ANTHROPIC_BEDROCK_REGION_PREFIX` para escolher o prefixo que Claude Code tenta primeiro; quando Claude Code pode verificar a disponibilidade do perfil e não encontra um perfil correspondente para um modelo, ele volta conforme descrito na ordem de resolução abaixo. Os valores válidos são `us`, `eu`, `apac`, `jp`, `au` e `global`. Por exemplo, defina como `global` quando sua conta tem perfis `global.` habilitados, mas Claude Code derivaria um específico de uma geografia a partir de sua região AWS. Requer Claude Code v2.1.224 ou posterior.370Defina `ANTHROPIC_BEDROCK_REGION_PREFIX` para escolher o prefixo que Claude Code tenta primeiro. Os valores válidos são `us`, `eu`, `apac`, `jp`, `au` e `global`. Por exemplo, defina como `global` quando sua conta tem perfis `global.` habilitados, mas Claude Code derivaria um específico de uma geografia a partir de sua região AWS.

371 371 

372Este exemplo roteia os modelos padrão através de perfis `global.`:372Este exemplo roteia os modelos padrão através de perfis `global.`:

373 373 

artifacts.md +19 −2

Details

64| :- | :- |64| :- | :- |

65| A sessão está no [modo de planejamento](https://code.claude.com/docs/pt/permission-modes.md#analyze-before-you-edit-with-plan-mode) | Pergunta antes da primeira publicação de cada artefato |65| A sessão está no [modo de planejamento](https://code.claude.com/docs/pt/permission-modes.md#analyze-before-you-edit-with-plan-mode) | Pergunta antes da primeira publicação de cada artefato |

66| A publicação declara capacidades de tempo de execução para a página, como [chamadas de conector](#pull-live-data-with-mcp-connectors) ou [downloads de arquivo](#offer-a-file-download) | Pergunta antes dessa publicação |66| A publicação declara capacidades de tempo de execução para a página, como [chamadas de conector](#pull-live-data-with-mcp-connectors) ou [downloads de arquivo](#offer-a-file-download) | Pergunta antes dessa publicação |

67| Você compartilhou o artefato publicamente | Pergunta uma vez por conversa antes de alterá-lo |67| Você compartilhou o artefato publicamente | Pergunta uma vez por conversa antes de alterá-lo, e antes de cada resposta a um comentário nele |

68| Claude publica em um turno iniciado por uma [tarefa agendada com escopo de sessão](https://code.claude.com/docs/pt/scheduled-tasks.md) disparada em sua sessão, em vez de um prompt que você digitou | Pergunta antes da primeira publicação de cada artefato |68| Claude publica em um turno iniciado por uma [tarefa agendada com escopo de sessão](https://code.claude.com/docs/pt/scheduled-tasks.md) disparada em sua sessão, em vez de um prompt que você digitou | Pergunta antes da primeira publicação de cada artefato |

69| Claude não consegue ler o arquivo sem sua aprovação | Pergunta antes de publicá-lo. Uma regra de permissão para a ferramenta `Artifact` não ignora este prompt |69| Claude não consegue ler o arquivo sem sua aprovação | Pergunta antes de publicá-lo. Uma regra de permissão para a ferramenta `Artifact` não ignora este prompt |

70| No modo [Manual](https://code.claude.com/docs/pt/permission-modes.md) ou `acceptEdits`, Claude faz uma pequena alteração no arquivo de um artefato que não pode editar sem sua aprovação, como um arquivo do projeto no modo Manual | Pergunta antes de publicar a alteração. Você é consultado mesmo que uma regra de permissão cubra a ferramenta `Artifact`, porque a edição do arquivo precisa da sua aprovação |70| No modo [Manual](https://code.claude.com/docs/pt/permission-modes.md) ou `acceptEdits`, Claude faz uma pequena alteração no arquivo de um artefato que não pode editar sem sua aprovação, como um arquivo do projeto no modo Manual | Pergunta antes de publicar a alteração. Você é consultado mesmo que uma regra de permissão cubra a ferramenta `Artifact`, porque a edição do arquivo precisa da sua aprovação |


89Update https://claude.ai/code/artifact/5fbea6f3-... with today's numbers.89Update https://claude.ai/code/artifact/5fbea6f3-... with today's numbers.

90```90```

91 91 

92### Desativar atualizações de artefato em uma etapa

93 

94Uma atualização em uma etapa é uma pequena alteração que Claude faz no arquivo de um artefato como parte de uma publicação, em vez de por meio de uma chamada `Edit` ou `Write`.

95 

96Para desativar as atualizações em uma etapa, defina [`CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS`](https://code.claude.com/docs/pt/env-vars) como `0`. Este exemplo adiciona a variável ao bloco `env` em `~/.claude/settings.json`:

97 

98```json theme={null}

99{

100 "env": {

101 "CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS": "0"

102 }

103}

104```

105 

106Em seguida, feche e reinicie o Claude Code, pois uma sessão em execução não relê a variável.

107 

92## Encontre um artefato novamente108## Encontre um artefato novamente

93 109 

94Execute `/artifacts` no Claude Code para listar os artefatos que você possui e os compartilhados com você. Os artefatos da sessão atual aparecem primeiro, em **This session**.110Execute `/artifacts` no Claude Code para listar os artefatos que você possui e os compartilhados com você. Os artefatos da sessão atual aparecem primeiro, em **This session**.


111Quem você pode compartilhar depende do seu plano:127Quem você pode compartilhar depende do seu plano:

112 128 

113* **Dentro de sua organização**: nos planos Team e Enterprise, conceda acesso a pessoas específicas em sua organização, ou a todos nela. Os visualizadores se conectam ao claude.ai como membros de sua organização para ver a página.129* **Dentro de sua organização**: nos planos Team e Enterprise, conceda acesso a pessoas específicas em sua organização, ou a todos nela. Os visualizadores se conectam ao claude.ai como membros de sua organização para ver a página.

130* **Pessoas com acesso a uma pasta compartilhada**: nos planos Team e Enterprise, mova o artefato para uma pasta da qual você é proprietário ou editor. Mova-o a partir da [página Artefatos](https://claude.ai/artifacts), que está disponível se você puder usar o chat do claude.ai. Todos com acesso à pasta poderão então abri-lo, e o proprietário e os editores da pasta poderão alterá-lo.

114* **Publicamente**: compartilhe um link que qualquer pessoa na internet possa abrir, sem necessidade de conexão ao claude.ai. Nos planos Team e Enterprise, o compartilhamento público está desativado até que um Proprietário [o ative para a organização](#control-public-sharing).131* **Publicamente**: compartilhe um link que qualquer pessoa na internet possa abrir, sem necessidade de conexão ao claude.ai. Nos planos Team e Enterprise, o compartilhamento público está desativado até que um Proprietário [o ative para a organização](#control-public-sharing).

115 132 

116### Vincular a uma visualização específica133### Vincular a uma visualização específica


178Seu [modo de permissão](https://code.claude.com/docs/pt/permission-modes.md) decide o que Claude faz quando um comentário enviado chega:195Seu [modo de permissão](https://code.claude.com/docs/pt/permission-modes.md) decide o que Claude faz quando um comentário enviado chega:

179 196 

180* **Claude responde por conta própria**: se você estiver em um modo de permissão que permite que Claude poste a resposta sem pedir a você, Claude lê a thread e responde. Você vê `Auto-replied to comment thread on Artifact: <name>`.197* **Claude responde por conta própria**: se você estiver em um modo de permissão que permite que Claude poste a resposta sem pedir a você, Claude lê a thread e responde. Você vê `Auto-replied to comment thread on Artifact: <name>`.

181* **Claude espera por você**: fora do plan mode, quando postar a resposta precisaria de sua aprovação, você vê `Comments are waiting on Artifact: <name>`. Claude então pede sua aprovação para ler a thread, e novamente para postar a resposta.198* **Claude espera por você**: fora do modo de planejamento, quando postar a resposta [precisaria de sua aprovação](#when-claude-code-asks-before-publishing), você vê `Comments are waiting on Artifact: <name>`. Claude então pede sua aprovação para ler a thread, e novamente para postar a resposta.

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

183 200 

184Claude também para de responder por conta própria a um artefato depois de lidar com 60 comentários enviados ou ativações de thread nesse artefato dentro de uma hora. Você vê `Comments are waiting on Artifact: <name>` uma vez, e Claude retoma conforme os comentários dessa hora envelhecem.201Claude também para de responder por conta própria a um artefato depois de lidar com 60 comentários enviados ou ativações de thread nesse artefato dentro de uma hora. Você vê `Comments are waiting on Artifact: <name>` uma vez, e Claude retoma conforme os comentários dessa hora envelhecem.

Details

34* **Requisições**: para deixar as verificações passarem, o gateway encaminha tanto o cabeçalho `anthropic-beta` quanto o campo de corpo `safeguards` inalterados, porque [os dois viajam como um par](https://code.claude.com/docs/pt/llm-gateway-protocol.md#beta-header-and-body-field-pairs). No [formato InvokeModel do Amazon Bedrock](https://code.claude.com/docs/pt/llm-gateway-protocol.md#api-formats), ele encaminha o campo de corpo `anthropic_beta` no lugar do cabeçalho.34* **Requisições**: para deixar as verificações passarem, o gateway encaminha tanto o cabeçalho `anthropic-beta` quanto o campo de corpo `safeguards` inalterados, porque [os dois viajam como um par](https://code.claude.com/docs/pt/llm-gateway-protocol.md#beta-header-and-body-field-pairs). No [formato InvokeModel do Amazon Bedrock](https://code.claude.com/docs/pt/llm-gateway-protocol.md#api-formats), ele encaminha o campo de corpo `anthropic_beta` no lugar do cabeçalho.

35* **Respostas**: o gateway retorna respostas e eventos de streaming sem descartar campos ou reescrever IDs de uso de ferramentas. Para deixar os resultados das verificações passarem, ele mantém o campo `safeguard_results`.35* **Respostas**: o gateway retorna respostas e eventos de streaming sem descartar campos ou reescrever IDs de uso de ferramentas. Para deixar os resultados das verificações passarem, ele mantém o campo `safeguard_results`.

36 36 

37Um gateway que passa tráfego dessa forma continua funcionando com este recurso e com futuros. Novas sessões então usam as verificações do servidor novamente.37Depois que seu gateway fizer isso, novas sessões usam as verificações do servidor novamente.

38 38 

39Se você já sabe que seu gateway não pode fornecer as verificações do servidor, diga ao Claude Code para não pedir por elas lá definindo `CLAUDE_CODE_AUTO_MODE_SERVER` para `0` antes de iniciar a sessão, em seu shell ou na [chave de configurações `env`](https://code.claude.com/docs/pt/settings-reference#env):39Se você já sabe que seu gateway não pode fornecer as verificações do servidor, diga ao Claude Code para não pedir por elas lá definindo `CLAUDE_CODE_AUTO_MODE_SERVER` para `0` antes de iniciar a sessão, em seu shell ou na [chave de configurações `env`](https://code.claude.com/docs/pt/settings-reference#env):

40 40 

Details

180 180 

181O Claude Code faz a varredura em segundo plano e depois mostra o rascunho. Você aceita ou descarta o rascunho como um todo; portanto, edite `~/.claude/settings.json` depois para ajustar entradas individuais. Quando você aceita, o Claude Code grava o rascunho e o concilia com as configurações que você já tem:181O Claude Code faz a varredura em segundo plano e depois mostra o rascunho. Você aceita ou descarta o rascunho como um todo; portanto, edite `~/.claude/settings.json` depois para ajustar entradas individuais. Quando você aceita, o Claude Code grava o rascunho e o concilia com as configurações que você já tem:

182 182 

183* O Claude Code grava a lista `environment` sem `"$defaults"`, porque o rascunho explicita as entradas integradas que ele manteve inalteradas183* Se você optou por adicionar à lista `environment` em `~/.claude/settings.json`, você mantém qualquer entrada `"$defaults"` nela. Se você optou por substituir essa lista, você perde essa entrada; portanto, adicione `"$defaults"` de volta se quiser as entradas padrão

184* O Claude Code inclui `"$defaults"` em cada uma das listas `allow`, `soft_deny` e `hard_deny` às quais o rascunho adiciona entradas, a menos que você já tenha escrito uma lista `allow` sem ele, para que as [regras integradas](#override-the-block-and-allow-rules) que você não substituiu continuem em vigor184* O Claude Code inclui `"$defaults"` em cada uma das listas `allow`, `soft_deny` e `hard_deny` às quais o rascunho adiciona entradas, a menos que você já tenha escrito uma lista `allow` sem ele, para que as [regras integradas](#override-the-block-and-allow-rules) que você não substituiu continuem em vigor

185* Após salvar, o Claude Code oferece remover regras de `permissions.allow` em `~/.claude/settings.json` que o modo auto ignora, como `Bash(*)`, ou que aprovam automaticamente comandos destrutivos185* Após salvar, o Claude Code oferece remover regras de `permissions.allow` em `~/.claude/settings.json` que o modo auto ignora, como `Bash(*)`, ou que aprovam automaticamente comandos destrutivos

186 186 


216 216 

217Três campos adicionais permitem que você substitua as listas de regras integradas do classificador:217Três campos adicionais permitem que você substitua as listas de regras integradas do classificador:

218 218 

219* `autoMode.hard_deny`: limites de segurança incondicionais219* `autoMode.hard_deny`: ações a serem bloqueadas mesmo quando o usuário as solicita

220* `autoMode.soft_deny`: ações destrutivas que a intenção do usuário pode contornar220* `autoMode.soft_deny`: ações destrutivas que a intenção do usuário pode contornar

221* `autoMode.allow`: exceções às regras de bloqueio soft221* `autoMode.allow`: exceções às regras de bloqueio soft

222 222 


231 231 

232Solicitações gerais não contam como intenção explícita. Pedir ao Claude para "limpar o repositório" não autoriza force-push, mas pedir ao Claude para "force-push este branch" autoriza.232Solicitações gerais não contam como intenção explícita. Pedir ao Claude para "limpar o repositório" não autoriza force-push, mas pedir ao Claude para "force-push este branch" autoriza.

233 233 

234Para afrouxar, adicione a `allow` quando o classificador sinalizar repetidamente um padrão rotineiro que as exceções padrão não cobrem. Para apertar, adicione a `soft_deny` para riscos destrutivos específicos do seu ambiente que os padrões perdem, ou a `hard_deny` para limites de segurança que nunca devem ser ultrapassados.234Para afrouxar, adicione a `allow` quando o classificador sinalizar repetidamente um padrão rotineiro que as exceções padrão não cobrem. Para apertar, adicione a `soft_deny` para riscos destrutivos específicos do seu ambiente que os padrões perdem, ou a `hard_deny` para ações a serem bloqueadas mesmo quando o usuário as solicita.

235 235 

236Para manter as regras integradas enquanto adiciona as suas próprias, inclua a string literal `"$defaults"` na matriz. As regras padrão são inseridas nessa posição, portanto suas regras personalizadas podem vir antes ou depois delas, e você continua a herdar atualizações conforme a lista integrada muda entre versões.236Para manter as regras integradas enquanto adiciona as suas próprias, inclua a string literal `"$defaults"` na matriz. As regras padrão são inseridas nessa posição, portanto suas regras personalizadas podem vir antes ou depois delas, e você continua a herdar atualizações conforme a lista integrada muda entre versões.

237 237 


252 "soft_deny": [252 "soft_deny": [

253 "$defaults",253 "$defaults",

254 "Never run database migrations outside the migrations CLI, even against dev databases",254 "Never run database migrations outside the migrations CLI, even against dev databases",

255 "Never modify files under infra/terraform/prod/: production infrastructure changes go through the review workflow"255 "Running terraform apply in infra/terraform/prod/ needs an explicit request: production infrastructure changes go through the review workflow"

256 ],256 ],

257 "hard_deny": [257 "hard_deny": [

258 "$defaults",258 "$defaults",

Details

322 322 

323Aqui está o `webhook.ts` completo com suporte bidirecional. Respostas de saída fluem sobre `GET /events` usando [Server-Sent Events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events) (SSE), então `curl -N localhost:8788/events` pode observá-las ao vivo; chat de entrada chega em `POST /`:323Aqui está o `webhook.ts` completo com suporte bidirecional. Respostas de saída fluem sobre `GET /events` usando [Server-Sent Events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events) (SSE), então `curl -N localhost:8788/events` pode observá-las ao vivo; chat de entrada chega em `POST /`:

324 324 

325```ts title="Full webhook.ts with reply tool' expandable theme={null}325```ts title="Full webhook.ts with reply tool" expandable theme={null}

326#!/usr/bin/env bun326#!/usr/bin/env bun

327import { Server } from '@modelcontextprotocol/sdk/server/index.js'327import { Server } from '@modelcontextprotocol/sdk/server/index.js'

328import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'328import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'

Details

763. Preço de lista para o [`models[].id`](https://code.claude.com/docs/pt/claude-apps-gateway-config#models) que você mapeou para esse ID upstream, para strings upstream que não carregam nome de modelo, como um ARN de perfil de inferência de aplicação do Amazon Bedrock ou um nome de implantação do Microsoft Foundry. Requer v2.1.218 ou posterior.763. Preço de lista para o [`models[].id`](https://code.claude.com/docs/pt/claude-apps-gateway-config#models) que você mapeou para esse ID upstream, para strings upstream que não carregam nome de modelo, como um ARN de perfil de inferência de aplicação do Amazon Bedrock ou um nome de implantação do Microsoft Foundry. Requer v2.1.218 ou posterior.

774. O nível de modelo desconhecido de \$5/\$25 por milhão de tokens de entrada/saída, portanto um ID que o medidor não consegue colocar nunca é gratuito. O gateway avisa na inicialização e uma vez por ID em tempo de execução quando usa este nível.774. O nível de modelo desconhecido de \$5/\$25 por milhão de tokens de entrada/saída, portanto um ID que o medidor não consegue colocar nunca é gratuito. O gateway avisa na inicialização e uma vez por ID em tempo de execução quando usa este nível.

78 78 

79Qualquer que seja a taxa aplicável, o medidor então multiplica o valor por [`pricing.multiplier`](https://code.claude.com/docs/pt/claude-apps-gateway-config#pricing), padrão `1`.79Qualquer que seja a taxa aplicável, o medidor então multiplica o valor por [`pricing.multiplier`](https://code.claude.com/docs/pt/claude-apps-gateway-config#pricing), padrão `1`. Requer um servidor do gateway executando Claude Code v2.1.227 ou posterior.

80 80 

81Aborts de cliente também são faturados. Quando um stream termina sem o quadro de uso final do upstream, o medidor fatura uma estimativa de piso de aproximadamente quatro caracteres por token de saída para o texto já enviado ao cliente, portanto abortar solicitações antecipadamente não evita um limite.81Aborts de cliente também são faturados. Quando um stream termina sem o quadro de uso final do upstream, o medidor fatura uma estimativa de piso de aproximadamente quatro caracteres por token de saída para o texto já enviado ao cliente, portanto abortar solicitações antecipadamente não evita um limite.

82 82 

Details

205* **Usando `/teleport`**: dentro de uma sessão CLI existente, execute `/teleport` ou `/tp` para abrir o mesmo seletor de sessão sem reiniciar Claude Code.205* **Usando `/teleport`**: dentro de uma sessão CLI existente, execute `/teleport` ou `/tp` para abrir o mesmo seletor de sessão sem reiniciar Claude Code.

206* **De `/tasks`**: execute `/tasks` para ver suas sessões em segundo plano, depois pressione `t` para teleportar para uma.206* **De `/tasks`**: execute `/tasks` para ver suas sessões em segundo plano, depois pressione `t` para teleportar para uma.

207* **De claude.ai/code**: selecione **Open in > Terminal** no menu de sessão para copiar um comando que você pode colar em seu terminal.207* **De claude.ai/code**: selecione **Open in > Terminal** no menu de sessão para copiar um comando que você pode colar em seu terminal.

208* **De dentro da sessão na nuvem**: digite `/teleport` e Claude Code responde com o comando exato `claude --teleport <session-id>` para essa sessão, pronto para ser executado a partir de um checkout do repositório. Requer Claude Code v2.1.223 ou posterior no ambiente da sessão.208* **De dentro da sessão na nuvem**: digite `/teleport` e Claude Code responde com o comando exato `claude --teleport <session-id>` para essa sessão, pronto para ser executado a partir de um checkout do repositório.

209 209 

210Quando você teleporta uma sessão, Claude verifica se você está no repositório correto, busca e faz checkout do branch da sessão na nuvem e carrega a conversa em seu terminal.210Quando você teleporta uma sessão, Claude verifica se você está no repositório correto, busca e faz checkout do branch da sessão na nuvem e carrega a conversa em seu terminal.

211 211 


499* **Autenticação de repositório**: você pode apenas mover uma sessão em nuvem para seu terminal quando está autenticado na mesma conta499* **Autenticação de repositório**: você pode apenas mover uma sessão em nuvem para seu terminal quando está autenticado na mesma conta

500* **Restrições de plataforma**: clonagem de repositório em ambientes hospedados pela Anthropic e criação de pull request requerem GitHub. Instâncias [GitHub Enterprise Server](https://code.claude.com/docs/pt/github-enterprise-server.md) auto-hospedadas são suportadas para planos Team e Enterprise. Você pode enviar um repositório GitLab, Bitbucket ou outro repositório não-GitHub para uma sessão na nuvem como um [pacote local](#send-local-repositories-without-github) definindo `CCR_FORCE_BUNDLE=1`, mas a sessão não pode enviar resultados de volta para esse remoto500* **Restrições de plataforma**: clonagem de repositório em ambientes hospedados pela Anthropic e criação de pull request requerem GitHub. Instâncias [GitHub Enterprise Server](https://code.claude.com/docs/pt/github-enterprise-server.md) auto-hospedadas são suportadas para planos Team e Enterprise. Você pode enviar um repositório GitLab, Bitbucket ou outro repositório não-GitHub para uma sessão na nuvem como um [pacote local](#send-local-repositories-without-github) definindo `CCR_FORCE_BUNDLE=1`, mas a sessão não pode enviar resultados de volta para esse remoto

501 * **Ambientes auto-hospedados**: para um repositório em outro host git, veja os [requisitos para iniciar uma sessão com `--environment`](https://code.claude.com/docs/pt/self-hosted-environments-deploy#start-a-session-on-a-repository-outside-github).501 * **Ambientes auto-hospedados**: para um repositório em outro host git, veja os [requisitos para iniciar uma sessão com `--environment`](https://code.claude.com/docs/pt/self-hosted-environments-deploy#start-a-session-on-a-repository-outside-github).

502* **IP allowlist da organização**: sessões na nuvem chamam a API Anthropic a partir de infraestrutura gerenciada pela Anthropic, não de sua rede, enquanto sessões em um [ambiente auto-hospedado](https://code.claude.com/docs/pt/self-hosted-environments) a chamam a partir de sua própria rede. Se sua organização tem [IP allowlisting](https://support.claude.com/en/articles/13200993-restrict-access-to-claude-with-ip-allowlisting) habilitado, cada sessão na nuvem hospedada pela Anthropic falha com um erro de autenticação.

503 * **Code Review e tarefas agendadas**: o mesmo se aplica a [Code Review](https://code.claude.com/docs/pt/code-review.md) e a [tarefas agendadas na nuvem](https://code.claude.com/docs/pt/routines.md) que são executadas em ambientes hospedados pela Anthropic. Uma tarefa agendada roteada para um ambiente auto-hospedado chama a API a partir de sua própria rede.

504 * **Obtendo uma isenção**: entre em contato com o [suporte Anthropic](https://support.claude.com/) para isentar serviços hospedados pela Anthropic da allowlist de IP de sua organização.

505 502 

506## Recursos relacionados503## Recursos relacionados

507 504 

Details

142Arquivos de sessão em `sessions/`, memória automática, e transcrições de Claude Desktop e Cowork seguem cada uma sua própria regra de retenção:142Arquivos de sessão em `sessions/`, memória automática, e transcrições de Claude Desktop e Cowork seguem cada uma sua própria regra de retenção:

143 143 

144* **`sessions/`**: contém um pequeno arquivo por sessão em execução, usado para detectar sessões simultâneas e crashes. Não faz parte da varredura baseada em idade: Claude Code remove cada arquivo quando sua sessão sai e limpa resíduos de crash no próximo lançamento.144* **`sessions/`**: contém um pequeno arquivo por sessão em execução, usado para detectar sessões simultâneas e crashes. Não faz parte da varredura baseada em idade: Claude Code remove cada arquivo quando sua sessão sai e limpa resíduos de crash no próximo lançamento.

145* **`seed-admin/`**: diretórios git temporários que Claude Code cria ao empacotar seu repositório para um [ultrareview](https://code.claude.com/docs/pt/ultrareview.md) ou um [upload de sessão na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md#send-local-repositories-without-github). Quando um upload termina, ou em uma sessão posterior se ele foi interrompido, Claude Code remove o diretório desse upload e mantém `seed-admin/` no lugar.

145* **Memória automática**: a varredura não deleta os arquivos de memória no diretório de [memória automática](https://code.claude.com/docs/pt/memory.md#auto-memory) de um projeto, `projects/<project>/memory/`. Claude Code remove esse diretório apenas se ele esteve vazio durante todo o período de retenção. Antes da v2.1.228, a varredura tratava pastas dentro do diretório de memória como dados de sessão e podia deletar arquivos antigos sob ele.146* **Memória automática**: a varredura não deleta os arquivos de memória no diretório de [memória automática](https://code.claude.com/docs/pt/memory.md#auto-memory) de um projeto, `projects/<project>/memory/`. Claude Code remove esse diretório apenas se ele esteve vazio durante todo o período de retenção. Antes da v2.1.228, a varredura tratava pastas dentro do diretório de memória como dados de sessão e podia deletar arquivos antigos sob ele.

146* **Transcrições de Claude Desktop e Cowork**: Claude Code mantém a transcrição de uma sessão que você iniciou ou continuou mais recentemente em Claude Desktop ou Cowork em qualquer idade. Para dar a essas transcrições um limite de idade, defina [`desktopSessionCleanupPeriodDays`](https://code.claude.com/docs/pt/settings-reference#desktopsessioncleanupperioddays). Requer Claude Code v2.1.248 ou posterior; versões anteriores as deletam após `cleanupPeriodDays`.147* **Transcrições de Claude Desktop e Cowork**: Claude Code mantém a transcrição de uma sessão que você iniciou ou continuou mais recentemente em Claude Desktop ou Cowork em qualquer idade. Para dar a essas transcrições um limite de idade, defina [`desktopSessionCleanupPeriodDays`](https://code.claude.com/docs/pt/settings-reference#desktopsessioncleanupperioddays). Requer Claude Code v2.1.248 ou posterior; versões anteriores as deletam após `cleanupPeriodDays`.

147 148 


153Claude Code pula a varredura baseada em idade nestes casos:154Claude Code pula a varredura baseada em idade nestes casos:

154 155 

155* **Modo bare**: quando você executa `claude -p` com [`--bare`](https://code.claude.com/docs/pt/headless#start-faster-with-bare-mode), Claude Code não executa a varredura nessa sessão.156* **Modo bare**: quando você executa `claude -p` com [`--bare`](https://code.claude.com/docs/pt/headless#start-faster-with-bare-mode), Claude Code não executa a varredura nessa sessão.

156* **Varredura pausada**: se Claude Code não conseguir determinar com segurança o período de retenção, ele pausa a varredura de limpeza de retenção; o [evento `retention_sweep`](https://code.claude.com/docs/pt/monitoring-usage#retention-sweep-event) lista cada configuração que a pausa. Quando a causa é um arquivo de configurações que não pode ser lido ou analisado, ou erros de configurações com `cleanupPeriodDays` ou `desktopSessionCleanupPeriodDays` explicitamente definidos, Claude Code também mostra um aviso em `/status` até você corrigir os erros de configurações. Quando [configurações gerenciadas](https://code.claude.com/docs/pt/server-managed-settings.md) fornecem `cleanupPeriodDays`, Claude Code executa a varredura no valor gerenciado em qualquer caso.157* **Varredura pausada**: se Claude Code não conseguir determinar com segurança o período de retenção, ele pausa a varredura; o [evento `retention_sweep`](https://code.claude.com/docs/pt/monitoring-usage#retention-sweep-event) lista cada configuração que a pausa. Quando a causa é um arquivo de configurações que não pode ser lido ou analisado, ou erros de configurações com `cleanupPeriodDays` ou `desktopSessionCleanupPeriodDays` definidos, `/status` mostra um aviso até você corrigir a causa.

158 

159Quando [configurações gerenciadas](https://code.claude.com/docs/pt/managed-settings.md) fornecem `cleanupPeriodDays`, Claude Code executa a varredura no valor gerenciado mesmo quando um arquivo de configurações de menor prioridade tem erros.

157 160 

158Para verificar se as máquinas da sua organização executam a varredura com o período de retenção que você definiu, consulte [Verificar a varredura de retenção](https://code.claude.com/docs/pt/monitoring-usage.md#check-the-retention-sweep).161Para verificar se as máquinas da sua organização executam a varredura com o período de retenção que você definiu, consulte [Verificar a varredura de retenção](https://code.claude.com/docs/pt/monitoring-usage.md#check-the-retention-sweep).

159 162 

claude-projects.md +24 −26

Details

20 20 

21* **Envia trabalho para um único lugar**: cole um relatório de bug, um rastreamento de pilha ou uma lista de tarefas na conversa sempre que surgir. Claude inicia uma thread para cada peça de trabalho ou a passa para a thread já trabalhando nessa área, e responde perguntas rápidas no local.21* **Envia trabalho para um único lugar**: cole um relatório de bug, um rastreamento de pilha ou uma lista de tarefas na conversa sempre que surgir. Claude inicia uma thread para cada peça de trabalho ou a passa para a thread já trabalhando nessa área, e responde perguntas rápidas no local.

22* **Define o contexto uma vez**: cada nova thread começa com as instruções do projeto, então uma regra que você declara uma vez, como qual branch direcionar, alcança todas elas.22* **Define o contexto uma vez**: cada nova thread começa com as instruções do projeto, então uma regra que você declara uma vez, como qual branch direcionar, alcança todas elas.

23* **Saia e volte para o trabalho concluído**: quando você voltar uma hora depois ou na manhã seguinte, o painel **Overview** mostra quais threads terminaram, quais pull requests estão prontos para revisão e qual thread está aguardando sua resposta.23* **Sai e volta para o trabalho concluído**: o painel Overview mostra quais threads terminaram, quais pull requests estão prontos para revisão e qual thread está aguardando sua resposta.

24 24 

25Se você já sabe o trabalho que deseja que um projeto execute, vá direto para [Criar um projeto](#create-a-project).25Se você já sabe o trabalho que deseja que um projeto execute, vá direto para [Criar um projeto](#create-a-project).

26 26 


28 28 

29Um projeto vale a pena criar quando o trabalho tem um objetivo que dura mais de uma sessão e continua produzindo tarefas. Esses tipos de trabalho funcionam bem em um projeto:29Um projeto vale a pena criar quando o trabalho tem um objetivo que dura mais de uma sessão e continua produzindo tarefas. Esses tipos de trabalho funcionam bem em um projeto:

30 30 

31* **Um objetivo em muitos repositórios**: "Trazer cada serviço para a nova configuração de lint." Claude pode executar uma thread por repositório, cada uma com seu próprio pull request, e o painel [**Overview**](#see-what-needs-you-in-overview) mostra quais estão prontos para revisão.31* **Um objetivo em muitos repositórios**: "Trazer cada serviço para a nova configuração de lint." Claude pode executar uma thread por repositório, cada uma com seu próprio pull request, e o [painel Overview](#see-what-needs-you-in-overview) mostra quais estão prontos para revisão.

32* **Uma área que você continua alimentando**: os bugs, rastreamentos de pilha e solicitações de revisão para um serviço, colados na conversa conforme chegam até você. Uma armadilha que você diz a Claude para lembrar após uma correção está na [memória do projeto](#give-a-project-standing-context) para a próxima.32* **Uma área que você continua alimentando**: os bugs, rastreamentos de pilha e solicitações de revisão para um serviço, colados na conversa conforme chegam até você. Uma armadilha que você diz a Claude para lembrar após uma correção está na [memória do projeto](#give-a-project-standing-context) para a próxima.

33* **Uma compilação ou migração maior que uma sessão**: "Construir o que `docs/spec.md` descreve" ou "Mover o aplicativo do ORM descontinuado." O trabalho se divide em threads que cada uma pega uma parte, decisões que você pede a Claude para lembrar no início chegam às threads posteriores, e a especificação muda e bugs que você encontra durante a compilação vão para a mesma conversa.33* **Uma compilação ou migração maior que uma sessão**: "Construir o que `docs/spec.md` descreve" ou "Mover o aplicativo do ORM descontinuado." O trabalho se divide em threads que cada uma pega uma parte, decisões que você pede a Claude para lembrar no início chegam às threads posteriores, e a especificação muda e bugs que você encontra durante a compilação vão para a mesma conversa.

34* **Trabalho que não é código**: uma pasta de contratos ou uma exportação de ticket de suporte que você continua voltando com novas perguntas, como "encontre os dez erros de integração mais comuns nesses tickets." Carregue os documentos em vez de adicionar um repositório, e as threads entregam cada relatório como um arquivo na aba [**Library**](#see-what-needs-you-in-overview) do projeto.34* **Trabalho que não é código**: uma pasta de contratos ou uma exportação de tickets de suporte à qual você volta repetidamente com novas perguntas, como "encontre os dez erros de integração mais comuns nestes tickets." Faça upload dos documentos em vez de adicionar um repositório, e as threads entregam cada relatório como um arquivo na [**Library**](#see-what-needs-you-in-overview) do projeto.

35 35 

36Em qualquer um deles você pode enviar um lote de tarefas, dizer a Claude para começar sem pedir que você confirme, e sair. Quando voltar, você pode encontrar as threads que precisam de você em [**Waiting on you**](#see-what-needs-you-in-overview). Você também pode pedir a Claude para colocar parte do trabalho em um cronograma como uma [tarefa agendada na nuvem](https://code.claude.com/docs/pt/routines.md). Se uma dessas é sua situação, [crie um projeto](#create-a-project).36Em qualquer um deles você pode enviar um lote de tarefas, dizer a Claude para começar sem pedir que você confirme, e sair. Quando voltar, você pode encontrar as threads que precisam de você em [**Waiting on you**](#see-what-needs-you-in-overview). Você também pode pedir a Claude para colocar parte do trabalho em um cronograma como uma [tarefa agendada na nuvem](https://code.claude.com/docs/pt/routines.md). Se uma dessas é sua situação, [crie um projeto](#create-a-project).

37 37 


57 * O `CLAUDE.md` em [cada um dos repositórios do projeto](#what-threads-pick-up-from-your-repositories), mas não as skills, o `.claude/settings.json` ou o `.mcp.json` dos repositórios57 * O `CLAUDE.md` em [cada um dos repositórios do projeto](#what-threads-pick-up-from-your-repositories), mas não as skills, o `.claude/settings.json` ou o `.mcp.json` dos repositórios

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

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

60* **O painel Overview**: onde você [vê todas as threads de uma vez](#see-what-needs-you-in-overview) e quais delas precisam de você. Suas outras abas são **Library** para os arquivos que você adicionou e os arquivos que as threads produziram, **Pull requests** para os que as threads abriram, e **Scheduled tasks** para trabalho agendado no projeto.60* **O painel Overview**: onde você [vê todas as threads de uma vez](#see-what-needs-you-in-overview) e quais delas precisam de você.

61 61 

62As threads em nuvem não pegam nada da configuração Claude Code na sua própria máquina. [Obter skills, plugins, connectors e ferramentas em threads](#get-skills-plugins-connectors-and-tools-into-threads) cobre como dar a elas o que de outra forma estariam faltando.62As threads em nuvem não pegam nada da configuração Claude Code na sua própria máquina. [Obter skills, plugins, connectors e ferramentas em threads](#get-skills-plugins-connectors-and-tools-into-threads) cobre como dar a elas o que de outra forma estariam faltando.

63 63 

64Aqui está como essas partes se conectam, de você através da conversa para as threads fazendo o trabalho, com **Overview** rastreando seu estado:64Aqui está como essas partes se conectam, de você através da conversa para as threads fazendo o trabalho, com o Overview rastreando seu estado:

65 65 

66![Diagrama de um projeto. Você escreve na conversa do projeto, onde Claude responde ou inicia uma thread. Cada thread em nuvem trabalha em seu próprio branch e pull request. O painel Overview lista threads por estado, como pronto para revisão, aguardando você e trabalhando.](https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview.svg?fit=max\&auto=format\&n=e8CLbxM17eD7cAiv\&q=85\&s=dbf446f69f0bbdb9961d21af207cb93b)66![Diagrama de um projeto. Você escreve na conversa do projeto, onde Claude responde ou inicia uma thread. Cada thread em nuvem trabalha em seu próprio branch e pull request. O painel Overview lista threads por estado, como pronto para revisão, aguardando você e trabalhando.](https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview.svg?fit=max\&auto=format\&n=e8CLbxM17eD7cAiv\&q=85\&s=dbf446f69f0bbdb9961d21af207cb93b)

67 67 


96 96 

97* **Name**: como o projeto aparece na lista **Projects**.97* **Name**: como o projeto aparece na lista **Projects**.

98* **What do you want to work on?** (opcional): uma linha que se torna o objetivo do projeto, como "Manter latência p95 da API abaixo de 200 ms". Claude na conversa trabalha em direção a isso. Sem um objetivo, Claude trabalha a partir das tarefas que você envia, e você pode adicionar um objetivo mais tarde em **Project settings > General**.98* **What do you want to work on?** (opcional): uma linha que se torna o objetivo do projeto, como "Manter latência p95 da API abaixo de 200 ms". Claude na conversa trabalha em direção a isso. Sem um objetivo, Claude trabalha a partir das tarefas que você envia, e você pode adicionar um objetivo mais tarde em **Project settings > General**.

99* **Context** (opcional): os repositórios GitHub em que este projeto funciona, mais quaisquer arquivos, pastas ou pastas do Google Drive que as threads devem ler. Clique **Add** para cada um. Adicione os repositórios que a maioria das tarefas precisa em vez de cada um que o trabalho pode tocar; [Decidir quais repositórios adicionar](#decide-which-repositories-to-add) cobre a escolha, e você pode adicionar mais tarde em **Project settings > Environment**.99* **Context** (opcional): os repositórios GitHub em que este projeto funciona, mais quaisquer arquivos, pastas ou pastas do Google Drive que as threads devem ler. Clique **+** para cada um. Adicione os repositórios que a maioria das tarefas precisa em vez de cada um que o trabalho pode tocar; [Decidir quais repositórios adicionar](#decide-which-repositories-to-add) cobre a escolha, e você pode adicionar mais tarde em **Project settings > Environment**.

100 100 

101Regras permanentes para como as threads devem funcionar vão em [instruções do projeto](#give-a-project-standing-context), que você define após o projeto existir.101Regras permanentes para como as threads devem funcionar vão em [instruções do projeto](#give-a-project-standing-context), que você define após o projeto existir.

102 102 


109* Iniciar uma thread que explora o repositório sem fazer alterações e propõe próximos passos, se o projeto tiver um repositório que ele possa ler.109* Iniciar uma thread que explora o repositório sem fazer alterações e propõe próximos passos, se o projeto tiver um repositório que ele possa ler.

110* Postar **Setup recommendations** extraídas de suas sessões na nuvem recentes: repositórios para adicionar, tarefas agendadas para criar e threads que ele poderia iniciar. Cada repositório e tarefa agendada recomendados começam ligados. Desligue os que você não quer, depois clique **Update setup** para adicionar o resto, ou ignore as recomendações e descreva o trabalho você mesmo.110* Postar **Setup recommendations** extraídas de suas sessões na nuvem recentes: repositórios para adicionar, tarefas agendadas para criar e threads que ele poderia iniciar. Cada repositório e tarefa agendada recomendados começam ligados. Desligue os que você não quer, depois clique **Update setup** para adicionar o resto, ou ignore as recomendações e descreva o trabalho você mesmo.

111 111 

112O projeto agora está listado em **Projects** na barra lateral, e sua conversa está aberta. [Seu primeiro lote](#your-first-batch) cobre o que configurar antes de enviar trabalho a ele.112O projeto agora está na barra lateral, e sua conversa está aberta. [Seu primeiro lote](#your-first-batch) cobre o que configurar antes de enviar trabalho a ele.

113 113 

114### Iniciar a partir de uma sessão existente114### Iniciar a partir de uma sessão existente

115 115 


168 168 

169Se Claude rotear algo diferente do que você queria, diga. [Ajustar como Claude executa um projeto](#tune-how-claude-runs-a-project) lista coisas que você pode dizer a ele, como reutilizar uma thread existente para acompanhamentos ou responder no local em vez de iniciar uma thread.169Se Claude rotear algo diferente do que você queria, diga. [Ajustar como Claude executa um projeto](#tune-how-claude-runs-a-project) lista coisas que você pode dizer a ele, como reutilizar uma thread existente para acompanhamentos ou responder no local em vez de iniciar uma thread.

170 170 

171Os resultados completos de uma thread permanecem na thread, e você abre seu cartão na conversa para lê-los. Os arquivos que uma thread produziu também estão na aba **Library** em **Overview**.171Os resultados completos de uma thread permanecem na thread, e você abre seu cartão na conversa para lê-los. Os arquivos que uma thread produziu também estão na [**Library**](#see-what-needs-you-in-overview) do projeto.

172 172 

173Às vezes Claude propõe threads em vez de iniciá-las, em uma lista **Suggested threads**. Clique na seta em uma sugestão para iniciar essa thread. Quando várias estão listadas, um botão sob a lista inicia todas elas.173Às vezes Claude propõe threads em vez de iniciá-las, em uma lista **Suggested threads**. Clique na seta em uma sugestão para iniciar essa thread. Quando várias estão listadas, um botão sob a lista inicia todas elas.

174 174 


190 190 

191### Ver o que precisa de você em Overview191### Ver o que precisa de você em Overview

192 192 

193O painel **Overview** ao lado da conversa rastreia as threads do projeto. Ele já está aberto na primeira vez que você abre um novo projeto. O botão **Overview** no cabeçalho do projeto o fecha e reabre, e mostra um ponto quando uma thread está aguardando você.193O painel Overview ao lado da conversa rastreia as threads do projeto. Ele já está aberto na primeira vez que você abre um novo projeto. Para reabri-lo depois de fechá-lo, clique no botão **Threads** no cabeçalho do projeto. O botão mostra um ponto quando uma thread está aguardando você.

194 194 

195No aplicativo desktop, você também recebe uma notificação desktop quando Claude posta na conversa, uma thread atinge um erro ou uma thread precisa de sua entrada, então você não precisa manter o projeto aberto para descobrir. Para também receber uma cada vez que uma thread termina uma volta, ou para desligá-las para um projeto, escolha **Notifications** no menu da barra lateral do projeto. Essas notificações são apenas desktop: em um navegador, verifique o ponto no botão **Overview**.195No aplicativo desktop, uma notificação aparece por padrão quando Claude posta na conversa, uma thread atinge um erro ou uma thread precisa de sua entrada. Nenhuma aparece enquanto você está visualizando o projeto. Para também receber uma cada vez que uma thread termina um turno, ou para desligá-las para um projeto, escolha **Notifications** no menu da barra lateral do projeto. Em um navegador, verifique o ponto no botão **Threads**.

196 196 

197A aba **Threads** do painel agrupa threads por estado:197A visualização **Threads** do painel agrupa threads por estado:

198 198 

199| Grupo | O que está nele |199| Grupo | O que está nele |

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


205| **Idle** | Threads que terminaram e não estão aguardando nada |205| **Idle** | Threads que terminaram e não estão aguardando nada |

206| **Resolved** | Threads marcadas como concluídas: por você no menu da thread, por Claude uma vez que você tenha tomado o último passo, como mesclar seu pull request, ou automaticamente após uma semana sem atividade. Você pode reabrir uma no mesmo menu |206| **Resolved** | Threads marcadas como concluídas: por você no menu da thread, por Claude uma vez que você tenha tomado o último passo, como mesclar seu pull request, ou automaticamente após uma semana sem atividade. Você pode reabrir uma no mesmo menu |

207 207 

208As outras abas do painel são:208Abra os arquivos e as tarefas agendadas do projeto no painel a partir do cabeçalho do projeto:

209 209 

210* **Library**: os arquivos e pastas que você adicionou e os arquivos que as threads produziram210* **Library**: os arquivos e pastas que você adicionou e os arquivos que as threads produziram. Clique no botão **Library** ao lado de **Threads**.

211* **Pull requests**: mostrada uma vez que as threads abriram algum211* **Scheduled tasks**: as [tarefas agendadas na nuvem](https://code.claude.com/docs/pt/routines.md) que Claude configurou a partir deste projeto. Selecione-a no menu **⋯** do cabeçalho.

212* **Scheduled tasks**: as [tarefas agendadas na nuvem](https://code.claude.com/docs/pt/routines.md) que Claude configurou a partir deste projeto

213 212 

214### Abrir uma thread quando você precisa de controle213### Abrir uma thread quando você precisa de controle

215 214 

216Clique no cartão de uma thread na conversa ou sua linha em **Overview** para abrir sua transcrição no painel Overview. De lá você pode:215Clique no cartão de uma thread na conversa ou sua linha em Overview para abrir sua transcrição no painel Overview. De lá você pode:

217 216 

218* Ler o que Claude fez, passo a passo.217* Ler o que Claude fez, passo a passo.

219* Direcionar a tarefa escrevendo na caixa de mensagem própria da thread. Uma mensagem lá vai direto para essa thread, enquanto um acompanhamento na conversa do projeto a alcança apenas quando Claude corresponde o acompanhamento a essa thread.218* Direcionar a tarefa escrevendo na caixa de mensagem própria da thread. Uma mensagem lá vai direto para essa thread, enquanto um acompanhamento na conversa do projeto a alcança apenas quando Claude corresponde o acompanhamento a essa thread.


290| :- | :- | :- |289| :- | :- | :- |

291| Memória do projeto | Notas que Claude mantém sobre o projeto, como requisitos, decisões e armadilhas, armazenadas como arquivos. Cada thread em nuvem lê o arquivo de índice `MEMORY.md` quando começa e abre os outros arquivos quando precisa deles | Peça a Claude na conversa do projeto ou em qualquer thread em nuvem para lembrar um requisito, uma decisão ou uma armadilha, ou para esquecer um. Leia, edite e delete os arquivos em **Project settings > Memory** |290| Memória do projeto | Notas que Claude mantém sobre o projeto, como requisitos, decisões e armadilhas, armazenadas como arquivos. Cada thread em nuvem lê o arquivo de índice `MEMORY.md` quando começa e abre os outros arquivos quando precisa deles | Peça a Claude na conversa do projeto ou em qualquer thread em nuvem para lembrar um requisito, uma decisão ou uma armadilha, ou para esquecer um. Leia, edite e delete os arquivos em **Project settings > Memory** |

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

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

294 293 

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

296 295 

297### Escrever instruções do projeto296### Escrever instruções do projeto

298 297 

299Instruções do projeto são o resumo a partir do qual cada nova thread começa. Clique no ícone de engrenagem no cabeçalho do projeto para abrir **Project settings**, depois vá para **Memory > Project instructions**. Um resumo útil cobre:298Instruções do projeto são o resumo a partir do qual cada nova thread começa. Selecione **Settings** no menu **⋯** no cabeçalho do projeto para abrir **Project settings**, depois vá para **Memory > Project instructions**. Um resumo útil cobre:

300 299 

301* Para que serve o projeto300* Para que serve o projeto

302* Onde o trabalho acontece: quais repositórios, a partir de qual branch começar, como nomear pull requests301* Onde o trabalho acontece: quais repositórios, a partir de qual branch começar, como nomear pull requests


324* **Adicione-o ao projeto**, no diálogo **New project**, em **Project settings > Environment**, ou pedindo a Claude na conversa para adicioná-lo ao projeto. Cada thread em nuvem a partir de então o clona e começa com seu `CLAUDE.md` carregado, independentemente de a tarefa tocá-lo.323* **Adicione-o ao projeto**, no diálogo **New project**, em **Project settings > Environment**, ou pedindo a Claude na conversa para adicioná-lo ao projeto. Cada thread em nuvem a partir de então o clona e começa com seu `CLAUDE.md` carregado, independentemente de a tarefa tocá-lo.

325* **Deixe-o de fora e deixe as threads adicionarem quando necessário.** Uma thread em nuvem cuja tarefa precisa de um repositório que o projeto não tem pode adicioná-lo a si mesma, e uma nota na thread diz que foi adicionado apenas a essa thread. O clone acontece no meio da tarefa, então o `CLAUDE.md` desse repositório não estava lá quando a thread começou. A próxima thread começa sem ele. Um repositório adicionado dessa forma precisa dos mesmos [pré-requisitos](#check-the-prerequisites) que um repositório de projeto: o Claude GitHub App instalado nele e acesso push de sua conta GitHub.324* **Deixe-o de fora e deixe as threads adicionarem quando necessário.** Uma thread em nuvem cuja tarefa precisa de um repositório que o projeto não tem pode adicioná-lo a si mesma, e uma nota na thread diz que foi adicionado apenas a essa thread. O clone acontece no meio da tarefa, então o `CLAUDE.md` desse repositório não estava lá quando a thread começou. A próxima thread começa sem ele. Um repositório adicionado dessa forma precisa dos mesmos [pré-requisitos](#check-the-prerequisites) que um repositório de projeto: o Claude GitHub App instalado nele e acesso push de sua conta GitHub.

326 325 

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

328 327 

329Uma vez que o projeto tem repositórios, Claude só pode adicionar repositórios de um proprietário GitHub que o projeto já usa, seja adicionando um ao projeto ou uma thread adicionando um a si mesma. Para trazer um repositório de um proprietário diferente, adicione-o ao projeto você mesmo em **Project settings > Environment**.328Uma vez que o projeto tem repositórios, Claude só pode adicionar repositórios de um proprietário GitHub que o projeto já usa, seja adicionando um ao projeto ou uma thread adicionando um a si mesma. Para trazer um repositório de um proprietário diferente, adicione-o ao projeto você mesmo em **Project settings > Environment**.

330 329 


332 331 

333### Adicionar arquivos e pastas332### Adicionar arquivos e pastas

334 333 

335Adicione os arquivos e pastas que você quer que as threads leiam no campo **Context** do diálogo **New project**, ou depois com **Add** na aba **Library** em **Overview**. Esses limites se aplicam ao que você adiciona:334Adicione os arquivos e pastas que você quer que as threads leiam no campo **Context** do diálogo **New project**, ou depois com **Add** na [**Library**](#see-what-needs-you-in-overview) do projeto. Esses limites se aplicam ao que você adiciona:

336 335 

337* **Library tab**: até 100 arquivos e 2 GB em uma seleção, com um único arquivo até 480 MB.336* **Arquivos que você carrega em claude.ai/code ou no aplicativo desktop**: até 1.000 arquivos e 2 GB por vez, com um único arquivo de até 480 MB.

338* **New project dialog**: arquivos acima de 30 MB são ignorados, então adicione arquivos maiores da aba **Library** depois de criar o projeto.337* **Pastas que você carrega**: arquivos ocultos e `node_modules` não são adicionados. Um projeto contém até 10 pastas e pastas do Google Drive combinadas, e arquivos únicos não contam para esse limite.

339* **Folders**: quando você adiciona uma pasta de qualquer lugar, o projeto recebe uma cópia de seus primeiros 100 arquivos até 200 MB, sem nenhum arquivo acima de 30 MB, arquivos ocultos ou `node_modules`. Um projeto contém até 10 pastas e pastas do Google Drive combinadas, e arquivos únicos não contam para esse limite.

340* **Changes after upload**: uploads são cópias, então uma mudança que você faz no seu computador depois não chega ao projeto até que você carregue o arquivo novamente e escolha **Replace** quando perguntado sobre o nome existente.338* **Changes after upload**: uploads são cópias, então uma mudança que você faz no seu computador depois não chega ao projeto até que você carregue o arquivo novamente e escolha **Replace** quando perguntado sobre o nome existente.

341 339 

342### O que as threads pegam de seus repositórios340### O que as threads pegam de seus repositórios


373 371 

374## Referência de configurações do projeto372## Referência de configurações do projeto

375 373 

376Você muda as configurações do projeto em claude.ai/code ou no aplicativo desktop, não em `settings.json`. Abra **Project settings** de **Settings** no menu da barra lateral do projeto ou do ícone de engrenagem no cabeçalho do projeto.374Você muda as configurações do projeto em claude.ai/code ou no aplicativo desktop, não em `settings.json`. Abra **Project settings** de **Settings** no menu da barra lateral do projeto ou no menu **⋯** do cabeçalho do projeto.

377 375 

378As configurações são salvas conforme você as altera; um campo de texto que você está editando, como o objetivo ou instruções, mostra **Save changes** e **Discard** até que você o deixe. Mudanças em instruções, repositórios, plugins e ambiente em **Project settings** alcançam novas threads, não threads já em execução.376As configurações são salvas conforme você as altera; um campo de texto que você está editando, como o objetivo ou instruções, mostra **Save changes** e **Discard** até que você o deixe. Mudanças em instruções, repositórios, plugins e ambiente em **Project settings** alcançam novas threads, não threads já em execução.

379 377 


434 432 

435 Projetos estão disponíveis nos planos Pro, Max e Ultra. Um projeto é só seu: você é o único que envia trabalho a ele ou vê suas threads, e ele usa seu próprio acesso GitHub e seus conectores. [Como Claude Tag difere de Cowork e Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) tem o lado a lado.433 Projetos estão disponíveis nos planos Pro, Max e Ultra. Um projeto é só seu: você é o único que envia trabalho a ele ou vê suas threads, e ele usa seu próprio acesso GitHub e seus conectores. [Como Claude Tag difere de Cowork e Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) tem o lado a lado.

436* **Sessões na nuvem**: cada thread é uma [sessão na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md), a menos que você peça a Claude para executá-la na sua máquina. De qualquer forma, Claude inicia e rastreia em vez de você. Você também pode trazer o trabalho de uma sessão na nuvem que você mesmo iniciou para um projeto: escolha [**Continue in project**](#start-from-an-existing-cloud-session) no menu da barra lateral dessa sessão.434* **Sessões na nuvem**: cada thread é uma [sessão na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md), a menos que você peça a Claude para executá-la na sua máquina. De qualquer forma, Claude inicia e rastreia em vez de você. Você também pode trazer o trabalho de uma sessão na nuvem que você mesmo iniciou para um projeto: escolha [**Continue in project**](#start-from-an-existing-cloud-session) no menu da barra lateral dessa sessão.

437* **Tarefas agendadas**: quando você pede trabalho agendado em um projeto, Claude cria uma [tarefa agendada na nuvem](https://code.claude.com/docs/pt/routines.md) que é executada como threads nesse projeto e aparece em sua aba **Scheduled tasks**. Tarefas agendadas que você cria fora de um projeto continuam funcionando por conta própria.435* **Tarefas agendadas**: quando você pede trabalho agendado em um projeto, Claude cria uma [tarefa agendada na nuvem](https://code.claude.com/docs/pt/routines.md) que é executada como threads nesse projeto e aparece em sua visualização **Scheduled tasks**. Tarefas agendadas que você cria fora de um projeto continuam funcionando por conta própria.

438* **Remote Control**: [Remote Control](https://code.claude.com/docs/pt/remote-control.md) conecta claude.ai a uma sessão Claude Code em execução na sua máquina. Quando você pede a Claude em um projeto para executar uma thread no seu computador, o projeto [usa Remote Control para fazer isso](#run-a-thread-on-your-own-computer).436* **Remote Control**: [Remote Control](https://code.claude.com/docs/pt/remote-control.md) conecta claude.ai a uma sessão Claude Code em execução na sua máquina. Quando você pede a Claude em um projeto para executar uma thread no seu computador, o projeto [usa Remote Control para fazer isso](#run-a-thread-on-your-own-computer).

439* **Sessões locais e agent view**: uma sessão que você mesmo inicia em seu terminal, IDE ou no ambiente local do aplicativo desktop fica fora dos seus projetos, embora você possa [trazer o trabalho dela para um deles](#start-from-an-existing-cloud-session). [Agent view](https://code.claude.com/docs/pt/agent-view.md) é uma tela para rastrear várias sessões locais lado a lado, e você ainda inicia cada uma e dá sua tarefa a ela mesmo.437* **Sessões locais e agent view**: uma sessão que você mesmo inicia em seu terminal, IDE ou no ambiente local do aplicativo desktop fica fora dos seus projetos, embora você possa [trazer o trabalho dela para um deles](#start-from-an-existing-cloud-session). [Agent view](https://code.claude.com/docs/pt/agent-view.md) é uma tela para rastrear várias sessões locais lado a lado, e você ainda inicia cada uma e dá sua tarefa a ela mesmo.

440* **Worktrees**: um [worktree](https://code.claude.com/docs/pt/worktrees.md) dá a cada sessão local sua própria cópia de trabalho de um repositório. As threads na nuvem não precisam deles: cada uma clona seus repositórios em seu próprio sandbox na nuvem e trabalha em seu próprio branch.438* **Worktrees**: um [worktree](https://code.claude.com/docs/pt/worktrees.md) dá a cada sessão local sua própria cópia de trabalho de um repositório. As threads na nuvem não precisam deles: cada uma clona seus repositórios em seu próprio sandbox na nuvem e trabalha em seu próprio branch.


466Quando várias threads voltam tendo assumido algo errado, contornado acesso ausente ou parado com "bloqueado", a causa geralmente é a mesma lacuna na configuração do projeto em vez de um problema com cada tarefa. Classifique quais threads são sólidas antes de corrigir qualquer coisa:464Quando várias threads voltam tendo assumido algo errado, contornado acesso ausente ou parado com "bloqueado", a causa geralmente é a mesma lacuna na configuração do projeto em vez de um problema com cada tarefa. Classifique quais threads são sólidas antes de corrigir qualquer coisa:

467 465 

4681. Peça a Claude na conversa: "Para cada thread aberta, liste o que você pediu a ela para fazer, o que ela assumiu ou não conseguiu alcançar e no que está aguardando." Claude lê cada thread e responde na conversa.4661. Peça a Claude na conversa: "Para cada thread aberta, liste o que você pediu a ela para fazer, o que ela assumiu ou não conseguiu alcançar e no que está aguardando." Claude lê cada thread e responde na conversa.

4692. Para threads que começaram de uma suposição errada, abra a thread de **Overview** e marque-a como resolvida de seu menu, ou diga a ela o que fazer em vez disso em sua caixa de mensagem. Seu branch e qualquer pull request permanecem no GitHub até que você os delete.4672. Para threads que começaram de uma suposição errada, abra a thread a partir de Overview e marque-a como resolvida em seu menu, ou diga a ela o que fazer em vez disso. Seu branch e qualquer pull request permanecem no GitHub até que você os delete.

4703. Corrija a lacuna uma vez, em [instruções do projeto](#give-a-project-standing-context) ou no [ambiente](#choose-an-environment-for-threads), depois envie uma thread antes de enviar o resto do trabalho novamente como novas threads.4683. Corrija a lacuna uma vez, em [instruções do projeto](#give-a-project-standing-context) ou no [ambiente](#choose-an-environment-for-threads), depois envie uma thread antes de enviar o resto do trabalho novamente como novas threads.

471 469 

472### Claude não respondeu470### Claude não respondeu

Details

71 71 

72**2. Escolha o que digitalizar**72**2. Escolha o que digitalizar**

73 73 

74O plugin lê seu repositório primeiro, depois oferece o repositório inteiro ou uma área focada, com a contagem de arquivos e custo relativo de cada opção indicados. Escolha o repositório inteiro, ou responda "I don't know" e o plugin escolhe um padrão sensato para o tamanho do seu repositório.74O plugin lê seu repositório primeiro, depois oferece o repositório inteiro ou uma área focada. Escolha o repositório inteiro, ou responda "I don't know" e o plugin escolhe um padrão sensato para o tamanho do seu repositório.

75 75 

76**3. Confirme a execução**76**3. Confirme a execução**

77 77 


79 79 

80**4. Leia o relatório**80**4. Leia o relatório**

81 81 

82Enquanto a digitalização é executada, ela relata cada estágio conforme começa, com o detalhe disponível em [`/workflows`](https://code.claude.com/docs/pt/workflows). Os resultados chegam em um diretório com timestamp em seu repositório, descrito em [Leia os resultados da digitalização](#read-the-scan-results).82Enquanto a digitalização é executada, ela relata cada estágio conforme começa, com o detalhe disponível em [`/workflows`](https://code.claude.com/docs/pt/workflows). Os resultados são gravados em um diretório com timestamp em seu repositório, descrito em [Leia os resultados da digitalização](#read-the-scan-results).

83 83 

84**5. Transforme descobertas em patches**84**5. Transforme descobertas em patches**

85 85 

86Execute `/claude-security` novamente e escolha **Suggest patches**, depois escolha quais descobertas abordar. Os patches revisados chegam na pasta `patches/` do relatório; [Corrija descobertas](#fix-findings) cobre como cada patch é construído e revisado.86Execute `/claude-security` novamente e escolha **Suggest patches**, depois escolha quais descobertas abordar. Os patches revisados são gravados na pasta `patches/` do relatório; [Corrija descobertas](#fix-findings) cobre como cada patch é construído e revisado.

87 87 

88**6. Aplique os patches que você aceita**88**6. Aplique os patches que você aceita**

89 89 


95 95 

96Quando sua branch tem commits que sua base não tem, o menu `/claude-security` oferece digitalizar apenas esse diff, para que você possa verificar uma branch antes de fazer merge. Você também pode digitalizar um de seus pull requests abertos, ou um único commit pedindo por ele, como "scan commit abc1234". Apenas alterações confirmadas são digitalizadas: confirme ou faça stash de edições em andamento primeiro, ou execute uma digitalização completa, que lê a árvore de trabalho.96Quando sua branch tem commits que sua base não tem, o menu `/claude-security` oferece digitalizar apenas esse diff, para que você possa verificar uma branch antes de fazer merge. Você também pode digitalizar um de seus pull requests abertos, ou um único commit pedindo por ele, como "scan commit abc1234". Apenas alterações confirmadas são digitalizadas: confirme ou faça stash de edições em andamento primeiro, ou execute uma digitalização completa, que lê a árvore de trabalho.

97 97 

98Digitalizações de alterações precisam de um repositório git; digitalizações completas de um diretório sem versão ainda funcionam. Encontrar seus pull requests abertos é o único passo que alcança a rede, e é oferecido apenas quando sua sessão já tem permissão para executar a CLI do GitHub e `gh` está conectado.98Digitalizações de alterações precisam de um repositório git; digitalizações completas de um diretório sem versão ainda funcionam. Encontrar seus pull requests abertos é oferecido apenas quando sua sessão já tem permissão para executar a CLI do GitHub e `gh` está conectado.

99 99 

100### Escopo de repositórios grandes100### Escopo de repositórios grandes

101 101 


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

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

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

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

124 124 

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

126 126 

127As descobertas aparecem no relatório apenas após agentes verificadores independentes as analisarem, o que mantém os relatórios curtos e vale a pena ler. Digitalizações são não determinísticas: duas digitalizações do mesmo código podem descobrir diferentes descobertas. Execute digitalizações regularmente e use os carimbos de revisão para atribuir cada relatório ao código exato e às configurações que cobriu.127As descobertas aparecem no relatório apenas após agentes verificadores independentes as analisarem, o que mantém os relatórios curtos e dignos de leitura. Digitalizações são não determinísticas: duas digitalizações do mesmo código podem revelar descobertas diferentes. Execute digitalizações regularmente.

128 128 

129## Corrija descobertas129## Corrija descobertas

130 130 

Details

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

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

104 * **Um ambiente compartilhado**: Proprietários [adicionam e excluem seus segredos](#add-a-credential) nas configurações de administrador. Sem uma função de administrador da organização, peça a um Proprietário para adicionar o segredo, porque o diálogo do ambiente não tem a seção **Network secrets**104 * **Um ambiente compartilhado**: Proprietários [adicionam e excluem seus segredos](#add-a-credential) nas configurações de administrador. Sem uma função de administrador da organização, peça a um Proprietário para adicionar o segredo, porque o diálogo do ambiente não tem a seção **Network secrets**

105* **Tipo de ambiente**: um ambiente na nuvem hospedado pela Anthropic que já existe. Um [ambiente auto-hospedado](https://code.claude.com/docs/pt/self-hosted-environments) não tem segredos de rede105* **Tipo de ambiente**: um ambiente na nuvem hospedado pela Anthropic. Um [ambiente auto-hospedado](https://code.claude.com/docs/pt/self-hosted-environments) não tem segredos de rede

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

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

108 108 

Details

14>14>

15> Para que todo pull request em um repositório seja revisado automaticamente no GitHub, consulte [Code Review](https://code.claude.com/docs/pt/code-review.md), um serviço gerenciado que um Owner ativa para sua organização.15> Para que todo pull request em um repositório seja revisado automaticamente no GitHub, consulte [Code Review](https://code.claude.com/docs/pt/code-review.md), um serviço gerenciado que um Owner ativa para sua organização.

16 16 

17`/review` é um alias de `/code-review`. Antes da v2.1.223, `/review` era um comando separado que executava uma revisão somente leitura, em passagem única, de um pull request do GitHub.17`/review` é um alias de `/code-review`.

18 18 

19**1. Execute /code-review**19**1. Execute /code-review**

20 20 


91* **`ultra`**: a revisão não usa nem atualiza o nível lembrado91* **`ultra`**: a revisão não usa nem atualiza o nível lembrado

92* **Nenhum nível jamais digitado**: a revisão usa o esforço atual da sessão92* **Nenhum nível jamais digitado**: a revisão usa o esforço atual da sessão

93 93 

94Antes da v2.1.223, um `/code-review` sem nível sempre usava o esforço atual da sessão.

95 

96### Publicar descobertas em um merge request do GitLab94### Publicar descobertas em um merge request do GitLab

97 95 

98Quando você passa `--comment` para um merge request do GitLab, o Claude Code publica as descobertas por meio da CLI `glab` do GitLab. Requer o Claude Code v2.1.257 ou posterior. Quando o `glab` não está instalado, o Claude imprime as descobertas no terminal.96Quando você passa `--comment` para um merge request do GitLab, o Claude Code publica as descobertas por meio da CLI `glab` do GitLab. Requer o Claude Code v2.1.257 ou posterior. Quando o `glab` não está instalado, o Claude imprime as descobertas no terminal.

commands.md +2 −2

Details

104| `/install-github-app` | Instale o Claude GitHub App para um repositório, com uma etapa opcional para configurar workflows do [GitHub Actions](https://code.claude.com/docs/pt/github-actions.md) e segredos. Orienta você através da seleção de um repositório e configuração da integração. Funciona apenas com repositórios github.com. Quando o git remote do seu repositório está em gitlab.com ou bitbucket.org, o comando imprime um aviso e sai em vez de iniciar a configuração. Para executar Claude Code a partir de pipelines GitLab, consulte [GitLab CI/CD](https://code.claude.com/docs/pt/gitlab-ci-cd.md) |104| `/install-github-app` | Instale o Claude GitHub App para um repositório, com uma etapa opcional para configurar workflows do [GitHub Actions](https://code.claude.com/docs/pt/github-actions.md) e segredos. Orienta você através da seleção de um repositório e configuração da integração. Funciona apenas com repositórios github.com. Quando o git remote do seu repositório está em gitlab.com ou bitbucket.org, o comando imprime um aviso e sai em vez de iniciar a configuração. Para executar Claude Code a partir de pipelines GitLab, consulte [GitLab CI/CD](https://code.claude.com/docs/pt/gitlab-ci-cd.md) |

105| `/install-slack-app` | Instale o Claude Slack app. Abre um navegador para completar o fluxo OAuth |105| `/install-slack-app` | Instale o Claude Slack app. Abre um navegador para completar o fluxo OAuth |

106| `/keybindings` | Abra seu arquivo de [atalhos de teclado](https://code.claude.com/docs/pt/keybindings.md) |106| `/keybindings` | Abra seu arquivo de [atalhos de teclado](https://code.claude.com/docs/pt/keybindings.md) |

107| `/list-agents` | Liste os subagentes, colegas da [equipe de agentes](https://code.claude.com/docs/pt/agent-teams.md) e outras sessões Claude Code que Claude pode enviar mensagens, com o nome a usar para cada. Consulte [mensagens entre sessões](https://code.claude.com/docs/pt/cross-session-messaging.md). Também disponível como `/peers`. Requer Claude Code v2.1.224 ou posterior; versões anteriores relatam `Unknown command: /list-agents`. Linhas de colegas e a primeira linha mostrando o nome da própria sessão requerem v2.1.239 ou posterior. Disponível apenas em sessões onde [mensagens entre sessões estão ativadas](https://code.claude.com/docs/pt/cross-session-messaging.md#availability) |107| `/list-agents` | Liste os subagentes, colegas da [equipe de agentes](https://code.claude.com/docs/pt/agent-teams.md) e outras sessões Claude Code que Claude pode enviar mensagens, com o nome a usar para cada. Consulte [mensagens entre sessões](https://code.claude.com/docs/pt/cross-session-messaging.md). Também disponível como `/peers`. Linhas de colegas e a primeira linha mostrando o nome da própria sessão requerem v2.1.239 ou posterior. Disponível apenas em sessões onde [mensagens entre sessões estão ativadas](https://code.claude.com/docs/pt/cross-session-messaging.md#availability) |

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

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

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


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

133| `/restart` | Reinicie o Claude Code e retome esta sessão, o que aplica uma atualização instalada. Execute-o quando o rodapé oferecê-lo após a instalação de uma atualização. Requer um plano Pro, Max ou Ultra e uma instalação nativa no macOS ou Linux, não WSL. Requer Claude Code v2.1.288 ou posterior. Alias: `/update` |133| `/restart` | Reinicie o Claude Code e retome esta sessão, o que aplica uma atualização instalada. Execute-o quando o rodapé oferecê-lo após a instalação de uma atualização. Requer um plano Pro, Max ou Ultra e uma instalação nativa no macOS ou Linux, não WSL. Requer Claude Code v2.1.288 ou posterior. Alias: `/update` |

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

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

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

137| `/run` | **[Skill](https://code.claude.com/docs/pt/skills.md#bundled-skills).** Inicie e dirija o aplicativo do seu projeto para ver uma mudança funcionando, não apenas passando testes. Consulte [Execute e verifique seu aplicativo](https://code.claude.com/docs/pt/skills.md#run-and-verify-your-app) |137| `/run` | **[Skill](https://code.claude.com/docs/pt/skills.md#bundled-skills).** Inicie e dirija o aplicativo do seu projeto para ver uma mudança funcionando, não apenas passando testes. Consulte [Execute e verifique seu aplicativo](https://code.claude.com/docs/pt/skills.md#run-and-verify-your-app) |

138| `/run-skill-generator` | **[Skill](https://code.claude.com/docs/pt/skills.md#bundled-skills).** Ensine `/run` e `/verify` como fazer o build, iniciar e dirigir o aplicativo do seu projeto a partir de um ambiente limpo escrevendo uma [skill](https://code.claude.com/docs/pt/skills.md#run-and-verify-your-app) por projeto |138| `/run-skill-generator` | **[Skill](https://code.claude.com/docs/pt/skills.md#bundled-skills).** Ensine `/run` e `/verify` como fazer o build, iniciar e dirigir o aplicativo do seu projeto a partir de um ambiente limpo escrevendo uma [skill](https://code.claude.com/docs/pt/skills.md#run-and-verify-your-app) por projeto |

costs.md +6 −6

Details

292 292 

293[Hooks](https://code.claude.com/docs/pt/hooks.md) personalizados podem pré-processar dados antes de Claude vê-los. Em vez de Claude ler um arquivo de log de 10.000 linhas para encontrar erros, um hook pode fazer grep para `ERROR` e retornar apenas linhas correspondentes, reduzindo contexto de dezenas de milhares de tokens para centenas.293[Hooks](https://code.claude.com/docs/pt/hooks.md) personalizados podem pré-processar dados antes de Claude vê-los. Em vez de Claude ler um arquivo de log de 10.000 linhas para encontrar erros, um hook pode fazer grep para `ERROR` e retornar apenas linhas correspondentes, reduzindo contexto de dezenas de milhares de tokens para centenas.

294 294 

295Uma [skill](https://code.claude.com/docs/pt/skills.md) pode dar a Claude conhecimento de domínio para que não tenha que explorar. Por exemplo, uma skill "codebase-overview" poderia descrever a arquitetura do seu projeto, diretórios-chave e convenções de nomenclatura. Quando Claude invoca a skill, obtém este contexto imediatamente em vez de gastar tokens lendo múltiplos arquivos para entender a estrutura.295Este hook PreToolUse reduz a saída de teste às suas últimas 100 linhas:

296 

297Por exemplo, este hook PreToolUse filtra a saída de teste para mostrar apenas falhas:

298 296 

299> [tab] settings.json297> [tab] settings.json

300>298>


320 318 

321> [tab] filter-test-output.sh319> [tab] filter-test-output.sh

322>320>

323> O hook chama este script. Crie a pasta com `mkdir -p ~/.claude/hooks`, salve o script abaixo como `~/.claude/hooks/filter-test-output.sh` e torne-o executável com `chmod +x ~/.claude/hooks/filter-test-output.sh`. Ele verifica se o comando é um executor de teste e o modifica para mostrar apenas falhas:321> O hook chama este script. Crie a pasta com `mkdir -p ~/.claude/hooks`, salve o script abaixo como `~/.claude/hooks/filter-test-output.sh` e torne-o executável com `chmod +x ~/.claude/hooks/filter-test-output.sh`. Ele verifica se o comando é um executor de teste e, em caso afirmativo, mantém apenas as últimas 100 linhas de sua saída:

324>322>

325> ```bash theme={null}323> ```bash theme={null}

326> #!/bin/bash324> #!/bin/bash

327> input=$(cat)325> input=$(cat)

328> cmd=$(echo "$input" | jq -r '.tool_input.command')326> cmd=$(echo "$input" | jq -r '.tool_input.command')

329>327>

330> # If running tests, filter to show only failures328> # If running tests, keep only the last 100 lines

331> pattern='^(npm test|pytest|go test)( [^;&|<>`$#\\[:cntrl:]]*)?$'329> pattern='^(npm test|pytest|go test)( [^;&|<>`$#\\[:cntrl:]]*)?$'

332> if [[ "$cmd" =~ $pattern ]]; then330> if [[ "$cmd" =~ $pattern ]]; then

333> filtered_cmd="$cmd 2>&1 | grep -A 5 -E '(FAIL|ERROR|error:)' | head -100"331> filtered_cmd="$cmd 2>&1 | tail -n 100"

334> echo "$input" | jq --arg filtered "$filtered_cmd" \332> echo "$input" | jq --arg filtered "$filtered_cmd" \

335> '{hookSpecificOutput: {hookEventName: "PreToolUse", updatedInput: (.tool_input + {command: $filtered})}}'333> '{hookSpecificOutput: {hookEventName: "PreToolUse", updatedInput: (.tool_input + {command: $filtered})}}'

336> else334> else


340 338 

341Para verificar a configuração, execute `/hooks` e verifique se o hook aparece sob PreToolUse. Você também pode iniciar Claude Code com `claude --debug-file ./claude-debug.txt` e pedir a Claude para executar `npm test`. Quando o hook reescreve o comando, esse arquivo de log contém uma linha `modified tool input keys` listando `command` e os outros campos de entrada Bash.339Para verificar a configuração, execute `/hooks` e verifique se o hook aparece sob PreToolUse. Você também pode iniciar Claude Code com `claude --debug-file ./claude-debug.txt` e pedir a Claude para executar `npm test`. Quando o hook reescreve o comando, esse arquivo de log contém uma linha `modified tool input keys` listando `command` e os outros campos de entrada Bash.

342 340 

341Uma [skill](https://code.claude.com/docs/pt/skills.md) pode dar a Claude conhecimento de domínio para que não tenha que explorar. Por exemplo, uma skill "codebase-overview" poderia descrever a arquitetura do seu projeto, diretórios-chave e convenções de nomenclatura. Quando Claude invoca a skill, obtém este contexto imediatamente em vez de gastar tokens lendo múltiplos arquivos para entender a estrutura.

342 

343### Mova instruções de CLAUDE.md para skills343### Mova instruções de CLAUDE.md para skills

344 344 

345Seu arquivo [CLAUDE.md](https://code.claude.com/docs/pt/memory.md) é carregado no contexto no início da sessão. Se contiver instruções detalhadas para fluxos de trabalho específicos (como revisões de PR ou migrações de banco de dados), esses tokens estão presentes mesmo quando você está fazendo trabalho não relacionado. [Skills](https://code.claude.com/docs/pt/skills.md) carregam sob demanda apenas quando invocadas, portanto mover instruções especializadas para skills mantém seu contexto base menor. Procure manter CLAUDE.md com menos de 200 linhas incluindo apenas essenciais.345Seu arquivo [CLAUDE.md](https://code.claude.com/docs/pt/memory.md) é carregado no contexto no início da sessão. Se contiver instruções detalhadas para fluxos de trabalho específicos (como revisões de PR ou migrações de banco de dados), esses tokens estão presentes mesmo quando você está fazendo trabalho não relacionado. [Skills](https://code.claude.com/docs/pt/skills.md) carregam sob demanda apenas quando invocadas, portanto mover instruções especializadas para skills mantém seu contexto base menor. Procure manter CLAUDE.md com menos de 200 linhas incluindo apenas essenciais.

Details

56 56 

57### Entrega de mensagem57### Entrega de mensagem

58 58 

59O Claude receptor lê a mensagem entre chamadas de ferramenta durante um turno ativo, então uma ferramenta em execução nunca é interrompida. Quando a sessão receptora está ociosa, Claude Code inicia um novo turno com a mensagem.59O Claude receptor lê a mensagem entre chamadas de ferramenta durante um turno ativo. Quando a sessão receptora está ociosa, Claude Code inicia um novo turno com a mensagem.

60 60 

61Uma mensagem de outra sessão chega como texto simples. Se mencionar um arquivo ou um [recurso MCP](https://code.claude.com/docs/pt/mcp.md#use-mcp-resources) com `@`, Claude vê a menção como escrita e Claude Code não anexa nada, se a mensagem inicia um novo turno ou chega durante um. Claude ainda pode abrir um caminho mencionado na máquina receptora com suas próprias ferramentas, sujeito às permissões dessa sessão.61Uma mensagem de outra sessão chega como texto simples. Se mencionar um arquivo ou um [recurso MCP](https://code.claude.com/docs/pt/mcp.md#use-mcp-resources) com `@`, Claude vê a menção como escrita e Claude Code não anexa nada, se a mensagem inicia um novo turno ou chega durante um. Claude ainda pode abrir um caminho mencionado na máquina receptora com suas próprias ferramentas, sujeito às permissões dessa sessão.

62 62 

desktop.md +3 −3

Details

256 256 

257### Minimizar um painel257### Minimizar um painel

258 258 

259Para manter o Terminal, o Browser ou o [iOS Simulator](https://code.claude.com/docs/pt/desktop-ios-simulator.md) visível em tamanho reduzido, clique em **Minimize** no cabeçalho do painel. O botão requer Claude Desktop v4.0.0 ou posterior e uma conta Claude em vez de um [provedor terceirizado](https://code.claude.com/docs/pt/third-party-integrations.md). O painel Browser o tem apenas em sessões locais.259Para manter o Terminal, o Browser, o [iOS Simulator](https://code.claude.com/docs/pt/desktop-ios-simulator.md) ou um [chat lateral](#ask-a-side-question-without-derailing-the-session) visível em tamanho reduzido, clique em **Minimize** no cabeçalho do painel. O botão requer Claude Desktop v4.0.0 ou posterior e uma conta Claude em vez de um [provedor terceirizado](https://code.claude.com/docs/pt/third-party-integrations.md). O painel Browser o tem apenas em sessões locais.

260 260 

261O painel minimizado fica no [painel de detalhes da sessão](#see-session-details) enquanto esse painel estiver na tela, e flutua em um canto do chat caso contrário:261O painel minimizado fica no [painel de detalhes da sessão](#see-session-details) enquanto esse painel estiver na tela, e flutua em um canto do chat caso contrário:

262 262 


1382 1382 

1383> [accordion] Quando as edições em um worktree continuam funcionando1383> [accordion] Quando as edições em um worktree continuam funcionando

1384>1384>

1385> Em uma máquina remota Linux ou macOS, a verificação não passa pelo Desktop, portanto as edições dentro do worktree continuam funcionando enquanto o Desktop está desconectado. Antes do Claude Desktop v2.37337.0, isso vale apenas para uma máquina remota Linux.1385> Em uma máquina remota Linux ou macOS, as edições dentro do worktree podem continuar funcionando enquanto o Desktop está desconectado, porque a verificação de cada edição pode ser executada sem o Desktop. Antes do [Claude Desktop v2.37337.0](#check-your-version), isso funciona somente em uma máquina remota Linux.

1386>1386>

1387> As edições ainda falham em alguns casos, incluindo estes:1387> As edições ainda falham em alguns casos, incluindo estes:

1388>1388>


2050 2050 

2051* **Sessões locais nesta máquina**: um arquivo de configurações gerenciadas implantado em disco se aplica. Configurações gerenciadas enviadas remotamente através do console de administração também alcançam essas sessões na API da Anthropic quando a sessão se autentica com um [login elegível](https://code.claude.com/docs/pt/server-managed-settings.md#platform-availability), seguindo a mesma [precedência de configurações](https://code.claude.com/docs/pt/settings.md#settings-precedence) que a CLI do terminal.2051* **Sessões locais nesta máquina**: um arquivo de configurações gerenciadas implantado em disco se aplica. Configurações gerenciadas enviadas remotamente através do console de administração também alcançam essas sessões na API da Anthropic quando a sessão se autentica com um [login elegível](https://code.claude.com/docs/pt/server-managed-settings.md#platform-availability), seguindo a mesma [precedência de configurações](https://code.claude.com/docs/pt/settings.md#settings-precedence) que a CLI do terminal.

2052* **[Sessões na nuvem](#cloud-sessions)**: recebem [configurações gerenciadas pelo servidor](https://code.claude.com/docs/pt/server-managed-settings.md); arquivos implantados em dispositivos não as alcançam, porque são executadas em VMs gerenciadas pela Anthropic. Sessões roteadas para um [ambiente auto-hospedado](https://code.claude.com/docs/pt/self-hosted-environments) também leem o arquivo de configurações gerenciadas na imagem do executor. [Como Claude Code combina fontes gerenciadas](https://code.claude.com/docs/pt/managed-settings.md#how-claude-code-combines-managed-sources) diz quando esse arquivo se aplica.2052* **[Sessões na nuvem](#cloud-sessions)**: recebem [configurações gerenciadas pelo servidor](https://code.claude.com/docs/pt/server-managed-settings.md); arquivos implantados em dispositivos não as alcançam, porque são executadas em VMs gerenciadas pela Anthropic. Sessões roteadas para um [ambiente auto-hospedado](https://code.claude.com/docs/pt/self-hosted-environments) também leem o arquivo de configurações gerenciadas na imagem do executor. [Como Claude Code combina fontes gerenciadas](https://code.claude.com/docs/pt/managed-settings.md#how-claude-code-combines-managed-sources) diz quando esse arquivo se aplica.

2053* **[Sessões SSH](#ssh-sessions)**: a sessão lê o arquivo de configurações gerenciadas do host remoto. O Desktop em si lê `sshConfigs`, `sshHostAllowlist`, `disableSshSavedPasswords` e `disableDesktopLocalSessions` na máquina local. Se você entregar mais de uma fonte gerenciada, ele as lê de [apenas uma por padrão](https://code.claude.com/docs/pt/managed-settings.md#how-claude-code-combines-managed-sources).2053* **[Sessões SSH](#ssh-sessions)**: a sessão lê o arquivo de configurações gerenciadas do host remoto. O Desktop em si lê `sshConfigs`, `sshHostAllowlist`, `disableSshSavedPasswords` e `disableDesktopLocalSessions` na máquina local. Se você entregar mais de uma fonte gerenciada, ele as lê de [apenas uma por padrão](https://code.claude.com/docs/pt/managed-settings.md#how-claude-code-combines-managed-sources). Se você definir `permissions.disableBypassPermissionsMode` ou `disableAutoMode` nas configurações gerenciadas em vigor na máquina local, o seletor de modo de uma sessão SSH não oferece esse modo, independentemente do que o host remoto defina.

2054* **[Sessões Cowork](https://claude.com/docs/cowork/overview)**: em uma sessão Cowork nesta máquina, Claude Code nunca busca configurações do console de administração, mesmo quando o usuário se conecta com uma conta Team ou Enterprise, e lê a política implantada na máquina a menos que sua configuração Claude Desktop defina `requireCoworkFullVmSandbox`. Sessões Cowork remotas não recebem nenhuma. Veja [onde e quando uma política se aplica](https://code.claude.com/docs/pt/managed-settings.md#where-and-when-a-policy-applies) para quais arquivos de dispositivo alcançam Cowork, e [regras de permissão MCP](https://code.claude.com/docs/pt/permissions.md#mcp) para como as regras `Bash` e `WebFetch` se aplicam às ferramentas de Cowork.2054* **[Sessões Cowork](https://claude.com/docs/cowork/overview)**: em uma sessão Cowork nesta máquina, Claude Code nunca busca configurações do console de administração, mesmo quando o usuário se conecta com uma conta Team ou Enterprise, e lê a política implantada na máquina a menos que sua configuração Claude Desktop defina `requireCoworkFullVmSandbox`. Sessões Cowork remotas não recebem nenhuma. Veja [onde e quando uma política se aplica](https://code.claude.com/docs/pt/managed-settings.md#where-and-when-a-policy-applies) para quais arquivos de dispositivo alcançam Cowork, e [regras de permissão MCP](https://code.claude.com/docs/pt/permissions.md#mcp) para como as regras `Bash` e `WebFetch` se aplicam às ferramentas de Cowork.

2055 2055 

2056Em sessões locais e SSH, o aplicativo desktop entrega cada conector claude.ai conectado do usuário para Claude Code diretamente. Nenhuma configuração MCP ou `managed-mcp.json` alcança esses conectores, qualquer que seja a fonte de configurações ou local de arquivo que você use. Para bloquear as ferramentas de um conector nessas sessões, use os [controles de ferramentas de conector](https://code.claude.com/docs/pt/mcp.md#organization-controls-on-connector-tools) de sua organização. [Como conectores alcançam Claude Code](https://code.claude.com/docs/pt/mcp.md#how-connectors-reach-claude-code) mostra quais configurações governam conectores em cada tipo de sessão.2056Em sessões locais e SSH, o aplicativo desktop entrega cada conector claude.ai conectado do usuário para Claude Code diretamente. Nenhuma configuração MCP ou `managed-mcp.json` alcança esses conectores, qualquer que seja a fonte de configurações ou local de arquivo que você use. Para bloquear as ferramentas de um conector nessas sessões, use os [controles de ferramentas de conector](https://code.claude.com/docs/pt/mcp.md#organization-controls-on-connector-tools) de sua organização. [Como conectores alcançam Claude Code](https://code.claude.com/docs/pt/mcp.md#how-connectors-reach-claude-code) mostra quais configurações governam conectores em cada tipo de sessão.

Details

8 8 

9> [!NOTE]9> [!NOTE]

10>10>

11> O painel iOS Simulator está em beta público no Claude Code Desktop no macOS. Está disponível nos planos Pro, Max, Ultra, Team e Enterprise, exceto em organizações Enterprise que têm uma configuração HIPAA ativada.11> O painel iOS Simulator está em beta público no Claude Code Desktop no macOS. Está disponível nos planos Pro, Max, Ultra, Team e Enterprise, exceto em organizações Enterprise que têm uma configuração HIPAA ativada. Não está disponível se você usar um [provedor terceirizado](https://code.claude.com/docs/pt/third-party-integrations.md).

12 12 

13O painel iOS Simulator mostra seu aplicativo em execução no iOS Simulator da Apple ao lado de sua conversa no Claude Code Desktop. Quando Claude constrói, instala, inicia ou verifica seu aplicativo em um simulador, o painel abre automaticamente e transmite a tela do dispositivo ao vivo. Use-o para assistir Claude executar e testar seu aplicativo, ou toque no aplicativo você mesmo enquanto Claude continua trabalhando.13O painel iOS Simulator mostra seu aplicativo em execução no iOS Simulator da Apple ao lado de sua conversa no Claude Code Desktop. Quando Claude constrói, instala, inicia ou verifica seu aplicativo em um simulador, o painel abre automaticamente e transmite a tela do dispositivo ao vivo. Use-o para assistir Claude executar e testar seu aplicativo, ou toque no aplicativo você mesmo enquanto Claude continua trabalhando.

14 14 


147* Declare o objetivo explicitamente, por exemplo "execute o aplicativo no iOS Simulator e toque no fluxo de inscrição".147* Declare o objetivo explicitamente, por exemplo "execute o aplicativo no iOS Simulator e toque no fluxo de inscrição".

148* Confirme que Xcode e os simuladores iOS estão instalados e que você está usando uma [versão recomendada do Xcode](#requirements).148* Confirme que Xcode e os simuladores iOS estão instalados e que você está usando uma [versão recomendada do Xcode](#requirements).

149* Se sua organização gerencia Claude Code, as [ferramentas de simulador podem estar desativadas por política](#turn-off-simulator-access).149* Se sua organização gerencia Claude Code, as [ferramentas de simulador podem estar desativadas por política](#turn-off-simulator-access).

150* Se você está em uma organização Enterprise que tem uma configuração HIPAA ativada, o painel do simulador não está disponível para você.150* Se você está em uma organização Enterprise que tem uma configuração HIPAA ativada, ou se você usa um [provedor terceirizado](https://code.claude.com/docs/pt/third-party-integrations.md), o painel do simulador não está disponível para você.

151* O painel do simulador requer Claude Desktop v1.24012.0 ou posterior. Abra **Claude > Check for Updates…**, depois reinicie o aplicativo.151* O painel do simulador requer Claude Desktop v1.24012.0 ou posterior. Abra **Claude > Check for Updates…**, depois reinicie o aplicativo.

152 152 

153### O painel do simulador diz que nenhum simulador foi encontrado153### O painel do simulador diz que nenhum simulador foi encontrado

env-vars.md +5 −5

Details

204| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Defina como `0` para impedir que o Claude Code abra o navegador automaticamente quando um novo [artefato](https://code.claude.com/docs/pt/artifacts.md#create-an-artifact) for publicado |204| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Defina como `0` para impedir que o Claude Code abra o navegador automaticamente quando um novo [artefato](https://code.claude.com/docs/pt/artifacts.md#create-an-artifact) for publicado |

205| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Defina como `0` para impedir que o Claude leia e responda a [comentários em um artefato](https://code.claude.com/docs/pt/artifacts.md#collect-comments-on-an-artifact). Não tem efeito quando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` [desativou os artefatos](https://code.claude.com/docs/pt/artifacts.md#availability). Requer Claude Code v2.1.221 ou posterior |205| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Defina como `0` para impedir que o Claude leia e responda a [comentários em um artefato](https://code.claude.com/docs/pt/artifacts.md#collect-comments-on-an-artifact). Não tem efeito quando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` [desativou os artefatos](https://code.claude.com/docs/pt/artifacts.md#availability). Requer Claude Code v2.1.221 ou posterior |

206| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Defina como `0` para impedir que o Claude [responda por conta própria a comentários enviados a ele](https://code.claude.com/docs/pt/artifacts.md#let-claude-reply-to-comments-on-its-own). Requer Claude Code v2.1.228 ou posterior |206| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Defina como `0` para impedir que o Claude [responda por conta própria a comentários enviados a ele](https://code.claude.com/docs/pt/artifacts.md#let-claude-reply-to-comments-on-its-own). Requer Claude Code v2.1.228 ou posterior |

207| `CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS` | Defina como `0` para impedir que o Claude aplique pequenas alterações ao arquivo de um [artefato](https://code.claude.com/docs/pt/artifacts.md#update-an-artifact) como parte de sua publicação. O Claude então edita o arquivo com suas ferramentas de edição de arquivos e o publica como uma etapa separada. Requer Claude Code v2.1.300 ou posterior |207| `CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS` | Defina como `0` para impedir que o Claude [aplique pequenas alterações](https://code.claude.com/docs/pt/artifacts.md#turn-off-one-step-artifact-updates) ao arquivo de um artefato como parte da publicação. O Claude então edita o arquivo com suas ferramentas de edição de arquivos e o publica como uma etapa separada. Requer Claude Code v2.1.300 ou posterior |

208| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Defina como `0` para omitir do início do system prompt o [bloco de atribuição](https://code.claude.com/docs/pt/llm-gateway-protocol.md#system-prompt-attribution-block), que carrega a versão do cliente e uma impressão digital do prompt. O cache em uma conexão direta com a Anthropic API não é afetado em nenhum dos casos. Em algumas configurações de conexão direta, o Claude Code mantém o bloco nas requisições do classificador do [modo auto](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode) mesmo quando você define `0`. Em [Bloco de atribuição do system prompt](https://code.claude.com/docs/pt/llm-gateway-protocol.md#system-prompt-attribution-block), verifique quais conexões e credenciais isso abrange. Antes da v2.1.181, o bloco incluía um token por requisição em URLs base personalizadas e conexões do Microsoft Foundry, então, nessas versões, defina-a como `0` quando seu gateway de LLM fizer cache com base no corpo da requisição ou encaminhar requisições a um provedor terceiro, ou quando você se conectar diretamente ao Microsoft Foundry |208| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Defina como `0` para omitir do início do system prompt o [bloco de atribuição](https://code.claude.com/docs/pt/llm-gateway-protocol.md#system-prompt-attribution-block), que carrega a versão do cliente e uma impressão digital do prompt. O cache em uma conexão direta com a Anthropic API não é afetado em nenhum dos casos. Em algumas configurações de conexão direta, o Claude Code mantém o bloco nas requisições do classificador do [modo auto](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode) mesmo quando você define `0`. Em [Bloco de atribuição do system prompt](https://code.claude.com/docs/pt/llm-gateway-protocol.md#system-prompt-attribution-block), verifique quais conexões e credenciais isso abrange. Antes da v2.1.181, o bloco incluía um token por requisição em URLs base personalizadas e conexões do Microsoft Foundry, então, nessas versões, defina-a como `0` quando seu gateway de LLM fizer cache com base no corpo da requisição ou encaminhar requisições a um provedor terceiro, ou quando você se conectar diretamente ao Microsoft Foundry |

209| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Removida na v2.1.283. Use `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` em vez disso |209| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Removida na v2.1.283. Use `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` em vez disso |

210| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Define a janela de compactação automática, ou seja, quão cheio o contexto fica antes da compactação, de `100000` a `1000000` tokens. Valores com sufixo, como `200k`, requerem v2.1.304 ou posterior. Para a precedência sobre as outras formas de definir a janela e o efeito no `used_percentage` da linha de status, consulte [Definir a janela de compactação automática](https://code.claude.com/docs/pt/model-config.md#set-the-auto-compact-window) |210| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Define a janela de compactação automática, ou seja, quão cheio o contexto fica antes da compactação, de `100000` a `1000000` tokens. Valores com sufixo, como `200k`, requerem v2.1.304 ou posterior. Para a precedência sobre as outras formas de definir a janela e o efeito no `used_percentage` da linha de status, consulte [Definir a janela de compactação automática](https://code.claude.com/docs/pt/model-config.md#set-the-auto-compact-window) |


502| `OTEL_LOG_TOOL_CONTENT` | Defina como `1` para incluir o conteúdo das ferramentas no evento de span `tool.output` do OpenTelemetry. Os atributos de span carregam o conteúdo das ferramentas sob [seus próprios controles](https://code.claude.com/docs/pt/monitoring-usage.md#new-context-gates). Requer [rastreamento](https://code.claude.com/docs/pt/monitoring-usage.md#traces-beta). Desativada por padrão para proteger dados sensíveis. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada nas [configurações de projeto e locais](https://code.claude.com/docs/pt/settings-reference.md#variables-claude-code-ignores-in-env), exceto pelos valores de desativação que essa seção descreve. Consulte [Monitoramento](https://code.claude.com/docs/pt/monitoring-usage.md#tool-output-span-event) |502| `OTEL_LOG_TOOL_CONTENT` | Defina como `1` para incluir o conteúdo das ferramentas no evento de span `tool.output` do OpenTelemetry. Os atributos de span carregam o conteúdo das ferramentas sob [seus próprios controles](https://code.claude.com/docs/pt/monitoring-usage.md#new-context-gates). Requer [rastreamento](https://code.claude.com/docs/pt/monitoring-usage.md#traces-beta). Desativada por padrão para proteger dados sensíveis. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada nas [configurações de projeto e locais](https://code.claude.com/docs/pt/settings-reference.md#variables-claude-code-ignores-in-env), exceto pelos valores de desativação que essa seção descreve. Consulte [Monitoramento](https://code.claude.com/docs/pt/monitoring-usage.md#tool-output-span-event) |

503| `OTEL_LOG_TOOL_DETAILS` | Defina como `1` para incluir argumentos de entrada das ferramentas; nomes de servidores MCP; nomes de workflows criados pelo usuário; strings de erro brutas em falhas de ferramentas; a `category` de recusa nos eventos `api_refusal`; nomes reais de agentes, skills, plugins e servidores MCP nas [métricas de custo e tokens](https://code.claude.com/docs/pt/monitoring-usage.md#cost-counter); e outros detalhes das ferramentas em métricas, traces e logs do OpenTelemetry. Desativada por padrão para proteger PII. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada nas [configurações de projeto e locais](https://code.claude.com/docs/pt/settings-reference.md#variables-claude-code-ignores-in-env), exceto pelos valores de desativação que essa seção descreve. Consulte [Monitoramento](https://code.claude.com/docs/pt/monitoring-usage.md) |503| `OTEL_LOG_TOOL_DETAILS` | Defina como `1` para incluir argumentos de entrada das ferramentas; nomes de servidores MCP; nomes de workflows criados pelo usuário; strings de erro brutas em falhas de ferramentas; a `category` de recusa nos eventos `api_refusal`; nomes reais de agentes, skills, plugins e servidores MCP nas [métricas de custo e tokens](https://code.claude.com/docs/pt/monitoring-usage.md#cost-counter); e outros detalhes das ferramentas em métricas, traces e logs do OpenTelemetry. Desativada por padrão para proteger PII. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada nas [configurações de projeto e locais](https://code.claude.com/docs/pt/settings-reference.md#variables-claude-code-ignores-in-env), exceto pelos valores de desativação que essa seção descreve. Consulte [Monitoramento](https://code.claude.com/docs/pt/monitoring-usage.md) |

504| `OTEL_LOG_USER_PROMPTS` | Defina como `1` para incluir o texto dos prompts do usuário em traces e logs do OpenTelemetry. Desativada por padrão (os prompts são ocultados). Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada nas [configurações de projeto e locais](https://code.claude.com/docs/pt/settings-reference.md#variables-claude-code-ignores-in-env), exceto pelos valores de desativação que essa seção descreve. Consulte [Monitoramento](https://code.claude.com/docs/pt/monitoring-usage.md) |504| `OTEL_LOG_USER_PROMPTS` | Defina como `1` para incluir o texto dos prompts do usuário em traces e logs do OpenTelemetry. Desativada por padrão (os prompts são ocultados). Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada nas [configurações de projeto e locais](https://code.claude.com/docs/pt/settings-reference.md#variables-claude-code-ignores-in-env), exceto pelos valores de desativação que essa seção descreve. Consulte [Monitoramento](https://code.claude.com/docs/pt/monitoring-usage.md) |

505| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Defina como `false` para excluir o UUID da conta dos atributos de métricas (padrão: incluído). Consulte [Monitoramento](https://code.claude.com/docs/pt/monitoring-usage.md) |505| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Defina como `false` para excluir o UUID da conta dos atributos de métricas e eventos (padrão: incluído). Consulte [Monitoramento](https://code.claude.com/docs/pt/monitoring-usage.md) |

506| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Defina como `true` para incluir o ponto de entrada da sessão nos atributos de métricas (padrão: excluído). Adicionada na v2.1.152. Consulte [Monitoramento](https://code.claude.com/docs/pt/monitoring-usage.md) |506| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Defina como `true` para incluir o ponto de entrada da sessão nos atributos de métricas e eventos (padrão: excluído). Adicionada na v2.1.152. Consulte [Monitoramento](https://code.claude.com/docs/pt/monitoring-usage.md) |

507| `OTEL_METRICS_INCLUDE_REPOSITORY` | Defina como `true` para marcar métricas e eventos do OpenTelemetry com atributos `vcs.*` que identificam o repositório da sessão (padrão: excluído). Requer Claude Code v2.1.269 ou posterior. Consulte [Atributos de repositório](https://code.claude.com/docs/pt/monitoring-usage.md#repository-attributes) |507| `OTEL_METRICS_INCLUDE_REPOSITORY` | Defina como `true` para marcar métricas e eventos do OpenTelemetry com atributos `vcs.*` que identificam o repositório da sessão (padrão: excluído). Requer Claude Code v2.1.269 ou posterior. Consulte [Atributos de repositório](https://code.claude.com/docs/pt/monitoring-usage.md#repository-attributes) |

508| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | A partir da v2.1.161, o Claude Code anexa as chaves de `OTEL_RESOURCE_ATTRIBUTES` aos rótulos dos pontos de dados de métricas. Defina como `false` para excluí-las (padrão: incluídas). Consulte [Monitoramento](https://code.claude.com/docs/pt/monitoring-usage.md#multi-team-organization-support) |508| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | A partir da v2.1.161, o Claude Code anexa as chaves de `OTEL_RESOURCE_ATTRIBUTES` aos rótulos dos pontos de dados de métricas. Defina como `false` para excluí-las (padrão: incluídas). Consulte [Monitoramento](https://code.claude.com/docs/pt/monitoring-usage.md#multi-team-organization-support) |

509| `OTEL_METRICS_INCLUDE_SESSION_ID` | Defina como `false` para excluir o ID da sessão dos atributos de métricas (padrão: incluído). Consulte [Monitoramento](https://code.claude.com/docs/pt/monitoring-usage.md) |509| `OTEL_METRICS_INCLUDE_SESSION_ID` | Defina como `false` para excluir o ID da sessão dos atributos de métricas e eventos (padrão: incluído). Consulte [Monitoramento](https://code.claude.com/docs/pt/monitoring-usage.md) |

510| `OTEL_METRICS_INCLUDE_VERSION` | Defina como `true` para incluir a versão do Claude Code nos atributos de métricas (padrão: excluída). Consulte [Monitoramento](https://code.claude.com/docs/pt/monitoring-usage.md) |510| `OTEL_METRICS_INCLUDE_VERSION` | Defina como `true` para incluir a versão do Claude Code nos atributos de métricas e eventos (padrão: excluída). Consulte [Monitoramento](https://code.claude.com/docs/pt/monitoring-usage.md) |

511| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Sobrescreve o orçamento de caracteres para os metadados de skills mostrados à [ferramenta Skill](https://code.claude.com/docs/pt/skills.md#control-who-invokes-a-skill). O orçamento se ajusta dinamicamente a 1% da janela de contexto, com um fallback de 8.000 caracteres. Nome legado mantido para compatibilidade com versões anteriores |511| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Sobrescreve o orçamento de caracteres para os metadados de skills mostrados à [ferramenta Skill](https://code.claude.com/docs/pt/skills.md#control-who-invokes-a-skill). O orçamento se ajusta dinamicamente a 1% da janela de contexto, com um fallback de 8.000 caracteres. Nome legado mantido para compatibilidade com versões anteriores |

512| `TASK_MAX_OUTPUT_LENGTH` | Removida na v2.1.277 e agora sem efeito, junto com a ferramenta `TaskOutput` que ela dimensionava. Anteriormente definia o número máximo de caracteres da saída de uma [tarefa em segundo plano](https://code.claude.com/docs/pt/tools-reference.md#background-commands) que a ferramenta `TaskOutput` mantinha. Agora o Claude lê o arquivo de saída de uma tarefa em segundo plano com `Read` |512| `TASK_MAX_OUTPUT_LENGTH` | Removida na v2.1.277 e agora sem efeito, junto com a ferramenta `TaskOutput` que ela dimensionava. Anteriormente definia o número máximo de caracteres da saída de uma [tarefa em segundo plano](https://code.claude.com/docs/pt/tools-reference.md#background-commands) que a ferramenta `TaskOutput` mantinha. Agora o Claude lê o arquivo de saída de uma tarefa em segundo plano com `Read` |

513| `USE_BUILTIN_RIPGREP` | Defina como `0` para usar o `rg` instalado no sistema em vez do `rg` incluído no Claude Code |513| `USE_BUILTIN_RIPGREP` | Defina como `0` para usar o `rg` instalado no sistema em vez do `rg` incluído no Claude Code |

errors.md +138 −16

Details

104| `Failed to authenticate: OAuth session expired and could not be refreshed` | [Authentication](#login-expired) |104| `Failed to authenticate: OAuth session expired and could not be refreshed` | [Authentication](#login-expired) |

105| `Could not refresh your login because another Claude Code process is refreshing it` | [Authentication](#could-not-refresh-your-login) |105| `Could not refresh your login because another Claude Code process is refreshing it` | [Authentication](#could-not-refresh-your-login) |

106| `Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh` | [Authentication](#could-not-refresh-your-login) |106| `Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh` | [Authentication](#could-not-refresh-your-login) |

107| `Could not refresh your login: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full` | [Autenticação](#could-not-refresh-your-login-disk-full) |

108| `Failed to refresh OAuth token: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full` | [Autenticação](#could-not-refresh-your-login-disk-full) |

107| `Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentication](#your-account-is-on-hold) |109| `Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentication](#your-account-is-on-hold) |

108| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentication](#your-account-is-on-hold) |110| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentication](#your-account-is-on-hold) |

109| `Anthropic profile login expired · Re-authenticate your Anthropic profile` | [Authentication](#anthropic-profile-login-expired) |111| `Anthropic profile login expired · Re-authenticate your Anthropic profile` | [Authentication](#anthropic-profile-login-expired) |


242| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [Command-line errors](#the-current-directory-no-longer-exists) |244| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [Command-line errors](#the-current-directory-no-longer-exists) |

243| `Temp directory <dir> ... Refusing to use it` / `Claude Code's temporary directory <dir> could not be created` | [Command-line errors](#temp-directory-refused-or-cannot-be-created) |245| `Temp directory <dir> ... Refusing to use it` / `Claude Code's temporary directory <dir> could not be created` | [Command-line errors](#temp-directory-refused-or-cannot-be-created) |

244| `ENOSPC: no space left on device, mkdir '<dir>'` | [Command-line errors](#temp-directory-refused-or-cannot-be-created) |246| `ENOSPC: no space left on device, mkdir '<dir>'` | [Command-line errors](#temp-directory-refused-or-cannot-be-created) |

247| `Error: Claude Code could not save ... because the disk is full (ENOSPC)` / `because your disk quota is used up (EDQUOT)` | [Erros de linha de comando](#could-not-save-because-the-disk-is-full) |

245| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [Command-line errors](#directory-couldnt-be-resolved-to-a-real-location) |248| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [Command-line errors](#directory-couldnt-be-resolved-to-a-real-location) |

246| `Error: Workspace not trusted` ao iniciar Remote Control | [Command-line errors](#workspace-not-trusted-when-starting-remote-control) |249| `Error: Workspace not trusted` ao iniciar Remote Control | [Command-line errors](#workspace-not-trusted-when-starting-remote-control) |

247| `Error: Workspace not trusted` ao executar `claude ultrareview` | [Command-line errors](#workspace-not-trusted-when-running-claude-ultrareview) |250| `Error: Workspace not trusted` ao executar `claude ultrareview` | [Command-line errors](#workspace-not-trusted-when-running-claude-ultrareview) |

248| `Ultrareview did not start` | [Command-line errors](#ultrareview-did-not-start) |251| `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) |

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

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

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


320| `The packages it lists are not installed` / `The packages it lists were not installed, because` | [Plugin troubleshooting](https://code.claude.com/docs/pt/plugins/troubleshooting.md#the-packages-it-lists-are-not-installed) |324| `The packages it lists are not installed` / `The packages it lists were not installed, because` | [Plugin troubleshooting](https://code.claude.com/docs/pt/plugins/troubleshooting.md#the-packages-it-lists-are-not-installed) |

321| `does not load (...), so Claude Code ignores the whole file` | [Plugin troubleshooting](https://code.claude.com/docs/pt/plugins/troubleshooting.md#does-not-load-so-claude-code-ignores-the-whole-file) |325| `does not load (...), so Claude Code ignores the whole file` | [Plugin troubleshooting](https://code.claude.com/docs/pt/plugins/troubleshooting.md#does-not-load-so-claude-code-ignores-the-whole-file) |

322| `path escapes plugin directory` | [Plugin errors](#path-escapes-plugin-directory) |326| `path escapes plugin directory` | [Plugin errors](#path-escapes-plugin-directory) |

327| `path not read: <path> is absolute or has a ".." part` | [Erros de plugin](#server-file-path-not-read) |

323| `Plugin not loaded: its manifest <path> was not read` | [Plugin errors](#plugin-not-loaded-its-manifest-was-not-read) |328| `Plugin not loaded: its manifest <path> was not read` | [Plugin errors](#plugin-not-loaded-its-manifest-was-not-read) |

324| `path could not be checked` | [Plugin errors](#path-could-not-be-checked) |329| `path could not be checked` | [Plugin errors](#path-could-not-be-checked) |

325| `its marketplace entry path does not stay inside the marketplace directory` | [Plugin errors](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |330| `its marketplace entry path does not stay inside the marketplace directory` | [Plugin errors](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |


368| `Refusing to write <path>: where it leads on disk could not be determined` / `Refusing to read <path>: where it leads on disk could not be determined` | [Tool errors](#refusing-after-a-symlink-changed) |373| `Refusing to write <path>: where it leads on disk could not be determined` / `Refusing to read <path>: where it leads on disk could not be determined` | [Tool errors](#refusing-after-a-symlink-changed) |

369| `Refusing to search <path>: a path one of its Read deny rules is written through changed while the search was being prepared` / `Refusing to search <path>: it could not be opened` | [Tool errors](#refusing-after-a-symlink-changed) |374| `Refusing to search <path>: a path one of its Read deny rules is written through changed while the search was being prepared` / `Refusing to search <path>: it could not be opened` | [Tool errors](#refusing-after-a-symlink-changed) |

370| `its permission check expired before it ran (too many concurrent file operations)` / `ripgrep was found only by name on PATH` | [Tool errors](#refusing-after-a-symlink-changed) |375| `its permission check expired before it ran (too many concurrent file operations)` / `ripgrep was found only by name on PATH` | [Tool errors](#refusing-after-a-symlink-changed) |

376| `The search failed, so this is not a "no matches" result: matches may exist` | [Erros de ferramenta](#the-search-failed) |

371| `task output swap refused (tasks dir moved or linked)` | [Tool errors](#task-output-swap-refused) |377| `task output swap refused (tasks dir moved or linked)` | [Tool errors](#task-output-swap-refused) |

372| `Command killed: its output file was replaced or could no longer be verified` | [Tool errors](#task-output-swap-refused) |378| `Command killed: its output file was replaced or could no longer be verified` | [Tool errors](#task-output-swap-refused) |

373| `Disk full: this computer's volume holding <dir> (Claude Code's temporary directory) has <n> MB free` / `Nearly out of inodes: this computer's volume holding <dir>` | [Tool errors](#disk-quota-or-temp-filesystem-is-full) |379| `Disk full: this computer's volume holding <dir> (Claude Code's temporary directory) has <n> MB free` / `Nearly out of inodes: this computer's volume holding <dir>` | [Tool errors](#disk-quota-or-temp-filesystem-is-full) |


377| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [Tool errors](#disk-quota-or-temp-filesystem-is-full) |383| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [Tool errors](#disk-quota-or-temp-filesystem-is-full) |

378| `File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary` | [Tool errors](#file-is-not-valid-utf-8) |384| `File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary` | [Tool errors](#file-is-not-valid-utf-8) |

379| `git is not installed on this Mac. To install it, run xcode-select --install, then try again.` | [Erros de ferramenta](#git-is-not-installed-on-this-mac) |385| `git is not installed on this Mac. To install it, run xcode-select --install, then try again.` | [Erros de ferramenta](#git-is-not-installed-on-this-mac) |

386| `Refusing to apply edits to <path>: a hook is configured for file edits in this session` | [Erros de ferramenta](#a-hook-is-configured-for-file-edits) |

380| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [Tool errors](#the-source-file-is-not-valid-utf-8-text) |387| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [Tool errors](#the-source-file-is-not-valid-utf-8-text) |

381| `the source file has the replacement character U+FFFD` | [Tool errors](#the-source-file-is-not-valid-utf-8-text) |388| `the source file has the replacement character U+FFFD` | [Tool errors](#the-source-file-is-not-valid-utf-8-text) |

382| `Not published: that file is on a network share` | [Tool errors](#not-published-that-file-is-on-a-network-share) |389| `Not published: that file is on a network share` | [Tool errors](#not-published-that-file-is-on-a-network-share) |


387| `The safety check for domain ... is rate-limited` | [Tool errors](#webfetch-domain-safety-check-failed) |394| `The safety check for domain ... is rate-limited` | [Tool errors](#webfetch-domain-safety-check-failed) |

388| `The safety check for domain ... is temporarily rate-limited` | [Tool errors](#webfetch-domain-safety-check-failed) |395| `The safety check for domain ... is temporarily rate-limited` | [Tool errors](#webfetch-domain-safety-check-failed) |

389| `Unable to verify if domain ... is safe to fetch` | [Tool errors](#webfetch-domain-safety-check-failed) |396| `Unable to verify if domain ... is safe to fetch` | [Tool errors](#webfetch-domain-safety-check-failed) |

397| `MCP tool "<tool>" on server "<server>" gave no answer that could be read` / `answered without its text` | [Como o resultado de um hook de ferramenta MCP é lido](https://code.claude.com/docs/pt/hooks.md#how-the-tools-result-is-read) |

390| `Can't open MCP settings while no terminal is attached to this background session` | [Background session errors](#commands-refused-in-a-background-session) |398| `Can't open MCP settings while no terminal is attached to this background session` | [Background session errors](#commands-refused-in-a-background-session) |

391| `Can't open MCP settings in a background session` | [Background session errors](#commands-refused-in-a-background-session) |399| `Can't open MCP settings in a background session` | [Background session errors](#commands-refused-in-a-background-session) |

392| `blocked because the path is spelled in a form that cannot be safely resolved` | [Background session errors](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) |400| `blocked because the path is spelled in a form that cannot be safely resolved` | [Background session errors](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) |


397| `Can't open — this session is running in another terminal` | [Background session errors](#this-session-is-running-in-another-terminal) |405| `Can't open — this session is running in another terminal` | [Background session errors](#this-session-is-running-in-another-terminal) |

398| `This conversation is already open in another running Claude session` | [Background session errors](#this-session-is-running-in-another-terminal) |406| `This conversation is already open in another running Claude session` | [Background session errors](#this-session-is-running-in-another-terminal) |

399| `This session's saved conversation is no longer on disk` | [Background session errors](#this-sessions-saved-conversation-is-no-longer-on-disk) |407| `This session's saved conversation is no longer on disk` | [Background session errors](#this-sessions-saved-conversation-is-no-longer-on-disk) |

408| `This forked session could not be started. Fork the conversation again to retry.` | [Erros de sessão em segundo plano](#this-forked-session-could-not-be-started) |

400| `Bypass permissions was requested at launch and ignored` | [Bypass permissions ignorado em uma sessão em background](https://code.claude.com/docs/pt/permission-modes.md#bypass-permissions-ignored-in-a-background-session) |409| `Bypass permissions was requested at launch and ignored` | [Bypass permissions ignorado em uma sessão em background](https://code.claude.com/docs/pt/permission-modes.md#bypass-permissions-ignored-in-a-background-session) |

401| `kept <id> — its worktree is still at <path>` | [Erros de sessão em segundo plano](#worktree-has-commits-that-are-not-pushed-anywhere) se a próxima linha da mensagem mencionar commits não enviados, caso contrário [O que a exclusão de uma sessão remove](https://code.claude.com/docs/pt/agent-view.md#what-deleting-a-session-removes) |410| `kept <id> — its worktree is still at <path>` | [Erros de sessão em segundo plano](#worktree-has-commits-that-are-not-pushed-anywhere) se a próxima linha da mensagem mencionar commits não enviados, caso contrário [O que a exclusão de uma sessão remove](https://code.claude.com/docs/pt/agent-view.md#what-deleting-a-session-removes) |

402| `kept <id> — <n> unpushed commits on <branch>` | [Background session errors](#worktree-has-commits-that-are-not-pushed-anywhere) |411| `kept <id> — <n> unpushed commits on <branch>` | [Background session errors](#worktree-has-commits-that-are-not-pushed-anywhere) |


548| [`CLAUDE_CODE_MAX_RETRIES`](https://code.claude.com/docs/pt/env-vars) | 10 | Número de novas tentativas. Limitado a 15 a partir da v2.1.186; a partir da v2.1.199 `CLAUDE_CODE_RETRY_WATCHDOG` aumenta o padrão e remove o limite. Reduza-o para expor falhas mais rapidamente em scripts. |557| [`CLAUDE_CODE_MAX_RETRIES`](https://code.claude.com/docs/pt/env-vars) | 10 | Número de novas tentativas. Limitado a 15 a partir da v2.1.186; a partir da v2.1.199 `CLAUDE_CODE_RETRY_WATCHDOG` aumenta o padrão e remove o limite. Reduza-o para expor falhas mais rapidamente em scripts. |

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

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

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

551| [`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. |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. |

552| [`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. |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. |

553| [`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. |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. |


1436 1446 

1437Este não é o mesmo estado que [OAuth token revoked or expired](#oauth-token-revoked-or-expired). Aquelas mensagens relatam uma rejeição retornada pela API. O próprio Claude Code produz `Login expired` para um login que ele já não conseguiu renovar, então nenhuma requisição é enviada. Quando a renovação falha porque a própria conta está suspensa, e não porque o login está desatualizado, o Claude Code mostra [Your account is on hold](#your-account-is-on-hold) em vez disso.1447Este não é o mesmo estado que [OAuth token revoked or expired](#oauth-token-revoked-or-expired). Aquelas mensagens relatam uma rejeição retornada pela API. O próprio Claude Code produz `Login expired` para um login que ele já não conseguiu renovar, então nenhuma requisição é enviada. Quando a renovação falha porque a própria conta está suspensa, e não porque o login está desatualizado, o Claude Code mostra [Your account is on hold](#your-account-is-on-hold) em vez disso.

1438 1448 

1439Sessões autenticadas com uma chave de API, [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/pt/env-vars) ou um provedor de terceiros não usam o login salvo e nunca veem esta mensagem.

1440 

1441Você pode verificar esse estado antes que uma requisição falhe: [`/status`](https://code.claude.com/docs/pt/commands) mostra uma linha `Login` com o valor `Expired — log in again`, além da organização e do e-mail salvos para o login expirado. A linha aparece apenas quando o login salvo é sua credencial ativa e não pode mais ser atualizado. Sessões autenticadas de outra forma não mostram a linha, mesmo que um login expirado permaneça salvo. Antes da v2.1.210, `/status` não dava nenhuma indicação nesse estado de que um login já tivesse existido, porque a credencial apagada não deixava nada para relatar.1449Você pode verificar esse estado antes que uma requisição falhe: [`/status`](https://code.claude.com/docs/pt/commands) mostra uma linha `Login` com o valor `Expired — log in again`, além da organização e do e-mail salvos para o login expirado. A linha aparece apenas quando o login salvo é sua credencial ativa e não pode mais ser atualizado. Sessões autenticadas de outra forma não mostram a linha, mesmo que um login expirado permaneça salvo. Antes da v2.1.210, `/status` não dava nenhuma indicação nesse estado de que um login já tivesse existido, porque a credencial apagada não deixava nada para relatar.

1442 1450 

1443**O que fazer:**1451**O que fazer:**


1461Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again1469Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again

1462```1470```

1463 1471 

1464Sessões autenticadas com uma chave de API, [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/pt/env-vars) ou um provedor de terceiros não usam o login salvo e nunca veem esta mensagem.

1465 

1466**O que fazer:**1472**O que fazer:**

1467 1473 

1468* Tente novamente em um minuto. Se outro processo concluir a atualização primeiro, esta sessão usa o login renovado.1474* Tente novamente em um minuto. Se outro processo concluir a atualização primeiro, esta sessão usa o login renovado.

1469* Se a mensagem continuar voltando, feche as outras janelas e processos do Claude Code e tente novamente.1475* Se a mensagem continuar voltando, feche as outras janelas e processos do Claude Code e tente novamente.

1470* Se ela voltar sem nenhum outro processo do Claude Code em execução, execute `/login`. Fazer login novamente não espera pelo bloqueio de atualização.1476* Se ela voltar sem nenhum outro processo do Claude Code em execução, execute `/login`. Fazer login novamente não espera pelo bloqueio de atualização.

1471 1477 

1478### Could not refresh your login: the disk that holds the Claude Code config directory is full

1479 

1480Libere espaço no disco que contém o diretório de configuração do Claude Code e depois envie sua mensagem novamente. Fazer login não ajudaria enquanto o disco estiver cheio, porque um novo login não poderia ser salvo. O diretório de configuração é `~/.claude` no seu diretório pessoal, a menos que você defina [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/pt/env-vars).

1481 

1482```text wrap theme={null}

1483Could not refresh your login: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full · Delete files you no longer need on that disk, then try again · Signing in again won't help

1484```

1485 

1486No [modo não interativo](https://code.claude.com/docs/pt/headless.md) (`-p`) e no [Agent SDK](https://code.claude.com/docs/pt/agent-sdk/overview.md), a mensagem diz:

1487 

1488```text wrap theme={null}

1489Failed to refresh OAuth token: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full. Delete files you no longer need on that disk and retry; signing in again won't help

1490```

1491 

1492**O que fazer:**

1493 

1494* Para um script, execute novamente seu comando `claude -p`

1495* Se o disco já mostrar espaço livre, esgotar a cota de disco ou os inodes produz a mesma mensagem. Exclua seus próprios arquivos nesse disco. Se a mensagem voltar, exclua muitos arquivos pequenos em vez de alguns grandes, porque cada arquivo ocupa um inode, qualquer que seja seu tamanho.

1496 

1472### Couldn't save your login1497### Couldn't save your login

1473 1498 

1474Você fez login com claude.ai, mas o Claude Code não conseguiu salvar o login no seu armazenamento de credenciais, então o login não foi concluído. No macOS, isso pode acontecer quando o keychain de login é bloqueado, por exemplo, durante a suspensão ou inatividade, depois que o Claude Code já leu ou salvou credenciais nele durante a mesma sessão.1499Você fez login com claude.ai, mas o Claude Code não conseguiu salvar o login no seu armazenamento de credenciais, então o login não foi concluído. No macOS, isso pode acontecer quando o keychain de login é bloqueado, por exemplo, durante a suspensão ou inatividade, depois que o Claude Code já leu ou salvou credenciais nele durante a mesma sessão.


2442 2467 

2443### Context exceeds the token limit2468### Context exceeds the token limit

2444 2469 

2445`/context` mostra este aviso no topo da sua saída quando a conversa ultrapassou a janela de contexto do modelo. As requisições falham com [`Prompt is too long`](#prompt-is-too-long) até que você libere espaço. Uma sessão interativa mostra esse erro como a linha `Context limit reached`.2470`/context` mostra este aviso no topo de sua saída quando a conversa cresceu além da janela de contexto do modelo:

2446 2471 

2447```text theme={null}2472```text theme={null}

2448Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.2473Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.

2449```2474```

2450 2475 

2476Após um aviso `Context exceeds`, você não precisa executar nenhum dos comandos enquanto a [compactação automática](https://code.claude.com/docs/pt/settings-reference.md#autocompactenabled) estiver ativada, que é o padrão:

2477 

2478* **Compactação automática ativada**: envie sua próxima mensagem. Se ela ainda falhar com [`Prompt is too long`](#prompt-is-too-long), consulte essa entrada.

2479* **Compactação automática desativada**: na sessão, execute `/compact` se o aviso o mencionar, ou `/clear` para recomeçar. Até que você execute um deles, as mensagens falham com `Context limit reached`, ou `Prompt is too long` na saída de `-p`.

2480 

2451Quando o limite que você excedeu é uma janela de compactação, como o limite de 200K em modelos com contexto de 1M, o aviso é diferente. Uma janela de compactação pode ficar abaixo da janela de contexto do modelo, então requisições além dela ainda podem ter sucesso.2481Quando o limite que você excedeu é uma janela de compactação, como o limite de 200K em modelos com contexto de 1M, o aviso é diferente. Uma janela de compactação pode ficar abaixo da janela de contexto do modelo, então requisições além dela ainda podem ter sucesso.

2452 2482 

2453```text theme={null}2483```text theme={null}


2458 2488 

2459**O que fazer:**2489**O que fazer:**

2460 2490 

2461* Em uma conversa com vários turnos, execute `/compact` para resumir turnos anteriores e liberar espaço. Para começar do zero, execute `/clear`2491* **Após um aviso de janela de compactação**: em uma conversa de vários turnos, execute `/compact` para resumir turnos anteriores e liberar espaço. Para começar do zero, execute `/clear`.

2462* Para mais formas de reduzir o uso, consulte [Prompt is too long](#prompt-is-too-long)2492* Para mais formas de reduzir o uso, consulte [Prompt is too long](#prompt-is-too-long)

2463 2493 

2464Antes da v2.1.216, `/context` mostrava uso acima de 100% sem nenhuma linha de aviso explicando o que isso significava ou como se recuperar.2494Antes da v2.1.216, `/context` mostrava uso acima de 100% sem nenhuma linha de aviso explicando o que isso significava ou como se recuperar.


2851 2881 

2852O motivo após o caminho do arquivo indica o que falhou:2882O motivo após o caminho do arquivo indica o que falhou:

2853 2883 

2854* **`can't be written (<code>)`**: a gravação falhou com o código de erro do sistema operacional entre parênteses, como `EROFS` quando o arquivo, ou o arquivo para o qual ele aponta, está em um sistema de arquivos que recusa gravações. Torne o arquivo gravável e troque novamente. Se outra ferramenta gera o arquivo, defina a chave `model` nessa ferramenta; consulte [A change you made in Claude Code is lost in new sessions](https://code.claude.com/docs/pt/settings.md#a-change-you-made-in-claude-code-is-lost-in-new-sessions).2884* **`can't be written (<code>)`**: a gravação falhou com o código de erro do sistema operacional entre parênteses, como `EROFS` quando o arquivo, ou o arquivo para o qual ele aponta, está em um sistema de arquivos que recusa gravações. Torne o arquivo gravável e troque novamente. Se outra ferramenta gera o arquivo, defina a chave `model` nessa ferramenta; consulte [Uma alteração que você fez no Claude Code se perde em novas sessões](https://code.claude.com/docs/pt/settings.md#a-change-you-made-in-claude-code-is-lost-in-new-sessions).

2855* **`isn't valid JSON`**: o arquivo no disco não pode ser analisado, e o Claude Code o deixa intacto em vez de sobrescrever um conteúdo que não consegue ler de volta. Corrija o erro de sintaxe e depois troque novamente; consulte [Corrigir um arquivo de configurações quebrado](https://code.claude.com/docs/pt/settings.md#fix-a-broken-settings-file).2885* **`isn't valid JSON`**: o arquivo no disco não pode ser analisado, e o Claude Code o deixa intacto em vez de sobrescrever um conteúdo que não consegue ler de volta. Corrija o erro de sintaxe e depois troque novamente; consulte [Corrigir um arquivo de configurações quebrado](https://code.claude.com/docs/pt/settings.md#fix-a-broken-settings-file).

2856 2886 

2857Um aviso que termina com `couldn't confirm it was saved as your default (~/.claude/settings.json is still being written)` significa que a gravação não tinha terminado após três segundos. Ela continua em segundo plano, então o padrão ainda pode ser salvo; verifique em qual modelo sua próxima sessão começa, ou execute `/model <name>` novamente.2887Um aviso que termina com `couldn't confirm it was saved as your default (~/.claude/settings.json is still being written)` significa que a gravação não tinha terminado após três segundos. Ela continua em segundo plano, então o padrão ainda pode ser salvo; verifique em qual modelo sua próxima sessão começa, ou execute `/model <name>` novamente.


3302 3332 

3303### Configuration error in \~/.claude.json3333### Configuration error in \~/.claude.json

3304 3334 

3305O Claude Code não conseguiu analisar `~/.claude.json`, o arquivo que contém os detalhes da sua conta, os servidores MCP e o estado por projeto. Seu arquivo não foi alterado. Uma inicialização [não interativa](https://code.claude.com/docs/pt/headless.md), como `claude -p`, sai com o código 1 toda vez até que você repare o arquivo.3335O Claude Code não conseguiu analisar `~/.claude.json`, o arquivo que contém os detalhes da sua conta, servidores MCP e o estado por projeto. Uma inicialização [não interativa](https://code.claude.com/docs/pt/headless.md), como `claude -p`, encerra com código de saída 1.

3306 3336 

3307Quando o Claude Code encontra um [backup](https://code.claude.com/docs/pt/claude-directory.md#cleaned-up-automatically), a saída o menciona e imprime uma linha `cp` que o copia de volta:3337Quando o Claude Code encontra um [backup](https://code.claude.com/docs/pt/claude-directory.md#cleaned-up-automatically), a saída o menciona e imprime uma linha `cp` que o copia de volta:

3308 3338 


3317 3347 

3318**O que fazer:**3348**O que fazer:**

3319 3349 

3320* **A saída tem uma linha `cp`**: execute essa linha no seu terminal. No Windows, execute-a no PowerShell. Ela substitui o arquivo corrompido pelo backup, uma versão anterior de `~/.claude.json`.3350* **A saída tem uma linha `cp`**: execute essa linha no seu terminal. No Windows, execute-a no PowerShell.

3321* **A saída não tem uma linha `cp`, ou o erro volta depois que você a executa**: corrija o JSON em `~/.claude.json`, copie outro arquivo `.claude.json.backup.<timestamp>` de [`~/.claude/backups/`](https://code.claude.com/docs/pt/claude-directory#cleaned-up-automatically) por cima dele, se houver um, ou renomeie-o. Sem arquivo em `~/.claude.json`, o Claude Code inicia com as configurações padrão e sem nada do que o arquivo continha.3351* **A saída não tem uma linha `cp`, ou o erro volta depois que você a executa**: se `~/.claude.json` ainda contiver sua configuração, corrija o JSON. Se não conseguir, copie outro arquivo `.claude.json.backup.<timestamp>` de [`~/.claude/backups/`](https://code.claude.com/docs/pt/claude-directory#cleaned-up-automatically) por cima dele, se houver um, ou renomeie-o. Sem nenhum arquivo em `~/.claude.json`, o Claude Code inicia com as configurações padrão e sem nada do que o arquivo continha.

3322 3352* **`~/.claude.json` não contém mais sua configuração**: encontre um arquivo `.claude.json.corrupted.<timestamp>` que ainda a contenha, em [`~/.claude/backups/`](https://code.claude.com/docs/pt/claude-directory#cleaned-up-automatically) ou no seu diretório pessoal. Corrija o JSON e copie-o por cima de `~/.claude.json`. Se não conseguir encontrar ou corrigir um, tente os mesmos passos com um arquivo `.claude.json.backup.<timestamp>` que contenha sua configuração. Se nenhum contiver, renomeie `~/.claude.json` e adicione seus servidores MCP novamente com [`claude mcp add`](https://code.claude.com/docs/pt/mcp#installing-mcp-servers).

3323Antes da v2.1.318, você ficava com os padrões em `~/.claude.json` depois que uma inicialização não interativa imprimia esse erro, então a próxima inicialização era executada sem a sua configuração.

3324 3353 

3325### Claude configuration file was empty and no backup holds anything3354### Claude configuration file was empty and no backup holds anything

3326 3355 


3381 3410 

3382Antes da v2.1.309, o Claude Code imprimia apenas o texto de erro do sistema operacional quando o volume estava cheio ou sua cota estava esgotada. Um exemplo é `ENOSPC: no space left on device, mkdir '/tmp/claude-501'`, e as mesmas etapas se aplicam.3411Antes da v2.1.309, o Claude Code imprimia apenas o texto de erro do sistema operacional quando o volume estava cheio ou sua cota estava esgotada. Um exemplo é `ENOSPC: no space left on device, mkdir '/tmp/claude-501'`, e as mesmas etapas se aplicam.

3383 3412 

3413### O Claude Code não conseguiu salvar porque o disco está cheio

3414 

3415Esta linha no stderr após uma execução de [`claude -p`](https://code.claude.com/docs/pt/headless) significa que o disco está cheio ou sua cota de disco está esgotada, então o Claude Code não conseguiu salvar tudo da execução:

3416 

3417```text wrap theme={null}

3418Error: Claude Code could not save all of this session's transcript under /Users/you/.claude because the disk is full (ENOSPC). If you resume this session, part of the conversation may be missing. Free up space on that disk before the next run.

3419```

3420 

3421Com saída em texto ou `json`, a execução sai com o código 1, e a resposta já foi impressa. Com saída `stream-json`, a execução mantém seu código de saída habitual, e a resposta ainda chega.

3422 

3423**O que fazer:**

3424 

3425* **`the disk is full (ENOSPC)`**: antes da próxima execução, libere espaço no disco que contém o caminho da mensagem

3426* **`your disk quota is used up (EDQUOT)`**: antes da próxima execução, libere espaço ou peça uma cota maior

3427 

3384### O diretório não pôde ser resolvido para um local real3428### O diretório não pôde ser resolvido para um local real

3385 3429 

3386Você executou `/add-dir` para um subdiretório do seu diretório de trabalho, e o Claude Code não conseguiu resolver o diretório para seu local real.3430Você executou `/add-dir` para um subdiretório do seu diretório de trabalho, e o Claude Code não conseguiu resolver o diretório para seu local real.


3448* **`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`.3492* **`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`.

3449* **`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.3493* **`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.

3450* **`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`.3494* **`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`.

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

3452 3496 

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

3454 3498 

3499### O Remote Control não iniciou porque uma pergunta ficou sem resposta

3500 

3501Esta mensagem significa que [`claude remote-control`](https://code.claude.com/docs/pt/remote-control) fez a pergunta de primeira execução citada na mensagem e não obteve resposta:

3502 

3503```text theme={null}

3504Remote Control did not start: "Enable Remote Control?" got no answer. Run `claude remote-control` at a terminal and answer y once; it won't ask again.

3505Remote Control did not start: "Choose [1/2] (default: 1):" got no answer. You can run `claude remote-control` and choose, or pass --spawn=same-dir or --spawn=worktree.

3506```

3507 

3508**O que fazer:**

3509 

3510* **`Enable Remote Control?`**: em um script ou serviço, a entrada padrão termina antes que alguém possa responder. Execute `claude remote-control` uma vez em um terminal, como o usuário com o qual seu script ou serviço é executado, e responda `y`.

3511* **`Choose [1/2] (default: 1):`**: execute `claude remote-control` novamente e [escolha um modo de spawn](https://code.claude.com/docs/pt/remote-control.md#set-the-default-spawn-mode-for-a-project), ou passe [`--spawn=same-dir` ou `--spawn=worktree`](https://code.claude.com/docs/pt/remote-control#start-a-remote-control-session) para pular a pergunta

3512 

3455### Não repassado para as sessões que o Remote Control inicia3513### Não repassado para as sessões que o Remote Control inicia

3456 3514 

3457Você 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:3515Você 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:


3741 3799 

3742Mensagens semelhantes são disparadas antes mesmo de o comando ser executado:3800Mensagens semelhantes são disparadas antes mesmo de o comando ser executado:

3743 3801 

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

3745* ``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 [How injected commands run](https://code.claude.com/docs/pt/skills.md#how-injected-commands-run)3803* ``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)

3746 3804 

3747**O que fazer:**3805**O que fazer:**

3748 3806 


3895 3953 

3896* **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 acima3954* **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

3897* **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>`)``3955* **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>`)``

3898* **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 dizer 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`.3956* **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`.

3899 3957 

3900**O que fazer:**3958**O que fazer:**

3901 3959 


4457* Se a mensagem terminar com `EACCES`, restaure sua permissão de execução em cada diretório que leva ao arquivo ou pasta que o caminho nomeia. Verifique os diretórios acima do caminho, depois siga cada symlink que encontrar e verifique os diretórios que levam até onde ele aponta. Para qualquer outro código de erro, consulte-o nas [causas e etapas para um caminho que não pôde ser verificado](#path-could-not-be-checked).4515* Se a mensagem terminar com `EACCES`, restaure sua permissão de execução em cada diretório que leva ao arquivo ou pasta que o caminho nomeia. Verifique os diretórios acima do caminho, depois siga cada symlink que encontrar e verifique os diretórios que levam até onde ele aponta. Para qualquer outro código de erro, consulte-o nas [causas e etapas para um caminho que não pôde ser verificado](#path-could-not-be-checked).

4458* Para compartilhar arquivos com outros plugins no mesmo marketplace, vincule-os com um symlink dentro do diretório do plugin, seguindo as [regras de symlink](https://code.claude.com/docs/pt/plugins/host-marketplace.md#share-files-within-a-marketplace-with-symlinks)4516* Para compartilhar arquivos com outros plugins no mesmo marketplace, vincule-os com um symlink dentro do diretório do plugin, seguindo as [regras de symlink](https://code.claude.com/docs/pt/plugins/host-marketplace.md#share-files-within-a-marketplace-with-symlinks)

4459 4517 

4518### Server file path not read

4519 

4520A mensagem `path not read` significa que Claude Code não leu um arquivo de servidor MCP ou LSP que um plugin nomeia, por causa do caminho do arquivo. O resto do plugin carrega, sem os servidores que o arquivo define.

4521 

4522Uma parte `..` conta mesmo quando o caminho fica dentro do plugin, como neste exemplo:

4523 

4524```text theme={null}

4525mcp-servers path not read: ./sub/../x.json is absolute or has a ".." part

4526```

4527 

4528**O que fazer:**

4529 

4530* Se você instalou o plugin e não o mantém, relate a mensagem ao autor dele

4531* Se você mantém o plugin, mantenha o arquivo de servidor dentro do diretório do plugin. Nomeie-o no manifesto ou na entrada de marketplace com um caminho que comece com `./` e não tenha `..`, por exemplo `./servers/x.json`

4532* Para compartilhar um arquivo de servidor entre plugins no mesmo marketplace, vincule o arquivo a cada plugin com um symlink, seguindo as [regras de symlink](https://code.claude.com/docs/pt/plugins/host-marketplace.md#share-files-within-a-marketplace-with-symlinks)

4533 

4460### Plugin not loaded: its manifest was not read4534### Plugin not loaded: its manifest was not read

4461 4535 

4462Claude Code não conseguiu confirmar que o [manifesto](https://code.claude.com/docs/pt/plugins/manifest-reference.md) de um plugin de marketplace em `.claude-plugin/plugin.json` está dentro do plugin, então não carrega nada desse plugin. Para um plugin em um [marketplace local](https://code.claude.com/docs/pt/plugins/loading.md#in-place-and-copied-plugins), Claude Code também não conseguiu confirmar que o manifesto está dentro desse marketplace. A mensagem aparece na aba **Errors** do `/plugin`, e o motivo no final dela diz o que Claude Code encontrou.4536Claude Code não conseguiu confirmar que o [manifesto](https://code.claude.com/docs/pt/plugins/manifest-reference.md) de um plugin de marketplace em `.claude-plugin/plugin.json` está dentro do plugin, então não carrega nada desse plugin. Para um plugin em um [marketplace local](https://code.claude.com/docs/pt/plugins/loading.md#in-place-and-copied-plugins), Claude Code também não conseguiu confirmar que o manifesto está dentro desse marketplace. A mensagem aparece na aba **Errors** do `/plugin`, e o motivo no final dela diz o que Claude Code encontrou.


5065 5139 

5066Antes da v2.1.280, a recusa `where it leads on disk could not be determined` não aparecia.5140Antes da v2.1.280, a recusa `where it leads on disk could not be determined` não aparecia.

5067 5141 

5142### The search failed, so this is not a "no matches" result

5143 

5144Uma pesquisa [Grep](https://code.claude.com/docs/pt/tools-reference.md#grep-tool-behavior) ou [Glob](https://code.claude.com/docs/pt/tools-reference.md#glob-tool-behavior) que Claude executou falhou antes de retornar qualquer resultado, então não se sabe se existem correspondências. A mensagem que Claude recebe no lugar dos resultados começa:

5145 

5146```text wrap theme={null}

5147The search failed, so this is not a "no matches" result: matches may exist. What happened to the search program (ripgrep) is not known, and no results were read. Run the search once more. If it fails again, tell the user that searches are failing.

5148```

5149 

5150**O que fazer:**

5151 

5152* **Na primeira vez que aparecer**: nada. A mensagem pede ao Claude que pesquise novamente primeiro.

5153* **Se Claude disser que as pesquisas estão falhando**: capture o erro do ripgrep para um relatório de bug:

5154 1. No seu shell, inicie uma sessão com as mesmas flags da sessão em que as pesquisas falharam, mais [`--debug-file claude-debug.log`](https://code.claude.com/docs/pt/cli-reference#cli-flags)

5155 2. Envie ao Claude a solicitação que levou à pesquisa que falhou

5156 3. Se a pesquisa falhar novamente, encontre a linha contendo `rg error (signal=` em `claude-debug.log`

5157 4. Inclua essa linha ao [relatar o problema](#report-an-error)

5158 

5068### Troca de saída de tarefa recusada5159### Troca de saída de tarefa recusada

5069 5160 

5070Claude Code salva a saída de cada comando Bash em um arquivo sob seu diretório temporário. Toda vez que abre um desses arquivos, verifica que o caminho ainda leva ao arquivo que criou, sem link simbólico, link físico extra, ou diretório movido redirecionando-o. Essa mensagem significa que essa verificação falhou, então Claude Code recusou a operação em vez de escrever ou ler saída através desse caminho. A mensagem aparece no resultado da ferramenta Bash:5161Claude Code salva a saída de cada comando Bash em um arquivo sob seu diretório temporário. Toda vez que abre um desses arquivos, verifica que o caminho ainda leva ao arquivo que criou, sem link simbólico, link físico extra, ou diretório movido redirecionando-o. Essa mensagem significa que essa verificação falhou, então Claude Code recusou a operação em vez de escrever ou ler saída através desse caminho. A mensagem aparece no resultado da ferramenta Bash:


5153 5244 

5154Antes da v2.1.296, Edit e NotebookEdit aplicavam tal edição e salvavam cada byte que não conseguiam decodificar como `U+FFFD`. Nessas versões, atualize Claude Code.5245Antes da v2.1.296, Edit e NotebookEdit aplicavam tal edição e salvavam cada byte que não conseguiam decodificar como `U+FFFD`. Nessas versões, atualize Claude Code.

5155 5246 

5247### Refusing to apply edits: a hook is configured for file edits in this session

5248 

5249Claude tentou publicar um [artefato](https://code.claude.com/docs/pt/artifacts.md) com uma [atualização em uma etapa](https://code.claude.com/docs/pt/artifacts.md#turn-off-one-step-artifact-updates), uma pequena alteração no arquivo do artefato incluída na publicação, e Claude Code recusou. Nada foi publicado e o arquivo permanece inalterado. A mensagem aparece no resultado da ferramenta Artifact:

5250 

5251```text wrap theme={null}

5252Refusing to apply edits to <path>: a hook is configured for file edits in this session, so a publish can't apply edits here. Edit the file, then publish it without edits. Nothing was published.

5253```

5254 

5255Claude Code não permite atualizações em uma etapa enquanto sua sessão tem um [hook `PreToolUse`](https://code.claude.com/docs/pt/hooks#pretooluse) ou [mod](https://code.claude.com/docs/pt/plugins/mods/overview.md) em `Edit` ou `Write`.

5256 

5257**O que fazer:**

5258 

5259* Nada, se Claude prosseguiu editando o arquivo e publicando-o

5260* Se Claude parou na mensagem, peça ao Claude para editar o arquivo e publicar

5261* Se a mensagem continuar voltando, saia e reinicie o Claude Code

5262* Se a mensagem voltar mesmo após reiniciar, [desative as atualizações em uma etapa](https://code.claude.com/docs/pt/artifacts.md#turn-off-one-step-artifact-updates)

5263 

5156### O arquivo de origem não é texto UTF-8 válido5264### O arquivo de origem não é texto UTF-8 válido

5157 5265 

5158Claude tentou publicar um [artefato](https://code.claude.com/docs/pt/artifacts.md) de um arquivo cujos bytes não decodificam como texto, ou cujo texto já contém o caractere de substituição `U+FFFD`, então Claude Code recusou a publicação antes de fazer upload de qualquer coisa. A mensagem aparece no resultado da ferramenta Artifact e nomeia a primeira posição a corrigir:5266Claude tentou publicar um [artefato](https://code.claude.com/docs/pt/artifacts.md) de um arquivo cujos bytes não decodificam como texto, ou cujo texto já contém o caractere de substituição `U+FFFD`, então Claude Code recusou a publicação antes de fazer upload de qualquer coisa. A mensagem aparece no resultado da ferramenta Artifact e nomeia a primeira posição a corrigir:


5623 5731 

5624* Recrie o diretório que a mensagem nomeia, ou despache de um diretório que existe, depois tente novamente5732* Recrie o diretório que a mensagem nomeia, ou despache de um diretório que existe, depois tente novamente

5625 5733 

5734### Esta sessão bifurcada não pôde ser iniciada

5735 

5736Você [bifurcou uma sessão do Remote Control](https://code.claude.com/docs/pt/remote-control.md#fork-a-session-from-your-browser) a partir do claude.ai, e Claude Code não conseguiu concluir a inicialização da [sessão em background](https://code.claude.com/docs/pt/agent-view.md) que executa o fork na sua máquina. Este aviso aparece na transcrição da sessão bifurcada:

5737 

5738```text theme={null}

5739This forked session could not be started. Fork the conversation again to retry.

5740```

5741 

5742A sessão que você bifurcou continua em execução.

5743 

5744**O que fazer:**

5745 

5746* Volte à sessão que você bifurcou e bifurque-a novamente assim que a sessão estiver ociosa

5747 

5626### Workspace não confiável ao despachar uma sessão em background5748### Workspace não confiável ao despachar uma sessão em background

5627 5749 

5628Você iniciou ou reiniciou uma [sessão em background](https://code.claude.com/docs/pt/agent-view.md) em um diretório que você não [confiou](https://code.claude.com/docs/pt/permissions.md#project-allow-rules-and-workspace-trust), e o diálogo de confiança de workspace não conseguiu aparecer para perguntar. Claude Code não inicia a sessão:5750Você iniciou ou reiniciou uma [sessão em background](https://code.claude.com/docs/pt/agent-view.md) em um diretório que você não [confiou](https://code.claude.com/docs/pt/permissions.md#project-allow-rules-and-workspace-trust), e o diálogo de confiança de workspace não conseguiu aparecer para perguntar. Claude Code não inicia a sessão:

fast-mode.md +40 −18

Details

12 12 

13O modo rápido é uma configuração de alta velocidade para modelos suportados, tornando o modelo até 2,5x mais rápido a um custo maior por token. Ative-o com `/fast` quando você precisar de velocidade para trabalho interativo como iteração rápida ou depuração ao vivo, e desative-o quando o custo importa mais do que a latência.13O modo rápido é uma configuração de alta velocidade para modelos suportados, tornando o modelo até 2,5x mais rápido a um custo maior por token. Ative-o com `/fast` quando você precisar de velocidade para trabalho interativo como iteração rápida ou depuração ao vivo, e desative-o quando o custo importa mais do que a latência.

14 14 

15O modo rápido usa o mesmo modelo com uma configuração de API diferente que prioriza a velocidade sobre a eficiência de custo, portanto a qualidade e as capacidades permanecem as mesmas. O modo rápido é suportado no Fable 5.2, Opus 5.5, Opus 5 e Opus 4.8. Não está disponível no Sonnet, Haiku ou outros modelos.15O modo rápido usa o mesmo modelo com uma configuração de API diferente que prioriza a velocidade sobre a eficiência de custo, portanto a qualidade e as capacidades permanecem as mesmas. Na API da Anthropic, o modo rápido é suportado no Fable 5.2, Opus 5.5, Opus 5 e Opus 4.8, mas não no Sonnet, Haiku ou outros modelos. Para os modelos na Agent Platform do Google Cloud, consulte [Usar o modo rápido na Agent Platform](#use-fast-mode-on-agent-platform).

16 16 

17> [!WARNING]17> [!WARNING]

18>18>


25 25 

26O que você precisa saber:26O que você precisa saber:

27 27 

28* Use `/fast` para alternar o modo rápido no CLI do Claude Code. A [extensão VS Code](https://code.claude.com/docs/pt/vs-code.md) oferece um comando **Toggle fast mode** quando o modelo selecionado suporta modo rápido. O Claude Code salva essa alternância na sua configuração [`fastMode`](#toggle-fast-mode).28* Use `/fast` para alternar o modo rápido no CLI do Claude Code. A [extensão VS Code](https://code.claude.com/docs/pt/vs-code.md) oferece um comando **Toggle fast mode** quando o modelo selecionado suporta modo rápido. Na API da Anthropic, o Claude Code salva essa alternância na sua configuração [`fastMode`](#toggle-fast-mode).

29* O preço do modo rápido por MTok de entrada/saída é \$16/\$80 no Fable 5.2, \$8/\$40 no Opus 5.5 e \$10/\$50 no Opus 5 e Opus 4.8.29* O preço do modo rápido da Anthropic por MTok de entrada/saída é \$16/\$80 no Fable 5.2, \$8/\$40 no Opus 5.5 e \$10/\$50 no Opus 5 e Opus 4.8.

30* Disponível para usuários do Claude Code em planos de assinatura (Pro/Max/Ultra/Team/Enterprise) e no Claude Console. Organizações Team e Enterprise precisam que um Owner o ative primeiro, e organizações Console precisam ter acesso provisionado primeiro para usá-lo com Opus 5 ou Opus 4.8. [Requisitos](#requirements) descreve ambos.30* Disponível para usuários do Claude Code em planos de assinatura (Pro/Max/Ultra/Team/Enterprise), no Claude Console e na Agent Platform do Google Cloud [com condições](#use-fast-mode-on-agent-platform). Organizações Team e Enterprise precisam que um Owner o ative primeiro, e organizações Console precisam ter acesso provisionado primeiro para usá-lo com Opus 5 ou Opus 4.8. [Requisitos](#requirements) descreve ambos.

31* Para usuários do Claude Code em planos de assinatura (Pro/Max/Ultra/Team/Enterprise), o modo rápido está disponível apenas via créditos de uso e não está incluído nos rate limits da assinatura.31* Para usuários do Claude Code em planos de assinatura (Pro/Max/Ultra/Team/Enterprise), o modo rápido está disponível apenas via créditos de uso e não está incluído nos rate limits da assinatura.

32 32 

33## Alternar modo rápido33## Alternar modo rápido

34 34 

35Na Agent Platform, `/fast` e a configuração `fastMode` funcionam de forma diferente, portanto siga [Usar modo rápido na Agent Platform](#use-fast-mode-on-agent-platform) em vez disso.

36 

35Na CLI, alterne o modo rápido de uma destas formas:37Na CLI, alterne o modo rápido de uma destas formas:

36 38 

37* Execute `/fast`, pressione Space para alternar ativado ou desativado, depois pressione Enter para confirmar39* Execute `/fast`, pressione Space para alternar ativado ou desativado, depois pressione Enter para confirmar

38* Em um modelo que suporta modo rápido, defina `"fastMode": true` no seu [arquivo de configurações do usuário](https://code.claude.com/docs/pt/settings.md). Se você defini-lo em qualquer outro modelo, você permanece nesse modelo com o modo rápido desativado. No Fable 5.2, essa configuração sozinha não tem efeito até que você execute `/fast` enquanto usa o Fable 5.2.40* Em um modelo que suporta modo rápido, defina `"fastMode": true` no seu [arquivo de configurações do usuário](https://code.claude.com/docs/pt/settings.md). Se você defini-lo em qualquer outro modelo, você permanece nesse modelo com o modo rápido desativado. No Fable 5.2, essa configuração sozinha não tem efeito até que você execute `/fast` enquanto usa o Fable 5.2.

39 41 

40Por padrão, o modo rápido que você ativa em uma sessão interativa persiste entre sessões em um modelo suportado. No Fable 5.2, ele persiste apenas se você [o ativou enquanto usava o Fable 5.2](#switch-models-while-fast-mode-is-on). Você pode configurar o modo rápido para ser redefinido a cada sessão. Consulte [require per-session opt-in](#require-per-session-opt-in) para obter detalhes.42Por padrão, na Anthropic API, o modo rápido que você ativa em uma sessão interativa persiste entre sessões em um modelo suportado. No Fable 5.2, o modo rápido persiste apenas se você [o ativou enquanto usava o Fable 5.2](#switch-models-while-fast-mode-is-on). Você pode configurar o modo rápido para ser redefinido a cada sessão. Consulte [require per-session opt-in](#require-per-session-opt-in) para obter detalhes.

41 43 

42Fora de uma [sessão em nuvem](#use-fast-mode-in-cloud-sessions), no [modo não interativo](https://code.claude.com/docs/pt/headless.md) com a flag `-p`, `/fast` funciona apenas em uma sessão iniciada com modo rápido em seu valor [`--settings`](https://code.claude.com/docs/pt/cli-reference#cli-flags), por exemplo `claude -p --settings '{"fastMode": true}'`; a alternância então se aplica apenas a essa sessão e não é salva como seu padrão. O formulário `-p` requer Claude Code v2.1.205 ou posterior. Em qualquer outro lugar no modo não interativo, o comando relata que o modo rápido não está disponível.44Fora de uma [sessão em nuvem](#use-fast-mode-in-cloud-sessions), no [modo não interativo](https://code.claude.com/docs/pt/headless.md) com a flag `-p`, `/fast` funciona apenas em uma sessão iniciada com modo rápido em seu valor [`--settings`](https://code.claude.com/docs/pt/cli-reference#cli-flags), por exemplo `claude -p --settings '{"fastMode": true}'`; a alternância então se aplica apenas a essa sessão e não é salva como seu padrão. O formulário `-p` requer Claude Code v2.1.205 ou posterior. Em qualquer outro lugar no modo não interativo, o comando relata que o modo rápido não está disponível.

43 45 


47 49 

48Quando você ativa o modo rápido com `/fast`:50Quando você ativa o modo rápido com `/fast`:

49 51 

50* Se seu modelo atual não suportar modo rápido, Claude Code alterna para Opus52* Na Anthropic API, se seu modelo atual não suportar modo rápido, Claude Code alterna para Opus

51* O modo rápido no Fable 5.2 requer Claude Code v2.1.321 ou posterior53* O modo rápido no Fable 5.2 requer Claude Code v2.1.321 ou posterior

52* Você verá uma mensagem de confirmação: "Fast mode ON"54* Você verá uma mensagem de confirmação: "Fast mode ON"

53* Um pequeno ícone `↯` aparece ao lado do prompt enquanto o modo rápido está ativo55* Um pequeno ícone `↯` aparece ao lado do prompt enquanto o modo rápido está ativo

54* Execute `/fast` novamente a qualquer momento para verificar se o modo rápido está ativado ou desativado56* Execute `/fast` novamente a qualquer momento para verificar se o modo rápido está ativado ou desativado

55 57 

56Opus 5.5 é o padrão do modo rápido no Claude Code v2.1.280 e posterior. Antes da v2.1.280, o modo rápido usava como padrão Opus 5 a partir da v2.1.219.58Na Anthropic API, Opus 5.5 é o padrão do modo rápido no Claude Code v2.1.280 e posterior. Antes da v2.1.280, o modo rápido usava como padrão Opus 5 a partir da v2.1.219.

57 59 

58Quando você desativa o modo rápido com `/fast` novamente, você permanece no seu modelo atual. Para alternar para um modelo diferente, use `/model`.60Quando você desativa o modo rápido com `/fast` novamente, você permanece no seu modelo atual. Para alternar para um modelo diferente, use `/model`.

59 61 


63 65 

64* **Alternar para outro**: quando você alterna para um modelo que não suporta modo rápido, Claude Code desativa o modo rápido. Isso inclui Opus 4.7; antes da v2.1.221, o modo rápido permanecia ativado após uma alternância para Opus 4.7 e a API rejeitava as solicitações.66* **Alternar para outro**: quando você alterna para um modelo que não suporta modo rápido, Claude Code desativa o modo rápido. Isso inclui Opus 4.7; antes da v2.1.221, o modo rápido permanecia ativado após uma alternância para Opus 4.7 e a API rejeitava as solicitações.

65* **Alternar de volta**: o modo rápido volta a ser ativado em um modelo Opus suportado quando sua preferência salva está ativada. Com [per-session opt-in](#require-per-session-opt-in), execute `/fast` em vez disso.67* **Alternar de volta**: o modo rápido volta a ser ativado em um modelo Opus suportado quando sua preferência salva está ativada. Com [per-session opt-in](#require-per-session-opt-in), execute `/fast` em vez disso.

66* **Alternar para o Fable 5.2**: o modo rápido é desativado, a menos que você o tenha ativado enquanto usava o Fable 5.2. Para ativá-lo, execute `/fast` no Fable 5.2. A menos que você tenha configurado [per-session opt-in](#require-per-session-opt-in), isso persiste entre sessões até que você o desative ou o ative com outro modelo.68* **Alternar para o Fable 5.2**: o modo rápido é desativado, a menos que você o tenha ativado enquanto usava o Fable 5.2. Para ativá-lo, execute `/fast` no Fable 5.2. A menos que você tenha configurado [per-session opt-in](#require-per-session-opt-in), essa escolha persiste entre sessões na Anthropic API até que você desative o modo rápido ou o ative com outro modelo.

67 69 

68Sempre que uma alternância de modelo ativa ou desativa o modo rápido, Claude Code mostra uma confirmação `Fast mode ON` ou `Fast mode OFF`, e o ícone `↯` aparece enquanto o modo rápido está ativado. Isso vale se você alternar com `/model`, com [`/config model=<model>`](https://code.claude.com/docs/pt/settings), ou de um dispositivo conectado através de [Remote Control](https://code.claude.com/docs/pt/remote-control.md).70Sempre que uma alternância de modelo ativa ou desativa o modo rápido, Claude Code mostra uma confirmação `Fast mode ON` ou `Fast mode OFF`, e o ícone `↯` aparece enquanto o modo rápido está ativado. Isso vale se você alternar com `/model`, com [`/config model=<model>`](https://code.claude.com/docs/pt/settings), ou de um dispositivo conectado através de [Remote Control](https://code.claude.com/docs/pt/remote-control.md).

69 71 

70Claude Code reenvia o status do modo rápido da sessão para dispositivos conectados através de Remote Control após uma alternância de modelo, uma reconexão, ou uma [verificação de disponibilidade](#use-fast-mode-behind-proxies-and-llm-gateways) falhada.

71 

72### Usar modo rápido em sessões em nuvem72### Usar modo rápido em sessões em nuvem

73 73 

74O modo rápido funciona em [sessões em nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md) quando está disponível em sua conta, seja a sessão executada em infraestrutura gerenciada pela Anthropic ou em um [executor auto-hospedado](https://code.claude.com/docs/pt/self-hosted-environments). Requer Claude Code v2.1.271 ou posterior no ambiente da sessão.74O modo rápido funciona em [sessões na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md) quando está disponível em sua conta, seja a sessão executada em infraestrutura gerenciada pela Anthropic ou em um [executor auto-hospedado](https://code.claude.com/docs/pt/self-hosted-environments) na Anthropic API. Requer Claude Code v2.1.271 ou posterior no ambiente da sessão.

75 75 

76Digite `/fast on` na sessão para ativar o modo rápido. Ele permanece ativado apenas para essa sessão e não é salvo como seu padrão. Os [requisitos](#requirements) também se aplicam em sessões em nuvem.76Digite `/fast on` na sessão para ativar o modo rápido. Ele permanece ativado apenas para essa sessão e não é salvo como seu padrão. Os [requisitos](#requirements) também se aplicam em sessões em nuvem.

77 77 


79 79 

80## Entender o tradeoff de custo80## Entender o tradeoff de custo

81 81 

82O modo rápido tem preços por token mais altos do que a velocidade padrão:82O modo rápido tem preços por token mais altos do que a velocidade padrão. Estas são as taxas da Anthropic:

83 83 

84| Modelo | Entrada (MTok) | Saída (MTok) |84| Modelo | Entrada (MTok) | Saída (MTok) |

85| - | - | - |85| - | - | - |


129 129 

130O modo rápido requer todos os seguintes:130O modo rápido requer todos os seguintes:

131 131 

132* **Apenas API Anthropic ou assinatura**: o modo rápido está disponível através da API do Anthropic Console e para planos de assinatura Claude usando créditos de uso. Não está disponível no Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry ou Claude Platform na AWS. As organizações do Console também devem ter [acesso ao modo rápido provisionado](#enable-fast-mode-for-your-organization) para usá-lo com Opus 5 ou Opus 4.8.132* **Provedor compatível**: o modo rápido está disponível através da API do Anthropic Console, para planos de assinatura Claude usando créditos de uso e no Google Cloud's Agent Platform [com condições](#use-fast-mode-on-agent-platform). Não está disponível no Amazon Bedrock, Microsoft Foundry ou Claude Platform na AWS, onde `/fast` mostra "Fast mode is not available on this provider". As organizações do Console também devem ter [acesso ao modo rápido provisionado](#enable-fast-mode-for-your-organization) para usá-lo com Opus 5 ou Opus 4.8.

133* **Créditos de uso ativados para planos de assinatura**: em um plano Pro, Max, Ultra, Team ou Enterprise, sua conta deve ter [créditos de uso](https://code.claude.com/docs/pt/costs.md#add-usage-credits-to-your-subscription) ativados, o que permite cobrança além do uso incluído no seu plano. Até que estejam ativados, `/fast` mostra "Fast mode requires usage credits". Para ativá-los, siga a etapa correspondente ao seu plano:133* **Créditos de uso ativados para planos de assinatura**: em um plano Pro, Max, Ultra, Team ou Enterprise, sua conta deve ter [créditos de uso](https://code.claude.com/docs/pt/costs.md#add-usage-credits-to-your-subscription) ativados, o que permite cobrança além do uso incluído no seu plano. Até que estejam ativados, `/fast` mostra "Fast mode requires usage credits". Para ativá-los, siga a etapa correspondente ao seu plano:

134 * Em Pro, Max e Ultra, ative-os na seção **Usage credits** de [**Settings > Usage**](https://claude.ai/settings/usage) em claude.ai, ou execute `/usage-credits` para abrir essa página.134 * Em Pro, Max e Ultra, ative-os na seção **Usage credits** de [**Settings > Usage**](https://claude.ai/settings/usage) em claude.ai, ou execute `/usage-credits` para abrir essa página.

135 * Em Team e Enterprise, um membro com acesso ao faturamento os ativa para a organização em [**Organization settings > Usage**](https://claude.ai/admin-settings/usage), e um membro sem esse acesso executa `/usage-credits` para enviar uma solicitação aos administradores da organização.135 * Em Team e Enterprise, um membro com acesso ao faturamento os ativa para a organização em [**Organization settings > Usage**](https://claude.ai/admin-settings/usage), e um membro sem esse acesso executa `/usage-credits` para enviar uma solicitação aos administradores da organização.


150> * **Modo rápido não ativado**: se o modo rápido não tiver sido ativado para sua organização, ativar o modo rápido com `/fast` mostra "Fast mode has been disabled by your organization."150> * **Modo rápido não ativado**: se o modo rápido não tiver sido ativado para sua organização, ativar o modo rápido com `/fast` mostra "Fast mode has been disabled by your organization."

151> * **Modo rápido desativado por configurações gerenciadas**: se sua organização implanta [configurações gerenciadas](https://code.claude.com/docs/pt/managed-settings.md) que definem [`fastMode: false`](https://code.claude.com/docs/pt/settings-reference#fastmode), ativar o modo rápido com `/fast` mostra a mesma mensagem "Fast mode has been disabled by your organization".151> * **Modo rápido desativado por configurações gerenciadas**: se sua organização implanta [configurações gerenciadas](https://code.claude.com/docs/pt/managed-settings.md) que definem [`fastMode: false`](https://code.claude.com/docs/pt/settings-reference#fastmode), ativar o modo rápido com `/fast` mostra a mesma mensagem "Fast mode has been disabled by your organization".

152> * **Opt-in obrigatório por sessão**: configurações gerenciadas que definem [`fastModePerSessionOptIn: true`](#require-per-session-opt-in) recusam `/fast on` com a mesma mensagem em todos os lugares, exceto em uma sessão de terminal interativa.152> * **Opt-in obrigatório por sessão**: configurações gerenciadas que definem [`fastModePerSessionOptIn: true`](#require-per-session-opt-in) recusam `/fast on` com a mesma mensagem em todos os lugares, exceto em uma sessão de terminal interativa.

153> * **Modelo de modo rápido não permitido**: se a allowlist [`availableModels`](https://code.claude.com/docs/pt/model-config#restrict-model-selection) da sua organização excluir o modelo Opus do modo rápido, ativá-lo é recusado com "is not in your organization's allowed models". Em uma sessão já em execução em um modelo permitido que suporte modo rápido, `/fast` em vez disso ativa o modo rápido no seu modelo atual sem alternar modelos.153> * **Modelo de modo rápido não permitido**: se a allowlist [`availableModels`](https://code.claude.com/docs/pt/model-config#restrict-model-selection) da sua organização excluir o modelo para o qual `/fast` alterna, ativá-lo é recusado com "is not in your organization's allowed models". Em uma sessão já em execução em um modelo permitido que suporte modo rápido, `/fast` em vez disso ativa o modo rápido no seu modelo atual sem alternar modelos.

154 154 

155### Ativar modo rápido para sua organização155### Ativar modo rápido para sua organização

156 156 


163 163 

164Outra opção para desativar completamente o modo rápido é definir `CLAUDE_CODE_DISABLE_FAST_MODE=1`. Consulte [Variáveis de ambiente](https://code.claude.com/docs/pt/env-vars.md).164Outra opção para desativar completamente o modo rápido é definir `CLAUDE_CODE_DISABLE_FAST_MODE=1`. Consulte [Variáveis de ambiente](https://code.claude.com/docs/pt/env-vars.md).

165 165 

166### Usar modo rápido no Agent Platform

167 

168No [Google Cloud's Agent Platform](https://code.claude.com/docs/pt/google-vertex-ai.md), você pode ativar o modo rápido para o Fable 5.2, com `/fast` em uma sessão interativa ou com flags de inicialização no [modo não interativo](https://code.claude.com/docs/pt/headless.md). Requer Claude Code v2.1.322 ou posterior.

169 

170O modo rápido precisa que a [região](https://code.claude.com/docs/pt/google-vertex-ai.md#region-configuration) do Fable 5.2 seja `global`, `us` ou `eu`. Em outra região, `/fast` mostra `Fast mode needs Vertex region global, us or eu`, e `claude -p` é executado em velocidade padrão. Defina a região no seu shell antes de iniciar o Claude Code, por exemplo como `global`:

171 

172```bash theme={null}

173export VERTEX_REGION_CLAUDE_FABLE_5_2=global

174```

175 

176Em seguida, ative o modo rápido:

177 

178* **Em uma sessão interativa**: execute `/fast`. Ele alterna você para o Fable 5.2 a partir de um modelo Opus ou de outro modelo sem modo rápido no Agent Platform. O modo rápido não é salvo como seu padrão.

179* **No modo não interativo**: passe o Fable 5.2 em [`--model`](https://code.claude.com/docs/pt/cli-reference#cli-flags) e o modo rápido em [`--settings`](https://code.claude.com/docs/pt/cli-reference#cli-flags), por exemplo `claude -p "Summarize this project" --model claude-fable-5-2 --settings '{"fastMode": true}'`

180 

181No Agent Platform, `"fastMode": true` nas suas configurações de usuário, de projeto, locais ou gerenciadas não tem efeito.

182 

183Se o Agent Platform recusar o modo rápido, o Claude Code volta para a velocidade padrão. Uma sessão interativa então mostra uma destas mensagens no terminal:

184 

185* `Using standard speed on Fable 5.2 · fast mode wasn't available`: execute `/fast on` para tentar o modo rápido novamente

186* `Fast mode was refused for this project · trying again in 30m`: o Agent Platform respondeu a uma requisição de modo rápido com um erro 403 ou 404. Para tentar antes, execute `/fast on`.

187 

166### Usar modo rápido atrás de proxies e gateways LLM188### Usar modo rápido atrás de proxies e gateways LLM

167 189 

168Antes de oferecer modo rápido, Claude Code verifica a disponibilidade de modo rápido da sua organização com uma solicitação diretamente para `api.anthropic.com`. A verificação não segue [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/pt/llm-gateway-connect#set-the-base-url-and-credential), portanto em uma rede que roteia o tráfego Claude através de um [gateway LLM](https://code.claude.com/docs/pt/llm-gateway) e bloqueia a saída direta para `api.anthropic.com`, a verificação falha mesmo que as solicitações de inferência funcionem. A verificação usa um [proxy HTTP](https://code.claude.com/docs/pt/network-config.md#proxy-configuration) configurado, portanto um bloqueio de rede falha na verificação apenas onde `api.anthropic.com` é inacessível mesmo através do proxy.190Antes de oferecer modo rápido na API Anthropic, Claude Code verifica a disponibilidade de modo rápido da sua organização com uma requisição diretamente para `api.anthropic.com`. A verificação não segue [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/pt/llm-gateway-connect#set-the-base-url-and-credential), portanto em uma rede que roteia o tráfego Claude através de um [gateway de LLM](https://code.claude.com/docs/pt/llm-gateway) e bloqueia a saída direta para `api.anthropic.com`, a verificação falha mesmo que as requisições de inferência funcionem.

169 191 

170Se sua organização tem o modo rápido ativado e `/fast` diz o contrário, encontre a mensagem que ele mostra entre estes casos.192A verificação usa um [proxy HTTP](https://code.claude.com/docs/pt/network-config.md#proxy-configuration) configurado, portanto um bloqueio de rede falha na verificação apenas onde `api.anthropic.com` é inacessível mesmo através do proxy. Se sua organização tem o modo rápido ativado e `/fast` diz o contrário, encontre a mensagem que ele mostra entre estes casos.

171 193 

172#### Fast mode unavailable due to network connectivity issues194#### Fast mode unavailable due to network connectivity issues

173 195 


199 221 

200### Exigir opt-in por sessão222### Exigir opt-in por sessão

201 223 

202Por padrão, o modo rápido que um usuário ativa em uma sessão interativa persiste entre sessões em um modelo compatível. No Fable 5.2, ele persiste apenas se o usuário [o ativou enquanto usava o Fable 5.2](#switch-models-while-fast-mode-is-on).224Por padrão, na API Anthropic, o modo rápido que um usuário ativa em uma sessão interativa persiste entre sessões em um modelo compatível. No Fable 5.2, o modo rápido persiste apenas se o usuário [o ativou enquanto usava o Fable 5.2](#switch-models-while-fast-mode-is-on).

203 225 

204Para fazer com que cada sessão comece com o modo rápido desativado, defina `fastModePerSessionOptIn` como `true` em qualquer [arquivo de configurações](https://code.claude.com/docs/pt/settings.md#where-settings-live). Os usuários então o ativam com `/fast` em cada sessão. Os Owners em planos [Team](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_teams#team-&-enterprise) ou [Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_enterprise) podem implantá-lo em toda a organização através de [configurações gerenciadas pelo servidor](https://code.claude.com/docs/pt/server-managed-settings.md).226Para fazer com que cada sessão comece com o modo rápido desativado, defina `fastModePerSessionOptIn` como `true` em qualquer [arquivo de configurações](https://code.claude.com/docs/pt/settings.md#where-settings-live). Os usuários então o ativam com `/fast` em cada sessão. Os Owners em planos [Team](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_teams#team-&-enterprise) ou [Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_enterprise) podem implantá-lo em toda a organização através de [configurações gerenciadas pelo servidor](https://code.claude.com/docs/pt/server-managed-settings.md).

205 227 


227Se você ficar sem créditos de uso no meio de uma sessão, Claude Code tenta novamente cada solicitação de modo rápido rejeitada com velocidade e preços padrão, para que você continue trabalhando, e não há cooldown. Como você vê a rejeição depende do tipo de sessão:249Se você ficar sem créditos de uso no meio de uma sessão, Claude Code tenta novamente cada solicitação de modo rápido rejeitada com velocidade e preços padrão, para que você continue trabalhando, e não há cooldown. Como você vê a rejeição depende do tipo de sessão:

228 250 

229* Em uma sessão interativa, Claude Code mostra uma notificação "Fast mode disabled · Out of usage credits" e desativa o modo rápido. Sua preferência de modo rápido salva não muda; execute `/fast` para ativar o modo rápido novamente.251* Em uma sessão interativa, Claude Code mostra uma notificação "Fast mode disabled · Out of usage credits" e desativa o modo rápido. Sua preferência de modo rápido salva não muda; execute `/fast` para ativar o modo rápido novamente.

230* Em [modo não-interativo](https://code.claude.com/docs/pt/headless.md) com `--output-format stream-json`, e através do Agent SDK, Claude Code emite o mesmo texto no fluxo de mensagens como uma mensagem `system` com subtipo `notification`, uma vez por turno enquanto você estiver sem créditos de uso. O modo rápido permanece ativado. Requer Claude Code v2.1.221 ou posterior.252* Em [modo não interativo](https://code.claude.com/docs/pt/headless.md) com `--output-format stream-json`, e através do Agent SDK, Claude Code emite o mesmo texto no fluxo de mensagens como uma mensagem `system` com subtipo `notification`. A mensagem chega uma vez por turno enquanto você estiver sem créditos de uso. O modo rápido permanece ativado.

231 253 

232## Research preview254## Research preview

233 255 

Details

93 <td>✓ (Opus 5 e 4.8 precisam de provisionamento)</td>93 <td>✓ (Opus 5 e 4.8 precisam de provisionamento)</td>

94 <td>✗</td>94 <td>✗</td>

95 <td>✗</td>95 <td>✗</td>

96 <td>✗</td>96 <td>✓ ([Fable 5.2, com condições](https://code.claude.com/docs/pt/fast-mode.md#use-fast-mode-on-agent-platform))</td>

97 <td>✗</td>97 <td>✗</td>

98 </tr>98 </tr>

99 99 


256 256 

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

258>258>

259> **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), 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).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).

260>260>

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

262>262>

263> * [Desktop](https://code.claude.com/docs/pt/desktop.md): via [configurações gerenciadas](https://claude.com/docs/third-party/claude-desktop/configuration) ou [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)263> * [Desktop](https://code.claude.com/docs/pt/desktop.md): via [configurações gerenciadas](https://claude.com/docs/third-party/claude-desktop/configuration) ou [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)

264> * [Web search](https://code.claude.com/docs/pt/tools-reference.md#websearch-tool-behavior): Opus 4, Sonnet 4, Haiku 4.5 e modelos posteriores264> * [Web search](https://code.claude.com/docs/pt/tools-reference.md#websearch-tool-behavior): Opus 4, Sonnet 4, Haiku 4.5 e modelos posteriores

265> * [Fast mode](https://code.claude.com/docs/pt/fast-mode.md#use-fast-mode-on-agent-platform): Fable 5.2 nas regiões `global`, `us` e `eu`, ou velocidade padrão se o Agent Platform recusar o fast mode

265> * [Auto mode](https://code.claude.com/docs/pt/auto-mode-config.md): Sonnet 5 ou posterior, Opus 4.7 ou posterior, Haiku 5.5 e modelos Fable apenas266> * [Auto mode](https://code.claude.com/docs/pt/auto-mode-config.md): Sonnet 5 ou posterior, Opus 4.7 ou posterior, Haiku 5.5 e modelos Fable apenas

266> * [Mensagens entre sessões](https://code.claude.com/docs/pt/cross-session-messaging.md): entre suas sessões nesta máquina apenas <sup>[5](#fn5)</sup>267> * [Mensagens entre sessões](https://code.claude.com/docs/pt/cross-session-messaging.md): entre suas sessões nesta máquina apenas <sup>[5](#fn5)</sup>

267> * [Zero Data Retention](https://code.claude.com/docs/pt/zero-data-retention.md): sujeito ao seu acordo Google Cloud268> * [Zero Data Retention](https://code.claude.com/docs/pt/zero-data-retention.md): sujeito ao seu acordo Google Cloud

gateways.md +1 −1

Details

50 50 

51## Assinaturas e gateways51## Assinaturas e gateways

52 52 

53Quando os desenvolvedores se conectam através de um gateway com uma credencial de gateway, o uso é faturado para a conta de provedor de sua organização com taxas de API, e suas assinaturas claude.ai não são usadas ou cobradas. Definir [`ANTHROPIC_AUTH_TOKEN`](https://code.claude.com/docs/pt/env-vars) para um gateway que você executa, ou fazer login em um Claude apps gateway com `/login`, desativa o login de assinatura para essa sessão. Cada solicitação encaminhada sob essa credencial é cobrada da conta atrás da credencial do provedor do gateway.53Quando os desenvolvedores se conectam através de um gateway com uma credencial de gateway, o uso é faturado para a conta de provedor de sua organização com taxas de API, e suas assinaturas claude.ai não são usadas ou cobradas. Cada requisição encaminhada sob essa credencial é cobrada da conta atrás da credencial do provedor do gateway.

54 54 

55A exceção é definir apenas `ANTHROPIC_BASE_URL`, sem credencial de gateway. As solicitações ainda são roteadas através do gateway, mas um login claude.ai salvo permanece como a credencial ativa, portanto os limites de uso e faturamento da assinatura se aplicam. [Outros LLM gateways](https://code.claude.com/docs/pt/llm-gateway#subscriptions-and-gateways) aborda essa configuração e o que o gateway precisa encaminhar para que funcione.55A exceção é definir apenas `ANTHROPIC_BASE_URL`, sem credencial de gateway. As solicitações ainda são roteadas através do gateway, mas um login claude.ai salvo permanece como a credencial ativa, portanto os limites de uso e faturamento da assinatura se aplicam. [Outros LLM gateways](https://code.claude.com/docs/pt/llm-gateway#subscriptions-and-gateways) aborda essa configuração e o que o gateway precisa encaminhar para que funcione.

56 56 

Details

135| Merge queues | Leitura |135| Merge queues | Leitura |

136| Metadata | Leitura |136| Metadata | Leitura |

137| Pull requests | Leitura e escrita |137| Pull requests | Leitura e escrita |

138| Repository creation | Leitura e escrita |

138| Repository hooks | Leitura e escrita |139| Repository hooks | Leitura e escrita |

139| Statuses | Leitura |140| Statuses | Leitura |

140| Workflows | Leitura e escrita |141| Workflows | Leitura e escrita |

Details

190Alguns recursos se comportam de forma diferente em GHES do que em github.com. A [tabela de recursos](#what-works-with-github-enterprise-server) resume o suporte; esta seção cobre as soluções alternativas.190Alguns recursos se comportam de forma diferente em GHES do que em github.com. A [tabela de recursos](#what-works-with-github-enterprise-server) resume o suporte; esta seção cobre as soluções alternativas.

191 191 

192* **Comando `/install-github-app`**: siga o fluxo de [configuração do administrador](#admin-setup) em claude.ai. Se você também deseja workflows do GitHub Actions em GHES, adapte o [workflow de exemplo](https://github.com/anthropics/claude-code-action/blob/main/examples/claude.yml) manualmente.192* **Comando `/install-github-app`**: siga o fluxo de [configuração do administrador](#admin-setup) em claude.ai. Se você também deseja workflows do GitHub Actions em GHES, adapte o [workflow de exemplo](https://github.com/anthropics/claude-code-action/blob/main/examples/claude.yml) manualmente.

193* **Servidor GitHub MCP**: use o CLI `gh` configurado para seu host GHES. Execute `gh auth login --hostname github.example.com` para autenticar, depois Claude pode usar comandos `gh` em sessões.193* **Servidor GitHub MCP**: em uma sessão na sua própria máquina, use em vez disso o CLI `gh` configurado para seu host GHES. Execute `gh auth login --hostname github.example.com` para autenticar, depois Claude pode usar comandos `gh` lá.

194 194 

195## Troubleshooting195## Troubleshooting

196 196 

goal.md +3 −2

Details

131 131 

132#### Erros que você precisa corrigir limpam o objetivo132#### Erros que você precisa corrigir limpam o objetivo

133 133 

134Se um turno falhar em um erro que não será limpo até você corrigi-lo, Claude Code limpa o objetivo e imprime um aviso nomeando a causa. O aviso começa com `Goal cleared after an unrecoverable error` e termina com `Run /goal again to continue`. Corrija a causa, então [defina o objetivo novamente](#set-a-goal) com `/goal <condition>`. Quatro tipos de falha limpam o objetivo:134Se um turno falhar em um erro que não será limpo até você corrigi-lo, Claude Code limpa o objetivo e imprime um aviso nomeando a causa. O aviso começa com `Goal cleared after an unrecoverable error` e termina com `Run /goal again to continue`. Corrija a causa, então [defina o objetivo novamente](#set-a-goal) com `/goal <condition>`. As falhas que limpam o objetivo incluem:

135 135 

136* Uma falha de autenticação, quando Claude Code gerencia suas próprias credenciais. Quando um host as gerencia para você, como o aplicativo desktop ou uma [sessão na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md), Claude Code deixa o objetivo ativo porque o host restaura o acesso por conta própria.136* Uma falha de autenticação, quando Claude Code gerencia suas próprias credenciais. Quando um host as gerencia para você, como o aplicativo desktop ou uma [sessão na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md), Claude Code deixa o objetivo ativo porque o host restaura o acesso por conta própria.

137* Um disco cheio demais para Claude Code renovar seu login do claude.ai, quando Claude Code gerencia suas próprias credenciais. O aviso mostra `(disk full)`. [Libere espaço no disco que contém o diretório de configuração do Claude Code](https://code.claude.com/docs/pt/errors.md#could-not-refresh-your-login-disk-full).

137* Um saldo de crédito esgotado138* Um saldo de crédito esgotado

138* Um overflow de contexto que [auto-compactação](https://code.claude.com/docs/pt/model-config.md#set-the-auto-compact-window) não conseguiu limpar139* Um overflow de contexto que [auto-compactação](https://code.claude.com/docs/pt/model-config.md#set-the-auto-compact-window) não conseguiu limpar

139* Um modelo que não está disponível140* Um modelo que não está disponível


178 179 

179## Requisitos180## Requisitos

180 181 

181Claude Code disponibiliza `/goal` sob a mesma [regra de confiança do espaço de trabalho que hooks em arquivos de configurações](https://code.claude.com/docs/pt/permissions.md#what-runs-before-you-trust-a-folder), porque o avaliador faz parte do sistema de hooks. `/goal` também não está disponível quando [`disableAllHooks`](https://code.claude.com/docs/pt/hooks#disable-or-remove-hooks) é `true` após a precedência de configurações ser aplicada, ou quando [`allowManagedHooksOnly`](https://code.claude.com/docs/pt/settings-reference#allowmanagedhooksonly) está definido nas configurações gerenciadas. Em cada caso, o comando informa por que em vez de fazer nada silenciosamente.182Claude Code disponibiliza `/goal` sob a mesma [regra de confiança do workspace que hooks em arquivos de configurações](https://code.claude.com/docs/pt/permissions.md#what-runs-before-you-trust-a-folder), porque o avaliador faz parte do sistema de hooks. `/goal` também não está disponível quando [`disableAllHooks`](https://code.claude.com/docs/pt/hooks#disable-or-remove-hooks) é `true` após a precedência de configurações ser aplicada, ou quando [`allowManagedHooksOnly`](https://code.claude.com/docs/pt/settings-reference#allowmanagedhooksonly) está definido nas configurações gerenciadas.

182 183 

183## Veja também184## Veja também

184 185 

Details

139* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5 e posterior**: Claude Code ativa a busca de ferramentas por padrão.139* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5 e posterior**: Claude Code ativa a busca de ferramentas por padrão.

140* **Modelos anteriores**: Claude Code carrega definições de ferramentas MCP antecipadamente, porque suas pilhas de serviço da Plataforma de Agentes rejeitam o cabeçalho beta necessário. Definir `ENABLE_TOOL_SEARCH=true` não sobrescreve isso.140* **Modelos anteriores**: Claude Code carrega definições de ferramentas MCP antecipadamente, porque suas pilhas de serviço da Plataforma de Agentes rejeitam o cabeçalho beta necessário. Definir `ENABLE_TOOL_SEARCH=true` não sobrescreve isso.

141 141 

142Defina `ENABLE_TOOL_SEARCH=false` para desativar a busca de ferramentas em todos os modelos. Antes de v2.1.221, Claude Code desativava a busca de ferramentas para todos os modelos na Plataforma de Agentes do Google Cloud, a menos que você definisse `ENABLE_TOOL_SEARCH=true`.142Defina `ENABLE_TOOL_SEARCH=false` para desativar a busca de ferramentas em todos os modelos.

143 143 

144### Fixar versões de modelo144### Fixar versões de modelo

145 145 

hooks.md +28 −4

Details

572 572 

573Claude Code lê o conteúdo de texto da ferramenta da mesma forma que lê stdout de hook de comando, seguindo a [regra de análise sob código de saída 0](#exit-code-0). Se a ferramenta retornar `isError: true`, o hook produz um erro não-bloqueador e a execução continua.573Claude Code lê o conteúdo de texto da ferramenta da mesma forma que lê stdout de hook de comando, seguindo a [regra de análise sob código de saída 0](#exit-code-0). Se a ferramenta retornar `isError: true`, o hook produz um erro não-bloqueador e a execução continua.

574 574 

575Se um erro de hook contiver uma destas mensagens, Claude Code não conseguiu ler a resposta da ferramenta, então o hook não deu nenhum veredito:

576 

577```text theme={null}

578MCP tool "security_scan" on server "my_server" gave no answer that could be read, because a message from the server was too large, so this hook gave no verdict. If this keeps happening, the tool must send a smaller answer.

579MCP tool "security_scan" on server "my_server" answered without its text, which happens when a result is too large, so this hook gave no verdict. If this keeps happening, the tool must send a smaller answer.

580```

581 

582Em `PreToolUse`, Claude Code recusa a chamada de ferramenta que o hook estava verificando. Em outros eventos, como `UserPromptSubmit`, `PostToolUse` e `Stop`, o erro é não-bloqueador.

583 

584Se o erro continuar aparecendo, retorne menos dados da ferramenta ou altere o [`tool` ou `input`](#mcp-tool-hook-fields) do hook para que a resposta seja menor.

585 

575##### Quando o servidor ainda está se conectando586##### Quando o servidor ainda está se conectando

576 587 

577Em eventos onde um hook pode bloquear ou mudar o resultado, como `PreToolUse` ou `Stop`, Claude Code aguarda um servidor em conexão antes de chamar a ferramenta, por no máximo [`MCP_TIMEOUT`](https://code.claude.com/docs/pt/env-vars) e dentro do [`timeout`](#common-fields) do próprio hook. Em eventos observacionais, como `Notification` ou `SessionEnd`, ele não aguarda.588Em eventos onde um hook pode bloquear ou mudar o resultado, como `PreToolUse` ou `Stop`, Claude Code aguarda um servidor em conexão antes de chamar a ferramenta, por no máximo [`MCP_TIMEOUT`](https://code.claude.com/docs/pt/env-vars) e dentro do [`timeout`](#common-fields) do próprio hook. Em eventos observacionais, como `Notification` ou `SessionEnd`, ele não aguarda.


892 903 

893#### Hooks que iniciam um processo em segundo plano904#### Hooks que iniciam um processo em segundo plano

894 905 

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):

907 

908* Execute o programa em segundo plano

909* Redirecione o stdout e o stderr dele. Por exemplo, o comando Bash `npm run dev > dev-server.log 2>&1 &` envia ambos para um arquivo. Se você não os redirecionar, um hook que não é [async](#run-hooks-in-the-background) leva até 10 segundos para terminar depois que o próprio processo do hook sai.

910 

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

896 912 

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

898 914 

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

900 916 


1193 1209 

1194* `PreToolUse`: `updatedInput` diretamente sob `hookSpecificOutput` substitui os argumentos de uma ferramenta antes de executar. Consulte [Controle de decisão PreToolUse](#pretooluse-decision-control)1210* `PreToolUse`: `updatedInput` diretamente sob `hookSpecificOutput` substitui os argumentos de uma ferramenta antes de executar. Consulte [Controle de decisão PreToolUse](#pretooluse-decision-control)

1195* `PermissionRequest`: `updatedInput` dentro do objeto `decision`. Consulte [Controle de decisão PermissionRequest](#permissionrequest-decision-control)1211* `PermissionRequest`: `updatedInput` dentro do objeto `decision`. Consulte [Controle de decisão PermissionRequest](#permissionrequest-decision-control)

1196* `PostToolUse`: `updatedToolOutput` substitui o resultado da ferramenta. Consulte [Controle de decisão PostToolUse](#posttooluse-decision-control)1212* `PostToolUse`: `updatedToolOutput` substitui o resultado da ferramenta. Em uma sessão na nuvem do [Cowork](https://claude.com/docs/cowork/overview), Claude Code ignora `updatedToolOutput` quando a ferramenta é `AskUserQuestion` ou `ExitPlanMode`, e Claude lê a resposta ou o plano original. Consulte [Controle de decisão PostToolUse](#posttooluse-decision-control)

1197* `UserPromptSubmit`: não pode substituir o prompt; apenas injeta `additionalContext` ao lado dele1213* `UserPromptSubmit`: não pode substituir o prompt; apenas injeta `additionalContext` ao lado dele

1198 1214 

1199Para casos de uso de redação ou transformação, intercepte em `PreToolUse` para entradas de ferramenta de saída e `PostToolUse` para resultados de ferramenta de entrada.1215Para casos de uso de redação ou transformação, intercepte em `PreToolUse` para entradas de ferramenta de saída e `PostToolUse` para resultados de ferramenta de entrada.


2210| `addDirectories` | `directories`, `destination` | Adiciona diretórios de trabalho. `directories` é um array de strings de caminho |2226| `addDirectories` | `directories`, `destination` | Adiciona diretórios de trabalho. `directories` é um array de strings de caminho |

2211| `removeDirectories` | `directories`, `destination` | Remove diretórios de trabalho |2227| `removeDirectories` | `directories`, `destination` | Remove diretórios de trabalho |

2212 2228 

2229Em `rules`, para uma [regra de permissão](https://code.claude.com/docs/pt/permissions.md#permission-rule-syntax) escrita como `Tool(specifier)`, `toolName` é o nome da ferramenta e `ruleContent` é o especificador:

2230 

2231* `Bash(npm test)`: `{ "toolName": "Bash", "ruleContent": "npm test" }`

2232* `Bash` ou `Bash(*)`: `{ "toolName": "Bash" }`, porque ambos correspondem à ferramenta inteira

2233* `mcp__github__get_issue`: `{ "toolName": "mcp__github__get_issue" }`

2234 

2235Deixe `ruleContent` de fora de uma regra allow para uma [ferramenta MCP](https://code.claude.com/docs/pt/permissions.md#mcp). Se você o adicionar, a regra não corresponde a nenhuma chamada.

2236 

2213> [!NOTE]2237> [!NOTE]

2214>2238>

2215> `setMode` com `bypassPermissions` só tem efeito se você iniciou a sessão com o modo bypass já disponível: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` ou `permissions.defaultMode: "bypassPermissions"` nas [configurações de usuário, de `--settings` ou gerenciadas](https://code.claude.com/docs/pt/settings-reference#permissions-defaultmode). Caso contrário, a atualização não tem efeito. A atualização também não tem efeito quando [`permissions.disableBypassPermissionsMode`](https://code.claude.com/docs/pt/permissions#managed-settings) desativa o modo, ou quando a sessão é iniciada em [modo restrito](https://code.claude.com/docs/pt/cli-reference.md#cli-flags).2239> `setMode` com `bypassPermissions` só tem efeito se você iniciou a sessão com o modo bypass já disponível: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` ou `permissions.defaultMode: "bypassPermissions"` nas [configurações de usuário, de `--settings` ou gerenciadas](https://code.claude.com/docs/pt/settings-reference#permissions-defaultmode). Caso contrário, a atualização não tem efeito. A atualização também não tem efeito quando [`permissions.disableBypassPermissionsMode`](https://code.claude.com/docs/pt/permissions#managed-settings) desativa o modo, ou quando a sessão é iniciada em [modo restrito](https://code.claude.com/docs/pt/cli-reference.md#cli-flags).


2289| `reason` | Explicação mostrada ao Claude quando `decision` é `"block"` |2313| `reason` | Explicação mostrada ao Claude quando `decision` é `"block"` |

2290| `additionalContext` | String adicionada ao contexto do Claude junto com o resultado da ferramenta. Consulte [Adicionar contexto para o Claude](#add-context-for-claude) |2314| `additionalContext` | String adicionada ao contexto do Claude junto com o resultado da ferramenta. Consulte [Adicionar contexto para o Claude](#add-context-for-claude) |

2291| `classifierContext` | Nota curta sobre o resultado desta chamada destinada ao classificador do [modo auto](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode), e não ao Claude. Consulte [Anotar um resultado para o classificador do modo auto](#annotate-a-result-for-the-auto-mode-classifier). Requer Claude Code v2.1.236 ou posterior |2315| `classifierContext` | Nota curta sobre o resultado desta chamada destinada ao classificador do [modo auto](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode), e não ao Claude. Consulte [Anotar um resultado para o classificador do modo auto](#annotate-a-result-for-the-auto-mode-classifier). Requer Claude Code v2.1.236 ou posterior |

2292| `updatedToolOutput` | Substitui a saída da ferramenta pelo valor fornecido antes que ela seja enviada ao Claude. O valor deve corresponder ao formato de saída da ferramenta |2316| `updatedToolOutput` | Substitui a saída da ferramenta pelo valor fornecido antes que ela seja enviada ao Claude. O valor deve corresponder ao formato de saída da ferramenta. Em uma sessão na nuvem do [Cowork](https://claude.com/docs/cowork/overview), o Claude Code ignora este campo quando a ferramenta é `AskUserQuestion` ou `ExitPlanMode`, e o Claude lê a resposta ou o plano original |

2293| `updatedMCPToolOutput` | Substitui a saída apenas para [ferramentas MCP](#match-mcp-tools). Prefira `updatedToolOutput`, que funciona para todas as ferramentas |2317| `updatedMCPToolOutput` | Substitui a saída somente para [ferramentas MCP](#match-mcp-tools). Prefira `updatedToolOutput`, que também funciona para ferramentas integradas |

2294 2318 

2295O exemplo abaixo substitui a saída de uma chamada `Bash`. O valor de substituição corresponde ao formato de saída da ferramenta `Bash`:2319O exemplo abaixo substitui a saída de uma chamada `Bash`. O valor de substituição corresponde ao formato de saída da ferramenta `Bash`:

2296 2320 

hooks-guide.md +1 −1

Details

964 964 

965> [!NOTE]965> [!NOTE]

966>966>

967> Se sua máquina não tem [configurações gerenciadas](https://code.claude.com/docs/pt/settings.md#check-what-your-organization-enforces) e sua sessão não usa [credenciais de `/login`](https://code.claude.com/docs/pt/authentication#authentication-precedence) para um plano Team ou Enterprise, um [mod](https://code.claude.com/docs/pt/plugins/mods/overview.md) pode aprovar uma chamada que seu hook `PreToolUse` bloqueou. Uma sessão que é executada com uma chave de API ou um [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/pt/authentication#generate-a-long-lived-token) de longa duração não está usando esse login, mesmo quando esse login está armazenado.967> Sua máquina pode não ter [configurações gerenciadas](https://code.claude.com/docs/pt/settings.md#check-what-your-organization-enforces) nem um [arquivo `managed-mcp.json`](https://code.claude.com/docs/pt/managed-mcp#deploy-managed-mcp-json), e sua sessão pode não usar [credenciais de `/login`](https://code.claude.com/docs/pt/authentication#authentication-precedence) para um plano Team ou Enterprise. Nesse cenário, um [mod](https://code.claude.com/docs/pt/plugins/mods/overview.md) pode aprovar uma chamada que seu hook `PreToolUse` bloqueou. Uma sessão que é executada com uma chave de API ou um [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/pt/authentication#generate-a-long-lived-token) de longa duração em vez disso não está usando esse login, mesmo quando esse login está armazenado.

968>968>

969> Em modo de planejamento, um mod pode aprovar tal chamada bloqueada apenas quando ela é somente leitura, portanto não uma edição de arquivo. Para os casos em que a aprovação de um mod não passa pelas suas regras e hooks, veja [Estender permissões com hooks](https://code.claude.com/docs/pt/permissions.md#precedence-among-rules-hooks-and-mods).969> Em modo de planejamento, um mod pode aprovar tal chamada bloqueada apenas quando ela é somente leitura, portanto não uma edição de arquivo. Para os casos em que a aprovação de um mod não passa pelas suas regras e hooks, veja [Estender permissões com hooks](https://code.claude.com/docs/pt/permissions.md#precedence-among-rules-hooks-and-mods).

970 970 

Details

251| `d`/`x` | Deletar seleção |251| `d`/`x` | Deletar seleção |

252| `y` | Yankar seleção |252| `y` | Yankar seleção |

253| `c`/`s` | Mudar seleção |253| `c`/`s` | Mudar seleção |

254| `p` | Substituir seleção pelo conteúdo do registro |254| `p`/`P` | Substituir seleção pelo conteúdo do registro |

255| `r{char}` | Substituir cada caractere selecionado por `{char}` |255| `r{char}` | Substituir cada caractere selecionado por `{char}` |

256| `~`/`u`/`U` | Alternar, minúsculas ou maiúsculas na seleção |256| `~`/`u`/`U` | Alternar, minúsculas ou maiúsculas na seleção |

257| `>`/`<` | Indentar ou desindentação de linhas selecionadas |257| `>`/`<` | Indentar ou desindentação de linhas selecionadas |


280 280 

281### Recuperar um rascunho apagado281### Recuperar um rascunho apagado

282 282 

283Para recuperar um rascunho que você apagou com `Ctrl+C`, pressione `Seta para cima`, imediatamente ou depois de ter enviado uma mensagem ou comando:283Para recuperar um rascunho que você apagou com `Ctrl+C`, pressione `Up`, imediatamente ou depois de ter enviado uma mensagem ou comando:

284 284 

285* **Logo após apagar o rascunho**: pressione `Seta para cima` uma vez enquanto o prompt ainda estiver vazio. Requer Claude Code v2.1.288 ou posterior.285* **Logo após apagar o rascunho**: pressione `Up` uma vez enquanto o prompt ainda estiver vazio. Requer Claude Code v2.1.288 ou posterior.

286* **Depois de enviar uma mensagem ou comando**: pressione `Seta para cima` para voltar até o rascunho. Claude Code mantém os dez rascunhos apagados mais recentes da sessão atual, com seu texto colado e imagens, e os descarta quando você sai. Requer Claude Code v2.1.292 ou posterior.286* **Depois de enviar uma mensagem ou comando**: pressione `Up` para voltar até o rascunho. Claude Code mantém os dez rascunhos apagados mais recentes da sessão atual, com seu texto colado e imagens, e os descarta quando você sai. Requer Claude Code v2.1.292 ou posterior.

287 287 

288### Busca reversa com Ctrl+R288### Busca reversa com Ctrl+R

289 289 

290Pressione `Ctrl+R` para pesquisar interativamente através do seu histórico de comandos. Na [renderização em tela cheia](https://code.claude.com/docs/pt/fullscreen.md), `Ctrl+R` abre um diálogo de pesquisa em vez disso. Digite para filtrar no diálogo e pressione `Seta para cima` e `Seta para baixo` para se mover pela lista de correspondências, com um painel de visualização mostrando o início da correspondência destacada.290Pressione `Ctrl+R` para pesquisar interativamente através do seu histórico de comandos. Na [renderização em tela cheia](https://code.claude.com/docs/pt/fullscreen.md), `Ctrl+R` abre um diálogo de pesquisa em vez disso. Digite para filtrar no diálogo e pressione `Up` e `Down` para se mover pela lista de correspondências, com um painel de visualização mostrando o início da correspondência destacada.

291 291 

292No diálogo, pressione `Ctrl+S` para alternar o escopo entre esta sessão, este projeto e todos os projetos. Pressione `Enter` ou `Tab` para colocar uma correspondência na entrada do prompt, ou `Esc` para cancelar. Os passos abaixo descrevem a pesquisa inline do renderizador clássico:292No diálogo, pressione `Ctrl+S` para alternar o escopo entre esta sessão, este projeto e todos os projetos. Pressione `Enter` ou `Tab` para colocar uma correspondência na entrada do prompt, ou `Esc` para cancelar. Os passos abaixo descrevem a pesquisa inline do renderizador clássico:

293 293 


304 304 

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

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

308 

307## Comandos Bash em segundo plano309## Comandos Bash em segundo plano

308 310 

309Claude Code suporta a execução de comandos Bash em segundo plano, permitindo que você continue trabalhando enquanto processos de longa duração são executados.311Claude Code suporta a execução de comandos Bash em segundo plano, permitindo que você continue trabalhando enquanto processos de longa duração são executados.

keybindings.md +8 −8

Details

10 10 

11## Arquivo de configuração11## Arquivo de configuração

12 12 

13O arquivo de configuração de atalhos de teclado é um objeto com um array `bindings`. Cada bloco especifica um contexto e um mapa de sequências de teclas para ações.13O arquivo de configuração de atalhos de teclado é um objeto com um array `bindings`. Cada bloco especifica um contexto e um mapa de combinações de teclas para ações.

14 14 

15> [!NOTE]15> [!NOTE]

16>16>

17> As alterações no arquivo de atalhos de teclado são detectadas automaticamente e aplicadas sem reiniciar Claude Code.17> As alterações no arquivo de atalhos de teclado são detectadas automaticamente e aplicadas sem reiniciar o Claude Code.

18 18 

19| Campo | Descrição |19| Campo | Descrição |

20| :- | :- |20| :- | :- |

21| `$schema` | URL opcional do JSON Schema para autocompletar do editor |21| `$schema` | URL opcional do JSON Schema para preenchimento automático no editor |

22| `$docs` | URL opcional de documentação |22| `$docs` | URL opcional da documentação |

23| `bindings` | Array de blocos de vinculação por contexto |23| `bindings` | Array de blocos de atalhos por contexto |

24 24 

25Este exemplo vincula `Ctrl+E` para abrir um editor externo no contexto de chat e desvincula `Ctrl+S`:25Este exemplo vincula `Ctrl+E` para abrir um editor externo no contexto do chat e remove o vínculo de `Ctrl+S`:

26 26 

27```json theme={null}27```json theme={null}

28{28{

29 "$schema": "https://www.schemastore.org/claude-code-keybindings.json",29 "$schema": "https://www.schemastore.org/claude-code-keybindings.json",

30 "$docs": "https://code.claude.com/docs/pt/keybindings",30 "$docs": "https://code.claude.com/docs/en/keybindings",

31 "bindings": [31 "bindings": [

32 {32 {

33 "context": "Chat",33 "context": "Chat",


305 305 

306### Ações de diff306### Ações de diff

307 307 

308Essas ações alcançam apenas o visualizador de diff anterior do Claude Code, que `/diff` abre fora da [renderização em tela cheia](https://code.claude.com/docs/pt/fullscreen.md) depois que você desativa o [mod `cc-plugin-diff`](https://code.claude.com/docs/pt/plugins/mods/overview#mods-built-into-claude-code) em `/plugin`. Enquanto esse mod está ativado, `/diff` abre o [diálogo de diff](https://code.claude.com/docs/pt/interactive-mode.md#diff-dialog) em vez disso. Um `keybindings.json` que nomeia essas ações carrega sem erros de qualquer forma.308Essas ações alcançam apenas o visualizador de diff anterior do Claude Code, que `/diff` abre fora da [renderização em tela cheia](https://code.claude.com/docs/pt/fullscreen.md) depois que você desativa o [mod `cc-plugin-diff`](https://code.claude.com/docs/pt/plugins/mods/overview#mods-built-into-claude-code) em `/plugin`. Enquanto esse mod está ativado, `/diff` abre o [diálogo de diff](https://code.claude.com/docs/pt/interactive-mode.md#diff-dialog) em vez disso.

309 309 

310Ações disponíveis no contexto `DiffDialog`:310Ações disponíveis no contexto `DiffDialog`:

311 311 

Details

197* `Marketplace "claude-plugins-official" not found`: adicione o marketplace com `/plugin marketplace add anthropics/claude-plugins-official`, depois tente novamente a instalação.197* `Marketplace "claude-plugins-official" not found`: adicione o marketplace com `/plugin marketplace add anthropics/claude-plugins-official`, depois tente novamente a instalação.

198* `Plugin "<name>" not found in marketplace "claude-plugins-official"`: sua cópia local do catálogo do marketplace pode estar desatualizada. Atualize-a com `/plugin marketplace update claude-plugins-official` e, depois, tente novamente a instalação. Se a nova tentativa exibir a mesma mensagem, consulte [Plugin not found in marketplace](https://code.claude.com/docs/pt/plugins/troubleshooting.md#plugin-not-found-in-marketplace).198* `Plugin "<name>" not found in marketplace "claude-plugins-official"`: sua cópia local do catálogo do marketplace pode estar desatualizada. Atualize-a com `/plugin marketplace update claude-plugins-official` e, depois, tente novamente a instalação. Se a nova tentativa exibir a mesma mensagem, consulte [Plugin not found in marketplace](https://code.claude.com/docs/pt/plugins/troubleshooting.md#plugin-not-found-in-marketplace).

199 199 

200Para habilitar um plugin para todos no repositório em vez de instalá-lo você mesmo, adicione-o à [configuração de projeto `enabledPlugins`](https://code.claude.com/docs/pt/settings-reference#plugin-settings).200Para ativar um plugin para todos no repositório, adicione-o à [configuração de projeto `enabledPlugins`](https://code.claude.com/docs/pt/settings-reference#plugin-settings). Cada pessoa ainda precisa [instalá-lo](https://code.claude.com/docs/pt/plugins/loading.md#enabled-in-project-settings-but-not-installed).

201 201 

202Os plugins de inteligência de código exigem o binário do servidor de linguagem da linguagem em cada máquina do desenvolvedor. Veja [qual binário cada linguagem exige](https://code.claude.com/docs/pt/plugins/code-intelligence.md). A instalação do marketplace oficial requer acesso à rede para GitHub, onde o marketplace é hospedado. Em uma rede restrita, [adicione o marketplace de um host Git interno ou caminho local](https://code.claude.com/docs/pt/plugins/install.md#add-a-marketplace) em vez disso.202Os plugins de inteligência de código exigem o binário do servidor de linguagem da linguagem em cada máquina do desenvolvedor. Veja [qual binário cada linguagem exige](https://code.claude.com/docs/pt/plugins/code-intelligence.md). A instalação do marketplace oficial requer acesso à rede para GitHub, onde o marketplace é hospedado. Em uma rede restrita, [adicione o marketplace de um host Git interno ou caminho local](https://code.claude.com/docs/pt/plugins/install.md#add-a-marketplace) em vez disso.

203 203 


235 235 

236Liste diretórios em `sparsePaths`, não arquivos individuais. Arquivos no nível raiz como `package.json`, `tsconfig.base.json` e arquivos de lock são sempre feitos checkout ao lado dos diretórios que você lista. Diretórios no nível raiz não são, então inclua `.claude` na lista se você quiser que o `.claude/settings.json` da raiz do repositório ou `.claude/rules/` estejam disponíveis dentro da worktree. Para skills de projeto, agentes e comandos, veja [O que worktrees compartilham com o checkout principal](https://code.claude.com/docs/pt/worktrees.md#what-worktrees-share-with-the-main-checkout).236Liste diretórios em `sparsePaths`, não arquivos individuais. Arquivos no nível raiz como `package.json`, `tsconfig.base.json` e arquivos de lock são sempre feitos checkout ao lado dos diretórios que você lista. Diretórios no nível raiz não são, então inclua `.claude` na lista se você quiser que o `.claude/settings.json` da raiz do repositório ou `.claude/rules/` estejam disponíveis dentro da worktree. Para skills de projeto, agentes e comandos, veja [O que worktrees compartilham com o checkout principal](https://code.claude.com/docs/pt/worktrees.md#what-worktrees-share-with-the-main-checkout).

237 237 

238O sparse checkout requer que o git habilite `extensions.worktreeConfig` no `.git/config` compartilhado do repositório enquanto um worktree esparso existe. Claude Code remove essa entrada após o último worktree ser removido, mas apenas se Claude Code a adicionou. Nunca remove um valor que você definiu você mesmo.238> [!NOTE]

239>

240> O sparse checkout requer que o git habilite `extensions.worktreeConfig` no `.git/config` compartilhado do repositório enquanto um worktree esparso existe. Claude Code remove essa entrada após o último worktree ser removido, mas apenas se Claude Code a adicionou.

239 241 

240Para evitar duplicar diretórios grandes como `node_modules` entre worktrees, combine `sparsePaths` com `symlinkDirectories` no mesmo `.claude/settings.json`:242Para evitar duplicar diretórios grandes como `node_modules` entre worktrees, combine `sparsePaths` com `symlinkDirectories` no mesmo `.claude/settings.json`:

241 243 

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. Seu login claude.ai permanece salvo e não utilizado enquanto a variável está definida; desdefina a variável e Claude Code volta para ela. 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.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.

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 


378Definir a variável tem esses efeitos e limitações:378Definir a variável tem esses efeitos e limitações:

379 379 

380* Desativa atualizações automáticas, então planeje outro caminho de atualização, como seu gerenciador de pacotes ou distribuição gerenciada.380* Desativa atualizações automáticas, então planeje outro caminho de atualização, como seu gerenciador de pacotes ou distribuição gerenciada.

381* Suprime a verificação de disponibilidade do [modo rápido](https://code.claude.com/docs/pt/fast-mode.md). A menos que uma verificação anterior já tenha ativado o modo rápido na máquina, `/fast` relata que o modo rápido está indisponível.381* Suprime a verificação de disponibilidade do [modo rápido](https://code.claude.com/docs/pt/fast-mode.md). Na Anthropic API, se `/fast` então relatar que o modo rápido está indisponível, consulte [usar o modo rápido atrás de proxies e gateways de LLM](https://code.claude.com/docs/pt/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) para restaurar o modo rápido.

382* Não afeta a [descoberta de modelo de gateway](#add-gateway-models-to-the-model-picker), que consulta apenas seu gateway. Antes de v2.1.257, a variável também parava a descoberta de atualizar, então o seletor mantinha a lista previamente armazenada em cache.382* Não afeta a [descoberta de modelo de gateway](#add-gateway-models-to-the-model-picker), que consulta apenas seu gateway. Antes de v2.1.257, a variável também parava a descoberta de atualizar, então o seletor mantinha a lista previamente armazenada em cache.

383* A [verificação de segurança de domínio](https://code.claude.com/docs/pt/data-usage.md#webfetch-domain-safety-check) da ferramenta WebFetch não é afetada e ainda chama `api.anthropic.com`. Desative-a separadamente com `skipWebFetchPreflight: true` em [configurações](https://code.claude.com/docs/pt/settings.md) se sua rede bloquear esse host.383* A [verificação de segurança de domínio](https://code.claude.com/docs/pt/data-usage.md#webfetch-domain-safety-check) da ferramenta WebFetch não é afetada e ainda chama `api.anthropic.com`. Desative-a separadamente com `skipWebFetchPreflight: true` em [configurações](https://code.claude.com/docs/pt/settings.md) se sua rede bloquear esse host.

384* Para cada fluxo de telemetria e a variável que a controla, consulte [serviços de telemetria](https://code.claude.com/docs/pt/data-usage.md#telemetry-services).384* Para cada fluxo de telemetria e a variável que a controla, consulte [serviços de telemetria](https://code.claude.com/docs/pt/data-usage.md#telemetry-services).

Details

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

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

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`. Com `ANTHROPIC_AUTH_TOKEN`, nenhum prompt aparece e a variável assume silenciosamente; um login claude.ai previamente salvo está inativo para essa sessão254* 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).

257 257 

managed-mcp.md +1 −1

Details

187 187 

188* `type` é `http` ou `sse`. Como em `.mcp.json`, `streamable-http` é aceito como um alias para `http`.188* `type` é `http` ou `sse`. Como em `.mcp.json`, `streamable-http` é aceito como um alias para `http`.

189* `url` é uma URL `https://`. Claude Code recusa uma URL simples `http://`, incluindo uma que aponta para `localhost`.189* `url` é uma URL `https://`. Claude Code recusa uma URL simples `http://`, incluindo uma que aponta para `localhost`.

190* A entrada não tem membro `command`, `args`, `env` ou `headersHelper`, portanto um documento de configurações gerenciadas nunca nomeia um programa para executar na máquina de um usuário.190* A entrada não tem membro `command`, `args`, `env` ou `headersHelper`.

191* Nenhum valor contém uma referência `${VAR}`. Claude Code não expande variáveis de ambiente nessas entradas, portanto escreva valores literais.191* Nenhum valor contém uma referência `${VAR}`. Claude Code não expande variáveis de ambiente nessas entradas, portanto escreva valores literais.

192* O nome do servidor contém apenas letras, números, hífens e sublinhados, e nenhuma chave ou valor contém caracteres de controle ou formatação invisível.192* O nome do servidor contém apenas letras, números, hífens e sublinhados, e nenhuma chave ou valor contém caracteres de controle ou formatação invisível.

193 193 

mcp.md +230 −232

Details

60 60 

61## Instalando servidores MCP61## Instalando servidores MCP

62 62 

63Os servidores MCP podem ser configurados de várias maneiras dependendo de suas necessidades:63Os servidores MCP podem ser configurados de várias maneiras, dependendo das suas necessidades:

64 64 

65### Opção 1: Adicionar um servidor HTTP remoto65### Opção 1: Adicionar um servidor HTTP remoto

66 66 

67Os servidores HTTP são a opção recomendada para conectar a servidores MCP remotos. Este é o transporte mais amplamente suportado para serviços baseados em nuvem.67Os servidores HTTP são a opção recomendada para se conectar a servidores MCP remotos. Este é o transporte com maior suporte para serviços baseados em nuvem.

68 68 

69```bash theme={null}69```bash theme={null}

70# Sintaxe básica70# Basic syntax

71claude mcp add --transport http <name> <url>71claude mcp add --transport http <name> <url>

72 72 

73# Exemplo real: Conectar ao Notion73# Real example: Connect to Notion

74claude mcp add --transport http notion https://mcp.notion.com/mcp74claude mcp add --transport http notion https://mcp.notion.com/mcp

75 75 

76# Exemplo com token Bearer76# Example with Bearer token

77claude mcp add --transport http secure-api https://api.example.com/mcp \77claude mcp add --transport http secure-api https://api.example.com/mcp \

78 --header "Authorization: Bearer your-token"78 --header "Authorization: Bearer your-token"

79```79```

80 80 

81Ao configurar servidores MCP via JSON em `.mcp.json`, `~/.claude.json`, ou `claude mcp add-json`, o campo `type` aceita `streamable-http` como um alias para `http`. A especificação MCP usa o nome `streamable-http` para este transporte, portanto as configurações copiadas da documentação do servidor funcionam sem modificação.81Ao configurar servidores MCP via JSON em `.mcp.json`, `~/.claude.json` ou `claude mcp add-json`, o campo `type` aceita `streamable-http` como alias para `http`. A especificação MCP usa o nome `streamable-http` para este transporte, então configurações copiadas da documentação do servidor funcionam sem modificação.

82 82 

83Uma entrada JSON que tem uma `url` mas nenhum `type` é um erro de configuração, porque Claude Code lê uma entrada sem `type` como um servidor stdio. Claude Code pula esse servidor e relata `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`.83Uma entrada JSON que tem um `url`, mas nenhum `type`, é um erro de configuração, porque o Claude Code lê uma entrada sem `type` como um servidor stdio. O Claude Code ignora esse servidor e informa `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`.

84 84 

85Apenas um aplicativo host SDK, como um aplicativo [Agent SDK](https://code.claude.com/docs/pt/agent-sdk/mcp.md) ou o [aplicativo de desktop](https://code.claude.com/docs/pt/desktop.md), pode registrar um servidor `"type": "sdk"` em processo. Claude Code pula uma entrada `"type": "sdk"` em `.mcp.json`, `~/.claude.json`, ou configurações e relata `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.85Somente um aplicativo host do SDK, como um aplicativo do [Agent SDK](https://code.claude.com/docs/pt/agent-sdk/mcp.md) ou o [aplicativo desktop](https://code.claude.com/docs/pt/desktop.md), pode registrar um servidor em processo `"type": "sdk"`. O Claude Code ignora uma entrada `"type": "sdk"` em `.mcp.json`, `~/.claude.json` ou nas configurações e informa `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.

86 86 

87> [!NOTE]87> [!NOTE]

88>88>

89> Em execuções com `--output-format stream-json`, o Claude Code também relata uma entrada `--mcp-config` ignorada no [campo `mcp_server_errors`](https://code.claude.com/docs/pt/headless#stream-responses) do evento `system/init`, para que scripts possam detectar que o servidor nunca foi carregado.89> Em execuções com `--output-format stream-json`, o Claude Code também informa uma entrada `--mcp-config` ignorada no [campo `mcp_server_errors`](https://code.claude.com/docs/pt/headless#stream-responses) do evento `system/init`, para que scripts possam detectar que o servidor nunca foi carregado.

90 90 

91### Opção 2: Adicionar um servidor SSE remoto91### Opção 2: Adicionar um servidor SSE remoto

92 92 

93> [!WARNING]93> [!WARNING]

94>94>

95> O transporte SSE (Server-Sent Events) está descontinuado. Use servidores HTTP em vez disso, quando disponível.95> O transporte SSE (Server-Sent Events) está descontinuado. Use servidores HTTP, quando disponíveis.

96 96 

97Alguns serviços ainda expõem apenas um endpoint SSE. Adicione-os com o mesmo comando `claude mcp add --transport http <name> <url>` que um [servidor HTTP](#option-1-add-a-remote-http-server). Claude Code tenta o transporte HTTP primeiro e muda para SSE quando o servidor não o aceita. A mudança automática requer Claude Code v2.1.265 ou posterior.97Alguns serviços ainda expõem apenas um endpoint SSE. Adicione-os com o mesmo comando `claude mcp add --transport http <name> <url>` usado para [um servidor HTTP](#option-1-add-a-remote-http-server). O Claude Code tenta primeiro o transporte HTTP e muda para SSE quando o servidor não o aceita. A mudança automática requer o Claude Code v2.1.265 ou posterior.

98 98 

99Em uma versão anterior, ou para conectar sobre SSE diretamente, passe `--transport sse` em vez disso:99Em uma versão anterior, ou para se conectar diretamente via SSE, passe `--transport sse`:

100 100 

101```bash theme={null}101```bash theme={null}

102# Sintaxe básica102# Basic syntax

103claude mcp add --transport sse <name> <url>103claude mcp add --transport sse <name> <url>

104 104 

105# Exemplo real: Conectar ao Asana105# Real example: Connect to Asana

106claude mcp add --transport sse asana https://mcp.asana.com/sse106claude mcp add --transport sse asana https://mcp.asana.com/sse

107 107 

108# Exemplo com cabeçalho de autenticação108# Example with authentication header

109claude mcp add --transport sse private-api https://api.company.com/sse \109claude mcp add --transport sse private-api https://api.company.com/sse \

110 --header "X-API-Key: your-key-here"110 --header "X-API-Key: your-key-here"

111```111```

112 112 

113### Opção 3: Adicionar um servidor stdio local113### Opção 3: Adicionar um servidor stdio local

114 114 

115Os servidores Stdio são executados como processos locais em sua máquina. Eles são ideais para ferramentas que precisam de acesso direto ao sistema ou scripts personalizados.115Os servidores stdio são executados como processos locais na sua máquina. Eles são ideais para ferramentas que precisam de acesso direto ao sistema ou scripts personalizados.

116 116 

117Claude Code define `CLAUDE_PROJECT_DIR` no ambiente do servidor gerado para a raiz do projeto, para que seu servidor possa resolver caminhos relativos ao projeto sem depender do diretório de trabalho. Este é o mesmo diretório que hooks recebem em sua variável `CLAUDE_PROJECT_DIR`. Leia-o de dentro do seu processo de servidor, por exemplo `process.env.CLAUDE_PROJECT_DIR` em Node ou `os.environ["CLAUDE_PROJECT_DIR"]` em Python.117O Claude Code define `CLAUDE_PROJECT_DIR` no ambiente do servidor iniciado como a raiz do projeto, para que seu servidor possa resolver caminhos relativos ao projeto sem depender do diretório de trabalho. Este é o mesmo diretório que os hooks recebem em sua variável `CLAUDE_PROJECT_DIR`. Leia-o de dentro do processo do seu servidor, por exemplo `process.env.CLAUDE_PROJECT_DIR` em Node ou `os.environ["CLAUDE_PROJECT_DIR"]` em Python.

118 118 

119`CLAUDE_PROJECT_DIR` é a raiz do projeto estável e não muda quando você adiciona ou remove diretórios de trabalho no meio da sessão. Um servidor que limita seu próprio acesso ao sistema de arquivos a um conjunto de diretórios permitidos deve implementar a solicitação MCP `roots/list` em vez disso. Claude Code responde a `roots/list` com o diretório de inicialização da sessão mais cada [diretório de trabalho adicional](https://code.claude.com/docs/pt/permissions.md#working-directories) que você concedeu com `--add-dir`, `/add-dir`, ou a configuração `additionalDirectories`. Claude Code envia `notifications/roots/list_changed` quando esse conjunto muda.119`CLAUDE_PROJECT_DIR` é a raiz estável do projeto e não muda quando você adiciona ou remove diretórios de trabalho no meio da sessão. Um servidor que limita seu próprio acesso ao sistema de arquivos a um conjunto de diretórios permitidos deve implementar a requisição MCP `roots/list`. O Claude Code responde a `roots/list` com o diretório de inicialização da sessão mais cada [diretório de trabalho adicional](https://code.claude.com/docs/pt/permissions.md#working-directories) que você concedeu com `--add-dir`, `/add-dir` ou a configuração `additionalDirectories`. O Claude Code envia `notifications/roots/list_changed` quando esse conjunto muda.

120 120 

121Esta variável é definida no ambiente do servidor, não no ambiente do próprio Claude Code, portanto fazer referência a ela via expansão `${VAR}` no `command` ou `args` de uma entrada `.mcp.json` com escopo de projeto ou uma entrada de servidor com escopo local ou de usuário em `~/.claude.json` requer um padrão como `${CLAUDE_PROJECT_DIR:-.}`. As configurações MCP fornecidas por plugins substituem `${CLAUDE_PROJECT_DIR}` diretamente e não precisam do padrão.121Essa variável é definida no ambiente do servidor, não no ambiente do próprio Claude Code, portanto referenciá-la via expansão `${VAR}` no `command` ou `args` de uma entrada `.mcp.json` com escopo de projeto, ou de uma entrada de servidor com escopo local ou de usuário em `~/.claude.json`, requer um valor padrão como `${CLAUDE_PROJECT_DIR:-.}`. As configurações MCP fornecidas por plugins substituem `${CLAUDE_PROJECT_DIR}` diretamente e não precisam do valor padrão.

122 122 

123```bash theme={null}123```bash theme={null}

124# Sintaxe básica124# Basic syntax

125claude mcp add [options] <name> -- <command> [args...]125claude mcp add [options] <name> -- <command> [args...]

126 126 

127# Exemplo real: Adicionar servidor Airtable127# Real example: Add Airtable server

128claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \128claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \

129 -- npx -y airtable-mcp-server129 -- npx -y airtable-mcp-server

130```130```

131 131 

132> [!NOTE]132> [!NOTE]

133>133>

134> Para servidores stdio, o `--` (duplo travessão) separa as próprias opções do Claude, como `--transport`, `--env`, e `--scope`, do comando e argumentos que executam o servidor. Tudo após `--` é passado para o servidor intocado.134> Para servidores stdio, o `--` (traço duplo) separa as opções do próprio Claude, como `--transport`, `--env` e `--scope`, do comando e dos argumentos que executam o servidor. Tudo após `--` é passado ao servidor sem alterações.

135>135>

136> Por exemplo:136> Por exemplo:

137>137>

138> * `claude mcp add --transport stdio myserver -- npx server` → executa `npx server`138> * `claude mcp add --transport stdio myserver -- npx server` → executa `npx server`

139> * `claude mcp add --env KEY=value --transport stdio myserver -- python server.py --port 8080` → executa `python server.py --port 8080` com `KEY=value` no ambiente139> * `claude mcp add --env KEY=value --transport stdio myserver -- python server.py --port 8080` → executa `python server.py --port 8080` com `KEY=value` no ambiente

140>140>

141> Sem `--`, Claude Code tentaria analisar os sinalizadores do servidor, como `--port` acima, como suas próprias opções.141> Sem `--`, o Claude Code tentaria interpretar as flags do servidor, como `--port` acima, como suas próprias opções.

142>142>

143> `--env` aceita múltiplos pares `KEY=value`. Se o nome do servidor vem imediatamente após `--env`, a CLI lê o nome como outro par e o rejeita, portanto coloque pelo menos uma outra opção, como `--transport stdio`, entre `--env` e o nome do servidor.143> `--env` aceita vários pares `KEY=value`. Se o nome do servidor vier diretamente após `--env`, a CLI lê o nome como outro par e o rejeita, então coloque pelo menos uma outra opção, como `--transport stdio`, entre `--env` e o nome do servidor.

144 144 

145#### Como Claude Code para um servidor stdio145#### Como o Claude Code encerra um servidor stdio

146 146 

147Quando Claude Code desconecta um servidor stdio, por exemplo quando sua sessão termina, ele sinaliza o processo do servidor e aguarda brevemente que ele saia antes de forçá-lo a parar. Se seu servidor salva estado ou remove arquivos de bloqueio no desligamento, trate o sinal da sua plataforma e termine dentro desse tempo:147Quando o Claude Code desconecta um servidor stdio, por exemplo quando sua sessão termina, ele envia um sinal ao processo do servidor e aguarda brevemente que ele saia antes de forçá-lo a parar. Se o seu servidor salva estado ou remove arquivos de bloqueio no encerramento, trate o sinal da sua plataforma e conclua dentro desse tempo:

148 148 

149* **No macOS e Linux**: Claude Code envia `SIGINT`, depois `SIGTERM` se o processo ainda estiver em execução 100 milissegundos depois, depois `SIGKILL` após mais 400 milissegundos.149* **No macOS e Linux**: o Claude Code envia `SIGINT`, depois `SIGTERM` se o processo ainda estiver em execução 100 milissegundos depois, e então `SIGKILL` após mais 400 milissegundos.

150* **No Windows**: Claude Code fecha o stdin do servidor, depois encerra a árvore de processos do servidor se o processo ainda estiver em execução 300 milissegundos depois.150* **No Windows**: o Claude Code fecha o stdin do servidor e depois encerra a árvore de processos do servidor se o processo ainda estiver em execução 300 milissegundos depois.

151 151 

152Antes da v2.1.296, Claude Code no Windows encerrava a árvore de processos do servidor de imediato, sem fechar o stdin primeiro nem aguardar.152Antes da v2.1.296, o Claude Code no Windows encerrava a árvore de processos do servidor imediatamente, sem fechar o stdin primeiro nem aguardar.

153 153 

154### Opção 4: Adicionar um servidor WebSocket remoto154### Opção 4: Adicionar um servidor WebSocket remoto

155 155 

156Os servidores WebSocket mantêm uma conexão bidirecional persistente, o que é adequado para servidores MCP remotos que enviam eventos para Claude sem solicitação. Use HTTP em vez disso quando seu servidor apenas responde a solicitações, já que HTTP suporta OAuth e o sinalizador `claude mcp add --transport`, enquanto WebSocket não suporta nenhum dos dois.156Os servidores WebSocket mantêm uma conexão bidirecional persistente, o que é adequado para servidores MCP remotos que enviam eventos ao Claude sem solicitação. Use HTTP quando o seu servidor apenas responde a requisições, já que o HTTP oferece suporte a OAuth e à flag `claude mcp add --transport`, enquanto o WebSocket não oferece suporte a nenhum dos dois.

157 157 

158Configure servidores WebSocket em `.mcp.json` ou com `claude mcp add-json`:158Configure servidores WebSocket em `.mcp.json` ou com `claude mcp add-json`:

159 159 


162 '{"type":"ws","url":"wss://mcp.example.com/socket","headers":{"Authorization":"Bearer YOUR_TOKEN"}}'162 '{"type":"ws","url":"wss://mcp.example.com/socket","headers":{"Authorization":"Bearer YOUR_TOKEN"}}'

163```163```

164 164 

165A entrada `type: "ws"` aceita os mesmos campos `url`, `headers`, `headersHelper`, `timeout`, e `alwaysLoad` que `http`. A autenticação é apenas por cabeçalho, portanto passe um token estático em `headers` ou gere um no momento da conexão com [`headersHelper`](#use-dynamic-headers-for-custom-authentication). O sinalizador `claude mcp add --transport` não aceita `ws`.165A entrada `type: "ws"` aceita os mesmos campos `url`, `headers`, `headersHelper`, `timeout` e `alwaysLoad` que `http`. A autenticação é feita apenas por cabeçalho, então passe um token estático em `headers` ou gere um no momento da conexão com [`headersHelper`](#use-dynamic-headers-for-custom-authentication). A flag `claude mcp add --transport` não aceita `ws`.

166 166 

167### Adicionar um servidor a partir de instruções de configuração escritas para outro cliente167### Adicionar um servidor a partir de instruções de configuração escritas para outro cliente

168 168 

169Os servidores MCP não são específicos do Claude Code, portanto as instruções de configuração de um servidor podem ser escritas para Claude Desktop, Cursor, ou outro cliente MCP e não fornecer nenhum comando `claude mcp add`. Para adicionar o servidor mesmo assim, procure nessas instruções por uma URL, um comando de inicialização ou um bloco JSON:169Os servidores MCP não são específicos do Claude Code, então as instruções de configuração de um servidor podem ter sido escritas para o Claude Desktop, o Cursor ou outro cliente MCP e não fornecer nenhum comando `claude mcp add`. Para adicionar o servidor mesmo assim, procure nessas instruções uma URL, um comando de inicialização ou um bloco JSON:

170 170 

171* **Uma URL** como `https://mcp.example.com/mcp`: o servidor é remoto.171* **Uma URL** como `https://mcp.example.com/mcp`: o servidor é remoto.

172* **Um comando de inicialização** como `npx -y @example/mcp-server`: o servidor é executado em sua máquina.172* **Um comando de inicialização** como `npx -y @example/mcp-server`: o servidor é executado na sua máquina.

173* **Um bloco JSON `mcpServers`**: configuração escrita para o arquivo de configurações de outro cliente.173* **Um bloco JSON `mcpServers`**: configuração escrita para o arquivo de configuração de outro cliente.

174 174 

175Cada um é uma das entradas que as quatro opções em [Instalando servidores MCP](#installing-mcp-servers) usam. Encontre a forma que você tem abaixo para transformá-la no comando que Claude Code aceita. Cada comando escreve no [escopo local](#local-scope) a menos que você adicione `--scope project` ou `--scope user`.175Cada um deles é uma das entradas que as quatro opções em [Instalando servidores MCP](#installing-mcp-servers) recebem. Encontre abaixo o formato que você tem para transformá-lo no comando que o Claude Code aceita. Cada comando grava no [escopo local](#local-scope), a menos que você adicione `--scope project` ou `--scope user`.

176 176 

177#### Adicionar um servidor a partir de uma URL177#### Adicionar um servidor a partir de uma URL

178 178 

179Uma URL significa que o servidor é remoto. Para um endpoint `https://`, adicione-o com `--transport http`, ou siga a [Opção 2](#option-2-add-a-remote-sse-server) quando as instruções disserem que o endpoint usa SSE. Para um endpoint `wss://`, use a [Opção 4](#option-4-add-a-remote-websocket-server) em vez disso, já que `--transport` não aceita `ws`:179Uma URL significa que o servidor é remoto. Para um endpoint `https://`, adicione-o com `--transport http`, ou siga a [Opção 2](#option-2-add-a-remote-sse-server) quando as instruções disserem que o endpoint usa SSE. Para um endpoint `wss://`, use a [Opção 4](#option-4-add-a-remote-websocket-server), já que `--transport` não aceita `ws`:

180 180 

181```bash theme={null}181```bash theme={null}

182claude mcp add --transport http example https://mcp.example.com/mcp182claude mcp add --transport http example https://mcp.example.com/mcp

183```183```

184 184 

185Se as instruções também fornecerem uma chave de API ou cabeçalho de token, passe-o com `--header` como mostrado na [Opção 1](#option-1-add-a-remote-http-server).185Se as instruções também fornecerem uma chave de API ou um cabeçalho de token, passe-o com `--header`, conforme mostrado na [Opção 1](#option-1-add-a-remote-http-server).

186 186 

187#### Adicionar um servidor a partir de um comando `npx`, `uvx`, ou binário187#### Adicionar um servidor a partir de um comando `npx`, `uvx` ou binário

188 188 

189Um comando de inicialização significa que o servidor é executado como um processo stdio local. Coloque o comando inteiro após `--`, para que Claude Code passe sinalizadores como `-y` para o comando que inicia o servidor em vez de lê-los como suas próprias opções. Passe quaisquer variáveis de ambiente que as instruções peçam com `--env`, após o nome do servidor e antes de `--`:189Um comando de inicialização significa que o servidor é executado como um processo stdio local. Coloque o comando inteiro após `--`, para que o Claude Code passe flags como `-y` ao comando que inicia o servidor em vez de lê-las como suas próprias opções. Passe quaisquer variáveis de ambiente que as instruções pedirem com `--env`, após o nome do servidor e antes de `--`:

190 190 

191```bash theme={null}191```bash theme={null}

192claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server192claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server

193```193```

194 194 

195A [Opção 3](#option-3-add-a-local-stdio-server) cobre o separador `--` completamente.195A [Opção 3](#option-3-add-a-local-stdio-server) aborda o separador `--` em detalhes.

196 196 

197#### Adicionar um servidor a partir de um bloco JSON `mcpServers`197#### Adicionar um servidor a partir de um bloco JSON `mcpServers`

198 198 

199Um bloco `mcpServers` escrito para outro cliente MCP, como Claude Desktop, usa a chave wrapper e a forma de entrada que Claude Code lê. Passe `claude mcp add-json` o objeto dentro de `mcpServers`, não o wrapper. Duas entradas precisam de um reparo primeiro:199Um bloco `mcpServers` escrito para outro cliente MCP, como o Claude Desktop, usa a chave envolvente e o formato de entrada que o Claude Code lê. Passe para `claude mcp add-json` o objeto dentro de `mcpServers`, não o envoltório. Duas entradas precisam de um ajuste antes:

200 200 

201* **Uma `url` sem `type`**: adicione `"type": "http"`, `"type": "sse"`, ou `"type": "ws"` para corresponder ao endpoint. Claude Code lê uma entrada sem `type` como um servidor stdio, portanto uma entrada `url` sem `type` falha.201* **Um `url` sem `type`**: adicione `"type": "http"`, `"type": "sse"` ou `"type": "ws"` de acordo com o endpoint. O Claude Code lê uma entrada sem `type` como um servidor stdio, então uma entrada `url` sem `type` falha.

202* **Uma chave com caracteres diferentes de letras, números, hífens e sublinhados**: escolha um nome de servidor que use apenas esses caracteres. Caso contrário, a chave é o nome do servidor.202* **Uma chave com caracteres diferentes de letras, números, hifens e sublinhados**: escolha um nome de servidor que use apenas esses caracteres. Caso contrário, a chave é o nome do servidor.

203 203 

204Por exemplo, este bloco:204Por exemplo, este bloco:

205 205 


220claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'220claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'

221```221```

222 222 

223[Adicionar servidores MCP a partir de configuração JSON](#add-mcp-servers-from-json-configuration) cobre escape de shell e o sinalizador `--scope` para `add-json`. Para compartilhar o servidor com sua equipe em vez disso, adicione `--scope project`, ou adicione a entrada sob `mcpServers` em `.mcp.json` na raiz do seu projeto e faça commit. [Escopo de projeto](#project-scope) cobre como Claude Code carrega e aprova esse arquivo.223[Adicionar servidores MCP a partir de configuração JSON](#add-mcp-servers-from-json-configuration) aborda o escape no shell e a flag `--scope` para `add-json`. Para compartilhar o servidor com sua equipe, adicione `--scope project`, ou adicione a entrada em `mcpServers` no `.mcp.json` na raiz do seu projeto e faça commit dela. [Escopo de projeto](#project-scope) explica como o Claude Code carrega e aprova esse arquivo.

224 224 

225Cada comando `claude mcp add` e `claude mcp add-json` imprime uma linha `Added ...` em caso de sucesso. Para verificar que Claude Code se conectou, execute `claude mcp get <name>`; [Status do servidor](#server-status) cobre os status que ele mostra e a etapa de aprovação para servidores `.mcp.json`.225Cada comando `claude mcp add` e `claude mcp add-json` imprime uma linha `Added ...` em caso de sucesso. Para verificar se o Claude Code se conectou, execute `claude mcp get <name>`; [Status do servidor](#server-status) aborda os status exibidos e a etapa de aprovação para servidores do `.mcp.json`.

226 226 

227### Gerenciando seus servidores227### Gerenciando seus servidores

228 228 

229Uma vez configurados, você pode gerenciar seus servidores MCP com estes comandos:229Depois de configurados, você pode gerenciar seus servidores MCP com estes comandos:

230 230 

231```bash theme={null}231```bash theme={null}

232# Listar todos os servidores configurados232# List all configured servers

233claude mcp list233claude mcp list

234 234 

235# Obter detalhes para um servidor específico235# Get details for a specific server

236claude mcp get notion236claude mcp get notion

237 237 

238# Remover um servidor238# Remove a server

239claude mcp remove notion239claude mcp remove notion

240 240 

241# (dentro do Claude Code) Verificar status do servidor241# (within Claude Code) Check server status

242/mcp242/mcp

243```243```

244 244 

245Quando você remove um servidor remoto, o Claude Code também exclui os tokens OAuth e o registro de cliente que armazenou para esse servidor. O Claude Code não revoga os tokens no servidor de autorização que os emitiu. Para revogar os tokens quando o servidor de autorização oferece suporte à revogação, execute [`claude mcp logout <name>`](#authenticate-from-the-command-line) no seu shell antes de `claude mcp remove <name>`.245Quando você remove um servidor remoto, o Claude Code também exclui os tokens OAuth e o registro de cliente que armazenou para esse servidor. O Claude Code não revoga os tokens no servidor de autorização que os emitiu. Para revogar os tokens onde o servidor de autorização oferece suporte à revogação, execute [`claude mcp logout <name>`](#authenticate-from-the-command-line) no seu shell antes de `claude mcp remove <name>`.

246 246 

247#### Status do servidor247#### Status do servidor

248 248 

249`claude mcp add` confirma uma adição bem-sucedida imprimindo uma linha `Added ...`, o que significa que a configuração foi escrita. Se o comando imprimir uma mensagem `was not saved` em vez disso, veja [MCP server was not saved or removed](https://code.claude.com/docs/pt/errors.md#mcp-server-was-not-saved-or-removed); para uma mensagem `may not have been saved`, veja [MCP server may not have been saved or removed](https://code.claude.com/docs/pt/errors.md#mcp-server-may-not-have-been-saved-or-removed).249`claude mcp add` confirma uma adição bem-sucedida imprimindo uma linha `Added ...`, o que significa que a configuração foi gravada. Se o comando imprimir uma mensagem `was not saved`, consulte [O servidor MCP não foi salvo ou removido](https://code.claude.com/docs/pt/errors.md#mcp-server-was-not-saved-or-removed); para uma mensagem `may not have been saved`, consulte [O servidor MCP pode não ter sido salvo ou removido](https://code.claude.com/docs/pt/errors.md#mcp-server-may-not-have-been-saved-or-removed).

250 250 

251`claude mcp list` mostra um status de saúde ao lado de cada servidor que lista, como `✔ Connected`, `! Needs authentication`, ou `✘ Failed to connect`. Um status de falha significa que Claude Code não conseguiu se conectar a esse servidor, não que o comando list falhou.251`claude mcp list` mostra um status de integridade ao lado de cada servidor listado, como `✔ Connected`, `! Needs authentication` ou `✘ Failed to connect`. Um status de falha significa que o Claude Code não conseguiu se conectar a esse servidor, não que o comando de listagem falhou.

252 252 

253Os status nesta lista relatam uma decisão de configuração em vez de uma tentativa de conexão, portanto Claude Code os imprime sem se conectar ao servidor:253Os status nesta lista informam uma decisão de configuração em vez de uma tentativa de conexão, então o Claude Code os imprime sem se conectar ao servidor:

254 254 

255* ``⏸ Pending approval (run `claude` to approve)``: um servidor com escopo de projeto do `.mcp.json` que você ainda não aprovou. O Claude Code o mostra tanto em `claude mcp list` quanto em `claude mcp get <name>`. Execute `claude` interativamente para revisá-lo e aprová-lo.255* ``⏸ Pending approval (run `claude` to approve)``: um servidor com escopo de projeto do `.mcp.json` que você ainda não aprovou. O Claude Code o mostra tanto em `claude mcp list` quanto em `claude mcp get <name>`. Execute `claude` interativamente para revisá-lo e aprová-lo.

256* `✘ Rejected (see disabledMcpjsonServers in settings)`: um servidor `.mcp.json` que uma entrada [`disabledMcpjsonServers`](https://code.claude.com/docs/pt/settings-reference#disabledmcpjsonservers) rejeita. Claude Code o mostra apenas em `claude mcp get <name>`.256* `✘ Rejected (see disabledMcpjsonServers in settings)`: um servidor do `.mcp.json` que uma entrada [`disabledMcpjsonServers`](https://code.claude.com/docs/pt/settings-reference#disabledmcpjsonservers) rejeita. O Claude Code o mostra apenas em `claude mcp get <name>`.

257* `⊘ Disabled for this project (re-enable via /mcp)`: um servidor que a lista [`disabledMcpServers`](#disable-a-server-without-removing-it) do projeto nomeia. Claude Code o mostra em `claude mcp list` e `claude mcp get <name>`. Ative o servidor novamente no painel `/mcp`.257* `⊘ Disabled for this project (re-enable via /mcp)`: um servidor que a lista [`disabledMcpServers`](#disable-a-server-without-removing-it) do projeto nomeia. O Claude Code o mostra tanto em `claude mcp list` quanto em `claude mcp get <name>`. Reative o servidor no painel `/mcp`.

258* `✘ Blocked by enterprise managed policy`: um servidor que uma das políticas da sua organização recusa. O Claude Code o mostra tanto em `claude mcp list` quanto em `claude mcp get <name>`. Um servidor bloqueado por uma allowlist, uma denylist ou outra restrição na [configuração MCP gerenciada](https://code.claude.com/docs/pt/managed-mcp.md#how-restrictions-appear-to-users) fica oculto em ambos os comandos em vez de ser mostrado com esse status. Pergunte ao seu administrador qual política bloqueia o servidor.258* `✘ Blocked by enterprise managed policy`: um servidor que uma das políticas da sua organização recusa. O Claude Code o mostra tanto em `claude mcp list` quanto em `claude mcp get <name>`. Um servidor bloqueado por uma allowlist, uma denylist ou outra restrição na [configuração MCP gerenciada](https://code.claude.com/docs/pt/managed-mcp.md#how-restrictions-appear-to-users) fica oculto em ambos os comandos em vez de ser mostrado com esse status. Pergunte ao seu administrador qual política bloqueia o servidor.

259 259 

260#### Aprovações de servidor de projeto e confiança do workspace260#### Aprovações de servidores do projeto e confiança no workspace

261 261 

262`claude mcp list` e `claude mcp get` leem aprovações `.mcp.json` apenas de arquivos de configurações que não estão no repositório até que você confie no workspace executando `claude` nele e aceitando o diálogo de confiança do workspace. Um repositório clonado não pode aprovar seus próprios servidores: [`enableAllProjectMcpServers`](https://code.claude.com/docs/pt/settings-reference#enableallprojectmcpservers) ou [`enabledMcpjsonServers`](https://code.claude.com/docs/pt/settings-reference#enabledmcpjsonservers) incluído via commit no `.claude/settings.json` do projeto é ignorado em uma pasta não confiável, e o servidor permanece em `⏸ Pending approval` em vez de ser conectado e verificado quanto à saúde.262`claude mcp list` e `claude mcp get` leem aprovações do `.mcp.json` apenas de arquivos de configuração que não estão no repositório até que você confie no workspace executando `claude` nele e aceitando a caixa de diálogo de confiança do workspace. Um repositório clonado não pode aprovar seus próprios servidores: [`enableAllProjectMcpServers`](https://code.claude.com/docs/pt/settings-reference#enableallprojectmcpservers) ou [`enabledMcpjsonServers`](https://code.claude.com/docs/pt/settings-reference#enabledmcpjsonservers) com commit no `.claude/settings.json` do projeto são ignorados em uma pasta não confiável, e o servidor permanece em `⏸ Pending approval` em vez de ser conectado e ter sua integridade verificada.

263 263 

264As aprovações dessas fontes ainda se aplicam em uma pasta não confiável:264As aprovações destas fontes ainda se aplicam em uma pasta não confiável:

265 265 

266* seu `~/.claude/settings.json` de usuário266* seu `~/.claude/settings.json` de usuário

267* configurações gerenciadas267* configurações gerenciadas

268* configurações passadas com `--settings`268* configurações passadas com `--settings`

269 269 

270Claude Code também aplica aprovações de um `.claude/settings.local.json` não rastreado, mas executa git para verificar se o arquivo é rastreado, e executa essa verificação apenas em uma [pasta confiável](https://code.claude.com/docs/pt/permissions.md#project-allow-rules-and-workspace-trust). Em uma pasta que você nunca confiou, Claude Code aguarda o diálogo de confiança antes de aplicar as aprovações do arquivo, a menos que a pasta seja seu próprio diretório de configuração: seu diretório pessoal, ou um diretório cujo `.claude` você definiu como [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/pt/env-vars). Antes da v2.1.207, Claude Code aplicava aprovações de um `.claude/settings.local.json` não rastreado mesmo em uma pasta que você nunca tinha confiado.270O Claude Code também aplica aprovações de um `.claude/settings.local.json` não rastreado, mas executa o git para verificar se o arquivo é rastreado e executa essa verificação apenas em uma [pasta confiável](https://code.claude.com/docs/pt/permissions.md#project-allow-rules-and-workspace-trust). Em uma pasta em que você nunca confiou, o Claude Code aguarda a caixa de diálogo de confiança antes de aplicar as aprovações do arquivo, a menos que a pasta seja sua própria base de configuração: seu diretório pessoal, ou um diretório cujo `.claude` você definiu como [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/pt/env-vars). Antes da v2.1.207, o Claude Code aplicava aprovações de um `.claude/settings.local.json` não rastreado mesmo em uma pasta em que você nunca havia confiado.

271 271 

272Uma entrada `disabledMcpjsonServers` em qualquer arquivo de configurações ainda rejeita o servidor.272Uma entrada `disabledMcpjsonServers` em qualquer arquivo de configuração ainda rejeita o servidor.

273 273 

274#### Detalhe do status do servidor274#### Detalhes do status do servidor

275 275 

276Em `/mcp`, incluindo o menu de um servidor lá, e no [gerenciador `/plugin`](https://code.claude.com/docs/pt/plugins/install), um servidor HTTP ou SSE remoto que você usou antes pode mostrar um status `cached` como `cached 2h ago · connects on first use · 5 tools`. Claude Code carregou a lista de ferramentas do servidor de seu cache de descoberta, salvo em uma sessão anterior, em vez de se conectar na inicialização, e Claude Code conecta o servidor na primeira vez que Claude chama uma das ferramentas do servidor. As ferramentas estão disponíveis a partir de sua primeira mensagem, portanto você não precisa fazer nada. O cache de descoberta e seu status `cached` requerem Claude Code v2.1.221 ou posterior.276Em `/mcp`, incluindo o menu de um servidor ali, e no gerenciador [`/plugin`](https://code.claude.com/docs/pt/plugins/install), um servidor HTTP ou SSE remoto que você já usou pode mostrar um status `cached` como `cached 2h ago · connects on first use · 5 tools`. O Claude Code carregou a lista de ferramentas do servidor a partir do seu cache de descoberta, salvo em uma sessão anterior, em vez de se conectar na inicialização, e o Claude Code conecta o servidor na primeira vez que o Claude chama uma das ferramentas do servidor. As ferramentas ficam disponíveis desde a sua primeira mensagem, então você não precisa fazer nada. O cache de descoberta e seu status `cached` requerem o Claude Code v2.1.221 ou posterior.

277 277 

278O cache de descoberta está desativado por padrão a menos que um lançamento gradual o tenha ativado para sua conta. Defina [`MCP_DISCOVERY_CACHE=1`](https://code.claude.com/docs/pt/env-vars) para ativá-lo, ou `0` para mantê-lo desativado mesmo quando o lançamento o tiver ativado. Antes da v2.1.238, o cache estava ativado por padrão.278O cache de descoberta fica desativado por padrão, a menos que uma implantação gradual o tenha ativado para sua conta. Defina [`MCP_DISCOVERY_CACHE=1`](https://code.claude.com/docs/pt/env-vars) para ativá-lo, ou `0` para mantê-lo desativado mesmo quando a implantação o tiver ativado. Antes da v2.1.238, o cache ficava ativado por padrão.

279 279 

280Quando você seleciona **Disable** ou **Clear authentication** no menu de um servidor em `/mcp`, Claude Code também descarta a entrada de cache desse servidor. **Reconnect** também a descarta em um servidor conectado ou com falha; em um servidor `cached`, **Reconnect** conecta o servidor agora e mantém a entrada. Na próxima vez que Claude Code se conectar ao servidor após descartar a entrada, ele busca a lista de ferramentas do servidor em vez de do cache.280Quando você seleciona **Disable** ou **Clear authentication** no menu de um servidor em `/mcp`, o Claude Code também descarta a entrada de cache desse servidor. **Reconnect** também a descarta em um servidor conectado ou com falha; em um servidor `cached`, **Reconnect** conecta o servidor agora e mantém a entrada. Na próxima vez que o Claude Code se conectar ao servidor após descartar a entrada, ele busca a lista de ferramentas no servidor em vez de no cache.

281 281 

282##### Falhas de conexão e servidores não configurados282##### Falhas de conexão e servidores não configurados

283 283 

284Quando o status de um servidor é `✘ Failed to connect`, `claude mcp list` acrescenta o detalhe da falha a essa linha de status, e `claude mcp get <name>` o mostra em uma linha `Issue:`. O detalhe é o status HTTP ou código de erro, mais qualquer texto de erro que o servidor retornou. A visualização de detalhes do servidor em `/mcp` inclui o mesmo texto relatado pelo servidor em sua linha `Issue:`.284Quando o status de um servidor é `✘ Failed to connect`, `claude mcp list` acrescenta o detalhe da falha a essa linha de status, e `claude mcp get <name>` o mostra em uma linha `Issue:`. O detalhe é o status HTTP ou o código de erro, mais qualquer texto de erro que o servidor retornou. A visualização de detalhes do servidor em `/mcp` inclui o mesmo texto informado pelo servidor em sua linha `Issue:`.

285 285 

286O Claude Code oculta texto semelhante a credenciais desse detalhe e nunca inclui a URL expandida do servidor, que pode conter segredos. O Claude Code não acrescenta nenhum detalhe a um status `✘ Connection error`, porque o texto da exceção que ele imprimiria ali pode incluir essa URL.286O Claude Code oculta textos semelhantes a credenciais nesse detalhe e nunca inclui a URL expandida do servidor, que pode conter segredos. O Claude Code não acrescenta nenhum detalhe a um status `✘ Connection error`, porque o texto da exceção que ele imprimiria ali pode incorporar essa URL.

287 287 

288Quando você completa a autenticação de `/mcp` e a conexão ainda falha com um status HTTP ou um código de erro de transporte, Claude Code adiciona esse código e a origem da URL do servidor à mensagem que imprime após a tentativa. A origem é o esquema e host, mais a porta quando a URL nomeia uma, como `https://mcp.example.com`.288Quando você conclui a autenticação em `/mcp` e a conexão ainda falha com um status HTTP ou um código de erro de transporte, o Claude Code adiciona esse código e a origem da URL do servidor à mensagem que imprime após a tentativa. A origem é o esquema e o host, mais a porta quando a URL especifica uma, como `https://mcp.example.com`.

289 289 

290* O caminho e a consulta nunca aparecem nessa mensagem.290* O caminho e a query nunca aparecem nessa mensagem.

291* Para um servidor no [escopo](#mcp-installation-scopes) local, de projeto, ou de usuário ou em configuração MCP gerenciada, a origem mostra o host como escrito nessa configuração, portanto uma referência `${VAR}` no host não é expandida na mensagem.291* Para um servidor no [escopo](#mcp-installation-scopes) local, de projeto ou de usuário, ou na configuração MCP gerenciada, a origem mostra o host conforme escrito nessa configuração, então uma referência `${VAR}` no host não é expandida na mensagem.

292* Para uma falha sem status ou código de erro, Claude Code mostra o texto de erro sem a origem.292* Para uma falha sem status ou código de erro, o Claude Code mostra o texto do erro sem a origem.

293 293 

294Um servidor remoto cuja configuração tem uma `url` vazia mostra como `not configured` em `/mcp`, em `claude mcp list`, e no [gerenciador `/plugin`](https://code.claude.com/docs/pt/plugins/install), e Claude Code não tenta se conectar a ele. Um plugin pode incluir uma entrada de espaço reservado como esta para um conector que você configura depois, portanto Claude Code não a relata como um erro ou um problema de configuração. A visualização de detalhe do servidor em `/mcp` lê `No URL configured for this server`; defina a `url` da entrada para conectá-lo.294Um servidor remoto cuja configuração tem um `url` vazio aparece como `not configured` em `/mcp`, em `claude mcp list` e no gerenciador [`/plugin`](https://code.claude.com/docs/pt/plugins/install), e o Claude Code não tenta se conectar a ele. Um plugin pode incluir uma entrada de espaço reservado como esta para um conector que você configura depois, então o Claude Code não a informa como erro ou problema de configuração. A visualização de detalhes do servidor em `/mcp` exibe `No URL configured for this server`; defina o `url` da entrada para conectá-lo.

295 295 

296#### Avisos de configuração296#### Avisos de configuração

297 297 

298Claude Code avisa sobre os problemas de configuração abaixo. Cada entrada diz o que Claude Code verifica e como limpar o aviso:298O Claude Code emite avisos sobre os problemas de configuração abaixo. Cada item diz o que o Claude Code verifica e como eliminar o aviso:

299 299 

300* **Espaço em branco oculto**: Claude Code avisa quando um valor de configuração MCP carrega espaço em branco oculto à esquerda ou à direita, que frequentemente vem de colar um token com uma quebra de linha à direita. Claude Code verifica `command`, `url`, cada entrada `args`, e os valores e nomes de chave sob `env` e `headers`. Claude Code mostra o aviso na saída de `claude mcp list` e em `/mcp`, nomeando os campos afetados sem ecoar seus valores, por exemplo `Leading or trailing whitespace in: headers.Authorization`. Claude Code não remove o espaço em branco e usa os valores exatamente como escritos, portanto edite a configuração para removê-lo.300* **Espaços em branco ocultos**: o Claude Code emite um aviso quando um valor de configuração MCP contém espaços em branco ocultos no início ou no fim, o que costuma vir de colar um token com uma quebra de linha no final. O Claude Code verifica `command`, `url`, cada entrada de `args` e os valores e nomes de chaves em `env` e `headers`. O Claude Code mostra o aviso na saída de `claude mcp list` e em `/mcp`, nomeando os campos afetados sem repetir seus valores, por exemplo `Leading or trailing whitespace in: headers.Authorization`. O Claude Code não remove os espaços em branco e usa os valores exatamente como escritos, então edite a configuração para removê-los.

301* **Mesmo nome em mais de um escopo**: se você definir o mesmo nome de servidor em mais de um [escopo](#mcp-installation-scopes) com endpoints diferentes, Claude Code avisa sobre o conflito na saída de `claude mcp list` e em `/mcp`. Claude Code armazena logins OAuth por endpoint, portanto quando você autentica a definição que carrega em um projeto, você ainda precisa fazer login separadamente em um projeto onde uma definição diferente carrega. Mantenha o endpoint que você quer e remova os outros com `claude mcp remove <name> --scope <scope>`. No aviso, Claude Code cita o endpoint de cada escopo como escrito em sua configuração, com referências [`${VAR}`](#environment-variable-expansion-in-mcp-json) não expandidas, portanto nunca mostra um valor resolvido como uma chave de API.301* **Mesmo nome em mais de um escopo**: se você definir o mesmo nome de servidor em mais de um [escopo](#mcp-installation-scopes) com endpoints diferentes, o Claude Code emite um aviso sobre o conflito na saída de `claude mcp list` e em `/mcp`. O Claude Code armazena logins OAuth por endpoint, então, quando você autentica a definição carregada em um projeto, ainda precisa fazer login separadamente em um projeto onde outra definição é carregada. Mantenha o endpoint que você deseja e remova os outros com `claude mcp remove <name> --scope <scope>`. No aviso, o Claude Code cita o endpoint de cada escopo conforme escrito na sua configuração, com [referências `${VAR}`](#environment-variable-expansion-in-mcp-json) não expandidas, então nunca mostra um valor resolvido como uma chave de API.

302* **Nomes reservados**: Claude Code reserva os nomes de seus servidores integrados, incluindo `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview`, e `Claude Browser`. Se sua configuração definir um servidor com um nome reservado, Claude Code o pula no tempo de carregamento e mostra um aviso pedindo que você o renomeie. `claude mcp add` rejeita um nome reservado com um erro. `Claude Preview` e `Claude Browser` ambos nomeiam o servidor integrado que o [painel de visualização do aplicativo de desktop Claude Code](https://code.claude.com/docs/pt/desktop.md#preview-your-app) usa.302* **Nomes reservados**: o Claude Code reserva os nomes de seus servidores integrados, incluindo `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview` e `Claude Browser`. Se sua configuração definir um servidor com um nome reservado, o Claude Code o ignora no carregamento e mostra um aviso pedindo que você o renomeie. `claude mcp add` rejeita um nome reservado com um erro. `Claude Preview` e `Claude Browser` nomeiam ambos o servidor integrado que o [painel de visualização do aplicativo desktop do Claude Code](https://code.claude.com/docs/pt/desktop.md#preview-your-app) usa.

303* **Variável de ambiente ausente**: se uma referência [`${VAR}`](#environment-variable-expansion-in-mcp-json) na configuração de um servidor nomeia uma variável que não está definida e não tem `:-default`, Claude Code avisa na saída de `claude mcp list` e em `/mcp`, nomeando a variável, e ainda carrega o servidor com o texto `${VAR}` não expandido. Defina a variável ou adicione um fallback `${VAR:-default}`. Na `url` e nos `headers` de um servidor remoto, algumas variáveis de credenciais [leem como vazias](#credential-variables-that-read-as-empty) em vez disso, sem aviso.303* **Variável de ambiente ausente**: se uma [referência `${VAR}`](#environment-variable-expansion-in-mcp-json) na configuração de um servidor nomear uma variável que não está definida e não tem `:-default`, o Claude Code emite um aviso na saída de `claude mcp list` e em `/mcp`, nomeando a variável, e ainda carrega o servidor com o texto `${VAR}` não expandido. Defina a variável ou adicione um fallback `${VAR:-default}`. No `url` e nos `headers` de um servidor remoto, algumas variáveis de credenciais [são lidas como vazias](#credential-variables-that-read-as-empty), sem aviso.

304 304 

305#### Disponibilidade de ferramentas305#### Disponibilidade de ferramentas

306 306 

307O painel `/mcp` mostra a contagem de ferramentas ao lado de cada servidor conectado e sinaliza servidores que anunciam a capacidade de ferramentas mas não expõem ferramentas.307O painel `/mcp` mostra a contagem de ferramentas ao lado de cada servidor conectado e sinaliza servidores que anunciam a capacidade de ferramentas, mas não expõem nenhuma ferramenta.

308 308 

309##### Contagens de ferramentas em uma sessão na nuvem309##### Contagens de ferramentas em uma sessão na nuvem

310 310 

311Em uma [sessão na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md), uma contagem como `3 of 13 tools available` significa que o Claude não pode usar as outras 10. Verifique estas causas, entre outras:311Em uma [sessão na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md), uma contagem como `3 of 13 tools available` significa que o Claude não pode usar as outras 10. Verifique estas causas, entre outras:

312 312 

313* **Uma regra de negação no `.claude/settings.json` do seu repositório nomeia a ferramenta ou todo o seu servidor**: remova a [regra](https://code.claude.com/docs/pt/permissions.md#mcp), se [sua sessão lê esse arquivo](https://code.claude.com/docs/pt/settings.md#settings-in-cloud-sessions)313* **Uma regra de negação no `.claude/settings.json` do seu repositório nomeia a ferramenta ou todo o seu servidor**: remova a [regra](https://code.claude.com/docs/pt/permissions.md#mcp), se [sua sessão ler esse arquivo](https://code.claude.com/docs/pt/settings.md#settings-in-cloud-sessions)

314* **O nome completo da ferramenta tem mais de 128 caracteres**: siga [as etapas para um nome longo demais](https://code.claude.com/docs/pt/errors.md#mcp-tool-name-over-128-characters)314* **O nome completo da ferramenta tem mais de 128 caracteres**: siga [as etapas para um nome longo demais](https://code.claude.com/docs/pt/errors.md#mcp-tool-name-over-128-characters)

315* **O servidor lista a ferramenta para sua própria interface e não para o Claude**: se você mantém o servidor, adicione `model` ao `_meta.ui.visibility` da ferramenta para dar a ferramenta ao Claude. Caso contrário, não há nada a corrigir.315* **O servidor lista a ferramenta para sua própria interface e não para o Claude**: se você mantém o servidor, adicione `model` ao `_meta.ui.visibility` da ferramenta para dar a ferramenta ao Claude. Caso contrário, não há nada a corrigir.

316 316 

317##### Ferramentas de um servidor que ainda está se conectando317##### Ferramentas de um servidor que ainda está se conectando

318 318 

319Se sua solicitação precisa de ferramentas de um servidor que ainda está se conectando em segundo plano, Claude aguarda esse servidor antes de continuar. Como a espera acontece depende de sua configuração:319Se sua solicitação precisar de ferramentas de um servidor que ainda está se conectando em segundo plano, o Claude aguarda esse servidor antes de continuar. Como a espera acontece depende da sua configuração:

320 320 

321* **Com [busca de ferramentas](#scale-with-mcp-tool-search), o padrão**: a espera acontece dentro da chamada `ToolSearch`.321* **Com a [pesquisa de ferramentas](#scale-with-mcp-tool-search), o padrão**: a espera acontece dentro da chamada `ToolSearch`.

322* **Sem busca de ferramentas**: Claude usa a ferramenta `WaitForMcpServers` em vez disso. As configurações sem busca de ferramentas incluem `ENABLE_TOOL_SEARCH=false` e um modelo anterior a Claude Opus 4.5, Claude Sonnet 4.5 e Claude Haiku 4.5 na Agent Platform do Google Cloud. Para um gateway `ANTHROPIC_BASE_URL`, veja [Busca de ferramentas através de um gateway de LLM](#tool-search-through-a-gateway).322* **Sem a pesquisa de ferramentas**: o Claude usa a ferramenta `WaitForMcpServers`. Configurações sem pesquisa de ferramentas incluem `ENABLE_TOOL_SEARCH=false` e um modelo anterior ao Claude Opus 4.5, Claude Sonnet 4.5 e Claude Haiku 4.5 no Agent Platform do Google Cloud. Para um gateway `ANTHROPIC_BASE_URL`, consulte [Pesquisa de ferramentas por meio de um gateway de LLM](#tool-search-through-a-gateway).

323* **Em uma implantação Microsoft Foundry [hospedada no Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude começa no caminho de busca de ferramentas em vez de com `WaitForMcpServers`, já que Claude Code descobre a rejeição do lado do servidor apenas da API. Depois que Claude Code muda essa implantação para [carregamento antecipado](#scale-with-mcp-tool-search), as ferramentas de um servidor que termina de se conectar ficam disponíveis na próxima solicitação do Claude.323* **Em uma [implantação do Microsoft Foundry hospedada no Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: o Claude começa pelo caminho da pesquisa de ferramentas em vez de usar `WaitForMcpServers`, já que o Claude Code só descobre a rejeição do lado do servidor da implantação a partir da API. Depois que o Claude Code muda essa implantação para [carregamento antecipado](#scale-with-mcp-tool-search), as ferramentas de um servidor que termina de se conectar ficam disponíveis na próxima requisição do Claude.

324 324 

325Com busca de ferramentas ativada, quando um servidor termina de se conectar enquanto Claude está trabalhando, Claude Code lista os nomes de ferramentas do servidor para Claude em sua próxima solicitação no mesmo turno. Claude pode então procurar e chamar essas ferramentas sem aguardar sua próxima mensagem.325Com a pesquisa de ferramentas ativada, quando um servidor termina de se conectar enquanto o Claude está trabalhando, o Claude Code lista os nomes das ferramentas do servidor para o Claude em sua próxima requisição no mesmo turno. O Claude pode então pesquisar e chamar essas ferramentas sem esperar pela sua próxima mensagem.

326 326 

327Depois que você retoma uma sessão, Claude pode chamar uma ferramenta da conversa salva enquanto o servidor MCP da ferramenta ainda está se conectando. Enquanto o servidor está em sua primeira tentativa de conexão, Claude Code retém a chamada por até 10 segundos e a executa assim que a ferramenta estiver disponível. Se o servidor não se conectar a tempo, ou se já estiver [tentando novamente após uma tentativa com falha](#automatic-reconnection), a chamada falha com o [erro de ferramenta](https://code.claude.com/docs/pt/errors.md#no-such-tool-available) `No such tool available`.327Depois que você retoma uma sessão, o Claude pode chamar uma ferramenta da conversa salva enquanto o servidor MCP da ferramenta ainda está se conectando. Enquanto o servidor está em sua primeira tentativa de conexão, o Claude Code retém a chamada por até 10 segundos e a executa assim que a ferramenta estiver disponível. Se o servidor não se conectar a tempo, ou já estiver [tentando novamente após uma tentativa com falha](#automatic-reconnection), a chamada falha com o [erro de ferramenta](https://code.claude.com/docs/pt/errors.md#no-such-tool-available) `No such tool available`.

328 328 

329### Desabilitar um servidor sem removê-lo329### Desativar um servidor sem removê-lo

330 330 

331Alterne um servidor no painel `/mcp` para impedir que Claude Code se conecte a ele sem perder sua configuração. Claude Code ainda lista o servidor em `/mcp`, marcado como desabilitado.331Desative um servidor no painel `/mcp` para impedir que o Claude Code se conecte a ele sem perder sua configuração. O Claude Code continua listando o servidor em `/mcp`, marcado como desativado.

332 332 

333Quando você alterna um servidor, Claude Code registra sua escolha por projeto em `~/.claude.json`, em uma de duas listas que cobrem conjuntos disjuntos de servidores:333Quando você alterna um servidor, o Claude Code registra sua escolha por projeto em `~/.claude.json`, em uma de duas listas que cobrem conjuntos disjuntos de servidores:

334 334 

335* `disabledMcpServers`: uma lista de exclusão para servidores configurados pelo usuário, servidores de plugin, servidores que sua organização [fornece através de configurações gerenciadas](https://code.claude.com/docs/pt/managed-mcp.md#provide-servers-through-managed-settings), os conectores claude.ai que Claude Code [busca a si mesmo](#how-connectors-reach-claude-code), e servidores integrados que padrão para ativado. Claude Code não se conecta a um servidor que você lista aqui. Quando você desabilita um conector claude.ai com o alternador `/mcp` por projeto descrito em [Desabilitar conectores claude.ai](#disable-claude-ai-connectors), Claude Code o escreve nesta lista sob seu nome de exibição, por exemplo `claude.ai Slack`.335* `disabledMcpServers`: uma lista de exclusão para servidores configurados pelo usuário, servidores de plugins, servidores que sua organização [fornece por meio de configurações gerenciadas](https://code.claude.com/docs/pt/managed-mcp.md#provide-servers-through-managed-settings), os conectores do claude.ai que o Claude Code [busca por conta própria](#how-connectors-reach-claude-code) e servidores integrados que são ativados por padrão. O Claude Code não se conecta a um servidor que você lista aqui. Quando você desativa um conector do claude.ai com a alternância por projeto em `/mcp` descrita em [Desativar conectores do claude.ai](#disable-claude-ai-connectors), o Claude Code o grava nesta lista com seu nome de exibição, por exemplo `claude.ai Slack`.

336* `enabledMcpServers`: uma lista de inclusão para servidores integrados que padrão para desabilitado, como `computer-use`. Claude Code se conecta a um servidor padrão-desabilitado apenas quando você o lista aqui.336* `enabledMcpServers`: uma lista de inclusão para servidores integrados que são desativados por padrão, como `computer-use`. O Claude Code se conecta a um servidor desativado por padrão apenas quando você o lista aqui.

337 337 

338Claude Code consulta exatamente uma das duas listas para cada servidor, portanto nenhuma lista sobrescreve a outra. Se você adicionar um servidor regular a `enabledMcpServers`, ou um servidor integrado padrão-desabilitado a `disabledMcpServers`, Claude Code ignora a entrada.338O Claude Code consulta exatamente uma das duas listas para cada servidor, então nenhuma lista sobrescreve a outra. Se você adicionar um servidor comum a `enabledMcpServers`, ou um servidor integrado desativado por padrão a `disabledMcpServers`, o Claude Code ignora a entrada.

339 339 

340`disabledMcpServers` e `enabledMcpServers` não estão relacionados a [`enabledMcpjsonServers`](https://code.claude.com/docs/pt/settings-reference#enabledmcpjsonservers) e [`disabledMcpjsonServers`](https://code.claude.com/docs/pt/settings-reference#disabledmcpjsonservers), que controlam a aprovação de servidores definidos no arquivo `.mcp.json` de um projeto.340`disabledMcpServers` e `enabledMcpServers` não têm relação com [`enabledMcpjsonServers`](https://code.claude.com/docs/pt/settings-reference#enabledmcpjsonservers) e [`disabledMcpjsonServers`](https://code.claude.com/docs/pt/settings-reference#disabledmcpjsonservers), que controlam a aprovação de servidores definidos no arquivo `.mcp.json` de um projeto.

341 341 

342### Tempos de execução do cliente MCP342### Runtimes de cliente MCP

343 343 

344Claude Code se conecta a servidores MCP através de um de dois tempos de execução do cliente. O tempo de execução v1 é construído no MCP TypeScript SDK 1.x. O tempo de execução v2 é o mesmo código no [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), que adiciona revisão de protocolo MCP 2026-07-28. O resto desta página se aplica a ambos os tempos de execução, exceto onde uma seção nomeia o tempo de execução v2.344O Claude Code se conecta a servidores MCP por meio de um de dois runtimes de cliente. O runtime v1 é construído sobre o MCP TypeScript SDK 1.x. O runtime v2 é o mesmo código sobre o [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), que adiciona a revisão 2026-07-28 do protocolo MCP. O restante desta página se aplica a ambos os runtimes, exceto onde uma seção menciona o runtime v2.

345 345 

346Claude Code escolhe um tempo de execução cada vez que você o inicia e o mantém até você sair. Em sessões onde ele [busca sinalizadores de recurso](https://code.claude.com/docs/pt/env-vars.md#features-that-need-feature-flag-fetching), ele usa o tempo de execução v2 no Claude Code v2.1.232 ou posterior.346O Claude Code escolhe um runtime cada vez que você o inicia e o mantém até você sair. Em sessões em que ele [busca feature flags](https://code.claude.com/docs/pt/env-vars.md#features-that-need-feature-flag-fetching), ele usa o runtime v2 no Claude Code v2.1.232 ou posterior.

347 347 

348Nas sessões onde ele não busca sinalizadores de recurso, Claude Code usa o tempo de execução v2 por padrão no Claude Code v2.1.274 ou posterior:348Nas sessões em que não busca feature flags, o Claude Code usa o runtime v2 por padrão no Claude Code v2.1.274 ou posterior:

349 349 

350* Sessões no Amazon Bedrock, Claude Platform no AWS, Agent Platform do Google Cloud, ou Microsoft Foundry, a menos que uma plataforma host que incorpora Claude Code defina [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/pt/env-vars)350* Sessões no Amazon Bedrock, Claude Platform on AWS, Agent Platform do Google Cloud ou Microsoft Foundry, a menos que uma plataforma host que incorpora o Claude Code defina [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/pt/env-vars)

351* Sessões conectadas através de um [gateway de aplicativos Claude](https://code.claude.com/docs/pt/claude-apps-gateway)351* Sessões conectadas por meio de um [Claude apps gateway](https://code.claude.com/docs/pt/claude-apps-gateway)

352* Sessões onde você desativa telemetria ou busca de sinalizador de recurso, por exemplo com `DISABLE_TELEMETRY`352* Sessões em que você desativa a telemetria ou a busca de feature flags, por exemplo com `DISABLE_TELEMETRY`

353 353 

354No v2, Claude Code também:354No v2, o Claude Code também:

355 355 

356* Pergunta aos servidores HTTP, stdio e conectores claude.ai se eles suportam a revisão mais recente, e a usa com aqueles que suportam. Isso inclui os conectores de sessões na nuvem e de [Remote Control](https://code.claude.com/docs/pt/remote-control.md). Claude Code se conecta a todos os outros servidores como v1 faz.356* Pergunta aos servidores HTTP, stdio e de conectores do claude.ai se eles oferecem suporte à revisão mais recente e a usa com aqueles que oferecem. Isso inclui os conectores de sessões na nuvem e de [Remote Control](https://code.claude.com/docs/pt/remote-control.md). O Claude Code se conecta a todos os outros servidores como o v1 faz.

357* Recebe notificações `list_changed` de servidores na revisão mais recente sobre um [stream que mantém aberto](#notification-streams-on-the-v2-runtime).357* Recebe notificações `list_changed` de servidores na revisão mais recente por meio de um [stream que mantém aberto](#notification-streams-on-the-v2-runtime).

358* Não registra um servidor de [canal](#push-messages-with-channels) que se conecta na revisão mais recente, porque essa revisão não pode carregar mensagens de canal.358* Não registra um servidor de [canal](#push-messages-with-channels) que se conecta na revisão mais recente, porque essa revisão não pode transportar mensagens de canal.

359* Falha em um [login OAuth MCP](#authenticate-with-remote-mcp-servers) cuja resposta de autorização nomeia um emissor inesperado.359* Faz falhar um [login OAuth MCP](#authenticate-with-remote-mcp-servers) cuja resposta de autorização indica um emissor inesperado.

360* Envia [credenciais OAuth MCP](#authenticate-with-remote-mcp-servers) apenas para um endpoint de token servido sobre HTTPS ou em `localhost`, `127.0.0.1`, ou `::1`. O login falha para um servidor cujo endpoint de token é `http://` simples em qualquer outro lugar, como um dispositivo em sua rede local. Veja [Refusing to send credentials to non-https token endpoint](https://code.claude.com/docs/pt/errors.md#refusing-to-send-credentials-to-non-https-token-endpoint).360* Envia credenciais [OAuth MCP](#authenticate-with-remote-mcp-servers) apenas para um endpoint de token servido via HTTPS ou em `localhost`, `127.0.0.1` ou `::1`. O login falha para um servidor cujo endpoint de token é `http://` simples em qualquer outro lugar, como um dispositivo na sua rede local. Consulte [Refusing to send credentials to non-https token endpoint](https://code.claude.com/docs/pt/errors.md#refusing-to-send-credentials-to-non-https-token-endpoint).

361 361 

362A Anthropic pode manter um servidor específico no protocolo anterior, ou fora desse stream, com uma feature flag que o Claude Code busca. Para escolher o runtime você mesmo, defina [`MCP_SDK_GENERATION`](https://code.claude.com/docs/pt/env-vars) como `v1` ou `v2`.362A Anthropic pode manter um servidor específico no protocolo anterior, ou fora desse stream, com uma feature flag que o Claude Code busca. Para escolher o runtime você mesmo, defina [`MCP_SDK_GENERATION`](https://code.claude.com/docs/pt/env-vars) como `v1` ou `v2`.

363 363 

364Para decidir se o Claude Code pergunta aos servidores sobre a revisão mais recente, defina [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/pt/env-vars) como `auto` ou `legacy`. Com essa variável não definida, o Claude Code pode deixar de perguntar a um servidor stdio por 7 dias, por exemplo depois que o servidor sai quando perguntado. Para que um servidor atualizado seja perguntado mais cedo, defina `auto`.364Para decidir se o Claude Code pergunta aos servidores sobre a revisão mais recente, defina [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/pt/env-vars) como `auto` ou `legacy`. Com essa variável não definida, o Claude Code pode deixar de perguntar a um servidor stdio por 7 dias, por exemplo depois que o servidor encerra ao ser perguntado. Para que um servidor atualizado seja perguntado mais cedo, defina `auto`.

365 365 

366### Atualizações dinâmicas de ferramentas366### Atualizações dinâmicas de ferramentas

367 367 

368Um servidor MCP pode alterar as ferramentas, prompts ou recursos que oferece enquanto está conectado e enviar uma notificação `list_changed`. Quando uma chega:368Um servidor MCP pode alterar as ferramentas, prompts ou recursos que oferece enquanto está conectado e enviar uma notificação `list_changed`. Quando uma chega:

369 369 

370* **Em uma sessão interativa no terminal**, Claude Code busca a lista atualizada desse servidor, portanto você não precisa reconectá-lo.370* **Em uma sessão interativa no terminal**, o Claude Code busca a lista atualizada desse servidor, então você não precisa reconectá-lo.

371* **No [modo não interativo](https://code.claude.com/docs/pt/headless.md) com a flag `-p` e no [Agent SDK](https://code.claude.com/docs/pt/agent-sdk/overview.md)**, Claude Code atualiza apenas a lista de ferramentas nessas notificações.371* **No [modo não interativo](https://code.claude.com/docs/pt/headless.md) com a flag `-p` e no [Agent SDK](https://code.claude.com/docs/pt/agent-sdk/overview.md)**, o Claude Code atualiza apenas a lista de ferramentas nessas notificações.

372 372 

373Se uma solicitação de atualização falhar, Claude Code mantém as ferramentas, prompts e recursos descobertos anteriormente do servidor até que uma atualização posterior tenha sucesso.373Se uma requisição de atualização falhar, o Claude Code mantém as ferramentas, prompts e recursos descobertos anteriormente no servidor até que uma atualização posterior seja bem-sucedida.

374 374 

375#### Streams de notificação no tempo de execução v2375#### Streams de notificação no runtime v2

376 376 

377No [tempo de execução v2](#mcp-client-runtimes), Claude Code recebe notificações `list_changed` de um servidor na revisão de protocolo mais recente sobre um stream que mantém aberto. Quando o stream fecha, Claude Code o reabre, com dois limites:377No [runtime v2](#mcp-client-runtimes), o Claude Code recebe notificações `list_changed` de um servidor na revisão mais recente do protocolo por meio de um stream que mantém aberto. Quando o stream fecha, o Claude Code o reabre, com dois limites:

378 378 

379* **O stream fecha novamente dentro de 10 segundos**: Claude Code o reabre até três vezes, depois para para essa conexão.379* **O stream fecha novamente em até 10 segundos**: o Claude Code o reabre até três vezes e depois para para essa conexão.

380* **O stream permanece aberto por mais de 10 segundos, depois fecha**, como streams para hosts sem servidor comumente fazem: após cinco reabertas em uma hora, Claude Code aguarda cerca de seis horas antes da próxima.380* **O stream permanece aberto por mais de 10 segundos e depois fecha**, como costuma acontecer com streams para hosts serverless: após cinco reaberturas em uma hora, o Claude Code aguarda cerca de seis horas antes da próxima.

381 381 

382Até o stream reabrir, você mantém as ferramentas, prompts e recursos buscados pela última vez do servidor. Para pegar suas mudanças mais cedo, reconecte o servidor de `/mcp`.382Até que o stream seja reaberto, você mantém as últimas ferramentas, prompts e recursos buscados do servidor. Para obter suas alterações mais cedo, reconecte o servidor em `/mcp`.

383 383 

384### Reconexão automática384### Reconexão automática

385 385 

386Claude Code reconecta um servidor remoto que cai no meio da sessão e tenta novamente a primeira conexão de um servidor HTTP ou SSE após um erro transitório. Para um servidor stdio, veja [Servidores stdio que saem ou falham ao iniciar](#stdio-servers-that-exit-or-fail-to-start).386O Claude Code reconecta um servidor remoto que cai no meio da sessão e tenta novamente a primeira conexão de um servidor HTTP ou SSE após um erro transitório. Para um servidor stdio, consulte [Servidores stdio que encerram ou não iniciam](#stdio-servers-that-exit-or-fail-to-start).

387 387 

388#### Quedas de um servidor remoto no meio da sessão388#### Quedas de um servidor remoto no meio da sessão

389 389 

390Claude Code primeiro tenta reconectar um servidor remoto caído até cinco vezes com backoff exponencial, começando com um atraso de um segundo e dobrando-o a cada vez:390O Claude Code primeiro tenta reconectar um servidor remoto que caiu até cinco vezes com backoff exponencial, começando com um atraso de um segundo e dobrando-o a cada vez:

391 391 

392* **Em uma sessão interativa**: `/mcp` mostra o servidor como pendente enquanto Claude Code reconecta. Após cinco tentativas falhadas, Claude Code marca o servidor como com falha, ou como precisando de autenticação quando o servidor precisa ser autorizado novamente. Quando marca o servidor como com falha, você vê uma notificação `MCP server "<name>" disconnected · open /mcp to reconnect`. Você pode tentar novamente manualmente de `/mcp`.392* **Em uma sessão interativa**: `/mcp` mostra o servidor como pendente enquanto o Claude Code reconecta. Após cinco tentativas com falha, o Claude Code marca o servidor como com falha, ou como precisando de autenticação quando o servidor precisa ser autorizado novamente. Quando marca o servidor como com falha, você vê uma notificação `MCP server "<name>" disconnected · open /mcp to reconnect`. Você pode tentar novamente manualmente em `/mcp`.

393* **Em execuções [`claude -p`](https://code.claude.com/docs/pt/headless) e sessões [Agent SDK](https://code.claude.com/docs/pt/agent-sdk/overview.md)**: Claude Code faz as mesmas cinco tentativas, sem painel `/mcp` para mostrá-las. Se todas as cinco falharem, a execução continua sem as ferramentas do servidor:393* **Em execuções [`claude -p`](https://code.claude.com/docs/pt/headless) e sessões do [Agent SDK](https://code.claude.com/docs/pt/agent-sdk/overview.md)**: o Claude Code faz as mesmas cinco tentativas, sem um painel `/mcp` para exibi-las. Se todas as cinco falharem, a execução continua sem as ferramentas do servidor:

394 * **Após um erro transitório, como uma resposta 5xx ou um timeout**: Claude Code continua tentando novamente um servidor HTTP ou SSE em segundo plano. As novas tentativas duram até cerca de meia hora, e as ferramentas do servidor ficam disponíveis novamente quando uma delas se conecta. Até lá, uma sessão do Agent SDK relata o [status](https://code.claude.com/docs/pt/agent-sdk/mcp.md#error-handling) `failed`, e seu código pode [reconectar o servidor](https://code.claude.com/docs/pt/agent-sdk/mcp.md#error-handling). Para reconectá-lo em `claude -p`, inicie a execução novamente.394 * **Após um erro transitório, como uma resposta 5xx ou um timeout**: o Claude Code continua tentando novamente um servidor HTTP ou SSE em segundo plano. As novas tentativas duram até cerca de meia hora, e as ferramentas do servidor voltam a ficar disponíveis quando uma delas se conecta. Até lá, uma sessão do Agent SDK informa o [status](https://code.claude.com/docs/pt/agent-sdk/mcp.md#error-handling) `failed`, e seu código pode [reconectar o servidor](https://code.claude.com/docs/pt/agent-sdk/mcp.md#error-handling). Para reconectá-lo em `claude -p`, inicie a execução novamente.

395 * **Quando o servidor [precisa que você faça login novamente](#authenticate-with-remote-mcp-servers)**: Claude Code para de tentar novamente, e uma sessão do Agent SDK relata o status do servidor como `needs-auth`. Faça login com [`claude mcp login <name>`](#authenticate-from-the-command-line) no seu shell. Em seguida, inicie a execução novamente ou, em uma sessão do Agent SDK, [reconecte o servidor](https://code.claude.com/docs/pt/agent-sdk/mcp.md#error-handling) em vez disso.395 * **Quando o servidor [precisa que você faça login novamente](#authenticate-with-remote-mcp-servers)**: o Claude Code para de tentar novamente, e uma sessão do Agent SDK informa o status do servidor como `needs-auth`. Faça login com [`claude mcp login <name>`](#authenticate-from-the-command-line) no seu shell. Em seguida, inicie a execução novamente ou, em uma sessão do Agent SDK, [reconecte o servidor](https://code.claude.com/docs/pt/agent-sdk/mcp.md#error-handling).

396 396 

397#### Primeiras conexões com falha397#### Primeiras conexões com falha

398 398 

399Quando a primeira conexão de um servidor HTTP ou SSE falha com um erro transitório, como uma resposta 5xx, uma conexão recusada, ou um tempo limite, Claude Code tenta novamente até três vezes. Se a conexão ainda falhar, Claude Code marca o servidor como com falha.399Quando a primeira conexão de um servidor HTTP ou SSE falha com um erro transitório, como uma resposta 5xx, uma conexão recusada ou um timeout, o Claude Code tenta novamente até três vezes. Se a conexão ainda falhar, o Claude Code marca o servidor como com falha.

400 400 

401Essas novas tentativas não se aplicam nestes casos:401Essas novas tentativas não se aplicam nestes casos:

402 402 

403* A primeira conexão de um servidor stdio. Para tentá-la novamente, veja [Servidores stdio que saem ou falham ao iniciar](#stdio-servers-that-exit-or-fail-to-start)403* A primeira conexão de um servidor stdio. Para tentar novamente, consulte [Servidores stdio que encerram ou não iniciam](#stdio-servers-that-exit-or-fail-to-start)

404* A primeira conexão de um servidor WebSocket. Para tentar novamente em uma sessão interativa no terminal, selecione **Reconnect** no menu do servidor em `/mcp`404* A primeira conexão de um servidor WebSocket. Para tentar novamente em uma sessão interativa no terminal, selecione **Reconnect** no menu do servidor em `/mcp`

405* Um erro de autenticação ou não encontrado, porque requer uma mudança de configuração para resolver. Quando um [`headersHelper`](#use-dynamic-headers-for-custom-authentication) é a única fonte do servidor do cabeçalho `Authorization`, Claude Code tenta novamente um erro de autenticação mesmo assim, porque re-executa o helper em cada tentativa e pode pegar uma credencial fresca405* Um erro de autenticação ou de não encontrado, porque requer uma alteração de configuração para ser resolvido. Quando um [`headersHelper`](#use-dynamic-headers-for-custom-authentication) é a única fonte do cabeçalho `Authorization` do servidor, o Claude Code tenta novamente mesmo assim após um erro de autenticação, porque executa o helper novamente a cada tentativa e pode obter uma credencial nova

406 406 

407#### Servidores stdio que saem ou falham ao iniciar407#### Servidores stdio que encerram ou não iniciam

408 408 

409Para iniciar um servidor stdio novamente, leia a coluna que corresponde ao que aconteceu com ele. Encontre sua linha pela forma como você executa o Claude Code: uma sessão interativa, uma execução `claude -p` ou uma sessão do Agent SDK.409Para iniciar um servidor stdio novamente, leia a coluna que corresponde ao que aconteceu com ele. Encontre sua linha pela forma como você executa o Claude Code: uma sessão interativa, uma execução `claude -p` ou uma sessão do Agent SDK.

410 410 

411| Como você executa o Claude Code | O processo do servidor sai no meio da sessão | A primeira conexão do servidor falha |411| Como você executa o Claude Code | O processo do servidor encerra no meio da sessão | A primeira conexão do servidor falha |

412| - | - | - |412| - | - | - |

413| Sessão interativa | Claude Code marca o servidor como com falha. Para iniciá-lo novamente, selecione **Reconnect** no menu do servidor em `/mcp` | Claude Code marca o servidor como com falha. Para iniciá-lo novamente, selecione **Reconnect** no menu do servidor em `/mcp` |413| Sessão interativa | O Claude Code marca o servidor como com falha. Para iniciá-lo novamente, selecione **Reconnect** no menu do servidor em `/mcp` | O Claude Code marca o servidor como com falha. Para iniciá-lo novamente, selecione **Reconnect** no menu do servidor em `/mcp` |

414| Execução `claude -p` | Claude Code inicia o servidor novamente na próxima vez que Claude chamar uma das ferramentas do servidor, e a chamada é executada assim que o servidor se conecta | A execução continua sem as ferramentas do servidor. Para que Claude Code tente a conexão novamente, inicie a execução novamente. Quando um plugin fornece o servidor, novas execuções pulam a conexão por 15 minutos após uma falha, portanto aguarde esse tempo primeiro ou [tente novamente mais cedo](https://code.claude.com/docs/pt/errors.md#skipping-connection-recent-failure-cached) |414| Execução `claude -p` | O Claude Code inicia o servidor novamente na próxima vez que o Claude chama uma das ferramentas do servidor, e a chamada é executada assim que o servidor se conecta | A execução continua sem as ferramentas do servidor. Para que o Claude Code tente a conexão novamente, inicie a execução novamente. Quando um plugin fornece o servidor, novas execuções ignoram a conexão por 15 minutos após uma falha, então aguarde esse tempo antes ou [tente novamente mais cedo](https://code.claude.com/docs/pt/errors.md#skipping-connection-recent-failure-cached) |

415| Sessão do Agent SDK | Claude Code inicia o servidor novamente na próxima vez que Claude chamar uma das ferramentas do servidor, e a chamada é executada assim que o servidor se conecta | A sessão continua sem as ferramentas do servidor. Seu código pode [reconectar o servidor](https://code.claude.com/docs/pt/agent-sdk/mcp.md#error-handling) |415| Sessão do Agent SDK | O Claude Code inicia o servidor novamente na próxima vez que o Claude chama uma das ferramentas do servidor, e a chamada é executada assim que o servidor se conecta | A sessão continua sem as ferramentas do servidor. Seu código pode [reconectar o servidor](https://code.claude.com/docs/pt/agent-sdk/mcp.md#error-handling) |

416 416 

417#### Solicitações de descoberta com falha417#### Requisições de descoberta com falha

418 418 

419Depois que um servidor se conecta, Claude Code o envia solicitações de descoberta de capacidade como `tools/list`, `prompts/list`, e `resources/list`. Claude Code tenta novamente essas solicitações até três vezes com backoff curto após um erro de rede ou servidor transitório. Ele não tenta novamente erros de autenticação, respostas 4xx, ou tempos limite de solicitação.419Depois que um servidor se conecta, o Claude Code envia a ele requisições de descoberta de capacidades como `tools/list`, `prompts/list` e `resources/list`. O Claude Code tenta novamente essas requisições até três vezes com um backoff curto após um erro transitório de rede ou de servidor. Ele não tenta novamente após erros de autenticação, respostas 4xx ou timeouts de requisição.

420 420 

421#### Tentar novamente servidores com falha você mesmo421#### Tentar novamente servidores com falha por conta própria

422 422 

423Para tentar novamente todos os servidores que falharam ou precisam de autenticação, execute `/mcp reconnect all` no prompt do Claude Code em uma sessão interativa no terminal. Isso requer o Claude Code v2.1.284 ou posterior. Versões anteriores imprimem `MCP server "all" not found`.423Para tentar novamente todos os servidores que falharam ou precisam de autenticação, execute `/mcp reconnect all` no prompt do Claude Code em uma sessão interativa no terminal. Isso requer o Claude Code v2.1.284 ou posterior. Versões anteriores imprimem `MCP server "all" not found`.

424 424 

425#### Como Claude descobre que um servidor falhou425#### Como o Claude fica sabendo que um servidor falhou

426 426 

427Se Claude Code diz a Claude sobre um servidor configurado que falhou em se conectar depende de [busca de ferramentas](#scale-with-mcp-tool-search), que está ativada por padrão:427Se o Claude Code informa o Claude sobre um servidor configurado que não conseguiu se conectar depende da [pesquisa de ferramentas](#scale-with-mcp-tool-search), que está ativada por padrão:

428 428 

429* Com busca de ferramentas, Claude Code diz a Claude qual servidor falhou e seu erro de conexão, portanto Claude relata a falha de conexão em sua resposta. Claude Code inclui as mesmas informações nos resultados de `ToolSearch` que não encontram nenhuma ferramenta correspondente.429* Com a pesquisa de ferramentas, o Claude Code informa ao Claude qual servidor falhou e seu erro de conexão, para que o Claude relate a falha de conexão em sua resposta. O Claude Code inclui as mesmas informações nos resultados de `ToolSearch` que não encontram nenhuma ferramenta correspondente.

430* Em qualquer [configuração sem busca de ferramentas](#configure-tool-search), Claude Code não relata falhas de conexão de servidor a Claude.430* Em qualquer [configuração sem pesquisa de ferramentas](#configure-tool-search), o Claude Code não informa ao Claude sobre conexões de servidor com falha.

431 431 

432### Enviar mensagens com canais432### Enviar mensagens com canais

433 433 

434Um servidor MCP também pode enviar mensagens diretamente para sua sessão para que Claude possa reagir a eventos externos como resultados de CI, alertas de monitoramento, ou mensagens de chat. Para ativar isso, seu servidor declara a capacidade `claude/channel` e você o ativa com o sinalizador `--channels` na inicialização. Veja [Channels](https://code.claude.com/docs/pt/channels.md) para usar um canal oficialmente suportado, ou [Channels reference](https://code.claude.com/docs/pt/channels-reference.md) para construir o seu próprio.434Um servidor MCP também pode enviar mensagens diretamente para sua sessão para que o Claude possa reagir a eventos externos, como resultados de CI, alertas de monitoramento ou mensagens de chat. Para habilitar isso, seu servidor declara a capacidade `claude/channel` e você o habilita com a flag `--channels` na inicialização. Consulte [Channels](https://code.claude.com/docs/pt/channels.md) para usar um canal com suporte oficial, ou [Referência de Channels](https://code.claude.com/docs/pt/channels-reference.md) para criar o seu próprio.

435 435 

436No [tempo de execução v2](#mcp-client-runtimes), um servidor de canal que negocia a revisão de protocolo MCP 2026-07-28 não pode entregar mensagens de canal, portanto Claude Code não o registra como um canal. Um servidor de canal que não suporta essa revisão se conecta no handshake anterior e se registra como antes.436No [runtime v2](#mcp-client-runtimes), um servidor de canal que negocia a revisão 2026-07-28 do protocolo MCP não pode entregar mensagens de canal, então o Claude Code não o registra como canal. Um servidor de canal que não oferece suporte a essa revisão se conecta no handshake anterior e se registra como antes.

437 437 

438Claude Code pergunta aos servidores stdio por essa revisão por padrão. Para manter um servidor de canal stdio no handshake anterior, defina [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/pt/env-vars) como `legacy`, o que mantém todos os servidores nele.438O Claude Code pergunta aos servidores stdio sobre essa revisão por padrão. Para manter um servidor de canal stdio no handshake anterior, defina [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/pt/env-vars) como `legacy`, o que mantém todos os servidores nele.

439 439 

440> [!TIP]440> [!TIP]

441>441>

442> Dicas:442> Dicas:

443>443>

444> * Use o sinalizador `-s` ou `--scope` para especificar onde a configuração é armazenada:444> * Use a flag `-s` ou `--scope` para especificar onde a configuração é armazenada:

445> * `local` (padrão): disponível apenas para você no projeto atual445> * `local` (padrão): disponível apenas para você no projeto atual

446> * `project`: compartilhado com todos no projeto via arquivo `.mcp.json`446> * `project`: compartilhado com todos no projeto por meio do arquivo `.mcp.json`

447> * `user`: disponível para você em todos os projetos447> * `user`: disponível para você em todos os projetos

448> * Defina variáveis de ambiente com sinalizadores `-e` ou `--env` (por exemplo, `-e KEY=value`)448> * Defina variáveis de ambiente com as flags `-e` ou `--env` (por exemplo, `-e KEY=value`)

449> * Os sinalizadores `--transport` e `--header` também aceitam formas curtas `-t` e `-H`449> * As flags `--transport` e `--header` também aceitam as formas curtas `-t` e `-H`

450> * Configure o tempo limite de inicialização do servidor MCP usando a variável de ambiente `MCP_TIMEOUT` (por exemplo, `MCP_TIMEOUT=10000 claude` define um tempo limite de 10 segundos)450> * Configure o timeout de inicialização do servidor MCP usando a variável de ambiente `MCP_TIMEOUT` (por exemplo, `MCP_TIMEOUT=10000 claude` define um timeout de 10 segundos)

451> * Defina um tempo limite de execução de ferramenta por servidor adicionando um campo `timeout` em milissegundos à entrada `.mcp.json` desse servidor, por exemplo `"timeout": 600000` para dez minutos. Isso sobrescreve a variável de ambiente `MCP_TOOL_TIMEOUT` apenas para esse servidor451> * Defina um timeout de execução de ferramentas por servidor adicionando um campo `timeout` em milissegundos à entrada desse servidor no `.mcp.json`, por exemplo `"timeout": 600000` para dez minutos. Isso sobrescreve a variável de ambiente `MCP_TOOL_TIMEOUT` apenas para esse servidor

452> * Claude Code exibe um aviso quando a saída da ferramenta MCP excede 10.000 tokens e limita a saída a 25.000 tokens por padrão. Para alterar o limite de tokens, defina a variável de ambiente `MAX_MCP_OUTPUT_TOKENS`, por exemplo `MAX_MCP_OUTPUT_TOKENS=50000`. O limite de aviso é fixo. A menos que o servidor aumente o limite próprio de uma ferramenta, resultados de texto bem-sucedidos com mais de 50.000 caracteres são salvos em um arquivo independentemente desta variável. Veja [MCP output limits and warnings](#mcp-output-limits-and-warnings)452> * O Claude Code exibe um aviso quando a saída de uma ferramenta MCP excede 10.000 tokens e limita a saída a 25.000 tokens por padrão. Para alterar o limite de tokens, defina a variável de ambiente `MAX_MCP_OUTPUT_TOKENS`, por exemplo `MAX_MCP_OUTPUT_TOKENS=50000`. O limite do aviso é fixo. A menos que o servidor aumente o limite próprio de uma ferramenta, resultados de texto bem-sucedidos com mais de 50.000 caracteres são salvos em um arquivo independentemente dessa variável. Consulte [Limites e avisos de saída MCP](#mcp-output-limits-and-warnings)

453> * Use `/mcp` para autenticar com servidores remotos que requerem autenticação OAuth 2.0453> * Use `/mcp` para se autenticar em servidores remotos que exigem autenticação OAuth 2.0

454 454 

455### Limites de tempo em chamadas de ferramentas MCP455### Limites de tempo em chamadas de ferramentas MCP

456 456 

457Para limitar por quanto tempo uma chamada de ferramenta MCP pode ser executada:457Para limitar por quanto tempo uma chamada de ferramenta MCP pode ser executada:

458 458 

459* **Por servidor**: adicione um campo `timeout` em milissegundos à entrada de configuração desse servidor459* **Por servidor**: adicione um campo `timeout` em milissegundos à entrada de configuração desse servidor

460* **Em todos os servidores**: defina [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/pt/env-vars)460* **Para todos os servidores**: defina [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/pt/env-vars)

461 461 

462O `timeout` por servidor é um limite rígido de tempo real por chamada de ferramenta, e notificações de progresso do servidor não o estendem. Valores abaixo de 1000 são ignorados e caem para `MCP_TOOL_TIMEOUT`, ou para seu padrão de cerca de 28 horas quando essa variável não está definida. Para um servidor HTTP, SSE, ou [conector claude.ai](https://code.claude.com/docs/pt/mcp.md#use-mcp-servers-from-claude-ai) há também um segundo temporizador por solicitação que cobre cada solicitação até o primeiro byte de resposta do servidor. Claude Code define esse temporizador para o maior de três valores: 60 segundos, o tempo limite de ferramenta que se aplica ao servidor, e `MCP_TIMEOUT`. O padrão de 28 horas de um `MCP_TOOL_TIMEOUT` não definido não entra nessa comparação, e um valor abaixo de 60 segundos não encurta o temporizador. Os servidores Stdio e WebSocket não têm temporizador por solicitação.462O `timeout` por servidor é um limite rígido de tempo real por chamada de ferramenta, e notificações de progresso do servidor não o estendem. Valores abaixo de 1000 são ignorados e recorrem a `MCP_TOOL_TIMEOUT`, ou ao seu padrão de cerca de 28 horas quando essa variável não está definida. Para um servidor HTTP, SSE ou de [conector do claude.ai](https://code.claude.com/docs/pt/mcp.md#use-mcp-servers-from-claude-ai), também existe um segundo temporizador, por requisição, que cobre cada requisição até o primeiro byte da resposta do servidor. O Claude Code define esse temporizador como o maior de três valores: 60 segundos, o timeout de ferramenta que se aplica ao servidor e `MCP_TIMEOUT`. O padrão de 28 horas de um `MCP_TOOL_TIMEOUT` não definido não entra nessa comparação, e um valor abaixo de 60 segundos não encurta o temporizador. Servidores stdio e WebSocket não têm temporizador por requisição.

463 463 

464Um `timeout` por servidor de pelo menos 1000 também atua como um piso no tempo limite de inatividade descrito abaixo: Claude Code nunca aborta as chamadas de ferramenta desse servidor por inatividade mais cedo do que o `timeout` por servidor.464Um `timeout` por servidor de pelo menos 1000 também atua como piso para o timeout de inatividade descrito abaixo: o Claude Code nunca interrompe as chamadas de ferramenta desse servidor por inatividade antes do `timeout` por servidor.

465 465 

466Uma chamada de ferramenta para um servidor MCP que não envia resposta e nenhuma notificação de progresso para a janela de inatividade aborta com um erro em vez de aguardar o limite de tempo real. O tempo limite de inatividade se aplica a todos os tipos de servidor exceto servidores IDE e SDK em processo. A janela de inatividade padrão é de cinco minutos para servidores HTTP, SSE, WebSocket, e [conector claude.ai](#use-mcp-servers-from-claude-ai), e de 30 minutos para servidores stdio.466Uma chamada de ferramenta para um servidor MCP que não envia nenhuma resposta nem notificação de progresso durante a janela de inatividade é interrompida com um erro em vez de aguardar o limite de tempo real. O timeout de inatividade se aplica a todos os tipos de servidor, exceto servidores de IDE e servidores SDK em processo. A janela de inatividade tem como padrão cinco minutos para servidores HTTP, SSE, WebSocket e de [conector do claude.ai](#use-mcp-servers-from-claude-ai), e 30 minutos para servidores stdio.

467 467 

468Defina a variável de ambiente [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/pt/env-vars) em milissegundos para alterar a janela de inatividade, ou defina-a como `0` para desabilitar a verificação.468Defina a variável de ambiente [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/pt/env-vars) em milissegundos para alterar a janela de inatividade, ou defina-a como `0` para desativar a verificação.

469 469 

470Esses tempos limite limitam quanto tempo uma chamada pode ser executada, nem sempre quanto tempo bloqueia a sessão: uma chamada de conversa principal que é executada por mais de dois minutos se move para uma tarefa em segundo plano primeiro. Veja [Automatic backgrounding of long tool calls](#automatic-backgrounding-of-long-tool-calls).470Esses timeouts limitam por quanto tempo uma chamada pode ser executada, nem sempre por quanto tempo ela bloqueia a sessão: uma chamada da conversa principal que passa de dois minutos é movida primeiro para uma tarefa em segundo plano. Consulte [Envio automático de chamadas de ferramentas longas para segundo plano](#automatic-backgrounding-of-long-tool-calls).

471 471 

472### Execução automática em segundo plano de chamadas de ferramenta longas472### Envio automático de chamadas de ferramentas longas para segundo plano

473 473 

474Se a visualização de detalhes de uma chamada em segundo plano em [`/tasks`](https://code.claude.com/docs/pt/commands#all-commands) mostrar `runs on the server; survives exiting this session`, consulte [Tarefas MCP executadas no servidor](#mcp-tasks-that-run-on-the-server).474Se a visualização de detalhes de uma chamada em segundo plano em [`/tasks`](https://code.claude.com/docs/pt/commands#all-commands) mostrar `runs on the server; survives exiting this session`, consulte [Tarefas MCP executadas no servidor](#mcp-tasks-that-run-on-the-server).

475 475 

476Uma chamada de ferramenta MCP na conversa principal que ainda está em execução após dois minutos se move para uma tarefa em segundo plano em vez de bloquear a sessão. Claude recebe o ID da tarefa imediatamente e continua trabalhando, e o resultado chega como uma notificação de tarefa quando a chamada se resolve.476Uma chamada de ferramenta MCP na conversa principal que ainda está em execução após dois minutos é movida para uma tarefa em segundo plano em vez de bloquear a sessão. O Claude recebe o ID da tarefa imediatamente e continua trabalhando, e o resultado chega como uma notificação de tarefa quando a chamada é concluída.

477 477 

478A tarefa aparece em [`/tasks`](https://code.claude.com/docs/pt/commands#all-commands), onde você também pode pará-la, e não sobrevive ao sair da sessão. A entrada da tarefa mostra o progresso mais recente que o servidor relatou. Se você parar a tarefa, Claude Code cancela a chamada e informa a Claude que nenhum resultado virá. Parar não garante que o servidor pare: ele pode já ter feito parte do trabalho, ou ainda pode concluí-lo.478A tarefa aparece em [`/tasks`](https://code.claude.com/docs/pt/commands#all-commands), onde você também pode interrompê-la, e ela não sobrevive ao encerramento da sessão. A entrada da tarefa mostra o progresso mais recente informado pelo servidor. Se você interromper a tarefa, o Claude Code cancela a chamada e informa ao Claude que nenhum resultado virá. Interromper não garante que o servidor pare: ele pode já ter feito parte do trabalho, ou ainda pode concluí-lo.

479 479 

480Os limites por chamada ainda se aplicam enquanto a chamada é executada em segundo plano: o limite de tempo real definido pelo `timeout` por servidor ou [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/pt/env-vars), e o tempo limite de inatividade definido por [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/pt/env-vars).480Os limites por chamada continuam se aplicando enquanto a chamada é executada em segundo plano: o limite de tempo real definido pelo `timeout` por servidor ou por [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/pt/env-vars), e o timeout de inatividade definido por [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/pt/env-vars).

481 481 

482Para alterar ou desativar a execução automática em segundo plano:482Para alterar ou desativar o envio automático para segundo plano:

483 483 

484* Defina a variável de ambiente [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/pt/env-vars) em milissegundos para alterar o limite, ou defina-a como `0` para desativar a execução automática em segundo plano. Com `0`, o Claude também [aguarda tarefas MCP](#make-claude-wait-for-the-result-of-an-mcp-task) em uma sessão interativa484* Defina a variável de ambiente [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/pt/env-vars) em milissegundos para alterar o limite, ou defina-a como `0` para desativar o envio automático para segundo plano. Com `0`, o Claude também [aguarda tarefas MCP](#make-claude-wait-for-the-result-of-an-mcp-task) em uma sessão interativa

485* Defina [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/pt/env-vars) como `1` para desativar o envio automático para segundo plano e os [comandos em segundo plano](https://code.claude.com/docs/pt/tools-reference.md#background-commands)485* Defina [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/pt/env-vars) como `1` para desativar o envio automático para segundo plano e os [comandos em segundo plano](https://code.claude.com/docs/pt/tools-reference.md#background-commands)

486 486 

487Algumas chamadas nunca se movem para o segundo plano:487Algumas chamadas nunca são movidas para segundo plano:

488 488 

489* Chamadas de [subagentes](https://code.claude.com/docs/pt/sub-agents.md); Claude Code coloca em segundo plano apenas chamadas de conversa principal489* Chamadas de [subagentes](https://code.claude.com/docs/pt/sub-agents.md); o Claude Code envia para segundo plano apenas chamadas da conversa principal

490* Chamadas para servidores IDE490* Chamadas para servidores de IDE

491* Chamadas em [modo não interativo](https://code.claude.com/docs/pt/headless.md), a menos que `CLAUDE_AUTO_BACKGROUND_TASKS` esteja definido como `1`, já que uma execução única pode terminar antes do resultado chegar491* Chamadas no [modo não interativo](https://code.claude.com/docs/pt/headless.md), a menos que `CLAUDE_AUTO_BACKGROUND_TASKS` esteja definida como `1`, já que uma execução única pode terminar antes de o resultado chegar

492 492 

493Uma chamada aguardando um [diálogo de elicitação](#respond-to-mcp-elicitation-requests) aberto não é colocada em segundo plano enquanto o diálogo está aberto; o servidor está bloqueado em sua entrada, não lento, portanto Claude Code adia a mudança até o diálogo fechar.493Uma chamada que aguarda uma [caixa de diálogo de elicitação](#respond-to-mcp-elicitation-requests) aberta não é enviada para segundo plano enquanto a caixa de diálogo estiver aberta; o servidor está bloqueado aguardando sua entrada, não lento, então o Claude Code adia a mudança até que a caixa de diálogo seja fechada.

494 494 

495### Tarefas MCP executadas no servidor495### Tarefas MCP executadas no servidor

496 496 

497Uma tarefa MCP é um trabalho longo, como uma exportação de relatório ou um build, que um servidor MCP executa por conta própria usando a [extensão de tarefas do MCP](https://modelcontextprotocol.io/extensions/tasks/overview). A chamada de ferramenta do Claude retorna assim que o servidor aceita o trabalho, então o Claude continua trabalhando, a menos que você [faça o Claude aguardar](#make-claude-wait-for-the-result-of-an-mcp-task). Quando o trabalho termina, a transcrição informa isso e o Claude recebe o resultado. Peça-o ao Claude.497Uma tarefa MCP é um trabalho longo, como uma exportação de relatório ou um build, que um servidor MCP executa por conta própria usando a [extensão de tarefas MCP](https://modelcontextprotocol.io/extensions/tasks/overview). A chamada de ferramenta do Claude retorna assim que o servidor aceita o trabalho, então o Claude continua trabalhando, a menos que você [faça o Claude aguardar](#make-claude-wait-for-the-result-of-an-mcp-task). Quando o trabalho termina, a transcrição informa isso e o Claude recebe o resultado. Peça-o ao Claude.

498 498 

499Enquanto isso, o rodapé mostra uma contagem como `1 MCP task`, e o Claude Code acompanha a tarefa verificando seu status com o servidor. Uma tarefa em um servidor remoto continua em execução depois que você sai. Para acompanhá-la novamente, [retome a mesma sessão](#exit-clear-or-resume-while-an-mcp-task-runs).499Enquanto isso, o rodapé mostra uma contagem como `1 MCP task`, e o Claude Code acompanha a tarefa verificando seu status com o servidor. Uma tarefa em um servidor remoto continua em execução depois que você sai. Para acompanhá-la novamente, [retome a mesma sessão](#exit-clear-or-resume-while-an-mcp-task-runs).

500 500 


504 504 

505#### Interromper uma tarefa MCP ou obter seu resultado505#### Interromper uma tarefa MCP ou obter seu resultado

506 506 

507Para interromper uma tarefa em execução, selecione-a em [`/tasks`](https://code.claude.com/docs/pt/commands#all-commands) e pressione `x`, ou peça ao Claude que o faça. O Claude Code para de acompanhar a tarefa e pede ao servidor que a cancele, embora o servidor ainda possa concluí-la. Reconecte primeiro um servidor desconectado a partir de `/mcp`, caso contrário nenhuma requisição de cancelamento é enviada e o Claude Code esquece a tarefa e não consegue acompanhá-la novamente. Pressionar `Esc` não interrompe uma tarefa em segundo plano.507Para interromper uma tarefa em execução, selecione-a em [`/tasks`](https://code.claude.com/docs/pt/commands#all-commands) e pressione `x`, ou peça ao Claude que faça isso. O Claude Code para de acompanhar a tarefa e pede ao servidor que a cancele, embora o servidor ainda possa concluí-la. Reconecte primeiro um servidor desconectado em `/mcp`; caso contrário, nenhuma requisição de cancelamento é enviada e o Claude Code esquece a tarefa e não pode acompanhá-la novamente. Pressionar `Esc` não interrompe uma tarefa em segundo plano.

508 508 

509Quando a tarefa termina, uma linha como esta aparece na transcrição:509Quando a tarefa termina, uma linha como esta aparece na transcrição:

510 510 


512MCP task <server task id> (<server>/<tool>) completed.512MCP task <server task id> (<server>/<tool>) completed.

513```513```

514 514 

515O resultado vai para o Claude, não para a transcrição, então peça-o ao Claude. Se o Claude estiver ocioso quando o resultado chegar, o Claude começa a trabalhar nele sem solicitação.515O resultado vai para o Claude, não para a transcrição, então peça-o ao Claude. Se o Claude estiver ocioso quando o resultado chegar, o Claude começa a trabalhar nele sem que você peça.

516 516 

517#### Responder a uma pergunta de uma tarefa MCP517#### Responder a uma pergunta de uma tarefa MCP

518 518 


522 522 

523#### Sair, limpar ou retomar enquanto uma tarefa MCP é executada523#### Sair, limpar ou retomar enquanto uma tarefa MCP é executada

524 524 

525Uma tarefa em um servidor remoto continua em execução depois que você sai. O processo de um servidor stdio é encerrado quando o Claude Code sai, embora suas tarefas mostrem `runs on the server; survives exiting this session` em `/tasks`. A menos que a documentação desse servidor diga que o trabalho sobrevive ao processo, deixe essas tarefas terminarem ou interrompa-as em `/tasks` primeiro.525Uma tarefa em um servidor remoto continua em execução depois que você sai. O processo de um servidor stdio para quando o Claude Code sai, embora suas tarefas mostrem `runs on the server; survives exiting this session` em `/tasks`. A menos que a documentação desse servidor diga que o trabalho sobrevive ao processo, deixe essas tarefas terminarem ou interrompa-as em `/tasks` antes.

526 526 

527| Situação | O que acontece com a tarefa | O que você pode fazer |527| Situação | O que acontece com a tarefa | O que você pode fazer |

528| - | - | - |528| - | - | - |

529| Você executa `/clear` ou `/branch`, ou usa `/resume` para outra sessão | Enquanto o Claude Code permanece aberto, o resultado chega na sua conversa atual | Após sair, use `claude --resume` na sessão em que a tarefa começou |529| Você executa `/clear` ou `/branch`, ou usa `/resume` para outra sessão | Enquanto o Claude Code permanecer aberto, o resultado chega na sua conversa atual | Depois de sair, use `claude --resume` na sessão em que a tarefa começou |

530| Você sai do Claude Code | Nenhuma opção de saída cancela a tarefa de um servidor remoto, mesmo quando a caixa de diálogo de saída a lista em `The following will stop when you exit:` | Interrompa-a em `/tasks` primeiro, ou retome a mesma sessão mais tarde |530| Você sai do Claude Code | Nenhuma opção de saída cancela a tarefa de um servidor remoto, mesmo quando a caixa de diálogo de saída a lista em `The following will stop when you exit:` | Interrompa-a em `/tasks` antes, ou retome a mesma sessão depois |

531| Você retorna à sessão da tarefa interativamente: `claude --resume`, `claude --continue` ou `/resume` | Assim que o servidor se conecta, o Claude Code acompanha a tarefa novamente, e o Claude recebe o resultado se ela tiver terminado nesse meio-tempo e o servidor ainda a conhecer | Mantenha o nome e as configurações de conexão do servidor inalterados |531| Você volta à sessão da tarefa interativamente: `claude --resume`, `claude --continue` ou `/resume` | Assim que o servidor se conecta, o Claude Code volta a acompanhar a tarefa, e o Claude recebe o resultado se ela tiver terminado nesse meio-tempo e o servidor ainda a conhecer | Mantenha o nome e as configurações de conexão do servidor inalterados |

532| Você retoma a sessão da tarefa com `--resume` ou `--continue` em uma execução única `claude -p "<prompt>"` | Essa execução não acompanha a tarefa | Retome interativamente, ou com `--input-format stream-json` |532| Você retoma a sessão da tarefa com `--resume` ou `--continue` em uma execução única `claude -p "<prompt>"` | Essa execução não acompanha a tarefa | Retome interativamente, ou com `--input-format stream-json` |

533| Você inicia uma nova sessão ou usa `--fork-session` | A nova sessão não acompanha a tarefa | Retome a sessão que a iniciou |533| Você inicia uma nova sessão ou usa `--fork-session` | A nova sessão não acompanha a tarefa | Retome a sessão que a iniciou |

534 534 

535#### O que uma chamada precisa para se tornar uma tarefa MCP535#### O que uma chamada precisa para se tornar uma tarefa MCP

536 536 

537Uma chamada de ferramenta se torna uma tarefa MCP apenas quando todas estas condições são atendidas:537Uma chamada de ferramenta se torna uma tarefa MCP somente quando todas estas condições são atendidas:

538 538 

539* O servidor oferece suporte a tarefas539* O servidor oferece suporte a tarefas

540* O servidor é um servidor HTTP, stdio ou de conector do claude.ai conectado na [revisão 2026-07-28 do protocolo](#mcp-client-runtimes). Definir [`MCP_SDK_GENERATION=v1` ou `MCP_PROTOCOL_NEGOTIATION=legacy`](https://code.claude.com/docs/pt/env-vars) exclui essa possibilidade540* O servidor é um servidor HTTP, stdio ou de conector do claude.ai conectado na [revisão de protocolo 2026-07-28](#mcp-client-runtimes). Definir [`MCP_SDK_GENERATION=v1` ou `MCP_PROTOCOL_NEGOTIATION=legacy`](https://code.claude.com/docs/pt/env-vars) exclui isso

541* A sessão [busca feature flags](https://code.claude.com/docs/pt/env-vars.md#features-that-need-feature-flag-fetching), portanto não em um provedor terceirizado como o Amazon Bedrock, e não com a telemetria ou a busca de flags desativada541* A sessão [busca feature flags](https://code.claude.com/docs/pt/env-vars.md#features-that-need-feature-flag-fetching), portanto não em um provedor terceiro como o Amazon Bedrock, nem com a telemetria ou a busca de flags desativada

542* A Anthropic ativou as tarefas MCP para o seu tipo de sessão. Na v2.1.304 ou posterior, isso abrange sessões da CLI no terminal, sessões do [Agent SDK](https://code.claude.com/docs/pt/agent-sdk/overview.md) e execuções do [GitHub Actions](https://code.claude.com/docs/pt/github-actions.md). Outras superfícies, como a [extensão do VS Code](https://code.claude.com/docs/pt/vs-code.md) e o [aplicativo desktop](https://code.claude.com/docs/pt/desktop.md), não têm tarefas MCP542* A Anthropic ativou as tarefas MCP para o seu tipo de sessão. Na v2.1.304 ou posterior, isso abrange sessões da CLI no terminal, sessões do [Agent SDK](https://code.claude.com/docs/pt/agent-sdk/overview.md) e execuções do [GitHub Actions](https://code.claude.com/docs/pt/github-actions.md). Outras superfícies, como a [extensão do VS Code](https://code.claude.com/docs/pt/vs-code.md) e o [aplicativo desktop](https://code.claude.com/docs/pt/desktop.md), não têm tarefas MCP

543* A chamada vem da conversa principal, não de um [subagente](https://code.claude.com/docs/pt/sub-agents.md)543* A chamada vem da conversa principal, não de um [subagente](https://code.claude.com/docs/pt/sub-agents.md)

544* Ou a sessão é interativa, ou uma sessão do [Agent SDK](https://code.claude.com/docs/pt/agent-sdk/overview.md) ou uma execução `claude -p` lendo `--input-format stream-json` tem:544* Ou a sessão é interativa, ou uma sessão do [Agent SDK](https://code.claude.com/docs/pt/agent-sdk/overview.md) ou uma execução `claude -p` lendo `--input-format stream-json` tem:


546 * `CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND` diferente de `1`546 * `CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND` diferente de `1`

547 * `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` diferente de `0`547 * `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` diferente de `0`

548 548 

549Qualquer outra chamada é uma chamada de ferramenta simples, e [Execução automática em segundo plano de chamadas de ferramenta longas](#automatic-backgrounding-of-long-tool-calls) informa quais delas são movidas para o segundo plano.549Qualquer outra chamada é uma chamada de ferramenta comum, e [Envio automático de chamadas de ferramentas longas para segundo plano](#automatic-backgrounding-of-long-tool-calls) indica quais delas são movidas para segundo plano.

550 550 

551Mantenha aberta a entrada de uma sessão do Agent SDK ou stream-json, porque a execução [não aguarda tarefas MCP](https://code.claude.com/docs/pt/headless.md#mcp-work-when-a-non-interactive-run-ends) depois que a entrada é fechada. Uma execução única `claude -p "<prompt>"` não recebe tarefas MCP.551Mantenha a entrada de uma sessão do Agent SDK ou stream-json aberta, porque a execução [não aguarda tarefas MCP](https://code.claude.com/docs/pt/headless.md#mcp-work-when-a-non-interactive-run-ends) depois que a entrada é fechada. Uma execução única `claude -p "<prompt>"` não recebe tarefas MCP.

552 552 

553#### Mensagens de status em uma tarefa MCP553#### Mensagens de status em uma tarefa MCP

554 554 

555Estas mensagens, na entrada de uma tarefa em `/tasks` ou em sua linha de encerramento na transcrição, significam que o Claude Code não consegue alcançar o servidor ou a tarefa. Enquanto uma delas aparece em `/tasks`, o trabalho ainda pode estar em execução: o Claude Code o deixa em paz e continua verificando. As mensagens de `300s` e de configuração permanecem na entrada mesmo depois que o contato é restabelecido.555Estas mensagens, na entrada `/tasks` de uma tarefa ou em sua linha final na transcrição, significam que o Claude Code não consegue alcançar o servidor ou a tarefa. Enquanto uma delas aparece em `/tasks`, o trabalho ainda pode estar em execução: o Claude Code não interfere nele e continua verificando. A mensagem de `300s` e as de configuração permanecem na entrada mesmo depois que o contato é restabelecido.

556 556 

557| Mensagem | O que está acontecendo | O que você pode fazer |557| Mensagem | O que está acontecendo | O que você pode fazer |

558| - | - | - |558| - | - | - |

559| `reconnecting…` | O servidor não respondeu desde uma retomada, ou as verificações de status não recebem resposta | Se persistir, reconecte a partir de `/mcp` |559| `reconnecting…` | O servidor não respondeu desde uma retomada, ou as verificações de status não recebem resposta | Se persistir, reconecte em `/mcp` |

560| `needs a sign-in to <server>` | O servidor recusou uma verificação de status | Faça login a partir de `/mcp` |560| `needs a sign-in to <server>` | O servidor recusou uma verificação de status | Faça login em `/mcp` |

561| `status requests come back with errors; retrying…` | O servidor, ou um proxy na frente dele, responde às verificações de status com erros | Aguarde enquanto o Claude Code tenta novamente |561| `status requests come back with errors; retrying…` | O servidor, ou um proxy na frente dele, responde às verificações de status com erros | Aguarde enquanto o Claude Code tenta novamente |

562| `server '<name>' did not reconnect within 300s` | Nenhuma verificação respondida por cinco minutos, por exemplo com a conexão inativa ou o servidor desativado | Reconecte a partir de `/mcp` |562| `server '<name>' did not reconnect within 300s` | Nenhuma verificação respondida por cinco minutos, por exemplo com a conexão caída ou o servidor desativado | Reconecte em `/mcp` |

563| `server '<name>' asked for a sign-in, and none was accepted within 300s` | Após cinco minutos, o servidor ainda exige um login | Faça login a partir de `/mcp` |563| `server '<name>' asked for a sign-in, and none was accepted within 300s` | Após cinco minutos, o servidor ainda quer um login | Faça login em `/mcp` |

564| `status requests to server '<name>' came back with errors, and none succeeded in 300s` | Cinco minutos de respostas de erro | Verifique a integridade ou os logs do próprio servidor |564| `status requests to server '<name>' came back with errors, and none succeeded in 300s` | Cinco minutos de respostas com erro | Verifique a integridade ou os logs do próprio servidor |

565| `server '<name>' is not configured in this session; the task may still be running on it` | A sessão não tem nenhum servidor com esse nome, por exemplo porque ele foi removido, renomeado ou deixado de fora de `--mcp-config`, ou um conector do claude.ai ainda está carregando | Restaure o servidor com o mesmo nome e retome a sessão novamente. Para um conector carregando, nada: o Claude Code acompanha a tarefa assim que ele aparecer |565| `server '<name>' is not configured in this session; the task may still be running on it` | A sessão não tem nenhum servidor com esse nome, por exemplo porque ele foi removido, renomeado ou deixado de fora de `--mcp-config`, ou um conector do claude.ai ainda está carregando | Restaure o servidor com o mesmo nome e retome a sessão novamente. Para um conector carregando, nada: o Claude Code acompanha a tarefa assim que ele aparecer |

566| Uma mensagem começando com `server '<name>' was reconfigured to a different transport since this task was created` | Existe um servidor com esse nome com configurações de conexão que mudaram desde o início da tarefa, como sua URL, comando, args, env, headers ou timeout | Restaure as configurações anteriores e retome a sessão novamente |566| Uma mensagem que começa com `server '<name>' was reconfigured to a different transport since this task was created` | Existe um servidor com esse nome cujas configurações de conexão mudaram desde que a tarefa começou, como sua URL, command, args, env, headers ou timeout | Restaure as configurações anteriores e retome a sessão novamente |

567| `the server rejected this task's id; asking again…` | O servidor diz que não conhece o ID da tarefa. O Claude Code continua perguntando por até cinco minutos | Aguarde: a mensagem desaparece se o servidor reconhecer o ID novamente, ou a linha `outcome unknown.` aparece em seguida |567| `the server rejected this task's id; asking again…` | O servidor diz que não conhece o ID da tarefa. O Claude Code continua perguntando por até cinco minutos | Aguarde: a mensagem desaparece se o servidor reconhecer o ID novamente, ou a linha `outcome unknown.` aparece em seguida |

568| Uma linha da transcrição terminando em `outcome unknown.`, em uma forma `expired on the server: outcome unknown.` | O servidor rejeitou o ID ou recusou com outro erro permanente, e o Claude Code parou de acompanhar a tarefa | Uma segunda chamada pode repetir o trabalho. Antes de chamar a ferramenta novamente, descubra com o servidor o que foi feito, por exemplo pedindo ao Claude que use as outras ferramentas do servidor |568| Uma linha da transcrição terminando em `outcome unknown.`, em uma das formas `expired on the server: outcome unknown.` | O servidor rejeitou o ID ou recusou com outro erro permanente, e o Claude Code parou de acompanhar a tarefa | Uma segunda chamada pode repetir o trabalho. Antes de chamar a ferramenta novamente, descubra com o servidor o que foi feito, por exemplo pedindo ao Claude que use as outras ferramentas do servidor |

569 569 

570#### Limites de tempo em tarefas MCP570#### Limites de tempo em tarefas MCP

571 571 

572Por padrão, uma tarefa em segundo plano não tem limite de tempo do Claude Code. Os [limites de tempo de chamadas de ferramenta](#time-limits-on-mcp-tool-calls), incluindo o limite de tempo de relógio e o timeout de inatividade, se aplicam até que o servidor responda à chamada com a tarefa. Se você [fizer o Claude aguardar](#make-claude-wait-for-the-result-of-an-mcp-task), eles se aplicam à tarefa inteira. Verificações de status respondidas contam como atividade para o timeout de inatividade.572Por padrão, uma tarefa em segundo plano não tem limite de tempo do Claude Code. Os [limites de tempo de chamadas de ferramenta](#time-limits-on-mcp-tool-calls), incluindo o limite de tempo real e o timeout de inatividade, se aplicam até que o servidor responda à chamada com a tarefa. Se você [fizer o Claude aguardar](#make-claude-wait-for-the-result-of-an-mcp-task), eles se aplicam à tarefa inteira. Verificações de status respondidas contam como atividade para o timeout de inatividade.

573 573 

574#### Fazer o Claude aguardar o resultado de uma tarefa MCP574#### Fazer o Claude aguardar o resultado de uma tarefa MCP

575 575 

576Para fazer o Claude aguardar o resultado de uma tarefa em uma sessão interativa, defina uma de duas variáveis de ambiente, por exemplo no bloco `env` do [`settings.json`](https://code.claude.com/docs/pt/settings):576Para fazer o Claude aguardar o resultado de uma tarefa em uma sessão interativa, defina uma de duas variáveis de ambiente, por exemplo no bloco `env` do [`settings.json`](https://code.claude.com/docs/pt/settings):

577 577 

578* **[`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/pt/env-vars) definida como `0`**: o Claude aguarda toda chamada de ferramenta MCP até que a chamada termine578* **[`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/pt/env-vars) definida como `0`**: o Claude aguarda cada chamada de ferramenta MCP até que a chamada termine

579* **[`CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND`](https://code.claude.com/docs/pt/env-vars) definida como `1`**: o Claude aguarda o resultado de uma tarefa. Enquanto a [execução automática em segundo plano](#automatic-backgrounding-of-long-tool-calls) está ativada, ela move a chamada após dois minutos por padrão, então tarefas curtas terminam no lugar e as longas não bloqueiam você. A chamada movida é uma chamada em segundo plano simples, em vez de uma tarefa MCP. Ela não sobrevive ao encerramento da sessão579* **[`CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND`](https://code.claude.com/docs/pt/env-vars) definida como `1`**: o Claude aguarda o resultado de uma tarefa. Enquanto o [envio automático para segundo plano](#automatic-backgrounding-of-long-tool-calls) estiver ativado, ele move a chamada após dois minutos por padrão, então tarefas curtas terminam no lugar e as longas não bloqueiam você. A chamada movida é uma chamada em segundo plano comum, e não uma tarefa MCP. Ela não sobrevive ao encerramento da sessão

580 580 

581Enquanto o Claude aguarda, pressionar `Esc` ou atingir o [limite de tempo de relógio ou o timeout de inatividade](#time-limits-on-mcp-tasks) encerra a chamada, e o Claude Code pede ao servidor que cancele a tarefa.581Enquanto o Claude aguarda, pressionar `Esc` ou atingir o [limite de tempo real ou o timeout de inatividade](#time-limits-on-mcp-tasks) encerra a chamada, e o Claude Code pede ao servidor que cancele a tarefa.

582 582 

583Se você definir `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` como `1` ou iniciar no [modo bare](https://code.claude.com/docs/pt/headless.md#start-faster-with-bare-mode), isso por si só não faz o Claude aguardar tarefas MCP. Este exemplo define `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` como `0`, então o Claude aguarda toda chamada de ferramenta MCP:583Se você definir `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` como `1` ou iniciar no [modo bare](https://code.claude.com/docs/pt/headless.md#start-faster-with-bare-mode), isso por si só não faz o Claude aguardar tarefas MCP. Este exemplo define `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` como `0`, então o Claude aguarda cada chamada de ferramenta MCP:

584 584 

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

586{586{


592 592 

593### Tarefas MCP para autores de servidores593### Tarefas MCP para autores de servidores

594 594 

595Se você cria um servidor MCP, pode responder a um `tools/call` de longa duração com uma tarefa. A [extensão de tarefas do MCP](https://modelcontextprotocol.io/extensions/tasks/overview) define as mensagens que você envia. Em uma conexão na [revisão 2026-07-28 do protocolo](#mcp-client-runtimes), cada requisição carrega as capacidades de cliente do Claude Code em `params._meta["io.modelcontextprotocol/clientCapabilities"]`, com `"io.modelcontextprotocol/tasks": {}` em `extensions`. Uma requisição `tools/call` que [não pode se tornar uma tarefa](#requirements-for-mcp-tasks) omite essa extensão.595Se você cria um servidor MCP, pode responder a um `tools/call` de longa duração com uma tarefa. A [extensão de tarefas MCP](https://modelcontextprotocol.io/extensions/tasks/overview) define as mensagens que você envia. Em uma conexão na [revisão de protocolo 2026-07-28](#mcp-client-runtimes), cada requisição carrega as capacidades de cliente do Claude Code em `params._meta["io.modelcontextprotocol/clientCapabilities"]`, com `"io.modelcontextprotocol/tasks": {}` em `extensions`. Uma requisição `tools/call` que [não pode se tornar uma tarefa](#requirements-for-mcp-tasks) omite essa extensão.

596 596 

597#### Responder à chamada com uma tarefa597#### Responder à chamada com uma tarefa

598 598 

599Responda com uma tarefa somente quando a requisição carregar a extensão; caso contrário, a chamada falha com o erro de ferramenta `Unsupported result type 'task' for tools/call`. A chamada falha da mesma forma se sua resposta não tiver `taskId` ou um `status` válido. O objeto da tarefa é o `result` JSON-RPC da sua resposta `tools/call`, não precisa de um array `content` e aqui inclui os opcionais `statusMessage` e `pollIntervalMs`:599Responda com uma tarefa somente quando a requisição carregar a extensão; caso contrário, a chamada falha com o erro de ferramenta `Unsupported result type 'task' for tools/call`. A chamada falha da mesma forma se sua resposta não tiver `taskId` ou não tiver um `status` válido. O objeto da tarefa é o `result` JSON-RPC da sua resposta a `tools/call`, não precisa de um array `content` e aqui inclui os campos opcionais `statusMessage` e `pollIntervalMs`:

600 600 

601```json theme={null}601```json theme={null}

602{602{


613 613 

614| Campo | Como o Claude Code o trata |614| Campo | Como o Claude Code o trata |

615| - | - |615| - | - |

616| `resultType` | Defina-o como `"task"` para marcar a resposta como uma tarefa. Sem ele, o Claude Code lê a resposta como um resultado simples |616| `resultType` | Defina-o como `"task"` para marcar a resposta como uma tarefa. Sem ele, o Claude Code lê a resposta como um resultado comum |

617| `taskId` | Obrigatório. No máximo 128 caracteres ASCII imprimíveis sem espaços, caso contrário o Claude recebe um erro de ferramenta começando com `MCP server "<name>" returned a malformed task handle for tool "<tool>"`. Mantenha o ID respondível entre conexões, porque após uma retomada o Claude Code pergunta sobre ele em uma nova conexão |617| `taskId` | Obrigatório. No máximo 128 caracteres ASCII imprimíveis sem espaços; caso contrário, o Claude recebe um erro de ferramenta que começa com `MCP server "<name>" returned a malformed task handle for tool "<tool>"`. Mantenha o ID respondível entre conexões, porque após uma retomada o Claude Code pergunta sobre ele em uma nova conexão |

618| `status` | Obrigatório. Um de `working`, `input_required`, `completed`, `failed` ou `cancelled`. Outro valor resulta no erro `Unsupported result type` |618| `status` | Obrigatório. Um de `working`, `input_required`, `completed`, `failed` ou `cancelled`. Outro valor resulta no erro `Unsupported result type` |

619| `createdAt`, `lastUpdatedAt`, `ttlMs` | Exigidos pela extensão de tarefas, e `ttlMs` pode ser `null`. O Claude Code não descarta uma tarefa porque seu `ttlMs` passou |619| `createdAt`, `lastUpdatedAt`, `ttlMs` | Obrigatórios pela extensão de tarefas, e `ttlMs` pode ser `null`. O Claude Code não descarta uma tarefa porque seu `ttlMs` expirou |

620| `pollIntervalMs` | Opcional. Milissegundos entre requisições `tasks/get`, limitado entre 250 e 30000. O Claude Code usa 2000 quando o campo está ausente ou é `null`, e lê o valor novamente de cada resposta `tasks/get` |620| `pollIntervalMs` | Opcional. Milissegundos entre requisições `tasks/get`, limitado entre 250 e 30000. O Claude Code usa 2000 quando o campo está ausente ou é `null`, e lê o valor novamente em cada resposta de `tasks/get` |

621| `statusMessage` | Opcional. `/tasks` mostra o valor da sua resposta `tasks/get` mais recente, não desta primeira, e uma resposta que omite o campo o limpa. Uma [mensagem de status do Claude Code](#status-messages-on-an-mcp-task) pode ocupar seu lugar |621| `statusMessage` | Opcional. `/tasks` mostra o valor da sua resposta mais recente de `tasks/get`, não desta primeira, e uma resposta que omite o campo o limpa. Uma [mensagem de status do Claude Code](#status-messages-on-an-mcp-task) pode tomar seu lugar |

622 622 

623O Claude Code aceita uma resposta de tarefa que omite `createdAt`, `lastUpdatedAt` ou `ttlMs`, ou que define `pollIntervalMs` como `null`. Antes da v2.1.317, a chamada falhava com o erro `Unsupported result type` em vez disso. Para funcionar também com essas versões, envie os três campos exigidos pela extensão de tarefas e envie `pollIntervalMs` como número ou não o envie.623O Claude Code aceita uma resposta de tarefa que omite `createdAt`, `lastUpdatedAt` ou `ttlMs`, ou que define `pollIntervalMs` como `null`. Antes da v2.1.317, a chamada falhava com o erro `Unsupported result type`. Para funcionar também com essas versões, envie os três campos que a extensão de tarefas exige e envie `pollIntervalMs` como um número ou não o envie.

624 624 

625Em um servidor HTTP ou de conector do claude.ai, a resposta com a tarefa precisa começar dentro do [temporizador por requisição](#time-limits-on-mcp-tool-calls), então aceite o trabalho e responda primeiro, depois faça o trabalho.625Em um servidor HTTP ou de conector do claude.ai, a resposta de tarefa precisa começar dentro do [temporizador por requisição](#time-limits-on-mcp-tool-calls), então aceite o trabalho e responda primeiro, e depois faça o trabalho.

626 626 

627#### Informar status, resultados e perguntas627#### Informar status, resultados e perguntas

628 628 

629Logo após a resposta com a tarefa, o Claude Code envia `tasks/get` com `{ "taskId": ... }` e o repete uma vez por intervalo de polling. A extensão de tarefas exige que sua resposta carregue `"resultType": "complete"` junto com `taskId`, `status`, `createdAt`, `lastUpdatedAt` e `ttlMs`. `ttlMs` pode ser `null`, e `statusMessage` e `pollIntervalMs` são opcionais. Este exemplo informa que o build foi concluído:629Logo após a resposta de tarefa, o Claude Code envia `tasks/get` com `{ "taskId": ... }` e depois o repete uma vez por intervalo de polling. A extensão de tarefas exige que sua resposta carregue `"resultType": "complete"` junto com `taskId`, `status`, `createdAt`, `lastUpdatedAt` e `ttlMs`. `ttlMs` pode ser `null`, e `statusMessage` e `pollIntervalMs` são opcionais. Este exemplo informa que o build foi concluído:

630 630 

631```json theme={null}631```json theme={null}

632{632{


645| Status, método ou resposta | Como o Claude Code o trata |645| Status, método ou resposta | Como o Claude Code o trata |

646| - | - |646| - | - |

647| `working` | Continua fazendo polling |647| `working` | Continua fazendo polling |

648| `completed` | Entrega ao Claude o resultado normal de `tools/call` no objeto `result` de nível superior. `isError: true` nele é informado como uma falha |648| `completed` | Entrega ao Claude o resultado normal de `tools/call` no objeto `result` de nível superior. `isError: true` nele é informado como falha |

649| `failed` | Informa ao Claude o `message` do objeto `error` de nível superior `{ code, message, data }`, que a extensão de tarefas exige em uma tarefa com falha. Sem esse `message`, o Claude recebe `statusMessage` em vez disso, ou então `Task failed` |649| `failed` | Informa ao Claude a `message` do objeto `error` de nível superior `{ code, message, data }`, que a extensão de tarefas exige em uma tarefa com falha. Sem essa `message`, o Claude recebe `statusMessage`, ou então `Task failed` |

650| `cancelled` | Informa ao Claude `statusMessage`, ou então `Task was cancelled by the server` |650| `cancelled` | Informa ao Claude `statusMessage`, ou então `Task was cancelled by the server` |

651| `input_required` | Lê `inputRequests`, um objeto que mapeia uma chave que você escolhe para `{ method, params }`. O Claude Code responde a cada chave uma vez por meio de `tasks/update` com `{ taskId, inputResponses }`, onde `inputResponses` mapeia a mesma chave para o resultado dessa requisição. Chaves além de 16 por tarefa são ignoradas |651| `input_required` | Lê `inputRequests`, um objeto que mapeia uma chave escolhida por você para `{ method, params }`. O Claude Code responde a cada chave uma vez por meio de `tasks/update` com `{ taskId, inputResponses }`, em que `inputResponses` mapeia a mesma chave para o resultado dessa requisição. Chaves além de 16 por tarefa são ignoradas |

652| Métodos em `inputRequests` | `elicitation/create` é atendido apenas em sessões interativas no terminal, e `roots/list` em todos os lugares. Quando o Claude Code não consegue atender a uma requisição, ele pede ao servidor que cancele a tarefa |652| Métodos em `inputRequests` | `elicitation/create` é atendido apenas em sessões interativas no terminal, e `roots/list` em todos os lugares. Quando o Claude Code não consegue atender a uma requisição, ele pede ao servidor que cancele a tarefa |

653| Outro valor de `status` | O Claude Code pede ao servidor que cancele a tarefa e a informa ao Claude como com falha |653| Outro valor de `status` | O Claude Code pede ao servidor que cancele a tarefa e a informa ao Claude como com falha |

654| Erro JSON-RPC `-32602` | Lido como um ID de tarefa desconhecido. Para uma tarefa em segundo plano, o Claude Code continua perguntando por até cinco minutos e então informa ao Claude o resultado como desconhecido |654| Erro JSON-RPC `-32602` | Interpretado como um ID de tarefa desconhecido. Para uma tarefa em segundo plano, o Claude Code continua perguntando por até cinco minutos e depois informa ao Claude que o resultado é desconhecido |

655| `tasks/cancel` | Enviado, por exemplo, quando o Claude ou a pessoa interrompe a tarefa enquanto o servidor está conectado. Não é enviado ao sair |655| `tasks/cancel` | Enviado, por exemplo, quando o Claude ou a pessoa interrompe a tarefa enquanto o servidor está conectado. Não é enviado ao sair |

656| `tasks/result`, `tasks/list`, `notifications/tasks` | Não usados, então coloque o resultado nas suas respostas `tasks/get` |656| `tasks/result`, `tasks/list`, `notifications/tasks` | Não utilizados, então coloque o resultado nas suas respostas de `tasks/get` |

657 657 

658### Servidores MCP fornecidos por plugins658### Servidores MCP fornecidos por plugins

659 659 

660[Plugins](https://code.claude.com/docs/pt/plugins/overview.md) podem agrupar servidores MCP que fornecem ferramentas e integrações quando você ativa o plugin.660[Plugins](https://code.claude.com/docs/pt/plugins/overview.md) podem incluir servidores MCP que fornecem ferramentas e integrações quando você habilita o plugin.

661 661 

662**Como funcionam os servidores MCP de plugin**:662**Como funcionam os servidores MCP de plugins**:

663 663 

664* Plugins definem servidores MCP em `.mcp.json` na raiz do plugin ou inline em `plugin.json`664* Os plugins definem servidores MCP em `.mcp.json` na raiz do plugin ou inline em `plugin.json`

665* Quando você ativa um plugin, Claude Code inicia seus servidores MCP automaticamente665* Quando você habilita um plugin, o Claude Code inicia seus servidores MCP automaticamente

666* Claude Code oferece ferramentas MCP de plugin ao lado de ferramentas MCP configuradas manualmente666* O Claude Code oferece as ferramentas MCP de plugins junto com as ferramentas MCP configuradas manualmente

667* Você adiciona e remove servidores de plugin instalando ou desinstalando o plugin, não com comandos `/mcp`. Você ainda pode [desativar um servidor de plugin instalado](#disable-a-server-without-removing-it) em `/mcp`, o que impede que Claude Code se conecte a ele sem remover o plugin667* Você adiciona e remove servidores de plugins instalando ou desinstalando o plugin, não com comandos `/mcp`. Você ainda pode [desativar um servidor de plugin instalado](#disable-a-server-without-removing-it) em `/mcp`, o que impede o Claude Code de se conectar a ele sem remover o plugin

668 668 

669**Exemplo de configuração MCP de plugin**:669**Exemplo de configuração MCP de plugin**:

670 670 


698}698}

699```699```

700 700 

701**Recursos MCP de plugin**:701**Recursos MCP de plugins**:

702 702 

703* **Ciclo de vida automático**: servidores se conectam e desconectam nestes pontos:703* **Ciclo de vida automático**: os servidores se conectam e desconectam nestes momentos:

704 * Na inicialização da sessão, Claude Code conecta os servidores para plugins ativados automaticamente. Em `/mcp`, um servidor de plugin remoto (HTTP ou SSE) que você usou antes pode mostrar o status [`cached`](#server-status-detail) em vez disso; Claude Code o conecta quando Claude chama pela primeira vez uma de suas ferramentas. Quando a conexão de um servidor de plugin stdio falhou menos de 15 minutos antes, Claude Code [pula a conexão](https://code.claude.com/docs/pt/errors.md#skipping-connection-recent-failure-cached)704 * Na inicialização da sessão, o Claude Code conecta automaticamente os servidores dos plugins habilitados. Em `/mcp`, um servidor de plugin remoto (HTTP ou SSE) que você já usou antes pode mostrar o [status `cached`](#server-status-detail) em vez disso; o Claude Code o conecta quando o Claude chama uma de suas ferramentas pela primeira vez. Quando a conexão de um servidor de plugin stdio falhou há menos de 15 minutos, o Claude Code [ignora a conexão](https://code.claude.com/docs/pt/errors.md#skipping-connection-recent-failure-cached)

705 * Se você ativar ou desativar um plugin durante uma sessão, Claude Code conecta ou desconecta seus servidores MCP quando a mudança se aplica. [Apply plugin changes without restarting](https://code.claude.com/docs/pt/plugins/cli-reference.md#reload-plugins) descreve quando isso é. Em uma sessão sem um terminal interativo, `/reload-plugins` não conecta ou desconecta servidores MCP de plugin; essas mudanças entram em vigor em sua próxima sessão705 * Se você habilitar ou desabilitar um plugin durante uma sessão, o Claude Code conecta ou desconecta seus servidores MCP quando a alteração é aplicada. [Aplicar alterações de plugins sem reiniciar](https://code.claude.com/docs/pt/plugins/cli-reference.md#reload-plugins) descreve quando isso acontece. Em uma sessão sem um terminal interativo, `/reload-plugins` não conecta nem desconecta servidores MCP de plugins; essas alterações entram em vigor na sua próxima sessão

706 * Quando você recarrega, Claude Code mantém as conexões ativas de servidores de plugin cuja configuração não mudou, e faz o mesmo quando você [substitui a lista de servidores MCP da sessão](https://code.claude.com/docs/pt/agent-sdk/typescript.md#mcpsetserversresult) do Agent SDK sem nomeá-los706 * Quando você recarrega, o Claude Code mantém as conexões ativas dos servidores de plugins cuja configuração não mudou, e faz o mesmo quando você [substitui a lista de servidores MCP da sessão](https://code.claude.com/docs/pt/agent-sdk/typescript.md#mcpsetserversresult) a partir do Agent SDK sem nomeá-los

707 * Quando você [move a sessão com `/cd`](https://code.claude.com/docs/pt/permissions#move-the-session-to-another-directory) na v2.1.246 ou posterior, Claude Code conecta os servidores de plugins que as configurações do novo diretório ativam e desconecta os servidores de plugins que não estão mais ativados, portanto você não precisa executar `/reload-plugins` após a mudança707 * Quando você [move a sessão com `/cd`](https://code.claude.com/docs/pt/permissions#move-the-session-to-another-directory) na v2.1.246 ou posterior, o Claude Code conecta os servidores dos plugins que as configurações do novo diretório habilitam e desconecta os servidores dos plugins que não estão mais habilitados, então você não precisa executar `/reload-plugins` após a mudança

708 * Em [sessões na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md), uma chamada MCP para um servidor de plugin que ainda não está conectado, como logo após uma sessão ociosa acordar, inicia o servidor sob demanda e aguarda sua conexão708 * Em [sessões na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md), uma chamada MCP para um servidor de plugin que ainda não está conectado, como logo após uma sessão ociosa ser retomada, inicia o servidor sob demanda e aguarda a conexão

709* **Espaços reservados de caminho**: `${CLAUDE_PLUGIN_ROOT}` resolve para o diretório de instalação do plugin, `${CLAUDE_PLUGIN_DATA}` para seu diretório de [estado persistente](https://code.claude.com/docs/pt/plugins/components.md#path-variables-and-persistent-data), e `${CLAUDE_PROJECT_DIR}` para a raiz do projeto estável. A substituição se aplica a:709* **Placeholders de caminho**: `${CLAUDE_PLUGIN_ROOT}` resolve para o diretório de instalação do plugin, `${CLAUDE_PLUGIN_DATA}` para seu diretório de [estado persistente](https://code.claude.com/docs/pt/plugins/components.md#path-variables-and-persistent-data) e `${CLAUDE_PROJECT_DIR}` para a raiz estável do projeto. A substituição se aplica a:

710 * servidores `stdio`: `command`, `args`, `env`710 * Servidores `stdio`: `command`, `args`, `env`

711 * servidores `http`, `sse`, e `ws`: `url`, `headers`, e `headersHelper`711 * Servidores `http`, `sse` e `ws`: `url`, `headers` e `headersHelper`

712* **Acesso ao ambiente do usuário**: acesso às mesmas variáveis de ambiente que servidores configurados manualmente712* **Acesso ao ambiente do usuário**: acesso às mesmas variáveis de ambiente que os servidores configurados manualmente

713* **Múltiplos tipos de transporte**: suporte para transportes stdio, SSE, HTTP, e WebSocket, embora o suporte de transporte possa variar por servidor713* **Vários tipos de transporte**: suporte para transportes stdio, SSE, HTTP e WebSocket, embora o suporte a transportes possa variar conforme o servidor

714 714 

715Os servidores de plugin aparecem em `/mcp` com indicadores mostrando que vêm de plugins.715Os servidores de plugins aparecem em `/mcp` com indicadores mostrando que vêm de plugins.

716 716 

717`claude mcp get` oculta os valores configurados para o servidor stdio ou WebSocket de um plugin, porque eles podem carregar credenciais:717`claude mcp get` oculta os valores configurados para o servidor stdio ou WebSocket de um plugin, porque eles podem conter credenciais:

718 718 

719* **Servidor stdio**: ele imprime `Command: stdio`, uma linha `Args:` vazia, e cada variável de ambiente como `NAME=[REDACTED]`719* **Servidor stdio**: exibe `Command: stdio`, uma linha `Args:` vazia e cada variável de ambiente como `NAME=[REDACTED]`

720* **Servidor WebSocket**: ele imprime `URL: ws` e cada cabeçalho como `<name>: [REDACTED]`, e `claude mcp list` mostra `ws` no lugar da URL720* **Servidor WebSocket**: exibe `URL: ws` e cada header como `<name>: [REDACTED]`, e `claude mcp list` mostra `ws` no lugar da URL

721 721 

722Para ver o que o plugin configurou, [encontre o plugin no disco](https://code.claude.com/docs/pt/plugins/loading.md#find-plugins-on-disk) e leia seu `.mcp.json` ou `plugin.json`.722Para ver o que o plugin configurou, [encontre o plugin no disco](https://code.claude.com/docs/pt/plugins/loading.md#find-plugins-on-disk) e leia seu `.mcp.json` ou `plugin.json`.

723 723 

724**Nomes de ferramentas MCP de plugin**:724**Nomes de ferramentas MCP de plugins**:

725 725 

726As ferramentas de um servidor MCP agrupado em plugin incluem tanto o nome do plugin quanto a chave do servidor em seu nome chamável. A forma completa é `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`, onde qualquer caractere fora de `A-Z`, `a-z`, `0-9`, `_`, e `-` é substituído por `_`. Para o servidor `database-tools` agrupado em um plugin nomeado `my-plugin`, uma ferramenta `query` é chamável como:726As ferramentas de um servidor MCP incluído em um plugin contêm tanto o nome do plugin quanto a chave do servidor em seu nome chamável. A forma completa é `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`, em que qualquer caractere fora de `A-Z`, `a-z`, `0-9`, `_` e `-` é substituído por `_`. Para o servidor `database-tools` incluído em um plugin chamado `my-plugin`, uma ferramenta `query` pode ser chamada como:

727 727 

728```728```

729mcp__plugin_my-plugin_database-tools__query729mcp__plugin_my-plugin_database-tools__query

730```730```

731 731 

732Use este nome completo ao fazer referência à ferramenta em [regras de permissão](https://code.claude.com/docs/pt/permissions.md), lista `allowed-tools` de uma skill, campo `tools` de um [subagente](https://code.claude.com/docs/pt/sub-agents.md#available-tools), ou [matcher de hook](https://code.claude.com/docs/pt/hooks.md#match-mcp-tools). Um matcher de hook escrito contra a chave do servidor simples, como `mcp__database-tools__.*`, nunca dispara para um servidor agrupado em plugin.732Use esse nome completo ao referenciar a ferramenta em [regras de permissão](https://code.claude.com/docs/pt/permissions.md), na lista `allowed-tools` de uma skill, no [campo `tools` de um subagente](https://code.claude.com/docs/pt/sub-agents#available-tools) ou em um [matcher de hook](https://code.claude.com/docs/pt/hooks.md#match-mcp-tools). Um matcher de hook escrito com base apenas na chave do servidor, como `mcp__database-tools__.*`, nunca é acionado para um servidor incluído em um plugin.

733 733 

734O servidor em si se registra sob o nome com escopo `plugin:<plugin-name>:<server-name>`, como `plugin:my-plugin:database-tools`. Use esse nome onde um nome de servidor configurado é esperado, como um [campo `server` de hook `mcp_tool`](https://code.claude.com/docs/pt/hooks#mcp-tool-hook-fields).734O próprio servidor é registrado com o nome com escopo `plugin:<plugin-name>:<server-name>`, como `plugin:my-plugin:database-tools`. Use esse nome onde se espera o nome de um servidor configurado, como no [campo `server` de um hook `mcp_tool`](https://code.claude.com/docs/pt/hooks#mcp-tool-hook-fields).

735 735 

736Veja a [referência de componentes de plugin](https://code.claude.com/docs/pt/plugins/components.md#mcp-servers) para detalhes sobre agrupamento de servidores MCP com plugins.736Consulte a [referência de componentes de plugins](https://code.claude.com/docs/pt/plugins/components.md#mcp-servers) para obter detalhes sobre como incluir servidores MCP em plugins.

737 737 

738## Escopos de instalação de MCP738## Escopos de instalação de MCP

739 739 


1800* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5 e posteriores**: a busca de ferramentas está ativada por padrão, o mesmo que na API Anthropic.1800* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5 e posteriores**: a busca de ferramentas está ativada por padrão, o mesmo que na API Anthropic.

1801* **Modelos anteriores da Agent Platform**: Claude Code carrega todas as ferramentas MCP antecipadamente, porque suas pilhas de serviço rejeitam o cabeçalho beta necessário. `ENABLE_TOOL_SEARCH=true` não sobrescreve isso.1801* **Modelos anteriores da Agent Platform**: Claude Code carrega todas as ferramentas MCP antecipadamente, porque suas pilhas de serviço rejeitam o cabeçalho beta necessário. `ENABLE_TOOL_SEARCH=true` não sobrescreve isso.

1802 1802 

1803Antes da v2.1.221, Claude Code desativava a busca de ferramentas para todos os modelos na Agent Platform do Google Cloud, a menos que você definisse `ENABLE_TOOL_SEARCH=true`.

1804 

1805Controle o comportamento da busca de ferramentas com a variável de ambiente `ENABLE_TOOL_SEARCH`:1803Controle o comportamento da busca de ferramentas com a variável de ambiente `ENABLE_TOOL_SEARCH`:

1806 1804 

1807| Valor | Comportamento |1805| Valor | Comportamento |

model-config.md +4 −4

Details

71* **Fable 5.2**: execute `/model fable`, ou inicie com `claude --model fable`. Em sessões do [gateway de aplicativos Claude](https://code.claude.com/docs/pt/claude-apps-gateway), execute `/model claude-fable-5-2` em vez disso.71* **Fable 5.2**: execute `/model fable`, ou inicie com `claude --model fable`. Em sessões do [gateway de aplicativos Claude](https://code.claude.com/docs/pt/claude-apps-gateway), execute `/model claude-fable-5-2` em vez disso.

72* **Fable 5.1 ou Fable 5**: selecione-o pelo ID do modelo. Na API Anthropic, execute `/model claude-fable-5-1` ou `/model claude-fable-5`, ou inicie com `claude --model claude-fable-5-1`. Em outros provedores, use o ID do modelo do seu provedor ou [fixe-o](#pin-models-for-third-party-deployments) com `ANTHROPIC_DEFAULT_FABLE_MODEL`.72* **Fable 5.1 ou Fable 5**: selecione-o pelo ID do modelo. Na API Anthropic, execute `/model claude-fable-5-1` ou `/model claude-fable-5`, ou inicie com `claude --model claude-fable-5-1`. Em outros provedores, use o ID do modelo do seu provedor ou [fixe-o](#pin-models-for-third-party-deployments) com `ANTHROPIC_DEFAULT_FABLE_MODEL`.

73 73 

74Nos planos Pro, Max, Team e Enterprise, um modelo `claude-fable-5-1` salvo em suas configurações de usuário passa para o alias `fable`:74Nos planos Pro, Max, Ultra, Team e Enterprise, um modelo `claude-fable-5-1` salvo em suas configurações de usuário passa para o alias `fable`:

75 75 

76* **Plano Pro ou Max**: a mudança acontece na primeira vez que você executa v2.1.321 ou posterior. No terminal, a linha do modelo de inicialização pode mostrar `(auto-updated)` uma vez.76* **Plano Pro, Max ou Ultra**: a mudança acontece na primeira vez que você executa v2.1.321 ou posterior. No terminal, a linha do modelo de inicialização pode mostrar `(auto-updated)` uma vez.

77* **Plano Team ou Enterprise**: a mudança aguarda as configurações da sua organização, então pode ocorrer em uma inicialização posterior, ou não ocorrer. Ela se aplica a partir da próxima sessão, sem a linha `(auto-updated)`. Para verificar seu modelo, execute `/model`.77* **Plano Team ou Enterprise**: a mudança aguarda as configurações da sua organização, então pode ocorrer em uma inicialização posterior, ou não ocorrer. Ela se aplica a partir da próxima sessão, sem a linha `(auto-updated)`. Para verificar seu modelo, execute `/model`.

78 78 

79Após a mudança, as sessões começam no esforço padrão do Fable 5.2, a menos que você tenha [definido um nível](#adjust-effort-level) para ele. Contas do Console, provedores de terceiros e configurações de projeto, locais ou gerenciadas mantêm `claude-fable-5-1`.79Após a mudança, as sessões começam no esforço padrão do Fable 5.2, a menos que você tenha [definido um nível](#adjust-effort-level) para ele. Contas do Console, provedores de terceiros e configurações de projeto, locais ou gerenciadas mantêm `claude-fable-5-1`.


97 97 

98Dependendo do seu plano e nível de assento, o uso de Fable pode ser cobrado em [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) em vez de usar os limites incluídos do seu plano. Quando isso acontece, o seletor `/model` mostra "Requer créditos de uso" na linha Fable. Para gerenciar créditos de uso, consulte [Add usage credits to your subscription](https://code.claude.com/docs/pt/costs.md#add-usage-credits-to-your-subscription).98Dependendo do seu plano e nível de assento, o uso de Fable pode ser cobrado em [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) em vez de usar os limites incluídos do seu plano. Quando isso acontece, o seletor `/model` mostra "Requer créditos de uso" na linha Fable. Para gerenciar créditos de uso, consulte [Add usage credits to your subscription](https://code.claude.com/docs/pt/costs.md#add-usage-credits-to-your-subscription).

99 99 

100Em sessões interativas, Claude Code pode mostrar um prompt de consentimento de créditos de uso do Fable. Membros de planos Enterprise com faturamento da organização não veem o prompt. Você pode continuar em Fable usando créditos de uso ou mudar para seu modelo padrão. Você também pode descartar o prompt:100Em sessões interativas, Claude Code pode mostrar um prompt de consentimento de créditos de uso do Fable. Você pode continuar em Fable usando créditos de uso ou mudar para seu modelo padrão. Você também pode descartar o prompt:

101 101 

102* Quando você seleciona um modelo Fable com `/model`, você mantém seu modelo atual.102* Quando você seleciona um modelo Fable com `/model`, você mantém seu modelo atual.

103* No meio da sessão, Claude Code continua o turno em seu modelo padrão.103* No meio da sessão, Claude Code continua o turno em seu modelo padrão.


225 225 

226* **Você o escolheu para uma sessão.** Pressionar `s` no seletor, iniciar com `--model`, e executar `/model` em modo não interativo se aplicam apenas à sessão atual e deixam seu padrão salvo intacto.226* **Você o escolheu para uma sessão.** Pressionar `s` no seletor, iniciar com `--model`, e executar `/model` em modo não interativo se aplicam apenas à sessão atual e deixam seu padrão salvo intacto.

227* **Algo com prioridade mais alta define o modelo.** Um valor `model` nas configurações de projeto ou gerenciadas, `ANTHROPIC_MODEL` em seu shell, ou um [padrão da organização](#organization-default-model) que seu administrador definiu para sobrescrever as escolhas do usuário se aplica novamente em cada lançamento. Sua escolha `/model` ainda está salva; está sendo superada. Quando as configurações de projeto ou gerenciadas definem o modelo, o cabeçalho de inicialização nomeia o arquivo.227* **Algo com prioridade mais alta define o modelo.** Um valor `model` nas configurações de projeto ou gerenciadas, `ANTHROPIC_MODEL` em seu shell, ou um [padrão da organização](#organization-default-model) que seu administrador definiu para sobrescrever as escolhas do usuário se aplica novamente em cada lançamento. Sua escolha `/model` ainda está salva; está sendo superada. Quando as configurações de projeto ou gerenciadas definem o modelo, o cabeçalho de inicialização nomeia o arquivo.

228* **Claude Code não conseguiu salvar sua escolha.** `/model` escreve `model` em `~/.claude/settings.json`. Se você não conseguir escrever nesse arquivo, por exemplo porque outra ferramenta o gera ou o vincula a uma cópia somente leitura, o modelo que você escolheu dura para a sessão e o próximo lançamento lê o valor antigo. Defina `model` na ferramenta que gera o arquivo, ou torne o arquivo gravável. Consulte [A change you made in Claude Code is lost in new sessions](https://code.claude.com/docs/pt/settings.md#a-change-you-made-in-claude-code-is-lost-in-new-sessions).228* **Claude Code não conseguiu salvar sua escolha.** `/model` escreve `model` em `~/.claude/settings.json`. Se você não conseguir escrever nesse arquivo, por exemplo porque outra ferramenta o gera ou o vincula a uma cópia somente leitura, o modelo que você escolheu dura para a sessão e o próximo lançamento lê o valor antigo. Defina `model` na ferramenta que gera o arquivo, ou torne o arquivo gravável. Consulte [Uma alteração que você fez no Claude Code se perde em novas sessões](https://code.claude.com/docs/pt/settings.md#a-change-you-made-in-claude-code-is-lost-in-new-sessions).

229* **Você retomou uma sessão.** Uma sessão que você retoma com `claude --resume` ou `--continue` geralmente [mantém o modelo que estava usando](#setting-your-model) em vez de seu padrão atual.229* **Você retomou uma sessão.** Uma sessão que você retoma com `claude --resume` ou `--continue` geralmente [mantém o modelo que estava usando](#setting-your-model) em vez de seu padrão atual.

230 230 

231## Restringir seleção de modelo231## Restringir seleção de modelo

Details

146 146 

147### Controle de cardinalidade de métricas147### Controle de cardinalidade de métricas

148 148 

149As seguintes variáveis de ambiente controlam quais atributos são incluídos nas métricas para gerenciar a cardinalidade:149As seguintes variáveis de ambiente controlam quais atributos são incluídos nas métricas e nos eventos para gerenciar a cardinalidade:

150 150 

151| Variável de ambiente | Descrição | Valor padrão | Exemplo para desativar |151| Variável de ambiente | Descrição | Valor padrão | Exemplo para desativar |

152| - | - | - | - |152| - | - | - | - |

153| `OTEL_METRICS_INCLUDE_SESSION_ID` | Inclui os atributos session.id e, em sessões na nuvem, ccr.session.id nas métricas | `true` | `false` |153| `OTEL_METRICS_INCLUDE_SESSION_ID` | Inclui os atributos session.id e, em sessões na nuvem, ccr.session.id nas métricas e nos eventos | `true` | `false` |

154| `OTEL_METRICS_INCLUDE_VERSION` | Inclui o atributo app.version nas métricas | `false` | `true` |154| `OTEL_METRICS_INCLUDE_VERSION` | Inclui o atributo app.version nas métricas e nos eventos | `false` | `true` |

155| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Inclui os atributos user.account\_uuid e user.account\_id nas métricas | `true` | `false` |155| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Inclui os atributos user.account\_uuid e user.account\_id nas métricas e nos eventos | `true` | `false` |

156| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Inclui o atributo app.entrypoint nas métricas | `false` | `true` |156| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Inclui o atributo app.entrypoint nas métricas e nos eventos | `false` | `true` |

157| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | Inclui as chaves de `OTEL_RESOURCE_ATTRIBUTES` como atributos nos pontos de dados de métricas | `true` | `false` |157| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | Inclui as chaves de `OTEL_RESOURCE_ATTRIBUTES` como atributos nos pontos de dados de métricas e nos eventos | `true` | `false` |

158| `OTEL_METRICS_INCLUDE_REPOSITORY` | Inclui os [atributos de identidade do repositório](#repository-attributes) `vcs.*` em métricas e eventos. Requer o Claude Code v2.1.269 ou posterior | `false` | `true` |158| `OTEL_METRICS_INCLUDE_REPOSITORY` | Inclui os [atributos de identidade do repositório](#repository-attributes) `vcs.*` em métricas e eventos. Requer o Claude Code v2.1.269 ou posterior | `false` | `true` |

159 159 

160Uma cardinalidade menor geralmente significa melhor desempenho e menores custos de armazenamento, mas dados menos granulares para análise.160Uma cardinalidade menor geralmente significa melhor desempenho e menores custos de armazenamento, mas dados menos granulares para análise.


523export OTEL_METRICS_EXPORTER=otlp523export OTEL_METRICS_EXPORTER=otlp

524export OTEL_LOGS_EXPORTER=otlp524export OTEL_LOGS_EXPORTER=otlp

525export OTEL_EXPORTER_OTLP_METRICS_PROTOCOL=http/protobuf525export OTEL_EXPORTER_OTLP_METRICS_PROTOCOL=http/protobuf

526export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://metrics.example.com:4318526export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://metrics.example.com:4318/v1/metrics

527export OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=grpc527export OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=grpc

528export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=http://logs.example.com:4317528export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=http://logs.example.com:4317

529```529```


571 571 

572Para atribuir telemetria em mais detalhes, use estas opções:572Para atribuir telemetria em mais detalhes, use estas opções:

573 573 

574* **Identificar sessões Claude Tag**: defina `OTEL_METRICS_INCLUDE_ENTRYPOINT=true`, conforme descrito em [Controle de cardinalidade de métricas](#metrics-cardinality-control). As métricas então carregam `app.entrypoint`, cujo valor é `claude-in-slack` para sessões Claude Tag.574* **Identificar sessões Claude Tag**: defina `OTEL_METRICS_INCLUDE_ENTRYPOINT=true`, conforme descrito em [Controle de cardinalidade de métricas](#metrics-cardinality-control). As métricas e os eventos então carregam `app.entrypoint`, cujo valor é `claude-in-slack` para sessões Claude Tag.

575* **Adicionar atributos personalizados**: defina [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) no mesmo local onde você define as outras variáveis `OTEL_*` para essas sessões. Se você `export` no [script de configuração](https://code.claude.com/docs/pt/cloud-environments.md#setup-scripts) do ambiente, o valor não alcança Claude Code: o script de configuração é um script Bash separado que é executado antes do Claude Code ser iniciado, e as variáveis que ele exporta terminam com ele.575* **Adicionar atributos personalizados**: defina [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) no mesmo local onde você define as outras variáveis `OTEL_*` para essas sessões. Se você `export` no [script de configuração](https://code.claude.com/docs/pt/cloud-environments.md#setup-scripts) do ambiente, o valor não alcança Claude Code: o script de configuração é um script Bash separado que é executado antes do Claude Code ser iniciado, e as variáveis que ele exporta terminam com ele.

576 576 

577Em sessões do canal Claude Tag, Claude funciona como a [identidade compartilhada](https://code.claude.com/docs/pt/cloud-environments.md#set-the-environment-a-claude-tag-channel-uses) da sua organização em vez de qualquer membro, portanto não confie nos atributos `user.*` para identificar quem marcou Claude.577Em sessões do canal Claude Tag, Claude funciona como a [identidade compartilhada](https://code.claude.com/docs/pt/cloud-environments.md#set-the-environment-a-claude-tag-channel-uses) da sua organização em vez de qualquer membro, portanto não confie nos atributos `user.*` para identificar quem marcou Claude.


587| `session.id` | O próprio ID de sessão do Claude Code, que `/clear` substitui | `OTEL_METRICS_INCLUDE_SESSION_ID` (padrão: true) |587| `session.id` | O próprio ID de sessão do Claude Code, que `/clear` substitui | `OTEL_METRICS_INCLUDE_SESSION_ID` (padrão: true) |

588| `ccr.session.id` | Identificador da sessão na nuvem, o valor de `CLAUDE_CODE_REMOTE_SESSION_ID`, em sessões executadas em um [ambiente de nuvem](https://code.claude.com/docs/pt/cloud-environments.md) | `OTEL_METRICS_INCLUDE_SESSION_ID` (padrão: true) |588| `ccr.session.id` | Identificador da sessão na nuvem, o valor de `CLAUDE_CODE_REMOTE_SESSION_ID`, em sessões executadas em um [ambiente de nuvem](https://code.claude.com/docs/pt/cloud-environments.md) | `OTEL_METRICS_INCLUDE_SESSION_ID` (padrão: true) |

589| `app.version` | Versão atual do Claude Code | `OTEL_METRICS_INCLUDE_VERSION` (padrão: false) |589| `app.version` | Versão atual do Claude Code | `OTEL_METRICS_INCLUDE_VERSION` (padrão: false) |

590| `app.entrypoint` | Como a sessão foi iniciada, como `cli`, `sdk-cli`, `sdk-ts`, `sdk-py`, `claude-vscode` ou `claude-in-slack` para sessões do Claude Tag | `OTEL_METRICS_INCLUDE_ENTRYPOINT` (padrão: false) |590| `app.entrypoint` | Como a sessão foi iniciada, como `cli`, `sdk-cli`, `sdk-ts`, `sdk-py`, `claude-vscode`, `claude-desktop` para sessões da aba Code do Claude Desktop fora da nuvem, `claude-desktop-3p` para as mesmas sessões em uma [implantação de terceiros](https://claude.com/docs/third-party/claude-desktop/overview), ou `claude-in-slack` para sessões do Claude Tag. Os valores de sessões na nuvem incluem `remote`, além de `remote_desktop` e `remote_mobile` para sessões que você inicia no Claude Desktop ou no aplicativo móvel | `OTEL_METRICS_INCLUDE_ENTRYPOINT` (padrão: false) |

591| `organization.id` | UUID da organização (quando autenticado) | Sempre incluído quando disponível |591| `organization.id` | UUID da organização (quando autenticado) | Sempre incluído quando disponível |

592| `user.account_uuid` | UUID da conta (quando autenticado) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (padrão: true) |592| `user.account_uuid` | UUID da conta (quando autenticado) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (padrão: true) |

593| `user.account_id` | ID da conta no formato com tag correspondente às APIs de administração da Anthropic (quando autenticado), como `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (padrão: true) |593| `user.account_id` | ID da conta no formato com tag correspondente às APIs de administração da Anthropic (quando autenticado), como `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (padrão: true) |


643 643 

644| Nome da métrica | Descrição | Unidade |644| Nome da métrica | Descrição | Unidade |

645| - | - | - |645| - | - | - |

646| `claude_code.session.count` | Contagem de sessões da CLI iniciadas | nenhuma |646| `claude_code.session.count` | Contagem de sessões iniciadas | nenhuma |

647| `claude_code.lines_of_code.count` | Contagem de linhas de código modificadas | nenhuma |647| `claude_code.lines_of_code.count` | Contagem de linhas de código modificadas | nenhuma |

648| `claude_code.pull_request.count` | Número de pull requests criados | nenhuma |648| `claude_code.pull_request.count` | Número de pull requests criados | nenhuma |

649| `claude_code.commit.count` | Número de commits do git criados | nenhuma |649| `claude_code.commit.count` | Número de commits do git criados | nenhuma |


660 660 

661#### Contador de sessões661#### Contador de sessões

662 662 

663Incrementado no início de cada sessão.663Incrementado no início de cada sessão. Para contar pessoas em vez disso, consulte [Monitoramento de uso](#usage-monitoring).

664 664 

665**Atributos**:665**Atributos**:

666 666 


1458 1458 

1459Como todos os eventos OTel desta página, ele vai apenas para o backend de telemetria que você configurar. Requer Claude Code v2.1.227 ou posterior.1459Como todos os eventos OTel desta página, ele vai apenas para o backend de telemetria que você configurar. Requer Claude Code v2.1.227 ou posterior.

1460 1460 

1461Quando o Claude Code não consegue determinar com segurança o período de retenção, ele pausa a varredura e emite o evento com `result` definido como `"skipped"` e um `skip_reason`. Quando as [configurações gerenciadas](https://code.claude.com/docs/pt/server-managed-settings.md) definem `cleanupPeriodDays`, o valor gerenciado fixa o período de retenção e a varredura é executada mesmo quando um arquivo de configurações em um escopo de prioridade mais baixa está corrompido ou inválido. Quando o próprio `managed-settings.json` não pode ser lido, o Claude Code ainda pausa a varredura, a menos que o [nível gerenciado](https://code.claude.com/docs/pt/managed-settings.md#how-claude-code-combines-managed-sources) forneça `cleanupPeriodDays` de outro lugar, como configurações gerenciadas pelo servidor ou um arquivo drop-in `managed-settings.d/` ao lado do arquivo corrompido. Os atributos de contagem de exclusões estão presentes somente quando `result` é `"complete"`.1461Leia `result` para ver se a varredura foi executada:

1462 

1463* `"complete"`: a varredura foi executada, e o evento traz suas contagens

1464* `"skipped"`: o Claude Code não conseguiu determinar com segurança o período de retenção, então pausou a varredura e o evento não traz contagens. Se `skip_reason` for `"settings_unknowable"` ou `"settings_invalid_key_set"`, corrija o erro de configurações que o `/status` reporta nessa máquina para que uma sessão posterior possa executar a varredura

1465 

1466Quando as [configurações gerenciadas](https://code.claude.com/docs/pt/server-managed-settings.md) definem `cleanupPeriodDays`, o valor gerenciado fixa o período de retenção e a varredura é executada mesmo quando um arquivo de configurações em um escopo de menor prioridade está corrompido ou inválido.

1462 1467 

1463**Nome do evento**: `claude_code.retention_sweep`1468**Nome do evento**: `claude_code.retention_sweep`

1464 1469 


1469* `event.timestamp`: timestamp ISO 86011474* `event.timestamp`: timestamp ISO 8601

1470* `event.sequence`: contador por processo para ordenar eventos, descrito em [Atributos de correlação de eventos](#event-correlation-attributes)1475* `event.sequence`: contador por processo para ordenar eventos, descrito em [Atributos de correlação de eventos](#event-correlation-attributes)

1471* `result`: `"complete"` quando a varredura foi executada, `"skipped"` quando o Claude Code a pausou1476* `result`: `"complete"` quando a varredura foi executada, `"skipped"` quando o Claude Code a pausou

1472* `period_days`: O valor de `cleanupPeriodDays` das configurações mescladas, em dias, ou `30` quando nenhuma fonte o define. Em eventos ignorados, o valor que a varredura teria usado, calculado a partir das fontes de configurações que o Claude Code conseguiu ler1477* `period_days`: O período de retenção com que a varredura começou, em dias: `cleanupPeriodDays` das configurações mescladas, com qualquer alteração de um [hook `settings.read`](https://code.claude.com/docs/pt/plugins/mods/events#settings-read-hook) aplicada. `30` quando isso deixa a chave indefinida. Em eventos ignorados, o valor que a varredura teria usado, calculado a partir das origens de configurações que o Claude Code conseguiu ler

1473* `used_default`: `"true"` quando nenhuma fonte de configurações legível define `cleanupPeriodDays`, `"false"` caso contrário. Em eventos concluídos, `"true"` significa que o padrão de 30 dias foi aplicado1478* `used_default`: `"true"` quando `period_days` recorreu a `30`, `"false"` caso contrário. Em eventos concluídos, `"true"` significa que o padrão de 30 dias foi aplicado

1474* `skip_reason`: Por que o Claude Code pausou a varredura. Presente apenas quando `result` é `"skipped"`:1479* `skip_reason`: Por que o Claude Code pausou a varredura. Presente apenas quando `result` é `"skipped"`:

1475 * `"user_source_disabled"`: As configurações do usuário estão excluídas, por exemplo pela flag [`--setting-sources`](https://code.claude.com/docs/pt/cli-reference#cli-flags) ou pela opção [`settingSources`](https://code.claude.com/docs/pt/agent-sdk/typescript#options) do SDK, e nenhuma origem habilitada fornece `cleanupPeriodDays`1480 * `"user_source_disabled"`: As configurações do usuário estão excluídas, por exemplo pela flag [`--setting-sources`](https://code.claude.com/docs/pt/cli-reference#cli-flags) ou pela opção [`settingSources`](https://code.claude.com/docs/pt/agent-sdk/typescript#options) do SDK, e nenhuma origem habilitada fornece `cleanupPeriodDays`

1476 * `"settings_unknowable"`: Um arquivo de configurações não pôde ser lido ou analisado, portanto `cleanupPeriodDays` ou `desktopSessionCleanupPeriodDays` pode estar definido com um valor que o Claude Code não consegue ver1481 * `"settings_unknowable"`: Um arquivo de configurações não pôde ser lido ou analisado, portanto `cleanupPeriodDays` ou `desktopSessionCleanupPeriodDays` pode estar definido com um valor que o Claude Code não consegue ver


1549| Métrica | Oportunidade de Análise |1554| Métrica | Oportunidade de Análise |

1550| - | - |1555| - | - |

1551| `claude_code.token.usage` | Dividir por [`type`](#token-counter) de token, usuário, equipe, modelo, `skill.name`, `plugin.name` ou `agent.name` |1556| `claude_code.token.usage` | Dividir por [`type`](#token-counter) de token, usuário, equipe, modelo, `skill.name`, `plugin.name` ou `agent.name` |

1552| `claude_code.session.count` | Rastrear adoção e engajamento ao longo do tempo |

1553| `claude_code.lines_of_code.count` | Medir produtividade rastreando adições e remoções de código, dividido por modelo |1557| `claude_code.lines_of_code.count` | Medir produtividade rastreando adições e remoções de código, dividido por modelo |

1554| `claude_code.commit.count` & `claude_code.pull_request.count` | Entender o impacto nos fluxos de trabalho de desenvolvimento |1558| `claude_code.commit.count` & `claude_code.pull_request.count` | Entender o impacto nos fluxos de trabalho de desenvolvimento |

1555 1559 

1560Para comparar usuários ativos entre superfícies, defina `OTEL_METRICS_INCLUDE_ENTRYPOINT=true` para adicionar [`app.entrypoint`](#standard-attributes) às métricas e eventos. Em seguida, conte os valores distintos de `user.account_uuid` por entrypoint nos eventos [`claude_code.user_prompt`](#user-prompt-event), ou em `claude_code.token.usage` se você exportar apenas métricas. Por exemplo, use `cli` para sessões interativas da CLI e agrupe `claude-desktop`, `claude-desktop-3p` e `remote_desktop` para a aba Code do Claude Desktop.

1561 

1562`user.account_uuid` não identifica pessoas em sessões de canal do Claude Tag e está ausente em sessões sem uma conta Claude: consulte [Atribuir ações a usuários](#attribute-actions-to-users). Quando uma pessoa inicia muitas sessões, ou uma sessão não recebe nenhum prompt, [`claude_code.session.count`](#session-counter) aumenta sem adicionar um usuário ativo.

1563 

1556### Monitoramento de custo1564### Monitoramento de custo

1557 1565 

1558A métrica `claude_code.cost.usage` ajuda com:1566A métrica `claude_code.cost.usage` ajuda com:


1783## Segurança e privacidade1791## Segurança e privacidade

1784 1792 

1785* A exportação do OpenTelemetry para o seu backend é opcional e requer configuração explícita. Para a telemetria operacional separada da Anthropic e como desativá-la, consulte [Uso de dados](https://code.claude.com/docs/pt/data-usage.md#telemetry-services)1793* A exportação do OpenTelemetry para o seu backend é opcional e requer configuração explícita. Para a telemetria operacional separada da Anthropic e como desativá-la, consulte [Uso de dados](https://code.claude.com/docs/pt/data-usage.md#telemetry-services)

1786* O conteúdo bruto de arquivos e trechos de código não são incluídos em métricas ou eventos. Os spans de trace são um caminho de dados separado: consulte o item sobre `OTEL_LOG_TOOL_CONTENT` abaixo1794* Por padrão, o conteúdo bruto de arquivos e trechos de código não são incluídos em métricas ou eventos. Se você definir uma variável como `OTEL_LOG_TOOL_DETAILS` ou `OTEL_LOG_RAW_API_BODIES`, os eventos podem incluí-los. Os spans de trace são um caminho de dados separado: consulte o item sobre `OTEL_LOG_TOOL_CONTENT` abaixo

1787* Quando autenticado via OAuth, `user.email` é incluído nos atributos de telemetria, enviado apenas para o endpoint OTel que você configurar, nunca para a Anthropic. Se isso for uma preocupação para a sua organização, trabalhe com o seu backend de telemetria para filtrar ou ocultar esse campo1795* Quando autenticado via OAuth, `user.email` é incluído nos atributos de telemetria, enviado apenas para o endpoint OTel que você configurar, nunca para a Anthropic. Se isso for uma preocupação para a sua organização, trabalhe com o seu backend de telemetria para filtrar ou ocultar esse campo

1788* O conteúdo dos prompts do usuário não é coletado por padrão. Apenas o comprimento do prompt é registrado. Para incluir o conteúdo do prompt, defina `OTEL_LOG_USER_PROMPTS=1`. Quando ativado:1796* O conteúdo dos prompts do usuário não é coletado por padrão. Apenas o comprimento do prompt é registrado. Para incluir o conteúdo do prompt, defina `OTEL_LOG_USER_PROMPTS=1`. Quando ativado:

1789 * Os eventos `user_prompt` carregam o texto do prompt em dois atributos, `prompt` e [`prompt_text`](#user-prompt-event). Se você descartar ou mascarar o texto do prompt do evento pelo nome do atributo no seu coletor, nomeie ambos os atributos na regra1797 * Os eventos `user_prompt` carregam o texto do prompt em dois atributos, `prompt` e [`prompt_text`](#user-prompt-event). Se você descartar ou mascarar o texto do prompt do evento pelo nome do atributo no seu coletor, nomeie ambos os atributos na regra

Details

686* **Se você aceitar**: Claude Code define `skipDangerousModePermissionPrompt` como `true` em `~/.claude/settings.json`, para que sessões posteriores ignorem o diálogo. Para ver o diálogo novamente, remova a chave desse arquivo ou defina-a como `false`. A [referência `skipDangerousModePermissionPrompt`](https://code.claude.com/docs/pt/settings-reference#skipdangerousmodepermissionprompt) lista os outros arquivos de configurações onde você ou sua organização podem defini-la.686* **Se você aceitar**: Claude Code define `skipDangerousModePermissionPrompt` como `true` em `~/.claude/settings.json`, para que sessões posteriores ignorem o diálogo. Para ver o diálogo novamente, remova a chave desse arquivo ou defina-a como `false`. A [referência `skipDangerousModePermissionPrompt`](https://code.claude.com/docs/pt/settings-reference#skipdangerousmodepermissionprompt) lista os outros arquivos de configurações onde você ou sua organização podem defini-la.

687* **Se você recusar**: Claude Code sai.687* **Se você recusar**: Claude Code sai.

688 688 

689Se você passar [`--setting-sources`](https://code.claude.com/docs/pt/cli-reference#cli-flags) sem `user`, o diálogo pode aparecer novamente, embora você o tenha aceitado antes. Para ignorá-lo, adicione `user`, como em `--setting-sources user,project`.

690 

689Em [modo não interativo](https://code.claude.com/docs/pt/headless.md) nenhum diálogo é mostrado.691Em [modo não interativo](https://code.claude.com/docs/pt/headless.md) nenhum diálogo é mostrado.

690 692 

691Uma [sessão em segundo plano](https://code.claude.com/docs/pt/agent-view.md) respeita sua aceitação quando ela está registrada nas configurações de usuário ou nas configurações gerenciadas:693Uma [sessão em segundo plano](https://code.claude.com/docs/pt/agent-view.md) respeita sua aceitação quando ela está registrada nas configurações de usuário ou nas configurações gerenciadas:

permissions.md +5 −3

Details

578* `mcp__puppeteer__*` usa sintaxe com caracteres curinga e também corresponde a todas as ferramentas do servidor `puppeteer`578* `mcp__puppeteer__*` usa sintaxe com caracteres curinga e também corresponde a todas as ferramentas do servidor `puppeteer`

579* `mcp__puppeteer__puppeteer_navigate` corresponde à ferramenta `puppeteer_navigate` fornecida pelo servidor `puppeteer`579* `mcp__puppeteer__puppeteer_navigate` corresponde à ferramenta `puppeteer_navigate` fornecida pelo servidor `puppeteer`

580 580 

581Escreva regras allow para ferramentas MCP sem um [especificador](#use-specifiers-for-fine-grained-control), que uma [atualização de permissão](https://code.claude.com/docs/pt/hooks.md#permission-update-entries) chama de `ruleContent`. Se você adicionar um para permitir apenas algumas das chamadas de uma ferramenta, a regra não corresponde a nenhuma chamada. Para bloquear algumas chamadas em vez disso, veja [Corresponder por parâmetro de entrada](#match-by-input-parameter).

582 

581Para `<server>`, escreva o nome do servidor da forma como ele aparece nos nomes das ferramentas desse servidor. Estes exemplos mostram a regra a escrever para um nome com caracteres especiais, um servidor de um plugin e um nome que contém `__` ou termina em `_`:583Para `<server>`, escreva o nome do servidor da forma como ele aparece nos nomes das ferramentas desse servidor. Estes exemplos mostram a regra a escrever para um nome com caracteres especiais, um servidor de um plugin e um nome que contém `__` ou termina em `_`:

582 584 

583* **Nomes com caracteres como `.` ou espaços**: esses caracteres se tornam `_`, portanto para um servidor que você configurou como `my.server`, escreva `mcp__my_server__*`585* **Nomes com caracteres como `.` ou espaços**: esses caracteres se tornam `_`, portanto para um servidor que você configurou como `my.server`, escreva `mcp__my_server__*`


632 634 

633As decisões do hook PreToolUse não contornam as regras de permissão. Claude Code avalia regras deny e ask independentemente do que um hook PreToolUse retorna: uma regra deny correspondente bloqueia a chamada, e uma regra ask correspondente ainda solicita mesmo quando o hook retornou `"allow"` ou `"ask"`. Isto preserva a precedência deny-first descrita em [Gerenciar permissões](#manage-permissions), incluindo regras deny definidas em configurações gerenciadas.635As decisões do hook PreToolUse não contornam as regras de permissão. Claude Code avalia regras deny e ask independentemente do que um hook PreToolUse retorna: uma regra deny correspondente bloqueia a chamada, e uma regra ask correspondente ainda solicita mesmo quando o hook retornou `"allow"` ou `"ask"`. Isto preserva a precedência deny-first descrita em [Gerenciar permissões](#manage-permissions), incluindo regras deny definidas em configurações gerenciadas.

634 636 

635Essa precedência cobre hooks em arquivos de configuração e no `hooks/hooks.json` de um plugin. Um [mod](https://code.claude.com/docs/pt/plugins/mods/overview.md) que você instala e que trata o evento [`tool.check`](https://code.claude.com/docs/pt/plugins/mods/events#approve-or-refuse-a-tool-call-before-the-user-is-asked) dá sua resposta depois que os hooks `PreToolUse` foram executados. Com [configurações gerenciadas](https://code.claude.com/docs/pt/settings.md#check-what-your-organization-enforces) na máquina, ou um [`/login`](https://code.claude.com/docs/pt/authentication#authentication-precedence) Team ou Enterprise como credencial da sessão, estes resultados se mantêm por padrão quando o mod aprova uma chamada:637Essa precedência cobre hooks em arquivos de configuração e no `hooks/hooks.json` de um plugin. Um [mod](https://code.claude.com/docs/pt/plugins/mods/overview.md) que você instala e que trata o evento [`tool.check`](https://code.claude.com/docs/pt/plugins/mods/events#approve-or-refuse-a-tool-call-before-the-user-is-asked) dá sua resposta depois que os hooks `PreToolUse` foram executados. Com [configurações gerenciadas](https://code.claude.com/docs/pt/settings.md#check-what-your-organization-enforces) ou um [arquivo `managed-mcp.json`](https://code.claude.com/docs/pt/managed-mcp#deploy-managed-mcp-json), ou um [`/login`](https://code.claude.com/docs/pt/authentication#authentication-precedence) Team ou Enterprise como credencial da sessão, estes resultados se mantêm por padrão quando o mod aprova uma chamada:

636 638 

637* Uma chamada que uma regra deny recusa continua recusada, e sua organização pode alterar isso.639* Uma chamada que uma regra deny recusa continua recusada.

638* Uma chamada para a qual uma regra ask solicitaria confirmação ainda solicita sua confirmação.640* Uma chamada para a qual uma regra ask solicitaria confirmação ainda solicita sua confirmação.

639* Uma chamada para a qual um hook `PreToolUse` ou [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) solicitaria confirmação ainda solicita sua confirmação.641* Uma chamada para a qual um hook `PreToolUse` ou [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) solicitaria confirmação ainda solicita sua confirmação.

640* Uma chamada que um hook `PreToolUse` bloqueou continua bloqueada, independentemente do arquivo de configuração de onde o hook vem.642* Uma chamada que um hook `PreToolUse` bloqueou continua bloqueada, independentemente do arquivo de configuração de onde o hook vem.

641* Uma chamada sobre a qual sua [`--permission-prompt-tool`](https://code.claude.com/docs/pt/cli-reference#cli-flags) ou o [callback `canUseTool`](https://code.claude.com/docs/pt/agent-sdk/user-input#handle-tool-approval-requests) do Agent SDK seria consultado ainda é submetida a essa ferramenta ou callback.643* Uma chamada sobre a qual sua [`--permission-prompt-tool`](https://code.claude.com/docs/pt/cli-reference#cli-flags) ou o [callback `canUseTool`](https://code.claude.com/docs/pt/agent-sdk/user-input#handle-tool-approval-requests) do Agent SDK seria consultado ainda é submetida a essa ferramenta ou callback.

642 644 

643Sem configurações gerenciadas e sem um `/login` Team ou Enterprise como credencial da sessão, o mod pode aprovar uma chamada que uma regra deny recusa ou que um hook `PreToolUse` bloqueou. Uma sessão que é executada com uma chave de API ou um [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/pt/authentication#generate-a-long-lived-token) de longa duração não está usando esse login, mesmo quando esse login está armazenado.645Sua configuração pode não incluir configurações gerenciadas, um arquivo `managed-mcp.json` nem um `/login` Team ou Enterprise como credencial da sessão. Nessa configuração, o mod pode aprovar uma chamada que uma regra deny recusa ou que um hook `PreToolUse` bloqueou. Uma sessão que é executada com uma chave de API ou um [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/pt/authentication#generate-a-long-lived-token) de longa duração não está usando esse login, mesmo quando esse login está armazenado.

644 646 

645Nessa configuração, você não recebe um prompt quando o mod aprova uma chamada para a qual uma regra ask, um hook `PreToolUse` ou `permissions.blockReadsOutsideWorkingDirectories` solicitaria confirmação. Sua `--permission-prompt-tool` ou seu callback `canUseTool` também não é consultado sobre uma chamada que o mod aprova. O modo auto, o modo de planejamento e o modo `dontAsk` adicionam, cada um, um resultado próprio em qualquer configuração:647Nessa configuração, você não recebe um prompt quando o mod aprova uma chamada para a qual uma regra ask, um hook `PreToolUse` ou `permissions.blockReadsOutsideWorkingDirectories` solicitaria confirmação. Sua `--permission-prompt-tool` ou seu callback `canUseTool` também não é consultado sobre uma chamada que o mod aprova. O modo auto, o modo de planejamento e o modo `dontAsk` adicionam, cada um, um resultado próprio em qualquer configuração:

646 648 

Details

94* **stdin ou stdout não é um TTY, e você não passa `-y` nem `--accept-command`**: a instalação é recusada. A saída diz que o comando foi apenas exibido, e o código de saída é `1`94* **stdin ou stdout não é um TTY, e você não passa `-y` nem `--accept-command`**: a instalação é recusada. A saída diz que o comando foi apenas exibido, e o código de saída é `1`

95* **Claude executa o comando através de sua ferramenta Bash**: `-y` é ignorado. Execute o comando do seu próprio terminal95* **Claude executa o comando através de sua ferramenta Bash**: `-y` é ignorado. Execute o comando do seu próprio terminal

96 96 

97Instale um plugin para todos que clonam o projeto:97Para compartilhar um plugin com todos que clonam o projeto, execute `claude plugin install` com `--scope project` e faça commit de `.claude/settings.json`. Em seguida, peça para cada pessoa [adicionar o marketplace](https://code.claude.com/docs/pt/plugins/install.md#add-a-marketplace) e [executar o mesmo comando](https://code.claude.com/docs/pt/plugins/loading.md#enabled-in-project-settings-but-not-installed) em seu próprio clone:

98 98 

99```bash theme={null}99```bash theme={null}

100claude plugin install formatter@my-marketplace --scope project100claude plugin install formatter@my-marketplace --scope project


333| `notes` | array of strings | Avisos que não são erros de carregamento, como problemas de autoria ou [pacotes que não estão instalados](https://code.claude.com/docs/pt/plugins/loading.md#when-the-dependency-install-fails-or-is-skipped) |333| `notes` | array of strings | Avisos que não são erros de carregamento, como problemas de autoria ou [pacotes que não estão instalados](https://code.claude.com/docs/pt/plugins/loading.md#when-the-dependency-install-fails-or-is-skipped) |

334| `errorDetails` | array of objects | Um objeto por entrada `errors`, fornecendo seu `type` de diagnóstico e os nomes aos quais se refere, como o plugin, marketplace, servidor ou arquivo. Requer Claude Code v2.1.268 ou posterior |334| `errorDetails` | array of objects | Um objeto por entrada `errors`, fornecendo seu `type` de diagnóstico e os nomes aos quais se refere, como o plugin, marketplace, servidor ou arquivo. Requer Claude Code v2.1.268 ou posterior |

335| `noteDetails` | array of objects | Os mesmos objetos de detalhe para cada entrada `notes`. Requer Claude Code v2.1.268 ou posterior |335| `noteDetails` | array of objects | Os mesmos objetos de detalhe para cada entrada `notes`. Requer Claude Code v2.1.268 ou posterior |

336| `hasUserConfig` | boolean | Presente e `true` quando o plugin carregou e seu manifesto declara opções [`userConfig`](https://code.claude.com/docs/pt/plugins/manifest-reference#user-configuration). Ausente para um plugin que falhou ao carregar, qualquer que seja seu manifesto declare. Valores salvos nunca são incluídos. Requer Claude Code v2.1.285 ou posterior |336| `hasUserConfig` | boolean | Presente e `true` quando o plugin carregou e seu manifesto declara opções [`userConfig`](https://code.claude.com/docs/pt/plugins/manifest-reference#user-configuration). Ausente para um plugin que falhou ao carregar, qualquer que seja seu manifesto declare. Requer Claude Code v2.1.285 ou posterior |

337| `projectEnabled` | boolean | Se o `.claude/settings.json` compartilhado do projeto ativa o plugin. Apenas installs de marketplace. Requer Claude Code v2.1.285 ou posterior |337| `projectEnabled` | boolean | Se o `.claude/settings.json` compartilhado do projeto ativa o plugin. Apenas installs de marketplace. Requer Claude Code v2.1.285 ou posterior |

338| `dataDirSize` | object | Com `--data-size`, o tamanho do [diretório de dados salvos](#what-an-uninstall-deletes-and-keeps) do plugin como `bytes` e `human`; ausente quando o diretório está faltando ou vazio. Apenas installs de marketplace. Requer Claude Code v2.1.285 ou posterior |338| `dataDirSize` | object | Com `--data-size`, o tamanho do [diretório de dados salvos](#what-an-uninstall-deletes-and-keeps) do plugin como `bytes` e `human`; ausente quando o diretório está faltando ou vazio. Apenas installs de marketplace. Requer Claude Code v2.1.285 ou posterior |

339| `dataDirUnreadable` | boolean | Com `--data-size`, `true` quando o diretório de dados salvos existe mas não conseguiu ser medido. Apenas installs de marketplace. Requer Claude Code v2.1.285 ou posterior |339| `dataDirUnreadable` | boolean | Com `--data-size`, `true` quando o diretório de dados salvos existe mas não conseguiu ser medido. Apenas installs de marketplace. Requer Claude Code v2.1.285 ou posterior |

Details

169 169 

170### Carregar um plugin para uma sessão170### Carregar um plugin para uma sessão

171 171 

172Você pode carregar um plugin para uma única sessão de três maneiras: de um diretório ou arquivo `.zip` no disco com `--plugin-dir`, de uma URL com `--plugin-url`, ou de uma variável de ambiente quando você não pode adicionar uma flag. Cada plugin carrega apenas para essa sessão, e nada é escrito em suas configurações para ele. Quando você edita os arquivos do plugin durante a sessão, execute `/reload-plugins` para carregar as alterações.172Você pode carregar um plugin para uma única sessão de três maneiras:

173 

174* De um diretório ou arquivo `.zip` no disco com `--plugin-dir`

175* De uma URL com `--plugin-url`

176* De uma variável de ambiente quando você não pode adicionar uma flag

177 

178Quando você edita os arquivos do plugin durante a sessão, execute `/reload-plugins` para carregar as alterações.

173 179 

174#### Carregar um plugin de um diretório ou `.zip`180#### Carregar um plugin de um diretório ou `.zip`

175 181 

Details

123 123 

124Estas entry sources não precisam de conta git:124Estas entry sources não precisam de conta git:

125 125 

126* **`archive`**: um zip baixado sobre HTTPS. Os usuários não precisam de `git` nem de uma conta, apenas acesso de rede à URL. Requer Claude Code v2.1.224 ou posterior. Fixe cada archive com `sha256` para que Claude Code recuse um download alterado. Para enviar credenciais com o download, veja [Authenticate archive downloads](#authenticate-archive-downloads).126* **`archive`**: um zip baixado sobre HTTPS. Os usuários não precisam de `git` nem de uma conta, apenas acesso de rede à URL. Fixe cada archive com `sha256` para que Claude Code recuse um download alterado. Para enviar credenciais com o download, veja [Authenticate archive downloads](#authenticate-archive-downloads).

127* **Um repositório git público**: Claude Code clona um source `url` ou `git-subdir` público sobre HTTPS sem credenciais quando a entrada fornece uma URL `https://`. Para um source `github` ou um source `git-subdir` escrito como `owner/repo`, diga aos usuários sem uma chave SSH do GitHub para definir `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`.127* **Um repositório git público**: Claude Code clona um source `url` ou `git-subdir` público sobre HTTPS sem credenciais quando a entrada fornece uma URL `https://`. Para um source `github` ou um source `git-subdir` escrito como `owner/repo`, diga aos usuários sem uma chave SSH do GitHub para definir `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`.

128 128 

129Mantenha `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1` em suas instruções mesmo que `claude plugin install` funcione sem ela a partir do shell em uma máquina sem chave SSH. Para um source `github`, esse comando pode recorrer ao HTTPS por conta própria, imprimindo `SSH not configured, cloning via HTTPS`. Instalações a partir de `/plugin` dentro de uma sessão e atualizações de plugin não recorrem ao HTTPS, então, sem a variável, elas falham para usuários que não têm chave SSH do GitHub.129Mantenha `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1` em suas instruções mesmo que `claude plugin install` funcione sem ela a partir do shell em uma máquina sem chave SSH. Para um source `github`, esse comando pode recorrer ao HTTPS por conta própria, imprimindo `SSH not configured, cloning via HTTPS`. Instalações a partir de `/plugin` dentro de uma sessão e atualizações de plugin não recorrem ao HTTPS, então, sem a variável, elas falham para usuários que não têm chave SSH do GitHub.

Details

132O escopo de instalação de um plugin decide quem obtém o plugin e qual arquivo de configurações o registra como habilitado:132O escopo de instalação de um plugin decide quem obtém o plugin e qual arquivo de configurações o registra como habilitado:

133 133 

134* **User scope**: o plugin é habilitado para você em cada projeto nesta máquina. A entrada vai em `enabledPlugins` em `~/.claude/settings.json`.134* **User scope**: o plugin é habilitado para você em cada projeto nesta máquina. A entrada vai em `enabledPlugins` em `~/.claude/settings.json`.

135* **Project scope**: o plugin é habilitado para todos que trabalham neste repositório. A entrada vai em `.claude/settings.json`, que você faz commit. Fazer commit dessa entrada ativa o plugin para seus colaboradores, mas não o baixa para suas máquinas, então cada colaborador também executa `claude plugin install <name>@<marketplace> --scope project` uma vez; veja [Habilitado nas configurações do projeto mas não instalado](https://code.claude.com/docs/pt/plugins/loading.md#enabled-in-project-settings-but-not-installed).135* **Project scope**: o plugin é habilitado para todos que trabalham neste repositório. A entrada vai em `.claude/settings.json`, que você faz commit. Fazer commit dessa entrada ativa o plugin para seus colaboradores, mas não o baixa para suas máquinas. Cada colaborador também executa `claude plugin install <name>@<marketplace> --scope project` uma vez por clone; veja [Habilitado nas configurações do projeto mas não instalado](https://code.claude.com/docs/pt/plugins/loading.md#enabled-in-project-settings-but-not-installed).

136* **Local scope**: o plugin é habilitado para você apenas neste repositório. A entrada vai em `.claude/settings.local.json`.136* **Local scope**: o plugin é habilitado para você apenas neste repositório. A entrada vai em `.claude/settings.local.json`.

137 137 

138Alguns plugins são definidos por seu autor para começar desligados, através do campo [`defaultEnabled`](https://code.claude.com/docs/pt/plugins/manifest-reference#defaultenabled). Tal plugin é instalado mas permanece desligado até que você o ative com `claude plugin enable <name>` no seu shell, ou na aba **Installed** de `/plugin` em uma sessão.138Alguns plugins são definidos por seu autor para começar desligados, através do campo [`defaultEnabled`](https://code.claude.com/docs/pt/plugins/manifest-reference#defaultenabled). Tal plugin é instalado mas permanece desligado até que você o ative com `claude plugin enable <name>` no seu shell, ou na aba **Installed** de `/plugin` em uma sessão.

Details

173 173 

174Para optar por não participar de um plugin habilitado por projeto em sua máquina, defina o id como `false` em `.claude/settings.local.json`, que tem precedência mais alta que o arquivo do projeto.174Para optar por não participar de um plugin habilitado por projeto em sua máquina, defina o id como `false` em `.claude/settings.local.json`, que tem precedência mais alta que o arquivo do projeto.

175 175 

176### Habilitado em um diretório `--add-dir` mas não carregado

177 

178Claude Code lê uma entrada `enabledPlugins` com valor `true` em um dos arquivos do diretório adicionado apenas quando as fontes de configuração desse arquivo estão ativadas:

179 

180* **`.claude/settings.json`**: `project`

181* **`.claude/settings.local.json`**: `project` e `local`

182 

183Verifique quais fontes de configuração a sessão carrega. Você as define com [`--setting-sources`](https://code.claude.com/docs/pt/cli-reference#cli-flags). Na CLI, `user`, `project` e `local` estão todas ativadas por padrão.

184 

185Por exemplo, se você executar `claude --setting-sources user --add-dir ./shared` em seu shell, Claude Code não lê nenhum dos arquivos em `./shared`. Passe a flag correspondente ao arquivo que contém o `true`:

186 

187* **`settings.json`**: `--setting-sources user,project`

188* **`settings.local.json`**: `--setting-sources user,project,local`

189 

176### Habilitado em configurações de projeto mas não instalado190### Habilitado em configurações de projeto mas não instalado

177 191 

178Quando o único `true` de um plugin está em `.claude/settings.json` do projeto, Claude Code não o busca para uma máquina onde ele não está instalado, a menos que sua entrada de marketplace tenha uma [fonte de caminho relativo](https://code.claude.com/docs/pt/plugins/marketplace-reference.md#plugin-sources) ou um [diretório seed](https://code.claude.com/docs/pt/plugins/org.md#seed-containers-and-ci) já o contenha. Em vez disso, a aba **Errors** do `/plugin` mostra `Plugin "<name>" is enabled in project settings but isn't installed here`.192Por padrão, um plugin habilitado apenas no `.claude/settings.json` do seu projeto não carrega no início da sessão até que você o instale em sua máquina. Com o marketplace em sua máquina, a aba **Errors** do `/plugin` mostra [`Plugin "<name>" is enabled in project settings but isn't installed here`](https://code.claude.com/docs/pt/plugins/troubleshooting#plugin-is-enabled-in-project-settings-but-isnt-installed-here) ou [`Plugin "<name>" not cached at <path>`](https://code.claude.com/docs/pt/plugins/troubleshooting#plugin-not-cached-at).

193 

194> [!NOTE]

195>

196> Se a aba não mostrar nenhuma das mensagens, [adicione o marketplace](https://code.claude.com/docs/pt/plugins/install.md#add-a-marketplace) antes de instalar. Encontre a fonte dele na configuração `extraKnownMarketplaces` de `.claude/settings.json` ou pergunte ao seu mantenedor.

197 

198Para instalar, execute isto em um shell a partir do projeto, usando a chave do plugin em `enabledPlugins`:

199 

200```shell theme={null}

201claude plugin install <name>@<marketplace> --scope project

202```

203 

204Para carregar o plugin, execute `/reload-plugins` em sua sessão ou inicie uma nova sessão. Repita a instalação em cada um dos seus clones, ou use `--scope user` para cobrir todos os seus projetos.

205 

206Você pode carregar um plugin sem instalação nestes casos:

179 207 

180Um plugin de caminho relativo não precisa de registro de instalação porque carrega do próprio marketplace.208* **Em um [diretório seed](https://code.claude.com/docs/pt/plugins/org.md#seed-containers-and-ci)**: você não precisa executar nada

209* **Listado por um [caminho relativo](https://code.claude.com/docs/pt/plugins/marketplace-reference.md#plugin-sources) em um marketplace que você adicionou a partir de um caminho local**: você não precisa executar nada, porque o plugin carrega no início da sessão

210* **Listado por um caminho relativo, como `./plugins/formatter`, no `marketplace.json` de um marketplace git que você adicionou**: execute `/reload-plugins` para carregá-lo apenas para a sessão atual. Para carregá-lo em uma [execução não interativa com `-p`](https://code.claude.com/docs/pt/headless), defina [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL=1`](https://code.claude.com/docs/pt/env-vars).

181 211 

182Claude Code busca um plugin com uma fonte externa apenas quando uma dessas fontes o define como `true`:212Claude Code busca um plugin com uma fonte externa apenas quando uma dessas fontes o define como `true`:

183 213 


217Se um plugin carrega in-place ou de uma cópia em cache, Claude Code não deixa que ele declare componentes fora de seu próprio diretório. Ele rejeita um caminho de componente que se resolve fora da raiz do plugin, se o caminho é declarado em `plugin.json` ou em uma entrada de marketplace:247Se um plugin carrega in-place ou de uma cópia em cache, Claude Code não deixa que ele declare componentes fora de seu próprio diretório. Ele rejeita um caminho de componente que se resolve fora da raiz do plugin, se o caminho é declarado em `plugin.json` ou em uma entrada de marketplace:

218 248 

219* **Um caminho que aponta para fora do plugin como escrito**, como `../shared-utils`249* **Um caminho que aponta para fora do plugin como escrito**, como `../shared-utils`

220* **Um symlink que leva para fora do plugin**, outro que [links entre plugins dentro de um marketplace](https://code.claude.com/docs/pt/plugins/host-marketplace.md#share-files-within-a-marketplace-with-symlinks)250* **Um symlink que leva para fora do plugin**, exceto [links entre plugins dentro de um marketplace](https://code.claude.com/docs/pt/plugins/host-marketplace.md#share-files-within-a-marketplace-with-symlinks)

221* **Em macOS e Linux, um caminho que contém uma barra invertida em qualquer lugar nele**, mesmo quando o caminho fica dentro do plugin. Componentes declarados com caminhos de barra invertida portanto carregam apenas em Windows, então escreva caminhos de componentes com barras normais, como `./commands/deploy.md`251* **Em macOS e Linux, um caminho que contém uma barra invertida em qualquer lugar nele**, mesmo quando o caminho fica dentro do plugin. Componentes declarados com caminhos de barra invertida portanto carregam apenas em Windows, então escreva caminhos de componentes com barras normais, como `./commands/deploy.md`

222 252 

223Um caminho rejeitado aparece como um erro [`path escapes plugin directory`](https://code.claude.com/docs/pt/errors#path-escapes-plugin-directory), e o plugin carrega sem esse componente.253Um caminho rejeitado aparece como um erro [`path escapes plugin directory`](https://code.claude.com/docs/pt/errors#path-escapes-plugin-directory), e o plugin carrega sem esse componente.

Details

189 189 

190### `metadata`190### `metadata`

191 191 

192Um objeto de forma livre para seus próprios dados, como campos de catálogo ou direito. Claude Code não o lê. Requer Claude Code v2.1.222 ou posterior.192Um objeto de forma livre para seus próprios dados, como campos de catálogo ou direito. Claude Code não o lê.

193 193 

194### Campos de listagem do diretório194### Campos de listagem do diretório

195 195 


394 394 

395Cada caminho de componente em um manifesto é relativo à raiz do plugin e deve começar com `./`. Um caminho como `commands/foo.md` falha na validação. `skills` e `mcpServers` cada um aceitam uma forma fora dessa regra:395Cada caminho de componente em um manifesto é relativo à raiz do plugin e deve começar com `./`. Um caminho como `commands/foo.md` falha na validação. `skills` e `mcpServers` cada um aceitam uma forma fora dessa regra:

396 396 

397* **`skills`**: também aceita `"."`. Ambos `"."` e `"./"` denotam a raiz do plugin. Antes de v2.1.221, `"."` falhou na validação do manifesto, então use `"./"` quando o plugin deve carregar em versões anteriores397* **`skills`**: também aceita `"."`. Ambos `"."` e `"./"` denotam a raiz do plugin

398* **`mcpServers`**: também aceita uma URL de bundle `https://`398* **`mcpServers`**: também aceita uma URL de bundle `https://`

399 399 

400`experimental.evals` não é um caminho de componente, então as regras desta seção não se aplicam a ele, e `claude plugin eval` verifica o valor quando é executado. Ele nomeia um diretório abaixo da raiz do plugin, como `"quality/evals"`, com ou sem o prefixo `./`. Com um array, apenas a primeira entrada é usada. Para saber o que o valor aceita e o que acontece com um valor inutilizável, consulte [Usar um diretório de eval diferente](https://code.claude.com/docs/pt/plugin-evals.md#use-a-different-eval-directory).400`experimental.evals` não é um caminho de componente, então as regras desta seção não se aplicam a ele, e `claude plugin eval` verifica o valor quando é executado. Ele nomeia um diretório abaixo da raiz do plugin, como `"quality/evals"`, com ou sem o prefixo `./`. Com um array, apenas a primeira entrada é usada. Para saber o que o valor aceita e o que acontece com um valor inutilizável, consulte [Usar um diretório de eval diferente](https://code.claude.com/docs/pt/plugin-evals.md#use-a-different-eval-directory).


403 403 

404Cada caminho de componente deve resolver dentro da raiz do plugin e deve existir. `claude plugin validate` verifica os caminhos sob cada chave de componente:404Cada caminho de componente deve resolver dentro da raiz do plugin e deve existir. `claude plugin validate` verifica os caminhos sob cada chave de componente:

405 405 

406* **Contenção**: um caminho que resolve fora da raiz do plugin não carrega, e a aba **Errors** do `/plugin` mostra `<component> path escapes plugin directory: <path>`. Um caminho contendo `..` é o caso usual, e `claude plugin validate` relata o erro `Path contains ".." which could be a path traversal attempt`406* **Contenção**: um caminho que resolve fora da raiz do plugin não carrega, e a aba **Errors** do `/plugin` mostra `<component> path escapes plugin directory: <path>`. Um caminho contendo `..` é o caso usual, e `claude plugin validate` relata o erro `Path contains ".." which could be a path traversal attempt`. Para um arquivo de `mcpServers` ou `lspServers`, uma mensagem [`path not read`](https://code.claude.com/docs/pt/errors#server-file-path-not-read) significa que o caminho é absoluto ou contém `..`

407* **Existência**: um caminho que não existe não carrega, e a aba **Errors** do `/plugin` mostra `<component> path not found: <path>`. `claude plugin validate` relata o erro `Path not found`407* **Existência**: um caminho que não existe não carrega, e a aba **Errors** do `/plugin` mostra `<component> path not found: <path>`. `claude plugin validate` relata o erro `Path not found`

408 408 

409Para caminhos de `outputStyles`, `lspServers`, `monitors` e `themes`, a verificação `claude plugin validate` requer Claude Code v2.1.283 ou posterior.409Para caminhos de `outputStyles`, `lspServers`, `monitors` e `themes`, a verificação `claude plugin validate` requer Claude Code v2.1.283 ou posterior.

Details

94| `dependencies` | array | Plugins que devem estar habilitados para este funcionar. Cada item é `"name"`, `"name@marketplace"` ou um objeto. Veja [Plugin dependencies](https://code.claude.com/docs/pt/plugins/dependencies.md) |94| `dependencies` | array | Plugins que devem estar habilitados para este funcionar. Cada item é `"name"`, `"name@marketplace"` ou um objeto. Veja [Plugin dependencies](https://code.claude.com/docs/pt/plugins/dependencies.md) |

95| `defaultEnabled` | boolean | Padrão `true`. Se o plugin começa habilitado quando o usuário não o definiu em [`enabledPlugins`](https://code.claude.com/docs/pt/settings-reference#enabledplugins). O valor da entrada tem precedência sobre `plugin.json` |95| `defaultEnabled` | boolean | Padrão `true`. Se o plugin começa habilitado quando o usuário não o definiu em [`enabledPlugins`](https://code.claude.com/docs/pt/settings-reference#enabledplugins). O valor da entrada tem precedência sobre `plugin.json` |

96| `displayName` | string | Nome legível por humanos mostrado na UI. Quando nem a entrada nem o `plugin.json` do plugin define um, os usuários veem o `name` do plugin |96| `displayName` | string | Nome legível por humanos mostrado na UI. Quando nem a entrada nem o `plugin.json` do plugin define um, os usuários veem o `name` do plugin |

97| `metadata` | object | Objeto de forma livre para seus próprios campos. Claude Code não o lê. Requer Claude Code v2.1.222 ou posterior |97| `metadata` | object | Objeto de forma livre para seus próprios campos. Claude Code não o lê |

98| `headers` | object | Cabeçalhos HTTP que Claude Code envia quando baixa o [archive](#archive-plugin-source) desta entrada. Um cabeçalho definido aqui substitui um cabeçalho de mesmo nome da [`headers`](#fields-by-type) da origem do marketplace. Requer Claude Code v2.1.238 ou posterior |98| `headers` | object | Cabeçalhos HTTP que Claude Code envia quando baixa o [archive](#archive-plugin-source) desta entrada. Um cabeçalho definido aqui substitui um cabeçalho de mesmo nome da [`headers`](#fields-by-type) da origem do marketplace. Requer Claude Code v2.1.238 ou posterior |

99| `headersHelper` | string | Comando que imprime os cabeçalhos de download de arquivo desta entrada como um objeto JSON, para uma credencial que expira. A entrada também deve definir [`"strict": false`](#strict-mode). Requer Claude Code v2.1.238 ou posterior. Veja [Authenticate archive downloads](https://code.claude.com/docs/pt/plugins/host-marketplace.md#authenticate-archive-downloads) |99| `headersHelper` | string | Comando que imprime os cabeçalhos de download de arquivo desta entrada como um objeto JSON, para uma credencial que expira. A entrada também deve definir [`"strict": false`](#strict-mode). Requer Claude Code v2.1.238 ou posterior. Veja [Authenticate archive downloads](https://code.claude.com/docs/pt/plugins/host-marketplace.md#authenticate-archive-downloads) |

100 100 


142| `url` | `url`, `ref`, `sha` | Qualquer repositório git por URL |142| `url` | `url`, `ref`, `sha` | Qualquer repositório git por URL |

143| `git-subdir` | `url`, `path`, `ref`, `sha` | Um subdiretório de um repositório git, buscado com um sparse checkout |143| `git-subdir` | `url`, `path`, `ref`, `sha` | Um subdiretório de um repositório git, buscado com um sparse checkout |

144| `npm` | `package`, `version`, `registry` | Pacote do registro npm ou link de tarball, buscado com seu cliente npm e desempacotado sem executar scripts de instalação |144| `npm` | `package`, `version`, `registry` | Pacote do registro npm ou link de tarball, buscado com seu cliente npm e desempacotado sem executar scripts de instalação |

145| `archive` | `url`, `sha256` | Arquivo Zip sobre HTTPS. Requer Claude Code v2.1.224 ou posterior |145| `archive` | `url`, `sha256` | Arquivo Zip sobre HTTPS |

146| `command` | `command`, `timeout`, `mode` | Diretório impresso por um comando que Claude Code executa na máquina do usuário. Requer Claude Code v2.1.229 ou posterior |146| `command` | `command`, `timeout`, `mode` | Diretório impresso por um comando que Claude Code executa na máquina do usuário. Requer Claude Code v2.1.229 ou posterior |

147 147 

148Os nomes `url` e `github` também são tipos de [origem de marketplace](#marketplace-sources), onde `url` significa um link direto a um arquivo `marketplace.json` em vez de um repositório git. `git` existe apenas como uma origem de marketplace, e `npm` existe como ambos. `git-subdir`, `archive` e `command` existem apenas como origens de plugin.148Os nomes `url` e `github` também são tipos de [origem de marketplace](#marketplace-sources), onde `url` significa um link direto a um arquivo `marketplace.json` em vez de um repositório git. `git` existe apenas como uma origem de marketplace, e `npm` existe como ambos. `git-subdir`, `archive` e `command` existem apenas como origens de plugin.

Details

57* **Mods estão ativados.** Um usuário pode instalar um plugin que contém um mod de qualquer marketplace que suas configurações de plugin permitam, ou carregar um de um diretório com `--plugin-dir`.57* **Mods estão ativados.** Um usuário pode instalar um plugin que contém um mod de qualquer marketplace que suas configurações de plugin permitam, ou carregar um de um diretório com `--plugin-dir`.

58* **Uma guarda integrada é executada primeiro.** Claude Code carrega um mod integrado chamado `sec-default@builtin` antes de cada mod que um usuário instala. Os usuários não podem desativá-la. `/plugin` e o log de depuração a listam como `cc-plugin-sec-default`. A guarda é carregada quando qualquer um destes é verdadeiro:58* **Uma guarda integrada é executada primeiro.** Claude Code carrega um mod integrado chamado `sec-default@builtin` antes de cada mod que um usuário instala. Os usuários não podem desativá-la. `/plugin` e o log de depuração a listam como `cc-plugin-sec-default`. A guarda é carregada quando qualquer um destes é verdadeiro:

59 59 

60 * A máquina tem configurações gerenciadas60 * A máquina tem configurações gerenciadas ou um arquivo [`managed-mcp.json`](https://code.claude.com/docs/pt/managed-mcp#deploy-managed-mcp-json)

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 que se autentica com uma chave de API, ou através do Amazon Bedrock, da Agent Platform do Google Cloud ou do Microsoft Foundry, obtém a guarda apenas em uma máquina que tem configurações gerenciadas. 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* **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.

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

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


76 76 

77* **Hooks de configuração continuam funcionando.** Hooks de comando, HTTP, prompt e agente em arquivos de configurações e em `hooks/hooks.json` de plugins são executados como antes, ao lado de mods.77* **Hooks de configuração continuam funcionando.** Hooks de comando, HTTP, prompt e agente em arquivos de configurações e em `hooks/hooks.json` de plugins são executados como antes, ao lado de mods.

78* **Regras de negação têm precedência onde o guard é carregado.** Um mod de um usuário não pode aprovar uma chamada que uma regra `deny` recusa, a menos que você defina [`allowModsToOverrideDenyRules`](#set-options-on-the-built-in-guard).78* **Regras de negação têm precedência onde o guard é carregado.** Um mod de um usuário não pode aprovar uma chamada que uma regra `deny` recusa, a menos que você defina [`allowModsToOverrideDenyRules`](#set-options-on-the-built-in-guard).

79* **Hooks gerenciados são executados primeiro.** Um hook `PreToolUse` em configurações gerenciadas é executado antes do hook [`tool.call`](https://code.claude.com/docs/pt/plugins/mods/reference#tools) de qualquer mod, e quando esse hook gerenciado bloqueia uma chamada de ferramenta, nenhum hook `tool.call` de mod é executado para essa chamada. Se a chamada prosseguir e um mod a reescrever, seus hooks gerenciados são executados novamente na chamada reescrita, então ainda podem bloqueá-la.79* **Hooks gerenciados são executados primeiro.** Um hook `PreToolUse` em configurações gerenciadas é executado antes do hook [`tool.call`](https://code.claude.com/docs/pt/plugins/mods/reference#tools) de qualquer mod, e quando esse hook gerenciado bloqueia uma chamada de ferramenta, nenhum hook `tool.call` de mod é executado para essa chamada. Se a chamada prosseguir e um mod a reescrever, seus hooks gerenciados são executados novamente na chamada reescrita, então, por padrão, ainda podem bloqueá-la.

80 80 

81 Hooks `PreToolUse` de outros arquivos de configurações e de plugins são executados após o último mod. Se um mod responder à própria chamada de ferramenta, a ferramenta nunca é executada, nem esses hooks. Veja [A ordem em que mods são executados](https://code.claude.com/docs/pt/plugins/mods/events.md#the-order-mods-run-in).81 Hooks `PreToolUse` de outros arquivos de configurações e de plugins são executados após o último mod. Se um mod responder à própria chamada de ferramenta, a ferramenta nunca é executada, nem esses hooks. Veja [A ordem em que mods são executados](https://code.claude.com/docs/pt/plugins/mods/events.md#the-order-mods-run-in).

82* **Política de rede cobre `$.http.fetch`.**82* **Política de rede cobre `$.http.fetch`.**


260| Opção | Não definida | `true` |260| Opção | Não definida | `true` |

261| :- | :- | :- |261| :- | :- | :- |

262| `allowManagedModsOnly` | Mods próprios dos usuários são executados | Apenas [mods da sua organização](#install-your-organizations-mods), e mods integrados ao Claude Code, executam seus hooks. Claude Code recusa cada outro mod, incluindo um que um usuário instalou ou nomeou com `--plugin-dir`. |262| `allowManagedModsOnly` | Mods próprios dos usuários são executados | Apenas [mods da sua organização](#install-your-organizations-mods), e mods integrados ao Claude Code, executam seus hooks. Claude Code recusa cada outro mod, incluindo um que um usuário instalou ou nomeou com `--plugin-dir`. |

263| `allowModsToOverrideDenyRules` | Regras de negação têm precedência sobre mods dos usuários | Um mod de um usuário que aprova chamadas de ferramenta pode aprovar uma chamada que uma regra `deny` recusa |263| `allowModsToOverrideDenyRules` | Regras de negação têm precedência sobre mods dos usuários | Um mod de um usuário que aprova chamadas de ferramenta pode aprovar uma chamada passando por cima da maioria dos [resultados que permanecem em vigor por padrão](https://code.claude.com/docs/pt/permissions.md#precedence-among-rules-hooks-and-mods), incluindo uma regra `deny` |

264 264 

265Estas regras decidem se uma opção entra em vigor:265Estas regras decidem se uma opção entra em vigor:

266 266 


350 350 

351* **A lista substitui o padrão**: quando você define `prependPlugins` em configurações gerenciadas, nomeie `sec-default@builtin` nela para manter a guarda integrada. A guarda é integrada e não precisa de uma entrada `enabledPlugins`.351* **A lista substitui o padrão**: quando você define `prependPlugins` em configurações gerenciadas, nomeie `sec-default@builtin` nela para manter a guarda integrada. A guarda é integrada e não precisa de uma entrada `enabledPlugins`.

352* **Seus próprios ids devem contar como seus**: em configurações gerenciadas, Claude Code pula um id cujo plugin não atende às condições para um mod da organização352* **Seus próprios ids devem contar como seus**: em configurações gerenciadas, Claude Code pula um id cujo plugin não atende às condições para um mod da organização

353* **Repositórios não podem defini-los**: Claude Code lê ambas as configurações de configurações gerenciadas e nunca de um arquivo de configurações de um repositório. Um usuário pode defini-los em `~/.claude/settings.json` para ordenar seus próprios mods apenas em uma máquina sem configurações gerenciadas, e apenas quando a credencial da sessão não é um `/login` Team ou Enterprise. Em qualquer outro lugar, Claude Code ignora ambas as chaves em configurações de usuário. Uma lista lá nem adiciona nem remove a guarda integrada.353* **Repositórios não podem definir nenhuma das listas**: Claude Code ignora ambas no arquivo de configurações de um repositório, então defina-as em configurações gerenciadas.

354* **Um usuário pode defini-las para ordenar seus próprios mods**: em `~/.claude/settings.json`, apenas em uma máquina sem configurações gerenciadas ou arquivo `managed-mcp.json`, e apenas quando a credencial da sessão não é um `/login` Team ou Enterprise. Em qualquer outro lugar, Claude Code ignora ambas as chaves em configurações de usuário. Uma lista lá nem adiciona nem remove a guarda integrada.

354 355 

355### Aplique uma política com um mod seu356### Aplique uma política com um mod seu

356 357 

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 

24O mod é 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 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).

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

37 37 

38Escolha uma destas respostas:38Escolha uma destas respostas:

39 39 

40* **Enable for this session**: os mods na pasta de mods da sessão são carregados quando a rodada termina, e recarregam no final de cada rodada que os altera. Sua resposta dura para a sessão, inclusive depois que você a retoma.40* **Turn them on**: os mods na pasta de mods da sessão são carregados quando o turno termina, e recarregam no final de cada turno que os altera. Sua resposta dura para a sessão, inclusive depois que você a retoma.

41* **Not now**: nada é carregado por enquanto. Os arquivos permanecem onde Claude os escreveu, e os mods são carregados na próxima vez que essa sessão inicia. Para evitar que um mod seja carregado, delete seu diretório.41* **Not now**: nada é carregado por enquanto. Os arquivos permanecem onde Claude os escreveu, e os mods são carregados na próxima vez que essa sessão inicia. Para evitar que um mod seja carregado em algum momento, delete seu diretório.

42 42 

43**3. Verifique se o mod foi carregado**43**3. Verifique se o mod foi carregado**

44 44 


59 59 

60### Sessões onde um mod que Claude escreve não pode ser carregado60### Sessões onde um mod que Claude escreve não pode ser carregado

61 61 

62Um mod que Claude escreve é carregado apenas depois que você o aprova, em um workspace confiável onde mods podem ser executados. Nestas sessões ele não é carregado: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:

63 63 

64* **Ninguém está lá para aprovar**: a sessão não pode mostrar um prompt, como em uma execução `claude -p` ou [modo `dontAsk`](https://code.claude.com/docs/pt/permission-modes)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)

65* **O workspace não é confiável**: você não aceitou o prompt de confiança para o diretório65* **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 bloqueiam66* **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 67 

Details

328 328 

329Verifique quais mods recebem este evento e a sua versão do Claude Code:329Verifique quais mods recebem este evento e a sua versão do Claude Code:

330 330 

331* **A guarda integrada**: com configurações gerenciadas, ou com um [`/login`](https://code.claude.com/docs/pt/authentication#authentication-precedence) Team ou Enterprise como credencial da sessão, a [guarda integrada](https://code.claude.com/docs/pt/plugins/mods/admin.md#know-what-happens-by-default) pode ignorar este hook em um mod que você instala ou carrega com `--plugin-dir`. Para verificar, procure no [log de depuração](https://code.claude.com/docs/pt/plugins/mods/troubleshoot.md#read-the-debug-log) por `settings.read bypassed by cc-plugin-sec-default`. Se uma linha com esse texto citar o seu mod, peça ao administrador da sua organização para [instalar o mod como um dos mods da organização](https://code.claude.com/docs/pt/plugins/mods/admin.md#install-your-organizations-mods).331* **A guarda integrada**: onde a [guarda integrada](https://code.claude.com/docs/pt/plugins/mods/admin.md#know-what-happens-by-default) é carregada, ela pode ignorar este hook em um mod que você instala ou carrega com `--plugin-dir`. Para verificar, procure no [log de depuração](https://code.claude.com/docs/pt/plugins/mods/troubleshoot.md#read-the-debug-log) por `settings.read bypassed by cc-plugin-sec-default`. Se uma linha com esse texto citar o seu mod, peça ao administrador da sua organização para [instalar o mod como um dos mods da organização](https://code.claude.com/docs/pt/plugins/mods/admin.md#install-your-organizations-mods).

332* **A versão**: o disparo do evento na leitura do próprio Claude Code, e o campo `e.layers`, requerem o Claude Code v2.1.304 ou posterior.332* **A versão**: o disparo do evento na leitura do próprio Claude Code, e o campo `e.layers`, requerem o Claude Code v2.1.304 ou posterior.

333 333 

334#### O que um hook `settings.read` recebe334#### O que um hook `settings.read` recebe

Details

78 78 

79Os mods não são executados em sandbox. Se você ativar o [sandboxing](https://code.claude.com/docs/pt/sandboxing.md), o sandbox isola os comandos Bash que o Claude executa, e um processo que um mod inicia é executado fora dele.79Os mods não são executados em sandbox. Se você ativar o [sandboxing](https://code.claude.com/docs/pt/sandboxing.md), o sandbox isola os comandos Bash que o Claude executa, e um processo que um mod inicia é executado fora dele.

80 80 

81Com [configurações gerenciadas](https://code.claude.com/docs/pt/settings.md#check-what-your-organization-enforces) ou um [`/login`](https://code.claude.com/docs/pt/authentication#authentication-precedence) de Team ou Enterprise como credencial da sessão, por padrão a aprovação de um mod não faz uma chamada passar por suas regras `ask` ou hooks `PreToolUse`. Sem nenhum dos dois, um mod pode aprovar uma chamada que uma regra `ask` solicitaria, ou que seu hook `PreToolUse` bloqueou. Para verificar quando um mod também pode aprovar uma chamada que uma regra `deny` recusa, consulte [Estender permissões com hooks](https://code.claude.com/docs/pt/permissions.md#precedence-among-rules-hooks-and-mods).81Um mod pode aprovar [muitas chamadas de ferramenta](https://code.claude.com/docs/pt/permissions.md#precedence-among-rules-hooks-and-mods) que suas regras `deny` ou `ask` ou seus hooks `PreToolUse` impediriam, a menos que a [guarda integrada](https://code.claude.com/docs/pt/plugins/mods/admin.md#know-what-happens-by-default) o impeça. Com a guarda carregada, por padrão o mod de um usuário não pode fazer isso. Em uma sessão de terminal local, `cc-plugin-sec-default` na aba **Installed** de `/plugin` significa que a guarda está carregada.

82 82 

83Um mod pode reformatar grande parte da interface do Claude Code, mas não o prompt de permissão. Não pode alterar o que um prompt mostra a você.83Um mod pode reformatar grande parte da interface do Claude Code, mas não o prompt de permissão. Não pode alterar o que um prompt mostra a você.

84 84 

Details

39| `next.origin` | `{ plugin, tier }` de quem disparou o evento. O próprio Claude Code é `{ plugin: 'engine', tier: 'core' }`. O `tier` de um mod é seu grupo de prioridade na [ordem em que os mods são executados](https://code.claude.com/docs/pt/plugins/mods/events.md#the-order-mods-run-in): `prepend`, `user`, `append` ou `builtin`. |39| `next.origin` | `{ plugin, tier }` de quem disparou o evento. O próprio Claude Code é `{ plugin: 'engine', tier: 'core' }`. O `tier` de um mod é seu grupo de prioridade na [ordem em que os mods são executados](https://code.claude.com/docs/pt/plugins/mods/events.md#the-order-mods-run-in): `prepend`, `user`, `append` ou `builtin`. |

40| `next.budget` | O limite de tempo do hook em milissegundos: `next.budget.ms` é o limite inteiro e `next.budget.remainingMs` é o que resta agora |40| `next.budget` | O limite de tempo do hook em milissegundos: `next.budget.ms` é o limite inteiro e `next.budget.remainingMs` é o que resta agora |

41| `next.to(e, tier)` | Pula para um tier posterior, que é `append`, `builtin` ou `core`. `next.to(e, 'append')` pula os mods que um usuário instalou. Somente um mod em `prependPlugins` ou `appendPlugins` pode chamá-lo. |41| `next.to(e, tier)` | Pula para um tier posterior, que é `append`, `builtin` ou `core`. `next.to(e, 'append')` pula os mods que um usuário instalou. Somente um mod em `prependPlugins` ou `appendPlugins` pode chamá-lo. |

42| `next.error` | Somente em um manipulador `.catch`. `kind` é `throw` ou `timeout` quando o hook falhou, e `message` é o texto do erro. `kind` é `re-entry` quando o hook foi ignorado porque o evento veio de dentro de uma chamada à API de mods feita por esse hook ou pelo código do seu mod fora de seus hooks. `re-entry` exige o Claude Code v2.1.292 ou posterior. |42| `next.error` | Somente em um manipulador `.catch`. `kind` é `throw` ou `timeout`, e `message` é o texto do erro. |

43| `next.error.cause` | Definido somente quando `kind` é `re-entry`. `rewritten` se um hook `tool.call` ou [`PreToolUse`](https://code.claude.com/docs/pt/hooks#pretooluse) alterou a chamada à API de mods da qual o evento veio, ou se um hook `agent.spawn` alterou um agente iniciado por essa chamada. `lent` quando um método que outro mod adiciona à API de mods disparou esse evento, a menos que `rewritten` também se aplique. `lent` exige o Claude Code v2.1.292 ou posterior e `rewritten`, v2.1.300 ou posterior. |

44| `next.called` | Somente em um manipulador `.catch`. `true` quando o hook havia chamado `next`. |43| `next.called` | Somente em um manipulador `.catch`. `true` quando o hook havia chamado `next`. |

45 44 

46## Eventos45## Eventos


252| [`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 |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| [`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 |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 |

254| [`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. |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. |

255| `UserMessage` | `text`, `origin`, `isExpanded` e `task` ou `from` conforme a origem | O id da mensagem | Terminal, Desktop, VS Code |254| `UserMessage` | `text`, `origin`, `isExpanded` e `task` ou `from` conforme a origem | O id da linha desenhada | Terminal, Desktop, VS Code |

256| `AssistantMessage` | O texto da resposta | O id da mensagem | Terminal, Desktop, VS Code |255| `AssistantMessage` | O texto da resposta | O id da linha desenhada | Terminal, Desktop, VS Code |

257| `ToolUse`, `ToolResult`, `ToolGroup` | O nome, a entrada e o resultado da ferramenta | O id da chamada de ferramenta | 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 |

258| `CommandOutput` | `command`, `text` | O id da mensagem | Terminal, Desktop |257| `CommandOutput` | `command`, `text` | O id da linha desenhada | Terminal, Desktop |

259| [`AskUserQuestion`](https://code.claude.com/docs/pt/plugins/mods/interface#change-what-claude-code-already-draws) | A pergunta e as opções | O id da chamada de ferramenta | Terminal, Desktop, VS Code |258| [`AskUserQuestion`](https://code.claude.com/docs/pt/plugins/mods/interface#change-what-claude-code-already-draws) | A pergunta e as opções | O id da chamada de ferramenta | Terminal, Desktop, VS Code |

260| `ToolProgress` | `kind` | O id da chamada de ferramenta | Terminal |259| `ToolProgress` | `kind` | O id da chamada de ferramenta | Terminal |

261| [`Spinner`](https://code.claude.com/docs/pt/plugins/mods/interface#change-what-claude-code-already-draws) | `word`, `message`, `suffix`, `mode` | O id do agente | Terminal, Desktop, VS Code |260| [`Spinner`](https://code.claude.com/docs/pt/plugins/mods/interface#change-what-claude-code-already-draws) | `word`, `message`, `suffix`, `mode` | O id do agente | Terminal, Desktop, VS Code |

262| `TurnDuration` | `word`, `durationMs` | O id da mensagem | Terminal |261| `TurnDuration` | `word`, `durationMs` | O id da linha desenhada | Terminal |

263| `InfoNotice` | `text`, `command` | O id da mensagem | Terminal |262| `InfoNotice` | `text`, `command` | O `text` do aviso prefixado com `notice:` | Terminal |

264| `SessionMode` | `modes` | Uma instância | Terminal, Desktop |263| `SessionMode` | `modes` | Uma instância | Terminal, Desktop |

265| `PromptHint` | `isDraft`, `isWorking`, `hint` | Uma instância | Terminal, Desktop |264| `PromptHint` | `isDraft`, `isWorking`, `hint` | Uma instância | Terminal, Desktop |

266 265 


424| :- | :- | :- |423| :- | :- | :- |

425| `CLAUDE_CODE_PLUGIN_DIRS` | Ambiente, ou `env` em `~/.claude/settings.json` | Diretórios de plugin a carregar como `--plugin-dir` faz, para aplicativos aos quais você não pode passar uma flag. Caminhos absolutos separados por `:`, ou `;` no Windows. |424| `CLAUDE_CODE_PLUGIN_DIRS` | Ambiente, ou `env` em `~/.claude/settings.json` | Diretórios de plugin a carregar como `--plugin-dir` faz, para aplicativos aos quais você não pode passar uma flag. Caminhos absolutos separados por `:`, ou `;` no Windows. |

426| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Ambiente | `1` faz com que uma sessão não interativa de longa duração recarregue os mods de `--plugin-dir` ao salvar |425| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Ambiente | `1` faz com que uma sessão não interativa de longa duração recarregue os mods de `--plugin-dir` ao salvar |

427| `prependPlugins`, `appendPlugins` | Configurações gerenciadas. Configurações do usuário somente em uma máquina sem configurações gerenciadas, em uma sessão cuja credencial não é um `/login` Team ou Enterprise. | Listas de ids de plugin, como `acme-guard@acme-tools`. Mods em `prependPlugins` são executados antes de todo mod que um usuário instala, e mods em `appendPlugins` são executados depois, na ordem listada. Consulte [A ordem em que os mods são executados](https://code.claude.com/docs/pt/plugins/mods/events.md#the-order-mods-run-in). |426| `prependPlugins`, `appendPlugins` | Configurações gerenciadas. Configurações do usuário somente em uma máquina sem configurações gerenciadas nem arquivo [`managed-mcp.json`](https://code.claude.com/docs/pt/managed-mcp#deploy-managed-mcp-json), em uma sessão cuja credencial não é um `/login` Team ou Enterprise. | Listas de ids de plugin, como `acme-guard@acme-tools`. Mods em `prependPlugins` são executados antes de todo mod que um usuário instala, e mods em `appendPlugins` são executados depois, na ordem listada. Consulte [A ordem em que os mods são executados](https://code.claude.com/docs/pt/plugins/mods/events.md#the-order-mods-run-in). |

428| `allowManagedModsOnly` | Configurações gerenciadas, como uma [opção da guarda integrada](https://code.claude.com/docs/pt/plugins/mods/admin.md#set-options-on-the-built-in-guard) | Somente mods que [contam como da sua organização](https://code.claude.com/docs/pt/plugins/mods/admin.md#install-your-organizations-mods), e mods integrados ao Claude Code, executam seus hooks. Os hooks de configuração dos usuários continuam em execução. |427| `allowManagedModsOnly` | Configurações gerenciadas, como uma [opção da guarda integrada](https://code.claude.com/docs/pt/plugins/mods/admin.md#set-options-on-the-built-in-guard) | Somente mods que [contam como da sua organização](https://code.claude.com/docs/pt/plugins/mods/admin.md#install-your-organizations-mods), e mods integrados ao Claude Code, executam seus hooks. Os hooks de configuração dos usuários continuam em execução. |

429| `allowModsToOverrideDenyRules` | Configurações gerenciadas, como uma [opção da guarda integrada](https://code.claude.com/docs/pt/plugins/mods/admin.md#set-options-on-the-built-in-guard) | Permite que um mod instalado por um usuário aprove uma chamada de ferramenta que uma regra `deny` recusa |428| `allowModsToOverrideDenyRules` | Configurações gerenciadas, como uma [opção da guarda integrada](https://code.claude.com/docs/pt/plugins/mods/admin.md#set-options-on-the-built-in-guard) | Permite que um mod instalado por um usuário aprove uma chamada de ferramenta passando por cima da maioria dos [resultados que permanecem em vigor por padrão](https://code.claude.com/docs/pt/permissions.md#precedence-among-rules-hooks-and-mods), incluindo uma regra `deny` |

430| `allowManagedHooksOnly` | Configurações gerenciadas | Bloqueia hooks e mods instalados que não são da sua organização. Consulte [o que continua em execução](https://code.claude.com/docs/pt/settings-reference.md#what-runs-under-allowmanagedhooksonly). |429| `allowManagedHooksOnly` | Configurações gerenciadas | Bloqueia hooks e mods instalados que não são da sua organização. Consulte [o que continua em execução](https://code.claude.com/docs/pt/settings-reference.md#what-runs-under-allowmanagedhooksonly). |

431| `disableAllHooks` | Qualquer arquivo de configurações | Nas configurações gerenciadas, nenhum mod ou hook de um plugin instalado é executado. Nas suas próprias configurações, o que a sua organização gerencia continua em execução. Consulte [`disableAllHooks`](https://code.claude.com/docs/pt/settings-reference#disableallhooks). |430| `disableAllHooks` | Qualquer arquivo de configurações | Nas configurações gerenciadas, nenhum mod ou hook de um plugin instalado é executado. Nas suas próprias configurações, o que a sua organização gerencia continua em execução. Consulte [`disableAllHooks`](https://code.claude.com/docs/pt/settings-reference#disableallhooks). |

432| `disableSideloadFlags` | Configurações gerenciadas | Rejeita `--plugin-dir` e `--plugin-url` na inicialização |431| `disableSideloadFlags` | Configurações gerenciadas | Rejeita `--plugin-dir` e `--plugin-url` na inicialização |

433| `pluginConfigs` | Configurações do usuário ou gerenciadas | Contém valores de `userConfig` para um mod, indexados pelo id do plugin, como `acme-guard@acme-tools`, ou pelo seu nome e `@inline`, como `first-mod@inline`, para um carregado com `--plugin-dir` |432| `pluginConfigs` | Configurações do usuário ou gerenciadas | Contém valores de `userConfig` para um mod, indexados pelo id do plugin, como `acme-guard@acme-tools`, ou pelo seu nome e `@inline`, como `first-mod@inline`, para um carregado com `--plugin-dir` |

434 433 

435`sec-default@builtin` é uma guarda integrada ao Claude Code, listada como `cc-plugin-sec-default` em `/plugin` e no log de depuração. Ela é carregada antes de todo mod que uma pessoa instala em uma máquina com configurações gerenciadas, ou em uma sessão cuja credencial é um [`/login`](https://code.claude.com/docs/pt/authentication#authentication-precedence) Team ou Enterprise. Se `prependPlugins` gerenciado estiver definido, a guarda só é carregada quando essa lista a indica, na posição listada.434`sec-default@builtin` é uma guarda integrada ao Claude Code, listada como `cc-plugin-sec-default` em `/plugin` e no log de depuração. [Onde ela é carregada](https://code.claude.com/docs/pt/plugins/mods/admin.md#know-what-happens-by-default), ela é executada antes de todo mod que uma pessoa instala. Se `prependPlugins` gerenciado estiver definido, a guarda só é carregada quando essa lista a indica, na posição listada.

436 435 

437Seu código-fonte está no [diretório `mods/sec-default` do repositório do Claude Code](https://github.com/anthropics/claude-code/tree/main/mods/sec-default).436Seu código-fonte está no [diretório `mods/sec-default` do repositório do Claude Code](https://github.com/anthropics/claude-code/tree/main/mods/sec-default).

438 437 

Details

14 14 

15Quando um módulo não carrega, um hook é ignorado ou outro mod recusa o seu, Claude Code escreve uma linha que nomeia seu mod. Onde você lê essa linha depende da sessão:15Quando um módulo não carrega, um hook é ignorado ou outro mod recusa o seu, Claude Code escreve uma linha que nomeia seu mod. Onde você lê essa linha depende da sessão:

16 16 

17* **Uma sessão que recarrega dinamicamente um diretório de plugin**: uma linha fraca na transcrição. Essa é uma sessão interativa que você iniciou com `--plugin-dir`, ou uma onde você [habilitou o recarregamento dinâmico](https://code.claude.com/docs/pt/plugins/mods/create.md#ask-claude-for-a-mod) para mods que Claude escreveu.17* **Uma sessão que recarrega dinamicamente um diretório de plugin**: uma linha fraca na transcrição. Essa é uma sessão interativa que você iniciou com `--plugin-dir`, ou uma onde o [recarregamento dinâmico está ativado](https://code.claude.com/docs/pt/plugins/mods/create.md#ask-claude-for-a-mod) para mods que Claude escreveu.

18* **Qualquer outra sessão interativa, como uma que executa um mod que você instalou de um marketplace**: o [log de depuração](#read-the-debug-log) apenas. Para obter um, inicie a sessão com `claude --debug`.18* **Qualquer outra sessão interativa, como uma que executa um mod que você instalou de um marketplace**: o [log de depuração](#read-the-debug-log) apenas. Para obter um, inicie a sessão com `claude --debug`.

19* **Uma execução `claude -p` com `--plugin-dir`**: stderr, no formato de saída de texto padrão. Uma recusa por outro mod vai apenas para o log de depuração.19* **Uma execução `claude -p` com `--plugin-dir`**: stderr, no formato de saída de texto padrão. Uma recusa por outro mod vai apenas para o log de depuração.

20 20 


68 68 

69### Mensagens do guarda integrado69### Mensagens do guarda integrado

70 70 

71Em uma máquina com configurações gerenciadas, ou em uma sessão cuja credencial é um `/login` Team ou Enterprise, a [guarda integrada](https://code.claude.com/docs/pt/plugins/mods/admin.md#know-what-happens-by-default) pode recusar um mod ou uma de suas respostas. Cada mensagem nomeia a opção que o administrador de sua organização define para alterar a regra.71Onde a [guarda integrada](https://code.claude.com/docs/pt/plugins/mods/admin.md#know-what-happens-by-default) é carregada, ela pode recusar um mod ou uma de suas respostas. Cada mensagem nomeia a opção que o administrador de sua organização define para alterar a regra.

72 72 

73| A mensagem contém | O que significa | Onde aparece |73| A mensagem contém | O que significa | Onde aparece |

74| :- | :- | :- |74| :- | :- | :- |

plugins/org.md +1 −1

Details

89* **Sessões interativas**: o Claude Code registra o marketplace apenas depois que o contribuidor aceita o [workspace trust dialog](https://code.claude.com/docs/pt/permissions.md#what-runs-before-you-trust-a-folder) para essa pasta.89* **Sessões interativas**: o Claude Code registra o marketplace apenas depois que o contribuidor aceita o [workspace trust dialog](https://code.claude.com/docs/pt/permissions.md#what-runs-before-you-trust-a-folder) para essa pasta.

90* **[Execuções não-interativas `-p`](https://code.claude.com/docs/pt/headless)**: as entradas se aplicam apenas em uma pasta cuja confiança o usuário já aceitou interativamente, ou cuja flag `hasTrustDialogAccepted` você definiu em `~/.claude.json`.90* **[Execuções não-interativas `-p`](https://code.claude.com/docs/pt/headless)**: as entradas se aplicam apenas em uma pasta cuja confiança o usuário já aceitou interativamente, ou cuja flag `hasTrustDialogAccepted` você definiu em `~/.claude.json`.

91 91 

92Um plugin que o marketplace lista por um caminho relativo carrega da cópia do marketplace uma vez que as entradas `extraKnownMarketplaces` do repositório se apliquem. Um plugin cujo marketplace aponta para uma fonte externa em vez disso, como o próprio repositório GitHub do plugin, não instala apenas das configurações do repositório. Cada contribuidor vê `Plugin "<name>" is enabled in project settings but isn't installed` até executar `claude plugin install <name>@<marketplace> --scope project`, como [Install plugins](https://code.claude.com/docs/pt/plugins/install.md) descreve.92Definir `enabledPlugins` no repositório não instala o plugin. Depois que o marketplace estiver registrado, peça a cada contribuidor que execute `claude plugin install <name>@<marketplace> --scope project`. Até que o façam, a aba **Errors** de `/plugin` pode mostrar `Plugin "<name>" is enabled in project settings but isn't installed here` ou [`not cached`](https://code.claude.com/docs/pt/plugins/troubleshooting#plugin-not-cached-at). Os contribuidores não precisam da instalação quando um marketplace local `directory` ou `file` lista o plugin com uma [`source` de caminho relativo](https://code.claude.com/docs/pt/plugins/marketplace-reference#plugin-sources).

93 93 

94Se você usar uma fonte `directory` ou `file` local com um caminho relativo, o caminho se resolve contra o checkout principal do seu repositório. Quando você executa o Claude Code de um git worktree, o caminho ainda aponta para o checkout principal, então todos os worktrees compartilham o mesmo local do marketplace.94Se você usar uma fonte `directory` ou `file` local com um caminho relativo, o caminho se resolve contra o checkout principal do seu repositório. Quando você executa o Claude Code de um git worktree, o caminho ainda aponta para o checkout principal, então todos os worktrees compartilham o mesmo local do marketplace.

95 95 

Details

322 322 

323### Marketplace updates keep failing offline323### Marketplace updates keep failing offline

324 324 

325Você trabalha em um ambiente onde o host git do marketplace é inacessível, e cada sessão repete uma atualização falhada em segundo plano. Seu checkout existente do marketplace permanece no lugar e a inicialização não é atrasada.325Você trabalha em um ambiente onde o host git do marketplace é inacessível, e cada sessão repete uma atualização falhada em segundo plano. Seu checkout existente do marketplace permanece no lugar.

326 326 

327Cada sessão, para um marketplace com [auto-update on](https://code.claude.com/docs/pt/plugins/loading.md#which-marketplaces-and-plugins-auto-update), Claude Code verifica o host git do marketplace para novos commits em segundo plano. Quando essa verificação não consegue alcançar o host, ela tenta clonar o marketplace novamente, e offline esse clone também falha.327Cada sessão, para um marketplace com [auto-update on](https://code.claude.com/docs/pt/plugins/loading.md#which-marketplaces-and-plugins-auto-update), Claude Code verifica o host git do marketplace para novos commits em segundo plano. Quando essa verificação não consegue alcançar o host, ela tenta clonar o marketplace novamente, e offline esse clone também falha.

328 328 


675 675 

676### `Plugin "<name>" not cached at <path>`676### `Plugin "<name>" not cached at <path>`

677 677 

678A aba **Errors** mostra esta linha com a orientação `Run /plugin to refresh the plugin cache`. Claude Code tem um registro de instalação para o plugin, mas o diretório que o registro aponta está faltando, por exemplo após você limpar o cache.678A aba **Errors** mostra esta linha com a orientação `Run /plugin to refresh the plugin cache`. Isso significa que Claude Code não encontrou nenhuma cópia utilizável do plugin. Por exemplo, você limpou o cache, então o diretório para o qual o registro de instalação aponta está faltando. Ou você abriu um repositório cujas configurações habilitam o plugin, e você não o instalou.

679 679 

680Reinstale o plugin a partir do seu shell. `claude plugin install <name>@<marketplace>` re-baixa um plugin cujo diretório de instalação está faltando mesmo que seu registro exista:680Instale o plugin a partir do seu shell. Se você abriu um repositório cujo `.claude/settings.json` habilita o plugin, execute isto a partir do projeto com a chave do plugin em `enabledPlugins`, conforme descrito em [Enabled in project settings but not installed](https://code.claude.com/docs/pt/plugins/loading.md#enabled-in-project-settings-but-not-installed):

681 

682```shell theme={null}

683claude plugin install <name>@<marketplace> --scope project

684```

685 

686Caso contrário, execute isto, que baixa novamente um plugin cujo diretório de instalação está faltando mesmo que seu registro exista:

681 687 

682```shell theme={null}688```shell theme={null}

683claude plugin install <name>@<marketplace>689claude plugin install <name>@<marketplace>

684```690```

685 691 

686Depois execute `/reload-plugins` em sua sessão. A entrada da aba **Errors** desaparece e o plugin está de volta sob **Installed**.692Depois execute `/reload-plugins` em sua sessão. A entrada da aba **Errors** desaparece e o plugin é listado sob **Installed**.

687 693 

688### `installed_plugins.json holds a record under "<id>" that this version of Claude Code cannot read`694### `installed_plugins.json holds a record under "<id>" that this version of Claude Code cannot read`

689 695 

Details

103O [modo rápido](https://code.claude.com/docs/pt/fast-mode.md) e a velocidade padrão mantêm caches separados, então depois que você ativa ou desativa o modo rápido, a próxima requisição não pode usar o que a outra velocidade armazenou em cache. Na primeira vez que você ativa o modo rápido em uma conversa, a próxima requisição lê toda a conversa até então sem cache, com as [tarifas do modo rápido](https://code.claude.com/docs/pt/fast-mode.md#understand-the-cost-tradeoff). Para manter esse custo baixo, ative-o no início de uma sessão.103O [modo rápido](https://code.claude.com/docs/pt/fast-mode.md) e a velocidade padrão mantêm caches separados, então depois que você ativa ou desativa o modo rápido, a próxima requisição não pode usar o que a outra velocidade armazenou em cache. Na primeira vez que você ativa o modo rápido em uma conversa, a próxima requisição lê toda a conversa até então sem cache, com as [tarifas do modo rápido](https://code.claude.com/docs/pt/fast-mode.md#understand-the-cost-tradeoff). Para manter esse custo baixo, ative-o no início de uma sessão.

104 104 

105* Se você ativá-lo enquanto Claude está trabalhando, esse turno termina na velocidade padrão, e você paga por qualquer leitura sem cache na primeira requisição do seu próximo turno.105* Se você ativá-lo enquanto Claude está trabalhando, esse turno termina na velocidade padrão, e você paga por qualquer leitura sem cache na primeira requisição do seu próximo turno.

106* Se seu modelo atual não suportar o modo rápido, executar `/fast` também [muda você para o Opus](https://code.claude.com/docs/pt/fast-mode.md#toggle-fast-mode). Essa [mudança de modelo](#switching-models) inicia um cache novo por conta própria a partir da próxima requisição no turno em execução.106* Se seu modelo atual não suportar o modo rápido, executar `/fast` também [muda seu modelo](https://code.claude.com/docs/pt/fast-mode.md#toggle-fast-mode). Essa [mudança de modelo](#switching-models) inicia um cache novo por conta própria a partir da próxima requisição no turno em execução.

107 107 

108Cada alternância posterior lê sem cache tudo o que a velocidade para a qual você muda não tem em cache. Mudanças de velocidade que Claude Code faz por conta própria, como o [fallback para a velocidade padrão](https://code.claude.com/docs/pt/fast-mode.md#handle-rate-limits) após um rate limit e o retorno ao modo rápido depois, também contam como alternâncias.108Cada alternância posterior lê sem cache tudo o que a velocidade para a qual você muda não tem em cache. Mudanças de velocidade que Claude Code faz por conta própria, como o [fallback para a velocidade padrão](https://code.claude.com/docs/pt/fast-mode.md#handle-rate-limits) após um rate limit e o retorno ao modo rápido depois, também contam como alternâncias.

109 109 

Details

185* **Nível de esforço**: quando você define o [nível de esforço](https://code.claude.com/docs/pt/model-config.md#adjust-effort-level) de um dispositivo conectado, com `/effort` ou o controle de esforço do dispositivo, Claude Code o aplica à sessão na sua máquina. Se você fixou um nível com `CLAUDE_CODE_EFFORT_LEVEL`, a sessão mantém esse nível, e Claude Code recusa uma escolha diferente do controle de esforço. Escolher um nível do controle de esforço requer Claude Code v2.1.234 ou posterior na sua máquina.185* **Nível de esforço**: quando você define o [nível de esforço](https://code.claude.com/docs/pt/model-config.md#adjust-effort-level) de um dispositivo conectado, com `/effort` ou o controle de esforço do dispositivo, Claude Code o aplica à sessão na sua máquina. Se você fixou um nível com `CLAUDE_CODE_EFFORT_LEVEL`, a sessão mantém esse nível, e Claude Code recusa uma escolha diferente do controle de esforço. Escolher um nível do controle de esforço requer Claude Code v2.1.234 ou posterior na sua máquina.

186* **Reconectando após uma falha de conexão**: execute `/remote-control` para reconectar. Se a compactação reescreveu a conversa ou você alternou conversas com `/resume` enquanto isso, Claude Code arquiva a sessão do servidor que estava usando em vez de deixá-la na lista de sessões. Você ainda pode encontrar essa sessão entre suas [sessões arquivadas](https://code.claude.com/docs/pt/claude-code-on-the-web.md#find-an-archived-session) em claude.ai/code. Alternar conversas enquanto um dispositivo ainda está conectado não arquiva a sessão.186* **Reconectando após uma falha de conexão**: execute `/remote-control` para reconectar. Se a compactação reescreveu a conversa ou você alternou conversas com `/resume` enquanto isso, Claude Code arquiva a sessão do servidor que estava usando em vez de deixá-la na lista de sessões. Você ainda pode encontrar essa sessão entre suas [sessões arquivadas](https://code.claude.com/docs/pt/claude-code-on-the-web.md#find-an-archived-session) em claude.ai/code. Alternar conversas enquanto um dispositivo ainda está conectado não arquiva a sessão.

187 187 

188### Fazer fork de uma sessão a partir do seu navegador

189 

190Para tentar uma direção diferente sem interromper uma sessão, abra-a em [claude.ai/code](https://claude.ai/code) e selecione **Fork** no menu da sessão, ou faça fork a partir de uma mensagem anterior na transcrição. O fork é aberto como uma nova sessão na sua lista de sessões e continua a conversa a partir desse ponto enquanto a original continua em execução. Fazer fork requer Claude Code v2.1.277 ou posterior na sua máquina.

191 

192Um servidor `claude remote-control` iniciado com `--spawn session` tem espaço apenas para sua única sessão, portanto não pode executar um fork.

193 

194Claude Code recusa o fork em casos como estes:

195 

196* A sessão está ocupada. Faça o fork quando ela estiver ociosa.

197* A sessão é hospedada pela extensão VS Code ou por outro aplicativo construído com o [Agent SDK](https://code.claude.com/docs/pt/agent-sdk/overview.md).

198 

188### Ativar Remote Control para todas as sessões199### Ativar Remote Control para todas as sessões

189 200 

190Remote Control só é ativado quando você executa explicitamente `claude remote-control`, `claude --remote-control` ou `/remote-control`, a menos que a conexão automática esteja ativada. Para ativar a conexão automática para cada sessão interativa, execute `/config` dentro de Claude Code e defina **Enable Remote Control for all sessions**. O alternador assume três valores:201Remote Control só é ativado quando você executa explicitamente `claude remote-control`, `claude --remote-control` ou `/remote-control`, a menos que a conexão automática esteja ativada. Para ativar a conexão automática para cada sessão interativa, execute `/config` dentro de Claude Code e defina **Enable Remote Control for all sessions**. O alternador assume três valores:


198* **Extensão VS Code**: **Enable Remote Control for all sessions** na seção Settings do [menu de comandos](https://code.claude.com/docs/pt/vs-code.md#use-the-prompt-box).209* **Extensão VS Code**: **Enable Remote Control for all sessions** na seção Settings do [menu de comandos](https://code.claude.com/docs/pt/vs-code.md#use-the-prompt-box).

199* **Aplicativo Desktop**: **Connect new sessions to Remote Control** em **Settings > Code** ou **Settings > Claude Code**. Consulte [Controlar quais sessões aparecem em seus outros dispositivos](https://code.claude.com/docs/pt/desktop.md#control-which-sessions-appear-on-your-other-devices).210* **Aplicativo Desktop**: **Connect new sessions to Remote Control** em **Settings > Code** ou **Settings > Claude Code**. Consulte [Controlar quais sessões aparecem em seus outros dispositivos](https://code.claude.com/docs/pt/desktop.md#control-which-sessions-appear-on-your-other-devices).

200 211 

201Para ativar a conexão automática a partir de um arquivo de configurações, defina [`remoteControlAtStartup`](https://code.claude.com/docs/pt/settings-reference#remotecontrolatstartup) como `true` em seu `~/.claude/settings.json` de usuário ou em [configurações gerenciadas](https://code.claude.com/docs/pt/managed-settings.md). Em configurações de projeto ou local (`.claude/settings.json`, `.claude/settings.local.json`), Claude Code honra um `false` e desativa a conexão automática para esse repositório, mas ignora um `true`, para que um arquivo verificado não possa ativar Remote Control para todos que abrem o repositório.212Para ativar a conexão automática a partir de um arquivo de configurações, defina [`remoteControlAtStartup`](https://code.claude.com/docs/pt/settings-reference#remotecontrolatstartup) como `true` em seu `~/.claude/settings.json` de usuário ou em [configurações gerenciadas](https://code.claude.com/docs/pt/managed-settings.md). Em configurações de projeto ou local (`.claude/settings.json`, `.claude/settings.local.json`), Claude Code honra um `false` e desativa a conexão automática para esse repositório. Ele ignora um `true`, portanto você não pode usar um arquivo versionado no repositório para ativar Remote Control para todos que abrem o repositório.

202 213 

203A conexão automática se conecta com sua própria conta claude.ai, portanto uma sessão que ela inicia aparece apenas nos seus próprios aplicativos Claude e não concede acesso a ninguém mais.214A conexão automática se conecta com sua própria conta claude.ai, portanto uma sessão que ela inicia aparece apenas nos seus próprios aplicativos Claude e não concede acesso a ninguém mais.

204 215 

routines.md +1 −1

Details

528* [`/loop` e agendamento na sessão](https://code.claude.com/docs/pt/scheduled-tasks): agende tarefas locais dentro de uma sessão aberta da CLI528* [`/loop` e agendamento na sessão](https://code.claude.com/docs/pt/scheduled-tasks): agende tarefas locais dentro de uma sessão aberta da CLI

529* [Tarefas agendadas do Desktop](https://code.claude.com/docs/pt/desktop-scheduled-tasks.md): tarefas agendadas locais que são executadas na sua máquina com acesso a arquivos locais529* [Tarefas agendadas do Desktop](https://code.claude.com/docs/pt/desktop-scheduled-tasks.md): tarefas agendadas locais que são executadas na sua máquina com acesso a arquivos locais

530* [Ambientes na nuvem](https://code.claude.com/docs/pt/cloud-environments.md): configure acesso à rede, variáveis de ambiente e scripts de configuração para sessões na nuvem530* [Ambientes na nuvem](https://code.claude.com/docs/pt/cloud-environments.md): configure acesso à rede, variáveis de ambiente e scripts de configuração para sessões na nuvem

531* [Projetos](https://code.claude.com/docs/pt/claude-projects.md): trabalho contínuo que Claude coordena em sessões na nuvem paralelas; tarefas agendadas criadas a partir de um projeto aparecem na aba **Scheduled tasks** dele531* [Projetos](https://code.claude.com/docs/pt/claude-projects.md): trabalho contínuo que Claude coordena em sessões na nuvem paralelas; tarefas agendadas criadas a partir de um projeto aparecem na visualização **Scheduled tasks** dele

532* [Conectores MCP](https://code.claude.com/docs/pt/mcp.md): conecte serviços externos como Slack, Linear e Google Drive532* [Conectores MCP](https://code.claude.com/docs/pt/mcp.md): conecte serviços externos como Slack, Linear e Google Drive

533* [GitHub Actions](https://code.claude.com/docs/pt/github-actions.md): execute Claude no seu pipeline de CI em eventos de repositório533* [GitHub Actions](https://code.claude.com/docs/pt/github-actions.md): execute Claude no seu pipeline de CI em eventos de repositório

sandboxing.md +4 −0

Details

903 903 

904Após a falha, Claude pode [oferecer executar novamente o comando fora do sandbox](#the-unsandboxed-retry-escape-hatch). Aprove essa nova tentativa ou execute o comando git você mesmo em outro terminal. Se você definiu `allowUnsandboxedCommands` como `false`, Claude não pode oferecer a nova tentativa, então execute o comando você mesmo.904Após a falha, Claude pode [oferecer executar novamente o comando fora do sandbox](#the-unsandboxed-retry-escape-hatch). Aprove essa nova tentativa ou execute o comando git você mesmo em outro terminal. Se você definiu `allowUnsandboxedCommands` como `false`, Claude não pode oferecer a nova tentativa, então execute o comando você mesmo.

905 905 

906### Um comando git falha com `Unable to create '…/index.lock'`

907 

908Se você iniciou o Claude Code em um subdiretório de um repositório, este erro pode significar que `.git` está fora do [que os comandos em sandbox podem gravar](#filesystem-isolation). Inicie o Claude Code a partir da raiz do repositório em vez disso, ou a partir da raiz do worktree em um [worktree vinculado](https://code.claude.com/docs/pt/worktrees.md).

909 

906### Uma pasta chamada `objects` ou `refs` desaparece após um comando910### Uma pasta chamada `objects` ou `refs` desaparece após um comando

907 911 

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

Details

54}54}

55```55```

56 56 

57Cada colega de equipe também [executa `claude plugin install security-guidance@claude-plugins-official --scope project`](https://code.claude.com/docs/pt/plugins/loading#enabled-in-project-settings-but-not-installed) uma vez por clone.

58 

57Os administradores podem ativar o plugin em toda a organização definindo [`enabledPlugins`](https://code.claude.com/docs/pt/settings-reference#enabledplugins) em [configurações gerenciadas](https://code.claude.com/docs/pt/admin-setup.md).59Os administradores podem ativar o plugin em toda a organização definindo [`enabledPlugins`](https://code.claude.com/docs/pt/settings-reference#enabledplugins) em [configurações gerenciadas](https://code.claude.com/docs/pt/admin-setup.md).

58 60 

59## O que o plugin verifica61## O que o plugin verifica

Details

235set -u235set -u

236export GIT_ALLOW_PROTOCOL=${GIT_ALLOW_PROTOCOL:-https:http:ssh}236export GIT_ALLOW_PROTOCOL=${GIT_ALLOW_PROTOCOL:-https:http:ssh}

237IFS=':'237IFS=':'

238rc=0 # becomes 1 when a step fails; a non-zero exit makes the runner log it

238# -c overrides beat repo-local settings, blocking session-written fsmonitor,239# -c overrides beat repo-local settings, blocking session-written fsmonitor,

239# hook-path, and gpg-program config from executing code with the hook's240# hook-path, and gpg-program config from executing code with the hook's

240# privileges. -c commit.gpgsign=false also leaves these rescue commits241# privileges. -c commit.gpgsign=false also leaves these rescue commits


245g() { git -c core.fsmonitor=false -c core.hooksPath=/dev/null \246g() { git -c core.fsmonitor=false -c core.hooksPath=/dev/null \

246 -c commit.gpgsign=false "$@"; }247 -c commit.gpgsign=false "$@"; }

247for ws in $CLAUDE_RUNNER_WORKSPACE_PATHS; do248for ws in $CLAUDE_RUNNER_WORKSPACE_PATHS; do

248 cd "$ws" 2>/dev/null || continue249 cd "$ws" || { rc=1; continue; }

249 [ -z "$(g status --porcelain 2>/dev/null)" ] && continue250 g add -A || rc=1

250 g add -A251 g diff-index --cached --quiet HEAD && continue # nothing to save

251 g commit -q -m "runner snapshot: $CLAUDE_RUNNER_SESSION_ID ($CLAUDE_RUNNER_EXIT_REASON)" || continue252 g commit -q -m "runner snapshot: $CLAUDE_RUNNER_SESSION_ID ($CLAUDE_RUNNER_EXIT_REASON)" || { rc=1; continue; }

252 g push -q origin "HEAD:refs/heads/rescue/$CLAUDE_RUNNER_SESSION_ID" || true253 g push -q origin "HEAD:refs/heads/rescue/$CLAUDE_RUNNER_SESSION_ID" || rc=1

253done254done

255exit "$rc"

254```256```

255 257 

256A linha `GIT_ALLOW_PROTOCOL` no script limita o git a remotos HTTPS, HTTP e SSH. Se o ambiente do runner já define uma lista `GIT_ALLOW_PROTOCOL` própria não vazia, o script mantém essa lista.258A linha `GIT_ALLOW_PROTOCOL` no script limita o git a remotos HTTPS, HTTP e SSH. Se o ambiente do runner já define uma lista `GIT_ALLOW_PROTOCOL` própria não vazia, o script mantém essa lista.

Details

23 * **Com [git gerenciado pela Anthropic](#use-the-anthropic-git-proxy)**: com tal credencial, Claude acessa o GitHub diretamente em vez de passar pelo git gerenciado pela Anthropic.23 * **Com [git gerenciado pela Anthropic](#use-the-anthropic-git-proxy)**: com tal credencial, Claude acessa o GitHub diretamente em vez de passar pelo git gerenciado pela Anthropic.

24 * **Sem git gerenciado pela Anthropic**: uma credencial de clone pode permanecer na imagem se você restringir seu escopo tanto quanto [Incluir a configuração do git em sua imagem](#ship-git-config-in-your-image) descreve.24 * **Sem git gerenciado pela Anthropic**: uma credencial de clone pode permanecer na imagem se você restringir seu escopo tanto quanto [Incluir a configuração do git em sua imagem](#ship-git-config-in-your-image) descreve.

25* **Mantenha o segredo do ambiente fora dos hosts que executam sessões**: o segredo do ambiente pode registrar runners e pegar qualquer sessão enfileirada no ambiente. Em uma frota fixa, ele vive em cada host runner, onde o código de qualquer sessão pode ler o arquivo secreto. Prefira [runners sob demanda](https://code.claude.com/docs/pt/self-hosted-environments-configuration.md#on-demand-runners), onde o segredo fica no host do orquestrador, que nunca executa código do usuário, e cada runner recebe uma ordem de trabalho de uso único que registra exatamente um runner. Em uma frota fixa, trate o arquivo environment-secret como legível por cada sessão e gire o segredo após qualquer suspeita de comprometimento de sessão.25* **Mantenha o segredo do ambiente fora dos hosts que executam sessões**: o segredo do ambiente pode registrar runners e pegar qualquer sessão enfileirada no ambiente. Em uma frota fixa, ele vive em cada host runner, onde o código de qualquer sessão pode ler o arquivo secreto. Prefira [runners sob demanda](https://code.claude.com/docs/pt/self-hosted-environments-configuration.md#on-demand-runners), onde o segredo fica no host do orquestrador, que nunca executa código do usuário, e cada runner recebe uma ordem de trabalho de uso único que registra exatamente um runner. Em uma frota fixa, trate o arquivo environment-secret como legível por cada sessão e gire o segredo após qualquer suspeita de comprometimento de sessão.

26 * **Após uma suspeita de comprometimento**: peça a um [Owner](https://code.claude.com/docs/pt/cloud-environments.md#organization-shared-environments) que crie um novo segredo e revogue o antigo na aba **Configuration** do ambiente e, em seguida, distribua o novo. A Anthropic recusa todos os orquestradores e runners com o segredo antigo, incluindo os runners sob demanda criados a partir de suas ordens de trabalho. Seus runners são encerrados, interrompendo suas sessões.26 * **Após uma suspeita de comprometimento, primeiro revogue a sessão suspeita**: antes de interromper seu runner ou revogar o segredo, selecione **Revoke token** no menu da sessão na aba **Activity**. Nenhum runner poderá retomá-la depois disso.

27 * **Em seguida, substitua o segredo**: peça a um [Owner](https://code.claude.com/docs/pt/cloud-environments.md#organization-shared-environments) que crie um novo segredo e revogue o antigo na aba **Configuration** do ambiente e, em seguida, distribua o novo. A Anthropic recusa todos os orquestradores e runners com o segredo antigo, incluindo os runners sob demanda criados a partir de suas ordens de trabalho. Seus runners são encerrados, interrompendo suas sessões.

27* **Saída de rede padrão-negar**: restrinja o tráfego de saída do contêiner runner e sessão no seu próprio limite de rede em cada ambiente; [Saída padrão-negar](#default-deny-egress) cobre o que permitir e por quê.28* **Saída de rede padrão-negar**: restrinja o tráfego de saída do contêiner runner e sessão no seu próprio limite de rede em cada ambiente; [Saída padrão-negar](#default-deny-egress) cobre o que permitir e por quê.

28* **IAM de host com privilégio mínimo**: a identidade de computação anexada ao host runner, como um perfil de instância ou conta de serviço de nó, deve conceder apenas o que o próprio runner precisa. As sessões devem obter suas próprias credenciais através de seu script wrapper em vez de herdar a do host.29* **IAM de host com privilégio mínimo**: a identidade de computação anexada ao host runner, como um perfil de instância ou conta de serviço de nó, deve conceder apenas o que o próprio runner precisa. As sessões devem obter suas próprias credenciais através de seu script wrapper em vez de herdar a do host.

29* **Bloqueie o endpoint de metadados da nuvem das sessões**: manter as sessões fora da identidade do host requer bloquear seu acesso ao endpoint de metadados, e as políticas de saída no nível de sub-rede não interceptam o tráfego de metadados link-local, então bloqueie-o no próprio contêiner:30* **Bloqueie o endpoint de metadados da nuvem das sessões**: manter as sessões fora da identidade do host requer bloquear seu acesso ao endpoint de metadados, e as políticas de saída no nível de sub-rede não interceptam o tráfego de metadados link-local, então bloqueie-o no próprio contêiner:


243 244 

244Para cada sessão, um runner no Claude Code v2.1.267 ou posterior também registra uma linha `[runner:session]` contendo `governed git ACTIVE` quando a Anthropic serve o git da sessão, ou uma linha `[runner:warn]` contendo `the server withheld Anthropic-managed git for this session` quando não serve. Encontre a linha que você está vendo entre estes casos:245Para cada sessão, um runner no Claude Code v2.1.267 ou posterior também registra uma linha `[runner:session]` contendo `governed git ACTIVE` quando a Anthropic serve o git da sessão, ou uma linha `[runner:warn]` contendo `the server withheld Anthropic-managed git for this session` quando não serve. Encontre a linha que você está vendo entre estes casos:

245 246 

246* **Nem `governed git ACTIVE` nem a linha `withheld`**: um runner anterior ao Claude Code v2.1.267 não registra nenhuma das linhas, e a Anthropic não serve suas sessões. Atualize o runner para a v2.1.267 ou posterior seguindo [Fixe a versão](#pin-the-version).247* **Nem `governed git ACTIVE` nem a linha `withheld`**: se o runner for anterior ao Claude Code v2.1.267, a Anthropic não serve suas sessões. Atualize o runner para a v2.1.267 ou posterior seguindo [Fixe a versão](#pin-the-version).

247* **A linha `withheld`**: a Anthropic não serviu a sessão. Um runner que funcionava antes com o proxy git pode falhar dessa forma sem nenhuma mudança do seu lado.248* **A linha `withheld`**: a Anthropic não serviu a sessão. Um runner que funcionava antes com o proxy git pode falhar dessa forma sem nenhuma mudança do seu lado.

248 * **Um repositório não está em github.com**: uma sessão com mesmo um único repositório em outro host git, como GitHub Enterprise Server, não é servida, incluindo seus repositórios em github.com. [Desative o proxy git da Anthropic](#turn-the-anthropic-git-proxy-off) para os runners desse ambiente.249 * **Um repositório não está em github.com**: uma sessão com mesmo um único repositório em outro host git, como GitHub Enterprise Server, não é servida, incluindo seus repositórios em github.com. [Desative o proxy git da Anthropic](#turn-the-anthropic-git-proxy-off) para os runners desse ambiente.

249 * **Todos os repositórios estão em github.com**: relate a falha à [sua equipe de conta da Anthropic](#report-an-issue) com o ID da sessão da linha `withheld`. A Anthropic registra o motivo do lado dela.250 * **Todos os repositórios estão em github.com**: relate a falha à [sua equipe de conta da Anthropic](#report-an-issue) com o ID da sessão da linha `withheld`. A Anthropic registra o motivo do lado dela.


396Troque `linux-x64` por `linux-arm64` se seus nós forem ARM, ou por `linux-x64-musl` ou `linux-arm64-musl` em uma imagem baseada em musl, como Alpine; consulte [Configuração Alpine Linux](https://code.claude.com/docs/pt/setup.md#alpine-linux-and-musl-based-distributions) para os pacotes extras que imagens musl precisam. A URL é o local de lançamento padrão do Claude Code, para que você possa verificar o binário baixado contra o manifesto assinado do lançamento conforme descrito em [Integridade binária e assinatura de código](https://code.claude.com/docs/pt/setup.md#binary-integrity-and-code-signing). O runner requer Claude Code versão 2.1.224 ou posterior, ou 2.1.229 ou posterior para atender sessões do Claude Tag. Construa a imagem, depois envie-a para seu registro e a referencie nas receitas abaixo:397Troque `linux-x64` por `linux-arm64` se seus nós forem ARM, ou por `linux-x64-musl` ou `linux-arm64-musl` em uma imagem baseada em musl, como Alpine; consulte [Configuração Alpine Linux](https://code.claude.com/docs/pt/setup.md#alpine-linux-and-musl-based-distributions) para os pacotes extras que imagens musl precisam. A URL é o local de lançamento padrão do Claude Code, para que você possa verificar o binário baixado contra o manifesto assinado do lançamento conforme descrito em [Integridade binária e assinatura de código](https://code.claude.com/docs/pt/setup.md#binary-integrity-and-code-signing). O runner requer Claude Code versão 2.1.224 ou posterior, ou 2.1.229 ou posterior para atender sessões do Claude Tag. Construa a imagem, depois envie-a para seu registro e a referencie nas receitas abaixo:

397 398 

398```bash theme={null}399```bash theme={null}

400# If your model needs a newer release, change stable to latest in the URL

399docker build \401docker build \

400 --build-arg CLAUDE_CODE_VERSION="$(curl -fsSL https://downloads.claude.ai/claude-code-releases/stable)" \402 --build-arg CLAUDE_CODE_VERSION="$(curl -fsSL https://downloads.claude.ai/claude-code-releases/stable)" \

401 -t <your-registry>/claude-runner:latest .403 -t <your-registry>/claude-runner:latest .


429O runner usa `--capacity` para limitar quantas sessões ele executa de uma vez. Ele não divide CPU ou memória entre elas, então as sessões em um runner compartilham a CPU e memória do contêiner. Para evitar que o uso de memória de uma sessão encerre as outras, execute uma sessão por runner com [seu próprio limite de memória](#give-each-session-its-own-memory-limit).431O runner usa `--capacity` para limitar quantas sessões ele executa de uma vez. Ele não divide CPU ou memória entre elas, então as sessões em um runner compartilham a CPU e memória do contêiner. Para evitar que o uso de memória de uma sessão encerre as outras, execute uma sessão por runner com [seu próprio limite de memória](#give-each-session-its-own-memory-limit).

430 432 

431* **Uma sessão por runner**: dê a cada contêiner os valores de uma sessão. Use este dimensionamento em `--capacity 1`, que a [seção de endurecimento](#harden-your-deployment) recomenda, e para [runners sob demanda](https://code.claude.com/docs/pt/self-hosted-environments-configuration.md#on-demand-runners), onde você define os valores na carga de trabalho que seu [hook `spawn-runner`](https://code.claude.com/docs/pt/self-hosted-environments-configuration#the-spawn-runner-hook) submete, como um modelo de pod de um Kubernetes Job.433* **Uma sessão por runner**: dê a cada contêiner os valores de uma sessão. Use este dimensionamento em `--capacity 1`, que a [seção de endurecimento](#harden-your-deployment) recomenda, e para [runners sob demanda](https://code.claude.com/docs/pt/self-hosted-environments-configuration.md#on-demand-runners), onde você define os valores na carga de trabalho que seu [hook `spawn-runner`](https://code.claude.com/docs/pt/self-hosted-environments-configuration#the-spawn-runner-hook) submete, como um modelo de pod de um Kubernetes Job.

432* **Várias sessões por runner**: em um `--capacity` acima de um, multiplique os valores de uma sessão pela capacidade, porque até muitas sessões podem ser executadas no contêiner ao mesmo tempo. As receitas [Kubernetes](#kubernetes) e [Docker Compose](#docker-compose) executam `--capacity 4` sem limites de CPU ou memória, então adicione limites dimensionados para a capacidade que você executa.434* **Várias sessões por runner**: em um `--capacity` acima de um, multiplique os valores de uma sessão pela capacidade, porque até essa quantidade de sessões pode ser executada no contêiner ao mesmo tempo, [incluindo as ociosas](#release-idle-sessions-on-a-fixed-fleet). As receitas [Kubernetes](#kubernetes) e [Docker Compose](#docker-compose) executam `--capacity 4` sem limites de CPU ou memória, então adicione limites dimensionados para a capacidade que você executa.

433* **Vários contêineres de runner em um host**: dimensione o host para a soma das capacidades dos runners, porque cada runner conta apenas suas próprias sessões em relação ao `--capacity`:435* **Vários contêineres de runner em um host**: dimensione o host para a soma das capacidades dos runners, porque cada runner conta apenas suas próprias sessões em relação ao `--capacity`:

434 436 

435 * **Memória**: multiplique a memória de uma sessão pela soma e, em seguida, adicione o que os próprios processos do host usam437 * **Memória**: multiplique a memória de uma sessão pela soma e, em seguida, adicione o que os próprios processos do host usam

Details

56| `--session-stop-grace-sec <n>` | `SELF_HOSTED_RUNNER_SESSION_STOP_GRACE_MS` | `5` | Quanto tempo aguardar para que o processo Claude saia limpo após uma sessão terminar, antes de forçar o encerramento. Aumente o valor se os hooks `SessionEnd` do próprio filho precisarem de mais tempo. |56| `--session-stop-grace-sec <n>` | `SELF_HOSTED_RUNNER_SESSION_STOP_GRACE_MS` | `5` | Quanto tempo aguardar para que o processo Claude saia limpo após uma sessão terminar, antes de forçar o encerramento. Aumente o valor se os hooks `SessionEnd` do próprio filho precisarem de mais tempo. |

57| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | Quanto tempo aguardar por um processo filho que não inicializou antes de liberar o slot da sessão. Consulte [Timeout de inicialização da sessão](#session-startup-timeout) para saber onde a contagem começa e quais sessões ela deixa em execução. `0` desabilita o timeout. |57| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | Quanto tempo aguardar por um processo filho que não inicializou antes de liberar o slot da sessão. Consulte [Timeout de inicialização da sessão](#session-startup-timeout) para saber onde a contagem começa e quais sessões ela deixa em execução. `0` desabilita o timeout. |

58| `--trust-workspace [bool]` | `SELF_HOSTED_RUNNER_TRUST_WORKSPACE` | ativado | Semeie confiança persistida para cada caminho de repositório de sessão para que `permissions.allow` e `additionalDirectories` confirmados no repo sejam honrados. Defina `false` para descartar concessões de permissão confirmadas no repo e configure regras de permissão no `settings.json` da configuração do host em vez disso; configurações `sandbox.*` confirmadas no repositório ainda se aplicam de qualquer forma, é por isso que a [proteção de configurações do repo](https://code.claude.com/docs/pt/self-hosted-environments-deploy.md#harden-your-deployment) as verifica independentemente deste sinalizador. |58| `--trust-workspace [bool]` | `SELF_HOSTED_RUNNER_TRUST_WORKSPACE` | ativado | Semeie confiança persistida para cada caminho de repositório de sessão para que `permissions.allow` e `additionalDirectories` confirmados no repo sejam honrados. Defina `false` para descartar concessões de permissão confirmadas no repo e configure regras de permissão no `settings.json` da configuração do host em vez disso; configurações `sandbox.*` confirmadas no repositório ainda se aplicam de qualquer forma, é por isso que a [proteção de configurações do repo](https://code.claude.com/docs/pt/self-hosted-environments-deploy.md#harden-your-deployment) as verifica independentemente deste sinalizador. |

59| `--use-anthropic-git-proxy` | `CLAUDE_RUNNER_USE_GIT_PROXY=1` | desligado | Clone repositórios no github.com via [proxy git da Anthropic](https://code.claude.com/docs/pt/self-hosted-environments-deploy.md#use-the-anthropic-git-proxy) em vez de autenticação git gerenciada pelo cliente. Requer `--capacity 1` e git 2.32 ou mais recente; o executor recusa iniciar caso contrário. Substitui as flags de reescrita. |59| `--use-anthropic-git-proxy` | `CLAUDE_RUNNER_USE_GIT_PROXY=1` | desligado | Clone repositórios no github.com via [proxy git da Anthropic](https://code.claude.com/docs/pt/self-hosted-environments-deploy.md#use-the-anthropic-git-proxy) em vez de autenticação git gerenciada pelo cliente. Requer `--capacity 1` e git 2.32 ou mais recente; o executor recusa iniciar caso contrário. Também requer Claude Code v2.1.267 ou posterior. Substitui as flags de reescrita. |

60 60 

61A maioria dos sinalizadores de duração tem um máximo, escolhido para manter cada tempo limite dentro do teto do temporizador de 32 bits do tempo de execução de aproximadamente 24,85 dias. Os sinalizadores `--*-min` limitam a 10080 minutos, 7 dias; `--drain-grace-sec` a 604800 segundos, também 7 dias; e `--drain-wait-sec` a 86400 segundos, 24 horas. `--session-stop-grace-sec` e `--post-session-hook-timeout-sec` não têm limite. Exceder um limite se comporta diferentemente por superfície:61A maioria dos sinalizadores de duração tem um máximo, escolhido para manter cada tempo limite dentro do teto do temporizador de 32 bits do tempo de execução de aproximadamente 24,85 dias. Os sinalizadores `--*-min` limitam a 10080 minutos, 7 dias; `--drain-grace-sec` a 604800 segundos, também 7 dias; e `--drain-wait-sec` a 86400 segundos, 24 horas. `--session-stop-grace-sec` e `--post-session-hook-timeout-sec` não têm limite. Exceder um limite se comporta diferentemente por superfície:

62 62 


159 159 

160Quando o [conector SCM](#scm-connector-flags) está configurado, o corpo `/healthz` do orquestrador também carrega `scm_connector_connected` e um objeto `scm_connector` com `connected`, `last_connected_at`, `last_error`, `reconnects` e `requests_forwarded`. Ambos os campos são `null` quando `--scm-connector-host` não está definido.160Quando o [conector SCM](#scm-connector-flags) está configurado, o corpo `/healthz` do orquestrador também carrega `scm_connector_connected` e um objeto `scm_connector` com `connected`, `last_connected_at`, `last_error`, `reconnects` e `requests_forwarded`. Ambos os campos são `null` quando `--scm-connector-host` não está definido.

161 161 

162## Métricas Prometheus162## Métricas do Prometheus

163 163 

164Cada executor serve métricas Prometheus em `GET /metrics` na mesma porta que `/healthz`. Séries principais:164Cada executor serve métricas do Prometheus em `GET /metrics` na mesma porta que `/healthz`. Principais séries:

165 165 

166| Série | Notas |166| Série | Observações |

167| :- | :- |167| :- | :- |

168| `claude_code_self_hosted_runner_info{runner_id,version,client_label}` | Sempre `1`; útil para inventário de frota e detecção de desvio de versão |168| `claude_code_self_hosted_runner_info{runner_id,version,client_label}` | Sempre `1`; útil para inventário da frota e detecção de divergência de versões |

169| `claude_code_self_hosted_runner_capacity` | `--capacity` configurado |169| `claude_code_self_hosted_runner_capacity` | `--capacity` configurado |

170| `claude_code_self_hosted_runner_active_sessions` | Sessões em execução no momento |170| `claude_code_self_hosted_runner_active_sessions` | Sessões em execução no momento |

171| `claude_code_self_hosted_runner_locked_account{email}` | Presente uma vez que o executor tenha bloqueado para um usuário e um token de sessão carregando uma reivindicação `act.email` tenha sido emitido. A série está ausente em um executor bloqueado para um agente Claude Tag, cujos tokens de sessão não carregam `act.email`. O valor do rótulo é o email da conta; se sua loja de métricas for amplamente legível, solte ou hash o rótulo no tempo de raspagem, por exemplo com `metric_relabel_configs` do Prometheus. |171| `claude_code_self_hosted_runner_locked_account{email}` | Presente assim que o executor tiver sido bloqueado para um usuário e um token de sessão contendo uma claim `act.email` tiver sido emitido. A série fica ausente em um executor bloqueado para um agente Claude Tag, cujos tokens de sessão não contêm `act.email`. O valor do rótulo é o e-mail da conta; se o seu armazenamento de métricas for amplamente legível, descarte ou aplique hash ao rótulo no momento da coleta, por exemplo com `metric_relabel_configs` do Prometheus. |

172| `claude_code_self_hosted_runner_last_poll_age_seconds` | Segundos desde a última pesquisa bem-sucedida. Alerte se acima de 60. |172| `claude_code_self_hosted_runner_last_poll_age_seconds` | Segundos desde o último polling bem-sucedido. Alerte se for superior a 60. |

173| `claude_code_self_hosted_runner_poll_errors_total{error_kind}` | Falhas cumulativas de PollWork por tipo: `transport`, `timeout`, `5xx`, `429` ou `4xx`. Todas as cinco séries estão presentes desde o início do processo; alerte em `rate(...[5m]) > 0`. |173| `claude_code_self_hosted_runner_poll_errors_total{error_kind}` | Falhas cumulativas de PollWork por tipo: `transport`, `timeout`, `5xx`, `429` ou `4xx`. Todas as cinco séries estão presentes desde o início do processo; alerte em `rate(...[5m]) > 0`. |

174| `claude_code_self_hosted_runner_sessions_started_total{client_platform}` | Processos filhos de sessão gerados durante a vida útil do executor, uma série por origem de sessão como `web_claude_ai`, `ios`, `android`, `desktop_app` ou `claude_code_cli`, ou `unknown` quando o servidor não enviou um. Sessões Slack carregam `claude_in_slack` ou `claude-in-slack` dependendo de qual integração Slack as criou, então combine ambas com um seletor regex como `{client_platform=~"claude[-_]in[-_]slack"}`. Use `sum()` para o total da frota. |174| `claude_code_self_hosted_runner_sessions_started_total{client_platform}` | Processos filhos de sessão iniciados ao longo da vida útil do executor, uma série por origem de sessão, como `web_claude_ai`, `ios`, `android`, `desktop_app` ou `claude_code_cli`, ou `unknown` quando o servidor não enviou nenhuma. Sessões do Slack têm `claude_in_slack` ou `claude-in-slack`, dependendo de qual integração do Slack as criou, portanto capture ambas com um seletor de regex como `{client_platform=~"claude[-_]in[-_]slack"}`. Use `sum()` para o total da frota. |

175| `claude_code_self_hosted_runner_sessions_completed_total{client_platform}` | Sessões que terminaram limpo, rotuladas da mesma forma. Mais amplo que uma saída limpa simples: consulte [semântica do contador de ciclo de vida da sessão](#session-lifecycle-counter-semantics) para o que conta. |175| `claude_code_self_hosted_runner_sessions_completed_total{client_platform}` | Sessões que terminaram de forma limpa, rotuladas da mesma forma. Mais abrangente do que uma simples saída limpa: consulte [semântica dos contadores do ciclo de vida da sessão](#session-lifecycle-counter-semantics) para saber o que é contado. |

176| `claude_code_self_hosted_runner_sessions_failed_total{client_platform}` | Sessões que terminaram em falha, rotuladas da mesma forma. Mesma ressalva: consulte [semântica do contador de ciclo de vida da sessão](#session-lifecycle-counter-semantics). |176| `claude_code_self_hosted_runner_sessions_failed_total{client_platform}` | Sessões que terminaram em falha, rotuladas da mesma forma. Mesma ressalva: consulte [semântica dos contadores do ciclo de vida da sessão](#session-lifecycle-counter-semantics). |

177| `claude_code_self_hosted_runner_sessions_interrupted_total{client_platform}` | Sessões que o executor encerrou por um motivo operacional em vez de um resultado de sessão, rotuladas da mesma forma. Consulte [semântica do contador de ciclo de vida da sessão](#session-lifecycle-counter-semantics). |177| `claude_code_self_hosted_runner_sessions_interrupted_total{client_platform}` | Sessões que o executor encerrou por um motivo operacional, e não por um resultado da sessão, rotuladas da mesma forma. Consulte [semântica dos contadores do ciclo de vida da sessão](#session-lifecycle-counter-semantics). |

178| `claude_code_self_hosted_runner_initializing_sessions` | Sessões atualmente na fase de inicialização, da atribuição até o evento de inicialização do filho |178| `claude_code_self_hosted_runner_initializing_sessions` | Sessões atualmente na fase de inicialização, desde a atribuição até o evento de inicialização do processo filho |

179| `claude_code_self_hosted_runner_session_init_duration_seconds` | Histograma de durações de inicialização de sessão |179| `claude_code_self_hosted_runner_session_init_duration_seconds` | Histograma das durações de inicialização de sessão |

180| `claude_code_self_hosted_runner_session_init_errors_total` | Sessões que falharam antes de atingir a inicialização: falha de hook de checkout, preparação git, problema de token ou falha de filho pré-inicialização |180| `claude_code_self_hosted_runner_session_init_errors_total` | Sessões que falharam antes de chegar à inicialização: uma falha de hook de checkout, preparação do git, problema de token ou uma falha do processo filho antes da inicialização |

181| `claude_code_self_hosted_runner_session_start_hook_errors_total` | Hooks `SessionStart` que relataram um resultado de erro, um por execução de hook falhando |181| `claude_code_self_hosted_runner_session_start_hook_errors_total` | Hooks `SessionStart` que relataram um resultado de erro, um por execução de hook com falha |

182| `claude_code_self_hosted_runner_session_idle_seconds{session_id,client_platform}` | Medidor por sessão de segundos desde que a sessão ficou ociosa. Útil para encerrar sessões presas em um prompt de permissão sem resposta. |182| `claude_code_self_hosted_runner_session_idle_seconds{session_id,client_platform}` | Gauge por sessão dos segundos desde que a sessão ficou ociosa. Útil para encerrar sessões presas em um prompt de permissão não respondido. |

183 183 

184O orquestrador serve suas próprias séries em `GET /metrics` na mesma porta que seu `/healthz`:184O orquestrador serve suas próprias séries em `GET /metrics` na mesma porta que seu `/healthz`:

185 185 

186| Série | Notas |186| Série | Observações |

187| :- | :- |187| :- | :- |

188| `claude_code_self_hosted_orchestrator_info{version,pool_id,orchestrator_uuid,hostname}` | Sempre `1` |188| `claude_code_self_hosted_orchestrator_info{version,pool_id,orchestrator_uuid,hostname}` | Sempre `1` |

189| `claude_code_self_hosted_orchestrator_connected` | `1` quando a pesquisa mais recente foi bem-sucedida; cai para `0` após qualquer pesquisa falhada, seja qual for o tipo de falha |189| `claude_code_self_hosted_orchestrator_connected` | `1` quando o polling mais recente foi bem-sucedido; cai para `0` após qualquer polling com falha, qualquer que seja o tipo de falha |

190| `claude_code_self_hosted_orchestrator_last_poll_age_seconds` | Segundos desde a última tentativa de pesquisa, sucesso ou falha, diferentemente da métrica identicamente nomeada do executor, que mede desde o último sucesso; emparelhe com `connected` para capturar pesquisas falhadas. O loop de pesquisa do orquestrador aguarda a execução do hook, então alerte acima de `--hook-timeout` mais uma margem, cerca de 90 segundos nos padrões, em vez de um 60 fixo. |190| `claude_code_self_hosted_orchestrator_last_poll_age_seconds` | Segundos desde a última tentativa de polling, com sucesso ou falha, diferentemente da métrica de nome idêntico do executor, que mede desde o último sucesso; combine com `connected` para detectar pollings com falha. O loop de polling do orquestrador aguarda a execução de hooks, então alerte acima de `--hook-timeout` mais uma margem, cerca de 90 segundos com os padrões, em vez de um valor fixo de 60. |

191| `claude_code_self_hosted_orchestrator_poll_errors_total{error_kind}` | Falhas cumulativas de PollSpawnHints por tipo: `transport`, `timeout`, `5xx`, `429` ou `4xx`. Todas as cinco séries estão presentes desde o início do processo; alerte em `rate(...[5m]) > 0`. |191| `claude_code_self_hosted_orchestrator_poll_errors_total{error_kind}` | Falhas cumulativas de PollSpawnHints por tipo: `transport`, `timeout`, `5xx`, `429` ou `4xx`. Todas as cinco séries estão presentes desde o início do processo; alerte em `rate(...[5m]) > 0`. |

192| `claude_code_self_hosted_orchestrator_queue_pending_sessions` | Solicitações de geração reivindicáveis agora |192| `claude_code_self_hosted_orchestrator_queue_pending_sessions` | Requisições de inicialização que podem ser reivindicadas agora |

193| `claude_code_self_hosted_orchestrator_queue_backing_off_sessions` | Solicitações de geração em backoff de repetição após uma falha de hook retentável |193| `claude_code_self_hosted_orchestrator_queue_backing_off_sessions` | Requisições de inicialização em backoff de retry após uma falha de hook que permite nova tentativa |

194| `claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions` | Sessões impedidas de serem geradas. Cada uma permanece bloqueada até que um usuário envie uma nova mensagem para ela ou um Owner a tente novamente na aba **Activity** do ambiente. A contagem pode permanecer acima de zero depois que você corrigir a causa. Alerte se acima de zero. |194| `claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions` | Sessões impedidas de serem iniciadas. Cada uma permanece bloqueada até que um usuário envie uma nova mensagem a ela ou que um Owner tente novamente a partir da guia **Activity** do ambiente. A contagem pode permanecer acima de zero depois que você corrigir a causa. Alerte se for superior a zero. |

195| `claude_code_self_hosted_orchestrator_pool_pending_sessions` | Total de sessões aguardando um executor para este ambiente. Agregado em toda a organização, idêntico em cada instância do orquestrador: use `MAX` em vez de `SUM` entre instâncias. |195| `claude_code_self_hosted_orchestrator_pool_pending_sessions` | Total de sessões aguardando um executor para este ambiente. Agregado de todo o ambiente, idêntico em todas as instâncias do orquestrador: use `MAX` em vez de `SUM` entre as instâncias. |

196| `claude_code_self_hosted_orchestrator_pool_active_sessions` | Sessões atualmente atribuídas a um executor vivo neste ambiente. Agregado em toda a organização, idêntico em cada instância do orquestrador: use `MAX` em vez de `SUM` entre instâncias. |196| `claude_code_self_hosted_orchestrator_pool_active_sessions` | Sessões atualmente atribuídas a um executor ativo neste ambiente. Agregado de todo o ambiente, idêntico em todas as instâncias do orquestrador: use `MAX` em vez de `SUM` entre as instâncias. |

197| `claude_code_self_hosted_orchestrator_spawn_hooks_total{result}` | Resultados cumulativos de hook `spawn-runner`: `ok`, `retryable`, `non_retryable`. Conta invocações de hook do orquestrador, não filhos de sessão que os executores geram: não comparável a `sessions_started_total`, já que capacidade acima de um, pools quentes e executores gerados novamente para a mesma sessão divergem os dois. |197| `claude_code_self_hosted_orchestrator_spawn_hooks_total{result}` | Resultados cumulativos do hook `spawn-runner`: `ok`, `retryable`, `non_retryable`. Conta invocações de hook do orquestrador, não processos filhos de sessão que os executores iniciam: não é comparável a `sessions_started_total`, pois capacidade acima de um, pools pré-aquecidos e executores iniciados novamente para a mesma sessão fazem os dois divergirem. |

198| `claude_code_self_hosted_orchestrator_spawn_hook_duration_seconds` | Histograma de durações de hook |198| `claude_code_self_hosted_orchestrator_spawn_hook_duration_seconds` | Histograma das durações de hooks |

199| `claude_code_self_hosted_orchestrator_warm_hints_dispatched_total` | Solicitações de geração de espera despachadas desde o início do processo |199| `claude_code_self_hosted_orchestrator_warm_hints_dispatched_total` | Requisições de inicialização em standby despachadas desde o início do processo |

200| `claude_code_self_hosted_orchestrator_session_queue_wait_seconds` | Histograma de segundos que cada sessão aguardou na fila antes do orquestrador reivindicá-la para geração, registrado do timestamp de espera de fila que o plano de controle envia com cada solicitação de geração de sessão. Use para alertas de tempo de fila p50/p99. Gerações de pré-aquecimento não são amostradas. |200| `claude_code_self_hosted_orchestrator_session_queue_wait_seconds` | Histograma dos segundos que cada sessão aguardou na fila antes de o orquestrador reivindicá-la para inicialização, registrado a partir do timestamp de espera na fila que o plano de controle envia com a requisição de inicialização de cada sessão. Use para alertas de tempo de fila p50/p99. Inicializações de pré-aquecimento não são amostradas. |

201| `claude_code_self_hosted_orchestrator_clock_skew_seconds` | Desvio de relógio local menos servidor; diagnóstico, presente uma vez medido |201| `claude_code_self_hosted_orchestrator_clock_skew_seconds` | Desvio de relógio local menos servidor; diagnóstico, presente assim que medido |

202| `claude_code_self_hosted_orchestrator_scm_connector_connected` | `1` quando o WebSocket do [conector SCM](#scm-connector-flags) está aberto; `0` enquanto disca ou faz backoff. Ausente quando `--scm-connector-host` não está definido. |202| `claude_code_self_hosted_orchestrator_scm_connector_connected` | `1` quando o WebSocket do [conector SCM](#scm-connector-flags) está aberto; `0` enquanto está discando ou em backoff. Ausente quando `--scm-connector-host` não está definido. |

203| `claude_code_self_hosted_orchestrator_scm_connector_requests_forwarded_total` | Solicitações HTTP cumulativas proxied para o host SCM configurado desde o início do processo. Ausente quando `--scm-connector-host` não está definido. |203| `claude_code_self_hosted_orchestrator_scm_connector_requests_forwarded_total` | Requisições HTTP cumulativas encaminhadas via proxy para o host SCM configurado desde o início do processo. Ausente quando `--scm-connector-host` não está definido. |

204 204 

205Para dimensionamento automático, escolha a série que corresponde ao seu estilo de dimensionamento e controle-a antes de alimentar o escalador:205Para autoscaling, escolha a série que corresponde ao seu estilo de escalonamento e aplique um filtro antes que ela alimente o escalonador:

206 206 

207* **Dimensionamento de profundidade de fila**: alimente `claude_code_self_hosted_orchestrator_pool_pending_sessions` em seu escalador HPA ou KEDA, não `queue_pending_sessions`.207* **Escalonamento por profundidade da fila**: alimente seu escalonador HPA ou KEDA com `claude_code_self_hosted_orchestrator_pool_pending_sessions`, não com `queue_pending_sessions`.

208* **Dimensionamento de capacidade**: dimensione na proporção de `active_sessions` do executor para `capacity`.208* **Escalonamento por capacidade**: escalone com base na razão entre `active_sessions` e `capacity` do executor.

209* **Controle em `connected`**: filtre a consulta com `claude_code_self_hosted_orchestrator_connected == 1` por instância, para que o valor obsoleto de uma réplica desconectada não alimente o escalador.209* **Filtre por `connected`**: filtre a consulta com `claude_code_self_hosted_orchestrator_connected == 1` por instância, para que o valor desatualizado de uma réplica desconectada não alimente o escalonador.

210 210 

211Durante uma interrupção completa de pesquisa, cada réplica desconectada, a consulta controlada não retorna dados. HPA mantém a contagem de réplica atual em uma métrica ausente, mas o escalador Prometheus do KEDA em seu padrão `ignoreNullValues: "true"` lê o resultado vazio como zero e reduz; defina `ignoreNullValues: "false"` no ScaledObject, opcionalmente com um piso de réplica `fallback`.211Durante uma interrupção total do polling, com todas as réplicas desconectadas, a consulta filtrada não retorna dados. O HPA mantém a contagem atual de réplicas quando uma métrica está ausente, mas o escalonador Prometheus do KEDA, com seu padrão `ignoreNullValues: "true"`, lê o resultado vazio como zero e reduz a escala; defina `ignoreNullValues: "false"` no ScaledObject, opcionalmente com um piso de réplicas de `fallback`.

212 212 

213O seguinte `PodMonitor` do Prometheus Operator cobre ambos os processos. Ele seleciona pods pelo rótulo `app.kubernetes.io/part-of: claude-code-self-hosted-runner` e a porta nomeada `health` que a [receita Kubernetes](https://code.claude.com/docs/pt/self-hosted-environments-deploy.md#kubernetes) define; ajuste os namespaces para corresponder à sua implantação:213O `PodMonitor` do Prometheus Operator a seguir abrange ambos os processos. Ele seleciona pods pelo rótulo `app.kubernetes.io/part-of: claude-code-self-hosted-runner` e pela porta nomeada `health` que a [receita do Kubernetes](https://code.claude.com/docs/pt/self-hosted-environments-deploy.md#kubernetes) define; ajuste os namespaces para corresponder à sua implantação:

214 214 

215```yaml theme={null}215```yaml theme={null}

216# Exemplo de PodMonitor do Prometheus Operator para o executor +216# Exemplo de PodMonitor do Prometheus Operator para o executor auto-hospedado

217# orquestrador auto-hospedado Claude Code. Ajuste o namespace e os seletores217# + orquestrador do Claude Code. Ajuste o namespace e os seletores de rótulos para

218# de rótulo para corresponder à sua implantação. Tanto o executor quanto o218# corresponder à sua implantação. Tanto o executor quanto o orquestrador servem /metrics

219# orquestrador servem /metrics em seu --health-port (padrão 8080).219# em sua --health-port (padrão 8080).

220apiVersion: monitoring.coreos.com/v1220apiVersion: monitoring.coreos.com/v1

221kind: PodMonitor221kind: PodMonitor

222metadata:222metadata:


228 - claude-runners228 - claude-runners

229 selector:229 selector:

230 matchExpressions:230 matchExpressions:

231 # Corresponde ao Deployment do executor da receita Kubernetes, mais231 # Corresponde ao Deployment do executor da receita do Kubernetes, além de

232 # qualquer Job de executor sob demanda e pods do orquestrador que você232 # quaisquer Jobs de executor sob demanda e pods do orquestrador que você rotule

233 # rotula da mesma forma e dá uma containerPort 'health' nomeada.233 # da mesma forma e aos quais atribua uma containerPort nomeada 'health'.

234 - key: app.kubernetes.io/part-of234 - key: app.kubernetes.io/part-of

235 operator: In235 operator: In

236 values: [claude-code-self-hosted-runner]236 values: [claude-code-self-hosted-runner]


240 interval: 30s240 interval: 30s

241```241```

242 242 

243### Regras de alerta de exemplo243### Exemplos de regras de alerta

244 244 

245Essas regras de alerta de exemplo são um ponto de partida; ajuste os limites para o tamanho da sua frota:245Estes exemplos de regras de alerta são um ponto de partida; ajuste os limites para o tamanho da sua frota:

246 246 

247```yaml theme={null}247```yaml theme={null}

248# Exemplo de regras de alerta Prometheus para o executor + orquestrador248# Exemplos de regras de alerta do Prometheus para o executor auto-hospedado

249# auto-hospedado Claude Code. Ajuste os limites para o tamanho da sua frota249# + orquestrador do Claude Code. Ajuste os limites para o tamanho da sua frota e SLOs.

250# e SLOs.

251groups:250groups:

252 - name: claude-code-self-hosted-runner251 - name: claude-code-self-hosted-runner

253 rules:252 rules:


256 for: 2m255 for: 2m

257 labels: {severity: warning}256 labels: {severity: warning}

258 annotations:257 annotations:

259 summary: "Executor {{ $labels.pod }} não pesquisou em >60s"258 summary: "Runner {{ $labels.pod }} has not polled in >60s"

260 - alert: ClaudeRunnerVersionDrift259 - alert: ClaudeRunnerVersionDrift

261 expr: count(count by (version) (claude_code_self_hosted_runner_info)) > 1260 expr: count(count by (version) (claude_code_self_hosted_runner_info)) > 1

262 for: 30m261 for: 30m

263 labels: {severity: info}262 labels: {severity: info}

264 annotations:263 annotations:

265 summary: "Executores estão executando versões mistas"264 summary: "Runners are running mixed versions"

266 - alert: ClaudeRunnerInitErrorsHigh265 - alert: ClaudeRunnerInitErrorsHigh

267 expr: sum by (namespace) (increase(claude_code_self_hosted_runner_session_init_errors_total[10m])) > 3266 expr: sum by (namespace) (increase(claude_code_self_hosted_runner_session_init_errors_total[10m])) > 3

268 for: 5m267 for: 5m

269 labels: {severity: warning}268 labels: {severity: warning}

270 annotations:269 annotations:

271 summary: "Sessões estão falhando antes da inicialização (hook de checkout / git / token / falha pré-inicialização)"270 summary: "Sessions are failing before init (checkout hook / git / token / pre-init crash)"

272 - alert: ClaudeRunnerPollErrors271 - alert: ClaudeRunnerPollErrors

273 expr: sum by (pod) (rate(claude_code_self_hosted_runner_poll_errors_total[5m])) > 0272 expr: sum by (pod) (rate(claude_code_self_hosted_runner_poll_errors_total[5m])) > 0

274 for: 2m273 for: 2m

275 labels: {severity: warning}274 labels: {severity: warning}

276 annotations:275 annotations:

277 summary: "Executor {{ $labels.pod }}: PollWork falhando ({{ $value | humanize }}/s em 5m)"276 summary: "Runner {{ $labels.pod }}: PollWork failing ({{ $value | humanize }}/s over 5m)"

278 - alert: ClaudeRunnerSessionStartHookErrors277 - alert: ClaudeRunnerSessionStartHookErrors

279 expr: sum by (namespace) (increase(claude_code_self_hosted_runner_session_start_hook_errors_total[10m])) > 3278 expr: sum by (namespace) (increase(claude_code_self_hosted_runner_session_start_hook_errors_total[10m])) > 3

280 for: 5m279 for: 5m

281 labels: {severity: warning}280 labels: {severity: warning}

282 annotations:281 annotations:

283 summary: "Hooks SessionStart estão falhando"282 summary: "SessionStart hooks are failing"

284 283 

285 - name: claude-code-self-hosted-orchestrator284 - name: claude-code-self-hosted-orchestrator

286 rules:285 rules:


289 for: 2m288 for: 2m

290 labels: {severity: critical}289 labels: {severity: critical}

291 annotations:290 annotations:

292 summary: "Orquestrador {{ $labels.pod }} não consegue alcançar o plano de controle Anthropic"291 summary: "Orchestrator {{ $labels.pod }} cannot reach the Anthropic control plane"

293 - alert: ClaudeOrchestratorPollStale292 - alert: ClaudeOrchestratorPollStale

294 expr: claude_code_self_hosted_orchestrator_last_poll_age_seconds > 90293 expr: claude_code_self_hosted_orchestrator_last_poll_age_seconds > 90

295 for: 2m294 for: 2m

296 labels: {severity: warning}295 labels: {severity: warning}

297 annotations:296 annotations:

298 summary: "Orquestrador {{ $labels.pod }} não pesquisou em >90s (loop de pesquisa aguarda execução de hook)"297 summary: "Orchestrator {{ $labels.pod }} has not polled in >90s (poll loop waits on hook execution)"

299 - alert: ClaudeOrchestratorCircuitBroken298 - alert: ClaudeOrchestratorCircuitBroken

300 expr: max by (namespace) (claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions and on (instance) max_over_time(claude_code_self_hosted_orchestrator_connected[2m]) == 1) > 0299 expr: max by (namespace) (claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions and on (instance) max_over_time(claude_code_self_hosted_orchestrator_connected[2m]) == 1) > 0

301 for: 1m300 for: 1m

302 labels: {severity: critical}301 labels: {severity: critical}

303 annotations:302 annotations:

304 summary: "Sessões impedidas de serem geradas: {{ $value }}. Leia o erro de cada uma na aba Activity, corrija a causa e então selecione Retry"303 summary: "Sessions blocked from spawning: {{ $value }}. Read each one's error in the Activity tab, fix the cause, then select Retry"

305 - alert: ClaudeOrchestratorPollErrors304 - alert: ClaudeOrchestratorPollErrors

306 expr: sum by (pod) (rate(claude_code_self_hosted_orchestrator_poll_errors_total[5m])) > 0305 expr: sum by (pod) (rate(claude_code_self_hosted_orchestrator_poll_errors_total[5m])) > 0

307 for: 2m306 for: 2m

308 labels: {severity: warning}307 labels: {severity: warning}

309 annotations:308 annotations:

310 summary: "Orquestrador {{ $labels.pod }}: PollSpawnHints falhando ({{ $value | humanize }}/s em 5m)"309 summary: "Orchestrator {{ $labels.pod }}: PollSpawnHints failing ({{ $value | humanize }}/s over 5m)"

311 - alert: ClaudeOrchestratorSpawnHookFailing310 - alert: ClaudeOrchestratorSpawnHookFailing

312 expr: sum by (pod) (increase(claude_code_self_hosted_orchestrator_spawn_hooks_total{result!="ok"}[5m])) > 3311 expr: sum by (pod) (increase(claude_code_self_hosted_orchestrator_spawn_hooks_total{result!="ok"}[5m])) > 3

313 for: 5m312 for: 5m

314 labels: {severity: warning}313 labels: {severity: warning}

315 annotations:314 annotations:

316 summary: "Orquestrador {{ $labels.pod }}: >3 falhas de hook spawn-runner em 5m"315 summary: "Orchestrator {{ $labels.pod }}: >3 spawn-runner hook failures in 5m"

317```316```

318 317 

319### Alertar sobre executores perdidos e sessões em espera318### Alertar sobre executores perdidos e sessões em espera

320 319 

321Para ser alertado quando executores forem perdidos, sessões aguardarem ou o orquestrador estiver fora do ar, carregue estas regras de alerta do Prometheus ao lado das [regras de alerta de exemplo](#sample-alert-rules):320Para ser alertado quando executores forem perdidos, sessões estiverem aguardando ou o orquestrador estiver fora do ar, carregue estas regras de alerta do Prometheus junto com os [exemplos de regras de alerta](#sample-alert-rules):

322 321 

323* **[Frota fixa](https://code.claude.com/docs/pt/self-hosted-environments-deploy.md#scale-the-fleet)**: `ClaudeRunnersBelowFloor`322* **[Frota fixa](https://code.claude.com/docs/pt/self-hosted-environments-deploy.md#scale-the-fleet)**: `ClaudeRunnersBelowFloor`

324* **[Executores sob demanda](https://code.claude.com/docs/pt/self-hosted-environments-configuration.md#on-demand-runners)**: `ClaudeOrchestratorSessionsWaiting`, `ClaudeOrchestratorQueueWaitHigh` e `ClaudeOrchestratorAbsent`323* **[Executores sob demanda](https://code.claude.com/docs/pt/self-hosted-environments-configuration.md#on-demand-runners)**: `ClaudeOrchestratorSessionsWaiting`, `ClaudeOrchestratorQueueWaitHigh` e `ClaudeOrchestratorAbsent`

325 324 

326#### Alertar quando uma frota fixa perde executores325#### Alertar quando uma frota fixa perde executores

327 326 

328`ClaudeRunnersBelowFloor` dispara quando restam menos executores registrados e raspados do que o piso por 10 minutos:327`ClaudeRunnersBelowFloor` dispara quando restam menos executores registrados e coletados do que o piso por 10 minutos:

329 328 

330```yaml theme={null}329```yaml theme={null}

331groups:330groups:

332 # Apenas frotas fixas. Com executores sob demanda, a contagem acompanha a demanda,331 # Apenas frotas fixas. Com executores sob demanda, a contagem acompanha a demanda,

333 # então ClaudeRunnersBelowFloor dispararia sempre que a demanda fosse baixa.332 # então ClaudeRunnersBelowFloor dispararia sempre que a demanda estivesse baixa.

334 - name: claude-code-self-hosted-fixed-fleet-capacity333 - name: claude-code-self-hosted-fixed-fleet-capacity

335 rules:334 rules:

336 - alert: ClaudeRunnersBelowFloor335 - alert: ClaudeRunnersBelowFloor


338 for: 10m337 for: 10m

339 labels: {severity: critical, namespace: claude-runners}338 labels: {severity: critical, namespace: claude-runners}

340 annotations:339 annotations:

341 summary: "Executores registrados e raspados: {{ $value }}, abaixo do piso. Verifique primeiro as cargas de trabalho dos executores e, se todas estiverem em execução, os alvos de raspagem."340 summary: "Runners registered and scraped: {{ $value }}, below the floor. Check the runner workloads first, then the scrape targets if all are running."

342```341```

343 342 

344* **Piso**: defina o `2` em `expr` para cerca de metade da sua contagem de réplicas, arredondado para cima. Com três réplicas, mantenha `2`, e o alerta dispara quando resta um executor ou nenhum.343* **Piso**: defina o `2` em `expr` como cerca de metade da sua contagem de réplicas, arredondada para cima. Com três réplicas, mantenha `2`, e o alerta dispara quando resta um executor ou nenhum.

345* **Namespace**: substitua `claude-runners` no matcher e em `labels`, e copie o alerta para cada namespace adicional. Se seus alvos não tiverem o rótulo `namespace`, remova o matcher e o rótulo, ou o alerta lerá 0 e disparará.344* **Namespace**: substitua `claude-runners` no matcher e em `labels`, e copie o alerta para cada namespace adicional. Se seus alvos não tiverem rótulo `namespace`, remova o matcher e o rótulo, ou o alerta lerá 0 e disparará.

346* **`ClaudeRunnerPollStale` e `ClaudeRunnerPollErrors`**: mantenha-os carregados a partir das [regras de alerta de exemplo](#sample-alert-rules), porque `ClaudeRunnersBelowFloor` ainda conta um executor que não consegue pesquisar345* **`ClaudeRunnerPollStale` e `ClaudeRunnerPollErrors`**: mantenha-os carregados a partir dos [exemplos de regras de alerta](#sample-alert-rules), porque `ClaudeRunnersBelowFloor` ainda conta um executor que não consegue fazer polling

347 346 

348#### Alertar quando sessões aguardam executores sob demanda347#### Alertar quando sessões aguardam executores sob demanda

349 348 


364 for: 10m363 for: 10m

365 labels: {severity: warning}364 labels: {severity: warning}

366 annotations:365 annotations:

367 summary: "Sessões aguardando um executor: {{ $value }}, acima do limite por 10 minutos. Verifique claude_code_self_hosted_orchestrator_spawn_hooks_total por resultado e, em seguida, as cargas de trabalho dos executores que não iniciam."366 summary: "Sessions waiting for a runner: {{ $value }}, above the threshold for 10 minutes. Check claude_code_self_hosted_orchestrator_spawn_hooks_total by result, then runner workloads that don't start."

368 - alert: ClaudeOrchestratorQueueWaitHigh367 - alert: ClaudeOrchestratorQueueWaitHigh

369 expr: |368 expr: |

370 histogram_quantile(0.99, sum by (namespace, le) (369 histogram_quantile(0.99, sum by (namespace, le) (


373 for: 5m372 for: 5m

374 labels: {severity: warning}373 labels: {severity: warning}

375 annotations:374 annotations:

376 summary: "Mais de 1% das esperas na fila nos últimos 10 minutos excederam 160 segundos. Verifique se ClaudeOrchestratorDisconnected está disparando e, em seguida, claude_code_self_hosted_orchestrator_spawn_hooks_total por resultado e claude_code_self_hosted_orchestrator_spawn_hook_duration_seconds."375 summary: "Over 1% of queue waits in the last 10 minutes exceeded 160 seconds. Check whether ClaudeOrchestratorDisconnected is firing, then claude_code_self_hosted_orchestrator_spawn_hooks_total by result and claude_code_self_hosted_orchestrator_spawn_hook_duration_seconds."

377```376```

378 377 

379* **Limite**: se alguma sessão estiver sempre aguardando, aumente o `> 0` em `ClaudeOrchestratorSessionsWaiting` para acima do número que você normalmente vê378* **Limite**: se alguma sessão estiver sempre aguardando, aumente o `> 0` em `ClaudeOrchestratorSessionsWaiting` para acima do número que você costuma ver

380* **`ClaudeOrchestratorDisconnected`**: mantenha-o carregado a partir das [regras de alerta de exemplo](#sample-alert-rules), porque `ClaudeOrchestratorSessionsWaiting` para de disparar cerca de 2 minutos após o último orquestrador no namespace se desconectar379* **`ClaudeOrchestratorDisconnected`**: mantenha-o carregado a partir dos [exemplos de regras de alerta](#sample-alert-rules), porque `ClaudeOrchestratorSessionsWaiting` para de disparar cerca de 2 minutos depois que o último orquestrador no namespace se desconecta

381 380 

382#### Alertar quando o orquestrador está fora do ar381#### Alertar quando o orquestrador está fora do ar

383 382 

384Para saber quando o próprio [orquestrador](https://code.claude.com/docs/pt/self-hosted-environments-configuration.md#on-demand-runners) está fora do ar, carregue `ClaudeOrchestratorAbsent`. Ele dispara quando nenhum orquestrador no namespace foi raspado por 5 minutos:383Para saber quando o próprio [orquestrador](https://code.claude.com/docs/pt/self-hosted-environments-configuration.md#on-demand-runners) está fora do ar, carregue `ClaudeOrchestratorAbsent`. Ele dispara quando nenhum orquestrador no namespace foi coletado por 5 minutos:

385 384 

386```yaml theme={null}385```yaml theme={null}

387groups:386groups:


393 for: 5m392 for: 5m

394 labels: {severity: critical}393 labels: {severity: critical}

395 annotations:394 annotations:

396 summary: "Nenhum orquestrador foi raspado por 5 minutos. Se ele estiver fora do ar, nenhum executor sob demanda inicia e as sessões ficam aguardando. Verifique primeiro a carga de trabalho do orquestrador e, se ela estiver em execução, o alvo de raspagem dele."395 summary: "No orchestrator has been scraped for 5 minutes. If it's down, no on-demand runner starts, and sessions wait. Check the orchestrator workload first, then its scrape target if it's running."

397```396```

398 397 

399* **Namespace**: substitua `claude-runners` pelo namespace do orquestrador, e copie o alerta para cada namespace adicional que executa um orquestrador. Se seus alvos não tiverem o rótulo `namespace`, remova o matcher, ou o alerta disparará após 5 minutos e permanecerá ativo.398* **Namespace**: substitua `claude-runners` pelo namespace do orquestrador e copie o alerta para cada namespace adicional que executa um orquestrador. Se seus alvos não tiverem rótulo `namespace`, remova o matcher, ou o alerta disparará após 5 minutos e permanecerá ativo.

400* **Servidores Prometheus que não raspam o orquestrador**: deixe o alerta fora dos arquivos de regras deles, porque em um servidor assim ele dispara após 5 minutos e permanece ativo399* **Servidores Prometheus que não coletam o orquestrador**: deixe o alerta de fora dos arquivos de regras deles, porque em um servidor desse tipo ele dispara após 5 minutos e permanece ativo

401* **Não dependa dos outros alertas do orquestrador**: eles leem métricas que o próprio orquestrador serve. `ClaudeOrchestratorSessionsWaiting`, `ClaudeOrchestratorQueueWaitHigh` e as [regras de alerta de exemplo](#sample-alert-rules) do orquestrador param de disparar em cerca de 10 minutos depois que o orquestrador fica fora do ar.400* **Não dependa dos outros alertas do orquestrador**: eles leem métricas que o próprio orquestrador serve. `ClaudeOrchestratorSessionsWaiting`, `ClaudeOrchestratorQueueWaitHigh` e os [exemplos de regras de alerta](#sample-alert-rules) do orquestrador param de disparar em cerca de 10 minutos após o orquestrador ficar fora do ar.

402 401 

403### Passar através de métricas de filho de sessão402### Repassar métricas dos processos filhos de sessão

404 403 

405Cada sessão é executada em seu próprio processo filho com suas próprias métricas OpenTelemetry; em `--capacity` acima de um, o executor reescreve como essas métricas de filho são expostas. Definir `OTEL_METRICS_EXPORTER=prometheus` no host do executor e `CLAUDE_CODE_ENABLE_TELEMETRY=1` no ambiente da sessão, por exemplo a partir de seu [script wrapper](https://code.claude.com/docs/pt/self-hosted-environments-configuration.md#wrapper-scripts) ou do próprio ambiente do executor, que as sessões herdam, re-expõe cada instrumento de contador e medidor do filho no ponto de extremidade `/metrics` do próprio executor, ao lado das séries do executor. O executor reescreve o exportador do filho para enviar por OTLP para um receptor somente de loopback na porta de saúde, marca cada série com rótulos `session_id` e `client_platform`, e remove as séries de uma sessão quando essa sessão termina. Histogramas não passam, e uma métrica de filho cujo nome colidiria com o prefixo do próprio executor é descartada.404Cada sessão é executada em seu próprio processo filho com suas próprias métricas do OpenTelemetry; com `--capacity` acima de um, o executor reescreve a forma como essas métricas dos processos filhos são expostas. Definir `OTEL_METRICS_EXPORTER=prometheus` no host do executor e `CLAUDE_CODE_ENABLE_TELEMETRY=1` no ambiente da sessão, por exemplo a partir do seu [script wrapper](https://code.claude.com/docs/pt/self-hosted-environments-configuration.md#wrapper-scripts) ou do próprio ambiente do executor, que as sessões herdam, reexpõe os instrumentos de counter e gauge de cada processo filho no próprio endpoint `/metrics` do executor, junto com as séries do executor. O executor reescreve o exportador do processo filho para enviar via OTLP a um receptor somente de loopback na porta de health, marca cada série com os rótulos `session_id` e `client_platform` e remove as séries de uma sessão quando essa sessão termina. Histogramas não são repassados, e uma métrica de processo filho cujo nome colidiria com o prefixo próprio do executor é descartada.

406 405 

407No padrão `--capacity 1`, a reescrita não se aplica: o filho da sessão vincula seu próprio ponto de extremidade Prometheus na porta 9464 como usual.406Com o padrão `--capacity 1`, a reescrita não se aplica: o processo filho da sessão vincula seu próprio endpoint do Prometheus na porta 9464, como de costume.

408 407 

409#### Associar as métricas de uma sessão às do executor408#### Unir as métricas de uma sessão às do executor

410 409 

411Para ver quanto as sessões ociosas custaram, faça a junção de `claude_code_self_hosted_runner_session_idle_seconds` do executor com a métrica de custo do Claude Code por `ccr_session_id`. A métrica do executor não carrega esse rótulo, então atribua-o com `label_replace`, como nesta consulta:410Para ver quanto as sessões ociosas custaram, una a `claude_code_self_hosted_runner_session_idle_seconds` do executor à métrica de custo do Claude Code em `ccr_session_id`. A métrica do executor não tem esse rótulo, então atribua um a ela com `label_replace`, como nesta consulta:

412 411 

413```text theme={null}412```text theme={null}

414sum by (ccr_session_id) (claude_code_cost_usage_total)413sum by (ccr_session_id) (claude_code_cost_usage_total)


419)418)

420```419```

421 420 

422A consulta retorna um resultado por sessão ociosa há mais de dez minutos: o custo em dólares americanos que seu processo do Claude Code contabilizou até agora. Para fazer a junção com outra métrica do Claude Code, substitua `claude_code_cost_usage_total` na consulta. A consulta funciona com qualquer `--capacity`.421A consulta retorna um resultado por sessão ociosa há mais de dez minutos: o custo em dólares americanos que seu processo do Claude Code contabilizou até agora. Para unir outra métrica do Claude Code, substitua `claude_code_cost_usage_total` na consulta. A consulta funciona com qualquer `--capacity`.

423 422 

424* **`session_id`**: na porta 9464, esse rótulo nas métricas do Claude Code contém o próprio [`session.id`](https://code.claude.com/docs/pt/monitoring-usage#standard-attributes) do Claude Code, que não corresponde a nenhuma série do executor. Uma junção por ele não retorna nada, então faça a junção por `ccr_session_id`.423* **`session_id`**: na porta 9464, esse rótulo nas métricas do Claude Code contém o próprio [`session.id`](https://code.claude.com/docs/pt/monitoring-usage#standard-attributes) do Claude Code, que não corresponde a nenhuma série do executor. Uma união por ele não retorna nada, então una por `ccr_session_id`.

425* **As métricas do Claude Code não têm `ccr_session_id`**: verifique se [`OTEL_METRICS_INCLUDE_SESSION_ID`](https://code.claude.com/docs/pt/monitoring-usage#metrics-cardinality-control) não está definido como `false`424* **As métricas do Claude Code não têm `ccr_session_id`**: verifique se [`OTEL_METRICS_INCLUDE_SESSION_ID`](https://code.claude.com/docs/pt/monitoring-usage#metrics-cardinality-control) não está definido como `false`

426 425 

427### Semântica do contador de ciclo de vida da sessão426### Semântica dos contadores do ciclo de vida da sessão

428 427 

429Os contadores `sessions_started_total`, `sessions_completed_total`, `sessions_failed_total` e `sessions_interrupted_total` classificam cada sessão por como terminou. Cada filho de sessão gerado incrementa `sessions_started_total` no tempo de geração, e exatamente um dos outros três incrementa na saída, então `sessions_started_total` menos a soma dos outros três é igual ao número de filhos de sessão em execução no momento.428Os contadores `sessions_started_total`, `sessions_completed_total`, `sessions_failed_total` e `sessions_interrupted_total` classificam cada sessão pela forma como ela terminou. Cada processo filho de sessão iniciado incrementa `sessions_started_total` no momento da inicialização, e exatamente um dos outros três é incrementado na saída, então `sessions_started_total` menos a soma dos outros três é igual ao número de processos filhos de sessão em execução no momento.

430 429 

431* `completed`: a sessão terminou limpo. Isso cobre o filho saindo por conta própria com código `0`, a sessão sendo arquivada ou excluída enquanto o filho ainda estava conectado, e o executor devolvendo o slot de forma limpa: a liberação da sessão no tempo limite de ociosidade, no tempo de aposentadoria ou no limite `--kill-session-after-min`; um tempo limite de inicialização; ou uma desatribuição do lado do servidor que o loop de pesquisa notou antes do filho sair. Incrementa `sessions_completed_total`.430* `completed`: a sessão terminou de forma limpa. Isso abrange o processo filho saindo por conta própria com código `0`, a sessão sendo arquivada ou excluída enquanto o processo filho ainda estava conectado, e o executor devolvendo o slot de forma limpa: liberando a sessão no timeout de ociosidade, no horário de aposentadoria ou no limite de `--kill-session-after-min`; um timeout de inicialização; ou uma desatribuição do lado do servidor que o loop de polling percebeu antes de o processo filho sair. Incrementa `sessions_completed_total`.

432* `failed`: o filho saiu por conta própria com um código diferente de zero, seja um crash ou uma falha de configuração após geração. Incrementa `sessions_failed_total`.431* `failed`: o processo filho saiu por conta própria com um código diferente de zero, seja uma falha ou uma falha de configuração após a inicialização. Incrementa `sessions_failed_total`.

433* `interrupted`: o executor encerrou o filho por um motivo operacional que não é nem um sucesso de sessão nem uma falha do executor, como uma drenagem ou o encerramento de uma sessão que ainda estava no executor quando a janela de graça [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](#environment-variable-only-settings) após seu limite `--kill-session-after-min` terminou. Um reinício de rolagem Kubernetes enviando `SIGTERM` é um exemplo de uma drenagem. Incrementa `sessions_interrupted_total`.432* `interrupted`: o executor encerrou o processo filho por um motivo operacional que não é nem um sucesso da sessão nem uma falha do executor, como um drain, ou o encerramento de uma sessão que ainda estava no executor quando a janela de tolerância [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](#environment-variable-only-settings) após seu limite de `--kill-session-after-min` terminou. Um reinício gradual do Kubernetes enviando `SIGTERM` é um exemplo de drain. Incrementa `sessions_interrupted_total`.

434 433 

435Antes da v2.1.260, o executor encerrava cada sessão que atingia seu limite `--kill-session-after-min` e a contava em `sessions_interrupted_total`.434Antes da v2.1.260, o executor encerrava toda sessão que atingia seu limite de `--kill-session-after-min` e a contava em `sessions_interrupted_total`.

436 435 

437O `CLAUDE_RUNNER_EXIT_REASON` do hook [`post-session`](https://code.claude.com/docs/pt/self-hosted-environments-configuration#post-session) classifica entregas limpas de forma diferente. O hook relata estes como `interrupted`, porque o executor parou o filho: uma liberação, um tempo limite de inicialização, uma desatribuição do servidor e um arquivamento ou exclusão que a pesquisa notou primeiro. Esses contadores registram os mesmos eventos como `completed`, porque o slot foi devolvido limpo.436O `CLAUDE_RUNNER_EXIT_REASON` do [hook `post-session`](https://code.claude.com/docs/pt/self-hosted-environments-configuration#post-session) classifica as devoluções limpas de forma diferente. O hook as relata como `interrupted`, porque o executor interrompeu o processo filho: uma liberação, um timeout de inicialização, uma desatribuição do servidor e um arquivamento ou exclusão que o polling percebeu primeiro. Esses contadores registram os mesmos eventos como `completed`, porque o slot foi devolvido de forma limpa.

438 437 

439Se você reconciliar recebimentos de hook contra `sessions_completed_total` diretamente, você subestima as conclusões. Use o hook para garantias por sessão e os contadores para taxas agregadas.438Se você reconciliar os recebimentos do hook diretamente com `sessions_completed_total`, contará menos conclusões do que as reais. Use o hook para garantias por sessão e os contadores para taxas agregadas.

440 439 

441Em um ambiente único, `--capacity 1` com o padrão `--drain-grace-sec 0`, cada processo executor sai momentos após sua única sessão terminar. `sessions_completed_total`, `sessions_failed_total` e `sessions_interrupted_total` incrementam apenas no final da sessão, logo antes dessa saída, então uma raspagem Prometheus a cada 15 a 60 segundos raramente captura o incremento antes das séries do executor desaparecerem; esses três contadores de final de sessão são os contadores terminais que o resto desta seção se refere. `sessions_started_total` incrementa na geração e permanece visível pela vida da sessão, então aparece de forma confiável, mas em um ambiente único lê mais perto de "sessões em execução no momento" do que uma contagem cumulativa.440Em um ambiente de uso único, `--capacity 1` com o padrão `--drain-grace-sec 0`, cada processo do executor sai momentos depois que sua única sessão termina. `sessions_completed_total`, `sessions_failed_total` e `sessions_interrupted_total` são incrementados apenas no fim da sessão, logo antes dessa saída, então uma coleta do Prometheus a cada 15 a 60 segundos raramente captura o incremento antes que as séries do executor desapareçam; esses três contadores de fim de sessão são os contadores terminais aos quais o restante desta seção se refere. `sessions_started_total` é incrementado na inicialização e permanece visível durante toda a vida da sessão, então aparece de forma confiável, mas em um ambiente de uso único ele se aproxima mais de "sessões em execução no momento" do que de uma contagem cumulativa.

442 441 

443Use a série nesta tabela para o objetivo correspondente em vez dos contadores terminais:442Use as séries desta tabela para o objetivo correspondente em vez dos contadores terminais:

444 443 

445| Objetivo | Use |444| Objetivo | Use |

446| :- | :- |445| :- | :- |

447| Throughput | `claude_code_self_hosted_orchestrator_spawn_hooks_total{result="ok"}`, um contador no orquestrador de longa vida que incrementa uma vez por hook `spawn-runner` bem-sucedido e permanece significativo sob `rate()`. Conta invocações de hook em vez de sessões, então pré-aquecimento e gerações repetidas para a mesma sessão divergem de contagens de sessão. |446| Throughput | `claude_code_self_hosted_orchestrator_spawn_hooks_total{result="ok"}`, um counter no orquestrador de longa duração que é incrementado uma vez por hook `spawn-runner` bem-sucedido e permanece significativo sob `rate()`. Ele conta invocações de hook em vez de sessões, então pré-aquecimento e inicializações repetidas para a mesma sessão o fazem divergir das contagens de sessão. |

448| Utilização | `sum(claude_code_self_hosted_runner_active_sessions)` contra `sum(claude_code_self_hosted_runner_capacity)`, ambos medidores válidos em cada raspagem independentemente da vida útil do executor |447| Utilização | `sum(claude_code_self_hosted_runner_active_sessions)` em relação a `sum(claude_code_self_hosted_runner_capacity)`, ambos gauges válidos em cada coleta, independentemente da vida útil do executor |

449| Backlog | `claude_code_self_hosted_orchestrator_pool_pending_sessions` para profundidade de fila, e `claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions`, alertando se acima de zero |448| Backlog | `claude_code_self_hosted_orchestrator_pool_pending_sessions` para a profundidade da fila, e `claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions`, alertando se for superior a zero |

450| Falhas | `claude_code_self_hosted_runner_sessions_failed_total`, melhor esforço: crashes reais após geração incrementam, e `rate()` é significativo em executores que sobrevivem suas sessões com `--drain-grace-sec` acima de `0`. Um ambiente único tem o mesmo problema de janela de raspagem que os outros contadores terminais, então trate qualquer valor diferente de zero que você veja como digno de investigação. Falhas antes de geração, como falha de hook de checkout, preparação git ou problema de token, aparecem apenas em `session_init_errors_total`. |449| Falhas | `claude_code_self_hosted_runner_sessions_failed_total`, na base do melhor esforço: falhas reais após a inicialização o incrementam, e `rate()` é significativo em executores que sobrevivem às suas sessões com `--drain-grace-sec` acima de `0`. Um ambiente de uso único tem o mesmo problema de janela de coleta que os outros contadores terminais, então trate qualquer valor diferente de zero que você observar como algo que vale a pena investigar. Falhas antes da inicialização, como uma falha de hook de checkout, preparação do git ou um problema de token, aparecem apenas em `session_init_errors_total`. |

451 450 

452As linhas `orchestrator_*` existem apenas em ambientes executando o [orquestrador sob demanda](https://code.claude.com/docs/pt/self-hosted-environments-configuration.md#on-demand-runners). Em uma frota fixa cujos executores sobrevivem suas sessões, com `--drain-grace-sec` acima de `0`, use `sum(rate(claude_code_self_hosted_runner_sessions_started_total[5m]))` para throughput; em uma frota única essa série tem o mesmo problema de janela de raspagem que os contadores terminais, então confie na contagem de sessões enfileiradas em vez disso. Verifique backlog na aba **Activity** do ambiente, na [página de administração **Cloud environments**](https://claude.ai/admin-settings/cloud-environments): os executores não exportam uma série de profundidade de fila.451As linhas `orchestrator_*` existem apenas em ambientes que executam o [orquestrador sob demanda](https://code.claude.com/docs/pt/self-hosted-environments-configuration.md#on-demand-runners). Em uma frota fixa cujos executores sobrevivem às suas sessões, com `--drain-grace-sec` acima de `0`, use `sum(rate(claude_code_self_hosted_runner_sessions_started_total[5m]))` para throughput; em uma frota de uso único, essa série tem o mesmo problema de janela de coleta que os contadores terminais, então dependa da contagem de sessões enfileiradas. Verifique o backlog na guia **Activity** do ambiente, na [página de administração **Cloud environments**](https://claude.ai/admin-settings/cloud-environments): os executores não exportam uma série de profundidade de fila.

453 452 

454Para relatório de resultado por sessão, use o hook [`post-session`](https://code.claude.com/docs/pt/self-hosted-environments-configuration#post-session) em vez disso: ele dispara no final de cada sessão onde um processo filho foi gerado, exceto em caso de encerramento abrupto do executor, como uma preempção de VM, por contrato do [próprio hook](https://code.claude.com/docs/pt/self-hosted-environments-configuration.md#post-session).453Para relatórios de resultado por sessão, use o [hook `post-session`](https://code.claude.com/docs/pt/self-hosted-environments-configuration#post-session): ele dispara em todo fim de sessão em que um processo filho foi iniciado, exceto em um encerramento abrupto do executor, como uma preempção de VM, conforme o [contrato do próprio hook](https://code.claude.com/docs/pt/self-hosted-environments-configuration.md#post-session).

455 454 

456## Próximos passos455## Próximos passos

457 456 

Details

12 12 

13Em um [ambiente auto-hospedado](https://code.claude.com/docs/pt/self-hosted-environments), as [sessões na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md) do Claude Code são executadas em uma imagem de executor que você constrói e mantém. Antes de implantar uma nova imagem em seu ambiente de produção, execute uma sessão completa contra um ambiente de teste a partir de um script: crie uma sessão, leia a resposta do Claude, envie um acompanhamento e leia essa resposta também. Esta é a forma de um teste de fumaça de CI que verifica sua imagem de executor, acesso ao git e quaisquer ferramentas personalizadas antes de promover uma alteração.13Em um [ambiente auto-hospedado](https://code.claude.com/docs/pt/self-hosted-environments), as [sessões na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md) do Claude Code são executadas em uma imagem de executor que você constrói e mantém. Antes de implantar uma nova imagem em seu ambiente de produção, execute uma sessão completa contra um ambiente de teste a partir de um script: crie uma sessão, leia a resposta do Claude, envie um acompanhamento e leia essa resposta também. Esta é a forma de um teste de fumaça de CI que verifica sua imagem de executor, acesso ao git e quaisquer ferramentas personalizadas antes de promover uma alteração.

14 14 

15Esta receita assume que você já [configurou um ambiente e um executor](https://code.claude.com/docs/pt/self-hosted-environments-quickstart.md#set-up-an-environment-and-runner), e que seu trabalho de CI inicia o processo do executor no mesmo host que o script de teste, a configuração natural para testar uma nova imagem de executor. Um hook Stop que você instala no executor escreve a resposta final de cada turno em um arquivo local, e o script a lê de lá, portanto as únicas chamadas para a API Anthropic são os dois despachos em si. Se seus executores de teste estão em infraestrutura separada, consulte [Executores de teste remotos](#remote-test-runners).15Esta receita assume que você já [configurou um ambiente e um executor](https://code.claude.com/docs/pt/self-hosted-environments-quickstart.md#set-up-an-environment-and-runner), e que seu trabalho de CI inicia o processo do executor no mesmo host que o script de teste. Um hook Stop que você instala no executor escreve a resposta final de cada turno em um arquivo local, e o script a lê de lá. Se seus executores de teste estão em infraestrutura separada, consulte [Executores de teste remotos](#remote-test-runners).

16 16 

17## Instale o hook de captura em seu runner de teste17## Instale o hook de captura em seu runner de teste

18 18 

Details

62 62 

63Hooks usam o mesmo formato que em `settings.json`.63Hooks usam o mesmo formato que em `settings.json`.

64 64 

65Este exemplo executa um script de auditoria após cada edição de arquivo em toda a organização:65Este exemplo executa um script de auditoria após chamadas de ferramenta `Edit` e `Write` em toda a organização:

66 66 

67```json theme={null}67```json theme={null}

68{68{


95 95 

96Para confirmar que as configurações estão sendo aplicadas, peça a um usuário para reiniciar o Claude Code. Se a configuração incluir configurações que acionem a [caixa de diálogo de aprovação de segurança](#security-approval-dialogs), o usuário vê um prompt descrevendo as configurações gerenciadas na próxima vez que Claude Code as buscar: na próxima inicialização ou dentro de uma hora em uma sessão interativa em execução. Você também pode verificar que as regras de permissão gerenciadas estão ativas pedindo a um usuário para executar `/permissions` para visualizar suas regras de permissão efetivas.96Para confirmar que as configurações estão sendo aplicadas, peça a um usuário para reiniciar o Claude Code. Se a configuração incluir configurações que acionem a [caixa de diálogo de aprovação de segurança](#security-approval-dialogs), o usuário vê um prompt descrevendo as configurações gerenciadas na próxima vez que Claude Code as buscar: na próxima inicialização ou dentro de uma hora em uma sessão interativa em execução. Você também pode verificar que as regras de permissão gerenciadas estão ativas pedindo a um usuário para executar `/permissions` para visualizar suas regras de permissão efetivas.

97 97 

98Em uma sessão, peça ao usuário para executar `/status`. A [linha `Setting sources`](https://code.claude.com/docs/pt/managed-settings#read-the-source-in-/status) lista `Enterprise managed settings` com `remote` entre parênteses quando configurações gerenciadas pelo servidor se aplicam.

99 

98Para verificar o resultado da busca em uma máquina específica, peça ao usuário para executar `claude doctor` e ler a linha `Managed settings (remote)`. Requer Claude Code v2.1.248 ou posterior. A linha relata um de quatro resultados:100Para verificar o resultado da busca em uma máquina específica, peça ao usuário para executar `claude doctor` e ler a linha `Managed settings (remote)`. Requer Claude Code v2.1.248 ou posterior. A linha relata um de quatro resultados:

99 101 

100* As configurações entregues foram carregadas102* As configurações entregues foram carregadas


247* Se o gateway responde um lançamento interativo assistido com um `401` e essa configuração está desativada, o gateway encerrou esse login. O Claude Code imprime [`Cloud gateway session expired — run /login to reconnect.`](https://code.claude.com/docs/pt/errors#cloud-gateway-session-expired) e abre a sessão desconectada do gateway até que o usuário execute `/login`.249* Se o gateway responde um lançamento interativo assistido com um `401` e essa configuração está desativada, o gateway encerrou esse login. O Claude Code imprime [`Cloud gateway session expired — run /login to reconnect.`](https://code.claude.com/docs/pt/errors#cloud-gateway-session-expired) e abre a sessão desconectada do gateway até que o usuário execute `/login`.

248* Quando a busca falha de qualquer outra forma, ou em qualquer outro tipo de lançamento exceto um subcomando `claude auth`, o cliente sai com um erro.250* Quando a busca falha de qualquer outra forma, ou em qualquer outro tipo de lançamento exceto um subcomando `claude auth`, o cliente sai com um erro.

249 251 

250Quando essa configuração está ativa em uma sessão que busca configurações gerenciadas pelo servidor, a CLI bloqueia na inicialização até que as configurações remotas sejam buscadas recentemente. Se a busca falhar, a CLI sai em vez de prosseguir sem a política. Essa configuração se auto-perpetua: uma vez entregue do servidor, ela também é armazenada em cache localmente para que as inicializações subsequentes imponham o mesmo comportamento mesmo antes da primeira busca bem-sucedida de uma nova sessão. Uma sessão que [não busca configurações gerenciadas pelo servidor](#platform-availability) inicia sem aguardar.252Quando essa configuração está ativa em uma sessão que busca configurações gerenciadas pelo servidor, a CLI bloqueia na inicialização até que as configurações remotas sejam buscadas recentemente. Se a busca falhar, a CLI sai em vez de prosseguir sem a política. Uma sessão que [não busca configurações gerenciadas pelo servidor](#platform-availability) inicia sem aguardar.

251 253 

252Para ativar isso, adicione a chave à sua configuração de configurações gerenciadas:254Para ativar isso, adicione a chave à sua configuração de configurações gerenciadas:

253 255 


259 261 

260Você também pode definir essa chave em um [perfil MDM](https://code.claude.com/docs/pt/managed-settings.md#delivery-mechanisms) gerenciado pelo endpoint ou arquivo `managed-settings.json` do sistema para impor comportamento de falha fechada no primeiro lançamento, antes de qualquer payload do servidor ter chegado. Esse sinalizador é uma exceção à [regra de precedência](#settings-precedence) acima: o Claude Code o honra quando qualquer fonte gerenciada controlada por administrador o define, mesmo se um payload gerenciado pelo servidor em cache também estiver presente, portanto ele não ignora um valor entregue por MDM quando configurações gerenciadas pelo servidor existem.262Você também pode definir essa chave em um [perfil MDM](https://code.claude.com/docs/pt/managed-settings.md#delivery-mechanisms) gerenciado pelo endpoint ou arquivo `managed-settings.json` do sistema para impor comportamento de falha fechada no primeiro lançamento, antes de qualquer payload do servidor ter chegado. Esse sinalizador é uma exceção à [regra de precedência](#settings-precedence) acima: o Claude Code o honra quando qualquer fonte gerenciada controlada por administrador o define, mesmo se um payload gerenciado pelo servidor em cache também estiver presente, portanto ele não ignora um valor entregue por MDM quando configurações gerenciadas pelo servidor existem.

261 263 

264Em inicializações posteriores, o Claude Code lê um valor entregue pelo servidor a partir das configurações em cache, portanto a configuração está ativa antes da primeira busca da nova sessão. Para manter a configuração ativa sem depender da cópia em cache, defina também a chave em uma fonte gerenciada pelo endpoint.

265 

262Quando um [`policyHelper`](https://code.claude.com/docs/pt/settings-reference#policyhelper) fornece configurações gerenciadas, sua saída substitui todas as outras fontes gerenciadas para as chaves que o Claude Code lê após a inicialização. Para as fontes que o Claude Code lê essa chave, veja [sua entrada de configurações](https://code.claude.com/docs/pt/settings-reference.md#forceremotesettingsrefresh). A entrada `policyHelper` diz quais fontes o Claude Code lê o helper e quando ele é executado.266Quando um [`policyHelper`](https://code.claude.com/docs/pt/settings-reference#policyhelper) fornece configurações gerenciadas, sua saída substitui todas as outras fontes gerenciadas para as chaves que o Claude Code lê após a inicialização. Para as fontes que o Claude Code lê essa chave, veja [sua entrada de configurações](https://code.claude.com/docs/pt/settings-reference.md#forceremotesettingsrefresh). A entrada `policyHelper` diz quais fontes o Claude Code lê o helper e quando ele é executado.

263 267 

264A busca de configurações também envia um cabeçalho `Cache-Control: no-cache` para que proxies HTTP intermediários não sirvam uma resposta obsoleta.268A busca de configurações também envia um cabeçalho `Cache-Control: no-cache` para que proxies HTTP intermediários não sirvam uma resposta obsoleta.

settings.md +2 −2

Details

66 66 

67### Compartilhe configurações com sua equipe67### Compartilhe configurações com sua equipe

68 68 

69Faça commit de `.claude/settings.json` para que todos que clonem o repositório obtenham as mesmas permissões, hooks e plugins. Cada colega de equipe ainda pode sobrescrevê-lo para si mesmo em seu próprio `.claude/settings.local.json`, para que exceções pessoais não precisem de um commit. Para um arquivo de equipe completo, veja [configurações compartilhadas de uma equipe](https://code.claude.com/docs/pt/settings-example.md#a-teams-shared-settings).69Faça commit de `.claude/settings.json` para que todos que clonem o repositório obtenham as mesmas permissões, hooks e configurações de plugins. Cada colega de equipe ainda pode sobrescrevê-lo para si mesmo em seu próprio `.claude/settings.local.json`, para que exceções pessoais não precisem de um commit. Para um arquivo de equipe completo, veja [configurações compartilhadas de uma equipe](https://code.claude.com/docs/pt/settings-example.md#a-teams-shared-settings).

70 70 

71Parte do que você inclui no commit espera até que cada colega de equipe [confie na pasta](https://code.claude.com/docs/pt/permissions.md#project-allow-rules-and-workspace-trust), e algumas chaves nunca entram em vigor de um arquivo de repositório; [Solucione problemas de uma configuração que não se aplica](#common-cases) cobre ambos.71Parte do que você inclui no commit espera até que cada colega de equipe [confie na pasta](https://code.claude.com/docs/pt/permissions.md#project-allow-rules-and-workspace-trust), e algumas chaves nunca entram em vigor de um arquivo de repositório; [Solucione problemas de uma configuração que não se aplica](#common-cases) cobre ambos.

72 72 


199* **Erro de Configurações**: um arquivo de usuário, projeto ou local tem JSON inválido ou um valor que o esquema rejeita. No início de uma sessão interativa, o Claude Code mostra um diálogo que permite você corrigir o arquivo com a ajuda do Claude, sair ou continuar sem as configurações quebradas.199* **Erro de Configurações**: um arquivo de usuário, projeto ou local tem JSON inválido ou um valor que o esquema rejeita. No início de uma sessão interativa, o Claude Code mostra um diálogo que permite você corrigir o arquivo com a ajuda do Claude, sair ou continuar sem as configurações quebradas.

200* **Aviso de Configurações**: apenas entradas individuais falham, como uma regra de permissão malformada ou um nome de evento de hook desconhecido. O Claude Code pula esses valores e mantém o resto do arquivo em vigor.200* **Aviso de Configurações**: apenas entradas individuais falham, como uma regra de permissão malformada ou um nome de evento de hook desconhecido. O Claude Code pula esses valores e mantém o resto do arquivo em vigor.

201* **Configurações gerenciadas**: o Claude Code continua impondo o resto do arquivo. [Entradas inválidas em configurações gerenciadas](https://code.claude.com/docs/pt/managed-settings.md#invalid-entries-in-managed-settings) diz o que ele descarta e quais chaves voltam para um valor mais rigoroso até você corrigi-las. Para um documento de configurações gerenciadas que não é JSON válido, veja [Documento de configurações gerenciadas não pôde ser analisado](https://code.claude.com/docs/pt/errors.md#managed-settings-document-could-not-be-parsed).201* **Configurações gerenciadas**: o Claude Code continua impondo o resto do arquivo. [Entradas inválidas em configurações gerenciadas](https://code.claude.com/docs/pt/managed-settings.md#invalid-entries-in-managed-settings) diz o que ele descarta e quais chaves voltam para um valor mais rigoroso até você corrigi-las. Para um documento de configurações gerenciadas que não é JSON válido, veja [Documento de configurações gerenciadas não pôde ser analisado](https://code.claude.com/docs/pt/errors.md#managed-settings-document-could-not-be-parsed).

202* **Erro de configuração**: [`~/.claude.json`](https://code.claude.com/docs/pt/claude-directory#ce-claude-json) não pode ser analisado. Uma execução `claude -p` é encerrada, e seu arquivo permanece inalterado. Veja [Erro de configuração em \~/.claude.json](https://code.claude.com/docs/pt/errors.md#configuration-error-in-claude-json) para restaurar uma cópia anterior. O Claude Code copia o arquivo quebrado para `~/.claude/backups/.claude.json.corrupted.<timestamp>` e, em uma sessão interativa, pergunta se você quer sair e corrigi-lo ou redefinir para a configuração padrão. Quando o arquivo está em branco e não há backup para restaurar, o Claude Code inicia com as configurações padrão.202* **Erro de configuração**: [`~/.claude.json`](https://code.claude.com/docs/pt/claude-directory#ce-claude-json) não pode ser analisado. Uma execução `claude -p` é encerrada. Veja [Erro de configuração em \~/.claude.json](https://code.claude.com/docs/pt/errors.md#configuration-error-in-claude-json) para restaurar uma cópia anterior. O Claude Code copia o arquivo quebrado para `~/.claude/backups/.claude.json.corrupted.<timestamp>` e, em uma sessão interativa, pergunta se você quer sair e corrigi-lo ou redefinir para a configuração padrão. Quando o arquivo está em branco e não há backup para restaurar, o Claude Code inicia com as configurações padrão.

203 203 

204Depois que você continuar, execute `/status` para ver os arquivos afetados e `claude doctor` para os detalhes de cada erro.204Depois que você continuar, execute `/status` para ver os arquivos afetados e `claude doctor` para os detalhes de cada erro.

205 205 

Details

4829 4829 

4830### `agentPushNotifEnabled`4830### `agentPushNotifEnabled`

4831 4831 

4832Permita que o Claude envie uma notificação por push para seu telefone quando decidir que vale a pena enviar uma, por exemplo, quando uma tarefa longa termina. Em uma sessão local, o Claude pode enviar uma enquanto o [Remote Control](https://code.claude.com/docs/pt/remote-control.md) está conectado. Aparece em `/config` como **Push quando Claude decidir**. Quando você a altera lá, o Claude Code também salva o valor em sua conta.4832Permita que o Claude envie uma notificação por push para seu telefone quando decidir que vale a pena enviar uma, por exemplo, quando uma tarefa longa termina. Em uma sessão local, o Claude pode enviar uma enquanto o [Remote Control](https://code.claude.com/docs/pt/remote-control.md) está conectado. Aparece em `/config` como **Push when Claude decides**. Quando você a altera lá, o Claude Code também salva o valor em sua conta.

4833 4833 

4834* **Escopo**: [`Qualquer arquivo`](#scopes). O Claude Code também lê um valor deixado em `~/.claude.json` por versões antigas.4834* **Escopo**: [`Qualquer arquivo`](#scopes). O Claude Code também lê um valor deixado em `~/.claude.json` por versões antigas.

4835* **Tipo**: Boolean4835* **Tipo**: Boolean


4843}4843}

4844```4844```

4845 4845 

4846Se você executa sessões em um servidor [`claude remote-control`](https://code.claude.com/docs/pt/remote-control#start-a-remote-control-session), elas seguem o valor salvo em sua conta em vez dessa chave. Para alterar esse valor, execute `/config` em uma sessão do Claude Code em seu terminal e ative ou desative **Push quando Claude decidir**. Se o alternador já mostrar o valor que você deseja, altere-o e volte-o ao valor anterior para que o Claude Code salve esse valor em sua conta.4846Se você executa sessões em um servidor [`claude remote-control`](https://code.claude.com/docs/pt/remote-control#start-a-remote-control-session), elas seguem o valor salvo em sua conta em vez dessa chave. Para alterar esse valor, execute `/config` em uma sessão do Claude Code em seu terminal e ative ou desative **Push when Claude decides**. Se o alternador já mostrar o valor que você deseja, altere-o e volte-o ao valor anterior para que o Claude Code salve esse valor em sua conta.

4847 4847 

4848Veja [Notificações por push móvel](https://code.claude.com/docs/pt/remote-control.md#mobile-push-notifications).4848Veja [Notificações por push móvel](https://code.claude.com/docs/pt/remote-control.md#mobile-push-notifications).

4849 4849 


4966 4966 

4967### `inputNeededNotifEnabled`4967### `inputNeededNotifEnabled`

4968 4968 

4969Receba uma notificação por push em seu telefone quando um prompt de permissão ou pergunta estiver aguardando sua entrada. Em uma sessão local, o Claude Code envia essas apenas enquanto o [Remote Control](https://code.claude.com/docs/pt/remote-control.md) está conectado. Aparece em `/config` como **Push quando ações forem necessárias**.4969Receba uma notificação por push em seu telefone quando um prompt de permissão ou pergunta estiver aguardando sua entrada. Em uma sessão local, o Claude Code envia essas apenas enquanto o [Remote Control](https://code.claude.com/docs/pt/remote-control.md) está conectado. Aparece em `/config` como **Push when actions required**.

4970 4970 

4971* **Escopo**: [`Qualquer arquivo`](#scopes). O Claude Code também lê um valor deixado em `~/.claude.json` por versões antigas.4971* **Escopo**: [`Qualquer arquivo`](#scopes). O Claude Code também lê um valor deixado em `~/.claude.json` por versões antigas.

4972* **Tipo**: Boolean4972* **Tipo**: Boolean

skills.md +1 −1

Details

22 22 

23Claude Code inclui um conjunto de skills agrupadas, como `/doctor`, `/code-review`, `/batch`, `/debug`, `/loop` e `/claude-api`. Skills agrupadas são baseadas em prompt: elas fornecem ao Claude instruções detalhadas e permitem que ele orquestre o trabalho usando suas ferramentas. A maioria dos comandos integrados executa lógica fixa diretamente.23Claude Code inclui um conjunto de skills agrupadas, como `/doctor`, `/code-review`, `/batch`, `/debug`, `/loop` e `/claude-api`. Skills agrupadas são baseadas em prompt: elas fornecem ao Claude instruções detalhadas e permitem que ele orquestre o trabalho usando suas ferramentas. A maioria dos comandos integrados executa lógica fixa diretamente.

24 24 

25Você invoca uma skill agrupada da mesma forma que qualquer outra skill, digitando `/` seguido do nome da skill. Claude invoca algumas skills agrupadas automaticamente quando relevante; outras, incluindo `/verify`, são executadas apenas quando você as invoca, o que mantém você no controle de quando essas verificações de execução mais longa gastam tempo e tokens.25Você invoca uma skill incluída digitando `/` seguido do nome da skill. Claude invoca algumas skills incluídas automaticamente quando relevante; outras, incluindo [`/verify`](#run-and-verify-your-app), são executadas apenas quando você as invoca.

26 26 

27A maioria das skills agrupadas está disponível em todas as sessões. Algumas dependem de um recurso específico: `/workflow-authoring`, por exemplo, está disponível apenas quando [fluxos de trabalho dinâmicos](https://code.claude.com/docs/pt/workflows.md) estão habilitados.27A maioria das skills agrupadas está disponível em todas as sessões. Algumas dependem de um recurso específico: `/workflow-authoring`, por exemplo, está disponível apenas quando [fluxos de trabalho dinâmicos](https://code.claude.com/docs/pt/workflows.md) estão habilitados.

28 28 

Details

346 346 

347Claude Code mantém o conteúdo atrás de cada espaço reservado `[Pasted text #N]` em `~/.claude/paste-cache/`, então quando você recupera um prompt do [histórico de comandos](https://code.claude.com/docs/pt/interactive-mode.md#command-history) e o resubmete, o conteúdo colado completo é enviado novamente, inclusive em uma sessão posterior.347Claude Code mantém o conteúdo atrás de cada espaço reservado `[Pasted text #N]` em `~/.claude/paste-cache/`, então quando você recupera um prompt do [histórico de comandos](https://code.claude.com/docs/pt/interactive-mode.md#command-history) e o resubmete, o conteúdo colado completo é enviado novamente, inclusive em uma sessão posterior.

348 348 

349Arquivos de cache com mais de [`cleanupPeriodDays`](https://code.claude.com/docs/pt/settings-reference#cleanupperioddays) de idade são deletados sob as [regras de varredura de retenção](https://code.claude.com/docs/pt/claude-directory.md#cleaned-up-automatically), então um prompt recuperado pode referenciar texto colado que não existe mais. Quando você submete tal prompt, Claude Code nunca envia a string literal `[Pasted text #N]`, e mostra uma notificação nomeando a colagem ausente:349Arquivos de cache com mais de [`cleanupPeriodDays`](https://code.claude.com/docs/pt/settings-reference#cleanupperioddays) de idade são deletados sob as [regras de varredura de retenção](https://code.claude.com/docs/pt/claude-directory.md#cleaned-up-automatically), então um prompt recuperado pode referenciar texto colado que não existe mais. Quando você submete tal prompt, Claude Code não envia a string literal `[Pasted text #N]`, e mostra uma notificação nomeando a colagem ausente:

350 350 

351* Em um prompt simples com texto restante, Claude Code remove o espaço reservado e envia o texto restante.351* Em um prompt simples com texto restante, Claude Code remove o espaço reservado e envia o texto restante.

352* Em um comando [shell mode](https://code.claude.com/docs/pt/interactive-mode.md#shell-mode-with-prefix) ou um comando `/`, onde a remoção alteraria o que é executado, e em qualquer prompt cuja remoção deixa vazio, Claude Code cancela a submissão e mantém o texto original na entrada, com o espaço reservado ainda nele. Delete o espaço reservado ou edite o comando, depois resubmeta.352* Em um comando [shell mode](https://code.claude.com/docs/pt/interactive-mode.md#shell-mode-with-prefix) ou um comando `/`, onde a remoção alteraria o que é executado, e em qualquer prompt cuja remoção deixa vazio, Claude Code cancela a submissão e mantém o texto original na entrada, com o espaço reservado ainda nele. Delete o espaço reservado ou edite o comando, depois resubmeta.

Details

29| `EACCES: permission denied` durante a instalação | [Corrija as permissões do diretório de instalação](#permission-errors-during-installation) |29| `EACCES: permission denied` durante a instalação | [Corrija as permissões do diretório de instalação](#permission-errors-during-installation) |

30| `TLS connect error` ou `SSL/TLS secure channel` | [Atualize os certificados CA](#tls-or-ssl-connection-errors) |30| `TLS connect error` ou `SSL/TLS secure channel` | [Atualize os certificados CA](#tls-or-ssl-connection-errors) |

31| `CRYPT_E_NO_REVOCATION_CHECK` ou `CRYPT_E_REVOCATION_OFFLINE` | [Contorne verificações de revogação bloqueadas](#tls-or-ssl-connection-errors) |31| `CRYPT_E_NO_REVOCATION_CHECK` ou `CRYPT_E_REVOCATION_OFFLINE` | [Contorne verificações de revogação bloqueadas](#tls-or-ssl-connection-errors) |

32| `Failed to fetch version` ou não consegue alcançar o servidor de download | [Verifique as configurações de rede e proxy](#check-network-connectivity) |32| `Failed to fetch version` ou não consegue alcançar o servidor de download | [Verifique as configurações de rede e proxy](#check-network-connectivity) ou, para um erro de certificado, [configure certificados CA corporativos](#tls-or-ssl-connection-errors) |

33| `The connection dropped while downloading the update` ou `Download timed out: exceeded the total deadline` | [Execute a atualização novamente ou configure seu proxy](#the-connection-dropped-while-downloading-the-update) |33| `The connection dropped while downloading the update` ou `Download timed out: exceeded the total deadline` | [Execute a atualização novamente ou configure seu proxy](#the-connection-dropped-while-downloading-the-update) |

34| `Release verification failed for Claude Code` | [Execute `claude update` ou `claude install` novamente](#release-verification-failed) |34| `Release verification failed for Claude Code` | [Execute `claude update` ou `claude install` novamente](#release-verification-failed) |

35| `Auto-update failed · Run claude doctor` em vermelho no rodapé da sessão | [Execute `claude update` a partir do seu shell](#auto-update-failed) |35| `Auto-update failed · Run claude doctor` em vermelho no rodapé da sessão | [Execute `claude update` a partir do seu shell](#auto-update-failed) |


94* `403`: geralmente um proxy ou filtro de rede bloqueando o host, ou Claude Code [não está disponível em sua região](https://www.anthropic.com/supported-countries)94* `403`: geralmente um proxy ou filtro de rede bloqueando o host, ou Claude Code [não está disponível em sua região](https://www.anthropic.com/supported-countries)

95* `5xx`: geralmente um problema temporário de serviço; aguarde alguns minutos e tente novamente95* `5xx`: geralmente um problema temporário de serviço; aguarde alguns minutos e tente novamente

96 96 

97Se você não vir nenhuma saída, `Could not resolve host`, ou um timeout de conexão, sua rede está bloqueando a conexão. Causas comuns:97Se você não vir nenhuma saída, ou se o instalador mostrar `Could not resolve host` ou um timeout de conexão, a conexão falhou, então verifique estas causas:

98 98 

99* Firewalls corporativos ou proxies bloqueando `downloads.claude.ai`99* Firewalls corporativos ou proxies bloqueando `downloads.claude.ai`

100* Restrições de rede regional: tente uma VPN ou rede alternativa100* Restrições de rede regional: tente uma VPN ou rede alternativa

101* Problemas de TLS/SSL: atualize os certificados CA do seu sistema, ou verifique se `HTTPS_PROXY` está configurado101* Problemas de TLS/SSL: consulte [Erros de conexão TLS ou SSL](#tls-or-ssl-connection-errors)

102 102 

103Se você estiver atrás de um proxy corporativo, defina `HTTPS_PROXY` e `HTTP_PROXY` para o endereço do seu proxy antes de instalar. Peça à sua equipe de TI pela URL do proxy se você não souber, ou verifique as configurações de proxy do seu navegador.103Se você estiver atrás de um proxy corporativo, defina `HTTPS_PROXY` e `HTTP_PROXY` para o endereço do seu proxy antes de instalar. Peça à sua equipe de TI pela URL do proxy se você não souber, ou verifique as configurações de proxy do seu navegador.

104 104 


566 irm https://claude.ai/install.ps1 | iex566 irm https://claude.ai/install.ps1 | iex

567 ```567 ```

568 568 

5693. **Verifique se há interferência de proxy ou firewall**: proxies corporativos que realizam inspeção TLS podem causar esses erros, incluindo `unable to get local issuer certificate` e `SELF_SIGNED_CERT_IN_CHAIN`. Para a etapa de instalação, faça o download de instalação confiar no CA do seu proxy corporativo:5693. **Verifique se há interferência de proxy ou firewall**: proxies corporativos que realizam inspeção TLS podem causar esses erros, incluindo `unable to get local issuer certificate`, `unable to verify the first certificate` e `SELF_SIGNED_CERT_IN_CHAIN`. Faça o download de instalação confiar no CA do seu proxy corporativo:

570 570 

571 > [tab] macOS/Linux571 > [tab] macOS/Linux

572 >572 >

573 > Defina `CURL_CA_BUNDLE` para os downloads `curl` do script de instalação e [`NODE_EXTRA_CA_CERTS`](https://code.claude.com/docs/pt/network-config#custom-ca-certificates) para o comando `claude install` que o script executa em seguida. Peça à sua equipe de TI um arquivo PEM com o certificado CA raiz do seu proxy se você não o tiver. Este exemplo define ambos para o arquivo CA do seu proxy e executa o script no mesmo terminal:

574 >

573 > ```bash theme={null}575 > ```bash theme={null}

574 > curl --cacert /path/to/corporate-ca.pem -fsSL https://claude.ai/install.sh | bash576 > export CURL_CA_BUNDLE=/path/to/corporate-ca.pem

577 > export NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.pem

578 > curl -fsSL https://claude.ai/install.sh | bash

575 > ```579 > ```

580 >

581 > Se a instalação ainda falhar com um desses erros de certificado, peça à sua equipe de TI um arquivo com os certificados raiz públicos e a cadeia CA completa do seu proxy. Depois defina ambas as variáveis para esse arquivo.

576 582 

577 > [tab] Windows PowerShell583 > [tab] Windows PowerShell

578 >584 >


596 > $env:NODE_EXTRA_CA_CERTS = 'C:\path\to\corporate-ca.pem'602 > $env:NODE_EXTRA_CA_CERTS = 'C:\path\to\corporate-ca.pem'

597 > ```603 > ```

598 604 

599 Peça à sua equipe de TI pelo arquivo de certificado se você não tiver. Você também pode tentar em uma conexão direta para confirmar que o proxy é a causa.

600 

6014. **No Windows, contorne verificações de revogação bloqueadas**. Os erros `CRYPT_E_NO_REVOCATION_CHECK (0x80092012)` e `CRYPT_E_REVOCATION_OFFLINE (0x80092013)` significam que curl alcançou o servidor mas sua rede bloqueia a pesquisa de revogação de certificado, o que é comum atrás de firewalls corporativos. Se o comando que está falhando é o `curl` que baixa `install.cmd`, execute-o novamente de um Prompt de Comando com `--ssl-revoke-best-effort` adicionado:6054. **No Windows, contorne verificações de revogação bloqueadas**. Os erros `CRYPT_E_NO_REVOCATION_CHECK (0x80092012)` e `CRYPT_E_REVOCATION_OFFLINE (0x80092013)` significam que curl alcançou o servidor mas sua rede bloqueia a pesquisa de revogação de certificado, o que é comum atrás de firewalls corporativos. Se o comando que está falhando é o `curl` que baixa `install.cmd`, execute-o novamente de um Prompt de Comando com `--ssl-revoke-best-effort` adicionado:

602 ```batch theme={null}606 ```batch theme={null}

603 curl --ssl-revoke-best-effort -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd607 curl --ssl-revoke-best-effort -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd


610 614 

611### `Failed to fetch version from downloads.claude.ai`615### `Failed to fetch version from downloads.claude.ai`

612 616 

613O instalador não conseguiu alcançar o servidor de download. Isso normalmente significa que `downloads.claude.ai` está bloqueado em sua rede. Consulte [Check network connectivity](#check-network-connectivity).617O final da mensagem indica o motivo. Se for um erro de certificado como `unable to verify the first certificate`, consulte [TLS or SSL connection errors](#tls-or-ssl-connection-errors). Para qualquer outro motivo, consulte [Check network connectivity](#check-network-connectivity).

614 618 

615### The connection dropped while downloading the update619### The connection dropped while downloading the update

616 620 

workflows.md +10 −4

Details

375 375 

376 Antes da v2.1.305, agentes concluídos também podiam ser executados novamente quando você relançava um script não editado cujos itens de `pipeline()` ou tarefas de `parallel()` executavam mais de um agente cada. Para evitar essas reexecuções em novas execuções, atualize Claude Code.376 Antes da v2.1.305, agentes concluídos também podiam ser executados novamente quando você relançava um script não editado cujos itens de `pipeline()` ou tarefas de `parallel()` executavam mais de um agente cada. Para evitar essas reexecuções em novas execuções, atualize Claude Code.

377* **Ainda em execução quando você parou**: começa novamente. Parar toda a execução não conta nenhum agente como falho.377* **Ainda em execução quando você parou**: começa novamente. Parar toda a execução não conta nenhum agente como falho.

378* **[Falhou em um limite de uso](#when-a-run-hits-your-usage-limit) na v2.1.318 ou posterior**: é executado novamente, e os agentes que foram concluídos retornam seus resultados salvos. Se seu script chamou outro agente após a falha e esse agente retornou um resultado, todos os agentes que o script inicia depois do que falhou também são executados novamente.

378* **Falhou**: é executado novamente, assim como todos os agentes que o script inicia depois dele, mesmo os que foram concluídos. Parar um agente sozinho, selecionando-o em [`/workflows`](#watch-the-run) e pressionando `x`, conta como falha.379* **Falhou**: é executado novamente, assim como todos os agentes que o script inicia depois dele, mesmo os que foram concluídos. Parar um agente sozinho, selecionando-o em [`/workflows`](#watch-the-run) e pressionando `x`, conta como falha.

379 380 

380Esse último caso significa que uma falha no meio de um fan-out reexecuta trabalho que já foi concluído. Se um script inicia A, B, C e D nessa ordem e B falha, relançar retorna A do cache e executa B, C e D novamente.381Esse último caso significa que um agente no estado **Falhou** no meio de um fan-out reexecuta trabalho que já foi concluído. Se um script inicia A, B, C e D nessa ordem e B está no estado **Falhou**, relançar retorna A do cache e executa B, C e D novamente.

381 382 

382Se você editar um script que iniciava A, B, C e D para que ele inicie A, C, B e D, o segundo agente a iniciar agora é C, onde a execução anterior iniciou B. Relançar retorna A do cache e executa C, B e D novamente.383Se você editar um script que iniciava A, B, C e D para que ele inicie A, C, B e D, o segundo agente a iniciar agora é C, onde a execução anterior iniciou B. Relançar retorna A do cache e executa C, B e D novamente.

383 384 


395 396 

396### Quando uma execução atinge seu limite de uso397### Quando uma execução atinge seu limite de uso

397 398 

398Quando um agente atinge seu [limite de uso](https://code.claude.com/docs/pt/interactive-mode.md#wait-for-a-usage-limit-to-reset) do claude.ai, a execução pausa em vez de falhar esse agente: os agentes que atingem o limite aguardam a redefinição, e nenhum novo agente inicia. Pouco depois que o limite é redefinido, os agentes em espera são executados novamente e a execução continua por conta própria. Requer Claude Code v2.1.271 ou posterior; em versões anteriores, os agentes afetados falham.399Quando um agente atinge seu [limite de uso](https://code.claude.com/docs/pt/interactive-mode.md#wait-for-a-usage-limit-to-reset) do claude.ai, a execução pausa em vez de falhar esse agente. Os agentes que atingem o limite aguardam a redefinição, e nenhum novo agente inicia. Pouco depois que o limite é redefinido, os agentes em espera são executados novamente e a execução continua por conta própria. Requer Claude Code v2.1.271 ou posterior, ou [v2.1.319 ou posterior](https://code.claude.com/docs/pt/desktop.md#claude-code-version-in-the-code-tab) na [aba Code](https://code.claude.com/docs/pt/desktop.md) do Desktop. Em versões anteriores, os agentes afetados falham.

399 400 

400Enquanto a execução aguarda, sua linha de progresso no painel de tarefas e o cabeçalho [`/workflows`](#watch-the-run) mostram quando o limite é redefinido.401Enquanto a execução aguarda, sua linha de progresso no painel de tarefas e o cabeçalho [`/workflows`](#watch-the-run) mostram quando o limite é redefinido. Na aba Code, a execução mostra uma linha como `Paused at usage limit · continues after 3:45 PM if the app stays open`. Mantenha o aplicativo aberto.

401 402 

402A execução pausa apenas quando todos esses itens se aplicam; quando um não se aplica, o agente afetado falha em vez disso:403A execução pausa apenas quando todos esses itens se aplicam; quando um não se aplica, o agente afetado falha em vez disso:

403 404 

404* A sessão é interativa e conectada com uma assinatura claude.ai. Uma execução não pausa em [modo não interativo](https://code.claude.com/docs/pt/headless.md) com `claude -p` ou no [Agent SDK](https://code.claude.com/docs/pt/agent-sdk/overview.md), em uma [sessão em segundo plano](https://code.claude.com/docs/pt/agent-view.md), ou em uma sessão de colega de [Remote Control](https://code.claude.com/docs/pt/remote-control.md) ou [agent team](https://code.claude.com/docs/pt/agent-teams.md).405* A sessão está conectada com uma assinatura claude.ai sem [faturamento baseado em uso](https://code.claude.com/docs/pt/interactive-mode.md#start-a-wait-yourself), e é um destes tipos de sessão:

406 * Uma sessão interativa no terminal. Uma execução não pausa em [modo não interativo](https://code.claude.com/docs/pt/headless.md) com `claude -p` ou no [Agent SDK](https://code.claude.com/docs/pt/agent-sdk/overview.md), em uma [sessão em segundo plano](https://code.claude.com/docs/pt/agent-view.md), ou em uma sessão de colega de [Remote Control](https://code.claude.com/docs/pt/remote-control.md) ou de [equipe de agentes](https://code.claude.com/docs/pt/agent-teams.md).

407 * Uma sessão local que você iniciou na aba Code. Uma execução não pausa em uma sessão SSH, WSL, [Dispatch](https://code.claude.com/docs/pt/desktop.md#sessions-from-dispatch) ou de [tarefa agendada](https://code.claude.com/docs/pt/desktop-scheduled-tasks.md), em uma sessão iniciada a partir do Remote Control ou por meio de um [launcher corporativo](https://code.claude.com/docs/pt/corporate-launcher.md), ou enquanto [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](https://code.claude.com/docs/pt/env-vars#variables) estiver definida.

405* [`autoContinueAtUsageLimit`](https://code.claude.com/docs/pt/settings-reference#autocontinueatusagelimit) está ativado, a mesma configuração que permite que a sessão em si [aguarde a redefinição de um limite de uso](https://code.claude.com/docs/pt/interactive-mode.md#wait-for-a-usage-limit-to-reset). Se você desativá-lo durante uma espera, a espera termina e os agentes em espera falham.408* [`autoContinueAtUsageLimit`](https://code.claude.com/docs/pt/settings-reference#autocontinueatusagelimit) está ativado, a mesma configuração que permite que a sessão em si [aguarde a redefinição de um limite de uso](https://code.claude.com/docs/pt/interactive-mode.md#wait-for-a-usage-limit-to-reset). Se você desativá-lo durante uma espera, a espera termina e os agentes em espera falham.

409* Na aba Code, a caixa de seleção **Auto-continue when limits reset** em um [cartão de limite de sessão](https://code.claude.com/docs/pt/errors.md#youve-hit-your-session-limit) está marcada, como fica por padrão. Se você desmarcá-la, as execuções nas suas sessões da aba Code deixam de pausar, a menos que configurações gerenciadas definam `autoContinueAtUsageLimit` como `true`.

406* O limite é redefinido dentro de 24 horas. Um limite semanal pode ser redefinido mais adiante.410* O limite é redefinido dentro de 24 horas. Um limite semanal pode ser redefinido mais adiante.

407* A execução ainda não aguardou duas vezes. Quando atinge o limite pela terceira vez, o agente falha.411* A execução ainda não aguardou duas vezes. Quando atinge o limite pela terceira vez, o agente falha.

408 412 

413Para concluir uma execução cujos agentes falharam no limite, peça a Claude para [relançar o fluxo de trabalho](#which-agents-run-again) depois que o limite for redefinido.

414 

409### Quando um agente trava e reinicia415### Quando um agente trava e reinicia

410 416 

411Um agente cuja saída para de chegar por tempo suficiente começa novamente a partir do mesmo prompt. Em [`/workflows`](#watch-the-run), seu nome ganha um sufixo `(retry 1)` e seu detalhe mostra `attempt 2 (stalled)`. A reinicialização é automática, então você não precisa fazer nada.417Um agente cuja saída para de chegar por tempo suficiente começa novamente a partir do mesmo prompt. Em [`/workflows`](#watch-the-run), seu nome ganha um sufixo `(retry 1)` e seu detalhe mostra `attempt 2 (stalled)`. A reinicialização é automática, então você não precisa fazer nada.

worktrees.md +1 −1

Details

253 253 

254Uma worktree obtém seus próprios arquivos e branch, mas compartilha o seguinte com o checkout principal:254Uma worktree obtém seus próprios arquivos e branch, mas compartilha o seguinte com o checkout principal:

255 255 

256* **O diretório `.git` do repositório**: comandos git em uma worktree escrevem no diretório `.git` compartilhado do repositório principal, e [sandboxing](https://code.claude.com/docs/pt/sandboxing.md#filesystem-isolation) permite essas escritas, então comandos como `git commit` funcionam de dentro de uma worktree com a sandbox ativada.256* **O diretório `.git` do repositório**: comandos git em um worktree escrevem no diretório `.git` compartilhado do repositório principal. Com o [sandbox](https://code.claude.com/docs/pt/sandboxing.md#filesystem-isolation) ativado, comandos como `git commit` funcionam em uma sessão na raiz do worktree, que é onde `--worktree` inicia uma. Por padrão, eles [falham com um erro `index.lock` se você executar `claude` em um subdiretório do worktree](https://code.claude.com/docs/pt/sandboxing#git-index-lock).

257* **Plugins**: plugins instalados em [escopo de projeto](https://code.claude.com/docs/pt/plugins/loading.md#find-where-a-plugin-is-enabled) do checkout principal também carregam em worktrees do mesmo repositório, então você não precisa reinstalá-los por worktree.257* **Plugins**: plugins instalados em [escopo de projeto](https://code.claude.com/docs/pt/plugins/loading.md#find-where-a-plugin-is-enabled) do checkout principal também carregam em worktrees do mesmo repositório, então você não precisa reinstalá-los por worktree.

258* **Aprovações de permissão**: escolher "Sim, e não pergunte novamente" para um comando Bash em uma sessão de worktree salva a regra no `.claude/settings.local.json` do checkout principal. A regra se aplica no checkout principal e em cada outro worktree do repositório, e sobrevive à remoção do worktree.258* **Aprovações de permissão**: escolher "Sim, e não pergunte novamente" para um comando Bash em uma sessão de worktree salva a regra no `.claude/settings.local.json` do checkout principal. A regra se aplica no checkout principal e em cada outro worktree do repositório, e sobrevive à remoção do worktree.

259 259 

Details

41 41 

42### O que ZDR não cobre42### O que ZDR não cobre

43 43 

44ZDR não se estende aos seguintes itens, mesmo para organizações com ZDR ativado. Esses recursos seguem [políticas padrão de retenção de dados](https://code.claude.com/docs/pt/data-usage.md#data-retention):44ZDR não se estende aos seguintes itens, mesmo para organizações com ZDR ativado. Exceto quando uma linha indicar o contrário, esses recursos seguem [políticas padrão de retenção de dados](https://code.claude.com/docs/pt/data-usage.md#data-retention):

45 45 

46| Recurso | Detalhes |46| Recurso | Detalhes |

47| - | - |47| - | - |

48| Chat no claude.ai | Conversas de chat através da interface web do Claude for Enterprise não são cobertas por ZDR. |48| Chat no claude.ai | Conversas de chat através da interface web do Claude for Enterprise não são cobertas por ZDR. |

49| Cowork | Sessões de Cowork não são cobertas por ZDR. |49| Cowork | Sessões de Cowork não são cobertas por ZDR. |

50| Artefatos | Artefatos em conversas de chat e sessões de Cowork não são cobertos por ZDR e são mantidos até serem excluídos, a menos que sua organização defina um período de retenção para eles. Artefatos não estão disponíveis no Claude Code com ZDR. |

50| Claude Code Analytics | Não armazena prompts ou respostas do modelo, mas coleta metadados de produtividade como emails de conta e estatísticas de uso. Métricas de contribuição não estão disponíveis para organizações ZDR; o [dashboard de analytics](https://code.claude.com/docs/pt/analytics.md) mostra apenas métricas de uso. |51| Claude Code Analytics | Não armazena prompts ou respostas do modelo, mas coleta metadados de produtividade como emails de conta e estatísticas de uso. Métricas de contribuição não estão disponíveis para organizações ZDR; o [dashboard de analytics](https://code.claude.com/docs/pt/analytics.md) mostra apenas métricas de uso. |

51| Gerenciamento de usuários e assentos | Dados administrativos como emails de conta e atribuições de assentos são retidos sob políticas padrão. |52| Gerenciamento de usuários e assentos | Dados administrativos como emails de conta e atribuições de assentos são retidos sob políticas padrão. |

52| Integrações de terceiros | Dados processados por ferramentas de terceiros, MCP servers ou outras integrações externas não são cobertos por ZDR. Revise as práticas de tratamento de dados desses serviços independentemente. |53| Integrações de terceiros | Dados processados por ferramentas de terceiros, MCP servers ou outras integrações externas não são cobertos por ZDR. Revise as práticas de tratamento de dados desses serviços independentemente. |


60| [Sessões na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md), incluindo aquelas iniciadas a partir do [aplicativo Desktop](https://code.claude.com/docs/pt/desktop.md#cloud-sessions) | Requer armazenamento no servidor de dados de sessão, incluindo histórico de conversas com prompts e conclusões. |61| [Sessões na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md), incluindo aquelas iniciadas a partir do [aplicativo Desktop](https://code.claude.com/docs/pt/desktop.md#cloud-sessions) | Requer armazenamento no servidor de dados de sessão, incluindo histórico de conversas com prompts e conclusões. |

61| [Chat e Cowork unificados](https://support.claude.com/en/articles/17444462-set-up-and-manage-the-new-unified-claude-experience-for-your-enterprise-organization) | Requer sessões na nuvem. |62| [Chat e Cowork unificados](https://support.claude.com/en/articles/17444462-set-up-and-manage-the-new-unified-claude-experience-for-your-enterprise-organization) | Requer sessões na nuvem. |

62| [Claude Tag](https://claude.com/docs/claude-tag) | Retém memória de canal e transcrições de sessão. |63| [Claude Tag](https://claude.com/docs/claude-tag) | Retém memória de canal e transcrições de sessão. |

63| [Artefatos](https://code.claude.com/docs/pt/artifacts.md) | Requer armazenamento de conteúdo de página publicado na infraestrutura operada pela Anthropic. |64| [Artefatos](https://code.claude.com/docs/pt/artifacts.md) no Claude Code | Requer armazenamento de conteúdo de página publicado na infraestrutura operada pela Anthropic. |

65| [Claude Docs](https://support.claude.com/en/articles/16923645-get-started-with-claude-docs) | Requer armazenamento de conteúdo de documentos na infraestrutura operada pela Anthropic. |

64| Envio de feedback (`/feedback`, `/bug`, `/share`) | Enviar feedback envia dados de conversas para a Anthropic. |66| Envio de feedback (`/feedback`, `/bug`, `/share`) | Enviar feedback envia dados de conversas para a Anthropic. |

65| [Controle Remoto](https://code.claude.com/docs/pt/remote-control.md) | Armazena a transcrição da sessão nos servidores da Anthropic para sincronizar a conversa entre dispositivos. |67| [Controle Remoto](https://code.claude.com/docs/pt/remote-control.md) | Armazena a transcrição da sessão nos servidores da Anthropic para sincronizar a conversa entre dispositivos. |

66 68