SpyBara
Go Premium

Documentation 2026-10-02 22:59 UTC to 2026-10-03 01:57 UTC

13 files changed +124 −44. View all changes and history on the product overview
2026
Sat 3 02:59 Fri 2 22:59 Thu 1 23:59

chrome.md +1 −1

Details

130Em uma sessão do VS Code, se Claude Code pergunta a você antes de uma ação do navegador depende de como a sessão se conectou ao seu navegador:130Em uma sessão do VS Code, se Claude Code pergunta a você antes de uma ação do navegador depende de como a sessão se conectou ao seu navegador:

131 131 

132* **Você digitou `@browser`**: a extensão aprova cada ação do navegador sobre a qual Claude Code, de outra forma, perguntaria a você.132* **Você digitou `@browser`**: a extensão aprova cada ação do navegador sobre a qual Claude Code, de outra forma, perguntaria a você.

133* **A configuração [Enabled by default](#enable-chrome-by-default) a conectou ao iniciar**: Claude Code pergunta a você antes de ações do navegador nos modos de permissão Manual, Edit automatically, Auto e Bypass permissions, até que você digite `@browser` nessa sessão.133* **A configuração [Enabled by default](#enable-chrome-by-default) a conectou ao iniciar**: Claude Code pergunta a você antes de ações do navegador em um site que você não permitiu, nos modos de permissão Manual, Edit automatically, Auto e Bypass permissions, até que você digite `@browser` nessa sessão.

134 134 

135<h3 id="browser-tools-in-plan-mode">135<h3 id="browser-tools-in-plan-mode">

136 Ferramentas do navegador no modo de plano136 Ferramentas do navegador no modo de plano

Details

79| Campo | Obrigatório | Descrição |79| Campo | Obrigatório | Descrição |

80| - | - | - |80| - | - | - |

81| `issuer` | Sim | Base de descoberta OIDC. Deve servir descoberta em `/.well-known/openid-configuration`. Use HTTPS em produção; o gateway aceita um emissor `http://`. Um emissor de loopback como `http://localhost:8081` é rejeitado pela [proteção SSRF](/docs/pt/claude-apps-gateway-deploy#threat-model-summary) a menos que `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` esteja definido no ambiente do gateway. |81| `issuer` | Sim | Base de descoberta OIDC. Deve servir descoberta em `/.well-known/openid-configuration`. Use HTTPS em produção; o gateway aceita um emissor `http://`. Um emissor de loopback como `http://localhost:8081` é rejeitado pela [proteção SSRF](/docs/pt/claude-apps-gateway-deploy#threat-model-summary) a menos que `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` esteja definido no ambiente do gateway. |

82| `client_id` / `client_secret` | Sim | Do seu registro de cliente OAuth |82| `client_id` | Sim | Do seu registro de cliente OAuth |

83| `client_secret` | A menos que `token_endpoint_auth_method` seja `private_key_jwt` | Do seu registro de cliente OAuth. Omita-o quando você usar [autenticação de cliente por certificado](#certificate-client-authentication). |

83| `allowed_email_domains` | Não | Rejeite id\_tokens cuja declaração `email` não esteja em um desses domínios, insensível a maiúsculas/minúsculas. Defesa em profundidade contra configuração incorreta de IdP multi-tenant. Independentemente dessa configuração, um id\_token cuja declaração `email_verified` é explicitamente `false` é sempre rejeitado. |84| `allowed_email_domains` | Não | Rejeite id\_tokens cuja declaração `email` não esteja em um desses domínios, insensível a maiúsculas/minúsculas. Defesa em profundidade contra configuração incorreta de IdP multi-tenant. Independentemente dessa configuração, um id\_token cuja declaração `email_verified` é explicitamente `false` é sempre rejeitado. |

84| `allowed_groups` | Não | Restrinja o login a membros desses grupos IdP, comparados com `groups_claim`. Um usuário em um domínio de email permitido mas em nenhum desses grupos é rejeitado. Requer que o IdP emita a declaração de grupos. A correspondência é uma comparação de string exata e sensível a maiúsculas/minúsculas contra os valores nessa declaração, e o gateway não expande grupos aninhados: para admitir membros de um subgrupo, liste o subgrupo aqui ou configure o IdP para emitir associação achatada. |85| `allowed_groups` | Não | Restrinja o login a membros desses grupos IdP, comparados com `groups_claim`. Um usuário em um domínio de email permitido mas em nenhum desses grupos é rejeitado. Requer que o IdP emita a declaração de grupos. A correspondência é uma comparação de string exata e sensível a maiúsculas/minúsculas contra os valores nessa declaração, e o gateway não expande grupos aninhados: para admitir membros de um subgrupo, liste o subgrupo aqui ou configure o IdP para emitir associação achatada. |

85| `groups_claim` | Não | Qual declaração id\_token carrega associação de grupo. Padrão `groups`. Microsoft Entra emite funções de aplicativo sob `roles`. Aceita uma chave simples ou um JSON Pointer RFC 6901 como `/resource_access/gateway/roles` para declarações aninhadas. |86| `groups_claim` | Não | Qual declaração id\_token carrega associação de grupo. Padrão `groups`. Microsoft Entra emite funções de aplicativo sob `roles`. Aceita uma chave simples ou um JSON Pointer RFC 6901 como `/resource_access/gateway/roles` para declarações aninhadas. |


91| `userinfo_fallback` | Não | Quando o id\_token omite email ou grupos, busque-os em `/userinfo`. Necessário para tokens de acesso leve do Keycloak, o servidor org do Okta e tokens mínimos do ADFS. O id\_token permanece autoritário; userinfo apenas preenche lacunas. Padrão `false`. |92| `userinfo_fallback` | Não | Quando o id\_token omite email ou grupos, busque-os em `/userinfo`. Necessário para tokens de acesso leve do Keycloak, o servidor org do Okta e tokens mínimos do ADFS. O id\_token permanece autoritário; userinfo apenas preenche lacunas. Padrão `false`. |

92| `use_pkce` | Não | Envie um desafio PKCE (S256) na solicitação de autorização. Padrão `true`. Defina `false` apenas se seu IdP rejeitar PKCE para este cliente confidencial. |93| `use_pkce` | Não | Envie um desafio PKCE (S256) na solicitação de autorização. Padrão `true`. Defina `false` apenas se seu IdP rejeitar PKCE para este cliente confidencial. |

93| `clock_skew_seconds` | Não | Tolere desvio de relógio ao validar declarações de tempo id\_token. Padrão `0`, que é rigoroso. Aumente se você vir erros "token expirado / ainda não válido" logo após o login devido a desvio de relógio host/IdP. |94| `clock_skew_seconds` | Não | Tolere desvio de relógio ao validar declarações de tempo id\_token. Padrão `0`, que é rigoroso. Aumente se você vir erros "token expirado / ainda não válido" logo após o login devido a desvio de relógio host/IdP. |

94| `token_endpoint_auth_method` | Não | Substitua o método de autenticação do endpoint de token. Aceita `client_secret_basic` ou `client_secret_post`. Negociado automaticamente por padrão. |95| `token_endpoint_auth_method` | Não | Como o gateway se autentica no endpoint de token do IdP: `client_secret_basic`, `client_secret_post` ou `private_key_jwt` para [autenticação de cliente por certificado](#certificate-client-authentication). Por padrão, o gateway escolhe um dos dois métodos `client_secret` com base no que o IdP anuncia. |

96| `client_assertion` | Com `private_key_jwt` | Um bloco com `private_key_pem` e `certificate_pem`: a chave privada e o certificado para [autenticação de cliente por certificado](#certificate-client-authentication). Requer v2.1.284 ou posterior. |

95| `id_token_signed_response_alg` | Não | Algoritmo de assinatura id\_token esperado. Padrão `RS256`. Defina para IdPs que assinam com ES256, PS256 ou EdDSA. |97| `id_token_signed_response_alg` | Não | Algoritmo de assinatura id\_token esperado. Padrão `RS256`. Defina para IdPs que assinam com ES256, PS256 ou EdDSA. |

96| `additional_authorized_parties` | Não | Valores `azp` extras para aceitar além de `client_id`, para fluxos de broker e troca de token do Keycloak |98| `additional_authorized_parties` | Não | Valores `azp` extras para aceitar além de `client_id`, para fluxos de broker e troca de token do Keycloak |

97| `discovery_url` | Não | Busque o documento de descoberta desta URL em vez de derivá-lo de `issuer`, para IdPs atrás de um proxy que reescreve o host do emissor. O caminho deve conter `/.well-known/`. |99| `discovery_url` | Não | Busque o documento de descoberta desta URL em vez de derivá-lo de `issuer`, para IdPs atrás de um proxy que reescreve o host do emissor. O caminho deve conter `/.well-known/`. |


99| `form_action_origins` | Não | Origens adicionais para a diretiva `Content-Security-Policy: form-action` da página `/device`. O gateway já permite `'self'` e a origem `authorization_endpoint` descoberta, mas o Chrome impõe `form-action` contra toda a cadeia de redirecionamento. Se seu IdP redireciona através de um segundo host, como Azure AD federado para ADFS, Okta hub-spoke ou um interceptador SSO corporativo, liste cada origem pela qual a solicitação de autorização pode redirecionar. |101| `form_action_origins` | Não | Origens adicionais para a diretiva `Content-Security-Policy: form-action` da página `/device`. O gateway já permite `'self'` e a origem `authorization_endpoint` descoberta, mas o Chrome impõe `form-action` contra toda a cadeia de redirecionamento. Se seu IdP redireciona através de um segundo host, como Azure AD federado para ADFS, Okta hub-spoke ou um interceptador SSO corporativo, liste cada origem pela qual a solicitação de autorização pode redirecionar. |

100| `ca_cert_pem` | Não | O certificado CA codificado em PEM em si, não um caminho para um arquivo. Ele substitui o armazenamento de confiança do sistema apenas para solicitações do IdP. Para carregar um arquivo montado, escreva `${file:/etc/gateway/idp-ca.pem}`. Use para Keycloak ou Dex atrás de PKI corporativa. |102| `ca_cert_pem` | Não | O certificado CA codificado em PEM em si, não um caminho para um arquivo. Ele substitui o armazenamento de confiança do sistema apenas para solicitações do IdP. Para carregar um arquivo montado, escreva `${file:/etc/gateway/idp-ca.pem}`. Use para Keycloak ou Dex atrás de PKI corporativa. |

101 103 

104<h4 id="certificate-client-authentication">

105 Autenticação de cliente por certificado

106</h4>

107 

108Se o seu provedor de identidade autentica clientes OAuth com um certificado em vez de um segredo de cliente, como o Microsoft Entra faz com credenciais de certificado, defina `token_endpoint_auth_method: private_key_jwt`. Requer Claude Code v2.1.284 ou posterior no servidor gateway.

109 

110Com essa configuração, o gateway não envia nenhum segredo. Ele se autentica no endpoint de token do IdP com um JWT de curta duração assinado com a chave privada do certificado quando um desenvolvedor faz login e cada vez que o gateway atualiza a sessão dele. O JWT é assinado com RS256 e identifica o certificado pelos cabeçalhos de thumbprint `x5t` e `x5t#S256` em vez de um `kid`. Seu IdP deve ser capaz de encontrar o certificado registrado pelo thumbprint.

111 

112<Steps>

113 <Step title="Crie a chave e o certificado">

114 Crie uma chave privada RSA não criptografada de pelo menos 2048 bits, em formato PEM PKCS#8 ou PKCS#1, e um certificado para ela. O gateway se recusa a iniciar com qualquer chave que não atenda a essas condições. Este comando `openssl` cria uma chave desse tipo com um certificado autoassinado válido por um ano:

115 

116 ```bash theme={null}

117 openssl req -x509 -newkey rsa:2048 -nodes -keyout idp-client.key -out idp-client.crt -days 365 -subj "/CN=claude-gateway"

118 ```

119 

120 Ele grava `idp-client.key` e `idp-client.crt` no diretório atual. Copie ou monte ambos os arquivos onde o gateway possa lê-los. O exemplo na etapa 3 usa `/etc/gateway/`.

121 </Step>

122 

123 <Step title="Envie o certificado para o IdP">

124 Envie o certificado, não a chave privada, para o registro de aplicativo do gateway no IdP.

125 </Step>

126 

127 <Step title="Adicione a chave e o certificado ao gateway.yaml">

128 Forneça ao gateway a chave privada e o certificado em um bloco `client_assertion`. Omita `client_secret`, porque o gateway se recusa a iniciar quando ele está definido junto com `private_key_jwt`. Este bloco `oidc` autentica o gateway em um tenant do Microsoft Entra com um certificado:

129 

130 ```yaml theme={null}

131 oidc:

132 issuer: https://login.microsoftonline.com/<tenant-id>/v2.0

133 client_id: <application-id>

134 token_endpoint_auth_method: private_key_jwt

135 client_assertion:

136 private_key_pem: ${file:/etc/gateway/idp-client.key}

137 certificate_pem: ${file:/etc/gateway/idp-client.crt}

138 ```

139 

140 Ambos os valores são o conteúdo PEM, não caminhos de arquivo, portanto carregue arquivos montados com `${file:/path}` como o exemplo faz. O gateway se recusa a iniciar a menos que `certificate_pem` seja um único certificado PEM, sem o restante de sua cadeia, cuja chave pública corresponda a `private_key_pem`.

141 </Step>

142 

143 <Step title="Reinicie o gateway e verifique o log de inicialização">

144 Reinicie o gateway e encontre esta linha no log de inicialização:

145 

146 ```text theme={null}

147 [gateway] 2026-10-01T23:07:40.512Z info oidc: client authentication private_key_jwt; certificate CN=claude-gateway, SHA-1 thumbprint DE92821854EE8BAA1D98C758FAA04AABE80B9F57, expires Oct 1 23:07:31 2027 GMT

148 ```

149 

150 Compare o thumbprint SHA-1 com o que o IdP mostra para o certificado que você enviou. Se o certificado tiver expirado ou ainda não for válido, o gateway ainda inicia, mas registra um aviso de que logins e atualizações falharão até que você o substitua. Para confirmar que o IdP aceita o certificado, peça a um desenvolvedor que faça login através do gateway.

151 </Step>

152</Steps>

153 

154<h4 id="rotate-the-client-certificate">

155 Rotacionar o certificado do cliente

156</h4>

157 

158O gateway lê a chave e o certificado uma vez na inicialização, portanto um arquivo alterado só tem efeito após uma reinicialização. Faça a rotação nesta ordem para que nenhuma requisição de token apresente um certificado que o IdP não tenha:

159 

1601. Envie o novo certificado para o IdP junto com o antigo.

1612. Substitua os arquivos de chave e certificado que o `gateway.yaml` carrega e, em seguida, reinicie o gateway.

1623. Remova o certificado antigo do IdP.

163 

102<h4 id="idp-requests-through-a-forward-proxy">164<h4 id="idp-requests-through-a-forward-proxy">

103 Solicitações do IdP através de um proxy de encaminhamento165 Solicitações do IdP através de um proxy de encaminhamento

104</h4>166</h4>

Details

25 Configuração do provedor de identidade25 Configuração do provedor de identidade

26</h2>26</h2>

27 27 

28Registre um aplicativo web OAuth/OpenID Connect (OIDC) confidencial com um único URI de redirecionamento, `https://<gateway>/oauth/callback`, e atribua-o aos usuários ou grupos que devem ter acesso ao gateway.28Registre uma aplicação web confidencial OAuth/OpenID Connect (OIDC) com um único URI de redirecionamento, `https://<gateway>/oauth/callback`, e atribua-a aos usuários ou grupos que devem ter acesso ao gateway. O gateway se autentica no IdP com o client secret do registro, ou com um certificado que você envia para o registro se o seu IdP usar [credenciais de certificado](/docs/pt/claude-apps-gateway-config#certificate-client-authentication) em vez disso.

29 29 

30Qualquer IdP compatível com OIDC funciona: Okta, Microsoft Entra ID, Google Workspace, Keycloak, Dex, PingFederate e outros. O IdP deve atender a três requisitos:30Qualquer IdP compatível com OIDC funciona: Okta, Microsoft Entra ID, Google Workspace, Keycloak, Dex, PingFederate e outros. O IdP deve atender a três requisitos:

31 31 

32* Serve `/.well-known/openid-configuration`, sobre HTTPS em produção; o gateway aceita um [emissor `http://`](/docs/pt/claude-apps-gateway-config#oidc), e um emissor de loopback adicionalmente requer `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`32* Disponibiliza `/.well-known/openid-configuration`, via HTTPS em produção; o gateway aceita um [issuer `http://`](/docs/pt/claude-apps-gateway-config#oidc), e um issuer de loopback requer adicionalmente `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`

33* Suporta o fluxo de código de autorização. PKCE (Proof Key for Code Exchange) está ativado por padrão; desative-o com `oidc.use_pkce: false` para IdPs que não o suportam33* Suporta o fluxo de authorization code. PKCE (Proof Key for Code Exchange) vem ativado por padrão; desative-o com `oidc.use_pkce: false` para IdPs que não o suportam

34* Retorna `email` e opcionalmente `groups` no id\_token, ou os serve do endpoint userinfo com `oidc.userinfo_fallback: true`34* Retorna `email` e, opcionalmente, `groups` no id\_token, ou os disponibiliza a partir do endpoint userinfo com `oidc.userinfo_fallback: true`

35 35 

36Para PKI privada, defina `oidc.ca_cert_pem`.36Para PKI privada, defina `oidc.ca_cert_pem`.

37 37 

38Alguns provedores lidam com email e reivindicações de grupo de forma diferente:38Alguns provedores tratam claims de email e de grupos de forma diferente:

39 39 

40* **Okta**: o servidor de autorização da organização em `https://example.okta.com` retorna um id\_token fino que omite `email` e `groups`, então defina `oidc.userinfo_fallback: true` sempre que o usar como `issuer`. Um servidor de autorização personalizado como `https://example.okta.com/oauth2/default` que inclui `email` e opcionalmente `groups` no id\_token os emite diretamente e não precisa de fallback. Okta emite `groups` apenas quando o escopo `groups` é solicitado em `oidc.scopes` e o filtro de reivindicação de grupos do aplicativo o permite; `userinfo_fallback` não pode preencher uma reivindicação que o IdP não foi solicitado.40* **Okta**: o servidor de autorização da organização em `https://example.okta.com` retorna um id\_token enxuto que omite `email` e `groups`, portanto defina `oidc.userinfo_fallback: true` sempre que você o usar como `issuer`. Um servidor de autorização personalizado, como `https://example.okta.com/oauth2/default`, que inclua `email` e, opcionalmente, `groups` no id\_token, os emite diretamente e não precisa de fallback. O Okta emite `groups` somente quando o escopo `groups` é solicitado em `oidc.scopes` e o filtro de claim de grupos da aplicação o permite; `userinfo_fallback` não consegue preencher uma claim que não foi solicitada ao IdP.

41* **Microsoft Entra ID**: `issuer` = `https://login.microsoftonline.com/<tenant-id>/v2.0`. Entra emite Object IDs de grupo em vez de nomes, então use os GUIDs em `managed.policies.match.groups`, ou use App Roles para nomes legíveis por humanos. Se seu locatário emite funções sob `roles` em vez de `groups`, defina `oidc.groups_claim: roles`.41* **Microsoft Entra ID**: `issuer` = `https://login.microsoftonline.com/<tenant-id>/v2.0`. O Entra emite Object IDs de grupos em vez de nomes, portanto use os GUIDs em `managed.policies.match.groups`, ou use App Roles para nomes legíveis. Se o seu tenant emitir funções em `roles` em vez de `groups`, defina `oidc.groups_claim: roles`.

42* **Google Workspace**: `issuer` = `https://accounts.google.com`. O id\_token do Google não carrega grupos. Para usar `allowed_groups` baseado em grupo ou `managed.policies` com Google como IdP, configure [`oidc.google_groups`](/docs/pt/claude-apps-gateway-config#oidc), que procura os grupos de cada usuário através da API do Directory do Admin SDK usando uma conta de serviço com delegação em todo o domínio. Sem isso, use `oidc.allowed_email_domains` para gating de associação e `managed.policies.match.email_domain` para atribuição de política. Google também ignora o escopo padrão `offline_access`. Para tokens de atualização, defina `oidc.scopes: [openid, profile, email]` e `oidc.extra_auth_params: { access_type: offline, prompt: consent }`.42* **Google Workspace**: `issuer` = `https://accounts.google.com`. O id\_token do Google não contém grupos. Para usar `allowed_groups` ou `managed.policies` baseados em grupos com o Google como IdP, configure [`oidc.google_groups`](/docs/pt/claude-apps-gateway-config#oidc), que consulta os grupos de cada usuário por meio da Admin SDK Directory API usando uma conta de serviço com delegação em todo o domínio. Sem isso, use `oidc.allowed_email_domains` para controlar a associação e `managed.policies.match.email_domain` para a atribuição de políticas. O Google também ignora o escopo padrão `offline_access`. Para refresh tokens, defina `oidc.scopes: [openid, profile, email]` e `oidc.extra_auth_params: { access_type: offline, prompt: consent }`.

43 43 

44<Warning>44<Warning>

45 Tokens de atualização permitem que o gateway renove a sessão de um desenvolvedor silenciosamente, sem enviar o desenvolvedor de volta ao navegador. Eles também impulsionam o desprovisionamento, porque quando o IdP desativa um usuário, a próxima atualização falha e a sessão termina dentro de `ttl_hours`. O gateway solicita `offline_access` por padrão para obter um token de atualização. Se seu IdP exigir consentimento explícito para acesso offline, configure o cliente OAuth para permitir.45 Os refresh tokens permitem que o gateway renove a sessão de um desenvolvedor silenciosamente, sem enviar o desenvolvedor de volta ao navegador. Eles também viabilizam o desprovisionamento, porque quando o IdP desativa um usuário, a próxima renovação falha e a sessão termina dentro de `ttl_hours`. O gateway solicita `offline_access` por padrão para obter um refresh token. Se o seu IdP exigir consentimento explícito para acesso offline, configure o cliente OAuth para permiti-lo.

46 46 

47 Se seu IdP não conseguir emitir tokens de atualização, o gateway ainda funciona, mas não há renovação silenciosa, então os desenvolvedores executam novamente o login do navegador quando sua sessão expira. Para evitar que isso aconteça a cada hora, aumente [`session.ttl_hours`](/docs/pt/claude-apps-gateway-config#session) para `8` ou `12`. A compensação é a latência de desprovisionamento, porque sem tokens de atualização um usuário desativado mantém acesso até que o TTL mais longo decorra.47 Se o seu IdP não puder emitir refresh tokens de forma alguma, o gateway ainda funciona, mas não há renovação silenciosa, então os desenvolvedores executam novamente o login pelo navegador quando a sessão expira. Para evitar que isso aconteça a cada hora, aumente [`session.ttl_hours`](/docs/pt/claude-apps-gateway-config#session) para `8` ou `12`. A contrapartida é a latência do desprovisionamento, porque sem refresh tokens um usuário desativado mantém o acesso até que o TTL mais longo expire.

48</Warning>48</Warning>

49 49 

50<h2 id="deployment">50<h2 id="deployment">

Details

226* **A sessão receptora solicita permissões**: Claude Code entrega cada mensagem. Retém uma apenas para sua aprovação quando a sessão de envio se identifica como contornando prompts de permissão.226* **A sessão receptora solicita permissões**: Claude Code entrega cada mensagem. Retém uma apenas para sua aprovação quando a sessão de envio se identifica como contornando prompts de permissão.

227* **A sessão receptora contorna prompts de permissão**: Claude Code retém cada mensagem para sua aprovação. Entrega uma apenas quando a sessão de envio se identifica como também contornando.227* **A sessão receptora contorna prompts de permissão**: Claude Code retém cada mensagem para sua aprovação. Entrega uma apenas quando a sessão de envio se identifica como também contornando.

228 228 

229Quando o padrão retém uma mensagem, Claude Code abre um diálogo de aprovação na sessão receptora. O diálogo mostra o remetente e uma prévia:229Quando o padrão retém uma mensagem em uma sessão interativa de terminal, Claude Code abre um diálogo de aprovação ali. O diálogo mostra o remetente e uma prévia:

230 230 

231* **Approve** entrega essa mensagem a Claude.231* **Approve** entrega essa mensagem a Claude.

232* **Deny**, ou descartar o diálogo, a descarta.232* **Deny**, ou descartar o diálogo, a descarta.


234* Enquanto nenhum terminal está anexado a uma [sessão em background](/docs/pt/agent-view), Claude Code deixa o diálogo aberto após o prazo. Depois que você anexa, se o diálogo fica sem resposta por um período de prazo completo, Claude Code o fecha e descarta a mensagem.234* Enquanto nenhum terminal está anexado a uma [sessão em background](/docs/pt/agent-view), Claude Code deixa o diálogo aberto após o prazo. Depois que você anexa, se o diálogo fica sem resposta por um período de prazo completo, Claude Code o fecha e descarta a mensagem.

235* Se a classe de modo de permissão dessa sessão muda enquanto mensagens estão retidas, Claude Code re-aplica as regras de entrada, entrega as mensagens que agora aceita, e mostra um aviso.235* Se a classe de modo de permissão dessa sessão muda enquanto mensagens estão retidas, Claude Code re-aplica as regras de entrada, entrega as mensagens que agora aceita, e mostra um aviso.

236 236 

237Uma sessão na extensão do VS Code ou no app Desktop não pode mostrar o diálogo. Claude Code mantém uma mensagem retida ali até o mesmo prazo, como [Sessões não-interativas](#non-interactive-sessions) descreve.

238 

237Claude Code retém no máximo 100 mensagens, e além disso descarta a mais antiga.239Claude Code retém no máximo 100 mensagens, e além disso descarta a mais antiga.

238 240 

239<h3 id="non-interactive-sessions">241<h3 id="non-interactive-sessions">

env-vars.md +1 −0

Details

275| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | Defina como `1` para impedir que o Claude Code execute seus [hooks `Notification` para solicitações de permissão não respondidas](/docs/pt/hooks#notification) em sessões nas quais o Claude Code as envia ao callback `canUseTool` do Agent SDK, que é como o Claude Desktop e a extensão do VS Code hospedam o Claude Code. Não tem efeito em sessões de terminal. Requer Claude Code v2.1.233 ou posterior |275| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | Defina como `1` para impedir que o Claude Code execute seus [hooks `Notification` para solicitações de permissão não respondidas](/docs/pt/hooks#notification) em sessões nas quais o Claude Code as envia ao callback `canUseTool` do Agent SDK, que é como o Claude Desktop e a extensão do VS Code hospedam o Claude Code. Não tem efeito em sessões de terminal. Requer Claude Code v2.1.233 ou posterior |

276| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Defina como `1` para pular o carregamento de skills do diretório de skills gerenciadas de todo o sistema. Útil para sessões de contêiner ou CI que não devem carregar skills provisionadas pelo operador |276| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Defina como `1` para pular o carregamento de skills do diretório de skills gerenciadas de todo o sistema. Útil para sessões de contêiner ou CI que não devem carregar skills provisionadas pelo operador |

277| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | Defina como `1` para desativar a verificação da [ferramenta PowerShell](/docs/pt/tools-reference#powershell-tool) que nega os comandos internos do `cmd` `rd`, `rmdir`, `del` e `erase` em um [caminho do sistema](/docs/pt/permission-modes#remove-item-in-powershell), como a raiz de uma unidade ou seu diretório pessoal. O Claude Code ignora esta variável no bloco `env` de um arquivo de configurações. Requer Claude Code v2.1.283 ou posterior |277| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | Defina como `1` para desativar a verificação da [ferramenta PowerShell](/docs/pt/tools-reference#powershell-tool) que nega os comandos internos do `cmd` `rd`, `rmdir`, `del` e `erase` em um [caminho do sistema](/docs/pt/permission-modes#remove-item-in-powershell), como a raiz de uma unidade ou seu diretório pessoal. O Claude Code ignora esta variável no bloco `env` de um arquivo de configurações. Requer Claude Code v2.1.283 ou posterior |

278| `CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS` | Defina como `1` para impedir que o Claude Code envie o campo de saída estruturada `output_config.format` e o valor `anthropic-beta` associado a ele, para um [gateway de LLM](/docs/pt/llm-gateway-protocol#feature-pass-through) cujo upstream os rejeita. Isso mantém ativados os outros recursos de pré-lançamento que [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/pt/llm-gateway-protocol#disable-pre-release-capabilities) desativa. Requer Claude Code v2.1.288 ou posterior |

278| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | Defina como `1` para desativar a verificação de [caminho crítico](/docs/pt/permission-modes#critical-paths) para um `rm` recursivo cujo alvo é inteiramente a saída de uma substituição de comando, como `rm -rf "$(pwd)"`. As outras verificações de caminho crítico continuam em execução. Defina-a no ambiente que inicia o Claude Code, pois o Claude Code ignora uma cópia entregue por meio de um bloco `env` de configurações. Requer Claude Code v2.1.281 ou posterior |279| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | Defina como `1` para desativar a verificação de [caminho crítico](/docs/pt/permission-modes#critical-paths) para um `rm` recursivo cujo alvo é inteiramente a saída de uma substituição de comando, como `rm -rf "$(pwd)"`. As outras verificações de caminho crítico continuam em execução. Defina-a no ambiente que inicia o Claude Code, pois o Claude Code ignora uma cópia entregue por meio de um bloco `env` de configurações. Requer Claude Code v2.1.281 ou posterior |

279| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Defina como `1` para desativar as atualizações automáticas do título do terminal com base no contexto da conversa. Isso também pula a requisição em segundo plano ao modelo pequeno/rápido que [gera um título de sessão](/docs/pt/sessions#name-your-sessions) |280| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Defina como `1` para desativar as atualizações automáticas do título do terminal com base no contexto da conversa. Isso também pula a requisição em segundo plano ao modelo pequeno/rápido que [gera um título de sessão](/docs/pt/sessions#name-your-sessions) |

280| `CLAUDE_CODE_DISABLE_THINKING` | Defina como `1` para omitir totalmente o parâmetro `thinking` das requisições de API. Esta é uma opção de compatibilidade para proxies e gateways que rejeitam o parâmetro. Em modelos que pensam por padrão, omitir o parâmetro significa que o modelo ainda pode pensar. Para desativar explicitamente o [pensamento estendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) na API da Anthropic, use `MAX_THINKING_TOKENS=0` em vez disso. Nenhuma das variáveis desativa o pensamento no Opus 5.5, no Sonnet 5.5 ou nos modelos Fable, que não permitem desativar o pensamento. Em [provedores terceiros](/docs/pt/third-party-integrations), `MAX_THINKING_TOKENS=0` também omite o parâmetro, então as duas variáveis se comportam da mesma forma lá |281| `CLAUDE_CODE_DISABLE_THINKING` | Defina como `1` para omitir totalmente o parâmetro `thinking` das requisições de API. Esta é uma opção de compatibilidade para proxies e gateways que rejeitam o parâmetro. Em modelos que pensam por padrão, omitir o parâmetro significa que o modelo ainda pode pensar. Para desativar explicitamente o [pensamento estendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) na API da Anthropic, use `MAX_THINKING_TOKENS=0` em vez disso. Nenhuma das variáveis desativa o pensamento no Opus 5.5, no Sonnet 5.5 ou nos modelos Fable, que não permitem desativar o pensamento. Em [provedores terceiros](/docs/pt/third-party-integrations), `MAX_THINKING_TOKENS=0` também omite o parâmetro, então as duas variáveis se comportam da mesma forma lá |

errors.md +1 −1

Details

4416 Definição de agente do colega não foi restaurada4416 Definição de agente do colega não foi restaurada

4417</h3>4417</h3>

4418 4418 

4419Claude enviou uma mensagem a um colega de [equipe de agentes](/docs/pt/agent-teams) parado, e Claude Code o trouxe de volta sem reaplicar a [definição de subagente](/docs/pt/agent-teams#use-subagent-definitions-for-teammates) de que foi gerado, porque seu arquivo de definição veio de uma pasta sem confiança salva. O aviso segue o relatório de retomada no resultado da ferramenta do agente remetente:4419Claude enviou uma mensagem a um colega de [equipe de agentes](/docs/pt/agent-teams) parado, e Claude Code o trouxe de volta sem reaplicar a [definição de subagente](/docs/pt/agent-teams#use-subagent-definitions-for-teammates) de que foi gerado. O aviso segue o relatório de retomada no resultado da ferramenta do agente remetente e nomeia a razão. Quando o arquivo de definição veio de uma pasta sem confiança salva, ele diz:

4420 4420 

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

4422Its agent definition was not restored: the folder its definition file came from is not trusted (source: projectSettings), so the teammate is running with the team-essential tools and no custom instructions. To restore it, the user needs to run Claude Code in that folder once and accept the trust dialog (the --debug log names the folder); do not change trust settings on the user's behalf.4422Its agent definition was not restored: the folder its definition file came from is not trusted (source: projectSettings), so the teammate is running with the team-essential tools and no custom instructions. To restore it, the user needs to run Claude Code in that folder once and accept the trust dialog (the --debug log names the folder); do not change trust settings on the user's behalf.

hooks.md +1 −1

Details

1967| Campo | Descrição |1967| Campo | Descrição |

1968| :- | :- |1968| :- | :- |

1969| `permissionDecision` | `"allow"` pula o prompt de permissão, exceto para as [ações que nenhum modo auto-aprova](/docs/pt/permission-modes#actions-no-mode-auto-approves) e para `AskUserQuestion` e `ExitPlanMode`, que precisam de [`updatedInput` emparelhado com ele](#allow-with-updatedinput). `"deny"` impede a chamada de ferramenta. `"ask"` solicita ao usuário para confirmar. `"defer"` sai graciosamente para que a ferramenta possa ser retomada mais tarde. [Regras de negação e pergunta](/docs/pt/permissions#manage-permissions) ainda são avaliadas independentemente do que o hook retorna |1969| `permissionDecision` | `"allow"` pula o prompt de permissão, exceto para as [ações que nenhum modo auto-aprova](/docs/pt/permission-modes#actions-no-mode-auto-approves) e para `AskUserQuestion` e `ExitPlanMode`, que precisam de [`updatedInput` emparelhado com ele](#allow-with-updatedinput). `"deny"` impede a chamada de ferramenta. `"ask"` solicita ao usuário para confirmar. `"defer"` sai graciosamente para que a ferramenta possa ser retomada mais tarde. [Regras de negação e pergunta](/docs/pt/permissions#manage-permissions) ainda são avaliadas independentemente do que o hook retorna |

1970| `permissionDecisionReason` | Para `"ask"`, mostrado ao usuário mas não ao Claude. Para `"deny"`, mostrado ao Claude. Para `"allow"` e `"defer"`, escrito apenas no [log de depuração](#debug-hooks) |1970| `permissionDecisionReason` | Para `"ask"`, mostrado ao usuário no prompt de permissão. Quando o Claude Code [nega a chamada](/docs/pt/headless#turn-off-permission-prompts-in-unattended-runs) em uma execução `-p` em que ninguém pode responder a esse prompt, o Claude lê o motivo no resultado da ferramenta. Para `"deny"`, mostrado ao Claude. Para `"allow"` e `"defer"`, gravado apenas no [log de depuração](#debug-hooks) |

1971| `updatedInput` | Modifica os parâmetros de entrada da ferramenta antes da execução. Substitui o objeto de entrada inteiro, então inclua campos inalterados junto com os modificados. Claude Code avalia regras de permissão e a elegibilidade de [colocação em segundo plano automático](/docs/pt/tools-reference#foreground-commands-that-move-to-the-background) de um comando Bash contra a entrada que seu hook retorna, não a entrada que Claude enviou. Combine com `"allow"` para auto-aprovar, ou `"ask"` para mostrar a entrada modificada ao usuário. Para `"defer"`, ignorado |1971| `updatedInput` | Modifica os parâmetros de entrada da ferramenta antes da execução. Substitui o objeto de entrada inteiro, então inclua campos inalterados junto com os modificados. Claude Code avalia regras de permissão e a elegibilidade de [colocação em segundo plano automático](/docs/pt/tools-reference#foreground-commands-that-move-to-the-background) de um comando Bash contra a entrada que seu hook retorna, não a entrada que Claude enviou. Combine com `"allow"` para auto-aprovar, ou `"ask"` para mostrar a entrada modificada ao usuário. Para `"defer"`, ignorado |

1972| `additionalContext` | String adicionada ao contexto do Claude junto com o resultado da ferramenta. Ignorado quando `permissionDecision` é `"defer"`. Veja [Adicionar contexto para Claude](#add-context-for-claude) |1972| `additionalContext` | String adicionada ao contexto do Claude junto com o resultado da ferramenta. Ignorado quando `permissionDecision` é `"defer"`. Veja [Adicionar contexto para Claude](#add-context-for-claude) |

1973 1973 

Details

245| [Gerenciamento de contexto](https://platform.claude.com/docs/en/build-with-claude/context-editing) | Header beta de gerenciamento de contexto emparelhado com o campo de corpo `context_management` | `400` com `Extra inputs are not permitted`. Comum quando um gateway aceita solicitações no formato Anthropic mas as encaminha para Amazon Bedrock | Encaminhe ambos, ou [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |245| [Gerenciamento de contexto](https://platform.claude.com/docs/en/build-with-claude/context-editing) | Header beta de gerenciamento de contexto emparelhado com o campo de corpo `context_management` | `400` com `Extra inputs are not permitted`. Comum quando um gateway aceita solicitações no formato Anthropic mas as encaminha para Amazon Bedrock | Encaminhe ambos, ou [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

246| [Contexto estendido](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) e [pensamento intercalado](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | Apenas headers beta, sem campo de corpo | Silenciosamente indisponível quando o header é removido; o upstream nunca vê a solicitação de capacidade | Encaminhe `anthropic-beta` verbatim |246| [Contexto estendido](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) e [pensamento intercalado](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | Apenas headers beta, sem campo de corpo | Silenciosamente indisponível quando o header é removido; o upstream nunca vê a solicitação de capacidade | Encaminhe `anthropic-beta` verbatim |

247| Campos de [ferramenta](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) beta | Headers beta relacionados a ferramentas emparelhados com campos de schema de ferramenta como `strict` e `defer_loading` | `400` nomeando o campo de schema de ferramenta não reconhecido quando o corpo passa sem seu header | Encaminhe ambos, ou [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |247| Campos de [ferramenta](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) beta | Headers beta relacionados a ferramentas emparelhados com campos de schema de ferramenta como `strict` e `defer_loading` | `400` nomeando o campo de schema de ferramenta não reconhecido quando o corpo passa sem seu header | Encaminhe ambos, ou [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

248| [Esforço](https://platform.claude.com/docs/en/build-with-claude/effort) e [saídas estruturadas](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | O campo de corpo `output_config` carrega esforço, formato de saída estruturada e configurações de orçamento de tarefa; cada um emparelhado com seu próprio header beta | `400` nomeando `output_config`, frequentemente `Extra inputs are not permitted`, em upstreams Amazon Bedrock e Agent Platform do Google Cloud | Encaminhe o campo e seus headers juntos, ou peça aos desenvolvedores que definam [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities), que remove as configurações de formato e de orçamento de tarefa, mas não o esforço |248| [Esforço](https://platform.claude.com/docs/en/build-with-claude/effort) e [saídas estruturadas](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | O campo de corpo `output_config` carrega esforço, formato de saída estruturada e configurações de orçamento de tarefa; cada um emparelhado com seu próprio header beta | `400` nomeando `output_config`, frequentemente `Extra inputs are not permitted`, em upstreams Amazon Bedrock e Agent Platform do Google Cloud | Encaminhe o campo e seus headers juntos, ou peça aos desenvolvedores que definam [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities), que remove as configurações de formato e de orçamento de tarefa, mas não o esforço. Para remover apenas o formato, eles podem definir [`CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS=1`](/docs/pt/env-vars) em vez disso, o que requer v2.1.288 ou posterior |

249| [Prompt caching](/docs/pt/prompt-caching) | Sem emparelhamento beta. Claude Code anexa marcadores `cache_control` a blocos `system` e a entradas `messages`, incluindo entradas `role: "system"` anexadas no meio da conversa | Sem erro: a conversa é cobrada como entrada não armazenada em cache a cada turno, visível como `input_tokens` alto com pouca ou nenhuma atividade de cache em `usage` | Encaminhe `cache_control` inalterado onde quer que apareça, e não converta `system` em forma de bloco ou conteúdo de mensagem para strings simples |249| [Prompt caching](/docs/pt/prompt-caching) | Sem emparelhamento beta. Claude Code anexa marcadores `cache_control` a blocos `system` e a entradas `messages`, incluindo entradas `role: "system"` anexadas no meio da conversa | Sem erro: a conversa é cobrada como entrada não armazenada em cache a cada turno, visível como `input_tokens` alto com pouca ou nenhuma atividade de cache em `usage` | Encaminhe `cache_control` inalterado onde quer que apareça, e não converta `system` em forma de bloco ou conteúdo de mensagem para strings simples |

250| [Contagem de tokens](https://platform.claude.com/docs/en/build-with-claude/token-counting) | Sem emparelhamento beta; usa o endpoint `count_tokens` | Sem erro: Claude Code volta a uma estimativa baseada em caracteres, então `/context` mostra contagens aproximadas | Exponha o endpoint para contagens de tokens exatas |250| [Contagem de tokens](https://platform.claude.com/docs/en/build-with-claude/token-counting) | Sem emparelhamento beta; usa o endpoint `count_tokens` | Sem erro: Claude Code volta a uma estimativa baseada em caracteres, então `/context` mostra contagens aproximadas | Exponha o endpoint para contagens de tokens exatas |

251 251 

model-config.md +4 −3

Details

794 794 

795<span id="context-window-behind-a-gateway" />795<span id="context-window-behind-a-gateway" />

796 796 

797Se você definir `ANTHROPIC_BASE_URL` para um [gateway LLM](/docs/pt/llm-gateway) ou outro proxy, Claude Code dá a cada modelo que reconhece a mesma janela de contexto que o modelo tem na Anthropic API. Fable 5.1, Fable 5, Sonnet 5 e posterior, e Opus 4.7 e posterior recebem a janela de 1M sem nenhuma variante `[1m]` para selecionar, e um modelo que alcança 1M apenas através de sua variante `[1m]`, como Opus 4.6, é executado em 200K sem ela. Claude Code não pode detectar um limite inferior que o gateway ou o servidor atrás dele impõe. Se seu gateway rejeita solicitações acima de 200K tokens, execute [`/autocompact 200k`](#set-the-auto-compact-window) para que as sessões compactem nesse limite.797Se você definir `ANTHROPIC_BASE_URL` para um [gateway de LLM](/docs/pt/llm-gateway) ou outro proxy, Claude Code dá a cada modelo que reconhece a mesma janela de contexto que o modelo tem na Anthropic API. Fable 5.1, Fable 5, Sonnet 5 e posterior, e Opus 4.7 e posterior recebem a janela de 1M sem nenhuma variante `[1m]` para selecionar, e um modelo que alcança 1M apenas através de sua variante `[1m]`, como Opus 4.6, é executado em 200K sem ela. Claude Code não pode detectar um limite inferior que o gateway ou o servidor atrás dele impõe. Se seu gateway rejeita requisições acima de 200K tokens, defina [`CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000`](/docs/pt/env-vars) no ambiente que inicia Claude Code, para que as sessões em cada modelo [compactem nesse limite](#set-the-auto-compact-window).

798 798 

799Para desativar contexto de 1M, defina `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`. Claude Code remove variantes de modelo de 1M do seletor de modelo. Em modelos com uma janela nativa de 1M, como Sonnet 5 e os modelos Fable, também trata o modelo como tendo uma janela de contexto de 200K:799Para desativar contexto de 1M, defina `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`. Claude Code remove variantes de modelo de 1M do seletor de modelo. Em modelos com uma janela nativa de 1M, como Sonnet 5 e os modelos Fable, também trata o modelo como tendo uma janela de contexto de 200K:

800 800 


840 Definir a janela de auto-compactação840 Definir a janela de auto-compactação

841</h3>841</h3>

842 842 

843Você pode definir a janela de auto-compactação em três lugares:843Você pode definir a janela de compactação automática nestes lugares:

844 844 

845* **Para esta sessão e posteriores**: execute `/autocompact` com um valor, como `/autocompact 500k`. Claude Code o salva em suas configurações de usuário como [`autoCompactWindow`](/docs/pt/settings-reference#autocompactwindow) e o aplica à sessão atual; se um [escopo de configurações](/docs/pt/settings#settings-precedence) de prioridade mais alta, como configurações gerenciadas, definir a chave, o comando salva seu valor, mas a sessão mantém a janela desse escopo, e o comando informa isso. Execute `/autocompact auto` para retornar à janela ajustada para seu modelo.845* **Para o modelo atual, nesta sessão e nas posteriores**: execute `/autocompact` com um valor, como `/autocompact 500k`. Claude Code o salva em suas configurações de usuário sob o modelo atual em [`modelSettings`](/docs/pt/settings-reference#modelsettings) e o aplica à sessão atual. Se um [escopo de configurações](/docs/pt/settings#settings-precedence) de prioridade mais alta, como configurações gerenciadas, definir sua própria janela para esse modelo ou para todos os modelos, o comando salva seu valor, mas a sessão mantém a janela desse escopo, e o comando informa isso. Execute `/autocompact auto` para retornar à janela ajustada para seu modelo. Antes da v2.1.288, o comando salvava uma única janela para todos os modelos, como a chave de nível superior `autoCompactWindow`.

846* **Para todos os modelos**: defina [`autoCompactWindow`](/docs/pt/settings-reference#autocompactwindow) em um arquivo de configurações, como `"autoCompactWindow": 200000` em `~/.claude/settings.json`. Uma janela que você salvou para um modelo com `/autocompact` tem precedência sobre essa chave no mesmo arquivo para esse modelo.

846* **Para um lançamento**: passe [`--autocompact`](/docs/pt/cli-reference#cli-flags) ao iniciar Claude Code. O sinalizador substitui sua configuração salva para esse lançamento sem alterá-la, e `claude --autocompact auto` executa a sessão na janela ajustada mesmo se sua configuração salva tiver um valor. Diferentemente de `/autocompact`, o sinalizador não é preemptado por um escopo de configurações de prioridade mais alta, como configurações gerenciadas.847* **Para um lançamento**: passe [`--autocompact`](/docs/pt/cli-reference#cli-flags) ao iniciar Claude Code. O sinalizador substitui sua configuração salva para esse lançamento sem alterá-la, e `claude --autocompact auto` executa a sessão na janela ajustada mesmo se sua configuração salva tiver um valor. Diferentemente de `/autocompact`, o sinalizador não é preemptado por um escopo de configurações de prioridade mais alta, como configurações gerenciadas.

847* **Em scripts e ambientes em nuvem**: defina [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/pt/env-vars). Enquanto estiver definido, ele tem precedência sobre o comando, o sinalizador e a configuração, e `/autocompact` relata a substituição em vez de alterar a janela.848* **Em scripts e ambientes em nuvem**: defina [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/pt/env-vars). Enquanto estiver definido, ele tem precedência sobre o comando, o sinalizador e a configuração, e `/autocompact` relata a substituição em vez de alterar a janela.

848 849 

plugins/publish.md +26 −11

Details

145 Envie para o diretório da Anthropic145 Envie para o diretório da Anthropic

146</h2>146</h2>

147 147 

148O diretório da Anthropic é o catálogo que as pessoas navegam no claude.ai e no Cowork para adicionar plugins e conectores. Uma listagem lá alcança pessoas no claude.ai, no Cowork e no Claude Code. Você envia pelo portal do desenvolvedor em [claude.ai/directory/manage](https://claude.ai/directory/manage); [Prepare for review](https://claude.com/docs/directory/publish#prepare-for-review) no claude.com descreve o que acontece com cada versão antes de ser publicada.148O [diretório da Anthropic](https://claude.ai/directory) é o catálogo que as pessoas navegam no claude.ai e no Cowork para adicionar plugins e conectores. Uma listagem lá alcança pessoas no claude.ai, no Cowork e no Claude Code. Você envia pelo portal do desenvolvedor em [claude.ai/directory/manage](https://claude.ai/directory/manage), e [Submit a plugin](https://claude.com/docs/plugins/submit#submit-a-plugin) no claude.com apresenta um passo a passo do portal.

149 149 

150O envio requer um plano pago do claude.ai. No Pro e Max você envia da sua própria conta. No Team e Enterprise, um Owner pode enviar, e no Enterprise um Owner também pode conceder a permissão **Directory** para outros membros através de uma função personalizada em **Organization settings > Roles**. Veja [Confirm you can submit to the directory](https://claude.com/docs/directory/publish#confirm-you-can-submit-to-the-directory).150O marketplace oficial da Anthropic, `claude-plugins-official`, não aceita envios através do portal de diretório. Se você trabalha com um contato de parceiro da Anthropic, pergunte-lhes sobre uma listagem no marketplace oficial.

151 151 

152As etapas de envio, as verificações que cada versão deve passar e o que acontece após você publicar estão documentadas no claude.com, porque são as mesmas independentemente de qual superfície seus usuários estão:152Para enviar um plugin:

153 153 

154* [Publish to the directory](https://claude.com/docs/directory/publish#before-you-submit-to-the-directory): o que você pode enviar e quem pode enviá-lo154<Steps>

155* [Submit a plugin](https://claude.com/docs/plugins/submit#submit-a-plugin): as etapas do portal e [updating a published plugin](https://claude.com/docs/plugins/submit#update-a-published-plugin)155 <Step title="Confirme que você pode enviar">

156* [Plugin pre-submission checklist](https://claude.com/docs/plugins/pre-submission-checklist#run-the-checks-before-you-submit): as verificações a executar e corrigir antes de enviar156 O envio requer um plano pago do claude.ai. No Pro e Max você envia da sua própria conta. No Team e Enterprise, um Owner pode enviar, e no Enterprise um Owner também pode conceder a permissão **Directory** para outros membros através de uma função personalizada em **Organization settings > Roles**. Veja [Confirm you can submit to the directory](https://claude.com/docs/directory/publish#confirm-you-can-submit-to-the-directory).

157* [Move an earlier submission to the developer portal](https://claude.com/docs/directory/publish#move-an-earlier-submission-to-the-developer-portal): o que fazer se você enviou um plugin através de um dos formulários de envio anteriores, antes do portal existir157 </Step>

158 158 

159Antes de abrir o portal, valide localmente e verifique quais dos seus componentes carregam fora do Claude Code:159 <Step title="Valide o plugin localmente">

160 Execute `claude plugin validate ./your-plugin --strict` em seu shell. Substitua `./your-plugin` pelo caminho para seu diretório de plugin. O comando detecta erros de manifesto localmente; [plugin validate](/docs/pt/plugins/cli-reference#plugin-validate) lista quais arquivos cada execução lê. O portal aplica regras de diretório adicionais que o CLI não verifica, portanto uma execução local limpa não garante uma validação de portal limpa.

160 161 

161* **Execute `claude plugin validate ./your-plugin --strict` em seu shell**: substitua `./your-plugin` pelo caminho para seu diretório de plugin. O comando detecta erros de manifesto localmente; [plugin validate](/docs/pt/plugins/cli-reference#plugin-validate) lista quais arquivos cada execução lê. O portal aplica regras de diretório adicionais que o CLI não verifica, portanto uma execução local limpa não garante uma validação de portal limpa.162 O [plugin pre-submission checklist](https://claude.com/docs/plugins/pre-submission-checklist#run-the-checks-before-you-submit) no claude.com tem as verificações a executar e corrigir antes de enviar.

162* **Verifique o que carrega onde**: alguns componentes de plugin são apenas do Claude Code e não carregam no claude.ai ou no Cowork. A [component support table](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) lista cada componente por aplicativo, para que você saiba o que os usuários fora do Claude Code receberão.163 </Step>

163 164 

164O marketplace oficial da Anthropic, `claude-plugins-official`, não aceita envios através do portal de diretório. Se você trabalha com um contato de parceiro da Anthropic, pergunte-lhes sobre uma listagem no marketplace oficial.165 <Step title="Verifique o que carrega onde">

166 Alguns componentes de plugin são apenas do Claude Code e não carregam no claude.ai ou no Cowork. A [component support table](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) lista cada componente por aplicativo, para que você saiba o que os usuários fora do Claude Code receberão.

167 </Step>

168 

169 <Step title="Envie pelo portal do desenvolvedor">

170 Abra o portal do desenvolvedor em [claude.ai/directory/manage](https://claude.ai/directory/manage) e siga [Submit a plugin](https://claude.com/docs/plugins/submit#submit-a-plugin) no claude.com.

171 </Step>

172</Steps>

173 

174O restante do processo está documentado no claude.com:

175 

176* [Prepare for review](https://claude.com/docs/directory/publish#prepare-for-review): o que acontece com cada versão antes de ser publicada

177* [Update a published plugin](https://claude.com/docs/plugins/submit#update-a-published-plugin): como uma nova versão chega às pessoas que têm seu plugin

178* [Submit your plugin, and your MCP server as a connector](https://claude.com/docs/directory/publish#submit-your-plugin-and-your-mcp-server-as-a-connector): o que você pode enviar

179* [Move an earlier submission to the developer portal](https://claude.com/docs/directory/publish#move-an-earlier-submission-to-the-developer-portal): o que fazer se você enviou um plugin através de um dos formulários de envio anteriores, antes do portal existir

165 180 

166<h3 id="how-a-listed-plugin-reaches-claude-code-users">181<h3 id="how-a-listed-plugin-reaches-claude-code-users">

167 Como um plugin listado alcança usuários do Claude Code182 Como um plugin listado alcança usuários do Claude Code

Details

708| [`modelOverrides`](#modeloverrides) | [Mapeie IDs de modelo](/docs/pt/model-config#override-model-ids-per-version) para os IDs do seu provedor, como ARNs do Bedrock | Modelo e respostas | Any file |708| [`modelOverrides`](#modeloverrides) | [Mapeie IDs de modelo](/docs/pt/model-config#override-model-ids-per-version) para os IDs do seu provedor, como ARNs do Bedrock | Modelo e respostas | Any file |

709| [`modelPicker`](#modelpicker) | Escolha quais modelos o seletor [`/model`](/docs/pt/model-config#available-models) lista, em sua própria ordem e com seus próprios rótulos | Modelo e respostas | User or managed |709| [`modelPicker`](#modelpicker) | Escolha quais modelos o seletor [`/model`](/docs/pt/model-config#available-models) lista, em sua própria ordem e com seus próprios rótulos | Modelo e respostas | User or managed |

710| [`modelPricing`](#modelpricing) | Relate gastos nas taxas contratadas de sua organização em vez do preço de tabela | Modelo e respostas | Managed |710| [`modelPricing`](#modelpricing) | Relate gastos nas taxas contratadas de sua organização em vez do preço de tabela | Modelo e respostas | Managed |

711| [`modelSettings`](#modelsettings) | Mantenha um [nível de esforço](/docs/pt/model-config#adjust-effort-level) salvo por modelo, ou limite o esforço de um modelo | Modelo e respostas | Any file |711| [`modelSettings`](#modelsettings) | Mantenha um [nível de esforço](/docs/pt/model-config#adjust-effort-level) ou uma [janela de compactação automática](/docs/pt/model-config#set-the-auto-compact-window) salvos por modelo, ou limite o esforço de um modelo | Modelo e respostas | Any file |

712| [`otelHeadersHelper`](#otelheadershelper) | Gere cabeçalhos [OpenTelemetry](/docs/pt/monitoring-usage#dynamic-headers) rotativos com seu próprio comando | Autenticação e provedores | Any file |712| [`otelHeadersHelper`](#otelheadershelper) | Gere cabeçalhos [OpenTelemetry](/docs/pt/monitoring-usage#dynamic-headers) rotativos com seu próprio comando | Autenticação e provedores | Any file |

713| [`outputStyle`](#outputstyle) | Altere o papel, tom e formato de saída de Claude com um [estilo de saída](/docs/pt/output-styles) | Modelo e respostas | Any file |713| [`outputStyle`](#outputstyle) | Altere o papel, tom e formato de saída de Claude com um [estilo de saída](/docs/pt/output-styles) | Modelo e respostas | Any file |

714| [`parentSettingsBehavior`](#parentsettingsbehavior) | Aplique ou descarte restrições que um [host SDK ou IDE](/docs/pt/managed-settings#let-an-embedding-host-add-policy) passa quando você implanta [configurações gerenciadas](/docs/pt/managed-settings) | Configurações empresariais e gerenciadas | Managed |714| [`parentSettingsBehavior`](#parentsettingsbehavior) | Aplique ou descarte restrições que um [host SDK ou IDE](/docs/pt/managed-settings#let-an-embedding-host-add-policy) passa quando você implanta [configurações gerenciadas](/docs/pt/managed-settings) | Configurações empresariais e gerenciadas | Managed |


1282Para limitar o esforço de um modelo em vez de definir seu nível, adicione um campo [`maxEffortLevel`](#maxeffortlevel) à entrada desse modelo. O campo requer Claude Code v2.1.267 ou posterior.1282Para limitar o esforço de um modelo em vez de definir seu nível, adicione um campo [`maxEffortLevel`](#maxeffortlevel) à entrada desse modelo. O campo requer Claude Code v2.1.267 ou posterior.

1283 1283 

1284* **Escopo**: [`Qualquer arquivo`](#scopes)1284* **Escopo**: [`Qualquer arquivo`](#scopes)

1285* **Tipo**: objeto mapeando um nome de modelo para um objeto com um campo `effortLevel`, um de `"low"`, `"medium"`, `"high"` ou `"xhigh"`, um campo [`maxEffortLevel`](#maxeffortlevel) ou ambos1285* **Tipo**: objeto mapeando um nome de modelo para um objeto com qualquer um destes campos:

1286 * `effortLevel`: um de `"low"`, `"medium"`, `"high"` ou `"xhigh"`

1287 * [`maxEffortLevel`](#maxeffortlevel): o nível de esforço mais alto em que o modelo pode ser executado

1288 * `autoCompactWindow`: um número de tokens de `100000` a `1000000`, ou `"auto"` para a janela ajustada para o modelo. [`/autocompact`](/docs/pt/model-config#set-the-auto-compact-window) salva aqui. Para esse modelo, o valor tem precedência sobre um [`autoCompactWindow`](#autocompactwindow) de nível superior no mesmo arquivo de configurações. Requer Claude Code v2.1.288 ou posterior

1286* **Padrão**: sem definir1289* **Padrão**: sem definir

1287 1290 

1288Claude Code escreve cada entrada sob o nome canônico do modelo, como `claude-opus-5-5`, e corresponde ao alias desse modelo, com sufixo de data, `[1m]` e IDs específicos do provedor reconhecidos à mesma entrada.1291Claude Code escreve cada entrada sob o nome canônico do modelo, como `claude-opus-5-5`, e corresponde ao alias desse modelo, com sufixo de data, `[1m]` e IDs específicos do provedor reconhecidos à mesma entrada.


2967}2970}

2968```2971```

2969 2972 

2970Defina com o comando [`/autocompact`](/docs/pt/commands#all-commands), que escreve essa chave nas suas configurações de usuário. [Defina a janela auto-compact](/docs/pt/model-config#set-the-auto-compact-window) cobre como o comando, flag, variável e configuração interagem.2973O comando [`/autocompact`](/docs/pt/commands#all-commands) salva uma janela para o modelo atual em [`modelSettings`](#modelsettings), que tem precedência sobre essa chave no mesmo arquivo para esse modelo. [Defina a janela auto-compact](/docs/pt/model-config#set-the-auto-compact-window) cobre como o comando, flag, variável e configuração interagem.

2971 2974 

2972<h3 id="automemorydirectory">2975<h3 id="automemorydirectory">

2973 `autoMemoryDirectory`2976 `autoMemoryDirectory`

setup.md +5 −5

Details

45 <Tab title="Instalação Nativa (Recomendado)">45 <Tab title="Instalação Nativa (Recomendado)">

46 **macOS, Linux, WSL:**46 **macOS, Linux, WSL:**

47 47 

48 ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}48 ```bash theme={null}

49 curl -fsSL https://claude.ai/install.sh | bash49 curl -fsSL https://claude.ai/install.sh | bash

50 ```50 ```

51 51 

52 **Windows PowerShell:**52 **Windows PowerShell:**

53 53 

54 ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}54 ```powershell theme={null}

55 irm https://claude.ai/install.ps1 | iex55 irm https://claude.ai/install.ps1 | iex

56 ```56 ```

57 57 

58 **Windows CMD:**58 **Windows CMD:**

59 59 

60 ```batch theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}60 ```batch theme={null}

61 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd61 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

62 ```62 ```

63 63 


75 </Tab>75 </Tab>

76 76 

77 <Tab title="Homebrew">77 <Tab title="Homebrew">

78 ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}78 ```bash theme={null}

79 brew install --cask claude-code79 brew install --cask claude-code

80 ```80 ```

81 81 


87 </Tab>87 </Tab>

88 88 

89 <Tab title="WinGet">89 <Tab title="WinGet">

90 ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}90 ```powershell theme={null}

91 winget install Anthropic.ClaudeCode91 winget install Anthropic.ClaudeCode

92 ```92 ```

93 93 

ultrareview.md +1 −5

Details

134| - | - | - |134| - | - | - |

135| Pro | 3 execuções gratuitas | cobrado como [créditos de uso](https://support.claude.com/pt/articles/12429409-extra-usage-for-paid-claude-plans) |135| Pro | 3 execuções gratuitas | cobrado como [créditos de uso](https://support.claude.com/pt/articles/12429409-extra-usage-for-paid-claude-plans) |

136| Max | 3 execuções gratuitas | cobrado como [créditos de uso](https://support.claude.com/pt/articles/12429409-extra-usage-for-paid-claude-plans) |136| Max | 3 execuções gratuitas | cobrado como [créditos de uso](https://support.claude.com/pt/articles/12429409-extra-usage-for-paid-claude-plans) |

137| Team e Enterprise | nenhuma | cobrado como [créditos de uso](https://support.claude.com/pt/articles/12429409-extra-usage-for-paid-claude-plans) |

138 137 

139* **Execuções gratuitas**: as três execuções Pro e Max são uma alocação única por conta e não são renovadas.138* **Execuções gratuitas**: as três execuções Pro e Max são uma alocação única por conta e não são renovadas.

140* **Custo por revisão**: após usar as execuções gratuitas, normalmente \$5 a \$25 em créditos de uso dependendo do tamanho da mudança, correspondendo à estimativa que o diálogo de lançamento mostra antes de cada execução.139* **Custo por revisão**: após usar as execuções gratuitas, normalmente \$5 a \$25 em créditos de uso dependendo do tamanho da mudança, correspondendo à estimativa que o diálogo de lançamento mostra antes de cada execução.

141* **Quando uma execução é contada**: assim que a sessão na nuvem é iniciada. Uma revisão que você interrompe no início ou que falha em ser concluída ainda usa uma execução gratuita; uma revisão paga é cobrada apenas pela parte que foi executada.140* **Quando uma execução é contada**: assim que a sessão na nuvem é iniciada. Uma revisão que você interrompe no início ou que falha em ser concluída ainda usa uma execução gratuita; uma revisão paga é cobrada apenas pela parte que foi executada.

142 141 

143Como ultrareview sempre é cobrado como créditos de uso fora das execuções gratuitas, sua conta ou organização deve ter créditos de uso habilitados antes de poder iniciar uma revisão paga. Se os créditos de uso não estiverem habilitados, Claude Code bloqueia o lançamento, e como você os ativa depende do seu acesso de faturamento:142Como ultrareview sempre é cobrado como créditos de uso fora das execuções gratuitas, sua conta ou organização deve ter créditos de uso habilitados antes de poder iniciar uma revisão paga. Se os créditos de uso não estiverem habilitados, Claude Code bloqueia o lançamento. Se você puder gerenciar o faturamento da sua conta, Claude Code o direciona às configurações de faturamento onde você pode ativar os créditos de uso.

144 

145* Se você puder gerenciar o faturamento da sua conta, Claude Code o vincula às configurações de faturamento onde você pode ativar os créditos de uso.

146* Nos planos Team e Enterprise, membros sem acesso de faturamento enviam uma solicitação da CLI pedindo ao seu administrador para ativar os créditos de uso.

147 143 

148Você também pode executar `/usage-credits` para verificar ou alterar sua configuração de créditos de uso.144Você também pode executar `/usage-credits` para verificar ou alterar sua configuração de créditos de uso.

149 145