SpyBara
Go Premium

Documentation 2026-10-14 22:58 UTC to 2026-10-15 23:58 UTC

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

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

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

4 4 

5# Use Claude Code features in the SDK5# Usar recursos do Claude Code no SDK

6 6 

7> Load project instructions, skills, hooks, and other Claude Code features into your SDK agents.7> Carregue instruções do projeto, skills, hooks e outros recursos do Claude Code nos seus agentes do SDK.

8 8 

9O Agent SDK é construído na mesma base que Claude Code, o que significa que seus agentes SDK têm acesso aos mesmos recursos baseados em sistema de arquivos: instruções de projeto (`CLAUDE.md` e regras), skills, hooks e muito mais.9O Agent SDK é construído na mesma base que Claude Code, o que significa que seus agentes SDK têm acesso aos mesmos recursos baseados em sistema de arquivos: instruções de projeto (`CLAUDE.md` e regras), skills, hooks e muito mais.

10 10 

Details

150 150 

151Claude Code lê o diretório de trabalho para determinar:151Claude Code lê o diretório de trabalho para determinar:

152 152 

153* **Configurações e hooks do projeto**: qual [configuração e hooks do projeto são carregados](/docs/pt/agent-sdk/claude-code-features)153* **Configurações e hooks do projeto**: de qual projeto [as configurações e os hooks são carregados](/docs/pt/agent-sdk/claude-code-features)

154* **Skills**: onde [as skills da sessão são descobertas](/docs/pt/agent-sdk/skills)154* **Skills**: onde [as skills da sessão são descobertas](/docs/pt/agent-sdk/skills)

155* **Armazenamento de sessão**: a qual projeto uma [sessão armazenada pertence](/docs/pt/agent-sdk/session-storage)155* **Armazenamento de sessão**: a qual projeto uma [sessão armazenada pertence](/docs/pt/agent-sdk/session-storage)

156 156 

Details

636| Limitação | Descrição |636| Limitação | Descrição |

637| - | - |637| - | - |

638| Apenas ferramentas Write/Edit/NotebookEdit | As alterações feitas através de comandos Bash não são rastreadas |638| Apenas ferramentas Write/Edit/NotebookEdit | As alterações feitas através de comandos Bash não são rastreadas |

639| Edições de subagent | Edições que um [subagent](/docs/pt/agent-sdk/subagents) aplica não são rastreadas ou restauradas, exceto uma skill com `context: fork` executando em primeiro plano; use git para reverter edições não rastreadas |639| Edições de subagente | Edições que um [subagente](/docs/pt/agent-sdk/subagents) aplica não são rastreadas, exceto uma skill com `context: fork` executando em primeiro plano. Uma reversão as desfaz apenas em arquivos que a conversa principal já havia editado; use git para reverter o restante |

640| Mesma sessão | Os checkpoints estão vinculados à sessão que os criou |640| Mesma sessão | Os checkpoints estão vinculados à sessão que os criou |

641| Apenas conteúdo de arquivo | Criar, mover ou deletar diretórios não é desfeito pela reversão |641| Apenas conteúdo de arquivo | Criar, mover ou deletar diretórios não é desfeito pela reversão |

642| Arquivos locais | Arquivos remotos ou de rede não são rastreados |642| Arquivos locais | Arquivos remotos ou de rede não são rastreados |

Details

205 205 

206**Comportamento atual:** Omitir `settingSources` em `query()` carrega as configurações do usuário, projeto e sistema de arquivos local, correspondendo à CLI. Isso inclui `~/.claude/settings.json`, `.claude/settings.json`, `.claude/settings.local.json`, arquivos CLAUDE.md e comandos personalizados.206**Comportamento atual:** Omitir `settingSources` em `query()` carrega as configurações do usuário, projeto e sistema de arquivos local, correspondendo à CLI. Isso inclui `~/.claude/settings.json`, `.claude/settings.json`, `.claude/settings.local.json`, arquivos CLAUDE.md e comandos personalizados.

207 207 

208Para executar isolado das configurações do sistema de arquivos, passe `settingSources: []`, ou `setting_sources=[]` em Python. Consulte [Control filesystem settings with settingSources](/docs/pt/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) para saber o que cada fonte carrega.208Para executar isolado das configurações do sistema de arquivos, passe `settingSources: []`, ou `setting_sources=[]` em Python. Consulte [Controlar configurações do sistema de arquivos com settingSources](/docs/pt/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) para saber o que cada fonte carrega.

209 209 

210O isolamento é especialmente importante para pipelines de CI/CD, aplicações implantadas, ambientes de teste e sistemas multi-tenant, onde as personalizações locais não devem vazar.210O isolamento é especialmente importante para pipelines de CI/CD, aplicações implantadas, ambientes de teste e sistemas multi-tenant, onde as personalizações locais não devem vazar.

211 211 

212<Note>212<Note>

213 Python SDK 0.1.59 e anteriores tratavam uma lista vazia da mesma forma que omitir a opção, portanto atualize antes de confiar em `setting_sources=[]`. Consulte [What settingSources does not control](/docs/pt/agent-sdk/claude-code-features#what-settingsources-does-not-control) para entradas que são lidas mesmo quando `settingSources` é `[]`.213 Python SDK 0.1.59 e anteriores tratavam uma lista vazia da mesma forma que omitir a opção, portanto atualize antes de confiar em `setting_sources=[]`. Consulte [O que settingSources não controla](/docs/pt/agent-sdk/claude-code-features#what-settingsources-does-not-control) para entradas que são lidas mesmo quando `settingSources` é `[]`.

214</Note>214</Note>

215 215 

216<h2 id="next-steps">216<h2 id="next-steps">

Details

17 17 

18Este guia explica como o SDK emite telemetria, como configurar a exportação e como marcar e filtrar os dados uma vez que chegam ao seu backend. Para ler o uso de tokens e custo diretamente do fluxo de resposta do SDK em vez de exportar para um backend, consulte [Rastrear custo e uso](/docs/pt/agent-sdk/cost-tracking).18Este guia explica como o SDK emite telemetria, como configurar a exportação e como marcar e filtrar os dados uma vez que chegam ao seu backend. Para ler o uso de tokens e custo diretamente do fluxo de resposta do SDK em vez de exportar para um backend, consulte [Rastrear custo e uso](/docs/pt/agent-sdk/cost-tracking).

19 19 

20<Note>

21 Para a Claude API ou Managed Agents, consulte [OpenTelemetry para a Claude API](https://platform.claude.com/docs/en/manage-claude/opentelemetry).

22</Note>

23 

20<h2 id="how-telemetry-flows-from-the-sdk">24<h2 id="how-telemetry-flows-from-the-sdk">

21 Como a telemetria flui do SDK25 Como a telemetria flui do SDK

22</h2>26</h2>

agent-view.md +5 −5

Details

500 O que é transferido quando você coloca em segundo plano500 O que é transferido quando você coloca em segundo plano

501</h4>501</h4>

502 502 

503Colocar em segundo plano inicia um novo processo que retoma da conversa salva, e o trabalho em andamento se move para ele: comandos de shell em segundo plano em execução, subagentes em segundo plano, fluxos de trabalho dinâmicos, tarefas agendadas que você criou com [`/loop`](/docs/pt/scheduled-tasks), e [respostas automáticas do Claude a comentários de artefatos](/docs/pt/artifacts#let-claude-reply-to-comments-on-its-own) tudo se transfere e continua em execução lá. Um subagente se move junto com tudo o que iniciou, portanto se transfere apenas quando todo esse trabalho também pode se mover. Para parar o trabalho em andamento em vez de transferi-lo, defina a variável de ambiente [`CLAUDE_DISABLE_ADOPT=1`](/docs/pt/env-vars#variables); Claude Code então pede que você confirme antes de colocar em segundo plano.503Colocar em segundo plano inicia um novo processo que retoma da conversa salva, e o trabalho em segundo plano em andamento se move para ele: comandos de shell em segundo plano em execução, subagentes em segundo plano, fluxos de trabalho dinâmicos, tarefas agendadas que você criou com [`/loop`](/docs/pt/scheduled-tasks), e [respostas automáticas do Claude a comentários de artefatos](/docs/pt/artifacts#let-claude-reply-to-comments-on-its-own) tudo se transfere e continua em execução lá. Um subagente se move junto com tudo o que iniciou, portanto se transfere apenas quando todo esse trabalho também pode se mover. Para parar o trabalho em segundo plano em andamento em vez de transferi-lo, defina a variável de ambiente [`CLAUDE_DISABLE_ADOPT=1`](/docs/pt/env-vars#variables); Claude Code então pede que você confirme antes de colocar em segundo plano.

504 504 

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

506 506 

507Claude Code para o trabalho que não pode ser transferido, como um [monitor](/docs/pt/tools-reference#monitor-tool) em execução, e para um subagente em segundo plano que possui um monitor junto com ele. Quando qualquer trabalho desse tipo está em execução, Claude Code mostra o diálogo `Background this session?` para que você possa confirmar antes de parar o trabalho.507Claude Code interrompe o trabalho em segundo plano que não pode ser transferido, como um [monitor](/docs/pt/tools-reference#monitor-tool) em execução, e também interrompe um subagente em segundo plano que possui um monitor. Quando qualquer trabalho desse tipo está em execução, Claude Code mostra o diálogo `Background this session?` para que você possa confirmar antes de parar o trabalho.

508 508 

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

510 510 


949 Backgrounding mostra um diálogo `Background this session?`949 Backgrounding mostra um diálogo `Background this session?`

950</h3>950</h3>

951 951 

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

953 953 

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

955* **Um fluxo de trabalho com subagentes em execução**: um [fluxo de trabalho dinâmico](/docs/pt/workflows) ainda tem subagentes em execução. O fluxo de trabalho em si é transferido, mas seus subagentes em execução reiniciam do início, e o diálogo diz quantos.955* **Um fluxo de trabalho com subagentes em execução**: um [fluxo de trabalho dinâmico](/docs/pt/workflows) ainda tem subagentes em execução. O fluxo de trabalho em si é transferido, mas seus subagentes em execução reiniciam do início, e o diálogo diz quantos.

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

957 957 


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

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

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

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

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

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

1181| v2.1.172 | `/model` na entrada de despacho define uma substituição de modelo de despacho com escopo de sessão. |1181| v2.1.172 | `/model` na entrada de despacho define uma substituição de modelo de despacho com escopo de sessão. |

analytics.md +2 −0

Details

13| Claude for Teams / Enterprise | [claude.ai/analytics/claude-code](https://claude.ai/analytics/claude-code) | Métricas de uso, métricas de contribuição com integração GitHub, leaderboard, exportação de dados | [Detalhes](#access-analytics-for-team-and-enterprise) |13| Claude for Teams / Enterprise | [claude.ai/analytics/claude-code](https://claude.ai/analytics/claude-code) | Métricas de uso, métricas de contribuição com integração GitHub, leaderboard, exportação de dados | [Detalhes](#access-analytics-for-team-and-enterprise) |

14| API (Claude Console) | [platform.claude.com/claude-code](https://platform.claude.com/claude-code) | Métricas de uso, rastreamento de gastos, insights da equipe | [Detalhes](#access-analytics-for-api-customers) |14| API (Claude Console) | [platform.claude.com/claude-code](https://platform.claude.com/claude-code) | Métricas de uso, rastreamento de gastos, insights da equipe | [Detalhes](#access-analytics-for-api-customers) |

15 15 

16O Code Review tem seu próprio painel. Para atividade de revisão e gastos, consulte [Visualizar o uso](/docs/pt/code-review-costs#view-usage).

17 

16<h2 id="access-analytics-for-team-and-enterprise">18<h2 id="access-analytics-for-team-and-enterprise">

17 Acessar análise para Team e Enterprise19 Acessar análise para Team e Enterprise

18</h2>20</h2>

artifacts.md +5 −3

Details

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

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

77| Você compartilhou o artefato publicamente | Pergunta uma vez por conversa antes de alterá-lo |77| Você compartilhou o artefato publicamente | Pergunta uma vez por conversa antes de alterá-lo |

78| Você desativou o [feature-flag fetching](/docs/pt/env-vars#features-that-need-feature-flag-fetching) | Pergunta antes da primeira publicação de cada artefato |

79| Claude publica em um turno iniciado por uma [tarefa agendada](/docs/pt/scheduled-tasks) disparada em sua sessão, em vez de um prompt que você digitou | Pergunta antes da primeira publicação de cada artefato |78| Claude publica em um turno iniciado por uma [tarefa agendada](/docs/pt/scheduled-tasks) disparada em sua sessão, em vez de um prompt que você digitou | Pergunta antes da primeira publicação de cada artefato |

80| 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 |79| 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 |

80| No modo [Manual](/docs/pt/permission-modes) 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 |

81 81 

82Claude lê arquivos nos [diretórios de trabalho](/docs/pt/permissions#working-directories) da sua sessão, e no diretório temporário em que escreve as páginas, sem perguntar. Para permitir que Claude publique a partir de outra pasta sem o prompt, adicione a pasta como diretório de trabalho com [`--add-dir`](/docs/pt/cli-reference#cli-flags) na inicialização ou `/add-dir` durante a sessão.82Para permitir que Claude leia um arquivo fora dos seus [diretórios de trabalho](/docs/pt/permissions#working-directories) sem sua aprovação, adicione a pasta dele como diretório de trabalho com [`--add-dir`](/docs/pt/cli-reference#cli-flags) na inicialização ou `/add-dir` durante a sessão. Claude já lê arquivos nesses diretórios, e no diretório temporário em que escreve as páginas, sem perguntar.

83 

84Se um prompt de publicação incluir uma frase como `Also makes 1 edit to that file on disk.`, Claude está alterando o arquivo do artefato e publicando-o em uma única etapa. Quando você aprova o prompt, Claude Code publica a página e, em seguida, grava a alteração no seu arquivo.

83 85 

84<h2 id="update-an-artifact">86<h2 id="update-an-artifact">

85 Atualizar um artefato87 Atualizar um artefato


149* **Sessão na nuvem sem acesso à rede**: para um [ambiente na nuvem](/docs/pt/cloud-environments#access-levels), esse é o nível **None**. No [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), o classificador pode aprovar em vez disso; em uma sessão do [Cowork](https://claude.com/product/cowork), a aprovação é exclusivamente sua.151* **Sessão na nuvem sem acesso à rede**: para um [ambiente na nuvem](/docs/pt/cloud-environments#access-levels), esse é o nível **None**. No [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), o classificador pode aprovar em vez disso; em uma sessão do [Cowork](https://claude.com/product/cowork), a aprovação é exclusivamente sua.

150* **Artefato público de outra organização**: Claude Code pergunta a você primeiro, mesmo no modo auto. Quando Claude Code não pode perguntar a você, como no modo `bypassPermissions`, Claude não pode ler o artefato. Claude só pode ler esses artefatos enquanto a [busca de feature flags](/docs/pt/env-vars#features-that-need-feature-flag-fetching) estiver ativada.152* **Artefato público de outra organização**: Claude Code pergunta a você primeiro, mesmo no modo auto. Quando Claude Code não pode perguntar a você, como no modo `bypassPermissions`, Claude não pode ler o artefato. Claude só pode ler esses artefatos enquanto a [busca de feature flags](/docs/pt/env-vars#features-that-need-feature-flag-fetching) estiver ativada.

151* **Proprietário ou configuração de rede não confirmados**: quando Claude Code não consegue confirmar quem criou o artefato, ou não consegue confirmar a configuração de rede de uma sessão na nuvem, ele pergunta, e sua aprovação cobre apenas essa requisição.153* **Proprietário ou configuração de rede não confirmados**: quando Claude Code não consegue confirmar quem criou o artefato, ou não consegue confirmar a configuração de rede de uma sessão na nuvem, ele pergunta, e sua aprovação cobre apenas essa requisição.

152* **Modo de planejamento, ou busca de feature flags desativada**: no [modo de planejamento](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode), ou se você desativou a [busca de feature flags](/docs/pt/env-vars#features-that-need-feature-flag-fetching), Claude Code pergunta antes que a ferramenta Artifact leia um artefato criado por outra pessoa da sua organização.154* **Modo de planejamento**: no [modo de planejamento](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode), Claude Code pergunta antes que a ferramenta Artifact leia um artefato criado por outra pessoa da sua organização.

153 155 

154Quando Claude lê o artefato com WebFetch, as próprias [regras de solicitação](/docs/pt/tools-reference#webfetch-tool-behavior) do WebFetch ainda se aplicam.156Quando Claude lê o artefato com WebFetch, as próprias [regras de solicitação](/docs/pt/tools-reference#webfetch-tool-behavior) do WebFetch ainda se aplicam.

155 157 

Details

102Um [subagent](/docs/pt/sub-agents) faz edições com as ferramentas de edição de arquivo do Claude, mas Claude Code geralmente não captura essas edições nos checkpoints da sua sessão. Se o rewind restaura essas edições depende de como o subagent é executado:102Um [subagent](/docs/pt/sub-agents) faz edições com as ferramentas de edição de arquivo do Claude, mas Claude Code geralmente não captura essas edições nos checkpoints da sua sessão. Se o rewind restaura essas edições depende de como o subagent é executado:

103 103 

104* **Skill forked em foreground**: uma [skill com `context: fork`](/docs/pt/skills#run-skills-in-a-subagent) que é executada em foreground edita sua árvore de trabalho durante seu próprio turno, então o rewind restaura suas edições como de costume. Defina `background: false` para executar um fork em foreground; algumas situações, [listadas na página de skills](/docs/pt/skills#run-skills-in-a-subagent), o executam lá independentemente da configuração.104* **Skill forked em foreground**: uma [skill com `context: fork`](/docs/pt/skills#run-skills-in-a-subagent) que é executada em foreground edita sua árvore de trabalho durante seu próprio turno, então o rewind restaura suas edições como de costume. Defina `background: false` para executar um fork em foreground; algumas situações, [listadas na página de skills](/docs/pt/skills#run-skills-in-a-subagent), o executam lá independentemente da configuração.

105* **Qualquer outro subagent**: o rewind não restaura as edições. Use git para revertê-las. Isso inclui uma skill forked que é executada em background, o padrão, e uma execução de [`/code-review --fix`](/docs/pt/code-review) em background.105* **Qualquer outro subagente**: o rewind restaura apenas os arquivos que Claude já havia editado na sua conversa. As edições do subagente em outros arquivos permanecem, então use git para revertê-las. Isso inclui uma skill forked que é executada em background, o padrão, e uma execução de [`/code-review --fix`](/docs/pt/code-review-local) em background.

106 106 

107<h3 id="external-changes-not-tracked">107<h3 id="external-changes-not-tracked">

108 Alterações externas não rastreadas108 Alterações externas não rastreadas

Details

64Consulte [Conectar a partir do seu terminal](/docs/pt/web-quickstart#connect-from-your-terminal) para o passo a passo de `/web-setup`, incluindo o que `/web-setup` armazena e como removê-lo.64Consulte [Conectar a partir do seu terminal](/docs/pt/web-quickstart#connect-from-your-terminal) para o passo a passo de `/web-setup`, incluindo o que `/web-setup` armazena e como removê-lo.

65 65 

66<Note>66<Note>

67 Organizações com [Zero Data Retention](/docs/pt/zero-data-retention) habilitado, ou com a [configuração HIPAA](/docs/pt/hipaa-setup) aplicada, não podem usar `/web-setup` ou outros recursos de sessão na nuvem.67 Organizações com [Zero Data Retention](/docs/pt/zero-data-retention) habilitado, ou com a [configuração HIPAA](/docs/pt/hipaa-setup) aplicada, não podem usar `/web-setup` ou outros recursos de sessão na nuvem. Organizações que usam [chaves de criptografia gerenciadas pelo cliente](https://platform.claude.com/docs/en/manage-claude/cmek) (CMEK) também não podem iniciar sessões na nuvem.

68</Note>68</Note>

69 69 

70<h3 id="quick-setup-for-team-and-enterprise">70<h3 id="quick-setup-for-team-and-enterprise">

Details

559 559 

560O `matcher` limita o hook aos eventos `startup` e `resume`, e `$CLAUDE_PROJECT_DIR` resolve para a raiz do repositório, portanto o hook encontra o script independentemente do diretório de trabalho da sessão.560O `matcher` limita o hook aos eventos `startup` e `resume`, e `$CLAUDE_PROJECT_DIR` resolve para a raiz do repositório, portanto o hook encontra o script independentemente do diretório de trabalho da sessão.

561 561 

562Em seguida, crie o script em `scripts/install_pkgs.sh`. Ele sai imediatamente fora da nuvem, depois instala suas dependências:562Em seguida, crie o script em `scripts/install_pkgs.sh`. Ele sai imediatamente fora da nuvem, depois instala suas dependências. Ele pula o `npm install` enquanto `package.json`, `package-lock.json` e o próprio script permanecem inalterados desde a última instalação bem-sucedida:

563 563 

564```bash theme={null}564```bash theme={null}

565#!/bin/bash565#!/bin/bash


568 exit 0568 exit 0

569fi569fi

570 570 

571npm install571cd "$CLAUDE_PROJECT_DIR" || exit 1

572hashes=node_modules/.install_pkgs.sha256

573 

574if ! sha256sum --check --status "$hashes" 2>/dev/null; then

575 # Delete the old hashes first, so a failed install runs again next time

576 rm -f "$hashes"

577 if npm install; then

578 sha256sum scripts/install_pkgs.sh package.json package-lock.json > "$hashes" || rm -f "$hashes"

579 fi

580fi

581 

582# pip skips requirements that are already satisfied

572pip install -r requirements.txt583pip install -r requirements.txt

573exit 0584exit 0

574```585```

575 586 

576A verificação `CLAUDE_CODE_REMOTE` é o que escopa a instalação para sessões na nuvem: a VM do ambiente carrega essa variável como `true`, nunca é `true` localmente, portanto em seu laptop o script sai antes de instalar qualquer coisa.587A verificação `CLAUDE_CODE_REMOTE` é o que escopa a instalação para sessões na nuvem: a VM do ambiente carrega essa variável como `true`, nunca é `true` localmente, portanto em seu laptop o script sai antes de instalar qualquer coisa.

577 588 

578Juntos, os dois arquivos dão a cada sessão na nuvem um `npm install` e `pip install` fresco na inicialização enquanto deixam as sessões locais intocadas.589Para confirmar que o `npm install` foi bem-sucedido, inicie uma sessão na nuvem e peça a Claude para mostrar `node_modules/.install_pkgs.sha256`. O arquivo lista um hash para cada um dos três arquivos. Se o arquivo estiver ausente, peça a Claude para executar `npm install` e relatar o erro.

590 

591<Note>

592 Se o `npm install` lê outros arquivos, como o `package.json` de um workspace, um `.npmrc` ou as entradas do seu script `postinstall`, adicione-os ao comando `sha256sum` que salva os hashes. Caso contrário, você mantém os pacotes antigos depois que um desses arquivos muda.

593</Note>

579 594 

580<h4 id="limitations-in-cloud-sessions">595<h4 id="limitations-in-cloud-sessions">

581 Limitações em sessões na nuvem596 Limitações em sessões na nuvem


587* **Sem escopo apenas na nuvem**: os hooks são executados em sessões locais e na nuvem. Para pular a execução local, saia cedo a menos que a variável de ambiente `CLAUDE_CODE_REMOTE` seja `true`, da forma que o [script de instalação de dependência](#install-dependencies-with-a-sessionstart-hook) faz.602* **Sem escopo apenas na nuvem**: os hooks são executados em sessões locais e na nuvem. Para pular a execução local, saia cedo a menos que a variável de ambiente `CLAUDE_CODE_REMOTE` seja `true`, da forma que o [script de instalação de dependência](#install-dependencies-with-a-sessionstart-hook) faz.

588* **Requer acesso à rede**: os comandos de instalação precisam alcançar registros de pacotes. Se seu ambiente usa acesso à rede **None**, esses hooks falham. A [lista de permissões padrão](#default-allowed-domains) em **Trusted** cobre npm, PyPI, RubyGems e crates.io.603* **Requer acesso à rede**: os comandos de instalação precisam alcançar registros de pacotes. Se seu ambiente usa acesso à rede **None**, esses hooks falham. A [lista de permissões padrão](#default-allowed-domains) em **Trusted** cobre npm, PyPI, RubyGems e crates.io.

589* **Compatibilidade de proxy**: em ambientes hospedados pela Anthropic, todo o tráfego de saída passa por um [proxy de segurança](#security-proxy), e alguns gerenciadores de pacotes não funcionam corretamente com isso; Bun é um exemplo conhecido. Em um [ambiente auto-hospedado](/docs/pt/self-hosted-environments-deploy#default-deny-egress), o tráfego de saída vai através de seu próprio limite de rede em vez disso.604* **Compatibilidade de proxy**: em ambientes hospedados pela Anthropic, todo o tráfego de saída passa por um [proxy de segurança](#security-proxy), e alguns gerenciadores de pacotes não funcionam corretamente com isso; Bun é um exemplo conhecido. Em um [ambiente auto-hospedado](/docs/pt/self-hosted-environments-deploy#default-deny-egress), o tráfego de saída vai através de seu próprio limite de rede em vez disso.

590* **Adiciona latência de inicialização**: os hooks são executados cada vez que uma sessão é iniciada ou retomada, ao contrário dos scripts de configuração que se beneficiam do [cache do ambiente](#environment-caching). Mantenha os scripts de instalação rápidos verificando se as dependências já estão presentes antes de reinstalar.605* **Adiciona latência de inicialização**: os hooks são executados cada vez que uma sessão é iniciada ou retomada, ao contrário dos scripts de configuração que se beneficiam do [cache do ambiente](#environment-caching). Mantenha os scripts de instalação rápidos pulando o trabalho que já foi feito, da forma que o [script de instalação de dependência](#install-dependencies-with-a-sessionstart-hook) faz.

591 606 

592Para personalizar a imagem base, use um script de configuração para instalar o que você precisa no topo da [imagem fornecida](#installed-tools), ou execute sua própria imagem como um contêiner ao lado de Claude com `docker compose`. Substituir a imagem base inteiramente ainda não é suportado.607Para personalizar a imagem base, use um script de configuração para instalar o que você precisa no topo da [imagem fornecida](#installed-tools), ou execute sua própria imagem como um contêiner ao lado de Claude com `docker compose`. Substituir a imagem base inteiramente ainda não é suportado.

593 608 

code-review.md +87 −387

Details

4 4 

5# Code Review5# Code Review

6 6 

7> Configure análises automatizadas de PR que detectam erros de lógica, vulnerabilidades de segurança e regressões usando análise multi-agente de sua base de código completa7> Detecte bugs em pull requests do GitHub com Code Review: Claude revisa cada alteração, verifica suas descobertas e comenta inline. Para planos Team e Enterprise

8 8 

9<Note>9Com Code Review, Claude revisa os pull requests em seus repositórios do GitHub. Vários agentes leem cada alteração junto com o código circundante, procurando problemas como erros de lógica, vulnerabilidades de segurança ou casos extremos quebrados. Uma etapa de verificação confere as descobertas contra o código antes de elas serem relatadas.

10 Code Review está em prévia de pesquisa, disponível para assinaturas [Team e Enterprise](https://claude.ai/admin-settings/claude-code). Não está disponível para organizações com [Zero Data Retention](/docs/pt/zero-data-retention) ativado ou com a [configuração HIPAA](/docs/pt/hipaa-setup) aplicada, e não é coberto pelo BAA da Anthropic. Em outros planos, você ainda pode [revisar um diff localmente](#review-a-diff-locally) com o comando `/code-review`.

11</Note>

12 

13Code Review analisa seus pull requests do GitHub e publica descobertas como comentários inline nas linhas de código onde encontrou problemas. Uma frota de agentes especializados examina as alterações de código no contexto de sua base de código completa, procurando por erros de lógica, vulnerabilidades de segurança, casos extremos quebrados e regressões sutis.

14 

15As descobertas são marcadas por severidade e não aprovam ou bloqueiam seu PR, portanto os fluxos de trabalho de revisão existentes permanecem intactos. Você pode ajustar o que Claude sinaliza adicionando um arquivo `CLAUDE.md` ou `REVIEW.md` ao seu repositório.

16 

17Para executar Claude em sua própria infraestrutura de CI em vez deste serviço gerenciado, consulte [GitHub Actions](/docs/pt/github-actions) ou [GitLab CI/CD](/docs/pt/gitlab-ci-cd). Para repositórios em uma instância GitHub auto-hospedada, consulte [GitHub Enterprise Server](/docs/pt/github-enterprise-server).

18 10 

19Esta página cobre:11As descobertas chegam como comentários inline nas linhas em questão, classificadas por [severidade](/docs/pt/code-review-pull-requests#severity-levels), com um resumo e uma execução de verificação no pull request. Uma revisão nunca aprova nem bloqueia o pull request, portanto a decisão de fazer merge permanece com sua equipe.

20 12 

21* [Como as revisões funcionam](#how-reviews-work)13<img src="https://mintcdn.com/claude-code/gLJVaPQEgKC8ZyUD/images/code-review-pipeline.svg?fit=max&auto=format&n=gLJVaPQEgKC8ZyUD&q=85&s=0351c96df9efa3105172eb00a672f130" className="dark:hidden" alt="Diagrama de uma revisão em quatro etapas. Um pull request no GitHub vai para vários agentes que pesquisam em paralelo na infraestrutura da Anthropic. Uma etapa de verificação descarta falsos positivos, as descobertas restantes são desduplicadas e classificadas por severidade, e a revisão publica comentários inline, um resumo e uma execução de verificação de volta no GitHub." width="760" height="300" data-path="images/code-review-pipeline.svg" />

22* [Configuração](#set-up-code-review)

23* [Acionando revisões manualmente](#manually-trigger-reviews) com `@claude review` e `@claude review always`

24* [Personalizando revisões](#customize-reviews) com `CLAUDE.md` e `REVIEW.md`

25* [Preços](#pricing)

26* [Troubleshooting](#troubleshooting) execuções falhadas e comentários ausentes

27* [Revisando um diff localmente](#review-a-diff-locally) com o comando `/code-review`

28 

29<h2 id="how-reviews-work">

30 Como as revisões funcionam

31</h2>

32 14 

33Depois que um administrador [ativa Code Review](#set-up-code-review) para sua organização, as revisões são acionadas quando um PR é aberto, em cada push ou quando solicitado manualmente, dependendo do comportamento configurado do repositório. Comentar `@claude review` [inicia uma revisão em um PR](#manually-trigger-reviews) em qualquer modo.15<img src="https://mintcdn.com/claude-code/gLJVaPQEgKC8ZyUD/images/code-review-pipeline-dark.svg?fit=max&auto=format&n=gLJVaPQEgKC8ZyUD&q=85&s=9cf26bde98f4e999d0d9ff5bf5bdff40" className="hidden dark:block" alt="Diagrama de uma revisão em quatro etapas. Um pull request no GitHub vai para vários agentes que pesquisam em paralelo na infraestrutura da Anthropic. Uma etapa de verificação descarta falsos positivos, as descobertas restantes são desduplicadas e classificadas por severidade, e a revisão publica comentários inline, um resumo e uma execução de verificação de volta no GitHub." width="760" height="300" data-path="images/code-review-pipeline-dark.svg" />

34 

35Quando uma revisão é executada, vários agentes analisam o diff e o código circundante em paralelo na infraestrutura da Anthropic. Cada agente procura por uma classe diferente de problema, então uma etapa de verificação verifica os candidatos contra o comportamento real do código para filtrar falsos positivos. Os resultados são desduplicados, classificados por severidade e publicados como comentários inline nas linhas específicas onde os problemas foram encontrados, com um resumo no corpo da revisão. Se nenhum problema for encontrado, Code Review atualiza a execução de verificação do GitHub para mostrar que nenhum problema foi detectado. Claude também pode publicar um breve comentário de confirmação no PR.

36 

37As revisões escalam em custo com o tamanho e complexidade do PR, completando em média em 20 minutos. Os administradores podem monitorar a atividade de revisão e gastos através do [painel de análise](#view-usage).

38 

39<h3 id="severity-levels">

40 Níveis de severidade

41</h3>

42 

43Cada descoberta é marcada com um nível de severidade:

44 

45| Marcador | Severidade | Significado |

46| :- | :- | :- |

47| 🔴 | Importante | Um bug que deve ser corrigido antes de fazer merge |

48| 🟡 | Nit | Um problema menor, vale a pena corrigir mas não é bloqueante |

49| 🟣 | Pré-existente | Um bug que existe na base de código mas não foi introduzido por este PR |

50 

51As descobertas incluem uma seção de raciocínio estendido recolhível que você pode expandir para entender por que Claude sinalizou o problema e como verificou o problema.

52 

53<h3 id="rate-and-reply-to-findings">

54 Avaliar e responder a descobertas

55</h3>

56 

57Cada comentário de revisão do Claude chega com 👍 e 👎 já anexados para que ambos os botões apareçam na interface do GitHub para classificação com um clique. Clique em 👍 se a descoberta foi útil ou 👎 se estava errada ou ruidosa. A Anthropic coleta contagens de reações após o PR ser mesclado e as usa para ajustar o revisor. As reações não acionam uma re-revisão ou alteram nada no PR.

58 

59Responder a um comentário inline não solicita que Claude responda ou atualize o PR. Para agir em uma descoberta, corrija o código e faça push. Se o PR estiver inscrito em revisões acionadas por push, a próxima execução resolve a thread quando o problema for corrigido. Para solicitar uma revisão nova sem fazer push, comente `@claude review` como um [comentário de PR de nível superior](#manually-trigger-reviews).

60 

61Para descartar uma descoberta sem uma alteração de código, resolva sua thread; responder não a descarta.

62 

63<h3 id="check-run-output">

64 Saída de execução de verificação

65</h3>

66 

67Além dos comentários de revisão inline, cada revisão popula a execução de verificação **Claude Code Review** que aparece junto com suas verificações de CI. Expanda seu link **Details** para ver um resumo de cada descoberta em um único lugar, classificado por severidade:

68 

69| Severidade | Arquivo:Linha | Problema |

70| - | - | - |

71| 🔴 Importante | `src/auth/session.ts:142` | Atualização de token corre com logout, deixando sessões obsoletas ativas |

72| 🟡 Nit | `src/auth/session.ts:88` | `parseExpiry` retorna silenciosamente 0 em entrada malformada |

73 

74Cada descoberta também aparece como uma anotação na aba **Files changed**, marcada diretamente nas linhas de diff relevantes. As descobertas Importantes são renderizadas com um marcador vermelho, nits com um aviso amarelo e bugs pré-existentes com um aviso cinza. Anotações e a tabela de severidade são escritas na execução de verificação independentemente dos comentários de revisão inline, portanto permanecem disponíveis mesmo se GitHub rejeitar um comentário inline em uma linha que se moveu.

75 

76A execução de verificação sempre é concluída com uma conclusão neutra, portanto nunca bloqueia a mesclagem através de regras de proteção de branch. Se você deseja bloquear mesclagens em descobertas de Code Review, leia o detalhamento de severidade da saída de execução de verificação em seu próprio CI. A última linha do texto Details é um comentário legível por máquina que seu fluxo de trabalho pode analisar com `gh` e jq. Para encontrar a ID de execução de verificação, liste as execuções de verificação do commit com `gh api repos/OWNER/REPO/commits/<commit-sha>/check-runs --jq '.check_runs[] | {id, name}'` e pegue a `id` da execução `Claude Code Review`. Substitua `OWNER`, `REPO` e `CHECK_RUN_ID` pelo proprietário do seu repositório, nome do repositório e essa ID:

77 

78```bash theme={null}

79gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID \

80 --jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'

81```

82 

83Isso retorna um objeto JSON com contagens por severidade, por exemplo `{"normal": 2, "nit": 1, "pre_existing": 0}`. A chave `normal` contém a contagem de descobertas Importantes; um valor diferente de zero significa que Claude encontrou pelo menos um bug que vale a pena corrigir antes da mesclagem.

84 

85<h3 id="what-code-review-checks">

86 O que Code Review verifica

87</h3>

88 

89Por padrão, Code Review se concentra em correção: bugs que quebrariam a produção, não preferências de formatação ou cobertura de testes ausente. Você pode expandir o que verifica [adicionando arquivos de orientação](#customize-reviews) ao seu repositório.

90 

91<h2 id="set-up-code-review">

92 Configurar Code Review

93</h2>

94 

95Um Owner ativa Code Review uma vez para a organização e seleciona quais repositórios incluir.

96 

97<Steps>

98 <Step title="Abrir configurações de administrador do Claude Code">

99 Vá para [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) e encontre a seção Code Review. Você precisa da função Owner ou Primary Owner em sua organização Claude e permissão para instalar GitHub Apps em sua organização GitHub.

100 </Step>

101 

102 <Step title="Iniciar configuração">

103 Clique em **Setup**. Isso inicia o fluxo de instalação do GitHub App.

104 </Step>

105 

106 <Step title="Instalar o Claude GitHub App">

107 Siga os prompts para instalar o Claude GitHub App: escolha a organização GitHub que possui os repositórios que você deseja revisar, escolha quais repositórios o app pode acessar e aprove as permissões solicitadas.

108 

109 Para revisar um pull request, Claude lê o conteúdo do seu repositório através do acesso de leitura do app e publica comentários e a [execução de verificação](#check-run-output) através de seu acesso de escrita a pull requests e verificações. Durante a instalação, você concede um conjunto de permissões mais amplo compartilhado por outros recursos Claude, como [GitHub Actions](/docs/pt/github-actions); consulte [Permissões do GitHub App](/docs/pt/github-actions#github-app-permissions) para a lista completa.

110 </Step>

111 

112 <Step title="Selecionar repositórios">

113 Escolha quais repositórios ativar para Code Review. Se você não vir um repositório, certifique-se de que deu ao Claude GitHub App acesso a ele durante a instalação. Você pode adicionar mais repositórios mais tarde.

114 </Step>

115 

116 <Step title="Definir gatilhos de revisão por repo">

117 Após a conclusão da configuração, a seção Code Review mostra seus repositórios em uma tabela. Para cada repositório, use o dropdown **Review Behavior** para escolher quando as revisões são executadas:

118 

119 * **Once after PR creation**: a revisão é executada uma vez quando um PR é aberto ou marcado como pronto para revisão

120 * **After every push**: a revisão é executada em cada push para o branch do PR, detectando novos problemas conforme o PR evolui e resolvendo automaticamente threads quando você corrige problemas sinalizados

121 * **Manual**: abrir ou fazer push para um PR não inicia uma revisão; comente [`@claude review`](#manually-trigger-reviews) para solicitar uma, ou `@claude review always` para também inscrever o PR em revisões em pushes subsequentes

122 

123 Qualquer que seja a opção escolhida, Claude revisa um [pull request de um fork](#review-pull-requests-from-forks) apenas quando alguém comenta `@claude review` nele.

124 

125 Revisar em cada push executa a maioria das revisões e custa mais. O modo Manual é útil para repositórios de alto tráfego onde você deseja optar PRs específicos para revisão, ou para começar a revisar seus PRs apenas quando estiverem prontos.

126 </Step>

127</Steps>

128 

129A tabela de repositórios também mostra o custo médio por revisão para cada repo com base na atividade recente. Use o menu de ações de linha para ativar ou desativar Code Review por repositório, ou para remover um repositório completamente.

130 

131Para verificar a configuração, abra um PR de teste. Se você escolheu um gatilho automático, uma execução de verificação chamada **Claude Code Review** aparece em alguns minutos. Se você escolheu Manual, comente `@claude review` no PR para iniciar a primeira revisão. Se nenhuma execução de verificação aparecer, confirme que o repositório está listado em suas configurações de administrador e que o Claude GitHub App tem acesso a ele.

132 

133<h2 id="manually-trigger-reviews">

134 Acionando revisões manualmente

135</h2>

136 

137Comandos de comentário iniciam uma revisão sob demanda. Eles funcionam independentemente do gatilho configurado do repositório, portanto você pode usá-los para optar PRs específicos para revisão no modo Manual ou para obter uma re-revisão imediata em outros modos.

138 

139| Comando | O que faz |

140| :- | :- |

141| `@claude review` | Inicia uma única revisão sem inscrever o PR em pushes futuros |

142| `@claude review always` | Inicia uma revisão e inscreve o PR em revisões acionadas por push a partir de então |

143| `@claude review once` | O mesmo que `@claude review`: inicia uma única revisão sem inscrever |

144 

145Use `@claude review always` quando você deseja que cada push subsequente para o PR inicie uma revisão atualizada, como em um PR de alta prioridade em um repositório definido para modo Manual. Como o comando simples não inscreve o PR, você pode solicitar uma segunda opinião única sem alterar se pushes posteriores acionam revisões.

146 16 

147<Note>17<Note>

148 Antes de uma atualização de julho de 2026, `@claude review` inscrevia o PR em revisões acionadas por push. Se você dependia desse comportamento, comente `@claude review always` em vez disso. `@claude review once` ainda funciona e se comporta da mesma forma que o comando simples.18 Code Review usa IA para revisar código e pode deixar passar bugs, vulnerabilidades de segurança ou outros problemas. Uma revisão sem descobertas não significa que seu código está livre de erros ou é seguro.

149</Note>19</Note>

150 20 

151Para qualquer um desses comandos acionar uma revisão:21<span id="review-a-diff-locally" />

152 

153* Poste-o como um comentário de PR de nível superior, não um comentário inline em uma linha de diff

154* Coloque o comando no início do comentário, com `once` ou `always` na mesma linha que o resto do comando

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

156* O PR deve estar aberto

157 

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

159 

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

161 

162<h3 id="review-pull-requests-from-forks">

163 Revisar pull requests de forks

164</h3>

165 

166Claude não revisa um pull request de um fork automaticamente, independentemente da configuração **Review Behavior** do repositório. Para iniciar um, comente `@claude review` no pull request. Os [requisitos para comandos de comentário](#manually-trigger-reviews) ainda se aplicam, e o acesso de escrita que você precisa é para o repositório base, não para o fork.

167 22 

168Para obter outra revisão de um pull request de fork, poste um novo comentário `@claude review`. `@claude review always` também funciona, mas não inscreve o pull request em revisões em pushes posteriores. Nada além de um comando de comentário inicia uma revisão em um pull request de fork:23Para ativar Code Review, um Owner de sua organização Claude segue [Configurar Code Review](/docs/pt/code-review-setup). Claude também pode revisar código sem este serviço. Execute [`/code-review`](/docs/pt/code-review-local) em sua sessão do Claude Code em qualquer plano, ou [compare todas as opções](#compare-ways-to-get-a-review).

169 24 

170* Clicar em **Re-run** na execução de verificação não inicia uma revisão25<h2 id="availability">

171* Fazer push de novos commits não inicia uma revisão, mesmo em um repositório definido para **After every push**26 Disponibilidade

172 

173<h2 id="customize-reviews">

174 Personalizar revisões

175</h2>27</h2>

176 28 

177Code Review lê dois arquivos do seu repositório para orientar o que sinaliza. Eles diferem em como influenciam fortemente a revisão:29Verifique se sua organização se qualifica antes de configurar Code Review:

178 

179* **`CLAUDE.md`**: instruções de projeto compartilhadas que Claude Code usa para todas as tarefas, não apenas revisões. Code Review o lê como contexto de projeto e sinaliza violações recém-introduzidas como nits.

180* **`REVIEW.md`**: instruções exclusivas de revisão, fornecidas aos agentes que encontram e verificam descobertas e consultadas pelos agentes que classificam e relatam descobertas. Use-o para dizer o que sua equipe quer sinalizado, em qual severidade e como as descobertas são relatadas.

181 

182<h3 id="claude-md">

183 CLAUDE.md

184</h3>

185 

186Code Review lê seus arquivos `CLAUDE.md` do repositório e trata violações recém-introduzidas como descobertas de [nível nit](#severity-levels). Isso funciona bidirecionalmente: se seu PR altera o código de uma forma que torna uma declaração `CLAUDE.md` desatualizada, Claude sinaliza que os docs precisam ser atualizados também.

187 

188Claude lê arquivos `CLAUDE.md` em cada nível de sua hierarquia de diretórios, portanto as regras no `CLAUDE.md` de um subdiretório se aplicam apenas aos arquivos sob esse caminho. Consulte a [documentação de memory](/docs/pt/memory) para mais informações sobre como `CLAUDE.md` funciona.

189 30 

190Para orientação específica de revisão que você não deseja aplicada a sessões gerais do Claude Code, use [`REVIEW.md`](#review-md) em vez disso.31* **Planos**: [Team e Enterprise](/docs/pt/feature-availability)

191 32* **Hosts de código**: repositórios hospedados no GitHub, incluindo [GitHub Enterprise Server](/docs/pt/github-enterprise-server) e GitHub Enterprise Cloud com residência de dados. Para residência de dados, peça a um Owner que siga a [configuração de administrador do GitHub Enterprise Server](/docs/pt/github-enterprise-server#admin-setup) e insira o hostname `ghe.com` de sua empresa.

192<h3 id="review-md">33* **Retenção de dados**: Code Review não está disponível para organizações com [Zero Data Retention](/docs/pt/zero-data-retention) ativado ou com a [configuração HIPAA](/docs/pt/hipaa-setup) aplicada, e não é coberto pelo Business Associate Agreement (BAA) da Anthropic.

193 REVIEW\.md34* **Chaves de criptografia**: Code Review ainda não está disponível para organizações que usam chaves de criptografia gerenciadas pelo cliente (CMEK).

194</h3>35* **Provedores de nuvem**: você precisa de uma organização Claude em um desses planos mesmo que seus desenvolvedores usem Claude Code através do Amazon Bedrock, da Agent Platform do Google Cloud ou do Microsoft Foundry

195 36 

196`REVIEW.md` é um arquivo na raiz do seu repositório que personaliza Code Review para seu repo. Os agentes no pipeline de revisão que encontram e verificam descobertas recebem seu conteúdo como instruções de revisão do seu repositório, ao lado da orientação de revisão padrão do Code Review, e os agentes que classificam e relatam descobertas o consultam antes de definir severidade e escrever a revisão.37<h2 id="set-up-and-use-code-review">

197 38 Configurar e usar Code Review

198Coloque as regras que você deseja aplicadas diretamente em `REVIEW.md`.

199 

200<h4 id="what-you-can-tune">

201 O que você pode ajustar

202</h4>

203 

204`REVIEW.md` é markdown de forma livre, portanto qualquer coisa que você possa expressar como uma instrução de revisão está no escopo. Os padrões abaixo têm o maior impacto na prática.

205 

206**Severidade**: redefina o que 🔴 Importante significa para seu repo. A calibração padrão visa código de produção; um repo de docs, um repo de config ou um protótipo pode querer uma definição muito mais estreita. Declare explicitamente quais classes de descoberta são Importantes e quais são Nit no máximo. Você também pode escalar na outra direção, por exemplo tratando qualquer violação de `CLAUDE.md` como Importante em vez do nit padrão.

207 

208**Volume de nit**: limite quantos comentários 🟡 Nit uma única revisão publica. Prosa e arquivos de config podem ser polidos para sempre. Um limite como "relatar no máximo cinco nits, mencionar o resto como uma contagem no resumo" mantém as revisões acionáveis.

209 

210**Regras de pulo**: liste caminhos, padrões de branch e categorias de descoberta onde Claude não deve publicar descobertas. Candidatos comuns são código gerado, lockfiles, dependências vendidas e branches de autoria de máquina, junto com qualquer coisa que seu CI já aplique como linting ou verificação ortográfica. Para caminhos que justificam alguma revisão mas não escrutínio completo, defina uma barra mais alta em vez de pular completamente: "em `scripts/`, relatar apenas se próximo de certo e severo."

211 

212**Verificações específicas do repo**: adicione regras que você deseja sinalizadas em cada PR, como "novas rotas de API devem ter um teste de integração." Como `REVIEW.md` alcança cada agente de descoberta e verificação diretamente, essas chegam mais confiávelmente do que as mesmas regras em um `CLAUDE.md` longo.

213 

214**Barra de verificação**: exija evidência antes de uma classe de descoberta ser publicada. Por exemplo, "reivindicações de comportamento precisam de uma citação `file:line` na fonte, não uma inferência de nomenclatura" reduz falsos positivos que de outra forma custariam ao autor uma volta.

215 

216**Convergência de re-revisão**: diga a Claude como se comportar quando um PR já foi revisado. Uma regra como "após a primeira revisão, suprima nits novos e publique descobertas Importantes apenas" impede que uma correção de uma linha chegue à sétima rodada apenas por estilo.

217 

218**Forma de resumo**: peça para o corpo da revisão abrir com uma contagem de uma linha como `2 factual, 4 style`, e liderar com "sem problemas factuais" quando esse for o caso. O autor quer saber a forma do trabalho antes dos detalhes.

219 

220<h4 id="example">

221 Exemplo

222</h4>

223 

224Este `REVIEW.md` recalibra severidade para um serviço backend, limita nits, pula arquivos gerados e adiciona verificações específicas do repo.

225 

226```markdown theme={null}

227# Instruções de revisão

228 

229## O que Importante significa aqui

230 

231Reserve Importante para descobertas que quebrariam comportamento, vazariam dados

232ou bloqueariam um rollback: lógica incorreta, consultas de banco de dados sem escopo, PII

233em logs ou mensagens de erro, e migrações que não são compatíveis com versões anteriores. Estilo, nomenclatura e sugestões de refatoração são Nit no máximo.

234 

235## Limite os nits

236 

237Relatar no máximo cinco Nits por revisão. Se você encontrou mais, diga "mais N

238itens similares" no resumo em vez de publicá-los inline. Se tudo que você encontrou é um Nit, lidere o resumo com "Sem problemas bloqueantes."

239 

240## Não relatar

241 

242- Qualquer coisa que CI já aplique: lint, formatação, erros de tipo

243- Arquivos gerados sob `src/gen/` e qualquer arquivo `*.lock`

244- Código apenas de teste que intencionalmente viola regras de produção

245 

246## Sempre verificar

247 

248- Novas rotas de API têm um teste de integração

249- Linhas de log não incluem endereços de email, IDs de usuário ou corpos de solicitação

250- Consultas de banco de dados estão no escopo do chamador do tenant

251```

252 

253<h4 id="keep-it-focused">

254 Mantenha-o focado

255</h4>

256 

257O comprimento tem um custo: um `REVIEW.md` longo dilui as regras que mais importam. Mantenha-o em instruções que alteram o comportamento de revisão e deixe contexto geral do projeto em `CLAUDE.md`.

258 

259<h2 id="view-usage">

260 Ver uso

261</h2>39</h2>

262 40 

263Vá para [claude.ai/analytics/code-review](https://claude.ai/analytics/code-review) para ver a atividade de Code Review em toda sua organização. O painel mostra:41<span id="set-up-code-review" />

264 

265| Seção | O que mostra |

266| :- | :- |

267| PRs reviewed | Contagem diária de pull requests revisados durante o intervalo de tempo selecionado |

268| Code Review cost | Gasto em Code Review até o momento neste mês |

269| Feedback | Contagem de comentários de revisão que foram resolvidos automaticamente porque um desenvolvedor abordou o problema |

270| Repository breakdown | Contagens por repo de PRs revisados, comentários resolvidos e execuções de revisão, com custo estimado e uma visualização por PR |

271 

272O cartão Code Review cost mostra um valor somente quando o mês atual está selecionado. Os números de custo nas análises podem diferir da sua fatura. Os custos do Repository breakdown são estimados pelo preço de tabela, antes de quaisquer descontos ou créditos, e abrangem apenas as revisões que Claude publicou em um pull request. Para gasto preciso de fatura, consulte sua fatura da Anthropic.

273 

274<h2 id="pricing">

275 Preços

276</h2>

277 

278Code Review é faturado com base no uso de tokens. Cada revisão custa em média \$15-25, escalando com o tamanho do PR, complexidade da base de código e quantos problemas requerem verificação. O uso de Code Review é faturado separadamente através de [créditos de uso](https://support.claude.com/pt/articles/12429409-extra-usage-for-paid-claude-plans) e não conta contra o uso incluído do seu plano.

279 

280O gatilho de revisão que você escolhe afeta o custo total:

281 

282* **Once after PR creation**: é executado uma vez por PR

283* **After every push**: é executado em cada push, multiplicando o custo pelo número de pushes

284* **Manual**: sem revisões em aberto ou push, portanto o custo acumula apenas de revisões que alguém solicita

285 

286Em modo Once after PR creation ou Manual, comentar `@claude review always` [opta o PR em revisões acionadas por push](#manually-trigger-reviews), portanto custo adicional acumula por push após esse comentário. Em modo After every push, pushes já acionam revisões, portanto a assinatura não muda o custo por push. Comentar `@claude review` executa uma única revisão sem se inscrever em pushes futuros. Claude revisa um [pull request de um fork](#review-pull-requests-from-forks) apenas quando alguém comenta `@claude review`, portanto um pull request de fork nunca acumula custo por push em nenhum modo.

287 42 

288Os custos aparecem em sua fatura da Anthropic independentemente de sua organização usar Amazon Bedrock ou Google Cloud's Agent Platform para outros recursos do Claude Code. Para definir um limite de gasto mensal para Code Review, vá para [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage) e configure o limite para o serviço Claude Code Review.43<span id="pricing" />

289 44 

290Para monitorar gastos, use o [painel de analytics](#view-usage).45<span id="manually-trigger-reviews" />

291 46 

292<h2 id="troubleshooting">47<span id="customize-reviews" />

293 Troubleshooting

294</h2>

295 

296As execuções de revisão são do melhor esforço, e uma execução falhada nunca bloqueia seu PR. Code Review tenta novamente algumas revisões interrompidas por conta própria. Esta seção cobre como executar uma revisão novamente você mesmo e onde procurar quando a execução de verificação relata problemas que você não consegue encontrar.

297 

298<h3 id="retrigger-a-failed-or-timed-out-review">

299 Retrigger uma revisão falhada ou com tempo limite excedido

300</h3>

301 48 

302Quando uma revisão falha ou excede seu limite de tempo, a execução de verificação é concluída com um título como **Code review failed** ou **Code review timed out**. A conclusão ainda é neutra, portanto nada bloqueia sua mesclagem. A menos que o resumo da execução de verificação diga que uma nova revisão do commit foi enfileirada automaticamente, execute a revisão novamente você mesmo.49<span id="troubleshooting" />

303 50 

304Para executar a revisão novamente, comente `@claude review` no PR. Isso inicia uma revisão nova sem inscrever o PR em pushes futuros. Se o PR não for [de um fork](#review-pull-requests-from-forks), você pode clicar em **Re-run** na verificação **Claude Code Review** na aba Checks do GitHub. Uma re-execução também inicia uma revisão nova sem inscrever o PR.51Escolha a página para o que você precisa fazer:

305 52 

306<h3 id="review-didn’t-run-and-the-pr-shows-a-budget-message">53<CardGroup cols={2}>

307 Revisão não foi executada e o PR mostra uma mensagem de orçamento54 <Card title="Configurar Code Review" icon="toggle-on" href="/docs/pt/code-review-setup">

308</h3>55 Verifique os requisitos, instale o Claude GitHub App e escolha os repositórios, um nível de revisão e quando as revisões são executadas

309 56 </Card>

310Quando o limite de gasto mensal de sua organização para Code Review é atingido ou o saldo de créditos de uso se esgota, Code Review ignora a revisão e publica um único comentário no PR. O comentário e o cartão da execução de verificação indicam a causa e incluem um link para a página de administração onde um administrador pode corrigi-la:

311 57 

312* **Limite de gasto atingido**: as revisões são retomadas no início do próximo período de faturamento, ou imediatamente após um administrador aumentar o limite em [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage)58 <Card title="Personalizar Code Review" icon="sliders" href="/docs/pt/code-review-customize">

313* **Créditos de uso esgotados**: as revisões são retomadas assim que um administrador adicionar mais [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) em [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage)59 Ajuste o que é sinalizado com arquivos `REVIEW.md` e `CLAUDE.md` em seu repositório

60 </Card>

314 61 

315<h3 id="find-issues-that-aren’t-showing-as-inline-comments">62 <Card title="Ler e solicitar revisões em um pull request" icon="code-pull-request" href="/docs/pt/code-review-pull-requests">

316 Encontrar problemas que não aparecem como comentários inline63 Leia as descobertas e suas severidades, e solicite outra revisão com um comentário

317</h3>64 </Card>

318 65 

319Se o título da execução de verificação disser que problemas foram encontrados mas você não vir comentários de revisão inline no diff, procure nestes outros locais onde as descobertas são exibidas:66 <Card title="Solução de problemas do Code Review" icon="wrench" href="/docs/pt/code-review-troubleshooting">

67 Corrija uma revisão que não iniciou, falhou ou foi ignorada por orçamento

68 </Card>

320 69 

321* **Check run Details**: clique em **Details** ao lado da verificação Claude Code Review na aba Checks. A tabela de severidade lista cada descoberta com seu arquivo, linha e resumo independentemente de o comentário inline ter sido aceito.70 <Card title="Custos e uso do Code Review" icon="chart-line" href="/docs/pt/code-review-costs">

322* **Files changed annotations**: abra a aba **Files changed** no PR. As descobertas são renderizadas como anotações anexadas diretamente às linhas de diff, separadas dos comentários de revisão.71 Veja como as revisões são faturadas, estime gastos, defina o limite de gasto mensal e acompanhe a atividade de revisão

323* **Review body**: se você fez push para o PR enquanto uma revisão estava em execução, algumas descobertas podem fazer referência a linhas que não existem mais no diff atual. Essas aparecem sob um cabeçalho **Additional findings** no texto do corpo da revisão em vez de como comentários inline.72 </Card>

73</CardGroup>

324 74 

325<h2 id="review-a-diff-locally">75<h2 id="how-reviews-work">

326 Revisar um diff localmente76 Como as revisões funcionam

327</h2>77</h2>

328 78 

329O comando [`/code-review`](/docs/pt/commands) revisa um diff em seu terminal sem instalar o GitHub App. Ele relata bugs de correção. Dependendo do seu modelo e nível de esforço, a revisão também abrange reutilização, simplificação e limpezas de eficiência.79<span id="what-code-review-checks" />

330 

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

332 

333<Steps>

334 <Step title="Executar /code-review">

335 Na sessão onde você está trabalhando, execute o comando:

336 

337 ```text theme={null}

338 /code-review

339 ```

340 

341 Ele revisa os commits de seu branch à frente de seu upstream mais quaisquer alterações sem commit, portanto precisa de trabalho no branch ou na árvore de trabalho para ter algo a relatar. Para revisar algo diferente, passe um alvo: um caminho de arquivo, um número de PR, um nome de branch ou um intervalo de ref como `main...my-feature`.

342 

343 Você também pode adicionar flags:

344 

345 * `--fix`: aplica as descobertas à sua árvore de trabalho após a revisão

346 * `--comment`: publica as descobertas em um pull request do GitHub como comentários inline, ou em um merge request do GitLab como uma única nota

347 * `--post`: em uma revisão `ultra` na nuvem de um pull request `github.com`, pré-seleciona a publicação das descobertas concluídas para o PR no diálogo de inicialização; veja [Publicar descobertas no pull request](/docs/pt/ultrareview#post-findings-to-the-pull-request). Requer Claude Code v2.1.227 ou posterior

348 * `--max-findings <n>`, `--max-findings all` ou `--max-findings default`: relata até `n` descobertas, ou todas as descobertas com `all`, no lugar do limite usual da revisão. Revisões posteriores reutilizam o valor que você digitou até que você passe `--max-findings default`. Requer Claude Code v2.1.288 ou posterior

349 

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

351 80 

352 Passe o merge request como sua URL ou uma referência `!123`. Claude Code trata um número simples ou nome de branch como um merge request apenas quando a origem do checkout está em `gitlab.com`. Em uma instância GitLab auto-gerenciada, passe a URL ou forma `!123`.81Por padrão, Code Review se concentra em correção: bugs que quebrariam a produção, não preferências de formatação ou cobertura de testes ausente. Para alterar o que ele sinaliza, [adicione arquivos de orientação](/docs/pt/code-review-customize) ao seu repositório.

353 </Step>

354 82 

355 <Step title="Continue trabalhando">83Uma revisão é executada na infraestrutura da Anthropic em quatro etapas:

356 A revisão é executada como um [subagente](/docs/pt/sub-agents) em segundo plano com sua própria janela de contexto, portanto não preenche sua conversa. As descobertas chegam em sua conversa quando a revisão é concluída.

357 </Step>

358 84 

359 <Step title="Agir sobre as descobertas">851. **Encontrar**: vários agentes examinam o diff e o código circundante em paralelo.

360 Peça ao Claude para corrigir o que a revisão encontrou. Se você passou `--fix` ou `--comment`, a revisão já aplicou ou publicou suas descobertas.862. **Verificar**: uma etapa de verificação confere as descobertas candidatas contra o código e filtra falsos positivos.

361 </Step>873. **Classificar**: as descobertas restantes são desduplicadas e classificadas por severidade.

362</Steps>884. **Publicar**: a revisão publica seus resultados no pull request.

363 89 

364Claude relata as descobertas como texto na resposta em ambas essas execuções, mesmo quando um aplicativo host solicita uma lista de descobertas:90Cada revisão deixa estes itens no pull request:

365 91 

366* Em uma sessão de terminal, onde `/code-review` executa a revisão como um [subagente bifurcado](/docs/pt/skills#run-skills-in-a-subagent)92* **Descobertas**: comentários inline nas linhas em questão, com um resumo no corpo da revisão

367* Em uma execução `-p` com saída de texto ou JSON93* **Uma execução de verificação**: chamada **Claude Code Review**, com as descobertas listadas em seus [detalhes](/docs/pt/code-review-pull-requests#check-run-output). A execução de verificação não é concluída como falha.

94* **Quando não encontra nada**: o título da execução de verificação diz **Code review found no issues**, e Claude publica a mesma nota curta no pull request

368 95 

369Em um aplicativo host que solicita a lista de descobertas, como o [aplicativo desktop](/docs/pt/desktop#review-your-code), Claude relata as descobertas da revisão através da ferramenta [`ReportFindings`](/docs/pt/tools-reference). Claude Code renderiza o relatório como uma lista de descobertas, e cada entrada mostra a localização do arquivo, um resumo de uma frase e uma tag de categoria como `correctness` quando a descoberta carrega uma. Uma requisição do host se aplica em cada nível de esforço e requer Claude Code v2.1.218 ou posterior.96Code Review escolhe os modelos Claude em que as revisões são executadas, e suas configurações de administrador não oferecem escolha de modelo. Para tornar as revisões mais ou menos minuciosas, altere o [nível de revisão](#review-levels).

370 97 

371Quando Claude corrige descobertas relatadas posteriormente na sessão, ele as relata novamente, e Claude Code marca cada descoberta na lista de descobertas atualizada como corrigida, ignorada ou sem alteração necessária.98Depois que um Owner ativa Code Review, cada repositório tem uma configuração para [quando as revisões são executadas](/docs/pt/code-review-setup#set-when-reviews-run): uma vez quando um pull request é aberto, após cada push ou apenas mediante solicitação. Qualquer que seja, alguém com acesso de escrita ao repositório pode comentar `@claude review` em um pull request para [iniciar uma revisão](/docs/pt/code-review-pull-requests#comment-commands).

372 99 

373<h3 id="what-the-review-reads-and-edits">100<h3 id="review-levels">

374 O que a revisão lê e edita101 Níveis de revisão

375</h3>102</h3>

376 103 

377A revisão segue seu `CLAUDE.md` como qualquer sessão Claude Code, mas não lê [`REVIEW.md`](#review-md). Uma revisão em segundo plano aplica suas edições `--fix` fora dos [checkpoints](/docs/pt/checkpointing#subagent-edits-not-restored) de sua sessão, portanto `/rewind` não as desfaz; use git para revertê-las. Quando a revisão [é executada em primeiro plano](#run-in-the-foreground), ela edita sua árvore de trabalho durante seu próprio turno, portanto `/rewind` restaura suas edições como de costume.104O nível de revisão define quão minuciosa é cada revisão, e uma revisão mais minuciosa custa mais:

378 105 

379<h3 id="tune-effort-and-arguments">106* **Quick**: uma passagem mais leve. O nível mais rápido, com o menor custo.

380 Ajustar esforço e argumentos107* **Standard**: profundidade, velocidade e custo equilibrados. O nível padrão.

381</h3>108* **Deep**: a passagem mais minuciosa. Leva mais tempo e custa mais.

382 

383Passe um [nível de esforço](/docs/pt/model-config#adjust-effort-level) para trocar cobertura por confiança. Em `low`, a revisão relata as descobertas em que tem mais confiança, portanto você vê menos falsos positivos. De `medium` até `max`, a revisão amplia a cobertura.

384 

385Quando você não digita um nível, a revisão reutiliza o último nível de `low` até `max` que você digitou, mesmo em uma sessão anterior, e Claude Code mostra um aviso como `Reusing high effort, the level you typed last time`. Digite um nível, como `/code-review high`, para alterar o que as execuções posteriores reutilizam; um nível que você passa em uma execução `-p` não interativa não o atualiza. `ultra` nem atualiza nem usa o nível lembrado. Se você nunca digitou um nível, a revisão usa o esforço atual da sessão. Antes da v2.1.223, um `/code-review` sem um nível sempre usava o esforço atual da sessão.

386 

387Após o nível de esforço e as flags, Claude Code lê o resto da linha de uma de duas maneiras:

388 

389* **Sem `ultra`**: tudo o que resta é o alvo da revisão, mesmo quando começa com outro nome de comando. `/code-review /fix-issue 123` revisa com `/fix-issue 123` como texto alvo em vez de carregar `/fix-issue` como uma [skill empilhada](/docs/pt/skills#pass-arguments-to-skills) separada. Antes da v2.1.218, um comando empilhado após `/code-review` se expandia como sua própria skill.

390* **Com `ultra`**: Claude Code lê uma única palavra como um branch base ou número de PR, e transforma texto mais longo que não nomeia um branch ou PR em [uma nota anexada à revisão](/docs/pt/ultrareview#pass-a-request-in-plain-words). `/code-review ultra check my auth changes` revisa seu branch atual, e Claude relaciona as descobertas à sua nota.

391 

392<h3 id="run-in-the-foreground">

393 Executar em primeiro plano

394</h3>

395 

396A revisão é executada em segundo plano por padrão; antes da v2.1.218, era executada dentro de sua conversa. Ela é executada em primeiro plano em casos como estes:

397 109 

398* Você executa `/code-review` novamente enquanto uma revisão anterior ainda está em andamento110Um Owner [escolhe um nível para a organização](/docs/pt/code-review-setup#set-the-default-review-level) e pode dar a um repositório individual seu próprio nível, como Quick para uma base de código de rotina e Deep para uma crítica. Para saber o que mais determina o custo de cada revisão, consulte [Custos e uso do Code Review](/docs/pt/code-review-costs).

399* Você a executa em modo não interativo, com a flag `-p` ou o Agent SDK; Claude Code aguarda a revisão e inclui as descobertas na resposta, exceto para `ultra`, que [não aguarda a revisão na nuvem](/docs/pt/ultrareview#run-ultrareview-non-interactively)

400* Você define [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/pt/env-vars) como `1`, o que também desativa todos os outros recursos de tarefa em segundo plano

401 111 

402<h3 id="let-claude-start-the-review">112<h3 id="what-a-review-can-access">

403 Deixar Claude iniciar a revisão113 O que uma revisão pode acessar

404</h3>114</h3>

405 115 

406Claude pode iniciar `/code-review` por conta própria. Peça-lhe para revisar suas alterações em linguagem simples e ele pode executar a skill sem você digitar o comando, e uma [tarefa agendada](/docs/pt/scheduled-tasks) com `/code-review` como seu prompt executa a revisão.116Uma revisão acessa seu repositório através do Claude GitHub App que um Owner [instala durante a configuração](/docs/pt/code-review-setup#turn-on-code-review):

407 117 

408Uma tarefa agendada nunca inicia a [revisão na nuvem](#escalate-to-ultrareview), portanto agende `/code-review` sem o argumento `ultra`.118* **Onde é executada**: na infraestrutura da Anthropic, em um ambiente gerenciado. As revisões não são executadas em [ambientes auto-hospedados](/docs/pt/self-hosted-environments).

119* **O que lê e escreve**: dentro de uma revisão, o acesso ao seu repositório é somente leitura, e uma revisão não faz push de commits. No pull request, ela publica comentários e a [execução de verificação](/docs/pt/code-review-pull-requests#check-run-output), resolve suas próprias threads de comentários anteriores e pode reagir a um comando de comentário com 👀. O próprio app possui um [conjunto de permissões mais amplo](/docs/pt/github-actions#github-app-permissions) que outros recursos Claude compartilham.

120* **Como examina seu código**: uma revisão trabalha lendo o diff e o código circundante, sem compilar ou executar seu código.

409 121 

410Para impedir que Claude e tarefas agendadas iniciem a revisão enquanto mantêm `/code-review` disponível para você digitar, adicione uma entrada [`skillOverrides`](/docs/pt/skills#override-skill-visibility-from-settings) a um [arquivo de configurações](/docs/pt/settings#where-settings-live) como `~/.claude/settings.json`:122<h3 id="who-controls-a-review">

411 123 Quem controla uma revisão

412```json theme={null}

413{

414 "skillOverrides": {

415 "code-review": "user-invocable-only"

416 }

417}

418```

419 

420Antes da v2.1.246, Claude iniciava `/code-review` por conta própria apenas onde uma flag de recurso obtida da Anthropic o ativava. Em [sessões que não buscam flags de recurso](/docs/pt/env-vars#features-that-need-feature-flag-fetching), `/code-review` era executado apenas quando você o digitava, e um `/code-review` agendado chegava ao Claude como texto simples.

421 

422<h3 id="escalate-to-ultrareview">

423 Escalar para ultrareview

424</h3>124</h3>

425 125 

426`/code-review ultra --fix` executa a [ultrareview](/docs/pt/ultrareview) mais profunda na nuvem, depois aplica suas descobertas à sua árvore de trabalho quando elas retornam em sua sessão.126* **Quem pode iniciar uma**: onde as revisões são executadas automaticamente, abrir ou fazer push para um pull request inicia uma revisão, [exceto em rascunhos e forks](/docs/pt/code-review-pull-requests#review-drafts-and-pull-requests-from-forks). Um [comando de comentário](/docs/pt/code-review-pull-requests#comment-commands) inicia uma apenas quando vem de uma pessoa com acesso de escrita ao repositório.

427 127* **Quais instruções segue**: `REVIEW.md` do branch base ou padrão e [nunca das próprias alterações do pull request](/docs/pt/code-review-customize#which-branch-review-md-is-read-from).

428Ultrareview usa seu próprio escopo: seu branch atual contra o branch padrão do repositório, mais alterações sem commit e preparadas na árvore de trabalho. Para alterações sem commit em arquivos nomeados como credenciais ou chaves, como arquivos `.env` e `*.tfvars`, Claude Code segue as regras para [carregar um repositório local para uma sessão na nuvem](/docs/pt/claude-code-on-the-web#send-local-repositories-without-github). Passe um nome de branch, como `/code-review ultra develop`, para comparar contra uma base diferente.

429 128 

430Quando o alvo é um pull request `github.com`, você pode fazer com que Claude [publique as descobertas concluídas no PR](/docs/pt/ultrareview#post-findings-to-the-pull-request) como um comentário de sua conta GitHub. Requer Claude Code v2.1.227 ou posterior.129<h2 id="compare-ways-to-get-a-review">

431 130 Comparar formas de obter uma revisão

432<Note>131</h2>

433 Ultrareview requer autenticação com uma conta claude.ai e não está disponível no Amazon Bedrock, na Agent Platform do Google Cloud, no Microsoft Foundry, ou para organizações com Zero Data Retention habilitado ou com a [configuração HIPAA](/docs/pt/hipaa-setup) aplicada. Quando ultrareview não está disponível, `/code-review ultra` executa uma revisão local em sua sessão.

434</Note>

435 132 

436Para executar uma revisão na nuvem a partir de um script ou job de CI, use o [subcomando `claude ultrareview`](/docs/pt/ultrareview#run-ultrareview-non-interactively), que aguarda as descobertas e as imprime no stdout.133Para encontrar as opções disponíveis para você, verifique a coluna **Quem pode usar** em relação ao seu plano e host de código:

437 134 

438O comando foi nomeado `/simplify` antes da v2.1.147, quando aplicava correções por padrão. `/simplify` executa uma revisão separada apenas de limpeza que aplica correções sem procurar por bugs. Se você criou scripts com `/simplify` para busca de bugs, mude para `/code-review --fix`.135| Opção | O que inicia uma revisão | Onde é executada | Quem pode usar |

136| :- | :- | :- | :- |

137| [Code Review](#how-reviews-work) | Atividade de pull request, conforme configurado em cada repositório, ou um comentário `@claude review` | Infraestrutura da Anthropic | Organizações em um plano Team ou Enterprise com repositórios GitHub, depois que um Owner o ativa |

138| [`/code-review`](/docs/pt/code-review-local) | Você executa o comando em seu branch | Sua sessão do Claude Code | Qualquer pessoa, em qualquer plano |

139| [Ultrareview](/docs/pt/ultrareview) | Você a inicia a partir do Claude Code | Um sandbox na nuvem | Requer login com uma conta claude.ai. Consulte [Ultrareview](/docs/pt/ultrareview) para saber onde não está disponível |

140| Claude em seu próprio CI, com [GitHub Actions](/docs/pt/github-actions) ou [GitLab CI/CD](/docs/pt/gitlab-ci-cd) | Os eventos do seu pipeline, como cada pull request ou merge request | Seus próprios runners de CI | Qualquer pessoa com uma chave de API do Claude ou credenciais de provedor de nuvem, no GitHub ou GitLab |

141| Seu próprio revisor, como um [subagente](/docs/pt/sub-agents) ou [skill](/docs/pt/skills) | Você ou Claude o invocam durante uma sessão | Onde quer que você execute Claude Code | Qualquer pessoa que escreva um |

439 142 

440<h2 id="related-resources">143<h2 id="related-resources">

441 Recursos relacionados144 Recursos relacionados

442</h2>145</h2>

443 146 

444* [Commands](/docs/pt/commands): execute `/code-review` em uma sessão local do Claude Code para verificar um diff antes de fazer push147* [GitHub Enterprise Server](/docs/pt/github-enterprise-server): use Code Review com uma instância GitHub auto-hospedada

445* [GitHub Actions](/docs/pt/github-actions): execute Claude em seus próprios fluxos de trabalho do GitHub Actions para automação personalizada além de code review148* [Permissões do GitHub App](/docs/pt/github-actions#github-app-permissions): o conjunto completo de permissões que o Claude GitHub App solicita

446* [GitLab CI/CD](/docs/pt/gitlab-ci-cd): integração Claude auto-hospedada para pipelines GitLab149* [How Anthropic secures its AI-native software development lifecycle](https://claude.com/blog/how-anthropic-secures-its-ai-native-software-development-lifecycle): como a revisão automatizada se encaixa como uma camada do processo de desenvolvimento seguro da Anthropic

447* [Memory](/docs/pt/memory): como arquivos `CLAUDE.md` funcionam em Claude Code

448* [Analytics](/docs/pt/analytics): rastreie o uso de Claude Code além de code review

449* [How Anthropic secures its AI-native software development lifecycle](https://claude.com/blog/how-anthropic-secures-its-ai-native-software-development-lifecycle): como a revisão automatizada se encaixa como uma camada do processo de desenvolvimento seguro de software nativo de IA da Anthropic

code-review-costs.md +88 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Custos e uso do Code Review

6 

7> Estime e limite o quanto sua organização gasta com o Claude Code Review: como as revisões são cobradas por meio de créditos de uso, o que determina o custo e onde acompanhar o uso.

8 

9O [Code Review](/docs/pt/code-review) não tem um preço fixo por revisão. O quanto você gasta depende do custo de cada revisão e de quantas revisões são executadas:

10 

11* **Custo de cada revisão**: varia conforme o [nível de revisão](/docs/pt/code-review-setup#set-the-default-review-level), o tamanho da alteração, a complexidade do código ao redor e quantos problemas candidatos precisam de verificação

12* **Número de revisões**: definido pela [frequência com que as revisões são executadas](#how-often-reviews-run) em cada repositório

13 

14<h2 id="pricing">

15 Preços

16</h2>

17 

18O Code Review é cobrado pelo uso de tokens por meio de [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans), separadamente do uso incluído no seu plano. As revisões são cobradas da sua organização, não do desenvolvedor que abriu o PR ou solicitou a revisão. Os custos aparecem na sua fatura da Anthropic independentemente de sua organização usar Amazon Bedrock, Agent Platform do Google Cloud ou Microsoft Foundry para outros recursos do Claude Code.

19 

20<h3 id="how-often-reviews-run">

21 Com que frequência as revisões são executadas

22</h3>

23 

24Um repositório que você adiciona pela página de administração começa com **After every push**, que é a opção que executa mais revisões. A [configuração **Review runs**](/docs/pt/code-review-setup#set-when-reviews-run) de cada repositório determina quantas revisões um pull request recebe:

25 

26* **Once after PR creation**: uma revisão é executada quando o pull request é aberto, reaberto ou marcado como pronto para revisão

27* **After every push**: executa a cada push, multiplicando o custo pelo número de pushes

28* **Manual (@claude review)**: nenhuma revisão na abertura ou no push

29 

30Comandos em comentários, rascunhos e pull requests de forks ajustam essas contagens:

31 

32* **`@claude review always` no modo Once after PR creation ou Manual**: [inscreve o PR em revisões acionadas por push](/docs/pt/code-review-pull-requests#comment-commands), de modo que custos adicionais se acumulam a cada push após esse comentário

33* **`@claude review always` no modo After every push**: os pushes já acionam revisões, então a assinatura não altera o custo por push

34* **`@claude review`**: executa uma única revisão sem assinar pushes futuros

35* **Rascunhos e pull requests de forks**: [as revisões automáticas ignoram ambos](/docs/pt/code-review-pull-requests#review-drafts-and-pull-requests-from-forks), então pushes para eles não adicionam revisões

36 

37<h2 id="estimate-your-spend">

38 Estime seus gastos

39</h2>

40 

41Antes de uma implantação ampla, execute um pequeno piloto para estimar o gasto mensal com base nos seus próprios pull requests.

42 

431. Defina um [limite de gastos mensal](#limit-your-spend) para o piloto.

442. Ative o Code Review para alguns repositórios representativos com **Review runs** definido como **Once after PR creation** ou **Manual (@claude review)**.

453. Depois que várias revisões tiverem sido executadas, consulte o custo médio por revisão de cada repositório na coluna **Average cost** da tabela **Repositories**, na seção **Code review** de [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review).

464. Multiplique essa média pelo número de pull requests que o repositório abre em um mês. Para **After every push**, multiplique novamente pelo número típico de pushes por pull request.

47 

48A média de um repositório varia com o tamanho dos seus pull requests e com o nível de revisão que você escolher.

49 

50<h2 id="limit-your-spend">

51 Limite seus gastos

52</h2>

53 

54Para definir um limite de gastos mensal para o Code Review, acesse [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage) e configure o limite para o serviço Claude Code Review. O limite se aplica a toda a organização.

55 

56O Code Review ignora revisões quando qualquer um destes se esgota:

57 

58* **Limite de gastos do Code Review**: o limite mensal que você define para o serviço Claude Code Review. Ele é redefinido no início do próximo período de faturamento, e as revisões são retomadas antes se você aumentá-lo.

59* **Limite de gastos da organização**: o limite de gastos mensal geral da sua organização para créditos de uso. Aumente-o na mesma página.

60* **Saldo de créditos de uso**: o saldo de créditos de uso da sua organização. Adicione créditos na mesma página.

61 

62O Code Review também ignora revisões quando o que resta é menor que o custo esperado de uma revisão. Quando uma revisão é ignorada, os desenvolvedores veem um [comentário no PR](/docs/pt/code-review-troubleshooting#review-didn’t-run-and-the-pr-shows-a-budget-message) que informa a causa e inclui um link para as configurações de uso.

63 

64Para monitorar os gastos, use o [painel de análises](#view-usage).

65 

66<h2 id="view-usage">

67 Visualizar o uso

68</h2>

69 

70Acesse [claude.ai/analytics/code-review](https://claude.ai/analytics/code-review) para ver a atividade do Code Review em toda a sua organização.

71 

72| Seção | O que mostra |

73| :- | :- |

74| PRs reviewed | Contagem diária de pull requests revisados no intervalo de tempo selecionado |

75| Code Review cost | Gastos com o Code Review até o momento neste mês |

76| Feedback | Contagem de comentários de revisão que foram resolvidos automaticamente porque um desenvolvedor tratou o problema |

77| Repository breakdown | Contagens por repositório de PRs revisados, comentários resolvidos e execuções de revisão, com custo estimado e uma visualização por PR |

78 

79O cartão Code Review cost mostra um valor apenas quando o mês atual está selecionado. Os valores de custo nas análises podem diferir da sua fatura. Os custos em Repository breakdown são estimados pelo preço de tabela, antes de quaisquer descontos ou créditos, e abrangem apenas as revisões que o Claude publicou em um pull request. Para gastos exatos conforme a fatura, consulte sua fatura da Anthropic.

80 

81<h2 id="related-resources">

82 Recursos relacionados

83</h2>

84 

85* [Configurar o Code Review](/docs/pt/code-review-setup): onde escolher o nível de revisão e quando as revisões são executadas em cada repositório

86* [Ler e solicitar revisões em um pull request](/docs/pt/code-review-pull-requests): os comandos em comentários, pull requests de forks e a mensagem de orçamento que os desenvolvedores veem quando uma revisão é ignorada

87* [Code Review](/docs/pt/code-review): o que uma revisão verifica e o que ela publica

88* [Gerenciar custos de forma eficaz](/docs/pt/costs): controles de gastos e acompanhamento de uso para o restante do Claude Code

code-review-customize.md +149 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Personalizar o Code Review

6 

7> Ajuste o que o Code Review sinaliza nos seus pull requests com REVIEW.md e CLAUDE.md: recalibre a severidade, ignore caminhos, adicione verificações e veja qual cópia se aplica.

8 

9Você pode alterar o que o [Code Review](/docs/pt/code-review) sinaliza no seu repositório fazendo commit de instruções nele. É assim que você reduz o volume de nits, interrompe comentários em arquivos gerados ou adiciona uma regra com a qual sua equipe se importa. Coloque-as em um de dois arquivos:

10 

11* **`CLAUDE.md`**: [instruções do projeto](/docs/pt/memory) que o Claude Code lê para toda tarefa, incluindo revisões. O Code Review as lê como contexto do projeto e sinaliza alterações que as violam.

12* **`REVIEW.md`**: instruções apenas para revisões. Use-o para dizer o que sua equipe quer que seja sinalizado, com qual severidade, e o que ignorar.

13 

14Adicione o `REVIEW.md` na raiz do seu repositório e faça o merge. Em seguida, [proteja seu branch padrão](#which-branch-review-md-is-read-from).

15 

16<Note>

17 Para alterar o quão minuciosas são as revisões ou quando elas são executadas, peça a um Owner que altere o [nível de revisão](/docs/pt/code-review-setup#set-the-default-review-level) ou a [configuração **Review runs**](/docs/pt/code-review-setup#set-when-reviews-run).

18</Note>

19 

20<h2 id="use-claude-md-for-project-wide-rules">

21 Use o CLAUDE.md para regras de todo o projeto

22</h2>

23 

24O Code Review lê os arquivos `CLAUDE.md` do seu repositório como contexto do projeto. Uma alteração que viola uma de suas regras se torna uma descoberta no [nível de severidade](/docs/pt/code-review-pull-requests#severity-levels) que for adequado ao problema.

25 

26Uma revisão lê o `CLAUDE.md` na raiz do seu repositório e os arquivos `CLAUDE.md` nos diretórios pais de cada arquivo alterado. O `CLAUDE.md` de um subdiretório é lido quando o pull request altera um arquivo sob esse caminho.

27 

28<h2 id="use-review-md-for-review-only-rules">

29 Use o REVIEW\.md para regras exclusivas de revisão

30</h2>

31 

32O `REVIEW.md` é um arquivo na raiz do seu repositório que adapta o Code Review ao seu repositório. Você também pode adicionar um `REVIEW.md` em um subdiretório para adicionar verificações para alterações sob esse caminho, além do arquivo raiz.

33 

34Os agentes que encontram problemas e os agentes que os verificam recebem seu conteúdo como as instruções de revisão do seu repositório, junto com as orientações de revisão padrão do Code Review. A etapa que escreve a revisão final o consulta antes de definir a severidade e escrever o resumo.

35 

36Este layout de exemplo tem um arquivo raiz e um arquivo de subdiretório:

37 

38```text theme={null}

39your-repo/

40├── REVIEW.md # Root file

41├── services/

42│ └── billing/

43│ └── REVIEW.md # Adds checks for changes under services/billing/

44└── src/

45```

46 

47Antes de depender de um arquivo de subdiretório, proteja seu branch padrão e verifique [o que uma revisão lê para a configuração dos seus branches](#what-a-review-reads-for-each-branch-setup).

48 

49<Note>

50 O serviço Code Review e o [comando `/code-review`](/docs/pt/code-review-local) local são duas ferramentas separadas, e elas leem arquivos diferentes. O serviço lê tanto o `CLAUDE.md` quanto o `REVIEW.md`. O comando `/code-review`, que você executa dentro de uma sessão do Claude Code na sua própria máquina, lê seus arquivos `CLAUDE.md` e não o `REVIEW.md`. Coloque as orientações que você quer aplicadas nos dois lugares no `CLAUDE.md`, e reserve o `REVIEW.md` para regras específicas da revisão de pull requests.

51</Note>

52 

53<h3 id="example-review-md">

54 Exemplo de REVIEW\.md

55</h3>

56 

57Este `REVIEW.md` recalibra a severidade para um serviço de backend, limita os nits, ignora arquivos gerados e adiciona verificações específicas do repositório.

58 

59```markdown theme={null}

60# Review instructions

61 

62## What Important means here

63 

64Reserve Important for findings that would break behavior, leak data,

65or block a rollback: incorrect logic, unscoped database queries, PII

66in logs or error messages, and migrations that aren't backward

67compatible. Style, naming, and refactoring suggestions are Nit at

68most.

69 

70## Cap the nits

71 

72Report at most five Nits per review.

73 

74## Do not report

75 

76- Anything CI already enforces: lint, formatting, type errors

77- Generated files under `src/gen/` and any `*.lock` file

78- Test-only code that intentionally violates production rules

79 

80## Always check

81 

82- New API routes have an integration test

83- Log lines don't include email addresses, user IDs, or request bodies

84- Database queries are scoped to the caller's tenant

85```

86 

87<h3 id="choose-what-to-write-in-review-md">

88 Escolha o que escrever no REVIEW\.md

89</h3>

90 

91O `REVIEW.md` é Markdown de formato livre que altera o que uma revisão encontra e relata. Ele não altera o formato da revisão. Encontre o problema que você está observando e adicione uma instrução como a mostrada. O [exemplo](#example-review-md) usa as quatro primeiras.

92 

93* **As coisas erradas são marcadas como Important**: redefina o que 🔴 Important significa para o seu repositório. A calibração padrão tem como alvo código de produção, e um repositório de documentação, um repositório de configuração ou um protótipo pode querer uma definição muito mais restrita. Declare quais classes de descoberta são Important e quais são no máximo Nit. Você também pode escalar, por exemplo, tratando qualquer violação do `CLAUDE.md` como Important.

94* **Nits demais**: limite quantos comentários 🟡 Nit uma única revisão publica. Um limite como "relate no máximo cinco nits" mantém as revisões acionáveis.

95* **Comentários em arquivos gerados ou no que o CI já verifica**: liste caminhos e categorias de descoberta em que o Claude deve ignorar descobertas. Candidatos comuns são código gerado, lockfiles e dependências vendorizadas, junto com qualquer coisa que seu CI já impõe, como linting ou verificação ortográfica. Para caminhos que merecem alguma revisão, mas não um escrutínio completo, defina um padrão mais alto: "em `scripts/`, relate apenas se for quase certo e grave."

96* **Uma regra da equipe não está sendo verificada**: adicione regras que você quer sinalizadas em todo pull request, como "novas rotas de API devem ter um teste de integração."

97* **Descobertas que acabam se revelando erradas**: exija evidências antes que uma classe de descoberta seja publicada. Por exemplo, "afirmações sobre comportamento precisam de uma citação `file:line` no código-fonte, não de uma inferência a partir de nomes" reduz falsos positivos que, de outra forma, custariam ao autor uma ida e volta.

98 

99Algumas dessas instruções [precisam do arquivo raiz em um branch padrão protegido](#which-branch-review-md-is-read-from).

100 

101Mantenha no `REVIEW.md` apenas instruções que alteram o comportamento da revisão, e deixe o contexto geral do projeto no `CLAUDE.md`.

102 

103<h3 id="which-branch-review-md-is-read-from">

104 De qual branch o REVIEW\.md é lido

105</h3>

106 

107O Code Review lê o `REVIEW.md` do branch base do pull request ou do branch padrão, nunca das próprias alterações do pull request. Para alterar o comportamento da revisão, faça primeiro o merge da alteração no `REVIEW.md`.

108 

109Mantenha o `REVIEW.md` no seu branch padrão e proteja esse branch. Quando uma revisão lê a cópia em um branch padrão protegido, a primeira linha da tabela abaixo, ela respeita estas instruções do arquivo raiz:

110 

111* Reduzir a severidade de uma descoberta

112* Excluir caminhos, arquivos ou classes de problema

113* Limitar comentários de nit

114 

115<h4 id="what-counts-as-branch-protection">

116 O que conta como proteção de branch

117</h4>

118 

119O Code Review considera estas configurações como proteção:

120 

121* **Branch padrão**: uma regra clássica de proteção de branch ou um ruleset

122* **Qualquer outro branch**: apenas um ruleset

123 

124Um ruleset conta quando restringe atualizações ou exige pull requests com pelo menos uma aprovação. Se ele exigir pull requests, também deve descartar essa aprovação em um novo push ou exigir que a aprovação venha após o último push.

125 

126<h4 id="what-a-review-reads-for-each-branch-setup">

127 O que uma revisão lê para cada configuração de branch

128</h4>

129 

130Encontre a situação do seu repositório na primeira coluna da tabela abaixo.

131 

132| Proteção de branch | Cópia lida | Arquivos lidos |

133| :- | :- | :- |

134| O branch padrão está protegido, e o pull request tem como alvo ele ou um branch que nenhum ruleset protege | Branch padrão | Arquivos raiz e de subdiretório |

135| O pull request tem como alvo outro branch que um ruleset protege | Esse branch base | Arquivos raiz e de subdiretório |

136| O branch padrão não está protegido, e o branch base não tem regra de proteção de nenhum tipo | Branch padrão | Arquivo raiz |

137| O Code Review não consegue confirmar as configurações de proteção. Isso inclui um branch padrão desprotegido com um branch base que tem apenas uma regra clássica | Nenhuma | Nenhum |

138 

139Se a check run mencionar o `REVIEW.md`, consulte [A check run menciona o REVIEW.md](/docs/pt/code-review-troubleshooting#the-check-run-mentions-review-md).

140 

141<h2 id="related-resources">

142 Recursos relacionados

143</h2>

144 

145* [Code Review](/docs/pt/code-review): o que é o serviço e como uma revisão é executada

146* [Ler e solicitar revisões em um pull request](/docs/pt/code-review-pull-requests#severity-levels): o que cada nível de severidade significa e como as descobertas aparecem

147* [Configurar o Code Review](/docs/pt/code-review-setup): o nível de revisão e quando as revisões são executadas, definidos por um Owner

148* [Revisar localmente com `/code-review`](/docs/pt/code-review-local): o comando `/code-review`, seus argumentos e níveis de esforço

149* [Memória](/docs/pt/memory): como os arquivos `CLAUDE.md` funcionam em todo o Claude Code

code-review-local.md +197 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Revise localmente com /code-review

6 

7> Execute `/code-review` em uma sessão do Claude Code para encontrar bugs nas alterações do seu branch, direcionar a revisão para um pull request ou caminho e fazer o Claude aplicar as correções.

8 

9`/code-review` é um comando que você digita no prompt do Claude Code, na sessão em que está trabalhando. O Claude revisa as alterações no seu branch, procura bugs de correção e relata o que encontrou na sua conversa. Dependendo do seu modelo e nível de esforço, a revisão também abrange limpezas de reutilização, simplificação e eficiência.

10 

11O comando funciona em qualquer plano. A revisão é executada na sua própria sessão, portanto conta para o uso do seu plano ou para o faturamento da API da mesma forma que o restante da sessão.

12 

13<Note>

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

15</Note>

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.

18 

19<Steps>

20 <Step title="Execute /code-review">

21 Execute o comando:

22 

23 ```text theme={null}

24 /code-review

25 ```

26 

27 Sem um alvo, a revisão abrange as alterações no seu branch atual. Para direcionar a revisão para um pull request, outro branch, um caminho ou um intervalo de commits, consulte [Escolha o que revisar](#choose-what-to-review).

28 

29 Você também pode adicionar flags:

30 

31 * `--fix`: também pede ao Claude para aplicar as descobertas à sua árvore de trabalho após a revisão. Suas edições passam pelo seu [modo de permissão](/docs/pt/permission-modes).

32 * `--comment`: publica as descobertas em um pull request do GitHub como comentários inline, ou em um [merge request do GitLab](#post-findings-to-a-gitlab-merge-request) como uma única nota

33 </Step>

34 

35 <Step title="Continue trabalhando">

36 A revisão é executada como um [subagente](/docs/pt/sub-agents) em segundo plano com sua própria janela de contexto, portanto não enche sua conversa. As descobertas chegam à sua conversa quando a revisão é concluída.

37 </Step>

38 

39 <Step title="Aja com base nas descobertas">

40 Peça ao Claude para corrigir o que a revisão encontrou. Com `--fix` ou `--comment`, o Claude aplica ou publica as descobertas como parte da revisão, e pode ser solicitado que você aprove as edições dele.

41 </Step>

42</Steps>

43 

44<h2 id="choose-what-to-review">

45 Escolha o que revisar

46</h2>

47 

48Para revisar algo diferente do seu branch atual, digite um alvo após o nível de esforço e quaisquer flags. O Claude recebe esse texto como o alvo da revisão. Um alvo pode ser um número de pull request, um nome de branch, um caminho de arquivo ou um intervalo de revisões do Git. Encontre o que você deseja revisar na primeira coluna e digite o que a segunda coluna mostra:

49 

50| Para direcionar a revisão para | Digite |

51| :- | :- |

52| Seu branch atual e alterações não commitadas | `/code-review` |

53| Seus últimos 15 commits | `/code-review HEAD~15..HEAD` |

54| Um branch em relação a outro | `/code-review main...my-feature` |

55| Um único commit, em que `abc1234` é o hash do commit | `/code-review abc1234^..abc1234` |

56| Um pull request pelo número | `/code-review 1234` |

57| Um caminho de arquivo ou diretório | `/code-review src/auth` |

58 

59Sem um alvo, `/code-review` revisa os commits do seu branch à frente do branch upstream, além das suas alterações não commitadas. Se o branch não tiver upstream, o Claude compara com `main` ou com o commit anterior.

60 

61Com `ultra`, o Claude Code interpreta o alvo de forma diferente, conforme descrito em [Texto após o nível de esforço e as flags](#text-after-the-effort-level-and-flags).

62 

63<h2 id="what-the-review-reads-and-edits">

64 O que a revisão lê e edita

65</h2>

66 

67Verifique estes pontos antes de executar uma revisão, especialmente com `--fix`:

68 

69* **Edições**: sem `--fix`, as instruções da revisão pedem ao Claude apenas um relatório. Com `--fix`, elas também pedem que ele aplique as descobertas à sua árvore de trabalho. De qualquer forma, qualquer edição passa pelo seu modo de permissão.

70* **Retrocesso**: uma revisão em segundo plano aplica suas edições de `--fix` fora dos [checkpoints](/docs/pt/checkpointing#subagent-edits-not-restored) da sua sessão. Depois de uma delas, `/rewind` restaura apenas os arquivos que o Claude já havia editado na sua conversa. As edições da revisão em outros arquivos permanecem, então use o git para revertê-las. Quando a revisão [é executada em primeiro plano](#run-in-the-foreground), ela edita sua árvore de trabalho durante o seu próprio turno, então `/rewind` restaura suas edições normalmente.

71* **Instruções**: a revisão segue o seu `CLAUDE.md`, inclusive em uma execução não interativa com `-p`. Ela não lê `REVIEW.md`. Esse arquivo configura o [serviço Code Review](/docs/pt/code-review-customize#use-review-md-for-review-only-rules) gerenciado em pull requests do GitHub.

72 

73<h2 id="how-findings-are-reported">

74 Como as descobertas são relatadas

75</h2>

76 

77O Claude relata as descobertas como texto na resposta em ambas as execuções a seguir:

78 

79* Em uma sessão de terminal, em que `/code-review` executa a revisão como um [subagente bifurcado](/docs/pt/skills#run-skills-in-a-subagent)

80* Em uma execução com `-p` com saída em texto ou JSON

81 

82Em um aplicativo host que solicita a lista de descobertas, como o [aplicativo desktop](/docs/pt/desktop#review-your-code), o Claude relata as descobertas da revisão por meio da [ferramenta `ReportFindings`](/docs/pt/tools-reference). O relatório aparece como uma lista de descobertas, e cada entrada mostra a localização do arquivo, um resumo de uma frase e uma tag de categoria como `correctness` quando a descoberta tiver uma. Uma requisição do host se aplica a todos os níveis de esforço e requer o Claude Code v2.1.218 ou posterior.

83 

84Quando o Claude corrige as descobertas relatadas mais adiante na sessão, ele as relata novamente. O Claude Code então marca cada descoberta na lista atualizada como corrigida, ignorada ou sem necessidade de alteração.

85 

86<h2 id="tune-effort-and-arguments">

87 Ajuste o esforço e os argumentos

88</h2>

89 

90Além de `--fix` e `--comment`, o comando aceita estas flags:

91 

92* `--post`: em uma revisão `ultra` na nuvem de um pull request do `github.com`, pré-seleciona a publicação das descobertas finalizadas no PR na caixa de diálogo de inicialização. Consulte [Publicar descobertas no pull request](/docs/pt/ultrareview#post-findings-to-the-pull-request). Requer o Claude Code v2.1.227 ou posterior.

93* `--max-findings <n>`, `--max-findings all` ou `--max-findings default`: relata até `n` descobertas, ou todas as descobertas com `all`, no lugar do limite habitual da revisão. Onde a revisão relata por meio da ferramenta de descobertas, o limite é 32. Revisões posteriores reutilizam o valor que você digitou até que você passe `--max-findings default`, mas um valor passado em uma execução não interativa com `-p` não é lembrado. Requer o Claude Code v2.1.288 ou posterior.

94 

95Passe um [nível de esforço](/docs/pt/model-config#adjust-effort-level) para equilibrar cobertura e confiança. Em `low`, a revisão relata as descobertas das quais tem mais confiança, então você vê menos falsos positivos. De `medium` até `max`, a revisão amplia a cobertura.

96 

97Quando você não digita um nível, a revisão reutiliza o último nível de `low` a `max` que você digitou, mesmo em uma sessão anterior. O Claude Code mostra um aviso como `Reusing high effort, the level you typed last time`. Estas regras decidem qual nível uma execução usa:

98 

99* **Digitar um nível**: um nível que você digita, como `/code-review high`, altera o que as execuções posteriores reutilizam

100* **Execuções não interativas**: um nível que você passa em uma execução não interativa com `-p` não atualiza o nível lembrado

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

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

103 

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

105 

106<h3 id="post-findings-to-a-gitlab-merge-request">

107 Publicar descobertas em um merge request do GitLab

108</h3>

109 

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

111 

112Passe o merge request como sua URL ou uma referência `!123`. O Claude Code trata um número simples ou nome de branch como um merge request somente quando a origem do checkout está no `gitlab.com`. Em uma instância autogerenciada do GitLab, passe a URL ou a forma `!123`.

113 

114<h3 id="text-after-the-effort-level-and-flags">

115 Texto após o nível de esforço e as flags

116</h3>

117 

118Após o nível de esforço e as flags, o Claude Code lê o restante da linha como o alvo da revisão. O argumento `ultra` muda essa interpretação:

119 

120* **Com `ultra`**: o Claude Code lê uma única palavra como um branch base ou número de PR. Um texto mais longo que não nomeia um branch ou PR se torna [uma nota anexada à revisão](/docs/pt/ultrareview#pass-a-request-in-plain-words). `/code-review ultra check my auth changes` revisa seu branch atual, e o Claude relaciona as descobertas à sua nota.

121* **Sem `ultra`**: tudo o que sobra é o alvo da revisão, mesmo quando começa com outro nome de comando. `/code-review /fix-issue 123` revisa com `/fix-issue 123` como texto do alvo, em vez de carregar `/fix-issue` como uma segunda [skill empilhada](/docs/pt/skills#pass-arguments-to-skills). Antes da v2.1.218, um comando empilhado após `/code-review` era expandido como sua própria skill.

122 

123<h2 id="run-in-the-foreground">

124 Executar em primeiro plano

125</h2>

126 

127Para fazer a revisão ser executada em primeiro plano, faça uma destas opções:

128 

129* Execute-a no modo não interativo, com a flag `-p` ou o Agent SDK. O Claude Code aguarda a revisão e inclui as descobertas na resposta, exceto com `ultra`, que [não aguarda a revisão na nuvem](/docs/pt/ultrareview#run-ultrareview-non-interactively).

130* Defina [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/pt/env-vars) como `1`, o que também desativa todos os outros recursos de tarefas em segundo plano

131* Execute `/code-review` novamente enquanto uma revisão anterior ainda estiver em andamento

132 

133Antes da v2.1.218, a revisão era executada dentro da sua conversa.

134 

135<h2 id="let-claude-start-the-review">

136 Deixe o Claude iniciar a revisão

137</h2>

138 

139O Claude pode iniciar `/code-review` por conta própria, sem que você digite o comando:

140 

141* **Quando você pede em linguagem simples**: peça ao Claude para revisar suas alterações e ele pode executar a skill

142* **A partir de uma tarefa agendada**: uma [tarefa agendada](/docs/pt/scheduled-tasks) com `/code-review` como prompt executa a revisão

143 

144Uma tarefa agendada nunca inicia a [revisão na nuvem](#escalate-to-ultrareview), então agende `/code-review` sem o argumento `ultra`.

145 

146Para impedir que tanto o Claude quanto as tarefas agendadas iniciem a revisão, mantendo `/code-review` disponível para você digitar, adicione uma entrada [`skillOverrides`](/docs/pt/skills#override-skill-visibility-from-settings) a um [arquivo de configurações](/docs/pt/settings#where-settings-live) como `~/.claude/settings.json`:

147 

148```json theme={null}

149{

150 "skillOverrides": {

151 "code-review": "user-invocable-only"

152 }

153}

154```

155 

156Antes da v2.1.246, o Claude iniciava `/code-review` por conta própria apenas onde uma feature flag obtida da Anthropic o ativava. Em [sessões que não obtêm feature flags](/docs/pt/env-vars#features-that-need-feature-flag-fetching), `/code-review` era executado apenas quando você o digitava, e um `/code-review` agendado chegava ao Claude como texto simples.

157 

158<h2 id="escalate-to-ultrareview">

159 Escalar para ultrareview

160</h2>

161 

162`/code-review ultra --fix` executa a [ultrareview](/docs/pt/ultrareview) mais aprofundada na nuvem e, em seguida, pede ao Claude para aplicar as descobertas à sua árvore de trabalho quando elas retornarem à sua sessão.

163 

164A ultrareview usa seu próprio escopo:

165 

166* **O que ela compara**: seu branch atual em relação ao branch padrão do repositório, além das alterações não commitadas e preparadas (staged) na árvore de trabalho

167* **Arquivos sensíveis**: para alterações não commitadas em arquivos com nomes de credenciais ou chaves, como arquivos `.env` e `*.tfvars`, o Claude Code segue as regras para [enviar um repositório local para uma sessão na nuvem](/docs/pt/claude-code-on-the-web#send-local-repositories-without-github)

168* **Uma base diferente**: passe um nome de branch, como `/code-review ultra develop`, para comparar com uma base diferente

169 

170Quando o alvo é um pull request do `github.com`, você pode fazer o Claude [publicar as descobertas finalizadas no PR](/docs/pt/ultrareview#post-findings-to-the-pull-request) como um comentário da sua conta do GitHub. Requer o Claude Code v2.1.227 ou posterior.

171 

172<Note>

173 A ultrareview requer autenticação com uma conta claude.ai. Ela não está disponível no Amazon Bedrock, no Agent Platform do Google Cloud ou no Microsoft Foundry, nem para organizações com Zero Data Retention habilitado ou com a [configuração HIPAA](/docs/pt/hipaa-setup) aplicada. Nesses casos, `/code-review ultra` executa uma revisão local na sua sessão. Organizações que usam [chaves de criptografia gerenciadas pelo cliente](https://platform.claude.com/docs/en/manage-claude/cmek) (CMEK) não podem executar a ultrareview. Para revisar suas alterações localmente, execute `/code-review`.

174</Note>

175 

176Para executar uma revisão na nuvem a partir de um script ou job de CI, use o [subcomando `claude ultrareview`](/docs/pt/ultrareview#run-ultrareview-non-interactively), que aguarda as descobertas e as imprime no stdout.

177 

178<h2 id="change-or-build-on-the-review">

179 Altere ou amplie a revisão

180</h2>

181 

182`/code-review` é uma [skill incluída](/docs/pt/skills#bundled-skills): suas instruções são incorporadas ao Claude Code, portanto não há um arquivo `SKILL.md` no disco para abrir ou editar. Para dar a cada revisão regras do projeto a seguir, adicione-as ao seu `CLAUDE.md`. Para ir além, comece por uma destas páginas:

183 

184* **Substituir o comando**: uma skill de projeto ou pessoal chamada `code-review` é executada no lugar da incluída, e o alias `/review` continua executando a revisão incluída. Consulte [Resolver skills que compartilham um nome](/docs/pt/skills#resolve-skills-that-share-a-name).

185* **Criar seu próprio revisor**: escreva um [subagente](/docs/pt/sub-agents) revisor ou uma [skill](/docs/pt/skills) de revisão

186* **Usar um comando vizinho**: [`/simplify`](/docs/pt/commands) revisa apenas em busca de limpeza e aplica suas correções, e [`/verify`](/docs/pt/commands) executa seu aplicativo para confirmar que uma alteração funciona

187 

188O comando se chamava `/simplify` antes da v2.1.147, quando aplicava correções por padrão. Se você criou scripts com `/simplify` para encontrar bugs, mude para `/code-review --fix`.

189 

190<h2 id="related-resources">

191 Recursos relacionados

192</h2>

193 

194* [Code Review](/docs/pt/code-review): o serviço gerenciado que revisa todo pull request no GitHub para sua organização

195* [Ultrareview](/docs/pt/ultrareview): configuração, limites e custo da revisão na nuvem mais aprofundada

196* [Commands](/docs/pt/commands): a referência de uma linha para `/code-review`, `/review`, `/simplify` e `/verify`

197* [Skills](/docs/pt/skills): como as skills incluídas funcionam e como escrever as suas próprias

code-review-pull-requests.md +169 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Ler e solicitar revisões em um pull request

6 

7> Leia as descobertas do Code Review no seu pull request do GitHub, responda a elas ou descarte-as e solicite uma revisão com `@claude review`.

8 

9O Code Review é um serviço gerenciado que um Owner da sua organização Claude ativa para um conjunto de repositórios do GitHub. Depois de ativado, o Claude revisa os pull requests nesses repositórios e publica suas descobertas como comentários inline, um resumo no corpo da revisão e um check run chamado **Claude Code Review**. Uma revisão nunca aprova nem bloqueia o seu pull request, e o check run nunca é concluído como falha.

10 

11Um Owner controla [quando as revisões são executadas](/docs/pt/code-review-setup#set-when-reviews-run) e [quão minuciosas elas são](/docs/pt/code-review-setup#set-the-default-review-level) para cada repositório.

12 

13<Note>

14 Se o seu plano não inclui o Code Review, você ainda pode pedir ao Claude que revise o seu branch a partir de uma sessão do Claude Code: consulte [Revisar localmente com `/code-review`](/docs/pt/code-review-local).

15</Note>

16 

17<h2 id="severity-levels">

18 Níveis de severidade

19</h2>

20 

21O Claude publica cada descoberta como um comentário inline nas linhas em questão e a marca com um de três níveis de severidade:

22 

23| Marcador | Severidade | Significado |

24| :- | :- | :- |

25| 🔴 | Important | Um bug que deve ser corrigido antes do merge |

26| 🟡 | Nit | Um problema menor, que vale a pena corrigir, mas não é bloqueante |

27| 🟣 | Pre-existing | Um bug que existe na base de código, mas não foi introduzido por este PR |

28 

29Quando a revisão registrou seu raciocínio, a descoberta tem uma seção recolhida **Why this was flagged**. Expanda-a para ler por que o Claude sinalizou o problema e como ele verificou o problema.

30 

31Para alterar o que o Claude sinaliza no seu repositório ou como ele classifica a severidade, consulte [Personalizar o Code Review](/docs/pt/code-review-customize).

32 

33<h2 id="respond-to-findings">

34 Responder às descobertas

35</h2>

36 

37Você pode mesclar sem responder a uma descoberta, a menos que as regras do seu próprio repositório exijam isso. Se a proteção de branch dele [exigir a resolução de conversas](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#require-conversation-resolution-before-merging), resolva a thread de cada descoberta antes de mesclar.

38 

39Para eliminar uma descoberta, resolva a thread dela ou envie uma correção.

40 

41* **Descartá-la sem alterar o código**: resolva a thread você mesmo no GitHub. Apenas responder não descarta uma descoberta.

42* **Corrigir o problema**: altere o código e faça push. A próxima revisão do pull request resolve a thread anterior quando considera o problema corrigido, seja essa revisão executada automaticamente no seu push ou solicitada por você.

43* **Explicar ou discordar**: responda ao comentário. O Claude não responde imediatamente, e uma resposta não inicia uma revisão. A próxima revisão do pull request lê as respostas às descobertas anteriores e pode resolver a thread ou publicar uma resposta de acompanhamento. Se o mesmo tipo de descoberta continuar voltando, peça a um mantenedor que adicione uma regra ao [`REVIEW.md`](/docs/pt/code-review-customize#choose-what-to-write-in-review-md).

44 

45Para obter essa próxima revisão sem fazer push, comente `@claude review` como um [comentário de nível superior no pull request](#comment-commands).

46 

47<h2 id="check-run-output">

48 Saída do check run

49</h2>

50 

51O link **Details** no check run **Claude Code Review** abre as descobertas em uma tabela ordenada por severidade, incluindo qualquer descoberta cujo comentário inline o GitHub não aceitou:

52 

53| Severidade | Arquivo:Linha | Problema |

54| - | - | - |

55| 🔴 Important | `src/auth/session.ts:142` | A renovação do token entra em condição de corrida com o logout, deixando sessões obsoletas ativas |

56| 🟡 Nit | `src/auth/session.ts:88` | `parseExpiry` retorna 0 silenciosamente em entradas malformadas |

57 

58Uma descoberta que tem uma linha, mas não foi publicada como comentário inline, aparece como uma anotação na aba **Files changed**, nas linhas em questão. Descobertas Important aparecem em vermelho, nits em amarelo e bugs pré-existentes em cinza.

59 

60O check run é concluído como neutro, ou como ignorado quando uma revisão automática não foi executada porque um push não alterou nenhum arquivo. Ele nunca é concluído como falha, portanto uma revisão finalizada não faz uma verificação obrigatória falhar. Se você não vir descobertas ou se uma revisão não foi executada, consulte [Solucionar problemas do Code Review](/docs/pt/code-review-troubleshooting).

61 

62<h3 id="read-the-result-from-a-script">

63 Ler o resultado a partir de um script

64</h3>

65 

66Para condicionar um merge ou publicar um resumo a partir do seu próprio CI, analise a última linha do texto de Details com `gh` e jq. Essa linha é um comentário legível por máquina.

67 

68<Steps>

69 <Step title="Encontrar o ID do check run">

70 No seu shell, liste os check runs do commit e pegue o `id` da execução `Claude Code Review`. Substitua `OWNER` e `REPO` pelo proprietário e nome do seu repositório, e `<commit-sha>` pelo commit head do pull request:

71 

72 ```bash theme={null}

73 gh api repos/OWNER/REPO/commits/<commit-sha>/check-runs --jq '.check_runs[] | {id, name}'

74 ```

75 </Step>

76 

77 <Step title="Ler as contagens de severidade">

78 Leia as contagens desse check run, substituindo `CHECK_RUN_ID` pelo ID:

79 

80 ```bash theme={null}

81 gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID \

82 --jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'

83 ```

84 

85 Isso imprime um objeto JSON com uma contagem por severidade e suas chaves em ordem alfabética, por exemplo `{"nit": 1, "normal": 2, "pre_existing": 0}`. As contagens incluem descobertas de revisões anteriores do pull request cujas threads ainda estão abertas.

86 </Step>

87 

88 <Step title="Agir com base no resultado">

89 Faça o seu script tratar estes casos:

90 

91 * **`normal` é maior que zero**: faça o job falhar se quiser condicionar o merge. A chave `normal` contém a contagem de descobertas Important, então o Claude encontrou pelo menos um bug que vale a pena corrigir antes do merge.

92 * **A linha está ausente**: trate isso como ausência de veredito, e não como zero descobertas. Um check run de uma revisão que falhou, excedeu o tempo limite, foi cancelada ou foi substituída por uma mais recente não tem essa linha, e algumas revisões concluídas também não a têm.

93 </Step>

94</Steps>

95 

96<h2 id="request-a-review">

97 Solicitar uma revisão

98</h2>

99 

100Se o seu pull request for um rascunho ou vier de um fork, as revisões automáticas o ignoram, então [solicite a revisão com um comando de comentário](#review-drafts-and-pull-requests-from-forks). Para obter uma revisão no seu pull request, faça uma destas ações:

101 

102* **Abri-lo ou marcá-lo como pronto**: em um repositório configurado como **Once after PR creation** ou **After every push**, uma revisão é iniciada quando você abre ou reabre o pull request, ou marca um rascunho como pronto para revisão.

103* **Comentar um comando**: publique [`@claude review`](#comment-commands) no pull request.

104* **Fazer push de um commit**: um push inicia uma revisão em um repositório configurado como **After every push**, ou em um pull request que você assinou com `@claude review always`.

105* **Clicar em Re-run**: depois que uma revisão falha ou excede o tempo limite em um pull request que não vem de um fork, [execute-a novamente](/docs/pt/code-review-troubleshooting#retrigger-a-failed-or-timed-out-review) a partir do check run.

106* **Aguardar a nova tentativa automática**: uma revisão cuja sessão foi interrompida é tentada novamente uma vez de forma automática. O [resumo do check run](/docs/pt/code-review-troubleshooting#retrigger-a-failed-or-timed-out-review) informa quando isso está acontecendo.

107 

108<h3 id="comment-commands">

109 Comandos de comentário

110</h3>

111 

112Publique um destes comandos como comentário no pull request:

113 

114| Comando | O que faz | Quando usar |

115| :- | :- | :- |

116| `@claude review` | Inicia uma única revisão sem assinar o PR para pushes futuros | Você quer uma revisão agora, como em um pull request em um repositório configurado como Manual, ou outra revisão imediatamente nos outros modos |

117| `@claude review always` | Inicia uma revisão e assina o PR para revisões acionadas por push daqui em diante | Você quer que cada push subsequente inicie uma nova revisão, como em um PR de alta prioridade em um repositório configurado como Manual |

118| `@claude review once` | Igual a `@claude review`: inicia uma única revisão sem assinar | Os mesmos casos de `@claude review` |

119 

120Para que qualquer um desses comandos inicie uma revisão, todas estas condições precisam ser atendidas:

121 

122* Publique-o como um novo comentário de nível superior no pull request, e não como um comentário inline em uma linha do diff nem como o corpo de uma revisão. Editar um comentário anterior não conta.

123* Coloque o comando no início do comentário, com `always` na mesma linha que o restante do comando. Maiúsculas e minúsculas não importam.

124* Você precisa de permissão de escrita, manutenção ou administrador no repositório. O Claude verifica isso com o GitHub para cada pessoa que comenta, e comentários de bots não iniciam revisões.

125* O pull request precisa estar aberto.

126 

127Quando o comando é aceito, um check run **Claude Code Review** aparece no pull request com o título **Code review queued...**. O título muda para **Code review in progress...** quando a revisão começa. O Claude também pode reagir ao seu comentário com 👀, mas essa reação pode aparecer quando nenhuma revisão é iniciada, então procure o check run em vez disso.

128 

129Se uma revisão já estiver em execução no commit mais recente do pull request, uma nova solicitação não inicia uma segunda.

130 

131<Note>

132 Antes de uma atualização de julho de 2026, `@claude review` assinava o PR para revisões acionadas por push. Se você dependia desse comportamento, comente `@claude review always` em vez disso.

133</Note>

134 

135<h3 id="what-a-later-review-covers">

136 O que uma revisão posterior abrange

137</h3>

138 

139Uma revisão posterior que começa por conta própria, como após um push, concentra-se no que mudou desde a última revisão e publica menos nits e descobertas pré-existentes. O resumo dela contabiliza o que foi deixado de fora, em uma linha que termina com "found and not posted" ou "outside the scope of this re-review and not posted."

140 

141Para obter uma revisão que não deixe nenhuma dessas de fora, comente [`@claude review`](#comment-commands). Ela abrange todo o pull request novamente.

142 

143<h3 id="review-drafts-and-pull-requests-from-forks">

144 Revisar rascunhos e pull requests de forks

145</h3>

146 

147As revisões automáticas ignoram ambos, então solicite a revisão com um comando de comentário:

148 

149* **Pull requests em rascunho**: um comando de comentário é executado em um rascunho, então você pode solicitar uma revisão antes de marcar o pull request como pronto. Pushes em um rascunho não iniciam revisões, mesmo após `@claude review always`. A assinatura entra em vigor quando você marca o pull request como pronto.

150* **Pull requests de forks**: o Claude não revisa automaticamente um pull request de um fork, independentemente da configuração **Review runs** do repositório. Para iniciar uma revisão, comente `@claude review` no pull request. As [condições para comandos de comentário](#comment-commands) continuam se aplicando, e o acesso de escrita necessário é ao repositório base, não ao fork.

151 

152Em um pull request de um fork, `@claude review always` também funciona, mas não assina o pull request para revisões em pushes posteriores. Clicar em **Re-run** no check run não inicia uma revisão nesse caso.

153 

154<h3 id="use-code-review-alongside-the-claude-code-github-action">

155 Usar o Code Review junto com o Claude Code GitHub Action

156</h3>

157 

158Se o repositório também executa o [Claude Code GitHub Action](/docs/pt/github-actions) no modo interativo com sua frase de acionamento padrão `@claude`, um comentário `@claude review` também inicia o Action. Para manter os dois separados, defina a entrada `trigger_phrase` do Action com uma frase diferente.

159 

160<h2 id="related-resources">

161 Recursos relacionados

162</h2>

163 

164* [Solucionar problemas do Code Review](/docs/pt/code-review-troubleshooting): uma revisão que não foi iniciada, falhou ou foi ignorada por causa do orçamento

165* [Code Review](/docs/pt/code-review): o que é o serviço e como uma revisão é executada

166* [Configurar o Code Review](/docs/pt/code-review-setup): para Owners, ativar o Code Review e escolher quando as revisões são executadas e em qual nível

167* [Personalizar o Code Review](/docs/pt/code-review-customize): alterar o que o Claude sinaliza com `REVIEW.md` e `CLAUDE.md`

168* [Custos e uso do Code Review](/docs/pt/code-review-costs): como as revisões são cobradas e onde o limite de gastos é definido

169* [Revisar localmente com `/code-review`](/docs/pt/code-review-local): executar uma revisão do seu branch a partir de uma sessão do Claude Code

code-review-setup.md +189 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Configurar o Code Review

6 

7> Ative o Code Review para sua organização Claude: conecte o GitHub, instale o Claude GitHub App, escolha os repositórios e defina quando as revisões são executadas

8 

9Como Owner da sua organização Claude, você ativa o Code Review em [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review) no claude.ai. As revisões são executadas na infraestrutura da Anthropic, portanto você não adiciona arquivos de workflow aos seus repositórios.

10 

11Após a configuração, você escolhe o quão minuciosas são as revisões e quando elas são executadas em cada repositório. Você gasta mais com um nível de revisão mais alto e quando as revisões são executadas com mais frequência. Consulte [Custos do Code Review](/docs/pt/code-review-costs#pricing).

12 

13<h2 id="what-you-need-to-turn-on-code-review">

14 O que você precisa para ativar o Code Review

15</h2>

16 

17Primeiro, verifique se sua organização [se qualifica para o Code Review](/docs/pt/code-review#availability). Em seguida, certifique-se de que você tem este acesso, ou alguém que tenha:

18 

19| Acesso | Necessário para |

20| :- | :- |

21| [Função Owner](/docs/pt/server-managed-settings#access-control) na sua organização Claude | Todas as etapas na página de administração |

22| Owner da organização do GitHub | Instalar o Claude GitHub App e [vinculá-lo à sua organização Claude](/docs/pt/admin-setup#connected-github-accounts). Se você não for owner, peça a um owner que instale e vincule o app antes de começar |

23| Acesso de escrita a cada repositório que você adicionar, a partir da conta do GitHub que você conectar ao Claude | Adicionar o repositório |

24 

25<h2 id="turn-on-code-review">

26 Ativar o Code Review

27</h2>

28 

29<Steps>

30 <Step title="Clique no botão Allow code review">

31 Vá até a seção **Code review** de [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review) e clique no botão **Allow code review**.

32 

33 Se o Code Review for ativado imediatamente sem nenhuma caixa de diálogo, sua organização já tem o Claude GitHub App vinculado ou repositórios adicionados. Vá para [Adicionar mais repositórios](#add-more-repositories) e depois volte para a última etapa.

34 </Step>

35 

36 <Step title="Conecte sua conta do GitHub">

37 Se uma caixa de diálogo **Connect GitHub** for aberta, clique em **Connect**. Se sua organização usa o GitHub Enterprise Server, selecione primeiro sua instância na caixa de diálogo. O GitHub solicita que você autorize o Claude e, em seguida, retorna você à página de administração com a caixa de diálogo **Add a repository** aberta.

38 

39 Se a caixa **Add a repository** for aberta imediatamente, sua conta já está conectada, então siga para a próxima etapa.

40 </Step>

41 

42 <Step title="Instale o Claude GitHub App">

43 Se os repositórios que você deseja estiverem listados na caixa de diálogo **Add a repository**, ou se você os encontrar pesquisando nela, siga para a próxima etapa. A caixa de diálogo lista um repositório somente se o Claude GitHub App puder acessá-lo; portanto, se eles não estiverem lá, instale o app:

44 

45 * Clique em **Install GitHub App**. Quando nenhum repositório está listado, ele é um botão na caixa de diálogo. Caso contrário, ele fica na parte inferior do menu de filtro de organizações do GitHub da caixa de diálogo. A página de instalação do GitHub é aberta em uma nova aba.

46 * Escolha a organização do GitHub proprietária dos repositórios.

47 * Escolha quais repositórios o app pode acessar.

48 * Aprove as permissões solicitadas. O conjunto é mais amplo do que uma revisão usa e é compartilhado por outros recursos do Claude, como o [GitHub Actions](/docs/pt/github-actions). Consulte [o que uma revisão pode acessar](/docs/pt/code-review#what-a-review-can-access) e a [lista completa de permissões](/docs/pt/github-actions#github-app-permissions).

49 * Quando a instalação for concluída, a aba retorna ao Claude. Se ela mostrar um botão **Finish connecting GitHub**, clique nele para vincular a instalação à sua organização Claude.

50 * Volte para a aba da página de administração, onde a lista na caixa de diálogo é atualizada.

51 </Step>

52 

53 <Step title="Escolha os repositórios">

54 Selecione os repositórios que você deseja revisar e clique em **Continue**. Adicionar um repositório exige acesso de escrita a ele a partir da conta do GitHub que você conectou. Você pode [adicionar mais repositórios](#add-more-repositories) posteriormente.

55 </Step>

56 

57 <Step title="Clique em Finish">

58 Em seguida, aparece uma caixa de diálogo **Code review is set up**. Clique em **Finish** para ativar o Code Review. Se você fechar a caixa de diálogo de qualquer outra forma, seus repositórios permanecem adicionados, mas **Allow code review** continua desativado, e você o ativa pelo botão.

59 

60 Cada repositório começa configurado para revisar após cada push, o que executa o maior número de revisões. Para executar menos, [defina quando as revisões são executadas](#set-when-reviews-run).

61 </Step>

62 

63 <Step title="Verifique com um pull request de teste">

64 Abra um pull request de teste em um dos repositórios que você adicionou e não o marque como rascunho. Uma execução de verificação chamada **Claude Code Review** aparece em poucos minutos. Se você já configurou o repositório como **Manual (@claude review)**, comente `@claude review` no pull request para iniciar a primeira revisão.

65 

66 Se nenhuma execução de verificação aparecer, consulte [No check run appears on the test pull request](/docs/pt/code-review-troubleshooting#no-check-run-appears-on-the-test-pull-request).

67 

68 Quando a revisão chegar, envie aos seus desenvolvedores [Ler e solicitar revisões em um pull request](/docs/pt/code-review-pull-requests), que aborda os níveis de gravidade, os comandos de comentário e como responder às descobertas.

69 </Step>

70</Steps>

71 

72<h2 id="set-defaults-for-your-organization">

73 Definir padrões para sua organização

74</h2>

75 

76Como Owner, você decide o quão minuciosas são as revisões e com que frequência elas são executadas. Ambas as opções estão na seção **Code review** de [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review).

77 

78<h3 id="set-the-default-review-level">

79 Definir o nível de revisão padrão

80</h3>

81 

82O nível de revisão define o quão minuciosa é cada revisão, e uma revisão mais minuciosa custa mais. Você define um padrão para a organização e pode sobrescrevê-lo para repositórios individuais.

83 

84| Nível | O que ele equilibra |

85| :- | :- |

86| Quick | Uma passada mais leve. O nível mais rápido, com o menor custo |

87| Standard | Profundidade, velocidade e custo equilibrados. O nível padrão |

88| Deep | A passada mais minuciosa. Leva mais tempo e custa mais |

89 

90* **Padrão da organização**: selecione um nível em **Review level** e confirme com **Change level**. Todos os repositórios o usam, a menos que você atribua a um repositório o seu próprio nível.

91* **Um repositório**: clique em **Edit** na linha do repositório e selecione um **Review level** ali. A primeira opção, **Default**, segue a organização. O nível é salvo assim que você o seleciona.

92 

93Um novo nível se aplica às revisões que começam após a alteração. Para saber o que mais influencia o custo de cada revisão, consulte [Custos e uso do Code Review](/docs/pt/code-review-costs).

94 

95<h3 id="set-when-reviews-run">

96 Definir quando as revisões são executadas

97</h3>

98 

99Cada repositório tem sua própria configuração **Review runs**, que decide quando seus pull requests são revisados.

100 

101* **Once after PR creation**: uma revisão é executada quando um pull request é aberto, reaberto ou marcado como pronto para revisão

102* **After every push**: uma revisão é executada em pushes para o branch do pull request, detectando novos problemas à medida que o pull request evolui e resolvendo automaticamente threads quando você corrige problemas sinalizados

103* **Manual (@claude review)**: abrir um pull request ou fazer push para ele não inicia uma revisão. Comente [`@claude review`](/docs/pt/code-review-pull-requests#comment-commands) para solicitar uma, ou `@claude review always` para também inscrever o pull request em revisões nos pushes subsequentes.

104 

105O modo Manual é útil para repositórios de alto tráfego nos quais você deseja incluir pull requests específicos na revisão, ou para começar a revisar pull requests somente quando estiverem prontos. Para comparar o efeito de cada opção nos gastos, consulte [Com que frequência as revisões são executadas](/docs/pt/code-review-costs#how-often-reviews-run).

106 

107Para alterar a configuração, clique em **Edit** na linha do repositório na tabela **Repositories** e selecione uma opção de **Review runs**. A escolha é salva assim que você a seleciona, e a coluna **Review runs** da tabela a mostra abreviada como Once per PR, Every push ou Manual.

108 

109* **Rascunhos e pull requests de forks**: seja qual for a opção escolhida, [as revisões automáticas ignoram ambos](/docs/pt/code-review-pull-requests#review-drafts-and-pull-requests-from-forks)

110* **Novos repositórios**: um repositório que você adiciona pela caixa de diálogo **Add a repository** começa em **After every push**. Se sua organização do GitHub estiver [coberta como um todo](#cover-a-whole-github-organization), ele assume a configuração da linha dessa organização.

111 

112<h3 id="turn-tip-comments-on-or-off">

113 Ativar ou desativar comentários de dica

114</h3>

115 

116Um comentário de dica é um comentário curto que o Claude publica em um pull request quando nenhuma revisão é iniciada, informando o motivo e o que fazer em seguida. **Show tips on pull requests** fica ativado por padrão. Com ele ativado, o Claude publica uma dica em cada um destes casos, explicando:

117 

118* **O repositório está configurado como Manual**: como solicitar uma revisão com um comentário

119* **O pull request vem de um fork**: que um mantenedor pode solicitar a revisão

120* **Um bot, ou alguém sem acesso de escrita, comenta `@claude review`**: que nenhuma revisão foi iniciada e quem pode solicitar uma

121* **A organização do GitHub não está vinculada à sua organização Claude**: que as revisões estão pausadas e como vinculá-la

122 

123Desative a configuração para interromper esses comentários.

124 

125<h3 id="what-developers-can-change">

126 O que os desenvolvedores podem alterar

127</h3>

128 

129Os desenvolvedores recorrem a você para alterar o nível de revisão, a configuração **Review runs** ou quais repositórios recebem revisões. Pelo GitHub, sem a função Owner, eles podem fazer o seguinte:

130 

131* **Solicitar uma revisão**: comentar [`@claude review`](/docs/pt/code-review-pull-requests#comment-commands) em um pull request. Isso requer acesso de escrita ao repositório e funciona em [rascunhos e pull requests de forks](/docs/pt/code-review-pull-requests#review-drafts-and-pull-requests-from-forks), que as revisões automáticas ignoram.

132* **Inscrever um pull request em uma revisão a cada push**: comentar `@claude review always` em um pull request que não seja [um rascunho nem de um fork](/docs/pt/code-review-pull-requests#review-drafts-and-pull-requests-from-forks), como em um repositório configurado como Manual

133* **Alterar o que as revisões sinalizam**: fazer commit de [arquivos `REVIEW.md` e `CLAUDE.md`](/docs/pt/code-review-customize) no repositório, por exemplo para adicionar uma verificação

134 

135As revisões solicitadas pelos desenvolvedores são [cobradas da sua organização](/docs/pt/code-review-costs#pricing). Para limitar o quanto o Code Review gasta em um mês, consulte [Limitar seus gastos](/docs/pt/code-review-costs#limit-your-spend).

136 

137<h2 id="manage-repositories">

138 Gerenciar repositórios

139</h2>

140 

141Você pode adicionar repositórios um de cada vez ou cobrir uma organização do GitHub inteira de uma só vez, e interromper as revisões onde não as quiser.

142 

143<h3 id="add-more-repositories">

144 Adicionar mais repositórios

145</h3>

146 

147Para adicionar repositórios após a configuração, clique em **Add** acima da tabela **Repositories** na seção **Code review**. A caixa de diálogo **Add a repository** é aberta. Selecione os repositórios e clique em **Continue**.

148 

149* **Um repositório não está listado**: consulte [A repository isn't listed in Add a repository](/docs/pt/code-review-troubleshooting#a-repository-isn’t-listed-in-add-a-repository).

150* **Você deseja todos os repositórios de uma organização do GitHub**: [cubra a organização](#cover-a-whole-github-organization) em vez de selecionar repositórios um de cada vez

151 

152<h3 id="cover-a-whole-github-organization">

153 Cobrir uma organização do GitHub inteira

154</h3>

155 

156Para ativar o Code Review em todos os repositórios de uma organização do GitHub, defina **Review runs** na linha da organização na tabela **Repositories**. Isso cobre todos os repositórios dela que o Claude GitHub App pode acessar, incluindo repositórios adicionados posteriormente. Isso pode aumentar significativamente os gastos. Exige todos os itens a seguir:

157 

158* A conta do GitHub que você conectou ao Claude é owner dessa organização do GitHub.

159* A organização está no github.com. Instâncias do GitHub Enterprise Server e contas pessoais do GitHub não são elegíveis.

160* Um [limite de gastos mensal](/docs/pt/code-review-costs#limit-your-spend) está definido, para sua organização Claude ou para o Code Review.

161 

162Para cobrir a organização, clique em **Edit** na linha dela, selecione uma opção de **Review runs** e confirme. As opções são as três de [Definir quando as revisões são executadas](#set-when-reviews-run), mais **Off**.

163 

164Após a confirmação, estas alterações entram em vigor:

165 

166* **Cobertura**: cada repositório passa a ser coberto a partir do seu próximo pull request. Se o Claude GitHub App foi instalado em repositórios selecionados em vez de em todos, o Claude revisa esses repositórios; altere o acesso do app aos repositórios no GitHub para cobrir o restante.

167* **Configurações existentes**: todos os repositórios dessa organização do GitHub assumem a opção que você selecionar, incluindo repositórios que você havia configurado individualmente. Definir a linha novamente tem o mesmo efeito. Os repositórios que você desativou em suas próprias linhas permanecem desativados.

168* **Alterações individuais posteriores**: um repositório que você configurar depois de forma diferente da sua organização é marcado como **Custom** na tabela.

169* **Nível de revisão**: uma linha de organização não tem nível de revisão próprio.

170 

171<h3 id="turn-off-code-review-or-remove-a-repository">

172 Desativar o Code Review ou remover um repositório

173</h3>

174 

175Na seção **Code review** de [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review), escolha o controle que corresponde ao que você deseja interromper:

176 

177* **Um repositório, mantendo-o na lista**: clique em **Edit** na linha dele e desative **Code review**. A tabela mostra o repositório como Off.

178* **Um repositório, removendo-o**: clique em **Edit** na linha dele e, em seguida, em **Remove repository** na parte inferior da caixa de diálogo. As revisões são interrompidas ali, e outra organização Claude pode então configurar esse repositório. Enquanto a organização do GitHub do repositório estiver coberta como um todo, você não pode removê-lo; desative o botão **Code review** dele em vez disso.

179* **Uma organização do GitHub inteira**: clique em **Edit** na linha da organização e selecione **Off**. Isso também desativa os repositórios dessa organização que você adicionou um de cada vez.

180* **Tudo**: desative **Allow code review**. Nenhuma nova revisão é iniciada em nenhum repositório, e sua lista de repositórios é mantida para que você possa reativá-lo mais tarde.

181 

182<h2 id="related-resources">

183 Recursos relacionados

184</h2>

185 

186* [Custos e uso do Code Review](/docs/pt/code-review-costs): como o nível de revisão e o momento em que as revisões são executadas afetam os gastos, como definir um limite de gastos e onde ver o uso

187* [Ler e solicitar revisões em um pull request](/docs/pt/code-review-pull-requests): o que os desenvolvedores veem em um pull request e os comandos de comentário

188* [Personalizar o Code Review](/docs/pt/code-review-customize): ajuste o que o Claude sinaliza com `REVIEW.md` e `CLAUDE.md`

189* [GitHub Enterprise Server](/docs/pt/github-enterprise-server): conecte uma instância auto-hospedada do GitHub antes da configuração

code-review-troubleshooting.md +113 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Solucionar problemas do Code Review

6 

7> Corrija um Code Review que não foi iniciado, falhou ou foi ignorado por causa do orçamento, encontre achados ausentes e resolva problemas de configuração e de `REVIEW.md`.

8 

9Quando o [Code Review](/docs/pt/code-review) não faz o que você espera em um pull request, comece pela check run **Claude Code Review**. O título dela informa até onde a revisão chegou.

10 

11<h2 id="check-how-far-the-review-got">

12 Verifique até onde a revisão chegou

13</h2>

14 

15Encontre a check run **Claude Code Review** no seu pull request e, em seguida, compare o título dela com um destes mais comuns:

16 

17| Título da check run | O que significa | O que fazer |

18| :- | :- | :- |

19| **Code review queued...** ou **Code review in progress...** | A revisão ainda não terminou | Aguarde o título mudar |

20| **Code review found no issues** | A revisão terminou e não encontrou nada a sinalizar | Nada |

21| Um título informando que foram encontrados problemas | A revisão terminou com achados | Se você não os vê no diff, consulte [Encontre problemas que não aparecem como comentários inline](#find-issues-that-aren’t-showing-as-inline-comments) |

22| **Code review skipped — no new changes** | Uma revisão automática não foi executada no seu push mais recente | Para obter uma revisão mesmo assim, comente `@claude review` |

23| **Code review failed** ou **Code review timed out** | A revisão não terminou | Para executá-la novamente, consulte [Dispare novamente uma revisão que falhou ou expirou](#retrigger-a-failed-or-timed-out-review) |

24| **Code review declined** | A revisão não foi executada | Leia o resumo da check run. Se ele mencionar um orçamento ou um limite de gastos, consulte [A revisão não foi executada e o PR mostra uma mensagem de orçamento](#review-didn’t-run-and-the-pr-shows-a-budget-message) |

25| Nenhuma check run | Nenhuma revisão foi iniciada | Comente `@claude review`. Se nenhuma check run aparecer depois disso, consulte [Um comando em comentário não iniciou uma revisão](#a-comment-command-didn’t-start-a-review) |

26 

27<h2 id="a-review-didn’t-start">

28 Uma revisão não foi iniciada

29</h2>

30 

31Verifique estes casos quando nenhuma check run **Claude Code Review** aparecer, ou quando o Claude publicar um comentário dizendo que a revisão foi ignorada.

32 

33<h3 id="a-comment-command-didn’t-start-a-review">

34 Um comando em comentário não iniciou uma revisão

35</h3>

36 

37Depois de comentar `@claude review`, procure no pull request uma check run **Claude Code Review** com o título **Code review queued...** ou **Code review in progress...**. Uma reação 👀 no seu comentário não confirma que uma revisão está a caminho. Se nenhuma check run aparecer, verifique cada uma destas causas:

38 

39* **O Code Review não está ativado para este repositório**: o Claude não publica nenhum comentário nem check run em resposta ao comando. Peça a um Owner para [adicionar o repositório](/docs/pt/code-review-setup#add-more-repositories).

40* **O comentário não atende a uma condição**: era um comentário inline ou o corpo de uma revisão, em vez de um novo comentário de nível superior, ou o comando não estava no início do comentário. Editar um comentário anterior em vez de publicar um novo também não conta, e o pull request precisa estar aberto. Consulte as [condições para comandos em comentários](/docs/pt/code-review-pull-requests#comment-commands) e publique um novo comentário que as atenda.

41* **Você não tem acesso de escrita**: você precisa da permissão write, maintain ou admin no repositório e, em um pull request de um fork, a permissão que conta é a do repositório base. Se a sua organização tiver as dicas ativadas, o Claude responde "No review was started: manual reviews can only be requested by someone with write access to this repository." Peça a alguém com acesso de escrita para comentar.

42* **O orçamento acabou**: o Claude publica um comentário que começa com "⚠️ Code review skipped". Consulte [A revisão não foi executada e o PR mostra uma mensagem de orçamento](#review-didn’t-run-and-the-pr-shows-a-budget-message).

43 

44<h3 id="review-didn’t-run-and-the-pr-shows-a-budget-message">

45 A revisão não foi executada e o PR mostra uma mensagem de orçamento

46</h3>

47 

48Quando o orçamento da sua organização não consegue cobrir uma revisão, o Code Review ignora a revisão e o Claude publica no pull request um comentário que começa com "⚠️ Code review skipped". Em alguns desses casos, também aparece uma check run com o título **Code review declined**.

49 

50O comentário inclui um link para [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage), onde um administrador restaura o orçamento. O texto dele informa qual limite foi atingido:

51 

52* **"has reached its monthly code review spending cap"**: o [limite mensal de gastos do Code Review](/docs/pt/code-review-costs#limit-your-spend) foi atingido. As revisões são retomadas no início do próximo período de faturamento. Para obtê-las antes, peça a um administrador para aumentar o limite.

53* **"has no extra usage available to pay for this review"**: o saldo de [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) da sua organização está vazio, ou o limite mensal geral de gastos dela foi atingido. Peça a um administrador para adicionar créditos de uso ou aumentar esse limite.

54* **"is too low to start another review"**: o que resta do orçamento ou do saldo é menor que o custo esperado de uma revisão. Peça a um administrador para aumentar o limite ou adicionar créditos de uso.

55 

56Depois que o orçamento for restaurado, comente `@claude review` no pull request para obter a revisão que foi ignorada. As [condições para comandos em comentários](/docs/pt/code-review-pull-requests#comment-commands) se aplicam, portanto quem comenta precisa de acesso de escrita.

57 

58<h2 id="retrigger-a-failed-or-timed-out-review">

59 Dispare novamente uma revisão que falhou ou expirou

60</h2>

61 

62Se o resumo da check run disser "The review session was interrupted before it could finish. A new review of this commit has been queued automatically.", você não precisa fazer nada. Essa revisão é repetida automaticamente uma vez.

63 

64Caso contrário, quando o título da check run for **Code review failed** ou **Code review timed out**, execute a revisão novamente com um comentário ou uma nova execução:

65 

66* **Comente `@claude review`**: publique-o como um comentário de nível superior no pull request. Isso inicia uma nova revisão sem inscrever o pull request em pushes futuros.

67* **Clique em Re-run**: se o pull request não for [de um fork](/docs/pt/code-review-pull-requests#review-drafts-and-pull-requests-from-forks), clique em **Re-run** na verificação **Claude Code Review** na aba **Checks** do GitHub. A nova execução abrange o commit de head atual do pull request e também não inscreve o pull request.

68 

69<h2 id="find-issues-that-aren’t-showing-as-inline-comments">

70 Encontre problemas que não aparecem como comentários inline

71</h2>

72 

73Se o título da check run informar que foram encontrados problemas, mas você não vê comentários de revisão inline no diff, procure nestes outros locais onde os achados são exibidos:

74 

75* **Details da check run**: clique em **Details** ao lado da verificação **Claude Code Review** na aba **Checks**. A tabela de gravidade lista os achados com arquivo, linha e resumo, independentemente de o comentário inline ter sido aceito.

76* **Anotações em Files changed**: abra a aba **Files changed** no PR. Um achado que tem uma linha, mas não foi publicado como comentário inline, aparece ali como uma anotação nas linhas em questão.

77* **Corpo da revisão**: achados que não têm localização inline, ou que ficam fora do diff atual, aparecem sob o título **Additional findings** no corpo da revisão.

78 

79<h2 id="the-check-run-mentions-review-md">

80 A check run menciona REVIEW\.md

81</h2>

82 

83Duas das mensagens que uma check run pode conter sobre `REVIEW.md` dizem respeito à proteção de branch:

84 

85* **"This review applied the repository's review instructions (REVIEW\.md) from its default branch, which is not protected against direct pushes."**: a revisão leu apenas o arquivo raiz. Consulte [De qual branch o REVIEW.md é lido](/docs/pt/code-review-customize#which-branch-review-md-is-read-from) para saber o que muda ao proteger o branch.

86* **"were not applied to this review: branch protection could not be confirmed"**: a revisão não leu nenhum `REVIEW.md`.

87 

88<h2 id="setup-problems">

89 Problemas de configuração

90</h2>

91 

92Estes casos surgem para um Owner durante a [configuração do Code Review](/docs/pt/code-review-setup).

93 

94<h3 id="a-repository-isn’t-listed-in-add-a-repository">

95 Um repositório não aparece em Add a repository

96</h3>

97 

98Primeiro, pesquise o repositório pelo nome, pois a caixa de diálogo não carrega uma lista longa por completo. A caixa de diálogo lista um repositório somente se o Claude GitHub App puder acessá-lo. Clique em **Install GitHub App** e dê ao app acesso ao repositório. Quando nenhum repositório estiver listado, **Install GitHub App** é um botão na caixa de diálogo. Caso contrário, ele fica na parte inferior do menu de filtro de organização do GitHub da caixa de diálogo.

99 

100<h3 id="no-check-run-appears-on-the-test-pull-request">

101 Nenhuma check run aparece no pull request de teste

102</h3>

103 

104Confirme que **Allow code review** está ativado, que o repositório está listado em **Repositories** na seção **Code review** e que o Claude GitHub App tem acesso a ele. As revisões automáticas ignoram pull requests em rascunho, e um repositório configurado como **Manual (@claude review)** precisa de um comentário `@claude review` para iniciar a primeira revisão.

105 

106<h2 id="related-resources">

107 Recursos relacionados

108</h2>

109 

110* [Ler e solicitar revisões em um pull request](/docs/pt/code-review-pull-requests): o que significam os achados e a check run, e os comandos em comentários

111* [Configurar o Code Review](/docs/pt/code-review-setup): para Owners, ativar o Code Review e gerenciar repositórios

112* [Custos e uso do Code Review](/docs/pt/code-review-costs): os limites de gastos por trás de uma mensagem de orçamento

113* [Personalizar o Code Review](/docs/pt/code-review-customize): qual cópia do `REVIEW.md` uma revisão lê

commands.md +2 −2

Details

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

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

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

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

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

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

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


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

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

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

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

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

139| `/run` | **[Skill](/docs/pt/skills#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](/docs/pt/skills#run-and-verify-your-app) |139| `/run` | **[Skill](/docs/pt/skills#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](/docs/pt/skills#run-and-verify-your-app) |

140| `/run-skill-generator` | **[Skill](/docs/pt/skills#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](/docs/pt/skills#run-and-verify-your-app) por projeto |140| `/run-skill-generator` | **[Skill](/docs/pt/skills#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](/docs/pt/skills#run-and-verify-your-app) por projeto |

desktop.md +412 −158

Details

207* Clique em **Walk through in diff** para abrir a visualização de diff e percorrer as descobertas uma de cada vez. Uma descoberta no diff atual aparece em sua linha, onde você pode clicar em **Fix this one** ou descartá-la.207* Clique em **Walk through in diff** para abrir a visualização de diff e percorrer as descobertas uma de cada vez. Uma descoberta no diff atual aparece em sua linha, onde você pode clicar em **Fix this one** ou descartá-la.

208* Clique em **Apply fixes** para pedir a Claude que corrija as descobertas que ainda estão em aberto.208* Clique em **Apply fixes** para pedir a Claude que corrija as descobertas que ainda estão em aberto.

209 209 

210Em qualquer sessão, você também pode pedir a Claude na caixa de prompt que corrija o que a revisão encontrou. Para saber o que `/code-review` procura e os argumentos que aceita, veja [Revisar um diff localmente](/docs/pt/code-review#review-a-diff-locally).210Em qualquer sessão, você também pode pedir a Claude na caixa de prompt que corrija o que a revisão encontrou. Para saber o que `/code-review` procura e os argumentos que aceita, veja [Revisar localmente com `/code-review`](/docs/pt/code-review-local).

211 211 

212<h3 id="monitor-pull-request-status">212<h3 id="monitor-pull-request-status">

213 Monitorar status de pull request213 Monitorar status de pull request


785</Tabs>785</Tabs>

786 786 

787<h2 id="environment-configuration">787<h2 id="environment-configuration">

788 Configuração de ambiente788 Configuração do ambiente

789</h2>789</h2>

790 790 

791O ambiente que você escolhe ao [iniciar uma sessão](#start-a-session) determina onde Claude é executado e como você se conecta:791O ambiente que você escolhe ao [iniciar uma sessão](#start-a-session) determina onde Claude é executado e como você se conecta:

792 792 

793* **Local**: é executado em sua máquina com acesso direto aos seus arquivos793* **Local**: é executado na sua máquina com acesso direto aos seus arquivos

794* **Cloud**: é executado na infraestrutura gerenciada pela Anthropic por padrão. Sessões continuam mesmo se você fechar o aplicativo.794* **Nuvem**: é executado por padrão em infraestrutura gerenciada pela Anthropic. As sessões continuam mesmo que você feche o aplicativo.

795* **SSH**: é executado em uma máquina remota à qual você se conecta via SSH, como seus próprios servidores, VMs em nuvem ou dev containers. Uma tarefa em execução pode [continuar enquanto o Desktop está desconectado](#keep-a-task-running-while-desktop-is-disconnected), mas, com uma conta Claude, ela pode parar quando o login dela expirar.795* **SSH**: é executado em uma máquina remota à qual você se conecta via SSH, como seus próprios servidores, VMs na nuvem ou dev containers. Uma tarefa em execução pode [continuar enquanto o Desktop está desconectado](#keep-a-task-running-while-desktop-is-disconnected), mas com uma conta Claude ela pode parar quando o login dela expirar.

796* **WSL** (Windows): é executado dentro de uma [distribuição WSL 2](/docs/pt/desktop-wsl) em sua máquina, usando sua cadeia de ferramentas Linux e caminhos nativos796* **WSL** (Windows): é executado dentro de uma [distribuição WSL 2](/docs/pt/desktop-wsl) na sua máquina, usando o conjunto de ferramentas Linux dela e caminhos nativos

797 797 

798<h3 id="local-sessions">798<h3 id="local-sessions">

799 Local sessions799 Sessões locais

800</h3>800</h3>

801 801 

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

803 803 

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

805 805 

806O [pensamento estendido](/docs/pt/model-config#extended-thinking) está ativado por padrão, o que melhora o desempenho em tarefas de raciocínio complexo mas usa tokens adicionais. Na API Anthropic, defina `MAX_THINKING_TOKENS` para `0` no editor de ambiente local para desativar o pensamento; isso não tem efeito em Opus 5.5, Sonnet 5.5, Haiku 5.5 ou nos modelos Fable, que sempre usam pensamento estendido. Com o pensamento desativado na API Anthropic, Claude Code envia esforço `high` em vez de um nível superior para modelos que ele sabe que [não aceitam essa combinação](/docs/pt/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5.806O [pensamento estendido](/docs/pt/model-config#extended-thinking) é ativado por padrão, o que melhora o desempenho em tarefas de raciocínio complexo, mas usa tokens adicionais. Na API da Anthropic, defina `MAX_THINKING_TOKENS` como `0` no editor de ambiente local para desativar o pensamento; isso não tem efeito no Opus 5.5, Sonnet 5.5, Haiku 5.5 ou nos modelos Fable, que sempre usam pensamento estendido. Com o pensamento desativado na API da Anthropic, o Claude Code envia o esforço `high` em vez de um nível mais alto para modelos que ele sabe que [não aceitam essa combinação](/docs/pt/errors#effort-isnt-available-with-thinking-turned-off), como o Opus 5.

807 807 

808Em modelos com [adaptive reasoning](/docs/pt/model-config#adjust-effort-level), Claude Code ignora o número em si em um valor positivo de `MAX_THINKING_TOKENS`, porque o adaptive reasoning controla a profundidade do pensamento. Em Opus 4.6 e Sonnet 4.6, defina `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` para `1` para usar um orçamento de pensamento fixo; modelos Fable, Sonnet 5 e posterior, Haiku 5.5, e Opus 4.7 e posterior sempre usam adaptive reasoning e não têm modo de orçamento fixo.808Em modelos com [raciocínio adaptativo](/docs/pt/model-config#adjust-effort-level), o Claude Code ignora o próprio número em um valor positivo de `MAX_THINKING_TOKENS`, porque o raciocínio adaptativo controla a profundidade do pensamento. No Opus 4.6 e no Sonnet 4.6, defina `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` como `1` para usar um orçamento fixo de pensamento; os modelos Fable, o Sonnet 5 e posteriores, o Haiku 5.5 e o Opus 4.7 e posteriores sempre usam raciocínio adaptativo e não têm modo de orçamento fixo.

809 809 

810<h4 id="local-sessions-on-managed-devices">810<h4 id="local-sessions-on-managed-devices">

811 Local sessions on managed devices811 Sessões locais em dispositivos gerenciados

812</h4>812</h4>

813 813 

814Seu administrador pode desativar sessões locais com a [configuração gerenciada `disableDesktopLocalSessions`](#managed-settings). Quando tiverem feito isso, **Local** permanece no menu suspenso de ambiente mas fica acinzentado e não pode ser selecionado, com uma dica de ferramenta dizendo que sua organização o desativou, e no Windows a entrada [WSL](/docs/pt/desktop-wsl), cuja disponibilidade em dispositivos gerenciados é [governada separadamente](/docs/pt/admin-setup#wsl-sessions-in-claude-code-desktop), fica acinzentada da mesma forma. Novas sessões usam como padrão a primeira conexão SSH se uma estiver configurada, e o Desktop mostra uma mensagem de que sessões locais não estão disponíveis neste dispositivo se você tentar continuar uma existente. Escolha um ambiente [SSH](#ssh-sessions) ou [cloud](#cloud-sessions) em vez disso, ou entre em contato com sua equipe de TI.814Seu administrador pode desativar as sessões locais com a [configuração gerenciada `disableDesktopLocalSessions`](#managed-settings). Quando isso acontece, **Local** permanece no menu suspenso de ambiente, mas fica esmaecido e não pode ser selecionado, com uma dica informando que sua organização o desativou, e no Windows a entrada [WSL](/docs/pt/desktop-wsl), cuja disponibilidade em dispositivos gerenciados é [controlada separadamente](/docs/pt/admin-setup#wsl-sessions-in-claude-code-desktop), fica esmaecida da mesma forma. Novas sessões usam por padrão a primeira conexão SSH, se houver uma configurada, e o Desktop mostra uma mensagem informando que sessões locais não estão disponíveis neste dispositivo se você tentar continuar uma existente. Escolha um ambiente [SSH](#ssh-sessions) ou [na nuvem](#cloud-sessions) em vez disso, ou entre em contato com sua equipe de TI.

815 815 

816<h3 id="cloud-sessions">816<h3 id="cloud-sessions">

817 Cloud sessions817 Sessões na nuvem

818</h3>818</h3>

819 819 

820Sessões em nuvem continuam em segundo plano mesmo se você fechar o aplicativo. O uso conta para seus [limites do plano de assinatura](/docs/pt/costs) sem cobranças de computação separadas.820As sessões na nuvem continuam em segundo plano mesmo que você feche o aplicativo. O uso conta para os [limites do seu plano de assinatura](/docs/pt/costs), sem cobranças de computação separadas.

821 821 

822Você pode criar ambientes em nuvem personalizados com diferentes níveis de acesso de rede e variáveis de ambiente. Para gerenciá-los, abra o menu suspenso de ambiente na caixa de prompt e selecione **Cloud**:822Você pode criar ambientes de nuvem personalizados com diferentes níveis de acesso à rede e variáveis de ambiente. Para gerenciá-los, abra o menu suspenso de ambiente na caixa de prompt e selecione **Cloud**:

823 823 

824* **Add an environment**: selecione **Add cloud environment**824* **Adicionar um ambiente**: selecione **Add cloud environment**

825* **Edit or archive one of your own environments**: passe o mouse sobre ele e clique no ícone de engrenagem825* **Editar ou arquivar um dos seus próprios ambientes**: passe o mouse sobre ele e clique no ícone de engrenagem

826 826 

827Veja [Configure cloud environments](/docs/pt/cloud-environments) para detalhes sobre configuração de acesso de rede e variáveis de ambiente.827Consulte [Configurar ambientes de nuvem](/docs/pt/cloud-environments) para detalhes sobre como configurar o acesso à rede e as variáveis de ambiente.

828 828 

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

830 Sessões SSH830 Sessões SSH

831</h3>831</h3>

832 832 

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

834 834 

835<Note>835<Note>

836 Se você usa o Desktop com um [provedor de terceiros](/docs/pt/third-party-integrations), as sessões SSH precisam de sua própria configuração. Veja [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).836 Se você usa o Desktop com um [provedor terceirizado](/docs/pt/third-party-integrations), as sessões SSH precisam de sua própria configuração. Consulte [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).

837</Note>837</Note>

838 838 

839Para adicionar uma conexão SSH, abra o menu suspenso de ambiente na caixa de prompt antes de iniciar uma sessão, depois selecione **SSH > Add SSH connection…** e preencha os detalhes da conexão:839Para adicionar uma conexão SSH, abra o menu suspenso de ambiente na caixa de prompt antes de iniciar uma sessão, depois selecione **SSH > Add SSH connection…** e preencha os detalhes da conexão:

840 840 

841* **Name**: um rótulo amigável para esta conexão841* **Name**: um rótulo amigável para esta conexão

842* **SSH host**: `user@hostname` ou um host definido em `~/.ssh/config`842* **SSH host**: `user@hostname` ou um host definido em `~/.ssh/config`

843* **SSH port**: padrão é 22 se deixado vazio, ou usa a porta do seu SSH config843* **SSH port**: usa 22 por padrão se deixado vazio, ou usa a porta da sua configuração SSH

844* **SSH key (optional)**: caminho para sua chave privada, como `~/.ssh/id_ed25519`. Deixe vazio para usar seu SSH config ou agente SSH.844* **SSH key (optional)**: caminho para sua chave privada, como `~/.ssh/id_ed25519`. Deixe vazio para usar sua configuração SSH ou seu agente SSH.

845* **Worktree folder**: uma pasta na máquina remota, como `~/worktrees`, onde novas sessões criam seus worktrees. Deixe vazio para usar o [padrão da máquina remota](#choose-where-ssh-session-worktrees-go).845* **Worktree folder**: uma pasta na máquina remota, como `~/worktrees`, onde novas sessões criam seus worktrees. Deixe vazio para usar o [padrão da máquina remota](#choose-where-ssh-session-worktrees-go).

846 846 

847Uma vez adicionada, a conexão aparece em **SSH** no menu suspenso de ambiente. Selecione-a para iniciar uma sessão naquela máquina. Claude é executado na máquina remota com acesso aos seus arquivos e ferramentas.847Depois de adicionada, a conexão aparece em **SSH** no menu suspenso de ambiente. Selecione-a para iniciar uma sessão nessa máquina. Claude é executado na máquina remota com acesso aos arquivos e ferramentas dela.

848 848 

849A máquina remota pode executar Linux, macOS ou [Windows](#windows-remote-machines). O Desktop instala Claude Code na máquina remota automaticamente na primeira vez que você se conecta. Uma vez conectado, sessões SSH suportam modos de permissão, conectores, plugins e servidores MCP.849A máquina remota pode executar Linux, macOS ou [Windows](#windows-remote-machines). O Desktop instala o Claude Code na máquina remota automaticamente na primeira vez que você se conecta. Depois de conectadas, as sessões SSH suportam modos de permissão, conectores, plugins e servidores MCP.

850 850 

851<h4 id="remote-machine-requirements-for-ssh-sessions">851<h4 id="remote-machine-requirements-for-ssh-sessions">

852 Requisitos da máquina remota para sessões SSH852 Requisitos da máquina remota para sessões SSH

853</h4>853</h4>

854 854 

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

856 856 

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

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

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

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

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

862* **Rede**: o Claude Code é executado na máquina remota e faz suas requisições de rede a partir dela, então a máquina precisa do [acesso à rede que o Claude Code requer](/docs/pt/network-config#network-access-requirements). Se a máquina não conseguir baixar o Claude Code, o Desktop o baixa no seu computador e o envia. As outras requisições do Claude Code continuam saindo da máquina remota.862* **Rede**: o Claude Code é executado na máquina remota e faz suas requisições de rede a partir dali, portanto a máquina precisa do [acesso à rede que o Claude Code exige](/docs/pt/network-config#network-access-requirements). Se a máquina não conseguir baixar o Claude Code, o Desktop o baixa no seu computador e o envia. As outras requisições do Claude Code ainda saem da máquina remota. Em uma máquina remota Linux, se essas requisições precisarem de um proxy, [defina-o para sessões SSH](#set-a-proxy-or-a-ca-certificate-for-ssh-sessions).

863 

864<h4 id="set-a-proxy-or-a-ca-certificate-for-ssh-sessions">

865 Definir um proxy ou um certificado de CA para sessões SSH

866</h4>

867 

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

869 

870Uma sessão SSH não as obtém desses arquivos, mesmo quando o `claude` em um terminal nessa máquina as obtém. A sessão pode então travar, ou mostrar **The connection from … to the API failed** ou **Authentication failed**, e fazer login novamente não ajuda.

871 

872<Steps>

873 <Step title="Adicione as variáveis">

874 Para o arquivo de CA, use [`NODE_EXTRA_CA_CERTS`](/docs/pt/network-config#custom-ca-certificates), porque o Claude Code não confia em uma CA de `SSL_CERT_FILE` em `~/.claude/settings.json`. Este exemplo define um proxy e um arquivo de CA:

875 

876 ```json ~/.claude/settings.json theme={null}

877 {

878 "env": {

879 "HTTPS_PROXY": "http://proxy.example.com:8080",

880 "NODE_EXTRA_CA_CERTS": "/etc/ssl/certs/example-ca.pem"

881 }

882 }

883 ```

884 </Step>

885 

886 <Step title="Envie sua mensagem novamente">

887 Envie sua mensagem novamente, porque uma variável que você adiciona ou altera nesse arquivo entra em vigor em segundos. Inicie uma nova sessão se ainda falhar.

888 </Step>

889</Steps>

890 

891<h5 id="find-a-proxy-or-ca-variable-set-elsewhere-on-the-remote-machine">

892 Encontrar uma variável de proxy ou de CA definida em outro lugar na máquina remota

893</h5>

894 

895Verifique se a máquina remota Linux define a variável de proxy ou de CA em outro lugar, porque as sessões usam esse valor e [ignoram o de qualquer arquivo de configurações](/docs/pt/settings-reference#how-env-values-interact-with-your-shell):

896 

897<Steps>

898 <Step title="Liste as variáveis que a máquina remota define">

899 Em um terminal no seu computador, execute `ssh devbox env`, com o seu próprio host.

900 </Step>

901 

902 <Step title="Altere a variável onde ela é definida">

903 Se a lista tiver a variável, altere-a no arquivo que a define, como `~/.zshenv`, `/etc/environment` ou `~/.bashrc` na máquina remota.

904 </Step>

905 

906 <Step title="Forneça o novo valor às sessões">

907 Reinicie a máquina remota, ou saia do Desktop e encerre os processos do auxiliar, como nas duas primeiras etapas para [remover o auxiliar](#files-and-processes-on-the-remote-machine). Faça isso quando nenhuma tarefa estiver em execução, porque qualquer uma das opções interrompe o trabalho de Claude.

908 </Step>

909</Steps>

863 910 

864<h4 id="use-your-ssh-configuration-on-macos-and-linux">911<h4 id="use-your-ssh-configuration-on-macos-and-linux">

865 Usar sua configuração SSH no macOS e no Linux912 Usar sua configuração SSH no macOS e no Linux

866</h4>913</h4>

867 914 

868No macOS e no Linux, o Desktop se conecta executando o cliente OpenSSH no seu computador, então ele usa o seu `~/.ssh/config`. Conectar-se pelo cliente OpenSSH requer Claude Desktop v1.37937.0 ou posterior. Insira um nome de `Host` desse arquivo no campo **SSH host** para usar as configurações da entrada correspondente, como `HostName`, `User`, `IdentityFile`, `CertificateFile`, `ProxyJump` e `ProxyCommand`.915No macOS e no Linux, o Desktop se conecta executando o cliente OpenSSH no seu computador, portanto ele usa seu `~/.ssh/config`. Conectar-se por meio do cliente OpenSSH requer o Claude Desktop v1.37937.0 ou posterior. Insira um nome de `Host` desse arquivo no campo **SSH host** para usar as configurações da entrada correspondente, como `HostName`, `User`, `IdentityFile`, `CertificateFile`, `ProxyJump` e `ProxyCommand`.

869 916 

870Antes de adicionar a conexão, verifique o cliente e a entrada em um terminal no seu computador:917Antes de adicionar a conexão, verifique o cliente e a entrada em um terminal no seu computador:

871 918 

872* **Versão do cliente**: execute `ssh -V`. O cliente precisa ser OpenSSH 7.6 ou posterior.919* **Versão do cliente**: execute `ssh -V`. O cliente precisa ser o OpenSSH 7.6 ou posterior.

873* **Entrada**: execute `ssh` com o nome do `Host`, como `ssh devbox`. Se isso falhar, corrija a entrada primeiro.920* **Entrada**: execute `ssh` com o nome do `Host`, como `ssh devbox`. Se isso falhar, corrija a entrada primeiro.

874 921 

875Você pode deixar os campos **SSH port** e **SSH key (optional)** vazios. Se preencher um deles, o Desktop o usa junto com a entrada:922Você pode deixar os campos **SSH port** e **SSH key (optional)** vazios. Se você preencher um deles, o Desktop o usa junto com a entrada:

876 923 

877* **SSH port**: um valor aqui sobrescreve o `Port` da entrada924* **SSH port**: um valor aqui sobrescreve o `Port` da entrada

878* **SSH key (optional)**: o Desktop oferece o arquivo de chave que você escolher, além do `IdentityFile` da entrada e das chaves no seu agente SSH925* **SSH key (optional)**: o Desktop oferece o arquivo de chave que você escolher, além do `IdentityFile` da entrada e das chaves no seu agente SSH


892 939 

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

894 941 

942<h5 id="reach-a-container-on-a-remote-machine">

943 Acessar um contêiner em uma máquina remota

944</h5>

945 

946Para executar uma sessão dentro de um contêiner que não publica nenhuma porta SSH, acesse-o com um `ProxyCommand`, porque o Desktop não executa o `RemoteCommand` da entrada à qual você se conecta. Se sua entrada usa `RemoteCommand` para entrar no contêiner, a sessão é executada na máquina em que a entrada faz login, não no contêiner.

947 

948<Steps>

949 <Step title="Adicione a entrada">

950 Adicione a entrada a seguir ao final do seu `~/.ssh/config`, ou logo acima da sua primeira entrada `Host *`, se você tiver uma. Substitua o contêiner Docker `devbox`, seu usuário `dev` e a máquina `build.example.com` pelos seus. O comando da entrada inicia um servidor SSH dentro do contêiner para cada conexão:

951 

952 ```text ~/.ssh/config theme={null}

953 Host devbox-container

954 User dev

955 ProxyCommand ssh build.example.com docker exec -i devbox /usr/sbin/sshd -i

956 ```

957 </Step>

958 

959 <Step title="Prepare o contêiner">

960 * Instale o servidor OpenSSH, com uma chave de host que permaneça a mesma quando você recompilar a imagem ou recriar o contêiner

961 * Dê à conta indicada em `User` uma forma de fazer login, como um arquivo `authorized_keys`

962 * Verifique se o contêiner atende aos [requisitos da máquina remota](#remote-machine-requirements-for-ssh-sessions)

963 </Step>

964 

965 <Step title="Verifique a allowlist">

966 Se seu administrador [restringe os hosts SSH](#restrict-which-ssh-hosts-users-can-connect-to), execute `ssh -G devbox-container` em um terminal no seu computador. Peça a ele que permita o `hostname` que o comando imprime, aqui `devbox-container`, em `sshHostAllowlist`. Ao permitir esse nome, ele permite tudo aquilo a que o `ProxyCommand` da sua entrada se conecta.

967 </Step>

968 

969 <Step title="Teste a entrada e depois conecte-se">

970 Execute `ssh devbox-container` em um terminal no seu computador. Corrija o que ele relatar e execute-o novamente até que ele abra um shell no contêiner sem pedir nada a você:

971 

972 * **Se o `ssh` pedir uma senha, frase secreta ou código**: mude para um login que funcione sem prompt, como uma chave mantida pelo seu agente SSH

973 * **Se o `ssh` relatar `Cannot execute command-line and remote command.` ou `Bad packet length`**: remova `RemoteCommand` e `RequestTTY` da sua entrada para `build.example.com`. Depois disso, `ssh build.example.com` em um terminal no seu computador abre um shell nessa máquina, não no contêiner.

974 * **Se o `ssh` relatar `Connection closed by UNKNOWN port 65535`**: execute `ssh build.example.com docker exec devbox /usr/sbin/sshd -t` no mesmo terminal.

975 * Se ele imprimir `Missing privilege separation directory: /run/sshd`, crie essa pasta no contêiner.

976 * Se ele imprimir `no hostkeys available` e o contêiner tiver chaves de host, adicione `-u root` após `exec` neste comando e na entrada.

977 

978 Em seguida, insira `devbox-container` no campo **SSH host**.

979 </Step>

980</Steps>

981 

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

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

897</h5>984</h5>

898 985 

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

987 

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

989 

990<Note>

991 Se o seu shell define credenciais temporárias da AWS, [forneça um perfil à AWS CLI](#use-aws-credentials-in-a-proxycommand) em vez de exportar variáveis `AWS_*`.

992</Note>

993 

994<a id="use-aws-credentials-in-a-proxycommand" />

900 995 

901Isso requer Claude Desktop v2.37337.0 ou posterior e um comando `env` que aceite `-0`, o que você pode verificar executando `env -0` em um terminal no seu computador.996<h5 id="use-aws-credentials-in-a-proxycommand">

997 Usar credenciais da AWS em um `ProxyCommand`

998</h5>

999 

1000Se você define credenciais temporárias da AWS em um arquivo de inicialização do shell, um `ProxyCommand` que executa a AWS CLI pode se conectar em um terminal e falhar no Desktop. Quando seu shell exporta `AWS_SESSION_TOKEN`, `AWS_SECURITY_TOKEN` ou `AWS_CREDENTIAL_EXPIRATION`, o `ssh` e seu `ProxyCommand` no Desktop não recebem as credenciais da AWS do shell, nem `AWS_REGION` ou `AWS_PROFILE`.

1001 

1002Se a AWS CLI não tiver outra fonte para uma região ou para credenciais, ela falha com `You must specify a region` ou `Unable to locate credentials`. Para se conectar pelo Desktop, forneça à AWS CLI um perfil que ela lê de `~/.aws/config`:

1003 

1004<Steps>

1005 <Step title="Adicione um perfil com uma região e uma fonte de credenciais">

1006 Este exemplo adiciona um perfil chamado `corp` que obtém suas credenciais de um programa auxiliar:

1007 

1008 ```ini ~/.aws/config theme={null}

1009 [profile corp]

1010 region = us-east-1

1011 credential_process = /full/path/to/your-credential-helper

1012 ```

1013 

1014 * **`region`**: informe a região da AWS das máquinas às quais você se conecta

1015 * **`credential_process`**: informe o caminho completo de um programa que imprime credenciais no [formato JSON que a AWS documenta](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sourcing-external.html). Escolha um programa que não precise de nenhuma entrada sua, porque a AWS CLI o executa a cada conexão, incluindo reconexões enquanto você está ausente.

1016 * **IAM Identity Center**: adicione as [configurações do IAM Identity Center](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html) do perfil no lugar de `credential_process`. Execute `aws sso login --profile corp` em um terminal antes de se conectar e novamente quando esse login expirar.

1017 </Step>

1018 

1019 <Step title="Indique o perfil no ProxyCommand">

1020 Este exemplo adiciona `--profile` ao [comando que a AWS documenta para o Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started-enable-ssh-connections.html):

1021 

1022 ```text ~/.ssh/config theme={null}

1023 Host i-*

1024 ProxyCommand sh -c "aws ssm start-session --profile corp --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"

1025 ```

1026 </Step>

1027 

1028 <Step title="Conecte-se novamente">

1029 Execute `ssh` com o host em um terminal para confirmar que a entrada ainda se conecta ali, depois conecte-se pelo Desktop.

1030 </Step>

1031</Steps>

902 1032 

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

904 Aumentar o timeout de conexão SSH1034 Aumentar o timeout da conexão SSH

905</h5>1035</h5>

906 1036 

907Se sua configuração SSH não definir nenhum `ConnectTimeout` para o host, o Desktop dá ao `ssh` 30 segundos para se conectar. Por meio de um jump host ou de um `ProxyCommand`, esse tempo inclui o tempo que a rota leva para se conectar. Se sua rota precisar de mais tempo, adicione um valor maior à entrada:1037Se sua configuração SSH não define nenhum `ConnectTimeout` para o host, o Desktop dá ao `ssh` 30 segundos para se conectar. Por meio de um jump host ou de um `ProxyCommand`, esse tempo inclui o tempo que a rota leva para se conectar. Se sua rota precisar de mais tempo, adicione um valor maior à entrada:

908 1038 

909```text ~/.ssh/config theme={null}1039```text ~/.ssh/config theme={null}

910Host devbox1040Host devbox


914 ConnectTimeout 1201044 ConnectTimeout 120

915```1045```

916 1046 

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

1048 

1049Se a própria máquina remota aguarda uma aprovação no seu telefone, aprove em até 45 segundos, qualquer que seja o `ConnectTimeout` que você definir. Você não pode aumentar esse limite, porque o próprio Desktop define `ServerAliveInterval` e `ServerAliveCountMax`, e o `ssh` então encerra um login em que a máquina remota não envia nada por esse tempo. Se, em vez disso, um jump host ou um `ProxyCommand` aguardar por você, aumente o `ConnectTimeout` na entrada da máquina remota para cobrir esse tempo.

1050 

1051<h5 id="fix-a-match-host-block-that-only-desktop-applies">

1052 Corrigir um bloco `Match host` que apenas o Desktop aplica

1053</h5>

1054 

1055Se o Desktop usa uma configuração que `ssh devbox` em um terminal não usa, procure um bloco `Match host` acima da linha `HostName` da entrada. Em um terminal, o `ssh` lê um bloco ali antes da linha `HostName`, portanto compara o bloco com `devbox`. O Desktop fornece ao `ssh` o valor de `HostName` na linha de comando, portanto o `ssh` compara o bloco com esse valor.

1056 

1057Para verificar, execute `ssh -G` em um terminal no seu computador com os valores de `HostName` e `User` da entrada na linha de comando, como o Desktop faz:

1058 

1059```bash theme={null}

1060ssh -G -o HostName=devbox.internal.example.com -l alice devbox

1061```

1062 

1063Compare a saída com a de `ssh -G devbox`. Se as configurações do bloco, como `proxycommand`, aparecerem apenas na primeira saída, o bloco só tem efeito no Desktop. Para que o Desktop também o ignore, adicione `!originalhost devbox` à linha `Match` dele:

1064 

1065```text ~/.ssh/config theme={null}

1066Match host *.internal.example.com !originalhost devbox

1067```

1068 

1069Para confirmar, execute o primeiro comando novamente. As configurações do bloco não aparecem mais na saída.

918 1070 

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

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


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

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

927 1079 

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

929 1081 

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

931 1083 

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

933 Acessar uma porta na máquina remota1085 Acessar uma porta na máquina remota

934</h4>1086</h4>

935 1087 

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

937 1089 

938```bash theme={null}1090```bash theme={null}

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


945 Máquinas remotas Windows1097 Máquinas remotas Windows

946</h4>1098</h4>

947 1099 

948Uma máquina remota Windows requer Claude Desktop v2.31226.0 ou posterior.1100Uma máquina remota Windows requer o Claude Desktop v2.31226.0 ou posterior.

949 1101 

950Use o OpenSSH Server da Microsoft. A máquina pode ser x64 ou ARM64. O shell que o servidor SSH inicia pode ser `cmd.exe`, Windows PowerShell 5.1 ou Git Bash.1102Use o OpenSSH Server da Microsoft. A máquina pode ser x64 ou ARM64. O shell que o servidor SSH inicia pode ser `cmd.exe`, Windows PowerShell 5.1 ou Git Bash.

951 1103 

952Máquinas remotas Windows são menos testadas que as Linux. Experimente seu próprio trabalho ali antes de depender dela.1104Máquinas remotas Windows são menos testadas do que as Linux. Experimente seu próprio trabalho ali antes de depender dele.

953 1105 

954Espere estes limites, entre outros, em uma máquina remota Windows:1106Espere estes limites, entre outros, em uma máquina remota Windows:

955 1107 

956* **Terminal**: o [terminal](#run-commands-in-the-terminal) não abre em uma sessão cuja pasta é um caminho Windows, como `C:/projects/app`1108* **Terminal**: o [terminal](#run-commands-in-the-terminal) não abre em uma sessão cuja pasta é um caminho do Windows, como `C:/projects/app`

957* **Sandbox**: o Claude Code é executado ali no Windows nativo, onde executa comandos sem sandbox. Veja [onde o sandbox é executado](/docs/pt/sandboxing).1109* **Sandbox**: o Claude Code é executado ali no Windows nativo, onde executa comandos sem sandbox. Consulte [onde o sandbox é executado](/docs/pt/sandboxing).

958* **Plugins**: o Desktop não copia um plugin que contenha um nome de arquivo ou pasta que o Windows não consegue armazenar, como um nome com `:`. A sessão lista os plugins que o Desktop deixou de fora.1110* **Plugins**: o Desktop não copia um plugin que contenha um nome de arquivo ou pasta que o Windows não consegue armazenar, como um nome com `:`. A sessão lista os plugins que o Desktop deixou de fora.

959* **Servidores MCP**: em algumas máquinas remotas Windows, as chamadas do Claude a servidores MCP de `claude_desktop_config.json` passam pelo Desktop, então Claude não pode chamar as ferramentas deles [enquanto o Desktop está desconectado](#limits-while-desktop-is-disconnected). Antes do Claude Desktop v2.37337.0, isso vale para todas as máquinas remotas Windows.1111* **Servidores MCP**: em algumas máquinas remotas Windows, as chamadas de Claude para servidores MCP de `claude_desktop_config.json` passam pelo Desktop, portanto Claude não consegue chamar as ferramentas deles [enquanto o Desktop está desconectado](#limits-while-desktop-is-disconnected). Antes do Claude Desktop v2.37337.0, isso vale para todas as máquinas remotas Windows.

960* **Worktrees**: os worktrees ficam em `<project-root>/.claude/worktrees/`. Se você [escolher outra pasta](#choose-where-ssh-session-worktrees-go), o Desktop a ignora.1112* **Worktrees**: os worktrees ficam em `<project-root>/.claude/worktrees/`. Se você [escolher outra pasta](#choose-where-ssh-session-worktrees-go), o Desktop a ignora.

961* **Mensagens anteriores**: se o shell do servidor SSH for `cmd.exe` ou Windows PowerShell, talvez você precise se conectar antes de ver as mensagens anteriores de uma sessão1113* **Mensagens anteriores**: se o shell do servidor SSH for `cmd.exe` ou Windows PowerShell, talvez você precise se conectar antes de ver as mensagens anteriores de uma sessão

962* **Forks**: se o shell do servidor SSH for `cmd.exe` ou Windows PowerShell, você só pode fazer fork de uma sessão na primeira mensagem dela1114* **Forks**: se o shell do servidor SSH for `cmd.exe` ou Windows PowerShell, você só pode fazer fork de uma sessão na primeira mensagem dela

963* **Execução enquanto desconectado**: uma tarefa [continua em execução enquanto o Desktop está desconectado](#keep-a-task-running-while-desktop-is-disconnected) somente se o servidor SSH permitir que um programa sobreviva à conexão que o iniciou. Para descobrir, [teste a máquina remota](#prepare-a-long-task).1115* **Execução enquanto desconectado**: uma tarefa [continua em execução enquanto o Desktop está desconectado](#keep-a-task-running-while-desktop-is-disconnected) somente se o servidor SSH permitir que um programa sobreviva à conexão que o iniciou. Para descobrir, [teste a máquina remota](#prepare-a-long-task).

964* **Processos remanescentes**: depois que uma sessão terminar, verifique na máquina se há programas que o Claude Code iniciou, porque eles podem continuar em execução. O [programa auxiliar em segundo plano](#keep-a-task-running-while-desktop-is-disconnected) que o Desktop instala não para sozinho ali.1116* **Processos remanescentes**: depois que uma sessão termina, verifique na máquina se há programas que o Claude Code iniciou, porque eles podem continuar em execução. O [auxiliar em segundo plano](#keep-a-task-running-while-desktop-is-disconnected) que o Desktop instala não para sozinho ali.

965 1117 

966<h4 id="keep-a-task-running-while-desktop-is-disconnected">1118<h4 id="keep-a-task-running-while-desktop-is-disconnected">

967 Manter uma tarefa em execução enquanto o Desktop está desconectado1119 Manter uma tarefa em execução enquanto o Desktop está desconectado

968</h4>1120</h4>

969 1121 

970Se seu computador entrar em suspensão, você perder a rede ou fechar o Desktop, a tarefa continua até terminar, precisar de você ou atingir um dos [limites](#limits-while-desktop-is-disconnected). Fechar a tampa conta como suspensão. Uma reinicialização do Desktop ou do seu computador, inclusive para uma atualização, conta como fechar o aplicativo.1122Se seu computador entrar em suspensão, você perder a rede ou sair do Desktop, a tarefa continua até terminar, precisar de você ou atingir um dos [limites](#limits-while-desktop-is-disconnected). Fechar a tampa conta como suspensão. Uma reinicialização do Desktop ou do seu computador, inclusive para uma atualização, conta como saída.

971 1123 

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

973 1125 

974<Warning>1126<Warning>

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

976 1128 

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

978 1130 

979 Se a tarefa precisar ser executada durante a noite:1131 Se a tarefa precisar ser executada durante a noite:

980 1132 

981 * [Mantenha seu computador acordado](/docs/pt/desktop-scheduled-tasks#how-scheduled-tasks-run) e online, com a tampa aberta e o Desktop em execução1133 * [Mantenha seu computador ativo](/docs/pt/desktop-scheduled-tasks#how-scheduled-tasks-run) e online, com a tampa aberta e o Desktop em execução

982 * Use um login que funcione sem prompt, como uma chave mantida pelo seu agente SSH, para a máquina remota e para qualquer jump host no caminho. O Desktop pode então se reconectar sozinho após uma queda.1134 * Use um login que funcione sem prompt, como uma chave mantida pelo seu agente SSH, para a máquina remota e para qualquer jump host no caminho. O Desktop pode então se reconectar sozinho após uma queda.

983 1135 

984 Para uma tarefa que precisa ser executada enquanto seu computador está em suspensão ou desligado, inicie uma [sessão na nuvem](#run-long-running-tasks-in-the-cloud) em vez disso.1136 Para uma tarefa que precisa ser executada enquanto seu computador está em suspensão ou desligado, inicie uma [sessão na nuvem](#cloud-sessions) em vez disso.

985</Warning>1137</Warning>

986 1138 

987* **Após suspensão ou perda de rede**: você recupera a tarefa em execução se o processo [ainda estiver em execução](#limits-while-desktop-is-disconnected) e o Desktop conseguir fazer login sem prompt. Se não conseguir, [envie uma mensagem](#reconnect-after-sleep-or-a-network-loss).1139* **Após suspensão ou perda de rede**: você recupera a tarefa em execução se o processo [ainda estiver em execução](#limits-while-desktop-is-disconnected) e o Desktop puder fazer login sem prompt. Se não puder, [envie uma mensagem](#reconnect-after-sleep-or-a-network-loss).

988* **Após fechar o aplicativo, com o Desktop no macOS ou Linux e uma conta Claude**: você recupera a tarefa em execução se o Desktop conseguir [se reconectar ao processo](#reopen-a-session-after-you-quit-desktop). Se não conseguir, a tarefa para. Se ela continuar parada, envie uma mensagem.1140* **Após uma saída, com o Desktop no macOS ou no Linux e uma conta Claude**: você recupera a tarefa em execução se o Desktop puder [reconectar-se ao processo](#reopen-a-session-after-you-quit-desktop). Se não puder, a tarefa para. Se ela continuar parada, envie uma mensagem.

989* **Após fechar o aplicativo, com o Desktop no Windows ou um [provedor de terceiros](/docs/pt/third-party-integrations)**: você perde a tarefa em execução, porque o Desktop encerra o processo quando a sessão é aberta. Envie uma mensagem para continuar.1141* **Após uma saída, com o Desktop no Windows ou com um [provedor terceirizado](/docs/pt/third-party-integrations)**: você perde a tarefa em execução, porque o Desktop encerra o processo quando a sessão é aberta. Envie uma mensagem para continuar.

990 1142 

991Quando você voltar e a tarefa não estiver concluída, verifique se há aviso de que o Desktop não consegue se reconectar, um erro de autenticação ou uma solicitação pendente:1143Quando você voltar e a tarefa não estiver concluída, verifique se há um aviso de que o Desktop não consegue se reconectar, um erro de autenticação ou uma solicitação pendente:

992 1144 

993* **O Desktop não consegue se reconectar**: a sessão diz o motivo, e uma notificação também pode dizer. O Desktop pode [precisar que você faça login](#reconnect-after-sleep-or-a-network-loss).1145* **O Desktop não consegue se reconectar**: a sessão informa o motivo, e uma notificação também pode informá-lo. O Desktop pode [precisar que você faça login](#reconnect-after-sleep-or-a-network-loss).

994* **Erro de autenticação**: o [token de login ou a credencial](#limits-while-desktop-is-disconnected) pode ter expirado. Com uma conta Claude, envie uma mensagem para continuar. Com um provedor de terceiros, veja [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).1146* **Erro de autenticação**: o [token de login ou a credencial](#limits-while-desktop-is-disconnected) pode ter expirado. Com uma conta Claude, envie uma mensagem para continuar. Com um provedor terceirizado, consulte [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).

995* **Solicitação pendente**: [responda a ela](#handle-requests-that-arrive-while-you-are-away)1147* **Solicitação pendente**: [responda a ela](#handle-requests-that-arrive-while-you-are-away)

996* **Nenhum desses**: envie uma mensagem para continuar1148* **Nenhum desses casos**: envie uma mensagem para continuar

997 1149 

998<a id="prepare-a-long-task" />1150<a id="prepare-a-long-task" />

999 1151 


1001 Preparar uma tarefa longa1153 Preparar uma tarefa longa

1002</h5>1154</h5>

1003 1155 

1004* **Atualize primeiro**: atualize o Desktop antes de iniciar uma tarefa longa. No macOS e no Windows, o Desktop pode reiniciar sozinho para instalar uma atualização que baixou. Essa reinicialização espera enquanto Claude está trabalhando em uma tarefa SSH. No macOS com uma conta Claude, por padrão a reinicialização pode acontecer mesmo assim depois que a atualização tiver esperado 72 horas.1156* **Atualize primeiro**: atualize o Desktop antes de iniciar uma tarefa longa. No macOS e no Windows, o Desktop pode reiniciar sozinho para instalar uma atualização que baixou. Essa reinicialização aguarda enquanto Claude está trabalhando em uma tarefa SSH. No macOS com uma conta Claude, por padrão a reinicialização pode acontecer mesmo assim depois que a atualização tiver aguardado 72 horas.

1005* **Não feche o Desktop**: se o Desktop for executado no Windows ou usar um provedor de terceiros, deixe-o aberto enquanto a tarefa longa é executada. Depois de ser fechado, ele [encerra a tarefa em execução](#reopen-a-session-after-you-quit-desktop) quando a sessão é aberta. Deixá-lo aberto não protege uma solicitação que [espera por você](#handle-requests-that-arrive-while-you-are-away).1157* **Não saia do Desktop**: se o Desktop é executado no Windows ou usa um provedor terceirizado, deixe-o aberto enquanto a tarefa longa é executada. Após uma saída, ele [encerra a tarefa em execução](#reopen-a-session-after-you-quit-desktop) quando a sessão é aberta. Deixá-lo aberto não protege uma solicitação que [aguarda por você](#handle-requests-that-arrive-while-you-are-away).

1006* **Reduza as solicitações**: escolha um modo de permissão, regras ou hooks que [façam a tarefa esperar por você com menos frequência](#handle-requests-that-arrive-while-you-are-away)1158* **Reduza as solicitações**: escolha um modo de permissão, regras ou hooks que [façam a tarefa aguardar por você com menos frequência](#handle-requests-that-arrive-while-you-are-away)

1007* **Verifique o jump host**: se seu jump host pedir um login, por exemplo uma notificação push para um telefone, mude para um login que funcione sem prompt. Caso contrário, o Desktop pode enviar outra notificação push cada vez que tentar se reconectar.1159* **Verifique o jump host**: se seu jump host pede um login, por exemplo um push para um telefone, mude para um login que funcione sem prompt. Caso contrário, o Desktop pode enviar outro push cada vez que tentar se reconectar.

1008* **Teste a máquina remota**: inicie uma tarefa curta, feche o Desktop enquanto a tarefa ainda está em execução e abra a sessão novamente bem depois de a tarefa já dever ter terminado. Se a tarefa não estiver concluída e a sessão não mostrar nenhum erro de autenticação, verifique na máquina remota [o que pode encerrar uma tarefa](#limits-while-desktop-is-disconnected).1160* **Teste a máquina remota**: inicie uma tarefa curta, saia do Desktop enquanto a tarefa ainda está em execução e abra a sessão novamente bem depois de a tarefa dever ter terminado. Se a tarefa não estiver concluída e a sessão não mostrar nenhum erro de autenticação, verifique na máquina remota [o que pode encerrar uma tarefa](#limits-while-desktop-is-disconnected).

1009* **Mantenha comandos fora do terminal do Desktop**: se a máquina remota [faz logout de terminais ociosos](#limits-while-desktop-is-disconnected), execute seus próprios comandos a partir de um login SSH fora do Desktop1161* **Mantenha comandos fora do terminal do Desktop**: se a máquina remota [desconecta terminais ociosos](#limits-while-desktop-is-disconnected), execute seus próprios comandos a partir de um login SSH fora do Desktop

1010 1162 

1011<a id="limits-while-desktop-is-disconnected" />1163<a id="limits-while-desktop-is-disconnected" />

1012 1164 


1014 Limites enquanto o Desktop está desconectado1166 Limites enquanto o Desktop está desconectado

1015</h5>1167</h5>

1016 1168 

1017Uma tarefa que você deixa em execução pode terminar quando o login dela expira, quando a máquina remota a encerra ou quando o programa auxiliar para ou é substituído:1169Uma tarefa que você deixa em execução pode terminar quando o login dela expira, quando a máquina remota a encerra ou quando o auxiliar para ou é substituído:

1018 1170 

1019* **Token de login ou credencial**: com uma conta Claude, a tarefa para com um erro de autenticação quando o token expira. Com um provedor de terceiros, o mesmo vale para uma credencial que expira, como uma de single sign-on ou de um credential helper. Veja [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions). Com uma conta Claude, [mantenha o Desktop em execução e conectado](#keep-a-task-running-while-desktop-is-disconnected) para que ele possa renovar o login.1171* **Token de login ou credencial**: com uma conta Claude, a tarefa para com um erro de autenticação quando o token expira. Com um provedor terceirizado, o mesmo vale para uma credencial que expira, como uma de single sign-on ou de um auxiliar de credenciais. Consulte [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions). Com uma conta Claude, [mantenha o Desktop em execução e conectado](#keep-a-task-running-while-desktop-is-disconnected) para que ele possa renovar o login.

1020* **A máquina remota**: se a máquina remota reiniciar, ou encerrar seus processos quando sua conexão SSH for fechada, a tarefa em execução termina. Nada a inicia novamente enquanto o Desktop está desconectado. Máquinas Linux em que o `KillUserProcesses` do systemd-logind é `yes` e se aplica ao seu usuário encerram seus processos dessa forma. Para manter uma tarefa em execução ali, peça ao administrador que isente seu usuário, por exemplo com `KillExcludeUsers`.1172* **A máquina remota**: se a máquina remota reiniciar, ou encerrar seus processos quando sua conexão SSH for fechada, a tarefa em execução termina. Nada a inicia novamente enquanto o Desktop está desconectado. Máquinas Linux em que o `KillUserProcesses` do systemd-logind é `yes` e se aplica ao seu usuário encerram seus processos dessa forma. Para manter uma tarefa em execução ali, peça ao administrador que isente seu usuário, por exemplo com `KillExcludeUsers`.

1021* **Terminais ociosos**: algumas máquinas remotas Linux fazem logout de um terminal em que ninguém digita por um tempo definido (`StopIdleSessionSec` do systemd-logind). Com o Desktop no macOS ou Linux, o [terminal](#run-commands-in-the-terminal) de uma sessão e os comandos `!` compartilham a conexão SSH do Desktop por padrão. Esse logout então encerra a conexão enquanto o Desktop está conectado, e a tarefa em execução pode terminar junto. Fechar o painel do terminal não impede isso, então [mantenha comandos fora desse terminal](#prepare-a-long-task).1173* **Terminais ociosos**: algumas máquinas remotas Linux desconectam um terminal em que ninguém digita por um tempo definido (`StopIdleSessionSec` do systemd-logind). Com o Desktop no macOS ou no Linux, o [terminal](#run-commands-in-the-terminal) de uma sessão e os comandos `!` compartilham por padrão a conexão SSH do Desktop. Essa desconexão então encerra a conexão enquanto o Desktop está conectado, e a tarefa em execução pode terminar junto. Fechar o painel do terminal não impede isso, portanto [mantenha comandos fora desse terminal](#prepare-a-long-task).

1022* **Atualizações do Desktop**: se uma atualização trouxer um novo programa auxiliar, o Desktop substitui o programa auxiliar na máquina remota em uma conexão posterior, o que pode encerrar uma tarefa que ainda está em execução1174* **Atualizações do Desktop**: se uma atualização trouxer um novo auxiliar, o Desktop substitui o auxiliar na máquina remota em uma conexão posterior, o que pode encerrar uma tarefa que ainda está em execução

1023* **Ausências longas**: em uma máquina remota Linux ou macOS, se o Desktop não se conectar por 30 dias, o programa auxiliar para e encerra todos os processos do Claude Code executados sob ele. Conecte-se antes disso.1175* **Ausências longas**: em uma máquina remota Linux ou macOS, se o Desktop não se conectar por 30 dias, o auxiliar para e encerra todos os processos do Claude Code executados sob ele. Conecte-se antes disso.

1024 1176 

1025Edições de arquivos e algumas ferramentas podem falhar enquanto o Desktop está desconectado. Se a tarefa precisar delas, mantenha o Desktop conectado:1177Edições de arquivos e algumas ferramentas podem falhar enquanto o Desktop está desconectado. Se a tarefa precisar delas, mantenha o Desktop conectado:

1026 1178 

1027* **Worktrees**: em uma sessão que usa um [worktree](#work-in-parallel-with-sessions), o Desktop verifica cada edição de arquivo antes que Claude a faça. Enquanto o Desktop está desconectado, cada edição espera cerca de 30 segundos e então falha. Comandos de shell continuam sendo executados. Em uma máquina remota Linux ou macOS, [as edições podem continuar funcionando](#worktree-edits-while-disconnected). Se não tiver certeza, inicie a sessão sem um worktree.1179* **Worktrees**: em uma sessão que usa um [worktree](#work-in-parallel-with-sessions), o Desktop verifica cada edição de arquivo antes que Claude a faça. Enquanto o Desktop está desconectado, cada edição aguarda cerca de 30 segundos e depois falha. Comandos do shell ainda são executados. Em uma máquina remota Linux ou macOS, [as edições podem continuar funcionando](#worktree-edits-while-disconnected). Se não tiver certeza, inicie a sessão sem um worktree.

1028* **Restrições de pastas**: se sua organização restringe quais pastas as sessões podem usar, o Desktop verifica cada leitura, busca e edição de arquivo, com ou sem worktree. Enquanto o Desktop está desconectado, cada uma espera até 10 minutos e então falha.1180* **Restrições de pastas**: se sua organização restringe quais pastas as sessões podem usar, o Desktop verifica cada leitura, pesquisa e edição de arquivo, com ou sem worktree. Enquanto o Desktop está desconectado, cada uma aguarda até 10 minutos e depois falha.

1029* **Conectores**: [conectores](#connect-external-tools) e outras ferramentas fornecidas pelo Desktop são executados por meio do Desktop, então, enquanto ele está desconectado, cada chamada falha após cerca de 30 segundos1181* **Conectores**: [conectores](#connect-external-tools) e outras ferramentas que o Desktop fornece passam pelo Desktop, portanto, enquanto ele está desconectado, cada chamada falha após cerca de 30 segundos

1030* **Workflows**: o Desktop verifica cada novo [workflow](/docs/pt/workflows) antes que ele comece, então, enquanto o Desktop está desconectado, um novo workflow espera até 10 minutos e então falha1182* **Fluxos de trabalho**: o Desktop verifica cada novo [fluxo de trabalho](/docs/pt/workflows) antes que ele comece, portanto, enquanto o Desktop está desconectado, um novo aguarda até 10 minutos e depois falha

1031* **Servidores MCP**: servidores MCP que o Claude Code inicia na máquina remota não passam pelo Desktop, então Claude ainda pode chamar as ferramentas deles. Os servidores de `claude_desktop_config.json` estão entre eles somente se o Desktop não usar seu [cliente SSH integrado](#worktree-edits-while-disconnected). Caso contrário, e em [algumas máquinas remotas Windows](#windows-remote-machines), Claude não pode chamar as ferramentas deles enquanto o Desktop está desconectado.1183* **Servidores MCP**: servidores MCP que o Claude Code inicia na máquina remota não passam pelo Desktop, portanto Claude ainda pode chamar as ferramentas deles. Servidores de `claude_desktop_config.json` estão entre eles apenas se o Desktop não usar seu [cliente SSH integrado](#worktree-edits-while-disconnected). Caso contrário, e em [algumas máquinas remotas Windows](#windows-remote-machines), Claude não consegue chamar as ferramentas deles enquanto o Desktop está desconectado.

1032 1184 

1033<span id="worktree-edits-while-disconnected" />1185<span id="worktree-edits-while-disconnected" />

1034 1186 

1035<Accordion title="Quando as edições em um worktree continuam funcionando">1187<Accordion title="Quando as edições em um worktree continuam funcionando">

1036 Em uma máquina remota Linux ou macOS, a verificação não passa pelo Desktop, então as edições dentro do worktree continuam funcionando enquanto o Desktop está desconectado. Antes do Claude Desktop v2.37337.0, isso vale apenas para máquinas remotas Linux.1188 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.

1037 1189 

1038 As edições ainda falham em alguns casos, incluindo estes:1190 As edições ainda falham em alguns casos, incluindo estes:

1039 1191 

1040 * **Cliente SSH integrado**: o Desktop o usa, por exemplo em uma instalação da Microsoft Store, em um computador Windows sem o OpenSSH 9.4 ou posterior da Microsoft, ou por padrão no Windows com um provedor de terceiros1192 * **Cliente SSH integrado**: o Desktop o usa, por exemplo, em uma instalação da Microsoft Store, em um computador Windows sem o OpenSSH 9.4 ou posterior da Microsoft, ou por padrão no Windows com um provedor terceirizado

1041 * **Local do repositório**: o repositório é seu diretório pessoal, uma pasta acima dele ou `~/.claude`1193 * **Localização do repositório**: o repositório é seu diretório pessoal, uma pasta acima dele ou `~/.claude`

1042 * **Caminhos no macOS**: em uma máquina remota macOS, o repositório está em `/Volumes`, ou um nome de pasta no caminho do repositório ou do worktree contém `~` ou um caractere não ASCII1194 * **Caminhos do macOS**: em uma máquina remota macOS, o repositório está em `/Volumes`, ou um nome de pasta no caminho do repositório ou do worktree tem um `~` ou um caractere não ASCII

1043 * **Restrições de pastas**: sua organização restringe quais pastas as sessões podem usar1195 * **Restrições de pastas**: sua organização restringe quais pastas as sessões podem usar

1044 * **Launcher corporativo**: antes do Claude Desktop v2.37337.0, você faz login com uma conta Claude e sua organização inicia o Claude Code na máquina remota por meio de um [launcher corporativo](/docs/pt/corporate-launcher)1196 * **Inicializador corporativo**: antes do Claude Desktop v2.37337.0, você faz login com uma conta Claude e sua organização inicia o Claude Code na máquina remota por meio de um [inicializador corporativo](/docs/pt/corporate-launcher)

1045 1197 

1046 Uma sessão sem worktree não tem essa verificação, a menos que sua organização restrinja quais pastas as sessões podem usar.1198 Uma sessão sem worktree não tem essa verificação, a menos que sua organização restrinja quais pastas as sessões podem usar.

1047</Accordion>1199</Accordion>


1052 Lidar com solicitações que chegam enquanto você está ausente1204 Lidar com solicitações que chegam enquanto você está ausente

1053</h5>1205</h5>

1054 1206 

1055Se Claude precisar da sua aprovação ou lhe fizer uma pergunta enquanto o Desktop está desconectado, Claude espera na máquina remota. A espera não tem limite de tempo próprio. Quando o Desktop se reconecta ao processo, ele mostra a solicitação. Se o Desktop iniciar um novo processo em vez disso, você perde a solicitação.1207Se Claude precisar da sua aprovação ou lhe fizer uma pergunta enquanto o Desktop está desconectado, Claude aguarda na máquina remota. A espera não tem limite de tempo próprio. Quando o Desktop se reconecta ao processo, ele mostra a solicitação. Se, em vez disso, o Desktop iniciar um novo processo, você perde a solicitação.

1056 1208 

1057Enquanto uma tarefa espera por você, o Desktop pode reiniciar sozinho, por exemplo para instalar uma atualização. Se o Desktop for executado no Windows ou usar um provedor de terceiros, você perde a solicitação após essa reinicialização.1209Enquanto uma tarefa aguarda por você, o Desktop pode reiniciar sozinho, por exemplo para instalar uma atualização. Se o Desktop é executado no Windows ou usa um provedor terceirizado, você perde a solicitação após essa reinicialização.

1058 1210 

1059Se você perder uma solicitação, envie uma mensagem para continuar.1211Se você perder uma solicitação, envie uma mensagem para continuar.

1060 1212 

1061Para reduzir a frequência com que uma tarefa para e espera por você, e para receber notícias dela enquanto está ausente, configure qualquer um destes antes de sair:1213Para reduzir a frequência com que uma tarefa para e aguarda por você, e para receber notícias dela enquanto você está ausente, configure qualquer um destes itens antes de sair:

1062 1214 

1063* **Modo auto**: escolha o [modo auto](#choose-a-permission-mode) se [ele estiver disponível para você](#auto-mode-availability). Após bloqueios repetidos, [você é consultado novamente](/docs/pt/permission-modes#when-auto-mode-falls-back).1215* **Modo auto**: escolha o [modo auto](#choose-a-permission-mode) se [ele estiver disponível para você](#auto-mode-availability). Após bloqueios repetidos, [você é consultado novamente](/docs/pt/permission-modes#when-auto-mode-falls-back).

1064* **Regras de permissão allow**: no seu arquivo de configurações de usuário na máquina remota, `~/.claude/settings.json`, adicione [regras allow](/docs/pt/permissions#manage-permissions) para os comandos de que a tarefa precisa. Se sua organização [aceita regras de permissão apenas das configurações gerenciadas](/docs/pt/settings-reference#allowmanagedpermissionrulesonly), peça ao seu administrador que as adicione às [configurações gerenciadas](#managed-settings) que chegam à máquina remota. Para regras allow no `.claude/settings.json` de um projeto, veja [Project allow rules and workspace trust](/docs/pt/permissions#project-allow-rules-and-workspace-trust).1216* **Regras de permissão allow**: no seu arquivo de configurações de usuário na máquina remota, `~/.claude/settings.json`, adicione [regras allow](/docs/pt/permissions#manage-permissions) para os comandos de que a tarefa precisa. Se sua organização [aceita regras de permissão apenas de configurações gerenciadas](/docs/pt/settings-reference#allowmanagedpermissionrulesonly), peça ao seu administrador que as adicione às [configurações gerenciadas](#managed-settings) que chegam à máquina remota. Para regras allow no `.claude/settings.json` de um projeto, consulte [Regras allow do projeto e confiança no workspace](/docs/pt/permissions#project-allow-rules-and-workspace-trust).

1065* **Um hook que responde**: configure um [hook `PermissionRequest`](/docs/pt/hooks#permissionrequest) em `~/.claude/settings.json` na máquina remota para permitir ou negar solicitações no seu lugar1217* **Um hook que responde**: configure um [hook `PermissionRequest`](/docs/pt/hooks#permissionrequest) em `~/.claude/settings.json` na máquina remota para permitir ou negar solicitações em seu lugar

1066* **Um hook que alerta você**: configure um [hook `Notification`](/docs/pt/hooks#notification) com o matcher `permission_prompt` no mesmo arquivo para enviar a si mesmo uma mensagem quando uma solicitação estiver pendente1218* **Um hook que alerta você**: configure um [hook `Notification`](/docs/pt/hooks#notification) com o matcher `permission_prompt` no mesmo arquivo para enviar a si mesmo uma mensagem quando uma solicitação estiver pendente

1067* **Um hook que avisa quando Claude termina**: configure um [hook `Stop`](/docs/pt/hooks#stop) no mesmo arquivo para enviar a si mesmo uma mensagem quando Claude terminar de responder. Ele não é executado quando um erro de API encerra o turno. Para esse caso, configure um [hook `StopFailure`](/docs/pt/hooks#stopfailure).1219* **Um hook que avisa quando Claude termina**: configure um [hook `Stop`](/docs/pt/hooks#stop) no mesmo arquivo para enviar a si mesmo uma mensagem quando Claude terminar de responder. Ele não é executado quando um erro de API encerra o turno. Para esse caso, configure um [hook `StopFailure`](/docs/pt/hooks#stopfailure).

1068 1220 

1069Se sua organização [executa apenas hooks gerenciados](/docs/pt/settings-reference#allowmanagedhooksonly), peça ao seu administrador que adicione o hook às [configurações gerenciadas](#managed-settings) que chegam à máquina remota.1221Se sua organização [executa apenas hooks gerenciados](/docs/pt/settings-reference#allowmanagedhooksonly), peça ao seu administrador que adicione o hook às [configurações gerenciadas](#managed-settings) que chegam à máquina remota.

1070 1222 

1071O Claude Code não aprova automaticamente [algumas ações](/docs/pt/permission-modes#actions-no-mode-auto-approves) em nenhum modo de permissão, incluindo Bypass permissions. Dependendo do modo de permissão, o Claude Code nega essa ação ou pergunta a você, e a tarefa então espera pela sua resposta.1223O Claude Code não aprova automaticamente [algumas ações](/docs/pt/permission-modes#actions-no-mode-auto-approves) em nenhum modo de permissão, incluindo Bypass permissions. Dependendo do modo de permissão, o Claude Code nega essa ação ou pergunta a você, e a tarefa então aguarda sua resposta.

1072 1224 

1073<a id="reconnect-after-sleep-or-a-network-loss" />1225<a id="reconnect-after-sleep-or-a-network-loss" />

1074 1226 


1076 Reconectar após suspensão ou perda de rede1228 Reconectar após suspensão ou perda de rede

1077</h5>1229</h5>

1078 1230 

1079Se o Desktop não tiver se reconectado quando você voltar, envie uma mensagem na sessão. O Desktop se reconecta sozinho apenas quando consegue fazer login sem prompt, por exemplo com uma chave mantida pelo seu agente SSH.1231Se o Desktop não tiver se reconectado quando você voltar, envie uma mensagem na sessão. O Desktop se reconecta sozinho apenas onde consegue fazer login sem prompt, por exemplo com uma chave mantida pelo seu agente SSH.

1080 1232 

1081* **Senha lembrada**: uma senha que você permitiu que o Desktop lembrasse também funciona sem prompt, mas, para uma ausência longa, prefira uma chave mantida pelo seu agente SSH. Se os logins com essa senha forem interrompidos ou travarem, o Desktop pode parar de se reconectar e esperar por você.1233* **Senha memorizada**: uma senha que você permite que o Desktop memorize também funciona sem prompt, mas, para uma ausência longa, prefira uma chave mantida pelo seu agente SSH. Se os logins com essa senha forem interrompidos ou travarem, o Desktop pode parar de se reconectar e aguardar por você.

1082* **Qualquer outro prompt**: se a máquina remota solicitar qualquer outra coisa, como um código de uso único, você pode receber uma notificação no seu computador. Clique na notificação, ou envie uma mensagem na sessão, e o Desktop mostra o prompt.1234* **Qualquer outro prompt**: se a máquina remota solicitar qualquer outra coisa, como um código de uso único, você pode receber uma notificação no seu computador. Clique na notificação, ou envie uma mensagem na sessão, e o Desktop mostra o prompt.

1083 1235 

1084<Accordion title="Se um jump host pedir um login, a interrupção for longa, faltar saída ou o processo tiver desaparecido">1236<Accordion title="Se um jump host pede um login, a interrupção é longa, falta saída ou o processo desapareceu">

1085 - **Jump host, as notificações push param enquanto você está ausente**: isso pode acontecer com o Desktop no macOS ou Linux quando ninguém responde ao login de um jump host, por exemplo uma notificação push para um telefone. O Desktop então para de se reconectar enquanto não há ninguém no seu computador. Quando você desbloqueia ou usa o computador, pode receber outra notificação push, porque o Desktop pode tentar novamente. Após três tentativas sem resposta, ele espera até que você tente novamente ou envie uma mensagem.1237 - **Jump host, os pushes param enquanto você está ausente**: isso pode acontecer com o Desktop no macOS ou no Linux quando ninguém responde ao login de um jump host, por exemplo um push para um telefone. O Desktop então para de se reconectar enquanto não há ninguém no seu computador. Quando você desbloqueia ou usa o computador, pode receber outro push, porque o Desktop pode tentar novamente. Após três tentativas sem resposta, ele aguarda até que você tente novamente ou envie uma mensagem.

1086 - **Jump host, as notificações push continuam chegando**: onde o Desktop não consegue perceber que ninguém responde, como no Desktop no Windows, ele continua tentando enquanto tiver um processo ao qual se reconectar, esteja esse processo ainda em execução ou não. Você pode receber outra notificação push a cada tentativa. Para encerrar as tentativas, feche o Desktop, o que [pode custar a tarefa em execução](#reopen-a-session-after-you-quit-desktop).1238 - **Jump host, os pushes continuam chegando**: onde o Desktop não consegue perceber que ninguém responde, como com o Desktop no Windows, ele continua tentando enquanto tiver um processo ao qual se reconectar, esteja esse processo ainda em execução ou não. Você pode receber outro push a cada tentativa. Para encerrar as tentativas, saia do Desktop, o que [pode custar a tarefa em execução](#reopen-a-session-after-you-quit-desktop).

1087 - **Interrupção longa**: o Desktop diminui o ritmo para cerca de uma tentativa a cada cinco minutos. Para se reconectar mais cedo, tente novamente na sessão ou envie uma mensagem, que o Desktop entrega assim que estiver conectado.1239 - **Interrupção longa**: o Desktop reduz o ritmo para cerca de uma tentativa a cada cinco minutos. Para se reconectar mais cedo, tente novamente na sessão ou envie uma mensagem, que o Desktop entrega assim que estiver conectado.

1088 - **Saída ausente**: enquanto o Desktop está desconectado, o programa auxiliar mantém a saída mais recente do Claude Code de cada sessão em um buffer de 16 MiB e descarta a saída mais antiga. Depois que o Desktop se reconecta, a sessão pode mostrar `Loading recent output from <host>…`. Se o Desktop não conseguir carregar toda a saída, você vê a linha `Some output produced while you were disconnected may be missing here.` A linha não significa que a tarefa parou.1240 - **Saída ausente**: enquanto o Desktop está desconectado, o auxiliar mantém a saída mais recente do Claude Code de cada sessão em um buffer de 16 MiB e descarta a saída mais antiga. Depois que o Desktop se reconecta, a sessão pode mostrar `Loading recent output from <host>…`. Se o Desktop não conseguir carregar toda a saída, você verá a linha `Some output produced while you were disconnected may be missing here.` Essa linha não significa que a tarefa parou.

1089 - **Processo desaparecido**: se o processo tiver desaparecido quando o Desktop se reconectar, o Desktop pode iniciar um novo a partir do histórico salvo da conversa e dizer a Claude para continuar a tarefa. O Desktop não continua a tarefa sozinho se o processo continuar terminando, ou se o Desktop usar um provedor de terceiros. Envie uma mensagem para continuar.1241 - **Processo desaparecido**: se o processo tiver desaparecido quando o Desktop se reconectar, o Desktop pode iniciar um novo a partir do histórico salvo da conversa e pedir a Claude que continue a tarefa. O Desktop não continua a tarefa sozinho se o processo continuar terminando, ou se o Desktop usar um provedor terceirizado. Envie uma mensagem para continuar.

1090</Accordion>1242</Accordion>

1091 1243 

1092<a id="reopen-a-session-after-you-quit-desktop" />1244<a id="reopen-a-session-after-you-quit-desktop" />

1093 1245 

1094<h5 id="reopen-a-session-after-you-quit-desktop">1246<h5 id="reopen-a-session-after-you-quit-desktop">

1095 Reabrir uma sessão depois de fechar o Desktop1247 Reabrir uma sessão depois de sair do Desktop

1096</h5>1248</h5>

1097 1249 

1098Depois que você fecha o Desktop, a tarefa continua em execução na máquina remota até terminar, precisar de você ou atingir um dos [limites](#limits-while-desktop-is-disconnected).1250Depois que você sai do Desktop, a tarefa continua em execução na máquina remota até terminar, precisar de você ou atingir um dos [limites](#limits-while-desktop-is-disconnected).

1099 1251 

1100* **Desktop no macOS ou Linux, com uma conta Claude**: inicie o Desktop e abra a sessão. Você recupera a tarefa em execução quando o Desktop consegue se reconectar ao processo. Nem sempre ele consegue, por exemplo após algumas atualizações do Desktop ou depois que sua organização altera as configurações gerenciadas.1252* **Desktop no macOS ou no Linux, com uma conta Claude**: inicie o Desktop e abra a sessão. Você recupera a tarefa em execução quando o Desktop consegue se reconectar ao processo. Nem sempre ele consegue, por exemplo após algumas atualizações do Desktop ou depois que sua organização altera as configurações gerenciadas.

1101* **No macOS ou Linux, quando o Desktop não consegue se reconectar**: o Desktop encerra o processo e inicia um novo a partir do histórico salvo da conversa. Sua tarefa em execução para, e você perde qualquer aprovação ou pergunta que estava esperando por você. Após uma atualização, o Desktop pode então dizer a Claude para continuar. Se a tarefa continuar parada, envie uma mensagem.1253* **No macOS ou no Linux, quando o Desktop não consegue se reconectar**: o Desktop encerra o processo e inicia um novo a partir do histórico salvo da conversa. Sua tarefa em execução para, e você perde qualquer aprovação ou pergunta que estava aguardando por você. Após uma atualização, o Desktop pode então pedir a Claude que continue. Se a tarefa continuar parada, envie uma mensagem.

1102* **Desktop no Windows, ou com um provedor de terceiros em qualquer plataforma**: inicie o Desktop novamente somente quando esperar que a tarefa esteja concluída. Você não recupera a tarefa em execução, porque o Desktop nunca se reconecta depois de ser fechado. Ele encerra o processo quando a sessão é aberta, o que pode acontecer quando o Desktop é iniciado. Envie uma mensagem para continuar.1254* **Desktop no Windows, ou com um provedor terceirizado em qualquer plataforma**: inicie o Desktop novamente somente quando esperar que a tarefa esteja concluída. Você não recupera a tarefa em execução, porque o Desktop nunca se reconecta após uma saída. Ele encerra o processo quando a sessão é aberta, o que pode acontecer quando o Desktop é iniciado. Envie uma mensagem para continuar.

1103 1255 

1104Para implantações de terceiros, veja [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).1256Para implantações de terceiros, consulte [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).

1105 1257 

1106<Warning>1258<Warning>

1107 Enquanto o processo do Claude Code de uma conversa ainda estiver em execução, não execute [`claude --resume`](/docs/pt/cli-reference#cli-flags) para ela na máquina remota. O Claude Code não impede você, e os dois processos então escrevem na mesma conversa. Se não tiver certeza, adicione `--fork-session`, que continua em uma cópia da conversa, mas os dois processos ainda trabalham nos mesmos arquivos.1259 Enquanto o processo do Claude Code de uma conversa ainda estiver em execução, não execute [`claude --resume`](/docs/pt/cli-reference#cli-flags) para ela na máquina remota. O Claude Code não impede isso, e ambos os processos passam a gravar na mesma conversa. Se não tiver certeza, adicione `--fork-session`, que continua em uma cópia da conversa, mas ambos os processos ainda trabalham nos mesmos arquivos.

1108</Warning>1260</Warning>

1109 1261 

1110<h4 id="choose-where-ssh-session-worktrees-go">1262<h4 id="choose-where-ssh-session-worktrees-go">


11172. [`worktree.location`](/docs/pt/settings-reference#worktree-location) em `~/.claude/settings.json` na máquina remota12692. [`worktree.location`](/docs/pt/settings-reference#worktree-location) em `~/.claude/settings.json` na máquina remota

11183. `<project-root>/.claude/worktrees/`, o padrão12703. `<project-root>/.claude/worktrees/`, o padrão

1119 1271 

1120Cada projeto recebe sua própria subpasta na pasta que você definir, então com `~/worktrees` o caminho de um worktree é `~/worktrees/<project>-<id>/<worktree-name>`. Se a pasta que você definir estiver dentro do projeto, o Desktop a ignora para esse projeto e usa o padrão. Em uma [máquina remota Windows](#windows-remote-machines), o Desktop sempre usa o padrão.1272Cada projeto recebe sua própria subpasta na pasta que você define, portanto, com `~/worktrees`, o caminho de um worktree é `~/worktrees/<project>-<id>/<worktree-name>`. Se a pasta que você definir estiver dentro do projeto, o Desktop a ignora para esse projeto e usa o padrão. Em uma [máquina remota Windows](#windows-remote-machines), o Desktop sempre usa o padrão.

1121 1273 

1122Para definir **Worktree folder** em uma conexão que você adicionou anteriormente ou em uma que sua organização gerencia, passe o mouse sobre ela no menu suspenso de ambiente e clique no ícone de engrenagem.1274Para definir **Worktree folder** em uma conexão que você adicionou anteriormente ou em uma que sua organização gerencia, passe o mouse sobre ela no menu suspenso de ambiente e clique no ícone de engrenagem.

1123 1275 

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

1125 1277 

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

1127 Arquivos e processos na máquina remota1279 Arquivos e processos na máquina remota

1128</h4>1280</h4>

1129 1281 

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

1131 1283 

1132| Pasta | Conteúdo |1284| Pasta | Conteúdo |

1133| - | - |1285| - | - |

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

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

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

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

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

1139 1291 

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

1141 1293 

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

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

1144 1296 

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

1146 1298 

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

1148 1300 

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

1150 1302 

1151<Steps>1303<Steps>

1152 <Step title="Fechar o Desktop">1304 <Step title="Saia do Desktop">

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

1154 </Step>1306 </Step>

1155 1307 

1156 <Step title="Encerrar os processos">1308 <Step title="Encerre os processos">

1157 Com login como esse usuário na máquina remota, execute `kill` com cada ID de processo que o [`pgrep`](#files-and-processes-on-the-remote-machine) listar.1309 Com login como esse usuário na máquina remota, execute `kill` com o ID de cada processo do Claude Code que o [`pgrep`](#files-and-processes-on-the-remote-machine) listar. Depois que eles sumirem da lista, execute `kill` com o ID de cada processo `server`. Se você encerrar um processo `server` primeiro, um comando que o Claude Code está executando pode continuar em execução.

1310 

1311 Em seguida, liste os processos restantes do usuário, por exemplo com `ps -u "$(id -un)" -f`, e encerre qualquer um que você reconheça como iniciado pelo Claude Code. Programas que ele deixou em segundo plano podem continuar em execução depois que ele termina, sem estar na lista do `pgrep`.

1158 </Step>1312 </Step>

1159 1313 

1160 <Step title="Excluir a pasta">1314 <Step title="Exclua a pasta">

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

1162 </Step>1316 </Step>

1163</Steps>1317</Steps>

1164 1318 


1166 Encerrar o processo de uma sessão1320 Encerrar o processo de uma sessão

1167</h5>1321</h5>

1168 1322 

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

1324 

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

1326 

1327<h5 id="see-which-user-the-processes-run-as">

1328 Ver com qual usuário os processos são executados

1329</h5>

1330 

1331O auxiliar e o Claude Code são executados como o usuário com o qual o Desktop faz login via SSH. Instalá-los e iniciá-los não exige `sudo`. Para verificar o usuário, execute `ps -o user= -p` na máquina remota com um ID de processo que o [`pgrep`](#files-and-processes-on-the-remote-machine) listar.

1170 1332 

1171Antes de arquivar uma sessão que tem um worktree, veja [Trabalhar em paralelo com sessões](#work-in-parallel-with-sessions).1333Os programas que o Claude Code inicia, como comandos do shell e servidores MCP, também são iniciados como esse usuário. Revise os direitos desse usuário na máquina remota, incluindo suas regras de `sudo`, como faria para uma pessoa que executa comandos ali.

1172 1334 

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

1174 Ver quem se conectou à máquina remota1336 Ver quem se conectou à máquina remota

1175</h5>1337</h5>

1176 1338 

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

1340 

1341Você não encontrará as conexões SSH do Desktop nas [métricas e eventos](/docs/pt/monitoring-usage#available-metrics-and-events) do Claude Code. Para descobrir a partir deles em qual máquina remota uma sessão SSH executou, consulte [Atribuir telemetria a sessões SSH do Desktop](/docs/pt/monitoring-usage#attribute-telemetry-to-desktop-ssh-sessions). Para o registro do próprio Desktop sobre suas conexões, consulte [Obter os logs do Desktop para um problema de SSH](#get-desktops-logs-for-an-ssh-problem).

1342 

1343<h4 id="connections-that-close-before-login">

1344 Conexões que fecham antes do login

1345</h4>

1346 

1347Se o log do servidor SSH mostrar conexões que fecham antes de qualquer login, elas podem ser testes do Desktop na porta SSH. O Desktop testa se uma máquina responde, por exemplo depois que uma conexão com ela falhou. Ele abre uma conexão com a porta e a fecha imediatamente, sem enviar nada. Espere um teste ou vários seguidos, por exemplo oito em cerca de dois minutos.

1348 

1349Se nada bane ou recusa endereços por causa dessas conexões, você não precisa fazer nada sobre os testes do Desktop. Se um endereço a partir do qual o Desktop se conecta for recusado ou banido, verifique [se o próprio servidor SSH recusa o endereço](#check-whether-the-ssh-server-itself-refuses-the-address) e [se o fail2ban conta os testes do Desktop](#check-whether-fail2ban-counts-desktops-tests).

1350 

1351<h5 id="recognize-a-test-in-the-ssh-server’s-log">

1352 Reconhecer um teste no log do servidor SSH

1353</h5>

1354 

1355Compare as linhas do seu log com as que um servidor OpenSSH no Linux grava para um teste no `LogLevel` padrão, na linha correspondente à versão do seu servidor. Você pode ver as linhas da última coluna em vez disso se a saudação do servidor chegar antes de o Desktop fechar a conexão:

1356 

1357| Versão do OpenSSH | Linhas para um teste | Linhas se a saudação chegar primeiro |

1358| - | - | - |

1359| 6.6 a 7.9 | Uma linha com `Did not receive identification string from 203.0.113.7` | A mesma linha |

1360| 8.0 a 8.2 | `error: kex_exchange_identification: Connection closed by remote host` | `error: kex_exchange_identification: read: Connection reset by peer` |

1361| 8.3 a 9.4 | `error: kex_exchange_identification: Connection closed by remote host`, depois `Connection closed by 203.0.113.7 port 51234` | `error: kex_exchange_identification: read: Connection reset by peer`, depois `Connection reset by 203.0.113.7 port 51234` |

1362| 9.5 a 10.2 | `Connection closed by 203.0.113.7 port 51234` | `error: kex_exchange_identification: read: Connection reset by peer`, depois `Connection reset by 203.0.113.7 port 51234` |

1363| 10.3 a 10.5 | `Connection closed by 203.0.113.7 port 51234 [preauth]` | `error: kex_exchange_identification: read: Connection reset by peer [preauth]`, depois `Connection reset by 203.0.113.7 port 51234 [preauth]` |

1364 

1365Outros programas que abrem a porta e a fecham podem deixar as mesmas linhas. Onde uma linha tiver um endereço, verifique se é um a partir do qual um computador com o Desktop se conecta.

1366 

1367As linhas das versões 8.0 a 8.2 não têm endereço. Para obter um, defina `LogLevel VERBOSE` no `sshd_config` e execute `sshd -T | grep -i loglevel` como root. Se ele imprimir `loglevel VERBOSE`, recarregue o servidor SSH. Depois procure uma linha com `Connection from 203.0.113.7 port 51234` antes da linha do teste.

1368 

1369<a id="check-whether-the-ssh-server-itself-refuses-the-address" />

1370 

1371<h5 id="check-whether-the-ssh-server-itself-refuses-the-address">

1372 Verificar se o próprio servidor SSH recusa o endereço

1373</h5>

1374 

1375Se as conexões forem recusadas a partir de um endereço que muitos computadores com o Desktop compartilham, procure no log do servidor SSH uma linha que termine como esta:

1376 

1377```text theme={null}

1378drop connection #0 from [203.0.113.7]:51234 on [192.0.2.10]:22 penalty: connections without attempting authentication

1379```

1380 

1381Com o `LogLevel` padrão, o OpenSSH 9.8 e posteriores podem gravar essa linha ao recusar um endereço por conexões que fecharam sem tentar fazer login, como fazem os testes do Desktop. Com as configurações padrão, você não vê essa linha apenas após alguns testes.

1382 

1383Para evitar a recusa, defina `PerSourcePenaltyExemptList` no `sshd_config` com os endereços a partir dos quais as pessoas se conectam, por exemplo `PerSourcePenaltyExemptList 203.0.113.7`. O servidor então não aplica nenhuma de suas penalidades a esses endereços, incluindo as de logins com falha. Para verificar o arquivo, execute `sshd -T | grep -i persourcepenalt` como root. Se ele imprimir sua lista, recarregue o servidor SSH.

1384 

1385<a id="check-whether-fail2ban-counts-desktops-tests" />

1386 

1387<h5 id="check-whether-fail2ban-counts-desktop’s-tests">

1388 Verificar se o fail2ban conta os testes do Desktop

1389</h5>

1390 

1391Se o fail2ban 0.10.5 ou posterior baniu um endereço a partir do qual o Desktop se conecta, encontre o modo da sua jail em `jail.conf`, `jail.local` ou em `jail.d/`:

1392 

1393* **Uma linha `filter` que nomeia um modo entre colchetes**, como `filter = sshd[mode=aggressive]`: use esse modo.

1394* **Apenas a linha `filter` padrão**, com `[mode=%(mode)s]`: use a linha `mode`, ou `normal` se não houver nenhuma.

1395 

1396Se o modo for `normal`, o fail2ban não conta as linhas dos testes do Desktop, então procure outra causa para o banimento.

1397 

1398Para outro modo, copie as linhas do seu próprio log para um arquivo na máquina remota. Copie cada linha inteira, da data até o fim, e as duas linhas quando um teste deixa duas. Execute `fail2ban-regex` ali com o arquivo e o modo da sua jail, por exemplo `aggressive`:

1399 

1400```bash theme={null}

1401fail2ban-regex -o ip lines.log "sshd[mode=aggressive]"

1402```

1403 

1404Para cada falha que o fail2ban conta, o comando imprime o endereço em uma linha própria, como `203.0.113.7`. Nesse caso, [evite um banimento](#prevent-a-ban-by-fail2ban). Se ele não imprimir nada, o fail2ban não conta nenhuma dessas linhas nesse modo, então procure outra causa para o banimento.

1405 

1406<a id="prevent-a-ban-by-fail2ban" />

1407 

1408<h5 id="prevent-a-ban-by-fail2ban">

1409 Evitar um banimento pelo fail2ban

1410</h5>

1411 

1412Para impedir que o fail2ban bana um endereço por causa dos testes do Desktop, altere uma de duas configurações da jail, cada uma com um custo:

1413 

1414* **`mode`**: defina-o como `normal` onde quer que sua jail o defina, em uma linha `mode` ou entre os colchetes de uma linha como `filter = sshd[mode=aggressive]`. Você abre mão de todas as contagens que apenas os outros modos fazem, por exemplo de clientes que se conectam e saem sem tentar fazer login.

1415* **`ignoreip`**: defina-o com os endereços a partir dos quais as pessoas se conectam, por exemplo `ignoreip = 203.0.113.7`. O fail2ban então não conta nada desses endereços, incluindo logins com falha.

1178 1416 

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

1180 Usar servidores MCP configurados na máquina remota1418 Usar servidores MCP configurados na máquina remota

1181</h4>1419</h4>

1182 1420 

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

1184 1422 

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

1186 Abrir uma sessão SSH a partir de um link1424 Abrir uma sessão SSH a partir de um link

1187</h4>1425</h4>

1188 1426 

1189Um link `claude://code/new` abre a página de nova sessão do Desktop, e ele pode nomear uma conexão SSH. Coloque esse tipo de link em um runbook, dashboard ou página de wiki para abrir o Desktop configurado para a máquina e a pasta certas. Para plataformas que removem esses links, veja [O link é renderizado como texto simples em vez de ser clicável](/docs/pt/deep-links#the-link-renders-as-plain-text-instead-of-being-clickable).1427Um link `claude://code/new` abre a página de nova sessão do Desktop e pode indicar uma conexão SSH. Coloque esse tipo de link em um runbook, painel ou página wiki para abrir o Desktop configurado para a máquina e a pasta certas. Para plataformas que removem esses links, consulte [O link é exibido como texto simples em vez de ser clicável](/docs/pt/deep-links#the-link-renders-as-plain-text-instead-of-being-clickable).

1190 1428 

1191Links SSH requerem Claude Desktop v2.110.0 ou posterior.1429Links SSH requerem o Claude Desktop v2.110.0 ou posterior.

1192 1430 

1193O link a seguir nomeia o usuário `dev` em `build.example.com`, a porta 2222 e a pasta `/srv/payments`, e preenche um prompt:1431O link a seguir indica o usuário `dev` em `build.example.com`, a porta 2222 e a pasta `/srv/payments`, e preenche um prompt:

1194 1432 

1195```text theme={null}1433```text theme={null}

1196claude://code/new?ssh_host=dev%40build.example.com&ssh_port=2222&ssh_folder=/srv/payments&q=Investigate%20the%20failed%20deploy1434claude://code/new?ssh_host=dev%40build.example.com&ssh_port=2222&ssh_folder=/srv/payments&q=Investigate%20the%20failed%20deploy


1203| `ssh_host` | `host` ou `user@host`, escrito como no campo **SSH host**. O valor não pode começar com `-`, e a parte do host aceita apenas letras, dígitos, `.`, `_`, `:` e `-` |1441| `ssh_host` | `host` ou `user@host`, escrito como no campo **SSH host**. O valor não pode começar com `-`, e a parte do host aceita apenas letras, dígitos, `.`, `_`, `:` e `-` |

1204| `ssh_port` | Um número de porta de 1 a 65535 |1442| `ssh_port` | Um número de porta de 1 a 65535 |

1205| `ssh_folder` | Uma pasta na máquina remota. Comece-a com `/` ou `~/`, ou use `~` |1443| `ssh_folder` | Uma pasta na máquina remota. Comece-a com `/` ou `~/`, ou use `~` |

1206| `q` | Texto codificado em URL para a caixa de prompt |1444| `q` | Texto codificado para URL para a caixa de prompt |

1207 1445 

1208Um alias de `~/.ssh/config` funciona como `ssh_host` apenas para as pessoas que têm essa entrada. Para corresponder a uma conexão que as pessoas já têm, dê ao link o mesmo usuário, host e porta dessa conexão.1446Um alias de `~/.ssh/config` funciona como `ssh_host` apenas para pessoas que têm essa entrada. Para corresponder a uma conexão que as pessoas já têm, forneça ao link o mesmo usuário, host e porta dessa conexão.

1209 1447 

1210Quando você abre o link, o Desktop pede que você confirme antes de selecionar a conexão:1448Quando você abre o link, o Desktop pede que você confirme antes de selecionar a conexão:

1211 1449 

1212* **Uma conexão que você já tem**: se o host, o usuário e a porta corresponderem a uma de suas conexões, o Desktop pergunta se deve usá-la e mostra o nome e o host da conexão, além da pasta, se o link nomear uma.1450* **Uma conexão que você já tem**: se o host, o usuário e a porta corresponderem a uma das suas conexões, o Desktop pergunta se deve usá-la e mostra o nome e o host da conexão, e a pasta, se o link indicar uma.

1213* **Uma nova conexão**: caso contrário, o Desktop abre o diálogo para adicionar uma conexão SSH. Quando você adiciona a conexão, o Desktop pergunta se deve se conectar antes de salvar qualquer coisa e mostra o host do link, além da porta e da pasta, se o link as nomear.1451* **Uma nova conexão**: caso contrário, o Desktop abre a caixa de diálogo para adicionar uma conexão SSH. Quando você adiciona a conexão, o Desktop pergunta se deve se conectar antes de salvar qualquer coisa e mostra o host do link, e a porta e a pasta, se o link as indicar.

1214 1452 

1215Até que você confirme, o Desktop não salva o host, a porta ou a pasta do link, e não seleciona nem abre uma conexão com eles. Se uma conexão SSH já estiver selecionada, a página de nova sessão ainda pode se conectar a ela por conta própria, como faz sem um link, mesmo quando o link nomeia o mesmo host. Um link não pode conter um arquivo de chave, uma senha ou um comando.1453Até que você confirme, o Desktop não salva o host, a porta ou a pasta do link, e não seleciona nem abre uma conexão com eles. Se uma conexão SSH já estiver selecionada, a página de nova sessão ainda pode se conectar a ela sozinha, como faz sem um link, mesmo quando o link indica o mesmo host. Um link não pode conter um arquivo de chave, uma senha ou um comando.

1216 1454 

1217Qualquer pessoa pode escrever um link, então verifique o que ele preencheu:1455Qualquer pessoa pode escrever um link, portanto verifique o que ele preencheu:

1218 1456 

1219* **Antes de confirmar**: verifique o host e a pasta.1457* **Antes de confirmar**: verifique o host e a pasta.

1220* **Antes de enviar**: verifique o prompt e o ambiente selecionado.1458* **Antes de enviar**: verifique o prompt e o ambiente selecionado.

1221 1459 

1222O Desktop preenche o prompt quando o link é aberto, no lugar de qualquer texto que você ainda não enviou, e nunca o envia por você. Ele trata o prompt como texto simples, então um `/` ou `!` no início e uma menção de arquivo com `@` não funcionam como comando ou menção. Se você cancelar, o prompt permanece na caixa e o ambiente que você tinha selecionado não muda.1460O Desktop preenche o prompt quando o link é aberto, no lugar de qualquer texto que você ainda não enviou, e nunca o envia por você. Ele trata o prompt como texto simples, portanto um `/` ou `!` inicial e uma menção de arquivo com `@` não funcionam como comando ou menção. Se você cancelar, o prompt permanece na caixa e o ambiente que você havia selecionado não muda.

1223 1461 

1224Um link não contorna a [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to). O Desktop verifica a allowlist quando se conecta.1462Um link não contorna a [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to). O Desktop verifica a allowlist ao se conectar.

1225 1463 

1226Se o link abrir o Desktop sem um diálogo sobre a conexão, procure uma destas causas:1464Se o link abrir o Desktop sem uma caixa de diálogo sobre a conexão, procure uma destas causas:

1227 1465 

1228* **Você não está conectado à sua conta**: faça login e abra o link novamente.1466* **Você está desconectado**: faça login e abra o link novamente.

1229* **Outro diálogo está aberto**: feche-o e abra o link novamente.1467* **Outra caixa de diálogo está aberta**: feche-a e abra o link novamente.

1230* **O link não é válido**: o Desktop mostra uma mensagem que diz o que corrigir e não preenche o prompt.1468* **O link não é válido**: o Desktop mostra uma mensagem que diz o que corrigir e não preenche o prompt.

1231* **O Desktop é anterior à v2.110.0**: versões anteriores ignoram os parâmetros SSH e abrem a página de nova sessão apenas com o prompt.1469* **O Desktop é anterior à v2.110.0**: versões anteriores ignoram os parâmetros SSH e abrem a página de nova sessão apenas com o prompt.

1232* **As sessões SSH estão desativadas**: se seu administrador definir a allowlist como um array vazio, o Desktop recusa links SSH.1470* **As sessões SSH estão desativadas**: se seu administrador definir a allowlist como um array vazio, o Desktop recusa links SSH.

1233 1471 

1234<h4 id="pre-configure-ssh-connections-for-your-team">1472<h4 id="pre-configure-ssh-connections-for-your-team">

1235 Pre-configure SSH connections for your team1473 Pré-configurar conexões SSH para sua equipe

1236</h4>1474</h4>

1237 1475 

1238Administradores podem distribuir conexões SSH para membros da equipe definindo `sshConfigs` nas [configurações gerenciadas](/docs/pt/managed-settings). Conexões definidas desta forma aparecem no menu suspenso de ambiente de cada usuário automaticamente e são mostradas como gerenciadas. Os usuários podem selecioná-las e [definir sua própria **Worktree folder**](#choose-where-ssh-session-worktrees-go) para elas, mas não podem editar mais nada nem deletá-las no aplicativo.1476Os administradores podem distribuir conexões SSH aos membros da equipe definindo `sshConfigs` nas [configurações gerenciadas](/docs/pt/managed-settings). As conexões definidas dessa forma aparecem automaticamente no menu suspenso de ambiente de cada usuário e são mostradas como gerenciadas. Os usuários podem selecioná-las e [definir sua própria **Worktree folder**](#choose-where-ssh-session-worktrees-go) para elas, mas não podem editar mais nada nem excluí-las no aplicativo.

1239 1477 

1240O exemplo a seguir pré-configura uma única conexão:1478O exemplo a seguir pré-configura uma única conexão:

1241 1479 


1255 1493 

1256Cada entrada requer `id`, `name` e `sshHost`. Os campos `sshPort` e `sshIdentityFile` são opcionais. Os usuários também podem adicionar `sshConfigs` ao seu próprio `~/.claude/settings.json`.1494Cada entrada requer `id`, `name` e `sshHost`. Os campos `sshPort` e `sshIdentityFile` são opcionais. Os usuários também podem adicionar `sshConfigs` ao seu próprio `~/.claude/settings.json`.

1257 1495 

1258Se você omitir `user@` em `sshHost`, o Desktop se conecta como o `User` que o `~/.ssh/config` de cada desenvolvedor define para o host ou, caso contrário, como o nome de usuário dele em seu próprio computador.1496Se você omitir `user@` em `sshHost`, o Desktop se conecta como o `User` que o `~/.ssh/config` de cada desenvolvedor define para o host, ou então como o nome de usuário dele no próprio computador.

1259 1497 

1260<h4 id="restrict-which-ssh-hosts-users-can-connect-to">1498<h4 id="restrict-which-ssh-hosts-users-can-connect-to">

1261 Restrict which SSH hosts users can connect to1499 Restringir a quais hosts SSH os usuários podem se conectar

1262</h4>1500</h4>

1263 1501 

1264Administradores podem limitar as sessões SSH do Desktop a um conjunto aprovado de hosts definindo `sshHostAllowlist` nas [configurações gerenciadas](/docs/pt/managed-settings). Quando definido, os usuários podem se conectar apenas a hosts cujo nome de host resolvido corresponde a um dos padrões. Defina-o como um array vazio para desabilitar sessões SSH. A [entrada de referência de `sshHostAllowlist`](/docs/pt/settings-reference#sshhostallowlist) explica como um array vazio se combina com listas em outras fontes gerenciadas.1502Os administradores podem limitar as sessões SSH do Desktop a um conjunto aprovado de hosts definindo `sshHostAllowlist` nas [configurações gerenciadas](/docs/pt/managed-settings). Quando definida, os usuários só podem se conectar a hosts cujo nome de host resolvido corresponda a um dos padrões. Defina-a como um array vazio para desativar as sessões SSH. A [entrada de referência de `sshHostAllowlist`](/docs/pt/settings-reference#sshhostallowlist) explica como um array vazio se combina com listas de outras fontes gerenciadas.

1265 1503 

1266O exemplo a seguir permite conexões a qualquer host sob `devboxes.example.com` e a um único host bastion nomeado:1504O exemplo a seguir permite conexões a qualquer host em `devboxes.example.com` e a um único bastion host nomeado:

1267 1505 

1268```json theme={null}1506```json theme={null}

1269{1507{


1272```1510```

1273 1511 

1274<Warning>1512<Warning>

1275 Se sua organização fornece [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings), defina `sshHostAllowlist` lá. Por padrão, o Desktop lê a chave apenas da [fonte gerenciada de maior prioridade que fornece uma chave de política](/docs/pt/managed-settings#how-claude-code-combines-managed-sources). Se essa fonte deixar a chave sem definição, o Desktop ignora uma lista em uma política MDM ou arquivo de configurações gerenciadas de prioridade inferior e trata a chave como [não definida](/docs/pt/settings-reference#sshhostallowlist). O Desktop não mostra nenhum aviso.1513 Se sua organização fornece [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings), defina `sshHostAllowlist` ali. Por padrão, o Desktop lê a chave apenas da [fonte gerenciada de maior prioridade que fornece uma chave de política](/docs/pt/managed-settings#how-claude-code-combines-managed-sources). Se essa fonte deixar a chave indefinida, o Desktop ignora uma lista em uma política MDM ou arquivo de configurações gerenciadas de menor prioridade e trata a chave como [indefinida](/docs/pt/settings-reference#sshhostallowlist). O Desktop não mostra nenhum aviso.

1276 1514 

1277 Mantenha também a mesma lista na máquina de cada usuário, na política MDM ou no arquivo de configurações gerenciadas de maior prioridade ali. O Desktop busca as configurações gerenciadas pelo servidor na inicialização e não mantém nenhuma cópia em cache, então, até que uma busca seja bem-sucedida, a lista da máquina é a que se aplica.1515 Mantenha também a mesma lista na máquina de cada usuário, na política MDM ou no arquivo de configurações gerenciadas de maior prioridade ali. O Desktop busca as configurações gerenciadas pelo servidor na inicialização e não mantém nenhuma cópia em cache, portanto, até que uma busca seja bem-sucedida, a lista da máquina é a que se aplica.

1278</Warning>1516</Warning>

1279 1517 

1280Padrões são insensíveis a maiúsculas e minúsculas. `*` corresponde a qualquer host, e `*.example.com` corresponde a `example.com` e qualquer subdomínio. Qualquer outra coisa é uma correspondência exata. A verificação é executada contra o nome de host após resolução `~/.ssh/config` via `ssh -G`, portanto entradas `Host` aliases e `ProxyCommand`/`ProxyJump` são permitidas desde que o `HostName` resolvido corresponda.1518Os padrões não diferenciam maiúsculas de minúsculas. `*` corresponde a qualquer host, e `*.example.com` corresponde a `example.com` e a qualquer subdomínio. Qualquer outra coisa é uma correspondência exata. A verificação é feita no nome de host após a resolução de `~/.ssh/config` via `ssh -G`, portanto aliases de `Host` e entradas `ProxyCommand`/`ProxyJump` são permitidos desde que o `HostName` resolvido corresponda.

1281 1519 

1282`sshHostAllowlist` é lido apenas de managed settings; valores em configurações de usuário ou projeto são ignorados. Apenas o aplicativo Claude Desktop honra esta configuração; a CLI Claude Code e extensões IDE não a leem, e não restringe comandos `ssh` executados através da ferramenta Bash. Governa quais hosts o aplicativo Desktop se conecta, não saída de rede, portanto combine-o com controles de rede ou zero-trust da sua organização se você precisar de um limite rígido.1520`sshHostAllowlist` é lida apenas das configurações gerenciadas; valores nas configurações de usuário ou de projeto são ignorados. Apenas o aplicativo Claude Desktop respeita essa configuração; a CLI do Claude Code e as extensões de IDE não a leem, e ela não restringe comandos `ssh` executados por meio da ferramenta Bash. Ela controla a quais hosts o aplicativo Desktop se conecta, não o tráfego de saída da rede, portanto combine-a com os controles de rede ou de zero trust da sua organização se precisar de um limite rígido.

1283 1521 

1284<h4 id="turn-off-local-sessions-and-distribute-ssh-connections">1522<h4 id="turn-off-local-sessions-and-distribute-ssh-connections">

1285 Desativar sessões locais e distribuir conexões SSH1523 Desativar sessões locais e distribuir conexões SSH

1286</h4>1524</h4>

1287 1525 

1288Para desativar sessões locais e limitar as sessões SSH aos hosts que você escolher, implante [`disableDesktopLocalSessions`](/docs/pt/settings-reference#disabledesktoplocalsessions), [`sshConfigs`](#pre-configure-ssh-connections-for-your-team) e [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to) juntos.1526Para desativar as sessões locais e limitar as sessões SSH aos hosts que você escolher, implante [`disableDesktopLocalSessions`](/docs/pt/settings-reference#disabledesktoplocalsessions), [`sshConfigs`](#pre-configure-ssh-connections-for-your-team) e [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to) em conjunto.

1289 1527 

1290<Note>1528<Note>

1291 Esta configuração é para usuários que fazem login com uma conta Claude. Com um [provedor de terceiros](/docs/pt/third-party-integrations), as sessões SSH ficam desativadas por padrão, e definir `sshHostAllowlist` pode ativá-las. Leia [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions) antes de implantar essas chaves.1529 Esta configuração é para usuários que fazem login com uma conta Claude. Com um [provedor terceirizado](/docs/pt/third-party-integrations), as sessões SSH ficam desativadas por padrão, e definir `sshHostAllowlist` pode ativá-las. Leia [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions) antes de implantar essas chaves.

1292</Note>1530</Note>

1293 1531 

1294O exemplo a seguir desativa as sessões locais, adiciona uma conexão e limita as sessões SSH ao host dessa conexão:1532O exemplo a seguir desativa as sessões locais, adiciona uma conexão e limita as sessões SSH ao host dessa conexão:


1307}1545}

1308```1546```

1309 1547 

1310As chaves se aplicam ao aplicativo desktop. Elas não alteram outras formas de executar Claude Code, como a CLI, o Cowork e as sessões na nuvem:1548As chaves se aplicam ao aplicativo desktop. Elas deixam inalteradas outras formas de executar o Claude Code, como a CLI, o Cowork e as sessões na nuvem:

1311 1549 

1312* **A CLI**: nenhuma das chaves impede um desenvolvedor de executar a CLI do Claude Code em seu próprio computador1550* **A CLI**: nenhuma das chaves impede que um desenvolvedor execute a CLI do Claude Code no próprio computador

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

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

1315 1553 

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

1317 1555 

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

1319* **Versão**: `disableDesktopLocalSessions` requer Claude Desktop v1.37937.0 ou posterior1557* **Versão**: `disableDesktopLocalSessions` requer o Claude Desktop v1.37937.0 ou posterior

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

1321 1559 

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

1323 1561 

1324Para confirmar que as configurações se aplicam, verifique o computador de um desenvolvedor:1562Para confirmar que as configurações se aplicam, verifique o computador de um desenvolvedor:

1325 1563 

1326<Steps>1564<Steps>

1327 <Step title="Verificar o menu suspenso de ambiente">1565 <Step title="Verifique o menu suspenso de ambiente">

1328 Feche e reabra o Desktop e, em seguida, abra o menu suspenso de ambiente na caixa de prompt. **Local** fica acinzentado, e **Shared Dev VM** aparece em **SSH**. Se **Local** ainda estiver disponível, verifique a versão do Desktop, se o arquivo é um JSON válido e qual fonte gerenciada o computador lê.1566 Saia do Desktop e abra-o novamente, depois abra o menu suspenso de ambiente na caixa de prompt. **Local** fica esmaecido, e **Shared Dev VM** aparece em **SSH**. Se **Local** ainda estiver disponível, verifique a versão do Desktop, se o arquivo é um JSON válido e qual fonte gerenciada o computador lê.

1329 </Step>1567 </Step>

1330 1568 

1331 <Step title="Adicionar um host que não está na allowlist">1569 <Step title="Adicione um host que não está na allowlist">

1332 [Adicione uma conexão SSH](#ssh-sessions) com um nome de host que não está na allowlist, como `other.example.com`. O Desktop salva a conexão, mas se recusa a conectar e informa que as configurações da sua organização não permitem a conexão.1570 [Adicione uma conexão SSH](#ssh-sessions) com um nome de host que não está na allowlist, como `other.example.com`. O Desktop salva a conexão, mas se recusa a se conectar, e informa que as configurações da sua organização não permitem a conexão.

1333 </Step>1571 </Step>

1334</Steps>1572</Steps>

1335 1573 


1682 1920 

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

1684 1922 

1923<a id="get-desktops-logs-for-an-ssh-problem" />

1924 

1925<h3 id="get-desktop’s-logs-for-an-ssh-problem">

1926 Obter os logs do Desktop para um problema de SSH

1927</h3>

1928 

1929Você obtém o `ssh.log`, o registro do Desktop de suas conexões SSH, em um arquivo zip com os logs do Desktop que você salva a partir do menu **Help**. Para salvá-lo, abra **Help > Troubleshooting** e selecione o item correspondente ao seu sistema:

1930 

1931* **macOS**: **Show Logs in Finder**

1932* **Windows**: **Show Logs in File Explorer**

1933* **Linux**: **Show Logs in File Manager**

1934 

1935Examine os arquivos antes de enviá-los, pois eles podem incluir nomes e outros detalhes do seu ambiente. `<host>` e `<user>` representam nomes que o Desktop substituiu. O Desktop não substitui todos os nomes, e um nome de host ou de usuário SSH ainda pode aparecer como foi escrito. Se você enviar o arquivo zip para alguém, informe qual host falhou e quando, pois os logs podem não mencioná-lo.

1936 

1937O arquivo zip não contém o log do programa auxiliar que o Desktop instala na máquina remota. Para obter esse log também, copie o `remote-server.log` da pasta do programa auxiliar em [`~/.claude/remote/run/`](#files-and-processes-on-the-remote-machine) no diretório pessoal do usuário que se conectou. Examine esse arquivo também antes de enviá-lo.

1938 

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

1686 Aplicativo não quer sair1940 Aplicativo não quer sair

1687</h3>1941</h3>

env-vars.md +4 −2

Details

225| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Defina como `0` para impedir que o Claude Code abra o navegador automaticamente quando um novo [artefato](/docs/pt/artifacts#create-an-artifact) for publicado |225| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Defina como `0` para impedir que o Claude Code abra o navegador automaticamente quando um novo [artefato](/docs/pt/artifacts#create-an-artifact) for publicado |

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

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

228| `CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS` | Defina como `0` para impedir que o Claude aplique pequenas alterações ao arquivo de um [artefato](/docs/pt/artifacts#update-an-artifact) 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 |

228| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Defina como `0` para omitir o [bloco de atribuição](/docs/pt/llm-gateway-protocol#system-prompt-attribution-block), que contém a versão do cliente e uma impressão digital do prompt, do início do system prompt. O cache em uma conexão direta com a API da Anthropic 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](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) mesmo quando você define `0`. Em [Bloco de atribuição do system prompt](/docs/pt/llm-gateway-protocol#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 em conexões do Microsoft Foundry; portanto, nessas versões, defina-a como `0` quando o seu gateway de LLM fizer cache com base no corpo da requisição ou encaminhar requisições para um provedor de terceiros, ou quando você se conectar diretamente ao Microsoft Foundry |229| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Defina como `0` para omitir o [bloco de atribuição](/docs/pt/llm-gateway-protocol#system-prompt-attribution-block), que contém a versão do cliente e uma impressão digital do prompt, do início do system prompt. O cache em uma conexão direta com a API da Anthropic 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](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) mesmo quando você define `0`. Em [Bloco de atribuição do system prompt](/docs/pt/llm-gateway-protocol#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 em conexões do Microsoft Foundry; portanto, nessas versões, defina-a como `0` quando o seu gateway de LLM fizer cache com base no corpo da requisição ou encaminhar requisições para um provedor de terceiros, ou quando você se conectar diretamente ao Microsoft Foundry |

229| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Removida na v2.1.283. Use `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` |230| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Removida na v2.1.283. Use `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` |

230| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Define a [janela de compactação automática](/docs/pt/model-config#set-the-auto-compact-window) em tokens, de `100000` a `1000000`. Aceita apenas um inteiro simples, como `500000`: um valor como `500k` é lido como `500` e é ajustado ao mínimo de 100K. A janela efetiva também é limitada à janela de contexto do modelo. Tem precedência sobre o comando `/autocompact`, a flag `--autocompact` e a configuração `autoCompactWindow`. O `used_percentage` da linha de status sempre é medido em relação à janela de contexto completa do modelo; portanto, depois que esta variável é definida, essa porcentagem deixa de indicar quando a compactação será executada |231| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Define a [janela de compactação automática](/docs/pt/model-config#set-the-auto-compact-window) em tokens, de `100000` a `1000000`. Aceita apenas um inteiro simples, como `500000`: um valor como `500k` é lido como `500` e é ajustado ao mínimo de 100K. A janela efetiva também é limitada à janela de contexto do modelo. Tem precedência sobre o comando `/autocompact`, a flag `--autocompact` e a configuração `autoCompactWindow`. O `used_percentage` da linha de status sempre é medido em relação à janela de contexto completa do modelo; portanto, depois que esta variável é definida, essa porcentagem deixa de indicar quando a compactação será executada |


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

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

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

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

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

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

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


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

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

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

485| `ENABLE_TOOL_SEARCH` | Controla o [MCP Tool Search](/docs/pt/mcp#scale-with-mcp-tool-search). Sem definição, o Claude Code adia todas as ferramentas MCP por padrão e, em vez disso, as carrega antecipadamente quando `ANTHROPIC_BASE_URL` aponta para um host que não é primário. `true` as mantém adiadas também nesse tipo de host. `auto` carrega antecipadamente quando as definições de ferramentas cabem em 10% do contexto. `auto:N` define um limite personalizado, como `auto:5` para 5%. `false` carrega todas as ferramentas antecipadamente. Para os modelos e implantações que carregam todas as ferramentas antecipadamente independentemente deste valor, consulte [Configurar a busca de ferramentas](/docs/pt/mcp#configure-tool-search) |486| `ENABLE_TOOL_SEARCH` | Controla o [MCP Tool Search](/docs/pt/mcp#scale-with-mcp-tool-search). Sem definição, o Claude Code adia todas as ferramentas MCP por padrão e, em vez disso, as carrega antecipadamente quando `ANTHROPIC_BASE_URL` aponta para um host que não é próprio da Anthropic. `true` as mantém adiadas também nesse tipo de host. `auto` carrega antecipadamente quando as definições de ferramentas cabem em 10% do contexto. `auto:N` define um limite personalizado, como `auto:5` para 5%. `false` carrega todas as ferramentas antecipadamente. Para os modelos e implantações que carregam todas as ferramentas antecipadamente independentemente deste valor, consulte [Configurar a busca de ferramentas](/docs/pt/mcp#configure-tool-search) |

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

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

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


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

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

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

602* Ver o que um [mod](/docs/pt/plugins/mods/overview#where-mods-run) desenha no painel de chat da extensão do VS Code; os hooks do mod ainda são executados

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

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

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

errors.md +201 −9

Details

72| `Claude.ai login was rejected — run /login, then /remote-control` | [Authentication](#remote-control-couldnt-refresh-your-login) |72| `Claude.ai login was rejected — run /login, then /remote-control` | [Authentication](#remote-control-couldnt-refresh-your-login) |

73| `OAuth token unavailable — run /login to restore Remote Control` | [Authentication](#remote-control-couldnt-refresh-your-login) |73| `OAuth token unavailable — run /login to restore Remote Control` | [Authentication](#remote-control-couldnt-refresh-your-login) |

74| `Signed out of Claude — run /login, then /remote-control` | [Authentication](#remote-control-couldnt-refresh-your-login) |74| `Signed out of Claude — run /login, then /remote-control` | [Authentication](#remote-control-couldnt-refresh-your-login) |

75| `Remote Control could not renew this computer's connection` | [Authentication](#remote-control-could-not-renew-this-computers-connection) |

75| `signed-in claude.ai account or organization changed on this machine` | [Authentication](#remote-control-stopped-because-the-signed-in-account-changed) |76| `signed-in claude.ai account or organization changed on this machine` | [Authentication](#remote-control-stopped-because-the-signed-in-account-changed) |

76| `Remote Control stopped — the app running this session is now signed in to a different Claude account` | [Authentication](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |77| `Remote Control stopped — the app running this session is now signed in to a different Claude account` | [Authentication](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |

77| `Remote Control stopped — the app running this session is signed out of Claude` | [Authentication](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |78| `Remote Control stopped — the app running this session is signed out of Claude` | [Authentication](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |


153| `Request too large` | [Request errors](#request-too-large) |154| `Request too large` | [Request errors](#request-too-large) |

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

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

157| `API Error: an image in the conversation could not be processed and was removed` | [Request errors](#image-was-too-large) |

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

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

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


179| `Effort '<level>' isn't available with thinking turned off on this model` | [Request errors](#effort-isnt-available-with-thinking-turned-off) |181| `Effort '<level>' isn't available with thinking turned off on this model` | [Request errors](#effort-isnt-available-with-thinking-turned-off) |

180| `effort '<level>' is not supported when thinking is disabled` | [Request errors](#effort-isnt-available-with-thinking-turned-off) |182| `effort '<level>' is not supported when thinking is disabled` | [Request errors](#effort-isnt-available-with-thinking-turned-off) |

181| `max_tokens must be greater than thinking.budget_tokens` | [Request errors](#thinking-budget-exceeds-output-limit) |183| `max_tokens must be greater than thinking.budget_tokens` | [Request errors](#thinking-budget-exceeds-output-limit) |

184| `Claude's response exceeded the ... output token maximum` | [Request errors](#response-exceeded-the-output-token-maximum) |

182| `API Error: 400 due to tool use concurrency issues` | [Request errors](#tool-use-or-thinking-block-mismatch) |185| `API Error: 400 due to tool use concurrency issues` | [Request errors](#tool-use-or-thinking-block-mismatch) |

183| `API Error: 400 orphaned tool_result in conversation history` | [Request errors](#tool-use-or-thinking-block-mismatch) |186| `API Error: 400 orphaned tool_result in conversation history` | [Request errors](#tool-use-or-thinking-block-mismatch) |

184| `API Error: 400 duplicate tool_use ID in conversation history` | [Request errors](#tool-use-or-thinking-block-mismatch) |187| `API Error: 400 duplicate tool_use ID in conversation history` | [Request errors](#tool-use-or-thinking-block-mismatch) |


199| `The connection dropped while downloading the update` | [Troubleshoot installation and login](/docs/pt/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |202| `The connection dropped while downloading the update` | [Troubleshoot installation and login](/docs/pt/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |

200| `Download timed out: exceeded the total deadline` | [Troubleshoot installation and login](/docs/pt/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |203| `Download timed out: exceeded the total deadline` | [Troubleshoot installation and login](/docs/pt/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |

201| `--bg and --print conflict` | [Command-line errors](#conflict-between-bg-and-print) |204| `--bg and --print conflict` | [Command-line errors](#conflict-between-bg-and-print) |

205| `Couldn't tell whether --bg is a flag or text here, so nothing was started` | [Command-line errors](#couldnt-tell-whether-bg-is-a-flag-or-text) |

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

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

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


217| `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) |221| `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) |

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

219| `` `<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) |223| `` `<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) |

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

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

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

222| `Could not import <server>: <reason>` | [Command-line errors](#could-not-import-a-server-from-claude-desktop) |227| `Could not import <server>: <reason>` | [Command-line errors](#could-not-import-a-server-from-claude-desktop) |


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

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

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

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

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

237| `Claude Code can't read the keyboard here: stdin is not a terminal` | [Command-line errors](#claude-code-cant-read-the-keyboard-here) |243| `Claude Code can't read the keyboard here: stdin is not a terminal` | [Command-line errors](#claude-code-cant-read-the-keyboard-here) |

238| `Error: Input contained only whitespace` | [Command-line errors](#input-contained-only-whitespace) |244| `Error: Input contained only whitespace` | [Command-line errors](#input-contained-only-whitespace) |


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

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

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

376| `Instruction file not loaded` | [Configuration warnings](#instruction-file-not-loaded) |

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

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

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


377| `Your organization's managed settings allow Claude Code to use: <providers>` | [Configuration warnings](#managed-settings-dont-allow-this-api-provider) |384| `Your organization's managed settings allow Claude Code to use: <providers>` | [Configuration warnings](#managed-settings-dont-allow-this-api-provider) |

378| `Your organization's managed settings allow Claude Code to use no API provider at all` | [Configuration warnings](#managed-settings-dont-allow-this-api-provider) |385| `Your organization's managed settings allow Claude Code to use no API provider at all` | [Configuration warnings](#managed-settings-dont-allow-this-api-provider) |

379| `MCP server <name> is blocked by enterprise managed policy` | [Configuration warnings](#mcp-server-is-blocked-by-enterprise-managed-policy) |386| `MCP server <name> is blocked by enterprise managed policy` | [Configuration warnings](#mcp-server-is-blocked-by-enterprise-managed-policy) |

387| `"<name>" is a reserved MCP server name and was not loaded` | [Configuration warnings](#mcp-server-name-is-reserved) |

380| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [Configuration warnings](#managed-settings-document-could-not-be-parsed) |388| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [Configuration warnings](#managed-settings-document-could-not-be-parsed) |

381| `Managed settings drop-in directory could not be read` | [Configuration warnings](#managed-settings-document-could-not-be-parsed) |389| `Managed settings drop-in directory could not be read` | [Configuration warnings](#managed-settings-document-could-not-be-parsed) |

382| `Unable to read managed policy settings` | [Configuration warnings](#unable-to-read-managed-policy-settings) |390| `Unable to read managed policy settings` | [Configuration warnings](#unable-to-read-managed-policy-settings) |

391| `Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded; fix or remove each entry:` | [Configuration warnings](#managed-settings-hooks-not-loaded) |

383| `otelHeadersHelper failed; telemetry is not being exported. See /status: ...` | [Configuration warnings](#otelheadershelper-failed) |392| `otelHeadersHelper failed; telemetry is not being exported. See /status: ...` | [Configuration warnings](#otelheadershelper-failed) |

384| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [Configuration warnings](#crosssessioninbound-must-be-one-of-accept-hold-refuse) |393| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [Configuration warnings](#crosssessioninbound-must-be-one-of-accept-hold-refuse) |

385| `API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name` | [Configuration warnings](#anthropic-foundry-resource-must-be-a-foundry-resource-name) |394| `API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name` | [Configuration warnings](#anthropic-foundry-resource-must-be-a-foundry-resource-name) |


389| `... has a wildcard before the rest of the command` | [Configuration warnings](#has-a-wildcard-before-the-rest-of-the-command) |398| `... has a wildcard before the rest of the command` | [Configuration warnings](#has-a-wildcard-before-the-rest-of-the-command) |

390| `Denying Bash also turns off the PowerShell tool, so Claude has neither` | [Configuration warnings](#denying-bash-also-turns-off-the-powershell-tool) |399| `Denying Bash also turns off the PowerShell tool, so Claude has neither` | [Configuration warnings](#denying-bash-also-turns-off-the-powershell-tool) |

391| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [Configuration warnings](#the-200k-limit-isnt-enforced) |400| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [Configuration warnings](#the-200k-limit-isnt-enforced) |

401| `Model "<model>" isn't recognized · context assumed to be 200k tokens` | [Correct the window for a gateway or custom model ID](/docs/pt/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

402| `Claude Code doesn't recognize the model "<model>", so it assumes a context window of 200k tokens` | [Correct the window for a gateway or custom model ID](/docs/pt/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

392| `[claude-code:unrecognized_model]` | [Configuration warnings](#unrecognized-model-id-on-a-request) |403| `[claude-code:unrecognized_model]` | [Configuration warnings](#unrecognized-model-id-on-a-request) |

404| `is ignored — managed settings set allowManagedReadPathsOnly` / `is ignored — managed settings set allowManagedDomainsOnly` | [Configuration warnings](#sandbox-allow-entries-are-ignored-under-a-managed-lock) |

393| `Stale sandbox mask files left by a killed session` | [Configuration warnings](#stale-sandbox-mask-files-left-by-a-killed-session) |405| `Stale sandbox mask files left by a killed session` | [Configuration warnings](#stale-sandbox-mask-files-left-by-a-killed-session) |

394| As respostas parecem ter qualidade inferior ao normal | [Response quality](#responses-seem-lower-quality-than-usual) |406| As respostas parecem ter qualidade inferior ao normal | [Response quality](#responses-seem-lower-quality-than-usual) |

395 407 


1209 1221 

1210Antes da v2.1.238, o Claude Code relatava os casos que agora dizem `Signed out of Claude` como `JWT refresh failed: no OAuth token — run /login` e interrompia o Remote Control com `Claude.ai login expired — run /login to restore Remote Control` assim que uma atualização de login ficava sem resposta.1222Antes da v2.1.238, o Claude Code relatava os casos que agora dizem `Signed out of Claude` como `JWT refresh failed: no OAuth token — run /login` e interrompia o Remote Control com `Claude.ai login expired — run /login to restore Remote Control` assim que uma atualização de login ficava sem resposta.

1211 1223 

1224<h3 id="remote-control-could-not-renew-this-computers-connection">

1225 Remote Control could not renew this computer's connection

1226</h3>

1227 

1228Este aviso aparece no terminal que executa [`claude remote-control`](/docs/pt/remote-control#start-a-remote-control-session) quando o servidor não consegue usar seu login claude.ai para renovar a credencial da conexão antes que ela expire. A última frase do aviso diz por quanto tempo a credencial atual ainda funciona, ou que ela já expirou:

1229 

1230```text theme={null}

1231Remote Control could not renew this computer's connection: claude.ai did not accept the sign-in it uses. Run `claude /login` to sign in again. The connection keeps working for about 26 hours; if it still cannot sign in then, it stops.

1232```

1233 

1234**O que fazer:**

1235 

1236* Se o aviso disser para executar `claude /login`, abra outro terminal na máquina que executa o servidor, execute `claude /login` ali e faça login com sua conta claude.ai

1237* Se o servidor ainda não conseguir fazer login depois que a credencial da conexão expirar, ele imprime um erro contendo `Poll: Authentication failed (401)` e para. Faça login novamente conforme indica a segunda frase do aviso e, em seguida, execute `claude remote-control` novamente no terminal em que o servidor parou.

1238 

1212<h3 id="remote-control-stopped-because-the-signed-in-account-changed">1239<h3 id="remote-control-stopped-because-the-signed-in-account-changed">

1213 Remote Control stopped because the signed-in account changed1240 Remote Control stopped because the signed-in account changed

1214</h3>1241</h3>


2279* Desabilite servidores MCP que você não está usando com `/mcp disable <name>` para remover suas definições de ferramentas do contexto2306* Desabilite servidores MCP que você não está usando com `/mcp disable <name>` para remover suas definições de ferramentas do contexto

2280* Reduza arquivos de memória `CLAUDE.md` grandes ou mova instruções para [regras com escopo de caminho](/docs/pt/memory#path-specific-rules) que carregam apenas quando relevante2307* Reduza arquivos de memória `CLAUDE.md` grandes ou mova instruções para [regras com escopo de caminho](/docs/pt/memory#path-specific-rules) que carregam apenas quando relevante

2281* A compactação automática está ativada por padrão e normalmente previne esse erro. Se você a desativou em `/config` ou com [`DISABLE_AUTO_COMPACT`](/docs/pt/env-vars), ative-a novamente. Se você mantê-la desativada, execute `/compact` você mesmo antes da janela se encher.2308* A compactação automática está ativada por padrão e normalmente previne esse erro. Se você a desativou em `/config` ou com [`DISABLE_AUTO_COMPACT`](/docs/pt/env-vars), ative-a novamente. Se você mantê-la desativada, execute `/compact` você mesmo antes da janela se encher.

2309* Se o erro aparecer perto de 200K tokens em um modelo que aceita mais, uma causa é um ID de modelo que o Claude Code não reconhece. O Claude Code assume uma janela de 200K para esse ID, então, para continuar trabalhando além desse ponto, [informe a janela de contexto real do modelo](/docs/pt/model-config#correct-the-window-for-a-gateway-or-custom-model-id).

2282 2310 

2283Veja [Explore a janela de contexto](/docs/pt/context-window) para uma visualização interativa de como o contexto se preenche.2311Veja [Explore a janela de contexto](/docs/pt/context-window) para uma visualização interativa de como o contexto se preenche.

2284 2312 


2340```text theme={null}2368```text theme={null}

2341Image was too large. Double press esc to go back and try again with a smaller image.2369Image was too large. Double press esc to go back and try again with a smaller image.

2342API Error: 400 ... image dimensions exceed max allowed size2370API Error: 400 ... image dimensions exceed max allowed size

2371API Error: an image in the conversation could not be processed and was removed.

2343```2372```

2344 2373 

2345Claude Code substitui a imagem não processável por um espaço reservado de texto e tenta novamente, então mensagens subsequentes têm sucesso. Em versões anteriores a 2.1.142, uma imagem colada poderia permanecer na conversa e repetir o mesmo erro em cada mensagem subsequente. Para se recuperar nessas versões, pressione Esc duas vezes e volte além do turno onde a imagem foi adicionada.2374A linha `could not be processed and was removed` significa que a API recusou uma imagem na conversa, como uma acima dos limites de tamanho ou de dimensão.

2375 

2376Se um desses erros continuar voltando, atualize o Claude Code. Em versões mais antigas, um erro de imagem podia se repetir por motivos como estes:

2377 

2378* Antes da v2.1.299, em uma conversa longa com muitas imagens, o Claude Code podia remover as imagens que você anexou por último em vez daquela acima do limite. A linha `was removed` então se repetia a cada turno, e o Claude não via suas novas imagens.

2379* Antes da v2.1.299, no VS Code, no aplicativo Desktop e no Agent SDK, as imagens que você anexava enquanto o Claude estava trabalhando não passavam pelo redimensionamento que outras imagens anexadas recebem. Elas chegavam à API em seu tamanho original, o que levava a erros de imagem repetidos em conversas longas.

2380* Antes da v2.1.166, uma imagem colada podia permanecer na conversa, e o mesmo erro então se repetia em todas as mensagens subsequentes

2346 2381 

2347**O que fazer:**2382**O que fazer:**

2348 2383 


2800* Aumente [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/pt/env-vars) acima do orçamento de pensamento2835* Aumente [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/pt/env-vars) acima do orçamento de pensamento

2801* Veja [Pensamento estendido](/docs/pt/model-config#extended-thinking) para como o orçamento interage com o comprimento de saída2836* Veja [Pensamento estendido](/docs/pt/model-config#extended-thinking) para como o orçamento interage com o comprimento de saída

2802 2837 

2838<h3 id="response-exceeded-the-output-token-maximum">

2839 Response exceeded the output token maximum

2840</h3>

2841 

2842A resposta do Claude atingiu o maior número de tokens de saída que a requisição permitia e foi cortada ali:

2843 

2844```text theme={null}

2845API Error: Claude's response exceeded the ... output token maximum. To configure this behavior, set the CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable.

2846API Error: Claude's response exceeded the 64000 output token maximum for a request sent without streaming. The CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable cannot raise this limit.

2847```

2848 

2849A forma que menciona `a request sent without streaming` significa que uma requisição por streaming falhou e o Claude Code a reenviou sem streaming, o que limita a resposta a 64.000 tokens de saída. Antes da v2.1.299, uma resposta cortada em uma requisição reenviada dessa forma encerrava o turno sem essa mensagem, como se a resposta estivesse completa.

2850 

2851**O que fazer:**

2852 

2853* Se o Claude escreveu algum texto antes de a resposta ser cortada, responda `continue` em uma sessão interativa para pedir o restante. Esse texto permanece na conversa.

2854* Se a mensagem disser para definir `CLAUDE_CODE_MAX_OUTPUT_TOKENS`, consulte [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/pt/env-vars) para saber como o valor é limitado e [Definir variáveis de ambiente](/docs/pt/env-vars#set-environment-variables) para saber onde defini-lo

2855* Para manter cada resposta abaixo do limite, peça ao Claude a saída em partes menores, como um arquivo ou uma seção por resposta

2856 

2803<h3 id="tool-use-or-thinking-block-mismatch">2857<h3 id="tool-use-or-thinking-block-mismatch">

2804 Incompatibilidade de bloco de uso de ferramenta ou pensamento2858 Incompatibilidade de bloco de uso de ferramenta ou pensamento

2805</h3>2859</h3>


2936As medidas de segurança do modelo sinalizaram conteúdo na conversa como um tópico de cibersegurança. A mensagem nomeia o modelo que sinalizou a requisição:2990As medidas de segurança do modelo sinalizaram conteúdo na conversa como um tópico de cibersegurança. A mensagem nomeia o modelo que sinalizou a requisição:

2937 2991 

2938```text theme={null}2992```text theme={null}

2939API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Apply to the Cyber Verification Program to reduce these interruptions. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude2993API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude

2940```2994```

2941 2995 

2942Se a mensagem incluir a linha `` Details: `[reasoning_extraction]` ``, veja [As proteções sinalizaram uma requisição pelo raciocínio do Claude](#safeguards-flagged-a-request-for-claudes-reasoning).2996Se a mensagem incluir a linha `` Details: `[reasoning_extraction]` ``, veja [As proteções sinalizaram uma requisição pelo raciocínio do Claude](#safeguards-flagged-a-request-for-claudes-reasoning).


2945 2999 

2946Em [Amazon Bedrock](/docs/pt/amazon-bedrock), [Google Cloud's Agent Platform](/docs/pt/google-vertex-ai) e [Microsoft Foundry](/docs/pt/microsoft-foundry), uma sinalização de cibersegurança produz a mensagem de [recusa de Política de Uso](#usage-policy-refusal) em vez disso.3000Em [Amazon Bedrock](/docs/pt/amazon-bedrock), [Google Cloud's Agent Platform](/docs/pt/google-vertex-ai) e [Microsoft Foundry](/docs/pt/microsoft-foundry), uma sinalização de cibersegurança produz a mensagem de [recusa de Política de Uso](#usage-policy-refusal) em vez disso.

2947 3001 

2948A proteção em si é do lado do servidor e antecede v2.1.203; lançamentos de cliente desde então mudaram apenas a redação da mensagem.

2949De v2.1.203 até v2.1.218, a mensagem lia `<model> has safety measures that flagged this message for a cybersecurity topic. To learn about the Cyber Verification Program and apply for access, visit our help center:` seguida pelo mesmo link do centro de ajuda, e sessões interativas acrescentavam `If you were not engaging in a cybersecurity topic, please send feedback via /feedback.`

2950Antes da v2.1.203, lia `<model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:` seguida por um link de formulário de isenção.

2951 

2952**O que fazer:**3002**O que fazer:**

2953 3003 

2954* Se seu trabalho requer este conteúdo, solicite acesso através do [Programa de Verificação Cibernética](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)3004* Se seu trabalho requer este conteúdo, solicite acesso através do [Programa de Verificação Cibernética](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)

2955* Se sua requisição não era sobre um tópico de cibersegurança, execute `/feedback` para relatar o falso positivo3005* Se sua requisição não era sobre um tópico de cibersegurança, execute `/feedback` para relatar o falso positivo

2956* Para continuar trabalhando na mesma sessão, pressione Esc duas vezes ou execute `/rewind` para voltar a um checkpoint antes do turno que acionou a sinalização, depois tome uma abordagem diferente. Veja [Checkpointing](/docs/pt/checkpointing).3006* Para continuar trabalhando na mesma sessão, pressione Esc duas vezes ou execute `/rewind` para voltar a um checkpoint antes do turno que acionou a sinalização, depois tome uma abordagem diferente. Veja [Checkpointing](/docs/pt/checkpointing).

2957 3007 

3008Se a mensagem que você vê estiver redigida como uma destas, trata-se da mesma sinalização em uma versão anterior do Claude Code:

3009 

3010* Da v2.1.219 até a v2.1.296, a mensagem também podia incluir `Apply to the Cyber Verification Program to reduce these interruptions.` antes da frase final

3011* Da v2.1.203 até a v2.1.218, a mensagem dizia `<model> has safety measures that flagged this message for a cybersecurity topic. To learn about the Cyber Verification Program and apply for access, visit our help center:` seguida do mesmo link da central de ajuda. Em sessões interativas, ela continuava com `If you were not engaging in a cybersecurity topic, please send feedback via /feedback.`

3012* Antes da v2.1.203, ela dizia `<model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:` seguida de um link para um formulário de isenção

3013 

2958<h3 id="safeguards-flagged-a-request-for-claudes-reasoning">3014<h3 id="safeguards-flagged-a-request-for-claudes-reasoning">

2959 As proteções sinalizaram uma requisição pelo raciocínio do Claude3015 As proteções sinalizaram uma requisição pelo raciocínio do Claude

2960</h3>3016</h3>


3012* Remova `-p` ou `--print`. `--bg` recebe o prompt como seu argumento posicional, então `claude --bg "<task>"` é o comando completo. Consulte [Dispatch de novos agentes a partir do seu shell](/docs/pt/agent-view#from-your-shell).3068* Remova `-p` ou `--print`. `--bg` recebe o prompt como seu argumento posicional, então `claude --bg "<task>"` é o comando completo. Consulte [Dispatch de novos agentes a partir do seu shell](/docs/pt/agent-view#from-your-shell).

3013* Para executar o prompt de forma não interativa e imprimir o resultado em vez de criar uma sessão em segundo plano, remova `--bg` e execute `claude -p "<task>"`3069* Para executar o prompt de forma não interativa e imprimir o resultado em vez de criar uma sessão em segundo plano, remova `--bg` e execute `claude -p "<task>"`

3014 3070 

3071<h3 id="couldnt-tell-whether-bg-is-a-flag-or-text">

3072 Couldn't tell whether `--bg` is a flag or text

3073</h3>

3074 

3075Você executou `claude` com `--bg` ou `--background` em uma posição na qual o Claude Code não conseguiu determinar se você queria usá-lo como a flag de segundo plano ou como texto. O comando não iniciou nada, imprimiu esta linha e saiu com código 1:

3076 

3077```text theme={null}

3078Couldn't tell whether --bg is a flag or text here, so nothing was started. To start a background session put it first: claude --bg <prompt>

3079```

3080 

3081Se você digitou `--background`, a linha menciona `--background` em vez disso.

3082 

3083**O que fazer:**

3084 

3085* Para iniciar uma [sessão em segundo plano](/docs/pt/agent-view#from-your-shell), execute o comando novamente no seu shell com a flag primeiro: `claude --bg --name nightly-audit "<task>"`

3086 

3015<h3 id="conflict-between-a-system-prompt-flag-and-its-file-form">3087<h3 id="conflict-between-a-system-prompt-flag-and-its-file-form">

3016 Conflito entre uma flag de system prompt e sua forma de arquivo3088 Conflito entre uma flag de system prompt e sua forma de arquivo

3017</h3>3089</h3>


3296 3368 

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

3298 3370 

3371<h3 id="sandbox-is-not-supported-by-claude-remote-control">

3372 `--sandbox` or `--no-sandbox` is not supported by claude remote-control

3373</h3>

3374 

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

3376 

3377```text theme={null}

3378Error: --sandbox is not supported by claude remote-control. The flag had no effect and was removed. To sandbox sessions, set sandbox.enabled to true in settings.

3379Error: --no-sandbox is not supported by claude remote-control. The flag had no effect and was removed. Remove it from the command.

3380```

3381 

3382**O que fazer:**

3383 

3384* Remova a flag do comando, inclusive em um script ou definição de serviço que inicia o servidor para você, e então execute-o novamente

3385* Para executar em sandbox as sessões que o servidor inicia, ative o [sandboxing](/docs/pt/sandboxing) definindo [`sandbox.enabled`](/docs/pt/settings-reference#sandbox-enabled) como `true` em um [arquivo de configurações](/docs/pt/settings#where-settings-live)

3386 

3387Ambas as flags foram removidas de `claude remote-control` na v2.1.300, então um comando escrito para uma versão anterior ainda pode conter uma delas.

3388 

3299<h3 id="claude-import-is-not-yet-available-in-this-build">3389<h3 id="claude-import-is-not-yet-available-in-this-build">

3300 claude import ainda não está disponível neste build3390 claude import ainda não está disponível neste build

3301</h3>3391</h3>


3542* Um remote cujo HEAD do lado do servidor aponta para um branch que ninguém enviou3632* Um remote cujo HEAD do lado do servidor aponta para um branch que ninguém enviou

3543* Um repositório sem remote `origin`, ou um do qual você nunca fez fetch3633* Um repositório sem remote `origin`, ou um do qual você nunca fez fetch

3544 3634 

3545O Claude Code mostra o mesmo erro para qualquer skill que [injeta contexto dinâmico](/docs/pt/skills#when-an-injected-command-fails), e um comando injetado com falha aborta a invocação dessa skill. Duas strings irmãs são disparadas antes mesmo de o comando ser executado:3635O Claude Code mostra o mesmo erro para qualquer skill que [injeta contexto dinâmico](/docs/pt/skills#when-an-injected-command-fails), e um comando injetado que falha aborta a invocação dessa skill.

3636 

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

3546 3638 

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

3548* ``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](/docs/pt/skills#how-injected-commands-run)3640* ``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](/docs/pt/skills#how-injected-commands-run)

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

3549 3642 

3550**O que fazer:**3643**O que fazer:**

3551 3644 


3553* Se preferir não nomear o branch, execute `git fetch origin` e depois `git remote set-head origin --auto`, que pergunta ao remote qual branch é o padrão. Ele falha com `error: Cannot determine remote HEAD` quando o remote não anuncia nenhum branch padrão, porque está vazio ou seu HEAD aponta para um branch que ninguém enviou; nesse caso, nomeie o branch explicitamente. Ele falha com `error: Not a valid ref` quando seu clone não faz fetch desse branch; amplie o refspec como acima primeiro.3646* Se preferir não nomear o branch, execute `git fetch origin` e depois `git remote set-head origin --auto`, que pergunta ao remote qual branch é o padrão. Ele falha com `error: Cannot determine remote HEAD` quando o remote não anuncia nenhum branch padrão, porque está vazio ou seu HEAD aponta para um branch que ninguém enviou; nesse caso, nomeie o branch explicitamente. Ele falha com `error: Not a valid ref` quando seu clone não faz fetch desse branch; amplie o refspec como acima primeiro.

3554* Se o repositório não tiver remote, adicione um com `git remote add origin <url>` e faça fetch antes de criar a ref. Se o remote estiver vazio, envie primeiro seu branch com `git push -u origin HEAD` e nomeie esse branch no comando set-head; `origin/HEAD` então aponta para o branch que você acabou de enviar, então `/security-review` vê um diff vazio até que o branch divirja dele.3647* Se o repositório não tiver remote, adicione um com `git remote add origin <url>` e faça fetch antes de criar a ref. Se o remote estiver vazio, envie primeiro seu branch com `git push -u origin HEAD` e nomeie esse branch no comando set-head; `origin/HEAD` então aponta para o branch que você acabou de enviar, então `/security-review` vê um diff vazio até que o branch divirja dele.

3555 3648 

3649<h3 id="no-shell-command-was-run">

3650 No shell command in a skill or command was run

3651</h3>

3652 

3653Um dos [comandos de contexto dinâmico](/docs/pt/skills#inject-dynamic-context) `` !`<command>` `` em um arquivo de skill ou de comando personalizado contém um caractere de controle bruto diferente de tab ou nova linha. O Claude Code recusa toda a invocação antes que qualquer um dos comandos do arquivo seja executado.

3654 

3655A mensagem nomeia a ferramenta de shell que teria executado os comandos, Bash ou PowerShell, e termina com o comando recusado. Cada um desses caracteres é substituído por `�` para que você possa ver onde ele está:

3656 

3657```text theme={null}

3658No shell command in /my-skill was run, because the Bash tool does not accept one of them: command contains control characters that would be hidden in the approval dialog. Unprintable characters are shown as � below: remove them from the skill or command file, or from the arguments or options substituted into it.

3659build.sh --target�dist

3660```

3661 

3662**O que fazer:**

3663 

3664* Encontre cada `�` no comando citado no final da mensagem. Remova o caractere que ele representa do arquivo de skill ou de comando, ou dos argumentos ou opções substituídos no arquivo.

3665 

3556<h3 id="input-must-be-provided-when-using-print">3666<h3 id="input-must-be-provided-when-using-print">

3557 É necessário fornecer uma entrada ao usar `--print`3667 É necessário fornecer uma entrada ao usar `--print`

3558</h3>3668</h3>


3694 3804 

3695* **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 acima3805* **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

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

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

3698 3808 

3699**O que fazer:**3809**O que fazer:**

3700 3810 


5499 5609 

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

5501 5611 

5612<h3 id="instruction-file-not-loaded">

5613 Instruction file not loaded

5614</h3>

5615 

5616Este aviso na visualização de conversa de uma sessão interativa significa que um [arquivo de memória](/docs/pt/memory#how-claude-md-files-load) que existe não foi carregado. Uma restrição de leitura está em vigor.

5617 

5618```text theme={null}

5619Instruction file not loaded (a Read deny rule covers it):

5620path: .claude/rules/shared.md

5621```

5622 

5623O texto entre parênteses nomeia o motivo, por exemplo:

5624 

5625* **`a Read deny rule covers it`**: uma [regra deny](/docs/pt/permissions#read-and-edit) de `Read` corresponde ao caminho do arquivo conforme escrito ou ao local para onde um link nele leva

5626* **`it's read from outside your working directories, where reads are blocked`**: o arquivo se resolve fora dos [diretórios de trabalho](/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) enquanto [`permissions.blockReadsOutsideWorkingDirectories`](/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) está ativado

5627* **`where it leads couldn't be worked out`**: por exemplo, o arquivo é um link que leva de volta a si mesmo, diretamente ou através de outros links

5628 

5629Quando o próprio arquivo de memória de um subdiretório não pode ser carregado enquanto Claude trabalha com arquivos ali, as mesmas linhas aparecem na conversa durante o turno. Quando mais arquivos são retidos do que as linhas nomeiam, uma linha final conta o resto, como `and 3 more instruction files not loaded`.

5630 

5631**O que fazer:**

5632 

5633* Nada, se a restrição for intencional: a sessão é executada sem as instruções desse arquivo.

5634* Para carregar um arquivo retido porque `a Read deny rule covers it`, [remova ou restrinja essa regra](/docs/pt/permissions#manage-permissions). Depois inicie uma nova sessão.

5635* Para carregar um arquivo retido porque `it's read from outside your working directories, where reads are blocked`, mova-o ou o destino de seu link para dentro dos diretórios de trabalho. Depois inicie uma nova sessão.

5636* Para carregar um arquivo retido porque `where it leads couldn't be worked out`, verifique se o arquivo é um link que leva de volta a si mesmo. Se for, aponte o link para um arquivo que existe ou coloque um arquivo regular em seu lugar. Depois inicie uma nova sessão.

5637 

5638Antes da v2.1.292, o aviso nomeava o arquivo no final da mesma linha, após o motivo.

5639 

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

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

5504</h3>5642</h3>


5683 5821 

5684Antes da v2.1.257, **Reconnect** e re-habilitar em `/mcp` poderiam conectar um servidor que uma atualização de política no meio da sessão bloqueou.5822Antes da v2.1.257, **Reconnect** e re-habilitar em `/mcp` poderiam conectar um servidor que uma atualização de política no meio da sessão bloqueou.

5685 5823 

5824<h3 id="mcp-server-name-is-reserved">

5825 O nome do servidor MCP é reservado

5826</h3>

5827 

5828Esta mensagem nomeia um de seus servidores MCP, cujo nome está entre aqueles que Claude Code reserva, como os nomes de seus servidores integrados:

5829 

5830```text theme={null}

5831"workspace" is a reserved MCP server name and was not loaded

5832```

5833 

5834**O que fazer:**

5835 

5836* Renomeie o servidor onde você o define, por exemplo de `workspace` para `my-workspace`

5837* Para outros nomes reservados a evitar, consulte [Avisos de configuração de MCP](/docs/pt/mcp#configuration-warnings)

5838 

5686<h3 id="managed-settings-document-could-not-be-parsed">5839<h3 id="managed-settings-document-could-not-be-parsed">

5687 O documento de configurações gerenciadas não pôde ser analisado5840 O documento de configurações gerenciadas não pôde ser analisado

5688</h3>5841</h3>


5737 5890 

5738Antes da v2.1.285, apenas sessões conectadas com credenciais claude.ai ou Claude Console saíram com esta mensagem, e uma leitura que o sistema operacional negou a produziu também.5891Antes da v2.1.285, apenas sessões conectadas com credenciais claude.ai ou Claude Console saíram com esta mensagem, e uma leitura que o sistema operacional negou a produziu também.

5739 5892 

5893<h3 id="managed-settings-hooks-not-loaded">

5894 Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded

5895</h3>

5896 

5897Este bloco de stderr de uma execução `-p` significa que uma fonte de [configurações gerenciadas](/docs/pt/managed-settings) contém uma entrada de hook que Claude Code não consegue carregar. Esse hook não é executado e, quando uma linha lista o campo `hooks` da fonte como ignorado, nenhum dos hooks dessa fonte é executado.

5898 

5899Cada linha nomeia a fonte, o campo quando houver um, e o problema, como um `type` de hook desconhecido ou um hook declarado fora da chave `hooks`:

5900 

5901```text theme={null}

5902Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded; fix or remove each entry:

5903 <source> (<field>): <message>

5904```

5905 

5906**O que fazer:**

5907 

5908* Se você administra a fonte, corrija ou remova cada entrada que o bloco lista. [Configuração de hooks](/docs/pt/hooks#configuration) mostra o formato que Claude Code espera sob `hooks`.

5909* Se a fonte de uma linha for `parent managed settings`, o aplicativo que iniciou Claude Code passou essa entrada como [configurações pai](/docs/pt/managed-settings#parent-settings-from-embedding-hosts), então relate-a ao desenvolvedor desse aplicativo

5910* Caso contrário, envie o bloco ao seu administrador

5911 

5912Antes da v2.1.300, uma execução `-p` listava este caso sob o cabeçalho `Managed settings failed to load; policies from the failed source are NOT in effect:`.

5913 

5740<h3 id="otelheadershelper-failed">5914<h3 id="otelheadershelper-failed">

5741 otelHeadersHelper falhou5915 otelHeadersHelper falhou

5742</h3>5916</h3>


5955 6129 

5956Antes da v2.1.233, Claude Code não escrevia nenhuma linha quando enviava uma solicitação para um ID de modelo que não reconhecia.6130Antes da v2.1.233, Claude Code não escrevia nenhuma linha quando enviava uma solicitação para um ID de modelo que não reconhecia.

5957 6131 

6132<h3 id="sandbox-allow-entries-are-ignored-under-a-managed-lock">

6133 Entradas allow do sandbox são ignoradas sob um bloqueio gerenciado

6134</h3>

6135 

6136Este aviso em `/status` e `claude doctor` significa que as configurações gerenciadas definem [`allowManagedReadPathsOnly`](/docs/pt/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) ou [`allowManagedDomainsOnly`](/docs/pt/settings-reference#sandbox-network-allowmanageddomainsonly), então as entradas [`allowRead`](/docs/pt/settings-reference#sandbox-filesystem-allowread) ou [`allowedDomains`](/docs/pt/settings-reference#sandbox-network-alloweddomains) no arquivo que ele nomeia não se aplicam:

6137 

6138```text wrap theme={null}

6139sandbox.filesystem.allowRead is ignored — managed settings set allowManagedReadPathsOnly, so only allowRead paths from managed settings are honored. The 3 entries in /home/you/.claude/settings.json will NOT apply (see https://code.claude.com/docs/en/settings#sandbox-settings).

6140```

6141 

6142Para o bloqueio de rede, o aviso nomeia `sandbox.network.allowedDomains` e `allowManagedDomainsOnly`, e diz `only allowed domains (and WebFetch domain rules) from managed settings are honored`.

6143 

6144**O que fazer:**

6145 

6146* Você não precisa agir sobre o aviso

6147* Se você precisa desses caminhos ou domínios e as configurações gerenciadas de sua organização definem o bloqueio, peça ao seu administrador para adicioná-los a essas configurações. O aviso permanece até que você também remova as entradas do arquivo nomeado.

6148* Para limpar o aviso, remova as entradas do arquivo nomeado. Para um arquivo que você compartilha, como o `.claude/settings.json` de um projeto, você pode deixar as entradas para colegas de equipe sem o bloqueio e deixar o aviso aparecendo.

6149 

5958<h3 id="stale-sandbox-mask-files-left-by-a-killed-session">6150<h3 id="stale-sandbox-mask-files-left-by-a-killed-session">

5959 Arquivos de máscara de sandbox obsoletos deixados por uma sessão morta6151 Arquivos de máscara de sandbox obsoletos deixados por uma sessão morta

5960</h3>6152</h3>

Details

57 </Step>57 </Step>

58 58 

59 <Step title="Ative o Code Review">59 <Step title="Ative o Code Review">

60 Vá para [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) e ative o [Code Review](/docs/pt/code-review#set-up-code-review) para seus repositórios GHES usando a mesma configuração que github.com.60 Vá para [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) e ative o [Code Review](/docs/pt/code-review-setup) para seus repositórios GHES usando a mesma configuração que github.com.

61 </Step>61 </Step>

62</Steps>62</Steps>

63 63 

Details

222| `T{char}` | Pular para logo após a ocorrência anterior do caractere na linha atual |222| `T{char}` | Pular para logo após a ocorrência anterior do caractere na linha atual |

223| `;` | Repetir o último movimento f/F/t/T |223| `;` | Repetir o último movimento f/F/t/T |

224| `,` | Repetir o último movimento f/F/t/T em ordem inversa |224| `,` | Repetir o último movimento f/F/t/T em ordem inversa |

225| `%` | Pular para o delimitador correspondente `()`, `[]` ou `{}`, começando pelo próximo delimitador na linha atual quando o cursor não está sobre um delimitador. Requer Claude Code v2.1.301 ou posterior |

225| `/` | Abrir busca de histórico reverso, igual a `Ctrl+R`. O prompt de busca vazio mostra uma dica: pressione `Esc` depois `i` depois `/` para abrir o menu de comando |226| `/` | Abrir busca de histórico reverso, igual a `Ctrl+R`. O prompt de busca vazio mostra uma dica: pressione `Esc` depois `i` depois `/` para abrir o menu de comando |

226 227 

227<Note>228<Note>


243| `dj`/`dk` | Deletar a linha atual e a linha abaixo ou acima |244| `dj`/`dk` | Deletar a linha atual e a linha abaixo ou acima |

244| `dgg`/`dG` | Deletar da linha atual até a primeira ou última linha |245| `dgg`/`dG` | Deletar da linha atual até a primeira ou última linha |

245| `d0`/`c0`/`y0` | Deletar, mudar ou yankar do cursor de volta ao início da linha. Requer Claude Code v2.1.281 ou posterior |246| `d0`/`c0`/`y0` | Deletar, mudar ou yankar do cursor de volta ao início da linha. Requer Claude Code v2.1.281 ou posterior |

247| `d%`/`c%`/`y%` | Deletar, mudar ou yankar do cursor até o delimitador para o qual `%` pula, inclusive. Requer Claude Code v2.1.301 ou posterior |

246| `cc` | Mudar linha |248| `cc` | Mudar linha |

247| `C` | Mudar até o fim da linha |249| `C` | Mudar até o fim da linha |

248| `cw`/`ce`/`cb` | Mudar palavra/até o fim/para trás |250| `cw`/`ce`/`cb` | Mudar palavra/até o fim/para trás |

mcp.md +1 −1

Details

1632 1632 

1633Antes da v2.1.296, o limite menor era de 2.048 caracteres e, antes da v2.1.295, ele se aplicava a todas as descrições de ferramentas, incluindo as carregadas através da busca de ferramentas.1633Antes da v2.1.296, o limite menor era de 2.048 caracteres e, antes da v2.1.295, ele se aplicava a todas as descrições de ferramentas, incluindo as carregadas através da busca de ferramentas.

1634 1634 

1635Para alterar os limites para cada servidor MCP em sua sessão, defina [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](/docs/pt/env-vars#variables) como um número de caracteres. O número que você define substitui ambos os limites: `8192`, por exemplo, aumenta o limite menor e reduz o maior. Esta variável requer Claude Code v2.1.280 ou posterior.1635Descrições e instruções de alguns dos servidores MCP que a Anthropic hospeda em `api.anthropic.com` chegam a Claude por completo. Para alterar os limites para os demais servidores MCP em sua sessão, defina [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](/docs/pt/env-vars#variables) como um número de caracteres. O número que você define substitui ambos os limites: `8192`, por exemplo, aumenta o limite menor e reduz o maior. Esta variável requer Claude Code v2.1.280 ou posterior.

1636 1636 

1637<h4 id="per-tool-alwaysload">1637<h4 id="per-tool-alwaysload">

1638 Marcar uma ferramenta para carregar antecipadamente ou permanecer adiada1638 Marcar uma ferramenta para carregar antecipadamente ou permanecer adiada

Details

378 ```powershell theme={null}378 ```powershell theme={null}

379 $env:MCP_TIMEOUT = "60000"; claude379 $env:MCP_TIMEOUT = "60000"; claude

380 ```380 ```

381 

382 Antes da v2.1.299, algumas conexões com servidores HTTP que estavam ativos atingiam o timeout na inicialização independentemente de `MCP_TIMEOUT`. Se você usa uma dessas versões e um servidor HTTP que está ativo ainda atinge o timeout depois que você aumenta o limite, [atualize o Claude Code](/docs/pt/setup#update-claude-code).

381 </Accordion>383 </Accordion>

382 384 

383 <Accordion title="Server already exists">385 <Accordion title="Server already exists">

memory.md +1 −0

Details

648Para depurar:648Para depurar:

649 649 

650* Execute `/context` e verifique a lista sob **Memory files** para conferir os arquivos CLAUDE.md e CLAUDE.local.md que devem ser carregados na inicialização. Se um deles estiver faltando lá, Claude não pode vê-lo. Use `/memory` para abrir e editar os arquivos.650* Execute `/context` e verifique a lista sob **Memory files** para conferir os arquivos CLAUDE.md e CLAUDE.local.md que devem ser carregados na inicialização. Se um deles estiver faltando lá, Claude não pode vê-lo. Use `/memory` para abrir e editar os arquivos.

651* Se um aviso `Instruction file not loaded` aparecer, veja [o que ele significa e o que fazer a respeito](/docs/pt/errors#instruction-file-not-loaded).

651* Um `CLAUDE.md` em um subdiretório do seu diretório de trabalho não aparece sob **Memory files**, porque ele é carregado sob demanda em vez de na inicialização. Quando ele é carregado, uma linha `Loaded` com seu caminho aparece no terminal. Para testar um novo, crie-o a partir do seu shell em vez de pedir a Claude que o escreva, e depois peça a Claude que leia um arquivo nesse subdiretório.652* Um `CLAUDE.md` em um subdiretório do seu diretório de trabalho não aparece sob **Memory files**, porque ele é carregado sob demanda em vez de na inicialização. Quando ele é carregado, uma linha `Loaded` com seu caminho aparece no terminal. Para testar um novo, crie-o a partir do seu shell em vez de pedir a Claude que o escreva, e depois peça a Claude que leia um arquivo nesse subdiretório.

652* Verifique se o CLAUDE.md relevante está em um local que é carregado para sua sessão (veja [Escolha onde colocar arquivos CLAUDE.md](#choose-where-to-put-claude-md-files)).653* Verifique se o CLAUDE.md relevante está em um local que é carregado para sua sessão (veja [Escolha onde colocar arquivos CLAUDE.md](#choose-where-to-put-claude-md-files)).

653* Torne as instruções mais específicas. "Use indentação de 2 espaços" funciona melhor do que "formate o código adequadamente."654* Torne as instruções mais específicas. "Use indentação de 2 espaços" funciona melhor do que "formate o código adequadamente."

model-config.md +20 −0

Details

895 Corrigir a janela para um gateway ou ID de modelo personalizado895 Corrigir a janela para um gateway ou ID de modelo personalizado

896</h3>896</h3>

897 897 

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

899 

900```text theme={null}

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

902Claude Code doesn't recognize the model "my-gateway-opus", so it assumes a context window of 200k tokens. Update Claude Code, or see https://code.claude.com/docs/en/model-config#correct-the-window-for-a-gateway-or-custom-model-id to set the window.

903```

904 

905Claude Code [compacta automaticamente](#default-auto-compact-thresholds) a conversa nos 200K assumidos, então, se a janela de contexto real do modelo for de 200K, não há nada a corrigir. Caso contrário, informe a Claude Code a janela real da forma que se adequar ao seu ID:

906 

907* **Um modelo mais recente que sua versão do Claude Code**: execute `claude update` no seu shell. Se Claude Code reconhecer o ID após a atualização, você não precisa configurar mais nada.

908* **O nome do seu gateway ou provedor para um modelo que Claude Code conhece**: adicione uma entrada [`modelOverrides`](#override-model-ids-per-version) que mapeie o ID de modelo da Anthropic para o seu ID, como `"claude-opus-4-8": "my-gateway-opus"`. Em vez disso, você pode listar seu ID em uma linha de [`modelPicker`](/docs/pt/settings-reference#fields-for-modelpicker) com `behavesAs` definido para esse modelo. De qualquer forma, Claude Code passa a tratar o ID como esse modelo.

909* **Um modelo com uma janela de 1M**: acrescente `[1m]` ao ID onde você define o modelo, como `claude --model 'my-gateway-opus[1m]'` no seu shell. Se você [desativou o contexto de 1M](#turn-off-1m-context), obtém a mesma janela com ou sem o sufixo.

910* **Qualquer outra janela**: defina [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](/docs/pt/env-vars) com o tamanho da janela em tokens no ambiente que inicia Claude Code, como `CLAUDE_CODE_MAX_CONTEXT_TOKENS=400000`. Para um ID não reconhecido que não começa com `claude-` e não tem sufixo `[1m]`, a variável entra em vigor por conta própria. Para qualquer outro ID, verifique primeiro [a quais IDs ela se aplica](#which-ids-claude_code_max_context_tokens-applies-to).

911 

912Assim que Claude Code reconhecer o ID ou usar a janela que você informou, o aviso deixa de aparecer quando você inicia uma sessão nesse ID.

913 

914<h4 id="which-ids-claude_code_max_context_tokens-applies-to">

915 A quais IDs `CLAUDE_CODE_MAX_CONTEXT_TOKENS` se aplica

916</h4>

917 

898Em um [gateway de LLM](/docs/pt/llm-gateway) ou outra implantação personalizada, Claude Code pode assumir uma janela de contexto para o ID do modelo que difere da janela real do modelo, independentemente de resolver ou não o ID para um modelo Claude. Defina [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](/docs/pt/env-vars) para a janela que Claude Code deve assumir em vez disso.918Em um [gateway de LLM](/docs/pt/llm-gateway) ou outra implantação personalizada, Claude Code pode assumir uma janela de contexto para o ID do modelo que difere da janela real do modelo, independentemente de resolver ou não o ID para um modelo Claude. Defina [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](/docs/pt/env-vars) para a janela que Claude Code deve assumir em vez disso.

899 919 

900Como a variável se aplica depende do ID. Claude Code trata um ID como um provedor ou ortografia personalizada quando não começa com `claude-`, em qualquer capitalização, ou quando carrega um sufixo que Claude Code remove ao ler o ID, como a data `@YYYYMMDD` usada na Plataforma de Agentes do Google Cloud. Antes da v2.1.259, Claude Code não contava um sufixo removido, então um ID `claude-` não reconhecido com um sufixo de data era tratado como um nome `claude-` simples.920Como a variável se aplica depende do ID. Claude Code trata um ID como um provedor ou ortografia personalizada quando não começa com `claude-`, em qualquer capitalização, ou quando carrega um sufixo que Claude Code remove ao ler o ID, como a data `@YYYYMMDD` usada na Plataforma de Agentes do Google Cloud. Antes da v2.1.259, Claude Code não contava um sufixo removido, então um ID `claude-` não reconhecido com um sufixo de data era tratado como um nome `claude-` simples.

Details

6 6 

7> Saiba como ativar e configurar OpenTelemetry para Claude Code.7> Saiba como ativar e configurar OpenTelemetry para Claude Code.

8 8 

9Rastreie o uso, custos e atividade de ferramentas do Claude Code em toda a sua organização exportando dados de telemetria através do OpenTelemetry (OTel). Claude Code exporta métricas como dados de série temporal via protocolo de métricas padrão, eventos via protocolo de logs/eventos e, opcionalmente, rastreamentos distribuídos via [protocolo de rastreamentos](#traces-beta).9Rastreie o uso, custos e atividade de ferramentas do Claude Code em toda a sua organização exportando dados de telemetria através do OpenTelemetry (OTel). Claude Code exporta métricas como dados de série temporal via protocolo de métricas padrão, eventos via protocolo de logs/eventos e, opcionalmente, [rastreamentos distribuídos via OpenTelemetry](#traces-beta).

10 

11<Note>

12 Para a Claude API ou Managed Agents, consulte [OpenTelemetry para a Claude API](https://platform.claude.com/docs/en/manage-claude/opentelemetry).

13</Note>

10 14 

11<h2 id="quick-start">15<h2 id="quick-start">

12 Início rápido16 Início rápido

Details

84* **Política de rede cobre `$.http.fetch`.**84* **Política de rede cobre `$.http.fetch`.**

85 85 

86 * **A política da sua organização não permite WebFetch**: Claude Code também recusa toda requisição `$.http.fetch` de qualquer mod. Veja [Disponibilidade do WebFetch](/docs/pt/tools-reference#webfetch-availability).86 * **A política da sua organização não permite WebFetch**: Claude Code também recusa toda requisição `$.http.fetch` de qualquer mod. Veja [Disponibilidade do WebFetch](/docs/pt/tools-reference#webfetch-availability).

87 * **Você desativa a ferramenta WebFetch com [`CLAUDE_CODE_DISABLE_WEB_FETCH`](/docs/pt/env-vars#variables) ou uma [regra de negação](/docs/pt/permissions#tool-specific-permission-rules) `WebFetch`, em configurações gerenciadas ou em qualquer outro arquivo de configurações**: mods ainda podem fazer requisições `$.http.fetch`.

88 

89 Para impedi-las para todo mod que seus usuários instalam, [impeça que mods instalados pelo usuário sejam carregados](#stop-user-installed-mods-from-loading), ou faça hook de `http.fetch` em um [mod de política](#enforce-a-policy-with-a-mod-of-your-own) e recuse requisições dos mods dos usuários. Dê a esse hook um [handler `.catch`](/docs/pt/plugins/mods/events#handle-a-hook-that-fails) que também recuse, porque o Claude Code ignora um hook que falha e a requisição então prossegue. Se você apenas [restringir quais plugins os usuários podem instalar](/docs/pt/plugins/org#restrict-what-users-can-install), menos mods são carregados, mas os que você permite ainda fazem essas requisições.

87 * **Você define [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/pt/env-vars)**: um mod que você ou seus usuários instalam ainda pode fazer essas requisições. A variável bloqueia apenas os [mods integrados ao Claude Code](/docs/pt/plugins/mods/overview#mods-built-into-claude-code), além de qualquer requisição `$.http.fetch` que carregue as credenciais da Anthropic da sessão. Antes da v2.1.288, a variável bloqueava toda requisição `$.http.fetch` de qualquer mod.90 * **Você define [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/pt/env-vars)**: um mod que você ou seus usuários instalam ainda pode fazer essas requisições. A variável bloqueia apenas os [mods integrados ao Claude Code](/docs/pt/plugins/mods/overview#mods-built-into-claude-code), além de qualquer requisição `$.http.fetch` que carregue as credenciais da Anthropic da sessão. Antes da v2.1.288, a variável bloqueava toda requisição `$.http.fetch` de qualquer mod.

88 91 

89 Nenhuma das duas cobre um programa que o mod inicia com `$.process.run`, que alcança a rede com o acesso próprio do usuário.92 Nenhum desses casos cobre um programa que o mod inicia com `$.process.run`, que alcança a rede com o acesso próprio do usuário.

90* **Controles de plugin cobrem mods.** Um mod é um plugin, então as [configurações que restringem o que os usuários podem instalar](/docs/pt/plugins/org#restrict-what-users-can-install), como `strictKnownMarketplaces`, decidem se ele pode ser instalado.93* **Controles de plugin cobrem mods.** Um mod é um plugin, então as [configurações que restringem o que os usuários podem instalar](/docs/pt/plugins/org#restrict-what-users-can-install), como `strictKnownMarketplaces`, decidem se ele pode ser instalado.

91* **Mods não podem mudar o prompt de permissão.** Um mod pode restylar muito da interface do Claude Code, mas não o prompt de permissão, então não pode mudar o que um prompt mostra. Um mod ainda pode aprovar ou negar uma chamada de ferramenta antes do prompt aparecer, como [Saiba o que acontece por padrão](#know-what-happens-by-default) descreve.94* **Mods não podem mudar o prompt de permissão.** Um mod pode restylar muito da interface do Claude Code, mas não o prompt de permissão, então não pode mudar o que um prompt mostra. Um mod ainda pode aprovar ou negar uma chamada de ferramenta antes do prompt aparecer, como [Saiba o que acontece por padrão](#know-what-happens-by-default) descreve.

92* **Prompts de confiança vêm primeiro.** Em uma sessão interativa em um diretório que o usuário ainda não confiou, nenhum mod é carregado até que ele responda ao prompt de confiança.95* **Prompts de confiança vêm primeiro.** Em uma sessão interativa em um diretório que o usuário ainda não confiou, nenhum mod é carregado até que ele responda ao prompt de confiança.

Details

234| `$.ui.toast(text)` | Uma notificação toast com o nome do mod que desaparece após alguns segundos. É uma caixa no canto superior direito na [renderização em tela cheia](/docs/pt/fullscreen) e uma linha à direita sob o prompt no renderizador clássico. |234| `$.ui.toast(text)` | Uma notificação toast com o nome do mod que desaparece após alguns segundos. É uma caixa no canto superior direito na [renderização em tela cheia](/docs/pt/fullscreen) e uma linha à direita sob o prompt no renderizador clássico. |

235| `$.ui.log(text)` | Uma linha fraca na transcrição que Claude não lê. Começa com `●` e o nome do mod, como em `● my-mod: build finished`. |235| `$.ui.log(text)` | Uma linha fraca na transcrição que Claude não lê. Começa com `●` e o nome do mod, como em `● my-mod: build finished`. |

236 236 

237Na [extensão do VS Code](/docs/pt/plugins/mods/interface#draw-in-the-vs-code-extension), as linhas de status e os toasts aparecem acima da caixa do prompt, e as linhas de log aparecem na conversa.

238 

237<h3 id="start-a-turn-from-a-background-job">239<h3 id="start-a-turn-from-a-background-job">

238 Inicie um turno a partir de um trabalho em segundo plano240 Inicie um turno a partir de um trabalho em segundo plano

239</h3>241</h3>

Details

226| `Spinner`, `ToolProgress`, `TurnDuration` | Linhas de status para um turno: a linha que anima enquanto o Claude trabalha, a linha de progresso ao vivo de uma ferramenta em execução e a linha que fecha um turno |226| `Spinner`, `ToolProgress`, `TurnDuration` | Linhas de status para um turno: a linha que anima enquanto o Claude trabalha, a linha de progresso ao vivo de uma ferramenta em execução e a linha que fecha um turno |

227| `InfoNotice`, `SessionMode`, `PromptHint` | Linhas de status sob o logo, os rótulos de modo no rodapé e a linha de dica sob o prompt |227| `InfoNotice`, `SessionMode`, `PromptHint` | Linhas de status sob o logo, os rótulos de modo no rodapé e a linha de dica sob o prompt |

228 228 

229`Pane`, `AskUserQuestion`, `Spinner`, `UserMessage`, `AssistantMessage` e os pontos de chamada de ferramenta funcionam no terminal, no app Desktop e na extensão do VS Code. A [tabela de pontos de renderização](/docs/pt/plugins/mods/reference#render-sites) lista onde cada um dos outros é disparado.

230 

229Em um site que o Claude Code já desenha, seu hook pode alterar um detalhe, substituir o desenho ou deixá-lo em paz. Selecione uma aba para ver cada um aplicado ao spinner. Os exemplos leem uma variável `calls` que outro hook conta, como no [mod do tutorial](/docs/pt/plugins/mods/create#write-a-mod-yourself).231Em um site que o Claude Code já desenha, seu hook pode alterar um detalhe, substituir o desenho ou deixá-lo em paz. Selecione uma aba para ver cada um aplicado ao spinner. Os exemplos leem uma variável `calls` que outro hook conta, como no [mod do tutorial](/docs/pt/plugins/mods/create#write-a-mod-yourself).

230 232 

231<Tabs>233<Tabs>


297 299 

298O prompt de permissão não é um site de renderização, então um mod não pode alterar o que mostra. O diálogo de pergunta, `AskUserQuestion`, é um, então um mod pode alterar isso. Uma árvore para o diálogo precisa conter a referência exatamente uma vez, com seus elementos acima dela. Caso contrário, o Claude Code desenha seu próprio diálogo.300O prompt de permissão não é um site de renderização, então um mod não pode alterar o que mostra. O diálogo de pergunta, `AskUserQuestion`, é um, então um mod pode alterar isso. Uma árvore para o diálogo precisa conter a referência exatamente uma vez, com seus elementos acima dela. Caso contrário, o Claude Code desenha seu próprio diálogo.

299 301 

300O terminal e o app Desktop não disparam todos os mesmos sites. `Pane`, `AbovePrompt`, `Spinner` e os sites de transcrição funcionam em ambos. Algumas outras linhas de status são disparadas apenas no terminal. A [tabela de sites de renderização](/docs/pt/plugins/mods/reference#render-sites) lista onde cada um é disparado.

301 

302<h3 id="open-a-pane-at-the-right-time">302<h3 id="open-a-pane-at-the-right-time">

303 Abrir um painel no momento certo303 Abrir um painel no momento certo

304</h3>304</h3>


328| `rows` | A altura para pedir quando o painel fica acima do prompt. O padrão é um terço do espaço. |328| `rows` | A altura para pedir quando o painel fica acima do prompt. O padrão é um terço do espaço. |

329| `columns` | A largura para pedir quando o painel fica ao lado da transcrição |329| `columns` | A largura para pedir quando o painel fica ao lado da transcrição |

330 330 

331A [extensão do VS Code](#draw-in-the-vs-code-extension) ignora `rows` e `columns` e dimensiona o painel por conta própria.

332 

331`focus`, `closeOnEscape` e `holdToasts` são opcionais e aceitam apenas `true`. Para deixar um de fora, omita-o. Passar `false` lança um erro como `ui.open: focus is true or left out`. Para definir um deles condicionalmente, adicione o campo apenas quando a condição se mantiver. Esta chamada solicita foco do teclado apenas quando `items` não está vazio:333`focus`, `closeOnEscape` e `holdToasts` são opcionais e aceitam apenas `true`. Para deixar um de fora, omita-o. Passar `false` lança um erro como `ui.open: focus is true or left out`. Para definir um deles condicionalmente, adicione o campo apenas quando a condição se mantiver. Esta chamada solicita foco do teclado apenas quando `items` não está vazio:

332 334 

333```javascript theme={null}335```javascript theme={null}


356 358 

357Quando o painel aparece, `$.ui.open` resolve para `{ isPlaced: true }`. Quando o painel está esperando, `isPlaced` é `false` e `reason` é uma string que diz por quê. Um painel esperando aparece quando o usuário o abre ou amplia o terminal. Para dizer que algo está disponível sem abrir um painel, chame `$.ui.toast('Your message')`, que mostra uma notificação toast.359Quando o painel aparece, `$.ui.open` resolve para `{ isPlaced: true }`. Quando o painel está esperando, `isPlaced` é `false` e `reason` é uma string que diz por quê. Um painel esperando aparece quando o usuário o abre ou amplia o terminal. Para dizer que algo está disponível sem abrir um painel, chame `$.ui.toast('Your message')`, que mostra uma notificação toast.

358 360 

361<h3 id="draw-in-the-vs-code-extension">

362 Desenhar na extensão do VS Code

363</h3>

364 

365Na extensão do VS Code, o que um mod desenha aparece no painel de chat com a versão 2.1.299 ou posterior da extensão, em uma sessão que [busca feature flags](/docs/pt/env-vars#features-that-need-feature-flag-fetching). Em um hook `ui.render` para o painel, `e.surface` é `vscode`. Para verificar quais pontos e elementos o painel desenha, e quais props ele ignora, consulte as tabelas de [pontos de renderização](/docs/pt/plugins/mods/reference#render-sites) e de [elementos](/docs/pt/plugins/mods/reference#elements).

366 

367Para fazer um mod funcionar no painel assim como no terminal, leve em conta estas diferenças:

368 

369* **Painéis**: em um painel de chat com 800 pixels ou mais de largura, os painéis se encaixam ao lado da conversa, `e.props.placement` é `'dock'` e `e.viewport.isFullscreen` é `true`. Em um painel de chat mais estreito, os painéis são desenhados acima da caixa do prompt, `placement` é `'inline'` e um painel mostra 12 linhas antes de rolar.

370* **Toasts e linhas de status**: ficam em uma única pilha diretamente acima da caixa do prompt, junto com os painéis quando o painel de chat é estreito, com uma linha de status por mod. A pilha fica oculta enquanto uma solicitação de permissão ou um diálogo é exibido.

371* **Rótulos**: o painel de chat enquadra o que um mod desenha ou reescreve e o rotula com o nome do plugin, como em **From the token-chart plugin** ou **Edited by the token-chart plugin**.

372* **Teclado**: os botões não têm teclas de atalho, então o usuário clica em um botão ou pressiona Enter nele quando ele tem o foco.

373* **Foco do teclado**: o painel de chat concede a solicitação `focus: true` de um painel apenas quando o painel de chat tem o foco, o Claude está ocioso sem nenhuma pergunta aguardando e a caixa do prompt está vazia.

374* **O diálogo de pergunta**: em `AskUserQuestion`, o painel de chat mantém seu próprio cartão de pergunta e desenha seus elementos acima dele. As props que você passa para `next` não alteram o cartão.

375* **Sugestões de prompt**: `$.prompt.suggest` resolve com `isShown: false` e não mostra nada, porque o painel de chat reserva o texto de sugestão esmaecido da caixa do prompt para as próprias sugestões do Claude.

376* **Limites de texto**: o painel de chat corta uma linha de status em 200 caracteres ou duas linhas, e um toast em 500 caracteres.

377 

359<h2 id="build-a-tree-from-elements">378<h2 id="build-a-tree-from-elements">

360 Construir uma árvore a partir de elementos379 Construir uma árvore a partir de elementos

361</h2>380</h2>

362 381 

363O que um hook `ui.render` retorna é uma árvore de elementos: uma descrição do que desenhar, feita de caixas, texto e controles aninhados um dentro do outro. Você descreve o desenho, e o Claude Code o renderiza no terminal ou no app Desktop.382O que um hook `ui.render` retorna é uma árvore de elementos: uma descrição do que desenhar, feita de caixas, texto e controles aninhados um dentro do outro. Você descreve o desenho, e o Claude Code o renderiza no app que o usuário tiver aberto: o terminal, o app Desktop ou a extensão do VS Code.

364 383 

365Para obter os elementos, chame `$.ui.resolve(e)` em seu hook, como em `const { Box, Text, Button } = $.ui.resolve(e)`. Cada elemento é uma função. Você passa propriedades para ela, e coloca os elementos e strings que vão dentro dela em `children`.384Para obter os elementos, chame `$.ui.resolve(e)` em seu hook, como em `const { Box, Text, Button } = $.ui.resolve(e)`. Cada elemento é uma função. Você passa propriedades para ela, e coloca os elementos e strings que vão dentro dela em `children`.

366 385 


440| `Text` | Texto estilizado. Leva `color`, `bold`, `dimColor`, `italic` e `wrap`. Uma `color` é uma chave de tema ou uma cor como `'red'`. Um `wrap` é `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'` ou `'truncate-end'`. | Em todos os lugares |459| `Text` | Texto estilizado. Leva `color`, `bold`, `dimColor`, `italic` e `wrap`. Uma `color` é uma chave de tema ou uma cor como `'red'`. Um `wrap` é `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'` ou `'truncate-end'`. | Em todos os lugares |

441| `Button` | Um controle que chama `onPress` | Em todos os lugares |460| `Button` | Um controle que chama `onPress` | Em todos os lugares |

442| `Link`, `Code`, `Markdown` | Um link com `href` e um `label` opcional, um bloco de código e texto formatado da forma que as respostas do Claude são. `Markdown` leva seu conteúdo em uma propriedade `text`, não em `children`, e precisa de uma `key` quando você passa `onLinkPress`. | Em todos os lugares |461| `Link`, `Code`, `Markdown` | Um link com `href` e um `label` opcional, um bloco de código e texto formatado da forma que as respostas do Claude são. `Markdown` leva seu conteúdo em uma propriedade `text`, não em `children`, e precisa de uma `key` quando você passa `onLinkPress`. | Em todos os lugares |

443| `Input`, `Select` | Um campo de texto e um seletor | Terminal, Desktop |462| `Input`, `Select` | Um campo de texto e um seletor | Terminal, Desktop, VS Code |

444| `Svg` | Um documento SVG | Desktop |463| `Svg` | Um documento SVG | Desktop, VS Code |

445| `Client` | Uma região desenhada por um segundo arquivo seu, para animação e entrada de ponteiro. Esse arquivo não recebe API de mods. Ele alcança seus hooks postando dados, que chegam como um evento `ui.message`. Se ele falhar ao carregar, desenhar ou executar, seus hooks recebem um evento [`ui.fault`](/docs/pt/plugins/mods/reference#interface). | Terminal, Desktop |464| `Client` | Uma região desenhada por um segundo arquivo seu, para animação e entrada de ponteiro. Esse arquivo não recebe API de mods. Ele alcança seus hooks postando dados, que chegam como um evento `ui.message`. Se ele falhar ao carregar, desenhar ou executar, seus hooks recebem um evento [`ui.fault`](/docs/pt/plugins/mods/reference#interface). | Terminal, Desktop |

446| `Raster`, `Image` | Uma [grade de células coloridas](#draw-a-grid-of-colored-cells) e uma imagem | Terminal |465| `Raster`, `Image` | Uma [grade de células coloridas](#draw-a-grid-of-colored-cells) e uma imagem | Terminal |

447 466 


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

453 472 

454<h3 id="link-in-the-desktop-app">473<h3 id="link-in-the-desktop-app">

455 `Link` no app Desktop474 `Link` no app Desktop e no VS Code

456</h3>475</h3>

457 476 

458No app Desktop, um `Link` é desenhado como texto simples, a menos que seu `href` atenda a estes requisitos:477No app Desktop e na extensão do VS Code, um `Link` é desenhado como texto simples, a menos que seu `href` atenda a estes requisitos:

459 478 

460* **Esquema e host**: uma URL `https:`, ou uma URL `http://localhost` como `http://localhost:3000`479* **Esquema e host**: uma URL `https:`, ou uma URL `http://localhost` como `http://localhost:3000`

461* **Sem `@`**: escreva um `@` no caminho ou na query como `%40`480* **Sem `@`**: escreva um `@` no caminho ou na query como `%40`


477 496 

478Para um mapa de calor, um sparkline ou um tabuleiro de jogo no terminal, desenhe um `Raster` e não uma `Box` para cada célula. Um `Raster` leva uma `key`, seu tamanho em `columns` e `rows`, e `cells`, uma string base64 que empacota cada célula. Cada célula é três números: o ponto de código do caractere, sua cor e sua cor de fundo. Uma cor é um valor RGB de 24 bits em hexadecimal, como `0xc62828` para um vermelho. O valor `0x01000000`, um acima desse intervalo, significa o padrão do terminal.497Para um mapa de calor, um sparkline ou um tabuleiro de jogo no terminal, desenhe um `Raster` e não uma `Box` para cada célula. Um `Raster` leva uma `key`, seu tamanho em `columns` e `rows`, e `cells`, uma string base64 que empacota cada célula. Cada célula é três números: o ponto de código do caractere, sua cor e sua cor de fundo. Uma cor é um valor RGB de 24 bits em hexadecimal, como `0xc62828` para um vermelho. O valor `0x01000000`, um acima desse intervalo, significa o padrão do terminal.

479 498 

480O app Desktop não tem `Raster`, então verifique `e.surface` e desenhe texto lá. Este corpo de painel desenha um mapa de calor de três por dois:499Os apps que não são o terminal não têm `Raster`, então verifique `e.surface` e desenhe texto lá. Este corpo de painel desenha um mapa de calor de três por dois:

481 500 

482```javascript theme={null}501```javascript theme={null}

483// The value that means "use the terminal's default color"502// The value that means "use the terminal's default color"


535 554 

536Seu mod nunca lê o teclado por si só. O usuário pressiona uma tecla, o Claude Code decide qual de seus controles é para, e o callback desse controle é executado. Além de um [atalho de teclado de dígito na faixa](/docs/pt/plugins/mods/reference#elements), isso acontece apenas enquanto seu painel ou faixa tem foco do teclado. O resto do tempo, as teclas vão para o prompt.555Seu mod nunca lê o teclado por si só. O usuário pressiona uma tecla, o Claude Code decide qual de seus controles é para, e o callback desse controle é executado. Além de um [atalho de teclado de dígito na faixa](/docs/pt/plugins/mods/reference#elements), isso acontece apenas enquanto seu painel ou faixa tem foco do teclado. O resto do tempo, as teclas vão para o prompt.

537 556 

557Na [extensão do VS Code](#draw-in-the-vs-code-extension), os botões não têm atalhos de teclado: o usuário clica em um botão ou pressiona Enter nele, e digita nos campos.

558 

538<h4 id="how-a-pane-gets-keyboard-focus">559<h4 id="how-a-pane-gets-keyboard-focus">

539 Como um painel obtém foco do teclado560 Como um painel obtém foco do teclado

540</h4>561</h4>


570 Definir um atalho de teclado e o primeiro foco591 Definir um atalho de teclado e o primeiro foco

571</h4>592</h4>

572 593 

573Estas propriedades em um controle decidem como o teclado o alcança:

574 

575* **`hotkey`**: para deixar o usuário pressionar um `Button` com uma tecla, dê a ele um `hotkey` de um dígito ou uma letra minúscula, como em `hotkey: 'a'`594* **`hotkey`**: para deixar o usuário pressionar um `Button` com uma tecla, dê a ele um `hotkey` de um dígito ou uma letra minúscula, como em `hotkey: 'a'`

576* **`autoFocus`**: para escolher qual controle tem o foco quando o painel abre, adicione `autoFocus: true` a ele. A propriedade aceita apenas `true`, então omita-a nos outros controles.595* **`autoFocus`**: para escolher qual controle tem o foco quando o painel abre, adicione `autoFocus: true` a ele. Na [extensão do VS Code](#draw-in-the-vs-code-extension), `autoFocus` não faz nada: o controle é desenhado como se você o tivesse omitido, e você não precisa alterar nada. A prop aceita apenas `true`, então omita-a nos outros controles.

577 596 

578Como um atalho de teclado mostra depende do botão e do app:597Como um atalho de teclado mostra depende do botão e do app:

579 598 

580| Botão | No terminal | No app Desktop |599| Botão | No terminal | No app Desktop | Na extensão do VS Code |

581| :- | :- | :- |600| :- | :- | :- | :- |

582| Com colchetes, o padrão | `[ Add one ]`, sem atalho de teclado mostrado | O rótulo com uma pequena tecla ao lado |601| Com colchetes, o padrão | `[ Add one ]`, sem atalho de teclado mostrado | O rótulo com uma pequena tecla ao lado | O rótulo, e o atalho de teclado não faz nada |

583| Com `plain: true` | `1: One` | O rótulo com uma pequena tecla ao lado |602| Com `plain: true` | `1: One` | O rótulo com uma pequena tecla ao lado | O rótulo, e o atalho de teclado não faz nada |

584 603 

585No terminal, nomeie a tecla no rótulo de um botão entre colchetes, ou use `plain: true`, para que o usuário possa ver o que pressionar. A [referência de elementos](/docs/pt/plugins/mods/reference#elements) tem as outras regras de `Button`: `action`, atalhos de teclado de dígito na faixa e dois botões em um atalho de teclado.604No terminal, nomeie a tecla no rótulo de um botão entre colchetes, ou use `plain: true`, para que o usuário possa ver o que pressionar. A [referência de elementos](/docs/pt/plugins/mods/reference#elements) tem as outras regras de `Button`: `action`, atalhos de teclado de dígito na faixa e dois botões em um atalho de teclado.

586 605 

Details

24* **Executar seu próprio código em um comando**: um `/command` que executa sua função imediatamente, sem nenhum turno do Claude, mesmo enquanto o Claude está trabalhando. Veja [Adicionar um comando ou uma ferramenta](/docs/pt/plugins/mods/api#add-a-command-or-a-tool).24* **Executar seu próprio código em um comando**: um `/command` que executa sua função imediatamente, sem nenhum turno do Claude, mesmo enquanto o Claude está trabalhando. Veja [Adicionar um comando ou uma ferramenta](/docs/pt/plugins/mods/api#add-a-command-or-a-tool).

25* **Compartilhar dados entre hooks**: os hooks de um mod compartilham as variáveis em seu arquivo, então o que um hook registra, outro pode mostrar. Por exemplo, um hook pode contar chamadas de ferramenta enquanto outro mostra a contagem ao lado do spinner, ou um pode ler o uso de tokens de cada solicitação enquanto outro o mostra em gráfico em um painel. Veja [Reagir a eventos](/docs/pt/plugins/mods/events).25* **Compartilhar dados entre hooks**: os hooks de um mod compartilham as variáveis em seu arquivo, então o que um hook registra, outro pode mostrar. Por exemplo, um hook pode contar chamadas de ferramenta enquanto outro mostra a contagem ao lado do spinner, ou um pode ler o uso de tokens de cada solicitação enquanto outro o mostra em gráfico em um painel. Veja [Reagir a eventos](/docs/pt/plugins/mods/events).

26 26 

27Os mods funcionam no CLI do Claude Code e na aba Code do aplicativo Claude Desktop. Veja [Onde os mods são executados](#where-mods-run) para entender como eles se comportam em outros lugares, como na extensão VS Code, `claude -p` e sessões na nuvem. Se um settings hook, uma skill ou um servidor MCP já faz o que você precisa, [compare-os](#compare-mods-settings-hooks-skills-and-mcp-servers) antes de escrever um mod. Para gerenciar mods para uma organização, veja [Gerenciar mods para sua organização](/docs/pt/plugins/mods/admin).27Os mods funcionam no CLI do Claude Code, na aba Code do aplicativo Claude Desktop e na extensão do VS Code. Veja [Onde os mods são executados](#where-mods-run) para entender como eles se comportam em outros lugares, como em `claude -p` e em sessões na nuvem. Se um hook de configuração, uma skill ou um servidor MCP já faz o que você precisa, [compare-os](#compare-mods-settings-hooks-skills-and-mcp-servers) antes de escrever um mod. Para gerenciar mods para uma organização, veja [Gerenciar mods para sua organização](/docs/pt/plugins/mods/admin).

28 28 

29<h2 id="get-a-mod">29<h2 id="get-a-mod">

30 Obter um mod30 Obter um mod


212 Onde os mods são executados212 Onde os mods são executados

213</h3>213</h3>

214 214 

215Os hooks de um mod são executados em todos os tipos de sessão que carregam o plugin, qualquer que seja o provedor que atende o modelo, incluindo Amazon Bedrock, Agent Platform do Google Cloud e Microsoft Foundry. O desenho é mais restrito: apenas o terminal e o aplicativo Desktop mostram painéis, faixas e linhas substituídas de um mod. Esta tabela lista cada lugar onde você pode executar o Claude Code:215Os hooks de um mod são executados em todos os tipos de sessão que carregam o plugin, qualquer que seja o provedor que atende o modelo, incluindo Amazon Bedrock, Agent Platform do Google Cloud e Microsoft Foundry. O desenho é mais restrito: o que um mod desenha aparece no terminal, no aplicativo Desktop e na extensão VS Code. Esta tabela lista cada lugar onde você pode executar o Claude Code:

216 216 

217| Onde você executa o Claude Code | Hooks são executados | O que o mod desenha aparece |217| Onde você executa o Claude Code | Hooks são executados | O que o mod desenha aparece |

218| :- | :- | :- |218| :- | :- | :- |

219| `claude` em um terminal, incluindo o terminal integrado de um editor e o plugin JetBrains | Sim | Sim |219| `claude` em um terminal, incluindo o terminal integrado de um editor e o plugin JetBrains | Sim | Sim |

220| A aba Code do aplicativo Desktop, exceto em uma sessão WSL | Sim | Sim, exceto elementos que a [tabela de elementos](/docs/pt/plugins/mods/reference#elements) marca como apenas terminal |220| A aba Code do aplicativo Desktop, exceto em uma sessão WSL | Sim | Sim, exceto elementos que a [tabela de elementos](/docs/pt/plugins/mods/reference#elements) marca como apenas terminal |

221| Uma [sessão WSL](/docs/pt/desktop-wsl) no aplicativo Desktop | Não, porque plugins não estão disponíveis em sessões WSL | Não |221| Uma [sessão WSL](/docs/pt/desktop-wsl) no aplicativo Desktop | Não, porque plugins não estão disponíveis em sessões WSL | Não |

222| O painel de chat da extensão VS Code | Sim | Não |222| O painel de chat da extensão VS Code | Sim | Sim, com a versão 2.1.299 ou posterior da extensão, em uma sessão que [busca feature flags](/docs/pt/env-vars#features-that-need-feature-flag-fetching). As tabelas de [pontos de renderização](/docs/pt/plugins/mods/reference#render-sites) e de [elementos](/docs/pt/plugins/mods/reference#elements) marcam o que o painel desenha. |

223| `claude -p` e o [Agent SDK](/docs/pt/agent-sdk/overview) | Sim | Não |223| `claude -p` e o [Agent SDK](/docs/pt/agent-sdk/overview) | Sim | Não |

224| [Remote Control](/docs/pt/remote-control) de claude.ai ou do aplicativo móvel | Sim, na sessão em sua máquina | No terminal em sua máquina |224| [Remote Control](/docs/pt/remote-control) de claude.ai ou do aplicativo móvel | Sim, na sessão em sua máquina | No terminal em sua máquina |

225| Uma [sessão na nuvem](/docs/pt/claude-code-on-the-web) | Sim, para um plugin que [alcança a sessão na nuvem](/docs/pt/cloud-environments#what-carries-over-from-your-setup) | Não |225| Uma [sessão na nuvem](/docs/pt/claude-code-on-the-web) | Sim, para um plugin que [alcança a sessão na nuvem](/docs/pt/cloud-environments#what-carries-over-from-your-setup) | Não |

Details

6 6 

7> Referência completa para mods do Claude Code: estrutura do módulo de hooks, eventos, métodos da API de mods, pontos de renderização, elementos por superfície, limites e configurações.7> Referência completa para mods do Claude Code: estrutura do módulo de hooks, eventos, métodos da API de mods, pontos de renderização, elementos por superfície, limites e configurações.

8 8 

9Consulte qualquer evento que um [mod](/docs/pt/plugins/mods/overview) pode tratar, método da API de mods que ele pode chamar ou ponto de renderização em que ele pode desenhar, para a CLI do Claude Code e o aplicativo Desktop a partir da v2.1.290. Cada entrada fornece o nome e uma descrição de uma linha, e aponta para a seção do guia que a explica, quando houver.9Consulte qualquer evento que um [mod](/docs/pt/plugins/mods/overview) pode tratar, método da API de mods que ele pode chamar ou ponto de renderização em que ele pode desenhar. As entradas abrangem a CLI do Claude Code e o aplicativo Desktop a partir da v2.1.290, e a extensão do VS Code a partir da v2.1.299. Cada entrada fornece o nome e uma descrição de uma linha, e aponta para a seção do guia que a explica, quando houver.

10 10 

11<Note>11<Note>

12 A referência completa são as [declarações TypeScript para mods](https://github.com/anthropics/claude-code/blob/main/mods/types/claude-code.d.ts) do Claude Code, que descrevem cada evento, método e elemento, com exemplos. A cópia no GitHub pode ser mais antiga que a versão do Claude Code que você tem instalada. Quando as duas divergirem, confie [na cópia que o Claude Code grava para a sua versão](/docs/pt/plugins/mods/create#get-the-types-for-your-build).12 A referência completa são as [declarações TypeScript para mods](https://github.com/anthropics/claude-code/blob/main/mods/types/claude-code.d.ts) do Claude Code, que descrevem cada evento, método e elemento, com exemplos. A cópia no GitHub pode ser mais antiga que a versão do Claude Code que você tem instalada. Quando as duas divergirem, confie [na cópia que o Claude Code grava para a sua versão](/docs/pt/plugins/mods/create#get-the-types-for-your-build).


255 Pontos de renderização255 Pontos de renderização

256</h2>256</h2>

257 257 

258Um ponto de renderização é um ponto de extensão na interface do Claude Code. Cada linha é um valor de `e.component` em um hook `ui.render`, com os campos de `e.props` e os aplicativos que o renderizam. `e.surface` é `terminal` ou `desktop`. [Alterar o que o Claude Code já desenha](/docs/pt/plugins/mods/interface#change-what-claude-code-already-draws) mostra o que um hook pode fazer em um ponto, com um exemplo de cada opção.258Um ponto de renderização é um ponto de extensão na interface do Claude Code. Cada linha é um valor de `e.component` em um hook `ui.render`, com os campos de `e.props` e os aplicativos que o renderizam. `e.surface` indica o aplicativo que está desenhando, como `terminal`, `desktop` ou `vscode`. [Alterar o que o Claude Code já desenha](/docs/pt/plugins/mods/interface#change-what-claude-code-already-draws) mostra o que um hook pode fazer em um ponto, com um exemplo de cada opção.

259 

260A renderização na extensão do VS Code requer a versão 2.1.299 ou posterior da extensão e uma sessão que [busque feature flags](/docs/pt/env-vars#features-that-need-feature-flag-fetching). [Desenhar na extensão do VS Code](/docs/pt/plugins/mods/interface#draw-in-the-vs-code-extension) lista o que a extensão desenha de forma diferente.

259 261 

260| Ponto | `e.props` | `e.requestId` | Renderizado em |262| Ponto | `e.props` | `e.requestId` | Renderizado em |

261| :- | :- | :- | :- |263| :- | :- | :- | :- |

262| [`Pane`](/docs/pt/plugins/mods/interface#pick-where-to-draw) | `title`, `isFocused`, `bodyColumns`, `placement`, `scroll`, `view` | O `id` do painel | Terminal, Desktop |264| [`Pane`](/docs/pt/plugins/mods/interface#pick-where-to-draw) | `title`, `isFocused`, `bodyColumns`, `placement`, `scroll`, `view` | O `id` do painel | Terminal, Desktop, VS Code |

263| [`AbovePrompt`](/docs/pt/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Uma instância | Terminal, Desktop |265| [`AbovePrompt`](/docs/pt/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Uma instância | Terminal, Desktop |

264| `UserMessage` | `text`, `origin`, `isExpanded` e `task` ou `from` conforme a origem | O id da mensagem | Terminal, Desktop |266| `UserMessage` | `text`, `origin`, `isExpanded` e `task` ou `from` conforme a origem | O id da mensagem | Terminal, Desktop, VS Code |

265| `AssistantMessage` | O texto da resposta | O id da mensagem | Terminal, Desktop |267| `AssistantMessage` | O texto da resposta | O id da mensagem | Terminal, Desktop, VS Code |

266| `ToolUse`, `ToolResult`, `ToolGroup` | O nome, a entrada e o resultado da ferramenta | O id da chamada de ferramenta | Terminal, Desktop |268| `ToolUse`, `ToolResult`, `ToolGroup` | O nome, a entrada e o resultado da ferramenta | O id da chamada de ferramenta | Terminal, Desktop, VS Code |

267| `CommandOutput` | `command`, `text` | O id da mensagem | Terminal, Desktop |269| `CommandOutput` | `command`, `text` | O id da mensagem | Terminal, Desktop |

268| [`AskUserQuestion`](/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 |270| [`AskUserQuestion`](/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 |

269| `ToolProgress` | `kind` | O id da chamada de ferramenta | Terminal |271| `ToolProgress` | `kind` | O id da chamada de ferramenta | Terminal |

270| [`Spinner`](/docs/pt/plugins/mods/interface#change-what-claude-code-already-draws) | `word`, `message`, `suffix`, `mode` | O id do agente | Terminal, Desktop |272| [`Spinner`](/docs/pt/plugins/mods/interface#change-what-claude-code-already-draws) | `word`, `message`, `suffix`, `mode` | O id do agente | Terminal, Desktop, VS Code |

271| `TurnDuration` | `word`, `durationMs` | O id da mensagem | Terminal |273| `TurnDuration` | `word`, `durationMs` | O id da mensagem | Terminal |

272| `InfoNotice` | `text`, `command` | O id da mensagem | Terminal |274| `InfoNotice` | `text`, `command` | O id da mensagem | Terminal |

273| `SessionMode` | `modes` | Uma instância | Terminal, Desktop |275| `SessionMode` | `modes` | Uma instância | Terminal, Desktop |

274| `PromptHint` | `isDraft`, `isWorking`, `hint` | Uma instância | Terminal, Desktop |276| `PromptHint` | `isDraft`, `isWorking`, `hint` | Uma instância | Terminal, Desktop |

275 277 

276`e.viewport` contém `columns`, `rows` e `isFullscreen`. Ele está ausente até que o aplicativo tenha medido sua janela. Seu `rows` é a altura da janela inteira, não do seu painel.278`e.viewport` contém `columns`, `rows` e `isFullscreen`. No terminal e no aplicativo Desktop, ele está ausente até que o aplicativo tenha medido sua janela. Nesses casos, seu `rows` é a altura da janela inteira, não do seu painel. Na extensão do VS Code, ele está sempre presente.

277 279 

278Para ajustar uma árvore ao seu ponto, leia estas props no hook:280Para ajustar uma árvore ao seu ponto, leia estas props no hook:

279 281 

280* **Largura de um `Pane` ou da faixa**: desenhe até `e.props.bodyColumns`282* **Largura de um `Pane` ou da faixa**: desenhe até `e.props.bodyColumns`

281* **Altura de um `Pane` ao lado da transcrição**: quando `e.props.placement` é `'dock'`, `e.props.scroll.bodyRows` é o número de linhas que o painel tem para a sua árvore283* **Altura de um `Pane` ao lado da transcrição**: quando `e.props.placement` é `'dock'`, `e.props.scroll.bodyRows` é o número de linhas que o painel tem para a sua árvore

282* **Altura de um `Pane` acima do prompt**: quando `e.props.placement` é `'inline'`, o painel cresce com a sua árvore até um limite, e `bodyRows` é esse limite. O [campo `rows` de `$.ui.open`](/docs/pt/plugins/mods/interface#open-a-pane-at-the-right-time) solicita um limite diferente.284* **Altura de um `Pane` acima do prompt**: quando `e.props.placement` é `'inline'`, o painel cresce com a sua árvore até um limite, e `bodyRows` é esse limite. Para solicitar um limite diferente, consulte o [campo `rows` de `$.ui.open`](/docs/pt/plugins/mods/interface#open-a-pane-at-the-right-time).

283 285 

284Uma árvore mais alta que o painel rola como um todo.286Uma árvore mais alta que o painel rola como um todo.

285 287 


289 291 

290Elementos são os blocos de construção de uma árvore que um hook `ui.render` retorna, e você os obtém de `$.ui.resolve(e)`. [Construir uma árvore a partir de elementos](/docs/pt/plugins/mods/interface#build-a-tree-from-elements) mostra os mais comuns com a forma como o terminal os desenha, e a [galeria da interface](/docs/pt/plugins/mods/gallery) tem capturas de tela da maioria. Uma marca de seleção significa que o aplicativo pode desenhar o elemento.292Elementos são os blocos de construção de uma árvore que um hook `ui.render` retorna, e você os obtém de `$.ui.resolve(e)`. [Construir uma árvore a partir de elementos](/docs/pt/plugins/mods/interface#build-a-tree-from-elements) mostra os mais comuns com a forma como o terminal os desenha, e a [galeria da interface](/docs/pt/plugins/mods/gallery) tem capturas de tela da maioria. Uma marca de seleção significa que o aplicativo pode desenhar o elemento.

291 293 

292| Elemento | Props principais | Terminal | Desktop |294| Elemento | Props principais | Terminal | Desktop | VS Code |

293| :- | :- | :-: | :-: |295| :- | :- | :-: | :-: | :-: |

294| [`Box`](/docs/pt/plugins/mods/interface#build-a-tree-from-elements) | `key`, layout flex, `gap`, `padding`, `margin`, `width`, `height`, [`borderStyle`](#box-border-styles), `backgroundColor`, `position`, `hover` | ✓ | ✓ |296| [`Box`](/docs/pt/plugins/mods/interface#build-a-tree-from-elements) | `key`, layout flex, `gap`, `padding`, `margin`, `width`, `height`, [`borderStyle`](#box-border-styles), `backgroundColor`, `position`, `hover` | ✓ | ✓ | ✓ |

295| [`Text`](/docs/pt/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ |297| [`Text`](/docs/pt/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ | ✓ |

296| [`Button`](/docs/pt/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ |298| [`Button`](/docs/pt/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ | ✓ |

297| [`Link`](/docs/pt/plugins/mods/interface#link-in-the-desktop-app) | `href`, `label`. Consulte [Limites](#limits). | ✓ | ✓ |299| [`Link`](/docs/pt/plugins/mods/interface#link-in-the-desktop-app) | `href`, `label`. Consulte [Limites](#limits). | ✓ | ✓ | ✓ |

298| [`Code`](/docs/pt/plugins/mods/gallery#show-code-and-changes) | `source`, `language`, `path`, `startLine`, `format`, `wrap` | ✓ | ✓ |300| [`Code`](/docs/pt/plugins/mods/gallery#show-code-and-changes) | `source`, `language`, `path`, `startLine`, `format`, `wrap` | ✓ | ✓ | ✓ |

299| `Markdown` | `text`, `key`, `dimColor`, `onLinkPress`, `pressableLinks` | ✓ | ✓ |301| `Markdown` | `text`, `key`, `dimColor`, `onLinkPress`, `pressableLinks` | ✓ | ✓ | ✓ |

300| [`Input`](/docs/pt/plugins/mods/interface#take-typed-input-and-draw-a-row-for-each-item) | `key`, `label`, `placeholder`, `value`, `submitLabel`, `onSubmit`, `onInput`, `autoFocus` | ✓ | ✓ |302| [`Input`](/docs/pt/plugins/mods/interface#take-typed-input-and-draw-a-row-for-each-item) | `key`, `label`, `placeholder`, `value`, `submitLabel`, `onSubmit`, `onInput`, `autoFocus` | ✓ | ✓ | ✓ |

301| `Select` | `key`, `label`, `options`, `value`, `onSelect`, `autoFocus` | ✓ | ✓ |303| `Select` | `key`, `label`, `options`, `value`, `onSelect`, `autoFocus` | ✓ | ✓ | ✓ |

302| `Svg` | Um documento SVG, até 131.072 caracteres | | ✓ |304| `Svg` | Um documento SVG, até 131.072 caracteres | | ✓ | ✓ |

303| [`Client`](/docs/pt/plugins/mods/interface#build-a-tree-from-elements) | `module`, `key` | ✓ | ✓ |305| [`Client`](/docs/pt/plugins/mods/interface#build-a-tree-from-elements) | `module`, `key` | ✓ | ✓ | |

304| [`Raster`](/docs/pt/plugins/mods/interface#draw-a-grid-of-colored-cells) | `key`, `columns` até 512, `rows` até 256, `cells`. Consulte [Desenhar uma grade de células coloridas](/docs/pt/plugins/mods/interface#draw-a-grid-of-colored-cells). | ✓ | |306| [`Raster`](/docs/pt/plugins/mods/interface#draw-a-grid-of-colored-cells) | `key`, `columns` até 512, `rows` até 256, `cells`. Consulte [Desenhar uma grade de células coloridas](/docs/pt/plugins/mods/interface#draw-a-grid-of-colored-cells). | ✓ | | |

305| `Image` | Bytes PNG ou RGBA até 2 MiB, ou um caminho de arquivo, `columns` e `rows` até 255, e texto `alt`. | ✓ | |307| `Image` | Bytes PNG ou RGBA até 2 MiB, ou um caminho de arquivo, `columns` e `rows` até 255, e texto `alt`. | ✓ | | |

306 308 

307Mais regras de `Button`: `action` indica uma das próprias [ações de atalho de teclado](/docs/pt/keybindings) do Claude Code, e o atalho do usuário para ela pressiona o botão quando esse atalho é um acorde ou uma tecla com modificador. Um `hotkey` numérico em um botão na faixa também é acionado quando o usuário digita apenas esse dígito em um prompt vazio e faz uma pausa. Quando dois botões em um mesmo desenho indicam o mesmo `hotkey`, o posterior fica com ele. `autoFocus` aceita apenas `true` em qualquer controle, então omita a prop para deixá-lo desativado.309Mais regras de `Button`: `action` indica uma das próprias [ações de atalho de teclado](/docs/pt/keybindings) do Claude Code, e o atalho do usuário para ela pressiona o botão quando esse atalho é um acorde ou uma tecla com modificador. Um `hotkey` numérico em um botão na faixa também é acionado quando o usuário digita apenas esse dígito em um prompt vazio e faz uma pausa. Quando dois botões em um mesmo desenho indicam o mesmo `hotkey`, o posterior fica com ele. `autoFocus` aceita apenas `true` em qualquer controle, então omita a prop para deixá-lo desativado.

308 310 

311A extensão do VS Code ignora algumas props de elementos e desenha o elemento como se você as tivesse omitido:

312 

313* **`Box`**: `position` e `hover`

314* **`Button`**: `hotkey`, `plain`, `autoFocus` e `action`, então o usuário pressiona um botão ali com um clique, ou com Enter quando ele estiver com o foco

315* **`Code`**: `language`, `path`, `startLine`, `format` e `wrap`, então o código é desenhado sem cores nem números de linha, e um bloco `format: 'diff'` mostra o texto bruto do diff

316* **`Input` e `Select`**: `autoFocus`

317 

309<h3 id="box-border-styles">318<h3 id="box-border-styles">

310 Estilos de borda de `Box`319 Estilos de borda de `Box`

311</h3>320</h3>

Details

289 Hotkeys não fazem nada289 Hotkeys não fazem nada

290</h3>290</h3>

291 291 

292Seu painel não tem foco de teclado.292Seu painel não tem foco de teclado, ou o desenho está na extensão do VS Code, onde os botões não têm hotkeys. Faça o que corresponder ao seu caso:

293 293 

294Pressione Ctrl+X depois Tab, ou clique no painel. Abra-o com `focus: true` a partir de um comando.294* **Sem foco de teclado**: pressione Ctrl+X depois Tab, ou clique no painel. Para que o painel receba o foco ao abrir, abra-o com `focus: true` a partir de um comando.

295* **Na extensão do VS Code**: clique no botão, ou pressione Enter sobre ele quando estiver com o foco

295 296 

296<h3 id="a-drawing-works-in-the-terminal-and-not-in-the-desktop-app">297<h3 id="a-drawing-works-in-the-terminal-and-not-in-the-desktop-app-or-vs-code">

297 Um desenho funciona no terminal e não no aplicativo Desktop298 Um desenho funciona no terminal e não no aplicativo Desktop ou no VS Code

298</h3>299</h3>

299 300 

300O ponto de renderização ou elemento não está disponível lá.301Ou esse aplicativo não desenha o ponto de renderização ou o elemento, ou a sessão é uma em que a extensão do VS Code não desenha nada para mods. Os outros hooks do mod continuam sendo executados. Verifique estas causas:

301 302 

302Verifique as tabelas de [pontos de renderização](/docs/pt/plugins/mods/reference#render-sites) e de [elementos](/docs/pt/plugins/mods/reference#elements).303* **O ponto de renderização ou elemento não é desenhado nesse aplicativo**: procure seu ponto na tabela de [pontos de renderização](/docs/pt/plugins/mods/reference#render-sites) e seus elementos na tabela de [elementos](/docs/pt/plugins/mods/reference#elements). Para um elemento que o aplicativo não tem, verifique `e.surface` no hook e retorne uma árvore que o aplicativo consiga desenhar.

304* **A extensão do VS Code é anterior à 2.1.299**: o painel de chat desenha para mods a partir da [versão da extensão](/docs/pt/vs-code#install-the-extension) 2.1.299. Verifique a versão na visualização Extensions do VS Code e atualize a extensão ali.

305* **A sessão do VS Code não busca feature flags**: o desenho no painel de chat exige isso. Sessões no Amazon Bedrock, no Agent Platform do Google Cloud ou no Microsoft Foundry, ou por meio de um [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway), pulam essa busca, entre outras que [Recursos que precisam da busca de feature flags](/docs/pt/env-vars#features-that-need-feature-flag-fetching) lista. Para ver o desenho em uma sessão assim, execute `claude` em um terminal, como o terminal integrado do VS Code.

303 306 

304<h2 id="an-edit-or-a-value-is-lost">307<h2 id="an-edit-or-a-value-is-lost">

305 Uma edição ou um valor é perdido308 Uma edição ou um valor é perdido

Details

72 | `-d`, `--debug[=<filter>]` | Ative o registro de depuração para o servidor, opcionalmente filtrado por categoria. Passe um filtro apenas na forma `=`, como `--debug=api,hooks`. Requer Claude Code v2.1.282 ou posterior. |72 | `-d`, `--debug[=<filter>]` | Ative o registro de depuração para o servidor, opcionalmente filtrado por categoria. Passe um filtro apenas na forma `=`, como `--debug=api,hooks`. Requer Claude Code v2.1.282 ou posterior. |

73 | `--debug-file <path>` | Escreva logs de depuração no arquivo fornecido. |73 | `--debug-file <path>` | Escreva logs de depuração no arquivo fornecido. |

74 | `--verbose` | Mostre logs detalhados de conexão e sessão. |74 | `--verbose` | Mostre logs detalhados de conexão e sessão. |

75 | `--sandbox`, `--no-sandbox` | Removido na v2.1.300. Se você passar qualquer um desses sinalizadores, o servidor [sai com um erro](/docs/pt/errors#sandbox-is-not-supported-by-claude-remote-control) em vez de iniciar. |

75 76 

76 Se você passar um sinalizador global `claude` antes de `remote-control`, ou um script wrapper adicionar um, Claude Code não leva o sinalizador para as sessões que o servidor cria. Claude Code deixa o sinalizador passar apenas quando soltá-lo é conhecido por não alterar o que essas sessões podem fazer, como `--verbose` ou `--model`. Para qualquer outro sinalizador, como `--settings`, Claude Code [recusa iniciar](/docs/pt/errors#not-carried-over-to-the-sessions-remote-control-starts) e nomeia o sinalizador a remover.77 Se você passar um sinalizador global `claude` antes de `remote-control`, ou um script wrapper adicionar um, Claude Code não leva o sinalizador para as sessões que o servidor cria. Claude Code deixa o sinalizador passar apenas quando soltá-lo é conhecido por não alterar o que essas sessões podem fazer, como `--verbose` ou `--model`. Para qualquer outro sinalizador, como `--settings`, Claude Code [recusa iniciar](/docs/pt/errors#not-carried-over-to-the-sessions-remote-control-starts) e nomeia o sinalizador a remover.

77 78 

skills.md +8 −2

Details

720 720 

721Você também pode empilhar várias skills no início de uma mensagem. Digitar `/write-tests /fix-issue 123` carrega ambas as skills e passa o texto final `123` como `$ARGUMENTS` para cada uma delas.721Você também pode empilhar várias skills no início de uma mensagem. Digitar `/write-tests /fix-issue 123` carrega ambas as skills e passa o texto final `123` como `$ARGUMENTS` para cada uma delas.

722 722 

723O Claude Code expande a primeira skill mais até cinco outras empilhadas depois dela. A expansão para no primeiro token que não seja uma skill inline invocável pelo usuário, então uma skill que é executada como um [subagente bifurcado](#run-skills-in-a-subagent), como [`/code-review`](/docs/pt/code-review#review-a-diff-locally), ou uma cujos argumentos possam começar com um comando de barra, como `/loop`, também encerra a sequência ali. Esse token e tudo o que vem depois dele se tornam o texto de argumento para cada skill expandida. `/code-review` é executada como um subagente bifurcado a partir da v2.1.218; em versões anteriores, ela era executada inline e empilhada.723O Claude Code expande a primeira skill mais até cinco outras empilhadas depois dela. A expansão para no primeiro token que não seja uma skill inline invocável pelo usuário, então uma skill que é executada como um [subagente bifurcado](#run-skills-in-a-subagent), como [`/code-review`](/docs/pt/code-review-local), ou uma cujos argumentos possam começar com um comando de barra, como `/loop`, também encerra a sequência ali. Esse token e tudo o que vem depois dele se tornam o texto de argumento para cada skill expandida. `/code-review` é executada como um subagente bifurcado a partir da v2.1.218; em versões anteriores, ela era executada inline e empilhada.

724 724 

725Para acessar argumentos individuais por posição, use `$ARGUMENTS[N]` ou a forma mais curta `$N`:725Para acessar argumentos individuais por posição, use `$ARGUMENTS[N]` ou a forma mais curta `$N`:

726 726 


832 832 

833Com o shell `bash` padrão, acrescente `|| true` a qualquer outro comando que você espera sair com código diferente de zero. Um script de verificação que sai com 1 quando encontra problemas é um exemplo.833Com o shell `bash` padrão, acrescente `|| true` a qualquer outro comando que você espera sair com código diferente de zero. Um script de verificação que sai com 1 quando encontra problemas é um exemplo.

834 834 

835<h4 id="control-characters-in-injected-commands">

836 Caracteres de controle em comandos injetados

837</h4>

838 

839`No shell command in <name> was run` significa que um dos comandos `!` do arquivo contém um caractere de controle bruto diferente de tab ou nova linha, então nenhum deles é executado. Veja [como encontrar e remover o caractere](/docs/pt/errors#no-shell-command-was-run).

840 

835<h4 id="permission-checks-on-injected-commands">841<h4 id="permission-checks-on-injected-commands">

836 Verificações de permissão em comandos injetados842 Verificações de permissão em comandos injetados

837</h4>843</h4>


865 871 

866Um fork em background também é executado com o [conjunto de ferramentas mais estreito que se aplica a subagentes em background](/docs/pt/sub-agents#run-subagents-in-foreground-or-background): o subagente da skill é um tipo de agente regular, então a isenção para subagentes que bifurcam a conversa não o cobre. Se as etapas de sua skill dependem de uma ferramenta fora desse conjunto, defina `background: false` para manter o conjunto completo de ferramentas.872Um fork em background também é executado com o [conjunto de ferramentas mais estreito que se aplica a subagentes em background](/docs/pt/sub-agents#run-subagents-in-foreground-or-background): o subagente da skill é um tipo de agente regular, então a isenção para subagentes que bifurcam a conversa não o cobre. Se as etapas de sua skill dependem de uma ferramenta fora desse conjunto, defina `background: false` para manter o conjunto completo de ferramentas.

867 873 

868Uma skill bifurcada que é executada em background aplica suas edições fora dos [checkpoints](/docs/pt/checkpointing) de sua sessão, então `/rewind` não as desfaz; use git para revertê-las.874Uma skill bifurcada que é executada em segundo plano aplica suas edições fora dos [checkpoints](/docs/pt/checkpointing#subagent-edits-not-restored) de sua sessão. Depois de uma, `/rewind` restaura apenas os arquivos que Claude já havia editado em sua conversa. As edições da skill em outros arquivos permanecem, então use git para revertê-las.

869 875 

870<Warning>876<Warning>

871 `context: fork` só faz sentido para skills com instruções explícitas. Se sua skill contém diretrizes como "use essas convenções de API" sem uma tarefa, o subagente recebe as diretrizes mas nenhum prompt acionável, e retorna sem saída significativa.877 `context: fork` só faz sentido para skills com instruções explícitas. Se sua skill contém diretrizes como "use essas convenções de API" sem uma tarefa, o subagente recebe as diretrizes mas nenhum prompt acionável, e retorna sem saída significativa.

ultrareview.md +1 −1

Details

18* **Cobertura mais ampla**: uma frota maior de agentes revisores explora a mudança em paralelo, o que expõe problemas que uma revisão local pode perder18* **Cobertura mais ampla**: uma frota maior de agentes revisores explora a mudança em paralelo, o que expõe problemas que uma revisão local pode perder

19* **Sem uso de recursos locais**: a revisão é executada inteiramente em um sandbox na nuvem, portanto seu terminal permanece livre para outro trabalho enquanto é executada19* **Sem uso de recursos locais**: a revisão é executada inteiramente em um sandbox na nuvem, portanto seu terminal permanece livre para outro trabalho enquanto é executada

20 20 

21Ultrareview requer autenticação com uma conta claude.ai porque é executado como uma sessão na nuvem na infraestrutura da Anthropic. Se você está conectado apenas com uma chave de API, execute `/login` e autentique-se com claude.ai primeiro. Ultrareview não está disponível ao usar Claude Code com Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry, e não está disponível para organizações que habilitaram Zero Data Retention ou que têm a [configuração HIPAA](/docs/pt/hipaa-setup) aplicada. Quando ultrareview não está disponível, `/code-review ultra` executa uma revisão local em sua sessão em vez disso.21Ultrareview requer autenticação com uma conta claude.ai porque é executado como uma sessão na nuvem na infraestrutura da Anthropic. Se você está conectado apenas com uma chave de API, execute `/login` e autentique-se com claude.ai primeiro. Ultrareview não está disponível ao usar Claude Code com Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry, e não está disponível para organizações que habilitaram Zero Data Retention ou que têm a [configuração HIPAA](/docs/pt/hipaa-setup) aplicada. Nesses casos, `/code-review ultra` executa uma revisão local em sua sessão em vez disso. Organizações que usam [chaves de criptografia gerenciadas pelo cliente](https://platform.claude.com/docs/en/manage-claude/cmek) (CMEK) não podem executar ultrareview. Para revisar suas alterações localmente, execute `/code-review`.

22 22 

23<h2 id="run-ultrareview-from-the-cli">23<h2 id="run-ultrareview-from-the-cli">

24 Execute ultrareview a partir da CLI24 Execute ultrareview a partir da CLI

vs-code.md +76 −2

Details

220* If a notice such as `Removed 3 invisible characters from the pasted text` appears when you paste, the text went in without those characters.220* If a notice such as `Removed 3 invisible characters from the pasted text` appears when you paste, the text went in without those characters.

221* If a notice about removed characters appears when you send, nothing was sent. The cleaned text is back in the prompt box. Send again to send the text as shown.221* If a notice about removed characters appears when you send, nothing was sent. The cleaned text is back in the prompt box. Send again to send the text as shown.

222 222 

223<h3 id="latex-math-in-responses">

224 Matemática em LaTeX nas respostas

225</h3>

226 

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

228 

229* **Matemática em destaque**: um bloco `$$ … $$` ou `\[ … \]` em uma ou mais linhas próprias, e um bloco de código delimitado com `math` como linguagem

230* **Matemática inline**: `$…$` ou `\(…\)` que abre e fecha na mesma linha, como `$E = mc^2$` ou `\(a^2 + b^2 = c^2\)`

231 

232O painel tenta distinguir a matemática de outros usos dos mesmos caracteres, de modo que textos como `$HOME`, um preço como `$5` ou `sed 's/\(foo\)/\1/'` não são tipografados. O mesmo vale para texto dentro de um trecho de código ou de qualquer bloco de código que não seja um bloco `math` delimitado. Se uma fórmula aparecer como foi escrita quando você esperava que fosse tipografada, consulte [Uma fórmula aparece como LaTeX bruto](#a-formula-shows-as-raw-latex).

233 

234Quando você seleciona e copia um texto que inclui uma fórmula tipografada, obtém o código-fonte TeX da fórmula entre delimitadores `$…$` ou `$$…$$`, em vez dos símbolos desenhados. [**Copy response**](#use-the-prompt-box) e `/copy` fornecem a resposta como o Claude a escreveu, incluindo o código-fonte TeX.

235 

223<h3 id="resume-past-conversations">236<h3 id="resume-past-conversations">

224 Resume past conversations237 Resume past conversations

225</h3>238</h3>

226 239 

227Click the **Session history** button at the top of the Claude Code panel to access your conversation history. You can search by keyword or browse by time.240Click the **Session history** button at the top of the Claude Code panel to access your conversation history. You can search by keyword or browse by time.

228 241 

229Click any conversation to resume it with the full message history. If the conversation is already open in another tab of the current window, clicking it switches to that tab. For more on resuming sessions, see [Manage sessions](/docs/pt/sessions).242Clique em qualquer conversa para retomá-la com o histórico completo de mensagens. Se a conversa já estiver aberta em outra aba da janela atual, clicar nela alterna para essa aba. Se as mensagens ficarem em branco no início, consulte [por que elas ficam em branco e quando aparecem](#a-resumed-conversation-is-blank-at-first). Para saber mais sobre como retomar sessões, consulte [Gerenciar sessões](/docs/pt/sessions).

230 243 

231* **Session titles**: new sessions receive AI-generated titles based on your first message.244* **Session titles**: new sessions receive AI-generated titles based on your first message.

232* **Rename and archive**: hover over a session to reveal these actions. Rename to give it a descriptive title, or archive to move it to the **Archived sessions** group at the bottom of the list.245* **Rename and archive**: hover over a session to reveal these actions. Rename to give it a descriptive title, or archive to move it to the **Archived sessions** group at the bottom of the list.


321* **Aba do editor**: a conversa volta com sua aba.334* **Aba do editor**: a conversa volta com sua aba.

322* **Barra lateral**: a conversa volta se você enviou uma mensagem ou Claude respondeu nela nos últimos 10 minutos. Se ela não voltar, retome a conversa do [Histórico de sessões](#resume-past-conversations).335* **Barra lateral**: a conversa volta se você enviou uma mensagem ou Claude respondeu nela nos últimos 10 minutos. Se ela não voltar, retome a conversa do [Histórico de sessões](#resume-past-conversations).

323 336 

324Se outro processo do Claude Code ainda estiver com a conversa aberta, será perguntado a você antes que ela seja aberta aqui, com o mesmo aviso **Open here anyway** exibido quando você [a retoma do histórico de sessões](#resume-past-conversations).337Se outro processo do Claude Code ainda estiver com a conversa aberta, será perguntado a você antes que ela seja aberta aqui, com o mesmo aviso **Open here anyway** exibido quando você [a retoma do histórico de sessões](#resume-past-conversations). Se as mensagens ficarem em branco no início, veja [por que ficam em branco e quando aparecem](#a-resumed-conversation-is-blank-at-first).

325 338 

326Se o recarregamento interrompeu Claude no meio de uma etapa, Claude continua essa etapa quando a conversa volta, e um aviso no chat marca a continuação. Requer Claude Code v2.1.274 ou posterior. Se a etapa foi interrompida há mais de uma hora ou a sessão está aberta em outro lugar, a conversa volta ociosa.339Se o recarregamento interrompeu Claude no meio de uma etapa, Claude continua essa etapa quando a conversa volta, e um aviso no chat marca a continuação. Requer Claude Code v2.1.274 ou posterior. Se a etapa foi interrompida há mais de uma hora ou a sessão está aberta em outro lugar, a conversa volta ociosa.

327 340 

328Para desativar a continuação, abra a [configuração Continue After Reload](vscode://settings/claudeCode.continueAfterReload) e desmarque-a. Definir [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/pt/env-vars#variables) ou qualquer outra variável `CLAUDE_CODE_RESUME_` no ambiente do VS Code ou na [configuração `environmentVariables`](#extension-settings) não tem efeito no painel, porque a extensão remove essas variáveis antes de iniciar as sessões do painel.341Para desativar a continuação, abra a [configuração Continue After Reload](vscode://settings/claudeCode.continueAfterReload) e desmarque-a. Definir [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/pt/env-vars#variables) ou qualquer outra variável `CLAUDE_CODE_RESUME_` no ambiente do VS Code ou na [configuração `environmentVariables`](#extension-settings) não tem efeito no painel, porque a extensão remove essas variáveis antes de iniciar as sessões do painel.

329 342 

343<h4 id="a-conversation-was-not-reopened">

344 Uma conversa não foi reaberta

345</h4>

346 

347Após um recarregamento, um novo chat com um aviso como este acima da caixa de prompt significa que o painel deixou sua conversa fechada porque as duas últimas aberturas da conversa não foram concluídas:

348 

349```text theme={null}

350“Fix the login bug” was not reopened. It did not finish opening the last 2 times, and opening it again may stop Claude Code from responding here.

351```

352 

353Uma abertura não é concluída quando o painel trava ou para de responder enquanto carrega a conversa, ou quando você recarrega ou fecha a janela cerca de três segundos após ela ser aberta. Nada é perdido: a conversa permanece inalterada e continua no [Histórico de sessões](#resume-past-conversations).

354 

355* **Para abri-la mesmo assim**: clique em **Open it anyway** ou escolha a conversa no Histórico de sessões. Se ela abrir e o painel continuar funcionando, ela volta após recarregamentos posteriores normalmente. Se o painel parar de responder novamente, recarregue a janela para voltar a um novo chat com o aviso.

356* **Para deixá-la fechada**: continue trabalhando no novo chat. O aviso desaparece assim que você envia um prompt.

357 

330<h3 id="run-multiple-conversations">358<h3 id="run-multiple-conversations">

331 Execute múltiplas conversas359 Execute múltiplas conversas

332</h3>360</h3>


464 492 

465Para mais informações sobre o sistema de plugins, consulte [Plugins](/docs/pt/plugins/overview) e [Plugin marketplaces](/docs/pt/plugins/overview).493Para mais informações sobre o sistema de plugins, consulte [Plugins](/docs/pt/plugins/overview) e [Plugin marketplaces](/docs/pt/plugins/overview).

466 494 

495<h3 id="plugins-that-draw-in-the-panel">

496 Plugins que desenham no painel

497</h3>

498 

499Um plugin que contém um [mod](/docs/pt/plugins/mods/overview) pode desenhar no painel de chat. Desenhar requer a versão 2.1.299 ou posterior da extensão e uma sessão que [busca feature flags](/docs/pt/env-vars#features-that-need-feature-flag-fetching). De um plugin assim, você pode ver:

500 

501* Um painel ao lado da conversa ou acima da caixa de prompt

502* Uma notificação toast ou uma linha de status acima da caixa de prompt

503* Uma mensagem ou uma chamada de ferramenta desenhada à maneira do próprio plugin

504 

505Quando um plugin que você instalou adiciona ou altera algo no painel, um rótulo o nomeia, em frases como estas:

506 

507* **Do plugin token-chart**: o plugin desenhou ou imprimiu isto, ou este cartão é o plugin perguntando algo a você

508* **Editado pelo plugin token-chart**: o plugin alterou algo que o Claude Code desenha, como uma chamada de ferramenta

509* **Prompt do plugin token-chart**: o plugin enviou esta mensagem em seu nome

510 

511Para impedir que um plugin desenhe, desative o plugin no [diálogo de plugins](#install-plugins).

512 

467<h2 id="automate-browser-tasks-with-chrome">513<h2 id="automate-browser-tasks-with-chrome">

468 Automatizar tarefas do navegador com Chrome514 Automatizar tarefas do navegador com Chrome

469</h2>515</h2>


898 944 

899Alternativamente, reassine a extensão para uma tecla diferente: abra o editor de [Keyboard Shortcuts](https://code.visualstudio.com/docs/configure/keybindings) do VS Code (`Cmd+K Cmd+S`), procure por `Claude Code: Focus input`, e atribua uma nova vinculação.945Alternativamente, reassine a extensão para uma tecla diferente: abra o editor de [Keyboard Shortcuts](https://code.visualstudio.com/docs/configure/keybindings) do VS Code (`Cmd+K Cmd+S`), procure por `Claude Code: Focus input`, e atribua uma nova vinculação.

900 946 

947<h3 id="a-resumed-conversation-is-blank-at-first">

948 Uma conversa retomada fica em branco no início

949</h3>

950 

951Quando você [retoma uma conversa anterior](#resume-past-conversations) ou quando uma [volta após um recarregamento](#continue-conversations-after-a-reload), as mensagens dela podem ficar em branco enquanto o processo do Claude Code da conversa é iniciado. Após cerca de um segundo, `Waiting for your plugins…` aparece no espaço vazio.

952 

953Você não precisa fazer nada. As mensagens aparecem assim que o processo é iniciado e confirma que nenhum plugin precisa verificá-las primeiro, ou após 20 segundos se a inicialização demorar mais.

954 

955<h3 id="the-panel-stops-responding-each-time-a-reload-reopens-a-conversation">

956 O painel para de responder sempre que um recarregamento reabre uma conversa

957</h3>

958 

959Se o painel inteiro travar, congelar ou mostrar apenas `Something went wrong` sempre que você recarregar e sua conversa voltar, atualize a extensão para a v2.1.301 ou posterior. Em seguida, recarregue a janela ou reinicie o VS Code novamente. Depois que a conversa falhar ao terminar de abrir duas vezes seguidas, você recebe um novo chat no lugar dela, com um aviso de que [ela não foi reaberta](#a-conversation-was-not-reopened).

960 

961<h3 id="a-formula-shows-as-raw-latex">

962 Uma fórmula aparece como LaTeX bruto

963</h3>

964 

965Se nenhuma das expressões matemáticas nas respostas do Claude for renderizada, verifique a versão da extensão na visualização Extensions, porque a [renderização de matemática](#latex-math-in-responses) requer a versão 2.1.301 ou posterior. Se você usa o [modo terminal](#switch-to-terminal-mode), que não renderiza matemática independentemente da versão, desmarque a [configuração Use Terminal](vscode://settings/claudeCode.useTerminal) para que o Claude Code abra no painel de chat.

966 

967Se uma fórmula aparecer como foi escrita enquanto outras próximas a ela são renderizadas, verifique estas causas:

968 

969* **Ela é lida como algo diferente de matemática**: texto `$…$` que é lido como uma palavra permanece como foi escrito, como `$O(n log n)$`. Texto `$…$` que começa com um dígito, como `$30$` ou `$1/N$`, também permanece como foi escrito, a menos que um caractere como `=`, `+` ou `^` o marque como matemática. Em vez disso, peça ao Claude um bloco `$$` em linhas próprias, que o painel renderiza sem essa verificação.

970* **Ela tem espaços internos, é longa ou está dividida em várias linhas**: `$ x^2 $` com espaços dentro dos cifrões, conteúdo `$…$` com mais de 60 caracteres e `$…$` ou `\(…\)` divididos em duas linhas não são renderizados. Em vez disso, peça ao Claude um bloco `$$` em linhas próprias, que não tem nenhum desses limites.

971* **O TeX não pode ser renderizado**: uma fórmula com erro de sintaxe, uma definição de macro como `\newcommand` ou `\def`, ou um `%` sem escape aparece como foi escrita. Peça ao Claude para reescrevê-la com o erro corrigido, sem a macro ou com `\%` para o sinal de porcentagem.

972* **Ela é grande demais**: uma fórmula com mais de 8.192 caracteres, ou uma que seria desenhada muito maior do que seu código-fonte, aparece como foi escrita. Peça ao Claude para dividi-la em fórmulas menores ou escrevê-la de forma mais compacta.

973* **Ela vem depois de uma grande quantidade de matemática**: dentro de um bloco de texto em uma resposta, o painel renderiza as fórmulas em ordem até um limite. Uma fórmula posterior que ultrapassaria o limite aparece como foi escrita. Peça ao Claude para enviar novamente, sozinha, a fórmula de que você precisa.

974 

901<h3 id="claude-code-never-responds">975<h3 id="claude-code-never-responds">

902 Claude Code nunca responde976 Claude Code nunca responde

903</h3>977</h3>

Details

103Se você já conectou o GitHub no navegador, `/web-setup` avisa que continuar substitui essa conexão para suas sessões em nuvem.103Se você já conectou o GitHub no navegador, `/web-setup` avisa que continuar substitui essa conexão para suas sessões em nuvem.

104 104 

105<Note>105<Note>

106 Organizações com [Zero Data Retention](/docs/pt/zero-data-retention) habilitado, ou com a [configuração HIPAA](/docs/pt/hipaa-setup) aplicada, não podem usar `/web-setup` ou outros recursos de sessão na nuvem. Se a CLI do GitHub não estiver instalada ou autenticada, Claude Code abre o fluxo de integração do navegador em vez disso.106 Organizações com [Zero Data Retention](/docs/pt/zero-data-retention) habilitado, ou com a [configuração HIPAA](/docs/pt/hipaa-setup) aplicada, não podem usar `/web-setup` ou outros recursos de sessão na nuvem. Organizações que usam [chaves de criptografia gerenciadas pelo cliente](https://platform.claude.com/docs/en/manage-claude/cmek) (CMEK) também não podem iniciar sessões na nuvem. Se a CLI do GitHub não estiver instalada ou autenticada, Claude Code abre o fluxo de integração do navegador em vez disso.

107</Note>107</Note>

108 108 

109<Steps>109<Steps>

Details

74 <p className="digest-wins-title">Outras melhorias</p>74 <p className="digest-wins-title">Outras melhorias</p>

75 75 

76 <div className="digest-wins-grid">76 <div className="digest-wins-grid">

77 <div><a href="/docs/pt/code-review#review-a-diff-locally"><code>/code-review</code></a> agora é executado como um subagente em background com sua própria janela de contexto, para que o trabalho de revisão fique fora de sua conversa e as descobertas cheguem quando ele é concluído</div>77 <div><a href="/docs/pt/code-review-local"><code>/code-review</code></a> agora é executado como um subagente em background com sua própria janela de contexto, para que o trabalho de revisão fique fora de sua conversa e as descobertas cheguem quando ele é concluído</div>

78 <div><code>/verify</code>, <code>/code-review</code> e <code>/deep-research</code> são executados apenas quando você os invoca; Claude não os inicia mais por conta própria</div>78 <div><code>/verify</code>, <code>/code-review</code> e <code>/deep-research</code> são executados apenas quando você os invoca; Claude não os inicia mais por conta própria</div>

79 <div><a href="/docs/pt/interactive-mode#emoji-shortcodes">Códigos de emoji</a> preenchem automaticamente na entrada de prompt: digite <code>:heart:</code> para inserir um emoji, ou dois ou mais caracteres após <code>:</code> para sugestões; desative com <code>emojiCompletionEnabled</code></div>79 <div><a href="/docs/pt/interactive-mode#emoji-shortcodes">Códigos de emoji</a> preenchem automaticamente na entrada de prompt: digite <code>:heart:</code> para inserir um emoji, ou dois ou mais caracteres após <code>:</code> para sugestões; desative com <code>emojiCompletionEnabled</code></div>

80 <div>Skills com <code>context: fork</code> <a href="/docs/pt/skills#run-skills-in-a-subagent">são executadas em background</a> por padrão, e <code>background: false</code> no frontmatter da skill aguarda o resultado na mesma volta</div>80 <div>Skills com <code>context: fork</code> <a href="/docs/pt/skills#run-skills-in-a-subagent">são executadas em background</a> por padrão, e <code>background: false</code> no frontmatter da skill aguarda o resultado no mesmo turno</div>

81 <div>Uma sessão executa até 20 subagentes simultaneamente por padrão; altere o <a href="/docs/pt/sub-agents#concurrent-subagent-limit">limite</a> com <code>CLAUDE\_CODE\_MAX\_CONCURRENT\_SUBAGENTS</code></div>81 <div>Uma sessão executa até 20 subagentes simultaneamente por padrão; altere o <a href="/docs/pt/sub-agents#concurrent-subagent-limit">limite</a> com <code>CLAUDE\_CODE\_MAX\_CONCURRENT\_SUBAGENTS</code></div>

82 <div>`--max-budget-usd` agora impõe o limite em subagentes: uma vez que o gasto o atinge, Claude não pode iniciar mais e os subagentes em execução em background param</div>82 <div>`--max-budget-usd` agora impõe o limite em subagentes: uma vez que o gasto o atinge, Claude não pode iniciar mais e os subagentes em execução em background param</div>

83 <div>Nova configuração <a href="/docs/pt/sandboxing#disable-filesystem-isolation"><code>sandbox.filesystem.disabled</code></a> pula isolamento do sistema de arquivos mantendo controle de saída de rede</div>83 <div>Nova configuração <a href="/docs/pt/sandboxing#disable-filesystem-isolation"><code>sandbox.filesystem.disabled</code></a> pula isolamento do sistema de arquivos mantendo controle de saída de rede</div>

84 <div>No modo auto, as verificações de comandos <code>rm</code> perigosos, trabalhos em background e caminhos Windows suspeitos não abrem mais diálogos de permissão; o classificador de modo automático os adjudica</div>84 <div>No modo auto, as verificações de comandos <code>rm</code> perigosos, trabalhos em background e caminhos Windows suspeitos não abrem mais diálogos de permissão; o classificador do modo auto os adjudica</div>

85 <div>As verificações de permissão Bash falham fechadas em mais formas de shell, incluindo redirecionamentos de descritor de arquivo, subscritos de variável Zsh em comparações <code>\[\[ ]]</code>, invocações de <code>help</code> e <code>man</code> que poderiam executar opções inseguras, e comandos com mais de 10.000 caracteres</div>85 <div>As verificações de permissão Bash falham fechadas em mais formas de shell, incluindo redirecionamentos de descritor de arquivo, subscritos de variável Zsh em comparações <code>\[\[ ]]</code>, invocações de <code>help</code> e <code>man</code> que poderiam executar opções inseguras, e comandos com mais de 10.000 caracteres</div>

86 <div><a href="/docs/pt/fast-mode">Fast mode</a> não suporta mais Opus 4.7: <code>/fast</code> agora se aplica a Opus 5 e Opus 4.8</div>86 <div>O <a href="/docs/pt/fast-mode">modo rápido</a> não suporta mais Opus 4.7: <code>/fast</code> agora se aplica a Opus 5 e Opus 4.8</div>

87 <div>Chamadas de ferramenta de longa duração emitem um heartbeat de progresso periódico em vez de ficar silencioso</div>87 <div>Chamadas de ferramenta de longa duração emitem um heartbeat de progresso periódico em vez de ficar silencioso</div>

88 </div>88 </div>

89</div>89</div>

Details

87 <div>A extensão VS Code recebe <a href="/docs/pt/vs-code#extension-settings">Focus view</a>, que oculta a atividade de ferramentas atrás de uma linha expansível por turno; alterne-a no menu de comandos ou com <code>Ctrl+Alt+F</code> (<code>Ctrl+Option+F</code> no Mac)</div>87 <div>A extensão VS Code recebe <a href="/docs/pt/vs-code#extension-settings">Focus view</a>, que oculta a atividade de ferramentas atrás de uma linha expansível por turno; alterne-a no menu de comandos ou com <code>Ctrl+Alt+F</code> (<code>Ctrl+Option+F</code> no Mac)</div>

88 <div>Arquivos de credenciais de sandbox aceitam <a href="/docs/pt/sandboxing#mask-credential-files"><code>mode: "mask"</code></a> em Linux e WSL2, para que comandos em sandbox leiam uma cópia sentinela enquanto o proxy de sandbox substitui o valor real na saída; o mascaramento de credenciais também ganha opções <code>extract</code>, <code>decode</code> com reconhecimento de JWT e re-assinatura AWS SigV4</div>88 <div>Arquivos de credenciais de sandbox aceitam <a href="/docs/pt/sandboxing#mask-credential-files"><code>mode: "mask"</code></a> em Linux e WSL2, para que comandos em sandbox leiam uma cópia sentinela enquanto o proxy de sandbox substitui o valor real na saída; o mascaramento de credenciais também ganha opções <code>extract</code>, <code>decode</code> com reconhecimento de JWT e re-assinatura AWS SigV4</div>

89 <div>Marketplaces podem distribuir um plugin como um <a href="/docs/pt/plugins/marketplace-reference#archive-plugin-source">arquivo zip</a> com a nova fonte <code>archive</code>, baixado via HTTPS com um pin SHA-256 opcional, para que as instalações funcionem sem git ou npm</div>89 <div>Marketplaces podem distribuir um plugin como um <a href="/docs/pt/plugins/marketplace-reference#archive-plugin-source">arquivo zip</a> com a nova fonte <code>archive</code>, baixado via HTTPS com um pin SHA-256 opcional, para que as instalações funcionem sem git ou npm</div>

90 <div><code>/review</code> agora é um alias de <a href="/docs/pt/code-review#review-a-diff-locally"><code>/code-review</code></a>, e <code>/code-review</code> sem nível de esforço reutiliza o nível que você digitou por último</div>90 <div><code>/review</code> agora é um alias de <a href="/docs/pt/code-review-local"><code>/code-review</code></a>, e <code>/code-review</code> sem nível de esforço reutiliza o nível que você digitou por último</div>

91 <div>Uma sessão que você copia com <a href="/docs/pt/agent-view#copy-the-session-with-%2Ffork"><code>/fork</code></a> agora faz suas alterações de código em uma worktree própria em vez do checkout da sessão original</div>91 <div>Uma sessão que você copia com <a href="/docs/pt/agent-view#copy-the-session-with-%2Ffork"><code>/fork</code></a> agora faz suas alterações de código em um worktree próprio em vez do checkout da sessão original</div>

92 <div>Plugins que você instala a partir de <a href="/docs/pt/plugins/install#install-a-plugin"><code>/plugin</code></a> são ativados na sessão atual quando é seguro fazer isso; o resumo de instalação relata <code>Plugin is now active.</code> ou diz para você executar <code>/reload-plugins</code></div>92 <div>Plugins que você instala a partir de <a href="/docs/pt/plugins/install#install-a-plugin"><code>/plugin</code></a> são ativados na sessão atual quando é seguro fazer isso; o resumo de instalação relata <code>Plugin is now active.</code> ou diz para você executar <code>/reload-plugins</code></div>

93 <div><a href="/docs/pt/agent-view#how-file-edits-are-isolated">Sessões em segundo plano</a> que alteraram código em uma worktree agora fazem commit e push antes de terminar, abrem uma solicitação de pull em rascunho apenas quando a tarefa exige, e seguem as instruções git em seu <code>CLAUDE.md</code></div>93 <div><a href="/docs/pt/agent-view#how-file-edits-are-isolated">Sessões em segundo plano</a> que alteraram código em um worktree agora fazem commit e push antes de terminar, abrem um pull request em rascunho apenas quando a tarefa exige, e seguem as instruções git em seu <code>CLAUDE.md</code></div>

94 <div>O limite de 200 subagentes por sessão é removido, para que sessões de longa duração não recusem mais novos subagentes; os limites de <a href="/docs/pt/sub-agents#concurrent-subagent-limit">concorrência</a> e profundidade ainda se aplicam</div>94 <div>O limite de 200 subagentes por sessão é removido, para que sessões de longa duração não recusem mais novos subagentes; os limites de <a href="/docs/pt/sub-agents#concurrent-subagent-limit">concorrência</a> e profundidade ainda se aplicam</div>

95 <div>As configurações verificadas de um repositório não podem mais ativar <a href="/docs/pt/remote-control#enable-remote-control-for-all-sessions">Conexão automática de Controle Remoto</a>; defina <code>remoteControlAtStartup</code> em suas configurações de usuário ou gerenciadas, e as configurações de projeto e local podem apenas desativá-lo</div>95 <div>As configurações versionadas de um repositório não podem mais ativar a <a href="/docs/pt/remote-control#enable-remote-control-for-all-sessions">conexão automática do Remote Control</a>; defina <code>remoteControlAtStartup</code> em suas configurações de usuário ou gerenciadas, e as configurações de projeto e locais podem apenas desativá-la</div>

96 <div><a href="/docs/pt/worktrees#how-claude-code-enforces-isolation">Isolamento de worktree</a> agora bloqueia não apenas edições de arquivo, mas também comandos Bash e redirecionamentos git que alcançam o checkout principal, em todos os tipos de sessão e nos subagentes da sessão</div>96 <div>O <a href="/docs/pt/worktrees#how-claude-code-enforces-isolation">isolamento em worktree</a> agora bloqueia não apenas edições de arquivo, mas também comandos Bash e redirecionamentos git que alcançam o checkout principal, em todos os tipos de sessão e nos subagentes da sessão</div>

97 <div>Um comando Bash não pode mais ocultar parte de si mesmo das verificações de permissão, e preenchimento com tabulação ou Unicode invisível não oculta mais parte de um comando do diálogo de aprovação</div>97 <div>Um comando Bash não pode mais ocultar parte de si mesmo das verificações de permissão, e preenchimento com tabulação ou Unicode invisível não oculta mais parte de um comando do diálogo de aprovação</div>

98 <div>Hooks de auto-permissão PreToolUse não contornam mais restrições de ferramentas nas tarefas internas do Claude Code, como resumos e compactação</div>98 <div>Hooks de auto-permissão PreToolUse não contornam mais restrições de ferramentas nas tarefas internas do Claude Code, como resumos e compactação</div>

99 <div>A visualização de pesquisa <a href="/docs/pt/ultraplan">Ultraplan</a> é removida, incluindo o comando <code>/ultraplan</code> e a palavra-chave <code>ultraplan</code>; use o modo de plano ou Claude Code na web</div>99 <div>A prévia de pesquisa <a href="/docs/pt/ultraplan">Ultraplan</a> é removida, incluindo o comando <code>/ultraplan</code> e a palavra-chave <code>ultraplan</code>; use o modo de planejamento ou o Claude Code na web em vez disso</div>

100 </div>100 </div>

101</div>101</div>

102 102 

Details

17 <span className="digest-feature-pill">Desktop</span>17 <span className="digest-feature-pill">Desktop</span>

18 </div>18 </div>

19 19 

20 <p className="digest-feature-lede">Quando você atinge seu limite de sessão na aba Code do Claude Code Desktop, o cartão de limite agora oferece uma caixa de seleção <strong>Continuar automaticamente quando os limites forem redefinidos</strong>. Marque-a e o aplicativo Desktop tenta novamente a volta interrompida após a redefinição. O cartão mostra a hora da tentativa. O cartão de limite semanal não oferece essa opção.</p>20 <p className="digest-feature-lede">Quando você atinge seu limite de sessão na aba Code do Claude Code Desktop, o cartão de limite agora oferece uma caixa de seleção <strong>Continuar automaticamente quando os limites forem redefinidos</strong>. Marque-a e o aplicativo Desktop tenta novamente o turno interrompido após a redefinição. O cartão mostra a hora da tentativa. O cartão de limite semanal não oferece essa opção.</p>

21 21 

22 <Frame>22 <Frame>

23 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/2SnAdpL4dJ18nKb3/images/whats-new/desktop-auto-continue.mp4?fit=max&auto=format&n=2SnAdpL4dJ18nKb3&q=85&s=1937f489695feaea715e48ecfd7e62cd" data-path="images/whats-new/desktop-auto-continue.mp4" />23 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/2SnAdpL4dJ18nKb3/images/whats-new/desktop-auto-continue.mp4?fit=max&auto=format&n=2SnAdpL4dJ18nKb3&q=85&s=1937f489695feaea715e48ecfd7e62cd" data-path="images/whats-new/desktop-auto-continue.mp4" />

24 </Frame>24 </Frame>

25 25 

26 <p className="digest-feature-try">Na próxima vez que um cartão de limite de sessão aparecer, marque <strong>Continuar automaticamente quando os limites forem redefinidos</strong> e deixe a sessão aberta. O cartão mostra <code>Auto-resuming at</code> seguido pela hora da redefinição, e a volta continua por conta própria assim que o limite é redefinido.</p>26 <p className="digest-feature-try">Na próxima vez que um cartão de limite de sessão aparecer, marque <strong>Continuar automaticamente quando os limites forem redefinidos</strong> e deixe a sessão aberta. O cartão mostra <code>Auto-resuming at</code> seguido pela hora da redefinição, e o turno continua por conta própria assim que o limite é redefinido.</p>

27 27 

28 <a className="digest-feature-link" href="/docs/pt/errors#youve-hit-your-session-limit">O que fazer quando você atinge um limite de uso</a>28 <a className="digest-feature-link" href="/docs/pt/errors#youve-hit-your-session-limit">O que fazer quando você atinge um limite de uso</a>

29</div>29</div>


53 <span className="digest-feature-pill">v2.1.232</span>53 <span className="digest-feature-pill">v2.1.232</span>

54 </div>54 </div>

55 55 

56 <p className="digest-feature-lede">Os marketplaces de plugins clonam URLs <code>gitlab.com</code> simples, incluindo subgrupos aninhados. Na v2.1.233 ou posterior, passe uma URL de solicitação de merge do GitLab para <code>--worktree</code> para fazer branch a partir dela, e a visualização <code>claude agents</code> rotula sessões vinculadas a uma solicitação de merge como <code>!N</code>. Claude Code também oculta famílias de tokens do GitLab como <code>glpat-</code> e <code>glrt-</code>, e protege o armazenamento de configuração da CLI <code>glab</code> da mesma forma que protege <code>gh</code>.</p>56 <p className="digest-feature-lede">Os marketplaces de plugins clonam URLs <code>gitlab.com</code> simples, incluindo subgrupos aninhados. Na v2.1.233 ou posterior, passe uma URL de solicitação de merge do GitLab para `--worktree` para criar um branch a partir dela, e a visualização <code>claude agents</code> rotula sessões vinculadas a uma solicitação de merge como <code>!N</code>. Claude Code também oculta famílias de tokens do GitLab como <code>glpat-</code> e <code>glrt-</code>, e protege o armazenamento de configuração da CLI <code>glab</code> da mesma forma que protege <code>gh</code>.</p>

57 57 

58 <p className="digest-feature-try">Inicie uma sessão em um worktree com branch a partir de uma solicitação de merge:</p>58 <p className="digest-feature-try">Inicie uma sessão em um worktree com branch a partir de uma solicitação de merge:</p>

59 59 


63 63 

64 <p className="digest-feature-try">Quando <code>origin</code> está em gitlab.com, Claude Code busca <code>merge-requests/42/head</code> e abre a sessão nesse branch em seu próprio worktree.</p>64 <p className="digest-feature-try">Quando <code>origin</code> está em gitlab.com, Claude Code busca <code>merge-requests/42/head</code> e abre a sessão nesse branch em seu próprio worktree.</p>

65 65 

66 <a className="digest-feature-link" href="/docs/pt/worktrees#branch-from-a-pull-request">Fazer branch de um worktree a partir de uma solicitação de pull ou merge</a>66 <a className="digest-feature-link" href="/docs/pt/worktrees#branch-from-a-pull-request">Criar o branch de um worktree a partir de um pull request ou de uma solicitação de merge</a>

67</div>67</div>

68 68 

69<div className="digest-wins">69<div className="digest-wins">


75 <div>Os marketplaces de plugins aceitam <a href="/docs/pt/plugins/marketplace-reference#command-plugin-source">fontes de <code>command</code></a>: um comando local imprime o diretório do plugin, que Claude Code re-resolve a cada sessão e aplica sem uma reinicialização</div>75 <div>Os marketplaces de plugins aceitam <a href="/docs/pt/plugins/marketplace-reference#command-plugin-source">fontes de <code>command</code></a>: um comando local imprime o diretório do plugin, que Claude Code re-resolve a cada sessão e aplica sem uma reinicialização</div>

76 <div>No Linux e WSL, defina <a href="/docs/pt/tools-reference#memory-limit-on-linux-and-wsl"><code>CLAUDE\_CODE\_TOOL\_MEMORY\_LIMIT</code></a> para um tamanho como <code>4G</code> para limitar a memória que os comandos da ferramenta Bash e PowerShell podem usar</div>76 <div>No Linux e WSL, defina <a href="/docs/pt/tools-reference#memory-limit-on-linux-and-wsl"><code>CLAUDE\_CODE\_TOOL\_MEMORY\_LIMIT</code></a> para um tamanho como <code>4G</code> para limitar a memória que os comandos da ferramenta Bash e PowerShell podem usar</div>

77 <div>As ferramentas de rastreamento de tarefas, como <code>TaskCreate</code>, <code>TaskUpdate</code> e <code>TodoWrite</code>, <a href="/docs/pt/tools-reference#task-tool-availability">não estão mais disponíveis no Opus 4.8, Sonnet 5, Fable 5, Mythos 5 e modelos posteriores nessas famílias</a>; defina <code>CLAUDE\_CODE\_ENABLE\_TODO\_TOOLS=1</code> para reativá-las</div>77 <div>As ferramentas de rastreamento de tarefas, como <code>TaskCreate</code>, <code>TaskUpdate</code> e <code>TodoWrite</code>, <a href="/docs/pt/tools-reference#task-tool-availability">não estão mais disponíveis no Opus 4.8, Sonnet 5, Fable 5, Mythos 5 e modelos posteriores nessas famílias</a>; defina <code>CLAUDE\_CODE\_ENABLE\_TODO\_TOOLS=1</code> para reativá-las</div>

78 <div><a href="/docs/pt/code-review#review-a-diff-locally"><code>/code-review</code></a> em esforço alto, xhigh e máximo agora é executado em um agente de fundo como os outros níveis</div>78 <div><a href="/docs/pt/code-review-local"><code>/code-review</code></a> em esforço alto, xhigh e máximo agora é executado em um agente de fundo como os outros níveis</div>

79 <div><a href="/docs/pt/plugins/install#install-a-plugin"><code>/plugin install plugin\@marketplace</code></a> atualiza o marketplace primeiro, para que plugins recém-publicados sejam instalados sem uma atualização manual do marketplace</div>79 <div><a href="/docs/pt/plugins/install#install-a-plugin"><code>/plugin install plugin\@marketplace</code></a> atualiza o marketplace primeiro, para que plugins recém-publicados sejam instalados sem uma atualização manual do marketplace</div>

80 <div>As configurações aceitam <a href="/docs/pt/settings-reference#marketplace-key-aliases"><code>additionalMarketplaces</code> e <code>allowedMarketplaces</code></a> como aliases para <code>extraKnownMarketplaces</code> e <code>strictKnownMarketplaces</code></div>80 <div>As configurações aceitam <a href="/docs/pt/settings-reference#marketplace-key-aliases"><code>additionalMarketplaces</code> e <code>allowedMarketplaces</code></a> como aliases para <code>extraKnownMarketplaces</code> e <code>strictKnownMarketplaces</code></div>

81 <div>Em modelos mais novos, Claude pode <a href="/docs/pt/tools-reference#write-tool-behavior">sobrescrever um arquivo existente com a ferramenta Write</a> sem lê-lo primeiro nesta sessão, correspondendo às regras da ferramenta Edit; modelos mais antigos exigem a leitura</div>81 <div>Em modelos mais novos, Claude pode <a href="/docs/pt/tools-reference#write-tool-behavior">sobrescrever um arquivo existente com a ferramenta Write</a> sem lê-lo primeiro nesta sessão, correspondendo às regras da ferramenta Edit; modelos mais antigos exigem a leitura</div>

workflows.md +4 −4

Details

205 205 

206Em `claude -p` e no Agent SDK, Claude Code nunca mostra este prompt. Ele executa a chamada da ferramenta Workflow através da mesma [avaliação de permissão](/docs/pt/agent-sdk/permissions#how-permissions-are-evaluated) como o resto da sessão, então regras de negação, regras de solicitação e modo `dontAsk` se aplicam ao lançamento como se aplicam a cada chamada de ferramenta. Para permitir que o fluxo de trabalho inicie nessas execuções, use um destes:206Em `claude -p` e no Agent SDK, Claude Code nunca mostra este prompt. Ele executa a chamada da ferramenta Workflow através da mesma [avaliação de permissão](/docs/pt/agent-sdk/permissions#how-permissions-are-evaluated) como o resto da sessão, então regras de negação, regras de solicitação e modo `dontAsk` se aplicam ao lançamento como se aplicam a cada chamada de ferramenta. Para permitir que o fluxo de trabalho inicie nessas execuções, use um destes:

207 207 

208* **Regra de permissão**: `Workflow` em suas regras de permissão aprova cada fluxo de trabalho, e `Workflow(<name>)` aprova um fluxo de trabalho salvo por nome.208* **Regra de permissão**: adicione `Workflow` às suas regras allow para aprovar cada fluxo de trabalho, ou `Workflow(<name>)` para aprovar um fluxo de trabalho salvo por nome.

209* **Modo de permissão automático**: o [classificador](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) revisa a chamada e pode aprová-la.209* **Modo de permissão automático**: execute no [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), onde o classificador revisa a chamada e pode aprová-la.

210* **Modo de contorno de permissões**: Claude Code aprova a chamada.210* **Modo de contorno de permissões**: execute no modo de contorno de permissões.

211* **Um hook**: um hook [`PreToolUse`](/docs/pt/hooks#pretooluse) que permite a chamada a aprova.211* **Um hook**: retorne `"allow"` para a chamada a partir de um hook [`PreToolUse`](/docs/pt/hooks#pretooluse). No [modo de planejamento](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode), o fluxo de trabalho não inicia apenas com a aprovação do hook, então use uma regra de permissão ou a aprovação do seu host nesse caso.

212* **Seu host**: um [`--permission-prompt-tool`](/docs/pt/cli-reference#cli-flags) ou, com o Agent SDK, um callback [`canUseTool`](/docs/pt/agent-sdk/permissions) a aprova.212* **Seu host**: um [`--permission-prompt-tool`](/docs/pt/cli-reference#cli-flags) ou, com o Agent SDK, um callback [`canUseTool`](/docs/pt/agent-sdk/permissions) a aprova.

213 213 

214No aplicativo Desktop, um cartão de aprovação mostra o nome do fluxo de trabalho, a lista de fases e um aviso de uso de token, com ações **Uma vez**, **Sempre** e **Negar**. A visualização de progresso aparece no painel de tarefas em segundo plano.214No aplicativo Desktop, um cartão de aprovação mostra o nome do fluxo de trabalho, a lista de fases e um aviso de uso de token, com ações **Uma vez**, **Sempre** e **Negar**. A visualização de progresso aparece no painel de tarefas em segundo plano.