SpyBara
Go Premium

Documentation 2026-09-24 22:57 UTC to 2026-09-25 23:58 UTC

105 files changed +12,732 −6,186. View all changes and history on the product overview
2026
Fri 25 23:58 Thu 24 22:57 Wed 23 23:57 Tue 22 23:59 Mon 21 22:59 Sun 20 23:59 Sat 19 23:57 Fri 18 23:58 Tue 15 23:58 Mon 14 22:58 Sun 13 21:00 Sat 12 03:02 Thu 10 23:00 Wed 9 22:58 Tue 8 20:00 Tue 1 21:02

admin-setup.md +3 −3

Details

94As configurações gerenciadas podem bloquear ferramentas, execução de sandbox, restringir servidores MCP e fontes de plugins, e controlar quais hooks são executados. Cada linha é uma superfície de controle com as chaves de configuração que a controlam.94As configurações gerenciadas podem bloquear ferramentas, execução de sandbox, restringir servidores MCP e fontes de plugins, e controlar quais hooks são executados. Cada linha é uma superfície de controle com as chaves de configuração que a controlam.

95 95 

96| Controle | O que faz | Configurações-chave |96| Controle | O que faz | Configurações-chave |

97| :------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- |97| :------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- |

98| [Permission rules](/docs/pt/permissions) | Permitir, perguntar ou negar ferramentas e comandos específicos | `permissions.allow`, `permissions.deny` |98| [Permission rules](/docs/pt/permissions) | Permitir, perguntar ou negar ferramentas e comandos específicos | `permissions.allow`, `permissions.deny` |

99| [Permission lockdown](/docs/pt/permissions#managed-only-settings) | Tornar as configurações gerenciadas a [única fonte de configurações de regras de permissão](/docs/pt/settings-reference#allowmanagedpermissionrulesonly). Desabilitar `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`, `permissions.disableBypassPermissionsMode` |99| [Permission lockdown](/docs/pt/permissions#managed-only-settings) | Tornar as configurações gerenciadas a [única fonte de configurações de regras de permissão](/docs/pt/settings-reference#allowmanagedpermissionrulesonly). Desabilitar `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`, `permissions.disableBypassPermissionsMode` |

100| [Starting permission mode](/docs/pt/permission-modes#which-mode-a-session-starts-in) | Escolha o modo de permissão em que as sessões de terminal dos seus desenvolvedores começam em vez do modo de permissão inicial integrado, ou remova o modo automático. A extensão VS Code lê um `defaultMode` que você define apenas em planos Pro, Max e Team; [Switch permission modes](/docs/pt/permission-modes#switch-permission-modes) lista o que a extensão lê | `permissions.defaultMode`, `permissions.disableAutoMode` |100| [Starting permission mode](/docs/pt/permission-modes#which-mode-a-session-starts-in) | Escolha o modo de permissão em que as sessões de terminal dos seus desenvolvedores começam em vez do modo de permissão inicial integrado, ou remova o modo automático. A extensão VS Code lê um `defaultMode` que você define apenas em planos Pro, Max e Team; [Switch permission modes](/docs/pt/permission-modes#switch-permission-modes) lista o que a extensão lê | `permissions.defaultMode`, `permissions.disableAutoMode` |

101| [Sandboxing](/docs/pt/sandboxing) | Isolamento de sistema de arquivos e rede de nível do SO com listas de permissão de domínio | `sandbox.enabled`, `sandbox.network.allowedDomains` |101| [Sandboxing](/docs/pt/sandboxing) | Isolamento de sistema de arquivos e rede de nível do SO com listas de permissão de domínio | `sandbox.enabled`, `sandbox.network.allowedDomains` |

102| [Managed policy CLAUDE.md](/docs/pt/memory#deploy-organization-wide-claude-md) | Instruções em toda a organização carregadas em cada sessão, não podem ser excluídas | Arquivo no caminho da política gerenciada |102| [Managed policy CLAUDE.md](/docs/pt/memory#deploy-organization-wide-claude-md) | Instruções em toda a organização carregadas em cada sessão, não podem ser excluídas | Arquivo no caminho da política gerenciada |

103| [MCP server control](/docs/pt/managed-mcp) | Restringir quais servidores MCP os usuários podem adicionar ou conectar, implantar um conjunto fixo, ou fornecer servidores remotos para cada usuário ao lado dos seus próprios | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly`, `managedMcpServers`, ou um arquivo `managed-mcp.json` implantado |103| [MCP server control](/docs/pt/managed-mcp) | Restringir quais servidores MCP os usuários podem adicionar ou conectar, implantar um conjunto fixo, ou fornecer servidores remotos para cada usuário ao lado dos seus próprios | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly`, `managedMcpServers`, ou um arquivo `managed-mcp.json` implantado |

104| [Plugin marketplace control](/docs/pt/plugin-marketplaces#managed-marketplace-restrictions) | Restringir quais fontes de marketplace os usuários podem adicionar e instalar, rejeitar os sinalizadores CLI que carregam plugins, agents e servidores MCP para uma única execução, bloquear [fontes de plugin `command`](/docs/pt/plugin-marketplaces#command-sources), e criar uma lista de permissão de quais plugins dos marketplaces podem ser sugeridos | `strictKnownMarketplaces`, `blockedMarketplaces`, `disableSideloadFlags`, `disableCommandPluginSources`, `pluginSuggestionMarketplaces` |104| [Plugin marketplace control](/docs/pt/plugins/org#restrict-what-users-can-install) | Restringir quais fontes de marketplace os usuários podem adicionar e instalar, rejeitar os sinalizadores CLI que carregam plugins, agents e servidores MCP para uma única execução, bloquear [fontes de plugin `command`](/docs/pt/plugins/marketplace-reference#command-plugin-source), e criar uma lista de permissão de quais plugins dos marketplaces podem ser sugeridos | `strictKnownMarketplaces`, `blockedMarketplaces`, `disableSideloadFlags`, `disableCommandPluginSources`, `pluginSuggestionMarketplaces` |

105| [Customization lockdown](/docs/pt/settings-reference#strictpluginonlycustomization) | Bloquear skills, agents, hooks e servidores MCP de fontes de usuário e projeto, para que possam vir apenas de plugins ou configurações gerenciadas. Bloquear skills também interrompe os [skills que seus desenvolvedores habilitam em claude.ai](/docs/pt/skills#where-synced-skills-load) de sincronização | `strictPluginOnlyCustomization` |105| [Customization lockdown](/docs/pt/settings-reference#strictpluginonlycustomization) | Bloquear skills, agents, hooks e servidores MCP de fontes de usuário e projeto, para que possam vir apenas de plugins ou configurações gerenciadas. Bloquear skills também interrompe os [skills que seus desenvolvedores habilitam em claude.ai](/docs/pt/skills#where-synced-skills-load) de sincronização | `strictPluginOnlyCustomization` |

106| [Disable claude.ai sync](/docs/pt/settings-reference#syncclaudeaiskills) | Impedir que Claude Code carregue os [skills](/docs/pt/skills#how-synced-skills-behave) e [plugins](/docs/pt/plugins-reference#synced-plugins) que seus desenvolvedores habilitam em claude.ai. Se você desativar Skills para sua organização em claude.ai, Claude Code interrompe a sincronização de ambos, e na v2.1.273 ou posterior também remove os que já sincronizou. Para interromper um sem desativar Skills, defina sua chave como `false` nas configurações gerenciadas | `syncClaudeAiSkills`, `syncClaudeAiPlugins` |106| [Disable claude.ai sync](/docs/pt/settings-reference#syncclaudeaiskills) | Impedir que Claude Code carregue os [skills](/docs/pt/skills#how-synced-skills-behave) e [plugins](/docs/pt/plugins/loading#synced-plugins) que seus desenvolvedores habilitam em claude.ai. Se você desativar Skills para sua organização em claude.ai, Claude Code interrompe a sincronização de ambos, e na v2.1.273 ou posterior também remove os que já sincronizou. Para interromper um sem desativar Skills, defina sua chave como `false` nas configurações gerenciadas | `syncClaudeAiSkills`, `syncClaudeAiPlugins` |

107| [Hook restrictions](/docs/pt/settings-reference#allowmanagedhooksonly) | Restringir quais hooks são executados e restringir URLs de hook HTTP; consulte [o que é executado em `allowManagedHooksOnly`](/docs/pt/settings-reference#what-runs-under-allowmanagedhooksonly) para a lista completa de efeitos | `allowManagedHooksOnly`, `allowedHttpHookUrls` |107| [Hook restrictions](/docs/pt/settings-reference#allowmanagedhooksonly) | Restringir quais hooks são executados e restringir URLs de hook HTTP; consulte [o que é executado em `allowManagedHooksOnly`](/docs/pt/settings-reference#what-runs-under-allowmanagedhooksonly) para a lista completa de efeitos | `allowManagedHooksOnly`, `allowedHttpHookUrls` |

108| [Login enforcement](/docs/pt/settings-reference#forceloginmethod) | Restringir login a um método específico ou organização Anthropic. A restrição de método se aplica na extensão VS Code, Agent SDK, `claude setup-token` e `/install-github-app`, e a tela de login interativa do terminal, acessada por `/login` ou onboarding de primeira execução, pré-seleciona o método sem aplicá-lo; Claude Code verifica a organização para logins de conta claude.ai no terminal, extensão VS Code e Agent SDK, e não verifica para logins do Claude Console ou para entrada de [gateway](/docs/pt/claude-apps-gateway). Antes da v2.1.212, apenas logins de terminal aplicavam qualquer chave. Quando definido, sessões autenticadas por `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, ou `apiKeyHelper` são bloqueadas na inicialização; sessões de provedor de nuvem não são afetadas | `forceLoginMethod`, `forceLoginOrgUUID` |108| [Login enforcement](/docs/pt/settings-reference#forceloginmethod) | Restringir login a um método específico ou organização Anthropic. A restrição de método se aplica na extensão VS Code, Agent SDK, `claude setup-token` e `/install-github-app`, e a tela de login interativa do terminal, acessada por `/login` ou onboarding de primeira execução, pré-seleciona o método sem aplicá-lo; Claude Code verifica a organização para logins de conta claude.ai no terminal, extensão VS Code e Agent SDK, e não verifica para logins do Claude Console ou para entrada de [gateway](/docs/pt/claude-apps-gateway). Antes da v2.1.212, apenas logins de terminal aplicavam qualquer chave. Quando definido, sessões autenticadas por `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, ou `apiKeyHelper` são bloqueadas na inicialização; sessões de provedor de nuvem não são afetadas | `forceLoginMethod`, `forceLoginOrgUUID` |

109| [Disable agent view](/docs/pt/agent-view#how-background-sessions-are-hosted) | Desativar `claude agents`, `--bg`, `/background` e o supervisor sob demanda | `disableAgentView` |109| [Disable agent view](/docs/pt/agent-view#how-background-sessions-are-hosted) | Desativar `claude agents`, `--bg`, `/background` e o supervisor sob demanda | `disableAgentView` |

Details

281 Modo contornar permissões (`bypassPermissions`)281 Modo contornar permissões (`bypassPermissions`)

282</h4>282</h4>

283 283 

284Aprova automaticamente usos de ferramentas sem solicitar, exceto os casos listados no aviso abaixo. Hooks ainda são executados e podem bloquear operações se necessário.284Aprova automaticamente usos de ferramentas sem solicitar, exceto os casos listados no aviso abaixo. Hooks ainda são executados e podem bloquear operações se necessário. No Linux e macOS, Claude Code recusa iniciar neste modo como root ou sob `sudo` fora de uma [sandbox reconhecida](/docs/pt/permission-modes#skip-all-checks-with-bypasspermissions-mode), e a consulta falha antes da primeira volta.

285 285 

286<Warning>286<Warning>

287 Use com extrema cautela. Claude tem acesso completo ao sistema neste modo. Use apenas em ambientes controlados onde você confia em todas as operações possíveis.287 Use com extrema cautela. Claude tem acesso completo ao sistema neste modo. Use apenas em ambientes controlados onde você confia em todas as operações possíveis.

Details

13* **Hooks**: manipuladores de eventos que respondem ao uso de ferramentas e outros eventos13* **Hooks**: manipuladores de eventos que respondem ao uso de ferramentas e outros eventos

14* **MCP servers**: integrações de ferramentas externas via Model Context Protocol14* **MCP servers**: integrações de ferramentas externas via Model Context Protocol

15 15 

16Para informações completas sobre a estrutura de plugins e como criar plugins, consulte [Plugins](/docs/pt/plugins).16Para informações completas sobre a estrutura de plugins e como criar plugins, consulte [Plugins](/docs/pt/plugins/overview).

17 17 

18<h2 id="loading-plugins">18<h2 id="loading-plugins">

19 Carregando plugins19 Carregando plugins


21 21 

22Carregue plugins fornecendo seus caminhos do sistema de arquivos local na configuração de opções. O campo `type` deve ser `"local"`, o único valor que o SDK aceita. O SDK suporta carregamento de múltiplos plugins de diferentes locais.22Carregue plugins fornecendo seus caminhos do sistema de arquivos local na configuração de opções. O campo `type` deve ser `"local"`, o único valor que o SDK aceita. O SDK suporta carregamento de múltiplos plugins de diferentes locais.

23 23 

24Para usar um plugin distribuído através de um [marketplace](/docs/pt/plugin-marketplaces) ou repositório remoto, baixe-o primeiro e forneça o caminho do diretório local. Para o layout de diretório que um plugin precisa, consulte a [referência de estrutura de plugin](#plugin-structure-reference) abaixo.24Para usar um plugin distribuído através de um [marketplace](/docs/pt/plugins/overview) ou repositório remoto, baixe-o primeiro e forneça o caminho do diretório local. Para o layout de diretório que um plugin precisa, consulte a [referência de estrutura de plugin](#plugin-structure-reference) abaixo.

25 25 

26<CodeGroup>26<CodeGroup>

27 ```typescript TypeScript theme={null}27 ```typescript TypeScript theme={null}


138 ```138 ```

139</CodeGroup>139</CodeGroup>

140 140 

141<h2 id="using-plugin-skills">141<h2 id="use-plugin-skills">

142 Usando skills de plugins142 Usar skills de plugins

143</h2>143</h2>

144 144 

145Skills de plugins são automaticamente nomeados com o nome do plugin para evitar conflitos. Para invocar um diretamente, envie `/plugin-name:skill-name` como o prompt.145Skills de plugins são automaticamente nomeados com o nome do plugin para evitar conflitos. Para invocar um diretamente, envie `/plugin-name:skill-name` como o prompt.


352 Veja também352 Veja também

353</h2>353</h2>

354 354 

355* [Plugins](/docs/pt/plugins) - Guia completo de desenvolvimento de plugins355* [Plugins](/docs/pt/plugins/overview) - Guia completo de desenvolvimento de plugins

356* [Plugins reference](/docs/pt/plugins-reference) - Especificações técnicas356* [Plugins reference](/docs/pt/plugins/manifest-reference) - Especificações técnicas

357* [Commands](/docs/pt/agent-sdk/skills#dispatch-commands-by-name) - Despachando comandos no SDK357* [Commands](/docs/pt/agent-sdk/skills#dispatch-commands-by-name) - Despachando comandos no SDK

358* [Subagents](/docs/pt/agent-sdk/subagents) - Trabalhando com agentes especializados358* [Subagents](/docs/pt/agent-sdk/subagents) - Trabalhando com agentes especializados

359* [Skills](/docs/pt/agent-sdk/skills) - Usando Agent Skills359* [Skills](/docs/pt/agent-sdk/skills) - Usando Agent Skills

Details

917| `cli_path` | `str \| Path \| None` | `None` | Caminho personalizado para o executável CLI do Claude Code |917| `cli_path` | `str \| Path \| None` | `None` | Caminho personalizado para o executável CLI do Claude Code |

918| `settings` | `str \| None` | `None` | Caminho para um arquivo de configurações ou uma string JSON inline |918| `settings` | `str \| None` | `None` | Caminho para um arquivo de configurações ou uma string JSON inline |

919| `add_dirs` | `list[str \| Path]` | `[]` | Diretórios adicionais que Claude pode acessar. O SDK passa cada entrada para Claude Code como `--add-dir`, então com a fonte de configuração `project` Claude Code também [carrega as skills, comandos e subagentes do diretório](/docs/pt/permissions#additional-directories-grant-file-access-not-configuration) |919| `add_dirs` | `list[str \| Path]` | `[]` | Diretórios adicionais que Claude pode acessar. O SDK passa cada entrada para Claude Code como `--add-dir`, então com a fonte de configuração `project` Claude Code também [carrega as skills, comandos e subagentes do diretório](/docs/pt/permissions#additional-directories-grant-file-access-not-configuration) |

920| `env` | `dict[str, str]` | `{}` | Variáveis de ambiente mescladas no topo do ambiente de processo herdado. Veja [Variáveis de ambiente](/docs/pt/env-vars) para variáveis que a CLI subjacente lê, e [Lidar com respostas de API lentas ou travadas](#handle-slow-or-stalled-api-responses) para variáveis relacionadas a timeout |920| `env` | `dict[str, str]` | `{}` | Variáveis de ambiente mescladas no topo do ambiente de processo herdado. Veja [Variáveis de ambiente](/docs/pt/env-vars) para variáveis que a CLI subjacente lê, e [Lidar com respostas de API lentas ou travadas](#handle-slow-or-stalled-api-responses) para variáveis relacionadas a timeout. Defina `CLAUDE_AGENT_SDK_CLIENT_APP` para identificar seu aplicativo no header User-Agent |

921| `extra_args` | `dict[str, str \| None]` | `{}` | Argumentos CLI adicionais para passar diretamente para a CLI |921| `extra_args` | `dict[str, str \| None]` | `{}` | Argumentos CLI adicionais para passar diretamente para a CLI |

922| `max_buffer_size` | `int \| None` | `None` | Máximo de bytes ao fazer buffer da stdout da CLI |922| `max_buffer_size` | `int \| None` | `None` | Máximo de bytes ao fazer buffer da stdout da CLI |

923| `debug_stderr` | `Any` | `sys.stderr` | *Descontinuado* - Objeto semelhante a arquivo para saída de depuração. Use callback `stderr` em vez disso |923| `debug_stderr` | `Any` | `sys.stderr` | *Descontinuado* - O SDK ignora este valor. Use o callback `stderr` para saída stderr da CLI |

924| `stderr` | `Callable[[str], None] \| None` | `None` | Função de callback para saída stderr da CLI |924| `stderr` | `Callable[[str], None] \| None` | `None` | Função de callback para saída stderr da CLI |

925| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | Callback de permissão de ferramenta, invocado apenas quando o [fluxo de permissão](/docs/pt/agent-sdk/permissions#how-permissions-are-evaluated) cai em um prompt. Não invocado para chamadas pré-aprovadas por `allowed_tools`, regras de permissão, ou `permission_mode`. Uma regra de permissão não pré-aprova as [ações que nenhum modo aprova automaticamente](/docs/pt/permission-modes#actions-no-mode-auto-approves). Veja [`CanUseTool`](#canusetool) para detalhes |925| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | Callback de permissão de ferramenta, invocado apenas quando o [fluxo de permissão](/docs/pt/agent-sdk/permissions#how-permissions-are-evaluated) cai em um prompt. Não invocado para chamadas pré-aprovadas por `allowed_tools`, regras de permissão, ou `permission_mode`. Uma regra de permissão não pré-aprova as [ações que nenhum modo aprova automaticamente](/docs/pt/permission-modes#actions-no-mode-auto-approves). Veja [`CanUseTool`](#canusetool) para detalhes |

926| `hooks` | `dict[HookEvent, list[HookMatcher]] \| None` | `None` | Configurações de hook para interceptar eventos |926| `hooks` | `dict[HookEvent, list[HookMatcher]] \| None` | `None` | Configurações de hook para interceptar eventos |

927| `user` | `str \| None` | `None` | Identificador de usuário |927| `user` | `str \| None` | `None` | Em plataformas POSIX, a conta de usuário do SO em que o subprocesso Claude Code é executado. Claude Code mantém o ambiente do processo pai, incluindo `HOME`, e é executado em `cwd` |

928| `include_partial_messages` | `bool` | `False` | Incluir eventos de streaming de mensagens parciais. Quando ativado, mensagens [`StreamEvent`](#streamevent) são produzidas |928| `include_partial_messages` | `bool` | `False` | Incluir eventos de streaming de mensagens parciais. Quando ativado, mensagens [`StreamEvent`](#streamevent) são produzidas |

929| `include_hook_events` | `bool` | `False` | Incluir eventos de ciclo de vida de hook no fluxo de mensagens como objetos `HookEventMessage` |929| `include_hook_events` | `bool` | `False` | Incluir eventos de ciclo de vida de hook no fluxo de mensagens como objetos `HookEventMessage` |

930| `forward_subagent_text` | `bool` | `False` | Encaminhar blocos de texto e pensamento de subagentes no fluxo de mensagens. Sem esta opção, Claude Code emite blocos `tool_use` e `tool_result` de subagentes mas não texto ou pensamento. Requer Python Agent SDK 0.2.140 ou posterior |930| `forward_subagent_text` | `bool` | `False` | Encaminhar blocos de texto e pensamento de subagentes no fluxo de mensagens. Sem esta opção, Claude Code emite blocos `tool_use` e `tool_result` de subagentes mas não texto ou pensamento. Requer Python Agent SDK 0.2.140 ou posterior |


1885```1885```

1886 1886 

1887| Campo | Tipo | Descrição |1887| Campo | Tipo | Descrição |

1888| :------------------------ | :------------------------ | :--------------------------------------------------------------------------------------------------------------------- |1888| :------------------------ | :------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1889| `status` | `RateLimitStatus` | Status atual. `"allowed_warning"` significa aproximando-se do limite; `"rejected"` significa que o limite foi atingido |1889| `status` | `RateLimitStatus` | Status atual, um de `"allowed"`, `"allowed_warning"` ou `"rejected"`. `"allowed_warning"` significa aproximando-se do limite; `"rejected"` significa que o limite foi atingido |

1890| `resets_at` | `int \| None` | Timestamp Unix quando a janela de limite de taxa é redefinida |1890| `resets_at` | `int \| None` | Timestamp Unix quando a janela de limite de taxa é redefinida |

1891| `rate_limit_type` | `RateLimitType \| None` | Qual janela de limite de taxa se aplica |1891| `rate_limit_type` | `RateLimitType \| None` | Qual janela de limite de taxa se aplica |

1892| `utilization` | `float \| None` | Fração do limite de taxa consumido (0.0 a 1.0) |1892| `utilization` | `float \| None` | Fração do limite de taxa consumido (0.0 a 1.0) |

Details

275Isto é o que torna o Agent SDK diferente: Claude executa ferramentas diretamente em vez de pedir que você as implemente.275Isto é o que torna o Agent SDK diferente: Claude executa ferramentas diretamente em vez de pedir que você as implemente.

276 276 

277<Note>277<Note>

278 Se você vir um erro de autenticação como `Not logged in` ou `Invalid API key`, certifique-se de que definiu a variável de ambiente `ANTHROPIC_API_KEY` no shell onde você executa seu agente. O SDK não carrega arquivos `.env` automaticamente. Veja o [guia completo de solução de problemas](/docs/pt/troubleshooting) para mais ajuda.278 Se você vir um erro de autenticação como `Not logged in` ou `Invalid API key`, certifique-se de que definiu a variável de ambiente `ANTHROPIC_API_KEY` no shell onde você executa seu agente. O SDK não carrega arquivos `.env` automaticamente.

279 

280 Para as causas e correções por trás desses e outros erros de autenticação, veja [Erros de autenticação](/docs/pt/errors#authentication-errors) na referência de Erro.

279</Note>281</Note>

280 282 

281<h3 id="try-other-prompts">283<h3 id="try-other-prompts">


385* **[Servidores MCP](/docs/pt/agent-sdk/mcp)**: conecte-se a bancos de dados, navegadores, APIs e outros sistemas externos387* **[Servidores MCP](/docs/pt/agent-sdk/mcp)**: conecte-se a bancos de dados, navegadores, APIs e outros sistemas externos

386* **[Hospedagem](/docs/pt/agent-sdk/hosting)**: implante agentes no Docker, nuvem e CI/CD388* **[Hospedagem](/docs/pt/agent-sdk/hosting)**: implante agentes no Docker, nuvem e CI/CD

387* **[Agentes de exemplo](https://github.com/anthropics/claude-agent-sdk-demos)**: veja exemplos completos: assistente de email, agente de pesquisa e muito mais389* **[Agentes de exemplo](https://github.com/anthropics/claude-agent-sdk-demos)**: veja exemplos completos: assistente de email, agente de pesquisa e muito mais

388* **[Troubleshooting](/docs/pt/agent-sdk/troubleshooting)**: corrija erros do Agent SDK pela mensagem exata que você vê390* **[Troubleshooting](/docs/pt/agent-sdk/troubleshooting)**: corrija erros quando a CLI falha ao iniciar ou sair, ou um resultado chega sem saída estruturada

Details

4 4 

5# Solucionar problemas do Agent SDK5# Solucionar problemas do Agent SDK

6 6 

7> Corrija erros do Agent SDK pela mensagem exata que você vê, com a causa e correção para cada erro nos SDKs TypeScript e Python.7> Corrija erros do Agent SDK quando a CLI do Claude Code falha ao iniciar, o processo da CLI sai, ou um resultado bem-sucedido chega sem saída estruturada.

8 8 

9As entradas nesta página são organizadas de acordo com o erro que você vê. Cada uma nomeia a causa e o que fazer.9Esta página cobre erros do Agent SDK na inicialização da CLI, saída do processo da CLI e saídas estruturadas. As entradas nesta página são organizadas de acordo com o erro que você vê. Cada uma nomeia a causa e o que fazer.

10 

11Os sintomas vinculados a um recurso, como um hook não disparando ou uma skill não sendo usada, têm uma seção de solução de problemas na página desse recurso. A tabela nomeia a seção ou página que cobre cada sintoma:

12 

13| Sintoma | Ir para |

14| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------- |

15| Skills não encontradas, uma skill não sendo usada, erro `Invalid skill name` | [Solução de problemas de Skills](/docs/pt/agent-sdk/skills#troubleshooting) |

16| Servidor MCP mostra status `failed`, ferramentas não sendo chamadas, timeouts de conexão, saída de ferramenta que excede o máximo de tokens permitidos | [Solução de problemas de MCP](/docs/pt/agent-sdk/mcp#troubleshooting) |

17| Plugin não carregando, skills de plugin não aparecendo | [Solução de problemas de Plugins](/docs/pt/agent-sdk/plugins#troubleshooting) |

18| Claude não delegando para subagentes, agentes baseados em sistema de arquivos não carregando | [Solução de problemas de Subagents](/docs/pt/agent-sdk/subagents#troubleshooting) |

19| Opções de checkpointing não reconhecidas, mensagens de usuário sem UUIDs, `No file checkpoint found`, `File rewinding is not enabled`, `ProcessTransport is not ready for writing` | [Solução de problemas de checkpointing de arquivo](/docs/pt/agent-sdk/file-checkpointing#troubleshooting) |

20| Hook não disparando, matcher não filtrando conforme esperado, timeout de hook, ferramenta bloqueada inesperadamente, entrada modificada não aplicada, hooks de sessão não disponíveis em Python, prompts de permissão de subagente se multiplicando, loops de hook recursivos com subagentes, `systemMessage` não aparecendo na saída | [Corrigir problemas comuns](/docs/pt/agent-sdk/hooks#fix-common-issues) na página de hooks |

21| Um agente que funciona em sua máquina falha em um serviço implantado ou contêiner | [Solucionar falhas de implantação](/docs/pt/agent-sdk/hosting#troubleshoot-deployment-failures) |

22| `Not logged in`, `Invalid API key`, `API Error`, `429`, `There's an issue with the selected model` | [Referência de erro](/docs/pt/errors#find-your-error) |

23| `CLINotFoundError`, `CLIConnectionError`, `ProcessError`, `Claude Code process exited with code N`, `Claude Code returned an error result`, `structured_output` é `None` | [Inicialização da CLI](#cli-startup), [Saída do processo da CLI](#cli-process-exit), e [Saídas estruturadas](#structured-outputs) nesta página |

10 24 

11<h2 id="cli-startup">25<h2 id="cli-startup">

12 Inicialização do CLI26 Inicialização do CLI

agent-teams.md +1 −1

Details

118 118 

119O padrão é `"in-process"`. Defina `"auto"` para ativar split panes quando você já estiver executando dentro de uma sessão tmux, ou quando seu terminal for iTerm2 com o CLI `it2` instalado, voltando para in-process caso contrário. A configuração `"tmux"` ativa o modo split-pane e detecta automaticamente se deve usar tmux ou iTerm2 com base no seu terminal.119O padrão é `"in-process"`. Defina `"auto"` para ativar split panes quando você já estiver executando dentro de uma sessão tmux, ou quando seu terminal for iTerm2 com o CLI `it2` instalado, voltando para in-process caso contrário. A configuração `"tmux"` ativa o modo split-pane e detecta automaticamente se deve usar tmux ou iTerm2 com base no seu terminal.

120 120 

121A partir da v2.1.186, defina `"iterm2"` para usar explicitamente split panes nativos do iTerm2. Este modo requer o [CLI `it2`](https://github.com/mkusaka/it2) e mostra um erro com o comando de instalação se `it2` estiver faltando. O prompt de configuração que oferece instalar `it2` ou mudar para tmux aparece em `"auto"` ou `"tmux"` quando seu terminal é iTerm2 e tmux está disponível como fallback.121Defina `"iterm2"` para usar explicitamente split panes nativos do iTerm2. Este modo requer o [CLI `it2`](https://github.com/mkusaka/it2) e mostra um erro com o comando de instalação se `it2` estiver faltando. O prompt de configuração que oferece instalar `it2` ou mudar para tmux aparece em `"auto"` ou `"tmux"` quando seu terminal é iTerm2 e tmux está disponível como fallback.

122 122 

123Para substituir o padrão, defina [`teammateMode`](/docs/pt/settings-reference#teammatemode) em `~/.claude/settings.json`:123Para substituir o padrão, defina [`teammateMode`](/docs/pt/settings-reference#teammatemode) em `~/.claude/settings.json`:

124 124 

agent-view.md +2 −2

Details

724| :----------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |724| :----------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

725| [`--settings <file-or-json>`](/docs/pt/settings) | Substituir settings para agent view e sessões despachadas |725| [`--settings <file-or-json>`](/docs/pt/settings) | Substituir settings para agent view e sessões despachadas |

726| [`--add-dir <path>`](/docs/pt/permissions#additional-directories-grant-file-access-not-configuration) | Conceder acesso a arquivo a um diretório adicional |726| [`--add-dir <path>`](/docs/pt/permissions#additional-directories-grant-file-access-not-configuration) | Conceder acesso a arquivo a um diretório adicional |

727| [`--plugin-dir <path>`](/docs/pt/plugins) | Carregar um plugin de um diretório local |727| [`--plugin-dir <path>`](/docs/pt/plugins/create#load-a-directory-or-archive-for-one-session) | Carregar um plugin de um diretório local |

728| [`--mcp-config <file-or-json>`](/docs/pt/mcp) | Carregar servidores MCP de um arquivo de configuração ou string JSON |728| [`--mcp-config <file-or-json>`](/docs/pt/mcp) | Carregar servidores MCP de um arquivo de configuração ou string JSON |

729| `--strict-mcp-config` | Usar apenas os servidores MCP de `--mcp-config`, ignorando outra configuração MCP. Veja [Exclusive control with managed-mcp.json](/docs/pt/managed-mcp#exclusive-control-with-managed-mcp-json) para o que o flag faz sob um arquivo MCP gerenciado |729| `--strict-mcp-config` | Usar apenas os servidores MCP de `--mcp-config`, ignorando outra configuração MCP. Veja [Exclusive control with managed-mcp.json](/docs/pt/managed-mcp#exclusive-control-with-managed-mcp-json) para o que o flag faz sob um arquivo MCP gerenciado |

730 730 


1062| v2.1.257 | Um prompt armazenado com `Ctrl+S` dentro de uma sessão em background aberta [é mantido com a sessão](#what-persists-across-restarts), então `Ctrl+S` o restaura após o processo da sessão ser parado e iniciado novamente. Antes desta versão, o armazenamento vivia apenas no processo em execução e era perdido quando a sessão ficava ociosa tempo suficiente para seu processo parar, ou quando era parada e depois reabierta. |1062| v2.1.257 | Um prompt armazenado com `Ctrl+S` dentro de uma sessão em background aberta [é mantido com a sessão](#what-persists-across-restarts), então `Ctrl+S` o restaura após o processo da sessão ser parado e iniciado novamente. Antes desta versão, o armazenamento vivia apenas no processo em execução e era perdido quando a sessão ficava ociosa tempo suficiente para seu processo parar, ou quando era parada e depois reabierta. |

1063| v2.1.251 | Em uma sessão em background que não [se moveu para um worktree](#how-file-edits-are-isolated), Claude e os subagentes que ele gera podem editar arquivos dentro de um worktree git vinculado. |1063| v2.1.251 | Em uma sessão em background que não [se moveu para um worktree](#how-file-edits-are-isolated), Claude e os subagentes que ele gera podem editar arquivos dentro de um worktree git vinculado. |

1064| v2.1.251 | Claude Code encaminha um gateway de provedor de nuvem exportado no shell de onde você despacha, como `ANTHROPIC_VERTEX_BASE_URL` ou `ANTHROPIC_BEDROCK_BASE_URL` com sua flag de bypass de autenticação, para [o worker da sessão](#llm-gateway) sob as mesmas condições que `ANTHROPIC_BASE_URL`. Antes desta versão, se você colocasse em background ou despachasse a partir de um shell autenticado apenas através de tal gateway, cada solicitação que a sessão fazia falhava, porque o endpoint e a flag eram descartados de seu ambiente. |1064| v2.1.251 | Claude Code encaminha um gateway de provedor de nuvem exportado no shell de onde você despacha, como `ANTHROPIC_VERTEX_BASE_URL` ou `ANTHROPIC_BEDROCK_BASE_URL` com sua flag de bypass de autenticação, para [o worker da sessão](#llm-gateway) sob as mesmas condições que `ANTHROPIC_BASE_URL`. Antes desta versão, se você colocasse em background ou despachasse a partir de um shell autenticado apenas através de tal gateway, cada solicitação que a sessão fazia falhava, porque o endpoint e a flag eram descartados de seu ambiente. |

1065| v2.1.251 | Quando uma sessão em background inicia enquanto outro processo Claude Code está atualizando um [marketplace de plugins](/docs/pt/plugin-marketplaces), como uma sessão irmã executando a [atualização automática do marketplace](/docs/pt/discover-plugins#configure-auto-updates), Claude Code mantém os plugins desse marketplace disponíveis. Antes desta versão, tal sessão poderia iniciar sem nenhuma das skills, agentes, hooks e servidores MCP desse marketplace e permanecer assim durante toda sua execução. |1065| v2.1.251 | Quando uma sessão em background inicia enquanto outro processo Claude Code está atualizando um [marketplace de plugins](/docs/pt/plugins/overview), como uma sessão irmã executando a [atualização automática do marketplace](/docs/pt/plugins/install#keep-plugins-updated), Claude Code mantém os plugins desse marketplace disponíveis. Antes desta versão, tal sessão poderia iniciar sem nenhuma das skills, agentes, hooks e servidores MCP desse marketplace e permanecer assim durante toda sua execução. |

1066| v2.1.248 | `Shift+Enter` na [entrada de despacho](#keyboard-shortcuts) insere uma nova linha, correspondendo ao prompt principal, e `Ctrl+Enter` despacha e se anexa imediatamente em terminais onde a sobreposição `?` lista `ctrl+enter to start and open`. Antes desta versão, `Shift+Enter` despachava e se anexava. |1066| v2.1.248 | `Shift+Enter` na [entrada de despacho](#keyboard-shortcuts) insere uma nova linha, correspondendo ao prompt principal, e `Ctrl+Enter` despacha e se anexa imediatamente em terminais onde a sobreposição `?` lista `ctrl+enter to start and open`. Antes desta versão, `Shift+Enter` despachava e se anexava. |

1067| v2.1.248 | [Deletar uma sessão](#what-deleting-a-session-removes) tem sucesso quando os commits do worktree já estão na cópia local da branch padrão do seu remote `origin` e seu checkout principal tem essa branch verificada; antes desta versão, a exclusão era recusada com `has commits that are not pushed anywhere`. |1067| v2.1.248 | [Deletar uma sessão](#what-deleting-a-session-removes) tem sucesso quando os commits do worktree já estão na cópia local da branch padrão do seu remote `origin` e seu checkout principal tem essa branch verificada; antes desta versão, a exclusão era recusada com `has commits that are not pushed anywhere`. |

1068| v2.1.248 | Uma sessão colocada em background com `←` ou `/background` mantém o [`git worktree lock`](/docs/pt/worktrees#clean-up-subagent-and-background-session-worktrees) em seu worktree enquanto é executada; antes desta versão, colocar em background liberava o lock, e limpeza ou `git worktree remove` poderia remover o worktree sob a sessão em execução. |1068| v2.1.248 | Uma sessão colocada em background com `←` ou `/background` mantém o [`git worktree lock`](/docs/pt/worktrees#clean-up-subagent-and-background-session-worktrees) em seu worktree enquanto é executada; antes desta versão, colocar em background liberava o lock, e limpeza ou `git worktree remove` poderia remover o worktree sob a sessão em execução. |

agents.md +1 −1

Details

22 22 

23* [Worktrees](/docs/pt/worktrees) dão a cada sessão um checkout git separado, para que sessões paralelas nunca editem os mesmos arquivos. Use-as para sessões que você executa você mesmo. Uma sessão que você despacha da visualização de agentes [move para seu próprio worktree antes de editar arquivos](/docs/pt/agent-view#how-file-edits-are-isolated), e subagentes que você gera podem cada um receber um também.23* [Worktrees](/docs/pt/worktrees) dão a cada sessão um checkout git separado, para que sessões paralelas nunca editem os mesmos arquivos. Use-as para sessões que você executa você mesmo. Uma sessão que você despacha da visualização de agentes [move para seu próprio worktree antes de editar arquivos](/docs/pt/agent-view#how-file-edits-are-isolated), e subagentes que você gera podem cada um receber um também.

24* [Mensagens entre sessões](/docs/pt/cross-session-messaging) permite que Claude liste e envie mensagens para suas outras sessões Claude Code nesta máquina, em outra máquina ou [na nuvem](/docs/pt/claude-code-on-the-web), para que sessões que você executa você mesmo possam passar descobertas e status entre si.24* [Mensagens entre sessões](/docs/pt/cross-session-messaging) permite que Claude liste e envie mensagens para suas outras sessões Claude Code nesta máquina, em outra máquina ou [na nuvem](/docs/pt/claude-code-on-the-web), para que sessões que você executa você mesmo possam passar descobertas e status entre si.

25* [`/batch`](/docs/pt/commands) é uma [skill](/docs/pt/skills) que tem Claude dividir uma grande mudança em 5 a 30 subagentes isolados em worktree que cada um abre um pull request. É um uso empacotado de subagentes e worktrees, não um estilo de coordenação separado.25* [`/batch`](/docs/pt/commands) é uma [skill](/docs/pt/skills) que tem Claude dividir uma grande mudança em 5 a 30 subagentes isolados em worktree. É um uso empacotado de subagentes e worktrees, não um estilo de coordenação separado.

26 26 

27Alguns outros recursos executam Claude sem você dirigir cada passo, mas resolvem um problema diferente do que dividir trabalho entre agentes:27Alguns outros recursos executam Claude sem você dirigir cada passo, mas resolvem um problema diferente do que dividir trabalho entre agentes:

28 28 

Details

518 Usar o endpoint Mantle518 Usar o endpoint Mantle

519</h2>519</h2>

520 520 

521Mantle é um endpoint do Amazon Bedrock que serve modelos Claude através da forma de API Anthropic nativa em vez da API Invoke do Amazon Bedrock. Ele usa as mesmas [credenciais AWS](#2-configure-aws-credentials), [permissões IAM](#iam-configuration), e [configuração `awsAuthRefresh`](#advanced-credential-configuration).521Mantle é um endpoint do Amazon Bedrock que serve modelos Claude através da forma de API Anthropic nativa em vez da API Invoke do Amazon Bedrock. Ele usa as mesmas [credenciais AWS](#2-configure-aws-credentials) e [configuração `awsAuthRefresh`](#advanced-credential-configuration).

522 

523Mantle tem suas próprias ações IAM sob o prefixo `bedrock-mantle:`, portanto as ações `bedrock:` em [configuração IAM](#iam-configuration) não a cobrem. Conceda à sua identidade IAM `bedrock-mantle:CreateInference` para inferência e `bedrock-mantle:CountTokens` para contagem de tokens. Veja [Fazendo solicitações de inferência](https://docs.aws.amazon.com/bedrock/latest/userguide/inference.html) e [Contando tokens](https://docs.aws.amazon.com/bedrock/latest/userguide/count-tokens.html) na documentação da AWS, e a [referência de autorização de serviço](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrockpoweredbyawsmantle.html) para cada ação Mantle.

522 524 

523<h3 id="enable-mantle">525<h3 id="enable-mantle">

524 Habilitar Mantle526 Habilitar Mantle


670 672 

671Se `/status` não mostra `Amazon Bedrock (Mantle)` depois que você defina `CLAUDE_CODE_USE_MANTLE`, a variável não está chegando ao processo. Confirme que ela é exportada no shell onde você lançou `claude`, ou defina-a no bloco `env` do seu [arquivo de configurações](/docs/pt/settings).673Se `/status` não mostra `Amazon Bedrock (Mantle)` depois que você defina `CLAUDE_CODE_USE_MANTLE`, a variável não está chegando ao processo. Confirme que ela é exportada no shell onde você lançou `claude`, ou defina-a no bloco `env` do seu [arquivo de configurações](/docs/pt/settings).

672 674 

673Um `403` do endpoint Mantle com credenciais válidas significa que sua conta AWS não foi concedida acesso ao modelo que você solicitou. Entre em contato com sua equipe de conta AWS para solicitar acesso.675O que um `403` do endpoint Mantle significa depende de se o erro nomeia uma ação IAM:

676 

677* Se o erro nomeia uma ação `bedrock-mantle:`, conceda à sua identidade IAM essa ação.

678* Se o erro não nomeia nenhuma ação e suas credenciais são válidas, sua conta AWS não foi concedida acesso ao modelo que você solicitou. Entre em contato com sua equipe de conta AWS para solicitar acesso.

674 679 

675Um `400` que nomeia o ID do modelo significa que esse modelo não é servido no Mantle. Mantle tem seu próprio lineup de modelo separado do catálogo Amazon Bedrock padrão, então IDs de perfil de inferência como `us.anthropic.claude-sonnet-4-6` não funcionarão. Use um ID de formato Mantle, ou habilite [ambos os endpoints](#run-mantle-alongside-the-invoke-api) para que Claude Code roteia cada solicitação para o endpoint onde o modelo está disponível.680Um `400` que nomeia o ID do modelo significa que esse modelo não é servido no Mantle. Mantle tem seu próprio lineup de modelo separado do catálogo Amazon Bedrock padrão, então IDs de perfil de inferência como `us.anthropic.claude-sonnet-4-6` não funcionarão. Use um ID de formato Mantle, ou habilite [ambos os endpoints](#run-mantle-alongside-the-invoke-api) para que Claude Code roteia cada solicitação para o endpoint onde o modelo está disponível.

676 681 

Details

334 Execute `/plugin` para navegar no marketplace. Plugins adicionam skills, ferramentas e integrações sem configuração.334 Execute `/plugin` para navegar no marketplace. Plugins adicionam skills, ferramentas e integrações sem configuração.

335</Tip>335</Tip>

336 336 

337[Plugins](/docs/pt/plugins) agrupam skills, hooks, subagents e MCP servers em uma única unidade instalável da comunidade e Anthropic. Se você trabalha com uma linguagem tipada, instale um [code intelligence plugin](/docs/pt/discover-plugins#code-intelligence) para dar ao Claude navegação de símbolo precisa e detecção automática de erros após edições.337[Plugins](/docs/pt/plugins/overview) agrupam skills, hooks, subagents e MCP servers em uma única unidade instalável da comunidade e Anthropic. Se você trabalha com uma linguagem tipada, instale um [code intelligence plugin](/docs/pt/plugins/code-intelligence) para dar ao Claude navegação de símbolo precisa e detecção automática de erros após edições.

338 338 

339Para orientação sobre escolher entre skills, subagents, hooks e MCP, consulte [Extend Claude Code](/docs/pt/features-overview#match-features-to-your-goal).339Para orientação sobre escolher entre skills, subagents, hooks e MCP, consulte [Extend Claude Code](/docs/pt/features-overview#match-features-to-your-goal).

340 340 


541 Faça loop através de tarefas chamando `claude -p` para cada uma. Use `--allowedTools` para escopear permissões para operações em lote.541 Faça loop através de tarefas chamando `claude -p` para cada uma. Use `--allowedTools` para escopear permissões para operações em lote.

542</Tip>542</Tip>

543 543 

544Para grandes migrações ou análises, você pode distribuir trabalho entre muitas invocações Claude paralelas. Em um repositório git, execute [`/batch <instruction>`](/docs/pt/commands#all-commands) para ter Claude dividir a mudança entre 5 a 30 subagentes. Cada subagente trabalha em seu próprio worktree e abre um pull request. Para conduzir o fan-out a partir de seu próprio script em vez disso, faça loop sobre `claude -p`:544Para grandes migrações ou análises, você pode distribuir trabalho entre muitas invocações Claude paralelas. Execute [`/batch <instruction>`](/docs/pt/commands#all-commands) para ter Claude dividir a mudança entre 5 a 30 subagentes. Cada subagente trabalha em seu próprio worktree. Para conduzir o fan-out a partir de seu próprio script em vez disso, faça loop sobre `claude -p`:

545 545 

546<Steps>546<Steps>

547 <Step title="Generate a task list">547 <Step title="Generate a task list">

channels.md +9 −7

Details

45 Se a instalação falhar, corresponda à mensagem que Claude Code relata:45 Se a instalação falhar, corresponda à mensagem que Claude Code relata:

46 46 

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

48 * O plugin [não foi encontrado no marketplace](/docs/pt/discover-plugins#install-plugins): verifique o nome do plugin.48 * O plugin [não foi encontrado no marketplace](/docs/pt/plugins/install#install-a-plugin): verifique o nome do plugin.

49 49 

50 Quando a instalação solicitar um escopo de instalação, escolha a opção de escopo do usuário para que o plugin esteja disponível em todos os seus projetos. Verifique o resumo da instalação: se relatar `Run /reload-plugins to activate.`, consulte [Aplicar alterações de plugin sem reiniciar](/docs/pt/discover-plugins#apply-plugin-changes-without-restarting) para disponibilizar o comando de configuração do plugin.50 Quando a instalação solicitar um escopo de instalação, escolha a opção de escopo do usuário para que o plugin esteja disponível em todos os seus projetos. Verifique o resumo da instalação: se relatar `Run /reload-plugins to activate.`, consulte [Aplicar alterações de plugin sem reiniciar](/docs/pt/plugins/cli-reference#reload-plugins) para disponibilizar o comando de configuração do plugin.

51 </Step>51 </Step>

52 52 

53 <Step title="Configurar seu token">53 <Step title="Configurar seu token">


123 Se a instalação falhar, corresponda à mensagem que Claude Code relata:123 Se a instalação falhar, corresponda à mensagem que Claude Code relata:

124 124 

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

126 * O plugin [não foi encontrado no marketplace](/docs/pt/discover-plugins#install-plugins): verifique o nome do plugin.126 * O plugin [não foi encontrado no marketplace](/docs/pt/plugins/install#install-a-plugin): verifique o nome do plugin.

127 127 

128 Quando a instalação solicitar um escopo de instalação, escolha a opção de escopo do usuário para que o plugin esteja disponível em todos os seus projetos. Verifique o resumo da instalação: se relatar `Run /reload-plugins to activate.`, consulte [Aplicar alterações de plugin sem reiniciar](/docs/pt/discover-plugins#apply-plugin-changes-without-restarting) para disponibilizar o comando de configuração do plugin.128 Quando a instalação solicitar um escopo de instalação, escolha a opção de escopo do usuário para que o plugin esteja disponível em todos os seus projetos. Verifique o resumo da instalação: se relatar `Run /reload-plugins to activate.`, consulte [Aplicar alterações de plugin sem reiniciar](/docs/pt/plugins/cli-reference#reload-plugins) para disponibilizar o comando de configuração do plugin.

129 </Step>129 </Step>

130 130 

131 <Step title="Configurar seu token">131 <Step title="Configurar seu token">


188 Se a instalação falhar, corresponda à mensagem que Claude Code relata:188 Se a instalação falhar, corresponda à mensagem que Claude Code relata:

189 189 

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

191 * O plugin [não foi encontrado no marketplace](/docs/pt/discover-plugins#install-plugins): verifique o nome do plugin.191 * O plugin [não foi encontrado no marketplace](/docs/pt/plugins/install#install-a-plugin): verifique o nome do plugin.

192 192 

193 Quando a instalação solicitar um escopo de instalação, escolha a opção de escopo do usuário para que o plugin esteja disponível em todos os seus projetos. Se o resumo da instalação relatar `Run /reload-plugins to activate.`, você pode pular isso aqui, porque reiniciar na próxima etapa pega o plugin.193 Quando a instalação solicitar um escopo de instalação, escolha a opção de escopo do usuário para que o plugin esteja disponível em todos os seus projetos.

194 

195 Se o resumo da instalação relatar `Run /reload-plugins to activate.`, você não precisa agir sobre isso aqui, porque reiniciar na próxima etapa pega o plugin.

194 </Step>196 </Step>

195 197 

196 <Step title="Reiniciar com canais habilitados">198 <Step title="Reiniciar com canais habilitados">


245 Se a instalação falhar, corresponda à mensagem que Claude Code relata:247 Se a instalação falhar, corresponda à mensagem que Claude Code relata:

246 248 

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

248 * O plugin é [não encontrado no marketplace](/docs/pt/discover-plugins#install-plugins): verifique o nome do plugin.250 * O plugin é [não encontrado no marketplace](/docs/pt/plugins/install#install-a-plugin): verifique o nome do plugin.

249 251 

250 Quando a instalação solicitar um escopo de instalação, escolha a opção de escopo do usuário para que o plugin esteja disponível em todos os seus projetos.252 Quando a instalação solicitar um escopo de instalação, escolha a opção de escopo do usuário para que o plugin esteja disponível em todos os seus projetos.

251 253 

Details

191claude --dangerously-load-development-channels server:webhook191claude --dangerously-load-development-channels server:webhook

192```192```

193 193 

194O bypass é por entrada. Combinar esta flag com `--channels` não estende o bypass para as entradas `--channels`. Durante a visualização de pesquisa, a lista de aprovação é curada pela Anthropic, então seu channel permanece na flag de desenvolvimento enquanto você constrói e testa.194O bypass é por entrada. Combinar esta flag com `--channels` não estende o bypass para as entradas `--channels`. Durante a visualização de pesquisa, seu channel não está na lista de aprovação, portanto permanece na flag de desenvolvimento enquanto você constrói e testa.

195 195 

196<Note>196<Note>

197 Esta flag pula apenas a lista de aprovação. A política de organização `channelsEnabled` ainda se aplica. Não a use para executar channels de fontes não confiáveis.197 Esta flag pula apenas a lista de aprovação. A política de organização `channelsEnabled` ainda se aplica. Não a use para executar channels de fontes não confiáveis.


802 Empacotar como um plugin802 Empacotar como um plugin

803</h2>803</h2>

804 804 

805Para tornar seu channel instalável e compartilhável, envolva-o em um [plugin](/docs/pt/plugins) e publique-o em um [marketplace](/docs/pt/plugin-marketplaces). Os usuários o instalam com `/plugin install`, então o habilitam por sessão com `--channels plugin:<name>@<marketplace>`.805Para tornar seu channel instalável e compartilhável, envolva-o em um [plugin](/docs/pt/plugins/overview) e publique-o em um [marketplace](/docs/pt/plugins/overview). Os usuários o instalam com `/plugin install`, então o habilitam por sessão com `--channels plugin:<name>@<marketplace>`.

806 806 

807Um channel publicado em seu próprio marketplace ainda precisa de `--dangerously-load-development-channels` para ser executado, já que não está na [lista de aprovação](/docs/pt/channels#supported-channels). A lista de aprovação padrão é os plugins de channel em `claude-plugins-official`, que Anthropic cura a seu critério. Os [formulários de envio no aplicativo](/docs/pt/plugins#submit-your-plugin-to-the-community-marketplace) adicionam plugins ao marketplace da comunidade, que não está na lista de aprovação de channels.807Um channel publicado em seu próprio marketplace ainda precisa de `--dangerously-load-development-channels` para ser executado, já que não está na [lista de aprovação](/docs/pt/channels#supported-channels). A lista de aprovação padrão é os plugins de channel em `claude-plugins-official`. Os [formulários de envio no aplicativo](/docs/pt/plugins/publish#submit-to-the-community-marketplace) adicionam plugins ao marketplace da comunidade, que não está na lista de aprovação de channels.

808 808 

809Se você está trabalhando com um contato parceiro da Anthropic, entre em contato com eles para coordenar uma listagem de marketplace oficial. Em planos Team e Enterprise, um administrador pode incluir seu plugin na lista [`allowedChannelPlugins`](/docs/pt/channels#restrict-which-channel-plugins-can-run) da organização, que substitui a lista de aprovação padrão da Anthropic.809Se você está trabalhando com um contato parceiro da Anthropic, entre em contato com eles para coordenar uma listagem de marketplace oficial. Em planos Team e Enterprise, um administrador pode incluir seu plugin na lista [`allowedChannelPlugins`](/docs/pt/channels#restrict-which-channel-plugins-can-run) da organização, que substitui a lista de aprovação padrão da Anthropic.

810 810 


815* [Channels](/docs/pt/channels) para instalar e usar Telegram, Discord, iMessage ou a demo fakechat, e para habilitar channels para uma organização Team ou Enterprise815* [Channels](/docs/pt/channels) para instalar e usar Telegram, Discord, iMessage ou a demo fakechat, e para habilitar channels para uma organização Team ou Enterprise

816* [Implementações de channel funcionando](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins) para código de servidor completo com fluxos de emparelhamento, ferramentas de resposta e anexos de arquivo816* [Implementações de channel funcionando](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins) para código de servidor completo com fluxos de emparelhamento, ferramentas de resposta e anexos de arquivo

817* [MCP](/docs/pt/mcp) para o protocolo subjacente que servidores de channel implementam817* [MCP](/docs/pt/mcp) para o protocolo subjacente que servidores de channel implementam

818* [Plugins](/docs/pt/plugins) para empacotar seu channel para que os usuários possam instalá-lo com `/plugin install`818* [Plugins](/docs/pt/plugins/overview) para empacotar seu channel para que os usuários possam instalá-lo com `/plugin install`

Details

54 Rewind passado uma conversa limpa54 Rewind passado uma conversa limpa

55</h4>55</h4>

56 56 

57Se você executou `/clear` anteriormente no mesmo processo Claude Code, o menu de rewind mostra uma entrada adicional no topo da lista rotulada `/resume <session-id> (sessão anterior)`. Selecione-a para retomar a conversa que estava ativa antes de `/clear` ser executado. A entrada está disponível até você sair do Claude Code ou retomar uma sessão diferente, e requer Claude Code v2.1.191 ou posterior. Em versões anteriores, execute `/resume` e escolha a sessão anterior da lista.57Se você executou `/clear` anteriormente no mesmo processo Claude Code, o menu de rewind mostra uma entrada adicional no topo da lista rotulada `/resume <session-id> (sessão anterior)`. Selecione-a para retomar a conversa que estava ativa antes de `/clear` ser executado. A entrada está disponível até você sair do Claude Code ou retomar uma sessão diferente.

58 58 

59<h4 id="guide-a-summary">59<h4 id="guide-a-summary">

60 Guiar um resumo60 Guiar um resumo

Details

448 Configurações que os bloqueios não cobrem448 Configurações que os bloqueios não cobrem

449</h4>449</h4>

450 450 

451Quatro configurações fornecidas pelo pai passam pelo filtro mesmo com todos os cinco bloqueios definidos. Sob a configuração padrão de primeiro vencedor, o valor de administrador que bloqueia o do pai é aquele na fonte de administrador de prioridade mais alta, exceto para `allowedMcpServers` enquanto o [bloqueio de servidor MCP](#lock-behavior-across-sources) está ativado. Sob a aceitação de mesclagem `managedSourcesBehavior`, [como Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#how-claude-code-combines-managed-sources) diz qual valor da fonte se aplica em vez disso.451Seis configurações fornecidas pelo pai passam pelo filtro mesmo com todos os cinco bloqueios definidos. Sob a configuração padrão de primeiro vencedor, o valor de administrador que bloqueia o do pai é aquele na fonte de administrador de prioridade mais alta, exceto para `allowedMcpServers` enquanto o [bloqueio de servidor MCP](#lock-behavior-across-sources) está ativado. Sob a aceitação de mesclagem `managedSourcesBehavior`, [como Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#how-claude-code-combines-managed-sources) diz qual valor da fonte se aplica em vez disso.

452 452 

453* **`forceLoginOrgUUID`**: Claude Code honra um valor fornecido pelo pai quando a fonte de administrador de prioridade mais alta não define um UUID de organização. O sign-in do gateway não verifica essa chave, então importa apenas para frotas que também usam logins Anthropic de primeira parte. Um UUID de organização na fonte de administrador de prioridade mais alta bloqueia o valor do pai e é aquele que Claude Code aplica, então defina `forceLoginOrgUUID` lá.453* **`forceLoginOrgUUID`**: Claude Code honra um valor fornecido pelo pai quando a fonte de administrador de prioridade mais alta não define um UUID de organização. O sign-in do gateway não verifica essa chave, então importa apenas para frotas que também usam logins Anthropic de primeira parte. Um UUID de organização na fonte de administrador de prioridade mais alta bloqueia o valor do pai e é aquele que Claude Code aplica, então defina `forceLoginOrgUUID` lá.

454* **`allowedMcpServers`**: Claude Code honra uma lista de permissões fornecida pelo pai quando nenhuma lista de administrador está em vigor. `allowManagedMcpServersOnly` não a bloqueia, porque o bloqueio aplica qualquer lista que vença como o valor gerenciado, incluindo uma lista fornecida pelo pai quando nenhuma fonte de administrador fornece uma lista. Uma lista na fonte de administrador de prioridade mais alta bloqueia a do pai e é a lista que Claude Code aplica, então defina `allowedMcpServers` lá, ao lado do bloqueio. Antes da v2.1.223, um valor para qualquer chave em qualquer fonte de administrador bloqueava a do pai.454* **`allowedMcpServers`**: Claude Code honra uma lista de permissões fornecida pelo pai quando nenhuma lista de administrador está em vigor. `allowManagedMcpServersOnly` não a bloqueia, porque o bloqueio aplica qualquer lista que vença como o valor gerenciado, incluindo uma lista fornecida pelo pai quando nenhuma fonte de administrador fornece uma lista. Uma lista na fonte de administrador de prioridade mais alta bloqueia a do pai e é a lista que Claude Code aplica, então defina `allowedMcpServers` lá, ao lado do bloqueio. Antes da v2.1.223, um valor para qualquer chave em qualquer fonte de administrador bloqueava a do pai.

455* **`availableModels`**: Claude Code honra uma lista de modelos fornecida pelo pai quando a fonte gerenciada vencedora não define uma. Se sua frota restringe modelos, defina `availableModels` na fonte vencedora.455* **`availableModels`**: Claude Code honra uma lista de modelos fornecida pelo pai quando a fonte gerenciada vencedora não define uma. Se sua frota restringe modelos, defina `availableModels` na fonte vencedora.

456* **`strictKnownMarketplaces`**: Claude Code honra uma lista de permissões de marketplace de plugin fornecida pelo pai quando a fonte gerenciada vencedora não define uma. Se sua frota restringe marketplaces, defina `strictKnownMarketplaces` na fonte vencedora. Requer Claude Code v2.1.282 ou posterior.

457* **`blockedMarketplaces`**: uma lista de bloqueio de marketplace fornecida pelo pai passa e adiciona a qualquer lista de bloqueio que uma fonte gerenciada define, já que uma lista de bloqueio pode apenas restringir ainda mais. Requer Claude Code v2.1.282 ou posterior.

456* **`strictPluginOnlyCustomization`**: essa chave passa pelo filtro independentemente de qualquer bloqueio, e faz Claude Code ignorar a customização própria do desenvolvedor, incluindo hooks protetores. Nenhum bloqueio a bloqueia.458* **`strictPluginOnlyCustomization`**: essa chave passa pelo filtro independentemente de qualquer bloqueio, e faz Claude Code ignorar a customização própria do desenvolvedor, incluindo hooks protetores. Nenhum bloqueio a bloqueia.

457 459 

458<h3 id="connect-claude-desktop">460<h3 id="connect-claude-desktop">

Details

37* [`managed`](#managed): políticas de configurações gerenciadas por grupo IdP37* [`managed`](#managed): políticas de configurações gerenciadas por grupo IdP

38* [`telemetry`](#telemetry): encaminhamento OTLP para sua pilha de observabilidade38* [`telemetry`](#telemetry): encaminhamento OTLP para sua pilha de observabilidade

39* [`access_control`, `limits`, `timeouts`, `rate_limits`](#http-tuning): permitir/negar IP, limites de tamanho de solicitação, tempo até o primeiro byte upstream e limites de login por IP39* [`access_control`, `limits`, `timeouts`, `rate_limits`](#http-tuning): permitir/negar IP, limites de tamanho de solicitação, tempo até o primeiro byte upstream e limites de login por IP

40* [`load_test_mode`](#load_test_mode): teste de carga do gateway sem chamar um provedor de modelo

40 41 

41<h2 id="secret-expansion">42<h2 id="secret-expansion">

42 Expansão de segredos43 Expansão de segredos


1027 1028 

1028Atrás de tal front end, defina [`listen.trusted_proxies`](#listen) primeiro para que o gateway veja endereços de cliente reais, e mantenha o gateway e tudo na frente dele inacessível da internet pública independentemente.1029Atrás de tal front end, defina [`listen.trusted_proxies`](#listen) primeiro para que o gateway veja endereços de cliente reais, e mantenha o gateway e tudo na frente dele inacessível da internet pública independentemente.

1029 1030 

1031<h3 id="load_test_mode">

1032 `load_test_mode`

1033</h3>

1034 

1035O bloco `load_test_mode` permite que você teste a carga de um gateway sem chamar um provedor de modelo. Enquanto está ligado, o gateway constrói e assina cada solicitação de provedor como de costume, descarta-a em vez de enviá-la e transmite uma resposta enlatada de volta através de seu caminho de resposta normal. A resposta é texto de preenchimento que começa com uma frase dizendo que é enlatada.

1036 

1037Requer v2.1.283 ou posterior. Versões anteriores se recusam a iniciar quando a chave está definida, então atualize cada réplica antes de adicionar o bloco e remova-o antes de fazer rollback.

1038 

1039O exemplo abaixo liga o modo com os padrões, uma resposta de aproximadamente 750 tokens de saída transmitida em cerca de 10 segundos:

1040 

1041```yaml theme={null}

1042load_test_mode:

1043 enabled: true

1044 reply_tokens: 750 # roughly how many tokens of text each canned reply carries

1045 reply_seconds: 9.5 # how long a streamed reply takes

1046```

1047 

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

1049| --------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1050| `enabled` | Sim | `true` liga o modo. `false` mantém seus números no arquivo com o modo desligado. O gateway se recusa a iniciar se o bloco está presente sem ele. |

1051| `reply_tokens` | Não | Padrão `750`. Aproximadamente quantos tokens de texto cada resposta enlatada carrega, um número inteiro de 1 a 100000. |

1052| `reply_seconds` | Não | Padrão `9.5`. Quanto tempo uma resposta transmitida leva, de 0 a 600. `0` envia a resposta inteira de uma vez. Uma resposta para uma solicitação não transmitida sempre volta de uma vez. |

1053 

1054Um teste de carga neste modo cobre o gateway, seu Postgres e tudo na frente do gateway. Não cobre os limites, velocidade ou caminho de rede do provedor.

1055 

1056Enquanto o modo está ligado, uma solicitação pode carregar um cabeçalho `x-load-test-user` contendo um número inteiro de até sete dígitos, e o gateway conta cada número como um desenvolvedor separado com o email e grupos do desenvolvedor cujo token veio com a solicitação. Dê à implantação de teste de carga seu próprio banco de dados vazio, porque o gateway se recusa a iniciar com o modo ligado contra um banco de dados no qual qualquer desenvolvedor já gastou algo.

1057 

1058<Warning>

1059 Nunca ligue isto para um gateway que desenvolvedores usam. Cada solicitação obtém a resposta enlatada e nenhum modelo é chamado. O gateway registra um aviso `load_test_mode is on` na inicialização e marca cada [audit event](/docs/pt/claude-apps-gateway-deploy#logs) de `inference` com `load_test: true` enquanto o modo está ligado.

1060</Warning>

1061 

1030<h2 id="complete-example">1062<h2 id="complete-example">

1031 Exemplo completo1063 Exemplo completo

1032</h2>1064</h2>

1033 1065 

1034Esta configuração de referência completa exercita cada seção principal; os blocos [ajuste HTTP](#http-tuning) mantêm seus padrões. Copie-a, delete o que você não precisa e preencha seus valores. A configuração no [Quickstart](/docs/pt/claude-apps-gateway#quickstart) é uma versão mínima disso.1066Esta configuração de referência completa exercita cada seção principal; os [blocos de ajuste HTTP](#http-tuning) mantêm seus padrões. Copie-a, delete o que você não precisa e preencha seus valores. A configuração no [Quickstart](/docs/pt/claude-apps-gateway#quickstart) é uma versão mínima desta.

1035 1067 

1036```yaml gateway.yaml theme={null}1068```yaml gateway.yaml theme={null}

1037# Execute com:1069# Execute com:


1039#1071#

1040# A verbosidade do log operacional é controlada pela variável de ambiente1072# A verbosidade do log operacional é controlada pela variável de ambiente

1041# CLAUDE_GATEWAY_LOG_LEVEL (debug | info | warn | error; padrão info). debug1073# CLAUDE_GATEWAY_LOG_LEVEL (debug | info | warn | error; padrão info). debug

1042# também registra os nomes de declarações em cada id_token, para diagnóstico de groups_claim.1074# também registra os nomes de claims em cada id_token, para diagnóstico de groups_claim.

1043# Não afeta eventos de auditoria, que são sempre emitidos.1075# Isso não afeta eventos de auditoria, que são sempre emitidos.

1044 1076 

1045listen:1077listen:

1046 host: 0.0.0.01078 host: 0.0.0.0

1047 port: 80801079 port: 8080

1048 public_url: https://claude-gateway.internal.example.com1080 public_url: https://claude-gateway.internal.example.com

1049 # Omita o bloco tls ao executar atrás de um ingress que termina TLS.1081 # Omita o bloco tls ao executar atrás de um ingress que encerra TLS.

1050 # tls:1082 # tls:

1051 # cert: /certs/gateway.crt1083 # cert: /certs/gateway.crt

1052 # key: /certs/gateway.key1084 # key: /certs/gateway.key


1059 client_secret: ${OIDC_CLIENT_SECRET}1091 client_secret: ${OIDC_CLIENT_SECRET}

1060 allowed_email_domains:1092 allowed_email_domains:

1061 - example.com1093 - example.com

1062 # Obrigatório quando o emissor é o servidor org Okta, cujos id_tokens1094 # Obrigatório quando o emissor é o servidor da organização Okta, cujos id_tokens

1063 # podem omitir email e grupos; o gateway os preenche de /userinfo.1095 # podem omitir email e groups; o gateway os preenche a partir de /userinfo.

1064 userinfo_fallback: true1096 userinfo_fallback: true

1065 # allowed_groups: [claude-code-users]1097 # allowed_groups: [claude-code-users]

1066 # Okta emite grupos apenas quando o escopo `groups` é solicitado e o1098 # Okta emite groups apenas quando o escopo `groups` é solicitado e o

1067 # filtro de declaração de grupos do aplicativo os permite. A política de contratados abaixo1099 # filtro de claim de grupos do aplicativo os permite. A política de contractors abaixo

1068 # corresponde em grupos, portanto o escopo é solicitado aqui.1100 # corresponde a groups, então o escopo é solicitado aqui.

1069 scopes: [openid, profile, email, offline_access, groups]1101 scopes: [openid, profile, email, offline_access, groups]

1070 # extra_auth_params: { access_type: offline, prompt: consent } # Google1102 # extra_auth_params: { access_type: offline, prompt: consent } # Google

1071 # groups_claim: groups # Funções de aplicativo Entra: use `roles`1103 # groups_claim: groups # Funções de aplicativo Entra: use `roles`


1080 # max_connections: 51112 # max_connections: 5

1081 # connect_timeout_seconds: 51113 # connect_timeout_seconds: 5

1082 1114 

1083# Habilita /v1/organizations/spend_limits (espelha a API de Administração Anthropic)1115# Habilita /v1/organizations/spend_limits (espelha a API Admin do Anthropic)

1084# e aplicação de gastos por desenvolvedor em /v1/messages. Omita para desabilitar.1116# e aplicação de gastos por desenvolvedor em /v1/messages. Omita para desabilitar.

1085# Os limites em si são definidos via API de administração, não aqui.1117# Os limites em si são definidos via API admin, não aqui.

1086# admin:1118# admin:

1087# write_keys:1119# write_keys:

1088# - { id: terraform, key: "${GATEWAY_ADMIN_WRITE_KEY_TF}" }1120# - { id: terraform, key: "${GATEWAY_ADMIN_WRITE_KEY_TF}" }


1098# enforcement:1130# enforcement:

1099# fail_closed_on_error: false1131# fail_closed_on_error: false

1100 1132 

1101# Medir em taxas contratadas em vez de preço de lista USD. Requer admin: ou uma1133# Teste de carga desta implantação sem chamar um provedor de modelo. Nunca em um

1134# gateway que desenvolvedores usam: cada solicitação recebe uma resposta enlatada.

1135# load_test_mode:

1136# enabled: true

1137# # reply_tokens: 750

1138# # reply_seconds: 9.5

1139 

1140# Meça em taxas contratadas em vez de preço de lista USD. Requer admin: ou uma

1102# política managed:. Com managed:, as mesmas taxas também vão para clientes conectados.1141# política managed:. Com managed:, as mesmas taxas também vão para clientes conectados.

1103# As taxas abaixo são espaços reservados, não preços de contrato reais.1142# As taxas abaixo são placeholders, não preços de contrato reais.

1104# pricing:1143# pricing:

1105# multiplier: 0.851144# multiplier: 0.85

1106# overrides:1145# overrides:


1154 - match: { groups: [contractors] }1193 - match: { groups: [contractors] }

1155 cli:1194 cli:

1156 availableModels: [claude-haiku-4-5]1195 availableModels: [claude-haiku-4-5]

1157 # Restrinja o seletor Padrão à opção availableModels em vez de1196 # Restrinja a opção do seletor Padrão aos availableModels em vez de

1158 # o padrão de camada, portanto contratados não obtêm um 400 no padrão.1197 # o padrão de tier, para que contractors não recebam um 400 no padrão.

1159 enforceAvailableModels: true1198 enforceAvailableModels: true

1160 # allow aprova automaticamente essas ferramentas; não bloqueia o resto.1199 # allow aprova automaticamente essas ferramentas; não bloqueia o resto.

1161 # Adicione regras deny para restringir ferramentas.1200 # Adicione regras deny para restringir ferramentas.

Details

219* **[Aplicação de limite de gastos](/docs/pt/claude-apps-gateway-spend-limits#postgres-availability)**: falha aberta por padrão durante a interrupção, então a inferência ainda flui; inverta para falha fechada se preferir bloquear do que executar sem medição219* **[Aplicação de limite de gastos](/docs/pt/claude-apps-gateway-spend-limits#postgres-availability)**: falha aberta por padrão durante a interrupção, então a inferência ainda flui; inverta para falha fechada se preferir bloquear do que executar sem medição

220* **Prontidão**: `/readyz` relata não-pronto durante a interrupção, então orquestradores que controlam tráfego na prontidão removem cada réplica da rotação de uma vez. Nessa topologia todo tráfego, incluindo inferência que o gateway ainda poderia servir, falha no balanceador de carga até que o Postgres se recupere. A sonda de vivacidade em `/healthz` continua passando, então as réplicas não são reiniciadas. Aponte a sonda de prontidão para `/healthz` em vez disso se preferir que desenvolvedores conectados continuem funcionando através de uma interrupção de armazenamento; o custo é que novas entradas falham contra uma réplica que ainda relata pronto.220* **Prontidão**: `/readyz` relata não-pronto durante a interrupção, então orquestradores que controlam tráfego na prontidão removem cada réplica da rotação de uma vez. Nessa topologia todo tráfego, incluindo inferência que o gateway ainda poderia servir, falha no balanceador de carga até que o Postgres se recupere. A sonda de vivacidade em `/healthz` continua passando, então as réplicas não são reiniciadas. Aponte a sonda de prontidão para `/healthz` em vez disso se preferir que desenvolvedores conectados continuem funcionando através de uma interrupção de armazenamento; o custo é que novas entradas falham contra uma réplica que ainda relata pronto.

221 221 

222Se seu IdP cair, as sessões existentes funcionam até `ttl_hours`, e novas entradas e atualizações falham. Defina um `ttl_hours` mais longo se seu IdP tiver janelas de manutenção frequentes.222Se seu IdP cair, as sessões existentes funcionam até `ttl_hours`, novas entradas falham e uma atualização de sessão recebe uma resposta de tentar novamente e passa uma vez que o IdP está de volta. Defina um `ttl_hours` mais longo se seu IdP tiver janelas de manutenção frequentes.

223 223 

224<h3 id="jwt-secret-rotation">224<h3 id="jwt-secret-rotation">

225 Rotação de segredo JWT225 Rotação de segredo JWT

Details

218Teleport verifica esses requisitos antes de retomar uma sessão. Se algum requisito não for atendido, você verá um erro ou será solicitado a resolver o problema.218Teleport verifica esses requisitos antes de retomar uma sessão. Se algum requisito não for atendido, você verá um erro ou será solicitado a resolver o problema.

219 219 

220| Requisito | Detalhes |220| Requisito | Detalhes |

221| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |221| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

222| Estado git limpo | Seu diretório de trabalho não deve ter alterações não confirmadas. Teleport solicita que você guarde as alterações se necessário. |222| Estado git limpo | Seu diretório de trabalho não deve ter alterações não confirmadas. Teleport solicita que você guarde as alterações se necessário. |

223| Repositório correto | Você deve executar `--teleport` a partir de um checkout do mesmo repositório, não de um fork. Se você executá-lo a partir de um checkout de um repositório diferente, Claude Code mostra um erro que nomeia tanto o repositório da sessão quanto seu checkout. Se Claude Code não conseguir analisar seu remoto em um nome de host, por exemplo um alias de host SSH como `git@work:owner/repo.git`, ele pede que você confirme, e aceita o checkout quando o proprietário do remoto e o nome do repositório correspondem ao repositório da sessão. |223| Repositório correto | Você deve executar `--teleport` a partir de um checkout do mesmo repositório, não de um fork. Se você executá-lo a partir de um checkout de um repositório diferente, Claude Code mostra um erro que nomeia tanto o repositório da sessão quanto o repositório do seu checkout. Antes da v2.1.219, o erro não nomeava o repositório do seu checkout. Se Claude Code não conseguir analisar seu remoto em um nome de host, por exemplo um alias de host SSH como `git@work:owner/repo.git`, ele pede que você confirme, e aceita o checkout quando o proprietário do remoto e o nome do repositório correspondem ao repositório da sessão. |

224| Branch disponível | A branch da sessão em nuvem deve ter sido enviada para o remoto. Teleport busca e faz checkout automaticamente. |224| Branch disponível | A branch da sessão em nuvem deve ter sido enviada para o remoto. Teleport busca e faz checkout automaticamente. |

225| Mesma conta | Você deve estar autenticado na mesma conta claude.ai usada na sessão em nuvem. |225| Mesma conta | Você deve estar autenticado na mesma conta claude.ai usada na sessão em nuvem. |

226 226 

Details

1451O explorador cobre arquivos que você cria e edita. Alguns arquivos relacionados vivem em outro lugar:1451O explorador cobre arquivos que você cria e edita. Alguns arquivos relacionados vivem em outro lugar:

1452 1452 

1453| Arquivo | Localização | Propósito |1453| Arquivo | Localização | Propósito |

1454| ----------------------- | -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1454| ----------------------- | -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1455| `managed-settings.json` | Nível do sistema, varia por SO | Configurações impostas pela empresa que você não pode substituir, exceto por [exceções limitadas](/docs/pt/settings#security-keys-where-the-stricter-value-applies). Veja [onde salvar o arquivo](/docs/pt/managed-settings#deploy-a-managed-settings-file) e [qual fonte gerenciada Claude Code usa](/docs/pt/managed-settings#precedence-within-the-managed-tier). |1455| `managed-settings.json` | Nível do sistema, varia por SO | Configurações impostas pela empresa que você não pode substituir, exceto por [exceções limitadas](/docs/pt/settings#security-keys-where-the-stricter-value-applies). Veja [onde salvar o arquivo](/docs/pt/managed-settings#deploy-a-managed-settings-file) e [qual fonte gerenciada Claude Code usa](/docs/pt/managed-settings#precedence-within-the-managed-tier). |

1456| `CLAUDE.local.md` | Raiz do projeto | Suas preferências privadas para este projeto, carregadas junto com CLAUDE.md. Crie manualmente e adicione a `.gitignore`. |1456| `CLAUDE.local.md` | Raiz do projeto | Suas preferências privadas para este projeto, carregadas junto com CLAUDE.md. Crie manualmente e adicione a `.gitignore`. |

1457| `AGENTS.md` | Raiz do projeto, `.claude/`, ou qualquer diretório | Instruções do projeto que você escreve para agentes de codificação de IA. Claude Code pode [carregá-lo](/docs/pt/memory#agents-md) por conta própria ou junto com `CLAUDE.md`. |1457| `AGENTS.md` | Raiz do projeto, `.claude/`, ou qualquer diretório | Instruções do projeto que você escreve para agentes de codificação de IA. Claude Code pode [carregá-lo](/docs/pt/memory#agents-md) por conta própria ou junto com `CLAUDE.md`. |

1458| Plugins instalados | `~/.claude/plugins` | Marketplaces clonados, versões de plugins instalados, o registro de instalação `installed_plugins.json` e dados por plugin, gerenciados por comandos `claude plugin`. Plugins [sincronizados da sua conta claude.ai](/docs/pt/plugins-reference#synced-plugins) são baixados em `~/.claude/plugins/synced/`. Para um plugin instalado de um marketplace com [fonte `command`](/docs/pt/plugin-marketplaces#command-sources) em modo de link, Claude Code armazena links aqui em vez de uma cópia, e os arquivos do plugin permanecem no diretório que o comando imprime. Uma fonte `command` requer Claude Code v2.1.229 ou posterior. Um plugin listado por caminho relativo em um marketplace de diretório local também [carrega no local](/docs/pt/plugins-reference#plugin-caching-and-file-resolution) de seu diretório de origem em vez de uma cópia em cache. Veja [cache de plugins](/docs/pt/plugins-reference#plugin-caching-and-file-resolution) para saber como versões órfãs são limpas. |1458| Plugins instalados | `~/.claude/plugins` | Marketplaces clonados, versões de plugins instalados, o registro de instalação `installed_plugins.json` e dados por plugin, gerenciados por comandos `claude plugin`. Plugins [sincronizados da sua conta claude.ai](/docs/pt/plugins/loading#synced-plugins) são baixados em `~/.claude/plugins/synced/`. Para um plugin instalado de um marketplace com [fonte `command`](/docs/pt/plugins/marketplace-reference#command-plugin-source) em modo de link, Claude Code armazena links aqui em vez de uma cópia, e os arquivos do plugin permanecem no diretório que o comando imprime. Uma fonte `command` requer Claude Code v2.1.229 ou posterior. Um plugin listado por caminho relativo em um marketplace de diretório local também [carrega no local](/docs/pt/plugins/loading#find-plugins-on-disk) de seu diretório de origem em vez de uma cópia em cache. Veja [cache de plugins](/docs/pt/plugins/loading#find-plugins-on-disk) para saber como versões órfãs são limpas. |

1459 1459 

1460`~/.claude` também contém dados que Claude Code escreve conforme você trabalha: transcrições, histórico de prompts, snapshots de arquivos, caches e logs. Veja [dados da aplicação](#application-data) abaixo.1460`~/.claude` também contém dados que Claude Code escreve conforme você trabalha: transcrições, histórico de prompts, snapshots de arquivos, caches e logs. Veja [dados da aplicação](#application-data) abaixo.

1461 1461 


1529| `output-styles/*.md` | `name`, `description`, `keep-coding-instructions`, `force-for-plugin` | [Frontmatter de estilo de saída](/docs/pt/output-styles#frontmatter) |1529| `output-styles/*.md` | `name`, `description`, `keep-coding-instructions`, `force-for-plugin` | [Frontmatter de estilo de saída](/docs/pt/output-styles#frontmatter) |

1530| `rules/*.md` | `paths` | [Frontmatter de regra](/docs/pt/memory#rules-frontmatter-reference) |1530| `rules/*.md` | `paths` | [Frontmatter de regra](/docs/pt/memory#rules-frontmatter-reference) |

1531 1531 

1532Agentes fornecidos em um [plugin](/docs/pt/plugins-reference#plugin-agent-frontmatter) honram um subconjunto dos campos de subagente.1532Agentes fornecidos em um [plugin](/docs/pt/plugins/components#agents) honram um subconjunto dos campos de subagente.

1533 1533 

1534<h2 id="troubleshoot-configuration">1534<h2 id="troubleshoot-configuration">

1535 Solucione problemas de configuração1535 Solucione problemas de configuração


1568| `feedback-bundles/` | Arquivos de transcrição reduzidos escritos por `/feedback` em provedores de terceiros ou quando nenhuma credencial Anthropic está configurada, para enviar à sua equipe de conta Anthropic |1568| `feedback-bundles/` | Arquivos de transcrição reduzidos escritos por `/feedback` em provedores de terceiros ou quando nenhuma credencial Anthropic está configurada, para enviar à sua equipe de conta Anthropic |

1569| `feedback/drafts/` | [Feedback redigido por Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior) enfileirado aguardando sua revisão em `/feedback`. Varrido após `cleanupPeriodDays` ou 30 dias, o que for menor. Quando a fila está no seu limite de 10 rascunhos, Claude Code deleta o rascunho mais antigo para liberar espaço. |1569| `feedback/drafts/` | [Feedback redigido por Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior) enfileirado aguardando sua revisão em `/feedback`. Varrido após `cleanupPeriodDays` ou 30 dias, o que for menor. Quando a fila está no seu limite de 10 rascunhos, Claude Code deleta o rascunho mais antigo para liberar espaço. |

1570| `usage-data/` | `report.html` e cópias de relatório com timestamp escritas por [`/insights`](/docs/pt/costs#analyze-your-usage-patterns), mais dados de análise em cache por sessão usados para construí-los |1570| `usage-data/` | `report.html` e cópias de relatório com timestamp escritas por [`/insights`](/docs/pt/costs#analyze-your-usage-patterns), mais dados de análise em cache por sessão usados para construí-los |

1571| `skills/.trash/`, `plugins/.trash/` | [Skills](/docs/pt/skills#how-synced-skills-behave) e [plugins](/docs/pt/plugins-reference#synced-plugins) que a sincronização de claude.ai removeu, como depois que você desativa um em claude.ai ou para de sincronizar. Os arquivos ficam aqui para que você possa recuperá-los até a varredura deletá-los |1571| `skills/.trash/`, `plugins/.trash/` | [Skills](/docs/pt/skills#how-synced-skills-behave) e [plugins](/docs/pt/plugins/loading#synced-plugins) que a sincronização de claude.ai removeu, como depois que você desativa um em claude.ai ou para de sincronizar. Os arquivos ficam aqui para que você possa recuperá-los até a varredura deletá-los |

1572| `todos/`, `statsig/`, `logs/` | Diretórios legados de versões mais antigas. Não são mais escritos. A varredura remove seu conteúdo e depois o diretório vazio. |1572| `todos/`, `statsig/`, `logs/` | Diretórios legados de versões mais antigas. Não são mais escritos. A varredura remove seu conteúdo e depois o diretório vazio. |

1573 1573 

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


1678Você também pode deletar qualquer um dos caminhos de dados da aplicação acima manualmente, além dos [arquivos de estado para manter](#state-files-to-keep). Novas sessões não são afetadas. A tabela abaixo mostra o que você perde para sessões passadas.1678Você também pode deletar qualquer um dos caminhos de dados da aplicação acima manualmente, além dos [arquivos de estado para manter](#state-files-to-keep). Novas sessões não são afetadas. A tabela abaixo mostra o que você perde para sessões passadas.

1679 1679 

1680| Deletar | Você perde |1680| Deletar | Você perde |

1681| -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1681| -------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1682| `~/.claude/projects/` | Retomar, continuar e retroceder para sessões passadas, e memória automática para cada projeto |1682| `~/.claude/projects/` | Retomar, continuar e retroceder para sessões passadas, e memória automática para cada projeto |

1683| `~/.claude/history.jsonl` | Recall de prompt com seta para cima, busca de histórico `Ctrl+R` e conclusão de comando shell `!` |1683| `~/.claude/history.jsonl` | Recall de prompt com seta para cima, busca de histórico `Ctrl+R` e conclusão de comando shell `!` |

1684| `~/.claude/paste-cache/` | Texto colado em prompts recuperados; veja [colar conteúdo grande](/docs/pt/terminal-config#paste-large-content) |1684| `~/.claude/paste-cache/` | Texto colado em prompts recuperados; veja [colar conteúdo grande](/docs/pt/terminal-config#paste-large-content) |


1692| `~/.claude/cache/changelog.md` | Nada. Atualizado em segundo plano. |1692| `~/.claude/cache/changelog.md` | Nada. Atualizado em segundo plano. |

1693| `~/.claude/policy-limits.json` | Nada. Atualizado automaticamente. |1693| `~/.claude/policy-limits.json` | Nada. Atualizado automaticamente. |

1694| `~/.claude/tasks/` | Listas de tarefas que uma sessão retomada pegaria |1694| `~/.claude/tasks/` | Listas de tarefas que uma sessão retomada pegaria |

1695| `~/.claude/skills/.trash/`, `~/.claude/plugins/.trash/` | A chance de recuperar [skills sincronizadas](/docs/pt/skills#how-synced-skills-behave) e [plugins sincronizados](/docs/pt/plugins-reference#synced-plugins) que Claude Code removeu |1695| `~/.claude/skills/.trash/`, `~/.claude/plugins/.trash/` | A chance de recuperar [skills sincronizadas](/docs/pt/skills#how-synced-skills-behave) e [plugins sincronizados](/docs/pt/plugins/loading#synced-plugins) que Claude Code removeu |

1696| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Nada voltado para o usuário |1696| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Nada voltado para o usuário |

1697| `~/.claude/todos/`, `~/.claude/statsig/`, `~/.claude/logs/`, `~/.claude/image-cache/` | Nada. Diretórios legados não escritos pelas versões atuais. |1697| `~/.claude/todos/`, `~/.claude/statsig/`, `~/.claude/logs/`, `~/.claude/image-cache/` | Nada. Diretórios legados não escritos pelas versões atuais. |

1698 1698 

Details

242 242 

243Claude Code também executa este comando na inicialização quando não consegue validar suas credenciais AWS existentes e mostra a saída do comando em um painel `Authentication` até que o login seja concluído.243Claude Code também executa este comando na inicialização quando não consegue validar suas credenciais AWS existentes e mostra a saída do comando em um painel `Authentication` até que o login seja concluído.

244 244 

245Com `awsAuthRefresh` configurado, execute `/login`, selecione **plataforma de terceiros**, depois selecione **Claude Platform on AWS · atualizar credenciais** em **Usando plataformas de terceiros**. Claude Code executa o comando configurado e relê suas credenciais AWS sem uma reinicialização. Esta opção requer Claude Code v2.1.186 ou posterior.245Com `awsAuthRefresh` configurado, execute `/login`, selecione **plataforma de terceiros**, depois selecione **Claude Platform on AWS · atualizar credenciais** em **Usando plataformas de terceiros**. Claude Code executa o comando configurado e relê suas credenciais AWS sem uma reinicialização.

246 246 

247**Opção B: Chave de API do Workspace**247**Opção B: Chave de API do Workspace**

248 248 

claude-projects.md +40 −38

Details

10 Projects estão em beta público nos planos Pro e Max e estão sendo implementados gradualmente, começando com contas que usaram [sessões em nuvem](/docs/pt/claude-code-on-the-web) e não têm projetos existentes no chat claude.ai ou Cowork. Ainda não estão disponíveis nos planos Team ou Enterprise. Se **Projects** não aparecer na barra lateral em [claude.ai/code](https://claude.ai/code) ou na aba Code do [aplicativo desktop](/docs/pt/desktop), a implementação ainda não chegou à sua conta, e você pode [entrar na lista de espera](https://claude.com/form/projects). [Executar agentes em paralelo](/docs/pt/agents) lista o que você pode usar enquanto isso.10 Projects estão em beta público nos planos Pro e Max e estão sendo implementados gradualmente, começando com contas que usaram [sessões em nuvem](/docs/pt/claude-code-on-the-web) e não têm projetos existentes no chat claude.ai ou Cowork. Ainda não estão disponíveis nos planos Team ou Enterprise. Se **Projects** não aparecer na barra lateral em [claude.ai/code](https://claude.ai/code) ou na aba Code do [aplicativo desktop](/docs/pt/desktop), a implementação ainda não chegou à sua conta, e você pode [entrar na lista de espera](https://claude.com/form/projects). [Executar agentes em paralelo](/docs/pt/agents) lista o que você pode usar enquanto isso.

11</Note>11</Note>

12 12 

13Um projeto é uma conversa contínua onde Claude coordena um fluxo de trabalho relacionado para você. Você diz o que precisa ser feito e ele inicia uma thread para cada tarefa. Cada thread é uma [sessão em nuvem](/docs/pt/claude-code-on-the-web): Claude Code executando na nuvem em vez de na sua máquina. As threads são executadas em paralelo e continuam funcionando depois que você fecha o laptop, e você pode verificá-las e direcioná-las do seu telefone.13Um projeto é uma conversa contínua onde Claude coordena um fluxo de trabalho relacionado para você. Você diz o que precisa ser feito e ele inicia uma thread para cada tarefa.

14 

15Cada thread é geralmente uma [sessão em nuvem](/docs/pt/claude-code-on-the-web): Claude Code executando na nuvem em vez de na sua máquina. Quando uma tarefa precisa de algo que apenas seu computador tem, você pode pedir a Claude para executar essa thread no seu computador em vez disso através do [Remote Control](/docs/pt/remote-control). As threads são executadas em paralelo e você pode verificá-las e direcioná-las do seu telefone. As threads em nuvem continuam funcionando depois que você fecha o laptop.

14 16 

15Sem um projeto, executar várias sessões significa fazer a coordenação você mesmo: você decide no que cada uma trabalha, repete o mesmo contexto no início de cada uma e verifica qual terminou ou precisa de uma resposta. Com um projeto, você:17Sem um projeto, executar várias sessões significa fazer a coordenação você mesmo: você decide no que cada uma trabalha, repete o mesmo contexto no início de cada uma e verifica qual terminou ou precisa de uma resposta. Com um projeto, você:

16 18 

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

18* **Define o contexto uma vez**: cada nova thread começa com os repositórios, instruções e memória do projeto, então uma regra que você declara uma vez, como qual branch direcionar, alcança todas elas.20* **Define o contexto uma vez**: cada nova thread começa com as instruções do projeto, então uma regra que você declara uma vez, como qual branch direcionar, alcança todas elas.

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

20 22 

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


37 Quando algo mais se encaixa melhor39 Quando algo mais se encaixa melhor

38</h3>40</h3>

39 41 

40As threads funcionam em repositórios GitHub e nos arquivos, pastas e pastas do Google Drive que você carrega no projeto, não em arquivos ou ferramentas que existem apenas na sua máquina. Algo mais se encaixa melhor nestes casos:42As threads funcionam em repositórios GitHub e nos arquivos, pastas e pastas do Google Drive que você carrega no projeto, não em arquivos ou ferramentas que existem apenas na sua máquina. Se uma tarefa precisa de sua máquina, peça a Claude para executar sua thread lá através de [Remote Control](/docs/pt/remote-control). [Limitações](#limitations) lista o que isso precisa. Algo mais se encaixa melhor nestes casos:

41 43 

42* **Uma tarefa que cabe em uma sessão**: "Corrigir o teste de login instável." Inicie uma [sessão em nuvem](/docs/pt/claude-code-on-the-web) você mesmo.44* **Uma tarefa que cabe em uma sessão**: "Corrigir o teste de login instável." Inicie uma [sessão em nuvem](/docs/pt/claude-code-on-the-web) você mesmo.

43* **Trabalho que precisa de ferramentas ou serviços que apenas sua máquina pode alcançar**: um banco de dados local, um emulador de dispositivo, uma API atrás de sua VPN. Use uma sessão local ou [agent view](/docs/pt/agent-view) para executar várias de uma vez. Se o trabalho só precisa de arquivos locais, carregue-os no projeto.45* **Trabalho onde cada tarefa precisa de sua máquina**: um banco de dados local, um emulador de dispositivo, ou uma API atrás de sua VPN. Use uma sessão local, ou [agent view](/docs/pt/agent-view) para executar várias de uma vez. Se o trabalho só precisa de arquivos locais, carregue-os no projeto.

44* **Uma tarefa que se repete em um cronograma sem conversa ao redor**: "Postar um relatório de dependência toda segunda-feira." Crie uma [routine](/docs/pt/routines) por conta própria.46* **Uma tarefa que se repete em um cronograma sem conversa ao redor**: "Postar um relatório de dependência toda segunda-feira." Crie uma [routine](/docs/pt/routines) por conta própria.

45* **Várias pessoas dando trabalho a Claude e direcionando-o juntas em um canal Slack**: veja [Claude Tag](https://claude.com/docs/claude-tag/overview).47* **Várias pessoas dando trabalho a Claude e direcionando-o juntas em um canal Slack**: veja [Claude Tag](https://claude.com/docs/claude-tag/overview).

46 48 


53Um projeto é uma conversa coordenadora com Claude mais as threads que ele inicia para fazer o trabalho. Estas são suas partes:55Um projeto é uma conversa coordenadora com Claude mais as threads que ele inicia para fazer o trabalho. Estas são suas partes:

54 56 

55* **A conversa do projeto**: uma sessão de longa duração onde Claude atua como coordenador. Ele pega o que você envia, decide o que se torna uma thread e acompanha cada thread que iniciou. Ele vê o que as threads relatam, não cada passo que elas dão.57* **A conversa do projeto**: uma sessão de longa duração onde Claude atua como coordenador. Ele pega o que você envia, decide o que se torna uma thread e acompanha cada thread que iniciou. Ele vê o que as threads relatam, não cada passo que elas dão.

56* **Threads**: os trabalhadores. Cada uma é uma [sessão em nuvem](/docs/pt/claude-code-on-the-web) separada com sua própria janela de contexto que faz uma peça de trabalho em seu próprio branch, abre um pull request quando o trabalho exigir e relata de volta à conversa quando termina.58* **Threads**: os trabalhadores. Cada uma é uma sessão separada com sua própria janela de contexto que faz uma peça de trabalho e relata de volta à conversa quando termina. Uma thread em nuvem trabalha em seu próprio branch e abre um pull request quando o trabalho exigir um.

57* **O que cada thread começa com**:59* **O que cada thread em nuvem começa com**:

58 * Os repositórios e arquivos do projeto, mais suas [instruções e memória](#give-a-project-standing-context)60 * Os repositórios e arquivos do projeto, mais suas [instruções e memória](#give-a-project-standing-context)

59 * O `CLAUDE.md` e skills em [cada um dos repositórios do projeto](#what-threads-pick-up-from-your-repositories), e em um projeto com um repositório, as regras de permissão e hooks desse repositório também61 * O `CLAUDE.md` e skills em [cada um dos repositórios do projeto](#what-threads-pick-up-from-your-repositories), e em um projeto com um repositório, as regras de permissão e hooks desse repositório também

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

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

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

63 65 

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

65 67 

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

67 69 

68<Frame>70<Frame>

69 <img src="https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview.svg?fit=max&auto=format&n=e8CLbxM17eD7cAiv&q=85&s=dbf446f69f0bbdb9961d21af207cb93b" className="dark:hidden" alt="Diagrama de um projeto. Você escreve na conversa do projeto, onde Claude responde ou inicia uma thread. Cada thread é uma sessão em nuvem trabalhando em seu próprio branch e pull request. O painel Overview lista threads por estado, como pronto para revisão, aguardando você e trabalhando." width="600" height="250" data-path="images/claude-projects-overview.svg" />71 <img src="https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview.svg?fit=max&auto=format&n=e8CLbxM17eD7cAiv&q=85&s=dbf446f69f0bbdb9961d21af207cb93b" className="dark:hidden" alt="Diagrama de um projeto. Você escreve na conversa do projeto, onde Claude responde ou inicia uma thread. Cada thread em nuvem trabalha em seu próprio branch e pull request. O painel Overview lista threads por estado, como pronto para revisão, aguardando você e trabalhando." width="600" height="250" data-path="images/claude-projects-overview.svg" />

70 72 

71 <img src="https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview-dark.svg?fit=max&auto=format&n=e8CLbxM17eD7cAiv&q=85&s=549a5ba9fea8433729babc37a1f6e9c8" className="hidden dark:block" alt="Diagrama de um projeto. Você escreve na conversa do projeto, onde Claude responde ou inicia uma thread. Cada thread é uma sessão em nuvem trabalhando em seu próprio branch e pull request. O painel Overview lista threads por estado, como pronto para revisão, aguardando você e trabalhando." width="600" height="250" data-path="images/claude-projects-overview-dark.svg" />73 <img src="https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview-dark.svg?fit=max&auto=format&n=e8CLbxM17eD7cAiv&q=85&s=549a5ba9fea8433729babc37a1f6e9c8" className="hidden dark:block" alt="Diagrama de um projeto. Você escreve na conversa do projeto, onde Claude responde ou inicia uma thread. Cada thread em nuvem trabalha em seu próprio branch e pull request. O painel Overview lista threads por estado, como pronto para revisão, aguardando você e trabalhando." width="600" height="250" data-path="images/claude-projects-overview-dark.svg" />

72</Frame>74</Frame>

73 75 

74<h2 id="create-a-project">76<h2 id="create-a-project">


90 92 

91* **Plano**: você está no Pro ou Max e **Projects** aparece na sua barra lateral.93* **Plano**: você está no Pro ou Max e **Projects** aparece na sua barra lateral.

92* **GitHub, se o projeto funcionará em código**: seu código está em github.com em vez de GitHub Enterprise Server, GitLab ou Bitbucket, sua conta GitHub conectada tem acesso push a ele, e o Claude GitHub App está instalado nele. Se você conectou GitHub com [`/web-setup`](/docs/pt/web-quickstart#connect-from-your-terminal), esse token permite que suas outras sessões em nuvem alcancem um repositório, mas não é suficiente para threads de projeto, que precisam do Claude GitHub App. [Configurar acesso ao GitHub](#set-up-github-access) tem os passos.94* **GitHub, se o projeto funcionará em código**: seu código está em github.com em vez de GitHub Enterprise Server, GitLab ou Bitbucket, sua conta GitHub conectada tem acesso push a ele, e o Claude GitHub App está instalado nele. Se você conectou GitHub com [`/web-setup`](/docs/pt/web-quickstart#connect-from-your-terminal), esse token permite que suas outras sessões em nuvem alcancem um repositório, mas não é suficiente para threads de projeto, que precisam do Claude GitHub App. [Configurar acesso ao GitHub](#set-up-github-access) tem os passos.

93* **Rede, credenciais e ferramentas**: estes vêm do [ambiente em nuvem](#choose-an-environment-for-threads) do projeto. O ambiente padrão já alcança [registros de pacotes comuns](/docs/pt/cloud-environments#default-allowed-domains), então verifique isso apenas se o trabalho precisar de outros domínios, um segredo ou uma ferramenta que não está pré-instalada. Se o trabalho precisa de um servidor MCP, verifique se ele aparece como conectado em seus [connectors claude.ai](https://claude.ai/customize/connectors).95* **Rede, credenciais e ferramentas**: para threads em nuvem, estas vêm do [ambiente em nuvem](#choose-an-environment-for-threads) do projeto. O ambiente padrão já alcança [registros de pacotes comuns](/docs/pt/cloud-environments#default-allowed-domains), então verifique isso apenas se o trabalho precisar de outros domínios, um segredo ou uma ferramenta que não está pré-instalada. Se o trabalho precisa de um servidor MCP, verifique se ele aparece como conectado em seus [connectors claude.ai](https://claude.ai/customize/connectors).

94 96 

95<h3 id="start-a-new-project-from-scratch">97<h3 id="start-a-new-project-from-scratch">

96 Iniciar um novo projeto do zero98 Iniciar um novo projeto do zero


279 Dar contexto permanente a um projeto281 Dar contexto permanente a um projeto

280</h2>282</h2>

281 283 

282Memória do projeto, instruções do projeto e os repositórios, arquivos e ambiente do projeto carregam contexto entre threads. Você define cada um uma vez e se aplica a cada nova thread.284Memória do projeto, instruções do projeto e os repositórios, arquivos e ambiente do projeto carregam contexto entre threads. Você define cada um uma vez.

283 285 

284| Contexto | O que carrega | Como você define |286| Contexto | O que carrega | Como você define |

285| :-------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |287| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

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

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

288| Repositórios, arquivos e ambiente | Os repositórios que cada thread clona, as pastas e arquivos que cada thread pode ler em `/mnt/project-files`, e o ambiente em nuvem em que as threads são executadas | Repositórios e ambiente em **Project settings > Environment**, ou peça a Claude na conversa para adicionar um repositório ao projeto. Arquivos e pastas de **Add** na aba **Library** em **Overview** |290| Repositórios, arquivos e ambiente | Os repositórios que cada thread em nuvem clona, as pastas e arquivos que ela pode ler em `/mnt/project-files`, e o ambiente em nuvem em que ela é executada | Repositórios e ambiente em **Project settings > Environment**, ou peça a Claude na conversa para adicionar um repositório ao projeto. Arquivos e pastas de **Add** na aba **Library** em **Overview** |

289 291 

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

291 293 

292<h3 id="write-project-instructions">294<h3 id="write-project-instructions">

293 Escrever instruções do projeto295 Escrever instruções do projeto

294</h3>296</h3>

295 297 

296As instruções do projeto são o resumo que cada nova thread começa. Clique no ícone de engrenagem no cabeçalho do projeto para abrir **Project settings**, depois vá para **Memory > Project instructions**. Um resumo útil cobre:298Instruções do projeto são o resumo que cada nova thread começa. Clique no ícone de engrenagem no cabeçalho do projeto para abrir **Project settings**, depois vá para **Memory > Project instructions**. Um resumo útil cobre:

297 299 

298* Para que serve o projeto300* Para que serve o projeto

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


312- Não mescle, force-push ou mude a configuração de CI sem me perguntar na thread.314- Não mescle, force-push ou mude a configuração de CI sem me perguntar na thread.

313```315```

314 316 

315Regras sobre um repositório, como seus comandos de compilação, pertencem ao `CLAUDE.md` desse repositório, que cada thread lê quando o repositório faz parte do projeto. Uma vez que o trabalho está em andamento, quando você corrige uma thread, também diga a Claude para lembrar da correção: ela vai para [memória do projeto](#give-a-project-standing-context) e threads posteriores começam com ela.317Regras sobre um repositório, como seus comandos de compilação, pertencem ao `CLAUDE.md` desse repositório, que cada thread em nuvem lê quando o repositório faz parte do projeto. Uma vez que o trabalho está em andamento, quando você corrige uma thread, também diga a Claude para lembrar da correção: ela vai para [memória do projeto](#give-a-project-standing-context) e threads posteriores começam com ela.

316 318 

317<h3 id="decide-which-repositories-to-add">319<h3 id="decide-which-repositories-to-add">

318 Decidir quais repositórios adicionar320 Decidir quais repositórios adicionar

319</h3>321</h3>

320 322 

321Os repositórios que você adiciona a um projeto vêm com tudo neles, seu código, `CLAUDE.md` e skills, em cada thread. Repositórios que você não adiciona ainda estão ao alcance: uma thread pode adicionar um a si mesma quando sua tarefa precisa. A maioria dos projetos usa ambos:323Os repositórios que você adiciona a um projeto vêm com tudo neles, seu código, `CLAUDE.md` e skills, em cada thread em nuvem. Repositórios que você não adiciona ainda estão ao alcance: uma thread em nuvem pode adicionar um a si mesma quando sua tarefa precisa. A maioria dos projetos usa ambos:

322 324 

323* **Adicione-o ao projeto**, no diálogo **New project**, em **Project settings > Environment**, ou pedindo a Claude na conversa para adicionar ao projeto. Cada thread a partir de então clona e começa com seu `CLAUDE.md` e skills carregados, independentemente de a tarefa tocá-lo. Ir de um repositório para vários também muda o que as threads pegam do `.claude/settings.json` de cada repositório; veja [O que as threads pegam de seus repositórios](#what-threads-pick-up-from-your-repositories).325* **Adicione-o ao projeto**, no diálogo **New project**, em **Project settings > Environment**, ou pedindo a Claude na conversa para adicionar ao projeto. Cada thread a partir de então clona e começa com seu `CLAUDE.md` e skills carregados, independentemente de a tarefa tocá-lo. Ir de um repositório para vários também muda o que as threads pegam do `.claude/settings.json` de cada repositório; veja [O que as threads pegam de seus repositórios](#what-threads-pick-up-from-your-repositories).

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

325 327 

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

327 329 

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

329 331 

330Para um projeto que abrange muitos repositórios, como um recurso com código de servidor, web, mobile e desktop, adicione o um ou dois repositórios que quase cada tarefa toca e nomeie os outros em [instruções do projeto](#write-project-instructions) para que Claude saiba onde o resto do código vive. As threads então começam pequenas e puxam os outros repositórios apenas para as tarefas que precisam deles.332Para um projeto que abrange muitos repositórios, como um recurso com código de servidor, web, mobile e desktop, adicione o um ou dois repositórios que quase cada tarefa toca e nomeie os outros em [instruções do projeto](#write-project-instructions) para que Claude saiba onde o resto do código vive. As threads em nuvem então começam pequenas e puxam os outros repositórios apenas para as tarefas que precisam deles.

331 333 

332<h3 id="what-threads-pick-up-from-your-repositories">334<h3 id="what-threads-pick-up-from-your-repositories">

333 O que as threads pegam de seus repositórios335 O que as threads pegam de seus repositórios

334</h3>336</h3>

335 337 

336Cada thread clona cada repositório no projeto e carrega `CLAUDE.md` e skills de todos eles. Regras de permissão, hooks e `env` vêm apenas do `.claude/settings.json` no diretório em que a thread começa: dentro do repositório quando o projeto tem um, e acima dos clones quando tem vários, onde nenhum arquivo de repositório é lido para eles.338Cada thread em nuvem clona cada repositório no projeto e carrega `CLAUDE.md` e skills de todos eles. Regras de permissão, hooks e `env` vêm apenas do `.claude/settings.json` no diretório em que a thread começa: dentro do repositório quando o projeto tem um, e acima dos clones quando tem vários, onde nenhum arquivo de repositório é lido para eles.

337 339 

338| Em cada repositório | Um repositório | Vários repositórios |340| Em cada repositório | Um repositório | Vários repositórios |

339| :---------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------ |341| :---------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------ |


348 Escolher um ambiente para threads350 Escolher um ambiente para threads

349</h3>351</h3>

350 352 

351Cada nova thread começa no [ambiente em nuvem](/docs/pt/cloud-environments) do projeto. O ambiente define quais domínios as threads podem alcançar, quais variáveis de ambiente elas têm, quais credenciais de API são adicionadas a suas solicitações e o que o script de configuração instala antes de Claude começar. As threads usam um ambiente padrão hospedado pela Anthropic até que você escolha um em **Project settings > Environment**.353Cada nova thread em nuvem começa no [ambiente em nuvem](/docs/pt/cloud-environments) do projeto. O ambiente define quais domínios as threads podem alcançar, quais variáveis de ambiente elas têm, quais credenciais de API são adicionadas a suas solicitações e o que o script de configuração instala antes de Claude começar. As threads em nuvem usam um ambiente padrão hospedado pela Anthropic até que você escolha um em **Project settings > Environment**.

352 354 

353Se as threads precisam alcançar uma API interna ou um registro de pacotes privado, ou precisam de um token que sua máquina normalmente mantém, mude o ambiente em vez do projeto: veja [Acesso à rede](/docs/pt/cloud-environments#network-access), [Adicionar credenciais de API](/docs/pt/cloud-environments#add-api-credentials) e [Scripts de configuração](/docs/pt/cloud-environments#setup-scripts).355Se as threads em nuvem precisam alcançar uma API interna ou um registro de pacotes privado, ou precisam de um token que sua máquina normalmente mantém, mude o ambiente em vez do projeto: veja [Acesso à rede](/docs/pt/cloud-environments#network-access), [Adicionar credenciais de API](/docs/pt/cloud-environments#add-api-credentials) e [Scripts de configuração](/docs/pt/cloud-environments#setup-scripts).

354 356 

355<h3 id="get-skills-plugins-connectors-and-tools-into-threads">357<h3 id="get-skills-plugins-connectors-and-tools-into-threads">

356 Obter skills, plugins, connectors e ferramentas em threads358 Obter skills, plugins, connectors e ferramentas em threads

357</h3>359</h3>

358 360 

359As threads são sessões em nuvem, então não têm os skills, servidores MCP, plugins e ferramentas instalados apenas na sua máquina. Para disponibilizar cada um desses para threads:361As threads em nuvem não têm os skills, servidores MCP, plugins e ferramentas instalados apenas na sua máquina. Uma thread que Claude executa na sua máquina através de [Remote Control](/docs/pt/remote-control) usa o que está instalado lá. Para disponibilizar cada um desses para threads em nuvem:

360 362 

361* Skills, subagentes e comandos: confirme-os em um repositório que você adicionou ao projeto, por exemplo um skill em `.claude/skills/<skill-name>/SKILL.md`. Cada thread clona cada repositório no projeto e carrega `.claude/skills/`, `.claude/agents/` e `.claude/commands/` de cada um deles, então um skill confirmado em um repositório está disponível em cada nova thread. As threads também carregam os skills que você habilita para sua conta claude.ai.363* Skills, subagentes e comandos: confirme-os em um repositório que você adicionou ao projeto, por exemplo um skill em `.claude/skills/<skill-name>/SKILL.md`. Cada thread em nuvem clona cada repositório no projeto e carrega `.claude/skills/`, `.claude/agents/` e `.claude/commands/` de cada um deles, então um skill confirmado em um repositório está disponível em cada nova thread em nuvem. As threads em nuvem também carregam os skills que você habilita para sua conta claude.ai.

362* Plugins: adicione-os em **Project settings > Plugins**; eles carregam em cada nova thread. Plugins que um repositório declara em seu `.claude/settings.json` [não carregam em threads](/docs/pt/cloud-environments#what-carries-over-from-your-setup), porque threads são sessões em nuvem.364* Plugins: adicione-os em **Project settings > Plugins**; eles carregam em cada nova thread em nuvem. Plugins que um repositório declara em seu `.claude/settings.json` [não carregam em threads em nuvem](/docs/pt/cloud-environments#what-carries-over-from-your-setup).

363* Servidores MCP: as threads obtêm suas ferramentas MCP dos connectors em sua conta claude.ai, que são servidores MCP que você conecta uma vez em [claude.ai/customize/connectors](https://claude.ai/customize/connectors) ou através do link **Manage connectors** em **Project settings > Environment**. Cada thread pode usar todos eles sem configuração por projeto. A conversa do projeto em si não tem connectors, então envie trabalho que precisa de um como uma tarefa para uma thread. Em um projeto com um repositório, as threads também carregam servidores MCP do [`.mcp.json`](/docs/pt/cloud-environments#what-carries-over-from-your-setup) desse repositório. [Como connectors alcançam Claude Code](/docs/pt/mcp#how-connectors-reach-claude-code) lista as regras para sessões em nuvem e as configurações que desligam connectors.365* Servidores MCP: as threads em nuvem obtêm suas ferramentas MCP dos connectors em sua conta claude.ai, que são servidores MCP que você conecta uma vez em [claude.ai/customize/connectors](https://claude.ai/customize/connectors) ou através do link **Manage connectors** em **Project settings > Environment**. Cada thread em nuvem pode usar todos eles sem configuração por projeto. A conversa do projeto em si não tem connectors, então envie trabalho que precisa de um como uma tarefa para uma thread em nuvem. Em um projeto com um repositório, as threads em nuvem também carregam servidores MCP do [`.mcp.json`](/docs/pt/cloud-environments#what-carries-over-from-your-setup) desse repositório. [Como connectors alcançam Claude Code](/docs/pt/mcp#how-connectors-reach-claude-code) lista as regras para sessões em nuvem e as configurações que desligam connectors.

364* Ferramentas de linha de comando e pacotes: instale-os no [script de configuração](/docs/pt/cloud-environments#setup-scripts) do ambiente.366* Ferramentas de linha de comando e pacotes: instale-os no [script de configuração](/docs/pt/cloud-environments#setup-scripts) do ambiente.

365 367 

366Para ver quais connectors uma thread em execução tem em claude.ai/code, abra a thread e selecione **Connectors** no menu **+** ao lado de sua caixa de mensagem. Desligar um connector lá o remove dessa thread e salva isso como seu padrão de conta, então novas threads e chats claude.ai começam sem ele até que você o ligue novamente. Uma thread pega um connector que você adiciona ou reconecta após a próxima mensagem que você envia a ela.368Para ver quais connectors uma thread em nuvem em execução tem em claude.ai/code, abra a thread e selecione **Connectors** no menu **+** ao lado de sua caixa de mensagem. Desligar um connector lá o remove dessa thread e salva isso como seu padrão de conta, então novas threads em nuvem e chats claude.ai começam sem ele até que você o ligue novamente. Uma thread em nuvem pega um connector que você adiciona ou reconecta após a próxima mensagem que você envia a ela.

367 369 

368<h2 id="project-settings-reference">370<h2 id="project-settings-reference">

369 Referência de configurações do projeto371 Referência de configurações do projeto


434 Como projetos se relacionam com outros recursos Claude Code436 Como projetos se relacionam com outros recursos Claude Code

435</h2>437</h2>

436 438 

437Vários recursos Claude Code permitem que mais de uma sessão funcione ao mesmo tempo, então executar trabalho em paralelo não é por si só para que um projeto serve. Em um projeto, Claude inicia e rastreia as sessões em vez de você, cada uma começa a partir dos mesmos repositórios, instruções e memória, e o trabalho vive na nuvem enquanto durar. É assim que cada recurso vizinho se conecta a um projeto:439Vários recursos Claude Code permitem que mais de uma sessão funcione ao mesmo tempo, então executar trabalho em paralelo não é por si só para que um projeto serve. Em um projeto, Claude inicia e rastreia as sessões em vez de você, e cada uma começa a partir das mesmas instruções. É assim que cada recurso vizinho se conecta a um projeto:

438 440 

439* **Claude Tag**: [Claude Tag](https://claude.com/docs/claude-tag/overview) é Claude nos canais Slack da sua equipe, em planos Team e Enterprise. Qualquer pessoa em um canal pode dar trabalho a ele, todos no canal veem e o direcionam, e usa conexões que um admin configurou para esse canal. Um projeto é seu: você é o único que envia trabalho a ele ou vê suas threads, usa seu próprio acesso GitHub e connectors, e está em Pro e Max. [Como Claude Tag difere de Cowork e Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) tem o lado a lado.441* **Claude Tag**: [Claude Tag](https://claude.com/docs/claude-tag/overview) é Claude nos canais Slack da sua equipe, em planos Team e Enterprise. Qualquer pessoa em um canal pode dar trabalho a ele, todos no canal veem e o direcionam, e usa conexões que um admin configurou para esse canal. Um projeto é seu: você é o único que envia trabalho a ele ou vê suas threads, usa seu próprio acesso GitHub e connectors, e está em Pro e Max. [Como Claude Tag difere de Cowork e Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) tem o lado a lado.

440* **Sessões em nuvem**: cada thread é uma [sessão em nuvem](/docs/pt/claude-code-on-the-web), iniciada e rastreada por Claude em vez de por você. Uma sessão em nuvem que você iniciou pode se tornar um projeto ou alimentar um através de [**Continue as a project** ou **Move to project**](#start-from-an-existing-cloud-session).442* **Sessões em nuvem**: cada thread é uma [sessão em nuvem](/docs/pt/claude-code-on-the-web), a menos que você peça a Claude para executá-la na sua máquina. De qualquer forma, Claude inicia e rastreia em vez de você. Uma sessão em nuvem que você iniciou pode se tornar um projeto ou alimentar um através de [**Continue as a project** ou **Move to project**](#start-from-an-existing-cloud-session).

441* **Routines**: quando você pede trabalho agendado em um projeto, Claude cria uma [routine](/docs/pt/routines) que é executada como threads nesse projeto e aparece em sua aba **Routines**. Routines que você cria fora de um projeto continuam funcionando por conta própria.443* **Routines**: quando você pede trabalho agendado em um projeto, Claude cria uma [routine](/docs/pt/routines) que é executada como threads nesse projeto e aparece em sua aba **Routines**. Routines que você cria fora de um projeto continuam funcionando por conta própria.

442* **Sessões locais e agent view**: sessões em seu terminal, IDE ou ambiente local do aplicativo desktop são executadas na sua máquina e não podem fazer parte de um projeto. [Agent view](/docs/pt/agent-view) é uma tela para rastrear várias dessas sessões locais; não tem coordenador.444* **Sessões locais e agent view**: uma sessão que você inicia na sua máquina em seu terminal, IDE ou no ambiente local do aplicativo desktop não pode ser adicionada a um projeto. Um projeto alcança sua máquina apenas executando uma thread lá através de [Remote Control](/docs/pt/remote-control). [Agent view](/docs/pt/agent-view) é uma tela para rastrear várias sessões locais que você iniciou; não tem coordenador.

443* **Worktrees**: um [worktree](/docs/pt/worktrees) dá a cada sessão local sua própria cópia de trabalho de um repositório para que sessões paralelas na sua máquina não se sobrescrevam. As threads não precisam deles: cada thread clona seus repositórios em seu próprio sandbox em nuvem e funciona em seu próprio branch.445* **Worktrees**: um [worktree](/docs/pt/worktrees) dá a cada sessão local sua própria cópia de trabalho de um repositório para que sessões paralelas na sua máquina não se sobrescrevam. As threads em nuvem não precisam deles: cada uma clona seus repositórios em seu próprio sandbox em nuvem e funciona em seu próprio branch.

444* **Agent teams**: um [agent team](/docs/pt/agent-teams) é uma sessão que inicia sessões de colega de trabalho para uma única tarefa, na sua máquina ou dentro de uma sessão em nuvem, e termina com essa tarefa.446* **Agent teams**: um [agent team](/docs/pt/agent-teams) é uma sessão que inicia sessões de colega de trabalho para uma única tarefa, na sua máquina ou dentro de uma sessão em nuvem, e termina com essa tarefa.

445* **Projects no chat claude.ai e Cowork**: a [experiência anterior de Projects](https://support.claude.com/en/articles/9517075-what-are-projects), que agrupa conversas e arquivos de referência sem threads ou um coordenador. Esses projetos continuam funcionando como fazem hoje até que a experiência redesenhada os alcance.447* **Projects no chat claude.ai e Cowork**: a [experiência anterior de Projects](https://support.claude.com/en/articles/9517075-what-are-projects), que agrupa conversas e arquivos de referência sem threads ou um coordenador. Esses projetos continuam funcionando como fazem hoje até que a experiência redesenhada os alcance.

446 448 


451</h2>453</h2>

452 454 

453* Projects estão disponíveis em claude.ai/code, no aplicativo desktop e no aplicativo móvel Claude, não no CLI do terminal ou através de Amazon Bedrock, Agent Platform do Google Cloud ou Microsoft Foundry. O comando [`claude project`](/docs/pt/cli-reference) do CLI, que gerencia o estado local do Claude Code para um diretório, não está relacionado.455* Projects estão disponíveis em claude.ai/code, no aplicativo desktop e no aplicativo móvel Claude, não no CLI do terminal ou através de Amazon Bedrock, Agent Platform do Google Cloud ou Microsoft Foundry. O comando [`claude project`](/docs/pt/cli-reference) do CLI, que gerencia o estado local do Claude Code para um diretório, não está relacionado.

454* As threads do projeto são [sessões em nuvem](/docs/pt/claude-code-on-the-web) com Anthropic como provedor de modelo. [Segurança](/docs/pt/security) e [Uso de dados](/docs/pt/data-usage) cobrem como as sessões em nuvem são isoladas e o que é retido.456* As threads do projeto são [sessões em nuvem](/docs/pt/claude-code-on-the-web), ou sessões em sua própria máquina através de [Remote Control](/docs/pt/remote-control), com Anthropic como provedor de modelo em ambos os casos. [Segurança](/docs/pt/security) e [Uso de dados](/docs/pt/data-usage) cobrem como as sessões em nuvem são isoladas e o que é retido, e [Conexão e segurança](/docs/pt/remote-control#connection-and-security) cobre como uma thread em sua máquina se conecta e o que é armazenado.

455* Uma sessão local não pode fazer parte de um projeto.457* Você não pode adicionar uma sessão que iniciou você mesmo em sua máquina a um projeto. Para permitir que um projeto execute uma thread em sua máquina, conecte a pasta em que deve funcionar através de [Remote Control](/docs/pt/remote-control#requirements): ative Remote Control em **Settings > Claude Code** no aplicativo desktop Claude, ou execute `claude remote-control` na pasta e deixe-a em execução. Essa máquina precisa do Claude Code v2.1.280 ou posterior. Um projeto também não pode executar uma thread em sua máquina enquanto **Require trusted devices** está ativado em suas configurações de claude.ai.

456* O sandbox de uma thread pausa entre voltas e retoma quando a thread continua. Se o sandbox não puder ser retomado, a thread continua de um clone fresco, então mudanças não confirmadas podem ser perdidas. Em tarefas longas, peça a Claude para confirmar e empurrar trabalho em progresso.458* O sandbox de uma thread em nuvem pausa entre voltas e retoma quando a thread continua. Se o sandbox não puder ser retomado, a thread continua de um clone fresco, então mudanças não confirmadas podem ser perdidas. Em tarefas longas, peça a Claude para confirmar e enviar trabalho em progresso.

457* Um projeto pertence a um usuário. Você não pode compartilhar um projeto ou suas threads com outro usuário, e transcrições de thread não têm a opção de compartilhamento que outras sessões em nuvem têm. Não há controles de nível de organização para projetos durante o beta.459* Um projeto pertence a um usuário. Você não pode compartilhar um projeto ou suas threads com outro usuário, e transcrições de thread não têm a opção de compartilhamento que outras sessões em nuvem têm. Não há controles de nível de organização para projetos durante o beta.

458* Uma thread pertence ao único projeto que a iniciou. Você não pode mover ou copiar uma thread para outro projeto, ou movê-la para ficar sozinha. [**Move to project**](#start-from-an-existing-cloud-session) vai apenas na outra direção: traz o trabalho de uma sessão em nuvem para um projeto.460* Uma thread pertence ao único projeto que a iniciou. Você não pode mover ou copiar uma thread para outro projeto, ou movê-la para ficar sozinha. [**Move to project**](#start-from-an-existing-cloud-session) vai apenas na outra direção: traz o trabalho de uma sessão em nuvem para um projeto.

459 461 


467 Uma thread parece estar travada469 Uma thread parece estar travada

468</h3>470</h3>

469 471 

470Claude não posta cada passo que uma thread toma, então uma thread que mostra como em execução sem novas mensagens na conversa do projeto geralmente ainda está funcionando. Uma nova thread também provisiona seu [ambiente em nuvem](/docs/pt/cloud-environments) antes de Claude começar, então sua primeira atualização leva um momento. Abra a thread para ler sua transcrição. Se a thread está aguardando um prompt de permissão, responda lá.472Claude não posta cada passo que uma thread toma, então uma thread que mostra como em execução sem novas mensagens na conversa do projeto geralmente ainda está funcionando. Uma nova thread em nuvem também provisiona seu [ambiente em nuvem](/docs/pt/cloud-environments) antes de Claude começar, então sua primeira atualização leva um momento. Abra a thread para ler sua transcrição. Se a thread está aguardando um prompt de permissão, responda lá.

471 473 

472<h3 id="threads-guessed-or-stalled-instead-of-asking">474<h3 id="threads-guessed-or-stalled-instead-of-asking">

473 Threads adivinharam ou travaram em vez de perguntar475 Threads adivinharam ou travaram em vez de perguntar


489 Erros de acesso ao repositório491 Erros de acesso ao repositório

490</h3>492</h3>

491 493 

492Três mensagens significam que uma thread ou o projeto não consegue alcançar um de seus repositórios. Uma thread de projeto precisa dos [pré-requisitos do GitHub](#check-the-prerequisites) mesmo quando suas outras sessões em nuvem clonam o mesmo repositório sem problemas.494Três mensagens significam que uma thread ou o projeto não consegue alcançar um de seus repositórios. Uma thread de projeto em nuvem precisa dos [pré-requisitos do GitHub](#check-the-prerequisites) mesmo quando suas outras sessões em nuvem clonam o mesmo repositório sem problemas.

493 495 

494* **"Couldn't start the session — Claude doesn't have GitHub access to this project's repository"**, relatado antes da thread começar, quando o Claude GitHub App não está instalado nesse repositório, está suspenso ou não está vinculado à conta GitHub que você conectou.496* **"Couldn't start the session — Claude doesn't have GitHub access to this project's repository"**, relatado antes da thread começar, quando o Claude GitHub App não está instalado nesse repositório, está suspenso ou não está vinculado à conta GitHub que você conectou.

495* **"Unable to access your repository"**, relatado por uma thread quando seu clone falha: GitHub rejeitou o clone, o repositório não foi encontrado sob o nome que o projeto tem, ou o branch do qual a thread foi pedida para começar não existe.497* **"Unable to access your repository"**, relatado por uma thread quando seu clone falha: GitHub rejeitou o clone, o repositório não foi encontrado sob o nome que o projeto tem, ou o branch do qual a thread foi pedida para começar não existe.

Details

27 Instale o plugin27 Instale o plugin

28</h2>28</h2>

29 29 

30Em uma sessão Claude Code, instale a partir do [marketplace oficial da Anthropic](/docs/pt/discover-plugins#official-anthropic-marketplace):30Em uma sessão Claude Code, instale a partir do [marketplace oficial da Anthropic](/docs/pt/plugins/anthropic-marketplaces):

31 31 

32```text theme={null}32```text theme={null}

33/plugin install claude-security@claude-plugins-official33/plugin install claude-security@claude-plugins-official

34```34```

35 35 

36O comando abre os detalhes do plugin, onde você escolhe um [escopo de instalação](/docs/pt/discover-plugins#install-plugins) para iniciar a instalação.36O comando abre os detalhes do plugin, onde você escolhe um [escopo de instalação](/docs/pt/plugins/install#install-a-plugin) para iniciar a instalação.

37 37 

38Se a instalação falhar, a correção depende de qual mensagem Claude Code relata:38Se a instalação falhar, a correção depende de qual mensagem Claude Code relata:

39 39 

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

41* Se relatar que não consegue [encontrar o plugin no marketplace](/docs/pt/discover-plugins#install-plugins), verifique o nome do plugin para um erro de digitação.41* Se relatar que não consegue [encontrar o plugin no marketplace](/docs/pt/plugins/install#install-a-plugin), verifique o nome do plugin para um erro de digitação.

42 42 

43Verifique o resumo da instalação. Se relatar `Run /reload-plugins to activate.`, consulte [Aplicar alterações de plugin sem reiniciar](/docs/pt/discover-plugins#apply-plugin-changes-without-restarting) para ativar o plugin em sua sessão atual.43Verifique o resumo da instalação. Se relatar `Run /reload-plugins to activate.`, consulte [Aplicar alterações de plugin sem reiniciar](/docs/pt/plugins/cli-reference#reload-plugins) para ativar o plugin em sua sessão atual.

44 44 

45Assim que o plugin estiver ativo, você está pronto para [digitalizar e corrigir seu repositório de código](#scan-and-fix-your-codebase).45Assim que o plugin estiver ativo, você está pronto para [digitalizar e corrigir seu repositório de código](#scan-and-fix-your-codebase).

46 46 


168* [Code Review](/docs/pt/code-review): configure a revisão com múltiplos agentes no tempo de PR168* [Code Review](/docs/pt/code-review): configure a revisão com múltiplos agentes no tempo de PR

169* [Claude Security](https://claude.com/product/claude-security): o serviço gerenciado que monitora repositórios conectados169* [Claude Security](https://claude.com/product/claude-security): o serviço gerenciado que monitora repositórios conectados

170* [Segurança do Claude Code](/docs/pt/security): como Claude Code aborda confiança, permissões e salvaguardas170* [Segurança do Claude Code](/docs/pt/security): como Claude Code aborda confiança, permissões e salvaguardas

171* [Descubra e instale plugins](/docs/pt/discover-plugins#official-anthropic-marketplace): navegue por outros plugins oficiais171* [Instale e gerencie plugins](/docs/pt/plugins/install): encontre e instale outros plugins do marketplace oficial

claude-tag.md +0 −11 deleted

File Deleted View Diff

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# Claude Tag

6 

7> Traga Claude para os canais Slack da sua equipe com Claude Tag e encontre a documentação de configuração e uso em claude.com.

8 

9[Claude Tag](https://claude.com/product/tag) é uma integração do Slack que executa `@Claude` nos canais da sua equipe como identidade compartilhada da sua organização com acesso configurado pelo administrador. Qualquer pessoa em um canal pode marcar `@Claude` em uma thread e atribuir uma tarefa a ele. Leia a [documentação do Claude Tag](https://claude.com/docs/claude-tag/overview) em claude.com para configurá-lo e começar a usá-lo.

10 

11Claude Tag está disponível nos planos Team e Enterprise, e é distinto do anterior [Claude Code in Slack](/docs/pt/slack), que executa cada sessão sob a conta de um usuário individual. Nos planos Pro e Max, onde Claude Tag não está disponível, Claude Code in Slack permanece como o caminho de configuração.

Details

37| `claude import [source]` | Iniciar uma sessão interativa que executa [`/import`](/docs/pt/commands#all-commands) para trazer configuração de outros agentes de codificação para Claude Code. Aceita as mesmas opções `--dry-run` e `--yes` do comando. Não disponível no Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry ou Claude Platform na AWS. Também indisponível quando você desativa [busca de feature-flag](/docs/pt/env-vars#features-that-need-feature-flag-fetching). Requer Claude Code v2.1.213 ou posterior | `claude import codex --dry-run` |37| `claude import [source]` | Iniciar uma sessão interativa que executa [`/import`](/docs/pt/commands#all-commands) para trazer configuração de outros agentes de codificação para Claude Code. Aceita as mesmas opções `--dry-run` e `--yes` do comando. Não disponível no Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry ou Claude Platform na AWS. Também indisponível quando você desativa [busca de feature-flag](/docs/pt/env-vars#features-that-need-feature-flag-fetching). Requer Claude Code v2.1.213 ou posterior | `claude import codex --dry-run` |

38| `claude logs <id>` | Imprimir saída recente de uma [sessão de fundo](/docs/pt/agent-view#manage-sessions-from-the-shell) | `claude logs 7c5dcf5d` |38| `claude logs <id>` | Imprimir saída recente de uma [sessão de fundo](/docs/pt/agent-view#manage-sessions-from-the-shell) | `claude logs 7c5dcf5d` |

39| `claude mcp` | Configurar servidores Model Context Protocol (MCP) | Veja a [documentação Claude Code MCP](/docs/pt/mcp). |39| `claude mcp` | Configurar servidores Model Context Protocol (MCP) | Veja a [documentação Claude Code MCP](/docs/pt/mcp). |

40| `claude mcp login <name>` | Executar o fluxo OAuth de um servidor MCP configurado sem abrir o painel interativo `/mcp`. Funciona para servidores HTTP, SSE e conectores claude.ai. Adicione `--no-browser` via SSH para imprimir a URL de autorização em vez de abrir um navegador, depois cole a URL de redirecionamento de volta no prompt. Requer Claude Code v2.1.186 ou posterior. Veja [Autenticar a partir da linha de comando](/docs/pt/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |40| `claude mcp login <name>` | Executar o fluxo OAuth de um servidor MCP configurado sem abrir o painel interativo `/mcp`. Funciona para servidores HTTP, SSE e conectores claude.ai. Adicione `--no-browser` via SSH para imprimir a URL de autorização em vez de abrir um navegador, depois cole a URL de redirecionamento de volta no prompt. Veja [Autenticar a partir da linha de comando](/docs/pt/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |

41| `claude mcp logout <name>` | Limpar credenciais OAuth armazenadas para um servidor MCP. Requer Claude Code v2.1.186 ou posterior | `claude mcp logout sentry` |41| `claude mcp logout <name>` | Limpar credenciais OAuth armazenadas para um servidor MCP | `claude mcp logout sentry` |

42| `claude plugin` | Gerenciar Claude Code [plugins](/docs/pt/plugins). Alias: `claude plugins`. Veja [referência de plugin](/docs/pt/plugins-reference#cli-commands-reference) para subcomandos | `claude plugin install code-review@claude-plugins-official` |42| `claude plugin` | Gerenciar Claude Code [plugins](/docs/pt/plugins/overview). Alias: `claude plugins`. Veja [referência de plugin](/docs/pt/plugins/cli-reference#claude-plugin-commands) para subcomandos | `claude plugin install code-review@claude-plugins-official` |

43| `claude project purge [path]` | Excluir todo o estado local do Claude Code para um projeto: transcrições, listas de tarefas, logs de depuração, histórico de edição de arquivo, linhas de histórico de prompt e a entrada do projeto em `~/.claude.json`. Omita `[path]` para escolher em uma lista interativa. Sinalizadores: `--dry-run` para visualizar, `-y`/`--yes` para pular confirmação, `-i`/`--interactive` para confirmar cada item, `--all` para cada projeto. Veja [Limpar dados locais](/docs/pt/claude-directory#clear-local-data) | `claude project purge ~/work/repo --dry-run` |43| `claude project purge [path]` | Excluir todo o estado local do Claude Code para um projeto: transcrições, listas de tarefas, logs de depuração, histórico de edição de arquivo, linhas de histórico de prompt e a entrada do projeto em `~/.claude.json`. Omita `[path]` para escolher em uma lista interativa. Sinalizadores: `--dry-run` para visualizar, `-y`/`--yes` para pular confirmação, `-i`/`--interactive` para confirmar cada item, `--all` para cada projeto. Veja [Limpar dados locais](/docs/pt/claude-directory#clear-local-data) | `claude project purge ~/work/repo --dry-run` |

44| `claude remote-control` | Iniciar um servidor [Remote Control](/docs/pt/remote-control) para controlar Claude Code a partir de Claude.ai ou do aplicativo Claude. Executa em modo servidor (sem sessão interativa local). Veja [Sinalizadores de modo servidor](/docs/pt/remote-control#start-a-remote-control-session). Depois de parar o servidor, você pode trazer de volta as sessões que ele estava servindo. Veja [Retomar sessões após parar o servidor](/docs/pt/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |44| `claude remote-control` | Iniciar um servidor [Remote Control](/docs/pt/remote-control) para controlar Claude Code a partir de Claude.ai ou do aplicativo Claude. Executa em modo servidor (sem sessão interativa local). Veja [Sinalizadores de modo servidor](/docs/pt/remote-control#start-a-remote-control-session). Depois de parar o servidor, você pode trazer de volta as sessões que ele estava servindo. Veja [Retomar sessões após parar o servidor](/docs/pt/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |

45| `claude respawn <id>` | Reiniciar uma [sessão de fundo](/docs/pt/agent-view#manage-sessions-from-the-shell), em execução ou parada, com sua conversa intacta. Use `--all` para reiniciar cada sessão em execução, por exemplo, para pegar um binário Claude Code atualizado | `claude respawn 7c5dcf5d` |45| `claude respawn <id>` | Reiniciar uma [sessão de fundo](/docs/pt/agent-view#manage-sessions-from-the-shell), em execução ou parada, com sua conversa intacta. Use `--all` para reiniciar cada sessão em execução, por exemplo, para pegar um binário Claude Code atualizado | `claude respawn 7c5dcf5d` |


114| `--permission-mode` | Começar em um [modo de permissão](/docs/pt/permission-modes) especificado. Aceita `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions` ou `manual` como um alias para `default`. O alias `manual` seleciona o modo de permissão que a UI rotula como Manual e requer Claude Code v2.1.200 ou posterior; `claude --help` o lista no lugar de `default` e ambos os valores funcionam. Substitui `defaultMode` dos arquivos de configuração. Sem este sinalizador ou `--dangerously-skip-permissions`, uma nova sessão inicia no modo de permissão descrito em [qual modo de permissão uma sessão inicia](/docs/pt/permission-modes#which-mode-a-session-starts-in). Para `-p`, isso é `default` quando nada está configurado | `claude --permission-mode plan` |114| `--permission-mode` | Começar em um [modo de permissão](/docs/pt/permission-modes) especificado. Aceita `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions` ou `manual` como um alias para `default`. O alias `manual` seleciona o modo de permissão que a UI rotula como Manual e requer Claude Code v2.1.200 ou posterior; `claude --help` o lista no lugar de `default` e ambos os valores funcionam. Substitui `defaultMode` dos arquivos de configuração. Sem este sinalizador ou `--dangerously-skip-permissions`, uma nova sessão inicia no modo de permissão descrito em [qual modo de permissão uma sessão inicia](/docs/pt/permission-modes#which-mode-a-session-starts-in). Para `-p`, isso é `default` quando nada está configurado | `claude --permission-mode plan` |

115| `--permission-prompt-tool` | Especificar uma ferramenta MCP para lidar com prompts de permissão em modo não interativo. Claude Code aguarda a conexão do servidor MCP dessa ferramenta antes de executar o primeiro turno, até o tempo limite de inicialização [`MCP_TIMEOUT`](/docs/pt/env-vars), 30 segundos por padrão. <br /><br />A ferramenta de prompt não pode aprovar uma ferramenta MCP marcada como [exigindo interação do usuário](/docs/pt/mcp#require-approval-for-a-specific-tool): Claude Code converte um resultado `allow` para uma em uma negação. Esta restrição requer Claude Code v2.1.199 ou posterior | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |115| `--permission-prompt-tool` | Especificar uma ferramenta MCP para lidar com prompts de permissão em modo não interativo. Claude Code aguarda a conexão do servidor MCP dessa ferramenta antes de executar o primeiro turno, até o tempo limite de inicialização [`MCP_TIMEOUT`](/docs/pt/env-vars), 30 segundos por padrão. <br /><br />A ferramenta de prompt não pode aprovar uma ferramenta MCP marcada como [exigindo interação do usuário](/docs/pt/mcp#require-approval-for-a-specific-tool): Claude Code converte um resultado `allow` para uma em uma negação. Esta restrição requer Claude Code v2.1.199 ou posterior | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |

116| `--permission-prompts` | Definir quem responde prompts de permissão em modo print. Com o padrão `host`, Claude Code os envia para o host do Agent SDK ou a ferramenta `--permission-prompt-tool`. Passe `none` quando ninguém puder responder, e Claude Code os nega em vez disso. Veja [Desativar prompts de permissão em execuções sem supervisão](/docs/pt/headless#turn-off-permission-prompts-in-unattended-runs). Requer Claude Code v2.1.259 ou posterior | `claude -p --permission-prompts none "query"` |116| `--permission-prompts` | Definir quem responde prompts de permissão em modo print. Com o padrão `host`, Claude Code os envia para o host do Agent SDK ou a ferramenta `--permission-prompt-tool`. Passe `none` quando ninguém puder responder, e Claude Code os nega em vez disso. Veja [Desativar prompts de permissão em execuções sem supervisão](/docs/pt/headless#turn-off-permission-prompts-in-unattended-runs). Requer Claude Code v2.1.259 ou posterior | `claude -p --permission-prompts none "query"` |

117| `--plugin-dir` | Carregar um plugin de um diretório ou arquivo `.zip`, ou vários de uma [pasta de plugins](/docs/pt/plugins#test-your-plugins-locally), apenas para esta sessão. Cada sinalizador leva um caminho. Repita o sinalizador para mais caminhos: `--plugin-dir A --plugin-dir B.zip`. Passar uma pasta de plugins requer Claude Code v2.1.265 ou posterior | `claude --plugin-dir ./my-plugin` |117| `--plugin-dir` | Carregar um plugin de um diretório ou arquivo `.zip`, ou vários de uma [pasta de plugins](/docs/pt/plugins/create#load-a-directory-or-archive-for-one-session), apenas para esta sessão. Cada sinalizador leva um caminho. Repita o sinalizador para mais caminhos: `--plugin-dir A --plugin-dir B.zip`. Passar uma pasta de plugins requer Claude Code v2.1.265 ou posterior | `claude --plugin-dir ./my-plugin` |

118| `--plugin-url` | Buscar um arquivo `.zip` de plugin de uma URL apenas para esta sessão. Repita o sinalizador para vários plugins, ou passe URLs separadas por espaço em um único valor entre aspas | `claude --plugin-url https://example.com/plugin.zip` |118| `--plugin-url` | Buscar um arquivo `.zip` de plugin de uma URL apenas para esta sessão. Repita o sinalizador para vários plugins, ou passe URLs separadas por espaço em um único valor entre aspas | `claude --plugin-url https://example.com/plugin.zip` |

119| `--print`, `-p` | Imprimir resposta sem modo interativo (veja [documentação do Agent SDK](/docs/pt/agent-sdk/overview) para detalhes de uso programático) | `claude -p "query"` |119| `--print`, `-p` | Imprimir resposta sem modo interativo (veja [documentação do Agent SDK](/docs/pt/agent-sdk/overview) para detalhes de uso programático) | `claude -p "query"` |

120| `--prompt-suggestions` | Emitir uma mensagem `prompt_suggestion` com um prompt de usuário previsto após cada turno que gera um; conversas muito curtas podem não produzir nenhum. Requer `--print`, `--output-format stream-json` e `--verbose`. Veja [Sugestões de prompt](/docs/pt/interactive-mode#prompt-suggestions) | `claude -p --prompt-suggestions --output-format stream-json --verbose "query"` |120| `--prompt-suggestions` | Emitir uma mensagem `prompt_suggestion` com um prompt de usuário previsto após cada turno que gera um; conversas muito curtas podem não produzir nenhum. Requer `--print`, `--output-format stream-json` e `--verbose`. Veja [Sugestões de prompt](/docs/pt/interactive-mode#prompt-suggestions) | `claude -p --prompt-suggestions --output-format stream-json --verbose "query"` |


134| `--system-prompt-file` | Carregar prompt do sistema de um arquivo, substituindo o prompt padrão | `claude --system-prompt-file ./custom-prompt.txt` |134| `--system-prompt-file` | Carregar prompt do sistema de um arquivo, substituindo o prompt padrão | `claude --system-prompt-file ./custom-prompt.txt` |

135| `--system-prompt-snapshot` | Passar `off` para reconstruir o prompt do sistema em cada solicitação em vez de reutilizar o prompt [registrado na primeira solicitação da conversa](#system-prompt-flags-in-resumed-conversations), por exemplo enquanto você itera no texto `--append-system-prompt` em execuções `--continue`. Requer Claude Code v2.1.257 ou posterior | `claude --system-prompt-snapshot off` |135| `--system-prompt-snapshot` | Passar `off` para reconstruir o prompt do sistema em cada solicitação em vez de reutilizar o prompt [registrado na primeira solicitação da conversa](#system-prompt-flags-in-resumed-conversations), por exemplo enquanto você itera no texto `--append-system-prompt` em execuções `--continue`. Requer Claude Code v2.1.257 ou posterior | `claude --system-prompt-snapshot off` |

136| `--teleport` | Retomar uma [sessão web](/docs/pt/claude-code-on-the-web) em seu terminal local | `claude --teleport` |136| `--teleport` | Retomar uma [sessão web](/docs/pt/claude-code-on-the-web) em seu terminal local | `claude --teleport` |

137| `--teammate-mode` | Definir como [equipe de agentes](/docs/pt/agent-teams) colegas de equipe são exibidos: `in-process` (padrão), `auto`, `tmux` ou `iterm2` (adicionado em v2.1.186). Substitui a configuração [`teammateMode`](/docs/pt/settings-reference#teammatemode) para esta sessão. Veja [Escolher um modo de exibição](/docs/pt/agent-teams#choose-a-display-mode) | `claude --teammate-mode auto` |137| `--teammate-mode` | Definir como [equipe de agentes](/docs/pt/agent-teams) colegas de equipe são exibidos: `in-process` (padrão), `auto`, `tmux` ou `iterm2`. Substitui a configuração [`teammateMode`](/docs/pt/settings-reference#teammatemode) para esta sessão. Veja [Escolher um modo de exibição](/docs/pt/agent-teams#choose-a-display-mode) | `claude --teammate-mode auto` |

138| `--tmux` | Criar uma sessão tmux para o worktree. Requer `--worktree`. Usa painéis nativos do iTerm2 quando disponível; passe `--tmux=classic` para tmux tradicional | `claude -w feature-auth --tmux` |138| `--tmux` | Criar uma sessão tmux para o worktree. Requer `--worktree`. Usa painéis nativos do iTerm2 quando disponível; passe `--tmux=classic` para tmux tradicional | `claude -w feature-auth --tmux` |

139| `--tools` | Restringir quais ferramentas integradas Claude pode usar. Use `""` para desativar todas, `"default"` para o conjunto padrão, ou nomes de ferramentas como `"Bash,Edit,Read"`. Em macOS, Linux e WSL, o conjunto padrão deixa de fora `Glob` e `Grep`, conforme descrito em [Comportamento da ferramenta Glob](/docs/pt/tools-reference#glob-tool-behavior). Se você nomear uma das [ferramentas de rastreamento de tarefas](/docs/pt/tools-reference#task-tool-availability) aqui, Claude Code também ativa a sessão. O sinalizador não afeta ferramentas MCP; para negar essas também, use `--disallowedTools "mcp__*"`. Uma lista que omite [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior) não a remove; `""` a remove apenas quando nenhuma ferramenta MCP permanecer | `claude --tools "Bash,Edit,Read"` |139| `--tools` | Restringir quais ferramentas integradas Claude pode usar. Use `""` para desativar todas, `"default"` para o conjunto padrão, ou nomes de ferramentas como `"Bash,Edit,Read"`. Em macOS, Linux e WSL, o conjunto padrão deixa de fora `Glob` e `Grep`, conforme descrito em [Comportamento da ferramenta Glob](/docs/pt/tools-reference#glob-tool-behavior). Se você nomear uma das [ferramentas de rastreamento de tarefas](/docs/pt/tools-reference#task-tool-availability) aqui, Claude Code também ativa a sessão. O sinalizador não afeta ferramentas MCP; para negar essas também, use `--disallowedTools "mcp__*"`. Uma lista que omite [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior) não a remove; `""` a remove apenas quando nenhuma ferramenta MCP permanecer | `claude --tools "Bash,Edit,Read"` |

140| `--verbose` | Ativar logging detalhado, mostra saída completa turno por turno. Substitui a configuração [`viewMode`](/docs/pt/settings-reference#viewmode) para esta sessão | `claude --verbose` |140| `--verbose` | Ativar logging detalhado, mostra saída completa turno por turno. Substitui a configuração [`viewMode`](/docs/pt/settings-reference#viewmode) para esta sessão | `claude --verbose` |

Details

300| Seus servidores MCP `.mcp.json` do repositório | Sim, em uma sessão com um repositório | Parte do clone, encontrado a partir do diretório de trabalho da sessão |300| Seus servidores MCP `.mcp.json` do repositório | Sim, em uma sessão com um repositório | Parte do clone, encontrado a partir do diretório de trabalho da sessão |

301| Seu `.claude/rules/` do repositório | Sim | Parte do clone |301| Seu `.claude/rules/` do repositório | Sim | Parte do clone |

302| Seu `.claude/skills/`, `.claude/agents/`, `.claude/commands/` do repositório | Sim | Parte do clone |302| Seu `.claude/skills/`, `.claude/agents/`, `.claude/commands/` do repositório | Sim | Parte do clone |

303| Plugins e marketplaces declarados em seu `.claude/settings.json` do repositório | Não | Uma sessão na nuvem não instala os plugins que um repositório ativa em [`enabledPlugins`](/docs/pt/settings-reference#enabledplugins), incluindo aqueles dos marketplaces que lista em [`extraKnownMarketplaces`](/docs/pt/settings-reference#extraknownmarketplaces). Ative o plugin para sua conta claude.ai em vez disso, para que Claude Code o carregue como um [plugin sincronizado](/docs/pt/plugins-reference#synced-plugins) |303| Plugins e marketplaces declarados em seu `.claude/settings.json` do repositório | Não | Uma sessão na nuvem não instala os plugins que um repositório ativa em [`enabledPlugins`](/docs/pt/settings-reference#enabledplugins), incluindo aqueles dos marketplaces que lista em [`extraKnownMarketplaces`](/docs/pt/settings-reference#extraknownmarketplaces) |

304| As [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) de sua organização | Sim | Buscadas dos servidores da Anthropic quando a sessão é iniciada. Veja [Cobertura de superfície](/docs/pt/model-config#surface-coverage) para como `availableModels` é aplicado em sessões na nuvem. As configurações implantadas em seu dispositivo através de MDM ou arquivos de configurações gerenciadas não se aplicam, porque a sessão é executada em uma VM gerenciada pela Anthropic; em um [ambiente auto-hospedado](/docs/pt/self-hosted-environments), as sessões também leem o arquivo de configurações gerenciadas na imagem do executor, por [como Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#how-claude-code-combines-managed-sources) |304| As [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) de sua organização | Sim | Buscadas dos servidores da Anthropic quando a sessão é iniciada. Veja [Cobertura de superfície](/docs/pt/model-config#surface-coverage) para como `availableModels` é aplicado em sessões na nuvem. As configurações implantadas em seu dispositivo através de MDM ou arquivos de configurações gerenciadas não se aplicam, porque a sessão é executada em uma VM gerenciada pela Anthropic; em um [ambiente auto-hospedado](/docs/pt/self-hosted-environments), as sessões também leem o arquivo de configurações gerenciadas na imagem do executor, por [como Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#how-claude-code-combines-managed-sources) |

305| Seu `~/.claude/CLAUDE.md` do usuário | Não | Vive em sua máquina, não no repositório |305| Seu `~/.claude/CLAUDE.md` do usuário | Não | Vive em sua máquina, não no repositório |

306| Seu `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` do usuário | Não | Vivem em sua máquina, não no repositório. Confirme-os no diretório `.claude/` do repositório em vez disso. As sessões na nuvem carregam automaticamente skills que você ativa em claude.ai |306| Seu `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` do usuário | Não | Vivem em sua máquina, não no repositório. Confirme-os no diretório `.claude/` do repositório em vez disso. As sessões na nuvem carregam automaticamente skills que você ativa em claude.ai |

307| Plugins ativados apenas em suas configurações de usuário | Não | O `enabledPlugins` com escopo de usuário vive em `~/.claude/settings.json` em sua máquina. Ative-os para sua conta claude.ai em vez disso, para que Claude Code os carregue como [plugins sincronizados](/docs/pt/plugins-reference#synced-plugins) |307| Plugins ativados apenas em suas configurações de usuário | Não | O `enabledPlugins` com escopo de usuário vive em `~/.claude/settings.json` em sua máquina |

308| Servidores MCP que você adicionou com `claude mcp add` no escopo local padrão ou no escopo de usuário | Não | Aqueles escrevem em `~/.claude.json` em sua máquina, não no repositório. Adicione o servidor com `claude mcp add --scope project`, que escreve o [`.mcp.json`](/docs/pt/mcp#project-scope) do repositório, e confirme esse arquivo. Uma sessão com um repositório o carrega |308| Servidores MCP que você adicionou com `claude mcp add` no escopo local padrão ou no escopo de usuário | Não | Aqueles escrevem em `~/.claude.json` em sua máquina, não no repositório. Adicione o servidor com `claude mcp add --scope project`, que escreve o [`.mcp.json`](/docs/pt/mcp#project-scope) do repositório, e confirme esse arquivo. Uma sessão com um repositório o carrega |

309| Variáveis de transporte em seu bloco `env` `.claude/settings.json` do repositório, como `NODE_EXTRA_CA_CERTS` e as [variáveis de certificado de cliente mTLS](/docs/pt/network-config#mtls-authentication) | Não | O ambiente de hospedagem gerencia a conexão de API da sessão, portanto Claude Code ignora essas chaves e anota cada chave ignorada no log de depuração da sessão |309| Variáveis de transporte em seu bloco `env` `.claude/settings.json` do repositório, como `NODE_EXTRA_CA_CERTS` e as [variáveis de certificado de cliente mTLS](/docs/pt/network-config#mtls-authentication) | Não | O ambiente de hospedagem gerencia a conexão de API da sessão, portanto Claude Code ignora essas chaves e anota cada chave ignorada no log de depuração da sessão |

310| Chaves de API e tokens para serviços que Claude chama | Em planos Pro e Max, como [credenciais de API](#add-api-credentials) | Você adiciona a chave uma vez no ambiente e o proxy do agente a anexa às solicitações para os hosts que você lista. Uma chave que o proxy do agente [não pode anexar](#requests-that-never-get-the-credential), ou qualquer chave em um plano Team ou Enterprise, fica em uma variável de ambiente |310| Chaves de API e tokens para serviços que Claude chama | Em planos Pro e Max, como [credenciais de API](#add-api-credentials) | Você adiciona a chave uma vez no ambiente e o proxy do agente a anexa às solicitações para os hosts que você lista. Uma chave que o proxy do agente [não pode anexar](#requests-that-never-get-the-credential), ou qualquer chave em um plano Team ou Enterprise, fica em uma variável de ambiente |

commands.md +4 −4

Details

61| `/autocompact [auto\|<tokens>]` | Defina a janela de auto-compactação: o quão cheio fica a janela de contexto antes de Claude Code compactar automaticamente. Passe um tamanho como `500k`, ou `auto` para retornar à janela ajustada para seu modelo. Claude Code salva o valor nas configurações de usuário e o aplica à sessão atual. Consulte [Defina a janela de auto-compactação](/docs/pt/model-config#set-the-auto-compact-window) para valores aceitos e o que a substitui. Sem um argumento, abre um diálogo que mostra a janela atual. Requer Claude Code v2.1.221 ou posterior |61| `/autocompact [auto\|<tokens>]` | Defina a janela de auto-compactação: o quão cheio fica a janela de contexto antes de Claude Code compactar automaticamente. Passe um tamanho como `500k`, ou `auto` para retornar à janela ajustada para seu modelo. Claude Code salva o valor nas configurações de usuário e o aplica à sessão atual. Consulte [Defina a janela de auto-compactação](/docs/pt/model-config#set-the-auto-compact-window) para valores aceitos e o que a substitui. Sem um argumento, abre um diálogo que mostra a janela atual. Requer Claude Code v2.1.221 ou posterior |

62| `/autofix-pr [prompt]` | Inicie uma [sessão em nuvem](/docs/pt/claude-code-on-the-web#auto-fix-pull-requests) que monitora o PR do branch atual e envia correções quando o CI falha ou revisores deixam comentários. Detecta o PR aberto do seu branch verificado com `gh pr view`; para monitorar um PR diferente, primeiro verifique seu branch. Por padrão, a sessão em nuvem é instruída a corrigir todas as falhas de CI e comentários de revisão; passe um prompt para dar instruções diferentes, por exemplo `/autofix-pr only fix lint and type errors`. Requer a CLI `gh` e acesso a [sessões em nuvem](/docs/pt/claude-code-on-the-web) |62| `/autofix-pr [prompt]` | Inicie uma [sessão em nuvem](/docs/pt/claude-code-on-the-web#auto-fix-pull-requests) que monitora o PR do branch atual e envia correções quando o CI falha ou revisores deixam comentários. Detecta o PR aberto do seu branch verificado com `gh pr view`; para monitorar um PR diferente, primeiro verifique seu branch. Por padrão, a sessão em nuvem é instruída a corrigir todas as falhas de CI e comentários de revisão; passe um prompt para dar instruções diferentes, por exemplo `/autofix-pr only fix lint and type errors`. Requer a CLI `gh` e acesso a [sessões em nuvem](/docs/pt/claude-code-on-the-web) |

63| `/background [prompt]` | Desanexe a sessão atual para ser executada como um [agente de fundo](/docs/pt/agent-view) e libere este terminal. Passe um prompt para enviar uma instrução adicional antes de desanexar. Monitore a sessão com `claude agents`. Para copiar a conversa em uma nova sessão de fundo enquanto esta continua em execução, use `/fork`. Alias: `/bg` |63| `/background [prompt]` | Desanexe a sessão atual para ser executada como um [agente de fundo](/docs/pt/agent-view) e libere este terminal. Passe um prompt para enviar uma instrução adicional antes de desanexar. Monitore a sessão com `claude agents`. Para copiar a conversa em uma nova sessão de fundo enquanto esta continua em execução, use `/fork`. Alias: `/bg` |

64| `/batch <instruction>` | **[Skill](/docs/pt/skills#bundled-skills).** Orquestre mudanças em larga escala em um codebase em paralelo. Pesquisa o codebase, decompõe o trabalho em 5 a 30 unidades independentes e apresenta um plano. Uma vez aprovado, inicia um [subagente de fundo](/docs/pt/sub-agents#run-subagents-in-foreground-or-background) por unidade em um [git worktree](/docs/pt/worktrees) isolado. Cada subagente implementa sua unidade, executa testes e abre um pull request. Requer um repositório git. Exemplo: `/batch migrate src/ from JavaScript to TypeScript` |64| `/batch <instruction>` | **[Skill](/docs/pt/skills#bundled-skills).** Orquestre mudanças em larga escala em um codebase em paralelo. Pesquisa o codebase, decompõe o trabalho em 5 a 30 unidades independentes e apresenta um plano. Uma vez aprovado, inicia um [subagente de fundo](/docs/pt/sub-agents#run-subagents-in-foreground-or-background) por unidade em um [worktree](/docs/pt/worktrees) isolado. Cada subagente implementa sua unidade, executa testes e publica sua mudança. Requer um repositório git ou um [hook `WorktreeCreate`](/docs/pt/worktrees#non-git-version-control) que cria os worktrees. Fora de um repositório git, `/batch` requer Claude Code v2.1.281 ou posterior. Exemplo: `/batch migrate src/ from JavaScript to TypeScript` |

65| `/branch [name]` | Crie um branch da conversa atual neste ponto, para que você possa tentar uma direção diferente sem perder a conversa como está. Muda você para o branch e preserva o original, ao qual você pode retornar com `/resume`. Para executar uma cópia como uma [sessão de fundo](/docs/pt/agent-view) separada em vez de mudar para ela, use `/fork`; para entregar uma tarefa lateral a um [subagente](/docs/pt/sub-agents) que relata de volta para esta conversa, use `/subtask` |65| `/branch [name]` | Crie um branch da conversa atual neste ponto, para que você possa tentar uma direção diferente sem perder a conversa como está. Muda você para o branch e preserva o original, ao qual você pode retornar com `/resume`. Para executar uma cópia como uma [sessão de fundo](/docs/pt/agent-view) separada em vez de mudar para ela, use `/fork`; para entregar uma tarefa lateral a um [subagente](/docs/pt/sub-agents) que relata de volta para esta conversa, use `/subtask` |

66| `/btw [question]` | Faça uma [pergunta lateral](/docs/pt/interactive-mode#side-questions-with-%2Fbtw) sobre a sessão atual sem adicionar à conversa. Se você executar `/btw` sem uma pergunta, Claude Code mostra sua pergunta lateral mais recente para que você possa procurar respostas anteriores; se você ainda não fez uma, Claude Code imprime uma linha de uso. Antes da v2.1.212, `/btw` exigia uma pergunta |66| `/btw [question]` | Faça uma [pergunta lateral](/docs/pt/interactive-mode#side-questions-with-%2Fbtw) sobre a sessão atual sem adicionar à conversa. Se você executar `/btw` sem uma pergunta, Claude Code mostra sua pergunta lateral mais recente para que você possa procurar respostas anteriores; se você ainda não fez uma, Claude Code imprime uma linha de uso. Antes da v2.1.212, `/btw` exigia uma pergunta |

67| `/bug [report]` | Relate um bug ou compartilhe sua conversa. Você escolhe quanto histórico de sessão incluir e confirma em uma tela de consentimento antes de qualquer coisa ser enviada. Quando você está conectado ao Anthropic em uma conexão de primeira parte, o relatório vai para Anthropic; em um provedor de terceiros, ou sem credenciais Anthropic, Claude Code escreve o relatório em um [arquivo local sob `~/.claude/feedback-bundles/`](/docs/pt/data-usage#telemetry-services) que você encaminha você mesmo. Na [extensão VS Code](/docs/pt/vs-code#use-the-prompt-box), `/bug` abre o diálogo de feedback próprio da extensão; requer Claude Code v2.1.229 ou posterior. Quando você o executa enquanto Claude está respondendo, Claude Code abre o diálogo imediatamente. Antes da v2.1.232, Claude Code enfileirava o comando até que a volta terminasse. Alias: `/share`. Antes da v2.1.212, `/bug` e `/share` eram aliases de `/feedback` |67| `/bug [report]` | Relate um bug ou compartilhe sua conversa. Você escolhe quanto histórico de sessão incluir e confirma em uma tela de consentimento antes de qualquer coisa ser enviada. Quando você está conectado ao Anthropic em uma conexão de primeira parte, o relatório vai para Anthropic; em um provedor de terceiros, ou sem credenciais Anthropic, Claude Code escreve o relatório em um [arquivo local sob `~/.claude/feedback-bundles/`](/docs/pt/data-usage#telemetry-services) que você encaminha você mesmo. Na [extensão VS Code](/docs/pt/vs-code#use-the-prompt-box), `/bug` abre o diálogo de feedback próprio da extensão; requer Claude Code v2.1.229 ou posterior. Quando você o executa enquanto Claude está respondendo, Claude Code abre o diálogo imediatamente. Antes da v2.1.232, Claude Code enfileirava o comando até que a volta terminasse. Alias: `/share`. Antes da v2.1.212, `/bug` e `/share` eram aliases de `/feedback` |

68| `/cd <path>` | Mova esta sessão para um novo diretório de trabalho, mantendo a conversa. Digite um caminho parcial para ver sugestões de diretório correspondentes; pressione `Tab` para aceitar uma. As sugestões requerem Claude Code v2.1.206 ou posterior. Para o que Claude Code aplica do novo diretório assim que você se move, e como `/cd` difere de `/add-dir`, consulte [Mova a sessão para outro diretório](/docs/pt/permissions#move-the-session-to-another-directory) |68| `/cd <path>` | Mova esta sessão para um novo diretório de trabalho, mantendo a conversa. Digite um caminho parcial para ver sugestões de diretório correspondentes; pressione `Tab` para aceitar uma. As sugestões requerem Claude Code v2.1.206 ou posterior. Para o que Claude Code aplica do novo diretório assim que você se move, e como `/cd` difere de `/add-dir`, consulte [Mova a sessão para outro diretório](/docs/pt/permissions#move-the-session-to-another-directory) |

69| `/chrome` | Configure as configurações de [Claude em Chrome](/docs/pt/chrome) |69| `/chrome` | Configure as configurações de [Claude em Chrome](/docs/pt/chrome) |

70| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb]` | **[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`. Execute `migrate` para atualizar código Claude API existente para um modelo mais novo. Execute `upgrade` para mover a dependência do SDK Anthropic do seu projeto através de uma versão principal, atualmente o pacote Python `anthropic` de 0.x para 1.x. Execute `managed-agents-onboard` para um passo a passo que cria um novo Managed Agent. Execute `prompt-audit` para sinalizar instruções escritas para modelos mais antigos em seus prompts, skills e descrições de ferramentas e propor correções como um diff. Execute `cost-optimize` para perfilar para onde vai o gasto de Claude API do seu projeto e propor economias de opções como prompt caching, aparar tokens de entrada e saída desnecessários, processamento em lote, esforço e escolha de modelo, uma mudança por vez. Execute `build-eval` para construir um conjunto de avaliação para seu aplicativo alimentado por Claude, e `hillclimb` para melhorar iterativamente o aplicativo contra uma avaliação existente. O subcomando `prompt-audit` requer Claude Code v2.1.221 ou posterior, `upgrade` requer v2.1.236 ou posterior, `cost-optimize` requer v2.1.247 ou posterior, e `build-eval` e `hillclimb` requerem v2.1.259 ou posterior |70| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb]` | **[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`. Execute `migrate` para atualizar código Claude API existente para um modelo mais novo. Execute `upgrade` para mover a dependência do SDK Anthropic do seu projeto através de uma versão principal, atualmente o pacote Python `anthropic` de 0.x para 1.x. Execute `managed-agents-onboard` para um passo a passo que cria um novo Managed Agent. Execute `prompt-audit` para sinalizar instruções escritas para modelos mais antigos em seus prompts, skills e descrições de ferramentas e propor correções como um diff. Execute `cost-optimize` para perfilar para onde vai o gasto de Claude API do seu projeto e propor economias de opções como prompt caching, aparar tokens de entrada e saída desnecessários, processamento em lote, esforço e escolha de modelo, uma mudança por vez. Execute `build-eval` para construir um conjunto de avaliação para seu aplicativo alimentado por Claude, e `hillclimb` para melhorar iterativamente o aplicativo contra uma avaliação existente. O subcomando `prompt-audit` requer Claude Code v2.1.221 ou posterior, `upgrade` requer v2.1.236 ou posterior, `cost-optimize` requer v2.1.247 ou posterior, e `build-eval` e `hillclimb` requerem v2.1.259 ou posterior |

71| `/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`. 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). A entrada de retrocesso requer Claude Code v2.1.191 ou posterior. Aliases: `/reset`, `/new` |71| `/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` |

72| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [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 em 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` |72| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [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 em 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` |

73| `/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`); requer Claude Code v2.1.205 ou posterior |73| `/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`); requer Claude Code v2.1.205 ou posterior |

74| `/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) |74| `/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) |


116| `/passes` | Compartilhe uma semana gratuita de Claude Code com amigos. Visível apenas se sua conta for elegível |116| `/passes` | Compartilhe uma semana gratuita de Claude Code com amigos. Visível apenas se sua conta for elegível |

117| `/permissions` | Gerencie regras de permissão de ferramentas permitir, perguntar e negar. Abre um diálogo interativo onde você pode visualizar regras por escopo, adicionar ou remover regras, gerenciar diretórios de trabalho e revisar [negações de modo automático recentes](/docs/pt/auto-mode-config#review-denials). Você também pode visualizar e editar [regras do classificador de modo automático](/docs/pt/auto-mode-config#edit-rules-from-permissions) da aba **Auto mode** do diálogo. Quando você o executa enquanto Claude está respondendo, Claude Code abre o diálogo imediatamente e aplica suas mudanças começando com a próxima chamada de ferramenta do Claude na mesma volta. Antes da v2.1.234, Claude Code enfileirava o comando até que a volta terminasse. Alias: `/allowed-tools` |117| `/permissions` | Gerencie regras de permissão de ferramentas permitir, perguntar e negar. Abre um diálogo interativo onde você pode visualizar regras por escopo, adicionar ou remover regras, gerenciar diretórios de trabalho e revisar [negações de modo automático recentes](/docs/pt/auto-mode-config#review-denials). Você também pode visualizar e editar [regras do classificador de modo automático](/docs/pt/auto-mode-config#edit-rules-from-permissions) da aba **Auto mode** do diálogo. Quando você o executa enquanto Claude está respondendo, Claude Code abre o diálogo imediatamente e aplica suas mudanças começando com a próxima chamada de ferramenta do Claude na mesma volta. Antes da v2.1.234, Claude Code enfileirava o comando até que a volta terminasse. Alias: `/allowed-tools` |

118| `/plan [description]` | Entre no modo de plano diretamente do prompt. Passe uma descrição opcional para entrar no modo de plano e começar imediatamente com essa tarefa, por exemplo `/plan fix the auth bug` |118| `/plan [description]` | Entre no modo de plano diretamente do prompt. Passe uma descrição opcional para entrar no modo de plano e começar imediatamente com essa tarefa, por exemplo `/plan fix the auth bug` |

119| `/plugin [subcommand]` | Gerencie [plugins](/docs/pt/plugins) do Claude Code. Execute sem argumento para abrir o menu de plugin, ou passe um subcomando como `list`, `install`, `enable` ou `disable` para agir diretamente. Claude Code pode ativar um plugin durante a instalação; o [resumo de instalação](/docs/pt/discover-plugins#install-plugins) diz se fez ou se você deve executar `/reload-plugins` |119| `/plugin [subcommand]` | Gerencie [plugins](/docs/pt/plugins/overview) do Claude Code. Execute sem argumento para abrir o menu de plugin, ou passe um subcomando como `list`, `install`, `enable` ou `disable` para agir diretamente. Claude Code pode ativar um plugin durante a instalação; o [resumo de instalação](/docs/pt/plugins/install#install-a-plugin) diz se fez ou se você deve executar `/reload-plugins` |

120| `/powerup` | Descubra recursos do Claude Code através de lições interativas rápidas com demos animadas |120| `/powerup` | Descubra recursos do Claude Code através de lições interativas rápidas com demos animadas |

121| `/pr-comments [PR]` | Removido na v2.1.91. Peça ao Claude diretamente para visualizar comentários de pull request. Em versões anteriores, buscava e exibia comentários de um pull request GitHub; detecta automaticamente o PR para o branch atual, ou passe uma URL ou número de PR. Requer a CLI `gh` |121| `/pr-comments [PR]` | Removido na v2.1.91. Peça ao Claude diretamente para visualizar comentários de pull request. Em versões anteriores, buscava e exibia comentários de um pull request GitHub; detecta automaticamente o PR para o branch atual, ou passe uma URL ou número de PR. Requer a CLI `gh` |

122| `/privacy-settings` | Veja e atualize suas configurações de privacidade. Disponível apenas para assinantes de planos Pro e Max |122| `/privacy-settings` | Veja e atualize suas configurações de privacidade. Disponível apenas para assinantes de planos Pro e Max |


124| `/rate-limit-options` | Mostre maneiras de continuar trabalhando quando um limite de uso claude.ai bloqueia uma solicitação: aguarde e [continue automaticamente quando o limite for redefinido](/docs/pt/interactive-mode#wait-for-a-usage-limit-to-reset), adicione [créditos de uso](/docs/pt/costs#add-usage-credits-to-your-subscription) ou atualize seu plano. Claude Code também pode abrir este menu por conta própria quando você atinge um limite no seu próprio terminal. Consulte [Desative a continuação automática](/docs/pt/interactive-mode#turn-automatic-continue-off). Requer uma assinatura claude.ai. Não aparece no menu de comando; digite-o por completo. As linhas de espera e continuação requerem Claude Code v2.1.234 ou posterior |124| `/rate-limit-options` | Mostre maneiras de continuar trabalhando quando um limite de uso claude.ai bloqueia uma solicitação: aguarde e [continue automaticamente quando o limite for redefinido](/docs/pt/interactive-mode#wait-for-a-usage-limit-to-reset), adicione [créditos de uso](/docs/pt/costs#add-usage-credits-to-your-subscription) ou atualize seu plano. Claude Code também pode abrir este menu por conta própria quando você atinge um limite no seu próprio terminal. Consulte [Desative a continuação automática](/docs/pt/interactive-mode#turn-automatic-continue-off). Requer uma assinatura claude.ai. Não aparece no menu de comando; digite-o por completo. As linhas de espera e continuação requerem Claude Code v2.1.234 ou posterior |

125| `/recap` | Gere um resumo de uma linha da sessão atual sob demanda. Consulte [Recapitulação de sessão](/docs/pt/interactive-mode#session-recap) para o recapitulação automática que aparece depois que você esteve ausente |125| `/recap` | Gere um resumo de uma linha da sessão atual sob demanda. Consulte [Recapitulação de sessão](/docs/pt/interactive-mode#session-recap) para o recapitulação automática que aparece depois que você esteve ausente |

126| `/release-notes` | Veja o changelog em um seletor de versão interativo. Selecione uma versão específica para ver suas notas de lançamento, ou escolha mostrar todas as versões. As notas aparecem em sua transcrição sem entrar na conversa que Claude vê |126| `/release-notes` | Veja o changelog em um seletor de versão interativo. Selecione uma versão específica para ver suas notas de lançamento, ou escolha mostrar todas as versões. As notas aparecem em sua transcrição sem entrar na conversa que Claude vê |

127| `/reload-plugins [--force]` | Recarregue todos os [plugins](/docs/pt/plugins) ativos para aplicar mudanças pendentes sem reiniciar. Relata contagens para cada componente recarregado e sinaliza erros de carregamento. Quando o recarregamento alteraria quais ferramentas MCP são carregadas e invalidaria o cache de prompt, o comando avisa e pula a menos que você passe `--force`. Também disponível em modo não interativo (`-p`), o Agent SDK e o aplicativo de desktop, onde é executado apenas em entrada digitada diretamente na sessão e não aplica mudanças de servidor MCP de plugin; requer Claude Code v2.1.260 ou posterior. Consulte [Aplique mudanças de plugin sem reiniciar](/docs/pt/discover-plugins#apply-plugin-changes-without-restarting) |127| `/reload-plugins [--force]` | Recarregue todos os [plugins](/docs/pt/plugins/overview) ativos para aplicar mudanças pendentes sem reiniciar. Relata contagens para cada componente recarregado e sinaliza erros de carregamento. Quando o recarregamento alteraria quais ferramentas MCP são carregadas e invalidaria o cache de prompt, o comando avisa e pula a menos que você passe `--force`. Também disponível em modo não interativo (`-p`), o Agent SDK e o aplicativo de desktop, onde é executado apenas em entrada digitada diretamente na sessão e não aplica mudanças de servidor MCP de plugin; requer Claude Code v2.1.260 ou posterior. Consulte [Aplique mudanças de plugin sem reiniciar](/docs/pt/plugins/cli-reference#reload-plugins) |

128| `/reload-skills` | Rescaneie diretórios de [skill](/docs/pt/skills) e comando para que skills adicionadas ou alteradas no disco durante a sessão fiquem disponíveis sem reiniciar. Relata quantas skills estão disponíveis e quantas foram adicionadas ou removidas |128| `/reload-skills` | Rescaneie diretórios de [skill](/docs/pt/skills) e comando para que skills adicionadas ou alteradas no disco durante a sessão fiquem disponíveis sem reiniciar. Relata quantas skills estão disponíveis e quantas foram adicionadas ou removidas |

129| `/remote-control` | Disponibilize esta sessão para [Remote Control](/docs/pt/remote-control) de claude.ai. Executá-lo enquanto desconectado imprime que Remote Control requer uma assinatura claude.ai e diz como conectar; antes da v2.1.206 relatava `Unknown command: /remote-control`. Alias: `/rc` |129| `/remote-control` | Disponibilize esta sessão para [Remote Control](/docs/pt/remote-control) de claude.ai. Executá-lo enquanto desconectado imprime que Remote Control requer uma assinatura claude.ai e diz como conectar; antes da v2.1.206 relatava `Unknown command: /remote-control`. Alias: `/rc` |

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

Details

110 110 

111 * Seja específico sobre o que você está procurando111 * Seja específico sobre o que você está procurando

112 * Use linguagem de domínio do projeto112 * Use linguagem de domínio do projeto

113 * Instale um [plugin de inteligência de código](/docs/pt/discover-plugins#code-intelligence) para sua linguagem para dar ao Claude navegação precisa de "ir para definição" e "encontrar referências"113 * Instale um [plugin de inteligência de código](/docs/pt/plugins/code-intelligence) para sua linguagem para dar ao Claude navegação precisa de "ir para definição" e "encontrar referências"

114</Tip>114</Tip>

115 115 

116***116***

costs.md +1 −1

Details

290 Instale plugins de inteligência de código para linguagens tipadas290 Instale plugins de inteligência de código para linguagens tipadas

291</h3>291</h3>

292 292 

293[Plugins de inteligência de código](/docs/pt/discover-plugins#code-intelligence) dão a Claude navegação de símbolo precisa em vez de busca baseada em texto, reduzindo leituras de arquivo desnecessárias ao explorar código desconhecido. Uma única chamada "ir para definição" substitui o que poderia ser um grep seguido de leitura de múltiplos arquivos candidatos. Servidores de linguagem instalados também relatam erros de tipo automaticamente após edições, portanto Claude detecta erros sem executar um compilador.293[Plugins de inteligência de código](/docs/pt/plugins/code-intelligence) dão a Claude navegação de símbolo precisa em vez de busca baseada em texto, reduzindo leituras de arquivo desnecessárias ao explorar código desconhecido. Uma única chamada "ir para definição" substitui o que poderia ser um grep seguido de leitura de múltiplos arquivos candidatos. Servidores de linguagem instalados também relatam erros de tipo automaticamente após edições, portanto Claude detecta erros sem executar um compilador.

294 294 

295<h3 id="offload-processing-to-hooks-and-skills">295<h3 id="offload-processing-to-hooks-and-skills">

296 Descarregue o processamento para hooks e skills296 Descarregue o processamento para hooks e skills

Details

109| Hook nunca dispara | `matcher` é um array JSON em vez de uma string | Use uma única string com `\|` para corresponder a várias ferramentas, por exemplo `"Edit\|Write"`. Consulte [padrões de matcher](/docs/pt/hooks#matcher-patterns). |109| Hook nunca dispara | `matcher` é um array JSON em vez de uma string | Use uma única string com `\|` para corresponder a várias ferramentas, por exemplo `"Edit\|Write"`. Consulte [padrões de matcher](/docs/pt/hooks#matcher-patterns). |

110| Hook nunca dispara | `matcher` usa `,` como separador em uma versão anterior a v2.1.191 | Claude Code v2.1.191 ou posterior trata `,` como um separador de lista como `\|`. Versões anteriores avaliam uma vírgula como um caractere literal, então `"Edit,Write"` não corresponde a nada. Use `\|` em vez disso, ou atualize Claude Code. |110| Hook nunca dispara | `matcher` usa `,` como separador em uma versão anterior a v2.1.191 | Claude Code v2.1.191 ou posterior trata `,` como um separador de lista como `\|`. Versões anteriores avaliam uma vírgula como um caractere literal, então `"Edit,Write"` não corresponde a nada. Use `\|` em vez disso, ou atualize Claude Code. |

111| Hook nunca dispara | O valor de `matcher` está em minúsculas, por exemplo `"bash"` | A correspondência diferencia maiúsculas de minúsculas. Os nomes das ferramentas são capitalizados: `Bash`, `Edit`, `Write`, `Read`. |111| Hook nunca dispara | O valor de `matcher` está em minúsculas, por exemplo `"bash"` | A correspondência diferencia maiúsculas de minúsculas. Os nomes das ferramentas são capitalizados: `Bash`, `Edit`, `Write`, `Read`. |

112| Hook nunca dispara | Hooks estão definidos em um arquivo autônomo em vez de em `settings.json` | Não há arquivo de hooks autônomo para configuração de projeto ou usuário. Defina hooks sob a chave `"hooks"` em `settings.json`. Apenas [plugins](/docs/pt/plugins-reference#hooks) carregam um `hooks/hooks.json` separado. Consulte [configuração de hook](/docs/pt/hooks). |112| Hook nunca dispara | Hooks estão definidos em um arquivo autônomo em vez de em `settings.json` | Não há arquivo de hooks autônomo para configuração de projeto ou usuário. Defina hooks sob a chave `"hooks"` em `settings.json`. Apenas [plugins](/docs/pt/plugins/components#hooks) carregam um `hooks/hooks.json` separado. Consulte [configuração de hook](/docs/pt/hooks). |

113| Permissões, hooks ou env definidos globalmente são ignorados | A configuração foi adicionada a `~/.claude.json` | `~/.claude.json` contém estado do aplicativo e alternâncias de UI. `permissions`, `hooks` e `env` pertencem a `~/.claude/settings.json`. Estes são dois arquivos diferentes. |113| Permissões, hooks ou env definidos globalmente são ignorados | A configuração foi adicionada a `~/.claude.json` | `~/.claude.json` contém estado do aplicativo e alternâncias de UI. `permissions`, `hooks` e `env` pertencem a `~/.claude/settings.json`. Estes são dois arquivos diferentes. |

114| Um valor de `settings.json` parece ser ignorado | A mesma chave está definida em `settings.local.json` | `settings.local.json` substitui `settings.json`, e ambos substituem `~/.claude/settings.json`. Consulte [precedência de configurações](/docs/pt/settings#settings-precedence). |114| Um valor de `settings.json` parece ser ignorado | A mesma chave está definida em `settings.local.json` | `settings.local.json` substitui `settings.json`, e ambos substituem `~/.claude/settings.json`. Consulte [precedência de configurações](/docs/pt/settings#settings-precedence). |

115| Skill não aparece em `/skills` | O arquivo de skill está em `.claude/skills/name.md` em vez de em uma pasta | Use uma pasta com `SKILL.md` dentro: `.claude/skills/name/SKILL.md`. |115| Skill não aparece em `/skills` | O arquivo de skill está em `.claude/skills/name.md` em vez de em uma pasta | Use uma pasta com `SKILL.md` dentro: `.claude/skills/name/SKILL.md`. |

desktop.md +6 −6

Details

472 472 

473Conecte serviços externos, adicione fluxos de trabalho reutilizáveis, customize o comportamento de Claude e configure servidores de visualização. Para gerenciar conectores, skills e plugins em um único lugar, clique em **Customize** na barra lateral. A aba [Cowork](https://claude.com/product/cowork) no aplicativo Desktop obtém seus skills, plugins e conectores dessa configuração de Customize, que sincroniza através de sua conta claude.ai, não do diretório `~/.claude` da CLI.473Conecte serviços externos, adicione fluxos de trabalho reutilizáveis, customize o comportamento de Claude e configure servidores de visualização. Para gerenciar conectores, skills e plugins em um único lugar, clique em **Customize** na barra lateral. A aba [Cowork](https://claude.com/product/cowork) no aplicativo Desktop obtém seus skills, plugins e conectores dessa configuração de Customize, que sincroniza através de sua conta claude.ai, não do diretório `~/.claude` da CLI.

474 474 

475Claude Code também carrega os skills e plugins habilitados para sua conta claude.ai em sessões de terminal onde você se conecta com a mesma conta. Veja [Skills sincronizados de claude.ai](/docs/pt/skills#how-synced-skills-behave) e [Plugins sincronizados de claude.ai](/docs/pt/plugins-reference#synced-plugins).475Claude Code também carrega os skills e plugins habilitados para sua conta claude.ai em sessões de terminal onde você se conecta com a mesma conta. Veja [Skills sincronizados de claude.ai](/docs/pt/skills#how-synced-skills-behave) e [Plugins sincronizados de claude.ai](/docs/pt/plugins/loading#synced-plugins).

476 476 

477<h3 id="connect-external-tools">477<h3 id="connect-external-tools">

478 Conectar ferramentas externas478 Conectar ferramentas externas


490 Use skills490 Use skills

491</h3>491</h3>

492 492 

493[Skills](/docs/pt/skills) estendem o que Claude pode fazer. Claude as carrega automaticamente quando relevante, ou você pode invocar uma diretamente: digite `/` na caixa de prompt ou clique no botão **+** e selecione **Slash commands** para navegar pelo que está disponível. Isso inclui [comandos integrados](/docs/pt/commands), suas [skills personalizadas](/docs/pt/skills#create-your-first-skill), skills de projeto de sua base de código e skills de qualquer [plugins instalados](/docs/pt/plugins). Selecione uma e ela aparece destacada no campo de entrada. Digite sua tarefa depois dela e envie como usual.493[Skills](/docs/pt/skills) estendem o que Claude pode fazer. Claude as carrega automaticamente quando relevante, ou você pode invocar uma diretamente: digite `/` na caixa de prompt ou clique no botão **+** e selecione **Slash commands** para navegar pelo que está disponível. Isso inclui [comandos integrados](/docs/pt/commands), suas [skills personalizadas](/docs/pt/skills#create-your-first-skill), skills de projeto de sua base de código e skills de qualquer [plugins instalados](/docs/pt/plugins/install). Selecione uma e ela aparece destacada no campo de entrada. Digite sua tarefa depois dela e envie como usual.

494 494 

495Você pode enviar um comando enquanto Claude está trabalhando, da mesma forma que qualquer outra mensagem, e a sessão retorna ao estado ocioso uma vez que a rodada termina. Antes da v2.1.206, um comando enviado no meio da rodada poderia deixar a sessão mostrando como em execução e as mensagens que você enviou depois não eram entregues.495Você pode enviar um comando enquanto Claude está trabalhando, da mesma forma que qualquer outra mensagem, e a sessão retorna ao estado ocioso uma vez que a rodada termina. Antes da v2.1.206, um comando enviado no meio da rodada poderia deixar a sessão mostrando como em execução e as mensagens que você enviou depois não eram entregues.

496 496 


502 Instalar plugins502 Instalar plugins

503</h3>503</h3>

504 504 

505[Plugins](/docs/pt/plugins) são pacotes reutilizáveis que adicionam skills, agents, hooks, MCP servers e configurações LSP ao Claude Code. Você pode instalar plugins do aplicativo desktop sem usar o terminal.505[Plugins](/docs/pt/plugins/overview) são pacotes reutilizáveis que adicionam skills, agents, hooks, MCP servers e configurações LSP ao Claude Code. Você pode instalar plugins do aplicativo desktop sem usar o terminal.

506 506 

507Para sessões locais e [SSH](#ssh-sessions), clique no botão **+** ao lado da caixa de prompt e selecione **Plugins** para ver seus plugins instalados e seus skills. Para adicionar um plugin, selecione **Add plugin** no submenu para abrir o navegador de plugins, que mostra plugins disponíveis de seus [marketplaces](/docs/pt/plugin-marketplaces) configurados incluindo o marketplace oficial da Anthropic. Selecione **Manage plugins** para ativar, desativar ou desinstalar plugins.507Para sessões locais e [SSH](#ssh-sessions), clique no botão **+** ao lado da caixa de prompt e selecione **Plugins** para ver seus plugins instalados e seus skills. Para adicionar um plugin, selecione **Add plugin** no submenu para abrir o navegador de plugins, que mostra plugins disponíveis de seus [marketplaces](/docs/pt/plugins/overview) configurados incluindo o marketplace oficial da Anthropic. Selecione **Manage plugins** para ativar, desativar ou desinstalar plugins.

508 508 

509Você pode escopar plugins para sua conta de usuário, um projeto específico ou apenas local. Se sua organização gerencia plugins centralmente, esses plugins estão disponíveis em sessões desktop da mesma forma que estão no CLI.509Você pode escopar plugins para sua conta de usuário, um projeto específico ou apenas local. Se sua organização gerencia plugins centralmente, esses plugins estão disponíveis em sessões desktop da mesma forma que estão no CLI.

510 510 

511O navegador de plugins não está disponível em sessões cloud, e plugins que você instala do aplicativo desktop não estão disponíveis para sessões cloud. Uma sessão cloud também não instala plugins que o `.claude/settings.json` do repositório declara, como [O que é transferido de sua configuração](/docs/pt/cloud-environments#what-carries-over-from-your-setup) explica. Para usar um plugin em uma sessão cloud, habilite-o para sua conta claude.ai para que Claude Code o carregue como um [plugin sincronizado](/docs/pt/plugins-reference#synced-plugins). Plugins não estão disponíveis em sessões WSL. Para a referência completa de plugins incluindo criar seus próprios plugins, veja [plugins](/docs/pt/plugins).511O navegador de plugins não está disponível em sessões cloud, e plugins que você instala do aplicativo desktop não estão disponíveis para sessões cloud. Uma sessão cloud também não instala plugins que o `.claude/settings.json` do repositório declara, como [O que é transferido de sua configuração](/docs/pt/cloud-environments#what-carries-over-from-your-setup) explica. Plugins não estão disponíveis em sessões WSL. Para a referência completa de plugins incluindo criar seus próprios plugins, veja [plugins](/docs/pt/plugins/overview).

512 512 

513<h3 id="configure-preview-servers">513<h3 id="configure-preview-servers">

514 Configurar servidores de visualização514 Configurar servidores de visualização


1023| Modos de permissão | Todos os modos incluindo `dontAsk` | Manual, Aceitar edições, Plan e Auto. Bypass permissions aparece no seletor de modo uma vez habilitado: através do toggle Configurações em planos Pro e Max, ou através da política organizacional em planos Team e Enterprise |1023| Modos de permissão | Todos os modos incluindo `dontAsk` | Manual, Aceitar edições, Plan e Auto. Bypass permissions aparece no seletor de modo uma vez habilitado: através do toggle Configurações em planos Pro e Max, ou através da política organizacional em planos Team e Enterprise |

1024| [Provedores de terceiros](/docs/pt/third-party-integrations) | Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry | API da Anthropic por padrão. Para roteamento de gateway, veja [conectar o aplicativo desktop a um gateway](/docs/pt/llm-gateway-connect#desktop-app). Para executar a aba Code em Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry ou um gateway LLM auto-hospedado, veja [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview). |1024| [Provedores de terceiros](/docs/pt/third-party-integrations) | Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry | API da Anthropic por padrão. Para roteamento de gateway, veja [conectar o aplicativo desktop a um gateway](/docs/pt/llm-gateway-connect#desktop-app). Para executar a aba Code em Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry ou um gateway LLM auto-hospedado, veja [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview). |

1025| [MCP servers](/docs/pt/mcp) | Configure em arquivos de configuração | UI de Connectors para sessões locais e SSH, ou arquivos de configuração |1025| [MCP servers](/docs/pt/mcp) | Configure em arquivos de configuração | UI de Connectors para sessões locais e SSH, ou arquivos de configuração |

1026| [Plugins](/docs/pt/plugins) | Comando `/plugin` | UI do gerenciador de plugins |1026| [Plugins](/docs/pt/plugins/overview) | Comando `/plugin` | UI do gerenciador de plugins |

1027| @mention de arquivos | Baseado em texto | Com autocompletar; sessões locais e SSH apenas |1027| @mention de arquivos | Baseado em texto | Com autocompletar; sessões locais e SSH apenas |

1028| Anexos de arquivo | Não disponível | Imagens, PDFs |1028| Anexos de arquivo | Não disponível | Imagens, PDFs |

1029| Isolamento de sessão | Flag [`--worktree`](/docs/pt/cli-reference) | Opção **worktree** ao iniciar uma sessão |1029| Isolamento de sessão | Flag [`--worktree`](/docs/pt/cli-reference) | Opção **worktree** ao iniciar uma sessão |

discover-plugins.md +0 −651 deleted

File Deleted View Diff

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# Descubra e instale plugins pré-construídos através de marketplaces

6 

7> Encontre e instale plugins de marketplaces para estender Claude Code com novas skills, agentes e capacidades.

8 

9Plugins estendem Claude Code com skills, agentes, hooks e MCP servers. Marketplaces de plugins são catálogos que ajudam você a descobrir e instalar essas extensões sem construí-las você mesmo.

10 

11Você também pode ativar plugins no claude.ai, para você mesmo ou através de sua organização. Claude Code sincroniza aqueles em suas sessões sem uma instalação de marketplace, como [Plugins sincronizados do claude.ai](/docs/pt/plugins-reference#synced-plugins) descreve.

12 

13Procurando criar e distribuir seu próprio marketplace? Veja [Criar e distribuir um marketplace de plugins](/docs/pt/plugin-marketplaces).

14 

15<h2 id="how-marketplaces-work">

16 Como os marketplaces funcionam

17</h2>

18 

19Um marketplace é um catálogo de plugins que alguém criou e compartilhou. Usar um marketplace é um processo de duas etapas:

20 

21<Steps>

22 <Step title="Adicione o marketplace">

23 Isso registra o catálogo com Claude Code para que você possa navegar o que está disponível. Nenhum plugin é instalado ainda.

24 </Step>

25 

26 <Step title="Instale plugins individuais">

27 Navegue pelo catálogo e instale os plugins que você deseja.

28 </Step>

29</Steps>

30 

31<h2 id="official-anthropic-marketplace">

32 Marketplace oficial da Anthropic

33</h2>

34 

35O Claude Code adiciona automaticamente o marketplace oficial da Anthropic (`claude-plugins-official`) na primeira vez que você o inicia interativamente. Se o Claude Code não conseguir adicioná-lo, por exemplo porque sua rede bloqueia o download ou uma [política de marketplace](/docs/pt/plugin-marketplaces#managed-marketplace-restrictions) bloqueou uma tentativa anterior, adicione-o você mesmo com `/plugin marketplace add anthropics/claude-plugins-official`.

36 

37Para navegar o que está disponível, execute `/plugin` e vá para a aba **Discover**, ou visualize o catálogo em [claude.com/plugins](https://claude.com/plugins).

38 

39Para instalar um plugin do marketplace oficial, use `/plugin install <name>@claude-plugins-official`. Por exemplo, para instalar a integração do GitHub:

40 

41```shell theme={null}

42/plugin install github@claude-plugins-official

43```

44 

45`/plugin` abre um painel interativo no CLI do terminal. Se Claude responder que `/plugin` não está disponível neste ambiente, instale o plugin de outra forma:

46 

47* **Aplicativo desktop do Claude**: use o [navegador de plugins](/docs/pt/desktop#install-plugins).

48* **Extensão VS Code**: instale a partir do [diálogo **Manage plugins**](/docs/pt/vs-code#manage-plugins).

49* **Sessões na nuvem**: ative o plugin para sua conta claude.ai para que o Claude Code o carregue como um [plugin sincronizado](/docs/pt/plugins-reference#synced-plugins).

50 

51Se a instalação falhar, corresponda a mensagem que o Claude Code relata:

52 

53* `Marketplace "claude-plugins-official" not found`: adicione o marketplace com `/plugin marketplace add anthropics/claude-plugins-official`, depois tente instalar novamente.

54* O plugin [não foi encontrado no marketplace](#install-plugins): verifique o nome do plugin.

55 

56<Note>

57 O marketplace oficial é mantido pela Anthropic, e a inclusão é a critério da Anthropic. Os formulários de envio no aplicativo adicionam plugins ao [marketplace da comunidade](#community-marketplace), não ao oficial. Para distribuir plugins independentemente, [crie seu próprio marketplace](/docs/pt/plugin-marketplaces) e compartilhe com usuários.

58</Note>

59 

60O marketplace oficial inclui várias categorias de plugins:

61 

62<h3 id="code-intelligence">

63 Code intelligence

64</h3>

65 

66Plugins de code intelligence habilitam a ferramenta LSP integrada do Claude Code, dando a Claude a capacidade de pular para definições, encontrar referências e ver erros de tipo imediatamente após edições. Esses plugins configuram conexões do [Language Server Protocol](https://microsoft.github.io/language-server-protocol/), a mesma tecnologia que alimenta a code intelligence do VS Code. Em [sessões na nuvem](/docs/pt/claude-code-on-the-web), o Claude Code não inicia servidores de linguagem de plugins, então Claude não obtém a ferramenta LSP lá.

67 

68Instale o binário do language server da tabela abaixo antes de usar esses plugins; o plugin não o instala para você. Se você já tem um language server instalado, Claude pode solicitar que você instale o plugin correspondente quando abrir um projeto.

69 

70| Linguagem | Plugin | Binário necessário |

71| :--------- | :------------------ | :--------------------------- |

72| C/C++ | `clangd-lsp` | `clangd` |

73| C# | `csharp-lsp` | `csharp-ls` |

74| Go | `gopls-lsp` | `gopls` |

75| Java | `jdtls-lsp` | `jdtls` |

76| Kotlin | `kotlin-lsp` | `kotlin-language-server` |

77| Lua | `lua-lsp` | `lua-language-server` |

78| PHP | `php-lsp` | `intelephense` |

79| Python | `pyright-lsp` | `pyright-langserver` |

80| Rust | `rust-analyzer-lsp` | `rust-analyzer` |

81| Swift | `swift-lsp` | `sourcekit-lsp` |

82| TypeScript | `typescript-lsp` | `typescript-language-server` |

83 

84Você também pode [criar seu próprio plugin LSP](/docs/pt/plugins-reference#lsp-servers) para outras linguagens.

85 

86<Note>

87 Se você vir `Executable not found in $PATH` na aba Errors do `/plugin` após instalar um plugin, instale o binário que a tabela [code intelligence](#code-intelligence) lista para esse plugin.

88</Note>

89 

90<h4 id="what-claude-gains-from-code-intelligence-plugins">

91 O que Claude ganha com plugins de code intelligence

92</h4>

93 

94Uma vez que um plugin de code intelligence está instalado e seu binário de language server está disponível, Claude ganha duas capacidades:

95 

96* **Diagnósticos automáticos**: após cada edição de arquivo que Claude faz, o language server relata erros e avisos de volta, então Claude vê erros de tipo, importações faltantes e problemas de sintaxe sem executar um compilador ou linter. Se Claude introduzir um erro, ele percebe e corrige na mesma volta.

97* **Navegação de código**: Claude pode usar o language server para pular para definições, encontrar referências, obter informações de tipo ao passar o mouse, listar símbolos, encontrar implementações e rastrear hierarquias de chamadas. Essas operações dão a Claude navegação mais precisa do que busca baseada em grep, embora a disponibilidade possa variar por linguagem e ambiente.

98 

99Você não precisa configurar diagnósticos além de instalar o plugin. Para lê-los você mesmo, pressione **Ctrl+O** quando o Claude Code mostrar um indicador como **Found 3 new diagnostic issues in 2 files**.

100 

101Se você encontrar problemas, veja [Troubleshooting de code intelligence](#code-intelligence-issues).

102 

103<h3 id="external-integrations">

104 Integrações externas

105</h3>

106 

107Esses plugins agrupam [MCP servers](/docs/pt/mcp) pré-configurados para que você possa conectar Claude a serviços externos sem configuração manual:

108 

109* **Controle de fonte**: `github`, `gitlab`

110* **Gerenciamento de projetos**: `atlassian` (Jira/Confluence), `asana`, `linear`, `notion`

111* **Design**: `figma`

112* **Infraestrutura**: `vercel`, `firebase`, `supabase`

113* **Comunicação**: `slack`

114* **Monitoramento**: `sentry`

115 

116<h3 id="automatic-security-review">

117 Revisão automática de segurança

118</h3>

119 

120O plugin `security-guidance` revisa cada mudança que Claude faz em busca de vulnerabilidades comuns e instrui Claude a corrigir o que encontra na mesma sessão. Veja [Catch security issues as Claude writes code](/docs/pt/security-guidance) para o que ele verifica e como adicionar regras específicas do projeto.

121 

122<h3 id="development-workflows">

123 Fluxos de trabalho de desenvolvimento

124</h3>

125 

126Plugins que adicionam skills e agentes para tarefas comuns de desenvolvimento:

127 

128* **commit-commands**: Fluxos de trabalho de commit do Git incluindo commit, push e criação de PR

129* **pr-review-toolkit**: Agentes especializados para revisar pull requests

130* **agent-sdk-dev**: Ferramentas para construir com o Claude Agent SDK

131* **plugin-dev**: Toolkit para criar seus próprios plugins

132 

133<h3 id="output-styles">

134 Estilos de saída

135</h3>

136 

137Customize como Claude responde:

138 

139* **explanatory-output-style**: Insights educacionais sobre escolhas de implementação

140* **learning-output-style**: Modo de aprendizado interativo para construção de skills

141 

142<h2 id="community-marketplace">

143 Marketplace da comunidade

144</h2>

145 

146O marketplace da comunidade em [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community) hospeda plugins de terceiros que passaram pela validação automatizada da Anthropic e triagem de segurança. Cada plugin é fixado a um SHA de commit específico no catálogo. Diferentemente do marketplace oficial, você o adiciona manualmente:

147 

148```shell theme={null}

149/plugin marketplace add anthropics/claude-plugins-community

150```

151 

152Depois instale plugins dele usando o nome de marketplace `claude-community`:

153 

154```shell theme={null}

155/plugin install <plugin-name>@claude-community

156```

157 

158Para enviar seu próprio plugin para o marketplace da comunidade, veja [Envie seu plugin para o marketplace da comunidade](/docs/pt/plugins#submit-your-plugin-to-the-community-marketplace) no guia de criação de plugins.

159 

160<h2 id="try-it-add-the-demo-marketplace">

161 Experimente: adicione o marketplace de demonstração

162</h2>

163 

164Anthropic também mantém um [marketplace de plugins de demonstração](https://github.com/anthropics/claude-code/tree/main/plugins) (`claude-code-plugins`) com plugins de exemplo que mostram o que é possível com o sistema de plugins. Diferentemente do marketplace oficial, você precisa adicionar este manualmente.

165 

166<Steps>

167 <Step title="Adicione o marketplace">

168 De dentro do Claude Code, execute o comando `plugin marketplace add` para o marketplace `anthropics/claude-code`:

169 

170 ```shell theme={null}

171 /plugin marketplace add anthropics/claude-code

172 ```

173 

174 Isso baixa o catálogo do marketplace e torna seus plugins disponíveis para você.

175 </Step>

176 

177 <Step title="Navegue pelos plugins disponíveis">

178 Execute `/plugin` para abrir o gerenciador de plugins. Isso abre uma interface com abas que você pode percorrer usando **Tab**, ou **Shift+Tab** para ir para trás:

179 

180 * **Discover**: navegue pelos plugins disponíveis de todos os seus marketplaces

181 * **Installed**: visualize e gerencie seus plugins instalados

182 * **Marketplaces**: adicione, remova ou atualize seus marketplaces adicionados

183 * **Errors**: visualize quaisquer erros de carregamento de plugins

184 * **Stats**: veja [quanto cada uma de suas skills custa em contexto e com que frequência é usada](/docs/pt/skills#find-unused-skills), em sessões onde `/skill-doctor` está disponível

185 

186 Vá para a aba **Discover** para ver plugins do marketplace que você acabou de adicionar. Quando seu administrador tiver adicionado o marketplace à lista de permissões por meio da configuração gerenciada [`pluginSuggestionMarketplaces`](/docs/pt/settings-reference#pluginsuggestionmarketplaces), plugins marcados como relevantes para seu diretório de trabalho atual são fixados no topo com um rótulo **suggested for this directory**.

187 </Step>

188 

189 <Step title="Instale um plugin">

190 Selecione um plugin para visualizar seus detalhes. O painel de detalhes mostra o que o plugin contém e quanto custa:

191 

192 * Uma estimativa de **Context cost** para que você possa ver quantos tokens o plugin adicionará à sua [janela de contexto](/docs/pt/features-overview#understand-context-costs) a cada turno

193 * A data de **Last updated** do plugin

194 * Uma seção **Will install** listando os comandos, agentes, skills, hooks e servidores MCP e LSP do plugin, para que você possa revisar exatamente o que ele adiciona antes de instalar

195 

196 Nem todo plugin fornece os dados por trás desses campos. Para plugins de marketplaces locais ou personalizados, você pode não ver as linhas **Context cost** e **Last updated**, e a seção **Will install** pode mostrar **Components will be discovered at installation** em vez disso.

197 

198 Escolha um escopo de instalação:

199 

200 * **User scope**: instale para você em todos os projetos

201 * **Project scope**: instale para todos os colaboradores neste repositório

202 * **Local scope**: instale para você neste repositório apenas

203 

204 Por exemplo, selecione **commit-commands**, um plugin que adiciona skills de fluxo de trabalho git, e instale-o no seu escopo de usuário.

205 

206 Você também pode iniciar a instalação a partir da linha de comando:

207 

208 ```shell theme={null}

209 /plugin install commit-commands@claude-code-plugins

210 ```

211 

212 Veja [Settings files](/docs/pt/settings#where-settings-live) para aprender mais sobre escopos.

213 </Step>

214 

215 <Step title="Use seu novo plugin">

216 Se o resumo da instalação relatar `Run /reload-plugins to activate.`, Claude Code então executa esse recarregamento para você. Se o recarregamento avisar que sua próxima mensagem releria a conversa, execute `/reload-plugins --force` para ativar o plugin.

217 

218 Skills de plugin são nomeadas com namespace pelo nome do plugin, então **commit-commands** fornece skills como `/commit-commands:commit`.

219 

220 Experimente fazendo uma mudança em um arquivo e executando:

221 

222 ```shell theme={null}

223 /commit-commands:commit

224 ```

225 

226 Isso prepara suas mudanças, gera uma mensagem de commit e cria o commit.

227 

228 Cada plugin funciona diferentemente. Verifique os detalhes do plugin na aba **Discover** para ver os comandos e skills que ele fornece, ou visite sua página inicial para orientação de uso.

229 </Step>

230</Steps>

231 

232<h2 id="add-marketplaces">

233 Adicione marketplaces

234</h2>

235 

236Use o comando `/plugin marketplace add` para adicionar marketplaces de diferentes fontes.

237 

238<Tip>

239 **Atalhos**: Você pode usar `/plugin market` em vez de `/plugin marketplace` e `rm` em vez de `remove`.

240</Tip>

241 

242* **Repositórios GitHub**: formato `owner/repo`, por exemplo `anthropics/claude-code`

243* **URLs Git**: qualquer URL de repositório git, incluindo GitLab, Bitbucket e servidores auto-hospedados

244* **Caminhos locais**: diretórios ou caminhos diretos para arquivos `marketplace.json`

245* **URLs remotas**: URLs diretas para arquivos `marketplace.json` hospedados

246* **claude.ai**: marketplaces hospedados em claude.ai para sua conta, como a biblioteca de plugins da sua organização, que você [adiciona pelo nome na aba **Marketplaces** ou seu shell](#add-from-claude-ai) em vez de pela fonte

247 

248<h3 id="add-from-github">

249 Adicione do GitHub

250</h3>

251 

252Adicione um repositório GitHub que contém um arquivo `.claude-plugin/marketplace.json` usando o formato `owner/repo`, onde `owner` é o nome de usuário ou organização do GitHub e `repo` é o nome do repositório.

253 

254Por exemplo, `anthropics/claude-code` refere-se ao repositório `claude-code` de propriedade de `anthropics`:

255 

256```shell theme={null}

257/plugin marketplace add anthropics/claude-code

258```

259 

260<h3 id="add-from-other-git-hosts">

261 Adicione de outros hosts Git

262</h3>

263 

264Adicione um repositório git marketplace fornecendo sua URL completa. Para uma URL `https://`, se deve incluir o sufixo `.git` depende do host:

265 

266* **`github.com` e `gitlab.com`**: Claude Code reconhece uma URL de repositório com ou sem o sufixo `.git` e a clona. Adicionar uma URL `gitlab.com` sem o sufixo requer Claude Code v2.1.232 ou posterior. Antes de v2.1.232, Claude Code a tratava como um link direto para um arquivo `marketplace.json` hospedado.

267* **Azure DevOps**: omita o sufixo. Claude Code clona qualquer URL cujo caminho contém `/_git/`. Se você acrescentar `.git` a um caminho `/_git/`, o clone falha.

268* **Todos os outros hosts, incluindo servidores GitLab auto-gerenciados**: inclua o sufixo `.git` para que Claude Code clone o repositório em vez de tratar a URL como um link direto para um arquivo `marketplace.json` hospedado. Para um host cujas URLs de clone não carregam o sufixo, como AWS CodeCommit, adicione o marketplace como uma entrada git em [`extraKnownMarketplaces`](/docs/pt/settings-reference#extraknownmarketplaces). Claude Code clona uma entrada git independentemente de sua URL terminar em `.git` ou não.

269 

270Claude Code também clona uma URL `gitlab.com` com subgrupos aninhados, como `https://gitlab.com/group/subgroup/project`.

271 

272Inclua o prefixo `https://`. Claude Code v2.1.196 e posterior rejeitam um host digitado sem ele, como `gitlab.com/company/plugins.git`, como um atalho `owner/repo` do GitHub inválido, e a mensagem de erro informa para adicionar o prefixo. Versões anteriores o interpretam incorretamente como um caminho de repositório do GitHub e falham no momento do clone.

273 

274Usando HTTPS:

275 

276```shell theme={null}

277/plugin marketplace add https://gitlab.com/company/plugins.git

278```

279 

280Usando SSH:

281 

282```shell theme={null}

283/plugin marketplace add git@gitlab.com:company/plugins.git

284```

285 

286Claude Code clona um endereço SSH independentemente de terminar em `.git` ou não.

287 

288Para adicionar um branch ou tag específico, acrescente `#` seguido pela ref:

289 

290```shell theme={null}

291/plugin marketplace add https://gitlab.com/company/plugins.git#v1.0.0

292```

293 

294<h3 id="add-from-local-paths">

295 Adicione de caminhos locais

296</h3>

297 

298Adicione um diretório local que contém um arquivo `.claude-plugin/marketplace.json`:

299 

300```shell theme={null}

301/plugin marketplace add ./my-marketplace

302```

303 

304Você também pode adicionar um caminho direto para um arquivo `marketplace.json`:

305 

306```shell theme={null}

307/plugin marketplace add ./path/to/marketplace.json

308```

309 

310<h3 id="add-from-remote-urls">

311 Adicione de URLs remotas

312</h3>

313 

314Adicione um arquivo `marketplace.json` remoto via URL:

315 

316```shell theme={null}

317/plugin marketplace add https://example.com/marketplace.json

318```

319 

320<Note>

321 Marketplaces baseados em URL têm algumas limitações comparadas a marketplaces baseados em Git. Se os installs de plugins de um marketplace baseado em URL falharem, veja [Troubleshooting](/docs/pt/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces).

322</Note>

323 

324<h3 id="add-from-claude-ai">

325 Adicione de claude.ai

326</h3>

327 

328Em sessões de terminal onde [plugins sincronizam de sua conta claude.ai](/docs/pt/plugins-reference#synced-plugins), claude.ai também pode listar marketplaces para você, como a biblioteca de plugins da sua organização e seus uploads claude.ai. `claude plugin marketplace list` os imprime em uma seção `From claude.ai:`, e a aba **Marketplaces** do `/plugin` os lista. Selecione um lá para adicioná-lo. Adicionar um marketplace de claude.ai requer Claude Code v2.1.273 ou posterior.

329 

330Para adicionar um do seu shell, execute `claude plugin marketplace add` com a flag `--claudeai` e o nome mostrado na lista:

331 

332```bash theme={null}

333claude plugin marketplace add --claudeai claudeai-organization-library

334```

335 

336Claude Code registra o marketplace sob um nome local que começa com `claudeai-`, derivado do nome que claude.ai o lista: um marketplace listado como "Organization library" se registra como `claudeai-organization-library`. Instale seus plugins por esse nome, por exemplo com `claude plugin install <plugin>@claudeai-organization-library`.

337 

338Se você sair ou entrar com uma conta diferente, o marketplace permanece configurado mas não mostra plugins, e os plugins que você já instalou dele continuam carregando.

339 

340A seção `From claude.ai:` também pode listar marketplaces baseados em git compartilhados através de claude.ai. Você adiciona aqueles com o comando `marketplace add` ordinário, usando a fonte que a lista imprime.

341 

342<h2 id="install-plugins">

343 Instale plugins

344</h2>

345 

346Uma vez que você adicionou marketplaces, você pode instalar um plugin pelo nome. Para um marketplace que você ainda não adicionou, você pode em vez disso [adicioná-lo e instalar em um comando](#add-a-marketplace-and-install-in-one-command).

347 

348Para instalar pelo nome:

349 

350```shell theme={null}

351/plugin install plugin-name@marketplace-name

352```

353 

354O comando abre os detalhes desse plugin, onde você escolhe um [escopo de instalação](/docs/pt/settings#where-settings-live). Você vê as mesmas opções quando executa `/plugin`, vai para a aba **Discover** e pressiona **Enter** em um plugin:

355 

356* **User scope**: instale para você em todos os projetos

357* **Project scope**: instale para todos os colaboradores neste repositório, o que adiciona o plugin a `.claude/settings.json`

358* **Local scope**: instale para você neste repositório apenas, não compartilhado com colaboradores

359 

360Para instalar sem uma etapa interativa, use o comando shell [`claude plugin install`](/docs/pt/plugins-reference#plugin-install), que instala no escopo de usuário a menos que você passe `--scope`. Para um plugin com uma [fonte `command`](/docs/pt/plugin-marketplaces#how-users-accept-the-command), passe `--yes` para aceitar o comando que ele exibe.

361 

362Você também pode ver plugins com escopo **managed**. Esses são instalados por administradores via [managed settings](/docs/pt/managed-settings) e não podem ser modificados.

363 

364Claude Code procura o plugin em sua cópia local do catálogo de marketplace. Como você nomeia o plugin controla se Claude Code atualiza essa cópia primeiro:

365 

366* **Com um nome de marketplace**: quando você instala `plugin-name@marketplace-name`, em uma sessão ou com `claude plugin install`, Claude Code atualiza esse marketplace antes da busca. Claude Code executa a atualização mesmo se você desativou [auto-update](#configure-auto-updates) para o marketplace ou definiu `DISABLE_AUTOUPDATER`. Antes da v2.1.232, Claude Code não atualizava o marketplace antes da busca. Claude Code pula essa atualização quando:

367 * O marketplace não foi [adicionado do GitHub, outro host Git ou uma URL remota](#add-marketplaces), ou [claude.ai](#add-from-claude-ai).

368 * Um [diretório seed](/docs/pt/plugin-marketplaces#pre-populate-plugins-for-containers) fornece o marketplace.

369 * Claude Code atualizou o marketplace nos últimos 30 segundos.

370 * Você definiu [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/pt/env-vars).

371 * [Managed settings](/docs/pt/plugin-marketplaces#managed-marketplace-restrictions) bloqueiam o marketplace, nesse caso Claude Code também recusa a instalação.

372* **Apenas nome do plugin**: quando você executa `/plugin install plugin-name` em uma sessão, Claude Code atualiza apenas os marketplaces que também [atualiza em segundo plano](#configure-auto-updates), e apenas após a busca falhar. Quando você executa `claude plugin install plugin-name`, Claude Code lê os catálogos em cache sem atualizar. Para instalar um plugin que foi publicado após sua última atualização, execute `/plugin marketplace update <marketplace-name>` em uma sessão ou [`claude plugin marketplace update <marketplace-name>`](/docs/pt/plugin-marketplaces#plugin-marketplace-update) em seu shell, depois tente novamente a instalação.

373 

374Se a atualização antes de uma instalação nomeada falhar, por exemplo porque você está offline, Claude Code procura o plugin no catálogo em cache mesmo assim. `claude plugin install` relata `marketplace not refreshed` em sua mensagem de sucesso, e `/plugin install` mostra a falha acima dos detalhes do plugin ou em sua mensagem de não encontrado.

375 

376Quando você instala a partir da interface `/plugin`, o resumo de instalação informa se o plugin está ativo em sua sessão atual:

377 

378* `Plugin is now active.`: Claude Code ativou o plugin como parte da instalação.

379* `Run /reload-plugins to activate.`: o plugin ainda não está ativo, porque ativá-lo [invalidaria o prompt cache](/docs/pt/prompt-caching#enabling-or-disabling-a-plugin) ou porque a tentativa de ativação falhou. Claude Code então executa `/reload-plugins` para você. Se esse recarregamento avisar sobre o prompt cache, execute `/reload-plugins --force` para [ativar o plugin mesmo assim](#apply-plugin-changes-without-restarting).

380* Se o plugin falhar ao carregar, o resumo relata a falha e a aba **Errors** do `/plugin` mostra o detalhe.

381 

382Antes da v2.1.221, nenhuma instalação entrava em vigor na sessão atual até você executar `/reload-plugins` ou reiniciar.

383 

384O comando shell `claude plugin install` não é executado em uma sessão, então Claude Code carrega os plugins que instala na próxima vez que você inicia Claude Code, ou quando você executa `/reload-plugins` em uma sessão que já está aberta.

385 

386<Warning>

387 Certifique-se de confiar em um plugin antes de instalá-lo. Anthropic não controla quais MCP servers, arquivos ou outro software estão incluídos em plugins e não pode verificar que funcionam conforme pretendido. Verifique a página inicial de cada plugin para mais informações.

388</Warning>

389 

390<h3 id="add-a-marketplace-and-install-in-one-command">

391 Adicione um marketplace e instale em um comando

392</h3>

393 

394Para instalar um plugin de um marketplace que você ainda não adicionou, nomeie a fonte do marketplace com `--marketplace`. Requer Claude Code v2.1.275 ou posterior.

395 

396```shell theme={null}

397/plugin install quality-review-plugin --marketplace your-org/plugins

398```

399 

400A fonte assume [as mesmas formas que `/plugin marketplace add`](#add-marketplaces), como GitHub `owner/repo`, uma URL git ou um caminho local, exceto que não pode conter espaços. Dê o nome do plugin sem um sufixo `@marketplace`.

401 

402Claude Code mostra a fonte que resolveu e pede que você confirme antes de adicionar o marketplace. Recusar cancela a instalação e não adiciona nada. Uma vez que o marketplace é adicionado, os detalhes do plugin abrem e você escolhe um [escopo de instalação](/docs/pt/settings#where-settings-live). Se a fonte corresponder a um marketplace que você já adicionou, Claude Code pula a confirmação e abre os detalhes do plugin nesse marketplace.

403 

404<h2 id="manage-installed-plugins">

405 Gerencie plugins instalados

406</h2>

407 

408Execute `/plugin` e vá para a aba **Installed** para visualizar, habilitar, desabilitar ou desinstalar seus plugins. A lista é agrupada por escopo e classificada para que você veja problemas primeiro: plugins com erros de carregamento ou dependências não resolvidas aparecem no topo, seguidos por seus favoritos, com plugins desabilitados dobrados atrás de um cabeçalho recolhido na parte inferior.

409 

410Da lista você pode:

411 

412* pressionar `f` para marcar como favorito ou desmarcar como favorito o plugin selecionado

413* digitar para filtrar por nome ou descrição do plugin

414* pressionar Enter para abrir a visualização de detalhes de um plugin e habilitar, desabilitar ou desinstalá-lo

415 

416Claude Code também lista os [plugins sincronizados da sua conta claude.ai](/docs/pt/plugins-reference#synced-plugins) na aba **Installed**, com `synced` como sua fonte. Você pode habilitar ou desabilitar um lá, a menos que sua organização o tenha marcado como obrigatório. Para remover um, desative-o em claude.ai. Plugins sincronizados aparecem em sessões de terminal no Claude Code v2.1.273 ou posterior.

417 

418Quando você desinstala um plugin que o `.claude/settings.json` de um projeto habilita, Claude Code pergunta qual escopo você quer dizer: desabilitá-lo apenas para você, o que escreve uma substituição em seu `.claude/settings.local.json` e deixa o plugin instalado para o projeto, ou desinstalá-lo para todos, o que o remove do `.claude/settings.json` compartilhado.

419 

420A visualização de detalhes mostra os componentes que o plugin contribui: comandos, skills, agentes, hooks, servidores MCP e servidores LSP. O mesmo inventário está disponível na linha de comando com `claude plugin details`.

421 

422Claude Code também lista plugins do marketplace que você instalou por conta própria, mas não usou em pelo menos duas semanas, em um período de pelo menos 10 sessões, sob um cabeçalho **Not used recently** na aba **Installed**. A visualização de detalhes mostra uma linha **Last used** para cada plugin. Use estes para encontrar plugins que ainda adicionam custo de inicialização e contexto, mesmo que você não os use mais, depois desabilite ou desinstale-os.

423 

424Dois tipos de plugins nunca são listados como não utilizados:

425 

426* plugins que sua organização gerencia ou que você carrega com `--plugin-dir`

427* plugins que contribuem um tema, estilo de saída, monitor ou workflow, já que entregam valor sem uma invocação para rastrear

428 

429O cabeçalho **Not used recently** e a linha **Last used** estão ambos ocultos quando sua organização restringe marketplaces com [`strictKnownMarketplaces`](/docs/pt/settings-reference#strictknownmarketplaces).

430 

431Um [servidor de linguagem](/docs/pt/plugins#add-lsp-servers-to-your-plugin) de um plugin conta como usado quando entrega diagnósticos ou responde a uma solicitação de navegação de código, então um plugin LSP cujo servidor está ativo em suas sessões não é listado como não utilizado. Antes de v2.1.203, a atividade do servidor de linguagem não podia ser contada como uso, então plugins que contribuem um servidor LSP eram isentos do grupo inteiramente, da mesma forma que plugins de tema e estilo de saída ainda são.

432 

433A primeira sessão em uma versão que conta a atividade do servidor de linguagem também redefine o registro de uso de cada plugin LSP que ainda não havia registrado nenhum uso, então Claude Code não julga um plugin que você instalou anteriormente como não utilizado com base em dados registrados antes da atividade do servidor ser rastreada.

434 

435Quando você instala um plugin que declara dependências, a saída de instalação lista quais dependências foram auto-instaladas junto com ele.

436 

437Você também pode gerenciar plugins com comandos diretos:

438 

439* Quando você executa `/plugin disable`, `/plugin enable` ou `/plugin uninstall`, Claude Code abre o painel de plugins para fazer a mudança e o deixa aberto. Pressione **Esc** para fechar o painel antes de digitar outro comando. [Aplique mudanças de plugin sem reiniciar](#apply-plugin-changes-without-restarting) descreve quando a mudança entra em vigor em sua sessão.

440* Para scripts, use os comandos shell `claude plugin` em vez disso, que não abrem o painel.

441 

442Liste plugins instalados sem abrir o menu:

443 

444```shell theme={null}

445/plugin list

446```

447 

448Passe `--enabled` ou `--disabled` para mostrar apenas plugins nesse estado.

449 

450Desabilite um plugin sem desinstalá-lo:

451 

452```shell theme={null}

453/plugin disable plugin-name@marketplace-name

454```

455 

456Reabilite um plugin desabilitado:

457 

458```shell theme={null}

459/plugin enable plugin-name@marketplace-name

460```

461 

462Nestes identificadores, `plugin-name` é o `name` do plugin na [entrada do marketplace](/docs/pt/plugin-marketplaces#plugin-entries), que pode diferir do `name` no próprio `plugin.json` do plugin.

463 

464A partir do Claude Code v2.1.195, **Enable** e **Disable** na interface `/plugin` funcionam para plugins cujos dois nomes diferem, e `/plugin enable` e `/plugin disable` aceitam qualquer um dos nomes. Quando você desabilita tal plugin em uma versão anterior, Claude Code relata `already disabled` e o deixa habilitado.

465 

466Remova completamente um plugin:

467 

468```shell theme={null}

469/plugin uninstall plugin-name@marketplace-name

470```

471 

472A opção `--scope` permite que você direcione um escopo específico com comandos CLI:

473 

474```shell theme={null}

475claude plugin install formatter@your-org --scope project

476claude plugin uninstall formatter@your-org --scope project

477```

478 

479<h3 id="apply-plugin-changes-without-restarting">

480 Aplique mudanças de plugin sem reiniciar

481</h3>

482 

483Quando você fecha o menu `/plugin`, Claude Code executa `/reload-plugins` para você aplicar as mudanças que você fez nele, como instalar, habilitar, desabilitar e desinstalar plugins. Se o recarregamento invalidaria o [cache de prompt](/docs/pt/prompt-caching#enabling-or-disabling-a-plugin), ele avisa e deixa as mudanças pendentes em vez disso; execute `/reload-plugins --force` para aplicá-las mesmo assim. Se Claude ainda estiver respondendo quando você fechar o menu, o recarregamento é executado após a resposta terminar.

484 

485Para mudanças de plugin que acontecem fora do menu, execute `/reload-plugins` você mesmo. Essas mudanças incluem:

486 

487* Um comando `claude plugin` que você executou em outro terminal

488* Edições em um plugin que você carregou com [`--plugin-dir`](/docs/pt/plugins#test-your-plugins-locally) enquanto você o desenvolve

489* Um plugin [auto-atualização](#configure-auto-updates) cuja notificação pede que você recarregue

490* Uma [sincronização da sua conta claude.ai](/docs/pt/plugins-reference#synced-plugins) que adicionou, atualizou ou removeu um plugin e mostrou uma notificação pedindo que você recarregue

491* Uma mudança em uma pasta [`--plugin-dir`](/docs/pt/plugins#test-your-plugins-locally) que Claude Code manteve porque aplicá-la invalidaria o cache de prompt

492 

493Antes de v2.1.268, plugins que você habilitou, desabilitou ou desinstalou no menu, e instalações que não foram ativadas durante a instalação, permaneceram pendentes até que você executasse `/reload-plugins`.

494 

495`/reload-plugins` também é executado em sessões sem um terminal interativo, como o aplicativo desktop, o Agent SDK e [modo não interativo](/docs/pt/headless) com `-p`. Requer Claude Code v2.1.260 ou posterior. Dois limites se aplicam nessas sessões:

496 

497* O comando é executado apenas quando você o digita diretamente na sessão, como no prompt `-p` ou na caixa de prompt do aplicativo desktop. Quando você o envia por uma conexão remota em vez disso, como [Remote Control](/docs/pt/remote-control) ou uma mensagem de chat retransmitida, o comando recusa sem recarregar nada.

498* O recarregamento não conecta ou desconecta servidores MCP de plugin. Essas mudanças entram em vigor em sua próxima sessão.

499 

500Claude Code recarrega todos os plugins ativos e mostra contagens para plugins, skills, agentes, hooks, servidores MCP de plugin e servidores LSP de plugin, omitindo a contagem de servidores MCP de plugin em uma sessão sem um terminal interativo. Na contagem de skills, Claude Code inclui todas as skills que um plugin fornece: tanto suas entradas `commands/` quanto suas skills `SKILL.md`. Antes de v2.1.246, Claude Code contava apenas entradas `commands/`, então poderia recarregar as skills `SKILL.md` de um plugin e ainda relatar `0 skills` no resumo.

501 

502O recarregamento tem um custo de token na próxima solicitação: componentes recém-carregados se anunciam no conteúdo anexado à conversa, enquanto o histórico existente ainda lê do cache de prompt. Um plugin que fornece servidores MCP custa mais quando suas ferramentas não são adiadas por [busca de ferramentas](/docs/pt/mcp#scale-with-mcp-tool-search): a mudança invalida o cache e a próxima solicitação relê toda a conversa. Consulte [habilitando ou desabilitando um plugin](/docs/pt/prompt-caching#enabling-or-disabling-a-plugin) para obter detalhes.

503 

504<h2 id="manage-marketplaces">

505 Gerencie marketplaces

506</h2>

507 

508Você pode gerenciar marketplaces através da interface interativa `/plugin` ou com comandos CLI.

509 

510<h3 id="use-the-interactive-interface">

511 Use a interface interativa

512</h3>

513 

514Execute `/plugin` e vá para a aba **Marketplaces** para:

515 

516* Visualize todos os seus marketplaces adicionados com suas fontes e status

517* Adicione novos marketplaces

518* Atualize listagens de marketplace para buscar os plugins mais recentes

519* Remova marketplaces que você não precisa mais

520 

521<h3 id="use-cli-commands">

522 Use comandos CLI

523</h3>

524 

525Você também pode gerenciar marketplaces com comandos diretos.

526 

527Liste todos os marketplaces configurados:

528 

529```shell theme={null}

530/plugin marketplace list

531```

532 

533Atualize listagens de plugins de um marketplace:

534 

535```shell theme={null}

536/plugin marketplace update marketplace-name

537```

538 

539Remova um marketplace:

540 

541```shell theme={null}

542/plugin marketplace remove marketplace-name

543```

544 

545<Warning>

546 Remover um marketplace desinstalará quaisquer plugins que você instalou dele.

547</Warning>

548 

549<h3 id="configure-auto-updates">

550 Configure atualizações automáticas

551</h3>

552 

553Claude Code pode atualizar automaticamente marketplaces e seus plugins instalados em segundo plano após a inicialização. Quando a atualização automática está habilitada para um marketplace, Claude Code atualiza os dados do marketplace e atualiza plugins instalados para suas versões mais recentes no disco.

554 

555Claude Code verifica atualizações de marketplace e plugins após sua sessão iniciar, com um atraso aleatório de até dez minutos, para que a sessão em execução continue usando as versões que carregou na inicialização. Se quaisquer plugins foram atualizados, você verá uma notificação solicitando que execute `/reload-plugins`, ou as novas versões carregam no seu próximo lançamento.

556 

557A atualização automática também deixa de fora um plugin cuja entrada de marketplace declara um `headersHelper`: Claude Code [nem executa o comando nem baixa o arquivo](/docs/pt/plugin-marketplaces#installs-and-updates-that-refuse-the-command-instead-of-asking) nesse caminho; essa seção diz quando Claude Code lista o plugin na aba Errors do `/plugin` para que você possa atualizá-lo de sua própria visualização.

558 

559Claude Code atualiza plugins que têm uma [fonte `command`](/docs/pt/plugin-marketplaces#command-sources) em um cadência separada da configuração de atualização automática do marketplace e de `DISABLE_AUTOUPDATER`. Em vez disso, ele [re-executa o comando uma vez por sessão](/docs/pt/plugin-marketplaces#when-claude-code-re-runs-the-command) e instala a saída como uma nova versão de plugin quando seu [hash](/docs/pt/plugins-reference#version-management) foi alterado.

560 

561Alterne a atualização automática para marketplaces individuais através da UI:

562 

5631. Execute `/plugin` para abrir o gerenciador de plugins

5642. Selecione **Marketplaces**

5653. Escolha um marketplace da lista

5664. Selecione **Enable auto-update** ou **Disable auto-update**

567 

568`claude-plugins-official`, a maioria dos outros marketplaces oficiais da Anthropic e [marketplaces adicionados do claude.ai](#add-from-claude-ai) têm atualização automática habilitada por padrão. Outros marketplaces de terceiros e marketplaces de desenvolvimento local têm atualização automática desabilitada por padrão.

569 

570Os administradores também podem definir `"autoUpdate": true` em cada entrada [`extraKnownMarketplaces`](/docs/pt/settings-reference#extraknownmarketplaces) nas configurações gerenciadas para habilitar a atualização automática para um marketplace da organização sem exigir que cada usuário alterne.

571 

572Para desabilitar atualizações automáticas para Claude Code e para plugins obtidos de marketplaces, defina a variável de ambiente `DISABLE_AUTOUPDATER`. Plugins com uma [fonte `command`](/docs/pt/plugin-marketplaces#command-sources) seguem sua própria re-resolução uma vez por sessão. Veja [Auto updates](/docs/pt/setup#auto-updates) para detalhes.

573 

574Para manter atualizações automáticas de plugins habilitadas enquanto desabilita atualizações automáticas de Claude Code, defina `FORCE_AUTOUPDATE_PLUGINS=1` junto com `DISABLE_AUTOUPDATER`:

575 

576```bash theme={null}

577export DISABLE_AUTOUPDATER=1

578export FORCE_AUTOUPDATE_PLUGINS=1

579```

580 

581<h2 id="configure-team-marketplaces">

582 Configurar marketplaces de equipe

583</h2>

584 

585Administradores de equipe podem configurar instalação automática de marketplace para projetos adicionando configuração de marketplace a `.claude/settings.json`. Quando membros da equipe [confiam na pasta do repositório](/docs/pt/permissions#what-runs-before-you-trust-a-folder), Claude Code adiciona esses marketplaces sem um aviso adicional.

586 

587A partir de Claude Code v2.1.195, adicionar o marketplace não instala plugins que vêm de uma fonte externa, em qualquer caminho que carrega plugins. Um plugin que apenas o `.claude/settings.json` do projeto habilita, e que vem de uma fonte externa como um repositório GitHub ou pacote npm, não carrega até que o membro da equipe o instale. Até então, Claude Code relata o plugin como não instalado e mostra o comando `claude plugin install` para executar.

588 

589Adicione `extraKnownMarketplaces` ao `.claude/settings.json` do seu projeto:

590 

591```json theme={null}

592{

593 "extraKnownMarketplaces": {

594 "my-team-tools": {

595 "source": {

596 "source": "github",

597 "repo": "your-org/claude-plugins"

598 }

599 }

600 }

601}

602```

603 

604Para opções de configuração completas incluindo `extraKnownMarketplaces` e `enabledPlugins`, veja [Plugin settings](/docs/pt/settings-reference#plugin-settings).

605 

606<h2 id="security">

607 Segurança

608</h2>

609 

610Plugins e marketplaces são componentes altamente confiáveis que podem executar código arbitrário em sua máquina com seus privilégios de usuário. Instale apenas plugins e adicione marketplaces de fontes que você confia. Organizações podem restringir quais marketplaces os usuários podem adicionar usando [managed marketplace restrictions](/docs/pt/plugin-marketplaces#managed-marketplace-restrictions).

611 

612<h2 id="troubleshooting">

613 Troubleshooting

614</h2>

615 

616<h3 id="/plugin-command-not-recognized">

617 Comando /plugin não reconhecido

618</h3>

619 

620Se você vir "unknown command" ou o comando `/plugin` não aparecer:

621 

6221. **Verifique sua versão**: Execute `claude --version` para ver o que está instalado.

6232. **Atualize Claude Code**:

624 * **Homebrew**: `brew upgrade claude-code`, ou `brew upgrade claude-code@latest` se você instalou esse cask

625 * **npm**: `npm install -g @anthropic-ai/claude-code@latest`

626 * **Native installer**: Re-execute o comando de instalação de [Setup](/docs/pt/setup)

6273. **Reinicie Claude Code**: Após atualizar, reinicie seu terminal e execute `claude` novamente.

628 

629<h3 id="common-issues">

630 Problemas comuns

631</h3>

632 

633Se as skills de plugin não aparecerem, limpe o cache com `rm -rf ~/.claude/plugins/cache`, reinicie Claude Code e reinstale o plugin.

634 

635Para troubleshooting detalhado com soluções, veja [Troubleshooting](/docs/pt/plugin-marketplaces#troubleshooting) no guia de marketplace. Para ferramentas de debugging, veja [Debugging and development tools](/docs/pt/plugins-reference#debugging-and-development-tools).

636 

637<h3 id="code-intelligence-issues">

638 Problemas de code intelligence

639</h3>

640 

641* **Language server não iniciando**: Verifique se o binário está instalado e disponível em seu `$PATH`. Verifique a aba Errors do `/plugin` para detalhes.

642* **Alto uso de memória**: Language servers como `rust-analyzer` e `pyright` podem consumir memória significativa em projetos grandes. Se você experimentar problemas de memória, desabilite o plugin com `/plugin disable <plugin-name>` e confie nas ferramentas de busca integradas do Claude.

643* **Diagnósticos falsos positivos em monorepos**: Language servers podem relatar erros de importação não resolvida para pacotes internos se o workspace não estiver configurado corretamente. Esses não afetam a capacidade do Claude de editar código.

644 

645<h2 id="next-steps">

646 Próximos passos

647</h2>

648 

649* **Construa seus próprios plugins**: Veja [Plugins](/docs/pt/plugins) para criar skills, agentes e hooks

650* **Crie um marketplace**: Veja [Criar um marketplace de plugins](/docs/pt/plugin-marketplaces) para distribuir plugins para sua equipe ou comunidade

651* **Referência técnica**: Veja [Plugins reference](/docs/pt/plugins-reference) para especificações completas

Details

32* [CLI](/docs/pt/quickstart) e [Agent SDK](/docs/pt/agent-sdk/overview)32* [CLI](/docs/pt/quickstart) e [Agent SDK](/docs/pt/agent-sdk/overview)

33* Extensões [VS Code](/docs/pt/vs-code) e [JetBrains](/docs/pt/jetbrains)33* Extensões [VS Code](/docs/pt/vs-code) e [JetBrains](/docs/pt/jetbrains)

34* [Subagents](/docs/pt/sub-agents), [hooks](/docs/pt/hooks-guide), [commands](/docs/pt/commands) e [skills](/docs/pt/skills)34* [Subagents](/docs/pt/sub-agents), [hooks](/docs/pt/hooks-guide), [commands](/docs/pt/commands) e [skills](/docs/pt/skills)

35* Memória [CLAUDE.md](/docs/pt/memory), [plugins](/docs/pt/plugins) e [servidores MCP](/docs/pt/mcp)35* Memória [CLAUDE.md](/docs/pt/memory), [plugins](/docs/pt/plugins/overview) e [servidores MCP](/docs/pt/mcp)

36* [Checkpoints](/docs/pt/checkpointing), [sandboxing](/docs/pt/sandboxing) e [Workflows](/docs/pt/workflows)36* [Checkpoints](/docs/pt/checkpointing), [sandboxing](/docs/pt/sandboxing) e [Workflows](/docs/pt/workflows)

37* Métricas [OpenTelemetry](/docs/pt/monitoring-usage) e o [arquivo de configurações gerenciado](/docs/pt/managed-settings#delivery-mechanisms)37* Métricas [OpenTelemetry](/docs/pt/monitoring-usage) e o [arquivo de configurações gerenciado](/docs/pt/managed-settings#delivery-mechanisms)

38 38 

Details

29* **[Dynamic workflows](/docs/pt/workflows)** executam muitos subagents a partir de um script que Claude escreve, retornando um resultado29* **[Dynamic workflows](/docs/pt/workflows)** executam muitos subagents a partir de um script que Claude escreve, retornando um resultado

30* **[Cross-session messaging](/docs/pt/cross-session-messaging)** permite que Claude passe uma mensagem de uma de suas sessões para outra30* **[Cross-session messaging](/docs/pt/cross-session-messaging)** permite que Claude passe uma mensagem de uma de suas sessões para outra

31* **[Hooks](/docs/pt/hooks-guide)** executam seu script, solicitação HTTP, chamada de ferramenta MCP, prompt ou subagent quando Claude Code atinge um evento de ciclo de vida31* **[Hooks](/docs/pt/hooks-guide)** executam seu script, solicitação HTTP, chamada de ferramenta MCP, prompt ou subagent quando Claude Code atinge um evento de ciclo de vida

32* **[Plugins](/docs/pt/plugins)** e **[marketplaces](/docs/pt/plugin-marketplaces)** empacotam e distribuem esses recursos32* **[Plugins](/docs/pt/plugins/overview)** e **[marketplaces](/docs/pt/plugins/overview)** empacotam e distribuem esses recursos

33 33 

34[Skills](/docs/pt/skills) são a extensão mais flexível. Uma skill é um arquivo markdown contendo conhecimento, fluxos de trabalho ou instruções. Você pode invocar skills com um comando como `/deploy`, ou Claude pode carregá-las automaticamente quando relevante. Skills podem ser executadas em sua conversa atual ou em contexto isolado via subagents.34[Skills](/docs/pt/skills) são a extensão mais flexível. Uma skill é um arquivo markdown contendo conhecimento, fluxos de trabalho ou instruções. Você pode invocar skills com um comando como `/deploy`, ou Claude pode carregá-las automaticamente quando relevante. Skills podem ser executadas em sua conversa atual ou em contexto isolado via subagents.

35 35 


52| **Hook** | Script, solicitação HTTP, chamada de ferramenta MCP, prompt ou subagent disparado por eventos | Automação que deve ser executada em cada evento correspondente | Executar ESLint após cada edição de arquivo |52| **Hook** | Script, solicitação HTTP, chamada de ferramenta MCP, prompt ou subagent disparado por eventos | Automação que deve ser executada em cada evento correspondente | Executar ESLint após cada edição de arquivo |

53| **[Artifact](/docs/pt/artifacts)** | Publicar saída de sessão como uma página web privada e interativa | Saída que você quer ver ou compartilhar visualmente em vez de como texto de terminal | Uma linha do tempo de incidente que se atualiza conforme Claude investiga |53| **[Artifact](/docs/pt/artifacts)** | Publicar saída de sessão como uma página web privada e interativa | Saída que você quer ver ou compartilhar visualmente em vez de como texto de terminal | Uma linha do tempo de incidente que se atualiza conforme Claude investiga |

54 54 

55**[Plugins](/docs/pt/plugins)** são a camada de empacotamento. Um plugin agrupa skills, hooks, subagents e servidores MCP em uma única unidade instalável. Skills de plugin são nomeadas (como `/my-plugin:review`) para que múltiplos plugins possam coexistir. Use plugins quando quiser reutilizar a mesma configuração em múltiplos repositórios ou distribuir para outros via um **[marketplace](/docs/pt/plugin-marketplaces)**.55**[Plugins](/docs/pt/plugins/overview)** são a camada de empacotamento. Um plugin agrupa skills, hooks, subagents e servidores MCP em uma única unidade instalável. Skills de plugin são nomeadas (como `/my-plugin:review`) para que múltiplos plugins possam coexistir. Use plugins quando quiser reutilizar a mesma configuração em múltiplos repositórios ou distribuir para outros via um **[marketplace](/docs/pt/plugins/overview)**.

56 56 

57<h3 id="build-your-setup-over-time">57<h3 id="build-your-setup-over-time">

58 Construir sua configuração ao longo do tempo58 Construir sua configuração ao longo do tempo


61Você não precisa configurar tudo antecipadamente. Cada recurso tem um gatilho reconhecível, e a maioria das equipes os adiciona aproximadamente nesta ordem:61Você não precisa configurar tudo antecipadamente. Cada recurso tem um gatilho reconhecível, e a maioria das equipes os adiciona aproximadamente nesta ordem:

62 62 

63| Gatilho | Adicionar |63| Gatilho | Adicionar |

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

65| Claude erra uma convenção ou comando duas vezes | Adicione a [CLAUDE.md](/docs/pt/memory) |65| Claude erra uma convenção ou comando duas vezes | Adicione a [CLAUDE.md](/docs/pt/memory) |

66| Você continua pedindo a Claude para ser mais breve, explicar mais ou responder no mesmo formato | Defina um [output style](/docs/pt/output-styles) |66| Você continua pedindo a Claude para ser mais breve, explicar mais ou responder no mesmo formato | Defina um [output style](/docs/pt/output-styles) |

67| Você continua digitando o mesmo prompt para iniciar uma tarefa | Salve como uma [skill](/docs/pt/skills) invocável pelo usuário |67| Você continua digitando o mesmo prompt para iniciar uma tarefa | Salve como uma [skill](/docs/pt/skills) invocável pelo usuário |

68| Você cola o mesmo playbook ou procedimento de múltiplas etapas no chat pela terceira vez | Capture como uma [skill](/docs/pt/skills) |68| Você cola o mesmo playbook ou procedimento de múltiplas etapas no chat pela terceira vez | Capture como uma [skill](/docs/pt/skills) |

69| Você continua copiando dados de uma aba do navegador que Claude não consegue ver | Conecte esse sistema como um [servidor MCP](/docs/pt/mcp) |69| Você continua copiando dados de uma aba do navegador que Claude não consegue ver | Conecte esse sistema como um [servidor MCP](/docs/pt/mcp) |

70| Claude lê muitos arquivos para encontrar onde um símbolo é definido ou usado | Instale um [plugin de code intelligence](/docs/pt/discover-plugins#code-intelligence) para sua linguagem |70| Claude lê muitos arquivos para encontrar onde um símbolo é definido ou usado | Instale um [plugin de code intelligence](/docs/pt/plugins/code-intelligence) para sua linguagem |

71| Uma tarefa secundária inunda sua conversa com saída que você não consultará novamente | Encaminhe através de um [subagent](/docs/pt/sub-agents) |71| Uma tarefa secundária inunda sua conversa com saída que você não consultará novamente | Encaminhe através de um [subagent](/docs/pt/sub-agents) |

72| Você quer que algo aconteça toda vez sem pedir | Escreva um [hook](/docs/pt/hooks-guide) |72| Você quer que algo aconteça toda vez sem pedir | Escreva um [hook](/docs/pt/hooks-guide) |

73| Um segundo repositório precisa da mesma configuração | Empacote como um [plugin](/docs/pt/plugins) |73| Um segundo repositório precisa da mesma configuração | Empacote como um [plugin](/docs/pt/plugins/overview) |

74 74 

75Os mesmos gatilhos dizem quando atualizar o que você já tem. Um erro repetido ou um comentário de revisão recorrente é uma edição de CLAUDE.md, não uma correção única no chat. Um fluxo de trabalho que você continua ajustando manualmente é uma skill que precisa de outra revisão.75Os mesmos gatilhos dizem quando atualizar o que você já tem. Um erro repetido ou um comentário de revisão recorrente é uma edição de CLAUDE.md, não uma correção única no chat. Um fluxo de trabalho que você continua ajustando manualmente é uma skill que precisa de outra revisão.

76 76 


207Os recursos podem ser definidos em múltiplos níveis: em toda a máquina, por projeto, via plugins ou através de políticas gerenciadas. Você também pode aninhar arquivos CLAUDE.md em subdiretórios ou colocar skills em pacotes específicos de um monorepo. Quando o mesmo recurso existe em múltiplos níveis, aqui está como eles se sobrepõem:207Os recursos podem ser definidos em múltiplos níveis: em toda a máquina, por projeto, via plugins ou através de políticas gerenciadas. Você também pode aninhar arquivos CLAUDE.md em subdiretórios ou colocar skills em pacotes específicos de um monorepo. Quando o mesmo recurso existe em múltiplos níveis, aqui está como eles se sobrepõem:

208 208 

209* **Arquivos CLAUDE.md** são aditivos: todos os níveis contribuem conteúdo ao contexto de Claude simultaneamente. Arquivos do seu diretório de trabalho e acima carregam no lançamento; subdiretórios carregam conforme você trabalha neles. Quando as instruções entram em conflito, Claude usa julgamento para reconciliá-las. Consulte [como arquivos CLAUDE.md carregam](/docs/pt/memory#how-claude-md-files-load).209* **Arquivos CLAUDE.md** são aditivos: todos os níveis contribuem conteúdo ao contexto de Claude simultaneamente. Arquivos do seu diretório de trabalho e acima carregam no lançamento; subdiretórios carregam conforme você trabalha neles. Quando as instruções entram em conflito, Claude usa julgamento para reconciliá-las. Consulte [como arquivos CLAUDE.md carregam](/docs/pt/memory#how-claude-md-files-load).

210* **Skills e subagents** substituem por nome: quando o mesmo nome existe em múltiplos níveis, uma definição vence com base na prioridade (gerenciado > usuário > projeto para skills; gerenciado > sinalizador CLI > projeto > usuário > plugin para subagents). Skills de plugin são [nomeadas](/docs/pt/plugins#add-skills-to-your-plugin) para evitar conflitos. Consulte [descoberta de skill](/docs/pt/skills#resolve-skills-that-share-a-name) e [escopo de subagent](/docs/pt/sub-agents#choose-the-subagent-scope).210* **Skills e subagents** substituem por nome: quando o mesmo nome existe em múltiplos níveis, uma definição vence com base na prioridade (gerenciado > usuário > projeto para skills; gerenciado > sinalizador CLI > projeto > usuário > plugin para subagents). Skills de plugin são [nomeadas](/docs/pt/plugins/components#skills) para evitar conflitos. Consulte [descoberta de skill](/docs/pt/skills#resolve-skills-that-share-a-name) e [escopo de subagent](/docs/pt/sub-agents#choose-the-subagent-scope).

211* **Servidores MCP** substituem por nome: local > projeto > usuário. Consulte [escopo MCP](/docs/pt/mcp#scope-hierarchy-and-precedence).211* **Servidores MCP** substituem por nome: local > projeto > usuário. Consulte [escopo MCP](/docs/pt/mcp#scope-hierarchy-and-precedence).

212* **Hooks** se mesclam: todos os hooks registrados disparam para seus eventos correspondentes independentemente da fonte. Consulte [hooks](/docs/pt/hooks-guide).212* **Hooks** se mesclam: todos os hooks registrados disparam para seus eventos correspondentes independentemente da fonte. Consulte [hooks](/docs/pt/hooks-guide).

213 213 


304 304 

305 **Custo de contexto:** Baixo. Consultas de símbolos frequentemente substituem leituras amplas de arquivo, então o uso de contexto líquido pode diminuir.305 **Custo de contexto:** Baixo. Consultas de símbolos frequentemente substituem leituras amplas de arquivo, então o uso de contexto líquido pode diminuir.

306 306 

307 <Tip>A ferramenta LSP fica inativa até que você instale um [plugin de code intelligence](/docs/pt/discover-plugins#code-intelligence) para sua linguagem.</Tip>307 <Tip>A ferramenta LSP fica inativa até que você instale um [plugin de code intelligence](/docs/pt/plugins/code-intelligence) para sua linguagem.</Tip>

308 </Tab>308 </Tab>

309 309 

310 <Tab title="Subagents">310 <Tab title="Subagents">


370 Automatizar ações com hooks370 Automatizar ações com hooks

371 </Card>371 </Card>

372 372 

373 <Card title="Plugins" icon="puzzle-piece" href="/docs/pt/plugins">373 <Card title="Plugins" icon="puzzle-piece" href="/docs/pt/plugins/overview">

374 Empacotar e compartilhar conjuntos de recursos374 Empacotar e compartilhar conjuntos de recursos

375 </Card>375 </Card>

376 376 

377 <Card title="Marketplaces" icon="store" href="/docs/pt/plugin-marketplaces">377 <Card title="Marketplaces" icon="store" href="/docs/pt/plugins/create-marketplace">

378 Hospedar e distribuir coleções de plugins378 Hospedar e distribuir coleções de plugins

379 </Card>379 </Card>

380</CardGroup>380</CardGroup>

fullscreen.md +2 −1

Details

100 100 

101* **Click in the prompt input** to position your cursor anywhere in the text you're typing.101* **Click in the prompt input** to position your cursor anywhere in the text you're typing.

102* **Click a suggestion in the `/` command or `@` file list** to accept it. Hovering highlights the row under your cursor.102* **Click a suggestion in the `/` command or `@` file list** to accept it. Hovering highlights the row under your cursor.

103* **Click an option in a select menu** to choose it. This covers permission prompts, `/model`, `/config`, and other dialogs that show a list of options. Hovering shows a pointer on the row under your cursor. Requires Claude Code v2.1.187 or later.103* **Click an option in a select menu** to choose it. This covers permission prompts, `/model`, `/config`, and other dialogs that show a list of options. Hovering shows a pointer on the row under your cursor.

104* **Click an option in a multi-select menu** to toggle it, and click the submit button to confirm your choices. Clicking a free-text row, such as the `Other` row in a multiple-choice question, focuses its input field so you can type an answer. Requires Claude Code v2.1.208 or later.104* **Click an option in a multi-select menu** to toggle it, and click the submit button to confirm your choices. Clicking a free-text row, such as the `Other` row in a multiple-choice question, focuses its input field so you can type an answer. Requires Claude Code v2.1.208 or later.

105* **Click a setting's value in the `/config` panel** to change it, and scroll the settings list with the mouse wheel. Requires Claude Code v2.1.271 or later.105* **Click a setting's value in the `/config` panel** to change it, and scroll the settings list with the mouse wheel. Requires Claude Code v2.1.271 or later.

106* **Scroll a select or multi-select menu with the mouse wheel** when it has more options than it shows at once, such as the `/model` list in a short terminal window. The wheel scrolls the list while the pointer is over its options. Requires Claude Code v2.1.280 or later.

106* **Click a collapsed tool result** to expand it and see the full output. Click again to collapse. The tool call and its result expand together. Only messages that have more to show are clickable.107* **Click a collapsed tool result** to expand it and see the full output. Click again to collapse. The tool call and its result expand together. Only messages that have more to show are clickable.

107 * Clicking also expands the output of a `!` shell command, whether an older truncated result or the live progress row while the command runs. Requires Claude Code v2.1.257 or later.108 * Clicking also expands the output of a `!` shell command, whether an older truncated result or the live progress row while the command runs. Requires Claude Code v2.1.257 or later.

108* **Hold `Cmd` on macOS, or `Ctrl` on Linux and Windows, and click a URL or file path** to open it. Plain `http://` and `https://` URLs open in your browser, and file paths in tool output, like the ones printed after an Edit or Write, open in your default application. A plain click without the modifier doesn't open links, matching native terminal behavior.109* **Hold `Cmd` on macOS, or `Ctrl` on Linux and Windows, and click a URL or file path** to open it. Plain `http://` and `https://` URLs open in your browser, and file paths in tool output, like the ones printed after an Edit or Write, open in your default application. A plain click without the modifier doesn't open links, matching native terminal behavior.

Details

50* Execute `/install-github-app` novamente. Quando o repositório já tiver um `claude.yml`, selecione **Update workflow file with latest version**. Claude Code faz push de cópias novas dos arquivos de fluxo de trabalho para um novo branch e abre o pull request, igual a uma primeira instalação.50* Execute `/install-github-app` novamente. Quando o repositório já tiver um `claude.yml`, selecione **Update workflow file with latest version**. Claude Code faz push de cópias novas dos arquivos de fluxo de trabalho para um novo branch e abre o pull request, igual a uma primeira instalação.

51* Adicione o argumento `--comment` e a linha `claude_args` do [exemplo de fluxo de trabalho de revisão](#run-a-skill) ao arquivo verificado você mesmo, o que mantém quaisquer outras edições que você fez nele.51* Adicione o argumento `--comment` e a linha `claude_args` do [exemplo de fluxo de trabalho de revisão](#run-a-skill) ao arquivo verificado você mesmo, o que mantém quaisquer outras edições que você fez nele.

52 52 

53Após instalar a GitHub App, Claude Code pergunta se deseja continuar com a configuração do GitHub Actions. Escolha **Skip for now** para parar apenas com a GitHub App instalada. Execute `/install-github-app` novamente mais tarde para terminar os passos de fluxo de trabalho e secret. Antes da v2.1.187, Claude Code prosseguia direto para a seleção de fluxo de trabalho.53Após instalar a GitHub App, Claude Code pergunta se deseja continuar com a configuração do GitHub Actions. Escolha **Skip for now** para parar apenas com a GitHub App instalada. Execute `/install-github-app` novamente mais tarde para terminar os passos de fluxo de trabalho e secret.

54 54 

55<Note>55<Note>

56 * Quando você instala a GitHub App, você concede a ela várias permissões. Consulte [Permissões da GitHub App](#github-app-permissions) para o conjunto completo56 * Quando você instala a GitHub App, você concede a ela várias permissões. Consulte [Permissões da GitHub App](#github-app-permissions) para o conjunto completo


237A entrada `prompt` aceita uma invocação de [skill](/docs/pt/skills) bem como texto simples:237A entrada `prompt` aceita uma invocação de [skill](/docs/pt/skills) bem como texto simples:

238 238 

239* Para uma skill no diretório `.claude/skills/` do seu repositório, execute `actions/checkout` antes da etapa `anthropics/claude-code-action` para que os arquivos de skill estejam disponíveis no runner, então passe `/skill-name` como o `prompt`.239* Para uma skill no diretório `.claude/skills/` do seu repositório, execute `actions/checkout` antes da etapa `anthropics/claude-code-action` para que os arquivos de skill estejam disponíveis no runner, então passe `/skill-name` como o `prompt`.

240* Para uma skill empacotada em um [plugin](/docs/pt/plugins), instale o plugin com as entradas `plugin_marketplaces` e `plugins`, então passe o `/plugin-name:skill-name` com namespace como o `prompt`. A entrada `plugins` recebe `plugin-name@marketplace-name`, onde o nome do marketplace vem do próprio manifesto do marketplace em vez de sua URL de repositório.240* Para uma skill empacotada em um [plugin](/docs/pt/plugins/overview), instale o plugin com as entradas `plugin_marketplaces` e `plugins`, então passe o `/plugin-name:skill-name` com namespace como o `prompt`. A entrada `plugins` recebe `plugin-name@marketplace-name`, onde o nome do marketplace vem do próprio manifesto do marketplace em vez de sua URL de repositório.

241 241 

242O fluxo de trabalho a seguir instala o plugin `code-review` e executa sua skill quando um pull request é aberto, atualizado, reaberto ou marcado como pronto para revisão. Ele executa o mesmo plugin que o fluxo de trabalho de revisão da configuração rápida. Use um fluxo de trabalho como este quando você quer controlar o prompt, modelo e gatilhos você mesmo. Para revisões automáticas sem manter um arquivo de fluxo de trabalho, consulte [Code Review](/docs/pt/code-review). Em repositórios públicos, o GitHub retém secrets de execuções acionadas por pull requests de fork, então a revisão é executada apenas em pull requests de branches no mesmo repositório.242O fluxo de trabalho a seguir instala o plugin `code-review` e executa sua skill quando um pull request é aberto, atualizado, reaberto ou marcado como pronto para revisão. Ele executa o mesmo plugin que o fluxo de trabalho de revisão da configuração rápida. Use um fluxo de trabalho como este quando você quer controlar o prompt, modelo e gatilhos você mesmo. Para revisões automáticas sem manter um arquivo de fluxo de trabalho, consulte [Code Review](/docs/pt/code-review). Em repositórios públicos, o GitHub retém secrets de execuções acionadas por pull requests de fork, então a revisão é executada apenas em pull requests de branches no mesmo repositório.

243 243 

Details

68O manifesto configura o GitHub App com as permissões e eventos de webhook abaixo, que juntos cobrem sessões web, Code Review, Claude Security, marketplaces de plugins e métricas de contribuição:68O manifesto configura o GitHub App com as permissões e eventos de webhook abaixo, que juntos cobrem sessões web, Code Review, Claude Security, marketplaces de plugins e métricas de contribuição:

69 69 

70| Permissão | Acesso | Usado para |70| Permissão | Acesso | Usado para |

71| :------------------- | :---------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |71| :------------------- | :---------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

72| Contents | Leitura e escrita | Clonagem de repositórios e push de branches |72| Contents | Leitura e escrita | Clonagem de repositórios e push de branches |

73| Pull requests | Leitura e escrita | Criação de PRs e postagem de comentários de revisão |73| Pull requests | Leitura e escrita | Criação de PRs e postagem de comentários de revisão |

74| Issues | Leitura e escrita | Resposta a menções de issues |74| Issues | Leitura e escrita | Resposta a menções de issues |

75| Checks | Leitura e escrita | Postagem de execuções de verificação do Code Review |75| Checks | Leitura e escrita | Postagem de execuções de verificação do Code Review |

76| Actions | Leitura | Leitura do status de CI para auto-fix |76| Actions | Leitura | Leitura do status de CI para auto-fix |

77| Commit statuses | Leitura | Leitura do status de CI de provedores que relatam status de commit em vez de execuções de verificação |77| Commit statuses | Leitura | Leitura do status de CI de provedores que relatam status de commit em vez de execuções de verificação |

78| Repository hooks | Leitura e escrita | Criação de um webhook em um repositório de marketplace de plugins quando **Sync automatically** está ativado para um marketplace em [Organization settings > Plugins](https://claude.ai/admin-settings/plugins) |78| Repository hooks | Leitura e escrita | Criação de um webhook em um repositório de marketplace de plugins quando **Sync automatically** está ativado para um marketplace em [**Organization settings > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=marketplaces) |

79| Metadata | Leitura | Obrigatório pelo GitHub para todos os apps |79| Metadata | Leitura | Obrigatório pelo GitHub para todos os apps |

80| Organization members | Leitura | Correspondência do GitHub App Claude em github.com, que o usa para verificar a função de organização de um usuário conectado ao vincular uma instalação |80| Organization members | Leitura | Correspondência do GitHub App Claude em github.com, que o usa para verificar a função de organização de um usuário conectado ao vincular uma instalação |

81 81 


160 160 

161Claude Code executa git de forma não interativa e rejeita conexões SSH para hosts que não estão no arquivo `known_hosts` da máquina. Uma URL HTTPS com um auxiliar de credenciais git evita o requisito `known_hosts`.161Claude Code executa git de forma não interativa e rejeita conexões SSH para hosts que não estão no arquivo `known_hosts` da máquina. Uma URL HTTPS com um auxiliar de credenciais git evita o requisito `known_hosts`.

162 162 

163Consulte [Criar e distribuir um marketplace de plugins](/docs/pt/plugin-marketplaces) para o guia completo de construção de marketplaces.163Consulte [Criar e distribuir um marketplace de plugins](/docs/pt/plugins/create-marketplace) para o guia completo de construção de marketplaces.

164 164 

165<h3 id="pre-register-ghes-marketplaces-with-managed-settings">165<h3 id="pre-register-ghes-marketplaces-with-managed-settings">

166 Pré-registre marketplaces GHES com configurações gerenciadas166 Pré-registre marketplaces GHES com configurações gerenciadas


262 262 

263* [Use Claude Code na nuvem](/docs/pt/claude-code-on-the-web): execute sessões do Claude Code em infraestrutura em nuvem263* [Use Claude Code na nuvem](/docs/pt/claude-code-on-the-web): execute sessões do Claude Code em infraestrutura em nuvem

264* [Code Review](/docs/pt/code-review): revisões automatizadas de PR264* [Code Review](/docs/pt/code-review): revisões automatizadas de PR

265* [Marketplaces de plugins](/docs/pt/plugin-marketplaces): construir e distribuir catálogos de plugins265* [Marketplaces de plugins](/docs/pt/plugins/host-marketplace): construir e distribuir catálogos de plugins

266* [Analytics](/docs/pt/analytics): rastrear uso e métricas de contribuição266* [Analytics](/docs/pt/analytics): rastrear uso e métricas de contribuição

267* [Configurações gerenciadas](/docs/pt/settings): configuração de política em toda a organização267* [Configurações gerenciadas](/docs/pt/settings): configuração de política em toda a organização

268* [Configuração de rede](/docs/pt/network-config): requisitos de firewall e lista de permissões de IP268* [Configuração de rede](/docs/pt/network-config): requisitos de firewall e lista de permissões de IP

glossary.md +2 −2

Details

332 Plugin332 Plugin

333</h3>333</h3>

334 334 

335Um pacote de skills, hooks, subagents e servidores MCP empacotados como uma unidade instalável única. Plugin skills são nomeados como `plugin-name:skill-name` para que múltiplos plugins coexistam. Distribua plugins entre equipes via um [marketplace](/docs/pt/plugin-marketplaces).335Um pacote de skills, hooks, subagents e servidores MCP empacotados como uma unidade instalável única. Plugin skills são nomeados como `plugin-name:skill-name` para que múltiplos plugins coexistam. Distribua plugins entre equipes via um [marketplace](/docs/pt/plugins/overview).

336 336 

337Saiba mais: [Plugins](/docs/pt/plugins)337Saiba mais: [Plugins](/docs/pt/plugins/overview)

338 338 

339<h3 id="project-trust">339<h3 id="project-trust">

340 Project trust340 Project trust

headless.md +1 −1

Details

38 Comece mais rápido com modo bare38 Comece mais rápido com modo bare

39</h3>39</h3>

40 40 

41Adicione `--bare` para reduzir o tempo de inicialização pulando a descoberta automática de hooks, skills, comandos personalizados, [subagentos](/docs/pt/sub-agents), plugins, servidores MCP, memória automática e CLAUDE.md. Sem ele, `claude -p` carrega o mesmo [contexto](/docs/pt/how-claude-code-works#the-context-window) que uma sessão interativa carregaria, incluindo qualquer coisa configurada no diretório de trabalho ou `~/.claude`.41Adicione `--bare` para reduzir o tempo de inicialização pulando a descoberta automática de hooks, skills, comandos personalizados, [subagentos](/docs/pt/sub-agents), plugins instalados, servidores MCP, memória automática e CLAUDE.md. Sem ele, `claude -p` carrega o mesmo [contexto](/docs/pt/how-claude-code-works#the-context-window) que uma sessão interativa carregaria, incluindo qualquer coisa configurada no diretório de trabalho ou `~/.claude`.

42 42 

43O modo bare é útil para CI e scripts onde você precisa do mesmo resultado em cada máquina. Um hook no `~/.claude` de um colega de trabalho ou um servidor MCP no `.mcp.json` do projeto não serão executados, porque o modo bare nunca os lê. Um diretório que você nomeia com `--add-dir` é uma exceção parcial: o modo bare carrega skills de sua pasta `.claude/skills/`, mas ainda pula suas pastas `.claude/commands/` e `.claude/agents/`. [Skills de diretórios adicionais](/docs/pt/skills#skills-from-additional-directories) cobre o que carrega e o que não carrega.43O modo bare é útil para CI e scripts onde você precisa do mesmo resultado em cada máquina. Um hook no `~/.claude` de um colega de trabalho ou um servidor MCP no `.mcp.json` do projeto não serão executados, porque o modo bare nunca os lê. Um diretório que você nomeia com `--add-dir` é uma exceção parcial: o modo bare carrega skills de sua pasta `.claude/skills/`, mas ainda pula suas pastas `.claude/commands/` e `.claude/agents/`. [Skills de diretórios adicionais](/docs/pt/skills#skills-from-additional-directories) cobre o que carrega e o que não carrega.

44 44 

hooks.md +11 −13

Details

259Onde você define um hook determina seu escopo:259Onde você define um hook determina seu escopo:

260 260 

261| Local | Escopo | Compartilhável |261| Local | Escopo | Compartilhável |

262| :---------------------------------------- | :------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------- |262| :------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------- |

263| `~/.claude/settings.json` | Todos os seus projetos | Não, local para sua máquina |263| `~/.claude/settings.json` | Todos os seus projetos | Não, local para sua máquina |

264| `.claude/settings.json` | Projeto único | Sim, pode ser confirmado no repositório |264| `.claude/settings.json` | Projeto único | Sim, pode ser confirmado no repositório |

265| `.claude/settings.local.json` | Projeto único | Não, gitignored quando Claude Code salva uma configuração nele |265| `.claude/settings.local.json` | Projeto único | Não, gitignored quando Claude Code salva uma configuração nele |

266| Configurações de política gerenciada | Organização inteira | Sim, controlado por administrador |266| Configurações de política gerenciada | Organização inteira | Sim, controlado por administrador |

267| [Plugin](/docs/pt/plugins) `hooks/hooks.json` | Quando o plugin está ativado | Sim, agrupado com o plugin |267| [Plugin](/docs/pt/plugins/overview) `hooks/hooks.json` | Quando o plugin está ativado | Sim, agrupado com o plugin |

268| Frontmatter de [Skill](/docs/pt/skills) | O resto da sessão uma vez que a skill é invocada. Consulte [Hooks em skills e agentes](#hooks-in-skills-and-agents) | Sim, definido no arquivo da skill |268| Frontmatter de [Skill](/docs/pt/skills) | O resto da sessão uma vez que a skill é invocada. Consulte [Hooks em skills e agentes](#hooks-in-skills-and-agents) | Sim, definido no arquivo da skill |

269| Frontmatter de [Subagent](/docs/pt/sub-agents) | Enquanto esse subagente está em execução | Sim, definido no arquivo do subagente |269| Frontmatter de [Subagent](/docs/pt/sub-agents) | Enquanto esse subagente está em execução | Sim, definido no arquivo do subagente |

270 270 

271Sessões em nuvem em [Claude Code na web](/docs/pt/claude-code-on-the-web) não leem seu `~/.claude/settings.json` local; hooks lá vêm do repositório `.claude/settings.json` em uma sessão com um repositório, dos plugins [sincronizados da sua conta claude.ai](/docs/pt/plugins-reference#synced-plugins) e das configurações gerenciadas pelo servidor da sua organização. Em um [ambiente auto-hospedado](/docs/pt/self-hosted-environments-configuration#permissions-and-tool-approval), Claude Code também executa os hooks que o operador propagou do `~/.claude/` do host do runner, e executa os hooks no arquivo de configurações gerenciadas da imagem do runner quando esse arquivo está entre as [fontes gerenciadas que Claude Code aplica](/docs/pt/managed-settings#how-claude-code-combines-managed-sources), o que por padrão significa apenas quando nem configurações gerenciadas pelo servidor nem uma política Claude Code entregue por MDM fornece o nível gerenciado. Consulte [o que é transferido da sua configuração](/docs/pt/cloud-environments#what-carries-over-from-your-setup) para saber quais arquivos chegam a uma sessão em nuvem.271Sessões em nuvem em [Claude Code na web](/docs/pt/claude-code-on-the-web) não leem seu `~/.claude/settings.json` local. Em um [ambiente auto-hospedado](/docs/pt/self-hosted-environments-configuration#permissions-and-tool-approval), Claude Code também executa os hooks que o operador propagou do `~/.claude/` do host do runner, e executa os hooks no arquivo de configurações gerenciadas da imagem do runner quando esse arquivo está entre as [fontes gerenciadas que Claude Code aplica](/docs/pt/managed-settings#how-claude-code-combines-managed-sources), o que por padrão significa apenas quando nem configurações gerenciadas pelo servidor nem uma política Claude Code entregue por MDM fornece o nível gerenciado. Consulte [o que é transferido da sua configuração](/docs/pt/cloud-environments#what-carries-over-from-your-setup) para saber quais arquivos de configurações e plugins, e portanto quais hooks, chegam a uma sessão em nuvem.

272 272 

273Para detalhes sobre resolução de arquivo de configurações, consulte [settings](/docs/pt/settings).273Para detalhes sobre resolução de arquivo de configurações, consulte [settings](/docs/pt/settings).

274 274 


278 278 

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

280* Claude Code também restringe suas configurações [`statusLine`](/docs/pt/statusline), [`fileSuggestion`](/docs/pt/settings-reference#filesuggestion) e [`subagentStatusLine`](/docs/pt/statusline#subagent-status-lines) às configurações gerenciadas280* Claude Code também restringe suas configurações [`statusLine`](/docs/pt/statusline), [`fileSuggestion`](/docs/pt/settings-reference#filesuggestion) e [`subagentStatusLine`](/docs/pt/statusline#subagent-status-lines) às configurações gerenciadas

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

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

283 283 

284Consulte [o que executa sob `allowManagedHooksOnly`](/docs/pt/settings-reference#what-runs-under-allowmanagedhooksonly).284Consulte [o que executa sob `allowManagedHooksOnly`](/docs/pt/settings-reference#what-runs-under-allowmanagedhooksonly).

285 285 


304 304 

305Um matcher no caminho de expressão regular é testado com `RegExp.prototype.test` do JavaScript, que sucede em uma correspondência em qualquer lugar no valor. `Edit.*` corresponde tanto a `Edit` quanto a `NotebookEdit`; envolva o padrão em `^` e `$`, como em `^Edit$`, quando você precisa de uma correspondência de string inteira.305Um matcher no caminho de expressão regular é testado com `RegExp.prototype.test` do JavaScript, que sucede em uma correspondência em qualquer lugar no valor. `Edit.*` corresponde tanto a `Edit` quanto a `NotebookEdit`; envolva o padrão em `^` e `$`, como em `^Edit$`, quando você precisa de uma correspondência de string inteira.

306 306 

307Separadores de vírgula e a tolerância de espaço em branco ao redor requerem Claude Code v2.1.191 ou posterior.

308 

309Hífens no conjunto de correspondência exata requerem Claude Code v2.1.195 ou posterior. Em versões anteriores, um nome com hífen como `code-reviewer` é avaliado como uma expressão regular não ancorada, então também dispara para `senior-code-reviewer`; ancorá-lo como `^code-reviewer$` nessas versões para corresponder apenas a esse nome.307Hífens no conjunto de correspondência exata requerem Claude Code v2.1.195 ou posterior. Em versões anteriores, um nome com hífen como `code-reviewer` é avaliado como uma expressão regular não ancorada, então também dispara para `senior-code-reviewer`; ancorá-lo como `^code-reviewer$` nessas versões para corresponder apenas a esse nome.

310 308 

311`FileChanged` e `StopFailure` usam um conjunto de correspondência exata mais estreito de apenas letras, dígitos, `_` e `|`. Um hífen, espaço ou vírgula em um matcher para esses dois eventos o mantém no caminho de expressão regular, e apenas `|` separa alternativas. Todos os outros eventos com suporte a matcher na tabela a seguir aceitam `|` ou `,`.309`FileChanged` e `StopFailure` usam um conjunto de correspondência exata mais estreito de apenas letras, dígitos, `_` e `|`. Um hífen, espaço ou vírgula em um matcher para esses dois eventos o mantém no caminho de expressão regular, e apenas `|` separa alternativas. Todos os outros eventos com suporte a matcher na tabela a seguir aceitam `|` ou `,`.


516 514 

517Ambas as formas suportam os mesmos [placeholders de caminho](#reference-scripts-by-path), e ambas os exportam como as variáveis de ambiente `CLAUDE_PROJECT_DIR`, `CLAUDE_PLUGIN_ROOT` e `CLAUDE_PLUGIN_DATA` no processo gerado, então um script pode ler `process.env.CLAUDE_PLUGIN_ROOT` independentemente de como foi lançado.515Ambas as formas suportam os mesmos [placeholders de caminho](#reference-scripts-by-path), e ambas os exportam como as variáveis de ambiente `CLAUDE_PROJECT_DIR`, `CLAUDE_PLUGIN_ROOT` e `CLAUDE_PLUGIN_DATA` no processo gerado, então um script pode ler `process.env.CLAUDE_PLUGIN_ROOT` independentemente de como foi lançado.

518 516 

519Hooks de plugin adicionalmente substituem valores [`${user_config.*}`](/docs/pt/plugins-reference#user-configuration), apenas em forma exec: o valor é substituído em `command` e em cada elemento `args` como uma string simples, então nenhum shell o re-analisa.517Hooks de plugin adicionalmente substituem valores [`${user_config.*}`](/docs/pt/plugins/manifest-reference#user-configuration), apenas em forma exec: o valor é substituído em `command` e em cada elemento `args` como uma string simples, então nenhum shell o re-analisa.

520 518 

521Um hook de plugin em forma shell cujo `command` referencia `${user_config.*}` falha com um [erro](/docs/pt/errors#plugin-command-references-user-config) em vez de executar. Para usar um valor de opção de um hook em forma shell, leia a variável de ambiente `$CLAUDE_PLUGIN_OPTION_<KEY>`, como `$CLAUDE_PLUGIN_OPTION_WEBHOOK_URL` para uma opção `webhook_url`, ou defina `args` para mudar o hook para forma exec. Antes de v2.1.207, comandos de hook de plugin em forma shell também substituíam `${user_config.*}`.519Um hook de plugin em forma shell cujo `command` referencia `${user_config.*}` falha com um [erro](/docs/pt/errors#plugin-command-references-user-config) em vez de executar. Para usar um valor de opção de um hook em forma shell, leia a variável de ambiente `$CLAUDE_PLUGIN_OPTION_<KEY>`, como `$CLAUDE_PLUGIN_OPTION_WEBHOOK_URL` para uma opção `webhook_url`, ou defina `args` para mudar o hook para forma exec. Antes de v2.1.207, comandos de hook de plugin em forma shell também substituíam `${user_config.*}`.

522 520 


647Use esses placeholders para referenciar scripts de hook relativos à raiz do projeto ou plugin, independentemente do diretório de trabalho quando o hook executa:645Use esses placeholders para referenciar scripts de hook relativos à raiz do projeto ou plugin, independentemente do diretório de trabalho quando o hook executa:

648 646 

649* `${CLAUDE_PROJECT_DIR}`: a raiz do projeto onde a sessão começou. Claude Code também define essa variável no ambiente de [servidores MCP stdio](/docs/pt/mcp#option-3-add-a-local-stdio-server) e servidores LSP de plugin.647* `${CLAUDE_PROJECT_DIR}`: a raiz do projeto onde a sessão começou. Claude Code também define essa variável no ambiente de [servidores MCP stdio](/docs/pt/mcp#option-3-add-a-local-stdio-server) e servidores LSP de plugin.

650* `${CLAUDE_PLUGIN_ROOT}`: o diretório de instalação do plugin, para scripts agrupados com um [plugin](/docs/pt/plugins). Consulte [variáveis de ambiente de plugin](/docs/pt/plugins-reference#environment-variables) para saber como o caminho se comporta entre atualizações.648* `${CLAUDE_PLUGIN_ROOT}`: o diretório de instalação do plugin, para scripts agrupados com um [plugin](/docs/pt/plugins/overview). Consulte [variáveis de ambiente de plugin](/docs/pt/plugins/manifest-reference#environment-variables) para saber como o caminho se comporta entre atualizações.

651* `${CLAUDE_PLUGIN_DATA}`: o [diretório de dados persistentes](/docs/pt/plugins-reference#persistent-data-directory) do plugin, para dependências e estado que devem sobreviver a atualizações de plugin.649* `${CLAUDE_PLUGIN_DATA}`: o [diretório de dados persistentes](/docs/pt/plugins/components#path-variables-and-persistent-data) do plugin, para dependências e estado que devem sobreviver a atualizações de plugin.

652 650 

653<Note>651<Note>

654 **Worktrees são diferentes.** Se Claude entra em uma [worktree](/docs/pt/worktrees) durante a sessão, Claude Code mantém `${CLAUDE_PROJECT_DIR}` onde estava e passa o caminho da worktree para seus hooks de uma forma diferente:652 **Worktrees são diferentes.** Se Claude entra em uma [worktree](/docs/pt/worktrees) durante a sessão, Claude Code mantém `${CLAUDE_PROJECT_DIR}` onde estava e passa o caminho da worktree para seus hooks de uma forma diferente:


709 }707 }

710 ```708 ```

711 709 

712 Consulte a [referência de componentes de plugin](/docs/pt/plugins-reference#hooks) para detalhes sobre como criar hooks de plugin.710 Consulte a [referência de componentes de plugin](/docs/pt/plugins/components#hooks) para detalhes sobre como criar hooks de plugin.

713 </Tab>711 </Tab>

714</Tabs>712</Tabs>

715 713 


1351 1349 

1352No sucesso, `--init-only` não imprime nada no terminal. Para confirmar que os hooks foram executados, comece com `claude --debug-file <path> --init-only`, substituindo `<path>` por um local de arquivo de log, e verifique o log para as entradas de hook Setup e SessionStart.1350No sucesso, `--init-only` não imprime nada no terminal. Para confirmar que os hooks foram executados, comece com `claude --debug-file <path> --init-only`, substituindo `<path>` por um local de arquivo de log, e verifique o log para as entradas de hook Setup e SessionStart.

1353 1351 

1354Como Setup não é disparado a cada lançamento, um plugin que precisa de uma dependência instalada não pode contar apenas com Setup. O padrão prático é verificar a dependência no primeiro uso e instalar se ausente, por exemplo um hook ou skill que testa `${CLAUDE_PLUGIN_DATA}/node_modules` e executa `npm install` se ausente. Veja o [diretório de dados persistentes](/docs/pt/plugins-reference#persistent-data-directory) para onde armazenar dependências instaladas. Se você distribuir seu plugin através de um marketplace, você pode não precisar deste padrão: Claude Code [instala automaticamente dependências de pacote Node.js elegíveis](/docs/pt/plugins-reference#node-js-package-dependencies) quando armazena em cache o plugin.1352Como Setup não é disparado a cada lançamento, um plugin que precisa de uma dependência instalada não pode contar apenas com Setup. O padrão prático é verificar a dependência no primeiro uso e instalar se ausente, por exemplo um hook ou skill que testa `${CLAUDE_PLUGIN_DATA}/node_modules` e executa `npm install` se ausente. Veja o [diretório de dados persistentes](/docs/pt/plugins/components#path-variables-and-persistent-data) para onde armazenar dependências instaladas. Se você distribuir seu plugin através de um marketplace, você pode não precisar deste padrão: Claude Code [instala automaticamente dependências de pacote Node.js elegíveis](/docs/pt/plugins/loading#node-js-package-dependencies) quando armazena em cache o plugin.

1355 1353 

1356<h4 id="setup-input">1354<h4 id="setup-input">

1357 Entrada Setup1355 Entrada Setup


2530 2528 

2531Executado quando Claude gera um subagente com a ferramenta Agent, quando Claude [retoma um subagente](/docs/pt/sub-agents#resume-subagents) e cada vez que um [colega de equipe de agente](/docs/pt/agent-teams) em processo manipula uma nova mensagem. Suporta matchers para filtrar por nome de tipo de agente. Para agentes integrados, este é o nome do agente como `general-purpose`, `Explore` ou `Plan`. Para [subagentes personalizados](/docs/pt/sub-agents), este é o campo `name` do frontmatter do agente, não o nome do arquivo.2529Executado quando Claude gera um subagente com a ferramenta Agent, quando Claude [retoma um subagente](/docs/pt/sub-agents#resume-subagents) e cada vez que um [colega de equipe de agente](/docs/pt/agent-teams) em processo manipula uma nova mensagem. Suporta matchers para filtrar por nome de tipo de agente. Para agentes integrados, este é o nome do agente como `general-purpose`, `Explore` ou `Plan`. Para [subagentes personalizados](/docs/pt/sub-agents), este é o campo `name` do frontmatter do agente, não o nome do arquivo.

2532 2530 

2533Para subagentes enviados por um [plugin](/docs/pt/plugins), o tipo de agente é o identificador com escopo de plugin como `my-plugin:reviewer`, não o nome de frontmatter nú. O dois-pontos coloca um nome com escopo de plugin no caminho de expressão regular, portanto ancor o matcher com `^` e `$` para uma correspondência exata: `^my-plugin:reviewer$`.2531Para subagentes enviados por um [plugin](/docs/pt/plugins/overview), o tipo de agente é o identificador com escopo de plugin como `my-plugin:reviewer`, não o nome de frontmatter nú. O dois-pontos coloca um nome com escopo de plugin no caminho de expressão regular, portanto ancor o matcher com `^` e `$` para uma correspondência exata: `^my-plugin:reviewer$`.

2534 2532 

2535<h4 id="subagentstart-input">2533<h4 id="subagentstart-input">

2536 Entrada SubagentStart2534 Entrada SubagentStart

hooks-guide.md +2 −2

Details

10 10 

11Para decisões que exigem julgamento em vez de regras determinísticas, você também pode usar [hooks baseados em prompt](#prompt-based-hooks) ou [hooks baseados em agente](#agent-based-hooks) que usam um modelo Claude para avaliar condições.11Para decisões que exigem julgamento em vez de regras determinísticas, você também pode usar [hooks baseados em prompt](#prompt-based-hooks) ou [hooks baseados em agente](#agent-based-hooks) que usam um modelo Claude para avaliar condições.

12 12 

13Para outras formas de estender Claude Code, consulte [skills](/docs/pt/skills) para dar ao Claude instruções adicionais e comandos executáveis, [subagents](/docs/pt/sub-agents) para executar tarefas em contextos isolados e [plugins](/docs/pt/plugins) para empacotar extensões para compartilhar entre projetos.13Para outras formas de estender Claude Code, consulte [skills](/docs/pt/skills) para dar ao Claude instruções adicionais e comandos executáveis, [subagents](/docs/pt/sub-agents) para executar tarefas em contextos isolados e [plugins](/docs/pt/plugins/overview) para empacotar extensões para compartilhar entre projetos.

14 14 

15<Tip>15<Tip>

16 Este guia cobre casos de uso comuns e como começar. Para esquemas de eventos completos, formatos de entrada/saída JSON e recursos avançados como hooks assíncronos e hooks de ferramentas MCP, consulte a [referência de Hooks](/docs/pt/hooks).16 Este guia cobre casos de uso comuns e como começar. Para esquemas de eventos completos, formatos de entrada/saída JSON e recursos avançados como hooks assíncronos e hooks de ferramentas MCP, consulte a [referência de Hooks](/docs/pt/hooks).


710}710}

711```711```

712 712 

713O matcher `"Edit|Write"` dispara apenas quando Claude usa a ferramenta `Edit` ou `Write`, não quando usa `Bash`, `Read` ou qualquer outra ferramenta. No Claude Code v2.1.191 ou posterior, uma vírgula separa alternativas da mesma forma, então `"Edit, Write"` é equivalente. Consulte [Padrões de matcher](/docs/pt/hooks#matcher-patterns) para como nomes simples e expressões regulares são avaliados.713O matcher `"Edit|Write"` dispara apenas quando Claude usa a ferramenta `Edit` ou `Write`, não quando usa `Bash`, `Read` ou qualquer outra ferramenta. Uma vírgula separa alternativas da mesma forma, então `"Edit, Write"` é equivalente. Consulte [Padrões de matcher](/docs/pt/hooks#matcher-patterns) para como nomes simples e expressões regulares são avaliados.

714 714 

715<Note>715<Note>

716 Claude também pode criar ou modificar arquivos executando comandos shell. Se seu hook deve ver cada mudança de arquivo, como para varredura de conformidade ou registro de auditoria, adicione um hook [`Stop`](/docs/pt/hooks#stop) que varre a árvore de trabalho uma vez por turno. Para cobertura por chamada em vez disso, também corresponda `Bash|PowerShell` e tenha seu script listar arquivos modificados e não rastreados com `git status --porcelain`. A seção [Entrada do hook PowerShell](/docs/pt/hooks#powershell) explica por que corresponder apenas `Bash` não é suficiente. Para executar um hook quando um arquivo específico muda no disco, seja qual for o que o escreveu, use um hook [FileChanged](/docs/pt/hooks#filechanged).716 Claude também pode criar ou modificar arquivos executando comandos shell. Se seu hook deve ver cada mudança de arquivo, como para varredura de conformidade ou registro de auditoria, adicione um hook [`Stop`](/docs/pt/hooks#stop) que varre a árvore de trabalho uma vez por turno. Para cobertura por chamada em vez disso, também corresponda `Bash|PowerShell` e tenha seu script listar arquivos modificados e não rastreados com `git status --porcelain`. A seção [Entrada do hook PowerShell](/docs/pt/hooks#powershell) explica por que corresponder apenas `Bash` não é suficiente. Para executar um hook quando um arquivo específico muda no disco, seja qual for o que o escreveu, use um hook [FileChanged](/docs/pt/hooks#filechanged).

Details

45As ferramentas integradas geralmente se enquadram em cinco categorias, cada uma representando um tipo diferente de agência.45As ferramentas integradas geralmente se enquadram em cinco categorias, cada uma representando um tipo diferente de agência.

46 46 

47| Categoria | O que Claude pode fazer |47| Categoria | O que Claude pode fazer |

48| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |48| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |

49| **Operações de arquivo** | Ler arquivos, editar código, criar novos arquivos, renomear e reorganizar |49| **Operações de arquivo** | Ler arquivos, editar código, criar novos arquivos, renomear e reorganizar |

50| **Pesquisa** | Encontrar arquivos por padrão, pesquisar conteúdo com regex, explorar bases de código |50| **Pesquisa** | Encontrar arquivos por padrão, pesquisar conteúdo com regex, explorar bases de código |

51| **Execução** | Executar comandos shell, iniciar servidores, executar testes, usar git |51| **Execução** | Executar comandos shell, iniciar servidores, executar testes, usar git |

52| **Web** | Pesquisar a web, buscar documentação, procurar mensagens de erro |52| **Web** | Pesquisar a web, buscar documentação, procurar mensagens de erro |

53| **Inteligência de código** | Ver erros de tipo e avisos após edições, pular para definições, encontrar referências (requer [plugins de inteligência de código](/docs/pt/discover-plugins#code-intelligence)) |53| **Inteligência de código** | Ver erros de tipo e avisos após edições, pular para definições, encontrar referências (requer [plugins de inteligência de código](/docs/pt/plugins/code-intelligence)) |

54 54 

55Essas são as capacidades principais. Claude também tem ferramentas para gerar subagents, fazer perguntas a você e outras tarefas de orquestração. Consulte [Ferramentas disponíveis para Claude](/docs/pt/tools-reference) para a lista completa.55Essas são as capacidades principais. Claude também tem ferramentas para gerar subagents, fazer perguntas a você e outras tarefas de orquestração. Consulte [Ferramentas disponíveis para Claude](/docs/pt/tools-reference) para a lista completa.

56 56 

Details

32| `Ctrl+V` ou `Cmd+V` (iTerm2) ou `Alt+V` (Windows e WSL) | Colar imagem da área de transferência | Insere um chip `[Image #N]` no cursor para que você possa referenciá-lo posicionalmente no seu prompt. No WSL, tanto `Ctrl+V` quanto `Alt+V` estão vinculados; use `Alt+V` se seu terminal interceptar `Ctrl+V` |32| `Ctrl+V` ou `Cmd+V` (iTerm2) ou `Alt+V` (Windows e WSL) | Colar imagem da área de transferência | Insere um chip `[Image #N]` no cursor para que você possa referenciá-lo posicionalmente no seu prompt. No WSL, tanto `Ctrl+V` quanto `Alt+V` estão vinculados; use `Alt+V` se seu terminal interceptar `Ctrl+V` |

33| `Ctrl+B` | Tarefas em execução em segundo plano | Coloca comandos Bash e agentes em segundo plano. Usuários de Tmux pressionam duas vezes |33| `Ctrl+B` | Tarefas em execução em segundo plano | Coloca comandos Bash e agentes em segundo plano. Usuários de Tmux pressionam duas vezes |

34| `Ctrl+T` | Alternar lista de tarefas do Claude | Mostrar ou ocultar [lista de tarefas do Claude](#task-list) na área de status. Esta não é a visualização de tarefas em segundo plano; use [`/tasks`](/docs/pt/commands) para ver shells e subagentes em execução |34| `Ctrl+T` | Alternar lista de tarefas do Claude | Mostrar ou ocultar [lista de tarefas do Claude](#task-list) na área de status. Esta não é a visualização de tarefas em segundo plano; use [`/tasks`](/docs/pt/commands) para ver shells e subagentes em execução |

35| `Ctrl+S` | Guardar ou restaurar prompt | Com texto na entrada, guarda-o e limpa o prompt. Pressionado novamente em um prompt vazio, restaura o texto guardado, posição do cursor e conteúdo colado |35| `Ctrl+S` | Guardar ou restaurar prompt | Com texto na entrada, guarda-o e limpa o prompt. Pressionado novamente em um prompt vazio, restaura o texto guardado, posição do cursor, conteúdo colado e modo de entrada, para que um `!` guardado [comando shell](#shell-mode-with-prefix) volte em modo shell |

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

37| `Setas Esquerda/Direita` | Ciclar através de abas de diálogo | Navegue entre abas em diálogos de permissão e menus |37| `Setas Esquerda/Direita` | Ciclar através de abas de diálogo | Navegue entre abas em diálogos de permissão e menus |

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

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

40| `Esc` | Interromper Claude ou fechar um diálogo | Pare a resposta atual ou chamada de ferramenta no meio da volta para que você possa redirecionar. Claude mantém o trabalho feito até agora. Se você tiver [mensagens enfileiradas](#queue-messages-while-claude-works), Claude Code as envia a seguir. Quando um diálogo está aberto, `Esc` fecha o diálogo. Em um prompt de permissão, `Esc` recusa a ação, o mesmo que [**Não** sem um comentário](/docs/pt/permissions#add-a-comment-when-you-answer-a-permission-prompt) |40| `Esc` | Interromper Claude ou fechar um diálogo | Pare a resposta atual ou chamada de ferramenta no meio da volta para que você possa redirecionar. Claude mantém o trabalho feito até agora. Se você tiver [mensagens enfileiradas](#queue-messages-while-claude-works), Claude Code as envia a seguir. Quando um diálogo está aberto, `Esc` fecha o diálogo. Em um prompt de permissão, `Esc` recusa a ação, o mesmo que [**Não** sem um comentário](/docs/pt/permissions#add-a-comment-when-you-answer-a-permission-prompt) |

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

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

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

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

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


136 Comandos136 Comandos

137</h2>137</h2>

138 138 

139Digite `/` no Claude Code para ver os comandos disponíveis para você, ou digite `/` seguido de qualquer letra para filtrar. O menu `/` lista comandos integrados, [skills](/docs/pt/skills) agrupadas e criadas por usuários, e comandos contribuídos por [plugins](/docs/pt/plugins) e [servidores MCP](/docs/pt/mcp#use-mcp-prompts-as-commands). Nem todos os comandos integrados são visíveis para todos os usuários, pois alguns dependem da sua plataforma ou plano, e [alguns comandos disponíveis estão ocultos do menu por design](/docs/pt/commands#how-the-command-menu-matches-what-you-type) e são executados quando você digita seu nome completo.139Digite `/` no Claude Code para ver os comandos disponíveis para você, ou digite `/` seguido de qualquer letra para filtrar. O menu `/` lista comandos integrados, [skills](/docs/pt/skills) agrupadas e criadas por usuários, e comandos contribuídos por [plugins](/docs/pt/plugins/overview) e [servidores MCP](/docs/pt/mcp#use-mcp-prompts-as-commands). Nem todos os comandos integrados são visíveis para todos os usuários, pois alguns dependem da sua plataforma ou plano, e [alguns comandos disponíveis estão ocultos do menu por design](/docs/pt/commands#how-the-command-menu-matches-what-you-type) e são executados quando você digita seu nome completo.

140 140 

141Na [renderização em tela cheia](/docs/pt/fullscreen#use-the-mouse), o comando `/` e as listas de sugestão de arquivo `@` também respondem ao mouse: passar o mouse destaca uma linha e clicar a aceita.141Na [renderização em tela cheia](/docs/pt/fullscreen#use-the-mouse), o comando `/` e as listas de sugestão de arquivo `@` também respondem ao mouse: passar o mouse destaca uma linha e clicar a aceita.

142 142 


408* Mensagens: se você enfileirar uma mensagem enquanto Claude está executando chamadas de ferramentas, Claude Code a passa para Claude assim que essas chamadas de ferramentas terminam, dentro da mesma rodada. Quando a rodada termina com mensagens ainda enfileiradas, elas saem sem outra pressão de tecla, na ordem em que você as digitou408* Mensagens: se você enfileirar uma mensagem enquanto Claude está executando chamadas de ferramentas, Claude Code a passa para Claude assim que essas chamadas de ferramentas terminam, dentro da mesma rodada. Quando a rodada termina com mensagens ainda enfileiradas, elas saem sem outra pressão de tecla, na ordem em que você as digitou

409* Comandos e comandos shell: Claude Code os mantém até o final da rodada, depois os executa um de cada vez, mantendo a ordem em que você os enfileirou409* Comandos e comandos shell: Claude Code os mantém até o final da rodada, depois os executa um de cada vez, mantendo a ordem em que você os enfileirou

410 410 

411Para enviar o que você enfileirou sem esperar a rodada terminar, pressione `Ctrl+Enter`. Claude Code interrompe a rodada, e suas mensagens enfileiradas saem imediatamente, com seu rascunho enfileirado atrás delas se você tiver digitado um. Em [modo shell](#shell-mode-with-prefix), a tecla enfileira seu comando sem interromper a rodada. Requer Claude Code v2.1.275 ou posterior.411Para enviar o que você enfileirou sem esperar, pressione `Ctrl+Enter`. Suas mensagens enfileiradas saem imediatamente, com seu rascunho enfileirado atrás delas se você tiver digitado um. Requer Claude Code v2.1.275 ou posterior.

412 412 

413Em terminais que não relatam teclas estendidas, `Ctrl+Enter` chega como `Enter` simples e enfileira o rascunho em vez disso; `Ctrl+X Ctrl+S` funciona em qualquer terminal. Ambas as teclas são vinculações da ação [`chat:sendNow`](/docs/pt/keybindings#chat-actions).413Se você enfileirou um comando `!` shell à frente de suas mensagens, a tecla interrompe a rodada. Caso contrário, o que acontece com a rodada depende do que Claude está fazendo quando você pressiona a tecla:

414 

415* Executando comandos shell, subagentes ou outro trabalho que pode se mover para o [background](#background-bash-commands): esse trabalho se move para o background e continua em execução, e Claude lê suas mensagens na mesma rodada

416* Apenas escrevendo uma resposta, ou executando algo que não pode se mover para o background: Claude Code interrompe a rodada e envia suas mensagens em seguida. Antes da v2.1.281, a tecla interrompia a rodada em ambos os casos

417 

418Em [modo shell](#shell-mode-with-prefix), a tecla apenas enfileira seu comando. Em terminais que não relatam teclas estendidas, `Ctrl+Enter` chega como `Enter` simples e enfileira o rascunho em vez disso; `Ctrl+X Ctrl+S` funciona em qualquer terminal. Ambas as teclas são vinculações da ação [`chat:sendNow`](/docs/pt/keybindings#chat-actions).

414 419 

415Pressione `Esc` para interromper a rodada sem enviar seu rascunho. Claude Code mantém o que você enfileirou e o envia imediatamente.420Pressione `Esc` para interromper a rodada sem enviar seu rascunho. Claude Code mantém o que você enfileirou e o envia imediatamente.

416 421 

keybindings.md +18 −2

Details

112Ações disponíveis no contexto `Chat`:112Ações disponíveis no contexto `Chat`:

113 113 

114| Ação | Padrão | Descrição |114| Ação | Padrão | Descrição |

115| :-------------------- | :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |115| :-------------------- | :------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

116| `chat:cancel` | Escape | Cancelar entrada atual |116| `chat:cancel` | Escape | Cancelar entrada atual |

117| `chat:clearInput` | Ctrl+L | Forçar um redesenho de tela cheia, preservando a entrada e a conversa |117| `chat:clearInput` | Ctrl+L | Forçar um redesenho de tela cheia, preservando a entrada e a conversa |

118| `chat:clearScreen` | Cmd+K | Mesmo que `chat:clearInput`. Veja [Limpar a conversa](/docs/pt/fullscreen#clear-the-conversation) para saber como Cmd+K se comporta no iTerm2 e Terminal.app |118| `chat:clearScreen` | Cmd+K | Mesmo que `chat:clearInput`. Veja [Limpar a conversa](/docs/pt/fullscreen#clear-the-conversation) para saber como Cmd+K se comporta no iTerm2 e Terminal.app |


123| `chat:thinkingToggle` | Meta+T | Alternar pensamento estendido |123| `chat:thinkingToggle` | Meta+T | Alternar pensamento estendido |

124| `chat:submit` | Enter | Enviar mensagem |124| `chat:submit` | Enter | Enviar mensagem |

125| `chat:queueSubmit` | Ctrl+X Enter | Enviar a mensagem, marcada para aguardar sua vez: enquanto Claude está trabalhando, Claude Code [a coloca na fila](/docs/pt/interactive-mode#queue-messages-while-claude-works) e nunca interrompe a vez. Ao contrário de `chat:submit`, ela envia o rascunho mesmo enquanto as sugestões de autocompletar estão abertas. Requer v2.1.247 ou posterior |125| `chat:queueSubmit` | Ctrl+X Enter | Enviar a mensagem, marcada para aguardar sua vez: enquanto Claude está trabalhando, Claude Code [a coloca na fila](/docs/pt/interactive-mode#queue-messages-while-claude-works) e nunca interrompe a vez. Ao contrário de `chat:submit`, ela envia o rascunho mesmo enquanto as sugestões de autocompletar estão abertas. Requer v2.1.247 ou posterior |

126| `chat:sendNow` | Ctrl+Enter, Ctrl+X Ctrl+S | Interromper a vez em execução para que suas [mensagens enfileiradas](/docs/pt/interactive-mode#queue-messages-while-claude-works) e seu rascunho com elas saiam imediatamente. Quando nada está em execução, ele envia o rascunho, e no [modo shell](/docs/pt/interactive-mode#shell-mode-with-prefix) ele enfileira o comando sem interromper. Terminais que não relatam chaves estendidas entregam `Ctrl+Enter` como `Enter` simples, portanto `Ctrl+X Ctrl+S` é a vinculação que funciona em qualquer terminal. Requer v2.1.275 ou posterior |126| `chat:sendNow` | Ctrl+Enter, Ctrl+X Ctrl+S | Enviar suas [mensagens enfileiradas](/docs/pt/interactive-mode#queue-messages-while-claude-works) e seu rascunho com elas imediatamente. [Quando Claude Code envia o que você enfileirou](/docs/pt/interactive-mode#when-claude-code-sends-what-you-queued) cobre o que acontece com a vez em que Claude está trabalhando. Quando nada está em execução, a tecla envia o rascunho, e no [modo shell](/docs/pt/interactive-mode#shell-mode-with-prefix) ela apenas enfileira o comando. Terminais que não relatam chaves estendidas entregam `Ctrl+Enter` como `Enter` simples, portanto `Ctrl+X Ctrl+S` é a vinculação que funciona em qualquer terminal. Requer v2.1.275 ou posterior |

127| `chat:newline` | Ctrl+J | Inserir uma nova linha sem enviar |127| `chat:newline` | Ctrl+J | Inserir uma nova linha sem enviar |

128| `chat:undo` | Ctrl+\_, Ctrl+Shift+- | Desfazer última ação |128| `chat:undo` | Ctrl+\_, Ctrl+Shift+- | Desfazer última ação |

129| `chat:externalEditor` | Ctrl+G, Ctrl+X Ctrl+E | Abrir em editor externo. A [entrada de despacho da visualização do agente](/docs/pt/agent-view#keyboard-shortcuts) também segue os atalhos de teclado de ligação única desta ação |129| `chat:externalEditor` | Ctrl+G, Ctrl+X Ctrl+E | Abrir em editor externo. A [entrada de despacho da visualização do agente](/docs/pt/agent-view#keyboard-shortcuts) também segue os atalhos de teclado de ligação única desta ação |


184}184}

185```185```

186 186 

187Com essas vinculações, `y` e `n` ainda digitam como letras enquanto um [campo de texto](#text-fields) tem foco.

188 

187Antes da v2.1.280, `y` também estava vinculado a `confirm:yes` e `n` a `confirm:no` por padrão. Se você criou seu `keybindings.json` com `/keybindings` antes da v2.1.280, o arquivo lista ambas as vinculações e elas permanecem em vigor até que você delete essas duas linhas.189Antes da v2.1.280, `y` também estava vinculado a `confirm:yes` e `n` a `confirm:no` por padrão. Se você criou seu `keybindings.json` com `/keybindings` antes da v2.1.280, o arquivo lista ambas as vinculações e elas permanecem em vigor até que você delete essas duas linhas.

188 190 

189<h3 id="permission-actions">191<h3 id="permission-actions">


634| Ctrl+A | Prefixo GNU screen |636| Ctrl+A | Prefixo GNU screen |

635| Ctrl+Z | Suspensão de processo Unix (SIGTSTP) |637| Ctrl+Z | Suspensão de processo Unix (SIGTSTP) |

636 638 

639<h2 id="text-fields">

640 Campos de texto

641</h2>

642 

643Se você vincular uma letra simples, dígito ou Espaço, ainda poderá digitar esse caractere em um campo de texto dentro de um diálogo ou painel. Um desses campos é a resposta `Other` para uma pergunta que Claude faz. Enquanto o campo tem foco, uma tecla imprimível que você pressiona sem Ctrl, Alt ou Cmd vai para o campo, e Claude Code não a compara com seus vínculos.

644 

645Essas teclas ainda executam seus vínculos enquanto o campo tem foco:

646 

647* Teclas que não digitam um caractere, como Enter, Escape, Tab e as teclas de seta

648* Qualquer tecla pressionada com Ctrl, Alt ou Cmd

649* O segundo pressionamento de uma [chord](#chords) já em progresso

650 

651No prompt principal, Claude Code compara cada tecla contra os contextos ativos, como `Chat`, e digita a tecla apenas quando nenhum vínculo a utiliza.

652 

637<h2 id="vim-mode-interaction">653<h2 id="vim-mode-interaction">

638 Interação com modo vim654 Interação com modo vim

639</h2>655</h2>

Details

202 Reduza leituras de arquivo com inteligência de código202 Reduza leituras de arquivo com inteligência de código

203</h3>203</h3>

204 204 

205Em uma base de código grande, encontrar onde um símbolo é definido ou usado pode custar muitas leituras de arquivo e chamadas grep. [Plugins de inteligência de código](/docs/pt/discover-plugins#code-intelligence) conectam Claude a um servidor de linguagem para que ele possa pular para definições, encontrar referências e exibir erros de tipo diretamente em vez de varrer a árvore.205Em uma base de código grande, encontrar onde um símbolo é definido ou usado pode custar muitas leituras de arquivo e chamadas grep. [Plugins de inteligência de código](/docs/pt/plugins/code-intelligence) conectam Claude a um servidor de linguagem para que ele possa pular para definições, encontrar referências e exibir erros de tipo diretamente em vez de varrer a árvore.

206 206 

207O marketplace oficial tem plugins para TypeScript, Python, Go, Rust e outras linguagens comuns. Execute o comando abaixo dentro de uma sessão Claude Code para instalar o plugin TypeScript:207O marketplace oficial tem plugins para TypeScript, Python, Go, Rust e outras linguagens comuns. Execute o comando abaixo dentro de uma sessão Claude Code para instalar o plugin TypeScript:

208 208 


213Se a instalação falhar, corresponda à mensagem que Claude Code relata:213Se a instalação falhar, corresponda à mensagem que Claude Code relata:

214 214 

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

216* O plugin [não foi encontrado no marketplace](/docs/pt/discover-plugins#install-plugins): verifique o nome do plugin.216* O plugin [não foi encontrado no marketplace](/docs/pt/plugins/install#install-a-plugin): verifique o nome do plugin.

217 217 

218Para habilitar um plugin para todos no repositório em vez de instalá-lo você mesmo, adicione-o à [configuração de projeto `enabledPlugins`](/docs/pt/settings-reference#plugin-settings).218Para habilitar um plugin para todos no repositório em vez de instalá-lo você mesmo, adicione-o à [configuração de projeto `enabledPlugins`](/docs/pt/settings-reference#plugin-settings).

219 219 

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

221 221 

222Isso funciona bem com `claudeMdExcludes` e as regras de negação `Read` acima. Aqueles mantêm conteúdo irrelevante fora do contexto, e a inteligência de código impede que Claude leia o que permanece para localizar uma definição.222Isso funciona bem com `claudeMdExcludes` e as regras de negação `Read` acima. Aqueles mantêm conteúdo irrelevante fora do contexto, e a inteligência de código impede que Claude leia o que permanece para localizar uma definição.

223 223 


395 395 

396Os nomes sempre carregam, mas [quando há muitas, algumas skills perdem suas descrições inteiramente](/docs/pt/skills#skill-descriptions-are-cut-short), que pode remover as palavras-chave que Claude usa para decidir se uma skill se aplica. Mantenha descrições curtas e comece com palavras que uma solicitação conteria, como "escrevendo ou modificando testes em `packages/api/`".396Os nomes sempre carregam, mas [quando há muitas, algumas skills perdem suas descrições inteiramente](/docs/pt/skills#skill-descriptions-are-cut-short), que pode remover as palavras-chave que Claude usa para decidir se uma skill se aplica. Mantenha descrições curtas e comece com palavras que uma solicitação conteria, como "escrevendo ou modificando testes em `packages/api/`".

397 397 

398Para skills que muitos diretórios compartilham, como convenções de PR ou uma checklist de deploy, coloque-as no `.claude/skills/` da raiz do repositório para que carreguem de qualquer diretório inicial. Quando skills compartilhadas precisam de seu próprio histórico de versão ou devem funcionar entre repositórios, empacote-as como um [plugin](/docs/pt/plugins) em vez disso. As skills de plugin usam um namespace `plugin-name:skill-name`, então nunca colidem com skills por diretório. Uma equipe de plataforma pode versioná-las e atualizá-las em um lugar.398Para skills que muitos diretórios compartilham, como convenções de PR ou uma checklist de deploy, coloque-as no `.claude/skills/` da raiz do repositório para que carreguem de qualquer diretório inicial. Quando skills compartilhadas precisam de seu próprio histórico de versão ou devem funcionar entre repositórios, empacote-as como um [plugin](/docs/pt/plugins/overview) em vez disso. As skills de plugin usam um namespace `plugin-name:skill-name`, então nunca colidem com skills por diretório. Uma equipe de plataforma pode versioná-las e atualizá-las em um lugar.

399 399 

400Para encontrar quais skills vão não utilizadas, habilite o exportador OpenTelemetry [logs](/docs/pt/monitoring-usage) e defina `OTEL_LOG_TOOL_DETAILS=1` para que nomes de skill sejam registrados verbatim em vez de redacted. O evento [`skill_activated`](/docs/pt/monitoring-usage#skill-activated-event) registra cada invocação em seu atributo `skill.name`, e `invocation_trigger` registra se um comando, Claude ou uma skill aninhada o invocou, que te diz o que consolidar ou aposentar.400Para encontrar quais skills vão não utilizadas, habilite o exportador OpenTelemetry [logs](/docs/pt/monitoring-usage) e defina `OTEL_LOG_TOOL_DETAILS=1` para que nomes de skill sejam registrados verbatim em vez de redacted. O evento [`skill_activated`](/docs/pt/monitoring-usage#skill-activated-event) registra cada invocação em seu atributo `skill.name`, e `invocation_trigger` registra se um comando, Claude ou uma skill aninhada o invocou, que te diz o que consolidar ou aposentar.

401 401 


408Mova convenções e conteúdo de referência para fora de CLAUDE.md sempre carregado e para mecanismos que carregam sob demanda:408Mova convenções e conteúdo de referência para fora de CLAUDE.md sempre carregado e para mecanismos que carregam sob demanda:

409 409 

410* [Skills](/docs/pt/skills): material de referência que Claude carrega apenas quando relevante para a tarefa410* [Skills](/docs/pt/skills): material de referência que Claude carrega apenas quando relevante para a tarefa

411* [Plugins](/docs/pt/plugins): pacotes versionados de skills, hooks e comandos que uma equipe de plataforma possui centralmente411* [Plugins](/docs/pt/plugins/overview): pacotes versionados de skills, hooks e comandos que uma equipe de plataforma possui centralmente

412* [Servidores MCP](/docs/pt/mcp): se sua organização já executa uma busca de código ou índice RAG sobre o repositório, exponha-o como uma ferramenta MCP para que Claude a consulte em vez de ler arquivos diretamente412* [Servidores MCP](/docs/pt/mcp): se sua organização já executa uma busca de código ou índice RAG sobre o repositório, exponha-o como uma ferramenta MCP para que Claude a consulte em vez de ler arquivos diretamente

413 413 

414Veja [configurações gerenciadas por servidor ou endpoint](/docs/pt/server-managed-settings#choose-between-server-managed-and-endpoint-managed-settings) para como equipes de plataforma podem impor essas centralmente.414Veja [configurações gerenciadas por servidor ou endpoint](/docs/pt/server-managed-settings#choose-between-server-managed-and-endpoint-managed-settings) para como equipes de plataforma podem impor essas centralmente.

managed-mcp.md +1 −1

Details

41| **Sem restrições** | Os usuários adicionam qualquer coisa | Não implante nenhuma configuração MCP gerenciada |41| **Sem restrições** | Os usuários adicionam qualquer coisa | Não implante nenhuma configuração MCP gerenciada |

42 42 

43<Note>43<Note>

44 Claude Code não possui um registro de servidor MCP integrado que os usuários possam procurar e instalar. Para o padrão de catálogo aprovado, compartilhe a lista aprovada e seus comandos `claude mcp add` em algum lugar onde seus usuários a encontrem, como um wiki interno, ou distribua os servidores como plugins através de um [marketplace de plugin gerenciado](/docs/pt/plugin-marketplaces#managed-marketplace-restrictions) para que os usuários possam procurar e instalá-los em `/plugin`.44 Claude Code não possui um registro de servidor MCP integrado que os usuários possam procurar e instalar. Para o padrão de catálogo aprovado, compartilhe a lista aprovada e seus comandos `claude mcp add` em algum lugar onde seus usuários a encontrem, como um wiki interno, ou distribua os servidores como plugins através de um [marketplace de plugin gerenciado](/docs/pt/plugins/org#restrict-what-users-can-install) para que os usuários possam procurar e instalá-los em `/plugin`.

45</Note>45</Note>

46 46 

47<h2 id="exclusive-control-with-managed-mcp-json">47<h2 id="exclusive-control-with-managed-mcp-json">

Details

95 * **Em um sandbox de VM completa**: quando sua configuração gerenciada do Claude Desktop define [`requireCoworkFullVmSandbox`](https://claude.com/docs/third-party/claude-desktop/configuration#requirecoworkfullvmsandbox), Claude Code é executado dentro de uma máquina virtual onde a política MDM do dispositivo e o arquivo de configurações gerenciadas não estão presentes.95 * **Em um sandbox de VM completa**: quando sua configuração gerenciada do Claude Desktop define [`requireCoworkFullVmSandbox`](https://claude.com/docs/third-party/claude-desktop/configuration#requirecoworkfullvmsandbox), Claude Code é executado dentro de uma máquina virtual onde a política MDM do dispositivo e o arquivo de configurações gerenciadas não estão presentes.

96 * **Sessões Cowork remotas**: estas são executadas em VMs gerenciadas pela Anthropic, onde Claude Code não tem política de dispositivo para ler.96 * **Sessões Cowork remotas**: estas são executadas em VMs gerenciadas pela Anthropic, onde Claude Code não tem política de dispositivo para ler.

97 97 

98 Onde quer que a sessão seja executada, claude.ai aplica as listas [`strictKnownMarketplaces`](/docs/pt/settings-reference#strictknownmarketplaces) e [`blockedMarketplaces`](/docs/pt/settings-reference#blockedmarketplaces) do console de administração quando alguém adiciona um marketplace de um repositório git em claude.ai ou de **Customize** na aba Cowork. [Como as restrições funcionam](/docs/pt/plugin-marketplaces#how-restrictions-work) descreve essa verificação. A tabela [cobertura de superfície](/docs/pt/model-config#surface-coverage) compara Cowork com as outras superfícies.98 Onde quer que a sessão seja executada, claude.ai aplica as listas [`strictKnownMarketplaces`](/docs/pt/settings-reference#strictknownmarketplaces) e [`blockedMarketplaces`](/docs/pt/settings-reference#blockedmarketplaces) do console de administração quando alguém adiciona um marketplace de um repositório git em claude.ai ou de **Customize** na aba Cowork. [Como as restrições funcionam](/docs/pt/plugins/org#restrict-what-users-can-install) descreve essa verificação. A tabela [cobertura de superfície](/docs/pt/model-config#surface-coverage) compara Cowork com as outras superfícies.

99* **Sessões em execução**: a maioria das alterações alcança uma sessão em execução no cronograma na [tabela de mecanismo de entrega](#choose-a-delivery-mechanism), sem uma reinicialização.99* **Sessões em execução**: a maioria das alterações alcança uma sessão em execução no cronograma na [tabela de mecanismo de entrega](#choose-a-delivery-mechanism), sem uma reinicialização.

100 * Alterações em [`forceRemoteSettingsRefresh`](/docs/pt/settings-reference#forceremotesettingsrefresh), [`requiredMinimumVersion`](/docs/pt/settings-reference#requiredminimumversion) e [algumas chaves editáveis pelo usuário](/docs/pt/settings#when-edits-take-effect) entram em vigor na próxima inicialização de sessão.100 * Alterações em [`forceRemoteSettingsRefresh`](/docs/pt/settings-reference#forceremotesettingsrefresh), [`requiredMinimumVersion`](/docs/pt/settings-reference#requiredminimumversion) e [algumas chaves editáveis pelo usuário](/docs/pt/settings#when-edits-take-effect) entram em vigor na próxima inicialização de sessão.

101 * Uma entrada [`policyHelper`](/docs/pt/settings-reference#policyhelper) nova ou alterada entra em vigor no próximo lançamento. Se configurações gerenciadas pelo servidor sombrearem o auxiliar nesse lançamento, o auxiliar é executado assim que uma busca relata que essas configurações foram removidas.101 * Uma entrada [`policyHelper`](/docs/pt/settings-reference#policyhelper) nova ou alterada entra em vigor no próximo lançamento. Se configurações gerenciadas pelo servidor sombrearem o auxiliar nesse lançamento, o auxiliar é executado assim que uma busca relata que essas configurações foram removidas.


256 256 

257 No Claude Code v2.1.273 ou posterior, enquanto `allowManagedMcpServersOnly` está ativo, a lista `allowedMcpServers` da fonte de administrador de classificação mais alta que define uma se aplica e bloqueia a do pai, como uma [chave entre fontes](#keys-read-from-every-admin-source). A lista do pai se aplica apenas quando nenhuma fonte de administrador define uma. A entrada [`managedSourcesBehavior`](/docs/pt/settings-reference#managedsourcesbehavior) diz qual fonte fornece cada chave sob `"merge"`. Antes de v2.1.223, um valor em qualquer fonte de administrador bloqueava o do pai257 No Claude Code v2.1.273 ou posterior, enquanto `allowManagedMcpServersOnly` está ativo, a lista `allowedMcpServers` da fonte de administrador de classificação mais alta que define uma se aplica e bloqueia a do pai, como uma [chave entre fontes](#keys-read-from-every-admin-source). A lista do pai se aplica apenas quando nenhuma fonte de administrador define uma. A entrada [`managedSourcesBehavior`](/docs/pt/settings-reference#managedsourcesbehavior) diz qual fonte fornece cada chave sob `"merge"`. Antes de v2.1.223, um valor em qualquer fonte de administrador bloqueava o do pai

258* Para `availableModels`, Claude Code aplica o valor nas configurações gerenciadas que aplica e bloqueia uma lista fornecida pelo pai258* Para `availableModels`, Claude Code aplica o valor nas configurações gerenciadas que aplica e bloqueia uma lista fornecida pelo pai

259* Para `strictKnownMarketplaces`, Claude Code igualmente aplica a lista nas configurações gerenciadas que aplica e bloqueia uma fornecida pelo pai. A lista do pai se aplica apenas quando nenhuma fonte gerenciada aplicada define uma. Requer Claude Code v2.1.282 ou posterior

260* Um `blockedMarketplaces` fornecido pelo pai se aplica além de qualquer lista de bloqueio que uma fonte gerenciada define. Requer Claude Code v2.1.282 ou posterior

259 261 

260<h4 id="keep-cowork-folder-access-when-only-managed-rules-apply">262<h4 id="keep-cowork-folder-access-when-only-managed-rules-apply">

261 Manter o acesso à pasta Cowork quando apenas regras gerenciadas se aplicam263 Manter o acesso à pasta Cowork quando apenas regras gerenciadas se aplicam


361Algumas chaves de aplicação não são descartadas quando inválidas. Claude Code aplica um fallback mais restritivo até que o valor seja corrigido; a tabela mostra o que aplica para cada chave:363Algumas chaves de aplicação não são descartadas quando inválidas. Claude Code aplica um fallback mais restritivo até que o valor seja corrigido; a tabela mostra o que aplica para cada chave:

362 364 

363| Campo | Comportamento quando presente mas inválido |365| Campo | Comportamento quando presente mas inválido |

364| :---------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |366| :---------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

365| `allowedMcpServers` | Aplicado como uma lista de permissões vazia até que o valor seja corrigido, portanto nenhum servidor MCP que os usuários adicionem é admitido. Servidores que sua organização entrega através de [`managedMcpServers`](/docs/pt/settings-reference#managedmcpservers) ainda carregam, e servidores `managed-mcp.json` carregam por [Como um servidor é avaliado](/docs/pt/managed-mcp#how-a-server-is-evaluated). Uma entrada individual inválida é removida e o subconjunto válido é aplicado. |367| `allowedMcpServers` | Aplicado como uma lista de permissões vazia até que o valor seja corrigido, portanto nenhum servidor MCP que os usuários adicionem é admitido. Servidores que sua organização entrega através de [`managedMcpServers`](/docs/pt/settings-reference#managedmcpservers) ainda carregam, e servidores `managed-mcp.json` carregam por [Como um servidor é avaliado](/docs/pt/managed-mcp#how-a-server-is-evaluated). Uma entrada individual inválida é removida e o subconjunto válido é aplicado. |

366| `allowedHttpHookUrls` | Claude Code aplica uma [lista de permissões](/docs/pt/settings-reference#allowedhttphookurls) gerenciada vazia até que você corrija o valor, portanto um hook HTTP é executado apenas se outro arquivo de configurações listar sua URL. Se apenas uma entrada individual for inválida, Claude Code remove essa entrada e aplica o resto. |368| `allowedHttpHookUrls` | Claude Code aplica uma [lista de permissões](/docs/pt/settings-reference#allowedhttphookurls) gerenciada vazia até que você corrija o valor, portanto um hook HTTP é executado apenas se outro arquivo de configurações listar sua URL. Se apenas uma entrada individual for inválida, Claude Code remove essa entrada e aplica o resto. |

367| `httpHookAllowedEnvVars` | Claude Code aplica uma [lista de permissões](/docs/pt/settings-reference#httphookallowedenvvars) gerenciada vazia até que você corrija o valor, portanto uma variável de cabeçalho é interpolada apenas se outro arquivo de configurações a nomear. Se apenas uma entrada individual for inválida, Claude Code remove essa entrada e aplica o resto. |369| `httpHookAllowedEnvVars` | Claude Code aplica uma [lista de permissões](/docs/pt/settings-reference#httphookallowedenvvars) gerenciada vazia até que você corrija o valor, portanto uma variável de cabeçalho é interpolada apenas se outro arquivo de configurações a nomear. Se apenas uma entrada individual for inválida, Claude Code remove essa entrada e aplica o resto. |

368| `allowedChannelPlugins` | Claude Code aplica uma lista de permissões vazia até que você corrija o valor, portanto nenhum plugin de canal passado para `--channels` é admitido. Se apenas uma entrada individual for inválida, ele remove essa entrada e aplica o resto. |370| `allowedChannelPlugins` | Claude Code aplica uma lista de permissões vazia até que você corrija o valor, portanto nenhum plugin de canal passado para `--channels` é admitido. Se apenas uma entrada individual for inválida, ele remove essa entrada e aplica o resto. |

369| `strictKnownMarketplaces` | Aplicado como uma lista de permissões vazia até que o valor seja corrigido, portanto nenhuma [fonte de marketplace](/docs/pt/plugin-marketplaces#managed-marketplace-restrictions) é admitida. Uma entrada individual que é inválida ou não pode ser aplicada, como um regex `hostPattern` que não compila, é removida e o subconjunto válido é aplicado. |371| `strictKnownMarketplaces` | Aplicado como uma lista de permissões vazia até que o valor seja corrigido, portanto nenhuma [fonte de marketplace](/docs/pt/plugins/org#restrict-what-users-can-install) é admitida. Uma entrada individual que é inválida ou não pode ser aplicada, como um regex `hostPattern` que não compila, é removida e o subconjunto válido é aplicado. |

370| `allowManagedHooksOnly` | Tratado como `true` até ser corrigido: as [restrições de hook](/docs/pt/settings-reference#allowmanagedhooksonly) se aplicam e, a menos que `disableCommandPluginSources` seja explicitamente `false`, plugins de origem de comando são desabilitados. |372| `allowManagedHooksOnly` | Tratado como `true` até ser corrigido: as [restrições de hook](/docs/pt/settings-reference#allowmanagedhooksonly) se aplicam e, a menos que `disableCommandPluginSources` seja explicitamente `false`, plugins de origem de comando são desabilitados. |

371| `allowManagedMcpServersOnly` | Tratado como `true`. |373| `allowManagedMcpServersOnly` | Tratado como `true`. |

372| `disableCommandPluginSources` | Tratado como `true`, portanto plugins de origem de comando permanecem desabilitados até que o valor seja corrigido. |374| `disableCommandPluginSources` | Tratado como `true`, portanto plugins de origem de comando permanecem desabilitados até que o valor seja corrigido. |


378| `gatewayInternalNetworks` | Quando o valor inválido vem da fonte gerenciada mais alta na máquina, `/login` recusa cada novo [gateway de nuvem](/docs/pt/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) login na máquina até que o valor seja corrigido. |380| `gatewayInternalNetworks` | Quando o valor inválido vem da fonte gerenciada mais alta na máquina, `/login` recusa cada novo [gateway de nuvem](/docs/pt/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) login na máquina até que o valor seja corrigido. |

379| `crossSessionInbound` | Tratado como `refuse`, o valor mais restritivo, portanto [mensagens entre sessões](/docs/pt/cross-session-messaging#control-inbound-messages) de entrada são recusadas até que o valor seja corrigido. O desenvolvedor vê [um aviso](/docs/pt/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse). |381| `crossSessionInbound` | Tratado como `refuse`, o valor mais restritivo, portanto [mensagens entre sessões](/docs/pt/cross-session-messaging#control-inbound-messages) de entrada são recusadas até que o valor seja corrigido. O desenvolvedor vê [um aviso](/docs/pt/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse). |

380| `deniedMcpServers` | Uma entrada individual inválida é removida e o subconjunto válido é aplicado. Um valor totalmente inválido é descartado com um aviso, já que negar cada servidor bloquearia servidores que a política nunca nomeou. |382| `deniedMcpServers` | Uma entrada individual inválida é removida e o subconjunto válido é aplicado. Um valor totalmente inválido é descartado com um aviso, já que negar cada servidor bloquearia servidores que a política nunca nomeou. |

381| `blockedMarketplaces` | Uma entrada individual inválida é removida e o subconjunto válido é aplicado. Uma entrada que analisa mas nunca pode corresponder, como um regex `hostPattern` que não compila, é mantida com um aviso. Ela bloqueia nada até ser corrigida, mas [restrições de marketplace](/docs/pt/plugin-marketplaces#managed-marketplace-restrictions) permanecem ativas. Um valor totalmente inválido é descartado com um aviso, já que bloquear cada marketplace bloquearia fontes que a política nunca nomeou. |383| `blockedMarketplaces` | Uma entrada individual inválida é removida e o subconjunto válido é aplicado. Uma entrada que analisa mas nunca pode corresponder, como um regex `hostPattern` que não compila, é mantida com um aviso. Ela bloqueia nada até ser corrigida, mas [restrições de marketplace](/docs/pt/plugins/org#restrict-what-users-can-install) permanecem ativas. Um valor totalmente inválido é descartado com um aviso, já que bloquear cada marketplace bloquearia fontes que a política nunca nomeou. |

382| `sandbox.credentials` | Uma entrada inválida recuperável é degradada para `mode: "deny"` com um aviso; uma irrecuperável é removida; entradas válidas permanecem aplicadas. Consulte [entradas de credencial inválidas](/docs/pt/settings-reference#invalid-credential-entries-in-managed-settings) |384| `sandbox.credentials` | Uma entrada inválida recuperável é degradada para `mode: "deny"` com um aviso; uma irrecuperável é removida; entradas válidas permanecem aplicadas. Consulte [entradas de credencial inválidas](/docs/pt/settings-reference#invalid-credential-entries-in-managed-settings) |

383 385 

384`allowedHttpHookUrls` e `httpHookAllowedEnvVars` mesclam entre arquivos de configurações, portanto entradas em suas configurações de usuário, projeto ou local ainda se aplicam enquanto a lista gerenciada está vazia.386`allowedHttpHookUrls` e `httpHookAllowedEnvVars` mesclam entre arquivos de configurações, portanto entradas em suas configurações de usuário, projeto ou local ainda se aplicam enquanto a lista gerenciada está vazia.


402A tabela cobre os controles de permissão, plugin e entrega. Para qualquer chave não listada aqui, a coluna Escopo da [referência de configurações](/docs/pt/settings-reference#all-settings) diz se é apenas gerenciada; as chaves apenas gerenciadas restantes lá incluem a URL de login do gateway, versão, navegador, simulador móvel, host SSH, sessão local do Desktop, caminho binário da sandbox, preço do modelo e controles CLAUDE.md.404A tabela cobre os controles de permissão, plugin e entrega. Para qualquer chave não listada aqui, a coluna Escopo da [referência de configurações](/docs/pt/settings-reference#all-settings) diz se é apenas gerenciada; as chaves apenas gerenciadas restantes lá incluem a URL de login do gateway, versão, navegador, simulador móvel, host SSH, sessão local do Desktop, caminho binário da sandbox, preço do modelo e controles CLAUDE.md.

403 405 

404| Configuração | Descrição |406| Configuração | Descrição |

405| :-------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |407| :-------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

406| [`allowAllClaudeAiMcps`](/docs/pt/settings-reference#allowallclaudeaimcps) | Carregue os conectores claude.ai que Claude Code busca por si mesmo junto com um `managed-mcp.json` implantado em vez de suprimi-los |408| [`allowAllClaudeAiMcps`](/docs/pt/settings-reference#allowallclaudeaimcps) | Carregue os conectores claude.ai que Claude Code busca por si mesmo junto com um `managed-mcp.json` implantado em vez de suprimi-los |

407| [`allowedChannelPlugins`](/docs/pt/settings-reference#allowedchannelplugins) | Lista de permissões de plugins de canal que podem enviar mensagens. Substitui a lista de permissões padrão da Anthropic quando definida. Requer `channelsEnabled: true`. Veja [Restringir quais plugins de canal podem ser executados](/docs/pt/channels#restrict-which-channel-plugins-can-run) |409| [`allowedChannelPlugins`](/docs/pt/settings-reference#allowedchannelplugins) | Lista de permissões de plugins de canal que podem enviar mensagens. Substitui a lista de permissões padrão da Anthropic quando definida. Requer `channelsEnabled: true`. Veja [Restringir quais plugins de canal podem ser executados](/docs/pt/channels#restrict-which-channel-plugins-can-run) |

408| [`allowManagedHooksOnly`](/docs/pt/settings-reference#allowmanagedhooksonly) | Quando `true`, restringe quais hooks são executados; veja [o que é executado sob `allowManagedHooksOnly`](/docs/pt/settings-reference#what-runs-under-allowmanagedhooksonly) para a lista completa de efeitos |410| [`allowManagedHooksOnly`](/docs/pt/settings-reference#allowmanagedhooksonly) | Quando `true`, restringe quais hooks são executados; veja [o que é executado sob `allowManagedHooksOnly`](/docs/pt/settings-reference#what-runs-under-allowmanagedhooksonly) para a lista completa de efeitos |

409| [`allowManagedMcpServersOnly`](/docs/pt/settings-reference#allowmanagedmcpserversonly) | Quando `true`, apenas `allowedMcpServers` das configurações gerenciadas são respeitados. `deniedMcpServers` ainda é mesclado de todas as fontes. Veja [Chaves lidas de todas as fontes de administrador](#keys-read-from-every-admin-source) para quais fontes gerenciadas podem defini-la, e [Configuração MCP gerenciada](/docs/pt/managed-mcp) |411| [`allowManagedMcpServersOnly`](/docs/pt/settings-reference#allowmanagedmcpserversonly) | Quando `true`, apenas `allowedMcpServers` das configurações gerenciadas são respeitados. `deniedMcpServers` ainda é mesclado de todas as fontes. Veja [Chaves lidas de todas as fontes de administrador](#keys-read-from-every-admin-source) para quais fontes gerenciadas podem defini-la, e [Configuração MCP gerenciada](/docs/pt/managed-mcp) |

410| [`allowManagedPermissionRulesOnly`](/docs/pt/settings-reference#allowmanagedpermissionrulesonly) | Torna as configurações gerenciadas a única fonte de configurações de regras de permissão. A entrada lista todas as fontes que ignora |412| [`allowManagedPermissionRulesOnly`](/docs/pt/settings-reference#allowmanagedpermissionrulesonly) | Torna as configurações gerenciadas a única fonte de configurações de regras de permissão. A entrada lista todas as fontes que ignora |

411| [`blockedMarketplaces`](/docs/pt/settings-reference#blockedmarketplaces) | Lista de bloqueio de fontes de marketplace. As fontes bloqueadas são verificadas antes do download, portanto nunca tocam o sistema de arquivos. Veja [restrições de marketplace gerenciadas](/docs/pt/plugin-marketplaces#managed-marketplace-restrictions) |413| [`blockedMarketplaces`](/docs/pt/settings-reference#blockedmarketplaces) | Lista de bloqueio de fontes de marketplace. As fontes bloqueadas são verificadas antes do download, portanto nunca tocam o sistema de arquivos. Veja [restrições de marketplace gerenciadas](/docs/pt/plugins/org#restrict-what-users-can-install) |

412| [`channelsEnabled`](/docs/pt/settings-reference#channelsenabled) | Permitir [canais](/docs/pt/channels) para a organização. Veja [controles empresariais](/docs/pt/channels#enterprise-controls) para o padrão em cada plano |414| [`channelsEnabled`](/docs/pt/settings-reference#channelsenabled) | Permitir [canais](/docs/pt/channels) para a organização. Veja [controles empresariais](/docs/pt/channels#enterprise-controls) para o padrão em cada plano |

413| [`disableCommandPluginSources`](/docs/pt/settings-reference#disablecommandpluginsources) | Quando `true`, bloqueia [fontes de plugin `command`](/docs/pt/plugin-marketplaces#command-sources) inteiramente, portanto o comando declarado no marketplace nunca é executado. Também bloqueia comandos [`headersHelper`](/docs/pt/plugin-marketplaces#authenticate-archive-downloads) do marketplace, exceto para um marketplace que as próprias configurações gerenciadas declaram. Quando não definido, segue `allowManagedHooksOnly`. Requer Claude Code v2.1.229 ou posterior, e o bloqueio `headersHelper` requer v2.1.238 ou posterior |415| [`disableCommandPluginSources`](/docs/pt/settings-reference#disablecommandpluginsources) | Quando `true`, bloqueia [fontes de plugin `command`](/docs/pt/plugins/marketplace-reference#command-plugin-source) inteiramente, portanto o comando declarado no marketplace nunca é executado. Também bloqueia comandos [`headersHelper`](/docs/pt/plugins/host-marketplace#authenticate-archive-downloads) do marketplace, exceto para um marketplace que as próprias configurações gerenciadas declaram. Quando não definido, segue `allowManagedHooksOnly`. Requer Claude Code v2.1.229 ou posterior, e o bloqueio `headersHelper` requer v2.1.238 ou posterior |

414| [`disableSideloadFlags`](/docs/pt/settings-reference#disablesideloadflags) | Rejeite os sinalizadores `--plugin-dir`, `--plugin-url`, `--agents` e `--mcp-config` na inicialização. Em sessões na nuvem, Claude Code descarta os servidores MCP que o servidor entregou através de `--mcp-config`, exceto entradas `type: "sdk"` em processo, e inicia a sessão. Requer Claude Code v2.1.193 ou posterior |416| [`disableSideloadFlags`](/docs/pt/settings-reference#disablesideloadflags) | Rejeite os sinalizadores `--plugin-dir`, `--plugin-url`, `--agents` e `--mcp-config` na inicialização. Em sessões na nuvem, Claude Code descarta os servidores MCP que o servidor entregou através de `--mcp-config`, exceto entradas `type: "sdk"` em processo, e inicia a sessão. Requer Claude Code v2.1.193 ou posterior |

415| [`forceRemoteSettingsRefresh`](/docs/pt/settings-reference#forceremotesettingsrefresh) | Quando `true`, bloqueia a inicialização da CLI até que as configurações gerenciadas remotas sejam buscadas recentemente e sai se a busca falhar. Veja [aplicação de falha fechada](/docs/pt/server-managed-settings#enforce-fail-closed-startup) |417| [`forceRemoteSettingsRefresh`](/docs/pt/settings-reference#forceremotesettingsrefresh) | Quando `true`, bloqueia a inicialização da CLI até que as configurações gerenciadas remotas sejam buscadas recentemente e sai se a busca falhar. Veja [aplicação de falha fechada](/docs/pt/server-managed-settings#enforce-fail-closed-startup) |

416| [`managedMcpServers`](/docs/pt/settings-reference#managedmcpservers) | Servidores MCP remotos fornecidos a cada usuário junto com os seus próprios. Fornece servidores em vez de bloquear qualquer coisa. Veja [Fornecer servidores através de configurações gerenciadas](/docs/pt/managed-mcp#provide-servers-through-managed-settings). Requer Claude Code v2.1.259 ou posterior |418| [`managedMcpServers`](/docs/pt/settings-reference#managedmcpservers) | Servidores MCP remotos fornecidos a cada usuário junto com os seus próprios. Fornece servidores em vez de bloquear qualquer coisa. Veja [Fornecer servidores através de configurações gerenciadas](/docs/pt/managed-mcp#provide-servers-through-managed-settings). Requer Claude Code v2.1.259 ou posterior |


421| [`policyHelper`](/docs/pt/settings-reference#policyhelper) | Executável que calcula configurações gerenciadas na inicialização; veja [Calcular configurações gerenciadas com um auxiliar de política](/docs/pt/settings-reference#policyhelper) |423| [`policyHelper`](/docs/pt/settings-reference#policyhelper) | Executável que calcula configurações gerenciadas na inicialização; veja [Calcular configurações gerenciadas com um auxiliar de política](/docs/pt/settings-reference#policyhelper) |

422| [`sandbox.filesystem.allowManagedReadPathsOnly`](/docs/pt/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) | Quando `true`, apenas caminhos `filesystem.allowRead` das configurações gerenciadas são respeitados. `denyRead` ainda é mesclado de todas as fontes |424| [`sandbox.filesystem.allowManagedReadPathsOnly`](/docs/pt/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) | Quando `true`, apenas caminhos `filesystem.allowRead` das configurações gerenciadas são respeitados. `denyRead` ainda é mesclado de todas as fontes |

423| [`sandbox.network.allowManagedDomainsOnly`](/docs/pt/settings-reference#sandbox-network-allowmanageddomainsonly) | Honre apenas regras de permissão `allowedDomains` e `WebFetch(domain:...)` gerenciadas; bloqueie outros domínios sem solicitar |425| [`sandbox.network.allowManagedDomainsOnly`](/docs/pt/settings-reference#sandbox-network-allowmanageddomainsonly) | Honre apenas regras de permissão `allowedDomains` e `WebFetch(domain:...)` gerenciadas; bloqueie outros domínios sem solicitar |

424| [`strictKnownMarketplaces`](/docs/pt/settings-reference#strictknownmarketplaces) | Controla de quais fontes de marketplace de plugins os usuários podem adicionar e instalar plugins. Veja [restrições de marketplace gerenciadas](/docs/pt/plugin-marketplaces#managed-marketplace-restrictions) |426| [`strictKnownMarketplaces`](/docs/pt/settings-reference#strictknownmarketplaces) | Controla de quais fontes de marketplace de plugins os usuários podem adicionar e instalar plugins. Veja [restrições de marketplace gerenciadas](/docs/pt/plugins/org#restrict-what-users-can-install) |

425| [`strictPluginOnlyCustomization`](/docs/pt/settings-reference#strictpluginonlycustomization) | Bloqueie skills, agentes, hooks e servidores MCP de fontes de usuário e projeto; `true` bloqueia todos os quatro, uma matriz nomeia qual |427| [`strictPluginOnlyCustomization`](/docs/pt/settings-reference#strictpluginonlycustomization) | Bloqueie skills, agentes, hooks e servidores MCP de fontes de usuário e projeto; `true` bloqueia todos os quatro, uma matriz nomeia qual |

426| [`wslInheritsWindowsSettings`](/docs/pt/settings-reference#wslinheritswindowssettings) | Quando definido no registro HKLM ou em um arquivo sob `C:\Program Files\ClaudeCode`, faça o WSL ler a cadeia de política do Windows e ler `/etc/claude-code` apenas quando nenhum arquivo de configurações gerenciadas ou drop-in sob esse diretório entregar uma [chave de política](#how-claude-code-combines-managed-sources); a entrada fornece a ordem |428| [`wslInheritsWindowsSettings`](/docs/pt/settings-reference#wslinheritswindowssettings) | Quando definido no registro HKLM ou em um arquivo sob `C:\Program Files\ClaudeCode`, faça o WSL ler a cadeia de política do Windows e ler `/etc/claude-code` apenas quando nenhum arquivo de configurações gerenciadas ou drop-in sob esse diretório entregar uma [chave de política](#how-claude-code-combines-managed-sources); a entrada fornece a ordem |

427 429 

mcp.md +16 −16

Details

50 Se a instalação falhar, corresponda à mensagem que Claude Code relata:50 Se a instalação falhar, corresponda à mensagem que Claude Code relata:

51 51 

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

53 * O plugin [não foi encontrado no marketplace](/docs/pt/discover-plugins#install-plugins): verifique o nome do plugin.53 * O plugin [não foi encontrado no marketplace](/docs/pt/plugins/install#install-a-plugin): verifique o nome do plugin.

54 54 

55 Se o resumo da instalação relatar `Run /reload-plugins to activate.`, Claude Code então executa esse recarregamento para você. Se o recarregamento avisar que sua próxima mensagem releria a conversa, execute `/reload-plugins --force`.55 Se o resumo da instalação relatar `Run /reload-plugins to activate.`, Claude Code então executa esse recarregamento para você. Se o recarregamento avisar que sua próxima mensagem releria a conversa, execute `/reload-plugins --force`.

56 </Step>56 </Step>


293 Detalhe do status do servidor293 Detalhe do status do servidor

294</h4>294</h4>

295 295 

296Em `/mcp`, incluindo o menu de um servidor lá, e no [gerenciador `/plugin`](/docs/pt/plugins), um servidor HTTP ou SSE remoto que você usou antes pode mostrar um status `cached` como `cached 2h ago · connects on first use · 5 tools`. Claude Code carregou a lista de ferramentas do servidor de seu cache de descoberta, salvo em uma sessão anterior, em vez de se conectar na inicialização, e Claude Code conecta o servidor na primeira vez que Claude chama uma das ferramentas do servidor. As ferramentas estão disponíveis a partir de sua primeira mensagem, portanto você não precisa fazer nada. O cache de descoberta e seu status `cached` requerem Claude Code v2.1.221 ou posterior.296Em `/mcp`, incluindo o menu de um servidor lá, e no [gerenciador `/plugin`](/docs/pt/plugins/install), um servidor HTTP ou SSE remoto que você usou antes pode mostrar um status `cached` como `cached 2h ago · connects on first use · 5 tools`. Claude Code carregou a lista de ferramentas do servidor de seu cache de descoberta, salvo em uma sessão anterior, em vez de se conectar na inicialização, e Claude Code conecta o servidor na primeira vez que Claude chama uma das ferramentas do servidor. As ferramentas estão disponíveis a partir de sua primeira mensagem, portanto você não precisa fazer nada. O cache de descoberta e seu status `cached` requerem Claude Code v2.1.221 ou posterior.

297 297 

298O cache de descoberta está desativado por padrão a menos que um lançamento gradual o tenha ativado para sua conta. Defina [`MCP_DISCOVERY_CACHE=1`](/docs/pt/env-vars) para ativá-lo, ou `0` para mantê-lo desativado mesmo quando o lançamento o tiver ativado. Antes da v2.1.238, o cache estava ativado por padrão.298O cache de descoberta está desativado por padrão a menos que um lançamento gradual o tenha ativado para sua conta. Defina [`MCP_DISCOVERY_CACHE=1`](/docs/pt/env-vars) para ativá-lo, ou `0` para mantê-lo desativado mesmo quando o lançamento o tiver ativado. Antes da v2.1.238, o cache estava ativado por padrão.

299 299 


312* Para um servidor na [escopo](#mcp-installation-scopes) local, de projeto, ou de usuário ou em configuração MCP gerenciada, a origem mostra o host como escrito nessa configuração, portanto uma referência `${VAR}` no host não é expandida na mensagem.312* Para um servidor na [escopo](#mcp-installation-scopes) local, de projeto, ou de usuário ou em configuração MCP gerenciada, a origem mostra o host como escrito nessa configuração, portanto uma referência `${VAR}` no host não é expandida na mensagem.

313* Para uma falha sem status ou código de erro, Claude Code mostra o texto de erro sem a origem.313* Para uma falha sem status ou código de erro, Claude Code mostra o texto de erro sem a origem.

314 314 

315Um servidor remoto cuja configuração tem uma `url` vazia mostra como `not configured` em `/mcp`, em `claude mcp list`, e no [gerenciador `/plugin`](/docs/pt/plugins), e Claude Code não tenta se conectar a ele. Um plugin pode incluir uma entrada de espaço reservado como esta para um conector que você configura depois, portanto Claude Code não a relata como um erro ou um problema de configuração. A visualização de detalhe do servidor em `/mcp` lê `No URL configured for this server`; defina a `url` da entrada para conectá-lo. Antes da v2.1.208, Claude Code relatava uma `url` vazia como um problema de configuração com um prompt para reconectar.315Um servidor remoto cuja configuração tem uma `url` vazia mostra como `not configured` em `/mcp`, em `claude mcp list`, e no [gerenciador `/plugin`](/docs/pt/plugins/install), e Claude Code não tenta se conectar a ele. Um plugin pode incluir uma entrada de espaço reservado como esta para um conector que você configura depois, portanto Claude Code não a relata como um erro ou um problema de configuração. A visualização de detalhe do servidor em `/mcp` lê `No URL configured for this server`; defina a `url` da entrada para conectá-lo. Antes da v2.1.208, Claude Code relatava uma `url` vazia como um problema de configuração com um prompt para reconectar.

316 316 

317<h4 id="configuration-warnings">317<h4 id="configuration-warnings">

318 Avisos de configuração318 Avisos de configuração


466 466 

467Um `timeout` por servidor de pelo menos 1000 também atua como um piso no tempo limite de inatividade descrito abaixo: Claude Code nunca aborta as chamadas de ferramenta desse servidor por inatividade mais cedo do que o `timeout` por servidor. Requer Claude Code v2.1.203 ou posterior.467Um `timeout` por servidor de pelo menos 1000 também atua como um piso no tempo limite de inatividade descrito abaixo: Claude Code nunca aborta as chamadas de ferramenta desse servidor por inatividade mais cedo do que o `timeout` por servidor. Requer Claude Code v2.1.203 ou posterior.

468 468 

469Uma chamada de ferramenta para um servidor MCP que não envia resposta e nenhuma notificação de progresso para a janela de inatividade aborta com um erro em vez de aguardar o limite de parede de relógio. O tempo limite de inatividade requer Claude Code v2.1.187 ou posterior. Aplica-se a todos os tipos de servidor exceto servidores IDE e SDK em processo. A janela de inatividade padrão é de cinco minutos para servidores HTTP, SSE, WebSocket, e [conector claude.ai](#use-mcp-servers-from-claude-ai), e de 30 minutos para servidores stdio. Antes da v2.1.203, servidores stdio eram isentos do tempo limite de inatividade.469Uma chamada de ferramenta para um servidor MCP que não envia resposta e nenhuma notificação de progresso para a janela de inatividade aborta com um erro em vez de aguardar o limite de parede de relógio. Aplica-se a todos os tipos de servidor exceto servidores IDE e SDK em processo. A janela de inatividade padrão é de cinco minutos para servidores HTTP, SSE, WebSocket, e [conector claude.ai](#use-mcp-servers-from-claude-ai), e de 30 minutos para servidores stdio. Antes da v2.1.203, servidores stdio eram isentos do tempo limite de inatividade.

470 470 

471Defina a variável de ambiente [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/pt/env-vars) em milissegundos para alterar a janela de inatividade, ou defina-a como `0` para desabilitar a verificação.471Defina a variável de ambiente [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/pt/env-vars) em milissegundos para alterar a janela de inatividade, ou defina-a como `0` para desabilitar a verificação.

472 472 


494 Plugin-provided MCP servers494 Plugin-provided MCP servers

495</h3>495</h3>

496 496 

497[Plugins](/docs/pt/plugins) podem agrupar servidores MCP que fornecem ferramentas e integrações quando você ativa o plugin. Os servidores MCP de plugin funcionam de forma idêntica aos servidores configurados pelo usuário.497[Plugins](/docs/pt/plugins/overview) podem agrupar servidores MCP que fornecem ferramentas e integrações quando você ativa o plugin. Os servidores MCP de plugin funcionam de forma idêntica aos servidores configurados pelo usuário.

498 498 

499**Como funcionam os servidores MCP de plugin**:499**Como funcionam os servidores MCP de plugin**:

500 500 


539 539 

540* **Ciclo de vida automático**: servidores se conectam e desconectam nestes pontos:540* **Ciclo de vida automático**: servidores se conectam e desconectam nestes pontos:

541 * Na inicialização da sessão, Claude Code conecta os servidores para plugins ativados automaticamente. Em `/mcp`, um servidor de plugin remoto (HTTP ou SSE) que você usou antes pode mostrar o status [`cached`](#server-status-detail) em vez disso; Claude Code o conecta quando Claude chama pela primeira vez uma de suas ferramentas541 * Na inicialização da sessão, Claude Code conecta os servidores para plugins ativados automaticamente. Em `/mcp`, um servidor de plugin remoto (HTTP ou SSE) que você usou antes pode mostrar o status [`cached`](#server-status-detail) em vez disso; Claude Code o conecta quando Claude chama pela primeira vez uma de suas ferramentas

542 * Se você ativar ou desativar um plugin durante uma sessão, Claude Code conecta ou desconecta seus servidores MCP quando a mudança se aplica. [Apply plugin changes without restarting](/docs/pt/discover-plugins#apply-plugin-changes-without-restarting) descreve quando isso é. Em uma sessão sem um terminal interativo, `/reload-plugins` não conecta ou desconecta servidores MCP de plugin; essas mudanças entram em vigor em sua próxima sessão542 * Se você ativar ou desativar um plugin durante uma sessão, Claude Code conecta ou desconecta seus servidores MCP quando a mudança se aplica. [Apply plugin changes without restarting](/docs/pt/plugins/cli-reference#reload-plugins) descreve quando isso é. Em uma sessão sem um terminal interativo, `/reload-plugins` não conecta ou desconecta servidores MCP de plugin; essas mudanças entram em vigor em sua próxima sessão

543 * Quando você recarrega, Claude Code mantém as conexões ativas de servidores de plugin cuja configuração não mudou, e faz o mesmo quando você [substitui a lista de servidores MCP da sessão](/docs/pt/agent-sdk/typescript#mcpsetserversresult) do Agent SDK sem nomeá-los543 * Quando você recarrega, Claude Code mantém as conexões ativas de servidores de plugin cuja configuração não mudou, e faz o mesmo quando você [substitui a lista de servidores MCP da sessão](/docs/pt/agent-sdk/typescript#mcpsetserversresult) do Agent SDK sem nomeá-los

544 * Quando você [move a sessão com `/cd`](/docs/pt/permissions#move-the-session-to-another-directory) na v2.1.246 ou posterior, Claude Code conecta os servidores de plugins que as configurações do novo diretório ativam e desconecta os servidores de plugins que não estão mais ativados, portanto você não precisa executar `/reload-plugins` após a mudança544 * Quando você [move a sessão com `/cd`](/docs/pt/permissions#move-the-session-to-another-directory) na v2.1.246 ou posterior, Claude Code conecta os servidores de plugins que as configurações do novo diretório ativam e desconecta os servidores de plugins que não estão mais ativados, portanto você não precisa executar `/reload-plugins` após a mudança

545 * Em [sessões web](/docs/pt/claude-code-on-the-web), uma chamada MCP para um servidor de plugin que ainda não está conectado, como logo após uma sessão ociosa acordar, inicia o servidor sob demanda e aguarda sua conexão545 * Em [sessões web](/docs/pt/claude-code-on-the-web), uma chamada MCP para um servidor de plugin que ainda não está conectado, como logo após uma sessão ociosa acordar, inicia o servidor sob demanda e aguarda sua conexão

546* **Espaços reservados de caminho**: `${CLAUDE_PLUGIN_ROOT}` resolve para o diretório de instalação do plugin, `${CLAUDE_PLUGIN_DATA}` para seu diretório de [estado persistente](/docs/pt/plugins-reference#persistent-data-directory), e `${CLAUDE_PROJECT_DIR}` para a raiz do projeto estável. A substituição se aplica a:546* **Espaços reservados de caminho**: `${CLAUDE_PLUGIN_ROOT}` resolve para o diretório de instalação do plugin, `${CLAUDE_PLUGIN_DATA}` para seu diretório de [estado persistente](/docs/pt/plugins/components#path-variables-and-persistent-data), e `${CLAUDE_PROJECT_DIR}` para a raiz do projeto estável. A substituição se aplica a:

547 * servidores `stdio`: `command`, `args`, `env`547 * servidores `stdio`: `command`, `args`, `env`

548 * servidores `http`, `sse`, e `ws`: `url`, `headers`, e `headersHelper`. Antes da v2.1.195, `headersHelper` passava o espaço reservado como uma string literal548 * servidores `http`, `sse`, e `ws`: `url`, `headers`, e `headersHelper`. Antes da v2.1.195, `headersHelper` passava o espaço reservado como uma string literal

549* **Acesso ao ambiente do usuário**: acesso às mesmas variáveis de ambiente que servidores configurados manualmente549* **Acesso ao ambiente do usuário**: acesso às mesmas variáveis de ambiente que servidores configurados manualmente


563 563 

564O servidor em si se registra sob o nome com escopo `plugin:<plugin-name>:<server-name>`, como `plugin:my-plugin:database-tools`. Use esse nome onde um nome de servidor configurado é esperado, como um [campo `server` de hook `mcp_tool`](/docs/pt/hooks#mcp-tool-hook-fields).564O servidor em si se registra sob o nome com escopo `plugin:<plugin-name>:<server-name>`, como `plugin:my-plugin:database-tools`. Use esse nome onde um nome de servidor configurado é esperado, como um [campo `server` de hook `mcp_tool`](/docs/pt/hooks#mcp-tool-hook-fields).

565 565 

566Veja a [referência de componentes de plugin](/docs/pt/plugins-reference#mcp-servers) para detalhes sobre agrupamento de servidores MCP com plugins.566Veja a [referência de componentes de plugin](/docs/pt/plugins/components#mcp-servers) para detalhes sobre agrupamento de servidores MCP com plugins.

567 567 

568<h2 id="mcp-installation-scopes">568<h2 id="mcp-installation-scopes">

569 Escopos de instalação de MCP569 Escopos de instalação de MCP


6661. Escopo local6661. Escopo local

6672. Escopo de projeto6672. Escopo de projeto

6683. Escopo de usuário6683. Escopo de usuário

6694. [Servidores fornecidos por plugins](/docs/pt/plugins)6694. [Servidores fornecidos por plugins](/docs/pt/plugins/components#mcp-servers)

6705. [Conectores claude.ai](#use-mcp-servers-from-claude-ai)6705. [Conectores claude.ai](#use-mcp-servers-from-claude-ai)

671 671 

672Os três escopos correspondem duplicatas por nome. Plugins e conectores correspondem por endpoint, então um que aponta para a mesma URL ou comando que um servidor acima é tratado como uma duplicata.672Os três escopos correspondem duplicatas por nome. Plugins e conectores correspondem por endpoint, então um que aponta para a mesma URL ou comando que um servidor acima é tratado como uma duplicata.


876 Autenticar a partir da linha de comando876 Autenticar a partir da linha de comando

877</h3>877</h3>

878 878 

879A partir da v2.1.186, `claude mcp login <name>` executa o fluxo OAuth de um servidor configurado diretamente do seu shell, para que você não precise abrir o painel `/mcp` dentro de uma sessão.879O comando `claude mcp login <name>` executa o fluxo OAuth de um servidor configurado diretamente do seu shell, para que você não precise abrir o painel `/mcp` dentro de uma sessão.

880 880 

881```bash theme={null}881```bash theme={null}

882claude mcp login sentry882claude mcp login sentry


884 884 

885Para limpar credenciais armazenadas depois, execute `claude mcp logout <name>`.885Para limpar credenciais armazenadas depois, execute `claude mcp logout <name>`.

886 886 

887A partir da v2.1.191, o comando detecta quando nenhum navegador local está disponível, como durante uma sessão SSH ou no Linux sem um servidor de exibição, e imprime a URL de autorização em vez de tentar abrir um navegador. Abra a URL na sua máquina local, depois cole a URL de redirecionamento completa da barra de endereços do seu navegador de volta no prompt. O comando precisa de um terminal interativo para a etapa de colagem, então conecte com `ssh -t`. Passe `--no-browser` para forçar o prompt de URL mesmo quando um navegador local é detectado.887`claude mcp login` detecta quando nenhum navegador local está disponível, como durante uma sessão SSH ou no Linux sem um servidor de exibição, e imprime a URL de autorização em vez de tentar abrir um navegador. Abra a URL na sua máquina local, depois cole a URL de redirecionamento completa da barra de endereços do seu navegador de volta no prompt. O comando precisa de um terminal interativo para a etapa de colagem, então conecte com `ssh -t`. Passe `--no-browser` para forçar o prompt de URL mesmo quando um navegador local é detectado.

888 888 

889```bash theme={null}889```bash theme={null}

890claude mcp login sentry --no-browser890claude mcp login sentry --no-browser


1085Claude Code define essas variáveis de ambiente ao executar o auxiliar:1085Claude Code define essas variáveis de ambiente ao executar o auxiliar:

1086 1086 

1087| Variável | Valor |1087| Variável | Valor |

1088| :---------------------------- | :------------------------------------------------------------------------------------------------------------------- |1088| :---------------------------- | :-------------------------------------------------------------------------------------------------------------------- |

1089| `CLAUDE_CODE_MCP_SERVER_NAME` | o nome do servidor MCP |1089| `CLAUDE_CODE_MCP_SERVER_NAME` | o nome do servidor MCP |

1090| `CLAUDE_CODE_MCP_SERVER_URL` | a URL do servidor MCP |1090| `CLAUDE_CODE_MCP_SERVER_URL` | a URL do servidor MCP |

1091| `CLAUDE_PLUGIN_ROOT` | o diretório raiz do plugin. Definido apenas quando um [plugin](/docs/pt/plugins-reference#mcp-servers) fornece o servidor |1091| `CLAUDE_PLUGIN_ROOT` | o diretório raiz do plugin. Definido apenas quando um [plugin](/docs/pt/plugins/components#mcp-servers) fornece o servidor |

1092 1092 

1093Use essas para escrever um único script auxiliar que serve múltiplos servidores MCP.1093Use essas para escrever um único script auxiliar que serve múltiplos servidores MCP.

1094 1094 

1095Um `headersHelper` fornecido por plugin não pode referenciar os valores [`${user_config.*}`](/docs/pt/plugins-reference#user-configuration) do plugin, porque o comando é executado através de um shell. Claude Code relata o servidor como mal configurado com um [erro](/docs/pt/errors#plugin-command-references-user-config) e não substitui o valor. Coloque `${user_config.KEY}` no campo `headers` do servidor, que não é analisado por shell, ou faça o script auxiliar ler o valor de um arquivo de configuração. Antes da v2.1.207, `headersHelper` substituía valores `${user_config.*}`.1095Um `headersHelper` fornecido por plugin não pode referenciar os valores [`${user_config.*}`](/docs/pt/plugins/manifest-reference#user-configuration) do plugin, porque o comando é executado através de um shell. Claude Code relata o servidor como mal configurado com um [erro](/docs/pt/errors#plugin-command-references-user-config) e não substitui o valor. Coloque `${user_config.KEY}` no campo `headers` do servidor, que não é analisado por shell, ou faça o script auxiliar ler o valor de um arquivo de configuração. Antes da v2.1.207, `headersHelper` substituía valores `${user_config.*}`.

1096 1096 

1097<h4 id="where-the-helper-runs">1097<h4 id="where-the-helper-runs">

1098 Onde o auxiliar é executado1098 Onde o auxiliar é executado


1102 1102 

1103| Onde você configurou o servidor | Diretório de trabalho |1103| Onde você configurou o servidor | Diretório de trabalho |

1104| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------- |1104| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------- |

1105| Um [plugin](/docs/pt/plugins-reference#mcp-servers) | O diretório raiz do plugin. Requer Claude Code v2.1.195 ou posterior |1105| Um [plugin](/docs/pt/plugins/components#mcp-servers) | O diretório raiz do plugin. Requer Claude Code v2.1.195 ou posterior |

1106| Um `.mcp.json` de projeto ou um servidor de [escopo local](#local-scope) | O diretório do projeto no qual o servidor é declarado |1106| Um `.mcp.json` de projeto ou um servidor de [escopo local](#local-scope) | O diretório do projeto no qual o servidor é declarado |

1107| Um arquivo de agente em seu projeto, um servidor da opção `mcpServers` do SDK ou método `setMcpServers()`, ou [`--mcp-config`](/docs/pt/cli-reference) | O [diretório de trabalho primário](/docs/pt/permissions#working-directories) da sessão |1107| Um arquivo de agente em seu projeto, um servidor da opção `mcpServers` do SDK ou método `setMcpServers()`, ou [`--mcp-config`](/docs/pt/cli-reference) | O [diretório de trabalho primário](/docs/pt/permissions#working-directories) da sessão |

1108| [Escopo de usuário](#user-scope), [MCP gerenciado](/docs/pt/managed-mcp), um [conector claude.ai](#use-mcp-servers-from-claude-ai), ou um arquivo de agente de fora de seu projeto, incluindo um de um diretório `--add-dir` | Seu diretório de configuração, `~/.claude` a menos que você defina [`CLAUDE_CONFIG_DIR`](/docs/pt/env-vars) |1108| [Escopo de usuário](#user-scope), [MCP gerenciado](/docs/pt/managed-mcp), um [conector claude.ai](#use-mcp-servers-from-claude-ai), ou um arquivo de agente de fora de seu projeto, incluindo um de um diretório `--add-dir` | Seu diretório de configuração, `~/.claude` a menos que você defina [`CLAUDE_CONFIG_DIR`](/docs/pt/env-vars) |


1235 </Step>1235 </Step>

1236</Steps>1236</Steps>

1237 1237 

1238O Claude Code marca um conector como `managed` em `/mcp` e no gerenciador [`/plugin`](/docs/pt/plugins) quando sua organização gerencia sua autenticação no claude.ai. O status de gerenciado não altera como o Claude Code se conecta ao conector ou aplica os [controles de ferramentas](#organization-controls-on-connector-tools) da sua organização.1238O Claude Code marca um conector como `managed` em `/mcp` e no gerenciador [`/plugin`](/docs/pt/plugins/install) quando sua organização gerencia sua autenticação no claude.ai. O status de gerenciado não altera como o Claude Code se conecta ao conector ou aplica os [controles de ferramentas](#organization-controls-on-connector-tools) da sua organização.

1239 1239 

1240Os conectores aos quais você nunca fez login estão recolhidos atrás de uma linha `Show unused connectors` no final da seção claude.ai, para que uma lista provisionada pela organização não preencha o painel. Selecione a linha para expandi-los. Um conector ao qual você fez login antes permanece visível mesmo quando atualmente precisa de reautenticação.1240Os conectores aos quais você nunca fez login estão recolhidos atrás de uma linha `Show unused connectors` no final da seção claude.ai, para que uma lista provisionada pela organização não preencha o painel. Selecione a linha para expandi-los. Um conector ao qual você fez login antes permanece visível mesmo quando atualmente precisa de reautenticação.

1241 1241 

Details

64}64}

65```65```

66 66 

67Claude Code ignora as [variáveis do exportador OpenTelemetry](/docs/pt/settings-reference#variables-claude-code-ignores-in-env) no `.claude/settings.json` e `.claude/settings.local.json` de um repositório, portanto um repositório não pode usá-las para ativar a telemetria, escolher para onde ela vai ou capturar conteúdo. Defina-as nas configurações gerenciadas ou faça com que cada desenvolvedor as defina no seu shell ou `~/.claude/settings.json`. Um repositório ainda pode desativar um sinal definindo seu seletor de exportador, como `OTEL_LOGS_EXPORTER`, como `none`, a menos que as configurações gerenciadas, um arquivo `--settings` ou o ambiente a partir do qual você inicia Claude Code defina essa variável.

68 

67Claude Code não passa variáveis de ambiente `OTEL_*` para os subprocessos que ele gera, incluindo a ferramenta Bash, hooks, servidores MCP e servidores de linguagem. Um aplicativo instrumentado com OpenTelemetry que você executa através da ferramenta Bash não herda o endpoint do exportador ou cabeçalhos do Claude Code, então defina essas variáveis diretamente no comando se esse aplicativo precisar exportar sua própria telemetria.69Claude Code não passa variáveis de ambiente `OTEL_*` para os subprocessos que ele gera, incluindo a ferramenta Bash, hooks, servidores MCP e servidores de linguagem. Um aplicativo instrumentado com OpenTelemetry que você executa através da ferramenta Bash não herda o endpoint do exportador ou cabeçalhos do Claude Code, então defina essas variáveis diretamente no comando se esse aplicativo precisar exportar sua própria telemetria.

68 70 

69<h3 id="how-managed-settings-lock-the-otlp-destination">71<h3 id="how-managed-settings-lock-the-otlp-destination">


101 Variáveis de configuração comuns103 Variáveis de configuração comuns

102</h3>104</h3>

103 105 

104Essas variáveis configuram exportadores, endpoints e comportamento de exportação para todas as implantações. Se você definir uma variável de endpoint ou protocolo por sinal, como `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`, Claude Code a usa em vez da variável genérica para esse sinal. Se você definir uma variável de cabeçalhos por sinal, como `OTEL_EXPORTER_OTLP_METRICS_HEADERS`, Claude Code a mescla com a genérica `OTEL_EXPORTER_OTLP_HEADERS` para esse sinal. Em máquinas com configurações gerenciadas, veja [Como as configurações gerenciadas bloqueiam o destino OTLP](#how-managed-settings-lock-the-otlp-destination) para saber o que Claude Code remove.106Essas variáveis configuram exportadores, endpoints e comportamento de exportação para todas as implantações.

107 

108Se você definir uma variável de endpoint ou protocolo por sinal, como `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`, Claude Code a usa em vez da variável genérica para esse sinal. Se você definir uma variável de cabeçalhos por sinal, como `OTEL_EXPORTER_OTLP_METRICS_HEADERS`, Claude Code a mescla com a genérica `OTEL_EXPORTER_OTLP_HEADERS` para esse sinal.

109 

110Em máquinas com configurações gerenciadas, veja [Como as configurações gerenciadas bloqueiam o destino OTLP](#how-managed-settings-lock-the-otlp-destination) para saber o que Claude Code remove.

105 111 

106| Variável de Ambiente | Descrição | Valores de Exemplo |112| Variável de Ambiente | Descrição | Valores de Exemplo |

107| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |113| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |


651* `query_source`: Categoria do subsistema que emitiu a requisição. Um de `"main"`, `"subagent"`, ou `"auxiliary"`657* `query_source`: Categoria do subsistema que emitiu a requisição. Um de `"main"`, `"subagent"`, ou `"auxiliary"`

652* `speed`: `"fast"` quando a requisição usou modo rápido. Ausente caso contrário658* `speed`: `"fast"` quando a requisição usou modo rápido. Ausente caso contrário

653* `effort`: [Nível de esforço](/docs/pt/model-config#adjust-effort-level) aplicado à requisição: `"low"`, `"medium"`, `"high"`, `"xhigh"`, ou `"max"`. Ausente quando Claude Code não envia nível de esforço, por exemplo em um modelo que não suporta esforço.659* `effort`: [Nível de esforço](/docs/pt/model-config#adjust-effort-level) aplicado à requisição: `"low"`, `"medium"`, `"high"`, `"xhigh"`, ou `"max"`. Ausente quando Claude Code não envia nível de esforço, por exemplo em um modelo que não suporta esforço.

654* `agent.name`: Tipo de subagente que emitiu a requisição. Nomes de agentes integrados e agentes de plugins do marketplace oficial aparecem literalmente. Outros nomes de agentes definidos pelo usuário são substituídos por `"custom"`. Ausente quando a requisição não foi emitida por um tipo de subagente nomeado.660* `agent.name`: Tipo de subagente que emitiu a requisição. Nomes de agentes integrados e agentes de plugins do marketplace oficial aparecem literalmente. Outros nomes de agentes definidos pelo usuário são substituídos por `"custom"` a menos que `OTEL_LOG_TOOL_DETAILS=1` esteja definido. Ausente quando a requisição não foi emitida por um tipo de subagente nomeado.

655* `skill.name`: Skill ativa para a requisição, definida pela ferramenta Skill, um comando `/`, ou herdada por um subagente gerado. Nomes de skills integrados, agrupados, definidos pelo usuário e de plugins do marketplace oficial aparecem literalmente. Nomes de skills de plugins de terceiros são substituídos por `"third-party"`. Ausente quando nenhuma skill está ativa.661* `skill.name`: Skill ativa para a requisição, definida pela ferramenta Skill, um comando `/`, ou herdada por um subagente gerado. Nomes de skills integrados, agrupados, definidos pelo usuário e de plugins do marketplace oficial aparecem literalmente. Nomes de skills de plugins de terceiros são substituídos por `"third-party"` a menos que `OTEL_LOG_TOOL_DETAILS=1` esteja definido. Ausente quando nenhuma skill está ativa.

656* `plugin.name`: Plugin proprietário quando a skill ativa ou subagente é fornecido por um plugin. Nomes de plugins do marketplace oficial aparecem literalmente. Nomes de plugins de terceiros são substituídos por `"third-party"`. Ausente quando nem a skill nem o subagente tem um plugin proprietário.662* `plugin.name`: Plugin proprietário quando a skill ativa ou subagente é fornecido por um plugin. Nomes de plugins do marketplace oficial aparecem literalmente. Nomes de plugins de terceiros são substituídos por `"third-party"` a menos que `OTEL_LOG_TOOL_DETAILS=1` esteja definido. Ausente quando nem a skill nem o subagente tem um plugin proprietário.

657* `marketplace.name`: Marketplace do qual o plugin proprietário foi instalado. Emitido apenas para plugins do marketplace oficial. Ausente caso contrário.663* `marketplace.name`: Marketplace do qual o plugin proprietário foi instalado. Emitido apenas para plugins do marketplace oficial. Ausente caso contrário.

658* `mcp_server.name`: Servidor MCP cujo resultado de ferramenta esta requisição consumiu. Nomes de servidores integrados, proxied por claude.ai e do registro oficial aparecem literalmente. Nomes de servidores configurados pelo usuário são substituídos por `"custom"`. Ausente quando a requisição não consumiu resultado de ferramenta MCP. Antes da v2.1.222, Claude Code definia este atributo em cada requisição após uma chamada de ferramenta MCP, não apenas em requisições que consumiram um resultado de ferramenta, então dashboards que o agregam mostram uma queda após você atualizar.664* `mcp_server.name`: Servidor MCP cujo resultado de ferramenta esta requisição consumiu. Nomes de servidores integrados, proxied por claude.ai e do registro oficial aparecem literalmente. Nomes de servidores configurados pelo usuário são substituídos por `"custom"` a menos que `OTEL_LOG_TOOL_DETAILS=1` esteja definido. Ausente quando a requisição não consumiu resultado de ferramenta MCP. Antes da v2.1.222, Claude Code definia este atributo em cada requisição após uma chamada de ferramenta MCP, não apenas em requisições que consumiram um resultado de ferramenta, então dashboards que o agregam mostram uma queda após você atualizar.

659* `mcp_tool.name`: Ferramenta MCP cujo resultado esta requisição consumiu, com o mesmo comportamento de redação e versão que `mcp_server.name`. Ausente quando a requisição não consumiu resultado de ferramenta MCP.665* `mcp_tool.name`: Ferramenta MCP cujo resultado esta requisição consumiu, com o mesmo comportamento de redação e versão que `mcp_server.name`. Ausente quando a requisição não consumiu resultado de ferramenta MCP.

660 666 

661<h4 id="token-counter">667<h4 id="token-counter">


1086* `marketplace.name`: marketplace do qual o plugin foi instalado, quando conhecido. Redatado para `"third-party"` sob a mesma condição que `plugin.name`1092* `marketplace.name`: marketplace do qual o plugin foi instalado, quando conhecido. Redatado para `"third-party"` sob a mesma condição que `plugin.name`

1087* `plugin.version`: versão do manifesto do plugin. Incluído apenas quando o nome não é redatado e o manifesto declara uma versão1093* `plugin.version`: versão do manifesto do plugin. Incluído apenas quando o nome não é redatado e o manifesto declara uma versão

1088* `plugin.scope`: categoria de proveniência para o plugin: `"official"`, `"community"`, `"org"`, `"user-local"`, ou `"default-bundle"`1094* `plugin.scope`: categoria de proveniência para o plugin: `"official"`, `"community"`, `"org"`, `"user-local"`, ou `"default-bundle"`

1089* `enabled_via`: como o plugin veio a ser habilitado: `"default-enable"`, `"org-policy"`, `"admin-install"`, `"seed-mount"`, ou `"user-install"`. O valor `"admin-install"` significa que o plugin está definido como obrigatório ou auto-instalação para sua organização em [**Configurações da Organização > Plugins**](https://claude.ai/admin-settings/plugins). Antes da v2.1.246, Claude Code relatava esses plugins como `"user-install"` ou `"seed-mount"`1095* `enabled_via`: como o plugin veio a ser habilitado: `"default-enable"`, `"org-policy"`, `"admin-install"`, `"seed-mount"`, ou `"user-install"`. O valor `"admin-install"` significa que o plugin está definido como obrigatório ou auto-instalação para sua organização em [**Configurações da Organização > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=inventory). Antes da v2.1.246, Claude Code relatava esses plugins como `"user-install"` ou `"seed-mount"`

1090* `plugin_id_hash`: hash determinístico do nome do plugin e marketplace, enviado apenas para seu exportador configurado. Permite contar os plugins de terceiros distintos carregados em sua frota sem registrar seus nomes. Para [plugins sincronizados de claude.ai](/docs/pt/plugins-reference#synced-plugins), Claude Code faz hash do nome do plugin com o nome do marketplace que claude.ai relata para o plugin, ou com `synced` caso contrário. Antes da v2.1.246, Claude Code não usava o nome do marketplace que claude.ai relata no hash1096* `plugin_id_hash`: hash determinístico do nome do plugin e marketplace, enviado apenas para seu exportador configurado. Permite contar os plugins de terceiros distintos carregados em sua frota sem registrar seus nomes. Para [plugins sincronizados de claude.ai](/docs/pt/plugins/loading#synced-plugins), Claude Code faz hash do nome do plugin com o nome do marketplace que claude.ai relata para o plugin, ou com `synced` caso contrário. Antes da v2.1.246, Claude Code não usava o nome do marketplace que claude.ai relata no hash

1091* `has_hooks`: se o plugin contribui hooks1097* `has_hooks`: se o plugin contribui hooks

1092* `has_mcp`: se o plugin contribui servidores MCP1098* `has_mcp`: se o plugin contribui servidores MCP

1093* `host_owned_mcp`: `true` quando o host SDK gerencia as conexões MCP deste plugin e Claude Code pulou a leitura da configuração do servidor MCP do plugin, `false` caso contrário. Requer Claude Code v2.1.172 ou posterior1099* `host_owned_mcp`: `true` quando o host SDK gerencia as conexões MCP deste plugin e Claude Code pulou a leitura da configuração do servidor MCP do plugin, `false` caso contrário. Requer Claude Code v2.1.172 ou posterior


1363* Defina-o no bloco `env` de configurações gerenciadas, configurações do usuário, ou `--settings`, ou no ambiente com o qual você inicia Claude Code. Um valor em configurações de projeto ou local não o ativa, porque um repositório clonado pode escrevê-los.1369* Defina-o no bloco `env` de configurações gerenciadas, configurações do usuário, ou `--settings`, ou no ambiente com o qual você inicia Claude Code. Um valor em configurações de projeto ou local não o ativa, porque um repositório clonado pode escrevê-los.

1364* Configurações gerenciadas pelo servidor podem defini-lo sem mostrar o [diálogo de aprovação de segurança](/docs/pt/server-managed-settings#security-approval-dialogs), porque a variável apenas adiciona sua própria política redatada da organização a um evento que sua organização já recebe.1370* Configurações gerenciadas pelo servidor podem defini-lo sem mostrar o [diálogo de aprovação de segurança](/docs/pt/server-managed-settings#security-approval-dialogs), porque a variável apenas adiciona sua própria política redatada da organização a um evento que sua organização já recebe.

1365 1371 

1366Em uma sessão interativa em uma pasta que você não [confiou](/docs/pt/permissions#what-runs-before-you-trust-a-folder), Claude Code não exporta o evento de recusa, porque configurações de projeto e local poderiam apontar a exportação para um coletor diferente antes da confiança.1372Em uma sessão interativa em uma pasta que você não [confiou](/docs/pt/permissions#what-runs-before-you-trust-a-folder), Claude Code não exporta o evento de recusa.

1367 1373 

1368**Nome do Evento**: `claude_code.managed_settings_resolved`1374**Nome do Evento**: `claude_code.managed_settings_resolved`

1369 1375 

Details

245| `registry.npmjs.org` | Instalações de plugins (buscando pacotes de plugins de origem npm e instalando dependências de pacotes Node.js de plugins), servidores MCP iniciados com `npx` e o registro de pacotes para instalações npm e bun do próprio Claude Code |245| `registry.npmjs.org` | Instalações de plugins (buscando pacotes de plugins de origem npm e instalando dependências de pacotes Node.js de plugins), servidores MCP iniciados com `npx` e o registro de pacotes para instalações npm e bun do próprio Claude Code |

246| `bridge.claudeusercontent.com` | Ponte WebSocket da [extensão Claude no Chrome](/docs/pt/chrome) |246| `bridge.claudeusercontent.com` | Ponte WebSocket da [extensão Claude no Chrome](/docs/pt/chrome) |

247| `*.frame.claudeusercontent.com` | Leituras de conteúdo de [Artifact](/docs/pt/artifacts). A CLI busca os arquivos de um artifact deste host quando Claude abre um, e apenas quando a ferramenta Artifact está [disponível](/docs/pt/artifacts#availability) para sua conta. Para desativar a ferramenta e remover este requisito, defina [`"enableArtifact": false`](/docs/pt/settings-reference#enableartifact) ou [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/pt/env-vars); Claude Code também honra a configuração [`disableArtifact`](/docs/pt/settings-reference#disableartifact) descontinuada. Consulte [Desabilitar artifacts](/docs/pt/artifacts#disable-artifacts) para saber como essas configurações interagem |247| `*.frame.claudeusercontent.com` | Leituras de conteúdo de [Artifact](/docs/pt/artifacts). A CLI busca os arquivos de um artifact deste host quando Claude abre um, e apenas quando a ferramenta Artifact está [disponível](/docs/pt/artifacts#availability) para sua conta. Para desativar a ferramenta e remover este requisito, defina [`"enableArtifact": false`](/docs/pt/settings-reference#enableartifact) ou [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/pt/env-vars); Claude Code também honra a configuração [`disableArtifact`](/docs/pt/settings-reference#disableartifact) descontinuada. Consulte [Desabilitar artifacts](/docs/pt/artifacts#disable-artifacts) para saber como essas configurações interagem |

248| `github.com` | Clonagem de [marketplaces de plugins](/docs/pt/plugin-marketplaces) e plugins hospedados no GitHub, incluindo o marketplace oficial da Anthropic, via HTTPS ou SSH. Para clonar fontes `owner/repo` do GitHub apenas via HTTPS, defina [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/pt/env-vars) |248| `github.com` | Clonagem de [marketplaces de plugins](/docs/pt/plugins/overview) e plugins hospedados no GitHub, incluindo o marketplace oficial da Anthropic, via HTTPS ou SSH. Para clonar fontes `owner/repo` do GitHub apenas via HTTPS, defina [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/pt/env-vars) |

249| `raw.githubusercontent.com` | Feed de changelog para [`/release-notes`](/docs/pt/commands). Em sessões interativas, Claude Code também o busca em segundo plano na inicialização quando seu changelog em cache ainda não cobre a versão em execução, como na primeira inicialização após uma atualização; sessões não interativas e em nuvem nunca o buscam |249| `raw.githubusercontent.com` | Feed de changelog para [`/release-notes`](/docs/pt/commands). Em sessões interativas, Claude Code também o busca em segundo plano na inicialização quando seu changelog em cache ainda não cobre a versão em execução, como na primeira inicialização após uma atualização; sessões não interativas e em nuvem nunca o buscam |

250| `*-review.googlesource.com` | Pesquisa de alteração Gerrit em checkouts `googlesource.com`. Quando uma sessão de guia Claude Desktop Code inicia ou retoma em um checkout [confiável](/docs/pt/permissions#project-allow-rules-and-workspace-trust) cujo `origin` é um host `googlesource.com`, Claude Code pergunta anonimamente ao servidor `-review` desse host pela alteração aberta correspondente ao `Change-Id` do HEAD, uma vez por inicialização ou retomada. Outros tipos de sessão pulam a pesquisa, e nenhum outro host Gerrit é contatado. Opcional: desabilite com [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/pt/env-vars) |250| `*-review.googlesource.com` | Pesquisa de alteração Gerrit em checkouts `googlesource.com`. Quando uma sessão de guia Claude Desktop Code inicia ou retoma em um checkout [confiável](/docs/pt/permissions#project-allow-rules-and-workspace-trust) cujo `origin` é um host `googlesource.com`, Claude Code pergunta anonimamente ao servidor `-review` desse host pela alteração aberta correspondente ao `Change-Id` do HEAD, uma vez por inicialização ou retomada. Outros tipos de sessão pulam a pesquisa, e nenhum outro host Gerrit é contatado. Opcional: desabilite com [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/pt/env-vars) |

251| `http-intake.logs.us5.datadoghq.com` | Eventos de telemetria operacional, enviados apenas quando a CLI usa a API Anthropic diretamente, nunca para Amazon Bedrock, Agent Platform do Google Cloud ou Microsoft Foundry. Opcional: desabilite com [`DISABLE_TELEMETRY`](/docs/pt/data-usage#telemetry-services) ou `DO_NOT_TRACK` |251| `http-intake.logs.us5.datadoghq.com` | Eventos de telemetria operacional, enviados apenas quando a CLI usa a API Anthropic diretamente, nunca para Amazon Bedrock, Agent Platform do Google Cloud ou Microsoft Foundry. Opcional: desabilite com [`DISABLE_TELEMETRY`](/docs/pt/data-usage#telemetry-services) ou `DO_NOT_TRACK` |

Details

171 </Step>171 </Step>

172</Steps>172</Steps>

173 173 

174[Plugins](/docs/pt/plugins-reference) também podem enviar estilos de saída em um diretório `output-styles/`.174[Plugins](/docs/pt/plugins/manifest-reference) também podem enviar estilos de saída em um diretório `output-styles/`.

175 175 

176<h3 id="frontmatter">176<h3 id="frontmatter">

177 Referência de frontmatter177 Referência de frontmatter


228 228 

229* [Settings](/docs/pt/settings): onde o campo `outputStyle` reside e como a precedência de configurações funciona229* [Settings](/docs/pt/settings): onde o campo `outputStyle` reside e como a precedência de configurações funciona

230* [Permission modes](/docs/pt/permission-modes): como o estilo Proactive se compara ao modo automático230* [Permission modes](/docs/pt/permission-modes): como o estilo Proactive se compara ao modo automático

231* [Plugins](/docs/pt/plugins): empacote e distribua estilos de saída junto com skills, hooks e agents231* [Plugins](/docs/pt/plugins/overview): empacote e distribua estilos de saída junto com skills, hooks e agents

232* [Debug your configuration](/docs/pt/debug-your-config): diagnostique por que um estilo de saída não está entrando em vigor232* [Debug your configuration](/docs/pt/debug-your-config): diagnostique por que um estilo de saída não está entrando em vigor

Details

332 Revisão do classificador no servidor332 Revisão do classificador no servidor

333</h3>333</h3>

334 334 

335Em planos Enterprise e contas que usam a API Claude, no [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), Amazon Bedrock, Agent Platform do Google Cloud e Microsoft Foundry, e sempre que você aponta `ANTHROPIC_BASE_URL` para um [gateway LLM ou proxy](/docs/pt/llm-gateway), Claude Code no modo automático pede ao servidor para revisar [as ações que vão para o classificador](#how-the-classifier-evaluates-actions) como parte das solicitações de modelo da sessão. Onde o servidor as revisa, seus vereditos decidem essas ações. Onde não revisa, na maioria das vezes porque um gateway LLM ou proxy interfere no tráfego, ou porque a plataforma, região ou credencial ainda não tem verificações no servidor, Claude Code volta para suas próprias solicitações do classificador, e uma vez que esse fallback se mantém pelo resto da sessão, mostra um [aviso sobre cobranças de solicitação do classificador](/docs/pt/auto-mode-classifier-billing) em contas onde essas solicitações são cobradas. Para pular a solicitação ao servidor e sempre usar as próprias solicitações do classificador de Claude Code, defina [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/pt/env-vars). A variável não é lida em uma conexão direta com a API Anthropic. Se você definir `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` e deixar `CLAUDE_CODE_AUTO_MODE_SERVER` indefinido, Claude Code também para de solicitar ao servidor.335Em modo automático, Claude Code pode pedir ao servidor para verificar as ações que [a ordem de decisão](#how-the-classifier-evaluates-actions) envia para revisão, como parte das solicitações de modelo da sessão, em vez de enviar suas próprias solicitações do classificador. Essas sessões pedem:

336 336 

337Solicitar ao servidor por padrão requer Claude Code v2.1.278 ou posterior.337* **Uma conexão direta com a API Anthropic**: em uma sessão de terminal interativa, em todos os planos claude.ai e em contas que usam a API Claude, conforme Anthropic o implementa. Requer Claude Code v2.1.271 ou posterior nos planos Pro, Max e Team, e v2.1.278 ou posterior nos planos Enterprise e contas da API Claude. A partir da v2.1.282, uma sessão que [não busca sinalizadores de recurso](/docs/pt/env-vars#features-that-need-feature-flag-fetching), por exemplo porque você desativou a telemetria, pede ao servidor por padrão em qualquer tipo de sessão.

338* **Um provedor de nuvem, ou um gateway LLM ou proxy**: no [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), Amazon Bedrock, Agent Platform do Google Cloud e Microsoft Foundry, e sempre que você aponta `ANTHROPIC_BASE_URL` para um [gateway LLM ou proxy](/docs/pt/llm-gateway), qualquer que seja seu plano. Pedir por padrão requer Claude Code v2.1.278 ou posterior.

339* **Uma sessão [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway) conectada**: requer Claude Code v2.1.280 ou posterior

340 

341Onde o servidor revisa as ações, seus vereditos decidem-nas. Dois outros resultados são possíveis:

342 

343* **O servidor não revisa a sessão**: uma resposta é concluída sem resultados de revisão, ou o servidor responde que não revisa essa sessão. As causas mais comuns são um gateway LLM ou proxy que descarta a solicitação de revisão ou os resultados, e uma plataforma, região ou credencial que ainda não tem verificações no servidor. Claude Code volta para suas próprias solicitações do classificador. Uma vez que esse fallback se mantém pelo resto da sessão, mostra um [aviso sobre cobranças de solicitação do classificador](/docs/pt/auto-mode-classifier-billing) em contas onde essas solicitações são cobradas.

344* **O servidor não dá veredito para uma ação**: Claude Code nega a ação em vez de executá-la sem revisão. Em qualquer conexão, isso acontece quando a resposta termina antes dos resultados de revisão chegarem ou os resultados chegam em uma forma que Claude Code não consegue ler. Um gateway LLM ou proxy que corta respostas ou reescreve os resultados pode causar qualquer um. Em uma conexão direta com a API Anthropic, também acontece quando a verificação do servidor falha para a ação, por exemplo ao expirar. [O servidor não retornou veredito de segurança](/docs/pt/errors#the-server-returned-no-safety-verdict) cobre a mensagem de negação, o que acontece quando negações se repetem e o que fazer.

345 

346Para pular a solicitação ao servidor e sempre usar as próprias solicitações do classificador de Claude Code, defina [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/pt/env-vars). Em uma conexão direta com a API Anthropic, a variável requer Claude Code v2.1.281 ou posterior. Defini-la como `1` lá ativa a revisão do servidor em uma sessão que não a tem ainda, como uma sessão `-p` ou Agent SDK, a menos que você também tenha definido `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`. Se você definir `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` e deixar `CLAUDE_CODE_AUTO_MODE_SERVER` indefinido, Claude Code também para de pedir ao servidor.

338 347 

339<h3 id="what-the-classifier-blocks-by-default">348<h3 id="what-the-classifier-blocks-by-default">

340 O que o classificador bloqueia por padrão349 O que o classificador bloqueia por padrão


476* **Uma ação bloqueada**: Claude Code mostra uma notificação e lista a ação em `/permissions` na aba **Recently denied**, onde você pode pressionar `r` para tentar novamente com uma aprovação manual. Quando o classificador produz [nenhum veredito sobre a ação](/docs/pt/errors#auto-mode-cannot-determine-the-safety-of-an-action), porque uma verificação de segurança separada do modo automático recusou a própria solicitação do classificador ou sua resposta não foi analisada, Claude Code nega a ação sem a notificação ou a entrada **Recently denied**.485* **Uma ação bloqueada**: Claude Code mostra uma notificação e lista a ação em `/permissions` na aba **Recently denied**, onde você pode pressionar `r` para tentar novamente com uma aprovação manual. Quando o classificador produz [nenhum veredito sobre a ação](/docs/pt/errors#auto-mode-cannot-determine-the-safety-of-an-action), porque uma verificação de segurança separada do modo automático recusou a própria solicitação do classificador ou sua resposta não foi analisada, Claude Code nega a ação sem a notificação ou a entrada **Recently denied**.

477* **Bloqueios repetidos**: se o classificador bloqueia uma ação 3 vezes seguidas ou 20 vezes no total, o modo automático pausa e Claude Code retoma a solicitação. Aprovar a ação solicitada retoma o modo automático. Esses limites não são configuráveis. Qualquer ação permitida redefine o contador consecutivo, enquanto o contador total persiste para a sessão e redefine apenas quando seu próprio limite dispara um fallback. Claude Code não conta uma negação para nenhum limite quando [uma verificação de segurança separada do modo automático recusa a solicitação do classificador](/docs/pt/errors#auto-mode-cannot-determine-the-safety-of-an-action); a entrada vinculada cobre como Claude Code lida com essas negações.486* **Bloqueios repetidos**: se o classificador bloqueia uma ação 3 vezes seguidas ou 20 vezes no total, o modo automático pausa e Claude Code retoma a solicitação. Aprovar a ação solicitada retoma o modo automático. Esses limites não são configuráveis. Qualquer ação permitida redefine o contador consecutivo, enquanto o contador total persiste para a sessão e redefine apenas quando seu próprio limite dispara um fallback. Claude Code não conta uma negação para nenhum limite quando [uma verificação de segurança separada do modo automático recusa a solicitação do classificador](/docs/pt/errors#auto-mode-cannot-determine-the-safety-of-an-action); a entrada vinculada cobre como Claude Code lida com essas negações.

478* **Sessões que não podem solicitar**: uma execução `-p` [não interativa](/docs/pt/headless) sem um [`--permission-prompt-tool`](/docs/pt/cli-reference#cli-flags) não tem prompt para voltar. Quando bloqueios repetidos atingem um limite, a ação não é executada e Claude continua trabalhando. O mesmo se aplica quando [uma verificação de segurança separada do modo automático recusa a solicitação do classificador](/docs/pt/errors#auto-mode-cannot-determine-the-safety-of-an-action). Claude Code não para a execução em nenhum dos casos.487* **Sessões que não podem solicitar**: uma execução `-p` [não interativa](/docs/pt/headless) sem um [`--permission-prompt-tool`](/docs/pt/cli-reference#cli-flags) não tem prompt para voltar. Quando bloqueios repetidos atingem um limite, a ação não é executada e Claude continua trabalhando. O mesmo se aplica quando [uma verificação de segurança separada do modo automático recusa a solicitação do classificador](/docs/pt/errors#auto-mode-cannot-determine-the-safety-of-an-action). Claude Code não para a execução em nenhum dos casos.

488* **Nenhum veredito do servidor**: sob [revisão do classificador no servidor](#server-side-classifier-review), Claude Code nega uma ação para a qual o servidor não dá veredito, e para a volta após dez respostas seguidas sem veredito. Consulte [O servidor não retornou veredito de segurança](/docs/pt/errors#the-server-returned-no-safety-verdict).

479* **Uma mudança de modo durante uma verificação**: se você alternar modos de permissão enquanto uma verificação do classificador está pendente, Claude Code descarta um veredito que o novo modo não teria solicitado em vez de aplicá-lo: você é solicitado para aprovação, ou a ação é auto-negada no [modo `dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode).489* **Uma mudança de modo durante uma verificação**: se você alternar modos de permissão enquanto uma verificação do classificador está pendente, Claude Code descarta um veredito que o novo modo não teria solicitado em vez de aplicá-lo: você é solicitado para aprovação, ou a ação é auto-negada no [modo `dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode).

480 490 

481Bloqueios repetidos geralmente significam que o classificador está perdendo contexto sobre sua infraestrutura. Use `/feedback` para relatar falsos positivos, ou peça a um administrador para [configurar infraestrutura confiável](/docs/pt/auto-mode-config).491Bloqueios repetidos geralmente significam que o classificador está perdendo contexto sobre sua infraestrutura. Use `/feedback` para relatar falsos positivos, ou peça a um administrador para [configurar infraestrutura confiável](/docs/pt/auto-mode-config).


492 * Um comando de shell que carrega [domínios permitidos por comando](/docs/pt/sandboxing#per-command-allowed-domains-in-auto-mode) também é roteado para o classificador mesmo quando uma regra de permissão corresponde, porque uma regra aprova o comando, não seus hosts502 * Um comando de shell que carrega [domínios permitidos por comando](/docs/pt/sandboxing#per-command-allowed-domains-in-auto-mode) também é roteado para o classificador mesmo quando uma regra de permissão corresponde, porque uma regra aprova o comando, não seus hosts

493 * Regras de solicitação que correspondem no conteúdo de um comando, como `Bash(git push *)`, voltam para um prompt de permissão503 * Regras de solicitação que correspondem no conteúdo de um comando, como `Bash(git push *)`, voltam para um prompt de permissão

494 2. Ações somente leitura e edições de arquivo em seu diretório de trabalho são auto-aprovadas, exceto gravações em [caminhos protegidos](#protected-paths) e [a primeira leitura fora dos diretórios de trabalho](#first-read-outside-the-working-directories), que o solicita504 2. Ações somente leitura e edições de arquivo em seu diretório de trabalho são auto-aprovadas, exceto gravações em [caminhos protegidos](#protected-paths) e [a primeira leitura fora dos diretórios de trabalho](#first-read-outside-the-working-directories), que o solicita

505 * Em uma sessão com [revisão do classificador no servidor](#server-side-classifier-review), ações somente leitura e comandos de shell [em sandbox](/docs/pt/sandboxing#sandbox-modes) aguardam essa revisão e são bloqueados se ela os sinalizar

495 3. Tudo o mais vai para o classificador. As ferramentas de conector e ferramentas MCP `requiresUserInteraction` que o solicitam diretamente na etapa 1 nunca chegam ao classificador, portanto nem uma aprovação exigida pela organização nem uma etapa de consentimento é auto-aprovada506 3. Tudo o mais vai para o classificador. As ferramentas de conector e ferramentas MCP `requiresUserInteraction` que o solicitam diretamente na etapa 1 nunca chegam ao classificador, portanto nem uma aprovação exigida pela organização nem uma etapa de consentimento é auto-aprovada

496 4. Se o classificador bloqueia, Claude recebe o motivo e tenta uma alternativa. Na maioria das sessões o motivo nomeia a regra que o classificador correspondeu, como `[Data Exfiltration]`, em vez de dar uma explicação escrita; consulte [Revisar negações](/docs/pt/auto-mode-config#review-denials)507 4. Se o classificador bloqueia, Claude recebe o motivo e tenta uma alternativa. Na maioria das sessões o motivo nomeia a regra que o classificador correspondeu, como `[Data Exfiltration]`, em vez de dar uma explicação escrita; consulte [Revisar negações](/docs/pt/auto-mode-config#review-denials)

497 508 

permissions.md +5 −5

Details

278 Comandos somente leitura278 Comandos somente leitura

279</h4>279</h4>

280 280 

281Claude Code reconhece um conjunto integrado de comandos Bash como somente leitura e os executa sem um prompt de permissão em cada modo, exceto por um caminho que [`permissions.blockReadsOutsideWorkingDirectories`](/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) protege. O conjunto inclui `ls`, `cat`, `echo`, `pwd`, `head`, `tail`, `grep`, `find`, `wc`, `which`, `diff`, `stat`, `du`, `cd` e formas somente leitura de `git`. O conjunto não é configurável; para exigir um prompt para um desses comandos, adicione uma regra `ask` ou `deny` para ele.281Claude Code reconhece um conjunto integrado de comandos Bash como somente leitura e os executa sem um prompt de permissão em cada modo, exceto por um caminho que [`permissions.blockReadsOutsideWorkingDirectories`](/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) protege. O conjunto inclui `ls`, `cat`, `echo`, `pwd`, `head`, `tail`, `grep`, `find`, `wc`, `which`, `diff`, `stat`, `du`, `cd` e formas somente leitura de `git`. O conjunto não é configurável; para exigir um prompt para um desses comandos, adicione uma regra `ask` ou `deny` para ele. Em modo auto, esses comandos também podem aguardar a revisão do classificador; veja [como o classificador avalia ações](/docs/pt/permission-modes#how-the-classifier-evaluates-actions).

282 282 

283Um redirecionamento como `ls > out.txt` adiciona uma verificação no alvo. Veja [Redirecionamentos](#redirections).283Um redirecionamento como `ls > out.txt` adiciona uma verificação no alvo. Veja [Redirecionamentos](#redirections).

284 284 


605 605 

606* Suas configurações de projeto, incluindo suas regras de permissão e [hooks](/docs/pt/hooks)606* Suas configurações de projeto, incluindo suas regras de permissão e [hooks](/docs/pt/hooks)

607* Seus servidores [`.mcp.json`](/docs/pt/mcp#project-scope), sujeitos à mesma [aprovação de servidor](/docs/pt/mcp#project-server-approvals-and-workspace-trust) que na inicialização, e os servidores MCP [local-scope](/docs/pt/mcp#local-scope) que você registrou nele607* Seus servidores [`.mcp.json`](/docs/pt/mcp#project-scope), sujeitos à mesma [aprovação de servidor](/docs/pt/mcp#project-server-approvals-and-workspace-trust) que na inicialização, e os servidores MCP [local-scope](/docs/pt/mcp#local-scope) que você registrou nele

608* Os [plugins](/docs/pt/plugins) que suas configurações habilitam, suas [skills](/docs/pt/skills#discovery-from-parent-and-nested-directories) e seus [subagentes](/docs/pt/sub-agents)608* Os [plugins](/docs/pt/plugins/overview) que suas configurações habilitam, suas [skills](/docs/pt/skills#discovery-from-parent-and-nested-directories) e seus [subagentes](/docs/pt/sub-agents)

609* Seus valores [`env`](/docs/pt/settings-reference#env), aplicados sobre as variáveis de ambiente das configurações do diretório anterior, que permanecem em vigor609* Seus valores [`env`](/docs/pt/settings-reference#env), aplicados sobre as variáveis de ambiente das configurações do diretório anterior, que permanecem em vigor

610 610 

611Claude Code também desconecta os servidores MCP [local-scope](/docs/pt/mcp#local-scope) do projeto do diretório anterior e os servidores dos [plugins](/docs/pt/mcp#plugin-provided-mcp-servers) que não estão mais habilitados após a mudança. Ele pega [diretórios adicionais](#working-directories) das configurações do novo diretório em vez do anterior, e mantém os diretórios que você adicionou com `--add-dir` ou `/add-dir`. Hooks que a mudança ativa ainda recebem [`${CLAUDE_PROJECT_DIR}`](/docs/pt/hooks#reference-scripts-by-path) definido para a raiz do projeto onde a sessão começou.611Claude Code também desconecta os servidores MCP [local-scope](/docs/pt/mcp#local-scope) do projeto do diretório anterior e os servidores dos [plugins](/docs/pt/mcp#plugin-provided-mcp-servers) que não estão mais habilitados após a mudança. Ele pega [diretórios adicionais](#working-directories) das configurações do novo diretório em vez do anterior, e mantém os diretórios que você adicionou com `--add-dir` ou `/add-dir`. Hooks que a mudança ativa ainda recebem [`${CLAUDE_PROJECT_DIR}`](/docs/pt/hooks#reference-scripts-by-path) definido para a raiz do projeto onde a sessão começou.


641Para compartilhar essa configuração entre projetos, use uma destas abordagens:641Para compartilhar essa configuração entre projetos, use uma destas abordagens:

642 642 

643* **Configuração em nível de usuário**: coloque arquivos em `~/.claude/agents/`, `~/.claude/output-styles/` ou `~/.claude/settings.json` para torná-los disponíveis em cada projeto643* **Configuração em nível de usuário**: coloque arquivos em `~/.claude/agents/`, `~/.claude/output-styles/` ou `~/.claude/settings.json` para torná-los disponíveis em cada projeto

644* **Plugins**: empacote e distribua configuração como um [plugin](/docs/pt/plugins) que as equipes podem instalar644* **Plugins**: empacote e distribua configuração como um [plugin](/docs/pt/plugins/overview) que as equipes podem instalar

645* **Inicie do diretório de configuração**: execute Claude Code do diretório contendo a configuração `.claude/` que você deseja645* **Inicie do diretório de configuração**: execute Claude Code do diretório contendo a configuração `.claude/` que você deseja

646 646 

647<h2 id="how-permissions-interact-with-sandboxing">647<h2 id="how-permissions-interact-with-sandboxing">


729Cada linha é um tipo de conteúdo que um repositório pode fornecer. As colunas são as duas situações em que você não confiou na pasta em si: você confiou apenas em uma pasta pai, ou executou `claude -p` ou o SDK lá, que nunca mostra o diálogo de confiança. A coluna de pasta pai não se aplica dentro de um [repositório aninhado](#project-allow-rules-and-workspace-trust): em uma sessão interativa Claude Code mostra o diálogo de confiança para ela, e uma execução `claude -p` ou SDK lá segue a coluna `claude -p`.729Cada linha é um tipo de conteúdo que um repositório pode fornecer. As colunas são as duas situações em que você não confiou na pasta em si: você confiou apenas em uma pasta pai, ou executou `claude -p` ou o SDK lá, que nunca mostra o diálogo de confiança. A coluna de pasta pai não se aplica dentro de um [repositório aninhado](#project-allow-rules-and-workspace-trust): em uma sessão interativa Claude Code mostra o diálogo de confiança para ela, e uma execução `claude -p` ou SDK lá segue a coluna `claude -p`.

730 730 

731| O que o repositório fornece | Você confiou apenas em uma pasta pai | `claude -p` ou o SDK, pasta nunca confiada |731| O que o repositório fornece | Você confiou apenas em uma pasta pai | `claude -p` ou o SDK, pasta nunca confiada |

732| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |732| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

733| [Hooks](/docs/pt/hooks) em arquivos de configurações, o bloco [`env`](/docs/pt/settings-reference#env) e comandos auxiliares como [`apiKeyHelper`](/docs/pt/settings-reference#apikeyhelper), e os [hooks](/docs/pt/hooks#hooks-in-skills-and-agents) de uma skill do projeto e [`allowed-tools`](/docs/pt/skills#pre-approve-tools-for-a-skill) | Usado | Usado. A confiança do workspace nunca bloqueia `allowed-tools` de uma skill em nenhuma sessão |733| [Hooks](/docs/pt/hooks) em arquivos de configurações, o bloco [`env`](/docs/pt/settings-reference#env) e comandos auxiliares como [`apiKeyHelper`](/docs/pt/settings-reference#apikeyhelper), e os [hooks](/docs/pt/hooks#hooks-in-skills-and-agents) de uma skill do projeto e [`allowed-tools`](/docs/pt/skills#pre-approve-tools-for-a-skill) | Usado | Usado. A confiança do workspace nunca bloqueia `allowed-tools` de uma skill em nenhuma sessão |

734| Regras `permissions.allow` e `additionalDirectories` em `.claude/settings.json` | Não usado até você aceitar o diálogo de confiança, que aparece novamente listando-os | Não usado. Claude Code imprime um aviso [`this workspace has not been trusted`](/docs/pt/errors#workspace-has-not-been-trusted) para stderr |734| Regras `permissions.allow` e `additionalDirectories` em `.claude/settings.json` | Não usado até você aceitar o diálogo de confiança, que aparece novamente listando-os | Não usado. Claude Code imprime um aviso [`this workspace has not been trusted`](/docs/pt/errors#workspace-has-not-been-trusted) para stderr |

735| Hooks de frontmatter em um [subagent](/docs/pt/sub-agents#hooks-in-subagent-frontmatter) do projeto, um plugin [`@skills-dir`](/docs/pt/plugins-reference#skills-directory-plugins) do projeto, e entradas [`extraKnownMarketplaces`](/docs/pt/settings-reference#extraknownmarketplaces) do repositório ou de um diretório `--add-dir` | Não usado, e nenhum diálogo é oferecido | Não usado |735| Hooks de frontmatter em um [subagent](/docs/pt/sub-agents#hooks-in-subagent-frontmatter) do projeto, um plugin [`@skills-dir`](/docs/pt/plugins/loading#plugins-shared-through-a-repository) do projeto, e entradas [`extraKnownMarketplaces`](/docs/pt/settings-reference#extraknownmarketplaces) do repositório ou de um diretório `--add-dir` | Não usado, e nenhum diálogo é oferecido | Não usado |

736| [`mcpServers`](/docs/pt/sub-agents#scope-mcp-servers-to-a-subagent) inline no frontmatter de um subagent do repositório ou de um diretório `--add-dir`. Antes da v2.1.238, Claude Code carregava esses servidores em ambas as situações | Não usado, e nenhum diálogo é oferecido | Não usado |736| [`mcpServers`](/docs/pt/sub-agents#scope-mcp-servers-to-a-subagent) inline no frontmatter de um subagent do repositório ou de um diretório `--add-dir`. Antes da v2.1.238, Claude Code carregava esses servidores em ambas as situações | Não usado, e nenhum diálogo é oferecido | Não usado |

737| Servidores em `.mcp.json`, incluindo aqueles que o repositório [aprova em suas próprias configurações](/docs/pt/mcp#project-server-approvals-and-workspace-trust) | Claude Code pergunta antes de conectá-los. As aprovações do próprio repositório não contam | Conectado sem perguntar, aprovado ou não. O SDK os carrega apenas quando `settingSources` inclui configurações do projeto. `claude mcp list` na mesma pasta ainda relata tal servidor como pendente |737| Servidores em `.mcp.json`, incluindo aqueles que o repositório [aprova em suas próprias configurações](/docs/pt/mcp#project-server-approvals-and-workspace-trust) | Claude Code pergunta antes de conectá-los. As aprovações do próprio repositório não contam | Conectado sem perguntar, aprovado ou não. O SDK os carrega apenas quando `settingSources` inclui configurações do projeto. `claude mcp list` na mesma pasta ainda relata tal servidor como pendente |

738| Um [`headersHelper`](/docs/pt/mcp#trust-a-folder-before-its-headershelper-runs) em um servidor em `.mcp.json`. Antes da v2.1.238, Claude Code executava o auxiliar em ambas as situações | Não executado até você aceitar o diálogo de confiança, que aparece novamente nomeando onde o auxiliar é declarado. Claude Code conecta o servidor apenas com seus `headers` estáticos até então | Não executado. Claude Code conecta o servidor com seus `headers` estáticos e imprime uma linha [`headersHelper not run`](/docs/pt/errors#headershelper-not-run) por servidor para stderr |738| Um [`headersHelper`](/docs/pt/mcp#trust-a-folder-before-its-headershelper-runs) em um servidor em `.mcp.json`. Antes da v2.1.238, Claude Code executava o auxiliar em ambas as situações | Não executado até você aceitar o diálogo de confiança, que aparece novamente nomeando onde o auxiliar é declarado. Claude Code conecta o servidor apenas com seus `headers` estáticos até então | Não executado. Claude Code conecta o servidor com seus `headers` estáticos e imprime uma linha [`headersHelper not run`](/docs/pt/errors#headershelper-not-run) por servidor para stderr |

platforms.md +3 −3

Details

34Integrações permitem que Claude trabalhe com serviços fora de sua base de código.34Integrações permitem que Claude trabalhe com serviços fora de sua base de código.

35 35 

36| Integração | O que faz | Use para |36| Integração | O que faz | Use para |

37| :----------------------------------- | :------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------- |37| :----------------------------------------------- | :------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------- |

38| [Chrome](/docs/pt/chrome) | Controla seu navegador com suas sessões conectadas | Testar aplicativos web, preencher formulários, automatizar sites sem uma API |38| [Chrome](/docs/pt/chrome) | Controla seu navegador com suas sessões conectadas | Testar aplicativos web, preencher formulários, automatizar sites sem uma API |

39| [GitHub Actions](/docs/pt/github-actions) | Executa Claude em seu pipeline CI | Revisões automatizadas de PR, triagem de problemas, manutenção agendada |39| [GitHub Actions](/docs/pt/github-actions) | Executa Claude em seu pipeline CI | Revisões automatizadas de PR, triagem de problemas, manutenção agendada |

40| [GitLab CI/CD](/docs/pt/gitlab-ci-cd) | O mesmo que GitHub Actions para GitLab | Automação orientada por CI no GitLab |40| [GitLab CI/CD](/docs/pt/gitlab-ci-cd) | O mesmo que GitHub Actions para GitLab | Automação orientada por CI no GitLab |

41| [Code Review](/docs/pt/code-review) | Revisa cada PR automaticamente | Capturando bugs antes da revisão humana |41| [Code Review](/docs/pt/code-review) | Revisa cada PR automaticamente | Capturando bugs antes da revisão humana |

42| [Slack](/docs/pt/slack) | Responde a menções `@Claude` em seus canais | Transformando relatórios de bugs em pull requests do chat da equipe |42| [Slack](/docs/pt/slack) | Responde a menções `@Claude` em seus canais | Transformando relatórios de bugs em pull requests do chat da equipe |

43| [Claude Tag](/docs/pt/claude-tag) | Executa `@Claude` como a identidade compartilhada de sua organização com acesso configurado pelo administrador | Acesso compartilhado da equipe em planos Team e Enterprise, em vez de sessões Slack por usuário |43| [Claude Tag](https://claude.com/docs/claude-tag) | Executa `@Claude` como a identidade compartilhada de sua organização com acesso configurado pelo administrador | Acesso compartilhado da equipe em planos Team e Enterprise, em vez de sessões Slack por usuário |

44 44 

45Para integrações não listadas aqui, [servidores MCP](/docs/pt/mcp) e [conectores](/docs/pt/desktop#connect-external-tools) permitem que você conecte quase qualquer coisa: Linear, Notion, Google Drive ou suas próprias APIs internas.45Para integrações não listadas aqui, [servidores MCP](/docs/pt/mcp) e [conectores](/docs/pt/desktop#connect-external-tools) permitem que você conecte quase qualquer coisa: Linear, Notion, Google Drive ou suas próprias APIs internas.

46 46 


87* [GitLab CI/CD](/docs/pt/gitlab-ci-cd): o mesmo para GitLab87* [GitLab CI/CD](/docs/pt/gitlab-ci-cd): o mesmo para GitLab

88* [Code Review](/docs/pt/code-review): revisão automática em cada pull request88* [Code Review](/docs/pt/code-review): revisão automática em cada pull request

89* [Slack](/docs/pt/slack): envie tarefas do chat da equipe, obtenha PRs de volta89* [Slack](/docs/pt/slack): envie tarefas do chat da equipe, obtenha PRs de volta

90* [Claude Tag](/docs/pt/claude-tag): execute `@Claude` como a identidade compartilhada de sua organização em planos Team e Enterprise90* [Claude Tag](https://claude.com/docs/claude-tag): execute `@Claude` como a identidade compartilhada de sua organização em planos Team e Enterprise

91 91 

92<h3 id="remote-access">92<h3 id="remote-access">

93 Acesso remoto93 Acesso remoto

plugin-dependencies.md +0 −267 deleted

File Deleted View Diff

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# Restringir versões de dependências de plugins

6 

7> Declare restrições de versão em dependências de plugins e agrupe um conjunto de plugins curado atrás de uma única instalação.

8 

9Um plugin pode depender de outros plugins listando-os em `plugin.json` ou em sua entrada de marketplace. Por padrão, uma dependência rastreia a versão mais recente disponível, portanto um lançamento upstream pode alterar a dependência sob seu plugin sem aviso. Restrições de versão permitem que você mantenha uma dependência em um intervalo de versão testado até que você escolha se mover.

10 

11Quando você instala um plugin que declara dependências, Claude Code resolve e instala automaticamente, exceto por uma dependência cuja entrada de marketplace tem uma [`command` source](/docs/pt/plugin-marketplaces#how-users-accept-the-command) ou um [`headersHelper`](/docs/pt/plugin-marketplaces#how-users-accept-a-headershelper-command), que você instala primeiro. Posteriormente, `/reload-plugins`, atualização automática do marketplace do plugin dependente, executar novamente `claude plugin install` no plugin dependente e `claude plugin marketplace add` cada um instala qualquer dependência declarada que ainda não esteja instalada, sob as mesmas regras; se uma permanecer não resolvida, consulte [Resolver erros de dependência](#resolve-dependency-errors).

12 

13Este guia é para autores de plugins que declaram dependências em `plugin.json` e para mantenedores de marketplace que marcam lançamentos. As dependências aqui são outros plugins; para os pacotes npm e Bun que um plugin usa, consulte [Dependências de pacotes Node.js](/docs/pt/plugins-reference#node-js-package-dependencies). Para instalar plugins que têm dependências, consulte [Descobrir e instalar plugins](/docs/pt/discover-plugins). Para o esquema de manifesto completo, consulte a [referência de Plugins](/docs/pt/plugins-reference).

14 

15<h2 id="why-constrain-dependency-versions">

16 Por que restringir versões de dependências

17</h2>

18 

19Considere um marketplace interno onde dois times publicam plugins. O time de plataforma mantém `secrets-vault`, um servidor MCP que envolve um backend de segredos. O time de deploy mantém `deploy-kit`, que chama `secrets-vault` para buscar credenciais durante deploys.

20 

21`deploy-kit` é testado contra `secrets-vault` v2.1.0. Sem uma restrição de versão, na próxima vez que o time de plataforma marcar um lançamento que renomeia uma ferramenta MCP, a atualização automática move `secrets-vault` de cada engenheiro para a nova versão e `deploy-kit` quebra.

22 

23Com uma restrição de versão, `deploy-kit` declara que precisa de `secrets-vault` no intervalo `~2.1.0`. Engenheiros com `deploy-kit` instalado permanecem na versão patch `2.1.x` mais alta correspondente. O time de deploy faz upgrade em seu próprio cronograma publicando uma nova versão de `deploy-kit` com uma restrição mais ampla.

24 

25<h2 id="declare-a-dependency-with-a-version-constraint">

26 Declare uma dependência com uma restrição de versão

27</h2>

28 

29Liste dependências no array `dependencies` do `plugin.json` do seu plugin.

30 

31O manifesto a seguir declara uma dependência sem versão e uma dependência restrita:

32 

33```json .claude-plugin/plugin.json theme={null}

34{

35 "name": "deploy-kit",

36 "version": "3.1.0",

37 "dependencies": [

38 "audit-logger",

39 { "name": "secrets-vault", "version": "~2.1.0" }

40 ]

41}

42```

43 

44Uma entrada pode ser uma string simples com apenas o nome do plugin, como `"audit-logger"` no manifesto `deploy-kit`, que depende de qualquer versão que o marketplace desse plugin forneça. Para mais controle, use um objeto com estes campos:

45 

46| Campo | Tipo | Descrição |

47| :------------ | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

48| `name` | string | Nome do plugin. Resolve dentro do mesmo marketplace que o plugin declarante. Obrigatório. |

49| `version` | string | Um [intervalo semver](https://github.com/npm/node-semver#ranges) como `~2.1.0`, `^2.0`, `>=1.4`, ou `=2.1.0`. A dependência é buscada na versão marcada mais alta que satisfaz este intervalo. |

50| `marketplace` | string | Um marketplace diferente para resolver `name`. Dependências entre marketplaces são bloqueadas a menos que o marketplace de destino esteja listado em [`allowCrossMarketplaceDependenciesOn`](#depend-on-a-plugin-from-another-marketplace) no `marketplace.json` do marketplace raiz. |

51 

52Versões pré-lançamento como `2.0.0-beta.1` são excluídas a menos que seu intervalo opte por um sufixo pré-lançamento como `^2.0.0-0`.

53 

54<h2 id="bundle-plugins-for-a-team">

55 Agrupar plugins para uma equipe

56</h2>

57 

58Além do `name` obrigatório, um manifesto de plugin pode consistir apenas em um array `dependencies`. Instalá-lo puxa todas as dependências, o que o torna uma forma de empacotar um conjunto de plugins curado atrás de uma única instalação.

59 

60Por exemplo, uma equipe de plataforma pode publicar bundles específicos de função em um marketplace interno para que os engenheiros executem um único `claude plugin install` em vez de instalar cada ferramenta separadamente:

61 

62```json .claude-plugin/plugin.json theme={null}

63{

64 "name": "backend-standard",

65 "version": "1.0.0",

66 "description": "Standard plugin set for backend engineers",

67 "dependencies": [

68 "secrets-vault",

69 "deploy-kit",

70 { "name": "db-migrate", "version": "^3.0" },

71 "oncall-runbook"

72 ]

73}

74```

75 

76Instalar `backend-standard` resolve e instala todas as quatro dependências.

77 

78Para adicionar uma ferramenta ao conjunto padrão posteriormente, publique uma nova versão de `backend-standard` com a dependência extra. A menos que o marketplace [atualize automaticamente](/docs/pt/discover-plugins#configure-auto-updates), os engenheiros pegam a nova versão de uma de duas formas:

79 

80* Ative a atualização automática para o marketplace em `/plugin`. A próxima atualização automática move o bundle para a nova versão e instala quaisquer dependências que ele adiciona.

81* Execute `claude plugin update backend-standard`, depois `/reload-plugins` para instalar as dependências recém-adicionadas.

82 

83Para distribuir bundles em toda uma organização, adicione o plugin bundle a `enabledPlugins` nas [configurações gerenciadas](/docs/pt/settings-reference#enabledplugins).

84 

85<h2 id="depend-on-a-plugin-from-another-marketplace">

86 Dependa de um plugin de outro marketplace

87</h2>

88 

89Por padrão, Claude Code recusa auto-instalar uma dependência que vive em um marketplace diferente do plugin que a declara. Isso evita que um marketplace puxe silenciosamente plugins de uma fonte que você não revisou.

90 

91Para permitir, o mantenedor do marketplace raiz adiciona o nome do marketplace de destino a `allowCrossMarketplaceDependenciesOn` em `marketplace.json`. O marketplace raiz é aquele que hospeda o plugin que o usuário está instalando; apenas sua lista de permissões é consultada, portanto a confiança não se encadeia através de marketplaces intermediários.

92 

93O seguinte `marketplace.json` permite que `deploy-kit` dependa de um plugin de `acme-shared`:

94 

95```json .claude-plugin/marketplace.json theme={null}

96{

97 "name": "acme-tools",

98 "owner": { "name": "Acme" },

99 "allowCrossMarketplaceDependenciesOn": ["acme-shared"],

100 "plugins": [

101 {

102 "name": "deploy-kit",

103 "source": "./deploy-kit",

104 "dependencies": [

105 { "name": "audit-logger", "marketplace": "acme-shared" }

106 ]

107 }

108 ]

109}

110```

111 

112Se o campo estiver faltando ou não incluir o marketplace de destino, a instalação falha com um erro `cross-marketplace` nomeando o campo a ser definido. Os usuários ainda podem instalar a dependência manualmente primeiro, o que satisfaz a restrição sem alterar a lista de permissões.

113 

114<h2 id="test-a-plugin-and-its-dependency-locally">

115 Teste um plugin e sua dependência localmente

116</h2>

117 

118Se você está desenvolvendo um plugin e o plugin do qual ele depende ao mesmo tempo, carregue ambos com `--plugin-dir`:

119 

120```bash theme={null}

121claude --plugin-dir ./my-dependency --plugin-dir ./my-plugin

122```

123 

124A cópia local da dependência satisfaz a entrada de dependência do seu plugin, mesmo quando a entrada nomeia um marketplace, portanto você não precisa instalar a dependência do seu marketplace. Claude Code não verifica uma [restrição de versão](#declare-a-dependency-with-a-version-constraint) contra uma cópia local, portanto o `plugin.json` local não precisa de uma `version`. Antes da v2.1.242, uma entrada de dependência que nomeava um marketplace nunca correspondia à cópia local, e Claude Code desabilitava seu plugin no carregamento.

125 

126Quando ambos os plugins estão em uma pasta pai, você pode passar essa pasta para `--plugin-dir` uma vez. Se a pasta não for ela mesma um plugin, Claude Code carrega cada pasta filha que tem um `.claude-plugin/plugin.json`. Requer Claude Code v2.1.265 ou posterior.

127 

128Se você não instalou a dependência do seu marketplace, seu plugin para de carregar quando a cópia local desaparece:

129 

130* **Você desabilitou a cópia local**: Claude Code desabilita seu plugin no próximo carregamento de plugin. Para uma entrada de dependência que nomeia um marketplace, Claude Code relata `Dependency "<name>@inline" is disabled — enable it or remove the dependency`; para uma entrada de nome simples, ele relata a dependência pelo seu nome simples. `<name>@inline` é como Claude Code identifica cada plugin `--plugin-dir` e `--plugin-url`.

131* **Você iniciou uma sessão sem o sinalizador `--plugin-dir` da dependência**: Claude Code relata a dependência como não instalada. Passe o sinalizador novamente ou instale a dependência do seu marketplace.

132 

133<h2 id="tag-plugin-releases-for-version-resolution">

134 Lançamentos de tag de plugin para resolução de versão

135</h2>

136 

137Claude Code resolve restrições de versão contra tags git no repositório que hospeda a dependência: o repositório próprio do plugin para [fontes de plugin](/docs/pt/plugin-marketplaces#plugin-sources) `github`, `url` e `git-subdir`, ou o repositório do marketplace para um plugin que o marketplace referencia por um caminho relativo. Para que Claude Code encontre as versões disponíveis de uma dependência, os lançamentos do plugin upstream devem ser marcados usando uma convenção de nomenclatura específica.

138 

139Marque cada lançamento como `{plugin-name}--v{version}`, onde `{version}` corresponde ao campo `version` no `plugin.json` daquele commit. Do diretório do plugin, execute:

140 

141```bash theme={null}

142claude plugin tag --push

143```

144 

145O comando `claude plugin tag` deriva o nome da tag do manifesto do plugin e da entrada do marketplace envolvente. Antes de criar a tag, ele valida o conteúdo do plugin, verifica se `plugin.json` e a entrada do marketplace concordam sobre a versão, requer uma árvore de trabalho limpa sob o diretório do plugin e recusa se a tag já existe.

146 

147* `--push` envia a tag para o remote `origin`, portanto o repositório precisa de um remote `origin` configurado. Passe `--remote` para enviar para um diferente.

148* Se o envio falhar, a tag ainda será criada localmente e o comando sairá com um erro.

149* Com `--push`, uma execução bem-sucedida termina com `Created tag secrets-vault--v2.1.0` e `Pushed to origin`, onde a última linha nomeia o remote para o qual foi enviado. Sem `--push`, o comando imprime o comando `git push` a ser executado.

150* `--dry-run` imprime o que seria marcado sem criá-lo.

151 

152Executar `git tag secrets-vault--v2.1.0` diretamente é equivalente se você manter `plugin.json` e a entrada do marketplace sincronizados você mesmo.

153 

154O prefixo do nome do plugin permite que um repositório do marketplace hospede múltiplos plugins com linhas de versão independentes. O separador `--v` é analisado como uma correspondência de prefixo no nome completo do plugin, portanto nomes de plugin que contêm hífens são tratados corretamente.

155 

156Quando você instala um plugin que declara `{ "name": "secrets-vault", "version": "~2.1.0" }`, Claude Code lista as tags no repositório que hospeda `secrets-vault`, filtra aquelas que começam com `secrets-vault--v` e busca a versão mais alta que satisfaz `~2.1.0`. Se nenhuma tag no repositório próprio do plugin satisfizer o intervalo, a instalação falha com `Dependency "secrets-vault@acme-tools" has no git tag satisfying ~2.1.0`, que nomeia a dependência junto com seu marketplace. Para um plugin de caminho relativo sem tag correspondente, Claude Code instala a cópia atual do marketplace em vez disso e verifica a restrição quando o plugin é carregado.

157 

158Para um plugin que o marketplace referencia por um caminho relativo, um marketplace adicionado como um caminho de pasta local resolve tags da mesma forma quando a pasta é um repositório git. Isso requer Claude Code v2.1.196 ou posterior. Em dois casos Claude Code instala a dependência do conteúdo atual da pasta em vez disso:

159 

160* Versões anteriores não leem tags de um marketplace de pasta local, portanto uma dependência restrita é carregada apenas se essa cópia satisfizer o intervalo.

161* Uma pasta local que não é um repositório git não tem tags, independentemente da versão.

162 

163O semver da tag resolvida é registrado separadamente do `version` do `plugin.json`, portanto verificações de restrição usam a tag que foi realmente buscada mesmo se `plugin.json` naquele commit tiver um valor obsoleto. O nome do diretório de cache para uma instalação resolvida por tag inclui um sufixo de commit-SHA de 12 caracteres, portanto se um mantenedor mover uma tag para um commit diferente, a próxima instalação obtém um diretório de cache fresco em vez de reutilizar conteúdo obsoleto.

164 

165<Note>

166 Para dependências com uma [fonte de plugin](/docs/pt/plugin-marketplaces#plugin-sources) `npm`, `archive` ou `command`, a restrição não controla qual versão é buscada, já que a resolução baseada em tag se aplica apenas a fontes com suporte git. A restrição ainda é verificada no tempo de carregamento, e o plugin dependente é desabilitado com `dependency-version-unsatisfied` se a versão instalada não a satisfizer. Para uma fonte `command`, Claude Code verifica a versão no `plugin.json` da dependência e ignora o sufixo de hash de conteúdo; uma dependência cujo `plugin.json` não define versão satisfaz nenhuma restrição, portanto defina uma antes de restringi-la.

167 

168 Claude Code nunca instala uma dependência com uma fonte `command` em si, portanto os usuários [a instalam primeiro](/docs/pt/plugin-marketplaces#how-users-accept-the-command). Claude Code nunca executa o `headersHelper` em uma entrada de marketplace de dependência também, portanto os usuários [instalam esse plugin primeiro](/docs/pt/plugin-marketplaces#how-users-accept-a-headershelper-command).

169</Note>

170 

171<h2 id="how-constraints-interact">

172 Como restrições interagem

173</h2>

174 

175Quando vários plugins instalados restringem a mesma dependência, Claude Code intersecciona seus intervalos e resolve a dependência para a versão mais alta que satisfaz todos eles. A tabela abaixo mostra como combinações comuns resolvem.

176 

177| Plugin A requer | Plugin B requer | Resultado |

178| :-------------- | :-------------- | :----------------------------------------------------------------------------------------------------------- |

179| `^2.0` | `>=2.1` | Uma instalação na tag `2.x` mais alta em ou acima de `2.1.0`. Ambos os plugins carregam. |

180| `~2.1` | `~3.0` | Instalação do plugin B falha com `range-conflict`. Plugin A e a dependência permanecem como estavam. |

181| `=2.1.0` | nenhum | A dependência permanece em `2.1.0`. Auto-update pula versões mais recentes enquanto plugin A está instalado. |

182 

183Auto-update busca uma dependência restrita na tag git mais alta que satisfaz o intervalo de cada plugin instalado, em vez de na versão mais recente do marketplace, portanto a dependência continua a receber atualizações dentro de seu intervalo permitido. Se nenhuma tag satisfizer todos os intervalos, auto-update pula essa dependência e lista o pulo na aba Errors do `/plugin`, nomeando o plugin restringidor.

184 

185Quando você desinstala o último plugin que restringe uma dependência, a dependência não é mais mantida e retoma o rastreamento de sua entrada de marketplace na próxima atualização.

186 

187<h2 id="enable-or-disable-a-plugin-with-dependencies">

188 Ativar ou desativar um plugin com dependências

189</h2>

190 

191Esta seção aborda plugins instalados a partir de um marketplace. Para uma cópia que você carregou com `--plugin-dir`, consulte [Testar um plugin e sua dependência localmente](#test-a-plugin-and-its-dependency-locally).

192 

193Ativar um plugin também ativa os plugins dos quais ele depende, e desativar um plugin é bloqueado se outro plugin ativado ainda precisar dele.

194 

195Quando você ativa um plugin, Claude Code também ativa suas dependências no mesmo escopo. Se uma dependência tiver suas próprias dependências, Claude Code ativa aquelas também. A mensagem de sucesso lista o que mais foi ativado junto com o plugin que você nomeou. Se uma dependência não puder ser ativada, o comando recusa e diz o que está bloqueando e como corrigir:

196 

197| Condição | Resultado |

198| :-------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------- |

199| Uma dependência não está instalada | Ativar falha e imprime o comando `claude plugin install` para cada dependência ausente. |

200| Uma dependência é bloqueada pela política de plugins da sua organização | Ativar falha e nomeia a dependência bloqueada. |

201| Uma dependência está definida como `false` em um escopo com precedência mais alta que o escopo de destino | Ativar falha. Ative a dependência naquele escopo, ou passe `--scope` para escrever lá. |

202| Todas as dependências estão instaladas e permitidas | Ativar sucede e escreve `true` para o plugin e cada dependência que não estava já ativada no escopo de destino. |

203 

204Isto se aplica mesmo quando uma dependência define [`defaultEnabled: false`](/docs/pt/plugins-reference#default-enablement) em seu manifesto, porque Claude Code escreve um `true` explícito para ela. O mesmo se aplica na instalação: uma dependência trazida para satisfazer um plugin ativo instala com `true` independentemente de seu próprio padrão.

205 

206Quando você desativa um plugin, Claude Code recusa se outro plugin ativado ainda depender dele. O erro nomeia os plugins que dependem dele e dá a você um comando encadeado que os desativa na ordem correta, terminando com o que você pediu.

207 

208Por exemplo, se `deploy-kit` depende de `secrets-vault`, desativar `secrets-vault` sozinho falha com saída similar à seguinte:

209 

210```text theme={null}

211secrets-vault is still required by deploy-kit. Disable that plugin first, or

212disable everything together: claude plugin disable deploy-kit@acme-tools && claude plugin disable secrets-vault@acme-tools

213```

214 

215Copie o comando encadeado do erro para desativar o conjunto completo em uma etapa.

216 

217<h2 id="remove-orphaned-auto-installed-dependencies">

218 Remova dependências auto-instaladas órfãs

219</h2>

220 

221Dependências auto-instaladas permanecem no disco após os plugins que as instalaram serem desinstalados, no caso de você reinstalar um plugin dependente ou querer continuar usando a dependência diretamente. Para limpá-las, execute `claude plugin prune` para listar as dependências auto-instaladas que não têm mais nenhum plugin instalado exigindo-as e removê-las após um prompt de confirmação.

222 

223```bash theme={null}

224claude plugin prune

225```

226 

227Se nada se qualificar para remoção, o comando imprime `Nothing to prune` com o motivo e sai. Esta é a saída esperada em uma instalação nova, não um erro.

228 

229Por padrão, prune opera no escopo do usuário e pede confirmação antes de remover qualquer coisa:

230 

231* `--scope project` ou `--scope local` direciona um escopo diferente.

232* `--dry-run` lista o que seria removido sem alterar nada.

233* `-y` pula o prompt de confirmação. Quando stdin ou stdout não é um terminal, prune lista os órfãos e sai sem removê-los a menos que você passe `-y`.

234 

235Para prune como parte de uma desinstalação, passe `--prune` para `claude plugin uninstall`. Após remover o plugin nomeado, Claude Code verifica e remove quaisquer dependências auto-instaladas que agora estão órfãs. Plugins que você instalou você mesmo nunca são podados, apenas aqueles instalados automaticamente através do array `dependencies` de outro plugin.

236 

237O mesmo comportamento de confirmação se aplica. Quando stdin ou stdout não é um terminal, a desinstalação ainda é concluída, mas a etapa prune lista os órfãos e não remove nada a menos que você passe `-y`.

238 

239Por exemplo, para desinstalar `deploy-kit` e limpar as dependências que deixa para trás:

240 

241```bash theme={null}

242claude plugin uninstall deploy-kit --prune

243```

244 

245<h2 id="resolve-dependency-errors">

246 Resolva erros de dependência

247</h2>

248 

249Problemas de dependência aparecem em `claude plugin list` e na interface `/plugin`, como mensagens de erro descritivas em vez dos códigos literais nesta tabela. Claude Code desabilita o plugin afetado até que você resolva o erro. A tabela abaixo lista os erros mais comuns e como resolvê-los.

250 

251| Erro | Significado | Como resolver |

252| :------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

253| `dependency-unsatisfied` | Uma dependência declarada não está instalada, ou está instalada mas desabilitada. | Execute o comando `claude plugin install` mostrado na mensagem de erro. Se o marketplace da dependência ainda não está configurado, adicione-o com `claude plugin marketplace add` e Claude Code resolve a dependência automaticamente. Se a dependência está desabilitada, ative-a. |

254| `range-conflict` | Os requisitos de versão para uma dependência não podem ser combinados. A mensagem de erro nomeia a causa: nenhuma versão satisfaz todos os intervalos, um intervalo não é sintaxe semver válida, ou os intervalos combinados são muito complexos para interseccionar. | Desinstale ou atualize um dos plugins conflitantes, corrija qualquer string `version` inválida, simplifique cadeias `\|\|` longas, ou peça ao autor upstream para ampliar sua restrição. |

255| `dependency-version-unsatisfied` | A versão da dependência instalada está fora do intervalo declarado deste plugin. | Execute `claude plugin install <dependency>@<marketplace>` para re-resolver a dependência contra todas as restrições atuais. |

256| `no-matching-tag` | O repositório da dependência não tem uma tag `{name}--v*` satisfazendo o intervalo. | Verifique se o upstream marcou lançamentos usando a convenção acima, ou relaxe seu intervalo. |

257 

258Para verificar esses erros programaticamente, execute `claude plugin list --json`. Plugins com problemas incluem um campo `errors` listando-os. Plugins que carregaram corretamente omitem o campo.

259 

260<h2 id="see-also">

261 Veja também

262</h2>

263 

264* [Criar plugins](/docs/pt/plugins): construa plugins com skills, agents e hooks

265* [Criar e distribuir um marketplace de plugins](/docs/pt/plugin-marketplaces): hospede plugins para seu time

266* [Referência de Plugins](/docs/pt/plugins-reference#plugin-manifest-schema): o esquema completo de `plugin.json`

267* [Gerenciamento de versão](/docs/pt/plugins-reference#version-management): como a versão própria de um plugin é resolvida e usada como a chave de cache

plugin-evals.md +99 −42

Details

6 6 

7> Escreva casos de eval para seu plugin Claude Code, execute-os com claude plugin eval, classifique os resultados, compare com uma linha de base sem plugin e gate CI na pontuação.7> Escreva casos de eval para seu plugin Claude Code, execute-os com claude plugin eval, classifique os resultados, compare com uma linha de base sem plugin e gate CI na pontuação.

8 8 

9`claude plugin eval` executa seu [plugin](/docs/pt/plugins) contra um conjunto de casos de teste e classifica os resultados. Cada caso é um prompt realista mais um ou mais avaliadores. Um avaliador é uma verificação de aprovação/reprovação sobre o que Claude produziu, como uma regex sobre a resposta, se uma ferramenta particular foi chamada, ou uma rubrica que um segundo modelo julga a resposta.9O comando shell `claude plugin eval` executa seu [plugin](/docs/pt/plugins/overview) contra um conjunto de casos de teste e classifica os resultados. Cada caso é um prompt realista mais um ou mais avaliadores. Um avaliador é uma verificação de aprovação/reprovação sobre o que Claude produziu, como uma regex sobre a resposta, se uma ferramenta particular foi chamada, ou uma rubrica que um segundo modelo julga a resposta.

10 10 

11Você não precisa escrever o conjunto manualmente. `claude plugin eval init` pergunta sobre seu plugin, propõe os casos e avaliadores, tenta-os e escreve os arquivos. Você também pode pedir a Claude para fazer o mesmo a partir de uma sessão que você já tem aberta.11Você não precisa escrever o conjunto manualmente. `claude plugin eval init` pergunta sobre seu plugin, propõe os casos e avaliadores, tenta-os e escreve os arquivos. Você também pode pedir a Claude para fazer o mesmo a partir de uma sessão que você já tem aberta.

12 12 

13Use evals para medir com que confiabilidade seu plugin direciona Claude para o resultado correto, para detectar regressões quando você altera o plugin ou um novo modelo é lançado, e para ver qual é a contribuição do plugin em comparação com nenhum plugin.13Use evals para:

14 14 

15Esta página é para autores de plugins e skills que têm um plugin funcionando e desejam testar seu comportamento, e para equipes que fazem gate de mudanças de plugin em CI. Seu formato de caso é separado do arquivo `evals/evals.json` que o [skill-creator plugin](/docs/pt/skills#run-evals-with-skill-creator) usa. Para criar um plugin, consulte [Criar plugins](/docs/pt/plugins); para verificar os arquivos de um plugin quanto a erros de sintaxe e esquema em vez de seu comportamento, use [`claude plugin validate`](/docs/pt/plugins-reference#plugin-validate).15* Medir com que confiabilidade seu plugin direciona Claude para produzir o resultado correto

16* Detectar regressões quando você altera o plugin ou um novo modelo é lançado

17* Ver qual é a contribuição do plugin em comparação com nenhum plugin

18 

19Esta página é para autores de plugins e skills que têm um plugin funcionando e desejam testar seu comportamento, e para equipes que fazem gate de mudanças de plugin em CI. Seu formato de caso é separado do arquivo `evals/evals.json` que o [skill-creator plugin](/docs/pt/skills#run-evals-with-skill-creator) usa. Para criar um plugin, consulte [Criar um plugin](/docs/pt/plugins/create); para verificar os arquivos de um plugin quanto a erros de sintaxe e esquema em vez de seu comportamento, use [`claude plugin validate`](/docs/pt/plugins/cli-reference#plugin-validate).

16 20 

17<Note>21<Note>

18 Cada execução de eval e cada avaliador de juiz é uma chamada de modelo real em sua conta, contada contra o uso do seu plano ou sua fatura de API, então verifique os [requisitos](#requirements) primeiro. Em seguida, [crie seu primeiro conjunto de eval](#create-your-first-eval-suite), ou vá para [Executar evals em CI](#run-evals-in-ci) se você já tiver um.22 Cada execução de eval e cada avaliador de juiz é uma chamada de modelo real em sua conta, contada contra o uso do seu plano ou sua fatura de API, então verifique os [requisitos](#requirements) primeiro. Em seguida, [crie seu primeiro conjunto de eval](#create-your-first-eval-suite), ou vá para [Executar evals em CI](#run-evals-in-ci) se você já tiver um.


25Para executar evals de plugin você precisa:29Para executar evals de plugin você precisa:

26 30 

27* Claude Code v2.1.269 ou posterior. Execute `claude --version` para verificar e `claude update` para atualizar.31* Claude Code v2.1.269 ou posterior. Execute `claude --version` para verificar e `claude update` para atualizar.

28* Um diretório de plugin com um manifesto `plugin.json` ou `.claude-plugin/plugin.json`, ou um [plugin de diretório de skills](/docs/pt/plugins-reference#skills-directory-plugins).32* Um diretório de plugin com um manifesto `plugin.json` ou `.claude-plugin/plugin.json`, ou um [plugin de diretório de skills](/docs/pt/plugins/loading#plugins-shared-through-a-repository).

29* A mesma autenticação e provedor de modelo que suas sessões normais de Claude Code usam. Execuções de eval, avaliadores pontuados por juiz e `claude plugin eval init` chamam o modelo com suas credenciais, então contam contra seus limites de uso do plano ou sua fatura de API. Quando o comando relata um custo, a figura é uma [estimativa de preço de lista](/docs/pt/costs) dessas chamadas.33* A mesma autenticação e provedor de modelo que suas sessões normais de Claude Code usam. Execuções de eval, avaliadores pontuados por juiz e `claude plugin eval init` chamam o modelo com suas credenciais, então contam contra seus limites de uso do plano ou sua fatura de API. Quando o comando relata um custo, a figura é uma [estimativa de preço de lista](/docs/pt/costs) dessas chamadas.

30 34 

31<h2 id="how-an-eval-run-works">35<h2 id="how-an-eval-run-works">


44 Como um caso é pontuado48 Como um caso é pontuado

45</h3>49</h3>

46 50 

47Uma execução de um agente não-determinístico diz pouco, então cada caso é executado três vezes por padrão. A pontuação de uma execução é a fração de seus avaliadores que passaram, ponderada se você definir pesos, e a pontuação do caso é a média entre suas execuções. Um caso passa quando sua pontuação atende ao [`--threshold`](#command-options), `1.0` por padrão. Em chamadas de modelo, um conjunto faz aproximadamente casos × execuções execuções de agente com o plugin e tantas novamente para a [linha de base sem plugin](#the-no-plugin-baseline), mais três chamadas de juiz curtas por avaliador `llm` ou `baseline` por execução.51Uma execução de um agente não-determinístico diz pouco, então cada caso é executado três vezes por padrão. A pontuação de uma execução é a fração de seus avaliadores que passaram, ponderada se você definir pesos, e a pontuação do caso é a média entre suas execuções. Um caso passa quando sua pontuação atende ao [`--threshold`](#command-options), `1.0` por padrão.

52 

53Em chamadas de modelo, um conjunto faz aproximadamente casos × execuções execuções de agente com o plugin e tantas novamente para a [linha de base sem plugin](#the-no-plugin-baseline), mais três chamadas de juiz curtas por avaliador `llm` ou `baseline` por execução.

48 54 

49<h3 id="the-no-plugin-baseline">55<h3 id="the-no-plugin-baseline">

50 A linha de base sem plugin56 A linha de base sem plugin

51</h3>57</h3>

52 58 

53Uma pontuação alta por si só não diz que o plugin ajudou, porque Claude poderia fazer tão bem sem ele. Para separar os dois, as execuções de cada caso são repetidas sem plugin carregado por padrão, e você obtém duas pontuações, `WITH` e `W/OUT`. Sua diferença, `Δ`, é o que o plugin contribuiu. Se um caso marca 1.0 com e sem o plugin, o plugin não é o que o fez passar. Os dois conjuntos de execuções são chamados de braço com e braço sem; [Comparar com uma linha de base sem plugin](#compare-against-a-no-plugin-baseline) cobre como os avaliadores são pontuados entre eles e como desativar a linha de base.59Uma pontuação alta por si só não diz que o plugin ajudou, porque Claude poderia fazer tão bem sem ele. Para separar os dois, as execuções de cada caso são repetidas sem plugin carregado por padrão, e você obtém duas pontuações, `WITH` e `W/OUT`. Sua diferença, `Δ`, é o que o plugin contribuiu. Se um caso marca 1.0 com e sem o plugin, o plugin não é o que o fez passar.

60 

61Os dois conjuntos de execuções são chamados de braço com e braço sem; [Comparar com uma linha de base sem plugin](#compare-against-a-no-plugin-baseline) cobre como os avaliadores são pontuados entre eles e como desativar a linha de base.

54 62 

55<h2 id="create-your-first-eval-suite">63<h2 id="create-your-first-eval-suite">

56 Crie seu primeiro conjunto de eval64 Crie seu primeiro conjunto de eval


70 claude plugin eval init78 claude plugin eval init

71 ```79 ```

72 80 

73 Se Claude Code ainda não confia neste diretório, ele primeiro pergunta `Trust this plugin directory?`; responda `y`. Uma sessão interativa de Claude Code então abre. Claude lê seu plugin e pergunta qual é um bom resultado, propõe prompts que devem e não devem acionar o plugin, projeta avaliadores para cada um, testa-os uma vez para verificar se se comportam, e escreve um diretório de caso por prompt sob `evals/`, cada um nomeado após seu prompt. Quando Claude diz que o conjunto está pronto, saia dessa sessão com `/exit` ou Ctrl+D para retornar ao seu shell.81 Se Claude Code ainda não confia neste diretório, ele primeiro pergunta `Trust this plugin directory?`; responda `y`.

82 

83 Uma sessão interativa de Claude Code então abre. Claude lê seu plugin e pergunta qual é um bom resultado, propõe prompts que devem e não devem acionar o plugin, projeta avaliadores para cada um, testa-os uma vez para verificar se se comportam, e escreve um diretório de caso por prompt sob `evals/`, cada um nomeado após seu prompt.

84 

85 Quando Claude diz que o conjunto está pronto, saia dessa sessão com `/exit` ou Ctrl+D para retornar ao seu shell.

74 86 

75 Se você já tiver uma sessão de Claude Code aberta na raiz do plugin, você pode em vez disso pedir a Claude para executar `claude plugin eval init`. Claude executa o comando e então faz as mesmas perguntas nessa conversa.87 Se você já tiver uma sessão de Claude Code aberta na raiz do plugin, você pode em vez disso pedir a Claude para executar `claude plugin eval init`. Claude executa o comando e então faz as mesmas perguntas nessa conversa.

76 88 


171Write me a commit message for this change: I renamed getUser to fetchUser and updated the three call sites.183Write me a commit message for this change: I renamed getUser to fetchUser and updated the three call sites.

172```184```

173 185 

174Cada execução começa em um diretório de trabalho vazio, então coloque o que a tarefa precisa no próprio prompt, ou [configure o espaço de trabalho](#add-setup-or-history-with-case-yaml) primeiro. A [lista completa de campos de frontmatter](#prompt-md-fields) cobre o modelo, timeout, tags e variáveis de ambiente.186Cada execução começa em um diretório de trabalho vazio, então coloque o que a tarefa precisa no próprio prompt, ou [configure o espaço de trabalho](#add-setup-or-history-with-case-yaml) primeiro.

187 

188A [lista completa de campos de frontmatter](#prompt-md-fields) cobre o modelo, timeout, tags e variáveis de ambiente.

175 189 

176Cada arquivo sob `graders/` é uma verificação aplicada após a execução. Abra `evals/first-case/graders/criteria.md` e substitua o espaço reservado por uma rubrica para o modelo de juiz, escrita como condições PASS e FAIL concretas:190Cada arquivo sob `graders/` é uma verificação aplicada após a execução. Abra `evals/first-case/graders/criteria.md` e substitua o espaço reservado por uma rubrica para o modelo de juiz, escrita como condições PASS e FAIL concretas:

177 191 


184FAIL if <what a wrong or missing response looks like>.198FAIL if <what a wrong or missing response looks like>.

185```199```

186 200 

187Em seguida, adicione um segundo avaliador que verifica se seu skill é o que produziu a resposta. Crie `evals/first-case/graders/skill-fired.md`, substituindo `your-skill-name` pelo `name` do `SKILL.md` do seu skill:201Em seguida, adicione um segundo avaliador que verifica se seu skill é o que produziu a resposta. Crie `evals/first-case/graders/skill-fired.md`, substituindo `your-skill-name` pelo nome do diretório do skill sob `skills/`, que é o nome que Claude o invoca:

188 202 

189```markdown theme={null}203```markdown theme={null}

190---204---


194---208---

195```209```

196 210 

197Isso passa quando Claude invocou esse skill pelo menos uma vez durante a execução, incluindo por sua forma `plugin-name:skill-name` com namespace. [Tipos de avaliador](#grader-types) lista as outras verificações disponíveis, como corresponder a uma regex ou confirmar que um arquivo foi criado.211Isso passa quando Claude invocou esse skill pelo menos uma vez durante a execução, incluindo por sua forma `plugin-name:skill-name` com namespace.

212 

213[Tipos de avaliador](#grader-types) lista as outras verificações disponíveis, como corresponder a uma regex ou confirmar que um arquivo foi criado.

198 214 

199Com ambos os arquivos salvos, execute o caso da maneira que o [quickstart](#create-your-first-eval-suite) faz, com `claude plugin eval .` a partir da raiz do plugin.215Com ambos os arquivos salvos, execute o caso da maneira que o [quickstart](#create-your-first-eval-suite) faz, com `claude plugin eval .` a partir da raiz do plugin.

200 216 


202 Defina limites de execução e ferramentas em prompt.md218 Defina limites de execução e ferramentas em prompt.md

203</h3>219</h3>

204 220 

205Defina `max_turns`, `timeout_seconds`, `model`, `tags` de um caso e o `allowed_tools` que pode usar em frontmatter `prompt.md`; a referência [prompt.md frontmatter](#prompt-md-fields) lista cada campo e seu padrão. Claude recebe o corpo exatamente como você o escreveu. Menções `@path` nele não são expandidas em anexos de arquivo, então se Claude precisar ler um arquivo, conceda uma ferramenta para ele em `allowed_tools`.221Defina `max_turns`, `timeout_seconds`, `model`, `tags` de um caso e o `allowed_tools` que pode usar em frontmatter `prompt.md`; a referência [prompt.md frontmatter](#prompt-md-fields) lista cada campo e seu padrão.

222 

223Claude recebe o corpo exatamente como você o escreveu. Menções `@path` nele não são expandidas em anexos de arquivo, então se Claude precisar ler um arquivo, conceda uma ferramenta para ele em `allowed_tools`.

206 224 

207<h3 id="grade-the-result">225<h3 id="grade-the-result">

208 Escolha e pese avaliadores226 Escolha e pese avaliadores


210 228 

211O frontmatter de um avaliador define seu `type` e opcionalmente um `weight` que o faz contar para mais da pontuação da execução e um [`arm`](#compare-against-a-no-plugin-baseline) que controla como é pontuado contra a linha de base. Dos seis tipos, `regex`, `tool_used`, `tool_order` e `file_exists` são computados a partir da transcrição e arquivos e não custam nada, enquanto `llm` e `baseline` chamam um modelo de juiz e adicionam ao custo da execução.229O frontmatter de um avaliador define seu `type` e opcionalmente um `weight` que o faz contar para mais da pontuação da execução e um [`arm`](#compare-against-a-no-plugin-baseline) que controla como é pontuado contra a linha de base. Dos seis tipos, `regex`, `tool_used`, `tool_order` e `file_exists` são computados a partir da transcrição e arquivos e não custam nada, enquanto `llm` e `baseline` chamam um modelo de juiz e adicionam ao custo da execução.

212 230 

213Não há avaliadores de código personalizado. [Tipos de avaliador](#grader-types) lista as opções de cada tipo e condição de aprovação, e [o que um avaliador pode ver](#what-a-grader-can-look-at) lista os valores que `target` e `focus` aceitam.231Não há avaliadores de código personalizado.

232 

233[Tipos de avaliador](#grader-types) lista as opções de cada tipo e condição de aprovação, e [o que um avaliador pode ver](#what-a-grader-can-look-at) lista os valores que `target` e `focus` aceitam.

214 234 

215O juiz para avaliadores `llm` e `baseline` é um modelo pequeno e rápido por padrão. Passe `--judge-model sonnet` ou um ID de modelo completo para usar um mais forte para rubricas nuançadas.235O juiz para avaliadores `llm` e `baseline` é um modelo pequeno e rápido por padrão. Passe `--judge-model sonnet` ou um ID de modelo completo para usar um mais forte para rubricas nuançadas.

216 236 


221Um avaliador `llm` pede a um modelo um veredicto, então sua resposta pode diferir entre execuções, e difere mais quanto mais longo o texto que tem que ler. Esses hábitos mantêm as pontuações de um conjunto estáveis o suficiente para confiar:241Um avaliador `llm` pede a um modelo um veredicto, então sua resposta pode diferir entre execuções, e difere mais quanto mais longo o texto que tem que ler. Esses hábitos mantêm as pontuações de um conjunto estáveis o suficiente para confiar:

222 242 

223* Para saída longa, como um arquivo gerado, classifique-a com um avaliador `regex` sobre o conteúdo do arquivo, que verifica o arquivo inteiro da mesma forma toda vez. Mantenha avaliadores `llm` para saídas curtas, com rubricas escritas como condições PASS e FAIL concretas.243* Para saída longa, como um arquivo gerado, classifique-a com um avaliador `regex` sobre o conteúdo do arquivo, que verifica o arquivo inteiro da mesma forma toda vez. Mantenha avaliadores `llm` para saídas curtas, com rubricas escritas como condições PASS e FAIL concretas.

224* Dê a cada caso um avaliador sobre o resultado, como a mensagem final ou um arquivo produzido, e um sobre como Claude chegou lá, como `tool_used` ou `tool_order`. Juntos eles dizem se a resposta estava correta e se seu plugin a produziu.244* Dê a cada caso um avaliador sobre o resultado, como a mensagem final ou um arquivo produzido, e um sobre os passos que Claude tomou para produzi-lo, como `tool_used` ou `tool_order`. Juntos eles dizem se a resposta estava correta e se seu plugin a produziu.

225* Se um avaliador `tool_used: Skill` de um caso passa mas `Δ` é negativo, suspeite do juiz antes do plugin. Um modelo de juiz pequeno pode marcar uma resposta correta como errada porque está formatada diferentemente do que a rubrica descreve. Re-execute com `--judge-model sonnet` e aperte a rubrica para que a formatação não decida o veredicto.245* Se um avaliador `tool_used: Skill` de um caso passa mas `Δ` é negativo, suspeite do juiz antes do plugin. Um modelo de juiz pequeno pode marcar uma resposta correta como errada porque está formatada diferentemente do que a rubrica descreve. Re-execute com `--judge-model sonnet` e aperte a rubrica para que a formatação não decida o veredicto.

226* Para verificar que uma compilação ou teste passou dentro da execução, peça a Claude para executá-lo e escrever o resultado em um arquivo, classifique esse arquivo e afirme que o comando foi executado com um avaliador `tool_used` cujo `input_match` nomeia o comando.246* Para verificar que uma compilação ou teste passou dentro da execução, peça a Claude para executá-lo e escrever o resultado em um arquivo, classifique esse arquivo e afirme que o comando foi executado com um avaliador `tool_used` cujo `input_match` nomeia o comando.

227 247 


229 Pontuação contra a linha de base sem plugin249 Pontuação contra a linha de base sem plugin

230</h3>250</h3>

231 251 

232Quando um plugin está sob teste, cada caso é executado em dois braços por padrão. O braço com é suas execuções com o plugin carregado, e o braço sem é o mesmo número de execuções sem nenhum plugin. O resumo e relatório mostram ambas as pontuações e `Δ`, a pontuação do braço com menos a pontuação do braço sem. Passe `--ablation none` para executar apenas o braço com, o que reduz o custo pela metade quando você não precisa da comparação, como ao iterar em avaliadores.252Quando um plugin está sob teste, cada caso é executado em dois braços por padrão. O braço com é suas execuções com o plugin carregado, e o braço sem é o mesmo número de execuções sem nenhum plugin. O resumo e relatório mostram ambas as pontuações e `Δ`, a pontuação do braço com menos a pontuação do braço sem.

253 

254Passe `--ablation none` para executar apenas o braço com, o que reduz o custo pela metade quando você não precisa da comparação, como ao iterar em avaliadores.

233 255 

234Em uma execução de dois braços, alguns avaliadores são relatados com `scored: false`. Uma verificação como "o skill foi invocado" nunca pode passar sem o plugin, então contá-la empurraria o braço sem para zero e inflaria `Δ`. Para manter os dois braços comparáveis, Claude Code exclui tais avaliadores da pontuação em ambos os braços e os relata no braço com como indicadores de aprovação/reprovação apenas. Isso inclui:256Em uma execução de dois braços, alguns avaliadores são relatados com `scored: false`. Uma verificação como "o skill foi invocado" nunca pode passar sem o plugin, então contá-la empurraria o braço sem para zero e inflaria `Δ`. Para manter os dois braços comparáveis, Claude Code exclui tais avaliadores da pontuação em ambos os braços e os relata no braço com como indicadores de aprovação/reprovação apenas. Isso inclui:

235 257 

236* Cada avaliador `tool_used` cujo `tool` é `Skill`258* Cada avaliador `tool_used` cujo `tool` é `Skill`

259* Cada avaliador `regex` com `target: mock_calls` e cada avaliador `llm` com `focus: mock_calls`, quando cada [servidor simulado](#mock-mcp-servers) no caso é um que seu plugin declara

237* Qualquer avaliador que você marque `arm: with-only`260* Qualquer avaliador que você marque `arm: with-only`

238 261 

239Se cada avaliador em um caso é um desses, eles são pontuados normalmente em vez disso, já que não haveria nada deixado para pontuar. Defina `arm: both` em um avaliador para pontuá-lo em ambos os braços independentemente, que é o que você quer para uma verificação "não deve invocar o skill" com `min: 0` e `max: 0`. Sob `--ablation none` nada é excluído, então o mesmo conjunto pode produzir uma pontuação absoluta diferente nos dois modos.262Três configurações mudam essa exclusão:

263 

264* **Cada avaliador excluído**: se cada avaliador em um caso está no conjunto excluído, eles são pontuados normalmente em vez disso, já que não haveria nada deixado para pontuar.

265* **`arm: both`**: defina `arm: both` em um avaliador para pontuá-lo em ambos os braços independentemente, que é o que você quer para uma verificação "não deve invocar o skill" com `min: 0` e `max: 0`.

266* **`--ablation none`**: sob `--ablation none` nada é excluído, então o mesmo conjunto pode produzir uma pontuação absoluta diferente nos dois modos.

240 267 

241<h3 id="use-a-different-eval-directory">268<h3 id="use-a-different-eval-directory">

242 Use um diretório de eval diferente269 Use um diretório de eval diferente


259 Semeie o espaço de trabalho ou conversa286 Semeie o espaço de trabalho ou conversa

260</h3>287</h3>

261 288 

262Cada execução começa em um espaço de trabalho vazio. Quando um caso precisa de mais que o prompt, adicione um `case.yaml` ao lado de `prompt.md` com um bloco `context`.289Cada execução começa em um espaço de trabalho vazio. Quando um caso precisa de mais que o prompt, adicione um `case.yaml` ao lado de `prompt.md` com um bloco `context`:

263 290 

264Para criar arquivos de fixture ou um repositório git primeiro, escreva um script Bash no diretório de caso e nomeie-o em `context.scaffold_script`. O script é executado como você, fora da sandbox do agente, e apenas quando você passa `--scaffold`, então passe essa flag apenas para conjuntos que você ou sua organização escreveu. Para continuar uma conversa anterior, salve a transcrição como um arquivo `.jsonl` e nomeie-a em `context.history_file`, e o prompt do caso se torna o próximo turno do usuário. Para deixar Claude ler diretórios de fixture durante a execução, liste-os em `context.add_dirs`.291* **Arquivos de fixture ou um repositório git**: escreva um script Bash no diretório de caso e nomeie-o em `context.scaffold_script`. O script é executado como você, fora da sandbox do agente, e apenas quando você passa `--scaffold`, então passe essa flag apenas para conjuntos que você ou sua organização escreveu.

292* **Uma conversa anterior para continuar**: salve a transcrição como um arquivo `.jsonl` e nomeie-a em `context.history_file`, e o prompt do caso se torna o próximo turno do usuário.

293* **Diretórios de fixture que Claude pode ler durante a execução**: liste-os em `context.add_dirs`.

265 294 

266Um `case.yaml` também precisa de `schema_version: "1.1"` e `name`; a referência [case.yaml fields](#case-yaml-fields) tem a lista completa.295Um `case.yaml` também precisa de `schema_version: "1.1"` e `name`; a referência [case.yaml fields](#case-yaml-fields) tem a lista completa.

267 296 


280 Mock MCP servers309 Mock MCP servers

281</h3>310</h3>

282 311 

283Você pode avaliar um plugin cujos skills chamam ferramentas MCP sem o serviço real por trás delas. Coloque um arquivo Markdown por ferramenta sob `evals/mocks/<server>/<tool>.md` para o conjunto inteiro, ou sob um diretório `mocks/` próprio de um caso para um caso, onde `<server>` é o nome do servidor na [configuração MCP](/docs/pt/plugins-reference#mcp-servers) do seu plugin.312Você pode avaliar um plugin cujos skills chamam ferramentas MCP sem o serviço real por trás delas. Coloque um arquivo Markdown por ferramenta sob `evals/mocks/<server>/<tool>.md` para o conjunto inteiro, ou sob um diretório `mocks/` próprio de um caso para um caso, onde `<server>` é o nome do servidor na [configuração MCP](/docs/pt/plugins/components#mcp-servers) do seu plugin.

284 313 

285Uma execução nunca inicia seus servidores MCP reais do plugin a menos que você peça. Claude Code registra um substituto sob o próprio nome de cada servidor. Ferramentas com um arquivo mock respondem a partir dele e são permitidas sem uma concessão `--allow-tools`, e uma ferramenta sem arquivo mock não está disponível para Claude. Um servidor sem nenhum mock aparece na linha de progresso `mocked:` do caso como `plugin_<plugin>_<server>[not started: no mock]`.314Uma execução nunca inicia seus servidores MCP reais do plugin a menos que você peça. Claude Code registra um substituto sob o próprio nome de cada servidor. Ferramentas com um arquivo mock respondem a partir dele e são permitidas sem uma concessão `--allow-tools`, e uma ferramenta sem arquivo mock não está disponível para Claude. Um servidor sem nenhum mock aparece na linha de progresso `mocked:` do caso como `plugin_<plugin>_<server>[not started: no mock]`.

286 315 


296Created issue #4821: {{input.title}}325Created issue #4821: {{input.title}}

297```326```

298 327 

299Insira campos da entrada da chamada com `{{input.<field>}}` e o conteúdo de um arquivo de fixture ao lado do mock com `{{file:fixtures/{input.<field>}.json}}`. O bloco `expect:` protege a entrada. Se uma chamada violar, a execução aborta com pontuação 0 e registra por quê, então um caso pode afirmar o que seu plugin pediu ao servidor. Defina `error: true` para retornar o corpo como um erro de ferramenta em vez disso, ou `type: agent` para ter um modelo pequeno responder como o servidor a partir de instruções no corpo. A [referência de arquivo mock](#mock-files) lista cada chave e os arquivos `_server.md` e `_tools.json`.328O corpo e frontmatter de um arquivo mock aceitam estas opções:

329 

330* **Substituições**: insira campos da entrada da chamada com `{{input.<field>}}`, e o conteúdo de um arquivo de fixture ao lado do mock com `{{file:fixtures/{input.<field>}.json}}`.

331* **`expect:`**: o bloco `expect:` protege a entrada. Se uma chamada violar, a execução aborta com pontuação 0 e registra por quê, então um caso pode afirmar o que seu plugin pediu ao servidor.

332* **`error: true`**: defina `error: true` para retornar o corpo como um erro de ferramenta em vez disso.

333* **`type: agent`**: defina `type: agent` para ter um modelo pequeno responder como o servidor a partir de instruções no corpo.

334 

335A [referência de arquivo mock](#mock-files) lista cada chave e os arquivos `_server.md` e `_tools.json`.

300 336 

301Para classificar as chamadas em si, aponte um avaliador para `target: mock_calls`.337Para classificar as chamadas em si, aponte um avaliador para `target: mock_calls`.

302 338 


330| Um diretório raiz do plugin, como `.` | Cada caso sob seu diretório de eval, com esse plugin carregado |366| Um diretório raiz do plugin, como `.` | Cada caso sob seu diretório de eval, com esse plugin carregado |

331| Um arquivo único `prompt.md` ou `case.yaml` | Esse caso, com seu plugin envolvente carregado |367| Um arquivo único `prompt.md` ou `case.yaml` | Esse caso, com seu plugin envolvente carregado |

332| Um plugin instalado por nome, `name` ou `name@marketplace` | Os casos na cópia instalada do diretório de eval, com a cópia instalada carregada. Os resultados são escritos sob `./evals/results/` no seu diretório atual, ou `./<dir>/results/` com `--eval-dir` |368| Um plugin instalado por nome, `name` ou `name@marketplace` | Os casos na cópia instalada do diretório de eval, com a cópia instalada carregada. Os resultados são escritos sob `./evals/results/` no seu diretório atual, ou `./<dir>/results/` com `--eval-dir` |

333| `name@skills-dir` | O mesmo, para um [plugin de diretório de skills](/docs/pt/plugins-reference#skills-directory-plugins) |369| `name@skills-dir` | O mesmo, para um [plugin de diretório de skills](/docs/pt/plugins/loading#plugins-shared-through-a-repository) |

334| Omitido | O diretório atual como um caminho |370| Omitido | O diretório atual como um caminho |

335 371 

336Adicione `--case <glob>` para filtrar por nome de caso e `--tag <tag>` para manter casos com qualquer uma das tags fornecidas. Coloque o destino antes de `--tag`, `--allow-tools` e `--json`. Os dois primeiros pegam uma lista e `--json` pega um caminho opcional, então cada um deles lê um destino que segue como seu próprio valor.372Adicione `--case <glob>` para filtrar por nome de caso e `--tag <tag>` para manter casos com qualquer uma das tags fornecidas.

373 

374Coloque o destino antes de `--tag`, `--allow-tools` e `--json`. Os dois primeiros pegam uma lista e `--json` pega um caminho opcional, então cada um deles lê um destino que segue como seu próprio valor.

337 375 

338<h3 id="grant-tools">376<h3 id="grant-tools">

339 Conceda ferramentas377 Conceda ferramentas


341 379 

342As execuções nunca param para pedir permissão. Ferramentas integradas que precisam de uma concessão que você não deu, como `Bash`, `Write`, `Edit`, `WebFetch` e `WebSearch`, são removidas da sessão, então Claude não pode chamá-las.380As execuções nunca param para pedir permissão. Ferramentas integradas que precisam de uma concessão que você não deu, como `Bash`, `Write`, `Edit`, `WebFetch` e `WebSearch`, são removidas da sessão, então Claude não pode chamá-las.

343 381 

344A lista de permissões é as ferramentas somente leitura que o caso lista em `allowed_tools`, de `Read`, `Glob`, `Grep`, `NotebookRead`, `Skill`, `Agent`, `TodoWrite` e as ferramentas de tarefa `TaskCreate`, `TaskGet`, `TaskList`, `TaskUpdate` e `TaskStop`, mais o que você conceder com `--allow-tools`. Essa concessão se aplica a cada caso na execução. Para deixar casos usar `Bash`, `Write`, `Edit`, `WebFetch` ou `WebSearch`, conceda-os você mesmo:382Uma execução permite apenas as ferramentas somente leitura que o caso lista em `allowed_tools`, de `Read`, `Glob`, `Grep`, `NotebookRead`, `Skill`, `AskUserQuestion`, `Agent`, `TodoWrite` e as ferramentas de tarefa `TaskCreate`, `TaskGet`, `TaskList`, `TaskUpdate` e `TaskStop`, mais o que você conceder com `--allow-tools`. Essa concessão se aplica a cada caso na execução. Para deixar casos usar `Bash`, `Write`, `Edit`, `WebFetch` ou `WebSearch`, conceda-os você mesmo:

345 383 

346```bash theme={null}384```bash theme={null}

347claude plugin eval . --allow-tools Write Edit "Bash(npm test *)"385claude plugin eval . --allow-tools Write Edit "Bash(npm test *)"

348```386```

349 387 

350Quando um caso pediu uma ferramenta que você não concedeu, a execução a lista em stderr como `not granted`. Ferramentas em um servidor MCP [mockificado](#mock-mcp-servers) não precisam de concessão. Ferramentas em um servidor MCP de plugin real precisam tanto do servidor iniciado, com `--allow-real-servers` ou `--mocks off`, quanto de uma concessão por nome, como `--allow-tools "mcp__plugin_my-plugin_github__*"`; as ferramentas MCP de um plugin são nomeadas `mcp__plugin_<plugin>_<server>__<tool>`.388Quando um caso pediu uma ferramenta que você não concedeu, a saída de progresso a lista como `not granted`. Ferramentas em um servidor MCP [mockificado](#mock-mcp-servers) não precisam de concessão. Ferramentas em um servidor MCP de plugin real precisam tanto do servidor iniciado, com `--allow-real-servers` ou `--mocks off`, quanto de uma concessão por nome, como `--allow-tools "mcp__plugin_my-plugin_github__*"`; as ferramentas MCP de um plugin são nomeadas `mcp__plugin_<plugin>_<server>__<tool>`.

351 389 

352Quando você concede `Bash` em qualquer forma, cada comando é executado sob a [sandbox de nível do SO](/docs/pt/sandboxing) do Claude Code. As escritas são confinadas ao espaço de trabalho da execução, seu diretório inicial e configuração de Claude Code são ilegíveis, e o acesso à rede é limitado a domínios que você concede com `--allow-tools "WebFetch(domain:example.com)"`. Se você conceder Bash ou PowerShell em uma máquina sem backend de sandbox, Claude Code recusa cada execução em vez de executá-la sem confinamento, e o caso mostra um erro de execução e geralmente marca 0. Windows nativo não tem backend, então execute conjuntos que concedem shell sob WSL2; no Linux, instale `bubblewrap` e `socat` primeiro. Veja os [pré-requisitos de sandboxing](/docs/pt/sandboxing).390Quando você concede `Bash` em qualquer forma, cada comando é executado sob a [sandbox de nível do SO](/docs/pt/sandboxing) do Claude Code. As escritas são confinadas ao espaço de trabalho da execução, seu diretório inicial e configuração de Claude Code são ilegíveis, e o acesso à rede é limitado a domínios que você concede com `--allow-tools "WebFetch(domain:example.com)"`. Se você conceder Bash ou PowerShell em uma máquina sem backend de sandbox, Claude Code recusa cada execução em vez de executá-la sem confinamento, e o caso mostra um erro de execução e geralmente marca 0. Windows nativo não tem backend, então execute conjuntos que concedem shell sob WSL2; no Linux, instale `bubblewrap` e `socat` primeiro. Veja os [pré-requisitos de sandboxing](/docs/pt/sandboxing).

353 391 


404| 130 | Interrompido. Resultados parciais são escritos |442| 130 | Interrompido. Resultados parciais são escritos |

405| 143 | Terminado, como por um timeout de CI |443| 143 | Terminado, como por um timeout de CI |

406 444 

407Problemas ao escrever ou publicar o relatório HTML nunca mudam o código de saída. Para ver por que um caso marcou baixo, execute-o localmente sem `--json` para que o progresso por execução e as linhas do avaliador sejam impressas.445Problemas ao escrever ou publicar o relatório HTML nunca mudam o código de saída.

446 

447Para ver por que um caso marcou baixo, execute-o localmente sem `--json` para que o progresso por execução e as linhas do avaliador sejam impressas.

408 448 

409Um executor de CI precisa de uma instalação de Claude Code e [credenciais no ambiente](/docs/pt/authentication) como `ANTHROPIC_API_KEY`. Sem `--trust-plugin`, um trabalho cujo diretório de checkout Claude Code ainda não confia é recusado com saída 1 quando não tem terminal, ou espera no prompt quando o executor aloca um. `claude plugin eval init` precisa de um terminal para fazer suas perguntas; em CI, execute `claude plugin eval init --bare <name>` para obter o modelo em branco.449Um executor de CI também precisa destes em vigor:

450 

451* **Instalar e credenciais**: um executor de CI precisa de uma instalação de Claude Code e [credenciais no ambiente](/docs/pt/authentication) como `ANTHROPIC_API_KEY`.

452* **Confiança**: sem `--trust-plugin`, um trabalho cujo diretório de checkout Claude Code ainda não confia precisa do [prompt de confiança de primeira execução](#trust-the-plugin-directory), e uma execução que não pode perguntar é recusada com saída 1.

453* **`init` em CI**: `claude plugin eval init` precisa de um terminal para fazer suas perguntas; em CI, execute `claude plugin eval init --bare <name>` para obter o modelo em branco.

410 454 

411Para manter custos previsíveis, dê a cada conjunto de mudança rápida apenas avaliadores que não chamam um juiz, use `--ablation none` onde você não precisa de `Δ` e deixe documentos `partial: true` e execuções com `skippedPaidGraders` fora de qualquer tendência que você gráfico.455Para manter custos previsíveis, dê a cada conjunto de mudança rápida apenas avaliadores que não chamam um juiz, use `--ablation none` onde você não precisa de `Δ` e deixe documentos `partial: true` e execuções com `skippedPaidGraders` fora de qualquer tendência que você gráfico.

412 456 


461 O que uma execução pode acessar505 O que uma execução pode acessar

462</h2>506</h2>

463 507 

464`claude plugin eval` carrega os skills, hooks e agents do plugin de destino e executa seu conjunto de eval em sua máquina, como você. Apontá-lo para um plugin é a mesma decisão de confiança que `claude --plugin-dir`, então apenas avalie plugins em que você confia. O isolamento descrito nesta seção limita o que o agente sob teste pode alcançar; não é um limite contra o próprio código do plugin, e um conjunto que passa não diz nada sobre se o plugin é seguro.508`claude plugin eval` carrega as skills, hooks e agents do plugin de destino e executa sua suite de avaliação em sua máquina, como você. Apontar para um plugin é a mesma decisão de confiança que `claude --plugin-dir`, portanto, avalie apenas plugins em que você confia.

509 

510O isolamento descrito nesta seção limita o que o agent sob teste pode alcançar; não é uma barreira contra o próprio código do plugin, e uma suite que passa não diz nada sobre se o plugin é seguro.

465 511 

466<h3 id="trust-the-plugin-directory">512<h3 id="trust-the-plugin-directory">

467 Confie no diretório do plugin513 Confie no diretório do plugin

468</h3>514</h3>

469 515 

470A primeira vez que você executa `claude plugin eval` contra um diretório, Claude Code pergunta `Trust this plugin directory?` antes de carregar qualquer coisa dele, a menos que você já tenha aceitado o prompt de confiança lá em uma sessão interativa de `claude`. Dentro de um repositório git, responder sim confia no repositório inteiro, para sessões interativas também. Quando stdin ou stdout não é um terminal, ou sob `--json`, a execução não pode perguntar e é recusada com saída 1; passe `--trust-plugin` para afirmar a confiança você mesmo, apenas para um plugin que você executaria em sua própria máquina. Um destino que você nomeia em vez de dar como caminho, significando um plugin instalado ou um plugin de diretório de skills, pula o prompt.516Na primeira vez que você executa `claude plugin eval` contra um diretório, Claude Code pergunta `Trust this plugin directory?` antes de carregar qualquer coisa dele, a menos que você já tenha aceito o prompt de confiança lá em uma sessão interativa de `claude`. Dentro de um repositório git, responder sim confia em todo o repositório, para sessões interativas também. Quando stdin ou stdout não é um terminal, sob `--json`, ou quando a variável de ambiente `CI` é definida como um valor verdadeiro como `true`, a execução não pode perguntar e é recusada com saída 1; passe `--trust-plugin` para afirmar a confiança você mesmo, apenas para um plugin que você executaria em sua própria máquina. Um alvo que você nomeia em vez de fornecer como um caminho, significando um plugin instalado ou um plugin de diretório de skills, pula o prompt.

517 

518Algumas partes do plugin e da suite são executadas apenas quando você passa sua flag para essa execução:

519 

520* Um [`scaffold_script`](#add-setup-or-history-with-case-yaml) de caso com `--scaffold`

521* [Tools além do conjunto somente leitura](#grant-tools) com `--allow-tools`

522* Os [servidores MCP reais](#mock-mcp-servers) do plugin com `--allow-real-servers` ou `--mocks off`

523 

524Um `allowed_tools` de caso e um frontmatter `allowed-tools` próprio de uma skill não podem ampliar nenhum deles.

471 525 

472Algumas partes do plugin e conjunto são executadas apenas quando você passa sua flag para essa execução: um [`scaffold_script`](#add-setup-or-history-with-case-yaml) de caso com `--scaffold`, [ferramentas além do conjunto somente leitura](#grant-tools) com `--allow-tools` e os [servidores MCP reais](#mock-mcp-servers) do plugin com `--allow-real-servers` ou `--mocks off`. Um `allowed_tools` de caso e um frontmatter `allowed-tools` próprio de skill não podem ampliar nenhum deles. Quando o plugin envia hooks que você não escreveu, ou você inicia seus servidores MCP reais, trate suas pontuações como consultivas a menos que você o tenha executado em um ambiente isolado como um contêiner ou executor de CI, já que hooks e servidores são executados fora da sandbox do agente e poderiam tocar nos arquivos que os avaliadores leem.526Quando o plugin inclui hooks que você não escreveu, ou você inicia seus servidores MCP reais, trate suas pontuações como consultivas a menos que você o tenha executado em um ambiente isolado como um container ou CI runner, já que hooks e servidores são executados fora do sandbox do agent e poderiam modificar os arquivos que os avaliadores leem.

473 527 

474<h3 id="how-runs-are-isolated">528<h3 id="how-runs-are-isolated">

475 Como as execuções são isoladas529 Como as execuções são isoladas

476</h3>530</h3>

477 531 

478Cada execução obtém um diretório inicial descartável, diretório de trabalho e configuração de Claude Code, e o agente sob teste é executado lá como um processo filho `claude -p` com apenas seu plugin carregado. Mantenha essas consequências em mente quando escrever casos:532Cada execução obtém um diretório home temporário, diretório de trabalho e configuração de Claude Code, e o agent sob teste é executado lá como um processo filho `claude -p` com apenas seu plugin carregado. Mantenha essas consequências em mente quando você escrever casos:

479 533 

480* **Nada pessoal ou de nível de projeto carrega.** Suas configurações de usuário, hooks, arquivos `CLAUDE.md`, servidores MCP, outros plugins instalados, memória e skills estão ausentes, e nenhum `.claude/` ou `.mcp.json` com escopo de projeto acima da sandbox é lido. A maioria de seu ambiente de shell também é retida; apenas uma [lista de permissões](#prompt-md-fields) e variáveis `EVAL_*` alcançam a execução. Se o plugin precisa de configuração, envie-a no plugin, crie-a em um `scaffold_script` ou passe variáveis `EVAL_*`.534* **Nada pessoal ou no nível do projeto é carregado.** Suas configurações de usuário, hooks, arquivos `CLAUDE.md`, servidores MCP, outros plugins instalados, memória e skills estão ausentes, e nenhum `.claude/` com escopo de projeto ou `.mcp.json` acima do sandbox é lido. A maioria do seu ambiente de shell também é retida; apenas uma [lista de permissões](#prompt-md-fields) e variáveis `EVAL_*` alcançam a execução. Se o plugin precisar de configuração, envie-o no plugin, crie-o em um `scaffold_script`, ou passe variáveis `EVAL_*`.

481* **A política gerenciada ainda pode restringir uma execução.** Restrições em [configurações gerenciadas](/docs/pt/managed-settings) que um administrador implantou na máquina se aplicam dentro de uma execução, então os resultados em uma máquina gerenciada podem diferir de uma não gerenciada por essa política.535* **A política gerenciada ainda pode restringir uma execução.** Restrições em [configurações gerenciadas](/docs/pt/managed-settings) que um administrador implantou na máquina se aplicam dentro de uma execução, portanto, os resultados em uma máquina gerenciada podem diferir de uma não gerenciada por essa política.

482* **A ferramenta Artifact está desligada.** Um skill que publica um [artifact](/docs/pt/artifacts) pode ser classificado apenas no que produz antes dessa etapa.536* **A ferramenta Artifact está desativada.** Uma skill que publica um [artifact](/docs/pt/artifacts) pode ser avaliada apenas no que ela produz antes dessa etapa.

483* **As definições de caso estão ocultas do agente.** Uma execução não pode ler o diretório de eval, então Claude não pode ver o prompt do caso, seus avaliadores ou casos irmãos.537* **As definições de caso estão ocultas do agent.** Uma execução não pode ler o diretório eval, portanto, Claude não pode ver o prompt do caso, seus avaliadores ou casos irmãos.

484* **Sem sandbox de rede fora de comandos shell.** Comandos shell que você concede são executados sob as regras de sandbox. Uma concessão `WebFetch(domain:…)` alcança esse domínio diretamente, e os hooks próprios do plugin e qualquer servidor MCP real que você inicia podem alcançar qualquer host.538* **Nenhum sandbox de rede fora dos comandos shell.** Comandos shell que você concede são executados sob as regras de rede do sandbox. Uma concessão `WebFetch(domain:…)` alcança esse domínio diretamente, e os hooks próprios do plugin e quaisquer servidores MCP reais que você inicia podem alcançar qualquer host.

485 539 

486<h2 id="eval-suite-reference">540<h2 id="eval-suite-reference">

487 Referência de conjunto de eval541 Referência de conjunto de eval


537 case.yaml fields591 case.yaml fields

538</h3>592</h3>

539 593 

540`case.yaml` descreve o mesmo caso em YAML e adiciona os campos que apontam para outros arquivos. Requer `schema_version: "1.1"` e `name`. Os campos `prompt.md` `description`, `tags`, `plugins`, `runs` e `expected_outcome` vão no nível superior; `model`, `max_turns`, `timeout_seconds`, `allowed_tools`, `append_system_prompt` e `env` vão sob `execution:`. Quando ambos os arquivos existem, o frontmatter `prompt.md` substitui os campos `case.yaml` correspondentes, o corpo `prompt.md` é o prompt e `graders/*.md` são adicionados após qualquer avaliador listado em `case.yaml`.594`case.yaml` é uma alternativa ou complemento para `prompt.md`: descreve um caso em YAML e adiciona os campos que apontam para outros arquivos. Requer `schema_version: "1.1"` e `name`. Os campos `prompt.md` `description`, `tags`, `plugins`, `runs` e `expected_outcome` vão no nível superior; `model`, `max_turns`, `timeout_seconds`, `allowed_tools`, `append_system_prompt` e `env` vão sob `execution:`. Quando ambos os arquivos existem, o frontmatter `prompt.md` substitui os campos `case.yaml` correspondentes, o corpo `prompt.md` é o prompt e `graders/*.md` são adicionados após qualquer avaliador listado em `case.yaml`.

541 595 

542Esses campos existem apenas em `case.yaml`:596Esses campos existem apenas em `case.yaml`:

543 597 


556Cada arquivo de avaliador sob `graders/` leva essas chaves em frontmatter, mais as opções para seu tipo. O nome do avaliador é o nome do arquivo sem `.md`:610Cada arquivo de avaliador sob `graders/` leva essas chaves em frontmatter, mais as opções para seu tipo. O nome do avaliador é o nome do arquivo sem `.md`:

557 611 

558| Chave | Padrão | Propósito |612| Chave | Padrão | Propósito |

559| :------- | :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |613| :------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

560| `type` | obrigatório | Um dos [tipos de avaliador](#grader-types) |614| `type` | obrigatório | Um dos [tipos de avaliador](#grader-types) |

561| `weight` | `1` | Peso relativo na pontuação da execução. Qualquer número positivo |615| `weight` | `1` | Peso relativo na pontuação da execução. Qualquer número positivo |

562| `arm` | não definido | `with-only` exclui o avaliador da pontuação em uma [execução de dois braços](#compare-against-a-no-plugin-baseline); `both` força um avaliador `tool_used: Skill` a ser pontuado em ambos os braços |616| `arm` | não definido | `with-only` exclui o avaliador da pontuação em uma [execução de dois braços](#compare-against-a-no-plugin-baseline); `both` força um avaliador que Claude Code excluiria de outra forma a ser pontuado em ambos os braços |

563 617 

564<h4 id="what-a-grader-can-look-at">618<h4 id="what-a-grader-can-look-at">

565 O que um avaliador pode ver619 O que um avaliador pode ver


632 "is not a trusted plugin directory, and this run cannot stop to ask you about it"686 "is not a trusted plugin directory, and this run cannot stop to ask you about it"

633</h3>687</h3>

634 688 

635Esta é a primeira execução contra um diretório que Claude Code ainda não confia, e não pode perguntar porque stdin ou stdout não é um terminal ou você passou `--json`. Execute `claude plugin eval <dir>` uma vez em um terminal e responda o prompt, ou passe `--trust-plugin` se você confia no código e conjunto do plugin. Veja [O que uma execução pode acessar](#security).689Esta é a primeira execução contra um diretório que Claude Code ainda não confia, e não pode perguntar porque stdin ou stdout não é um terminal, você passou `--json`, ou a variável de ambiente `CI` está definida como um valor verdadeiro como `true`. Execute `claude plugin eval <dir>` uma vez em um terminal e responda o prompt, ou passe `--trust-plugin` se você confia no código e conjunto do plugin. Veja [O que uma execução pode acessar](#security).

636 690 

637<h3 id="no-eval-cases-found">691<h3 id="no-eval-cases-found">

638 "No eval cases found"692 "No eval cases found"


668 Uma regex sobre o trace não corresponde ao texto que posso ver722 Uma regex sobre o trace não corresponde ao texto que posso ver

669</h3>723</h3>

670 724 

671O `target` padrão é `last_message`, não o trace. Quando você visa `trace`, é JSON por linha, então aspas aparecem como `\"`. Regexes usam sintaxe JavaScript, então coloque `i` em `flags` em vez de escrever `(?i)`.725* **Alvo errado**: o `target` padrão é `last_message`, não o trace.

726* **Escape JSON**: quando você visa `trace`, é JSON por linha, então aspas aparecem como `\"`.

727* **Sintaxe de regex**: regexes usam sintaxe JavaScript, então coloque `i` em `flags` em vez de escrever `(?i)`.

672 728 

673<h3 id="tools-are-denied-mcp-tools-are-missing-or-bash-won’t-run">729<h3 id="tools-are-denied-mcp-tools-are-missing-or-bash-won’t-run">

674 Ferramentas são negadas, ferramentas MCP estão faltando ou Bash não será executado730 Ferramentas são negadas, ferramentas MCP estão faltando ou Bash não será executado


710 Veja também766 Veja também

711</h2>767</h2>

712 768 

713* [Criar plugins](/docs/pt/plugins): construa o plugin que você está testando e carregue-o com `--plugin-dir` durante o desenvolvimento769* [Criar um plugin](/docs/pt/plugins/create): construa o plugin que você está testando e carregue-o com `--plugin-dir` durante o desenvolvimento

714* [Referência de plugins](/docs/pt/plugins-reference#plugin-eval): as entradas de comando `plugin eval` e `plugin eval init` e a chave `experimental.evals` do manifesto770* [Referência de comandos de plugin](/docs/pt/plugins/cli-reference#plugin-eval): as entradas de comando `plugin eval` e `plugin eval init`. A chave [`experimental.evals`](/docs/pt/plugins/manifest-reference#fields) do manifesto está na referência do manifesto

715* [Skills](/docs/pt/skills): como a descrição de um skill decide quando Claude o invoca, que é o que um caso que verifica se o skill dispara está medindo771* [Skills](/docs/pt/skills): como a descrição de um skill decide quando Claude o invoca, que é o que um caso que verifica se o skill dispara está medindo

716* [Sandboxing](/docs/pt/sandboxing): a sandbox de nível do SO que se aplica quando você concede Bash a uma execução772* [Sandboxing](/docs/pt/sandboxing): a sandbox de nível do SO que se aplica quando você concede Bash a uma execução

717* [Criar e distribuir um marketplace de plugin](/docs/pt/plugin-marketplaces): publique o plugin uma vez que seu conjunto passa773* [Publicar um plugin](/docs/pt/plugins/publish): publique o plugin uma vez que seu conjunto passa

774* [Medir custo e uso do plugin](/docs/pt/plugins/measure): o que o plugin adiciona ao contexto de cada sessão e se as pessoas ainda o usam

plugin-hints.md +0 −172 deleted

File Deleted View Diff

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# Recomende seu plugin a partir de sua CLI

6 

7> Emita um marcador de uma linha a partir de sua CLI para que Claude Code solicite aos usuários que instalem seu plugin oficial.

8 

9Se você mantém uma CLI ou SDK e tem um plugin no marketplace oficial da Anthropic, sua ferramenta pode solicitar aos usuários do Claude Code que instalem esse plugin. Sua CLI escreve um marcador de uma linha para stderr quando detecta que está sendo executada dentro do Claude Code. Claude Code lê o marcador, remove-o da saída e mostra ao usuário um prompt de instalação única.

10 

11O protocolo não requer comandos extras e não altera o que sua CLI imprime para usuários fora do Claude Code.

12 

13Esta página é para mantenedores de CLI e SDK. Se você está procurando instalar plugins, consulte [Descobrir e instalar plugins](/docs/pt/discover-plugins).

14 

15<h2 id="how-it-works">

16 Como funciona

17</h2>

18 

19Claude Code define a variável de ambiente [`CLAUDECODE`](/docs/pt/env-vars) como `1` para cada comando que executa através das ferramentas Bash e PowerShell, e para comandos de [hook](/docs/pt/hooks). A partir da v2.1.172, também define [`CLAUDE_CODE_CHILD_SESSION`](/docs/pt/env-vars) como `1` nesses mesmos subprocessos. Quando sua CLI vê uma dessas variáveis, ela escreve uma tag auto-fechável `<claude-code-hint />` para stderr. Em comandos de hook, a tag de dica é removida e ignorada. Apenas a saída das ferramentas Bash e PowerShell dispara o prompt de instalação.

20 

21Quando Claude Code recebe a saída do comando, ele:

22 

231. Verifica linhas de dica e as remove antes da saída chegar ao modelo

242. Verifica se a dica aponta para um plugin em um marketplace oficial da Anthropic

253. Verifica se o plugin ainda não foi instalado e não foi solicitado antes

264. Mostra ao usuário um prompt de instalação que nomeia o comando que emitiu a dica

27 

28Claude Code nunca instala um plugin automaticamente. O usuário sempre confirma.

29 

30<h2 id="emit-the-hint">

31 Emita a dica

32</h2>

33 

34As dicas de prompt só são acionadas para plugins listados no marketplace oficial da Anthropic. Consulte [Coloque seu plugin no marketplace oficial](#get-your-plugin-into-the-official-marketplace) antes de enviar a integração.

35 

36Gate a emissão em uma variável de ambiente para que o marcador seja improvável de aparecer quando um humano executa seu CLI diretamente, depois escreva a tag para stderr em sua própria linha. Escolha qual variável verificar:

37 

38* `CLAUDECODE`: definida em todas as versões do Claude Code, portanto atinge a maioria das sessões. Também é definida em sessões tmux e subprocessos do servidor MCP stdio que Claude Code inicia. Extensões IDE também a definem em seus terminais integrados, onde um humano pode estar executando seu CLI diretamente.

39* `CLAUDE_CODE_CHILD_SESSION`: definida apenas em subprocessos que o próprio Claude Code gera, como chamadas de ferramenta, comandos hook e comandos da [linha de status](/docs/pt/statusline), portanto a tag normalmente não atinge um terminal humano. Um processo de longa duração que foi iniciado dentro de uma sessão, como um servidor tmux, captura a variável, portanto shells iniciados posteriormente a partir desse processo ainda mostram a tag bruta.

40 

41Os exemplos a seguir fazem gate em `CLAUDECODE` para máximo alcance e emitem uma dica para um plugin chamado `example-cli` no marketplace oficial:

42 

43<CodeGroup>

44 ```javascript Node.js theme={null}

45 if (process.env.CLAUDECODE) {

46 process.stderr.write(

47 '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />\n',

48 )

49 }

50 ```

51 

52 ```python Python theme={null}

53 import os, sys

54 

55 if os.environ.get("CLAUDECODE"):

56 print(

57 '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />',

58 file=sys.stderr,

59 )

60 ```

61 

62 ```go Go theme={null}

63 if os.Getenv("CLAUDECODE") != "" {

64 fmt.Fprintln(os.Stderr,

65 `<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />`)

66 }

67 ```

68 

69 ```shell Shell theme={null}

70 if [ -n "$CLAUDECODE" ]; then

71 printf '%s\n' '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />' >&2

72 fi

73 ```

74</CodeGroup>

75 

76Substitua `example-cli` pelo nome do seu plugin no marketplace oficial.

77 

78<h2 id="choose-where-to-emit">

79 Escolha onde emitir

80</h2>

81 

82Você controla quais caminhos de código emitem a dica. Claude Code deduplica por plugin, portanto emitir em cada invocação não tem desvantagem. Os pontos de contato que funcionam bem incluem:

83 

84| Posicionamento | Por que funciona |

85| :------------------------------------------- | :------------------------------------------------------------------ |

86| Saída de `--help` | Claude frequentemente executa help ao explorar uma CLI desconhecida |

87| Erros de subcomando desconhecido | Atinge o momento em que Claude está confuso sobre sua interface |

88| Sucesso de login ou autenticação | O usuário já está em uma mentalidade de configuração |

89| Mensagem de boas-vindas na primeira execução | Um momento natural de integração |

90 

91<h2 id="what-the-user-sees">

92 O que o usuário vê

93</h2>

94 

95Quando a dica passa em todas as verificações, Claude Code mostra um prompt como o seguinte:

96 

97```text theme={null}

98─────────────────────────────────────────────────────────────

99 Recomendação de Plugin

100 

101 O comando example-cli sugere instalar um plugin.

102 

103 Plugin: example-cli

104 Marketplace: claude-plugins-official

105 Integração oficial para implantações example-cli

106 

107 Você gostaria de instalá-lo?

108 ❯ 1. Sim, instalar example-cli

109 2. Não

110 3. Não, e não mostrar dicas de instalação de plugin novamente

111 

112─────────────────────────────────────────────────────────────

113```

114 

115O prompt nomeia o comando que produziu a dica para que os usuários possam detectar uma incompatibilidade entre a ferramenta e o plugin que ela recomenda. Se o usuário não responder dentro de 30 segundos, Claude Code descarta o prompt como **Não**.

116 

117A frequência do prompt é limitada, e algumas sessões nunca exibem prompts:

118 

119* **Uma vez por plugin**: após o prompt ser exibido, Claude Code registra o plugin e nunca o solicita novamente, independentemente da resposta do usuário.

120* **Uma vez por sessão**: em todas as CLIs da máquina, no máximo um prompt de dica aparece por sessão do Claude Code.

121* **Apenas sessão interativa principal**: Claude Code mostra o prompt apenas na sessão de terminal em que o usuário está digitando. Claude Code nunca solicita um comando que um [subagent](/docs/pt/sub-agents) executa, e nunca solicita quando o usuário executa Claude Code em [modo não interativo](/docs/pt/headless) com a flag `-p` ou através do [Agent SDK](/docs/pt/agent-sdk/overview). Claude Code ainda remove a linha de dica da saída do comando em todos esses casos.

122* **Exclusões de telemetria**: sessões onde a análise está desabilitada nunca exibem prompts de dica. Isso inclui sessões com `DISABLE_TELEMETRY` ou `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` definidas, e sessões em provedores de terceiros como Amazon Bedrock ou Google Cloud's Agent Platform onde a [exclusão automática de telemetria](/docs/pt/data-usage#default-behaviors-by-api-provider) se aplica.

123 

124Selecionar **Sim** instala o plugin no escopo do usuário. Selecionar **Não, e não mostrar dicas de instalação de plugin novamente** desabilita todos os prompts de dica futuros para o usuário.

125 

126<h2 id="hint-format">

127 Formato da dica

128</h2>

129 

130A dica é uma tag auto-fechável com três atributos obrigatórios.

131 

132```text theme={null}

133<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />

134```

135 

136| Atributo | Obrigatório | Descrição |

137| :------- | :---------- | :-------------------------------------------------- |

138| `v` | Sim | Versão do protocolo. `1` é o único valor suportado |

139| `type` | Sim | Tipo de dica. `plugin` é o único valor suportado |

140| `value` | Sim | Identificador do plugin na forma `name@marketplace` |

141 

142Os valores dos atributos podem ser citados com aspas duplas ou deixados sem aspas. Valores sem aspas não podem conter espaços em branco. Sequências de escape não são suportadas.

143 

144<h2 id="requirements">

145 Requisitos

146</h2>

147 

148Claude Code impõe duas condições antes de agir em uma dica. Dicas que falham em qualquer uma das verificações são descartadas:

149 

150* **Linha própria**: a tag deve ocupar sua própria linha. Uma tag incorporada no meio da linha, por exemplo dentro de uma instrução de log, é ignorada. Espaço em branco à esquerda e à direita na linha é permitido.

151* **Marketplace oficial**: o `value` deve fazer referência a um plugin em um marketplace controlado pela Anthropic, como `claude-plugins-official`. Dicas que apontam para outros marketplaces são silenciosamente descartadas.

152 

153A linha de dica é sempre removida da saída antes de chegar ao modelo, mesmo quando a versão ou tipo não é reconhecido, portanto o marcador nunca é contado para o uso de tokens.

154 

155As orientações restantes são recomendadas, mas não obrigatórias. Claude Code não pode observar se sua CLI as segue:

156 

157* **Escrever para stderr**: stderr mantém a tag fora de pipelines de shell, como `example-cli deploy | jq`. Claude Code verifica ambos os fluxos, portanto stdout também funciona.

158* **Gate em uma variável de ambiente**: emita apenas quando `CLAUDECODE` ou `CLAUDE_CODE_CHILD_SESSION` estiver definido. Consulte [Emitir a dica](#emit-the-hint) para saber como as duas variáveis diferem.

159 

160<h2 id="get-your-plugin-into-the-official-marketplace">

161 Coloque seu plugin no marketplace oficial

162</h2>

163 

164O protocolo de dica só entra em vigor para plugins listados no marketplace oficial da Anthropic, `claude-plugins-official`. A Anthropic cura esse marketplace a seu critério, e os formulários de envio no aplicativo adicionam plugins ao [marketplace da comunidade](/docs/pt/plugins#submit-your-plugin-to-the-community-marketplace), que o protocolo de dica não verifica. Se você está trabalhando com um contato de parceiro da Anthropic, entre em contato com ele para coordenar uma listagem no marketplace oficial.

165 

166<h2 id="see-also">

167 Veja também

168</h2>

169 

170* [Criar plugins](/docs/pt/plugins): construa o plugin que sua CLI recomenda

171* [Criar e distribuir um marketplace de plugins](/docs/pt/plugin-marketplaces): hospede plugins fora do marketplace oficial

172* [Variáveis de ambiente](/docs/pt/env-vars): referência completa para `CLAUDECODE` e variáveis relacionadas

plugin-marketplaces.md +0 −1688 deleted

File Deleted View Diff

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# Criar e distribuir um marketplace de plugins

6 

7> Crie e hospede marketplaces de plugins para distribuir extensões Claude Code em equipes e comunidades.

8 

9Um **marketplace de plugins** é um catálogo que permite distribuir plugins para outros. Os marketplaces fornecem descoberta centralizada, rastreamento de versão, atualizações automáticas e suporte para múltiplos tipos de fonte, incluindo repositórios git e caminhos locais. Este guia mostra como criar seu próprio marketplace para compartilhar plugins com sua equipe ou comunidade.

10 

11Procurando instalar plugins de um marketplace existente? Veja [Descobrir e instalar plugins pré-construídos](/docs/pt/discover-plugins).

12 

13<h2 id="overview">

14 Visão geral

15</h2>

16 

17Criar e distribuir um marketplace envolve:

18 

191. **Criar plugins**: construir um ou mais plugins com skills, agents, hooks, MCP servers ou LSP servers. Este guia assume que você já tem plugins para distribuir; veja [Criar plugins](/docs/pt/plugins) para detalhes sobre como criá-los.

202. **Criar o arquivo de marketplace**: definir um `marketplace.json` que lista seus plugins e onde encontrá-los. Veja [Criar o arquivo de marketplace](#create-the-marketplace-file).

213. **Hospedar o marketplace**: fazer push para GitHub, GitLab ou outro host git. Veja [Hospedar e distribuir marketplaces](#host-and-distribute-marketplaces).

224. **Compartilhar com usuários**: usuários adicionam seu marketplace com `/plugin marketplace add` e instalam plugins individuais. Veja [Descobrir e instalar plugins](/docs/pt/discover-plugins).

23 

24Depois que seu marketplace estiver ativo, você pode atualizá-lo fazendo push de alterações para seu repositório. Os usuários atualizam sua cópia local com `/plugin marketplace update`.

25 

26<h2 id="walkthrough-create-a-local-marketplace">

27 Passo a passo: criar um marketplace local

28</h2>

29 

30Este exemplo cria um marketplace com um plugin: uma skill `quality-review` para revisões de código. Você criará a estrutura de diretórios, adicionará uma skill, criará o manifesto do plugin e o catálogo do marketplace, depois instalará e testará.

31 

32<Steps>

33 <Step title="Criar a estrutura de diretórios">

34 ```bash theme={null}

35 mkdir -p my-marketplace/.claude-plugin

36 mkdir -p my-marketplace/plugins/quality-review-plugin/.claude-plugin

37 mkdir -p my-marketplace/plugins/quality-review-plugin/skills/quality-review

38 ```

39 </Step>

40 

41 <Step title="Criar a skill">

42 Crie um arquivo `SKILL.md` que define o que a skill `quality-review` faz.

43 

44 ```markdown my-marketplace/plugins/quality-review-plugin/skills/quality-review/SKILL.md theme={null}

45 ---

46 description: Revisar código para bugs, segurança e desempenho

47 ---

48 

49 Revise o código que selecionei ou as alterações recentes para:

50 - Possíveis bugs ou casos extremos

51 - Preocupações de segurança

52 - Problemas de desempenho

53 - Melhorias de legibilidade

54 

55 Seja conciso e acionável.

56 ```

57 </Step>

58 

59 <Step title="Criar o manifesto do plugin">

60 Crie um arquivo `plugin.json` que descreve o plugin. O manifesto vai no diretório `.claude-plugin/`.

61 

62 ```json my-marketplace/plugins/quality-review-plugin/.claude-plugin/plugin.json theme={null}

63 {

64 "name": "quality-review-plugin",

65 "description": "Adiciona uma skill quality-review para revisões rápidas de código",

66 "version": "1.0.0",

67 "author": {

68 "name": "Seu Nome"

69 }

70 }

71 ```

72 

73 <Note>

74 Definir `version` significa que os usuários só recebem atualizações quando você altera este campo, então aumente-o em cada lançamento. Um plugin com uma [`command` source](#command-sources) não é fixado por este campo. Nem é um plugin [carregado no local](/docs/pt/plugins-reference#plugin-caching-and-file-resolution) de um marketplace adicionado como um diretório local. Se você omitir `version`, a versão vem da próxima fonte em [gerenciamento de versão](/docs/pt/plugins-reference#version-management).

75 </Note>

76 </Step>

77 

78 <Step title="Criar o arquivo de marketplace">

79 Crie o catálogo de marketplace que lista seu plugin.

80 

81 ```json my-marketplace/.claude-plugin/marketplace.json theme={null}

82 {

83 "name": "my-plugins",

84 "owner": {

85 "name": "Seu Nome"

86 },

87 "plugins": [

88 {

89 "name": "quality-review-plugin",

90 "source": "./plugins/quality-review-plugin",

91 "description": "Adiciona uma skill quality-review para revisões rápidas de código"

92 }

93 ]

94 }

95 ```

96 </Step>

97 

98 <Step title="Adicionar e instalar">

99 A partir do diretório que contém `my-marketplace`, inicie Claude Code e execute os seguintes comandos. O comando install abre uma visualização de detalhes do plugin onde você seleciona um escopo de instalação para confirmar a instalação. Verifique o resumo da instalação: se ele relatar `Run /reload-plugins to activate.`, veja [Aplicar alterações de plugin sem reiniciar](/docs/pt/discover-plugins#apply-plugin-changes-without-restarting).

100 

101 ```shell theme={null}

102 /plugin marketplace add ./my-marketplace

103 /plugin install quality-review-plugin@my-plugins

104 ```

105 </Step>

106 

107 <Step title="Experimentar">

108 Selecione algum código em seu editor e execute sua nova skill. As skills do plugin são nomeadas com o nome do plugin.

109 

110 ```shell theme={null}

111 /quality-review-plugin:quality-review

112 ```

113 </Step>

114</Steps>

115 

116Para saber mais sobre o que os plugins podem fazer, incluindo hooks, agents, MCP servers e LSP servers, veja [Plugins](/docs/pt/plugins).

117 

118<Note>

119 **Como os plugins são instalados**: quando os usuários instalam um plugin, Claude Code copia o diretório do plugin para um local de cache, a menos que o plugin seja carregado no local. Uma [`command` source em link mode](#copy-mode-and-link-mode) é carregada no local, assim como uma [fonte de caminho relativo](#relative-paths) em um marketplace adicionado de um diretório local. Os plugins copiados não podem referenciar arquivos fora de seu diretório usando caminhos como `../shared-utils`, porque esses arquivos não serão copiados.

120 

121 Se você precisar compartilhar arquivos entre plugins, use symlinks. Veja [Plugin caching and file resolution](/docs/pt/plugins-reference#plugin-caching-and-file-resolution) para detalhes.

122</Note>

123 

124<h2 id="create-the-marketplace-file">

125 Criar o arquivo de marketplace

126</h2>

127 

128Crie `.claude-plugin/marketplace.json` na raiz do seu repositório. Este arquivo define o nome do seu marketplace, informações do proprietário e uma lista de plugins com suas fontes.

129 

130Cada entrada de plugin precisa no mínimo de um `name` e um `source` que diz ao Claude Code onde buscá-lo. Veja o [esquema completo](#marketplace-schema) abaixo para todos os campos disponíveis.

131 

132```json theme={null}

133{

134 "name": "company-tools",

135 "owner": {

136 "name": "DevTools Team",

137 "email": "devtools@example.com"

138 },

139 "plugins": [

140 {

141 "name": "code-formatter",

142 "source": "./plugins/formatter",

143 "description": "Formatação automática de código ao salvar",

144 "version": "2.1.0",

145 "author": {

146 "name": "DevTools Team"

147 }

148 },

149 {

150 "name": "deployment-tools",

151 "source": {

152 "source": "github",

153 "repo": "company/deploy-plugin"

154 },

155 "description": "Ferramentas de automação de implantação"

156 }

157 ]

158}

159```

160 

161<h2 id="marketplace-schema">

162 Esquema de marketplace

163</h2>

164 

165<h3 id="required-fields">

166 Campos obrigatórios

167</h3>

168 

169| Campo | Tipo | Descrição | Exemplo |

170| :-------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------- |

171| `name` | string | Identificador de marketplace em kebab-case, sem espaços, caracteres de controle ou caracteres de formatação bidirecional. Isso é público: os usuários o veem ao instalar plugins (por exemplo, `/plugin install my-tool@your-marketplace`). Cada usuário pode registrar apenas um marketplace por nome: quando adiciona um segundo marketplace com o mesmo nome, Claude Code substitui o primeiro. Para publicar múltiplos plugins sob um nome de marketplace, liste-os todos em um único [`marketplace.json`](#create-the-marketplace-file). | `"acme-tools"` |

172| `owner` | object | Informações do mantenedor do marketplace. Veja [Campos do proprietário](#owner-fields) | |

173| `plugins` | array | Lista de plugins disponíveis | Veja [Entradas de plugin](#plugin-entries) |

174 

175<Note>

176 **Nomes reservados**: os seguintes nomes de marketplace são reservados para uso oficial da Anthropic e não podem ser usados por marketplaces de terceiros: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `claude-plugins-community`, `claude-community`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `knowledge-work-plugins`, `life-sciences`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`, `first-party-plugins`, `claude-tag-plugins`, `healthcare`. Nomes que imitam marketplaces oficiais, como `official-claude-plugins` ou `anthropic-plugins-v2`, também são bloqueados. Reservar esses nomes impede que um marketplace de terceiros se apresente como uma fonte publicada pela Anthropic.

177 

178 Claude Code verifica novamente os nomes reservados toda vez que carrega um marketplace, não apenas quando você adiciona um. Um marketplace que foi registrado sob um desses nomes antes do nome se tornar reservado para de carregar e relata que está [registrado de uma fonte não confiável](/docs/pt/errors#marketplace-is-registered-from-an-untrusted-source). Remova esse marketplace e adicione-o novamente da fonte oficial da Anthropic. Um marketplace de terceiros afetado por um nome recém-reservado carrega novamente assim que você o adiciona novamente sob um nome diferente. Antes da v2.1.205, `first-party-plugins` e `healthcare` não eram reservados, e um marketplace já registrado sob um nome reservado continuava carregando. Antes da v2.1.265, `claude-tag-plugins` não era reservado.

179 

180 Você também não pode nomear um marketplace como `npm`, `pip`, `uv`, `cargo`, `github` ou `gh`, em qualquer capitalização. Esta verificação requer Claude Code v2.1.275 ou posterior.

181</Note>

182 

183<h3 id="owner-fields">

184 Campos do proprietário

185</h3>

186 

187| Campo | Tipo | Obrigatório | Descrição |

188| :------ | :----- | :---------- | :------------------------------------------- |

189| `name` | string | Sim | Nome do mantenedor ou equipe |

190| `email` | string | Não | Email de contato do mantenedor |

191| `url` | string | Não | Site, perfil do GitHub ou URL da organização |

192 

193<h3 id="optional-fields">

194 Campos opcionais

195</h3>

196 

197| Campo | Tipo | Descrição |

198| :------------------------------------ | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

199| `$schema` | string | URL do JSON Schema para autocompletar e validação do editor. Claude Code ignora este campo no momento do carregamento. |

200| `description` | string | Breve descrição do marketplace |

201| `version` | string | Versão do manifesto do marketplace |

202| `metadata.pluginRoot` | string | Diretório que Claude Code resolve nomes de fonte de plugin simples. Veja [Caminhos relativos](#relative-paths). Requer Claude Code v2.1.239 ou posterior. |

203| `allowCrossMarketplaceDependenciesOn` | array | Outros marketplaces que plugins neste marketplace podem depender. Dependências de um marketplace não listado aqui são bloqueadas na instalação. Veja [Depender de um plugin de outro marketplace](/docs/pt/plugin-dependencies#depend-on-a-plugin-from-another-marketplace). |

204| `renames` | object | Mapa de um antigo `name` de plugin para seu nome atual, ou para `null` se o plugin foi removido. Permite que usuários existentes migrem automaticamente quando você renomeia ou remove uma entrada em `plugins`. Veja [Renomear ou remover um plugin](#rename-or-remove-a-plugin). Requer Claude Code v2.1.193 ou posterior. |

205 

206`description` e `version` também são aceitos sob `metadata` para compatibilidade com versões anteriores.

207 

208<h2 id="plugin-entries">

209 Entradas de plugin

210</h2>

211 

212Cada entrada de plugin no array `plugins` descreve um plugin e onde encontrá-lo. Você pode incluir qualquer campo do [esquema de manifesto de plugin](/docs/pt/plugins-reference#plugin-manifest-schema), como `description`, `version`, `author`, `commands` e `hooks`, além destes campos específicos do marketplace: `source`, `category`, `tags`, `strict`, `relevance`, `headers` e `headersHelper`.

213 

214<h3 id="required-fields-2">

215 Campos obrigatórios

216</h3>

217 

218| Campo | Tipo | Descrição |

219| :------- | :------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

220| `name` | string | Identificador de plugin em kebab-case, sem espaços, caracteres de controle ou caracteres de formatação bidirecional. Isso é público: os usuários o veem ao instalar (por exemplo, `/plugin install my-plugin@marketplace`). |

221| `source` | string\|object | Onde buscar o plugin (veja [Fontes de plugin](#plugin-sources) abaixo) |

222 

223<h3 id="optional-plugin-fields">

224 Campos de plugin opcionais

225</h3>

226 

227**Campos de metadados padrão:**

228 

229| Campo | Tipo | Descrição |

230| :--------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

231| `displayName` | string | Nome legível por humanos exibido em superfícies de UI. Quando nem a entrada nem o `plugin.json` do plugin define um, os usuários veem o `name` do plugin. Pode conter espaços e qualquer capitalização. Não é usado para namespacing ou lookup. |

232| `description` | string | Breve descrição do plugin |

233| `version` | string | Versão do plugin. Se definido (aqui ou em `plugin.json`), o plugin é fixado a esta string e os usuários recebem atualizações apenas quando ela muda. Um plugin com uma [`command` source](#command-sources) não é fixado por nenhum dos dois campos. Nem um plugin [carregado no local](/docs/pt/plugins-reference#plugin-caching-and-file-resolution) de um marketplace adicionado como diretório local. Se não definido em nenhum lugar, a versão vem da próxima fonte em [gerenciamento de versão](/docs/pt/plugins-reference#version-management). |

234| `author` | object | Informações do autor do plugin (`name` obrigatório; `email` e `url` opcionais) |

235| `homepage` | string | URL da página inicial ou documentação do plugin |

236| `repository` | string | URL do repositório de código-fonte |

237| `license` | string | Identificador de licença SPDX (por exemplo, MIT, Apache-2.0) |

238| `keywords` | array | Tags para descoberta e categorização de plugins |

239| `metadata` | object | Objeto de forma livre para seus próprios campos, como dados de direito ou catálogo. Claude Code não o lê. Antes da v2.1.222, `claude plugin validate` relatava a chave como um campo não reconhecido. |

240| `category` | string | Categoria do plugin para organização |

241| `tags` | array | Tags para pesquisabilidade |

242| `strict` | boolean | Controla se `plugin.json` é a autoridade para definições de componentes (padrão: true). Veja [Strict mode](#strict-mode) abaixo. |

243| `relevance` | object | Sinais que informam ao Claude Code quando sugerir este plugin aos usuários. Tem efeito apenas para marketplaces que um administrador coloca na lista de permissões em configurações gerenciadas. Veja [Recomendar plugins para sua organização](/docs/pt/plugin-relevance). |

244| `defaultEnabled` | boolean | Se o plugin está habilitado após a instalação (padrão: true). Defina como `false` para instalar o plugin desabilitado até que o usuário opte por ativá-lo. Tem precedência sobre o mesmo campo no `plugin.json` do plugin. Veja [Default enablement](/docs/pt/plugins-reference#default-enablement). |

245 

246Tanto a entrada quanto o próprio `plugin.json` do plugin podem definir os campos de exibição `displayName`, `description`, `author`, `homepage`, `repository`, `license` e `keywords`. Em listagens e detalhes de plugins, antes e depois da instalação:

247 

248* Para um campo que você define na entrada, os usuários veem o valor da entrada, mesmo quando `plugin.json` define um diferente.

249* Para um campo que a entrada deixa indefinido, os usuários veem o valor de `plugin.json`.

250 

251Antes da instalação, Claude Code pode ler `plugin.json` apenas para entradas com uma [fonte de caminho relativo](#relative-paths), cujos arquivos de plugin vivem dentro do próprio marketplace. Para uma entrada com qualquer outro tipo de fonte, os usuários veem apenas os campos da própria entrada até que instalem o plugin.

252 

253**Campos de configuração de componentes:**

254 

255| Campo | Tipo | Descrição |

256| :----------- | :------------- | :-------------------------------------------------------------------------- |

257| `skills` | string\|array | Caminhos personalizados para diretórios de skill contendo `<name>/SKILL.md` |

258| `commands` | string\|array | Caminhos personalizados para arquivos de skill `.md` simples ou diretórios |

259| `agents` | string\|array | Caminhos personalizados para arquivos de agent |

260| `hooks` | string\|object | Configuração de hooks personalizada ou caminho para arquivo de hooks |

261| `mcpServers` | string\|object | Configurações de MCP server ou caminho para config de MCP |

262| `lspServers` | string\|object | Configurações de LSP server ou caminho para config de LSP |

263 

264**Campos de autenticação de arquivo:**

265 

266Defina estes quando a entrada tiver uma [`archive` source](#zip-archives) em um servidor que requer credenciais.

267 

268| Campo | Tipo | Descrição |

269| :-------------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

270| `headers` | object | Cabeçalhos HTTP que Claude Code envia quando baixa o arquivo desta entrada. Substitui os cabeçalhos do marketplace com o mesmo nome. Requer Claude Code v2.1.238 ou posterior. |

271| `headersHelper` | string | Comando que imprime os cabeçalhos HTTP para o download do arquivo desta entrada como um objeto JSON, para uma credencial que expira. Veja [Autenticar downloads de arquivo](#authenticate-archive-downloads). A entrada também deve definir [`"strict": false`](#strict-mode). Requer Claude Code v2.1.238 ou posterior. |

272 

273<h2 id="plugin-sources">

274 Fontes de plugin

275</h2>

276 

277As fontes de plugin informam ao Claude Code onde buscar cada plugin individual listado em seu marketplace. Elas são definidas no campo `source` de cada entrada de plugin em `marketplace.json`.

278 

279Claude Code copia cada plugin instalado para o cache de plugin versionado local em `~/.claude/plugins/cache`, exceto quando o plugin é carregado no lugar. Uma [fonte `command` em modo link](#copy-mode-and-link-mode) é carregada no lugar, assim como uma [fonte de caminho relativo](#relative-paths) em um marketplace adicionado de um diretório local. Claude Code também [instala as dependências de pacote Node.js elegíveis do plugin](/docs/pt/plugins-reference#node-js-package-dependencies) na cópia em cache. Veja [Plugin caching and file resolution](/docs/pt/plugins-reference#plugin-caching-and-file-resolution) para como um plugin carregado no lugar de um marketplace de diretório local capta suas edições.

280 

281| Fonte | Tipo | Campos | Notas |

282| ---------------- | --------------------------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

283| Caminho relativo | `string` (por exemplo, `"./my-plugin"`) | nenhum | Diretório local dentro do repositório de marketplace. Deve começar com `./`, a menos que você escreva um [nome simples sob `metadata.pluginRoot`](#relative-paths). Claude Code resolve o caminho relativamente à raiz do marketplace, não ao diretório `.claude-plugin/` |

284| `github` | object | `repo`, `ref?`, `sha?` | |

285| `url` | object | `url`, `ref?`, `sha?` | Fonte de URL Git |

286| `git-subdir` | object | `url`, `path`, `ref?`, `sha?` | Subdiretório dentro de um repositório git. Clona esparsamente para minimizar largura de banda para monorepos |

287| `npm` | object | `package`, `version?`, `registry?` | Pacote npm, buscado com seu cliente npm e desempacotado sem executar scripts de instalação |

288| `archive` | object | `url`, `sha256?` | Arquivo zip baixado via HTTPS. Funciona sem git ou npm na máquina do usuário. Requer Claude Code v2.1.224 ou posterior |

289| `command` | object | `command`, `timeout?`, `mode?` | Diretório de plugin produzido pela execução de um comando local, re-executado uma vez por sessão para captar mudanças. Requer Claude Code v2.1.229 ou posterior |

290 

291<Note>

292 **Fontes de marketplace vs fontes de plugin**: Estes são conceitos diferentes que controlam coisas diferentes.

293 

294 * **Fonte de marketplace**: onde buscar o próprio catálogo `marketplace.json`. Definido quando os usuários executam `/plugin marketplace add` ou em configurações `extraKnownMarketplaces`. Fontes de marketplace baseadas em Git suportam `ref` (branch/tag) mas não `sha`.

295 * **Fonte de plugin**: onde buscar um plugin individual listado no marketplace. Definido no campo `source` de cada entrada de plugin dentro de `marketplace.json`. Fontes de plugin baseadas em Git suportam tanto `ref` (branch/tag) quanto `sha` (commit exato).

296 

297 Por exemplo, um marketplace hospedado em `acme-corp/plugin-catalog` (fonte de marketplace) pode listar um plugin buscado de `acme-corp/code-formatter` (fonte de plugin). A fonte de marketplace e a fonte de plugin apontam para repositórios diferentes e são fixadas independentemente.

298</Note>

299 

300Os tipos de fonte baseados em git abaixo são `github`, `url` e `git-subdir`. Quando tanto `ref` quanto `sha` são definidos em qualquer um deles, o `sha` é o pino efetivo. Claude Code busca e faz checkout do commit fixado diretamente.

301 

302Na maioria dos hosts git, incluindo GitHub, GitLab e Bitbucket, isso significa que a instalação é bem-sucedida mesmo se o branch ou tag nomeado por `ref` tenha sido deletado upstream, desde que o commit ainda seja alcançável a partir do repositório. Alguns servidores, como AWS CodeCommit, não suportam busca de commits por SHA. Nesses servidores, o `ref` ainda deve existir e o commit fixado deve ser alcançável a partir dele.

303 

304Se você distribuir plugins através de **Configurações da Organização > Plugins**, apenas alguns tipos de fonte são permitidos. Veja [Distribuir através de configurações da organização](#distribute-through-organization-settings).

305 

306<h3 id="relative-paths">

307 Caminhos relativos

308</h3>

309 

310Para plugins no mesmo repositório, use um caminho começando com `./`:

311 

312```json theme={null}

313{

314 "name": "my-plugin",

315 "source": "./plugins/my-plugin"

316}

317```

318 

319Os caminhos são resolvidos relativamente à raiz do marketplace, que é o diretório contendo `.claude-plugin/`. A fonte `./plugins/my-plugin` portanto aponta para `<repo>/plugins/my-plugin`, mesmo que `marketplace.json` viva em `<repo>/.claude-plugin/marketplace.json`. Não use `../` para referenciar caminhos fora da raiz do marketplace. Em macOS e Linux, Claude Code recusa uma entrada de caminho com uma barra invertida em qualquer lugar após o `./` inicial, então escreva os separadores como `/` em todas as plataformas.

320 

321Um nome simples é um único nome de diretório sem `/`, como `"formatter"`. Para escrever nomes simples em vez de caminhos `./`, defina [`metadata.pluginRoot`](#optional-fields) para o diretório sob o qual eles se resolvem. Com `"pluginRoot": "./plugins"`, Claude Code resolve `"source": "formatter"` para `./plugins/formatter`. Requer Claude Code v2.1.239 ou posterior.

322 

323`metadata.pluginRoot` deve ser um caminho relativo dentro do marketplace. Claude Code o ignora para uma fonte que já começa com `./`. Uma fonte que contém um `/`, como `team-a/formatter`, não é um nome simples e ainda precisa do prefixo `./`, mesmo quando `metadata.pluginRoot` está definido.

324 

325<Note>

326 Claude Code resolve caminhos relativos contra uma cópia local do marketplace, então funcionam quando os usuários adicionam seu marketplace de uma fonte git ou um diretório local. Se os usuários adicionarem seu marketplace via URL direta para o arquivo `marketplace.json`, caminhos relativos não serão resolvidos, porque Claude Code baixa apenas esse arquivo. Para distribuição baseada em URL, use qualquer outra [fonte de plugin](#plugin-sources) em vez disso. Veja [Troubleshooting](#plugins-with-relative-paths-fail-in-url-based-marketplaces) para detalhes.

327</Note>

328 

329<h3 id="github-repositories">

330 Repositórios GitHub

331</h3>

332 

333```json theme={null}

334{

335 "name": "github-plugin",

336 "source": {

337 "source": "github",

338 "repo": "owner/plugin-repo"

339 }

340}

341```

342 

343Você pode fixar a um branch, tag ou commit específico:

344 

345```json theme={null}

346{

347 "name": "github-plugin",

348 "source": {

349 "source": "github",

350 "repo": "owner/plugin-repo",

351 "ref": "v2.0.0",

352 "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"

353 }

354}

355```

356 

357| Campo | Tipo | Descrição |

358| :----- | :----- | :---------------------------------------------------------------------------------- |

359| `repo` | string | Obrigatório. Repositório GitHub no formato `owner/repo` |

360| `ref` | string | Opcional. Branch ou tag Git (padrão é o branch padrão do repositório) |

361| `sha` | string | Opcional. SHA de commit git completo de 40 caracteres para fixar a uma versão exata |

362 

363<h3 id="git-repositories">

364 Repositórios Git

365</h3>

366 

367```json theme={null}

368{

369 "name": "git-plugin",

370 "source": {

371 "source": "url",

372 "url": "https://gitlab.com/team/plugin.git"

373 }

374}

375```

376 

377Você pode fixar a um branch, tag ou commit específico:

378 

379```json theme={null}

380{

381 "name": "git-plugin",

382 "source": {

383 "source": "url",

384 "url": "https://gitlab.com/team/plugin.git",

385 "ref": "main",

386 "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"

387 }

388}

389```

390 

391| Campo | Tipo | Descrição |

392| :---- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

393| `url` | string | Obrigatório. URL completa do repositório git (`https://` ou `git@`). O sufixo `.git` é opcional, então URLs do Azure DevOps e AWS CodeCommit sem o sufixo funcionam |

394| `ref` | string | Opcional. Branch ou tag Git (padrão é o branch padrão do repositório) |

395| `sha` | string | Opcional. SHA de commit git completo de 40 caracteres para fixar a uma versão exata |

396 

397<h3 id="git-subdirectories">

398 Subdiretórios Git

399</h3>

400 

401Use `git-subdir` para apontar para um plugin que vive dentro de um subdiretório de um repositório git. Claude Code usa um clone parcial e esparso para buscar apenas o subdiretório, minimizando largura de banda para grandes monorepos.

402 

403```json theme={null}

404{

405 "name": "my-plugin",

406 "source": {

407 "source": "git-subdir",

408 "url": "https://github.com/acme-corp/monorepo.git",

409 "path": "tools/claude-plugin"

410 }

411}

412```

413 

414Você pode fixar a um branch, tag ou commit específico:

415 

416```json theme={null}

417{

418 "name": "my-plugin",

419 "source": {

420 "source": "git-subdir",

421 "url": "https://github.com/acme-corp/monorepo.git",

422 "path": "tools/claude-plugin",

423 "ref": "v2.0.0",

424 "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"

425 }

426}

427```

428 

429O campo `url` também aceita atalho GitHub (`owner/repo`) ou URLs SSH (`git@github.com:owner/repo.git`).

430 

431| Campo | Tipo | Descrição |

432| :----- | :----- | :------------------------------------------------------------------------------------------------------------------ |

433| `url` | string | Obrigatório. URL do repositório Git, atalho GitHub `owner/repo` ou URL SSH |

434| `path` | string | Obrigatório. Caminho do subdiretório dentro do repositório contendo o plugin (por exemplo, `"tools/claude-plugin"`) |

435| `ref` | string | Opcional. Branch ou tag Git (padrão é o branch padrão do repositório) |

436| `sha` | string | Opcional. SHA de commit git completo de 40 caracteres para fixar a uma versão exata |

437 

438<h3 id="npm-packages">

439 Pacotes npm

440</h3>

441 

442Uma fonte npm pode nomear qualquer pacote no registro npm público ou em um registro privado que sua equipe hospeda. Claude Code resolve o pacote com seu cliente npm, baixa o tarball e o desempacota no cache de plugin.

443 

444Os scripts de instalação do pacote, como `preinstall` ou `postinstall`, nunca são executados, e suas dependências não são instaladas durante a busca.

445 

446Se o pacote enviar um lockfile suportado ao lado de seu `package.json`, Claude Code instala essas [dependências de pacote Node.js](/docs/pt/plugins-reference#node-js-package-dependencies) em uma etapa separada, também com scripts desabilitados. Caso contrário, publique o plugin com tudo que ele precisa já construído. Um servidor MCP que precisa de outros pacotes pode ser iniciado através de `npx`, que os instala na primeira execução.

447 

448```json theme={null}

449{

450 "name": "my-npm-plugin",

451 "source": {

452 "source": "npm",

453 "package": "@acme/claude-plugin"

454 }

455}

456```

457 

458Para fixar a uma versão específica, adicione o campo `version`:

459 

460```json theme={null}

461{

462 "name": "my-npm-plugin",

463 "source": {

464 "source": "npm",

465 "package": "@acme/claude-plugin",

466 "version": "2.1.0"

467 }

468}

469```

470 

471Para instalar de um registro privado ou interno, adicione o campo `registry`:

472 

473```json theme={null}

474{

475 "name": "my-npm-plugin",

476 "source": {

477 "source": "npm",

478 "package": "@acme/claude-plugin",

479 "version": "^2.0.0",

480 "registry": "https://npm.example.com"

481 }

482}

483```

484 

485| Campo | Tipo | Descrição |

486| :--------- | :----- | :------------------------------------------------------------------------------------------------------ |

487| `package` | string | Obrigatório. Nome do pacote ou pacote com escopo (por exemplo, `@org/plugin`) |

488| `version` | string | Opcional. Versão ou intervalo de versão (por exemplo, `2.1.0`, `^2.0.0`, `~1.5.0`) |

489| `registry` | string | Opcional. URL de registro npm personalizado. Padrão é o registro npm do sistema (tipicamente npmjs.org) |

490 

491<h3 id="zip-archives">

492 Arquivos zip

493</h3>

494 

495Use `archive` para distribuir um plugin como um arquivo zip que Claude Code baixa via HTTPS, para que as instalações funcionem sem git ou npm na máquina do usuário. Hospede o arquivo em qualquer servidor de arquivo estático ou repositório de artefatos, como um bucket S3, um repositório genérico do Artifactory ou nginx. Requer Claude Code v2.1.224 ou posterior. Nas versões v2.1.120 até v2.1.223, a instalação do plugin falha com `This plugin uses a source type your Claude Code version does not support. Update Claude Code and try again.`; em versões mais antigas, um marketplace contendo uma entrada `archive` falha ao carregar completamente.

496 

497Esta entrada instala o plugin de um arquivo zip em um servidor de artefatos:

498 

499```json theme={null}

500{

501 "name": "my-plugin",

502 "source": {

503 "source": "archive",

504 "url": "https://artifacts.example.com/claude-plugins/my-plugin-2.1.0.zip"

505 }

506}

507```

508 

509Quando você constrói o zip, você pode fazer zip do conteúdo do plugin diretamente ou fazer zip da pasta do plugin em si. Claude Code procura por `.claude-plugin/` no topo do arquivo, depois dentro de uma única pasta de nível superior, então ambos os layouts instalam:

510 

511```text theme={null}

512my-plugin.zip my-plugin.zip

513├── .claude-plugin/ └── my-plugin/

514│ └── plugin.json ├── .claude-plugin/

515└── commands/ │ └── plugin.json

516 └── commands/

517```

518 

519Claude Code não procura mais profundamente do que uma pasta, então um plugin aninhado mais abaixo falha ao instalar. Claude Code recusa arquivos maiores que 256 MiB.

520 

521Para fixar o arquivo exato, adicione um campo `sha256` com o resumo do arquivo:

522 

523```json theme={null}

524{

525 "name": "my-plugin",

526 "source": {

527 "source": "archive",

528 "url": "https://artifacts.example.com/claude-plugins/my-plugin-2.1.0.zip",

529 "sha256": "6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1"

530 }

531}

532```

533 

534Se o arquivo baixado não corresponder ao pino, Claude Code recusa a instalação e relata [`Plugin archive integrity check failed`](/docs/pt/errors#plugin-archive-integrity-check-failed).

535 

536As fontes de arquivo aceitam estes campos:

537 

538| Campo | Tipo | Descrição |

539| :------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

540| `url` | string | Obrigatório. URL HTTPS do arquivo zip. Claude Code rejeita URLs `http://`, junto com hosts de loopback, link-local e cloud-metadata. Cada salto de redirecionamento deve satisfazer as mesmas regras, ou Claude Code recusa o download |

541| `sha256` | string | Opcional. Resumo SHA-256 do arquivo como 64 caracteres hexadecimais, maiúsculos ou minúsculos. Claude Code verifica cada download contra ele e recusa a instalação em caso de incompatibilidade |

542 

543O resumo `sha256` também serve como a versão do plugin quando nem `plugin.json` nem a entrada de marketplace declara uma. Veja [Gerenciamento de versão](/docs/pt/plugins-reference#version-management). Se você declarar uma `version`, essa string de versão é o sinal de atualização, então após alterar o zip e seu resumo, aumente a versão também, ou os usuários mantêm a cópia em cache.

544 

545<h4 id="authenticate-archive-downloads">

546 Autenticar downloads de arquivo

547</h4>

548 

549Para autenticar um download de arquivo, como um download de um registro privado, defina os cabeçalhos HTTP que Claude Code envia com ele. Defina `headers` na fonte `url` de onde você registrou o marketplace, como uma entrada [`extraKnownMarketplaces`](/docs/pt/settings-reference#extraknownmarketplaces). No Claude Code v2.1.238 ou posterior, você pode defini-lo na entrada do plugin em vez disso, ao lado de `source`.

550 

551Se o valor que você colocaria em `headers` for de curta duração, como um token que seu registro cria sob demanda, defina um comando `headersHelper` no mesmo lugar em vez disso. Claude Code executa o comando e envia o objeto JSON que ele imprime como os cabeçalhos desse lugar. Requer Claude Code v2.1.238 ou posterior.

552 

553O lugar que você escolhe decide quais downloads recebem os cabeçalhos e quando Claude Code executa o comando:

554 

555| Lugar | Downloads que recebem os cabeçalhos | Quando Claude Code executa um `headersHelper` definido lá |

556| :------------------------- | :----------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

557| Fonte `url` do marketplace | Downloads de arquivo na origem da URL do marketplace, significando o mesmo esquema, host e porta | Antes de cada busca do `marketplace.json` do marketplace e antes de cada download de arquivo nessa origem. Claude Code reutiliza a saída de uma execução por até 60 segundos |

558| Entrada de plugin | Apenas o download dessa entrada | Apenas quando um usuário instala ou atualiza esse plugin sozinho e [aceita o comando](#how-users-accept-a-headershelper-command) |

559 

560Onde ambos os lugares definem um cabeçalho do mesmo nome, Claude Code envia o valor da entrada. Dentro de um lugar, um cabeçalho que o comando imprime substitui um cabeçalho do mesmo nome listado em `headers`.

561 

562<h5 id="add-a-headershelper-to-a-plugin-entry">

563 Adicionar um headersHelper a uma entrada de plugin

564</h5>

565 

566Esta entrada define `headersHelper` ao lado de `source`. Ela também define `"strict": false`, que Claude Code requer de uma entrada `marketplace.json` que define `headersHelper`. Com [`"strict": false`](#strict-mode), a entrada de marketplace é a definição completa do plugin, então um usuário pode revisar o que o plugin contém antes de aceitar o comando:

567 

568```json theme={null}

569{

570 "name": "my-plugin",

571 "description": "Formatting commands for internal services",

572 "strict": false,

573 "commands": "./commands",

574 "source": {

575 "source": "archive",

576 "url": "https://registry.example.com/plugins/my-plugin-2.1.0.zip"

577 },

578 "headersHelper": "/opt/bin/mint-registry-token.sh"

579}

580```

581 

582Para verificar a entrada, execute `claude plugin install my-plugin@your-marketplace`. Claude Code mostra o comando e a URL do arquivo, e baixa o zip após você aceitar.

583 

584Antes de v2.1.238, Claude Code baixava um arquivo de entrada sem seus `headers` ou `headersHelper`, então uma instalação que dependia deles falhava com `HTTP 401 while downloading plugin archive from`, seguido pela URL, com o código de status do registro no lugar de 401.

585 

586<h4 id="write-the-headershelper-command">

587 Escrever o comando headersHelper

588</h4>

589 

590Se você definir `headersHelper` em uma fonte `url` de um marketplace ou em uma entrada de plugin, escreva o comando para atender a estes requisitos:

591 

592* **Texto do comando**: no máximo 500 caracteres de ASCII imprimível, sem execução de quatro ou mais espaços.

593* **Saída**: imprima um objeto JSON de nomes de cabeçalho e valores de string em stdout, depois saia com 0 dentro de 10 segundos.

594* **Shell e diretório de trabalho**: Claude Code executa o comando através de `sh`, ou `cmd.exe` no Windows, a partir do diretório de configuração, `~/.claude` ou [`CLAUDE_CONFIG_DIR`](/docs/pt/env-vars#variables). Dê um caminho absoluto ou um comando em `PATH`, porque um caminho relativo se resolve contra esse diretório, não o projeto do usuário.

595* **Variáveis que Claude Code remove**: do ambiente de um comando definido em uma entrada `marketplace.json` ou em um `.claude/settings.json` ou `.claude/settings.local.json` de um projeto, Claude Code remove cada variável cujo nome contém uma palavra como `TOKEN`, `SECRET`, `KEY` ou `AUTH`, incluindo `ANTHROPIC_API_KEY`. Claude Code não aplica essa remoção a um comando definido em configurações de usuário, um arquivo `--settings` ou configurações gerenciadas.

596* **Variáveis que Claude Code define**: `CLAUDE_CODE_MARKETPLACE_URL` e `CLAUDE_CODE_MARKETPLACE_NAME` para um comando de fonte `url`, e `CLAUDE_CODE_PLUGIN_NAME` e `CLAUDE_CODE_PLUGIN_ARCHIVE_URL` para um comando de entrada. `CLAUDE_CODE_MARKETPLACE_NAME` não está definido na primeira busca após um usuário adicionar um marketplace por URL, porque essa busca é o que fornece o nome.

597 

598Um comando que cria um token bearer imprime um objeto como este:

599 

600```json theme={null}

601{"Authorization": "Bearer eyJhbGciOiJSUzI1NiJ9"}

602```

603 

604<h4 id="when-claude-code-skips-a-headershelper-command-or-drops-its-output">

605 Quando Claude Code pula um comando headersHelper ou descarta sua saída

606</h4>

607 

608Claude Code não executa um comando `headersHelper`, ou descarta cabeçalhos que vieram de `headers` ou da saída do comando, nestas situações:

609 

610* **Comando falha**: se o comando sair com código não-zero, executar por mais de 10 segundos ou imprimir qualquer coisa que não seja um objeto JSON de valores de string, Claude Code não faz a busca ou download para o qual executou o comando.

611* **URL do marketplace não começa com `https://`**: Claude Code não executa o comando da fonte `url` desse e envia apenas os cabeçalhos listados em seu campo `headers`.

612* **Redirecionamento sai da origem**: quando um download é redirecionado para fora da origem da URL do arquivo, Claude Code descarta os valores de `headers` e saída de comando tanto da fonte `url` do marketplace quanto da entrada de plugin.

613* **Entrada define um cabeçalho de roteamento ou identidade**: Claude Code descarta nomes de roteamento de requisição e identidade de cliente como `Host`, `Cookie` e `X-Forwarded-*` de um `headers` de entrada e saída de comando, e mantém nomes de autenticação como `Authorization`. Claude Code filtra cada entrada `marketplace.json` dessa forma, e uma [entrada de configurações inline](/docs/pt/settings-reference#extraknownmarketplaces) dependendo de qual arquivo a declara.

614* **Comando definido em configurações de um diretório `--add-dir`**: Claude Code o ignora, em uma fonte `url` e em uma [entrada de plugin inline](/docs/pt/settings-reference#extraknownmarketplaces) igualmente, e envia apenas os `headers` desse arquivo.

615* **Configurações gerenciadas bloqueiam o comando**: definir [`disableCommandPluginSources`](/docs/pt/settings-reference#disablecommandpluginsources) como `true` bloqueia comandos `headersHelper`, e [`allowManagedHooksOnly`](/docs/pt/settings-reference#allowmanagedhooksonly) também os bloqueia a menos que `disableCommandPluginSources` seja explicitamente `false`. Sob qualquer bloqueio, Claude Code ainda executa o comando para um marketplace que as próprias configurações gerenciadas declaram.

616 

617<h4 id="how-users-accept-a-headershelper-command">

618 Como usuários aceitam um comando headersHelper

619</h4>

620 

621Um usuário aceita o comando de uma entrada de plugin cada vez que instala ou atualiza esse plugin sozinho, a partir da própria visualização do plugin em `/plugin` ou com `claude plugin install` ou `claude plugin update`. Claude Code mostra o comando e a URL do arquivo, e executa o comando apenas após o usuário aceitar.

622 

623Em um shell não-interativo, passe [`--yes`](/docs/pt/plugins-reference#plugin-install) para aceitar o comando. Para aceitar apenas o comando que uma execução anterior com `--json` exibiu, passe [`--accept-command`](/docs/pt/plugins-reference#plugin-install) com o `sha256` que a execução relatou.

624 

625Claude Code executa apenas o comando que mostrou, para a URL do arquivo que mostrou. Se o comando ou URL do arquivo da entrada mudou entre, Claude Code recusa a instalação ou atualização. Uma mudança apenas na string de consulta não conta.

626 

627<h5 id="installs-and-updates-that-refuse-the-command-instead-of-asking">

628 Instalações e atualizações que recusam o comando em vez de perguntar

629</h5>

630 

631Em qualquer operação que não seja uma instalação ou atualização de um único plugin, Claude Code não executa o comando de uma entrada nem baixa seu arquivo, então o plugin permanece em sua versão instalada ou permanece desinstalado. O que o usuário vê depende da operação:

632 

633* **Instalando vários plugins de uma vez, de uma sugestão de plugin ou como dependência de outro plugin**: Claude Code recusa o plugin que tem o comando e aponta o usuário para a própria visualização desse plugin em `/plugin`. Os outros plugins em uma instalação em massa ainda instalam. Um plugin que depende do plugin recusado falha ao instalar até o usuário instalar o plugin recusado sozinho.

634* **Atualização automática em segundo plano, ou início de sessão para um plugin cujo arquivo nunca foi baixado**: Claude Code lista o plugin na aba Erros de `/plugin` para que o usuário saiba instalá-lo ou atualizá-lo manualmente. Uma atualização automática que encontra a entrada ainda anuncia a versão instalada lista nada.

635 

636<h5 id="when-a-marketplace-url-source’s-command-runs">

637 Quando o comando de uma fonte `url` de marketplace é executado

638</h5>

639 

640Um `headersHelper` de fonte `url` de marketplace é declarado em um arquivo de configurações, como uma entrada [`extraKnownMarketplaces`](/docs/pt/settings-reference#extraknownmarketplaces), em vez de no catálogo que o marketplace publica, então Claude Code não pede ao usuário para aceitá-lo em cada instalação ou atualização. O arquivo de configurações que o declara decide quando Claude Code o executa:

641 

642| Arquivo de configurações | Quando Claude Code executa o comando |

643| :------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

644| Configurações de usuário, um arquivo `--settings` ou um arquivo de configurações gerenciadas na máquina | Sem perguntar, incluindo durante uma atualização de marketplace em segundo plano |

645| Um `.claude/settings.json` ou `.claude/settings.local.json` de um projeto | Apenas após o usuário aceitar o [diálogo de confiança de workspace](/docs/pt/permissions#what-runs-before-you-trust-a-folder) para essa pasta em si. Uma sessão `-p` ou SDK não conta como aceitá-lo, e nem a confiança concedida a uma pasta pai |

646| Configurações gerenciadas pelo servidor | Apenas após o usuário aprovar as configurações entregues no [diálogo de aprovação de segurança](/docs/pt/server-managed-settings#security-approval-dialogs) |

647 

648Em uma sessão `-p` ou SDK, Claude Code não pode mostrar o diálogo de aprovação de segurança. Ele aplica as outras configurações entregues, mas a busca de marketplace e qualquer download de arquivo que precise do comando falha até um usuário ter aprovado em uma sessão interativa.

649 

650Para uma [entrada de plugin inline](/docs/pt/settings-reference#extraknownmarketplaces) em um desses arquivos, Claude Code requer a mesma confiança de pasta ou aprovação de configurações que para um comando de nível de marketplace nesse arquivo, e o usuário também aceita o comando da entrada em cada instalação ou atualização.

651 

652<h3 id="command-sources">

653 Fontes de comando

654</h3>

655 

656Use `command` quando uma ferramenta instalada localmente produz o diretório de plugin, como um IDE que renderiza seu plugin para a cadeia de ferramentas atualmente selecionada. Claude Code executa o comando quando o usuário instala o plugin e o re-executa em segundo plano uma vez por sessão, então seus usuários captam a saída alterada da ferramenta sem reinstalar. Requer Claude Code v2.1.229 ou posterior. Na v2.1.120 até v2.1.228, a instalação do plugin falha com `This plugin uses a source type your Claude Code version does not support. Update Claude Code and try again.`, e em versões mais antigas o marketplace inteiro falha ao carregar.

657 

658Esta entrada instala o plugin de qualquer diretório que a ferramenta imprime:

659 

660```json theme={null}

661{

662 "name": "my-plugin",

663 "source": {

664 "source": "command",

665 "command": "my-tool claude-plugin-path"

666 }

667}

668```

669 

670Claude Code executa o comando através do shell da plataforma, `sh` em macOS e Linux ou `cmd.exe` no Windows, a partir do diretório inicial do usuário. O comando deve imprimir exatamente uma linha em stdout e sair com código 0. Essa linha é o caminho absoluto de um diretório que contém o plugin completo no momento em que o comando sai, e o caminho pode mudar entre execuções.

671 

672Claude Code para um comando que executa mais tempo que `timeout` segundos, e a instalação ou atualização falha. Claude Code também recusa o caminho impresso nestas situações, e a instalação ou atualização falha da mesma forma:

673 

674* O diretório não tem conteúdo de plugin em seu nível superior, como um diretório `.claude-plugin/` ou um diretório `skills/`, `commands/`, `agents/` ou `hooks/`

675* O diretório é aquele em que Claude Code foi iniciado, ou um de seus pais

676* No Windows, o caminho é um caminho UNC

677 

678As fontes de comando aceitam estes campos:

679 

680| Campo | Tipo | Descrição |

681| :-------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

682| `command` | string | Obrigatório. Comando shell que imprime o caminho absoluto do diretório de plugin como uma única linha em stdout e sai com 0. Deve ser ASCII imprimível, no máximo 500 caracteres, sem execuções de quatro ou mais espaços, para que os usuários possam revisar o comando inteiro que são solicitados a aceitar |

683| `timeout` | number | Opcional. Número inteiro de segundos para esperar pelo comando antes de desistir (padrão: 60, máximo: 600) |

684| `mode` | string | Opcional. `"copy"` (padrão) copia o diretório impresso para o cache de plugin. `"link"` usa o diretório impresso no lugar. Veja [Modo de cópia e modo de link](#copy-mode-and-link-mode) |

685 

686<h4 id="copy-mode-and-link-mode">

687 Modo de cópia e modo de link

688</h4>

689 

690Com o padrão `"mode": "copy"`, Claude Code copia o diretório impresso para o cache de plugin versionado e deriva a [versão do plugin](/docs/pt/plugins-reference#version-management) de um hash do conteúdo do diretório. Sua ferramenta pode deletar ou reescrever o diretório após o comando sair, e uma re-execução que produz conteúdo idêntico conta como atualizado. Claude Code recusa instalar um diretório maior que 256 MiB ou contendo mais de 20.000 entradas.

691 

692Defina `"mode": "link"` para diretórios de plugin grandes que não devem ser copiados, como uma exportação de SDK renderizada. Claude Code preenche a entrada de cache do plugin com um link para cada entrada de nível superior do diretório impresso e usa os arquivos no lugar, então nada é copiado, conteúdos de arquivo não são hash, e os limites de tamanho não se aplicam. A instalação falha se uma entrada de nível superior é um symlink que aponta para fora do diretório impresso. Claude Code também pula a [instalação de dependência de pacote Node.js](/docs/pt/plugins-reference#node-js-package-dependencies) para um plugin em modo link, então imprima um diretório que já contém qualquer `node_modules` que o plugin precisa.

693 

694Mantenha o diretório impresso no lugar enquanto o plugin permanecer instalado, porque Claude Code carrega o plugin através desses links em cada inicialização. Claude Code deriva a [versão do plugin](/docs/pt/plugins-reference#version-management) do caminho real do diretório impresso e suas entradas de nível superior, não dos arquivos dentro, então imprima um caminho diferente para sinalizar novo conteúdo. Em uma sessão iniciada no diretório impresso ou em qualquer lugar abaixo dele, Claude Code não carrega o plugin.

695 

696Claude Code não suporta modo link no Windows e recusa instalar um plugin em modo link lá. Declare `"mode": "copy"` em vez disso.

697 

698<h4 id="how-users-accept-the-command">

699 Como usuários aceitam o comando

700</h4>

701 

702Claude Code executa seu comando na máquina do usuário, então vincula cada execução à aceitação explícita do usuário:

703 

704* Quando os usuários instalam o plugin a partir de sua tela de detalhes em `/plugin`, ou instalam ou atualizam com `claude plugin install` ou `claude plugin update` em um terminal interativo, Claude Code mostra a eles a string de comando exato primeiro e registra o comando aceito para essa instalação. Um `claude plugin update` que pode prosseguir na aceitação registrada do mesmo comando mostra nada.

705* Em um shell não-interativo, como um script de provisionamento, passe `--yes` para `claude plugin install` ou `claude plugin update` para aceitar o comando que imprime. Para aceitar apenas o comando que uma execução anterior com `--json` exibiu, passe [`--accept-command`](/docs/pt/plugins-reference#plugin-install) com o `sha256` que a execução relatou.

706* Cada outro caminho executa apenas o comando que o usuário já aceitou. Isso inclui atualizações iniciadas de `/plugin` e as execuções em segundo plano descritas em [Quando Claude Code re-executa o comando](#when-claude-code-re-runs-the-command). Quando nenhum foi aceito, Claude Code recusa executar o comando e diz ao usuário como revisar. Claude Code nunca instala um plugin com fonte de comando como dependência de outro plugin, então os usuários o instalam sozinhos primeiro.

707* Se você alterar o `command` da entrada, ou alternar seu `mode`, os usuários mantêm a versão que já têm e Claude Code para de re-executar o comando. Em sessões interativas, a aba Erros de `/plugin` mostra o novo comando até o usuário revisar e aceitar executando `claude plugin update <plugin>@<marketplace>`.

708 

709Administradores podem bloquear fontes de comando em toda uma organização com a configuração gerenciada [`disableCommandPluginSources`](/docs/pt/settings-reference#disablecommandpluginsources). Se uma organização definir [`allowManagedHooksOnly`](/docs/pt/settings-reference#allowmanagedhooksonly), Claude Code bloqueia fontes de comando por padrão.

710 

711<h4 id="when-claude-code-re-runs-the-command">

712 Quando Claude Code re-executa o comando

713</h4>

714 

715O diretório impresso reflete o estado da ferramenta no momento em que o comando foi executado, então Claude Code executa o comando novamente nestes momentos:

716 

717* Cada vez que o usuário instala ou atualiza o plugin

718* Uma vez por sessão para cada plugin com fonte de comando habilitado, em segundo plano, pouco após a sessão iniciar. Esta execução não passa pela atualização automática de marketplace, então não depende da [configuração de atualização automática](/docs/pt/discover-plugins#configure-auto-updates) do marketplace

719* Na inicialização ou em `/reload-plugins`, quando a versão instalada de um plugin habilitado está faltando do cache de plugin

720 

721Claude Code pula as duas execuções em segundo plano quando o usuário define [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/pt/env-vars). Instalações e atualizações explícitas ainda executam o comando com essa variável definida.

722 

723Quando a saída hash do comando mudou, Claude Code instala o resultado como uma nova versão e o recarrega na sessão interativa em execução, alternando [os mesmos componentes que `/reload-plugins` alterna](/docs/pt/plugins-reference#environment-variables). O usuário vê uma notificação de que o plugin foi recarregado. Se recarregar no lugar invalidaria o cache de prompt da sessão, Claude Code em vez disso solicita ao usuário executar `/reload-plugins`, que [avisa sobre o custo do cache e se aplica quando re-executado com `--force`](/docs/pt/prompt-caching#enabling-or-disabling-a-plugin).

724 

725<h3 id="advanced-plugin-entries">

726 Entradas de plugin avançadas

727</h3>

728 

729Este exemplo mostra uma entrada de plugin usando muitos dos campos opcionais, incluindo caminhos personalizados para commands, agents, hooks e MCP servers:

730 

731```json theme={null}

732{

733 "name": "enterprise-tools",

734 "source": {

735 "source": "github",

736 "repo": "company/enterprise-plugin"

737 },

738 "description": "Ferramentas de automação de fluxo de trabalho empresarial",

739 "version": "2.1.0",

740 "author": {

741 "name": "Enterprise Team",

742 "email": "enterprise@example.com"

743 },

744 "homepage": "https://docs.example.com/plugins/enterprise-tools",

745 "repository": "https://github.com/company/enterprise-plugin",

746 "license": "MIT",

747 "keywords": ["enterprise", "workflow", "automation"],

748 "category": "productivity",

749 "commands": [

750 "./commands/core/",

751 "./commands/enterprise/",

752 "./commands/experimental/preview.md"

753 ],

754 "agents": ["./agents/security-reviewer.md", "./agents/compliance-checker.md"],

755 "hooks": {

756 "PostToolUse": [

757 {

758 "matcher": "Write|Edit",

759 "hooks": [

760 {

761 "type": "command",

762 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/validate.sh"

763 }

764 ]

765 }

766 ]

767 },

768 "mcpServers": {

769 "enterprise-db": {

770 "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",

771 "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"]

772 }

773 },

774 "strict": false

775}

776```

777 

778Coisas importantes a notar:

779 

780* **`commands` e `agents`**: você pode especificar múltiplos diretórios ou arquivos individuais. Os caminhos são relativos à raiz do plugin e devem permanecer dentro dela.

781 * Claude Code rejeita um caminho que se resolve fora do diretório de plugin, como `./../shared.md`, com um erro [`path escapes plugin directory`](/docs/pt/errors#path-escapes-plugin-directory), e ainda carrega o plugin sem esse componente

782* **`${CLAUDE_PLUGIN_ROOT}`**: use esta variável em comandos de hook e configurações de MCP server para referenciar arquivos dentro do diretório de instalação do plugin.

783 * Veja a [tabela de substituição](/docs/pt/plugins-reference#environment-variables) para quais campos de configuração a substituem por tipo de servidor

784 * Para dependências ou estado que devem sobreviver a atualizações de plugin, use [`${CLAUDE_PLUGIN_DATA}`](/docs/pt/plugins-reference#persistent-data-directory) em vez disso

785* **`strict: false`**: como isso está definido como false, o plugin não precisa de seu próprio `plugin.json`. A entrada de marketplace define tudo. Veja [Strict mode](#strict-mode) abaixo.

786 

787Por padrão, as skills de um plugin são carregadas do diretório `skills/` sob sua `source`. Os caminhos listados no campo `skills` adicionam a essa varredura:

788 

789```json theme={null}

790"skills": ["./skills/", "./extra-skills/"]

791```

792 

793Quando várias entradas de plugin compartilham uma pasta `skills/` na raiz do marketplace (`source: "./"`), liste subdiretórios específicos em vez disso para que cada entrada carregue apenas suas próprias skills:

794 

795```json theme={null}

796"source": "./",

797"skills": ["./skills/code-review", "./skills/docs"]

798```

799 

800Com uma `source` de raiz de marketplace, os caminhos listados são o conjunto completo para essa entrada, e outros diretórios na pasta `skills/` compartilhada não são carregados. Listar `./skills/` em si, ou a raiz do plugin, mantém a varredura completa. Se nenhum dos caminhos listados existir, a varredura padrão é executada em vez disso.

801 

802<h3 id="strict-mode">

803 Strict mode

804</h3>

805 

806O campo `strict` controla se `plugin.json` é a autoridade para definições de componentes (skills, agents, hooks, MCP servers, output styles).

807 

808| Valor | Comportamento |

809| :-------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------- |

810| `true` (padrão) | `plugin.json` é a autoridade. A entrada de marketplace pode complementá-lo com componentes adicionais, e ambas as fontes são mescladas. |

811| `false` | A entrada de marketplace é a definição completa. Se o plugin também tem um `plugin.json` que declara componentes, isso é um conflito e o plugin falha ao carregar. |

812 

813**Quando usar cada modo:**

814 

815* **`strict: true`**: o plugin tem seu próprio `plugin.json` e gerencia seus próprios componentes. A entrada de marketplace pode adicionar skills ou hooks extras no topo. Este é o padrão e funciona para a maioria dos plugins.

816* **`strict: false`**: o operador do marketplace quer controle total. O repositório do plugin fornece arquivos brutos, e a entrada de marketplace define quais desses arquivos são expostos como skills, agents, hooks, etc. Útil quando o marketplace reestrutura ou curada os componentes de um plugin de forma diferente do que o autor do plugin pretendia.

817 

818<h2 id="host-and-distribute-marketplaces">

819 Hospedar e distribuir marketplaces

820</h2>

821 

822Quando os usuários adicionam um marketplace hospedado em um repositório git, ou instalam um plugin baseado em git que ele lista, Claude Code clona esse repositório de marketplace ou plugin na máquina deles. O clone nunca baixa conteúdo de [Git LFS](https://git-lfs.com), então arquivos rastreados por LFS chegam como arquivos de ponteiro. Mantenha os arquivos que seus plugins precisam fora do LFS.

823 

824<h3 id="host-on-github-recommended">

825 Hospedar no GitHub (recomendado)

826</h3>

827 

828GitHub é a forma recomendada para hospedar e distribuir um marketplace:

829 

8301. **Criar um repositório**: configure um novo repositório para seu marketplace

8312. **Adicionar arquivo de marketplace**: crie `.claude-plugin/marketplace.json` com suas definições de plugin

8323. **Compartilhar com equipes**: os usuários adicionam seu marketplace com `/plugin marketplace add owner/repo`

833 

834**Benefícios**: controle de versão integrado, rastreamento de problemas e recursos de colaboração em equipe.

835 

836<h3 id="host-on-other-git-services">

837 Hospedar em outros serviços git

838</h3>

839 

840Qualquer serviço de hospedagem git funciona, como GitLab, Bitbucket e servidores auto-hospedados. Os usuários adicionam com a URL completa do repositório:

841 

842```shell theme={null}

843/plugin marketplace add https://gitlab.com/company/plugins.git

844```

845 

846<h3 id="private-repositories">

847 Repositórios privados

848</h3>

849 

850Claude Code suporta instalar plugins de repositórios privados. Se você distribuir seu marketplace através de [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins) em vez disso, suas credenciais git não estão envolvidas: a sincronização da organização lê o repositório de marketplace através da conexão da sua organização no GitHub ou GitLab em claude.ai. Veja [Distribuir através de configurações de organização](#distribute-through-organization-settings) para quais fontes de plugin podem ser privadas.

851 

852<h4 id="commands-you-run">

853 Comandos que você executa

854</h4>

855 

856Quando você executa `/plugin marketplace add`, `/plugin install`, `/plugin update` ou `/plugin marketplace update`, Claude Code usa seus ajudantes de credencial git existentes, então acesso HTTPS via `gh auth login`, Keychain do macOS ou `git-credential-store` funciona da mesma forma que em seu terminal. Acesso SSH funciona desde que o host já esteja em seu arquivo `known_hosts` e a chave esteja carregada em `ssh-agent`, já que Claude Code suprime prompts SSH interativos para a impressão digital do host e passphrase da chave. O atalho `owner/repo` do GitHub clona por SSH por padrão; defina [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/pt/env-vars#variables) para cloná-los via HTTPS em vez disso.

857 

858<h4 id="background-auto-updates">

859 Atualizações automáticas em segundo plano

860</h4>

861 

862A verificação de atualização em segundo plano verifica o remoto do marketplace para novos commits com seus ajudantes de credencial git configurados, da mesma forma que os comandos que você executa. Para remotos SSH, uma chave carregada em `ssh-agent` autentica a verificação. Claude Code executa a verificação de forma não-interativa: desativa prompts de terminal do git e programas askpass, e diz aos ajudantes de credencial para não solicitar. Se a verificação pode autenticar em um repositório privado via HTTPS depende do seu ajudante:

863 

864* Um ajudante que pode fornecer uma credencial armazenada sem solicitar autentica a verificação. Git Credential Manager, o ajudante Keychain do macOS e `git-credential-store` funcionam dessa forma uma vez que mantêm uma credencial para o host.

865* Um ajudante que precisa solicitá-lo não consegue responder em segundo plano. A atualização falha silenciosamente e o checkout existente permanece no lugar, então seus plugins continuam funcionando a partir do último estado sincronizado. Execute `/plugin marketplace update <name>` para atualizar o marketplace com suas credenciais.

866 

867Quando a verificação encontra o checkout atualizado, Claude Code o deixa como está. Quando a verificação encontra novos commits, ou falha porque não consegue alcançar ou autenticar no remoto, Claude Code clona o marketplace novamente e troca o novo clone. Se esse clone falhar, o checkout existente permanece no lugar. O re-clone pode [expirar em repositórios grandes](#git-operations-time-out).

868 

869Duas configurações fazem marketplaces privados se comportarem de forma previsível:

870 

871* Defina `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` para manter o checkout existente sem tentar o re-clone quando a verificação em segundo plano não consegue alcançar ou autenticar no remoto. Seus plugins continuam funcionando a partir do último estado sincronizado, e atualizações manuais com `/plugin marketplace update` ainda autenticam com suas credenciais.

872* Configure um ajudante de credencial git, por exemplo com `gh auth setup-git` para GitHub, para que a verificação em segundo plano e o re-clone possam autenticar sem solicitar.

873 

874Definir um token de provedor como `GITHUB_TOKEN` em seu ambiente não habilita autenticação em segundo plano por si só. Tokens têm efeito apenas através de um ajudante de credencial configurado, por exemplo o ajudante CLI `gh`, que lê `GH_TOKEN` e `GITHUB_TOKEN`.

875 

876<Note>

877 Em ambientes CI/CD, configure um ajudante de credencial git antes de instalar plugins de repositórios privados. No GitHub Actions, exporte um token com acesso de leitura ao repositório de marketplace como `GH_TOKEN`, depois execute `gh auth setup-git`. O token de workflow padrão pode apenas acessar o repositório do próprio workflow, então um marketplace privado em outro repositório precisa de um token de acesso pessoal ou token de app.

878</Note>

879 

880<h3 id="distribute-through-organization-settings">

881 Distribuir através de configurações de organização

882</h3>

883 

884Se você distribuir plugins através de [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins) em um plano Team ou Enterprise, estas regras de fonte se aplicam:

885 

886* No github.com e gitlab.com, o repositório de marketplace deve ser privado ou interno. A sincronização da organização lê o repositório através da conexão que corresponde ao seu host:

887 * **github.com**: o Claude GitHub App

888 * **Seu host GitHub Enterprise Server**: o [GitHub Enterprise App](/docs/pt/github-enterprise-server#admin-setup) da sua organização

889 * **gitlab.com ou sua instância GitLab auto-gerenciada**: o token de acesso na [configuração GitLab](#sync-a-gitlab-hosted-marketplace) da sua organização para esse host

890* Cada fonte de plugin deve ser do tipo `github`, `url` ou `git-subdir`, ou um [caminho relativo](#relative-paths) que comece com `./`. Se você listar um plugin por nome simples sob `metadata.pluginRoot`, a sincronização da organização o rejeita como uma fonte não suportada, então escreva o caminho, como `./plugins/deploy-tools`.

891* Uma fonte de plugin pode ser privada em três casos:

892 * Uma fonte github.com que compartilha o proprietário do repositório de marketplace

893 * Uma fonte no host GitHub Enterprise da sua organização com o GHE App instalado no repositório

894 * Uma fonte `url` ou `git-subdir` no mesmo host GitLab que o repositório de marketplace. No gitlab.com, a fonte também deve estar sob o mesmo namespace de grupo de nível superior ou usuário que o repositório de marketplace.

895* Qualquer outra fonte de plugin deve ser um repositório público no github.com, gitlab.com ou bitbucket.org, que a sincronização da organização busca sem credenciais. A sincronização da organização rejeita fontes de plugin em hosts que essas regras não cobrem.

896 

897Veja [Manage plugins for your organization](https://support.claude.com/en/articles/13837433) para o fluxo de trabalho do administrador.

898 

899Para incluir plugins privados, coloque as pastas de plugin dentro do repositório de marketplace e as referencie com um [caminho relativo](#relative-paths). A sincronização da organização empacota cada plugin durante a distribuição, então os usuários nunca precisam de acesso a um repositório de fonte separado.

900 

901Por exemplo, esta entrada de plugin `marketplace.json` referencia um plugin que você confirmou em `plugins/deploy-tools` no repositório de marketplace:

902 

903```json theme={null}

904{

905 "name": "deploy-tools",

906 "source": "./plugins/deploy-tools"

907}

908```

909 

910<h4 id="sync-a-gitlab-hosted-marketplace">

911 Sincronizar um marketplace hospedado no GitLab

912</h4>

913 

914Para sincronizar um marketplace do gitlab.com ou de uma instância GitLab auto-gerenciada, um [Owner](/docs/pt/server-managed-settings#access-control) primeiro adiciona uma configuração GitLab para esse host em [**Organization settings > Claude Code**](https://claude.ai/admin-settings/claude-code). As configurações GitLab estão em beta público e se aplicam apenas à sincronização de marketplace de plugin. Adicionar uma não torna repositórios GitLab disponíveis em [Claude Code na web](/docs/pt/claude-code-on-the-web#limitations). Veja [Manage plugins for your organization](https://support.claude.com/en/articles/13837433) para as etapas de configuração.

915 

916Quando você adiciona o marketplace, insira a URL HTTPS do projeto, como `https://gitlab.example.com/platform/claude-plugins`. Projetos em subgrupos aninhados funcionam. A sincronização da organização lê o branch padrão do projeto. Se você ativar **Sync automatically**, apenas pushes para o branch padrão iniciam uma sincronização.

917 

918<h4 id="keep-executables-out-of-the-top-level-bin-directory">

919 Manter executáveis fora do diretório bin de nível superior

920</h4>

921 

922Não inclua um diretório `bin/` de nível superior em nenhum plugin que você distribua através de configurações de organização. claude.ai rejeita um plugin que tenha um, seja o plugin chegue por sincronização de marketplace ou por upload direto:

923 

924* **Sincronização de marketplace**: a sincronização da organização rejeita esse plugin e sincroniza o resto do marketplace. A mensagem de erro começa com `Plugin contains a top-level bin/ directory`.

925* **Upload direto**: se você fizer upload do plugin em [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins) em vez disso, claude.ai rejeita o upload com a mesma mensagem.

926 

927Mantenha executáveis em outro diretório, como `scripts/`, e os referencie como `${CLAUDE_PLUGIN_ROOT}/scripts/<name>` a partir de suas [skills, hooks ou configurações de servidor MCP](/docs/pt/plugins-reference#environment-variables).

928 

929<h3 id="require-marketplaces-for-your-team">

930 Exigir marketplaces para sua equipe

931</h3>

932 

933Você pode configurar seu repositório para que Claude Code adicione seu marketplace para membros da equipe uma vez que eles [confiem na pasta do projeto](/docs/pt/permissions#what-runs-before-you-trust-a-folder), sem nenhum prompt separado. Adicione seu marketplace a `.claude/settings.json`:

934 

935```json theme={null}

936{

937 "extraKnownMarketplaces": {

938 "company-tools": {

939 "source": {

940 "source": "github",

941 "repo": "your-org/claude-plugins"

942 }

943 }

944 }

945}

946```

947 

948Você também pode especificar quais plugins devem ser habilitados por padrão:

949 

950```json theme={null}

951{

952 "enabledPlugins": {

953 "code-formatter@company-tools": true,

954 "deployment-tools@company-tools": true

955 }

956}

957```

958 

959Para opções de configuração completas, veja [Plugin settings](/docs/pt/settings-reference#plugin-settings).

960 

961<Note>

962 Se você usar uma fonte local `directory` ou `file` com um caminho relativo, o caminho é resolvido contra o checkout principal do seu repositório. Quando você executa Claude Code de um git worktree, o caminho ainda aponta para o checkout principal, então todos os worktrees compartilham o mesmo local de marketplace. O estado do marketplace é armazenado uma vez por usuário em `~/.claude/plugins/known_marketplaces.json`, não por projeto.

963</Note>

964 

965<h3 id="pre-populate-plugins-for-containers">

966 Pré-popular plugins para containers

967</h3>

968 

969Para imagens de container e ambientes CI, você pode pré-popular um diretório de plugins no tempo de construção para que Claude Code inicie com marketplaces e plugins já disponíveis, sem clonar nada em tempo de execução. Defina a variável de ambiente `CLAUDE_CODE_PLUGIN_SEED_DIR` para apontar para este diretório.

970 

971Para colocar em camadas múltiplos diretórios seed, separe caminhos com `:` em Unix ou `;` no Windows. Claude Code procura cada diretório em ordem e usa o primeiro seed que contém um determinado marketplace ou cache de plugin.

972 

973O diretório seed espelha a estrutura de `~/.claude/plugins`:

974 

975```

976$CLAUDE_CODE_PLUGIN_SEED_DIR/

977 known_marketplaces.json

978 marketplaces/<name>/...

979 cache/<marketplace>/<plugin>/<version>/...

980```

981 

982Para construir um diretório seed, execute Claude Code uma vez durante a construção da imagem, instale os plugins que você precisa, depois copie o diretório `~/.claude/plugins` resultante em sua imagem e aponte `CLAUDE_CODE_PLUGIN_SEED_DIR` para ele.

983 

984Para pular a etapa de cópia, defina `CLAUDE_CODE_PLUGIN_CACHE_DIR` para seu caminho de seed de destino durante a construção para que os plugins sejam instalados diretamente lá:

985 

986```bash theme={null}

987CLAUDE_CODE_PLUGIN_CACHE_DIR=/opt/claude-seed claude plugin marketplace add your-org/plugins

988CLAUDE_CODE_PLUGIN_CACHE_DIR=/opt/claude-seed claude plugin install my-tool@your-plugins

989```

990 

991Então defina `CLAUDE_CODE_PLUGIN_SEED_DIR=/opt/claude-seed` no ambiente de tempo de execução do seu container para que Claude Code leia do seed na inicialização.

992 

993Na inicialização, Claude Code registra marketplaces encontrados no `known_marketplaces.json` do seed na configuração primária, e usa caches de plugin encontrados sob `cache/` no local sem re-clonar. Isso funciona tanto em modo interativo quanto em modo não-interativo com a flag `-p`.

994 

995Detalhes de comportamento:

996 

997* **Somente leitura**: Claude Code nunca escreve no diretório seed.

998* **Auto-updates desabilitadas**: marketplaces seed não auto-atualizam.

999* **Entradas seed têm precedência**: marketplaces declarados no seed sobrescrevem qualquer entrada correspondente na configuração do usuário em cada inicialização. Para optar por não usar um plugin seed, use `/plugin disable` em vez de remover o marketplace.

1000* **Resolução de caminho**: Claude Code localiza conteúdo de marketplace sondando `$CLAUDE_CODE_PLUGIN_SEED_DIR/marketplaces/<name>/` em tempo de execução, não confiando em caminhos armazenados dentro do JSON do seed. Isso significa que o seed funciona corretamente mesmo quando montado em um caminho diferente de onde foi construído.

1001* **Mutação é bloqueada**: executar `/plugin marketplace remove` ou `/plugin marketplace update` contra um marketplace gerenciado por seed falha com orientação para pedir ao seu administrador para atualizar a imagem seed.

1002* **Compõe com configurações**: se `extraKnownMarketplaces` ou `enabledPlugins` declaram um marketplace que já existe no seed, Claude Code usa a cópia do seed em vez de clonar.

1003 

1004<h3 id="managed-marketplace-restrictions">

1005 Restrições de marketplace gerenciado

1006</h3>

1007 

1008Para organizações que exigem controle rigoroso sobre fontes de plugin, administradores podem restringir quais marketplaces de plugin os usuários podem adicionar usando a configuração [`strictKnownMarketplaces`](/docs/pt/settings-reference#strictknownmarketplaces) em configurações gerenciadas. Para também rejeitar as flags CLI que carregam plugins, agentes e servidores MCP para uma única execução, combine com [`disableSideloadFlags`](/docs/pt/settings-reference#disablesideloadflags). Para criar uma lista de permissões de quais plugins de marketplaces podem aparecer como sugestões de instalação contextual, defina [`pluginSuggestionMarketplaces`](/docs/pt/settings-reference#pluginsuggestionmarketplaces).

1009 

1010`strictKnownMarketplaces` corresponde ao marketplace de onde um plugin vem, não às entradas dentro dele, então os usuários ainda podem instalar um plugin com uma [fonte `command`](#command-sources) de um marketplace permitido. Para bloquear fontes de comando também, defina [`disableCommandPluginSources`](/docs/pt/settings-reference#disablecommandpluginsources).

1011 

1012Quando `strictKnownMarketplaces` é configurado em configurações gerenciadas, o comportamento de restrição depende do valor:

1013 

1014| Valor | Comportamento |

1015| ------------------- | ------------------------------------------------------------------------------------------------------------ |

1016| Indefinido (padrão) | Sem restrições. Os usuários podem adicionar qualquer marketplace |

1017| Array vazio `[]` | Bloqueio completo. Bloqueia todas as fontes de marketplace, incluindo o marketplace oficial da Anthropic |

1018| Lista de fontes | Lista de permissões aplicada. Os usuários podem adicionar apenas marketplaces que correspondem a uma entrada |

1019 

1020<h4 id="common-configurations">

1021 Configurações comuns

1022</h4>

1023 

1024Desabilitar todas as adições de marketplace, incluindo o marketplace oficial da Anthropic:

1025 

1026```json theme={null}

1027{

1028 "strictKnownMarketplaces": []

1029}

1030```

1031 

1032Claude Code baixa os plugins [sincronizados do claude.ai](/docs/pt/plugins-reference#synced-plugins) da sua conta em vez de um marketplace, então esse bloqueio não os cobre. Para parar também, defina [`syncClaudeAiPlugins`](/docs/pt/settings-reference#syncclaudeaiplugins) como `false` em configurações gerenciadas, ou desative Skills para sua organização em claude.ai.

1033 

1034Permitir apenas o marketplace oficial da Anthropic. A correspondência para uma entrada de repositório único é exata, então esta entrada não cobre variantes `ref` ou `path` do mesmo repositório:

1035 

1036```json theme={null}

1037{

1038 "strictKnownMarketplaces": [

1039 {

1040 "source": "github",

1041 "repo": "anthropics/claude-plugins-official"

1042 }

1043 ]

1044}

1045```

1046 

1047Com esta entrada, Claude Code mantém um marketplace oficial já registrado disponível e, em uma máquina nova, registra o marketplace automaticamente na primeira vez que você inicia Claude Code interativamente.

1048 

1049O registro automático não cobre todas as máquinas. Ele mais comumente perde:

1050 

1051* Ambientes não-interativos que executam antes do primeiro lançamento interativo da máquina.

1052* Máquinas onde Claude Code já foi executado interativamente sob uma política que bloqueou o marketplace, como o bloqueio de array vazio. Claude Code registra a tentativa bloqueada e não tenta novamente após a política mudar.

1053 

1054Nessas máquinas, adicione o marketplace a [`extraKnownMarketplaces`](/docs/pt/settings-reference#extraknownmarketplaces) no mesmo `managed-settings.json` para que Claude Code o registre automaticamente, ou execute `claude plugin marketplace add anthropics/claude-plugins-official`.

1055 

1056Permitir apenas marketplaces específicos:

1057 

1058```json theme={null}

1059{

1060 "strictKnownMarketplaces": [

1061 {

1062 "source": "github",

1063 "repo": "acme-corp/approved-plugins"

1064 },

1065 {

1066 "source": "github",

1067 "repo": "acme-corp/security-tools",

1068 "ref": "v2.0"

1069 },

1070 {

1071 "source": "url",

1072 "url": "https://plugins.example.com/marketplace.json"

1073 }

1074 ]

1075}

1076```

1077 

1078Permitir todos os repositórios de marketplace sob uma organização GitHub com uma entrada [owner-wildcard](/docs/pt/settings-reference#owner-wildcards). Owner wildcards requerem Claude Code v2.1.223 ou posterior.

1079 

1080```json theme={null}

1081{

1082 "strictKnownMarketplaces": [

1083 {

1084 "source": "github",

1085 "repo": "acme-corp/*"

1086 }

1087 ]

1088}

1089```

1090 

1091Permitir todos os marketplaces de um servidor git interno usando correspondência de padrão regex no host. Esta é a abordagem recomendada para [GitHub Enterprise Server](/docs/pt/github-enterprise-server#plugin-marketplaces-on-ghes) ou instâncias GitLab auto-hospedadas:

1092 

1093```json theme={null}

1094{

1095 "strictKnownMarketplaces": [

1096 {

1097 "source": "hostPattern",

1098 "hostPattern": "^github\\.example\\.com$"

1099 }

1100 ]

1101}

1102```

1103 

1104Permitir marketplaces baseados em sistema de arquivos de um diretório específico usando correspondência de padrão regex no caminho:

1105 

1106```json theme={null}

1107{

1108 "strictKnownMarketplaces": [

1109 {

1110 "source": "pathPattern",

1111 "pathPattern": "^/opt/approved/"

1112 }

1113 ]

1114}

1115```

1116 

1117Use `".*"` como `pathPattern` para permitir qualquer caminho de sistema de arquivos enquanto ainda controla fontes de rede com `hostPattern`.

1118 

1119<Note>

1120 `strictKnownMarketplaces` restringe o que os usuários podem adicionar, mas não registra marketplaces por conta própria. Para registrar um marketplace permitido para usuários automaticamente, adicione-o a [`extraKnownMarketplaces`](/docs/pt/settings-reference#extraknownmarketplaces) no mesmo `managed-settings.json`.

1121 

1122 O marketplace oficial da Anthropic é o único que Claude Code registra por conta própria, e apenas quando a lista de permissões o permite. O registro automático também perde algumas máquinas, como ambientes não-interativos e máquinas onde uma política anterior o bloqueou. Para cobrir essas máquinas, adicione o marketplace oficial a `extraKnownMarketplaces` também. Para os dois ajustes lado a lado, veja a [referência `strictKnownMarketplaces`](/docs/pt/settings-reference#strictknownmarketplaces).

1123</Note>

1124 

1125<h4 id="how-restrictions-work">

1126 Como as restrições funcionam

1127</h4>

1128 

1129As restrições são verificadas antes de qualquer operação de rede ou sistema de arquivos. A verificação é executada na adição de marketplace e na instalação, atualização, atualização e auto-atualização de plugin. Se um marketplace foi adicionado antes da política ser configurada e sua fonte não corresponder mais à lista de permissões, Claude Code recusa instalar ou atualizar plugins a partir dele. A mesma aplicação se aplica a `blockedMarketplaces`.

1130 

1131Onde as duas listas são aplicadas depende de onde você as define:

1132 

1133* **O console de administração claude.ai**: Claude Code aplica ambas as listas nas sessões que [leem configurações gerenciadas pelo servidor](/docs/pt/managed-settings#where-and-when-a-policy-applies). claude.ai também as verifica quando qualquer pessoa em sua organização adiciona um novo marketplace de um repositório git em claude.ai, ou de **Customize** no aplicativo Claude Desktop fora de sua aba Code. Isso cobre um marketplace que um membro adiciona para sua própria conta e um adicionado para toda a organização em [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins). claude.ai recusa um repositório que a lista de permissões não admite ou que a lista de bloqueio nomeia. Ele não re-verifica um marketplace que foi adicionado em qualquer lugar antes de você definir as listas, e não verifica plugins enviados.

1134* **Um arquivo de configurações gerenciadas, política de nível do SO ou outra fonte gerenciada**: Claude Code aplica ambas as listas onde lê essa fonte. claude.ai não a lê.

1135 

1136Para bloquear todos os repositórios de marketplace sob um proprietário GitHub, use a forma owner-wildcard em uma entrada `blockedMarketplaces`: `{ "source": "github", "repo": "untrusted-org/*" }`. Requer Claude Code v2.1.223 ou posterior. Para as regras de correspondência, que diferem entre a lista de bloqueio e a lista de permissões, veja [Owner wildcards](/docs/pt/settings-reference#owner-wildcards).

1137 

1138Quando um usuário adiciona uma URL de repositório `https://` que Claude Code [clona em vez de buscar](/docs/pt/discover-plugins#add-from-other-git-hosts), como um repositório `github.com` ou `gitlab.com` simples, Claude Code também a verifica contra as entradas `url` em `blockedMarketplaces`. Claude Code bloqueia a adição se uma entrada nomeia a mesma URL. Nessa comparação, Claude Code ignora o sufixo `.git` e qualquer ref que o usuário acrescente após `#`. Requer Claude Code v2.1.232 ou posterior. Antes de v2.1.232, Claude Code correspondia a uma entrada `url` apenas contra uma URL que buscava como um arquivo `marketplace.json` hospedado.

1139 

1140A lista de permissões usa correspondência exata para a maioria dos tipos de fonte, além de entradas `github` com owner-wildcard. Para um marketplace ser permitido, todos os campos especificados devem corresponder:

1141 

1142* Para fontes GitHub: `repo` é obrigatório, nomeando um repositório ou usando a forma owner-wildcard `owner/*` para cobrir todos os repositórios sob esse proprietário. Para como entradas wildcard correspondem, incluindo as regras de caso, veja [Owner wildcards](/docs/pt/settings-reference#owner-wildcards). Para entradas de repositório único, `ref` deve corresponder exatamente ou estar ausente tanto da fonte de marketplace quanto da entrada de lista de permissões, e a mesma regra se aplica a `path`

1143* Para fontes de URL: a URL completa deve corresponder exatamente

1144* Para fontes `hostPattern`: o host do marketplace é correspondido contra o padrão regex

1145* Para fontes `pathPattern`: o caminho do sistema de arquivos do marketplace é correspondido contra o padrão regex

1146 

1147A correspondência exata da lista de permissões trata URLs que diferem apenas por uma barra à direita, um sufixo `.git` ou o esquema `ssh://` e `https://` como valores diferentes. Se o marketplace da sua organização pode ser clonado por mais de uma forma de URL, prefira uma entrada `hostPattern` em vez de uma URL literal para que as formas `https://`, `ssh://` e `user@host:path` todas correspondam.

1148 

1149Um [marketplace hospedado em claude.ai](/docs/pt/discover-plugins#add-from-claude-ai) é correspondido por host: uma entrada `hostPattern` que corresponde a `claude.ai` o governa, em `strictKnownMarketplaces` e em `blockedMarketplaces`. Na lista de permissões, tal entrada não admite uploads pessoais de claude.ai de um membro. Requer Claude Code v2.1.273 ou posterior.

1150 

1151Como `strictKnownMarketplaces` é definido em [configurações gerenciadas](/docs/pt/managed-settings), configurações individuais de usuários e projetos não podem substituir essas restrições.

1152 

1153Para detalhes de configuração completos incluindo todos os tipos de fonte suportados e comparação com `extraKnownMarketplaces`, veja a [referência strictKnownMarketplaces](/docs/pt/settings-reference#strictknownmarketplaces).

1154 

1155<h3 id="version-resolution-and-release-channels">

1156 Resolução de versão e canais de lançamento

1157</h3>

1158 

1159As versões de plugin determinam caminhos de cache e detecção de atualização: se a versão resolvida corresponder ao que um usuário já tem, `/plugin update` e auto-atualização pulam o plugin. Para fontes baseadas em git, se você omitir `version`, Claude Code usa o SHA do commit resolvido da fonte, então os usuários recebem uma atualização sempre que esse commit muda; esta é a configuração mais simples para plugins internos ou em desenvolvimento ativo. Veja [Version management](/docs/pt/plugins-reference#version-management) para a ordem de resolução completa, incluindo fontes `archive`.

1160 

1161<Warning>

1162 Definir `version` fixa o plugin para todos os tipos de fonte exceto [`command`](#command-sources), cuja versão sempre inclui um hash do que o comando produziu. Um plugin [carregado em lugar](/docs/pt/plugins-reference#plugin-caching-and-file-resolution) de um marketplace adicionado como um diretório local também não é fixado. Se você declarar `"version": "1.0.0"` em `plugin.json` e fazer push de novos commits sem alterar essa string, usuários existentes desses tipos de fonte mantêm a cópia em cache, porque Claude Code vê a mesma versão. Aumente o campo em cada lançamento, ou omita-o para usar a versão resolvida.

1163 

1164 Evite definir `version` em ambos `plugin.json` e a entrada de marketplace. O valor `plugin.json` sempre vence silenciosamente, então uma versão de manifesto obsoleta pode mascarar uma versão que você definiu em `marketplace.json`.

1165</Warning>

1166 

1167<h4 id="set-up-release-channels">

1168 Configurar canais de lançamento

1169</h4>

1170 

1171Para suportar canais de lançamento "stable" e "latest" para seus plugins, você pode configurar dois marketplaces que apontam para diferentes refs ou SHAs do mesmo repositório. Você pode então atribuir cada grupo de usuários seu próprio marketplace através de configurações gerenciadas de uma de duas formas:

1172 

1173* Implante [configurações gerenciadas gerenciadas por endpoint](/docs/pt/managed-settings#delivery-mechanisms) separadas, como um arquivo de configurações gerenciadas ou um perfil MDM, para os dispositivos de cada grupo. [Como Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#precedence-within-the-managed-tier) diz se o arquivo por grupo ou perfil se aplica em um dispositivo que também tem uma fonte em toda a organização.

1174* Defina uma [política de gateway de aplicativos Claude](/docs/pt/claude-apps-gateway-config#managed) por grupo. O gateway aplica a primeira política cuja regra de correspondência se encaixa em um usuário, então ordene as políticas para que cada usuário chegue à política do seu grupo. A `extraKnownMarketplaces` de uma política de grupo substitui o mapa da política catch-all em vez de mesclar com ele, então liste todos os marketplaces que o grupo precisa na política do grupo, não apenas seu marketplace de canal.

1175 

1176Configurações gerenciadas pelo servidor do console de administração [se aplicam a todos os usuários em sua organização](/docs/pt/server-managed-settings#current-limitations), então não conseguem carregar uma atribuição por grupo.

1177 

1178<Warning>

1179 Cada canal deve resolver para uma versão diferente. Se você usar versões explícitas, `plugin.json` deve declarar uma `version` diferente em cada ref fixado. Se você omitir `version`, os SHAs de commit distintos já distinguem os canais. Se dois refs resolverem para a mesma string de versão, Claude Code os trata como idênticos e pula a atualização.

1180</Warning>

1181 

1182<h5 id="example">

1183 Exemplo

1184</h5>

1185 

1186```json theme={null}

1187{

1188 "name": "stable-tools",

1189 "plugins": [

1190 {

1191 "name": "code-formatter",

1192 "source": {

1193 "source": "github",

1194 "repo": "acme-corp/code-formatter",

1195 "ref": "stable"

1196 }

1197 }

1198 ]

1199}

1200```

1201 

1202```json theme={null}

1203{

1204 "name": "latest-tools",

1205 "plugins": [

1206 {

1207 "name": "code-formatter",

1208 "source": {

1209 "source": "github",

1210 "repo": "acme-corp/code-formatter",

1211 "ref": "latest"

1212 }

1213 }

1214 ]

1215}

1216```

1217 

1218<h5 id="assign-channels-to-user-groups">

1219 Atribuir canais a grupos de usuários

1220</h5>

1221 

1222Atribua cada marketplace ao seu grupo de usuários através das configurações gerenciadas por endpoint por grupo ou política de gateway descrita em [Configurar canais de lançamento](#set-up-release-channels). Por exemplo, o grupo stable recebe:

1223 

1224```json theme={null}

1225{

1226 "extraKnownMarketplaces": {

1227 "stable-tools": {

1228 "source": {

1229 "source": "github",

1230 "repo": "acme-corp/stable-tools"

1231 }

1232 }

1233 }

1234}

1235```

1236 

1237O grupo early-access recebe `latest-tools` em vez disso:

1238 

1239```json theme={null}

1240{

1241 "extraKnownMarketplaces": {

1242 "latest-tools": {

1243 "source": {

1244 "source": "github",

1245 "repo": "acme-corp/latest-tools"

1246 }

1247 }

1248 }

1249}

1250```

1251 

1252<h4 id="pin-dependency-versions">

1253 Fixar versões de dependência

1254</h4>

1255 

1256Um plugin pode restringir suas dependências a um intervalo semver para que atualizações de uma dependência não quebrem o plugin dependente. Veja [Constrain plugin dependency versions](/docs/pt/plugin-dependencies) para a convenção de git-tag `{plugin-name}--v{version}`, sintaxe de intervalo e como múltiplas restrições na mesma dependência são combinadas.

1257 

1258<h3 id="rename-or-remove-a-plugin">

1259 Renomear ou remover um plugin

1260</h3>

1261 

1262O `name` de um plugin é seu identificador estável. Os usuários o referenciam em `enabledPlugins`, `pluginConfigs` e comandos `/plugin install`, então alterá-lo quebra cada instalação existente. Para alterar o rótulo mostrado na UI sem quebrar instalações, defina [`displayName`](#optional-plugin-fields) e mantenha `name` inalterado.

1263 

1264Se você deve alterar o `name` de um plugin, ou remover um plugin do array `plugins`, adicione uma entrada de nível superior `renames` para que usuários existentes migrem em vez de ver um erro `plugin-not-found`. A migração automática requer Claude Code v2.1.193 ou posterior. Mapeie cada nome anterior para seu nome atual, ou para `null` se o plugin não existir mais. O exemplo a seguir renomeia `formatter` para `code-formatter` e registra que `legacy-linter` foi removido:

1265 

1266```json theme={null}

1267{

1268 "name": "acme-tools",

1269 "owner": { "name": "Acme" },

1270 "plugins": [

1271 { "name": "code-formatter", "source": "./plugins/code-formatter" }

1272 ],

1273 "renames": {

1274 "formatter": "code-formatter",

1275 "legacy-linter": null

1276 }

1277}

1278```

1279 

1280Quando um usuário inicia Claude Code com o nome antigo ainda em suas configurações, Claude Code segue o mapa `renames`:

1281 

1282* Se a entrada aponta para um novo nome, Claude Code carrega o plugin sob seu novo nome e mostra um aviso de uma linha como `Renamed to "code-formatter" in the "acme-tools" marketplace`. Ele então reescreve a chave antiga para a chave nova nos escopos de configurações do usuário, projeto e local para ambos `enabledPlugins` e `pluginConfigs`, para que o aviso apareça uma vez.

1283* Para uma entrada `null`, Claude Code descarta a chave antiga e o aviso relata que o plugin foi removido do marketplace.

1284* Se o plugin renomeado usa uma fonte remota como `github` ou `npm`, Claude Code relata `plugin-cache-miss` após o renome e o usuário deve executar `/plugin install` uma vez para buscá-lo sob o novo nome.

1285 

1286Trate `renames` como histórico apenas para anexação: mantenha entradas antigas no lugar mesmo depois que você espera que cada usuário tenha migrado. Claude Code segue cadeias, então se você depois renomear `code-formatter` para `formatter-pro`, adicione uma segunda entrada em vez de editar a primeira. Um usuário que ainda tem o `formatter` original habilitado então resolve através de ambas as entradas para `formatter-pro`.

1287 

1288Execute `claude plugin validate .` após editar o mapa; ele rejeita qualquer entrada cuja cadeia forma um ciclo ou não termina em `null` ou um nome listado em `plugins`.

1289 

1290<Note>

1291 Configurações gerenciadas e de política são somente leitura para Claude Code, então plugins habilitados lá não podem ser reescritos automaticamente. O plugin renomeado ainda carrega cada sessão, mas o aviso de renome recorre até que um administrador atualize `enabledPlugins` no arquivo de configurações gerenciadas para usar o novo nome. O mesmo se aplica a plugins habilitados através de outras fontes somente leitura como `--add-dir`.

1292</Note>

1293 

1294Versões anteriores de Claude Code ignoram o campo `renames` e relatam `plugin-not-found` para o nome antigo.

1295 

1296<h2 id="validation-and-testing">

1297 Validação e testes

1298</h2>

1299 

1300Teste seu marketplace antes de compartilhar. A validação verifica a estrutura do arquivo; para testar se um plugin muda o que Claude faz em prompts realistas, execute seu conjunto de avaliação com [`claude plugin eval`](/docs/pt/plugin-evals) antes de publicar uma nova versão.

1301 

1302Do seu diretório de marketplace, valide a sintaxe JSON:

1303 

1304```bash theme={null}

1305claude plugin validate .

1306```

1307 

1308Ou de dentro de Claude Code:

1309 

1310```shell theme={null}

1311/plugin validate .

1312```

1313 

1314Adicione o marketplace para testes:

1315 

1316```shell theme={null}

1317/plugin marketplace add ./path/to/marketplace

1318```

1319 

1320Instale um plugin de teste para verificar se tudo funciona:

1321 

1322```shell theme={null}

1323/plugin install test-plugin@marketplace-name

1324```

1325 

1326Para fluxos de trabalho completos de testes de plugin, veja [Testar seus plugins localmente](/docs/pt/plugins#test-your-plugins-locally). Para troubleshooting técnico, veja [Plugins reference](/docs/pt/plugins-reference).

1327 

1328<h2 id="manage-marketplaces-from-the-cli">

1329 Gerenciar marketplaces a partir da CLI

1330</h2>

1331 

1332Claude Code fornece subcomandos `claude plugin marketplace` não-interativos para scripting e automação. Estes são equivalentes aos comandos `/plugin marketplace` disponíveis dentro de uma sessão interativa.

1333 

1334<h3 id="plugin-marketplace-add">

1335 Plugin marketplace add

1336</h3>

1337 

1338Adicione um marketplace de um repositório GitHub, URL git, URL remota ou caminho local.

1339 

1340```bash theme={null}

1341claude plugin marketplace add <source> [options]

1342```

1343 

1344**Argumentos:**

1345 

1346* `<source>`: Atalho GitHub `owner/repo`, URL git, URL remota para um arquivo `marketplace.json` ou caminho de diretório local. Para fixar a um branch ou tag, anexe `@ref` ao atalho GitHub ou `#ref` a uma URL git

1347 

1348Uma URL deve incluir seu esquema. A partir de Claude Code v2.1.196, um host digitado sem um, como `gitlab.example.com/team/plugins`, é rejeitado como um atalho `owner/repo` inválido e o erro informa para adicionar `https://` ou usar `./` para um caminho local. Versões anteriores o interpretavam como um caminho de repositório GitHub e falham no momento do clone com um erro de não encontrado do GitHub.

1349 

1350**Opções:**

1351 

1352| Opção | Descrição | Padrão |

1353| :-------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |

1354| `--scope <scope>` | Onde declarar o marketplace: `user`, `project` ou `local`. Veja [Plugin installation scopes](/docs/pt/plugins-reference#plugin-installation-scopes) | `user` |

1355| `--sparse <paths...>` | Limitar checkout a diretórios específicos via git sparse-checkout. Útil para monorepos | |

1356| `--claudeai` | Leia o argumento como o nome de um [marketplace hospedado em claude.ai](/docs/pt/discover-plugins#add-from-claude-ai) em vez de uma fonte. Requer Claude Code v2.1.273 ou posterior | |

1357 

1358Adicione um marketplace do GitHub usando atalho `owner/repo`:

1359 

1360```bash theme={null}

1361claude plugin marketplace add acme-corp/claude-plugins

1362```

1363 

1364Fixe a um branch ou tag específico com `@ref`:

1365 

1366```bash theme={null}

1367claude plugin marketplace add acme-corp/claude-plugins@v2.0

1368```

1369 

1370Adicione de uma URL git em um host não-GitHub:

1371 

1372```bash theme={null}

1373claude plugin marketplace add https://gitlab.example.com/team/plugins.git

1374```

1375 

1376Adicione de uma URL remota que serve o arquivo `marketplace.json` diretamente:

1377 

1378```bash theme={null}

1379claude plugin marketplace add https://example.com/marketplace.json

1380```

1381 

1382Adicione de um diretório local para testes:

1383 

1384```bash theme={null}

1385claude plugin marketplace add ./my-marketplace

1386```

1387 

1388Declare o marketplace no escopo do projeto para que seja compartilhado com sua equipe via `.claude/settings.json`:

1389 

1390```bash theme={null}

1391claude plugin marketplace add acme-corp/claude-plugins --scope project

1392```

1393 

1394Para um monorepo, limite o checkout aos diretórios que contêm conteúdo de plugin:

1395 

1396```bash theme={null}

1397claude plugin marketplace add acme-corp/monorepo --sparse .claude-plugin plugins

1398```

1399 

1400Adicione um [marketplace hospedado em claude.ai](/docs/pt/discover-plugins#add-from-claude-ai) pelo nome impresso na seção `From claude.ai:` de `claude plugin marketplace list`:

1401 

1402```bash theme={null}

1403claude plugin marketplace add --claudeai claudeai-organization-library

1404```

1405 

1406Com `--claudeai`, o comando recusa `--scope` e `--sparse`. O marketplace é hospedado para sua conta, não declarado em um arquivo de configurações, portanto você não pode compartilhá-lo através do `.claude/settings.json` de um projeto.

1407 

1408<h3 id="plugin-marketplace-list">

1409 Plugin marketplace list

1410</h3>

1411 

1412Liste todos os marketplaces configurados.

1413 

1414```bash theme={null}

1415claude plugin marketplace list [options]

1416```

1417 

1418**Opções:**

1419 

1420| Opção | Descrição |

1421| :------- | :-------------- |

1422| `--json` | Saída como JSON |

1423 

1424Com `--json`, cada entrada inclui `name`, `source`, um campo `installLocation` com o caminho do cache local onde o marketplace é armazenado, e campos específicos da fonte: `repo` para fontes GitHub, `url` para fontes git e URL, e `path` para fontes locais. Fontes GitHub e git também incluem um campo `ref` quando o marketplace foi adicionado com um branch ou tag fixado.

1425 

1426Um [marketplace claude.ai](/docs/pt/discover-plugins#add-from-claude-ai) adicionado não tem um clone local, portanto sua entrada carrega seus identificadores claude.ai, `marketplaceId` e `organizationUuid`, no lugar de `installLocation`.

1427 

1428Em sessões de terminal onde [plugins sincronizam de sua conta claude.ai](/docs/pt/plugins-reference#synced-plugins), a listagem de texto termina com uma seção `From claude.ai:` nomeando o que claude.ai lista para sua conta além dos marketplaces que você adicionou. Para adicionar um deles, veja [Adicionar de claude.ai](/docs/pt/discover-plugins#add-from-claude-ai). A saída `--json` cobre apenas marketplaces configurados e deixa essa seção de fora. Requer Claude Code v2.1.273 ou posterior.

1429 

1430<h3 id="plugin-marketplace-remove">

1431 Plugin marketplace remove

1432</h3>

1433 

1434Remova um marketplace configurado. O alias `rm` também é aceito.

1435 

1436```bash theme={null}

1437claude plugin marketplace remove <name> [options]

1438```

1439 

1440**Argumentos:**

1441 

1442* `<name>`: nome do marketplace a remover, conforme mostrado por `claude plugin marketplace list`. Este é o `name` de `marketplace.json`, não a fonte que você passou para `add`

1443 

1444**Opções:**

1445 

1446| Opção | Descrição | Padrão |

1447| :---------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------- |

1448| `--scope <scope>` | Restringir remoção a um único escopo de configurações: `user`, `project` ou `local`. Veja [Plugin installation scopes](/docs/pt/plugins-reference#plugin-installation-scopes). Quando omitido, a declaração é removida de cada escopo editável. Quando fornecido, apenas a declaração desse escopo é removida; o estado compartilhado, cache e dados de plugin instalado são preservados quando o marketplace ainda está declarado em outro escopo | (todos os escopos) |

1449 

1450<Warning>

1451 Remover um marketplace de seu último escopo restante também desinstala qualquer plugin que você instalou dele. Para atualizar um marketplace sem perder plugins instalados, use `claude plugin marketplace update` em vez disso.

1452</Warning>

1453 

1454<h3 id="plugin-marketplace-update">

1455 Plugin marketplace update

1456</h3>

1457 

1458Atualize marketplaces de suas fontes para recuperar novos plugins e mudanças de versão. Um marketplace adicionado com um branch ou tag `ref` é atualizado para o commit mais recente dessa ref, não para o branch padrão do repositório.

1459 

1460```bash theme={null}

1461claude plugin marketplace update [name]

1462```

1463 

1464**Argumentos:**

1465 

1466* `[name]`: nome do marketplace a atualizar, conforme mostrado por `claude plugin marketplace list`. Atualiza todos os marketplaces se omitido

1467 

1468Tanto `remove` quanto `update` falham quando executados contra um marketplace gerenciado por seed, que é somente leitura. Ao atualizar todos os marketplaces, entradas gerenciadas por seed são puladas e outros marketplaces ainda são atualizados. Para alterar plugins fornecidos por seed, peça ao seu administrador para atualizar a imagem seed. Veja [Pré-popular plugins para containers](#pre-populate-plugins-for-containers).

1469 

1470<h2 id="troubleshooting">

1471 Troubleshooting

1472</h2>

1473 

1474<h3 id="marketplace-not-loading">

1475 Marketplace não carregando

1476</h3>

1477 

1478**Sintomas**: Não consegue adicionar marketplace ou ver plugins dele

1479 

1480**Soluções**:

1481 

1482* Verifique se a URL do marketplace é acessível

1483* Verifique se `.claude-plugin/marketplace.json` existe no caminho especificado

1484* Garanta que a sintaxe JSON é válida usando `claude plugin validate .` ou `/plugin validate .` do diretório do marketplace. Para verificar o frontmatter de skill, agent e command, veja [Validate a plugin or a directory without a manifest](#validate-a-plugin-or-a-directory-without-a-manifest)

1485* Para repositórios privados, confirme que você tem permissões de acesso

1486 

1487<h3 id="marketplace-validation-errors">

1488 Erros de validação de marketplace

1489</h3>

1490 

1491Execute `claude plugin validate .` ou `/plugin validate .` do seu diretório de marketplace para verificar problemas. Quando apontado para um diretório de marketplace, o validador verifica `marketplace.json` para erros de schema, nomes de plugin duplicados e travessia de caminho de fonte. Para cada entrada cuja `source` é um caminho local, ele também valida o próprio `plugin.json` daquele plugin e avisa quando a `version` da entrada não corresponde à do `plugin.json`. Problemas encontrados no `plugin.json` de um plugin são prefixados com o índice da entrada, na forma `plugins[2] plugin.json →`.

1492 

1493A partir de Claude Code v2.1.196, a passagem por entrada também:

1494 

1495* inclui plugins cuja `source` é `.`

1496* executa quando `marketplace.json` está fora de um diretório `.claude-plugin`, resolvendo fontes contra o próprio diretório do arquivo

1497* relata os problemas de cada entrada mesmo quando outra parte do arquivo tem erros de schema

1498 

1499Versões anteriores pulam plugins na raiz do marketplace e apenas descem de um `.claude-plugin/marketplace.json`.

1500 

1501Do diretório de um marketplace, Claude Code não abre os arquivos de skill, agent, command ou hook dos plugins. Para encontrar erros nesses arquivos, veja [Validate a plugin or a directory without a manifest](#validate-a-plugin-or-a-directory-without-a-manifest). A tabela abaixo lista os erros mais comuns de um diretório de marketplace, com a causa e correção para cada um:

1502 

1503| Erro | Causa | Solução |

1504| :------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------- |

1505| `No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json` | O diretório que você nomeou não tem `.claude-plugin/marketplace.json` ou `plugin.json`, e nenhum arquivo de skill, agent ou command para verificar | Execute a partir da raiz do marketplace, ou crie `.claude-plugin/marketplace.json` com os campos obrigatórios |

1506| `Invalid JSON syntax: Unexpected token...` | Erro de sintaxe JSON em marketplace.json | Verifique vírgulas ausentes, vírgulas extras ou strings não citadas |

1507| `Duplicate plugin name "x" found in marketplace` | Dois plugins compartilham o mesmo nome | Dê a cada plugin um valor `name` único |

1508| `plugins[0].source: Path contains ".."` | Um segmento do caminho de fonte é `..` | Use caminhos relativos à raiz do marketplace sem segmentos `..`. Veja [Relative paths](#relative-paths) |

1509| `Marketplace name cannot contain control or bidirectional-formatting characters` | O `name` do marketplace contém um caractere de formatação bidirecional Unicode ou um caractere de controle, como um escape ou uma quebra de linha | Remova o caractere do nome. Antes de v2.1.247, esses caracteres produziam o erro `Marketplace name impersonates an official Anthropic/Claude marketplace` |

1510| `Plugin name cannot contain control or bidirectional-formatting characters` | Um `name` de plugin contém um caractere de formatação bidirecional Unicode ou um caractere de controle, como um escape ou uma quebra de linha | Remova o caractere do nome. Antes de v2.1.247, Claude Code não executava essa verificação |

1511 

1512**Avisos** (não bloqueadores):

1513 

1514* `Marketplace has no plugins defined`: adicione pelo menos um plugin ao array `plugins`

1515* `No marketplace description provided`: adicione uma `description` de nível superior para ajudar os usuários a entender seu marketplace

1516* `Plugin name "x" is not kebab-case`: renomeie para apenas letras minúsculas, dígitos e hífens (por exemplo, `my-plugin`). Claude Code aceita outras formas, mas a sincronização de marketplace do claude.ai as rejeita.

1517* `Marketplace name "x" is reserved in Claude Desktop`: o marketplace é nomeado `org`, `org-provisioned` ou `unknown`, em qualquer casing. Claude Code aceita esses nomes, mas a sincronização de marketplace gerenciada do Claude Desktop rejeita o marketplace inteiro. Renomeie o marketplace. Antes de v2.1.221, `claude plugin validate` não executava essa verificação.

1518* `Marketplace name "x" is not accepted by Claude Desktop` ou `Plugin name "x" is not accepted by Claude Desktop`: Claude Desktop aceita nomes de até 128 caracteres feitos de letras, dígitos, `.`, `_` e `-`, começando com uma letra ou dígito. Claude Code aceita outras formas, mas a sincronização de marketplace gerenciada do Claude Desktop rejeita um marketplace cujo nome falha na verificação e silenciosamente descarta uma entrada de plugin cujo nome falha. Renomeie o marketplace ou plugin. Antes de v2.1.221, `claude plugin validate` não executava essas verificações.

1519 

1520<h4 id="validate-a-plugin-or-a-directory-without-a-manifest">

1521 Validate a plugin or a directory without a manifest

1522</h4>

1523 

1524Para encontrar arquivos de skill, agent e command cujo frontmatter não analisa, execute `claude plugin validate` e nomeie o diretório que os contém. Claude Code não procura fora do diretório que você nomeia. Toda execução exceto uma contra um plugin que tem um `plugin.json` requer Claude Code v2.1.233 ou posterior.

1525 

1526<h5 id="pick-the-directory-to-name">

1527 Pick the directory to name

1528</h5>

1529 

1530Claude Code verifica diferentes arquivos dependendo de qual diretório você nomeia. Encontre o que você quer verificar na primeira coluna e execute o comando dessa linha:

1531 

1532| Para verificar | Execute | Claude Code verifica |

1533| :----------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1534| Um plugin que tem um `plugin.json` | `claude plugin validate ./plugins/my-plugin` | `plugin.json`, `hooks/hooks.json` e os diretórios `skills`, `agents` e `commands` na raiz do plugin |

1535| Um diretório de skills, agents ou commands, como um plugin que ainda não tem `plugin.json` | `claude plugin validate .claude/skills`, `~/.claude/agents` ou `./my-plugin/agents` | Cada arquivo de skill, agent ou command naquele diretório |

1536| Uma pasta cujo skill é seu `SKILL.md` raiz | `claude plugin validate ./skills`, nomeando o diretório `skills` que contém a pasta | O `SKILL.md` raiz de cada pasta. O diretório que contém deve ser nomeado `skills`; uma pasta sob outro nome, como `plugins/`, não tem uma execução que verifica seu `SKILL.md` raiz |

1537| Os três diretórios de um projeto de uma vez | `claude plugin validate .claude`, ou a raiz do projeto quando não tem manifesto `.claude-plugin/` | `.claude/skills`, `.claude/agents` e `.claude/commands` |

1538| Seus diretórios de nível de usuário | `claude plugin validate ~/.claude` | `~/.claude/skills`, `~/.claude/agents` e `~/.claude/commands` |

1539 

1540<h5 id="check-a-plugin-whose-skill-is-its-root-skill-md">

1541 Check a plugin whose skill is its root `SKILL.md`

1542</h5>

1543 

1544Quando você executa `claude plugin validate` contra um diretório de plugin, Claude Code não verifica um `SKILL.md` na raiz do plugin. Quando o plugin fica em um diretório nomeado `skills`, execute o comando duas vezes:

1545 

1546* Nomeie aquele diretório `skills` para verificar o `SKILL.md` raiz do plugin.

1547* Nomeie o diretório do plugin para verificar o resto.

1548 

1549Quando o plugin fica sob outro nome, como `plugins/`, a execução do diretório `skills` não está disponível e nenhuma execução verifica seu `SKILL.md` raiz.

1550 

1551<h5 id="check-files-behind-symlinks">

1552 Check files behind symlinks

1553</h5>

1554 

1555Quando você executa `claude plugin validate`, Claude Code não segue symlinks dentro do diretório que você nomeia. O que ele faz depende de onde o link está:

1556 

1557* **Um diretório `skills`, `agents` ou `commands` vinculado sob a raiz do plugin ou `.claude`**: Claude Code avisa que nada nele foi lido.

1558* **Uma entrada vinculada dentro de um diretório `skills`, `agents` ou `commands`**: Claude Code a pula e avisa, por diretório, quantas entradas pulou que uma sessão carregaria.

1559* **O diretório `skills`, `agents` ou `commands` que você nomeia é ele próprio um symlink, ou seu diretório pai `.claude` é**: Claude Code relata um erro e não verifica nada nele. Nomeie o diretório real em vez disso.

1560 

1561Em dois casos de skills, a execução passa com avisos. Para verificar os arquivos vinculados, execute novamente e nomeie um diretório que os contém diretamente:

1562 

1563* **Um plugin cujo diretório `skills` [vincula aos skills de um plugin irmão](/docs/pt/plugins-reference#share-files-within-a-marketplace-with-symlinks)**: nomeie o diretório do plugin irmão.

1564* **Uma [entrada de skill vinculada](/docs/pt/skills#where-skills-live) em `~/.claude/skills` ou `.claude/skills`**: Claude Code segue a entrada em uma sessão. Para verificá-la, nomeie um diretório chamado `skills` que contém a pasta real.

1565 

1566<h5 id="read-the-validation-results">

1567 Read the validation results

1568</h5>

1569 

1570Uma execução limpa termina com `Validation passed`.

1571 

1572`No manifest found in directory` significa que Claude Code não encontrou `plugin.json` ou `marketplace.json` lá, e nenhum arquivo de skill, agent ou command nos diretórios que ele sonda sob ele. Nomeie o diretório `skills`, `agents` ou `commands` que contém seus arquivos em vez disso.

1573 

1574Dois dos erros que Claude Code relata dessas execuções, com a correção para cada um:

1575 

1576* `YAML frontmatter failed to parse: ...`: corrija o YAML no bloco frontmatter do arquivo de skill, agent ou command. Até você fazer isso, uma sessão lê nenhum campo frontmatter do arquivo

1577* `Invalid JSON syntax: ...` em `hooks/hooks.json`: corrija a sintaxe JSON. Até você fazer isso, uma sessão carrega o plugin sem os hooks naquele arquivo. Claude Code relata esse erro apenas em uma execução de plugin

1578 

1579Em uma execução de plugin, Claude Code também avisa sobre um `CLAUDE.md` na raiz do plugin. Para caminhos que você define através dos [component path fields](/docs/pt/plugins-reference#component-path-fields) em `plugin.json`, Claude Code verifica que cada caminho existe mas não lê os arquivos lá.

1580 

1581<h3 id="plugin-installation-failures">

1582 Falhas de instalação de plugin

1583</h3>

1584 

1585**Sintomas**: Marketplace aparece mas a instalação do plugin falha

1586 

1587**Soluções**:

1588 

1589* Verifique se as URLs de fonte do plugin são acessíveis

1590* Verifique se os diretórios de plugin contêm arquivos obrigatórios

1591* Para fontes GitHub, garanta que repositórios são públicos ou você tem acesso

1592* Teste fontes de plugin manualmente clonando/baixando

1593* Se a fonte fixa tanto `ref` quanto `sha`, uma branch ou tag upstream deletada não bloqueia a instalação na maioria dos hosts git, incluindo GitHub, GitLab e Bitbucket. Em servidores que não suportam busca de commits por SHA, como AWS CodeCommit, o `ref` ainda deve existir e o commit fixado deve ser alcançável a partir dele. Se a instalação ainda falhar, confirme que o commit fixado ainda existe no repositório

1594 

1595<h3 id="private-repository-authentication-fails">

1596 Falha de autenticação de repositório privado

1597</h3>

1598 

1599**Sintomas**: Erros de autenticação ao instalar plugins de repositórios privados

1600 

1601**Soluções**:

1602 

1603Para instalação manual e atualizações:

1604 

1605* Verifique se você está autenticado com seu provedor git (por exemplo, execute `gh auth status` para GitHub)

1606* Verifique se seu ajudante de credencial está configurado: `git config --global credential.helper`

1607* Execute `git ls-remote <marketplace-url>` para testar se git consegue autenticar por conta própria. Se git pedir um nome de usuário ou senha, armazene a credencial primeiro: para GitHub sobre HTTPS, execute `gh auth setup-git`, e para remotes SSH, carregue sua chave em `ssh-agent`

1608 

1609Para atualizações automáticas em segundo plano:

1610 

1611* A verificação em segundo plano usa seus ajudantes de credencial git configurados mas nunca solicita, então seu ajudante deve conseguir responder com uma credencial armazenada. Remotes SSH com uma chave carregada em `ssh-agent` também autenticam

1612* Se seu ajudante precisa solicitar você, a atualização em segundo plano falha silenciosamente e o checkout existente fica no lugar. Entre em seu ajudante primeiro para que ele mantenha uma credencial para o host. Para GitHub, execute `gh auth login`, depois `gh auth setup-git`

1613* Quando a verificação encontra novos commits, ou não consegue alcançar ou autenticar no remoto, Claude Code re-clona o marketplace com as mesmas credenciais. A re-clonagem pode expirar em repositórios grandes

1614* Defina `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` para manter o checkout existente sem tentar a re-clonagem quando a verificação em segundo plano não conseguir alcançar ou autenticar no remoto

1615* Se a re-clonagem expirar em um repositório grande, aumente o limite com [`CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS`](#git-operations-time-out)

1616* Ou atualize marketplaces privados manualmente com `/plugin marketplace update <name>`, que usa suas credenciais

1617 

1618Antes de v2.1.280, a verificação em segundo plano executava sem seus ajudantes de credencial e não conseguia autenticar em repositórios privados sobre HTTPS.

1619 

1620<h3 id="marketplace-updates-fail-in-offline-environments">

1621 Atualizações de marketplace falham em ambientes offline

1622</h3>

1623 

1624**Sintomas**: Em um ambiente offline ou airgapped, a atualização de marketplace em segundo plano não consegue alcançar o remoto e Claude Code repetidamente tenta uma re-clonagem que não consegue ter sucesso.

1625 

1626**Causa**: A atualização em segundo plano verifica o remoto do marketplace para novos commits, e quando a verificação não consegue alcançar o remoto, Claude Code tenta clonar o marketplace novamente. Offline, o clone falha da mesma forma e o checkout existente fica no lugar. Antes de v2.1.274, a atualização executava `git pull` no checkout existente, movia o checkout para o lado para re-clonar quando o pull falhava, e o restaurava depois em base de melhor esforço.

1627 

1628A atualização é executada em segundo plano após a inicialização, então não atrasa a inicialização. Cada sessão ainda repete a tentativa falhada, e cada operação git pode esperar o [timeout de 120 segundos](#git-operations-time-out).

1629 

1630**Solução**: Defina `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` para pular a tentativa de re-clonagem e continuar usando o checkout existente quando a verificação não conseguir alcançar o remoto:

1631 

1632```bash theme={null}

1633export CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1

1634```

1635 

1636Para implantações totalmente offline onde o repositório nunca será alcançável, use [`CLAUDE_CODE_PLUGIN_SEED_DIR`](#pre-populate-plugins-for-containers) para pré-popular o diretório de plugins no tempo de construção em vez disso.

1637 

1638<h3 id="git-operations-time-out">

1639 Operações Git expiram

1640</h3>

1641 

1642**Sintomas**: Instalação de plugin ou atualizações de marketplace falham com um erro de timeout como `Git clone timed out after 120s`.

1643 

1644**Causa**: Claude Code usa um timeout de 120 segundos para todas as operações git, incluindo clonagem de repositórios de plugin e re-clonagem de um marketplace para atualizá-lo. Repositórios grandes ou conexões de rede lentas podem exceder este limite.

1645 

1646**Solução**: Aumente o timeout usando a variável de ambiente `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS`. O valor está em milissegundos:

1647 

1648```bash theme={null}

1649export CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS=300000 # 5 minutos

1650```

1651 

1652<h3 id="plugins-with-relative-paths-fail-in-url-based-marketplaces">

1653 Plugins com caminhos relativos falham em marketplaces baseados em URL

1654</h3>

1655 

1656**Sintomas**: Adicionou um marketplace via URL como `https://example.com/marketplace.json`, mas plugins com fontes de caminho relativo como `"./plugins/my-plugin"` falham ao instalar com `its marketplace entry path does not stay inside the marketplace directory`. Plugins já instalados falham ao carregar com `Plugin source path refused`. Ambas as mensagens têm uma [entrada de referência de erro](/docs/pt/errors#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory).

1657 

1658**Causa**: adicionar um marketplace baseado em URL baixa apenas o próprio arquivo `marketplace.json`, e Claude Code não busca arquivos de plugin por caminho relativo daquele servidor. Caminhos relativos na entrada de marketplace referenciam arquivos no servidor remoto que não foram baixados.

1659 

1660**Soluções**:

1661 

1662* **Use fontes externas**: altere entradas de plugin para qualquer [plugin source](#plugin-sources) outro que não seja um caminho relativo:

1663 ```json theme={null}

1664 { "name": "my-plugin", "source": { "source": "github", "repo": "owner/repo" } }

1665 ```

1666* **Use um marketplace baseado em Git**: Hospede seu marketplace em um repositório Git e adicione-o com a URL git. Marketplaces baseados em Git clonam o repositório inteiro, tornando caminhos relativos funcionarem corretamente.

1667 

1668<h3 id="files-not-found-after-installation">

1669 Arquivos não encontrados após instalação

1670</h3>

1671 

1672**Sintomas**: Plugin instala mas referências a arquivos falham, especialmente arquivos fora do diretório do plugin

1673 

1674**Causa**: Claude Code copia plugins instalados para um diretório de cache, a menos que o plugin carregue no local. Uma [`command` source em link mode](#copy-mode-and-link-mode) carrega no local, e assim também uma [relative path source](#relative-paths) em um marketplace adicionado de um diretório local. Caminhos que referenciam arquivos fora do diretório do plugin copiado (como `../shared-utils`) não funcionarão porque esses arquivos não são copiados.

1675 

1676**Soluções**: Veja [Plugin caching and file resolution](/docs/pt/plugins-reference#plugin-caching-and-file-resolution) para workarounds incluindo symlinks e reestruturação de diretório.

1677 

1678Para ferramentas de debugging adicionais e problemas comuns, veja [Debugging and development tools](/docs/pt/plugins-reference#debugging-and-development-tools).

1679 

1680<h2 id="see-also">

1681 Veja também

1682</h2>

1683 

1684* [Descobrir e instalar plugins pré-construídos](/docs/pt/discover-plugins) - Instalando plugins de marketplaces existentes

1685* [Plugins](/docs/pt/plugins) - Criando seus próprios plugins

1686* [Plugins reference](/docs/pt/plugins-reference) - Especificações técnicas completas e esquemas

1687* [Plugin settings](/docs/pt/settings-reference#plugin-settings) - Opções de configuração de plugin

1688* [strictKnownMarketplaces reference](/docs/pt/settings-reference#strictknownmarketplaces) - Restrições de marketplace gerenciado

plugin-relevance.md +0 −186 deleted

File Deleted View Diff

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# Recomende plugins para sua organização

6 

7> Adicione um bloco de relevância às entradas de plugins do marketplace para que Claude Code os sugira quando o trabalho de um usuário corresponder.

8 

9Se você opera um marketplace de plugins para sua organização, pode fazer com que Claude Code sugira plugins específicos aos usuários com base no que estão trabalhando. Adicione um bloco `relevance` à entrada de um plugin em `marketplace.json`, depois coloque o marketplace na lista de permissões nas configurações gerenciadas. Quando a sessão de um usuário corresponder a um dos sinais declarados, Claude Code exibe uma sugestão de instalação para esse plugin.

10 

11As sugestões declaradas pelo marketplace são opcionais por marketplace através das [configurações gerenciadas](/docs/pt/managed-settings). Nenhuma declaração de `relevance` de um marketplace produz sugestões até que um administrador a adicione à lista de permissões, incluindo o marketplace oficial da Anthropic. Claude Code também inclui uma sugestão integrada que é independente dessa lista de permissões; essa dica e todas as dicas declaradas pelo marketplace são desabilitadas quando [`spinnerTipsEnabled`](/docs/pt/settings-reference#spinnertipsenabled) é definido como `false`.

12 

13Esta página é para operadores de marketplace e administradores corporativos. Se você está procurando instalar plugins, consulte [Descobrir e instalar plugins](/docs/pt/discover-plugins).

14 

15<h2 id="how-it-works">

16 Como funciona

17</h2>

18 

19Cada entrada de plugin em `marketplace.json` pode conter um objeto `relevance`. O objeto nomeia um tópico e um ou mais sinais. Um sinal é um padrão que Claude Code testa contra a sessão atual, como o diretório de trabalho ou arquivos que Claude leu.

20 

21A correspondência de sinais acontece localmente na máquina do usuário. A correspondência não adiciona tráfego de rede e não relata quais sinais corresponderam, ou seus valores, à Anthropic ou ao operador do marketplace.

22 

23Quando um sinal corresponde e o plugin ainda não está instalado, Claude Code mostra o plugin em três lugares:

24 

25* **Dica do spinner**: uma mensagem "Trabalhando com *tópico*? Instale o plugin *plugin*" com o comando `/plugin install` aparece abaixo do spinner enquanto Claude está respondendo.

26* **Sugestão de início de sessão**: se o sinal `cwd` corresponder ao diretório de trabalho, uma notificação de uma linha `plugin suggestion: <name>@<marketplace> · /plugin` aparece antes do primeiro turno.

27* **Aba Discover do `/plugin`**: o plugin é fixado no topo da lista Discover com uma anotação como "sugerido para este diretório" ou "sugerido para comandos stripe".

28 

29A dica do spinner e a notificação de início de sessão fazem parte do sistema de dicas do spinner. Claude Code desabilita ambas quando `spinnerTipsEnabled` é resolvido como `false` em seus arquivos de configuração, ou quando `excludeDefault` é resolvido como `true` em todas as chaves [`spinnerTipsOverride`](/docs/pt/settings-reference#spinnertipsoverride) em configurações de usuário, `--settings` e gerenciadas, e essas chaves configuram pelo menos uma dica ou um `tipsFile`.

30 

31O pino da aba Discover é independente das configurações de dicas.

32 

33Claude Code nunca instala um plugin automaticamente. O usuário sempre confirma.

34 

35<h2 id="add-relevance-to-a-plugin-entry">

36 Adicione relevância a uma entrada de plugin

37</h2>

38 

39Adicione um objeto `relevance` à entrada do plugin em seu `marketplace.json`. O exemplo a seguir declara que o plugin `terraform-helpers` é relevante quando Claude lê um arquivo `.tf` ou quando Claude executa `terraform`:

40 

41```json theme={null}

42{

43 "name": "acme-corp-plugins",

44 "owner": { "name": "Acme Platform Team" },

45 "plugins": [

46 {

47 "name": "terraform-helpers",

48 "source": "./plugins/terraform-helpers",

49 "description": "Acme conventions and helpers for Terraform",

50 "relevance": {

51 "topic": "Terraform",

52 "signals": {

53 "cli": ["terraform"],

54 "filesRead": ["**/*.tf"]

55 }

56 }

57 }

58 ]

59}

60```

61 

62Um plugin com um bloco `relevance` mas sem sinal correspondente se comporta como qualquer outra entrada do marketplace. Ele aparece na lista Discover em sua posição normal e nunca aparece como uma dica do spinner.

63 

64<h2 id="field-reference">

65 Referência de campos

66</h2>

67 

68<h3 id="relevance">

69 `relevance`

70</h3>

71 

72| Campo | Tipo | Descrição |

73| :-------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

74| `topic` | string | Opcional. A frase que preenche "Trabalhando com *tópico*?" na dica do spinner. Geralmente o nome do produto, por exemplo `Stripe`. Use um domínio como `design` quando o nome do plugin não se lê naturalmente como um tópico. Padrão é o nome do plugin com cada segmento de hífen capitalizado. A notificação de início de sessão não usa este valor. Máximo 64 caracteres. |

75| `signals` | object | Correspondentes que determinam quando o plugin é relevante. Pelo menos um sinal é necessário para que o plugin seja sugerível. Veja a tabela abaixo. |

76 

77<h3 id="relevance-signals">

78 `relevance.signals`

79</h3>

80 

81| Campo | Tipo | Descrição |

82| :------------- | :--------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

83| `cwd` | array of strings | Padrões Glob correspondidos contra o diretório de trabalho da sessão. Correspondido como um caminho absoluto e, quando dentro de um repositório git, como um caminho relativo à raiz do repositório. Normalizado com barra invertida e insensível a maiúsculas/minúsculas. Cada padrão corresponde ao diretório em si e a tudo sob ele, então `infra`, `infra/`, e `infra/**` se comportam de forma idêntica. Este é o único sinal que pode corresponder no início da sessão, antes do primeiro turno. Máximo 10 padrões de 256 caracteres cada. |

84| `cli` | array of strings | Nomes de comando de comandos shell que Claude executou nesta sessão, por exemplo `["stripe"]`. Aplica-se em todas as plataformas: comandos executados no Windows através do PowerShell ou Git Bash são registrados da mesma forma. Claude Code registra um nome de comando por invocação de ferramenta shell: o primeiro token após qualquer atribuição de variável de ambiente inicial e `sudo`. Comandos compostos contribuem apenas com seu comando inicial, então `cd infra && terraform plan` registra `cd`, não `terraform`. Correspondência exata. Máximo 10 entradas de 64 caracteres cada. |

85| `hosts` | array of strings | Nomes de host vistos em URLs `http://` ou `https://` em comandos Bash nesta sessão, por exemplo `["api.stripe.com"]`. Apenas nome de host em minúsculas: sem esquema, porta ou caminho. Correspondência exata insensível a maiúsculas/minúsculas. Máximo 20 entradas de 128 caracteres cada. |

86| `filesRead` | array of strings | Padrões Glob correspondidos contra os caminhos de arquivos que Claude leu nesta sessão, por exemplo `["**/*.tf"]`. Normalizado com barra invertida e insensível a maiúsculas/minúsculas. Máximo 10 padrões de 256 caracteres cada. |

87| `manifestDeps` | array of objects | Dependências declaradas em manifestos de pacote que Claude leu nesta sessão. Cada entrada é `{ "file": "...", "pattern": "..." }`, onde `file` é uma expressão regular correspondida contra o caminho do arquivo de manifesto conforme registrado no estado da sessão, normalmente um caminho absoluto, e `pattern` é uma expressão regular correspondida contra o conteúdo desse arquivo. Âncora `file` no final, por exemplo `[/\\\\]package\\.json$` em forma com escape JSON, porque um padrão ancorado no início nunca corresponde a um caminho absoluto. Os caminhos não são normalizados por separador para este sinal, então os caminhos do Windows usam barras invertidas. Arquivos de manifesto maiores que 512 KB são ignorados. Ambos os valores são strings de origem `RegExp` do JavaScript de no máximo 256 caracteres. `file` corresponde insensível a maiúsculas/minúsculas. `pattern` é sensível a maiúsculas/minúsculas. Máximo 10 entradas. |

88 

89Os sinais `cli`, `hosts`, `filesRead` e `manifestDeps` precisam de histórico de sessão, então eles só podem corresponder na dica do spinner e na aba Discover. O `cwd` é o único sinal que pode corresponder no início da sessão. Os sinais `filesRead` e `manifestDeps` testam o estado de arquivo registrado da sessão, que também inclui arquivos que Claude escreveu ou editou e arquivos de memória `CLAUDE.md` carregados automaticamente.

90 

91O exemplo a seguir usa `manifestDeps` para sugerir um plugin Stripe uma vez que Claude leu um `package.json` que depende de `stripe`. O padrão `file` usa `[/\\\\]` para que corresponda tanto a separadores de caminho com barra invertida quanto com barra invertida, e `\\.` para que o ponto seja literal. Em JSON, cada barra invertida na expressão regular é escrita duas vezes.

92 

93```json theme={null}

94{

95 "name": "stripe-helpers",

96 "source": "./plugins/stripe-helpers",

97 "relevance": {

98 "topic": "Stripe",

99 "signals": {

100 "manifestDeps": [

101 {

102 "file": "[/\\\\]package\\.json$",

103 "pattern": "\"stripe\"\\s*:"

104 }

105 ]

106 }

107 }

108}

109```

110 

111<Note>

112 Claude Code ignora campos desconhecidos sob `relevance` e `relevance.signals` no tempo de carregamento, então clientes mais antigos continuam carregando seu marketplace.

113</Note>

114 

115<h2 id="enable-suggestions-in-managed-settings">

116 Ative sugestões nas configurações gerenciadas

117</h2>

118 

119Declarar `relevance` em `marketplace.json` não é suficiente por si só. Um administrador deve colocar o marketplace na lista de permissões nas [configurações gerenciadas](/docs/pt/managed-settings) antes que suas sugestões apareçam aos usuários.

120 

121Adicione o nome do marketplace a `pluginSuggestionMarketplaces`. Para qualquer marketplace que não seja o marketplace oficial da Anthropic, também declare a fonte do marketplace nas mesmas configurações gerenciadas, seja como entrada desse nome em `extraKnownMarketplaces` ou como entrada em `strictKnownMarketplaces`. O nome colocado na lista de permissões é ignorado se o marketplace registrado na máquina veio de uma fonte diferente. Isso impede que uma fonte não relacionada se registre sob um nome colocado na lista de permissões para ter seus plugins sugeridos em toda sua organização.

122 

123O `managed-settings.json` a seguir registra um marketplace de organização de um repositório GitHub e ativa suas sugestões:

124 

125```json theme={null}

126{

127 "extraKnownMarketplaces": {

128 "acme-corp-plugins": {

129 "source": {

130 "source": "github",

131 "repo": "acme-corp/claude-plugins"

132 }

133 }

134 },

135 "pluginSuggestionMarketplaces": ["acme-corp-plugins"]

136}

137```

138 

139O marketplace oficial está isento do requisito de declaração de fonte porque seu nome só pode ser registrado da fonte oficial da Anthropic. Colocar apenas o nome na lista de permissões é suficiente:

140 

141```json theme={null}

142{

143 "pluginSuggestionMarketplaces": ["claude-plugins-official"]

144}

145```

146 

147<h2 id="what-the-user-sees">

148 O que o usuário vê

149</h2>

150 

151Quando um sinal corresponde durante uma sessão, a dica do spinner lê:

152 

153```text theme={null}

154Working with Terraform? Install the terraform-helpers plugin:

155/plugin install terraform-helpers@acme-corp-plugins

156```

157 

158No início da sessão, um sinal `cwd` correspondente exibe a notificação de uma linha:

159 

160```text theme={null}

161plugin suggestion: terraform-helpers@acme-corp-plugins · /plugin

162```

163 

164A sugestão de um determinado plugin aparece no máximo uma vez a cada três sessões entre a dica do spinner e a notificação de início de sessão combinadas, e nenhuma se repete uma vez que o plugin está instalado. A notificação de início de sessão também para de aparecer após a sugestão ter sido mostrada duas vezes.

165 

166Na aba Discover do `/plugin`, o plugin é fixado acima dos outros resultados com uma anotação que nomeia o sinal correspondente, como `suggested for this directory` ou `suggested for terraform commands`. A aba Discover fixa um determinado plugin uma vez; visitas posteriores o listam em ordem normal.

167 

168<h2 id="validate-your-marketplace">

169 Valide seu marketplace

170</h2>

171 

172Execute `claude plugin validate` contra seu diretório de marketplace para verificar o bloco `relevance` antes de publicar:

173 

174```

175claude plugin validate ./my-marketplace

176```

177 

178O validador relata chaves desconhecidas sob `relevance` e `relevance.signals` como avisos, sinaliza um valor `relevance` que não é um objeto, e rejeita uma entrada `signals.hosts` que inclui um esquema, porta ou caminho.

179 

180<h2 id="see-also">

181 Veja também

182</h2>

183 

184* [Crie e distribua um marketplace de plugins](/docs/pt/plugin-marketplaces): construa o marketplace que hospeda seus plugins

185* [Recomende seu plugin a partir de sua CLI](/docs/pt/plugin-hints): solicite aos usuários a partir de sua própria CLI em vez de dos sinais de sessão do Claude Code

186* [Todas as configurações](/docs/pt/settings-reference#pluginsuggestionmarketplaces): `pluginSuggestionMarketplaces` e `extraKnownMarketplaces`

plugins.md +0 −527 deleted

File Deleted View Diff

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# Criar plugins

6 

7> Crie plugins personalizados para estender Claude Code com skills, agents, hooks e MCP servers.

8 

9Plugins permitem que você estenda Claude Code com funcionalidade personalizada que pode ser compartilhada entre projetos e equipes. Este guia cobre a criação de seus próprios plugins com skills, agents, hooks e MCP servers.

10 

11Procurando instalar plugins existentes? Veja [Descobrir e instalar plugins](/docs/pt/discover-plugins). Para especificações técnicas completas, veja [Referência de plugins](/docs/pt/plugins-reference).

12 

13<h2 id="when-to-use-plugins-vs-standalone-configuration">

14 Quando usar plugins vs configuração independente

15</h2>

16 

17Claude Code suporta duas maneiras de adicionar skills, agents e hooks personalizados:

18 

19| Abordagem | Nomes de skills | Melhor para |

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

21| **Independente** (diretório `.claude/`) | `/hello` | Fluxos de trabalho pessoais, personalizações específicas do projeto, experimentos rápidos |

22| **Plugins** (diretórios com `.claude-plugin/plugin.json`) | `/plugin-name:hello` | Compartilhamento com colegas de equipe, distribuição para a comunidade, lançamentos versionados, reutilizável em projetos |

23 

24<Tip>

25 Comece com configuração independente em `.claude/` para iteração rápida, depois [converta para um plugin](#convert-existing-configurations-to-plugins) quando estiver pronto para compartilhar.

26</Tip>

27 

28<h2 id="quickstart">

29 Início rápido

30</h2>

31 

32Este início rápido o guia através da criação de um plugin com um skill personalizado. Você criará um manifesto (o arquivo de configuração que define seu plugin), adicionará um skill e o testará localmente usando a flag `--plugin-dir`.

33 

34<h3 id="prerequisites">

35 Pré-requisitos

36</h3>

37 

38* Claude Code [instalado e autenticado](/docs/pt/quickstart#step-1-install-claude-code)

39 

40<h3 id="create-your-first-plugin">

41 Crie seu primeiro plugin

42</h3>

43 

44<Steps>

45 <Step title="Crie o diretório do plugin">

46 Cada plugin vive em seu próprio diretório contendo seus skills, agents ou hooks, opcionalmente ao lado de um manifesto `.claude-plugin/plugin.json`. A localização não importa para este início rápido porque você apontará Claude Code para o diretório com `--plugin-dir` na etapa de teste. Crie-o em qualquer lugar conveniente, como uma pasta de rascunho ou um diretório de projetos:

47 

48 ```bash theme={null}

49 mkdir my-first-plugin

50 ```

51 

52 As etapas restantes são executadas a partir do diretório pai e fazem referência a caminhos como `my-first-plugin/...` relativos a ele.

53 </Step>

54 

55 <Step title="Crie o manifesto do plugin">

56 O arquivo de manifesto em `.claude-plugin/plugin.json` define a identidade do seu plugin: seu nome, descrição e versão. Claude Code usa esses metadados para exibir seu plugin no gerenciador de plugins.

57 

58 Crie o diretório `.claude-plugin` dentro da pasta do seu plugin:

59 

60 ```bash theme={null}

61 mkdir my-first-plugin/.claude-plugin

62 ```

63 

64 Depois crie `my-first-plugin/.claude-plugin/plugin.json` com este conteúdo:

65 

66 ```json my-first-plugin/.claude-plugin/plugin.json theme={null}

67 {

68 "name": "my-first-plugin",

69 "description": "A greeting plugin to learn the basics",

70 "version": "1.0.0",

71 "author": {

72 "name": "Your Name"

73 }

74 }

75 ```

76 

77 | Campo | Propósito |

78 | :------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

79 | `name` | Identificador único e namespace de skill. Skills são prefixados com isso (ex: `/my-first-plugin:hello`). |

80 | `description` | Mostrado no gerenciador de plugins ao navegar ou instalar plugins. |

81 | `version` | Opcional. Se definido, os usuários recebem atualizações apenas quando você incrementa este campo, exceto para uma [fonte `command`](/docs/pt/plugin-marketplaces#command-sources) ou um plugin [carregado no local](/docs/pt/plugins-reference#plugin-caching-and-file-resolution); veja [gerenciamento de versão](/docs/pt/plugins-reference#version-management). Se omitido, a versão vem da próxima fonte em [gerenciamento de versão](/docs/pt/plugins-reference#version-management). |

82 | `author` | Opcional. Útil para atribuição. |

83 

84 Para campos adicionais como `homepage`, `repository` e `license`, veja o [esquema de manifesto completo](/docs/pt/plugins-reference#plugin-manifest-schema).

85 </Step>

86 

87 <Step title="Adicione um skill">

88 Skills vivem no diretório `skills/`. Cada skill é uma pasta contendo um arquivo `SKILL.md`. O nome da pasta se torna o nome do skill, prefixado com o namespace do plugin (`hello/` em um plugin nomeado `my-first-plugin` cria `/my-first-plugin:hello`).

89 

90 Crie um diretório de skill na pasta do seu plugin:

91 

92 ```bash theme={null}

93 mkdir -p my-first-plugin/skills/hello

94 ```

95 

96 Depois crie `my-first-plugin/skills/hello/SKILL.md` com este conteúdo:

97 

98 ```markdown my-first-plugin/skills/hello/SKILL.md theme={null}

99 ---

100 description: Greet the user with a friendly message

101 disable-model-invocation: true

102 ---

103 

104 Greet the user warmly and ask how you can help them today.

105 ```

106 </Step>

107 

108 <Step title="Teste seu plugin">

109 Execute Claude Code com a flag `--plugin-dir` para carregar seu plugin:

110 

111 ```bash theme={null}

112 claude --plugin-dir ./my-first-plugin

113 ```

114 

115 Uma vez que Claude Code inicia, tente seu novo skill:

116 

117 ```shell theme={null}

118 /my-first-plugin:hello

119 ```

120 

121 Você verá Claude responder com uma saudação. Execute `/help` e abra a aba **Custom commands** para ver seu skill listado sob o namespace do plugin.

122 

123 <Note>

124 **Por que namespacing?** Plugin skills são sempre com namespace (como `/my-first-plugin:hello`) para prevenir conflitos quando múltiplos plugins têm skills com o mesmo nome.

125 

126 Para mudar o prefixo de namespace, atualize o campo `name` em `plugin.json`.

127 </Note>

128 </Step>

129 

130 <Step title="Adicione argumentos de skill">

131 Torne seu skill dinâmico aceitando entrada do usuário. O placeholder `$ARGUMENTS` captura qualquer texto que o usuário fornece após o nome do skill.

132 

133 Atualize seu arquivo `SKILL.md`:

134 

135 ```markdown my-first-plugin/skills/hello/SKILL.md theme={null}

136 ---

137 description: Greet the user with a personalized message

138 ---

139 

140 # Hello Skill

141 

142 Greet the user named "$ARGUMENTS" warmly and ask how you can help them today. Make the greeting personal and encouraging.

143 ```

144 

145 Execute `/reload-plugins` para pegar as mudanças. Depois tente o skill com seu nome:

146 

147 ```shell theme={null}

148 /my-first-plugin:hello Alex

149 ```

150 

151 Claude o saudará pelo nome. Para mais sobre passar argumentos para skills, veja [Skills](/docs/pt/skills#pass-arguments-to-skills).

152 </Step>

153</Steps>

154 

155<Tip>

156 A flag `--plugin-dir` é útil para desenvolvimento e testes. Quando estiver pronto para compartilhar seu plugin com outros, veja [Criar e distribuir um marketplace de plugins](/docs/pt/plugin-marketplaces).

157</Tip>

158 

159<h2 id="develop-a-plugin-in-your-skills-directory">

160 Desenvolva um plugin em seu diretório de skills

161</h2>

162 

163Em vez de passar `--plugin-dir` em cada inicialização, você pode manter um plugin em seu diretório de skills e fazer com que Claude Code o carregue automaticamente. `claude plugin init` cria um:

164 

165```bash theme={null}

166claude plugin init my-tool

167```

168 

169Isso cria `~/.claude/skills/my-tool/` com um manifesto `.claude-plugin/plugin.json` e um `SKILL.md` inicial. Na próxima sessão ele carrega como `my-tool@skills-dir` sem nenhuma etapa de marketplace ou instalação.

170 

171Para as regras de carregamento automático, escopo pessoal vs. projeto, o requisito de confiança do workspace e como atualizar ou remover um, veja [Plugins do diretório de skills](/docs/pt/plugins-reference#skills-directory-plugins).

172 

173<h2 id="plugin-structure-overview">

174 Visão geral da estrutura do plugin

175</h2>

176 

177Você criou um plugin com um skill, mas plugins podem incluir muito mais: agents personalizados, hooks, MCP servers, LSP servers e monitores de background.

178 

179<Warning>

180 **Erro comum**: Não coloque `commands/`, `agents/`, `skills/` ou `hooks/` dentro do diretório `.claude-plugin/`. Apenas `plugin.json` vai dentro de `.claude-plugin/`. Todos os outros diretórios devem estar no nível raiz do plugin.

181 

182 A raiz do plugin é o diretório individual do próprio plugin, como `my-first-plugin/` do [guia de início rápido](#quickstart). Nunca é `~/.claude/`. Por exemplo, Claude Code não lê um `.mcp.json` colocado em `~/.claude/.mcp.json`.

183</Warning>

184 

185| Diretório | Localização | Propósito |

186| :---------------- | :------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

187| `.claude-plugin/` | Raiz do plugin | Contém manifesto `plugin.json` (opcional se componentes usam localizações padrão) |

188| `skills/` | Raiz do plugin | Skills como diretórios `<name>/SKILL.md` |

189| `commands/` | Raiz do plugin | Skills como arquivos Markdown simples. Use `skills/` para novos plugins |

190| `agents/` | Raiz do plugin | Definições de agent personalizadas |

191| `hooks/` | Raiz do plugin | Manipuladores de eventos em `hooks.json` |

192| `.mcp.json` | Raiz do plugin | Configurações de MCP server |

193| `.lsp.json` | Raiz do plugin | Configurações de LSP server para inteligência de código |

194| `monitors/` | Raiz do plugin | Configurações de monitor de background em `monitors.json` |

195| `bin/` | Raiz do plugin | Executáveis adicionados ao `PATH` da ferramenta Bash enquanto o plugin está habilitado. Você não pode incluir este diretório em um plugin que você [distribui através das configurações da organização claude.ai](/docs/pt/plugin-marketplaces#keep-executables-out-of-the-top-level-bin-directory) |

196| `settings.json` | Raiz do plugin | [Configurações](/docs/pt/settings) padrão aplicadas quando o plugin é habilitado |

197 

198Um plugin que fornece exatamente um skill pode colocar `SKILL.md` diretamente na raiz do plugin em vez de criar um diretório `skills/`. Claude Code o carrega como um único skill e usa o campo `name` do frontmatter para o nome de invocação. Use o layout `skills/` para plugins que podem crescer para mais de um skill.

199 

200<h2 id="develop-more-complex-plugins">

201 Desenvolver plugins mais complexos

202</h2>

203 

204Uma vez que você está confortável com plugins básicos, você pode criar extensões mais sofisticadas.

205 

206<h3 id="add-skills-to-your-plugin">

207 Adicione Skills ao seu plugin

208</h3>

209 

210Plugins podem incluir [Agent Skills](/docs/pt/skills) para estender as capacidades do Claude. Skills são invocados por modelo: Claude os usa automaticamente com base no contexto da tarefa.

211 

212Adicione um diretório `skills/` na raiz do seu plugin com pastas de Skill contendo arquivos `SKILL.md`:

213 

214```text theme={null}

215my-plugin/

216├── .claude-plugin/

217│ └── plugin.json

218└── skills/

219 └── code-review/

220 └── SKILL.md

221```

222 

223Cada `SKILL.md` contém frontmatter YAML e instruções. Inclua uma `description` para que Claude saiba quando usar o skill:

224 

225```yaml theme={null}

226description: Reviews code for best practices and potential issues. Use when reviewing code, checking PRs, or analyzing code quality.

227 

228When reviewing code, check for:

2291. Code organization and structure

2302. Error handling

2313. Security concerns

2324. Test coverage

233```

234 

235Após instalar o plugin, verifique o resumo de instalação: se ele relatar `Run /reload-plugins to activate.`, veja [Aplicar mudanças de plugin sem reiniciar](/docs/pt/discover-plugins#apply-plugin-changes-without-restarting) para carregar os Skills em sua sessão atual. Para orientação completa de autoria de Skill incluindo divulgação progressiva e restrições de ferramentas, veja [Agent Skills](/docs/pt/skills).

236 

237<h3 id="add-lsp-servers-to-your-plugin">

238 Adicione LSP servers ao seu plugin

239</h3>

240 

241<Tip>

242 Para linguagens comuns como TypeScript, Python e Rust, instale os plugins LSP pré-construídos do marketplace oficial. Crie plugins LSP personalizados apenas quando você precisar de suporte para linguagens não cobertas.

243</Tip>

244 

245Plugins LSP (Language Server Protocol) dão ao Claude inteligência de código em tempo real. Se você precisar suportar uma linguagem que não tem um plugin LSP oficial, você pode criar um próprio adicionando um arquivo `.lsp.json` ao seu plugin:

246 

247```json .lsp.json theme={null}

248{

249 "go": {

250 "command": "gopls",

251 "args": ["serve"],

252 "extensionToLanguage": {

253 ".go": "go"

254 }

255 }

256}

257```

258 

259Usuários instalando seu plugin devem ter o binário do language server instalado em sua máquina.

260 

261Para confirmar que o servidor inicia, inicie Claude Code com o plugin habilitado e verifique a aba `/plugin` Errors: um language server que falha ao iniciar aparece lá, por exemplo com `Executable not found in $PATH` quando o binário não está instalado. Uma entrada com uma configuração inválida é ignorada; execute `claude --debug` para ver por quê.

262 

263Para opções de configuração LSP completas, veja [LSP servers](/docs/pt/plugins-reference#lsp-servers).

264 

265<h3 id="add-background-monitors-to-your-plugin">

266 Adicione monitores de background ao seu plugin

267</h3>

268 

269Monitores de background permitem que seu plugin observe logs, arquivos ou status externo em background e notifique Claude conforme eventos chegam. Claude Code inicia cada monitor automaticamente quando o plugin está ativo, então você não precisa instruir Claude a iniciar a observação.

270 

271Adicione um arquivo `monitors/monitors.json` na raiz do plugin com um array de entradas de monitor:

272 

273```json monitors/monitors.json theme={null}

274[

275 {

276 "name": "error-log",

277 "command": "tail -F ./logs/error.log",

278 "description": "Application error log"

279 }

280]

281```

282 

283Cada linha de stdout do `command` é entregue ao Claude como uma notificação durante a sessão. Para o esquema completo, incluindo o trigger `when` e substituição de variáveis, veja [Monitors](/docs/pt/plugins-reference#monitors).

284 

285<h3 id="ship-default-settings-with-your-plugin">

286 Envie configurações padrão com seu plugin

287</h3>

288 

289Plugins podem incluir um arquivo `settings.json` na raiz do plugin para aplicar configuração padrão quando o plugin é habilitado. Atualmente, apenas as chaves `agent` e `subagentStatusLine` são suportadas.

290 

291Definir `agent` ativa um dos [agents personalizados](/docs/pt/sub-agents) do plugin como a thread principal, aplicando seu prompt de sistema, restrições de ferramentas e modelo. Isso permite que um plugin mude como Claude Code se comporta por padrão quando habilitado.

292 

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

294{

295 "agent": "security-reviewer"

296}

297```

298 

299Este exemplo ativa o agent `security-reviewer` definido no diretório `agents/` do plugin. Configurações de `settings.json` têm prioridade sobre `settings` declarados em `plugin.json`. Chaves desconhecidas são silenciosamente ignoradas.

300 

301<h3 id="organize-complex-plugins">

302 Organize plugins complexos

303</h3>

304 

305Para plugins com muitos componentes, organize sua estrutura de diretório por funcionalidade. Para layouts de diretório completos e padrões de organização, veja [Estrutura de diretório do plugin](/docs/pt/plugins-reference#plugin-directory-structure).

306 

307<h3 id="test-your-plugins-locally">

308 Teste seus plugins localmente

309</h3>

310 

311Use a flag `--plugin-dir` para testar plugins durante o desenvolvimento. Isso carrega seu plugin diretamente sem exigir instalação.

312 

313```bash theme={null}

314claude --plugin-dir ./my-plugin

315```

316 

317A flag também aceita um arquivo `.zip` do diretório do plugin.

318 

319```bash theme={null}

320claude --plugin-dir ./my-plugin.zip

321```

322 

323Quando um plugin `--plugin-dir` tem o mesmo nome que um plugin marketplace instalado, a cópia local tem precedência para essa sessão. Isso permite que você teste mudanças em um plugin que você já tem instalado sem desinstalá-lo primeiro. A exceção é plugins que configurações gerenciadas forçadamente habilitam ou desabilitam: `--plugin-dir` não pode substituir aqueles.

324 

325Conforme você faz mudanças no seu plugin, execute `/reload-plugins` para pegar as atualizações sem reiniciar. Isso recarrega plugins, skills, agents, hooks, plugin MCP servers e plugin LSP servers; em uma sessão sem um terminal interativo, mudanças de plugin MCP server [aguardam sua próxima sessão](/docs/pt/discover-plugins#apply-plugin-changes-without-restarting). Teste seus componentes de plugin:

326 

327* Tente seus skills com `/plugin-name:skill-name`

328* Verifique que agents aparecem em `/context` sob Custom Agents, ou @-mencione um pelo seu nome com escopo

329* Dispare o evento que cada hook corresponde, como pedir ao Claude para editar um arquivo para um hook `PostToolUse`, e confirme seu efeito. Claude Code registra quais hooks corresponderam, seus códigos de saída e sua saída no [log de depuração](/docs/pt/hooks#debug-hooks)

330 

331<Tip>

332 Você pode carregar múltiplos plugins de uma vez especificando a flag múltiplas vezes:

333 

334 ```bash theme={null}

335 claude --plugin-dir ./plugin-one --plugin-dir ./plugin-two

336 ```

337 

338 Para testar um plugin junto com um plugin do qual ele depende, veja [Teste um plugin e sua dependência localmente](/docs/pt/plugin-dependencies#test-a-plugin-and-its-dependency-locally).

339</Tip>

340 

341Para carregar plugins em uma sessão onde você não pode adicionar a flag, liste seus caminhos absolutos na variável de ambiente [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/pt/env-vars#variables) em vez disso. Claude Code carrega cada caminho conforme carrega um caminho `--plugin-dir`. Esses plugins carregam além de qualquer um que você passar com `--plugin-dir`. [Configurações de projeto e local não podem definir essa variável](/docs/pt/settings-reference#variables-claude-code-ignores-in-env). `CLAUDE_CODE_PLUGIN_DIRS` requer Claude Code v2.1.280 ou posterior.

342 

343Tentar o plugin com `--plugin-dir` diz a você que ele pode funcionar. Para descobrir com que frequência Claude realmente o alcança e obtém o resultado correto, execute-o contra um conjunto de prompts de teste com [`claude plugin eval`](/docs/pt/plugin-evals). Cada prompt é executado várias vezes com e sem o plugin carregado, para que você possa ver o que o plugin contribui e detectar regressões quando você o altera ou um novo modelo é lançado.

344 

345Para carregar vários plugins de um único lugar, passe uma pasta que os contém, como `--plugin-dir ./plugins`. Carregar uma pasta de plugins requer Claude Code v2.1.265 ou posterior. Claude Code lê o nível superior da pasta para decidir quais plugins carregam, e em uma sessão interativa também observa a pasta para mudanças posteriores:

346 

347* **O que carrega**: se a pasta não tem um manifesto ou componentes de plugin em seu nível superior, Claude Code a trata como uma pasta de plugins. Cada subpasta imediata que tem um manifesto `.claude-plugin/plugin.json` carrega como um plugin separado. Claude Code ignora tudo mais na pasta sem relatar um erro, incluindo plugins que não têm um manifesto.

348* **Mudanças durante uma sessão interativa**: uma subpasta que você adiciona carrega como um novo plugin uma vez que seu manifesto está em lugar, e quando você remove uma subpasta, seu plugin descarrega. Claude Code imprime uma linha na sessão para cada mudança. Se aplicar uma mudança no meio da conversa [invalidaria o prompt cache](/docs/pt/prompt-caching#enabling-or-disabling-a-plugin), Claude Code a mantém, e a linha diz para executar `/reload-plugins` para aplicá-la.

349 

350Para testar um plugin que já está empacotado como um arquivo `.zip` e hospedado em uma URL, como um artefato de compilação de CI, use `--plugin-url` em vez disso. Claude Code busca o arquivo no início e o carrega apenas para essa sessão. Se Claude Code não conseguir buscar o arquivo, ou o arquivo for inválido, ele inicia sem o plugin e registra um erro de carregamento de plugin que você pode revisar na aba **Errors** do gerenciador `/plugin`. As mesmas [considerações de confiança](/docs/pt/discover-plugins#security) se aplicam como para qualquer fonte de plugin: apenas aponte esse flag para arquivos que você controla ou confia.

351 

352Para carregar múltiplos plugins, repita a flag para cada URL:

353 

354```bash theme={null}

355claude --plugin-url https://example.com/my-plugin.zip --plugin-url https://example.com/other.zip

356```

357 

358Ou passe URLs separadas por espaço como um argumento entre aspas:

359 

360```bash theme={null}

361claude --plugin-url "https://example.com/my-plugin.zip https://example.com/other.zip"

362```

363 

364<h3 id="debug-plugin-issues">

365 Depure problemas de plugin

366</h3>

367 

368Se seu plugin não está funcionando como esperado:

369 

3701. **Verifique a estrutura**: Certifique-se de que seus diretórios estão na raiz do plugin, não dentro de `.claude-plugin/`

3712. **Teste componentes individualmente**: Verifique cada skill, agent e hook separadamente

3723. **Use ferramentas de validação e depuração**: Veja [Ferramentas de depuração e desenvolvimento](/docs/pt/plugins-reference#debugging-and-development-tools) para comandos CLI e técnicas de troubleshooting

373 

374<h3 id="share-your-plugins">

375 Compartilhe seus plugins

376</h3>

377 

378Quando seu plugin estiver pronto para compartilhar:

379 

3801. **Adicione documentação**: Inclua um `README.md` com instruções de instalação e uso

3812. **Escolha uma estratégia de versionamento**: Decida se deve definir uma `version` explícita ou confiar no fallback descrito em [gerenciamento de versão](/docs/pt/plugins-reference#version-management).

3823. **Crie ou use um marketplace**: Distribua através de [marketplaces de plugins](/docs/pt/plugin-marketplaces) para instalação

3834. **Teste com outros**: Tenha membros da equipe testarem o plugin antes de distribuição mais ampla

384 

385Uma vez que seu plugin está em um marketplace, outros podem instalá-lo usando as instruções em [Descobrir e instalar plugins](/docs/pt/discover-plugins). Para manter um plugin interno à sua equipe, hospede o marketplace em um [repositório privado](/docs/pt/plugin-marketplaces#private-repositories).

386 

387<h3 id="submit-your-plugin-to-the-community-marketplace">

388 Envie seu plugin para o marketplace da comunidade

389</h3>

390 

391A Anthropic mantém dois marketplaces públicos para plugins do Claude Code:

392 

393* **`claude-plugins-official`**: um conjunto curado de plugins mantidos pela Anthropic. Claude Code o registra automaticamente na primeira vez que você inicia Claude Code interativamente. Se você executar Claude Code não-interativamente antes desse primeiro lançamento interativo, ou uma [política de marketplace](/docs/pt/plugin-marketplaces#managed-marketplace-restrictions) bloqueou uma tentativa anterior, registre-o você mesmo com `claude plugin marketplace add anthropics/claude-plugins-official`.

394* **`claude-community`**: o marketplace público da comunidade onde envios de terceiros chegam após revisão. Os usuários o adicionam com `/plugin marketplace add anthropics/claude-plugins-community` e instalam a partir dele como `@claude-community`.

395 

396Para enviar seu plugin para revisão do marketplace da comunidade, use um dos formulários no aplicativo:

397 

398* **claude.ai**: [claude.ai/admin-settings/directory/submissions/plugins/new](https://claude.ai/admin-settings/directory/submissions/plugins/new)

399* **Console**: [platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit)

400 

401O formulário claude.ai requer uma organização Team ou Enterprise e acesso ao gerenciamento de diretório; proprietários de organização têm esse acesso por padrão. Autores individuais que não fazem parte de uma organização Team ou Enterprise podem usar o formulário Console em vez disso.

402 

403Execute `claude plugin validate ./your-plugin` localmente antes de enviar, substituindo `./your-plugin` pelo caminho para seu diretório de plugin. O pipeline de revisão executa a mesma verificação em cada envio, junto com triagem de segurança automatizada. Quando a validação passa, Claude Code imprime `✔ Validation passed`, ou `✔ Validation passed with warnings` se houver avisos. Avisos não falham na validação; adicione `--strict` para tratá-los como erros.

404 

405Plugins aprovados são fixados a um SHA de commit específico no catálogo [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community), e CI aumenta o pino automaticamente conforme você envia novos commits para seu repositório. O catálogo público sincroniza todas as noites a partir do pipeline de revisão, então pode haver um atraso entre aprovação e seu plugin aparecer em `marketplace.json`. Para verificar se seu plugin já é instalável, procure por seu nome no [catálogo da comunidade](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json).

406 

407O marketplace oficial, `claude-plugins-official`, é curado separadamente. A Anthropic decide quais plugins incluir a seu critério. Não há processo de aplicação, e o formulário de envio não adiciona plugins ao marketplace oficial.

408 

409Se a Anthropic listar seu plugin no marketplace oficial, seu CLI pode solicitar aos usuários do Claude Code que o instalem. Veja [Recomende seu plugin a partir de seu CLI](/docs/pt/plugin-hints).

410 

411<h2 id="convert-existing-configurations-to-plugins">

412 Converta configurações existentes para plugins

413</h2>

414 

415Se você já tem skills ou hooks em seu diretório `.claude/`, você pode convertê-los em um plugin para compartilhamento e distribuição mais fáceis.

416 

417<h3 id="migration-steps">

418 Passos de migração

419</h3>

420 

421<Steps>

422 <Step title="Crie a estrutura do plugin">

423 Crie um novo diretório de plugin na raiz do seu projeto, ao lado da pasta `.claude/` existente, para que os caminhos relativos `cp` na próxima etapa sejam resolvidos:

424 

425 ```bash theme={null}

426 mkdir -p my-plugin/.claude-plugin

427 ```

428 

429 Crie o arquivo de manifesto em `my-plugin/.claude-plugin/plugin.json`:

430 

431 ```json my-plugin/.claude-plugin/plugin.json theme={null}

432 {

433 "name": "my-plugin",

434 "description": "Migrated from standalone configuration",

435 "version": "1.0.0"

436 }

437 ```

438 </Step>

439 

440 <Step title="Copie seus arquivos existentes">

441 Copie cada diretório de configuração que você tem para a raiz do plugin. Você pode não ter todos os três: se um diretório não existir, `cp` imprime `No such file or directory` e não copia nada, então pule esse comando ou ignore o erro.

442 

443 ```bash theme={null}

444 cp -r .claude/commands my-plugin/

445 

446 cp -r .claude/agents my-plugin/

447 

448 cp -r .claude/skills my-plugin/

449 ```

450 

451 Seu plugin agora contém cópias dos diretórios que você tinha sob `.claude/`. Execute `ls my-plugin` para confirmar: você deve ver cada diretório que copiou.

452 </Step>

453 

454 <Step title="Migre hooks">

455 Se você tem hooks em suas configurações, crie um diretório de hooks:

456 

457 ```bash theme={null}

458 mkdir my-plugin/hooks

459 ```

460 

461 Crie `my-plugin/hooks/hooks.json` com sua configuração de hooks. Copie o objeto `hooks` de seu `.claude/settings.json` ou `settings.local.json`, já que o formato é o mesmo. O comando recebe entrada de hook como JSON em stdin, então use `jq` para extrair o caminho do arquivo:

462 

463 ```json my-plugin/hooks/hooks.json theme={null}

464 {

465 "hooks": {

466 "PostToolUse": [

467 {

468 "matcher": "Write|Edit",

469 "hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npm run lint:fix" }]

470 }

471 ]

472 }

473 }

474 ```

475 </Step>

476 

477 <Step title="Teste seu plugin migrado">

478 Carregue seu plugin para verificar se tudo funciona:

479 

480 ```bash theme={null}

481 claude --plugin-dir ./my-plugin

482 ```

483 

484 Teste cada componente: execute seus comandos, verifique que agents aparecem em `/context`, e dispare o evento que cada hook corresponde para confirmar seu efeito. Claude Code registra quais hooks corresponderam e como saíram no [log de depuração](/docs/pt/hooks#debug-hooks).

485 </Step>

486</Steps>

487 

488<h3 id="what-changes-when-migrating">

489 O que muda ao migrar

490</h3>

491 

492| Independente (`.claude/`) | Plugin |

493| :---------------------------------------- | :-------------------------------------- |

494| Disponível apenas em um projeto | Pode ser compartilhado via marketplaces |

495| Arquivos em `.claude/commands/` | Arquivos em `plugin-name/commands/` |

496| Hooks em `settings.json` | Hooks em `hooks/hooks.json` |

497| Deve copiar manualmente para compartilhar | Instale com `/plugin install` |

498 

499<Note>

500 Após migrar, remova os arquivos originais de `.claude/` para evitar duplicatas. As definições de agents em `.claude/agents/` do projeto e do usuário substituem agents com o mesmo nome do plugin, portanto a versão do plugin só entra em vigor uma vez que os originais são removidos. Skills de plugin são nomeados como `/plugin-name:skill-name`, portanto o `/skill-name` original e a cópia do plugin permanecem disponíveis em vez de um substituir o outro.

501</Note>

502 

503<h2 id="next-steps">

504 Próximos passos

505</h2>

506 

507Agora que você entende o sistema de plugins do Claude Code, aqui estão caminhos sugeridos para diferentes objetivos:

508 

509<h3 id="for-plugin-users">

510 Para usuários de plugins

511</h3>

512 

513* [Descobrir e instalar plugins](/docs/pt/discover-plugins): navegue em marketplaces e instale plugins

514* [Configurar marketplaces de equipe](/docs/pt/discover-plugins#configure-team-marketplaces): configure plugins no nível do repositório para sua equipe

515 

516<h3 id="for-plugin-developers">

517 Para desenvolvedores de plugins

518</h3>

519 

520* [Testar plugins com evals](/docs/pt/plugin-evals): meça o que seu plugin muda e gate CI nele

521* [Criar e distribuir um marketplace](/docs/pt/plugin-marketplaces): empacote e compartilhe seus plugins

522* [Referência de plugins](/docs/pt/plugins-reference): especificações técnicas completas

523* Mergulhe mais fundo em componentes específicos do plugin:

524 * [Skills](/docs/pt/skills): detalhes de desenvolvimento de skill

525 * [Subagents](/docs/pt/sub-agents): configuração e capacidades de agent

526 * [Hooks](/docs/pt/hooks): manipulação de eventos e automação

527 * [MCP](/docs/pt/mcp): integração de ferramentas externas

plugins-reference.md +0 −1645 deleted

File Deleted View Diff

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# Referência de plugins

6 

7> Referência técnica completa para o sistema de plugins do Claude Code, incluindo esquemas, comandos CLI e especificações de componentes.

8 

9<Tip>

10 Procurando instalar plugins? Veja [Descobrir e instalar plugins](/docs/pt/discover-plugins). Para criar plugins, veja [Plugins](/docs/pt/plugins). Para distribuir plugins, veja [Marketplaces de plugins](/docs/pt/plugin-marketplaces).

11</Tip>

12 

13Um **plugin** é um diretório independente de componentes que estende o Claude Code com funcionalidade personalizada. Os componentes do plugin incluem skills, agents, hooks, servidores MCP, servidores LSP e monitores.

14 

15<h2 id="plugin-components-reference">

16 Referência de componentes de plugin

17</h2>

18 

19<h3 id="skills">

20 Skills

21</h3>

22 

23Os plugins adicionam skills ao Claude Code, criando atalhos `/name` que você ou Claude podem invocar.

24 

25**Localização**: diretório `skills/` ou `commands/` na raiz do plugin, ou um único arquivo `SKILL.md` na raiz do plugin

26 

27**Formato de arquivo**: Skills são diretórios com `SKILL.md`; commands são arquivos markdown simples

28 

29**Estrutura de skill**:

30 

31```text theme={null}

32skills/

33├── pdf-processor/

34│ ├── SKILL.md

35│ ├── reference.md (opcional)

36│ └── scripts/ (opcional)

37└── code-reviewer/

38 └── SKILL.md

39```

40 

41Skills e commands são descobertos automaticamente quando o plugin é instalado.

42 

43Se um plugin não tem diretório `skills/` e nenhum campo manifest `skills`, um `SKILL.md` na raiz do plugin é carregado como um único skill. Defina o campo frontmatter `name` para controlar o nome de invocação do skill. Sem ele, Claude Code volta para o nome do diretório de instalação. Para um plugin [copiado para o cache](#plugin-caching-and-file-resolution), esse nome é uma string de versão que muda a cada atualização. Para plugins que enviam mais de um skill, use o layout de diretório `skills/` mostrado acima.

44 

45Em skills e commands de plugin, campos frontmatter booleanos como `disable-model-invocation` aceitam `yes`, `no`, `on`, `off`, `1` e `0` em qualquer caso de letra, além de `true` e `false`. Antes da v2.1.218, Claude Code reconhecia apenas `true` e `false`.

46 

47Para detalhes completos, consulte [Skills](/docs/pt/skills).

48 

49<h3 id="agents">

50 Agents

51</h3>

52 

53Os plugins podem fornecer subagentes especializados para tarefas específicas que Claude pode invocar automaticamente quando apropriado.

54 

55**Localização**: diretório `agents/` na raiz do plugin

56 

57**Formato de arquivo**: Arquivos markdown descrevendo capacidades do agent

58 

59**Estrutura de agent**:

60 

61```markdown theme={null}

62name: agent-name

63description: O que este agent se especializa e quando Claude deve invocá-lo

64model: sonnet

65effort: medium

66maxTurns: 20

67disallowedTools: Write, Edit

68 

69Prompt de sistema detalhado para o agent descrevendo seu papel, expertise e comportamento.

70```

71 

72<h4 id="plugin-agent-frontmatter">

73 Frontmatter de agent de plugin

74</h4>

75 

76Um arquivo de agent de plugin usa os mesmos [campos frontmatter que um arquivo de subagent](/docs/pt/sub-agents#supported-frontmatter-fields), exceto que Claude Code honra apenas alguns deles quando o agent vem de um plugin:

77 

78* **Suportados**: `name`, `description`, `model`, `effort`, `maxTurns`, `tools`, `disallowedTools`, `skills`, `memory`, `background`, `omitClaudeMd`, `isolation`, `color` e `experimental`. O único valor válido de `isolation` é `"worktree"`.

79* **Não suportados, por razões de segurança**: `hooks`, `mcpServers` e `permissionMode`. Claude Code ignora estes quando carrega um agent de um plugin. Para usá-los, copie o arquivo de agent para `.claude/agents/` ou `~/.claude/agents/`.

80* **Não suportados**: `initialPrompt`.

81 

82Você pode colocar arquivos de agent de plugin em subpastas de `agents/`. Claude Code [os carrega recursivamente](/docs/pt/sub-agents#choose-the-subagent-scope) e une o nome do plugin, cada nome de subpasta e o nome do arquivo com dois-pontos para formar o nome com escopo do agent. Por exemplo, `agents/review/security.md` em um plugin chamado `my-plugin` carrega como `my-plugin:review:security`. Duas configurações mudam esse nome:

83 

84* Frontmatter `name`: ele substitui apenas o nome do arquivo, então `name: audit` em `agents/review/security.md` carrega como `my-plugin:review:audit`

85* Campo manifest [`agents`](#component-path-fields): um arquivo que você lista lá carrega sem nomes de subpasta, então `"agents": "./custom/review/security.md"` carrega como `my-plugin:security`

86 

87Claude Code carrega um agent de plugin mesmo quando seu frontmatter não tem `name` ou não faz parse:

88 

89* Sem `name`: Claude Code nomeia o agent após o arquivo, então `agents/reviewer.md` em um plugin chamado `my-plugin` carrega como `my-plugin:reviewer`

90* Frontmatter que não faz parse: Claude Code nomeia o agent após o arquivo, usa `Agent from my-plugin plugin` como sua descrição e ignora cada campo no arquivo

91 

92Em contraste, Claude Code pula um arquivo de project, user ou managed agent cujo frontmatter não tem `name` ou não faz parse.

93 

94Para encontrar arquivos no diretório padrão `agents/` de um plugin cujo frontmatter não faz parse, execute `claude plugin validate`. O caminho que você passa depende se o plugin tem um manifest, e ambos os exemplos usam `./my-plugin` como o diretório do plugin:

95 

96* Um plugin com manifest: `claude plugin validate ./my-plugin`

97* Um plugin sem manifest: `claude plugin validate ./my-plugin/agents`. Requer Claude Code v2.1.233 ou posterior.

98 

99Agents aparecem na [typeahead de @-mention](/docs/pt/sub-agents#invoke-subagents-explicitly) sob seu nome com escopo, como `my-plugin:code-reviewer`, uma vez que o plugin está habilitado.

100 

101Para detalhes completos, consulte [Subagents](/docs/pt/sub-agents).

102 

103<h3 id="hooks">

104 Hooks

105</h3>

106 

107Os plugins podem fornecer manipuladores de eventos que respondem a eventos de Claude Code automaticamente.

108 

109**Localização**: `hooks/hooks.json` na raiz do plugin, ou inline em plugin.json

110 

111**Formato**: Configuração JSON com matchers de eventos e ações

112 

113`hooks/hooks.json` pode conter uma chave `$schema` de nível superior que nomeia uma URL de JSON Schema para autocompletar e validação do editor. Claude Code ignora a chave no tempo de carregamento.

114 

115**Configuração de hook**:

116 

117```json theme={null}

118{

119 "hooks": {

120 "PostToolUse": [

121 {

122 "matcher": "Write|Edit",

123 "hooks": [

124 {

125 "type": "command",

126 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/format-code.sh"

127 }

128 ]

129 }

130 ]

131 }

132}

133```

134 

135Plugin hooks respondem aos mesmos eventos de ciclo de vida que [hooks definidos pelo usuário](/docs/pt/hooks):

136 

137| Evento | Quando dispara |

138| :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

139| `SessionStart` | Quando uma sessão começa ou é retomada |

140| `Setup` | Quando você inicia Claude Code com `--init-only`, ou com `--init` ou `--maintenance` no modo `-p`. Para preparação única em CI ou scripts |

141| `UserPromptSubmit` | Quando você envia um prompt, antes de Claude processá-lo |

142| `UserPromptExpansion` | Quando um comando digitado pelo usuário se expande em um prompt, antes de chegar a Claude. Pode bloquear a expansão |

143| `PreToolUse` | Antes de uma chamada de ferramenta ser executada. Pode bloqueá-la |

144| `PermissionRequest` | Quando uma chamada de ferramenta precisa de uma decisão de permissão |

145| `PermissionDenied` | Quando o modo automático nega uma chamada de ferramenta, incluindo negações sem um veredicto do classificador. Use JSON `hookSpecificOutput.retry: true` para informar ao modelo que ele pode tentar novamente a chamada de ferramenta negada. Claude Code ignora `retry` quando o classificador não produziu veredicto |

146| `PostToolUse` | Depois que uma chamada de ferramenta é bem-sucedida |

147| `PostToolUseFailure` | Depois que uma chamada de ferramenta falha |

148| `PostToolBatch` | Depois que um lote completo de chamadas de ferramenta paralelas é resolvido, antes da próxima chamada do modelo |

149| `Notification` | Quando Claude Code envia uma notificação |

150| `MessageDisplay` | Enquanto o texto da mensagem do assistente está sendo exibido |

151| `SubagentStart` | Quando um subagente é criado |

152| `SubagentStop` | Quando um subagente termina |

153| `TaskCreated` | Quando uma tarefa está sendo criada via `TaskCreate` |

154| `TaskCompleted` | Quando uma tarefa está sendo marcada como concluída |

155| `Stop` | Quando Claude termina de responder |

156| `StopFailure` | Quando a rodada termina devido a um erro de API |

157| `TeammateIdle` | Quando um colega de [equipe de agentes](/docs/pt/agent-teams) está prestes a ficar ocioso |

158| `InstructionsLoaded` | Quando um arquivo CLAUDE.md ou `.claude/rules/*.md` é carregado no contexto. Dispara no início da sessão e quando os arquivos são carregados lentamente durante uma sessão |

159| `ConfigChange` | Quando um arquivo de configuração muda durante uma sessão |

160| `CwdChanged` | Quando o diretório de trabalho muda, por exemplo quando Claude executa um comando `cd`. Útil para gerenciamento reativo do ambiente com ferramentas como direnv |

161| `DirectoryAdded` | Quando um diretório de trabalho é adicionado no meio da sessão via `/add-dir` ou a solicitação de controle SDK `register_repo_root` |

162| `FileChanged` | Quando um arquivo observado muda no disco. O campo `matcher` especifica quais nomes de arquivo observar |

163| `WorktreeCreate` | Quando um worktree está sendo criado via `--worktree`, `isolation: "worktree"`, ou para uma sessão em segundo plano. Substitui o comportamento padrão do git |

164| `WorktreeRemove` | Quando um worktree está sendo removido na saída da sessão, quando um subagente termina, ou quando você exclui uma sessão em segundo plano |

165| `PreCompact` | Antes da compactação de contexto |

166| `PostCompact` | Depois que a compactação de contexto é concluída |

167| `PreModelSwitch` | Antes de Claude Code aplicar uma mudança de modelo que você ou um cliente solicitou. Pode bloquear a mudança |

168| `PostModelSwitch` | Depois que o modelo da sessão muda, incluindo mudanças que Claude Code faz por conta própria, como restaurar o modelo quando você retoma uma sessão |

169| `Elicitation` | Quando um servidor MCP solicita entrada do usuário durante uma chamada de ferramenta |

170| `ElicitationResult` | Depois que um usuário responde a uma elicitação MCP, antes da resposta ser enviada de volta ao servidor |

171| `SessionEnd` | Quando uma sessão é encerrada |

172 

173**Tipos de hook**:

174 

175* `command`: executar comandos shell ou scripts

176* `http`: enviar o JSON do evento como uma solicitação POST para uma URL

177* `mcp_tool`: chamar uma ferramenta em um [servidor MCP](/docs/pt/mcp) configurado

178* `prompt`: avaliar um prompt com um LLM (usa placeholder `$ARGUMENTS` para contexto)

179* `agent`: executar um verificador agentic com ferramentas para tarefas de verificação complexas

180 

181Hooks que visam o [servidor MCP agrupado](#mcp-servers) do próprio plugin devem usar seus nomes com escopo. Matchers de ferramenta e campos `if` usam o nome de ferramenta com escopo `mcp__plugin_<plugin-name>_<server-name>__<tool>`, e o campo `server` de um hook `mcp_tool` usa `plugin:<plugin-name>:<server-name>`. Um matcher escrito contra a chave do servidor simples nunca dispara. Consulte [Match MCP tools](/docs/pt/hooks#match-mcp-tools) e [Plugin-provided MCP servers](/docs/pt/mcp#plugin-provided-mcp-servers).

182 

183<h3 id="mcp-servers">

184 MCP servers

185</h3>

186 

187Os plugins podem agrupar servidores Model Context Protocol (MCP) para conectar Claude Code com ferramentas e serviços externos.

188 

189**Localização**: `.mcp.json` na raiz do plugin, ou inline em plugin.json

190 

191**Formato**: Configuração padrão de servidor MCP

192 

193**Configuração de servidor MCP**:

194 

195```json theme={null}

196{

197 "mcpServers": {

198 "plugin-database": {

199 "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",

200 "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"],

201 "env": {

202 "DB_PATH": "${CLAUDE_PLUGIN_ROOT}/data"

203 }

204 },

205 "plugin-api-client": {

206 "command": "npx",

207 "args": ["@company/mcp-server", "--plugin-mode"]

208 }

209 }

210}

211```

212 

213**Comportamento de integração**:

214 

215* Servidores MCP de plugin iniciam automaticamente quando o plugin está habilitado

216* Servidores aparecem como ferramentas MCP padrão no toolkit de Claude

217* Servidores de plugin podem ser configurados independentemente de servidores MCP do usuário

218* Se você executar [`/reload-plugins`](/docs/pt/discover-plugins#apply-plugin-changes-without-restarting) no meio da sessão, Claude Code mantém as conexões ativas de servidores cuja configuração não foi alterada

219 

220<h3 id="lsp-servers">

221 LSP servers

222</h3>

223 

224<Tip>

225 Procurando usar plugins LSP? Instale-os do marketplace oficial: procure por "lsp" na aba Discover do `/plugin`. Esta seção documenta como criar plugins LSP para linguagens não cobertas pelo marketplace oficial.

226</Tip>

227 

228Os plugins podem fornecer servidores [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) (LSP) para dar a Claude [inteligência de código em tempo real](/docs/pt/discover-plugins#code-intelligence) enquanto trabalha em sua base de código.

229 

230**Localização**: `.lsp.json` na raiz do plugin, ou inline em `plugin.json`

231 

232**Formato**: Configuração JSON mapeando nomes de servidores de linguagem para suas configurações

233 

234**Formato de arquivo `.lsp.json`**:

235 

236```json theme={null}

237{

238 "go": {

239 "command": "gopls",

240 "args": ["serve"],

241 "extensionToLanguage": {

242 ".go": "go"

243 }

244 }

245}

246```

247 

248**Inline em `plugin.json`**:

249 

250```json theme={null}

251{

252 "name": "my-plugin",

253 "lspServers": {

254 "go": {

255 "command": "gopls",

256 "args": ["serve"],

257 "extensionToLanguage": {

258 ".go": "go"

259 }

260 }

261 }

262}

263```

264 

265**Campos obrigatórios:**

266 

267| Campo | Descrição |

268| :-------------------- | :------------------------------------------------------------ |

269| `command` | O binário LSP a executar (deve estar em PATH) |

270| `extensionToLanguage` | Mapeia extensões de arquivo para identificadores de linguagem |

271 

272**Campos opcionais:**

273 

274| Campo | Descrição |

275| :---------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

276| `args` | Argumentos de linha de comando para o servidor LSP |

277| `transport` | Transporte de comunicação: `stdio` (padrão) ou `socket`. Claude Code aceita `socket` mas executa cada servidor sobre stdio, então as regras de protocolo stdout se aplicam a todos os servidores |

278| `env` | Variáveis de ambiente a definir ao iniciar o servidor |

279| `initializationOptions` | Opções passadas para o servidor durante a inicialização |

280| `settings` | Configurações passadas via `workspace/didChangeConfiguration` |

281| `workspaceFolder` | Caminho da pasta de workspace para o servidor |

282| `startupTimeout` | Tempo máximo para aguardar a inicialização do servidor (milissegundos) |

283| `shutdownTimeout` | Tempo máximo para aguardar o desligamento gracioso (milissegundos). Quando o timeout decorre, Claude Code encerra o processo do servidor. Quando não definido, nenhum timeout se aplica |

284| `restartOnCrash` | Se deve reiniciar o servidor após ele falhar. Padrão é `true`. Defina como `false` para deixar um servidor que falhou parado em vez de reiniciá-lo |

285| `maxRestarts` | Número máximo de tentativas de reinicialização antes de desistir |

286| `diagnostics` | Se deve enviar diagnósticos para o contexto de Claude após edições (padrão `true`). Defina como `false` para manter a navegação de código mas suprimir a injeção automática de diagnósticos. |

287 

288`restartOnCrash` e `shutdownTimeout` requerem Claude Code v2.1.205 ou posterior. Antes da v2.1.205, o schema de configuração aceitava ambas as opções mas definir qualquer uma delas fazia Claude Code pular esse servidor LSP inteiramente na inicialização, com o motivo visível apenas na saída `claude --debug`.

289 

290**Múltiplos servidores para a mesma extensão**: quando mais de um servidor LSP habilitado declara a mesma extensão de arquivo em `extensionToLanguage`, se os servidores vêm de um plugin ou de plugins diferentes, o primeiro servidor registrado manipula arquivos com essa extensão e os outros nunca iniciam. A interface `/plugin` mostra um aviso nomeando o plugin cujo servidor está ativo.

291 

292**Servidores que falham ao inicializar**: Claude Code pula um servidor cuja configuração é inválida, por exemplo um que falta `command` ou `extensionToLanguage`, e os outros servidores configurados ainda iniciam. Execute `claude --debug` para ver por que um servidor foi pulado.

293 

294Um servidor pulado não reclama suas extensões de arquivo, então outro servidor válido que declara a mesma extensão, do mesmo plugin ou de um plugin diferente, ainda manipula esses arquivos.

295 

296**Envie saída de log para stderr, não stdout**: Claude Code lê stdout de um servidor apenas como mensagens de protocolo, e aceita cabeçalhos de mensagem até 64 KiB e um corpo de mensagem até 32 MiB. Claude Code desconecta um servidor que excede qualquer limite ou escreve saída não-protocolo para stdout, e conta a desconexão como uma falha para `restartOnCrash` e `maxRestarts`. Quando você executa com `--debug`, Claude Code escreve um erro nomeando a causa para o log de debug.

297 

298<Warning>

299 **Você deve instalar o binário do servidor de linguagem separadamente.** Plugins LSP configuram como Claude Code se conecta a um servidor de linguagem, mas eles não incluem o servidor em si. Se você vê `Executable not found in $PATH` na aba Errors do `/plugin`, instale o binário necessário para sua linguagem.

300</Warning>

301 

302**Plugins LSP disponíveis:**

303 

304| Plugin | Servidor de linguagem | Comando de instalação |

305| :------------------ | :------------------------- | :------------------------------------------------------------------------------------------- |

306| `pyright-lsp` | Pyright (Python) | `pip install pyright` ou `npm install -g pyright` |

307| `typescript-lsp` | TypeScript Language Server | `npm install -g typescript-language-server typescript` |

308| `rust-analyzer-lsp` | rust-analyzer | [Veja instalação de rust-analyzer](https://rust-analyzer.github.io/manual.html#installation) |

309 

310Instale o servidor de linguagem primeiro, depois instale o plugin do marketplace.

311 

312<h3 id="monitors">

313 Monitors

314</h3>

315 

316Os plugins podem declarar monitors de background que Claude Code inicia automaticamente quando o plugin está ativo. Cada monitor executa um comando shell pela vida útil da sessão e entrega cada linha de stdout para Claude como uma notificação, para que Claude possa reagir a entradas de log, mudanças de status ou eventos pesquisados sem ser solicitado a iniciar o watch em si.

317 

318Plugin monitors usam o mesmo mecanismo que a [ferramenta Monitor](/docs/pt/tools-reference#monitor-tool) e compartilham suas restrições de disponibilidade. Eles executam apenas em sessões CLI interativas, executam sem sandbox no mesmo nível de confiança que [hooks](#hooks), e são pulados em hosts onde a ferramenta Monitor não está disponível.

319 

320**Localização**: `monitors/monitors.json` na raiz do plugin, ou inline em `plugin.json`

321 

322**Formato**: Array JSON de entradas de monitor

323 

324O seguinte `monitors/monitors.json` observa um endpoint de status de deployment e um log de erro local:

325 

326```json theme={null}

327[

328 {

329 "name": "deploy-status",

330 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/poll-deploy.sh",

331 "description": "Deployment status changes"

332 },

333 {

334 "name": "error-log",

335 "command": "tail -F ./logs/error.log",

336 "description": "Application error log",

337 "when": "on-skill-invoke:debug"

338 }

339]

340```

341 

342Para declarar monitors inline, defina `experimental.monitors` em `plugin.json` para o mesmo array. Para carregar de um caminho não-padrão, defina `experimental.monitors` para uma string de caminho relativo como `"./config/monitors.json"`. Monitors são um [componente experimental](#experimental-components).

343 

344**Campos obrigatórios:**

345 

346| Campo | Descrição |

347| :------------ | :---------------------------------------------------------------------------------------------------------------------------- |

348| `name` | Identificador único dentro do plugin. Previne processos duplicados quando o plugin recarrega ou um skill é invocado novamente |

349| `command` | Comando shell executado como um processo de background persistente no diretório de trabalho da sessão |

350| `description` | Resumo curto do que está sendo observado. Mostrado no painel de tarefas e em resumos de notificação |

351 

352**Campos opcionais:**

353 

354| Campo | Descrição |

355| :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

356| `when` | Controla quando o monitor inicia. `"always"` inicia na inicialização da sessão e no recarregamento do plugin, e é o padrão. `"on-skill-invoke:<skill-name>"` inicia na primeira vez que o skill nomeado neste plugin é despachado |

357 

358O valor `command` suporta as [substituições de caminho](#environment-variables) `${CLAUDE_PLUGIN_ROOT}`, `${CLAUDE_PLUGIN_DATA}` e `${CLAUDE_PROJECT_DIR}`, mais qualquer `${ENV_VAR}` do ambiente. Prefixe o comando com `cd "${CLAUDE_PLUGIN_ROOT}" && ` se o script precisa executar do próprio diretório do plugin.

359 

360Um `command` de monitor não pode referenciar valores [`${user_config.*}`](#user-configuration). O comando executa através de um shell, então Claude Code rejeita o monitor com um [erro](/docs/pt/errors#plugin-command-references-user-config) em vez de substituir o valor. Processos de monitor não recebem variáveis de ambiente `CLAUDE_PLUGIN_OPTION_<KEY>`, então faça o script de monitor ler o valor de um arquivo de configuração que ele possui.

361 

362Se você desabilitar um plugin no meio da sessão, Claude Code não para monitors que já estão em execução; eles param quando a sessão termina.

363 

364<h3 id="themes">

365 Themes

366</h3>

367 

368Os plugins podem enviar temas de cor que aparecem em `/theme` junto com as predefinições integradas e os temas locais do usuário. Um tema é um arquivo JSON em `themes/` com uma predefinição `base` e um mapa esparso `overrides` de tokens de cor. Themes são um [componente experimental](#experimental-components).

369 

370```json theme={null}

371{

372 "name": "Dracula",

373 "base": "dark",

374 "overrides": {

375 "claude": "#bd93f9",

376 "error": "#ff5555",

377 "success": "#50fa7b"

378 }

379}

380```

381 

382Quando um usuário seleciona um tema de plugin, Claude Code salva `custom:<plugin-name>:<slug>` em sua configuração. Temas de plugin são somente leitura: quando um usuário pressiona `Ctrl+E` em um em `/theme`, Claude Code o copia para `~/.claude/themes/` para que possam editar a cópia.

383 

384***

385 

386<h2 id="plugin-installation-scopes">

387 Escopos de instalação de plugin

388</h2>

389 

390Quando você instala um plugin, você escolhe um **escopo** que determina onde o plugin está disponível e quem mais pode usá-lo:

391 

392| Escopo | Arquivo de configuração | Caso de uso |

393| :-------- | :--------------------------------------- | :------------------------------------------------------------------------------------------------ |

394| `user` | `~/.claude/settings.json` | Plugins pessoais disponíveis em todos os projetos (padrão) |

395| `project` | `.claude/settings.json` | Plugins de equipe compartilhados via controle de versão |

396| `local` | `.claude/settings.local.json` | Plugins específicos do projeto, ignorados pelo git quando Claude Code salva uma configuração nele |

397| `managed` | [Managed settings](/docs/pt/managed-settings) | Plugins gerenciados (somente leitura, apenas atualizar) |

398 

399Os plugins usam o mesmo sistema de escopo que outras configurações do Claude Code. Para instruções de instalação e sinalizadores de escopo, consulte [Install plugins](/docs/pt/discover-plugins#install-plugins). Para uma explicação completa de escopos, consulte [Configuration scopes](/docs/pt/settings#where-settings-live).

400 

401***

402 

403<h2 id="skills-directory-plugins">

404 Plugins de diretório de skills

405</h2>

406 

407Qualquer pasta sob um diretório de skills que contenha um manifesto `.claude-plugin/plugin.json` é carregada como um plugin nomeado `<name>@skills-dir` na próxima sessão, sem marketplace e sem etapa de instalação. Crie um com [`plugin init`](#plugin-init). Diferentemente de uma instalação de marketplace copiada, o plugin é descoberto no local em vez de ser copiado para o cache de plugins.

408 

409Uma árvore de diretório de skills suporta três coisas distintas:

410 

411| O que você tem | O que é |

412| :-------------------------------------------- | :-------------------------------------------------------------------------------------------- |

413| `<skills-dir>/foo/SKILL.md` sem manifesto | Um [skill](/docs/pt/skills) simples nomeado `foo` |

414| `<skills-dir>/foo/.claude-plugin/plugin.json` | Um plugin `foo@skills-dir`, que pode agrupar seus próprios skills, agents, hooks e muito mais |

415| `<plugin>/skills/bar/SKILL.md` | Um skill `bar` empacotado dentro de um plugin |

416 

417<h3 id="choose-where-the-plugin-loads-from">

418 Escolha de onde o plugin é carregado

419</h3>

420 

421| Diretório de skills | Escopo | Carrega |

422| :---------------------- | :------ | :--------------------------------------------------------------------------------------------------------------------------------------- |

423| `~/.claude/skills/` | pessoal | Em cada projeto, já que a localização é apenas sua |

424| `<cwd>/.claude/skills/` | projeto | Apenas depois que você aceita o [diálogo de confiança](/docs/pt/permissions#what-runs-before-you-trust-a-folder) do workspace para essa pasta |

425 

426Um plugin de escopo de projeto é verificado no repositório e alcança cada colaborador que o clona. Como esse conteúdo vem do repositório em vez de vir de você, ele é carregado apenas após o mesmo portão de confiança que governa as regras de permissão de projeto em `.claude/settings.json`, portanto confiar em uma pasta pai ou executar com `-p` não é suficiente, e componentes que executam código são ainda mais restritos:

427 

428* Servidores MCP que ele declara passam pela [mesma aprovação por servidor](/docs/pt/mcp) que um `.mcp.json` de projeto

429* Servidores LSP iniciam apenas depois que você confia no workspace

430* [Monitores de fundo](#monitors) não são carregados

431 

432Plugins de escopo pessoal não têm nenhuma dessas restrições.

433 

434<Warning>

435 Plugins `@skills-dir` de escopo de projeto são carregados apenas do `.claude/skills/` do [diretório de trabalho primário](/docs/pt/permissions#working-directories) da sessão. Eles não [caminham até a raiz do repositório](/docs/pt/skills#discovery-from-parent-and-nested-directories) da forma que skills e comandos simples fazem, portanto iniciar de um subdiretório perde um plugin que vive na raiz do repositório. Inicie a partir da raiz do repositório, ou [mova a sessão para lá com `/cd`](/docs/pt/permissions#move-the-session-to-another-directory) na v2.1.246 ou posterior.

436</Warning>

437 

438<h3 id="edit-reload-and-disable-a-skills-directory-plugin">

439 Editar, recarregar e desabilitar um plugin de diretório de skills

440</h3>

441 

442As alterações que você faz no `SKILL.md` de um skill entram em vigor imediatamente na sessão atual. As alterações em outros componentes do plugin, como `hooks/`, `.mcp.json`, `agents/` e `output-styles/`, não entram. Execute `/reload-plugins` ou reinicie Claude Code para aplicá-las. Veja [Detecção de mudança ao vivo](/docs/pt/skills#live-change-detection).

443 

444Para parar de carregar um plugin de diretório de skills, delete sua pasta ou desabilite-o por nome. Não há etapa de `uninstall` porque nada foi instalado de um marketplace.

445 

446```bash theme={null}

447claude plugin disable my-tool@skills-dir

448```

449 

450***

451 

452<h2 id="synced-plugins">

453 Plugins sincronizados do claude.ai

454</h2>

455 

456Claude Code carrega os plugins habilitados para sua conta claude.ai, incluindo plugins que sua organização ativa para seus membros, juntamente com os plugins que você instala a partir de marketplaces. Ele baixa cada um em `~/.claude/plugins/synced/` e o carrega como `<name>@synced`, sem marketplace e sem registro de instalação. Um plugin sincronizado é executado com a mesma confiança que um plugin de marketplace que você instalou: suas skills, agents, hooks, servidores MCP e servidores LSP são todos carregados.

457 

458Onde Claude Code sincroniza esses plugins depende da sessão:

459 

460* Em [Cowork](https://claude.com/product/cowork) e [sessões em nuvem](/docs/pt/cloud-environments#what-carries-over-from-your-setup), Claude Code baixa-os no próprio ambiente da sessão quando a sessão inicia. Antes da v2.1.239, Claude Code carregava esses plugins como `<name>@inline`, a identidade que os plugins `--plugin-dir` usam.

461* Em sessões de terminal onde você faz login com sua conta claude.ai, Claude Code verifica sua conta uma vez cada vez que inicia, depois baixa plugins novos e atualizados e remove os que você ou sua organização desativou, tudo em segundo plano. A sincronização em sessões de terminal requer Claude Code v2.1.273 ou posterior.

462 

463A verificação de inicialização é executada em segundo plano, portanto pode ser concluída após sua sessão ter iniciado. Quando adiciona, atualiza ou remove um plugin sincronizado em uma sessão interativa, Claude Code mostra `Plugins changed. Run /reload-plugins to activate.` Execute [`/reload-plugins`](/docs/pt/discover-plugins#apply-plugin-changes-without-restarting) para carregar a alteração nessa sessão, ou deixe para a próxima vez que você iniciar Claude Code. Se você habilitar um plugin no claude.ai enquanto uma sessão está em execução, Claude Code o baixa na próxima vez que inicia.

464 

465A sincronização de plugins em sessões de terminal é executada sob as mesmas condições de login que [skills sincronizadas do claude.ai](/docs/pt/skills#where-synced-skills-load). Também precisa de um login que conceda a Claude Code acesso aos plugins de sua conta.

466 

467Um login de uma versão anterior do Claude Code obtém acesso a plugins na próxima vez que Claude Code renova esse login em segundo plano, dentro de algumas horas, ou imediatamente se você executar `/login` novamente. A sincronização de plugins começa na próxima vez que você inicia Claude Code após isso.

468 

469`claude plugin list` mostra plugins sincronizados sob um cabeçalho `Synced from claude.ai`, e a aba **Installed** do `/plugin` os lista com `synced` como sua fonte. Gerencie um plugin sincronizado pelo ID `<name>@synced` que `claude plugin list` imprime:

470 

471* **Desativar um**: execute `claude plugin disable <name>@synced`, ou desative-o na aba **Installed** do `/plugin`. Claude Code salva a escolha como `"<name>@synced": false` em seu [`enabledPlugins`](/docs/pt/settings-reference#enabledplugins) de nível de usuário. Para ativar o plugin novamente, execute `claude plugin enable <name>@synced`.

472* **Manter um fora em todos os lugares**: [desative o plugin para sua conta claude.ai](/docs/pt/desktop#extend-claude-code). Para mantê-lo fora de um projeto em todos os ambientes, defina `"<name>@synced": false` sob `enabledPlugins` no `.claude/settings.json` comprometido daquele projeto.

473* **Gerencie o plugin em si no claude.ai**: `claude plugin install`, `update` e `uninstall` não se aplicam a um plugin sincronizado. Claude Code baixa as atualizações de um plugin na próxima sincronização. Para remover um, desative o plugin para sua conta claude.ai, e Claude Code o remove na próxima sincronização.

474* **Pare de sincronizar em uma máquina**: defina [`syncClaudeAiPlugins`](/docs/pt/settings-reference#syncclaudeaiplugins) como `false` em suas configurações de usuário. Claude Code para de baixar, e na próxima vez que inicia, move os plugins que já sincronizou para `~/.claude/plugins/.trash/` e não os carrega mais. Sua organização pode definir a mesma chave em [configurações gerenciadas](/docs/pt/managed-settings), ou desativar Skills no claude.ai, o que também para plugins de sincronizar.

475 

476Você não pode desativar um plugin que sua organização marca como obrigatório no claude.ai. Claude Code o carrega mesmo se você o desativou anteriormente, e `claude plugin disable` recusa com `Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.` Em `claude plugin list`, esses plugins são marcados `required by your org`.

477 

478Quando um plugin habilitado de qualquer outra fonte corresponde ao nome de um plugin sincronizado, Claude Code carrega esse plugin e relata a cópia sincronizada como não carregada. Outras fontes incluem instalações de marketplace, [plugins do diretório de skills](#skills-directory-plugins), plugins `--plugin-dir` e plugins integrados ao Claude Code. Para usar a cópia claude.ai em vez disso, desative sua própria cópia. Antes da v2.1.239, Claude Code carregava a cópia sincronizada em vez de uma instalação de marketplace com o mesmo nome.

479 

480***

481 

482<h2 id="plugin-manifest-schema">

483 Esquema de manifesto de plugin

484</h2>

485 

486O arquivo `.claude-plugin/plugin.json` define os metadados e a configuração do seu plugin.

487 

488O manifesto é opcional. Se omitido, Claude Code descobre automaticamente componentes em [locais padrão](#file-locations-reference) e deriva o nome do plugin do nome do diretório. Use um manifesto quando precisar fornecer metadados ou caminhos de componentes personalizados.

489 

490<h3 id="complete-schema">

491 Esquema completo

492</h3>

493 

494```json theme={null}

495{

496 "name": "plugin-name",

497 "displayName": "Plugin Name",

498 "version": "1.2.0",

499 "description": "Brief plugin description",

500 "author": {

501 "name": "Author Name",

502 "email": "author@example.com",

503 "url": "https://github.com/author"

504 },

505 "homepage": "https://docs.example.com/plugin",

506 "repository": "https://github.com/author/plugin",

507 "license": "MIT",

508 "keywords": ["keyword1", "keyword2"],

509 "metadata": { "catalogId": "cat-123", "tier": "pro" },

510 "skills": "./custom/skills/",

511 "commands": ["./custom/commands/special.md"],

512 "agents": ["./custom/agents/reviewer.md"],

513 "hooks": "./config/hooks.json",

514 "mcpServers": "./mcp-config.json",

515 "outputStyles": "./styles/",

516 "lspServers": "./.lsp.json",

517 "experimental": {

518 "themes": "./themes/",

519 "monitors": "./monitors.json",

520 "evals": "quality/evals"

521 },

522 "dependencies": [

523 "helper-lib",

524 { "name": "secrets-vault", "version": "~2.1.0" }

525 ]

526}

527```

528 

529<h3 id="required-fields">

530 Campos obrigatórios

531</h3>

532 

533Se você incluir um manifesto, `name` é o único campo obrigatório.

534 

535| Campo | Tipo | Descrição | Exemplo |

536| :----- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------- |

537| `name` | string | Identificador único em kebab-case, sem espaços, caracteres de controle ou caracteres de formatação bidirecional. Quando uma [entrada de marketplace](/docs/pt/plugin-marketplaces#plugin-entries) lista o plugin com um nome diferente, o nome da entrada de marketplace é o que `enabledPlugins` e `/plugin` usam | `"deployment-tools"` |

538 

539Este nome é usado para namespacing de componentes. Por exemplo, na UI, o agente `agent-creator` para o plugin com nome `plugin-dev` aparecerá como `plugin-dev:agent-creator`.

540 

541<h3 id="unrecognized-fields">

542 Campos não reconhecidos

543</h3>

544 

545Claude Code ignora campos de nível superior que não reconhece. Você pode manter metadados de outro ecossistema em `plugin.json` e o plugin ainda carrega. Isso torna prático manter um manifesto que funciona como um manifesto de extensão VS Code ou Cursor, um `package.json` npm, ou um manifesto de bundle MCPB/DXT.

546 

547`claude plugin validate` relata campos não reconhecidos como avisos, não erros. Se um campo está um ou dois caracteres diferente de um reconhecido, o aviso sugere o nome provavelmente pretendido. Um plugin com apenas avisos de campo não reconhecido ainda passa na validação e carrega em tempo de execução.

548 

549Como Claude Code lida com um campo reconhecido cujo valor tem o tipo errado depende do campo:

550 

551* **Maioria dos campos**: o plugin falha ao carregar. Por exemplo, um valor `keywords` que é uma string em vez de um array é um erro de carregamento, e `claude plugin validate` o relata como tal.

552* **`experimental` e `metadata`**: Claude Code ignora um valor não-objeto, e `claude plugin validate` relata um aviso.

553 

554Passe `--strict` para tratar avisos como erros. Use em CI para detectar um nome de campo digitado incorretamente ou um campo deixado de outra ferramenta de manifesto antes de publicar, mesmo que o plugin carregasse em tempo de execução.

555 

556```bash theme={null}

557claude plugin validate ./my-plugin --strict

558```

559 

560<h3 id="metadata-fields">

561 Campos de metadados

562</h3>

563 

564| Campo | Tipo | Descrição | Exemplo |

565| :--------------- | :------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |

566| `$schema` | string | URL do JSON Schema para autocompletar e validação do editor. Claude Code ignora este campo em tempo de carregamento. | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |

567| `displayName` | string | Nome legível por humanos mostrado no seletor `/plugin` e outras superfícies de UI. Para um plugin instalado do marketplace, um `displayName` na [entrada de marketplace](/docs/pt/plugin-marketplaces#optional-plugin-fields) tem precedência sobre este valor. Quando nenhum nome de exibição é definido em nenhum lugar, os usuários veem `name`. Ao contrário de `name`, pode conter espaços e qualquer capitalização. Não é usado para namespacing ou lookup. | `"Deployment Tools"` |

568| `version` | string | Opcional. Versão semântica. Definir isso fixa o plugin nessa string de versão, então os usuários só recebem atualizações quando você a incrementa, exceto para uma [`command` source](/docs/pt/plugin-marketplaces#command-sources) ou um plugin [carregado no local](#plugin-caching-and-file-resolution); veja [Gerenciamento de versão](#version-management). Se também definido na entrada de marketplace, `plugin.json` vence. Se omitido, a versão vem da próxima fonte em [Gerenciamento de versão](#version-management). | `"2.1.0"` |

569| `description` | string | Breve explicação do propósito do plugin | `"Deployment automation tools"` |

570| `author` | object | Informações do autor | `{"name": "Dev Team", "email": "dev@company.com"}` |

571| `homepage` | string | URL de documentação | `"https://docs.example.com"` |

572| `repository` | string | URL do código-fonte | `"https://github.com/user/plugin"` |

573| `license` | string | Identificador de licença | `"MIT"`, `"Apache-2.0"` |

574| `keywords` | array | Tags de descoberta | `["deployment", "ci-cd"]` |

575| `metadata` | object | Objeto de forma livre para seus próprios dados, como campos de direito ou catálogo. Claude Code não o lê, então os valores nunca afetam o comportamento do plugin. Claude Code ignora um valor não-objeto, e `claude plugin validate` o relata como um aviso. Antes de v2.1.222, Claude Code tratava a chave como um [campo não reconhecido](#unrecognized-fields). | `{"catalogId": "cat-123"}` |

576| `defaultEnabled` | boolean | Se o plugin inicia em um estado habilitado quando o usuário não definiu um. Padrão é `true`. Veja [Habilitação padrão](#default-enablement). | `false` |

577 

578<h3 id="default-enablement">

579 Habilitação padrão

580</h3>

581 

582Defina `defaultEnabled: false` em `plugin.json` para enviar um plugin que instala desabilitado. O usuário o ativa com `claude plugin enable <plugin>` ou a interface `/plugin`. Use isso para plugins que adicionam custo ou escopo que um usuário deve optar por participar, como um que se conecta a um serviço externo.

583 

584`defaultEnabled` é o fallback quando nada mais decidiu o estado do plugin. A configuração do usuário e um requisito de dependência têm precedência sobre ele:

585 

586* **A configuração do usuário**: uma entrada para o plugin em `enabledPlugins` em qualquer escopo de configurações. Uma vez escrita, persiste entre atualizações e reinstalações de plugin, então alterar `defaultEnabled` em uma versão posterior não inverte um usuário existente.

587* **Um requisito de dependência**: quando um plugin é exigido por outro que está ativo, Claude Code escreve `true` para ele em tempo de instalação ou habilitação. Isso lhe dá uma configuração explícita, então seu próprio padrão não se aplica mais. Veja [Habilitar ou desabilitar um plugin com dependências](/docs/pt/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies).

588 

589O mesmo campo pode aparecer na entrada de marketplace de um plugin, onde tem precedência sobre o valor em `plugin.json`. Veja [Campos de plugin opcionais](/docs/pt/plugin-marketplaces#optional-plugin-fields).

590 

591<h3 id="component-path-fields">

592 Campos de caminho de componente

593</h3>

594 

595| Campo | Tipo | Descrição | Exemplo |

596| :---------------------- | :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |

597| `skills` | string\|array | Diretórios de skill personalizados contendo `<name>/SKILL.md`. Adiciona à varredura padrão `skills/`. Veja [Regras de comportamento de caminho](#path-behavior-rules) para a exceção de raiz de marketplace | `"./custom/skills/"` |

598| `commands` | string\|array | Arquivos de skill `.md` personalizados ou diretórios (substitui padrão `commands/`) | `"./custom/cmd.md"` ou `["./cmd1.md"]` |

599| `agents` | string\|array | Arquivos de agente personalizados (substitui padrão `agents/`) | `"./custom/agents/reviewer.md"` |

600| `workflows` | string\|array | Arquivos de script de [workflow](/docs/pt/workflows) personalizados ou diretórios (substitui padrão `workflows/`) | `"./custom/workflows/"` |

601| `hooks` | string\|array\|object | Caminhos de configuração de hook ou configuração inline | `"./my-extra-hooks.json"` |

602| `mcpServers` | string\|array\|object | Caminhos de configuração MCP ou configuração inline | `"./my-extra-mcp-config.json"` |

603| `outputStyles` | string\|array | Arquivos/diretórios de estilo de saída personalizados (substitui padrão `output-styles/`) | `"./styles/"` |

604| `lspServers` | string\|array\|object | Configurações do [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) para inteligência de código (ir para definição, encontrar referências, etc.) | `"./.lsp.json"` |

605| `experimental.themes` | string\|array | Arquivos/diretórios de tema de cor (substitui padrão `themes/`). Veja [Temas](#themes) | `"./themes/"` |

606| `experimental.monitors` | string\|array | Configurações de [Monitor](/docs/pt/tools-reference#monitor-tool) em segundo plano que iniciam automaticamente quando o plugin está ativo. Veja [Monitores](#monitors) | `"./monitors.json"` |

607| `experimental.evals` | string\|array | Diretório abaixo da raiz do plugin que contém os [casos de eval](/docs/pt/plugin-evals#use-a-different-eval-directory) do plugin, quando não é o padrão `evals/`. `claude plugin eval --eval-dir` o substitui | `"quality/evals"` |

608| `userConfig` | object | Valores configuráveis pelo usuário solicitados no tempo de habilitação. Veja [Configuração do usuário](#user-configuration) | |

609| `channels` | array | Declarações de canal para injeção de mensagem (estilo Telegram, Slack, Discord). Veja [Canais](#channels) | |

610| `dependencies` | array | Outros plugins que este plugin requer, opcionalmente com restrições de versão semver. Veja [Restringir versões de dependência de plugin](/docs/pt/plugin-dependencies) | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |

611 

612<h3 id="experimental-components">

613 Componentes experimentais

614</h3>

615 

616Componentes sob a chave `experimental`, `themes` e `monitors`, têm um esquema de manifesto que pode mudar entre versões enquanto se estabilizam. Onde você os declara é uma migração separada: o nível superior ainda funciona, `claude plugin validate` avisa, e uma versão futura exigirá `experimental.*`.

617 

618<h3 id="user-configuration">

619 Configuração do usuário

620</h3>

621 

622O campo `userConfig` declara valores que Claude Code solicita ao usuário quando o plugin é habilitado. Use isso em vez de exigir que os usuários editem manualmente `settings.json`.

623 

624```json theme={null}

625{

626 "userConfig": {

627 "api_endpoint": {

628 "type": "string",

629 "title": "API endpoint",

630 "description": "Your team's API endpoint"

631 },

632 "api_token": {

633 "type": "string",

634 "title": "API token",

635 "description": "API authentication token",

636 "sensitive": true

637 }

638 }

639}

640```

641 

642As chaves devem ser identificadores válidos. Cada opção suporta estes campos:

643 

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

645| :------------ | :---------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

646| `type` | Sim | Um de `string`, `number`, `boolean`, `directory`, ou `file` |

647| `title` | Sim | Rótulo mostrado no diálogo de configuração |

648| `description` | Sim | Texto de ajuda mostrado abaixo do campo |

649| `sensitive` | Não | Se `true`, mascara entrada e armazena o valor em armazenamento seguro em vez de `settings.json` |

650| `required` | Não | Se `true`, a validação falha quando o campo está vazio |

651| `default` | Não | Valor usado quando o usuário não fornece nada |

652| `options` | Não | Para tipo `string`, os valores que o campo aceita, mostrados em `/config` como um seletor sobre eles. Veja [Limitar um campo a opções fixas](#limit-a-field-to-fixed-options). Requer Claude Code v2.1.271 ou posterior |

653| `multiple` | Não | Para tipo `string`, permitir um array de strings |

654| `min` / `max` | Não | Limites para tipo `number` |

655 

656Exceto campos `sensitive` e listas `multiple`, cada campo de cada plugin habilitado também aparece como uma linha no painel `/config`. As linhas requerem Claude Code v2.1.269 ou posterior.

657 

658Cada valor está disponível para substituição como `${user_config.KEY}` em configurações de servidor MCP e LSP e comandos de hook. Valores não-sensíveis também podem ser substituídos em conteúdo de skill e agente. Todos os valores são exportados para processos de hook como variáveis de ambiente `CLAUDE_PLUGIN_OPTION_<KEY>`, onde `<KEY>` é a chave de opção em maiúsculas.

659 

660Campos que executam em um shell rejeitam `${user_config.*}`: substituir um valor configurado em um comando shell deixaria o shell executar o que quer que esse valor contenha, então o componente falha com um [erro](/docs/pt/errors#plugin-command-references-user-config) em vez disso. Cada campo rejeitado tem uma forma alternativa de passar o valor:

661 

662| Campo rejeitado | Como passar o valor |

663| :--------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------ |

664| Comandos de hook em forma de shell | Use [forma exec](/docs/pt/hooks#exec-form-and-shell-form) com `args`, ou leia `CLAUDE_PLUGIN_OPTION_<KEY>` do ambiente do hook |

665| Comandos de [Monitor](#monitors) | Leia o valor de um arquivo de configuração no script |

666| MCP [`headersHelper`](/docs/pt/mcp#use-dynamic-headers-for-custom-authentication) | Leia o valor de um arquivo de configuração no script |

667 

668Antes de v2.1.207, esses campos substituíam valores `${user_config.KEY}`; atualize plugins que dependiam disso.

669 

670Valores não-sensíveis são armazenados sob a chave [`pluginConfigs`](/docs/pt/settings-reference#pluginconfigs) em seu `settings.json` de usuário como `pluginConfigs[<plugin-id>].options`.

671 

672No macOS, Claude Code armazena valores sensíveis no Keychain do macOS, voltando para `~/.claude/.credentials.json` quando o Keychain rejeita a escrita. Em plataformas sem um keychain suportado, ele os armazena em `~/.claude/.credentials.json`. O armazenamento em Keychain é compartilhado com tokens OAuth e tem um limite total aproximado de 2 KB, então mantenha valores sensíveis pequenos.

673 

674Claude Code lê todos os valores `pluginConfigs` de apenas três fontes de configurações:

675 

676* **Configurações do usuário**: `~/.claude/settings.json`, o arquivo que o prompt de tempo de habilitação escreve

677* **`--settings`**: o sinalizador CLI ou configurações inline do SDK

678* **Configurações gerenciadas**: [política controlada pela organização](/docs/pt/permissions#managed-settings)

679 

680Quando mais de uma fonte define a mesma chave, as configurações gerenciadas têm precedência, depois `--settings`, depois configurações do usuário. A única fonte que você pode remover desta lista é configurações do usuário: passe [`--setting-sources`](/docs/pt/cli-reference#cli-flags) sem `user` e Claude Code as ignora. Configurações gerenciadas e `--settings` permanecem o que você passar. A opção [`settingSources`](/docs/pt/agent-sdk/claude-code-features#what-settingsources-does-not-control) do SDK define a mesma lista.

681 

682Entradas em `.claude/settings.json` ou `.claude/settings.local.json` de um projeto são ignoradas. Ambos os arquivos vivem no workspace, então um repositório clonado poderia fornecer valores lá, e esses valores fluiriam para comandos de hook de plugin, configurações de servidor MCP, comandos LSP e comandos de monitor. Antes de v2.1.207, essas entradas eram lidas. A restrição é específica para `pluginConfigs`: [`enabledPlugins`](/docs/pt/settings-reference#enabledplugins) ainda honra configurações de projeto e local.

683 

684<h4 id="limit-a-field-to-fixed-options">

685 Limitar um campo a opções fixas

686</h4>

687 

688Defina `options` em um campo `userConfig` para fazer os usuários escolherem seu valor de uma lista fixa.

689 

690Para limitar um campo `tone` a três opções, liste-as em `options` e defina `default` para uma delas:

691 

692```json theme={null}

693{

694 "userConfig": {

695 "tone": {

696 "type": "string",

697 "title": "Tone",

698 "description": "Voice for generated replies",

699 "options": ["neutral", "warm", "formal"],

700 "default": "neutral"

701 }

702 }

703}

704```

705 

706Se você declarar `options` em qualquer campo, usuários em versões Claude Code anteriores a v2.1.271 não podem carregar o plugin.

707 

708Quando você define `options` em um campo, siga estas regras:

709 

710* Defina `type` para `string`

711* Não defina `multiple` ou `sensitive` para `true`

712* Defina `default` para uma das opções

713* Se você deixar `default` indefinido, defina `required` para `true`

714* Liste pelo menos uma opção, cada uma com 1 a 64 caracteres de comprimento

715* Não comece ou termine uma opção com um espaço

716* Não use caracteres de controle, caracteres invisíveis, caracteres que mudam a direção do texto, ou espaços diferentes de um espaço regular em uma opção

717* Não liste a mesma opção duas vezes, mesmo em uma capitalização diferente

718 

719Se você quebrar qualquer uma dessas regras, o plugin falha ao carregar. Execute `claude plugin validate` para ver qual campo quebra qual regra.

720 

721<h3 id="channels">

722 Canais

723</h3>

724 

725O campo `channels` permite que um plugin declare um ou mais canais de mensagem que injetam conteúdo na conversa. Cada canal se vincula a um servidor MCP que o plugin fornece.

726 

727```json theme={null}

728{

729 "channels": [

730 {

731 "server": "telegram",

732 "userConfig": {

733 "bot_token": {

734 "type": "string",

735 "title": "Bot token",

736 "description": "Telegram bot token",

737 "sensitive": true

738 },

739 "owner_id": {

740 "type": "string",

741 "title": "Owner ID",

742 "description": "Your Telegram user ID"

743 }

744 }

745 }

746 ]

747}

748```

749 

750O campo `server` é obrigatório e deve corresponder a uma chave em `mcpServers` do plugin. O `userConfig` opcional por canal usa o mesmo esquema que o campo de nível superior, permitindo que o plugin solicite tokens de bot ou IDs de proprietário quando o plugin é habilitado.

751 

752<h3 id="path-behavior-rules">

753 Regras de comportamento de caminho

754</h3>

755 

756Se um caminho personalizado substitui ou estende o diretório padrão do plugin depende do campo:

757 

758* **Substitui o padrão**: `commands`, `agents`, `workflows`, `outputStyles`, `experimental.themes`, `experimental.monitors`. Por exemplo, quando o manifesto especifica `commands`, o diretório padrão `commands/` não é verificado. Para manter o padrão e adicionar mais, liste-o explicitamente: `"commands": ["./commands/", "./extras/"]`

759* **Adiciona ao padrão**: `skills`. O diretório padrão `skills/` é sempre verificado, e diretórios listados em `skills` são carregados junto com ele. Exceção: para uma [entrada de marketplace cuja `source` resolve para a raiz do marketplace](/docs/pt/plugin-marketplaces#advanced-plugin-entries), declarar subdiretórios específicos substitui a varredura padrão `skills/`

760* **Regras de mesclagem próprias**: [hooks](#hooks), [servidores MCP](#mcp-servers), e [servidores LSP](#lsp-servers). Veja cada seção para como múltiplas fontes se combinam

761 

762Quando um plugin tem tanto uma pasta padrão quanto a chave de manifesto correspondente, Claude Code avisa sobre a pasta ignorada em `claude plugin list` e na visualização de detalhes `/plugin`. O plugin ainda carrega usando os caminhos de manifesto. Claude Code não avisa quando a chave de manifesto aponta para dentro da pasta padrão, por exemplo `"commands": ["./commands/deploy.md"]`, porque esse caminho nomeia a pasta explicitamente.

763 

764Para todos os campos de caminho:

765 

766* Todos os caminhos devem ser relativos à raiz do plugin e começar com `./`, exceto que o campo `skills` também aceita `"."`

767 * Ambos `"."` e `"./"` denotam a raiz do plugin em si

768 * Antes de v2.1.221, `"."` falhava na validação de manifesto e o plugin não carregava, então use `"./"` para suportar versões anteriores

769* Componentes de caminhos personalizados usam as mesmas regras de nomenclatura e namespacing, exceto arquivos de agente. Veja [Agentes](#agents) para como nomes de agente funcionam

770* Múltiplos caminhos podem ser especificados como arrays

771* Um caminho de skill pode apontar para um diretório que contém um `SKILL.md` diretamente, por exemplo `"skills": ["."]` para a raiz do plugin

772 * Claude Code pega o nome de invocação da skill do campo `name` do frontmatter em `SKILL.md`, então o nome permanece estável qualquer que seja o nome do diretório de instalação

773 * Se `name` não estiver definido no frontmatter, Claude Code volta para o basename do diretório

774 

775Um plugin que tem um `SKILL.md` em sua raiz, nenhum subdiretório `skills/`, e nenhum campo de manifesto `skills` é automaticamente carregado como um plugin de skill único. Você não precisa definir `"skills": ["./"]` em `plugin.json` para este layout.

776 

777**Exemplos de caminho**:

778 

779```json theme={null}

780{

781 "commands": [

782 "./specialized/deploy.md",

783 "./utilities/batch-process.md"

784 ],

785 "agents": [

786 "./custom-agents/reviewer.md",

787 "./custom-agents/tester.md"

788 ]

789}

790```

791 

792<h3 id="environment-variables">

793 Variáveis de ambiente

794</h3>

795 

796Claude Code fornece três variáveis para referenciar caminhos:

797 

798| Variável | Resolve para | Use para |

799| :---------------------- | :------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------- |

800| `${CLAUDE_PLUGIN_ROOT}` | Caminho absoluto para o diretório de instalação do plugin | Scripts, binários e arquivos de configuração agrupados com o plugin |

801| `${CLAUDE_PLUGIN_DATA}` | [Diretório persistente](#persistent-data-directory) que sobrevive a atualizações de plugin, criado na primeira referência | Dependências instaladas como `node_modules` ou ambientes virtuais Python, código gerado e caches |

802| `${CLAUDE_PROJECT_DIR}` | A raiz do projeto | Scripts e arquivos de configuração locais do projeto |

803 

804Todos os três são exportados como variáveis de ambiente para processos de hook e para subprocessos de servidor MCP e LSP. Eles não estão presentes no ambiente de comandos que Claude executa através da ferramenta Bash, na sessão principal ou em um subagente. Em conteúdo de plugin, escreva o placeholder em vez disso, e Claude Code substitui o caminho inline quando carrega o conteúdo. Quais campos substituem eles inline depende do componente de plugin:

805 

806| Componente de plugin | Campos onde placeholders resolvem |

807| :--------------------------------- | :------------------------------------------- |

808| Conteúdo de skill e agente | Em qualquer lugar onde o placeholder aparece |

809| Comandos de hook e monitor | Em qualquer lugar onde o placeholder aparece |

810| Servidores MCP `stdio` | `command`, `args`, `env` |

811| Servidores MCP `http`, `sse`, `ws` | `url`, `headers`, `headersHelper` |

812| Servidores LSP | `command`, `args`, `env`, `workspaceFolder` |

813 

814Em comandos de hook, use [forma exec](/docs/pt/hooks#exec-form-and-shell-form) com `args` para que cada caminho seja passado como um argumento sem aspas. Em hooks de forma shell e comandos de monitor, envolva as variáveis em aspas duplas, como em `"${CLAUDE_PROJECT_DIR}/scripts/server.sh"`. Este hook de forma shell executa um script agrupado com um plugin:

815 

816```json theme={null}

817{

818 "hooks": {

819 "PostToolUse": [

820 {

821 "hooks": [

822 {

823 "type": "command",

824 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/process.sh"

825 }

826 ]

827 }

828 ]

829 }

830}

831```

832 

833Para um plugin copiado, `${CLAUDE_PLUGIN_ROOT}` muda quando o plugin é atualizado. O diretório da versão anterior permanece no disco por um período de carência após uma atualização, mas trate-o como efêmero e não escreva estado lá. Para um plugin carregado no local de um marketplace de diretório local, a variável aponta para o diretório de origem estável. Veja [plugin caching](#plugin-caching-and-file-resolution) para quais plugins são copiados e para semântica de limpeza.

834 

835Quando um plugin copiado é atualizado no meio da sessão, comandos de hook, monitores, servidores MCP e servidores LSP continuam usando o caminho da versão anterior. Execute `/reload-plugins` para mudar hooks, servidores MCP e servidores LSP para o novo caminho; monitores requerem uma reinicialização de sessão. Em uma sessão sem um terminal interativo, o recarregamento deixa servidores MCP de plugin no caminho antigo até a próxima sessão.

836 

837Para um plugin com uma `command` source, Claude Code [pode recarregar o plugin em si](/docs/pt/plugin-marketplaces#when-claude-code-re-runs-the-command).

838 

839Servidores MCP também podem chamar a solicitação `roots/list` para ler os diretórios de trabalho da sessão em tempo de execução. Veja [o que `roots/list` retorna e quando Claude Code notifica o servidor de mudanças](/docs/pt/mcp#option-3-add-a-local-stdio-server).

840 

841<h4 id="persistent-data-directory">

842 Diretório de dados persistente

843</h4>

844 

845O diretório `${CLAUDE_PLUGIN_DATA}` resolve para `~/.claude/plugins/data/{id}/`, onde `{id}` é o identificador do plugin com caracteres fora de `a-z`, `A-Z`, `0-9`, `_`, e `-` substituídos por `-`. Para um plugin instalado como `formatter@my-marketplace`, o diretório é `~/.claude/plugins/data/formatter-my-marketplace/`.

846 

847Um uso comum é instalar dependências de linguagem uma vez e reutilizá-las entre sessões e atualizações de plugin. Use para dependências Python, dependências bloqueadas com Yarn ou pnpm, e pacotes cujos scripts de ciclo de vida devem executar. Para um plugin instalado do marketplace, você pode não precisar dele: Claude Code instala automaticamente [dependências de pacote Node.js](#node-js-package-dependencies) elegíveis quando armazena em cache o plugin.

848 

849Como o diretório de dados sobrevive a qualquer versão única de plugin, uma verificação de existência de diretório sozinha não pode detectar quando uma atualização muda o manifesto de dependência do plugin. O padrão recomendado compara o manifesto agrupado contra uma cópia no diretório de dados e reinstala quando diferem.

850 

851Este hook `SessionStart` instala `node_modules` na primeira execução e novamente sempre que uma atualização de plugin inclui um `package.json` alterado:

852 

853```json theme={null}

854{

855 "hooks": {

856 "SessionStart": [

857 {

858 "hooks": [

859 {

860 "type": "command",

861 "command": "diff -q \"${CLAUDE_PLUGIN_ROOT}/package.json\" \"${CLAUDE_PLUGIN_DATA}/package.json\" >/dev/null 2>&1 || (cd \"${CLAUDE_PLUGIN_DATA}\" && cp \"${CLAUDE_PLUGIN_ROOT}/package.json\" . && npm install) || rm -f \"${CLAUDE_PLUGIN_DATA}/package.json\""

862 }

863 ]

864 }

865 ]

866 }

867}

868```

869 

870O `diff` sai com código diferente de zero quando a cópia armazenada está faltando ou difere da agrupada, cobrindo tanto a primeira execução quanto atualizações que mudam dependências. Se `npm install` falhar, o `rm` final remove o manifesto copiado para que a próxima sessão tente novamente.

871 

872Scripts agrupados em `${CLAUDE_PLUGIN_ROOT}` podem então executar contra o `node_modules` persistido:

873 

874```json theme={null}

875{

876 "mcpServers": {

877 "routines": {

878 "command": "node",

879 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"],

880 "env": {

881 "NODE_PATH": "${CLAUDE_PLUGIN_DATA}/node_modules"

882 }

883 }

884 }

885}

886```

887 

888O diretório de dados é deletado automaticamente quando você desinstala o plugin do último escopo onde está instalado. A interface `/plugin` mostra o tamanho do diretório e solicita antes de deletar. O CLI deleta por padrão; passe [`--keep-data`](#plugin-uninstall) para preservá-lo.

889 

890***

891 

892<h2 id="plugin-caching-and-file-resolution">

893 Caching de plugins e resolução de arquivos

894</h2>

895 

896Plugins são especificados de uma das três maneiras:

897 

898* Através de `claude --plugin-dir` ou `claude --plugin-url`, pela duração de uma sessão.

899* Através de um marketplace, instalado para futuras sessões.

900* Através de sua conta claude.ai, [sincronizados](#synced-plugins) em `~/.claude/plugins/synced/`.

901 

902Para fins de segurança e verificação, Claude Code copia plugins de *marketplace* para o **cache de plugins** local do usuário (`~/.claude/plugins/cache`), exceto quando o plugin é carregado no local. Uma [fonte `command` em link mode](/docs/pt/plugin-marketplaces#copy-mode-and-link-mode) é carregada no local através de links na entrada do cache. Uma [fonte de caminho relativo](/docs/pt/plugin-marketplaces#relative-paths) em um marketplace adicionado de um diretório local é carregada no local a partir da pasta do marketplace.

903 

904Para um plugin carregado no local a partir de um marketplace de diretório local, suas edições no diretório de origem entram em vigor no próximo início de sessão ou `/reload-plugins`. Você não precisa de um bump de versão. Os processos de hook do plugin e os servidores MCP e LSP recebem um `CLAUDE_PLUGIN_ROOT` que aponta para o diretório de origem. Claude Code não instala as [dependências de pacotes Node.js](#node-js-package-dependencies) do plugin no diretório de origem. Instale-as lá você mesmo, ou a partir de um hook no [diretório de dados persistentes](#persistent-data-directory).

905 

906Para plugins copiados, cada versão instalada é um diretório separado no cache, agrupado por marketplace e plugin e nomeado para a versão resolvida, com sua própria cópia dos arquivos do plugin e [dependências de pacotes Node.js](#node-js-package-dependencies). Uma dependência resolvida de uma [tag de release](/docs/pt/plugin-dependencies#tag-plugin-releases-for-version-resolution) obtém um nome de diretório com um sufixo de commit-SHA.

907 

908Quando você atualiza ou desinstala um plugin, Claude Code marca o diretório da versão anterior como órfão e o remove em uma varredura de fundo aproximadamente 14 dias depois. O período de carência permite que sessões concorrentes de Claude Code que já carregaram a versão antiga continuem funcionando sem erros. Claude Code executa a varredura apenas enquanto pelo menos um plugin está instalado; depois que você desinstala seu último plugin, diretórios órfãos permanecem no disco até que você instale um plugin novamente.

909 

910Claude Code remove uma pasta de plugin ou marketplace do cache apenas quando ela não contém mais nenhum diretório ou symlink. Se você criar um symlink de um checkout de desenvolvimento no cache como uma entrada de versão do plugin, Claude Code nunca marca o link como órfão e nunca o remove ou as pastas que o contêm. Claude Code também nunca escreve seus arquivos de rastreamento de versão dentro do checkout vinculado.

911 

912As ferramentas Glob e Grep do Claude pulam diretórios de versão órfãos durante buscas, portanto os resultados de arquivo não incluem código de plugin desatualizado.

913 

914<h3 id="node-js-package-dependencies">

915 Dependências de pacotes Node.js

916</h3>

917 

918Quando Claude Code copia um plugin para o cache, ele também instala as dependências de pacotes Node.js do plugin lá, para que os hooks e servidores MCP do plugin possam carregá-los. Esta seção cobre os pacotes npm e Bun que um plugin declara em seu próprio `package.json`. Para plugins que dependem de outros plugins, consulte [versões de dependência de plugin](/docs/pt/plugin-dependencies).

919 

920Claude Code executa a instalação dentro do diretório de versão copiado cada vez que cria um: quando você instala um plugin, quando Claude Code atualiza um plugin para uma nova versão, e no início da sessão quando um plugin habilitado ainda não está em cache, como em uma máquina nova. A instalação é executada apenas quando o diretório raiz do plugin contém tanto um `package.json` quanto um lockfile suportado:

921 

922| Lockfile | Comando |

923| :------------------------------------------- | :----------------------------------------------- |

924| `bun.lock` ou `bun.lockb` | `bun install --frozen-lockfile --ignore-scripts` |

925| `npm-shrinkwrap.json` ou `package-lock.json` | `npm ci --ignore-scripts` |

926 

927Se um plugin contiver mais de um desses lockfiles, Claude Code usa a primeira correspondência, verificando em ordem: `bun.lock`, `bun.lockb`, `npm-shrinkwrap.json`, `package-lock.json`.

928 

929Claude Code pula a instalação em dois casos, cada um com sua própria correção:

930 

931* Se seu plugin envia apenas um `yarn.lock` ou `pnpm-lock.yaml`, substitua-o por um lockfile npm.

932* Se um `bunfig.toml` fica ao lado do lockfile bun, remova o `bunfig.toml`, ou substitua o lockfile bun por um lockfile npm.

933 

934Envie um lockfile npm para o alcance mais amplo. Claude Code executa o gerenciador de pacotes do lockfile correspondente do PATH do usuário e não volta para o outro lockfile se estiver faltando. Para um plugin distribuído através de uma fonte npm, use `npm-shrinkwrap.json`; npm exclui `package-lock.json` de pacotes publicados.

935 

936Claude Code restringe essa instalação de dependência para que nenhum código do plugin ou seus pacotes seja executado durante ela, e limita quanto tempo ela pode levar:

937 

938* **Resolução congelada:** Bun e npm instalam exatamente o que o lockfile fixa, e falham em vez de re-resolver versões quando `package.json` e o lockfile discordam.

939* **Sem scripts de ciclo de vida:** `--ignore-scripts` impede que scripts `preinstall`, `install` e `postinstall` sejam executados, para que dependências que compilam módulos nativos nesses scripts façam download mas não compilem durante essa instalação.

940* **Timeout de 60 segundos:** Claude Code para uma instalação que é executada por mais tempo e a trata como falha.

941 

942Claude Code busca um plugin de fonte npm antes dessa instalação de dependência, e nenhum dos scripts de instalação próprios do pacote é executado durante a busca. Consulte [pacotes npm](/docs/pt/plugin-marketplaces#npm-packages).

943 

944Uma instalação falhada ou ignorada nunca bloqueia o plugin. Quando a instalação falha, ou Claude Code pula um lockfile yarn ou pnpm ou um `bunfig.toml`, ele registra o motivo como um aviso na [saída de debug](#debugging-commands). Um plugin com um `package.json` e nenhum lockfile é ignorado sem uma entrada de log. Uma instalação com timeout pode deixar uma árvore `node_modules` parcial na cópia em cache.

945 

946Você não pode desativar a instalação automática; nenhuma configuração ou variável de ambiente a desativa. Em redes restritas, consulte os [requisitos de acesso à rede](/docs/pt/network-config#network-access-requirements) para os hosts a permitir.

947 

948Para dependências que a instalação automática não pode fornecer, como pacotes que precisam de seus scripts de ciclo de vida para compilar, dependências Python, ou um plugin bloqueado com Yarn ou pnpm, instale-os a partir de um hook no [diretório de dados persistentes](#persistent-data-directory).

949 

950<h3 id="path-traversal-limitations">

951 Limitações de travessia de caminho

952</h3>

953 

954Claude Code não permite que um plugin referencie arquivos fora de seu próprio diretório. Ele rejeita um caminho de componente que se resolve fora da raiz do plugin, seja o caminho declarado em `plugin.json` ou em uma [entrada de marketplace](/docs/pt/plugin-marketplaces#plugin-entries). Isso cobre um caminho que aponta para fora do plugin conforme escrito, como `../shared-utils`, e um symlink que leva para fora do plugin, exceto [links dentro de um marketplace](#share-files-within-a-marketplace-with-symlinks).

955 

956Em macOS e Linux, Claude Code também rejeita um caminho de componente que contém uma barra invertida em qualquer lugar, mesmo quando o caminho permanece dentro do plugin. Componentes declarados com caminhos de barra invertida, portanto, carregam apenas no Windows. Escreva caminhos de componentes com barras normais, como `./commands/deploy.md`.

957 

958Quando Claude Code rejeita um caminho, ele relata um erro [`path escapes plugin directory`](/docs/pt/errors#path-escapes-plugin-directory) e carrega o plugin sem esse componente.

959 

960Claude Code também não copia arquivos fora do diretório do plugin para o cache quando instala o plugin, portanto quando um script dentro de um plugin copiado lê um caminho acima da raiz do plugin, ele não encontra esses arquivos também.

961 

962<h3 id="share-files-within-a-marketplace-with-symlinks">

963 Compartilhar arquivos dentro de um marketplace com symlinks

964</h3>

965 

966Se seu plugin precisar compartilhar arquivos com outras partes do mesmo marketplace, você pode criar links simbólicos dentro do diretório do seu plugin. Como um symlink é tratado quando o plugin é copiado para o cache depende de onde seu alvo se resolve:

967 

968* **Dentro do próprio diretório do plugin:** o symlink é preservado como um symlink relativo no cache, para que continue resolvendo para o alvo copiado em tempo de execução.

969* **Em outro lugar dentro do mesmo marketplace:** o symlink é desreferenciado. O conteúdo do alvo é copiado para o cache em seu lugar. Isso permite que o diretório `skills/` de um meta-plugin vincule a skills definidas por outros plugins no marketplace.

970* **Fora do marketplace:** o symlink é ignorado por segurança. Isso impede que plugins puxem arquivos arbitrários do host, como caminhos do sistema, para o cache.

971 

972Para plugins instalados com `--plugin-dir`, de um caminho local, ou de uma [fonte `command`](/docs/pt/plugin-marketplaces#copy-mode-and-link-mode) em copy mode, apenas symlinks que se resolvem dentro do próprio diretório do plugin são preservados. Todos os outros são ignorados.

973 

974O comando a seguir cria um link de dentro de um plugin de marketplace para uma skill compartilhada definida por um plugin irmão. No Windows, use `mklink /D` de um Prompt de Comando elevado ou ative o Modo de Desenvolvedor:

975 

976```bash theme={null}

977ln -s ../../shared-plugin/skills/foo ./skills/foo

978```

979 

980***

981 

982<h2 id="plugin-directory-structure">

983 Estrutura de diretório do plugin

984</h2>

985 

986<h3 id="standard-plugin-layout">

987 Layout padrão do plugin

988</h3>

989 

990Um plugin completo segue esta estrutura:

991 

992```text theme={null}

993enterprise-plugin/

994├── .claude-plugin/ # Diretório de metadados (opcional)

995│ └── plugin.json # manifesto do plugin

996├── skills/ # Skills

997│ ├── code-reviewer/

998│ │ └── SKILL.md

999│ └── pdf-processor/

1000│ ├── SKILL.md

1001│ └── scripts/

1002├── commands/ # Skills como arquivos .md simples

1003│ ├── status.md

1004│ └── logs.md

1005├── agents/ # Definições de subagentes

1006│ ├── security-reviewer.md

1007│ ├── performance-tester.md

1008│ ├── compliance-checker.md

1009│ └── review/ # Agentes aqui carregam como enterprise-plugin:review:<name>

1010│ └── accessibility.md

1011├── workflows/ # Scripts de fluxo de trabalho

1012│ └── release-audit.js

1013├── output-styles/ # Definições de estilo de saída

1014│ └── terse.md

1015├── themes/ # Definições de tema de cor

1016│ └── dracula.json

1017├── monitors/ # Configurações de monitor de fundo

1018│ └── monitors.json

1019├── hooks/ # Configurações de hooks

1020│ ├── hooks.json # Configuração principal de hooks

1021│ └── security-hooks.json # Hooks adicionais

1022├── bin/ # Executáveis do plugin adicionados ao PATH

1023│ └── my-tool # Invocável como comando simples na ferramenta Bash

1024├── settings.json # Configurações padrão para o plugin

1025├── .mcp.json # Definições de servidor MCP

1026├── .lsp.json # Configurações de servidor LSP

1027├── scripts/ # Scripts de hooks e utilitários

1028│ ├── security-scan.sh

1029│ ├── format-code.py

1030│ └── deploy.js

1031├── LICENSE # Arquivo de licença

1032└── CHANGELOG.md # Histórico de versões

1033```

1034 

1035<Warning>

1036 O diretório `.claude-plugin/` contém o arquivo `plugin.json`. Todos os outros diretórios (commands/, agents/, skills/, workflows/, output-styles/, themes/, monitors/, hooks/) devem estar na raiz do plugin, não dentro de `.claude-plugin/`.

1037</Warning>

1038 

1039Um arquivo `CLAUDE.md` na raiz do plugin não é carregado como contexto do projeto. Os plugins contribuem contexto através de skills, agentes e hooks em vez de CLAUDE.md. Para enviar instruções que sejam carregadas no contexto do Claude, coloque-as em uma [skill](#skills).

1040 

1041<h3 id="file-locations-reference">

1042 Referência de localizações de arquivo

1043</h3>

1044 

1045| Componente | Localização Padrão | Propósito |

1046| :------------------- | :--------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1047| **Manifesto** | `.claude-plugin/plugin.json` | Metadados e configuração do plugin (opcional) |

1048| **Skills** | `skills/` | Skills com estrutura `<name>/SKILL.md` |

1049| **Comandos** | `commands/` | Skills como arquivos Markdown simples. Use `skills/` para novos plugins |

1050| **Agentes** | `agents/` | Arquivos Markdown de subagentes. Subpastas fazem parte do [nome do agente](#agents) |

1051| **Workflows** | `workflows/` | Arquivos de script de [Workflow](/docs/pt/workflows) |

1052| **Estilos de saída** | `output-styles/` | Definições de estilo de saída |

1053| **Temas** | `themes/` | Definições de tema de cor |

1054| **Hooks** | `hooks/hooks.json` | Configuração de hooks |

1055| **Servidores MCP** | `.mcp.json` | Definições de servidor MCP |

1056| **Servidores LSP** | `.lsp.json` | Configurações de servidor de linguagem |

1057| **Monitores** | `monitors/monitors.json` | Configurações de monitor de fundo |

1058| **Executáveis** | `bin/` | Executáveis adicionados ao `PATH` da ferramenta Bash e invocáveis como comandos simples enquanto o plugin está ativado. Você não pode incluir este diretório em um plugin que você [distribui através das configurações da organização claude.ai](/docs/pt/plugin-marketplaces#keep-executables-out-of-the-top-level-bin-directory) |

1059| **Configurações** | `settings.json` | Configuração padrão aplicada quando o plugin é ativado. Apenas as chaves [`agent`](/docs/pt/sub-agents) e [`subagentStatusLine`](/docs/pt/statusline#subagent-status-lines) são suportadas |

1060 

1061***

1062 

1063<h2 id="cli-commands-reference">

1064 Referência de comandos CLI

1065</h2>

1066 

1067Claude Code fornece comandos CLI para gerenciamento de plugins não interativo, útil para scripts e automação.

1068 

1069<h3 id="plugin-init">

1070 plugin init

1071</h3>

1072 

1073Crie um novo plugin em `~/.claude/skills/<name>/`. Na próxima sessão do Claude Code, ele carrega automaticamente como `<name>@skills-dir` e aparece em `/plugin` e `claude plugin list` sem necessidade de etapa de instalação.

1074 

1075Consulte [Skills-directory plugins](#skills-directory-plugins) para requisitos de escopo e confiança.

1076 

1077```bash theme={null}

1078claude plugin init <name> [options]

1079```

1080 

1081O comando toma estes argumentos:

1082 

1083* `<name>`: Nome do plugin. Torna-se o namespace da skill e o nome do diretório em `~/.claude/skills/`, portanto não pode conter espaços ou separadores de caminho.

1084 

1085O comando aceita estas opções:

1086 

1087| Opção | Descrição | Padrão |

1088| :----------------------- | :----------------------------------------------------------------------------------------------------------------------- | :---------------------- |

1089| `--description <text>` | Descrição do manifesto | |

1090| `--author <name>` | Nome do autor | `git config user.name` |

1091| `--author-email <email>` | Email do autor | `git config user.email` |

1092| `--with <components...>` | Também crie pastas de componentes. Valores válidos: `skills`, `agents`, `hooks`, `mcp`, `lsp`, `output-style`, `channel` | |

1093| `-f, --force` | Sobrescreva um `.claude-plugin/` existente no destino | |

1094| `-h, --help` | Exiba ajuda para o comando | |

1095 

1096`claude plugin new` é um alias para este comando.

1097 

1098Cada valor `--with` adiciona um arquivo inicial para esse componente, pronto para editar:

1099 

1100| Componente | O que ele cria |

1101| :------------- | :-------------------------------------------------------------------------------------------------------------- |

1102| `skills` | Uma skill `<name>:example` adicional com namespace ao lado da padrão |

1103| `agents` | Uma definição de subagent em `agents/` |

1104| `hooks` | Um `hooks/hooks.json` com um manipulador de evento de exemplo |

1105| `mcp` | Um `.mcp.json` com exemplos de servidor HTTP e stdio |

1106| `lsp` | Um exemplo de language-server `.lsp.json` |

1107| `output-style` | Um `output-styles/<name>.md` que se aplica automaticamente enquanto o plugin está ativado |

1108| `channel` | Um [channel](/docs/pt/channels) baseado em MCP: um servidor stdio (`server.ts`), seu `.mcp.json` e um `package.json` |

1109 

1110O plugin criado usa a fonte `@skills-dir` em vez de um marketplace. Administradores podem bloquear essa fonte com `strictKnownMarketplaces` ou adicionando `{"source": "skills-dir"}` a `blockedMarketplaces` em [managed settings](/docs/pt/plugin-marketplaces#managed-marketplace-restrictions). Quando bloqueado, `plugin init` falha antes de escrever.

1111 

1112Estes exemplos mostram invocações comuns:

1113 

1114```bash theme={null}

1115# Crie um plugin mínimo

1116claude plugin init my-helper

1117 

1118# Crie com pastas de skill e hook

1119claude plugin init my-helper --with skills hooks

1120 

1121# Sobrescreva um scaffold existente

1122claude plugin init my-helper --force

1123```

1124 

1125<h3 id="plugin-install">

1126 plugin install

1127</h3>

1128 

1129Instale um plugin dos marketplaces disponíveis.

1130 

1131```bash theme={null}

1132claude plugin install <plugin> [options]

1133```

1134 

1135O comando toma estes argumentos:

1136 

1137* `<plugin>`: Nome do plugin ou `plugin-name@marketplace-name` para um marketplace específico

1138 

1139O comando aceita estas opções:

1140 

1141| Opção | Descrição | Padrão |

1142| :-------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |

1143| `-s, --scope <scope>` | Escopo de instalação: `user`, `project` ou `local` | `user` |

1144| `--config <key=value>` | Defina uma opção [`userConfig`](#user-configuration) declarada no manifesto do plugin. Repita a flag para definir múltiplas opções | |

1145| `-y, --yes` | Aceite um comando que o marketplace do plugin declara, sem o prompt de confirmação: o comando que produz um plugin com uma [`command` source](/docs/pt/plugin-marketplaces#command-sources), ou o [`headersHelper`](/docs/pt/plugin-marketplaces#authenticate-archive-downloads) que autentica um download de arquivo. Aceitar um `headersHelper` requer Claude Code v2.1.238 ou posterior. Claude Code ainda imprime o comando primeiro. Obrigatório quando stdin ou stdout não é um TTY, a menos que você passe `--accept-command`. Não tem efeito dentro de uma sessão do Claude Code, portanto execute o comando do seu próprio terminal | |

1146| `--accept-command <sha256>` | Aceite o comando declarado pelo marketplace cujo `sha256` uma execução anterior com [`--json`](#plugin-json-result) relatou em `shownCommand`, no lugar de `-y`. A aceitação conta para exatamente esse comando, plugin e catálogo de marketplace. Se qualquer um deles mudou desde que o comando foi exibido, incluindo através da própria atualização de marketplace da execução, Claude Code não aceita o digest e mostra o comando novamente. Não pode ser combinado com `-y`. Não tem efeito dentro de uma sessão do Claude Code, portanto execute o comando do seu próprio terminal. Requer Claude Code v2.1.271 ou posterior | |

1147| `--json` | Imprima o resultado como um objeto JSON na última linha de stdout em vez da mensagem legível por humanos, para uso em scripts. Consulte [Formato de resultado JSON](#plugin-json-result). Requer Claude Code v2.1.268 ou posterior | |

1148| `-h, --help` | Exiba ajuda para o comando | |

1149 

1150O escopo determina qual arquivo de configurações o plugin instalado é adicionado. Por exemplo, `--scope project` escreve em `enabledPlugins` em .claude/settings.json, tornando o plugin disponível para todos que clonam o repositório do projeto.

1151 

1152<span id="plugin-json-result" />Com `--json`, a última linha de stdout é um objeto JSON. Analise apenas essa linha, porque Claude Code imprime qualquer comando que o marketplace declara antes dela. Três campos estão sempre presentes:

1153 

1154* `command`: o subcomando que foi executado, como `install`

1155* `outcome`: `ok` ou `failed`

1156* `message`: uma descrição legível por humanos do resultado

1157 

1158Outros campos, como `pluginId`, `scope` e `failureCode`, aparecem apenas quando se aplicam. A opção `--json` em `plugin uninstall`, `plugin update`, `plugin enable` e `plugin disable` imprime o mesmo objeto com os próprios campos desse subcomando. Um erro de uso, como um `--scope` inválido, não imprime nenhuma linha de resultado e sai com 1 com o motivo em stderr.

1159 

1160Quando uma execução exibe um comando declarado pelo marketplace e não o executa, o resultado `failed` também carrega um objeto `shownCommand` cujos campos incluem o comando conforme exibido, o plugin ao qual pertence e o `sha256` do comando. Para aceitar exatamente esse comando, execute novamente com esse `sha256` como `--accept-command`. Requer Claude Code v2.1.271 ou posterior.

1161 

1162Se `shownCommand.acceptCommandMatched` for `false`, o digest que você passou não corresponde ao comando agora exibido. Mostre esse comando a uma pessoa antes de passar seu `sha256`.

1163 

1164Estes exemplos mostram invocações comuns:

1165 

1166```bash theme={null}

1167# Instale no escopo do usuário (padrão)

1168claude plugin install formatter@my-marketplace

1169 

1170# Instale no escopo do projeto (compartilhado com a equipe)

1171claude plugin install formatter@my-marketplace --scope project

1172 

1173# Instale no escopo local (não compartilhado com a equipe)

1174claude plugin install formatter@my-marketplace --scope local

1175```

1176 

1177<h3 id="plugin-uninstall">

1178 plugin uninstall

1179</h3>

1180 

1181Remova um plugin instalado.

1182 

1183```bash theme={null}

1184claude plugin uninstall <plugin> [options]

1185```

1186 

1187O comando toma estes argumentos:

1188 

1189* `<plugin>`: Nome do plugin ou `plugin-name@marketplace-name`

1190 

1191O comando aceita estas opções:

1192 

1193| Opção | Descrição | Padrão |

1194| :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |

1195| `-s, --scope <scope>` | Desinstale do escopo: `user`, `project` ou `local` | `user` |

1196| `--keep-data` | Preserve o diretório de [persistent data](#persistent-data-directory) do plugin | |

1197| `--prune` | Também remova dependências auto-instaladas que nenhum outro plugin requer. Consulte [plugin prune](#plugin-prune) | |

1198| `-y, --yes` | Pule o prompt de confirmação `--prune`. Obrigatório quando stdin ou stdout não é um TTY | |

1199| `--json` | Imprima o resultado como um objeto JSON na última linha de stdout, no [mesmo formato que `plugin install --json`](#plugin-json-result). Não pode ser combinado com `--prune`. Requer Claude Code v2.1.268 ou posterior | |

1200| `-h, --help` | Exiba ajuda para o comando | |

1201 

1202`claude plugin remove` e `claude plugin rm` são aliases para este comando.

1203 

1204Por padrão, desinstalar do último escopo restante também exclui o diretório `${CLAUDE_PLUGIN_DATA}` do plugin. Use `--keep-data` para preservá-lo, por exemplo ao reinstalar após testar uma nova versão.

1205 

1206<Note>

1207 Quando plugins instalados de diferentes marketplaces compartilham um nome, o formulário `plugin-name@marketplace-name` desinstala apenas o plugin do marketplace nomeado. Antes da v2.1.212, o formulário qualificado poderia corresponder e desinstalar o plugin de mesmo nome de um marketplace diferente.

1208</Note>

1209 

1210<h3 id="plugin-prune">

1211 plugin prune

1212</h3>

1213 

1214Remova dependências de plugin auto-instaladas que não são mais necessárias por nenhum plugin instalado. Dependências que Claude Code puxou para satisfazer o campo [`dependencies`](/docs/pt/plugin-dependencies) de outro plugin são removidas; plugins que você instalou diretamente nunca são tocados.

1215 

1216```bash theme={null}

1217claude plugin prune [options]

1218```

1219 

1220O comando aceita estas opções:

1221 

1222| Opção | Descrição | Padrão |

1223| :-------------------- | :---------------------------------------------------------------------------- | :----- |

1224| `-s, --scope <scope>` | Limpe no escopo: `user`, `project` ou `local` | `user` |

1225| `--dry-run` | Liste o que seria removido sem remover nada | |

1226| `-y, --yes` | Pule o prompt de confirmação. Obrigatório quando stdin ou stdout não é um TTY | |

1227| `-h, --help` | Exiba ajuda para o comando | |

1228 

1229`claude plugin autoremove` é um alias para este comando.

1230 

1231O comando lista dependências órfãs e pede confirmação antes de removê-las. Para remover um plugin e limpar suas dependências em uma etapa, execute `claude plugin uninstall <plugin> --prune`.

1232 

1233<h3 id="plugin-enable">

1234 plugin enable

1235</h3>

1236 

1237Ative um plugin desativado. Quando o destino é instalado de um marketplace e declara [dependencies](/docs/pt/plugin-dependencies), Claude Code os ativa transitivamente no mesmo escopo. O comando falha sob as condições que [Enable or disable a plugin with dependencies](/docs/pt/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies) lista.

1238 

1239```bash theme={null}

1240claude plugin enable <plugin> [options]

1241```

1242 

1243O comando toma estes argumentos:

1244 

1245* `<plugin>`: Nome do plugin, `plugin-name@marketplace-name` ou `plugin-name@synced` para um [plugin sincronizado de claude.ai](#synced-plugins)

1246 

1247O comando aceita estas opções:

1248 

1249| Opção | Descrição | Padrão |

1250| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------- |

1251| `-s, --scope <scope>` | Escopo para ativar: `user`, `project` ou `local`. Quando omitido, Claude Code detecta o escopo onde o plugin está instalado | Auto-detect |

1252| `--json` | Imprima o resultado como um objeto JSON na última linha de stdout, no [mesmo formato que `plugin install --json`](#plugin-json-result). Requer Claude Code v2.1.268 ou posterior | |

1253| `-h, --help` | Exiba ajuda para o comando | |

1254 

1255<h3 id="plugin-disable">

1256 plugin disable

1257</h3>

1258 

1259Desative um plugin sem desinstalá-lo.

1260 

1261Quando o destino é instalado de um marketplace, o comando falha se outro plugin ativado [depende](/docs/pt/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies) dele. A mensagem de erro inclui um comando encadeado que desativa cada dependente primeiro.

1262 

1263Para um [synced plugin](#synced-plugins) que sua organização requer, o comando falha e não salva nada.

1264 

1265```bash theme={null}

1266claude plugin disable [plugin] [options]

1267```

1268 

1269O comando toma estes argumentos:

1270 

1271* `[plugin]`: Nome do plugin, `plugin-name@marketplace-name` ou `plugin-name@synced` para um [plugin sincronizado de claude.ai](#synced-plugins). Opcional ao usar `--all`

1272 

1273O comando aceita estas opções:

1274 

1275| Opção | Descrição | Padrão |

1276| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------- |

1277| `-a, --all` | Desative todos os plugins ativados. Não pode ser combinado com `--scope` | |

1278| `-s, --scope <scope>` | Escopo para desativar: `user`, `project` ou `local`. Quando omitido, Claude Code detecta o escopo onde o plugin está instalado | Auto-detect |

1279| `--json` | Imprima o resultado como um objeto JSON na última linha de stdout, no [mesmo formato que `plugin install --json`](#plugin-json-result). Requer Claude Code v2.1.268 ou posterior | |

1280| `-h, --help` | Exiba ajuda para o comando | |

1281 

1282<h3 id="plugin-update">

1283 plugin update

1284</h3>

1285 

1286Atualize um plugin para a versão mais recente.

1287 

1288```bash theme={null}

1289claude plugin update <plugin> [options]

1290```

1291 

1292O comando toma estes argumentos:

1293 

1294* `<plugin>`: Nome do plugin ou `plugin-name@marketplace-name`

1295 

1296O comando aceita estas opções:

1297 

1298| Opção | Descrição | Padrão |

1299| :-------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |

1300| `-s, --scope <scope>` | Escopo para atualizar: `user`, `project`, `local` ou `managed` | `user` |

1301| `-y, --yes` | Aceite um comando que o marketplace do plugin declara, sem o prompt de confirmação: o comando que produz um plugin com uma [`command` source](/docs/pt/plugin-marketplaces#command-sources), ou o [`headersHelper`](/docs/pt/plugin-marketplaces#authenticate-archive-downloads) que autentica um download de arquivo. Aceitar um `headersHelper` requer Claude Code v2.1.238 ou posterior. Claude Code ainda imprime o comando primeiro. Obrigatório quando stdin ou stdout não é um TTY, a menos que você passe `--accept-command`. Não tem efeito dentro de uma sessão do Claude Code, portanto execute o comando do seu próprio terminal | |

1302| `--accept-command <sha256>` | Aceite o comando declarado pelo marketplace cujo `sha256` uma execução anterior com [`--json`](#plugin-json-result) relatou em `shownCommand`, no lugar de `-y`. A aceitação conta para exatamente esse comando, plugin e catálogo de marketplace. Se qualquer um deles mudou desde que o comando foi exibido, incluindo através da própria atualização de marketplace da execução, Claude Code não aceita o digest e mostra o comando novamente. Não pode ser combinado com `-y`. Não tem efeito dentro de uma sessão do Claude Code, portanto execute o comando do seu próprio terminal. Requer Claude Code v2.1.271 ou posterior | |

1303| `--json` | Imprima o resultado como um objeto JSON na última linha de stdout, no [mesmo formato que `plugin install --json`](#plugin-json-result). Requer Claude Code v2.1.268 ou posterior | |

1304| `-h, --help` | Exiba ajuda para o comando | |

1305 

1306<Note>

1307 Claude Code resolve um nome de plugin simples contra seus plugins instalados. Quando plugins instalados de diferentes marketplaces compartilham o nome, Claude Code recusa a atualização e lista os comandos `plugin-name@marketplace-name` qualificados para executar em vez disso. Antes da v2.1.246, Claude Code aceitava apenas o formulário qualificado e rejeitava um nome simples como não encontrado.

1308</Note>

1309 

1310***

1311 

1312<h3 id="plugin-list">

1313 plugin list

1314</h3>

1315 

1316Liste plugins instalados com sua versão, marketplace de origem e status de ativação.

1317 

1318```bash theme={null}

1319claude plugin list [options]

1320```

1321 

1322O comando aceita estas opções:

1323 

1324| Opção | Descrição | Padrão |

1325| :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |

1326| `--json` | Saída como JSON. Uma linha de plugin com problemas de carregamento ou avisos de autoria carrega arrays de strings `errors` ou `notes`. No Claude Code v2.1.268 ou posterior, arrays `errorDetails` e `noteDetails` paralelos fornecem a cada entrada seu `type` de diagnóstico e os nomes aos quais se refere, como o plugin, marketplace, servidor ou arquivo | |

1327| `--available` | Inclua plugins disponíveis dos marketplaces. Requer `--json` | |

1328| `-h, --help` | Exiba ajuda para o comando | |

1329 

1330Dentro de uma sessão interativa, `/plugin list` imprime uma listagem similar inline, mas cobre apenas plugins instalados do marketplace:

1331 

1332* Plugins carregados de diretórios de skills aparecem na interface `/plugin` e em `claude plugin list`, mas não na saída inline `/plugin list`.

1333* [Plugins sincronizados de claude.ai](#synced-plugins) aparecem em `claude plugin list` no Claude Code v2.1.239 ou posterior e na interface `/plugin`, mas não na saída inline `/plugin list`.

1334* Plugins carregados para a sessão com `--plugin-dir` ou `--plugin-url` aparecem na interface `/plugin` e em `claude plugin list` apenas quando a mesma flag precede o subcomando, como em `claude --plugin-dir <dir> plugin list`. Apenas o nome da flag nomeia sua localização, portanto um `claude plugin list` simples não consegue encontrá-los, diferentemente de plugins sincronizados e plugins de diretório de skills, cujos diretórios fixos Claude Code verifica.

1335 

1336O formulário interativo aceita `--enabled` ou `--disabled` para mostrar apenas plugins nesse estado, e `ls` como abreviação para `list`.

1337 

1338<h3 id="plugin-details">

1339 plugin details

1340</h3>

1341 

1342Mostre o inventário de componentes de um plugin e o custo de token projetado. A saída lista todos os componentes que o plugin contribui, agrupados como Skills, Agents, Hooks, servidores MCP e servidores LSP, junto com uma estimativa de quantos tokens ele adiciona a cada sessão. O grupo Skills inclui entradas `skills/` e `commands/`.

1343 

1344```bash theme={null}

1345claude plugin details <name>

1346```

1347 

1348O comando toma estes argumentos:

1349 

1350* `<name>`: Nome do plugin ou `plugin-name@marketplace-name`

1351 

1352O comando aceita estas opções:

1353 

1354| Opção | Descrição | Padrão |

1355| :----------- | :------------------------- | :----- |

1356| `-h, --help` | Exiba ajuda para o comando | |

1357 

1358A saída mostra dois números de custo para cada componente:

1359 

1360* **Always-on:** tokens adicionados a cada sessão pelo texto de listagem do plugin, como descrições de skills, descrições de agents e nomes de comandos, independentemente de qualquer componente disparar.

1361* **On-invoke:** tokens que um componente custa quando dispara. Mostrado por componente, não como total do plugin, porque uma sessão típica invoca apenas um subconjunto de componentes.

1362 

1363Este exemplo mostra como a saída se parece para um plugin com duas skills:

1364 

1365```

1366dependency-guard 1.2.0

1367 Dependency analysis for Claude Code sessions

1368 Source: dependency-guard@example-marketplace

1369 

1370Component inventory

1371 Skills (2) scan-dependencies, review-changes

1372 Agents (0)

1373 Hooks (1) SessionStart (harness-only — no model context cost)

1374 MCP servers (0)

1375 LSP servers (0)

1376 

1377Projected token cost

1378 Always-on: ~180 tok added to every session

1379 

1380Per-component (rounded)

1381 component always-on on-invoke

1382 scan-dependencies ~100 ~2400

1383 review-changes ~80 ~1800

1384 

1385 On-invoke cost is paid each time a skill or agent fires.

1386 Token counts are estimates and may differ from actual usage.

1387```

1388 

1389O total always-on é calculado via API `count_tokens` para seu modelo ativo. Números por componente são proporcionalmente dimensionados a partir desse total. Se a API estiver inacessível, o comando volta para uma estimativa baseada em caracteres.

1390 

1391<h3 id="plugin-validate">

1392 plugin validate

1393</h3>

1394 

1395Verifique um plugin ou um marketplace para erros de sintaxe e esquema antes de publicar.

1396 

1397O comando sai com 0 quando a validação passa, 1 quando falha e 2 quando a própria execução de validação falha, como quando o caminho que você passa é ilegível.

1398 

1399```bash theme={null}

1400claude plugin validate <path> [options]

1401```

1402 

1403O comando toma estes argumentos:

1404 

1405* `<path>`: Caminho para um diretório de plugin ou um diretório de marketplace. Consulte [Validate a plugin or a directory without a manifest](/docs/pt/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest) para quais arquivos uma execução de plugin cobre.

1406 

1407O comando aceita estas opções:

1408 

1409| Opção | Descrição | Padrão |

1410| :----------- | :--------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |

1411| `--strict` | Trate avisos como erros e saia com 1 neles. Use em CI para capturar problemas que o runtime tolera, como [unrecognized fields](#unrecognized-fields) | |

1412| `--json` | Saída do relatório de validação como um objeto JSON com os mesmos códigos de saída. Requer Claude Code v2.1.259 ou posterior | |

1413| `-h, --help` | Exiba ajuda para o comando | |

1414 

1415Com `--json`, Claude Code escreve o relatório para stdout como um objeto JSON com estes campos de nível superior:

1416 

1417* `success`: o mesmo veredicto que o código de saída fornece

1418* `strict`: se a execução tratou avisos como erros

1419* `target`: o caminho resolvido que Claude Code validou

1420* `manifest`: o resultado do próprio manifesto, ou `null` para uma [execução sem manifesto](/docs/pt/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest)

1421* `contents`: resultados por arquivo, cada um nomeando seu `file` e carregando arrays `errors`, `warnings` e `notes`

1422 

1423Na saída 2, o comando não escreve nada para stdout; a mensagem de erro vai para stderr.

1424 

1425Dentro de uma sessão interativa, `/plugin validate <path>` executa as mesmas verificações inline.

1426 

1427<h3 id="plugin-eval">

1428 plugin eval

1429</h3>

1430 

1431Execute [eval cases](/docs/pt/plugin-evals) de um plugin e relate resultados pontuados. Requer Claude Code v2.1.269 ou posterior. Cada caso é um prompt mais avaliadores; Claude Code o executa várias vezes em uma sessão isolada com apenas o plugin alvo carregado, e por padrão também sem o plugin para que o relatório mostre a diferença. Consulte [Test plugins with evals](/docs/pt/plugin-evals) para o formato do caso, avaliadores, resultados e uso em CI.

1432 

1433```bash theme={null}

1434claude plugin eval [target] [options]

1435```

1436 

1437O `target` opcional é um diretório de plugin, um único arquivo `prompt.md` ou `case.yaml`, um plugin instalado como `name` ou `name@marketplace`, ou `name@skills-dir`, e padrão é o diretório atual. Coloque-o antes de `--tag`, `--allow-tools` e `--json`.

1438 

1439Esta tabela lista as opções que a maioria das execuções usa. Execute `claude plugin eval --help` para o conjunto completo, incluindo `--case`, `--tag`, `--output-dir`, `--report`, `--allow-real-servers`, `--keep-temp` e `--verbose`.

1440 

1441| Opção | Descrição | Padrão |

1442| :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------- |

1443| `--runs <n>` | Execuções por caso por braço | Cada `runs` do caso, senão 3 |

1444| `-j, --concurrency <n>` | Sessões de agent para executar de uma vez, 1 a 8. Elas compartilham seu limite de taxa | `1` |

1445| `--model <model>` | Modelo para o agent sob teste | Cada `model` do caso, senão `ANTHROPIC_MODEL` se definido, senão padrão do Claude Code |

1446| `--judge-model <model>` | Modelo para avaliadores `llm` e `baseline` | Um modelo pequeno e rápido |

1447| `--ablation <mode>` | `none` ou `with-without`. Consulte [Compare against a no-plugin baseline](/docs/pt/plugin-evals#compare-against-a-no-plugin-baseline) | `with-without` quando um plugin resolve, senão `none` |

1448| `--threshold <0..1>` | Saia com 1 se qualquer caso pontuar abaixo disso | `1.0` |

1449| `--max-cost-usd <usd>` | Pare antes da próxima execução uma vez que o gasto atinja isso, saia com 2 e relate resultados parciais | Sem limite |

1450| `--allow-tools <tools...>` | Conceda ferramentas além do conjunto somente leitura, como `Bash`, `Write`, `Edit` ou `"mcp__plugin_<plugin>_<server>__*"`. Consulte [Grant tools](/docs/pt/plugin-evals#grant-tools) | |

1451| `--scaffold` | Execute cada [`scaffold_script`](/docs/pt/plugin-evals#add-setup-or-history-with-case-yaml) do caso | Desligado |

1452| `--trust-plugin` | Pule o prompt de confiança de primeira execução, para CI. Consulte [What a run can access](/docs/pt/plugin-evals#security) | Desligado |

1453| `--mocks <mode>` | `record` ou `off`. Consulte [Mock MCP servers](/docs/pt/plugin-evals#mock-mcp-servers) | `record` |

1454| `--eval-dir <dir>` | Diretório abaixo do plugin que contém os casos | O `experimental.evals` do manifesto, senão `evals` |

1455| `--json [path]` | Imprima o [documento de resultado](/docs/pt/plugin-evals#json-result) para stdout, ou escreva-o em um caminho `.json` | |

1456| `--no-publish` | Mantenha o relatório HTML local | |

1457| `-h, --help` | Exiba ajuda para o comando | |

1458 

1459O comando sai com 0 quando cada caso atende ao limite, 1 em um caso falhando, um erro de carregamento ou um diretório de plugin não confiável, 2 em uma execução parcial, 130 quando interrompido e 143 quando terminado. Consulte [Run evals in CI](/docs/pt/plugin-evals#run-evals-in-ci).

1460 

1461<h3 id="plugin-eval-init">

1462 plugin eval init

1463</h3>

1464 

1465Crie um conjunto de eval para o plugin no diretório atual. Requer Claude Code v2.1.269 ou posterior. Em um terminal, isso inicia uma entrevista de autoria que lê o plugin, propõe casos e avaliadores, os testa e escreve os arquivos. Com `--bare`, ou sem um terminal, escreve um modelo de caso único em branco em vez disso. Execute de dentro de uma sessão interativa do Claude Code, imprime as instruções da entrevista para essa sessão seguir em vez de escrever um modelo. Consulte [Create your first eval suite](/docs/pt/plugin-evals#create-your-first-eval-suite).

1466 

1467```bash theme={null}

1468claude plugin eval init [name] [options]

1469```

1470 

1471O `name` opcional é um nome de caso: a entrevista não precisa de um, enquanto `--bare` e o caminho do modelo sem terminal o requerem. Aceita estas opções:

1472 

1473| Opção | Descrição | Padrão |

1474| :------------------ | :----------------------------------------------------------------------------------------------------- | :------------------------------------------------- |

1475| `--bare` | Escreva um `prompt.md` em branco e `graders/criteria.md` para `<name>` em vez de executar a entrevista | |

1476| `-i, --interactive` | Exija a entrevista. Falha sem um terminal em vez de escrever um modelo | |

1477| `--eval-dir <dir>` | Diretório abaixo do diretório atual para escrever casos em | O `experimental.evals` do manifesto, senão `evals` |

1478| `-h, --help` | Exiba ajuda para o comando | |

1479 

1480<h3 id="plugin-tag">

1481 plugin tag

1482</h3>

1483 

1484Crie uma tag git de lançamento para um plugin. Por padrão, o comando marca o plugin no diretório atual; passe um caminho para marcar um plugin em outro lugar. Consulte [Tag plugin releases](/docs/pt/plugin-dependencies#tag-plugin-releases-for-version-resolution).

1485 

1486```bash theme={null}

1487claude plugin tag [path] [options]

1488```

1489 

1490O comando toma estes argumentos:

1491 

1492* `[path]`: Caminho para o diretório do plugin. Padrão é o diretório atual.

1493 

1494O comando aceita estas opções:

1495 

1496| Opção | Descrição | Padrão |

1497| :-------------------- | :----------------------------------------------------------------------- | :------- |

1498| `--push` | Envie a tag para o remoto após criá-la | |

1499| `--dry-run` | Imprima o que seria marcado sem criar a tag | |

1500| `-f, --force` | Crie a tag mesmo que a árvore de trabalho esteja suja ou a tag já exista | |

1501| `-m, --message <msg>` | Mensagem de anotação de tag. Use `%s` como placeholder para a versão | |

1502| `--remote <name>` | Remoto para enviar com `--push` | `origin` |

1503| `-h, --help` | Exiba ajuda para o comando | |

1504 

1505***

1506 

1507<h2 id="debugging-and-development-tools">

1508 Ferramentas de depuração e desenvolvimento

1509</h2>

1510 

1511<h3 id="debugging-commands">

1512 Comandos de depuração

1513</h3>

1514 

1515Use `claude --debug` para ver detalhes do carregamento de plugins:

1516 

1517Isso mostra:

1518 

1519* Quais plugins estão sendo carregados

1520* Quaisquer erros nos manifestos de plugins

1521* Registro de skills, agents e hooks

1522* Inicialização do servidor MCP

1523 

1524<h3 id="common-issues">

1525 Problemas comuns

1526</h3>

1527 

1528| Problema | Causa | Solução |

1529| :---------------------------------- | :---------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1530| Plugin não carregando | `plugin.json` inválido | Execute `claude plugin validate ./my-plugin` ou `/plugin validate ./my-plugin`, onde `./my-plugin` é seu diretório de plugin, para verificar `plugin.json`, `hooks/hooks.json` e o frontmatter das skills, agents e commands nos diretórios padrão do plugin para erros de sintaxe e esquema. Veja [Validate a plugin or a directory without a manifest](/docs/pt/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest) para saber o que uma execução cobre |

1531| Skills não aparecendo | Estrutura de diretório incorreta | Certifique-se de que `skills/` ou `commands/` está na raiz do plugin, não dentro de `.claude-plugin/` |

1532| Hooks não disparando | Script não executável | Execute `chmod +x script.sh` |

1533| Servidor MCP falha | `${CLAUDE_PLUGIN_ROOT}` ausente | Use variável para todos os caminhos de plugin |

1534| Erros de caminho | Caminhos absolutos usados | Torne os caminhos relativos, começando com `./`; veja [Path behavior rules](#path-behavior-rules), que cobrem a exceção `"."` do campo `skills` |

1535| LSP `Executable not found in $PATH` | Servidor de linguagem não instalado | Instale o binário (por exemplo, `npm install -g typescript-language-server typescript`) |

1536 

1537<h3 id="example-error-messages">

1538 Exemplos de mensagens de erro

1539</h3>

1540 

1541**Erros de validação de manifesto**:

1542 

1543* `Invalid JSON syntax: Unexpected token } in JSON at position 142`: verifique se há vírgulas ausentes, vírgulas extras ou strings sem aspas

1544* `Plugin <name> has an invalid manifest file at .claude-plugin/plugin.json. Validation errors: name: Invalid input: expected string, received undefined`: um campo obrigatório está ausente

1545* `Plugin <name> has a corrupt manifest file at .claude-plugin/plugin.json. JSON parse error: ...`: erro de sintaxe JSON. Antes da v2.1.246, Claude Code também produzia esse erro para um `plugin.json` salvo como UTF-8 com uma marca de ordem de byte (BOM) à frente, mesmo quando o JSON era válido.

1546 

1547**Erros de carregamento de plugin**:

1548 

1549* `Warning: No commands found in plugin my-plugin custom directory: ./cmds. Expected .md files or SKILL.md in subdirectories.`: o caminho do comando existe mas não contém arquivos de comando válidos

1550* `Plugin directory not found at path: ./plugins/my-plugin. Check that the marketplace entry has the correct path.`: o caminho `source` em marketplace.json aponta para um diretório inexistente

1551* `Plugin my-plugin has conflicting manifests: both plugin.json and marketplace entry specify components.`: remova definições de componentes duplicadas ou remova `strict: false` na entrada do marketplace

1552 

1553<h3 id="hook-troubleshooting">

1554 Solução de problemas de hooks

1555</h3>

1556 

1557**Script de hook não executando**:

1558 

15591. Verifique se o script é executável: `chmod +x ./scripts/your-script.sh`

15602. Verifique a linha shebang: A primeira linha deve ser `#!/bin/bash` ou `#!/usr/bin/env bash`

15613. Verifique se o caminho usa `${CLAUDE_PLUGIN_ROOT}`: `"command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/your-script.sh"`

15624. Teste o script manualmente: `./scripts/your-script.sh`

1563 

1564**Hook não disparando em eventos esperados**:

1565 

15661. Verifique se o nome do evento está correto (sensível a maiúsculas): `PostToolUse`, não `postToolUse`

15672. Verifique se o padrão do matcher corresponde às suas ferramentas: `"matcher": "Write|Edit"` para operações de arquivo

15683. Confirme se o tipo de hook é válido: `command`, `http`, `mcp_tool`, `prompt` ou `agent`

1569 

1570<h3 id="mcp-server-troubleshooting">

1571 Solução de problemas do servidor MCP

1572</h3>

1573 

1574**Servidor não iniciando**:

1575 

15761. Verifique se o comando existe e é executável

15772. Verifique se todos os caminhos usam a variável `${CLAUDE_PLUGIN_ROOT}`

15783. Verifique os logs do servidor MCP: `claude --debug` mostra erros de inicialização

15794. Teste o servidor manualmente fora do Claude Code

1580 

1581**Ferramentas do servidor não aparecendo**:

1582 

15831. Certifique-se de que o servidor está configurado corretamente em `.mcp.json` ou `plugin.json`

15842. Verifique se o servidor implementa o protocolo MCP corretamente

15853. Verifique se há timeouts de conexão na saída de depuração

1586 

1587<h3 id="directory-structure-mistakes">

1588 Erros de estrutura de diretório

1589</h3>

1590 

1591**Sintomas**: Plugin carrega mas componentes (skills, agents, hooks) estão ausentes.

1592 

1593**Estrutura correta**: Componentes devem estar na raiz do plugin, não dentro de `.claude-plugin/`. Apenas `plugin.json` pertence a `.claude-plugin/`.

1594 

1595**Lista de verificação de depuração**:

1596 

15971. Execute `claude --debug` e procure por mensagens "loading plugin"

15982. Verifique se cada diretório de componente está listado na saída de depuração

15993. Verifique se as permissões de arquivo permitem ler os arquivos do plugin

1600 

1601***

1602 

1603<h2 id="distribution-and-versioning-reference">

1604 Referência de distribuição e versionamento

1605</h2>

1606 

1607<h3 id="version-management">

1608 Gerenciamento de versão

1609</h3>

1610 

1611Claude Code usa a versão do plugin como a chave de cache que determina se uma atualização está disponível. Quando você executa `/plugin update` ou a atualização automática é acionada, Claude Code calcula a versão atual e ignora a atualização se ela corresponder ao que já está instalado. Um plugin [carregado no local](#plugin-caching-and-file-resolution) a partir de um marketplace de diretório local carrega seus arquivos de fonte atuais no início de cada sessão, independentemente do que sua string de versão diz.

1612 

1613Para cada tipo de fonte, exceto `command`, Claude Code resolve a versão a partir do primeiro destes que está definido:

1614 

16151. O campo `version` no `plugin.json` do plugin

16162. O campo `version` na entrada do marketplace do plugin em `marketplace.json`

16173. O SHA do commit git da fonte do plugin, para fontes `github`, `url`, `git-subdir` e relative-path em um marketplace hospedado em git

16184. O resumo SHA-256, para [fontes `archive`](/docs/pt/plugin-marketplaces#zip-archives): o pin `sha256` na entrada do marketplace, ou o resumo do arquivo baixado quando você não define um pin. Claude Code o encurta para os primeiros 12 caracteres

16195. `unknown`, para fontes `npm` ou diretórios locais quando nem o diretório do plugin nem seu marketplace é um repositório git. Claude Code não obtém a versão de um repositório que envolve o caminho de instalação, como um `~/.claude` gerenciado por git

1620 

1621Para uma [fonte `command`](/docs/pt/plugin-marketplaces#command-sources), Claude Code sempre deriva a versão a partir do que o comando produziu: um hash de conteúdo de 12 caracteres por si só, ou anexado à versão `plugin.json` como `<version>-<hash>` quando um está definido. Claude Code ignora o campo `version` da entrada do marketplace para fontes de comando. Um comando cuja saída com hash muda, portanto, produz uma nova versão, mesmo quando a string de versão criada permanece a mesma. No [modo link](/docs/pt/plugin-marketplaces#copy-mode-and-link-mode), o hash cobre o caminho real do diretório impresso e suas entradas de nível superior em vez do conteúdo do arquivo.

1622 

1623Para esses tipos de fonte, isso oferece três maneiras de versionar um plugin:

1624 

1625| Abordagem | Como | Comportamento de atualização | Melhor para |

1626| :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------- |

1627| **Versão explícita** | Defina `"version": "2.1.0"` em `plugin.json` | Os usuários recebem atualizações apenas quando você incrementa este campo. Enviar novos commits sem incrementá-lo não tem efeito, e `/plugin update` relata "já está na versão mais recente". Para um plugin [carregado no local](#plugin-caching-and-file-resolution), o novo conteúdo é carregado de qualquer forma. | Plugins publicados com ciclos de lançamento estáveis |

1628| **Versão Commit-SHA** | Omita `version` tanto de `plugin.json` quanto da entrada do marketplace | Os usuários recebem atualizações sempre que o commit resolvido da fonte muda | Plugins internos ou de equipe em desenvolvimento ativo |

1629| **Versão Digest** | Use uma [fonte `archive`](/docs/pt/plugin-marketplaces#zip-archives) e omita `version` tanto de `plugin.json` quanto da entrada do marketplace | Com um pin `sha256`, os usuários recebem atualizações quando você altera o pin. Sem um, os usuários recebem atualizações sempre que os bytes do arquivo zip hospedado mudam | Plugins publicados como arquivos zip em um servidor estático ou repositório de artefatos |

1630 

1631Se você usar versões explícitas, siga [versionamento semântico](https://semver.org) (`MAJOR.MINOR.PATCH`): incremente MAJOR para mudanças significativas, MINOR para novos recursos, PATCH para correções de bugs. Documente as alterações em um `CHANGELOG.md`.

1632 

1633***

1634 

1635<h2 id="see-also">

1636 Veja também

1637</h2>

1638 

1639* [Plugins](/docs/pt/plugins) - Tutoriais e uso prático

1640* [Marketplaces de plugins](/docs/pt/plugin-marketplaces) - Criando e gerenciando marketplaces

1641* [Skills](/docs/pt/skills) - Detalhes de desenvolvimento de skill

1642* [Subagents](/docs/pt/sub-agents) - Configuração e capacidades de agent

1643* [Hooks](/docs/pt/hooks) - Manipulação de eventos e automação

1644* [MCP](/docs/pt/mcp) - Integração de ferramenta externa

1645* [Configurações](/docs/pt/settings) - Opções de configuração para plugins

plugins/cli-hints.md +136 −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# Recomende seu plugin a partir de sua CLI

6 

7> Solicite aos usuários do Claude Code que instalem seu plugin do marketplace oficial emitindo uma tag claude-code-hint a partir de sua CLI ou SDK.

8 

9Se você mantém uma CLI ou SDK, sua ferramenta pode solicitar aos usuários do Claude Code que instalem seu plugin. Quando sua CLI detecta que está sendo executada dentro do Claude Code, faça-a escrever uma tag `<claude-code-hint />` de uma linha para stderr. Claude Code remove a linha da saída das ferramentas Bash e PowerShell antes do modelo ver a saída, e então mostra ao usuário um prompt de instalação único.

10 

11Esta página se aplica apenas se seu plugin está listado em `claude-plugins-official` ou em outro marketplace com um dos [nomes oficiais de marketplace](/docs/pt/plugins/security#official-marketplace-names) da Anthropic. O marketplace da comunidade, `claude-community`, não é um deles.

12 

13<Note>

14 Para publicar um plugin, consulte [Publicar e distribuir um plugin](/docs/pt/plugins/publish).

15</Note>

16 

17<h2 id="emit-the-hint">

18 Emita a dica

19</h2>

20 

21Emita a tag apenas quando `CLAUDECODE` ou `CLAUDE_CODE_CHILD_SESSION` estiver definida, para que não apareça quando uma pessoa executa sua CLI diretamente.

22 

23Claude Code define `CLAUDECODE=1` nos comandos que executa através das ferramentas Bash e PowerShell e em comandos hook. Na v2.1.172 e posterior, também define `CLAUDE_CODE_CHILD_SESSION=1` lá. As variáveis diferem em quais processos as carregam:

24 

25* **`CLAUDECODE`**: definida por todas as versões do Claude Code. As extensões IDE também a definem em seus terminais integrados, portanto um gate apenas em `CLAUDECODE` também emite a tag quando uma pessoa executa sua CLI diretamente em um desses terminais

26* **`CLAUDE_CODE_CHILD_SESSION`**: definida apenas em subprocessos que o próprio Claude Code inicia. Use-a quando você puder exigir v2.1.172 ou posterior

27 

28A [referência de variáveis de ambiente](/docs/pt/env-vars) tem os detalhes.

29 

30Os exemplos a seguir fazem gate em `CLAUDECODE` para o alcance mais amplo e emitem uma dica para um plugin chamado `example-cli` no marketplace oficial:

31 

32<CodeGroup>

33 ```javascript Node.js theme={null}

34 if (process.env.CLAUDECODE) {

35 process.stderr.write(

36 '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />\n',

37 )

38 }

39 ```

40 

41 ```python Python theme={null}

42 import os, sys

43 

44 if os.environ.get("CLAUDECODE"):

45 print(

46 '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />',

47 file=sys.stderr,

48 )

49 ```

50 

51 ```go Go theme={null}

52 if os.Getenv("CLAUDECODE") != "" {

53 fmt.Fprintln(os.Stderr,

54 `<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />`)

55 }

56 ```

57 

58 ```shell Shell theme={null}

59 if [ -n "$CLAUDECODE" ]; then

60 printf '%s\n' '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />' >&2

61 fi

62 ```

63</CodeGroup>

64 

65Substitua `example-cli` pelo nome do seu plugin no marketplace oficial.

66 

67Você pode emitir a dica em cada invocação, porque Claude Code solicita para cada plugin uma vez.

68 

69Para verificar o emissor, execute `CLAUDECODE=1 example-cli` em um terminal e confirme que a linha da tag aparece em stderr, depois execute `example-cli` sem a variável e confirme que nada extra é impresso.

70 

71<h2 id="hint-format">

72 Formato da dica

73</h2>

74 

75A tag deve ocupar sua própria linha; Claude Code ignora uma tag incorporada no meio da linha.

76 

77A tag leva três atributos, todos obrigatórios:

78 

79| Atributo | Descrição |

80| :------- | :-------------------------------------------------- |

81| `v` | Versão do protocolo. `1` é o único valor suportado |

82| `type` | Tipo de dica. `plugin` é o único valor suportado |

83| `value` | Identificador do plugin na forma `name@marketplace` |

84 

85Os valores podem ser entre aspas duplas ou sem aspas; um valor sem aspas não pode conter espaços em branco.

86 

87Claude Code remove a linha da saída mesmo quando `v` ou `type` não é reconhecido.

88 

89<h2 id="check-when-the-prompt-appears">

90 Verifique quando o prompt aparece

91</h2>

92 

93O prompt aparece apenas em sessões de terminal interativas. Em execuções `claude -p`, em execuções de subagente e na saída de comandos hook, a tag é removida e nenhum prompt é mostrado. Todas essas verificações também devem passar:

94 

95* **Oficial e instalável**: `value` nomeia um plugin que Claude Code encontra em sua cópia local de um marketplace oficial, que ainda não está instalado e que nenhuma política bloqueia

96* **Análise ativada**: uma sessão onde a análise do Claude Code está desativada nunca solicita, por exemplo uma com `DISABLE_TELEMETRY`, `DO_NOT_TRACK` ou `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` definida, ou uma em um provedor de terceiros como Amazon Bedrock, onde a [exclusão automática de telemetria](/docs/pt/data-usage#default-behaviors-by-api-provider) se aplica

97* **Limites de frequência**: um prompt por sessão, um prompt sempre por plugin independentemente da resposta do usuário, e nenhum uma vez que 100 plugins tenham sido solicitados nessa máquina

98* **Não desativado**: o usuário não escolheu **Não, e não mostre mais dicas de instalação de plugin**

99* **Sessão local e assistida**: o workspace da sessão é local em vez de estar em uma máquina em nuvem ou remota, e a sessão não está sendo executada sem supervisão. Por exemplo, uma sessão iniciada com `--cloud`, uma servindo Remote Control ou um colega de equipe de agente nunca solicita

100 

101<h2 id="preview-what-the-user-sees">

102 Visualize o que o usuário vê

103</h2>

104 

105Quando as verificações em [Verifique quando o prompt aparece](#check-when-the-prompt-appears) passam, Claude Code mostra um diálogo de **Recomendação de plugin** como o seguinte:

106 

107```text theme={null}

108─────────────────────────────────────────────────────────────

109 Recomendação de plugin

110 

111 O comando example-cli sugere instalar um plugin.

112 

113 Plugin: example-cli

114 Marketplace: claude-plugins-official

115 Descrição: Integração oficial para implantações example-cli

116 

117 Você gostaria de instalá-lo?

118 ❯ 1. Sim, instalar

119 2. Não

120 3. Não, e não mostre mais dicas de instalação de plugin

121 

122─────────────────────────────────────────────────────────────

123```

124 

125O diálogo nomeia a primeira palavra do comando shell que Claude executou, para que os usuários possam detectar uma incompatibilidade. Cada resposta tem um efeito:

126 

127* **Sim, instalar**: instala o plugin no [escopo do usuário](/docs/pt/plugins/install)

128* **Não, e não mostre mais dicas de instalação de plugin**: desativa futuros prompts de dica para esse usuário

129* **Sem resposta por 30 segundos**: conta como **Não**

130 

131<h2 id="next-steps">

132 Próximas etapas

133</h2>

134 

135* [Publicar e distribuir um plugin](/docs/pt/plugins/publish): as rotas em cada marketplace, incluindo o marketplace oficial, que a dica requer

136* [Referência de comandos de plugin](/docs/pt/plugins/cli-reference#plugin-install): o comando shell que instala o mesmo plugin fora de uma sessão

plugins/cli-reference.md +843 −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# Referência de comandos de plugin

6 

7> Referência completa para os comandos de shell do plugin claude, /plugin e /reload-plugins em uma sessão, e as flags que carregam um plugin para uma sessão.

8 

9Você executa comandos de plugin como `claude plugin` do seu shell ou script, ou como `/plugin` e `/reload-plugins` dentro de uma sessão Claude Code. Esta referência fornece as flags, padrões, saída e códigos de saída de cada comando, junto com as duas flags que carregam um plugin para uma sessão.

10 

11Execute `claude plugin --help` em sua compilação para confirmar quais subcomandos sua versão possui.

12 

13<Note>

14 Estes casos são cobertos em outras páginas:

15 

16 * **Instalar e gerenciar etapas, e onde `/plugin` é executado**: veja [Instalar e gerenciar plugins](/docs/pt/plugins/install)

17 * **O que um comando muda no disco e qual escopo tem precedência**: veja [Referência de carregamento de plugin](/docs/pt/plugins/loading)

18 * **O que uma mensagem de erro significa**: veja [Solucionar problemas de plugins](/docs/pt/plugins/troubleshooting)

19</Note>

20 

21<h2 id="claude-plugin-commands">

22 Comandos claude plugin

23</h2>

24 

25Execute `claude plugin <subcommand>` do seu shell ou script, fora de uma sessão Claude Code. Estes subcomandos instalam e gerenciam plugins sem abrir o painel [`/plugin`](#plugin-in-a-session).

26 

27`claude plugins` é um alias para `claude plugin`.

28 

29Cada subcomando compartilha estes códigos de saída, argumentos de plugin e valores de escopo:

30 

31* **Códigos de saída**: `0` em caso de sucesso e `1` em caso de falha. `validate` adiciona saída `2` para um erro inesperado, e `eval` adiciona os códigos listados em [sua seção](#plugin-eval).

32* **Argumentos de plugin**: um argumento `<plugin>` é um `name` de plugin ou `name@marketplace`. Quando dois marketplaces oferecem o mesmo nome, use a forma qualificada.

33* **Escopos**: `--scope` aceita `user`, `project` ou `local`, e nomeia o arquivo de configurações que o comando escreve. `update` também aceita `managed`.

34 

35<h3 id="plugin-init">

36 plugin init

37</h3>

38 

39Crie um novo plugin em `~/.claude/skills/<name>/`. Ele carrega em sua próxima sessão como `<name>@skills-dir` sem etapa de instalação.

40 

41`new` é um alias para `init`.

42 

43Para o fluxo de trabalho criar, testar e editar que começa com este comando, veja [Criar um plugin](/docs/pt/plugins/create).

44 

45```bash theme={null}

46claude plugin init <name> [options]

47```

48 

49`<name>` se torna o nome do diretório sob `~/.claude/skills/` e o `name` do plugin em seu manifesto.

50 

51O comando não possui flag para outro local. Para criar um scaffold dentro de um projeto, veja [Criar um plugin](/docs/pt/plugins/create).

52 

53| Flag | Descrição |

54| :----------------------- | :--------------------------------------------------------------------------------------------------------- |

55| `--description <text>` | Descrição do manifesto |

56| `--author <name>` | Nome do autor. Padrão é `git config user.name` |

57| `--author-email <email>` | Email do autor. Padrão é `git config user.email` |

58| `--with <components...>` | Também criar arquivos iniciais para `skills`, `agents`, `hooks`, `mcp`, `lsp`, `output-style` ou `channel` |

59| `-f, --force` | Sobrescrever um `.claude-plugin/` existente no destino |

60 

61Criar um plugin com arquivos de skill e hook iniciais:

62 

63```bash theme={null}

64claude plugin init my-helper --with skills hooks

65```

66 

67Claude Code valida o que foi escrito e imprime `Created plugin "my-helper" at ~/.claude/skills/my-helper`, seguido pelo id que ele carrega como e o comando `claude plugin disable` que o desativa.

68 

69Claude Code sai com `1` sem escrever quando não consegue criar um scaffold com segurança, e a mensagem nomeia o motivo. Estes são motivos comuns:

70 

71* Um valor desconhecido em `--with`

72* Um scaffold existente no destino sem `--force`

73* Uma configuração gerenciada que bloqueia plugins de diretório de skills

74 

75<h3 id="plugin-install">

76 plugin install

77</h3>

78 

79Instale um plugin de um marketplace que você adicionou. `i` é um alias para `install`.

80 

81```bash theme={null}

82claude plugin install <plugin> [options]

83```

84 

85A maioria dos plugins é instalada sem um prompt. Para um plugin cujo marketplace [executa um comando para instalá-lo](/docs/pt/plugins/host-marketplace) ou [define um `headersHelper` para seu download](/docs/pt/plugins/host-marketplace#how-users-accept-a-headershelper-command), Claude Code primeiro imprime o comando e pergunta `Run this command now? [y/N]`.

86 

87| Flag | Descrição |

88| :-------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

89| `-s, --scope <scope>` | Escopo de instalação: `user`, `project` ou `local`. Padrão é `user` |

90| `--config <key=value>` | Defina uma opção [`userConfig`](/docs/pt/plugins/manifest-reference) que o manifesto do plugin declara. Repita a flag para cada opção. Requer Claude Code v2.1.147 ou posterior |

91| `-y, --yes` | Aceite o comando de instalação exibido sem o prompt `Run this command now?`. Ignorado quando o comando é executado dentro de uma sessão Claude Code, como da ferramenta Bash ou um hook. Requer Claude Code v2.1.229 ou posterior |

92| `--accept-command <sha256>` | Aceite o comando de instalação exibido cujo `sha256` uma execução anterior [`--json`](#plugin-json-result) relatou em `shownCommand`, no lugar de `-y`. Não pode ser combinado com `-y`. Veja [Aceitar um comando de instalação exibido](#accept-a-displayed-install-command). Requer Claude Code v2.1.271 ou posterior |

93| `--json` | Imprima o resultado como um objeto JSON na última linha de stdout em vez da mensagem legível por humanos, para uso em scripts. Veja [Formato de resultado JSON](#plugin-json-result). Requer Claude Code v2.1.268 ou posterior |

94 

95Passe `-y` do seu próprio terminal para aceitar o comando exibido sem o prompt. Aqui está o que acontece sem um TTY e quando Claude executa o comando:

96 

97* **stdin ou stdout não é um TTY, e você não passa `-y` nem `--accept-command`**: a instalação é recusada. A saída diz que o comando foi apenas exibido, e o código de saída é `1`

98* **Claude executa o comando através de sua ferramenta Bash**: `-y` é ignorado. Execute o comando do seu próprio terminal

99 

100Instale um plugin para todos que clonam o projeto:

101 

102```bash theme={null}

103claude plugin install formatter@my-marketplace --scope project

104```

105 

106Claude Code imprime `Successfully installed plugin: formatter@my-marketplace (scope: project)`. Quando nada novo é instalado, a saída diz por quê:

107 

108* **Já instalado nesse escopo**: a saída é `Plugin "formatter@my-marketplace" is already installed (scope: project)` e o código de saída é `0`

109* **Você recusa um prompt de origem de comando**: a saída é `Aborted.` e o código de saída é `1`

110* **Você recusa um prompt `headersHelper`, ou não pode ser confirmado sem um TTY**: a saída é `Aborted — the command was not run.` e o código de saída é `1`

111 

112<h4 id="plugin-json-result">

113 Formato de resultado JSON

114</h4>

115 

116Quando você passa `--json` para `plugin install`, a última linha de stdout é um objeto JSON. Analise apenas essa linha, porque Claude Code imprime qualquer comando que o marketplace declara antes dela.

117 

118Três campos estão sempre presentes:

119 

120* `command`: o subcomando que foi executado, como `install`

121* `outcome`: `ok` ou `failed`

122* `message`: uma descrição legível por humanos do resultado

123 

124Outros campos, como `pluginId`, `scope` e `failureCode`, aparecem apenas quando se aplicam.

125 

126A opção `--json` em `plugin uninstall`, `plugin update`, `plugin enable` e `plugin disable` imprime o mesmo objeto com os próprios campos desse subcomando.

127 

128Um erro de uso, como um `--scope` inválido, não imprime nenhuma linha de resultado e sai com `1` com o motivo em stderr.

129 

130<h4 id="accept-a-displayed-install-command">

131 Aceitar um comando de instalação exibido

132</h4>

133 

134Quando uma execução `--json` exibe um comando declarado pelo marketplace e não o executa, o resultado `failed` também carrega um objeto `shownCommand`. Seus campos incluem o comando conforme exibido, o plugin ao qual pertence e o `sha256` do comando.

135 

136Para aceitar exatamente esse comando, execute novamente com esse `sha256` como `--accept-command` do seu próprio terminal, porque a flag não tem efeito dentro de uma sessão Claude Code. Requer Claude Code v2.1.271 ou posterior.

137 

138O `sha256` conta como aceitação para exatamente esse comando, plugin e catálogo de marketplace. Se qualquer um deles mudou desde que o comando foi exibido, Claude Code não aceita o `sha256` e mostra o comando novamente. Uma mudança que a atualização do marketplace da própria execução busca também conta como tal mudança.

139 

140Se `shownCommand.acceptCommandMatched` for `false`, o `sha256` que você passou não corresponde ao comando agora exibido. Revise esse comando antes de executar novamente com seu `sha256`.

141 

142<h3 id="plugin-uninstall">

143 plugin uninstall

144</h3>

145 

146Remova um plugin instalado de um escopo. `remove` e `rm` são aliases para `uninstall`.

147 

148```bash theme={null}

149claude plugin uninstall <plugin> [options]

150```

151 

152| Flag | Descrição |

153| :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

154| `-s, --scope <scope>` | Desinstale do escopo: `user`, `project` ou `local`. Padrão é `user` |

155| `--keep-data` | Preserve o diretório de dados persistentes do plugin, `~/.claude/plugins/data/<id>/` |

156| `--prune` | Também remova [dependências](/docs/pt/plugins/dependencies) auto-instaladas que nenhum plugin restante precisa |

157| `-y, --yes` | Pule o prompt de confirmação `--prune`. Necessário com `--prune` quando stdin ou stdout não é um TTY |

158| `--json` | Imprima o resultado como um objeto JSON na última linha de stdout, no [mesmo formato que `plugin install --json`](#plugin-json-result). Não pode ser combinado com `--prune`. Requer Claude Code v2.1.268 ou posterior |

159 

160Desinstale um plugin do escopo do projeto:

161 

162```bash theme={null}

163claude plugin uninstall formatter@my-marketplace --scope project

164```

165 

166Claude Code imprime `Successfully uninstalled plugin: formatter (scope: project)`. Quando o plugin não está instalado nesse escopo, o comando imprime uma linha que começa com `Failed to uninstall plugin "formatter@my-marketplace":` e sai com `1`.

167 

168<h3 id="plugin-enable">

169 plugin enable

170</h3>

171 

172Ative um plugin desativado. Para um [plugin sincronizado de claude.ai](/docs/pt/plugins/loading#synced-plugins), passe `<name>@synced` como o plugin.

173 

174```bash theme={null}

175claude plugin enable <plugin> [options]

176```

177 

178| Flag | Descrição |

179| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

180| `-s, --scope <scope>` | Escopo para ativar: `user`, `project` ou `local`. Auto-detectado quando omitido |

181| `--json` | Imprima o resultado como um objeto JSON na última linha de stdout, no [mesmo formato que `plugin install --json`](#plugin-json-result). Requer Claude Code v2.1.268 ou posterior |

182 

183Sem `--scope`, o comando verifica seus arquivos de configurações na ordem local, projeto, usuário, e usa o primeiro escopo que menciona o plugin.

184 

185Se você passar um `--scope` onde o plugin não está declarado, o comando escreve uma substituição ou falha:

186 

187* **Um escopo que [tem precedência](/docs/pt/plugins/loading) sobre o que o declara**: Claude Code escreve uma substituição no escopo que você passou. Por exemplo, `claude plugin disable formatter --scope local` desativa um plugin ativado no projeto apenas para você

188* **Qualquer outro escopo**: o comando falha com `Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.`

189 

190Se o plugin já está ativado no escopo resolvido, o comando imprime `Plugin "formatter" is already enabled` e sai com `1`. Com `--json`, o resultado tem `"failureCode": "already_in_goal_state"` e `"alreadyInGoalState": true`, então um script pode tratar esse caso como sucesso.

191 

192Quando o plugin declara [dependências](/docs/pt/plugins/dependencies), Claude Code as ativa também. O comando falha nestes casos:

193 

194* **Uma dependência não está instalada**: a ativação falha e imprime o comando `claude plugin install` para cada dependência ausente

195* **Uma dependência é bloqueada pela política de plugin da sua organização**: a ativação falha e nomeia a dependência bloqueada

196* **Uma dependência é definida como `false` em um escopo com precedência maior que o escopo de destino**: a ativação falha. Ative a dependência nesse escopo, ou passe `--scope` para escrever lá

197 

198Reative um plugin onde quer que seja declarado:

199 

200```bash theme={null}

201claude plugin enable formatter

202```

203 

204Claude Code imprime `Successfully enabled plugin: formatter (scope: project)`, nomeando o escopo que detectou.

205 

206<h3 id="plugin-disable">

207 plugin disable

208</h3>

209 

210Desative um plugin sem desinstalá-lo. Para um [plugin sincronizado de claude.ai](/docs/pt/plugins/loading#synced-plugins), passe `<name>@synced` como o plugin.

211 

212```bash theme={null}

213claude plugin disable [plugin] [options]

214```

215 

216| Flag | Descrição |

217| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

218| `-a, --all` | Desative todos os plugins ativados. Não pode ser combinado com um nome de plugin ou `--scope` |

219| `-s, --scope <scope>` | Escopo para desativar: `user`, `project` ou `local`. Auto-detectado quando omitido |

220| `--json` | Imprima o resultado como um objeto JSON na última linha de stdout, no [mesmo formato que `plugin install --json`](#plugin-json-result). Requer Claude Code v2.1.268 ou posterior |

221 

222Sem `--scope`, o escopo é auto-detectado na mesma ordem local, projeto, usuário que [`plugin enable`](#plugin-enable).

223 

224Se você não passar nem um nome de plugin nem `--all`, Claude Code imprime `Please specify a plugin name or use --all to disable all plugins` e sai com `1`. Desativar um plugin que já está desativado imprime `Plugin "formatter" is already disabled` e sai com `1`, como [`plugin enable`](#plugin-enable) faz para um plugin já ativado.

225 

226O comando falha para um plugin que ainda é necessário:

227 

228* **Outro plugin ativado [depende](/docs/pt/plugins/dependencies) dele**: o comando falha e nomeia os dependentes para desativar primeiro

229* **Sua organização o requer como um plugin sincronizado**: o comando falha e não salva nada

230 

231Desative um plugin:

232 

233```bash theme={null}

234claude plugin disable formatter

235```

236 

237Claude Code imprime `Successfully disabled plugin: formatter (scope: project)`.

238 

239<h3 id="plugin-update">

240 plugin update

241</h3>

242 

243Atualize um plugin para a versão mais recente que seu marketplace oferece. A nova versão carrega em sua próxima sessão, ou depois que você executa `/reload-plugins` em uma em execução.

244 

245```bash theme={null}

246claude plugin update <plugin> [options]

247```

248 

249| Flag | Descrição |

250| :-------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

251| `-s, --scope <scope>` | Escopo para atualizar: `user`, `project`, `local` ou `managed`. Padrão é o escopo em que o plugin está instalado |

252| `-y, --yes` | Aceite um comando de instalação alterado de um plugin [command-source](/docs/pt/plugins/host-marketplace), sem o prompt. Necessário quando stdin ou stdout não é um TTY, a menos que você passe `--accept-command`. Requer Claude Code v2.1.229 ou posterior |

253| `--accept-command <sha256>` | Aceite o comando declarado pelo marketplace cujo `sha256` uma execução anterior [`--json`](#plugin-json-result) relatou em `shownCommand`, no lugar de `-y`. Não pode ser combinado com `-y`. Requer Claude Code v2.1.271 ou posterior |

254| `--json` | Imprima o resultado como um objeto JSON na última linha de stdout, no [mesmo formato que `plugin install --json`](#plugin-json-result). Requer Claude Code v2.1.268 ou posterior |

255 

256`managed` é o único escopo que você pode atualizar mas não instalar. Para plugins instalados por admin, veja [Gerenciar plugins para sua organização](/docs/pt/plugins/org).

257 

258Atualize um plugin:

259 

260```bash theme={null}

261claude plugin update formatter@my-marketplace

262```

263 

264Claude Code imprime `Checking for updates for plugin "formatter@my-marketplace"…`, depois o resultado. Quando nada é mais recente, imprime `formatter is already at the latest version (1.0.0).` e sai com `0`.

265 

266Você pode passar um nome de plugin simples, que o comando corresponde contra seus plugins instalados. Quando plugins instalados de diferentes marketplaces compartilham o nome, o comando recusa a atualização e lista os comandos `plugin-name@marketplace-name` qualificados para executar. Atualizar por nome simples requer Claude Code v2.1.246 ou posterior.

267 

268<h3 id="plugin-list">

269 plugin list

270</h3>

271 

272Liste plugins instalados com sua versão, escopo e status.

273 

274```bash theme={null}

275claude plugin list [options]

276```

277 

278| Flag | Descrição |

279| :------------ | :----------------------------------------------------------------------------------------------------- |

280| `--json` | Imprima a lista como JSON |

281| `--available` | Também liste plugins que seus marketplaces oferecem que você não instalou. Não tem efeito sem `--json` |

282 

283Claude Code agrupa a saída legível por humanos por como cada plugin carrega:

284 

285* **`Installed plugins:`**: plugins que você instalou de um marketplace

286* **`Session-only plugins (--plugin-dir / --plugin-url):`**: plugins carregados por essas flags no mesmo comando, como em `claude --plugin-dir ./my-plugin plugin list`

287* **`Skills-directory plugins (.claude/skills/*):`**: plugins que Claude Code encontrou em um diretório de skills

288* **`Synced from claude.ai`**: [plugins sincronizados de sua conta claude.ai](/docs/pt/plugins/loading#synced-plugins)

289 

290Sem nada em nenhum grupo, Claude Code imprime ``No plugins installed. Use `claude plugin install` to install a plugin.``

291 

292<h4 id="json-output">

293 Saída JSON

294</h4>

295 

296Com `--json`, Claude Code imprime um array com um objeto por instalação. Cada objeto carrega os campos abaixo. `id`, `version`, `scope`, `enabled` e `installPath` estão sempre presentes, e os outros aparecem apenas quando se aplicam.

297 

298| Campo | Tipo | Descrição |

299| :------------- | :--------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

300| `id` | string | `name@marketplace` para installs, `name@inline` para plugins de sessão única, `name@skills-dir` para plugins de diretório de skills, `name@synced` para plugins sincronizados de claude.ai |

301| `version` | string | Para uma instalação de marketplace, a [versão que Claude Code computou](/docs/pt/plugins/loading#versions-and-updates) na instalação. Para um plugin de sessão única, diretório de skills ou sincronizado, a `version` do manifesto, ou `unknown` quando não declara nenhuma |

302| `scope` | string | `user`, `project`, `local` ou `managed` para installs; `user` ou `project` para plugins de diretório de skills; `session` para plugins de sessão única; `synced` para plugins sincronizados de claude.ai |

303| `enabled` | boolean | Se o plugin está ativado em suas configurações mescladas |

304| `installPath` | string | Diretório do qual o plugin carrega |

305| `installedAt` | string | Timestamp ISO da instalação. Apenas installs de marketplace |

306| `lastUpdated` | string | Timestamp ISO da última atualização. Apenas installs de marketplace |

307| `projectPath` | string | Projeto ao qual a instalação pertence. Apenas escopo `project` e `local` |

308| `mcpServers` | object | As definições de servidor MCP do plugin, quando um plugin instalado de marketplace tem alguma |

309| `errors` | array of strings | Erros de carregamento, quando o plugin falhou ao carregar |

310| `notes` | array of strings | Avisos de autoria para um plugin que carregou e funciona |

311| `errorDetails` | array of objects | Um objeto por entrada `errors`, fornecendo seu `type` de diagnóstico e os nomes aos quais se refere, como o plugin, marketplace, servidor ou arquivo. Requer Claude Code v2.1.268 ou posterior |

312| `noteDetails` | array of objects | Os mesmos objetos de detalhe para cada entrada `notes`. Requer Claude Code v2.1.268 ou posterior |

313 

314Com `--json --available`, Claude Code imprime um objeto em vez de um array. Seu campo `installed` contém o array de objetos de plugin instalado, e seu campo `available` contém um objeto por plugin de marketplace não instalado com os campos abaixo.

315 

316| Campo | Tipo | Descrição |

317| :---------------- | :--------------- | :------------------------------------------------------------------------------------------------------------------------------------- |

318| `pluginId` | string | `name@marketplace` |

319| `name` | string | O nome do plugin no marketplace |

320| `marketplaceName` | string | O marketplace que o oferece |

321| `source` | string or object | A [source](/docs/pt/plugins/marketplace-reference) da entrada do marketplace: uma string para um caminho relativo, um objeto caso contrário |

322| `description` | string | A descrição da entrada, quando tem uma |

323| `version` | string | A versão da entrada, quando declara uma |

324| `installCount` | number | Contagem de instalações, quando Claude Code tem uma para o plugin |

325 

326<h3 id="plugin-details">

327 plugin details

328</h3>

329 

330Mostre o inventário de componentes de um plugin e seu custo de token projetado.

331 

332O plugin deve estar carregado: instalado, encontrado em um diretório de skills, ou passado com `--plugin-dir` ou `--plugin-url` no mesmo comando. O `<name>` é um `name` de plugin ou `name@marketplace`.

333 

334```bash theme={null}

335claude plugin details <name>

336```

337 

338O comando não toma flags além de `--help`.

339 

340Mostre o que um plugin instalado contribui:

341 

342```bash theme={null}

343claude plugin details formatter

344```

345 

346Claude Code imprime o nome, versão, descrição e fonte do plugin, depois estas seções:

347 

348* **`Component inventory`**: os skills, agents, hooks, servidores MCP e servidores LSP do plugin

349* **`Projected token cost`**: os tokens sempre ativados que o plugin adiciona a cada sessão

350* **`Per-component (rounded)`**: estimativas sempre ativadas e sob invocação para cada skill, agent e comando. Omitido quando o plugin não tem nenhum

351 

352Para o que as duas figuras de custo significam, veja [Medir custo e uso de plugin](/docs/pt/plugins/measure).

353 

354Para um plugin que não está carregado, Claude Code imprime ``Plugin "formatter" not found. Run `claude plugin list` to see installed plugins, or pass --plugin-dir <path> to load one from disk.`` e sai com `1`.

355 

356<h3 id="plugin-prune">

357 plugin prune

358</h3>

359 

360Remova [dependências](/docs/pt/plugins/dependencies) auto-instaladas que nenhum plugin instalado precisa mais. O comando nunca remove um plugin que você instalou você mesmo. `autoremove` é um alias para `prune`.

361 

362```bash theme={null}

363claude plugin prune [options]

364```

365 

366| Flag | Descrição |

367| :-------------------- | :--------------------------------------------------------------------------- |

368| `-s, --scope <scope>` | Prune no escopo: `user`, `project` ou `local`. Padrão é `user` |

369| `--dry-run` | Liste o que seria removido sem remover |

370| `-y, --yes` | Pule o prompt de confirmação. Necessário quando stdin ou stdout não é um TTY |

371 

372Visualize o que um prune removeria:

373 

374```bash theme={null}

375claude plugin prune --dry-run

376```

377 

378Claude Code lista as dependências órfãs e termina com `(dry run — nothing removed)`. Sem nada para remover, imprime uma linha que começa com `Nothing to prune`.

379 

380Sem `--dry-run`, o comando remove as dependências órfãs apenas depois que você confirma no prompt ou passa `-y`.

381 

382O código de saída é `0` qualquer que seja sua resposta no prompt.

383 

384O que `prune` faz depende se um terminal está anexado e se você passa `-y`:

385 

386| Terminal e flags | O que acontece |

387| :-------------------------------- | :---------------------------------------------------------------------------------------- |

388| Terminal interativo, sem `-y` | Lista as dependências órfãs e pergunta `Remove? [y/N]` |

389| Qualquer terminal, `-y` | Remove-as e imprime `Removed N auto-installed plugins: <names>` |

390| stdin ou stdout não-TTY, sem `-y` | Imprime a lista e ``Not a TTY — run `claude plugin prune -y` to remove.``, removendo nada |

391 

392<h3 id="plugin-eval">

393 plugin eval

394</h3>

395 

396Execute [casos de eval](/docs/pt/plugin-evals) de um plugin e relate resultados pontuados. Requer Claude Code v2.1.269 ou posterior.

397 

398Cada caso é um prompt mais avaliadores. Claude Code o executa várias vezes em uma sessão isolada com apenas o plugin de destino carregado, e por padrão também sem o plugin para que o relatório mostre a diferença.

399 

400Veja [Testar plugins com evals](/docs/pt/plugin-evals) para o formato de caso, avaliadores, resultados e uso de CI.

401 

402```bash theme={null}

403claude plugin eval [target] [options]

404```

405 

406O `target` opcional padrão é o diretório atual e toma qualquer uma destas formas:

407 

408* Um diretório de plugin

409* Um único arquivo `prompt.md` ou `case.yaml`

410* Um plugin instalado como `name` ou `name@marketplace`

411* `name@skills-dir`

412 

413Coloque o target antes de `--tag`, `--allow-tools` e `--json`. Cada uma dessas opções toma as palavras que a seguem como seu valor, então um target escrito após uma delas é lido como uma tag, um nome de ferramenta ou o caminho de saída JSON em vez de como o target.

414 

415Esta tabela lista as opções que a maioria das execuções usa. Execute `claude plugin eval --help` para o conjunto completo, incluindo `--case`, `--tag`, `--output-dir`, `--report`, `--allow-real-servers`, `--keep-temp` e `--verbose`.

416 

417| Opção | Descrição | Padrão |

418| :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------- |

419| `--runs <n>` | Execuções por caso em cada [arm](/docs/pt/plugin-evals#compare-against-a-no-plugin-baseline) | `runs` de cada caso, senão 3 |

420| `-j, --concurrency <n>` | Sessões de agente para executar de uma vez, 1 a 8. Elas compartilham seu limite de taxa | `1` |

421| `--model <model>` | Modelo para o agente sob teste | `model` de cada caso, senão `ANTHROPIC_MODEL` se definido, senão padrão de Claude Code |

422| `--judge-model <model>` | Modelo para avaliadores `llm` e `baseline` | Um modelo pequeno e rápido |

423| `--ablation <mode>` | `none` ou `with-without`. Veja [Comparar contra uma linha de base sem plugin](/docs/pt/plugin-evals#compare-against-a-no-plugin-baseline) | `with-without` quando um plugin se resolve, senão `none` |

424| `--threshold <0..1>` | Saia com 1 se algum caso pontuar abaixo disso | `1.0` |

425| `--max-cost-usd <usd>` | Pare antes da próxima execução uma vez que o gasto atinja isso, saia com 2 e relate resultados parciais | Sem limite |

426| `--allow-tools <tools...>` | Conceda ferramentas além do conjunto somente leitura, como `Bash`, `Write`, `Edit` ou `"mcp__plugin_<plugin>_<server>__*"`. Veja [Conceder ferramentas](/docs/pt/plugin-evals#grant-tools) | |

427| `--scaffold` | Execute o [`scaffold_script`](/docs/pt/plugin-evals#add-setup-or-history-with-case-yaml) de cada caso | Desativado |

428| `--trust-plugin` | Pule o prompt de confiança da primeira execução, para CI. Veja [O que uma execução pode acessar](/docs/pt/plugin-evals#security) | Desativado |

429| `--mocks <mode>` | `record` ou `off`. Veja [Mock MCP servers](/docs/pt/plugin-evals#mock-mcp-servers) | `record` |

430| `--eval-dir <dir>` | Diretório abaixo do plugin que contém os casos | O `experimental.evals` do manifesto, senão `evals` |

431| `--json [path]` | Imprima o [documento de resultado](/docs/pt/plugin-evals#json-result) para stdout, ou escreva-o em um caminho `.json` | |

432| `--no-publish` | Mantenha o relatório HTML local | |

433 

434O código de saída relata como a execução terminou. Para agir sobre ele em um pipeline, veja [Executar evals em CI](/docs/pt/plugin-evals#run-evals-in-ci).

435 

436| Código de saída | Significado |

437| :-------------- | :-------------------------------------------------------------------------------- |

438| `0` | Cada caso atende ao threshold |

439| `1` | Um caso falhando, um erro de carregamento ou um diretório de plugin não confiável |

440| `2` | Uma execução parcial |

441| `130` | Interrompido |

442| `143` | Terminado |

443 

444<h3 id="plugin-eval-init">

445 plugin eval init

446</h3>

447 

448Crie um conjunto de eval para o plugin no diretório atual. Requer Claude Code v2.1.269 ou posterior. Veja [Criar seu primeiro conjunto de eval](/docs/pt/plugin-evals#create-your-first-eval-suite).

449 

450```bash theme={null}

451claude plugin eval init [name] [options]

452```

453 

454Em um terminal, o comando abre uma sessão Claude Code interativa para uma entrevista de autoria. Na entrevista, Claude faz o seguinte:

455 

4561. Lê o plugin

4572. Pergunta o que ele deveria fazer bem

4583. Propõe casos e avaliadores

4594. Escreve os arquivos de caso

4605. Executa os casos e revisa as notas com você para verificar que os avaliadores pontuam da forma que você faria

461 

462Com `--bare`, ou sem um terminal, o comando escreve um modelo de caso único em branco. Quando Claude executa o comando de dentro de uma sessão Claude Code, o comando imprime as instruções da entrevista para essa sessão seguir em vez de escrever um modelo.

463 

464O `name` opcional é um nome de caso. É necessário com `--bare` ou sem um terminal, porque o comando escreve o modelo em branco para esse caso. A entrevista não precisa de um.

465 

466O comando aceita estas opções:

467 

468| Opção | Descrição | Padrão |

469| :------------------ | :----------------------------------------------------------------------------------------------------- | :------------------------------------------------- |

470| `--bare` | Escreva um `prompt.md` e `graders/criteria.md` em branco para `<name>` em vez de executar a entrevista | |

471| `-i, --interactive` | Exija a entrevista. Falha sem um terminal em vez de escrever um modelo | |

472| `--eval-dir <dir>` | Diretório abaixo do diretório atual para escrever casos | O `experimental.evals` do manifesto, senão `evals` |

473 

474<h3 id="plugin-tag">

475 plugin tag

476</h3>

477 

478Crie uma tag git anotada nomeada `<name>--v<version>` para uma versão de plugin. Antes de marcar, o comando verifica se o `plugin.json` do plugin e qualquer entrada de marketplace que o liste concordam sobre a versão.

479 

480Para quando marcar uma versão, veja [Publicar um plugin](/docs/pt/plugins/publish).

481 

482```bash theme={null}

483claude plugin tag [path] [options]

484```

485 

486O `[path]` é o diretório do plugin, padronizando para o diretório atual. O comando encontra a entrada do marketplace caminhando para cima a partir desse diretório para um `.claude-plugin/marketplace.json` que lista o plugin.

487 

488| Flag | Descrição |

489| :-------------------- | :--------------------------------------------------------------------------------- |

490| `--push` | Empurre a tag para `--remote` após criá-la |

491| `--dry-run` | Imprima o que seria marcado sem criar a tag |

492| `-f, --force` | Pule as verificações de árvore de trabalho suja e tag já existe |

493| `-m, --message <msg>` | Mensagem de anotação de tag. `%s` representa a versão. Padrão é `<name> <version>` |

494| `--remote <name>` | Remote para empurrar com `--push`. Padrão é `origin` |

495 

496Visualize a tag para um plugin em um checkout de marketplace:

497 

498```bash theme={null}

499claude plugin tag plugins/formatter --dry-run

500```

501 

502Claude Code imprime o plano:

503 

504* O nome do plugin

505* A versão e qual arquivo ela veio

506* A entrada de marketplace correspondente, quando há uma

507* O nome da tag

508* Os comandos `git tag` e `git push` que executaria

509 

510Sem `--dry-run`, Claude Code imprime `Created tag formatter--v1.0.0` e `Pushed to origin` ou o comando push para você executar você mesmo. Se o push falhar, a tag ainda é criada localmente e o comando sai com um erro.

511 

512O comando sai com `1` e imprime o motivo quando não consegue marcar com segurança. Motivos comuns são:

513 

514* Sem `version` em `plugin.json` ou na entrada do marketplace

515* A tag já existe

516* A árvore de trabalho está suja

517 

518<h3 id="plugin-validate">

519 plugin validate

520</h3>

521 

522Valide um manifesto de plugin, um manifesto de marketplace, ou os skills, agents e comandos em um diretório, e saia com um código que um trabalho de CI pode agir. Para o fluxo de trabalho criar, testar e editar, veja [Criar um plugin](/docs/pt/plugins/create). Para o que o validador verifica em cada manifesto, veja a [referência de manifesto de plugin](/docs/pt/plugins/manifest-reference) e a [referência de marketplace](/docs/pt/plugins/marketplace-reference).

523 

524```bash theme={null}

525claude plugin validate <path> [options]

526```

527 

528| Flag | Descrição |

529| :--------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ |

530| `--strict` | Trate avisos como erros, então campos não reconhecidos e metadados ausentes que o runtime tolera falham na execução. Requer Claude Code v2.1.145 ou posterior |

531| `--json` | Saída do relatório de validação como um objeto JSON com os mesmos códigos de saída. Requer Claude Code v2.1.259 ou posterior |

532 

533Valide um plugin antes de fazer commit:

534 

535```bash theme={null}

536claude plugin validate ./my-plugin --strict

537```

538 

539<h4 id="validate-a-directory">

540 Validar um diretório

541</h4>

542 

543O `<path>` é um arquivo de manifesto ou um diretório. Dado um diretório, Claude Code escolhe o que validar pelo que encontra lá:

544 

545* `.claude-plugin/marketplace.json`, quando existe

546* Caso contrário `.claude-plugin/plugin.json`

547* Caso contrário os arquivos de componente, escolhidos pelo nome do diretório. Validar arquivos de componente sem um manifesto requer Claude Code v2.1.233 ou posterior:

548 * Um diretório nomeado `skills`, `agents` ou `commands`: os arquivos dentro dele

549 * Um diretório nomeado `.claude`: os diretórios `skills`, `agents` e `commands` dentro dele

550 * Qualquer outro diretório: esses três diretórios sob seu `.claude`

551 

552Claude Code não segue symlinks dentro do diretório que você nomeia. O que faz depende de onde o link está:

553 

554* **Um diretório `skills`, `agents` ou `commands` vinculado sob a raiz do plugin ou `.claude`**: Claude Code avisa que nada nele foi lido.

555* **Uma entrada vinculada dentro de um diretório `skills`, `agents` ou `commands`**: Claude Code a pula e avisa, por diretório, quantas entradas pulou que uma sessão carregaria.

556* **O diretório `skills`, `agents` ou `commands` que você nomeia é ele mesmo um symlink, ou seu diretório pai `.claude` é**: Claude Code relata um erro e não verifica nada nele. Nomeie o diretório real.

557 

558Alguns arquivos não são lidos por uma execução de validação:

559 

560* **Um `SKILL.md` na raiz do plugin**: quando você executa `claude plugin validate` contra um diretório de plugin, Claude Code não verifica um `SKILL.md` na raiz do plugin

561* **Um `CLAUDE.md` na raiz do plugin**: em uma execução de plugin, Claude Code também avisa sobre um `CLAUDE.md` na raiz do plugin

562* **Arquivos de plugin em uma execução de marketplace**: de um diretório de marketplace, Claude Code não abre os arquivos de skill, agent, comando ou hook dos plugins. Para encontrar erros nesses arquivos, valide cada diretório de plugin

563 

564<h4 id="output-and-exit-codes">

565 Saída e códigos de saída

566</h4>

567 

568Claude Code imprime o arquivo que validou, quaisquer erros e avisos com seus caminhos, e uma linha de veredicto. O código de saída segue o veredicto:

569 

570| Código de saída | Linha de veredicto | Significado |

571| :-------------- | :------------------------------------------------------------------------------ | :----------------------------------------------------- |

572| `0` | `Validation passed` ou `Validation passed with warnings` | O manifesto carrega. Com `--strict`, sem avisos também |

573| `1` | `Validation failed` ou `Validation failed (--strict treats warnings as errors)` | Um erro, ou um aviso sob `--strict` |

574| `2` | `Unexpected error during validation: <reason>` | O validador em si falhou, como em um caminho ilegível |

575 

576Com `--json`, Claude Code escreve o relatório para stdout como um objeto JSON com estes campos de nível superior:

577 

578* `success`: o mesmo veredicto que o código de saída fornece

579* `strict`: se a execução tratou avisos como erros

580* `target`: o caminho resolvido que Claude Code validou

581* `manifest`: o resultado do próprio manifesto, ou `null` para uma execução sem manifesto

582* `contents`: resultados por arquivo, cada um nomeando seu `file` e carregando arrays `errors`, `warnings` e `notes`

583 

584Na saída `2`, o comando não escreve nada para stdout. A mensagem de erro vai para stderr.

585 

586<h2 id="claude-plugin-marketplace-commands">

587 Comandos claude plugin marketplace

588</h2>

589 

590Execute `claude plugin marketplace <subcommand>` do seu shell para adicionar, listar, atualizar e remover os marketplaces dos quais você instala plugins.

591 

592* **Códigos de saída**: estes subcomandos seguem a [convenção de código de saída](#claude-plugin-commands) dos comandos de plugin

593* **Escopos**: sua flag `--scope` não tem forma curta `-s`

594 

595Para o que é um marketplace e como Claude Code o armazena em cache, veja [Referência de carregamento de plugin](/docs/pt/plugins/loading).

596 

597<h3 id="plugin-marketplace-add">

598 plugin marketplace add

599</h3>

600 

601Adicione um marketplace de um repositório GitHub, uma URL git, um `marketplace.json` hospedado ou um caminho local, e declare-o em um arquivo de configurações.

602 

603Depois de adicioná-lo, Claude Code instala quaisquer [dependências](/docs/pt/plugins/dependencies) que seus plugins instalados estavam perdendo.

604 

605```bash theme={null}

606claude plugin marketplace add <source> [options]

607```

608 

609| Flag | Descrição |

610| :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

611| `--scope <scope>` | Arquivo de configurações para declarar o marketplace: `user`, `project` ou `local`. Padrão é `user` |

612| `--sparse <paths...>` | Limite o checkout git a estes diretórios, para monorepos. Apenas fontes `github` e `git` |

613| `--claudeai` | Leia o argumento como o nome de um [marketplace hospedado em claude.ai](/docs/pt/plugins/install#add-from-claude-ai) em vez de uma fonte. Requer Claude Code v2.1.273 ou posterior |

614 

615`<source>` toma qualquer uma das formas na tabela abaixo, e sua forma decide o tipo de fonte e como Claude Code busca o marketplace. Para o objeto de fonte resultante, veja a [referência de marketplace](/docs/pt/plugins/marketplace-reference).

616 

617| Você digita | Tipo de fonte | Como Claude Code a busca |

618| :------------------------------------------------------------------------------------------ | :------------ | :----------------------------------------------------------------------------------------------------------------------------- |

619| `owner/repo`, `owner/repo#ref` ou `owner/repo@ref` | `github` | Clona o repositório GitHub, fixado a `ref` quando fornecido. Proprietário e repo devem seguir regras de nomenclatura do GitHub |

620| `user@host:path[.git][#ref]` | `git` | Clona sobre SSH |

621| `https://example.com/repo.git[#ref]` ou uma URL contendo `/_git/` | `git` | Clona sobre HTTPS, incluindo URLs do Azure DevOps |

622| `https://github.com/owner/repo` ou `https://gitlab.com/namespace/project` | `git` | Clona sobre HTTPS após anexar `.git` |

623| Qualquer outra URL `http://` ou `https://`, incluindo um host git auto-hospedado sem `.git` | `url` | Busca a URL como um `marketplace.json`. Para clonar um repositório lá, anexe `.git` |

624| `./path`, `../path`, `/path` ou `~/path` para um diretório | `directory` | Lê o diretório no local. No Windows, formas `.\`, `..\` e `C:\` também funcionam |

625| Os mesmos formulários de caminho, para um arquivo `.json` | `file` | Lê o arquivo no local |

626 

627Para um host cujas URLs de clone não carregam o sufixo `.git`, como AWS CodeCommit, adicione o marketplace como uma entrada git em [`extraKnownMarketplaces`](/docs/pt/settings-reference#extraknownmarketplaces). Claude Code clona uma entrada git independentemente de sua URL terminar em `.git`.

628 

629Claude Code também clona uma URL `gitlab.com` com subgrupos aninhados, como `https://gitlab.com/group/subgroup/project`.

630 

631Adicione um marketplace e compartilhe-o com o projeto:

632 

633```bash theme={null}

634claude plugin marketplace add your-org/your-marketplace --scope project

635```

636 

637Claude Code imprime `Successfully added marketplace: your-marketplace (declared in project settings)`, usando o `name` do próprio manifesto do marketplace. Uma adição repetida ou uma fonte inválida imprime um destes resultados:

638 

639* **Marketplace já no disco**: a saída é `Marketplace 'your-marketplace' already on disk — declared in project settings` e o código de saída é `0`

640* **Fonte não reconhecida**: a saída é `Invalid marketplace source format. Try: owner/repo, https://..., or ./path` e o código de saída é `1`

641* **Host simples como `gitlab.example.com/team/plugins`**: a adição falha como um atalho `owner/repo` inválido, e a mensagem diz para adicionar `https://` ou usar um caminho local

642 

643Adicione um [marketplace hospedado em claude.ai](/docs/pt/plugins/install#add-from-claude-ai) pelo nome impresso na seção `From claude.ai:` de `claude plugin marketplace list`:

644 

645```bash theme={null}

646claude plugin marketplace add --claudeai claudeai-organization-library

647```

648 

649Com `--claudeai`, o comando recusa `--scope` e `--sparse`. O marketplace é hospedado para sua conta, não declarado em um arquivo de configurações, então você não pode compartilhá-lo através do `.claude/settings.json` de um projeto.

650 

651<h3 id="plugin-marketplace-list">

652 plugin marketplace list

653</h3>

654 

655Liste cada marketplace que você adicionou, com sua fonte.

656 

657```bash theme={null}

658claude plugin marketplace list [options]

659```

660 

661| Flag | Descrição |

662| :------- | :------------------------ |

663| `--json` | Imprima a lista como JSON |

664 

665Claude Code imprime `Configured marketplaces:` e uma linha `Source:` por marketplace, ou `No marketplaces configured`.

666 

667Com `--json`, Claude Code imprime um array com um objeto por marketplace, carregando os campos abaixo. Cada campo é uma string.

668 

669| Campo | Descrição |

670| :---------------- | :-------------------------------------------------------------------- |

671| `name` | O nome do marketplace |

672| `source` | `github`, `git`, `url`, `directory`, `file` ou `claudeai` |

673| `repo` | `owner/repo`. Apenas fontes `github` |

674| `url` | A URL de clone ou busca. Apenas fontes `git` e `url` |

675| `path` | O caminho local. Apenas fontes `directory` e `file` |

676| `ref` | O branch ou tag fixado. Fontes `github` e `git`, apenas quando fixado |

677| `installLocation` | Onde Claude Code armazenou em cache o marketplace |

678 

679Um marketplace [claude.ai](/docs/pt/plugins/install#add-from-claude-ai) adicionado não tem clone local, então sua entrada carrega seus identificadores claude.ai, `marketplaceId` e `organizationUuid`, no lugar de `installLocation`. Também carrega `scope` quando um é registrado, e `status`.

680 

681Se suas sessões de terminal [sincronizam plugins de sua conta claude.ai](/docs/pt/plugins/loading#synced-plugins), a listagem de texto termina com uma seção `From claude.ai:`. Essa seção nomeia os marketplaces que claude.ai lista para sua conta que você não adicionou, tanto baseados em git quanto hospedados. Requer Claude Code v2.1.273 ou posterior.

682 

683Para adicionar um marketplace dessa seção, veja [Adicionar um marketplace de claude.ai](/docs/pt/plugins/install#add-from-claude-ai).

684 

685A saída `--json` cobre apenas marketplaces configurados e deixa a seção de fora.

686 

687<h3 id="plugin-marketplace-remove">

688 plugin marketplace remove

689</h3>

690 

691Remova a declaração de um marketplace de suas configurações. `rm` é um alias para `remove`.

692 

693<Warning>

694 Quando você remove um marketplace do último escopo que o declara, Claude Code também exclui seu cache e desinstala cada plugin que você instalou dele. Sem `--scope`, o comando remove a declaração de cada escopo. Para atualizar um marketplace sem perder seus plugins, execute `plugin marketplace update`.

695</Warning>

696 

697```bash theme={null}

698claude plugin marketplace remove <name> [options]

699```

700 

701O `<name>` é o nome do marketplace que `plugin marketplace list` mostra, não a fonte que você passou para `add`.

702 

703| Flag | Descrição |

704| :---------------- | :--------------------------------------------------------------------------------------------------------------------------------------- |

705| `--scope <scope>` | Remova a declaração de um escopo de configurações: `user`, `project` ou `local`. Sem ele, Claude Code remove a declaração de cada escopo |

706 

707Remova um marketplace de cada escopo:

708 

709```bash theme={null}

710claude plugin marketplace remove your-marketplace

711```

712 

713Claude Code imprime `Successfully removed marketplace: your-marketplace`, adicionando `(from project settings)` quando você o escopo. Se você escopar para um arquivo de configurações que não declara o marketplace, o comando falha com `Marketplace 'your-marketplace' is not declared in project settings. Omit --scope to remove it from all scopes.`

714 

715<h3 id="plugin-marketplace-update">

716 plugin marketplace update

717</h3>

718 

719Atualize um marketplace, ou cada marketplace, de sua fonte para buscar novos plugins e versões. Um marketplace adicionado com um branch ou tag `ref` atualiza para o commit mais recente desse ref, não o branch padrão do repositório.

720 

721```bash theme={null}

722claude plugin marketplace update [name]

723```

724 

725O comando não toma flags além de `--help`.

726 

727Atualize um marketplace:

728 

729```bash theme={null}

730claude plugin marketplace update your-marketplace

731```

732 

733Claude Code imprime `Successfully updated marketplace: your-marketplace`. Quando você omite o nome, imprime uma contagem como `Successfully updated 2 marketplaces`. Sem marketplaces adicionados, imprime `No marketplaces configured` e sai com `0`.

734 

735<h2 id="plugin-in-a-session">

736 /plugin em uma sessão

737</h2>

738 

739Dentro de uma sessão interativa, `/plugin` abre o painel de plugin. Cada subcomando abre o painel em uma aba, executa uma ação lá ou imprime um resultado inline. `/plugins` e `/marketplace` são aliases para `/plugin`.

740 

741Você pode executar estes comandos apenas em uma sessão de terminal interativa. Em uma execução não interativa como `claude -p`, Claude Code responde que `/plugin` não está disponível neste ambiente.

742 

743Para quais superfícies têm `/plugin`, como instalar sem ele e o que cada aba do painel mostra, veja [Instalar e gerenciar plugins](/docs/pt/plugins/install).

744 

745Um `<plugin>` é um `name` de plugin ou `name@marketplace`.

746 

747A tabela abaixo lista cada forma de sessão. Os subcomandos de shell `init`, `update`, `details`, `prune`, `eval` e `eval init` não têm forma de sessão.

748 

749| Comando | Aliases | O que faz |

750| :-------------------------------------------------- | :--------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

751| `/plugin` | | Abre o painel na aba **Discover**. Qualquer primeira palavra não reconhecida após `/plugin` faz o mesmo |

752| `/plugin help` | `/plugin --help`, `/plugin -h` | Mostra a lista de uso de subcomandos `/plugin` |

753| `/plugin list [--enabled\|--disabled]` | `ls` | Imprime seus plugins instalados de marketplace inline, com versão, escopo e status. Uma flag de filtro mostra apenas esse estado. Um plugin cujo estado de ativação ainda não foi aplicado é marcado `— run /reload-plugins to apply`. Requer Claude Code v2.1.163 ou posterior |

754| `/plugin install` | `i` | Abre a aba **Discover** |

755| `/plugin install <plugin>` | `i` | Abre os detalhes do plugin na aba **Discover**. Com `name@marketplace`, abre-os na lista desse marketplace |

756| `/plugin install <plugin> --marketplace <source>` | `i` | Adiciona o marketplace em `<source>` quando você ainda não o adicionou, pedindo para você confirmar primeiro, depois abre os detalhes do plugin. Veja [Adicionar um marketplace e instalar em um comando](/docs/pt/plugins/install#add-a-marketplace-and-install-in-one-command). Requer Claude Code v2.1.275 ou posterior |

757| `/plugin manage` | | Abre a aba **Installed** |

758| `/plugin stats` | | Abre a aba **Stats**, em sessões onde [`/skill-doctor`](/docs/pt/skills#find-unused-skills) está disponível. Em qualquer outro lugar abre o painel na aba **Discover** |

759| `/plugin enable <plugin>` | | Abre a aba **Installed** no plugin e o ativa |

760| `/plugin disable <plugin>` | | Abre a aba **Installed** no plugin e o desativa |

761| `/plugin uninstall <plugin>` | | Abre a aba **Installed** no plugin e o desinstala |

762| `/plugin configure <plugin>` | `config` | Abre o diálogo [`userConfig`](/docs/pt/plugins/manifest-reference) do plugin, ou relata que o plugin não declara nenhum. Requer Claude Code v2.1.147 ou posterior |

763| `/plugin validate <path>` | | Imprime o mesmo relatório que `claude plugin validate`, inline |

764| `/plugin tag [path] [--push] [--dry-run] [--force]` | | Cria a tag de versão como `claude plugin tag` faz. Aceita `--push`, `--dry-run` e `--force` ou `-f`; com qualquer outra flag ou argumento extra, Claude Code imprime uso |

765| `/plugin marketplace` | `market` | Não faz nada visível. Passe `add`, `list`, `update` ou `remove` |

766| `/plugin marketplace add [source]` | `market add` | Com uma fonte, a adiciona e relata o resultado. Sem uma, abre a entrada **Add marketplace** |

767| `/plugin marketplace list` | `market list` | Imprime seus nomes de marketplace inline |

768| `/plugin marketplace update [name]` | `market update` | Abre a aba **Marketplaces**. Com um nome, atualiza esse marketplace lá |

769| `/plugin marketplace remove [name]` | `market remove`, `market rm`, `marketplace rm` | Abre a aba **Marketplaces**. Com um nome, remove esse marketplace lá |

770 

771Se você nomear um plugin que não está instalado no projeto atual em `/plugin enable`, `disable`, `uninstall` ou `configure`, Claude Code imprime `Plugin "<plugin>" is not installed in this project` em vez de agir.

772 

773<h2 id="reload-plugins">

774 /reload-plugins

775</h2>

776 

777Aplique mudanças de plugin pendentes à sessão em execução sem reiniciá-la. Mudanças pendentes são plugins que você instalou, atualizou, ativou, desativou ou editou no disco desde que a sessão começou.

778 

779Quando você fecha o painel `/plugin` com mudanças pendentes que você fez nele, Claude Code executa `/reload-plugins` para você. Execute-o você mesmo após mudanças de plugin que acontecem fora do painel, como um comando `claude plugin` que você executou em outro terminal.

780 

781```text theme={null}

782/reload-plugins [--force]

783```

784 

785| Flag | Descrição |

786| :-------- | :------------------------------------------------------------------------------------------------------ |

787| `--force` | Aplique o recarregamento mesmo quando invalidaria o cache de prompt. `force` sem dashes também funciona |

788 

789<h3 id="reload-summary">

790 Resumo de recarregamento

791</h3>

792 

793Claude Code recarrega cada plugin ativo e imprime uma linha de resumo, `Reloaded: N plugins · N skills · N agents · N hooks · N plugin MCP servers · N plugin LSP servers`, omitindo a contagem de servidor MCP de plugin em uma sessão sem terminal interativo. Quando qualquer plugin falhou, o resumo adiciona `N errors during load. Run /plugin for details.`

794 

795A contagem de skills cobre cada skill que um plugin fornece, tanto suas entradas `commands/` quanto suas skills `SKILL.md`. A contagem de agents é o número de agents carregados na sessão, incluindo aqueles que não vêm de plugins.

796 

797Quando as [dependências](/docs/pt/plugins/dependencies) de um plugin recarregado estão faltando, Claude Code as instala, recarrega novamente e anexa `(+ N dependencies: <names>) resolved` ao resumo.

798 

799<h3 id="reloads-that-change-mcp-tools">

800 Recarregamentos que mudam ferramentas MCP

801</h3>

802 

803Quando o recarregamento adicionaria ou removeria um servidor MCP de plugin ou a ferramenta `LSP`, e essa mudança invalidaria o [cache de prompt](/docs/pt/prompt-caching#enabling-or-disabling-a-plugin), Claude Code não aplica o recarregamento. Imprime uma linha como `This reload changes MCP tools (<server>) — your next message will re-read the whole conversation instead of using the cache. Run /reload-plugins --force to apply.` Passe `--force` para aplicá-lo mesmo assim.

804 

805<h3 id="sessions-without-an-interactive-terminal">

806 Sessões sem terminal interativo

807</h3>

808 

809`/reload-plugins` também é executado em sessões sem terminal interativo, como o aplicativo desktop, o Agent SDK e [modo não interativo](/docs/pt/headless) com `-p`. Requer Claude Code v2.1.260 ou posterior.

810 

811Nessas sessões, o comando é executado apenas quando você o digita na sessão você mesmo, como no prompt `-p` ou na caixa de prompt do aplicativo desktop. Quando chega de outra forma, como através de [Remote Control](/docs/pt/remote-control) ou uma mensagem retransmitida do Slack, o comando responde `/reload-plugins isn't available over a remote connection in this session.` e não recarrega nada.

812 

813O recarregamento nessas sessões não conecta ou desconecta servidores MCP de plugin. Essas mudanças entram em vigor em sua próxima sessão.

814 

815<h2 id="flags-that-load-a-plugin-for-one-session">

816 Flags que carregam um plugin para uma sessão

817</h2>

818 

819Duas flags `claude` carregam um plugin para uma sessão apenas, sem instalá-lo. Ambas são repetíveis.

820 

821Autores de plugin as usam para testar um plugin antes de publicar. Para o fluxo de trabalho carregar-editar-recarregar, veja [Desenvolver sem um marketplace](/docs/pt/plugins/create#develop-without-a-marketplace).

822 

823| Flag | Descrição | Exemplo |

824| :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------- |

825| `--plugin-dir <path>` | Carregue um plugin de um diretório ou um arquivo `.zip` de um. Uma pasta de plugins carrega cada pasta filha que contém um `.claude-plugin/plugin.json`. Cada flag toma um caminho | `claude --plugin-dir ./my-plugin --plugin-dir ./other.zip` |

826| `--plugin-url <url>` | Busque um arquivo `.zip` de plugin de uma URL. Repita a flag, ou passe várias URLs separadas por espaço em um valor entre aspas | `claude --plugin-url "https://example.com/a.zip https://example.com/b.zip"` |

827 

828Um plugin que qualquer uma dessas flags carrega é um plugin de sessão única. `claude plugin list` o mostra como `<name>@inline` com escopo `session`, mas apenas quando a mesma flag precede o subcomando. Por exemplo, execute `claude --plugin-dir ./my-plugin plugin list`.

829 

830Quando um plugin de sessão única compartilha um nome com um plugin instalado, Claude Code carrega a cópia de sessão única para essa sessão e pula a instalada. A cópia instalada carrega em vez disso se você desativou a cópia de sessão única com `claude plugin disable <name>@inline`, ou se configurações gerenciadas bloqueiam esse nome de plugin. Para a precedência, veja [Referência de carregamento de plugin](/docs/pt/plugins/loading).

831 

832Um administrador pode rejeitar ambas as flags e pastas nomeadas na variável [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/pt/env-vars#variables), com a configuração gerenciada [`disableSideloadFlags`](/docs/pt/settings-reference#disablesideloadflags). Claude Code então imprime que a flag é desativada pelas configurações gerenciadas de sua organização e sai com `1` sem iniciar.

833 

834Do Agent SDK, a opção [`plugins`](/docs/pt/agent-sdk/plugins) é o equivalente de `--plugin-dir`.

835 

836<h2 id="next-steps">

837 Próximos passos

838</h2>

839 

840* [Instalar e gerenciar plugins](/docs/pt/plugins/install): as mesmas operações que etapas, com o que você vê em cada uma

841* [Referência de carregamento de plugin](/docs/pt/plugins/loading): o que cada comando muda no disco e qual escopo entra em vigor

842* [Solucionar problemas de plugins](/docs/pt/plugins/troubleshooting): mensagens de erro de instalação, marketplace, carregamento e validação com suas correções

843* [Referência de manifesto de plugin](/docs/pt/plugins/manifest-reference): os campos que `claude plugin validate` verifica

plugins/code-intelligence.md +156 −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# Plugins de inteligência de código

6 

7> Instale um plugin de servidor de linguagem para que Claude veja erros de tipo após edições e navegue pelo código por símbolo, e responda ao diálogo de recomendação do plugin LSP.

8 

9Um plugin de inteligência de código oferece a Claude os diagnósticos ao vivo e a funcionalidade de ir para a definição que seu editor possui, para que Claude detecte erros de tipo e importações ausentes que suas próprias edições introduzem antes de você executar sua compilação, e encontre definições e referências por símbolo em vez de por busca de texto.

10 

11Cada plugin conecta Claude Code a um servidor de linguagem para uma linguagem através do Language Server Protocol (LSP). Você instala o plugin do marketplace oficial da Anthropic e o binário do servidor de linguagem em sua máquina.

12 

13<Note>

14 Os plugins de inteligência de código funcionam em sessões de terminal. Em [sessões na nuvem](/docs/pt/claude-code-on-the-web), Claude Code não inicia servidores de linguagem de plugin, portanto Claude não obtém diagnósticos ou navegação de código lá. Para escrever seu próprio plugin de servidor de linguagem, ou para conectar um servidor de linguagem que não possui plugin, consulte [Servidores LSP em componentes de plugin](/docs/pt/plugins/components#lsp-servers).

15</Note>

16 

17Para começar, encontre sua linguagem na tabela em [Instalar um plugin de inteligência de código](#install-a-code-intelligence-plugin). Os plugins nessa tabela vêm do [marketplace oficial de plugins](/docs/pt/plugins/anthropic-marketplaces) da Anthropic.

18 

19Se você já viu um diálogo de **recomendação de plugin LSP**, consulte [Aceitar ou descartar o diálogo de recomendação](#accept-or-dismiss-the-recommendation-dialog) para saber o que cada escolha faz.

20 

21<h2 id="install-a-code-intelligence-plugin">

22 Instalar um plugin de inteligência de código

23</h2>

24 

25Um plugin de inteligência de código diz a Claude Code qual comando inicia o servidor de linguagem e quais extensões de arquivo ele manipula. Ele não inclui o servidor de linguagem. Instale primeiro o binário do servidor de linguagem, depois o plugin, e então confirme que o servidor inicia.

26 

27<Steps>

28 <Step title="Instalar o binário do servidor de linguagem">

29 Encontre sua linguagem na tabela abaixo e instale o binário em sua linha. Se sua linguagem não estiver listada, consulte [Adicionar uma linguagem sem um plugin oficial](#add-a-language-without-an-official-plugin).

30 

31 | Linguagem | Plugin | Binário |

32 | :---------------------- | :--------------------------------------------------------------------------------------------------------------- | :--------------------------- |

33 | C/C++ | [`clangd-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/clangd-lsp) | `clangd` |

34 | C# | [`csharp-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/csharp-lsp) | `csharp-ls` |

35 | Go | [`gopls-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/gopls-lsp) | `gopls` |

36 | Java | [`jdtls-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/jdtls-lsp) | `jdtls` |

37 | Kotlin | [`kotlin-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/kotlin-lsp) | `kotlin-lsp` |

38 | Liquid | [`liquid-lsp`](https://github.com/Shopify/liquid-skills/tree/main/plugins/liquid-lsp) | `shopify`, do Shopify CLI |

39 | Lua | [`lua-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/lua-lsp) | `lua-language-server` |

40 | PHP | [`php-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/php-lsp) | `intelephense` |

41 | Python | [`pyright-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/pyright-lsp) | `pyright-langserver` |

42 | Ruby | [`ruby-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/ruby-lsp) | `ruby-lsp` |

43 | Rust | [`rust-analyzer-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/rust-analyzer-lsp) | `rust-analyzer` |

44 | Swift | [`swift-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/swift-lsp) | `sourcekit-lsp` |

45 | TypeScript e JavaScript | [`typescript-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/typescript-lsp) | `typescript-language-server` |

46 

47 A Anthropic mantém todos os plugins na tabela exceto `liquid-lsp`, que a Shopify mantém e o marketplace oficial lista.

48 

49 Para encontrar o comando que instala o binário, siga o link do plugin na tabela para seu README. Para TypeScript, esse comando é `npm install -g typescript-language-server typescript`.

50 

51 Depois de instalar o binário, confirme que está no `PATH` do shell a partir do qual você inicia `claude`, por exemplo com `which typescript-language-server`, ou `Get-Command typescript-language-server` no PowerShell.

52 </Step>

53 

54 <Step title="Instalar o plugin">

55 Para instalar o plugin listado para sua linguagem na tabela da etapa 1, execute `/plugin install` em uma sessão Claude Code, substituindo `typescript-lsp` pelo nome desse plugin:

56 

57 ```

58 /plugin install typescript-lsp@claude-plugins-official

59 ```

60 

61 Uma mensagem de confirmação diz se o plugin está ativo agora ou precisa de `/reload-plugins`. Se a instalação falhar com `Marketplace "claude-plugins-official" not found`, consulte a [entrada de solução de problemas para esse erro](/docs/pt/plugins/troubleshooting#marketplace-claude-plugins-official-not-found). Para controlar onde o plugin é instalado, ou para executar a instalação a partir de seu shell em vez de dentro de Claude Code, consulte [Instalar plugins](/docs/pt/plugins/install).

62 </Step>

63 

64 <Step title="Confirmar que o servidor inicia">

65 O servidor de linguagem inicia na primeira vez que Claude edita um arquivo com uma das extensões do plugin. Para vê-lo funcionar, peça a Claude para introduzir um erro de tipo em um arquivo dessa linguagem e depois corrigi-lo. Em seguida, verifique a conversa para uma linha de diagnósticos:

66 

67 * **Uma linha de diagnósticos aparece**: `Found N new diagnostic issues in M files (ctrl+o to expand)` sob a edição que introduziu o erro significa que o servidor iniciou.

68 * **Nenhuma linha de diagnósticos aparece**: execute `/plugin` e abra a aba **Errors**. Uma linha lendo `Executable not found in $PATH: "<binary>"` nomeia o binário a instalar. Se a aba não tiver tal linha, consulte [Solucionar problemas de inteligência de código](#troubleshoot-code-intelligence).

69 

70 Depois de instalar um binário ausente, Claude Code tenta novamente na próxima vez que Claude edita um arquivo correspondente. Se você instalou o binário em um diretório que não está no `PATH` do shell a partir do qual iniciou `claude`, inicie uma nova sessão a partir de um shell onde ele está.

71 </Step>

72</Steps>

73 

74<h2 id="see-what-claude-gains">

75 Veja o que Claude ganha

76</h2>

77 

78Com um servidor de linguagem em execução, Claude ganha diagnósticos e navegação de código:

79 

80* **Diagnósticos após edições**: cada vez que Claude edita ou escreve um arquivo que o servidor manipula, Claude obtém os erros e avisos que o servidor relata. Ele vê um erro de tipo, importação ausente ou erro de sintaxe que introduziu sem executar um compilador.

81* **Navegação de código**: Claude obtém uma ferramenta `LSP` que procura símbolos através do servidor em vez de procurá-los por texto. A ferramenta é somente leitura. Para saber o que Claude pode procurar com a ferramenta e como as permissões se aplicam a ela, consulte [Comportamento da ferramenta LSP](/docs/pt/tools-reference#lsp-tool-behavior).

82 

83<h3 id="read-the-diagnostics-yourself">

84 Leia os diagnósticos você mesmo

85</h3>

86 

87Depois que Claude edita um arquivo que o servidor manipula, a conversa mostra apenas o resumo `Found N new diagnostic issues`. Para ler os problemas em si, pressione **Ctrl+O**.

88 

89<h2 id="accept-or-dismiss-the-recommendation-dialog">

90 Aceitar ou descartar o diálogo de recomendação

91</h2>

92 

93Se um binário de servidor de linguagem já está em seu `PATH` e o plugin que o usa não está instalado, Claude Code oferece instalar o plugin para você em um diálogo intitulado **LSP plugin recommendation**.

94 

95<h3 id="when-the-recommendation-dialog-appears">

96 Quando o diálogo de recomendação aparece

97</h3>

98 

99O diálogo **LSP plugin recommendation** pode aparecer depois que Claude edita um arquivo. Essas condições decidem se ele aparece e qual plugin oferece:

100 

101* **Um plugin corresponde ao arquivo**: um dos marketplaces que você adicionou, ou o marketplace oficial que Claude Code registrou para você, lista um plugin de inteligência de código para a extensão desse arquivo, e o binário do plugin está instalado.

102* **Oficial primeiro**: quando mais de um marketplace oferece um plugin para a extensão, o diálogo oferece o plugin do marketplace oficial.

103* **Uma vez por sessão**: o diálogo aparece no máximo uma vez em uma sessão, para o primeiro arquivo correspondente que Claude edita.

104* **Não para sessões na nuvem**: o diálogo nunca aparece quando seu terminal está anexado a uma sessão na nuvem, como uma que você iniciou com [`claude --cloud`](/docs/pt/claude-code-on-the-web#from-terminal-to-cloud).

105 

106<h3 id="respond-to-the-recommendation-dialog">

107 Responder ao diálogo de recomendação

108</h3>

109 

110O diálogo **LSP plugin recommendation** nomeia o plugin e oferece essas escolhas:

111 

112* **Yes, install**: Claude Code instala o plugin para sua conta de usuário e imprime `<plugin> installed · restart to apply`. Inicie uma nova sessão para carregar o servidor.

113* **No, not now**: o diálogo fecha, e uma sessão posterior pode oferecer o plugin novamente. Pressionar **Esc** faz o mesmo.

114* **Never for this plugin**: o diálogo para de aparecer para esse plugin e ainda aparece para outros.

115* **Disable all LSP recommendations**: o diálogo para de aparecer para cada linguagem.

116 

117Se você não escolher uma opção, Claude Code o fecha após 30 segundos e conta isso como ignorado. A contagem é mantida entre sessões. Depois de cinco diálogos ignorados, Claude Code para de recomendar plugins, o mesmo que se você tivesse escolhido **Disable all LSP recommendations**.

118 

119<h3 id="turn-recommendations-back-on">

120 Ativar recomendações novamente

121</h3>

122 

123O diálogo **LSP plugin recommendation** para de aparecer depois que você escolhe **Disable all LSP recommendations** ou o ignora cinco vezes.

124 

125* **Desabilitado ou ignorado cinco vezes**: para ativá-lo novamente em qualquer caso, remova as chaves `lspRecommendationDisabled` e `lspRecommendationIgnoredCount` de `~/.claude.json`, o arquivo de configuração próprio de Claude Code.

126* **Nunca para este plugin**: se você escolheu **Never for this plugin** e quer que esse plugin seja oferecido novamente, remova seu id `name@marketplace` da lista `lspRecommendationNeverPlugins` no mesmo arquivo.

127 

128<h2 id="troubleshoot-code-intelligence">

129 Solucionar problemas de inteligência de código

130</h2>

131 

132A página de solução de problemas de plugins cobre os sintomas específicos dos plugins de inteligência de código em [Language server doesn't start, uses too much memory, or reports wrong diagnostics](/docs/pt/plugins/troubleshooting#language-server-doesnt-start):

133 

134* **O servidor de linguagem não inicia**: você vê `Executable not found in $PATH` na aba **Errors** de `/plugin`, ou Claude nunca relata diagnósticos para a linguagem.

135* **Alto uso de memória**: o uso de memória aumenta enquanto o servidor indexa o projeto.

136* **Diagnósticos falsos positivos em um monorepo**: diagnósticos relatam importações como não resolvidas quando não estão.

137 

138<h2 id="add-a-language-without-an-official-plugin">

139 Adicionar uma linguagem sem um plugin oficial

140</h2>

141 

142Se sua linguagem não estiver na [tabela de plugins oficiais](#install-a-code-intelligence-plugin), você ainda pode conectar um servidor de linguagem.

143 

1441. Escreva um plugin com um arquivo `.lsp.json` que nomeie o comando do servidor e as extensões de arquivo que ele manipula.

1452. Em seguida, carregue o plugin com [`--plugin-dir`](/docs/pt/plugins/cli-reference#flags-that-load-a-plugin-for-one-session) ou publique-o em um marketplace.

146 

147Para os campos do arquivo e um exemplo trabalhado, consulte [LSP servers in plugin components](/docs/pt/plugins/components#lsp-servers).

148 

149<h2 id="next-steps">

150 Próximas etapas

151</h2>

152 

153* [LSP servers in plugin components](/docs/pt/plugins/components#lsp-servers): escreva o `.lsp.json` para um servidor de linguagem que não possui plugin oficial

154* [Install and manage plugins](/docs/pt/plugins/install): escopos, atualizações e desinstalação

155* [Troubleshoot plugins](/docs/pt/plugins/troubleshooting): erros de carregamento além dos relacionados ao servidor de linguagem nesta página

156* [Find plugins in the official marketplace](/docs/pt/plugins/anthropic-marketplaces#find-plugins-in-the-official-marketplace): onde procurar o resto do marketplace oficial

plugins/components.md +1130 −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# Adicionar componentes a um plugin

6 

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

8 

9export const Piece = ({id, children}) => <div className="pe-piece" data-piece={id}>{children}</div>;

10 

11export const PluginExplorer = ({children}) => {

12 const PIECES = [{

13 id: 'manifest',

14 name: 'Manifest',

15 path: '.claude-plugin/plugin.json',

16 required: "Required by Anthropic's directory",

17 lines: [{

18 depth: 0,

19 kind: 'folder',

20 text: '.claude-plugin/'

21 }, {

22 depth: 1,

23 kind: 'file',

24 text: 'plugin.json'

25 }],

26 href: '/en/plugins/manifest-reference#manifest-file',

27 linkText: 'Go to the manifest reference'

28 }, {

29 id: 'skills',

30 name: 'Skills',

31 path: 'skills/review/SKILL.md',

32 lines: [{

33 depth: 0,

34 kind: 'folder',

35 text: 'skills/'

36 }, {

37 depth: 1,

38 kind: 'folder',

39 text: 'review/'

40 }, {

41 depth: 2,

42 kind: 'file',

43 text: 'SKILL.md'

44 }],

45 href: '/en/plugins/components#skills',

46 linkText: 'Go to the Skills section'

47 }, {

48 id: 'commands',

49 name: 'Commands',

50 path: 'commands/about.md',

51 lines: [{

52 depth: 0,

53 kind: 'folder',

54 text: 'commands/'

55 }, {

56 depth: 1,

57 kind: 'file',

58 text: 'about.md'

59 }],

60 href: '/en/plugins/components#commands',

61 linkText: 'Go to the Commands section'

62 }, {

63 id: 'agents',

64 name: 'Agents',

65 path: 'agents/security-reviewer.md',

66 lines: [{

67 depth: 0,

68 kind: 'folder',

69 text: 'agents/'

70 }, {

71 depth: 1,

72 kind: 'file',

73 text: 'security-reviewer.md'

74 }],

75 href: '/en/plugins/components#agents',

76 linkText: 'Go to the Agents section'

77 }, {

78 id: 'hooks',

79 name: 'Hooks',

80 path: 'hooks/hooks.json',

81 lines: [{

82 depth: 0,

83 kind: 'folder',

84 text: 'hooks/'

85 }, {

86 depth: 1,

87 kind: 'file',

88 text: 'hooks.json'

89 }],

90 href: '/en/plugins/components#hooks',

91 linkText: 'Go to the Hooks section'

92 }, {

93 id: 'monitors',

94 name: 'Monitors',

95 path: 'monitors/monitors.json',

96 lines: [{

97 depth: 0,

98 kind: 'folder',

99 text: 'monitors/'

100 }, {

101 depth: 1,

102 kind: 'file',

103 text: 'monitors.json'

104 }],

105 href: '/en/plugins/components#monitors',

106 linkText: 'Go to the Monitors section'

107 }, {

108 id: 'output-styles',

109 name: 'Output styles',

110 path: 'output-styles/terse.md',

111 lines: [{

112 depth: 0,

113 kind: 'folder',

114 text: 'output-styles/'

115 }, {

116 depth: 1,

117 kind: 'file',

118 text: 'terse.md'

119 }],

120 href: '/en/plugins/components#themes-and-output-styles',

121 linkText: 'Go to the Themes and output styles section'

122 }, {

123 id: 'themes',

124 name: 'Themes',

125 path: 'themes/dracula.json',

126 lines: [{

127 depth: 0,

128 kind: 'folder',

129 text: 'themes/'

130 }, {

131 depth: 1,

132 kind: 'file',

133 text: 'dracula.json'

134 }],

135 href: '/en/plugins/components#themes-and-output-styles',

136 linkText: 'Go to the Themes and output styles section'

137 }, {

138 id: 'workflows',

139 name: 'Workflows',

140 path: 'workflows/audit-routes.js',

141 lines: [{

142 depth: 0,

143 kind: 'folder',

144 text: 'workflows/'

145 }, {

146 depth: 1,

147 kind: 'file',

148 text: 'audit-routes.js'

149 }],

150 href: '/en/workflows#distribute-a-workflow-in-a-plugin',

151 linkText: 'Go to Distribute a workflow in a plugin'

152 }, {

153 id: 'bin',

154 name: 'Executables',

155 path: 'bin/hello-plugin',

156 lines: [{

157 depth: 0,

158 kind: 'folder',

159 text: 'bin/'

160 }, {

161 depth: 1,

162 kind: 'file',

163 text: 'hello-plugin'

164 }],

165 href: '/en/plugins/components#executables',

166 linkText: 'Go to the Executables section'

167 }, {

168 id: 'scripts',

169 name: 'Scripts',

170 path: 'scripts/format.sh',

171 lines: [{

172 depth: 0,

173 kind: 'folder',

174 text: 'scripts/'

175 }, {

176 depth: 1,

177 kind: 'file',

178 text: 'format.sh'

179 }],

180 href: '/en/plugins/components#hooks',

181 linkText: 'Go to the Hooks section'

182 }, {

183 id: 'settings',

184 name: 'Default settings',

185 path: 'settings.json',

186 lines: [{

187 depth: 0,

188 kind: 'file',

189 text: 'settings.json'

190 }],

191 href: '/en/plugins/components#default-settings',

192 linkText: 'Go to the Default settings section'

193 }, {

194 id: 'mcp',

195 name: 'MCP servers',

196 path: '.mcp.json',

197 lines: [{

198 depth: 0,

199 kind: 'file',

200 text: '.mcp.json'

201 }],

202 href: '/en/plugins/components#mcp-servers',

203 linkText: 'Go to the MCP servers section'

204 }, {

205 id: 'lsp',

206 name: 'LSP servers',

207 path: '.lsp.json',

208 lines: [{

209 depth: 0,

210 kind: 'file',

211 text: '.lsp.json'

212 }],

213 href: '/en/plugins/components#lsp-servers',

214 linkText: 'Go to the LSP servers section'

215 }];

216 const [selectedId, setSelectedId] = useState('manifest');

217 const [isFullscreen, setIsFullscreen] = useState(false);

218 const rootRef = useRef(null);

219 useEffect(() => {

220 const onFsChange = () => setIsFullscreen(!!document.fullscreenElement);

221 document.addEventListener('fullscreenchange', onFsChange);

222 return () => document.removeEventListener('fullscreenchange', onFsChange);

223 }, []);

224 const toggleFullscreen = () => {

225 if (!rootRef.current) return;

226 if (document.fullscreenElement) document.exitFullscreen(); else rootRef.current.requestFullscreen().catch(() => {});

227 };

228 const selected = PIECES.find(p => p.id === selectedId) || PIECES[0];

229 const onTreeKeyDown = e => {

230 const keys = ['ArrowDown', 'ArrowUp', 'Home', 'End'];

231 if (keys.indexOf(e.key) === -1) return;

232 const i = PIECES.findIndex(p => p.id === selectedId);

233 let next = i;

234 if (e.key === 'ArrowDown') next = Math.min(PIECES.length - 1, i + 1);

235 if (e.key === 'ArrowUp') next = Math.max(0, i - 1);

236 if (e.key === 'Home') next = 0;

237 if (e.key === 'End') next = PIECES.length - 1;

238 e.preventDefault();

239 if (next === i) return;

240 const id = PIECES[next].id;

241 setSelectedId(id);

242 const el = document.getElementById('pe-node-' + id);

243 if (el) el.focus();

244 };

245 const FolderIcon = () => <svg className="pe-icon" width="15" height="15" viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinejoin="round" aria-hidden="true">

246 <path d="M1.5 4.5a1 1 0 0 1 1-1h3.2l1.3 1.5h6a1 1 0 0 1 1 1V12a1 1 0 0 1-1 1h-10.5a1 1 0 0 1-1-1z" />

247 </svg>;

248 const FileIcon = () => <svg className="pe-icon" width="15" height="15" viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinejoin="round" aria-hidden="true">

249 <path d="M4 1.5h5.5L13 5v9.5H4z" />

250 <path d="M9.5 1.5V5H13" />

251 </svg>;

252 return <div ref={rootRef} className={isFullscreen ? 'pe-root pe-fullscreen not-prose' : 'pe-root not-prose'} data-selected={selected.id}>

253 <style>{`

254 .pe-root {

255 --pe-mono: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);

256 --pe-accent: #D97757;

257 --pe-accent-text: #A8502F;

258 --pe-accent-bg: rgba(217,119,87,0.10);

259 --pe-bg: #FFFFFF;

260 --pe-surface: #FAFAF7;

261 --pe-hover: #F0EEE6;

262 --pe-border: #E8E6DC;

263 --pe-text: #141413;

264 --pe-text-2: #3D3D3A;

265 --pe-text-3: #5E5D59;

266 font-family: inherit;

267 background: var(--pe-bg);

268 color: var(--pe-text);

269 border: 1px solid var(--pe-border);

270 border-radius: 12px;

271 margin: 1.5rem 0;

272 overflow: hidden;

273 box-sizing: border-box;

274 }

275 .dark .pe-root {

276 --pe-accent-text: #EBA98F;

277 --pe-accent-bg: rgba(217,119,87,0.18);

278 --pe-bg: #1A1918;

279 --pe-surface: #232221;

280 --pe-hover: #2E2D2B;

281 --pe-border: #3A3936;

282 --pe-text: #F1EFE9;

283 --pe-text-2: #D6D4CA;

284 --pe-text-3: #B8B5AD;

285 }

286 .pe-root *, .pe-root *::before, .pe-root *::after { box-sizing: border-box; }

287 .pe-head { display: flex; align-items: flex-start; gap: 12px; padding: 18px 24px 16px; border-bottom: 1px solid var(--pe-border); }

288 .pe-head-text { flex: 1; min-width: 0; }

289 .pe-fs-btn { flex-shrink: 0; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--pe-border); border-radius: 6px; background: var(--pe-surface); color: var(--pe-text-2); font-size: 15px; line-height: 1; cursor: pointer; }

290 .pe-fs-btn:hover { background: var(--pe-hover); }

291 .pe-fs-btn:focus-visible { outline: 2px solid var(--pe-accent); outline-offset: 2px; }

292 .pe-fullscreen { border-radius: 0; height: 100vh; display: flex; flex-direction: column; overflow: auto; }

293 .pe-fullscreen .pe-body { flex: 1; }

294 .pe-title { font-size: 19px; font-weight: 600; line-height: 1.3; color: var(--pe-text); margin: 0; }

295 .pe-sub { font-size: 15px; line-height: 1.5; color: var(--pe-text-3); margin: 4px 0 0; }

296 .pe-sub code { font-family: var(--pe-mono); font-size: 0.88em; padding: 1px 5px; border-radius: 4px; background: var(--pe-surface); border: 1px solid var(--pe-border); }

297 .pe-body { display: flex; align-items: stretch; }

298 .pe-tree-pane { width: 270px; flex-shrink: 0; background: var(--pe-surface); border-right: 1px solid var(--pe-border); padding: 16px 0 12px; }

299 .pe-panel { flex: 1; min-width: 0; padding: 16px 24px 24px; }

300 .pe-caption { font-size: 13px; font-weight: 600; color: var(--pe-text-3); margin: 0 0 10px; }

301 .pe-tree-pane .pe-caption { padding: 0 16px; }

302 .pe-rootline { display: flex; align-items: center; gap: 7px; padding: 3px 16px; font-family: var(--pe-mono); font-size: 13.5px; color: var(--pe-text-3); }

303 .pe-node {

304 display: block; width: 100%; margin: 0; padding: 3px 16px 3px 30px; text-align: left; cursor: pointer;

305 background: transparent; color: var(--pe-text-2);

306 border: none; border-left: 3px solid transparent;

307 font-family: var(--pe-mono); font-size: 13.5px; line-height: 1.4;

308 }

309 .pe-node:hover { background: var(--pe-hover); }

310 .pe-node:focus-visible { outline: 2px solid var(--pe-accent); outline-offset: -2px; }

311 .pe-node[aria-pressed="true"] { background: var(--pe-accent-bg); border-left-color: var(--pe-accent); color: var(--pe-accent-text); font-weight: 600; }

312 .pe-line { display: flex; align-items: center; gap: 7px; padding: 2px 0; }

313 .pe-line-tree { flex-wrap: wrap; }

314 .pe-line-tree .pe-req { flex-basis: 100%; margin: 2px 0 0 22px; white-space: normal; width: fit-content; max-width: calc(100% - 22px); }

315 .pe-line span { overflow-wrap: anywhere; }

316 .pe-piece { display: none; font-size: 16px; line-height: 1.6; color: var(--pe-text-2); }

317 .pe-root[data-selected="manifest"] .pe-piece[data-piece="manifest"],

318 .pe-root[data-selected="skills"] .pe-piece[data-piece="skills"],

319 .pe-root[data-selected="commands"] .pe-piece[data-piece="commands"],

320 .pe-root[data-selected="agents"] .pe-piece[data-piece="agents"],

321 .pe-root[data-selected="hooks"] .pe-piece[data-piece="hooks"],

322 .pe-root[data-selected="monitors"] .pe-piece[data-piece="monitors"],

323 .pe-root[data-selected="output-styles"] .pe-piece[data-piece="output-styles"],

324 .pe-root[data-selected="themes"] .pe-piece[data-piece="themes"],

325 .pe-root[data-selected="workflows"] .pe-piece[data-piece="workflows"],

326 .pe-root[data-selected="bin"] .pe-piece[data-piece="bin"],

327 .pe-root[data-selected="scripts"] .pe-piece[data-piece="scripts"],

328 .pe-root[data-selected="settings"] .pe-piece[data-piece="settings"],

329 .pe-root[data-selected="mcp"] .pe-piece[data-piece="mcp"],

330 .pe-root[data-selected="lsp"] .pe-piece[data-piece="lsp"] { display: block; }

331 .pe-piece p { margin: 0 0 10px; }

332 .pe-piece p:last-child { margin-bottom: 0; }

333 .pe-piece code { font-family: var(--pe-mono); font-size: 0.88em; padding: 1px 5px; border-radius: 4px; background: var(--pe-surface); border: 1px solid var(--pe-border); }

334 .pe-piece .code-block { margin: 12px 0 0; }

335 .pe-piece pre code { padding: 0; border: none; background: none; }

336 .pe-piece a { color: var(--pe-accent-text); }

337 .pe-line-compact { display: none; }

338 .pe-icon { flex-shrink: 0; }

339 .pe-req { margin-left: 8px; padding: 0 6px; border-radius: 999px; font-size: 11px; line-height: 18px; letter-spacing: .02em; color: var(--pe-accent-text); border: 1px solid var(--pe-border); background: var(--pe-surface); white-space: nowrap; font-weight: 500; vertical-align: middle; }

340 .pe-name { font-size: 22px; font-weight: 600; line-height: 1.25; letter-spacing: -0.2px; color: var(--pe-text); margin: 0; }

341 .pe-path { font-family: var(--pe-mono); font-size: 13.5px; color: var(--pe-accent-text); margin: 4px 0 0; overflow-wrap: anywhere; }

342 .pe-block { margin: 20px 0 0; }

343 .pe-link {

344 display: inline-block; margin: 24px 0 0; padding: 8px 14px; border-radius: 8px;

345 font-size: 14.5px; font-weight: 600; text-decoration: none;

346 color: var(--pe-accent-text); background: var(--pe-accent-bg); border: 1px solid var(--pe-accent);

347 }

348 .pe-link:hover { filter: brightness(0.97); }

349 .pe-link:focus-visible { outline: 2px solid var(--pe-accent); outline-offset: 2px; }

350 @media (max-width: 700px) {

351 .pe-head { padding: 16px 16px 14px; }

352 .pe-body { flex-direction: column; }

353 .pe-tree-pane { width: 100%; border-right: none; border-bottom: 1px solid var(--pe-border); }

354 .pe-line-tree { display: none; }

355 .pe-line-compact { display: flex; }

356 .pe-panel { padding: 16px 16px 20px; }

357 }

358 `}</style>

359 

360 <div className="pe-head">

361 <div className="pe-head-text">

362 <div className="pe-title">What goes in a plugin</div>

363 <div className="pe-sub">This example plugin, <code>my-plugin</code>, has one of every kind of component, each in its default location. Select a file or folder to read what it’s for and see what goes in it.</div>

364 </div>

365 <button type="button" className="pe-fs-btn" onClick={toggleFullscreen} aria-label={isFullscreen ? 'Exit fullscreen' : 'Fullscreen'} title={isFullscreen ? 'Exit fullscreen' : 'Fullscreen'}>

366 {isFullscreen ? '⤡' : '⛶'}

367 </button>

368 </div>

369 

370 <div className="pe-body">

371 <div className="pe-tree-pane">

372 <div className="pe-caption" id="pe-tree-caption">Plugin directory</div>

373 <div role="group" aria-labelledby="pe-tree-caption" onKeyDown={onTreeKeyDown}>

374 <div className="pe-rootline"><FolderIcon /><span>my-plugin/</span></div>

375 {PIECES.map(p => <button key={p.id} id={'pe-node-' + p.id} type="button" className="pe-node" aria-pressed={p.id === selected.id} aria-label={p.name + ', ' + p.path} onClick={() => setSelectedId(p.id)}>

376 {p.lines.map((line, i) => <span key={i} className="pe-line pe-line-tree" style={{

377 paddingLeft: line.depth * 18 + 'px'

378 }}>

379 {line.kind === 'folder' ? <FolderIcon /> : <FileIcon />}

380 <span>{line.text}</span>

381 {p.required && i === p.lines.length - 1 ? <span className="pe-req">{p.required}</span> : null}

382 </span>)}

383 <span className="pe-line pe-line-compact">

384 <FileIcon />

385 <span>{p.path}</span>

386 {p.required ? <span className="pe-req">{p.required}</span> : null}

387 </span>

388 </button>)}

389 </div>

390 </div>

391 

392 <div className="pe-panel" role="region" aria-labelledby="pe-panel-caption" aria-live="polite" aria-atomic="true">

393 <div className="pe-caption" id="pe-panel-caption">Selected piece</div>

394 <div className="pe-name">{selected.name}{selected.required ? <span className="pe-req">{selected.required}</span> : null}</div>

395 <div className="pe-path">{selected.path}</div>

396 

397 <div className="pe-block">{children}</div>

398 

399 <a className="pe-link" href={selected.href}>{selected.linkText}</a>

400 </div>

401 </div>

402 </div>;

403};

404 

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

406 

407Use esta página para adicionar um componente a um plugin que já carrega.

408 

409Depois de adicionar um componente, execute `/reload-plugins` em uma sessão em execução ou inicie uma nova para que Claude Code o carregue. Para verificar o arquivo do componente antes de carregá-lo, execute [`claude plugin validate .`](/docs/pt/plugins/cli-reference#plugin-validate) no seu shell a partir do diretório do plugin.

410 

411<Note>

412 Estes casos são cobertos em outras páginas:

413 

414 * **Construindo seu primeiro plugin**: comece com [Criar um plugin](/docs/pt/plugins/create)

415 * **Instalando o plugin de outra pessoa**: consulte [Instalar plugins](/docs/pt/plugins/install)

416 * **Os usuários do seu plugin estão em claude.ai ou em Cowork**: um conjunto diferente de componentes carrega lá. Consulte [Plugins em claude.ai e em Cowork](https://claude.com/docs/plugins/overview)

417</Note>

418 

419<h2 id="explore-the-plugin-directory">

420 Explorar o diretório do plugin

421</h2>

422 

423O explorador mostra um plugin de exemplo, `my-plugin`, que tem um de cada tipo de componente em sua localização padrão:

424 

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

426* Um subagente de revisão de segurança

427* Um hook que formata arquivos após Claude editá-los, e a pasta `scripts/` que ele chama

428* Um monitor de log

429* Um estilo de saída e um tema de cor

430* Um workflow de auditoria de rotas

431* Um executável `hello-plugin`

432* Configurações padrão

433* Um servidor MCP local e um servidor de linguagem Go

434 

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

436 

437<PluginExplorer>

438 <Piece id="manifest">

439 O [manifesto](/docs/pt/plugins/manifest-reference) é o arquivo `plugin.json` no diretório `.claude-plugin/` de um plugin. Ele contém os metadados do plugin e os valores `userConfig` que Claude Code solicita ao usuário. Apenas `name` é obrigatório. Neste, `description` é o texto que os usuários veem para o plugin em `/plugin`, e `version` mantém os usuários nessa versão até você alterá-la:

440 

441 ```json theme={null}

442 {

443 "name": "my-plugin",

444 "version": "1.0.0",

445 "description": "Review, formatting, and database tools for this team"

446 }

447 ```

448 </Piece>

449 

450 <Piece id="skills">

451 Uma [skill](/docs/pt/skills) é um arquivo `SKILL.md`. Salve cada skill em seu próprio diretório em `skills/`. Claude lê a `description` de cada skill, e quando o que o usuário pede corresponde a ela, como pedir a Claude para revisar um pull request aqui, Claude carrega as instruções da skill e as segue. O usuário também pode executá-la diretamente como `/my-plugin:review`:

452 

453 ```markdown theme={null}

454 ---

455 description: Reviews a pull request for style and test coverage. Use when asked to review code.

456 ---

457 

458 Review the changed files. Report style problems first, then missing tests.

459 ```

460 </Piece>

461 

462 <Piece id="commands">

463 Um comando é um único arquivo Markdown que o usuário executa por nome. Comandos são o formato mais antigo: uma skill é executada por nome da mesma forma e também pode carregar arquivos de suporte em seu próprio diretório, então escreva novos como skills e mantenha `commands/` para arquivos que você já tem. Este arquivo se torna `/my-plugin:about` e usa o mesmo frontmatter que uma skill:

464 

465 ```markdown theme={null}

466 ---

467 description: Summarize the repository

468 ---

469 

470 Summarize what this repository does in three sentences.

471 ```

472 </Piece>

473 

474 <Piece id="agents">

475 Um [subagente](/docs/pt/sub-agents) é um assistente separado, com suas próprias instruções e sua própria janela de contexto, que Claude pode delegar uma tarefa e obter um resultado. Cada arquivo Markdown em `agents/` define um: o frontmatter o nomeia e diz quando usá-lo, e o corpo é seu prompt do sistema. Este é nomeado `my-plugin:security-reviewer`, e o usuário pode invocá-lo com `@agent-my-plugin:security-reviewer`:

476 

477 ```markdown theme={null}

478 ---

479 name: security-reviewer

480 description: Reviews code changes for security issues. Use after edits to authentication or input handling.

481 model: sonnet

482 ---

483 

484 You are a security reviewer. Read the changed files and report injection, authentication, and secrets-handling risks.

485 ```

486 </Piece>

487 

488 <Piece id="hooks">

489 Um [hook](/docs/pt/hooks-guide) executa algo automaticamente em um ponto do ciclo de vida do Claude Code, como após cada edição de arquivo: um comando shell, uma solicitação HTTP, uma chamada de ferramenta MCP, um prompt para um modelo ou um subagente. Salve os hooks do plugin em `hooks/hooks.json` na raiz do plugin. Este executa o `scripts/format.sh` do plugin após Claude escrever ou editar um arquivo:

490 

491 ```json theme={null}

492 {

493 "hooks": {

494 "PostToolUse": [

495 {

496 "matcher": "Write|Edit",

497 "hooks": [

498 {

499 "type": "command",

500 "command": "\"${CLAUDE_PLUGIN_ROOT}/scripts/format.sh\""

501 }

502 ]

503 }

504 ]

505 }

506 }

507 ```

508 </Piece>

509 

510 <Piece id="monitors">

511 Um monitor é um comando shell que Claude Code inicia em segundo plano quando a sessão inicia e mantém em execução até que termine, usando a [ferramenta Monitor](/docs/pt/tools-reference#monitor-tool). O que ele imprime chega a Claude como notificações. Um campo `when` pode, em vez disso, iniciá-lo na primeira vez que uma skill nomeada é executada. Este monitora um log de erros:

512 

513 ```json theme={null}

514 [

515 {

516 "name": "error-log",

517 "command": "tail -F ./logs/error.log",

518 "description": "Application error log"

519 }

520 ]

521 ```

522 </Piece>

523 

524 <Piece id="output-styles">

525 Um plugin pode incluir [estilos de saída](/docs/pt/output-styles), que alteram como Claude formata e expressa suas respostas. Salve cada estilo de saída como `output-styles/<name>.md`. Este aparece em `/output-style` como `my-plugin:terse`:

526 

527 ```markdown theme={null}

528 ---

529 name: terse

530 description: Answer in as few words as possible

531 keep-coding-instructions: true

532 ---

533 

534 Keep every reply short. Skip preambles and summaries.

535 ```

536 </Piece>

537 

538 <Piece id="themes">

539 Um plugin pode incluir [temas de cor](/docs/pt/terminal-config#create-a-custom-theme) para a interface Claude Code. Salve cada tema como `themes/<slug>.json`. Este aparece em `/theme` como `Dracula`, marcado como de `my-plugin`:

540 

541 ```json theme={null}

542 {

543 "name": "Dracula",

544 "base": "dark",

545 "overrides": {

546 "claude": "#bd93f9",

547 "error": "#ff5555"

548 }

549 }

550 ```

551 </Piece>

552 

553 <Piece id="workflows">

554 A pasta `workflows/` contém arquivos `.js` de [workflow](/docs/pt/workflows): um bloco `meta`, depois um corpo de script que orquestra vários subagentes. Este é executado como `/my-plugin:audit-routes`:

555 

556 ```javascript theme={null}

557 export const meta = {

558 name: 'audit-routes',

559 description: 'Audit every route handler for missing auth checks',

560 }

561 

562 const found = await agent('List every .ts file under src/routes/.', {

563 schema: { type: 'object', required: ['files'], properties: { files: { type: 'array', items: { type: 'string' } } } },

564 })

565 

566 const audits = await pipeline(found.files, file =>

567 agent(`Audit ${file} for missing authentication checks.`, { label: file }),

568 )

569 

570 return audits.filter(Boolean)

571 ```

572 </Piece>

573 

574 <Piece id="bin">

575 `bin/` é como um plugin envia uma ferramenta de linha de comando. Enquanto o plugin está habilitado, Claude Code coloca esta pasta no `PATH` do shell em que executa comandos, para que Claude, ou as instruções de uma skill, possam executar a ferramenta por nome sem o usuário instalar nada. Com este [executável](#executables) em vigor, `hello-plugin` é um comando que Claude pode executar:

576 

577 ```bash theme={null}

578 #!/bin/bash

579 echo "hello from my-plugin"

580 ```

581 </Piece>

582 

583 <Piece id="scripts">

584 O hook em `hooks/hooks.json` executa um script, e esta pasta é onde o exemplo o mantém. O nome `scripts/` é uma convenção, não algo que Claude Code procure: o hook aponta para o arquivo por seu caminho, `${CLAUDE_PLUGIN_ROOT}/scripts/format.sh`. Um script de formatação pode parecer assim:

585 

586 ```bash theme={null}

587 #!/bin/bash

588 npx prettier --write .

589 ```

590 </Piece>

591 

592 <Piece id="settings">

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

594 

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

596 

597 ```json theme={null}

598 {

599 "agent": "security-reviewer"

600 }

601 ```

602 </Piece>

603 

604 <Piece id="mcp">

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

606 

607 ```json theme={null}

608 {

609 "mcpServers": {

610 "db": {

611 "command": "node",

612 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"]

613 }

614 }

615 }

616 ```

617 </Piece>

618 

619 <Piece id="lsp">

620 Um servidor LSP fornece a Claude [diagnósticos e navegação de código](/docs/pt/plugins/code-intelligence) para uma linguagem. Declare o servidor em `.lsp.json` na raiz do plugin. Este conecta o servidor de linguagem Go para arquivos `.go`:

621 

622 ```json theme={null}

623 {

624 "gopls": {

625 "command": "gopls",

626 "args": ["serve"],

627 "extensionToLanguage": {

628 ".go": "go"

629 }

630 }

631 }

632 ```

633 </Piece>

634</PluginExplorer>

635 

636<h2 id="add-each-kind-of-component">

637 Adicionar cada tipo de componente

638</h2>

639 

640Cada seção abaixo cobre um tipo de componente: onde seus arquivos vão no plugin, um exemplo que valida, o que o usuário vê uma vez que o plugin carrega, e a chave de manifesto que altera a localização padrão. Adicione os que seu plugin precisa; nenhum é obrigatório.

641 

642<h3 id="skills">

643 Skills

644</h3>

645 

646Uma [skill](/docs/pt/skills) é um arquivo `SKILL.md` que Claude pode carregar quando sua descrição corresponde à tarefa. O usuário também pode executá-la como um comando. Salve cada skill em seu próprio diretório em `skills/`:

647 

648```text theme={null}

649my-plugin/

650├── .claude-plugin/

651│ └── plugin.json

652└── skills/

653 └── review/

654 └── SKILL.md

655```

656 

657Dê ao `SKILL.md` uma `description` para que Claude saiba quando usá-la:

658 

659```markdown skills/review/SKILL.md theme={null}

660---

661description: Reviews a pull request for style and test coverage. Use when asked to review code.

662---

663 

664Review the changed files. Report style problems first, then missing tests.

665```

666 

667Depois de carregar o plugin, `/my-plugin:review` executa a skill. O nome do comando e quem pode invocá-lo seguem estas regras:

668 

669* **Nome do comando**: `/<plugin>:<directory>`, então `skills/review/SKILL.md` em `my-plugin` é `/my-plugin:review`. Se você definir `name` no frontmatter, ele substitui o último segmento e o prefixo do plugin permanece. Consulte [como uma skill obtém seu nome de comando](/docs/pt/skills#how-a-skill-gets-its-command-name)

670* **Quem a invoca**: Claude, o usuário ou ambos, controlado pelo frontmatter. Consulte [Controlar quem invoca uma skill](/docs/pt/skills#control-who-invokes-a-skill)

671 

672Você também pode colocar skills fora do diretório padrão `skills/`:

673 

674* **Diretórios adicionais**: liste-os na chave de manifesto `skills`. Eles adicionam à varredura padrão `skills/` em vez de substituí-la, diferentemente de `commands` e `agents`

675* **Uma única skill na raiz do plugin**: sem diretório `skills/` e sem chave de manifesto `skills`, um `SKILL.md` na raiz do plugin carrega como uma skill. Defina `name` em seu frontmatter, porque caso contrário uma instalação de marketplace nomeia a skill após seu [diretório de cache](/docs/pt/plugins/loading#find-plugins-on-disk) em vez de seu plugin

676 

677Para incluir instruções em um plugin, escreva-as como uma skill. Claude Code não carrega um `CLAUDE.md` na raiz do plugin, e `claude plugin validate` avisa `CLAUDE.md at the plugin root is not loaded as project context`.

678 

679Para campos de frontmatter e arquivos de suporte, consulte [Skills](/docs/pt/skills).

680 

681<h3 id="commands">

682 Comandos

683</h3>

684 

685Um comando é um único arquivo Markdown que o usuário executa por nome, como `/my-plugin:about`.

686 

687<Note>

688 Comandos são o formato mais antigo, e [skills](#skills) os superam para novo trabalho. Uma skill é executada por nome da mesma forma, e também pode carregar arquivos de suporte em seu diretório. Mantenha `commands/` para arquivos que você está movendo de `.claude/commands/`.

689</Note>

690 

691Salve um comando em `commands/<file>.md` e ele se torna `/<plugin>:<file>`. Um subdiretório adiciona um segmento, então `commands/db/migrate.md` é `/my-plugin:db:migrate`.

692 

693Arquivos de comando usam o mesmo frontmatter que skills.

694 

695<h4 id="define-commands-in-the-manifest">

696 Definir comandos no manifesto

697</h4>

698 

699Você só precisa disso se quiser manter arquivos de comando em algum lugar diferente de `commands/`, ou para definir um comando curto dentro de `plugin.json` sem um arquivo Markdown separado. Defina a chave de manifesto `commands`, e Claude Code a lê em vez de varrer `commands/`. A chave usa um caminho, uma matriz de caminhos ou um objeto que mapeia cada nome de comando para um arquivo `source` ou `content` inline.

700 

701Este manifesto define `/my-plugin:about` inline, sem arquivo Markdown:

702 

703```json .claude-plugin/plugin.json theme={null}

704{

705 "name": "my-plugin",

706 "commands": {

707 "about": {

708 "content": "Summarize what this repository does in three sentences.",

709 "description": "Summarize the repository"

710 }

711 }

712}

713```

714 

715Carregue o plugin e execute `/my-plugin:about` na sessão para confirmar que carregou.

716 

717Para a sintaxe completa da chave, consulte [`commands`](/docs/pt/plugins/manifest-reference#commands).

718 

719<h3 id="agents">

720 Agentes

721</h3>

722 

723Um [subagente](/docs/pt/sub-agents) é um assistente separado, com suas próprias instruções e janela de contexto, que Claude pode delegar uma tarefa. Cada arquivo Markdown em `agents/` define um:

724 

725```markdown agents/security-reviewer.md theme={null}

726---

727name: security-reviewer

728description: Reviews code changes for security issues. Use after edits to authentication or input handling.

729model: sonnet

730---

731 

732You are a security reviewer. Read the changed files and report injection, authentication, and secrets-handling risks.

733```

734 

735Este agente é nomeado `my-plugin:security-reviewer`, e o usuário pode [invocá-lo explicitamente](/docs/pt/sub-agents#invoke-subagents-explicitly) com `@agent-my-plugin:security-reviewer`. A forma do nome é `<plugin>:<name>`, onde `<name>` vem do frontmatter, ou do nome do arquivo quando não há.

736 

737A chave `agents` substitui a varredura `agents/`.

738 

739<h4 id="organize-agents-in-subfolders">

740 Organizar agentes em subpastas

741</h4>

742 

743Você pode colocar arquivos de agente do plugin em subpastas de `agents/`. Claude Code [os carrega recursivamente](/docs/pt/sub-agents#choose-the-subagent-scope) e une o nome do plugin, cada nome de subpasta e o nome do arquivo com dois-pontos para formar o nome com escopo do agente. Por exemplo, `agents/review/security.md` em um plugin nomeado `my-plugin` carrega como `my-plugin:review:security`. Duas configurações alteram esse nome:

744 

745* Frontmatter `name`: ele substitui apenas o nome do arquivo, então `name: audit` em `agents/review/security.md` carrega como `my-plugin:review:audit`

746* Campo de manifesto [`agents`](/docs/pt/plugins/manifest-reference#fields): um arquivo que você lista lá carrega sem nomes de subpasta, então `"agents": "./custom/review/security.md"` carrega como `my-plugin:security`

747 

748<h4 id="frontmatter-fields-in-plugin-agents">

749 Campos de frontmatter em agentes de plugin

750</h4>

751 

752O frontmatter de um agente de plugin segue estas regras:

753 

754* **Campos suportados**: `name`, `description`, `model`, `effort`, `maxTurns`, `tools`, `disallowedTools`, `skills`, `memory`, `background`, `omitClaudeMd`, `isolation`, `color` e a chave `cacheTtl` de `experimental`. O único valor `isolation` válido é `"worktree"`. Consulte [campos de frontmatter suportados](/docs/pt/sub-agents#supported-frontmatter-fields) para saber o que cada um faz

755* **Campos ignorados**: `permissionMode`, `hooks`, `mcpServers` e `initialPrompt`. Um arquivo de agente não pode adicionar hooks ou servidores MCP por conta própria, então adicione-os como plugin [hooks](#hooks) e [servidores MCP](#mcp-servers) em vez disso

756* **Frontmatter que não analisa**: o agente ainda carrega com cada campo ignorado. É nomeado após o arquivo, e sua descrição lê `Agent from my-plugin plugin`. Execute [`claude plugin validate`](/docs/pt/plugins/cli-reference#plugin-validate) no seu shell para encontrar esses arquivos

757 

758Para saber o que cada campo faz e as regras de precedência, consulte [Subagentes](/docs/pt/sub-agents#supported-frontmatter-fields).

759 

760<h3 id="hooks">

761 Hooks

762</h3>

763 

764Um [hook](/docs/pt/hooks-guide) executa algo automaticamente em um ponto do ciclo de vida do Claude Code, como após cada edição de arquivo: um comando shell, uma solicitação HTTP, uma chamada de ferramenta MCP, um prompt para um modelo ou um subagente. Salve os hooks do plugin em `hooks/hooks.json` na raiz do plugin, sob uma chave `"hooks"` de nível superior, na mesma forma que o objeto `hooks` em `settings.json`. Isso permite copiar um hook de configurações existente sem alterações.

765 

766Este hook executa um script agrupado após cada `Write` ou `Edit`:

767 

768```json hooks/hooks.json theme={null}

769{

770 "hooks": {

771 "PostToolUse": [

772 {

773 "matcher": "Write|Edit",

774 "hooks": [

775 {

776 "type": "command",

777 "command": "\"${CLAUDE_PLUGIN_ROOT}/scripts/format.sh\""

778 }

779 ]

780 }

781 ]

782 }

783}

784```

785 

786Salve o script em `scripts/format.sh` e torne-o executável.

787 

788Carregue o plugin e peça a Claude para editar um arquivo. Um hook `PostToolUse` que sai com 0 não mostra nada na transcrição, então confirme que foi executado com [log de depuração](/docs/pt/hooks#debug-hooks) ou pelo que o script em si altera.

789 

790Hooks em `hooks/hooks.json` e na chave de manifesto `hooks` ambos carregam. Para cada evento e sua carga útil, consulte [Eventos de hook](/docs/pt/hooks#hook-events).

791 

792<h4 id="when-plugin-hooks-fire">

793 Quando os hooks do plugin disparam

794</h4>

795 

796Os hooks de um plugin não esperam que uma das skills ou comandos do plugin seja usada. Claude Code os registra quando uma sessão carrega o plugin, e eles disparam em seus eventos a partir de então. Para limitar quando um hook é executado, restrinja seu `matcher`.

797 

798Se um hook nunca dispara, consulte [hooks que não disparam](/docs/pt/plugins/troubleshooting#failed-to-load-hooks-from-and-hooks-that-dont-fire).

799 

800<h4 id="environment-quoting-and-matching-mcp-tools">

801 Ambiente, citação e correspondência de ferramentas MCP

802</h4>

803 

804O ambiente do hook, a citação de `${CLAUDE_PLUGIN_ROOT}` e os matchers para as próprias ferramentas MCP do plugin funcionam da seguinte forma:

805 

806* **Ambiente**: cada processo de hook recebe `CLAUDE_PLUGIN_ROOT` e `CLAUDE_PLUGIN_DATA` em seu ambiente, mais `CLAUDE_PLUGIN_OPTION_<KEY>` para cada valor de [configuração do usuário](#user-configuration), para que seu script possa lê-los de lá

807* **Citação**: quando `command` não tem `args`, ele é executado através de um shell, então envolva o caminho `${CLAUDE_PLUGIN_ROOT}` em aspas duplas, como o exemplo `hooks/hooks.json` em [Hooks](#hooks) faz, para manter o caminho expandido como uma palavra de shell. Quando você passa `args` em vez disso, cada elemento é passado como um argumento sem shell e não precisa de citação. Consulte [forma exec e forma shell](/docs/pt/hooks#exec-form-and-shell-form)

808* **Correspondência das próprias ferramentas MCP do plugin**: uma ferramenta de um [servidor MCP que este plugin declara](#mcp-servers) é nomeada `mcp__plugin_<plugin>_<server>__<tool>`, então escreva esse nome completo no matcher. Um matcher apenas no nome do servidor nunca dispara. Consulte [Corresponder ferramentas MCP](/docs/pt/hooks#match-mcp-tools)

809 

810<h3 id="mcp-servers">

811 Servidores MCP

812</h3>

813 

814Um servidor MCP fornece a Claude ferramentas de um sistema externo. Declare-o em `.mcp.json` na raiz do plugin, na mesma forma que um [`.mcp.json` de projeto](/docs/pt/mcp#project-scope). Este `.mcp.json` declara um servidor nomeado `db`:

815 

816```json .mcp.json theme={null}

817{

818 "mcpServers": {

819 "db": {

820 "command": "node",

821 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"]

822 }

823 }

824}

825```

826 

827Você também pode omitir o wrapper `mcpServers` e colocar `db` no nível superior do arquivo.

828 

829Carregue o plugin e execute `/mcp` para confirmar que o servidor aparece como `plugin:my-plugin:db`.

830 

831`claude plugin validate` verifica `.mcp.json` e relata uma entrada de servidor que Claude Code descartaria no tempo de carregamento como um erro. Requer Claude Code v2.1.281 ou posterior.

832 

833Para onde uma entrada ruim aparece no tempo de carregamento, consulte [Servidores MCP que não iniciam](/docs/pt/plugins/troubleshooting#invalid-mcp-server-config-for-and-mcp-servers-that-dont-start).

834 

835A chave de manifesto `mcpServers` usa um mapa de servidor inline, um caminho para um arquivo JSON ou uma matriz daqueles. Quando um servidor de manifesto tem o mesmo nome que um em `.mcp.json`, o servidor de manifesto o substitui.

836 

837<h4 id="reach-users-on-claude-ai-and-cowork">

838 Alcançar usuários em claude.ai e Cowork

839</h4>

840 

841Um servidor stdio local, como o servidor `db` em [Servidores MCP](#mcp-servers), é executado em Claude Code e em uma sessão Cowork que é executada em sua máquina no aplicativo Claude Desktop, mas não em claude.ai. Para alcançar usuários lá também, referencie um servidor remoto por sua URL `https://`, que claude.ai e Cowork oferecem ao usuário como um conector.

842 

843<h4 id="server-names-tool-names-and-reloads">

844 Nomes de servidor, nomes de ferramentas e recarregamentos

845</h4>

846 

847Os nomes do servidor, substituição de variáveis e comportamento de recarga seguem estas regras:

848 

849* **Nome do servidor**: `plugin:<plugin>:<server>`, então o servidor `db` em `my-plugin` é `plugin:my-plugin:db` em `/mcp`. Use a mesma forma para nomear o servidor em um [hook `mcp_tool`](/docs/pt/hooks#mcp-tool-hook-fields)

850* **Nomes de ferramentas**: `mcp__plugin_<plugin>_<server>__<tool>`, então uma ferramenta `query` naquele servidor `db` é `mcp__plugin_my-plugin_db__query`. Esse é o nome a usar em [regras de permissão](/docs/pt/permissions) e [matchers de hook](#hooks)

851* **Substituição**: `${CLAUDE_PLUGIN_ROOT}` e as outras [variáveis de caminho](#path-variables-and-persistent-data) são substituídas em `command`, `args` e `env`. Nenhuma citação é necessária em `args`, porque cada elemento é passado como um argumento

852* **Recarga**: quando o usuário executa `/reload-plugins` e [o recarga se aplica](/docs/pt/plugins/cli-reference#reloads-that-change-mcp-tools), um servidor cuja configuração não foi alterada mantém sua conexão. Um servidor cuja configuração mudou se reconecta, e um que você removeu se desconecta

853 

854<h4 id="include-a-packaged-mcpb-server">

855 Incluir um servidor MCPB empacotado

856</h4>

857 

858A chave `mcpServers` também aceita um servidor empacotado como um [arquivo MCPB](https://github.com/modelcontextprotocol/mcpb), cuja extensão é `.mcpb` ou a mais antiga `.dxt`. Aponte a chave para o arquivo, como um caminho dentro do plugin ou uma URL `https://`:

859 

860```json .claude-plugin/plugin.json theme={null}

861{

862 "name": "my-plugin",

863 "mcpServers": "./servers/db.mcpb"

864}

865```

866 

867O servidor usa seu nome do `name` no manifesto do pacote.

868 

869Para transportes e autenticação, consulte [MCP](/docs/pt/mcp#plugin-provided-mcp-servers).

870 

871<h3 id="lsp-servers">

872 Servidores LSP

873</h3>

874 

875Um servidor LSP fornece a Claude diagnósticos e navegação de código para uma linguagem. Se um [plugin oficial de inteligência de código](/docs/pt/plugins/code-intelligence) já cobre sua linguagem, instale esse em vez de escrever um. Caso contrário, declare o servidor em `.lsp.json` na raiz do plugin:

876 

877```json .lsp.json theme={null}

878{

879 "gopls": {

880 "command": "gopls",

881 "args": ["serve"],

882 "extensionToLanguage": {

883 ".go": "go"

884 }

885 }

886}

887```

888 

889O arquivo mapeia cada nome de servidor diretamente para sua configuração, sem objeto wrapper ao redor do mapa. `command` é o nome do binário, com seus argumentos em `args`. `extensionToLanguage` precisa de pelo menos uma extensão, cada uma começando com `.`.

890 

891`claude plugin validate` não lê este arquivo. Quando qualquer entrada é inválida, o arquivo inteiro é ignorado no carregamento e `Invalid LSP server config for ".lsp.json"` aparece na aba **Errors** de `/plugin`.

892 

893Seu plugin configura a conexão mas não instala o binário do servidor, e cada extensão de arquivo obtém um servidor:

894 

895* **Binário ausente**: Claude Code inicia `command` por nome do `PATH` do usuário. Quando o binário não está lá, o servidor falha ao iniciar e `claude --debug` registra `LSP server <name> failed to start`

896* **Conflitos de extensão**: quando dois servidores habilitados reivindicam a mesma extensão, o primeiro registrado manipula esses arquivos e o outro não é usado para eles, se os servidores vêm de um plugin ou dois. A aba **Errors** de `/plugin` mostra o aviso `LSP server "<name>" is not used for <ext> files`

897 

898A chave de manifesto `lspServers` usa o mesmo mapa inline, um caminho para um arquivo JSON ou uma matriz daqueles, e seus servidores adicionam aos em `.lsp.json`. Quando um servidor de manifesto tem o mesmo nome que um em `.lsp.json`, o servidor de manifesto o substitui.

899 

900Para `transport`, timeouts, reinicializações e os outros campos, consulte [`lspServers`](/docs/pt/plugins/manifest-reference#lspservers).

901 

902Envie a saída de log para stderr, não stdout. Claude Code lê stdout de um servidor apenas como mensagens de protocolo e aceita cabeçalhos de mensagem até 64 KiB e um corpo de mensagem até 32 MiB.

903 

904Claude Code desconecta um servidor que excede qualquer limite ou escreve saída não-protocolo para stdout, e conta a desconexão como uma falha para `restartOnCrash` e `maxRestarts`. Quando você executa com `--debug`, Claude Code escreve um erro nomeando a causa para o log de depuração.

905 

906<h3 id="executables">

907 Executáveis

908</h3>

909 

910Arquivos em `bin/` na raiz do plugin estão no `PATH` do shell da ferramenta Bash enquanto o plugin está habilitado, para que Claude possa executá-los como comandos simples. Adicione um script executável:

911 

912```bash bin/hello-plugin theme={null}

913#!/bin/bash

914echo "hello from my-plugin"

915```

916 

917Torne-o executável com `chmod +x bin/hello-plugin` e carregue o plugin. Quando você pede a Claude para executar `hello-plugin`, o resultado da ferramenta Bash mostra a saída do script.

918 

919Diretórios `bin/` de plugin vêm após as entradas `PATH` do próprio usuário, então um plugin não pode sombrear `git`, `ls` ou outro comando do sistema.

920 

921claude.ai e Cowork não instalam um plugin que tem um diretório `bin/` de nível superior, incluindo um que você [distribui através das configurações da organização claude.ai](/docs/pt/plugins/host-marketplace#distribute-through-organization-settings).

922 

923<h3 id="default-settings">

924 Configurações padrão

925</h3>

926 

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

928 

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

930 

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

932{

933 "agent": "security-reviewer"

934}

935```

936 

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

938 

939Para tudo que a chave controla, consulte a [configuração `agent`](/docs/pt/settings-reference#agent).

940 

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

942 

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

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

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

946 

947Para a forma `subagentStatusLine`, consulte [linhas de status de subagente](/docs/pt/statusline#subagent-status-lines).

948 

949<h3 id="themes-and-output-styles">

950 Temas e estilos de saída

951</h3>

952 

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

954 

955| Componente | Salvar como | Formato | Aparece em | Chave de manifesto |

956| :-------------- | :------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------- | :-------------------- |

957| Tema | `themes/<slug>.json` | O formato de [arquivo de tema personalizado](/docs/pt/terminal-config#create-a-custom-theme) que os usuários escrevem em `~/.claude/themes/` | `/theme`, sob o `name` do arquivo | `experimental.themes` |

958| Estilo de saída | `output-styles/<name>.md` | O formato de [estilo de saída personalizado](/docs/pt/output-styles#create-a-custom-output-style), com frontmatter `name` e `description` | `/output-style`, como `<plugin>:<name>` | `outputStyles` |

959 

960Temas de plugin são somente leitura, então quando um usuário edita um em `/theme`, a edição é salva como uma cópia no diretório de temas próprio.

961 

962Este tema recolore o prompt de acento e texto de erro na predefinição escura:

963 

964```json themes/dracula.json theme={null}

965{

966 "name": "Dracula",

967 "base": "dark",

968 "overrides": {

969 "claude": "#bd93f9",

970 "error": "#ff5555"

971 }

972}

973```

974 

975<h3 id="channels">

976 Canais

977</h3>

978 

979Um [canal](/docs/pt/channels) permite que um sistema externo, como um aplicativo de chat, envie mensagens para uma sessão. Em um plugin, um canal é um dos servidores MCP mais uma entrada `channels` que se vincula a ele e pode solicitar sua própria configuração. Este manifesto vincula um canal a um servidor `telegram` e solicita um token de bot:

980 

981```json .claude-plugin/plugin.json theme={null}

982{

983 "name": "my-plugin",

984 "mcpServers": {

985 "telegram": {

986 "command": "node",

987 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"],

988 "env": { "BOT_TOKEN": "${user_config.bot_token}" }

989 }

990 },

991 "channels": [

992 {

993 "server": "telegram",

994 "userConfig": {

995 "bot_token": {

996 "type": "string",

997 "title": "Bot token",

998 "description": "Telegram bot token",

999 "sensitive": true

1000 }

1001 }

1002 }

1003 ]

1004}

1005```

1006 

1007`server` deve corresponder a uma chave em `mcpServers`. O `userConfig` por canal usa a mesma forma que a chave [`userConfig` de nível superior](#user-configuration).

1008 

1009Para o que o servidor deve implementar e como os usuários habilitam um plugin de canal, consulte [Empacotar como um plugin](/docs/pt/channels-reference#package-as-a-plugin) na referência de canais. Para a tabela de campos, consulte [`channels`](/docs/pt/plugins/manifest-reference#channels).

1010 

1011<h3 id="monitors">

1012 Monitores

1013</h3>

1014 

1015Um monitor é um comando shell que é executado em segundo plano para toda a sessão. O que ele imprime chega a Claude como notificações, para que Claude possa reagir a um log ou mudança de status sem ser solicitado a observá-lo. Salve as entradas em `monitors/monitors.json`:

1016 

1017```json monitors/monitors.json theme={null}

1018[

1019 {

1020 "name": "error-log",

1021 "command": "tail -F ./logs/error.log",

1022 "description": "Application error log"

1023 }

1024]

1025```

1026 

1027O comando é executado em um shell, no diretório de trabalho em que a sessão foi iniciada.

1028 

1029O comando de um monitor é limitado em onde inicia e o que pode referenciar:

1030 

1031* **Apenas sessões interativas**: monitores de plugin iniciam em uma sessão interativa e nunca em modo não-interativo com a flag `-p`. Eles também iniciam apenas onde a [ferramenta Monitor](/docs/pt/tools-reference#monitor-tool) está disponível

1032* **Sem configuração do usuário**: `command` obtém as [variáveis de caminho](#path-variables-and-persistent-data) e `${ENV_VAR}` do ambiente, mas nunca `${user_config.*}`. Um monitor que referencia um não inicia, e processos de monitor não recebem `CLAUDE_PLUGIN_OPTION_<KEY>` também

1033* **Desabilitação no meio da sessão**: se você desabilitar um plugin no meio da sessão, Claude Code não para monitores que já estão em execução. Eles param quando a sessão termina

1034 

1035A chave de manifesto `experimental.monitors` usa a mesma matriz inline ou um caminho para um arquivo JSON, e é lida em vez de `monitors/monitors.json`.

1036 

1037Para o gatilho `when` e os outros campos, consulte [`monitors`](/docs/pt/plugins/manifest-reference#monitors).

1038 

1039<h2 id="user-configuration">

1040 Solicitar ao usuário valores de configuração

1041</h2>

1042 

1043Declare os valores que seu plugin precisa do usuário na chave de manifesto `userConfig`, para que os usuários não editem `settings.json` eles mesmos. Cada opção aparece em um diálogo com seu `title` como o rótulo e sua `description` abaixo.

1044 

1045Defina `"sensitive": true` para um token ou senha. O diálogo então mascara a entrada, e o valor é armazenado em armazenamento seguro em vez de `settings.json`.

1046 

1047Este manifesto solicita um endpoint e um token:

1048 

1049```json .claude-plugin/plugin.json theme={null}

1050{

1051 "name": "my-plugin",

1052 "userConfig": {

1053 "api_url": {

1054 "type": "string",

1055 "title": "API URL",

1056 "description": "Base URL of your team's API"

1057 },

1058 "api_token": {

1059 "type": "string",

1060 "title": "API token",

1061 "description": "Token for your team's API",

1062 "sensitive": true

1063 }

1064 }

1065}

1066```

1067 

1068<h3 id="when-the-configuration-dialog-appears">

1069 Quando o diálogo de configuração aparece

1070</h3>

1071 

1072O diálogo aparece apenas na interface interativa `/plugin`. Ele abre para qualquer opção que ainda não está definida quando o usuário faz qualquer um dos seguintes:

1073 

1074* Instala o plugin em `/plugin`

1075* Executa `/plugin install <plugin>@<marketplace>` dentro de uma sessão

1076* Habilita o plugin da aba **Installed** em `/plugin`

1077 

1078Para abrir o mesmo diálogo a qualquer momento, o usuário executa `/plugin configure <plugin>@<marketplace>`.

1079 

1080O comando shell `claude plugin install` nunca solicita valores `userConfig`. Para definir valores do shell, passe cada um como `--config KEY=VALUE`. Quando opções permanecem indefinidas, o comando imprime uma linha `userConfig options not yet set` que nomeia ambas as formas de defini-las. [O diálogo `userConfig` nunca aparece](/docs/pt/plugins/troubleshooting#the-userconfig-dialog-never-appears) cita a linha.

1081 

1082Para os campos de opção, onde cada valor é armazenado, como um componente referencia um valor salvo e quais campos rejeitam `${user_config.*}`, consulte [Configuração do usuário](/docs/pt/plugins/manifest-reference#user-configuration).

1083 

1084<h2 id="path-variables-and-persistent-data">

1085 Referenciar caminhos de plugin e armazenar dados

1086</h2>

1087 

1088Você não sabe onde seu plugin será instalado, então refira-se a seus arquivos e dados através destas variáveis em vez de caminhos fixos. Elas são substituídas em conteúdo de skill, comando e agente, em comandos de hook e monitor, e em configurações de servidor MCP e LSP. Elas também são exportadas para processos de hook, MCP e LSP:

1089 

1090* **`${CLAUDE_PLUGIN_ROOT}`**: o diretório de instalação do plugin. Cada versão tem seu próprio [diretório de cache](/docs/pt/plugins/loading#find-plugins-on-disk), então o caminho muda quando o plugin é atualizado. Não escreva estado lá

1091* **`${CLAUDE_PLUGIN_DATA}`**: um diretório que sobrevive a atualizações, para `node_modules`, ambientes virtuais e caches. Ele se resolve para `~/.claude/plugins/data/<id>/` e é criado quando primeiro referenciado

1092* **`${CLAUDE_PROJECT_DIR}`**: a raiz do projeto, o mesmo valor que hooks recebem

1093 

1094No caminho do diretório de dados, `<id>` é o identificador do plugin com cada caractere diferente de letras, dígitos, `_` e `-` substituído por `-`, então `my-plugin@my-marketplace` se torna `my-plugin-my-marketplace`.

1095 

1096No Windows, os caminhos substituídos usam barras para frente para que um shell não leia barras invertidas como escapes.

1097 

1098<h3 id="install-dependencies-into-the-data-directory">

1099 Instalar dependências no diretório de dados

1100</h3>

1101 

1102Para um plugin instalado no marketplace, Claude Code instala [dependências de pacote Node.js](/docs/pt/plugins/loading#node-js-package-dependencies) elegíveis automaticamente quando armazena em cache o plugin, então você pode não precisar instalá-las você mesmo. Quando você faz, este hook `SessionStart` instala `node_modules` em `${CLAUDE_PLUGIN_DATA}` na primeira execução e novamente após uma atualização alterar `package.json`:

1103 

1104```json hooks/hooks.json theme={null}

1105{

1106 "hooks": {

1107 "SessionStart": [

1108 {

1109 "hooks": [

1110 {

1111 "type": "command",

1112 "command": "diff -q \"${CLAUDE_PLUGIN_ROOT}/package.json\" \"${CLAUDE_PLUGIN_DATA}/package.json\" >/dev/null 2>&1 || (cd \"${CLAUDE_PLUGIN_DATA}\" && cp \"${CLAUDE_PLUGIN_ROOT}/package.json\" . && npm install) || rm -f \"${CLAUDE_PLUGIN_DATA}/package.json\""

1113 }

1114 ]

1115 }

1116 ]

1117 }

1118}

1119```

1120 

1121Após a primeira sessão, `~/.claude/plugins/data/<id>/node_modules` existe. Um servidor MCP pode então definir `NODE_PATH` para `${CLAUDE_PLUGIN_DATA}/node_modules` em seu `env`. Para quais campos substituem qual variável, consulte [Variáveis de ambiente](/docs/pt/plugins/manifest-reference#environment-variables).

1122 

1123<h2 id="next-steps">

1124 Próximos passos

1125</h2>

1126 

1127* [Referência de manifesto de plugin](/docs/pt/plugins/manifest-reference): campos `plugin.json`, regras de caminho e o layout padrão

1128* [Testar plugins com evals](/docs/pt/plugin-evals): verifique se os componentes que você adicionou alteram o comportamento de Claude da forma que você pretende

1129* [Publicar e distribuir um plugin](/docs/pt/plugins/publish): versione o plugin e coloque-o em um marketplace

1130* [Solucionar problemas de plugins](/docs/pt/plugins/troubleshooting): o que fazer quando um componente não carrega ou um hook não dispara

plugins/create.md +424 −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# Criar um plugin Claude Code

6 

7> Crie seu primeiro plugin Claude Code a partir de um diretório vazio, teste-o sem um marketplace e converta uma configuração .claude/ existente.

8 

9Um plugin é um diretório de skills, agents, hooks e servidores MCP, mais um arquivo `plugin.json`, chamado de manifest, que nomeia o plugin. Claude Code carrega o diretório como uma unidade, para que você possa compartilhá-lo com colegas de equipe, instalá-lo em vários projetos ou publicá-lo em um marketplace.

10 

11Esta página é para pessoas que escrevem seus próprios plugins.

12 

13<Note>

14 Estes casos são cobertos em outras páginas:

15 

16 * **Instalando o plugin de alguém**: veja [Instalar plugins](/docs/pt/plugins/install)

17 * **Não tem certeza se precisa de um plugin**: veja [Decidir se você precisa de um plugin](/docs/pt/plugins/overview#decide-whether-you-need-a-plugin) na visão geral

18 * **Os usuários do seu plugin estão em claude.ai ou em Cowork**: a mesma pasta instala lá com um subconjunto diferente de componentes. Veja [Plugins em claude.ai e em Cowork](https://claude.com/docs/plugins/overview)

19</Note>

20 

21Comece pela seção que corresponde ao que você já tem:

22 

23* **Nada ainda**: siga [Criar seu primeiro plugin](#create-your-first-plugin), depois [Desenvolver sem um marketplace](#develop-without-a-marketplace) e [Testar e depurar](#test-and-debug).

24* **Arquivos sob `.claude/` já existem**: faça o passo a passo do primeiro plugin uma vez para aprender o layout, depois siga [Converter uma configuração `.claude/` existente](#convert-an-existing-claude-setup).

25 

26<h2 id="decide-when-to-use-a-plugin">

27 Decidir quando usar um plugin

28</h2>

29 

30Skills, agents, hooks e servidores MCP funcionam todos de forma independente em seu projeto ou diretório inicial. Mantenha essa configuração independente enquanto ela serve um projeto ou apenas você. Crie um plugin quando quiser compartilhar a configuração com colegas de equipe, instalá-la em vários projetos ou publicar versões lançadas.

31 

32Quando você move skills, agents, hooks e configuração MCP independentes para um plugin, sua localização e nomes mudam:

33 

34* **Onde os arquivos vão**: sob o diretório próprio do plugin, chamado de raiz do plugin, como `skills/`, `agents/`, `hooks/hooks.json` e `.mcp.json`.

35* **Como são nomeados**: skills e agents do plugin recebem o nome do plugin como prefixo, como `/my-plugin:hello`, para que dois plugins possam cada um fornecer uma skill `hello` sem colidir.

36 

37Para mover uma configuração existente para um plugin, veja [Converter uma configuração `.claude/` existente](#convert-an-existing-claude-setup).

38 

39<h2 id="create-your-first-plugin">

40 Criar seu primeiro plugin

41</h2>

42 

43Neste passo a passo, você cria um plugin cujo único componente é uma skill, uma saudação, e a executa com `--plugin-dir`, que carrega um plugin para uma sessão sem instalá-lo. Um plugin pode conter qualquer mistura de [componentes](/docs/pt/plugins/components), como skills, agents, hooks e servidores MCP, e nenhum é obrigatório; uma skill é o exemplo menor que mostra o layout.

44 

45Você precisa ter Claude Code [instalado e conectado](/docs/pt/quickstart#step-1-install-claude-code).

46 

47Abra um terminal no diretório onde você deseja manter o plugin, como `~/projects`, e execute os comandos nessas etapas a partir dele. Você pode manter um plugin em qualquer lugar, porque você passa seu caminho para Claude Code quando inicia uma sessão.

48 

49<Steps>

50 <Step title="Criar o diretório do plugin">

51 Crie o diretório do plugin, com uma pasta `.claude-plugin/` dentro dele para conter o manifest:

52 

53 ```bash theme={null}

54 mkdir -p my-first-plugin/.claude-plugin

55 ```

56 </Step>

57 

58 <Step title="Escrever o manifest">

59 O [manifest](/docs/pt/plugins/manifest-reference) é um arquivo JSON chamado `plugin.json` que diz ao Claude Code o nome do plugin e o descreve. Salve este em `my-first-plugin/.claude-plugin/plugin.json`:

60 

61 ```json my-first-plugin/.claude-plugin/plugin.json theme={null}

62 {

63 "name": "my-first-plugin",

64 "description": "A greeting plugin to learn the basics",

65 "version": "1.0.0",

66 "author": {

67 "name": "Your Name"

68 }

69 }

70 ```

71 

72 Os quatro campos fazem isto:

73 

74 * **`name`**: obrigatório. Identifica o plugin e se torna o prefixo em cada skill e agent que o plugin fornece. Não coloque espaços nele.

75 * **`description`**: o texto que os usuários veem para o plugin em `/plugin`.

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

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

78 

79 Todos os outros campos estão na [referência do manifest](/docs/pt/plugins/manifest-reference#fields).

80 

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

82 </Step>

83 

84 <Step title="Adicionar uma skill">

85 O único componente deste plugin é uma skill. Cada skill é um diretório sob `skills/` que contém um arquivo `SKILL.md`. Crie o diretório da skill:

86 

87 ```bash theme={null}

88 mkdir -p my-first-plugin/skills/hello

89 ```

90 

91 Depois crie `my-first-plugin/skills/hello/SKILL.md` com este conteúdo:

92 

93 ```markdown my-first-plugin/skills/hello/SKILL.md theme={null}

94 ---

95 name: hello

96 description: Greet the user with a friendly message

97 disable-model-invocation: true

98 ---

99 

100 Greet the user warmly and ask how you can help them today.

101 ```

102 

103 A linha `disable-model-invocation: true` significa que Claude não executa a skill por conta própria, então apenas você a dispara. Remova essa linha de uma skill que você quer que Claude execute por conta própria. O comando da skill combina o nome do plugin e o nome da skill, então você executa este como `/my-first-plugin:hello`. Para os outros campos do frontmatter, veja a [referência do frontmatter da skill](/docs/pt/skills#frontmatter-reference).

104 </Step>

105 

106 <Step title="Validar o plugin">

107 Verifique o manifest e o frontmatter da skill antes de executar qualquer coisa:

108 

109 ```bash theme={null}

110 claude plugin validate ./my-first-plugin

111 ```

112 

113 O comando imprime o caminho do manifest que verificou e `✔ Validation passed`. Se imprimir `✘ Validation failed` em vez disso, cada linha acima dessa linha de resultado nomeia o campo a corrigir. Procure cada mensagem em [`claude plugin validate` relata erros](/docs/pt/plugins/troubleshooting#claude-plugin-validate-reports-errors).

114 </Step>

115 

116 <Step title="Executar Claude Code com o plugin">

117 Inicie uma sessão com o plugin carregado:

118 

119 ```bash theme={null}

120 claude --plugin-dir ./my-first-plugin

121 ```

122 

123 Assim que Claude Code iniciar, execute a skill:

124 

125 ```text theme={null}

126 /my-first-plugin:hello

127 ```

128 

129 Claude responde com uma saudação.

130 </Step>

131</Steps>

132 

133O plugin carrega apenas em sessões que você inicia com `--plugin-dir`. Para continuar trabalhando nele sem a flag, ou para testar uma compilação `.zip`, veja [Desenvolver sem um marketplace](#develop-without-a-marketplace).

134 

135<h3 id="share-the-plugin">

136 Compartilhar seu plugin

137</h3>

138 

139Um plugin que você construiu com [Criar seu primeiro plugin](#create-your-first-plugin) existe apenas em sua máquina. Quando estiver pronto para outras pessoas, há três maneiras de entregá-lo a elas:

140 

141* **Envie-o para algumas pessoas diretamente**: dê a elas o diretório do plugin ou um `.zip` dele, e nada precisa ser publicado. Veja [Compartilhar um plugin sem um marketplace](/docs/pt/plugins/publish#share-a-plugin-without-a-marketplace).

142* **Liste-o em seu próprio marketplace**: colegas de equipe adicionam seu marketplace uma vez e instalam o plugin por nome, e recebem suas atualizações. Veja [Publicar através de seu próprio marketplace](/docs/pt/plugins/publish#publish-through-your-own-marketplace).

143* **Envie-o para o marketplace da comunidade da Anthropic**: uma vez listado, qualquer pessoa que adicione esse marketplace pode instalá-lo. Veja [Enviar para o marketplace da comunidade](/docs/pt/plugins/publish#submit-to-the-community-marketplace).

144 

145<h3 id="plugin-layout">

146 Layout do plugin

147</h3>

148 

149Cada tipo de [componente](/docs/pt/plugins/components), como skills, agents, hooks e servidores MCP, vai em um diretório fixo sob a raiz do plugin, que é o diretório que você passa para `--plugin-dir`. Adicione apenas os diretórios que você usa. Para clicar através de um diretório de plugin completo e ler o que cada arquivo faz, abra o [explorador de plugin](/docs/pt/plugins/components#explore-the-plugin-directory).

150 

151A tabela lista os diretórios com os quais a maioria dos plugins começa, e o [layout completo](/docs/pt/plugins/manifest-reference#standard-layout) lista o resto.

152 

153| Localização | Conteúdo |

154| :--------------------------- | :------------------------------------------------------------------------------------------------------------------------------------- |

155| `.claude-plugin/plugin.json` | O manifest. Quando você carrega um plugin com `--plugin-dir` e ele não tem um manifest, Claude Code nomeia o plugin após seu diretório |

156| `skills/` | Um diretório `<name>/SKILL.md` por skill |

157| `commands/` | Arquivos Markdown simples, a forma mais antiga de skills. Use `skills/` para novos plugins |

158| `agents/` | Um arquivo Markdown por subagent |

159| `hooks/hooks.json` | Configuração de hook: uma chave `"hooks"` de nível superior cujo valor tem a mesma forma que `hooks` em um arquivo de configurações |

160| `.mcp.json` | Definições de servidor MCP |

161 

162<Warning>

163 Apenas `plugin.json` vai dentro de `.claude-plugin/`. Componentes salvos lá não carregam.

164 

165 A raiz do plugin é o diretório próprio do plugin, não `~/.claude/` em si. Um `.mcp.json` salvo em `~/.claude/.mcp.json` não carrega.

166</Warning>

167 

168<h2 id="develop-without-a-marketplace">

169 Desenvolver sem um marketplace

170</h2>

171 

172Você não precisa de um [marketplace](/docs/pt/plugins/overview#get-plugins-from-a-marketplace) para executar um plugin que está escrevendo. Carregue-o diretamente do disco ou de uma URL em vez disso:

173 

174* [`--plugin-dir`](#load-a-directory-or-archive-for-one-session): carrega um diretório ou arquivo `.zip` para uma sessão.

175* [`--plugin-url`](#fetch-an-archive-from-a-url-for-one-session): busca um arquivo `.zip` de uma URL para uma sessão.

176* [`claude plugin init`](#scaffold-a-plugin-that-loads-every-session): estrutura um plugin sob `~/.claude/skills/` que carrega a cada sessão.

177 

178Se dois plugins carregados de maneiras diferentes compartilharem um nome, veja [Conflitos de nome](/docs/pt/plugins/loading#name-conflicts) para saber qual Claude Code mantém.

179 

180<h3 id="load-a-directory-or-archive-for-one-session">

181 Carregar um plugin para uma sessão

182</h3>

183 

184Você pode carregar um plugin para uma única sessão de três maneiras: de um diretório ou arquivo `.zip` no disco com `--plugin-dir`, de uma URL com `--plugin-url`, ou de uma variável de ambiente quando você não pode adicionar uma flag. Cada plugin carrega apenas para essa sessão, e nada é escrito em suas configurações para ele. Quando você edita os arquivos do plugin durante a sessão, execute `/reload-plugins` para carregar as alterações.

185 

186<h4 id="from-a-directory-or-zip">

187 De um diretório ou `.zip`

188</h4>

189 

190Quando você inicia `claude` a partir de seu shell, passe `--plugin-dir` com o diretório raiz do plugin ou um arquivo `.zip` dele. Repita a flag para carregar vários plugins:

191 

192```bash theme={null}

193claude --plugin-dir ./my-first-plugin --plugin-dir ./other-plugin.zip

194```

195 

196<h4 id="load-a-folder-of-plugins">

197 De uma pasta de plugins

198</h4>

199 

200Para carregar vários plugins de um lugar, passe uma pasta que os contenha, como `--plugin-dir ./plugins`. Carregar uma pasta de plugins requer Claude Code v2.1.265 ou posterior.

201 

202Se a pasta não tiver um diretório `.claude-plugin/` e nenhum componente de plugin em seu nível superior, Claude Code a trata como uma pasta de plugins. Cada subpasta imediata que tenha um manifest `.claude-plugin/plugin.json` então carrega como um plugin separado. Tudo mais na pasta é ignorado sem um erro, incluindo uma subpasta que não tenha um manifest. Se um plugin na pasta não carregar, verifique se sua subpasta tem um `.claude-plugin/plugin.json`.

203 

204Em uma sessão interativa, você também pode adicionar e remover plugins na pasta após a inicialização:

205 

206* Uma subpasta que você adiciona carrega como um novo plugin assim que seu manifest existe.

207* Quando você remove uma subpasta, seu plugin descarrega.

208 

209Uma mensagem aparece na sessão para cada uma dessas alterações. Se carregar ou descarregar um plugin no meio da conversa [invalidaria o cache de prompt](/docs/pt/prompt-caching#enabling-or-disabling-a-plugin), a alteração é mantida em vez disso, e a mensagem diz a você para executar `/reload-plugins` para aplicá-la.

210 

211<h4 id="fetch-an-archive-from-a-url-for-one-session">

212 De uma URL

213</h4>

214 

215Quando você inicia `claude` a partir de seu shell, passe `--plugin-url` com o endereço de um arquivo `.zip`, como um artefato de compilação que seu CI publica:

216 

217```bash theme={null}

218claude --plugin-url https://example.com/my-first-plugin.zip

219```

220 

221Claude Code baixa o arquivo na inicialização. Para carregar vários, repita a flag ou passe as URLs separadas por espaço em um argumento entre aspas.

222 

223Aponte a flag apenas para arquivos que você controla ou confia.

224 

225Se Claude Code não conseguir buscar o arquivo, ou o arquivo for inválido, ele inicia sem o plugin e registra um erro de carregamento de plugin que você pode revisar na aba **Errors** do gerenciador `/plugin`.

226 

227<h4 id="from-an-environment-variable">

228 De uma variável de ambiente

229</h4>

230 

231Para carregar plugins em uma sessão onde você não pode adicionar a flag `--plugin-dir`, liste seus caminhos absolutos na variável de ambiente [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/pt/env-vars#variables) em vez disso. Claude Code carrega cada caminho como carrega um caminho `--plugin-dir`. Esses plugins carregam além de qualquer um que você passe com `--plugin-dir`. [As configurações de projeto e local não podem definir essa variável](/docs/pt/settings-reference#variables-claude-code-ignores-in-env). `CLAUDE_CODE_PLUGIN_DIRS` requer Claude Code v2.1.280 ou posterior.

232 

233As configurações gerenciadas podem desativar `--plugin-dir` e `CLAUDE_CODE_PLUGIN_DIRS`. Veja [Flags que carregam um plugin para uma sessão](/docs/pt/plugins/cli-reference#flags-that-load-a-plugin-for-one-session). Para testar um plugin junto com um plugin do qual depende, veja [Testar um plugin e sua dependência localmente](/docs/pt/plugins/dependencies#test-a-plugin-and-its-dependency-locally).

234 

235<h3 id="scaffold-a-plugin-that-loads-every-session">

236 Fazer um plugin carregar em cada sessão

237</h3>

238 

239Seu diretório de skills pessoal é `~/.claude/skills/`. Claude Code carrega qualquer pasta lá que contenha um `.claude-plugin/plugin.json` como um plugin em cada sessão, sem flag e sem etapa de instalação. `claude plugin init` estrutura um desses plugins para você.

240 

241<h4 id="scaffold-the-plugin-with-claude-plugin-init">

242 Estruturar o plugin com `claude plugin init`

243</h4>

244 

245`claude plugin init` escreve um plugin inicial sob `~/.claude/skills/`. Requer Claude Code v2.1.157 ou posterior. Estruture um a partir de seu shell:

246 

247```bash theme={null}

248claude plugin init my-tool

249```

250 

251O comando cria `~/.claude/skills/my-tool/` com um `.claude-plugin/plugin.json` e um `SKILL.md` raiz. Ele imprime `✔ Created plugin "my-tool" at ~/.claude/skills/my-tool` seguido por `It will auto-load next session as my-tool@skills-dir. Run /reload-plugins to load it now.`

252 

253Passe `--with skills` para ter `claude plugin init` estruturar uma skill sob `skills/` para você. Os outros valores `--with` estão na [referência de comandos de plugin](/docs/pt/plugins/cli-reference#plugin-init).

254 

255<h4 id="skill-names-in-a-scaffolded-plugin">

256 Nomear as skills do plugin

257</h4>

258 

259A skill raiz em `~/.claude/skills/my-tool/SKILL.md` também é uma skill pessoal, então você a invoca como `/my-tool`, não `/my-tool:my-tool`. Skills que você adiciona sob `skills/` dentro do plugin recebem o prefixo do nome do plugin, como `/my-tool:example`.

260 

261<h4 id="stop-loading-the-plugin">

262 Parar de carregar o plugin

263</h4>

264 

265Para parar de carregar um plugin estruturado, delete seu diretório, ou execute `claude plugin disable my-tool@skills-dir` em seu shell com o nome `my-tool@skills-dir` que `claude plugin init` imprimiu. No ID `my-tool@skills-dir`, `skills-dir` fica no lugar onde um nome de marketplace estaria, porque o plugin carrega de seu diretório de skills em vez de um marketplace.

266 

267<h4 id="load-a-plugin-for-everyone-in-one-repository">

268 Compartilhar o plugin através de um repositório

269</h4>

270 

271`claude plugin init` escreve o plugin em seu diretório de skills pessoal em `~/.claude/skills/`, para que carregue para você em cada projeto. Para fazer um plugin carregar para todos em um repositório, crie o mesmo layout você mesmo em `<project>/.claude/skills/<name>/`, incluindo seu `.claude-plugin/plugin.json`. Veja [Plugins compartilhados através de um repositório](/docs/pt/plugins/loading#plugins-shared-through-a-repository) para as condições sob as quais Claude Code o carrega.

272 

273<h2 id="test-and-debug">

274 Testar e depurar

275</h2>

276 

277Quando uma alteração em seu plugin não aparece, trabalhe através dessas verificações em ordem. Cada uma diz a você o que Claude Code fez com o plugin:

278 

2791. Em seu shell, execute `claude plugin validate <path>`. Verifica o manifest e o frontmatter de cada arquivo de skill, agent e command, e sai com `0` em `Validation passed`. Adicione `--strict` para falhar em avisos também. Códigos de saída e manipulação de diretório estão na [referência de comandos de plugin](/docs/pt/plugins/cli-reference#plugin-validate).

2802. Na sessão em execução, execute `/reload-plugins` para aplicar edições que você fez no disco. Imprime uma linha `Reloaded:` com contagens. Depois confirme que uma skill carregou digitando seu comando `/plugin-name:skill`, ou encontrando o plugin na aba **Installed** de `/plugin`.

2813. Na mesma sessão, execute `/plugin`. A aba **Installed** lista seu plugin e, nos detalhes do plugin, os componentes que Claude Code encontrou. A aba **Errors** lista o que falhou ao carregar e por quê, como um caminho em seu manifest que não existe.

2824. De volta em seu shell, execute `claude plugin list`. Imprime plugins de sessão única e diretório de skills em suas próprias seções com `Status: ✔ loaded` ou o erro de carregamento. Para incluir o plugin que você está desenvolvendo, passe `--plugin-dir` com seu caminho antes de `plugin list`.

283 

284Para verificar um servidor MCP, execute `/mcp` na sessão para ver o status do servidor. Quando o servidor está saudável, `/mcp` o lista como conectado. Se não estiver, veja [Servidores MCP que não iniciam](/docs/pt/plugins/troubleshooting#invalid-mcp-server-config-for-and-mcp-servers-that-dont-start).

285 

286Para verificar um hook, dispare o evento que ele corresponde. Por exemplo, peça a Claude para editar um arquivo para disparar um hook `PostToolUse`. Depois leia o [log de depuração](/docs/pt/hooks#debug-hooks), que mostra quais hooks corresponderam, seus códigos de saída e sua saída.

287 

288As próximas seções cobrem as falhas que você provavelmente encontrará ao desenvolver, e a [página de troubleshooting](/docs/pt/plugins/troubleshooting#build-a-plugin) tem a entrada completa para cada uma.

289 

290<h3 id="a-component-path-isn’t-found">

291 Um caminho de componente não é encontrado

292</h3>

293 

294A aba **Errors** de `/plugin` mostra `<component> path not found: <path>`, por exemplo `commands path not found`. Um caminho de componente em seu manifest, como `commands`, `skills`, `agents` ou `hooks`, aponta para nada. Corrija o caminho ou crie o diretório, depois execute `/reload-plugins` na sessão. Veja [`commands path not found`](/docs/pt/plugins/troubleshooting#commands-path-not-found).

295 

296<h3 id="plugin-dir-at-a-marketplace-root-doesn’t-load-the-plugins-under-plugins/">

297 `--plugin-dir` em uma raiz de marketplace não carrega os plugins sob `plugins/`

298</h3>

299 

300`--plugin-dir` leva o diretório raiz do plugin, aquele que contém `.claude-plugin/plugin.json` e os diretórios de componentes como `skills/`. Se você apontá-lo para uma raiz de marketplace em vez disso, Claude Code não lê `marketplace.json`, então um plugin sob `plugins/` não carrega, e você não vê nenhum erro. Aponte a flag para a pasta de um plugin, ou adicione o marketplace. Veja [a entrada de troubleshooting](/docs/pt/plugins/troubleshooting#plugin-dir-loads-a-plugin-with-no-components).

301 

302<h3 id="the-plugin-loads-but-its-skills-are-missing">

303 O plugin carrega mas suas skills estão faltando

304</h3>

305 

306O diretório `skills/` está dentro de `.claude-plugin/`, ou uma entrada `skills` no manifest aponta para um arquivo. Mova `skills/` para a raiz do plugin, aponte cada entrada `skills` para um diretório que contenha `SKILL.md`, e execute `/reload-plugins` na sessão. Veja [Plugin carrega mas suas skills estão faltando](/docs/pt/plugins/troubleshooting#plugin-loads-but-its-skills-are-missing).

307 

308<h3 id="the-userconfig-dialog-never-appears">

309 O diálogo `userConfig` nunca aparece

310</h3>

311 

312O diálogo para as opções [`userConfig`](/docs/pt/plugins/components#user-configuration) do seu plugin faz parte da instalação através de `/plugin` em uma sessão. Carregar com `--plugin-dir` não o mostra, e nem `claude plugin install` no shell. Com o plugin carregado, execute `/plugin configure <plugin-name>` na sessão para abri-lo. Veja [O diálogo `userConfig` nunca aparece](/docs/pt/plugins/troubleshooting#the-userconfig-dialog-never-appears).

313 

314<h3 id="check-that-the-plugin-changes-claude’s-behavior">

315 Verificar que o plugin muda o comportamento de Claude

316</h3>

317 

318Um plugin que carrega sem erros ainda pode falhar em orientar Claude da maneira que você pretende. `claude plugin eval`, que você executa em seu shell, executa seus casos de teste com e sem o plugin e pontua a diferença. Veja [Testar plugins com evals](/docs/pt/plugin-evals), começando com [Criar seu primeiro conjunto de eval](/docs/pt/plugin-evals#create-your-first-eval-suite).

319 

320<h2 id="convert-an-existing-claude-setup">

321 Converter uma configuração `.claude/` existente

322</h2>

323 

324Se você já tem skills, agents ou hooks sob um diretório `.claude/` de um projeto, você pode movê-los para um plugin sem reescrevê-los.

325 

326Execute os comandos nessas etapas a partir da raiz do projeto, que é o diretório que contém `.claude/`, porque os caminhos `cp` são relativos a ele.

327 

328<Steps>

329 <Step title="Criar a estrutura do plugin">

330 Crie o diretório do plugin e sua pasta `.claude-plugin/` ao lado de `.claude/`. Você pode mover o plugin para qualquer lugar depois.

331 

332 ```bash theme={null}

333 mkdir -p my-plugin/.claude-plugin

334 ```

335 

336 Crie `my-plugin/.claude-plugin/plugin.json`:

337 

338 ```json my-plugin/.claude-plugin/plugin.json theme={null}

339 {

340 "name": "my-plugin",

341 "description": "Migrated from standalone configuration",

342 "version": "1.0.0"

343 }

344 ```

345 </Step>

346 

347 <Step title="Copiar seus arquivos existentes">

348 Copie cada diretório de configuração que você tem para a raiz do plugin, e pule o comando para qualquer diretório que você não tenha.

349 

350 ```bash theme={null}

351 cp -r .claude/commands my-plugin/

352 ```

353 

354 ```bash theme={null}

355 cp -r .claude/agents my-plugin/

356 ```

357 

358 ```bash theme={null}

359 cp -r .claude/skills my-plugin/

360 ```

361 

362 Execute `ls -a my-plugin` para confirmar que cada diretório que você copiou aparece ao lado de `.claude-plugin`.

363 </Step>

364 

365 <Step title="Mover seus hooks">

366 Se você tem hooks em `.claude/settings.json` ou `.claude/settings.local.json`, crie um diretório de hooks:

367 

368 ```bash theme={null}

369 mkdir -p my-plugin/hooks

370 ```

371 

372 Crie `my-plugin/hooks/hooks.json` e copie o objeto `hooks` de seu arquivo de configurações para ele. O formato é o mesmo.

373 

374 Este exemplo mostra a forma com um hook que executa um linter em cada arquivo que Claude escreve ou edita. Substitua o exemplo pelo seu próprio objeto `hooks`.

375 

376 ```json my-plugin/hooks/hooks.json theme={null}

377 {

378 "hooks": {

379 "PostToolUse": [

380 {

381 "matcher": "Write|Edit",

382 "hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npm run lint:fix" }]

383 }

384 ]

385 }

386 }

387 ```

388 </Step>

389 

390 <Step title="Testar o plugin migrado">

391 Carregue o plugin para uma sessão:

392 

393 ```bash theme={null}

394 claude --plugin-dir ./my-plugin

395 ```

396 

397 Verifique cada componente sob seu novo nome:

398 

399 * **Skills**: execute `/my-plugin:deploy` para uma skill que era `/deploy`.

400 * **Subagents**: peça a Claude para usar o agent `my-plugin:reviewer` para um agent que era `reviewer`.

401 * **Hooks**: dispare o evento que cada hook corresponde.

402 

403 Se algo está faltando, trabalhe através de [Testar e depurar](#test-and-debug).

404 </Step>

405</Steps>

406 

407Enquanto os originais ainda estão sob `.claude/`, eles permanecem carregados ao lado das cópias do plugin:

408 

409* **Skills e agents**: os dois conjuntos não colidem, porque as skills e agents do plugin carregam o prefixo `my-plugin:`. `/deploy` e `/my-plugin:deploy` funcionam ambos, e Claude vê `reviewer` e `my-plugin:reviewer` como dois subagents.

410* **Hooks**: hooks não têm prefixo, então um hook que está em seu arquivo de configurações e em `hooks/hooks.json` executa duas vezes cada vez que seu evento dispara.

411 

412Depois que você confirmou que o plugin funciona, delete os originais de `.claude/` e remova o objeto `hooks` de seu arquivo de configurações.

413 

414<h2 id="next-steps">

415 Próximos passos

416</h2>

417 

418* [Componentes de plugin](/docs/pt/plugins/components): adicione agents, hooks, servidores MCP, servidores LSP e configuração de usuário ao seu plugin

419* [Testar plugins com evals](/docs/pt/plugin-evals): escreva casos de eval e execute-os com `claude plugin eval` para verificar com que confiabilidade o plugin orienta o comportamento de Claude

420* [Publicar um plugin](/docs/pt/plugins/publish): versione-o, coloque-o em um marketplace e envie-o para o marketplace da comunidade

421* [Plugins em claude.ai e em Cowork](https://claude.com/docs/plugins/overview): a mesma pasta de plugin instala em claude.ai e em Cowork. Alguns componentes são apenas Claude Code

422* [Referência do manifest do plugin](/docs/pt/plugins/manifest-reference): cada campo `plugin.json`, regra de caminho e diretório

423* [Skills](/docs/pt/skills): escreva as skills que seu plugin fornece

424* [Plugins da Anthropic no repositório claude-code](https://github.com/anthropics/claude-code/tree/main/plugins): exemplos completos trabalhados do layout nesta página, como `feature-dev` e `code-review`

plugins/create-marketplace.md +251 −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# Criar um marketplace

6 

7> Crie um marketplace de plugins a partir de um arquivo marketplace.json e teste-o localmente antes de hospedá-lo.

8 

9Um marketplace de plugins é um diretório ou repositório com um arquivo `.claude-plugin/marketplace.json` que lista seus plugins e onde buscar cada um. Você envia o diretório para um host git, e qualquer pessoa com acesso o registra no Claude Code com um comando e instala seus plugins a partir dele.

10 

11Crie seu próprio marketplace quando quiser que um grupo que você escolhe, como sua equipe ou sua organização, instale seus plugins e continue recebendo suas atualizações de um catálogo que você controla. O repositório pode ser privado, pode listar quantos plugins quiser, e um administrador pode [exigir em cada máquina](/docs/pt/plugins/org).

12 

13<Note>

14 Estes casos são cobertos em outras páginas:

15 

16 * **Compartilhar um plugin com algumas pessoas**: envie-lhes o diretório do plugin ou um `.zip` dele. Veja [Compartilhar um plugin sem um marketplace](/docs/pt/plugins/publish#share-a-plugin-without-a-marketplace).

17 * **Oferecer um plugin para todos**: envie-o para o marketplace da comunidade da Anthropic. Veja [Enviar para o marketplace da comunidade](/docs/pt/plugins/publish#submit-to-the-community-marketplace).

18 * **Usar um plugin você mesmo**: carregue-o com `--plugin-dir` ou salve-o em seu diretório de skills. Veja [Desenvolver sem um marketplace](/docs/pt/plugins/create#develop-without-a-marketplace).

19</Note>

20 

21Comece com [Criar um marketplace](#create-a-marketplace) para construir um em sua própria máquina e instalar um plugin a partir dele, depois [adicione mais entradas de plugin](#add-plugin-entries).

22 

23<h2 id="create-a-marketplace">

24 Criar um marketplace

25</h2>

26 

27Os passos a seguir criam um marketplace em sua máquina, adicionam um plugin a ele, registram-no no Claude Code e instalam o plugin a partir dele. Este é o loop completo, e é o mesmo loop que seus usuários percorrem uma vez que você hospeda o marketplace em algum lugar que eles possam acessar. Execute cada comando em seu shell, a partir do diretório onde você quer que `my-marketplace/` seja criado.

28 

29Você precisa de um plugin para listar. O exemplo usa `my-first-plugin` de [Criar seu primeiro plugin](/docs/pt/plugins/create#create-your-first-plugin), um plugin com uma skill que você executa como `/my-first-plugin:hello`; construa-o primeiro se você não tiver um plugin ainda. Para usar um plugin seu em vez disso, substitua seu diretório e seu `name` onde quer que os passos digam `my-first-plugin`. Para o que um diretório de plugin pode conter, veja o [explorador de diretório de plugin](/docs/pt/plugins/components#explore-the-plugin-directory).

30 

31<Steps>

32 <Step title="Configurar o diretório do marketplace">

33 Um marketplace é um diretório com um arquivo `.claude-plugin/marketplace.json`, mais os plugins que ele lista. Crie o diretório do marketplace e sua pasta `.claude-plugin/`, depois copie seu plugin sob `plugins/`:

34 

35 ```bash theme={null}

36 mkdir -p my-marketplace/.claude-plugin my-marketplace/plugins

37 cp -r my-first-plugin my-marketplace/plugins/

38 ```

39 

40 Verifique se o plugin é válido onde agora está, para que qualquer erro posterior seja sobre o marketplace e não sobre o plugin:

41 

42 ```bash theme={null}

43 claude plugin validate ./my-marketplace/plugins/my-first-plugin

44 ```

45 

46 A última linha da saída lê `✔ Validation passed`.

47 </Step>

48 

49 <Step title="Criar o arquivo do marketplace">

50 Salve `marketplace.json` em `my-marketplace/.claude-plugin/marketplace.json`. O arquivo requer um `name`, um `owner` e um array `plugins`.

51 

52 Cada objeto em `plugins` é uma entrada de plugin e precisa de um `name` e uma `source`. Escreva a `source` da entrada como um caminho a partir da raiz do marketplace. A raiz é `my-marketplace/`, o diretório que contém `.claude-plugin/`.

53 

54 ```json my-marketplace/.claude-plugin/marketplace.json theme={null}

55 {

56 "name": "my-marketplace",

57 "description": "Plugins for my team",

58 "owner": {

59 "name": "Your Name"

60 },

61 "plugins": [

62 {

63 "name": "my-first-plugin",

64 "source": "./plugins/my-first-plugin",

65 "description": "A greeting plugin to learn the basics"

66 }

67 ]

68 }

69 ```

70 </Step>

71 

72 <Step title="Validar o marketplace">

73 Execute `claude plugin validate` no diretório do marketplace para verificar a sintaxe JSON, os campos obrigatórios e cada entrada de plugin em seu `.claude-plugin/marketplace.json`.

74 

75 ```bash theme={null}

76 claude plugin validate ./my-marketplace

77 ```

78 

79 Para o arquivo conforme escrito no passo 2, a última linha da saída lê `✔ Validation passed`.

80 </Step>

81 

82 <Step title="Adicionar o marketplace e instalar o plugin">

83 Registre o diretório como um marketplace.

84 

85 ```bash theme={null}

86 claude plugin marketplace add ./my-marketplace

87 ```

88 

89 O comando imprime `✔ Successfully added marketplace: my-marketplace (declared in user settings)`, o que significa que o marketplace é registrado em seu arquivo de configurações do usuário.

90 

91 Instale o plugin. O id de instalação é o `name` da entrada, um `@` e o `name` do marketplace.

92 

93 ```bash theme={null}

94 claude plugin install my-first-plugin@my-marketplace

95 ```

96 

97 O comando imprime `✔ Successfully installed plugin: my-first-plugin@my-marketplace (scope: user)`.

98 

99 Dentro de uma sessão, `/plugin marketplace add ./my-marketplace` registra o marketplace da mesma forma. `/plugin install my-first-plugin@my-marketplace` abre os detalhes do plugin no painel `/plugin`, onde você o instala. Para esse fluxo, veja [Instalar e gerenciar plugins](/docs/pt/plugins/install).

100 </Step>

101 

102 <Step title="Confirmar que o plugin foi carregado">

103 Liste os plugins instalados.

104 

105 ```bash theme={null}

106 claude plugin list

107 ```

108 

109 A saída lista `my-first-plugin@my-marketplace` com `Status: ✔ enabled`.

110 

111 Para ver o que o plugin carregou, mostre seus detalhes.

112 

113 ```bash theme={null}

114 claude plugin details my-first-plugin

115 ```

116 

117 A seção `Component inventory` lê `Skills (1) hello`.

118 

119 Para executar a skill, inicie uma sessão e digite `/my-first-plugin:hello`. Claude o cumprimenta. O comando tem o nome do plugin como prefixo, como o nome de toda skill de plugin faz.

120 </Step>

121</Steps>

122 

123<h2 id="add-plugin-entries">

124 Adicionar entradas de plugin

125</h2>

126 

127Cada plugin que você distribui é um objeto no array `plugins` de `marketplace.json`. Para adicionar um segundo plugin, adicione um segundo objeto. Estes campos cobrem a maioria das entradas:

128 

129* `name`: o identificador que as pessoas digitam antes de `@` quando instalam. Não pode conter espaços.

130* `source`: onde Claude Code busca o plugin. Escreva uma string de caminho relativo para um plugin dentro do diretório do marketplace, como no [passo a passo](#create-a-marketplace), ou um objeto de source para um plugin fora dele. Veja [Escolher uma source de plugin](#choose-a-plugin-source).

131* `description`: a linha que as pessoas veem ao lado do plugin quando navegam seu marketplace em `/plugin`.

132 

133Para a lista completa de campos, veja [Entradas de plugin](/docs/pt/plugins/marketplace-reference#plugin-entries).

134 

135Uma entrada também pode definir qualquer campo [`plugin.json`](/docs/pt/plugins/manifest-reference). Para quando os campos `plugin.json` de uma entrada se aplicam a um plugin que tem seu próprio `plugin.json`, veja [Entrada e plugin.json](/docs/pt/plugins/marketplace-reference#entry-and-plugin-json).

136 

137<h2 id="rules-for-plugin-entries">

138 Regras para entradas de plugin

139</h2>

140 

141A maioria das instalações falhadas de um novo marketplace vêm de um caminho relativo escrito a partir do diretório errado, ou de um nome de entrada que difere do `name` no `plugin.json` do plugin.

142 

143<h3 id="write-relative-paths-from-the-marketplace-root">

144 Escrever caminhos relativos a partir da raiz do marketplace

145</h3>

146 

147A raiz do marketplace é o diretório que contém `.claude-plugin/`. No [passo a passo](#create-a-marketplace), isso é `my-marketplace/`, então a `source` da entrada é `"./plugins/my-first-plugin"`. O caminho não começa dentro de `.claude-plugin/`, então não use `..` para sair dele.

148 

149Um caminho com `..` e um caminho para um diretório ausente falham em comandos diferentes:

150 

151* **Um caminho com `..`**: `claude plugin validate` relata a entrada como inválida. A mensagem começa com `Path contains "..": ./../plugins/my-first-plugin`.

152* **Um caminho para um diretório que não existe**: `claude plugin validate` passa. `claude plugin install` falha com `Source path does not exist: <path>`, e `<path>` é o local absoluto que Claude Code verificou.

153 

154<h3 id="keep-the-entry-name-and-the-manifest-name-the-same">

155 Manter o nome da entrada e o nome do manifesto iguais

156</h3>

157 

158Um plugin do marketplace tem um `name` de entrada em `marketplace.json` e um `name` em seu próprio `plugin.json`, chamado de nome do manifesto. Cada nome aparece em lugares diferentes:

159 

160* **Nome da entrada**: o id de instalação, `<entry-name>@<marketplace>`. É o que as pessoas digitam para instalar, o que `claude plugin list` mostra, e a chave que Claude Code escreve sob [`enabledPlugins`](/docs/pt/settings-reference#enabledplugins) em seu arquivo de configurações.

161* **Nome do manifesto**: o prefixo nas skills do plugin, e o nome que `claude plugin details` recebe.

162 

163Quando os dois nomes diferem e alguém instala pelo nome do manifesto, Claude Code relata `Plugin "<manifest-name>" not found in marketplace "<marketplace>"`. Mantenha os dois nomes iguais. Para mais sobre como Claude Code usa os dois nomes, veja [Referência de carregamento de plugin](/docs/pt/plugins/loading#find-where-a-plugin-came-from).

164 

165<h2 id="choose-a-plugin-source">

166 Escolher uma source de plugin

167</h2>

168 

169Cada entrada de plugin em `marketplace.json` tem uma `source` que diz ao Claude Code onde buscar esse plugin. Escolha a source por onde os arquivos do plugin são armazenados. A tabela lista as sources que a maioria dos proprietários de marketplace usam.

170 

171| Source | Use quando | Valor mínimo de `source` |

172| :--------------- | :---------------------------------------------------------------------- | :---------------------------------------------------------------------------------------- |

173| Caminho relativo | Os arquivos do plugin estão dentro do próprio diretório do marketplace | `"./plugins/my-first-plugin"` |

174| `github` | O plugin é seu próprio repositório GitHub | `{ "source": "github", "repo": "your-org/my-first-plugin" }` |

175| `git-subdir` | O plugin é um subdiretório de algum outro repositório, como um monorepo | `{ "source": "git-subdir", "url": "your-org/monorepo", "path": "tools/my-first-plugin" }` |

176 

177Em uma source `git-subdir`, `url` recebe uma URL git ou um atalho GitHub `owner/repo`.

178 

179Um plugin também pode vir de um destes tipos de source:

180 

181* `url`: um repositório git por URL, em qualquer host

182* `archive`: um arquivo zip baixado via HTTPS

183* `npm`: um pacote npm

184* `command`: um diretório produzido pela execução de um comando na máquina onde o plugin é instalado

185 

186Para os campos de cada tipo de source, e para fixar uma source baseada em git a um `ref` ou `sha`, veja [Plugin sources](/docs/pt/plugins/marketplace-reference#plugin-sources).

187 

188<h2 id="validate-and-test">

189 Validar e testar

190</h2>

191 

192Conforme você adiciona plugins, execute `claude plugin validate ./my-marketplace` em seu shell após cada edição, e instale a partir do marketplace em sua própria máquina antes de compartilhá-lo. Validação e instalação capturam problemas diferentes.

193 

194<h3 id="problems-that-validation-reports">

195 Problemas que a validação relata

196</h3>

197 

198`claude plugin validate` lê apenas arquivos dentro do diretório do marketplace. Relata:

199 

200* Erros de sintaxe JSON, como `json: Invalid JSON syntax: <reason>`

201* Campos obrigatórios ausentes, como `owner: Invalid input`

202* Um nome de marketplace com espaços, caracteres não-ASCII, ou uma forma que imita um marketplace oficial da Anthropic, como `claude-official`

203* Uma `source` relativa que contém `..`

204* Campos desconhecidos no nível superior ou em uma entrada de plugin, como avisos

205* Problemas no `plugin.json` de cada plugin de caminho relativo, como `plugins[N] plugin.json → <field>: <message>`

206 

207Para cada mensagem que `validate` pode imprimir, veja [Mensagens de validação](/docs/pt/plugins/marketplace-reference#validation-messages). Para seus flags e códigos de saída, veja [`plugin validate`](/docs/pt/plugins/cli-reference#plugin-validate).

208 

209<h3 id="problems-that-surface-when-you-add-or-install">

210 Problemas que aparecem quando você adiciona ou instala

211</h3>

212 

213Problemas que `claude plugin validate` não relata aparecem quando você adiciona o marketplace ou instala a partir dele:

214 

215* **Quando você adiciona o marketplace**: os [nomes de marketplace oficiais](/docs/pt/plugins/marketplace-reference#reserved-names) exatos, como `claude-plugins-official`, passam na validação. Quando você adiciona um marketplace com um desses nomes, Claude Code o recusa com uma mensagem que começa com `The name '<name>' is reserved for official Anthropic marketplaces`.

216* **Quando você instala um plugin**:

217 * Claude Code primeiro busca uma source `github`, `git-subdir` ou outra remota quando você instala o plugin, então um `repo` ou `path` errado aparece então.

218 * Uma `source` relativa cujo diretório não existe também falha na instalação, com `Source path does not exist: <path>`.

219 

220<h3 id="test-an-edit-to-a-plugin">

221 Testar uma edição em um plugin

222</h3>

223 

224No [passo a passo](#create-a-marketplace), você adicionou `my-marketplace` a partir de um diretório local com uma `source` de caminho relativo. Com essa configuração, Claude Code lê os arquivos do plugin diretamente de `my-marketplace/plugins/`. Suas edições entram em vigor no próximo início de sessão ou quando você executa `/reload-plugins` em uma sessão, sem alteração na `version` do plugin.

225 

226As pessoas que instalam a partir de seu marketplace hospedado recebem uma cópia no cache de plugins em vez disso. Para como elas recebem uma nova versão, veja [Manter usuários atualizados](/docs/pt/plugins/host-marketplace#keep-users-up-to-date).

227 

228<h3 id="remove-the-marketplace-to-start-over">

229 Remover o marketplace para começar novamente

230</h3>

231 

232Para remover tudo e começar novamente, execute `claude plugin marketplace remove my-marketplace` em seu shell. O comando remove o marketplace e desinstala seus plugins.

233 

234<h2 id="host-your-marketplace">

235 Hospedar seu marketplace

236</h2>

237 

238Uma vez que você possa instalar um plugin a partir do marketplace em sua própria máquina, como em [Criar um marketplace](#create-a-marketplace), envie o diretório do marketplace para um host git.

239 

240Seus colegas de equipe então executam `claude plugin marketplace add <owner>/<repo>` em seu shell para um repositório GitHub, ou o mesmo comando com a URL do repositório. Eles então instalam um plugin por nome como no [passo a passo](#create-a-marketplace).

241 

242Para acesso a repositório privado, atualizações, versionamento e renomeação ou remoção de entradas, veja [Hospedar e manter um marketplace](/docs/pt/plugins/host-marketplace).

243 

244<h2 id="next-steps">

245 Próximos passos

246</h2>

247 

248* [Hospedar e manter um marketplace](/docs/pt/plugins/host-marketplace): escolha um host, mantenha usuários atualizados e renomeie ou remova plugins com segurança

249* [Referência de marketplace](/docs/pt/plugins/marketplace-reference): campos `marketplace.json` e tipos de source

250* [Gerenciar plugins para sua organização](/docs/pt/plugins/org): exija seu marketplace e seus plugins em cada máquina

251* [Sugerir plugins por relevância](/docs/pt/plugins/relevance): faça Claude Code sugerir um plugin do seu marketplace quando uma sessão corresponder

plugins/dependencies.md +245 −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# Dependências de plugin

6 

7> Declare os plugins dos quais seu plugin depende, com intervalos de versão como ^1.2, e veja como Claude Code instala, resolve e remove as dependências.

8 

9Uma dependência de plugin é outro plugin do qual seu plugin depende, como um cujo servidor MCP ou skill ele chama. Cada dependência rastreia a versão mais recente que seu marketplace fornece, a menos que você declare uma restrição de versão, um intervalo de versão semântica como `^2.0` ou `~2.1.0` que você testou.

10 

11Esta página é para autores de plugins que declaram dependências em `plugin.json` e para mantenedores de marketplace que marcam versões.

12 

13<Note>

14 Estes casos são cobertos em outras páginas:

15 

16 * **Instalando um plugin que tem dependências**: veja [Gerenciar plugins instalados](/docs/pt/plugins/install#manage-installed-plugins)

17 * **Lendo um erro de dependência**: veja [Erros de dependência](/docs/pt/plugins/troubleshooting#dependency-errors)

18 * **Declarando os pacotes npm e Bun que o código do seu próprio plugin precisa**: veja [Dependências de pacotes Node.js](/docs/pt/plugins/loading#node-js-package-dependencies)

19</Note>

20 

21Para adicionar uma restrição, comece em [Declare uma dependência com uma restrição de versão](#declare-a-dependency-with-a-version-constraint). Se você mantém um plugin do qual outros dependem, [marque suas versões](#tag-plugin-releases-for-version-resolution) para que suas restrições possam ser resolvidas.

22 

23<h2 id="declare-dependencies">

24 Declare dependências

25</h2>

26 

27<span id="decide-whether-to-constrain-dependency-versions" />Sem uma restrição de versão, uma dependência se move para cada nova versão que seu marketplace publica na próxima vez que os usuários atualizam. Se essa versão renomear uma ferramenta MCP que seu plugin chama, seu plugin quebra para todos que atualizam.

28 

29Com uma restrição como `~2.1.0` em uma dependência de uma fonte baseada em git, os usuários que têm seu plugin instalado continuam recebendo patches `2.1.x` da dependência e nunca se movem para `2.2`. Para atualizar em seu próprio cronograma, teste contra uma versão mais recente e depois publique uma nova versão do seu plugin com uma restrição mais ampla.

30 

31<h3 id="declare-a-dependency-with-a-version-constraint">

32 Declare uma dependência com uma restrição de versão

33</h3>

34 

35Liste as dependências no array `dependencies` do `plugin.json` do seu plugin. O manifesto a seguir declara uma dependência sem versão e uma dependência com restrição:

36 

37```json .claude-plugin/plugin.json theme={null}

38{

39 "name": "deploy-kit",

40 "version": "3.1.0",

41 "dependencies": [

42 "audit-logger",

43 { "name": "secrets-vault", "version": "~2.1.0" }

44 ]

45}

46```

47 

48Uma entrada pode ser uma string: apenas o nome do plugin, como `"audit-logger"` neste manifesto, ou `"name@marketplace"` para resolvê-lo em outro marketplace. Com uma string simples, seu plugin depende de qualquer versão que o marketplace desse plugin forneça.

49 

50Para definir uma restrição de versão, use um objeto com estes campos, cada um uma string:

51 

52| Campo | Descrição |

53| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

54| `name` | O nome do plugin da dependência, como aparece em sua entrada de marketplace. Claude Code o procura no mesmo marketplace que o plugin declarante, a menos que você defina `marketplace`. Obrigatório. |

55| `version` | Um [intervalo de versão semântica](https://github.com/npm/node-semver#ranges) como `~2.1.0`, `^2.0`, `>=1.4`, ou `=2.1.0`. A dependência instala na tag git mais alta que satisfaz este intervalo, portanto o mantenedor da dependência deve [marcar versões](#tag-plugin-releases-for-version-resolution). |

56| `marketplace` | Um marketplace diferente para resolver `name`. Uma lista de permissões controla dependências entre marketplaces, descrita em [Depender de um plugin de outro marketplace](#depend-on-a-plugin-from-another-marketplace). |

57 

58Um intervalo não corresponde a versões de pré-lançamento como `2.0.0-beta.1` a menos que você opte por um sufixo de pré-lançamento como `^2.0.0-0`.

59 

60<h3 id="bundle-plugins-for-a-team">

61 Agrupe plugins para uma equipe

62</h3>

63 

64Para permitir que engenheiros instalem um conjunto curado de plugins com um comando, publique um plugin cujo manifesto contenha um `name` e um array `dependencies`. Um manifesto de plugin precisa apenas de `name`, portanto este é um plugin válido, e instalá-lo instala todas as dependências.

65 

66Por exemplo, uma equipe de plataforma pode publicar bundles específicos de função em um marketplace interno para que engenheiros executem um `claude plugin install` em vez de instalar cada plugin separadamente:

67 

68```json .claude-plugin/plugin.json theme={null}

69{

70 "name": "backend-standard",

71 "version": "1.0.0",

72 "description": "Standard plugin set for backend engineers",

73 "dependencies": [

74 "secrets-vault",

75 "deploy-kit",

76 { "name": "db-migrate", "version": "^3.0" },

77 "oncall-runbook"

78 ]

79}

80```

81 

82Para adicionar um plugin ao conjunto padrão mais tarde, publique uma nova versão `backend-standard` com a dependência extra. Quando o marketplace não [atualiza automaticamente por padrão](/docs/pt/plugins/loading#which-marketplaces-and-plugins-auto-update), os engenheiros ativam a atualização automática para o marketplace ou atualizam manualmente:

83 

84* **Ativar atualização automática para o marketplace**: a próxima atualização automática move o bundle para a nova versão e instala todas as dependências que ele adiciona.

85* **Atualizar manualmente**: execute `claude plugin update backend-standard` em um shell, depois `/reload-plugins` em uma sessão aberta para instalar as dependências recém-adicionadas.

86 

87Para as etapas do lado do engenheiro, veja [Manter plugins atualizados](/docs/pt/plugins/install#keep-plugins-updated).

88 

89Para implantar um bundle para todos em uma organização, um administrador o adiciona a `enabledPlugins` nas configurações gerenciadas. Veja [Pré-instalar e exigir plugins](/docs/pt/plugins/org#pre-install-and-require-plugins).

90 

91<h3 id="depend-on-a-plugin-from-another-marketplace">

92 Depender de um plugin de outro marketplace

93</h3>

94 

95Por padrão, Claude Code não instala uma dependência de um marketplace diferente do próprio plugin declarante, a menos que o usuário já tenha essa dependência instalada e ativada no mesmo escopo. Este padrão impede que um marketplace instale silenciosamente plugins de uma fonte que o usuário não revisou.

96 

97Para permitir a instalação, adicione o nome do marketplace de destino a `allowCrossMarketplaceDependenciesOn` no `marketplace.json` do marketplace raiz. O marketplace raiz é aquele que hospeda o plugin que o usuário está instalando. Apenas a lista de permissões do marketplace raiz se aplica.

98 

99O seguinte `marketplace.json` permite que `deploy-kit` dependa de um plugin de `your-shared-marketplace`:

100 

101```json .claude-plugin/marketplace.json theme={null}

102{

103 "name": "your-marketplace",

104 "owner": { "name": "Your Org" },

105 "allowCrossMarketplaceDependenciesOn": ["your-shared-marketplace"],

106 "plugins": [

107 {

108 "name": "deploy-kit",

109 "source": "./deploy-kit",

110 "dependencies": [

111 { "name": "audit-logger", "marketplace": "your-shared-marketplace" }

112 ]

113 }

114 ]

115}

116```

117 

118Se `allowCrossMarketplaceDependenciesOn` estiver faltando ou não incluir o marketplace de destino, Claude Code não instala a dependência. Quando a dependência é declarada na entrada do marketplace, a própria instalação é recusada com uma mensagem que começa com `Dependency "audit-logger@your-shared-marketplace" (required by deploy-kit@your-marketplace) is in marketplace "your-shared-marketplace", which is not in the allowlist` e nomeia o campo a definir. Quando é declarada em `plugin.json`, a instalação é concluída sem a dependência e seu plugin falha ao carregar.

119 

120A verificação da lista de permissões não se aplica a uma dependência que já está ativada. Se um usuário instalar `audit-logger` de `your-shared-marketplace` primeiro, no mesmo escopo, `deploy-kit` então instala sem qualquer alteração na lista de permissões.

121 

122<h3 id="test-a-plugin-and-its-dependency-locally">

123 Teste um plugin e sua dependência localmente

124</h3>

125 

126Se você está desenvolvendo um plugin e o plugin do qual ele depende ao mesmo tempo, inicie Claude Code a partir do seu shell e carregue ambos com [`--plugin-dir`](/docs/pt/plugins/cli-reference#flags-that-load-a-plugin-for-one-session):

127 

128```bash theme={null}

129claude --plugin-dir ./my-dependency --plugin-dir ./my-plugin

130```

131 

132A cópia local da dependência satisfaz a entrada de dependência do seu plugin, portanto você não precisa instalar a dependência de seu marketplace.

133 

134* **Sem `version` necessária**: o `plugin.json` local também não precisa de uma `version`, porque uma [restrição de versão](#declare-a-dependency-with-a-version-constraint) não é verificada contra uma cópia local.

135* **Entradas que nomeiam um marketplace**: uma entrada que nomeia um marketplace também corresponde à cópia local no Claude Code v2.1.242 ou posterior.

136 

137Até você instalar a dependência de seu marketplace, seu plugin para de carregar sempre que a cópia local é desativada ou ausente:

138 

139* **Você desativou a cópia local**: seu plugin é desativado no próximo carregamento de plugin, com um erro que termina com `is disabled — enable it or remove the dependency`. Quando o erro nomeia a dependência como `<name>@inline`, esse identificador se refere à cópia `--plugin-dir`.

140* **Você iniciou uma sessão sem a flag `--plugin-dir` da dependência**: o erro relata a dependência como não instalada. Passe a flag novamente ou instale a dependência de seu marketplace.

141 

142Quando ambos os plugins estão em uma pasta pai, você pode passar essa pasta para `--plugin-dir` uma vez. Se a pasta não for ela mesma um plugin, Claude Code carrega cada pasta filha que tem um `.claude-plugin/plugin.json`. Requer Claude Code v2.1.265 ou posterior.

143 

144<h2 id="tag-plugin-releases-for-version-resolution">

145 Libere um plugin do qual outros dependem

146</h2>

147 

148Se você mantém um plugin do qual outros plugins dependem com uma restrição de versão, marque suas versões para que essas restrições possam ser resolvidas. Uma restrição é resolvida contra tags git no repositório que hospeda o plugin. Marque o repositório que a [fonte do plugin](/docs/pt/plugins/marketplace-reference#plugin-sources) do plugin em `marketplace.json` aponta:

149 

150* **Fonte `github`, `url`, ou `git-subdir`**: o repositório do próprio plugin, portanto o autor do plugin cria as tags

151* **Caminho relativo como `./plugins/secrets-vault`**: o repositório do marketplace, portanto o mantenedor do marketplace cria as tags

152 

153<h3 id="create-a-release-tag">

154 Crie uma tag de versão

155</h3>

156 

157Marque cada versão como `<plugin-name>--v<version>`, onde `<version>` corresponde ao campo `version` no `plugin.json` desse commit. O prefixo plugin-name permite que um repositório de marketplace hospede vários plugins com históricos de versão independentes.

158 

159Crie a tag a partir do diretório do plugin, com um remote `origin` configurado para receber a tag enviada, usando [`claude plugin tag`](/docs/pt/plugins/cli-reference#plugin-tag):

160 

161```bash theme={null}

162claude plugin tag --push

163```

164 

165O comando constrói o nome da tag a partir do manifesto do plugin. Antes de criar a tag, ele executa estas verificações:

166 

167* Valida o plugin

168* Verifica se `plugin.json` e a entrada do marketplace concordam sobre a versão, quando o diretório do plugin está dentro de um checkout de marketplace

169* Requer uma árvore de trabalho limpa sob o diretório do plugin

170* Recusa se a tag já existe

171 

172Uma execução bem-sucedida imprime `Created tag secrets-vault--v2.1.0`. Com `--push`, também imprime `Pushed to origin`. Sem `--push`, imprime o comando `git push` para você executar.

173 

174Passe `--dry-run` para ver o plano sem criar nada.

175 

176A [referência `claude plugin tag`](/docs/pt/plugins/cli-reference#plugin-tag) lista as flags restantes.

177 

178Você também pode executar `git tag secrets-vault--v2.1.0` diretamente, desde que mantenha a `version` em `plugin.json` e na entrada do marketplace em sincronização você mesmo.

179 

180<h3 id="constrain-a-dependency-that-has-a-non-git-source">

181 Restrinja uma dependência que tem uma fonte não-git

182</h3>

183 

184A resolução baseada em tag se aplica apenas a fontes baseadas em git. Para uma dependência com uma [fonte de plugin](/docs/pt/plugins/marketplace-reference#plugin-sources) `npm`, `archive`, ou `command`, a restrição não controla qual versão é buscada. Ainda é verificada quando o plugin carrega, e o plugin dependente é desativado se a versão instalada não a satisfaz.

185 

186Para fontes `npm`, `archive`, e `command`, a versão verificada é a `version` no `plugin.json` da dependência. Defina uma lá antes de restringir essa dependência, porque um `plugin.json` que não define versão satisfaz nenhuma restrição.

187 

188Claude Code nunca instala uma dependência com uma fonte `command` em si, portanto os usuários [a instalam primeiro](/docs/pt/plugins/marketplace-reference#command-plugin-source). Também nunca executa o [`headersHelper`](/docs/pt/plugins/host-marketplace#authenticate-archive-downloads) de uma dependência, portanto os usuários também instalam uma dependência cuja entrada de marketplace define um antes de instalar seu plugin.

189 

190Além de `claude plugin install`, estas operações também instalam qualquer dependência declarada faltante, e os limites `command` e `headersHelper` se aplicam a elas também:

191 

192* `/reload-plugins`

193* Auto-atualização do marketplace do plugin dependente

194* Re-executar `claude plugin install` no plugin dependente

195* `claude plugin marketplace add`

196 

197<h2 id="how-dependencies-behave-for-your-users">

198 Como as dependências se comportam para seus usuários

199</h2>

200 

201Estas seções descrevem como Claude Code resolve, verifica e combina as restrições que você declara uma vez que seu plugin é instalado junto com outros.

202 

203<h3 id="how-a-constraint-resolves-against-tags">

204 Como uma restrição é resolvida contra tags

205</h3>

206 

207Quando um usuário instala um plugin que declara `{ "name": "secrets-vault", "version": "~2.1.0" }`, a dependência instala a partir da tag `secrets-vault--v` mais alta que satisfaz `~2.1.0` no repositório que hospeda `secrets-vault`. Quando nenhuma tag satisfaz o intervalo, a instalação falha ou usa a cópia atual do marketplace:

208 

209* **Plugin com seu próprio repositório**: a instalação falha com uma mensagem contendo `Dependency "secrets-vault@your-marketplace" has no git tag satisfying`.

210* **Plugin referenciado por um caminho relativo**: a instalação usa a cópia atual do marketplace em vez disso, e a restrição é verificada quando o plugin carrega. Se essa cópia estiver fora do intervalo, o plugin dependente permanece desativado e `claude plugin list` mostra `Requires "secrets-vault@your-marketplace" ~2.1.0, installed 3.0.0`.

211 

212Para um plugin que o marketplace referencia por um caminho relativo, um marketplace que você adicionou como um caminho de pasta local também resolve restrições contra as tags git dessa pasta, quando a pasta é um repositório git. Isto requer Claude Code v2.1.196 ou posterior. Uma pasta local que não é um repositório git não tem tags, portanto Claude Code instala a dependência a partir do conteúdo atual da pasta em vez disso.

213 

214<h3 id="confirm-the-resolved-version">

215 Confirme a versão resolvida

216</h3>

217 

218Para confirmar qual versão uma restrição foi resolvida, execute `claude plugin list` em seu shell. Uma dependência resolvida por tag mostra sua versão com um sufixo de commit de 12 caracteres, como `2.1.0-8713c5b11005`.

219 

220As verificações de restrição usam a versão da tag em vez da `version` em `plugin.json`, mesmo se `plugin.json` nesse commit ficar para trás.

221 

222Se você forçar a movimentação de uma tag para um commit diferente, a próxima instalação busca o conteúdo desse commit em vez de reutilizar uma cópia em cache obsoleta. Veja [Versões e atualizações](/docs/pt/plugins/loading#versions-and-updates) para como a versão de um plugin se torna sua chave de cache.

223 

224<h3 id="combine-constraints-from-several-plugins">

225 Combine restrições de vários plugins

226</h3>

227 

228Quando vários plugins instalados restringem a mesma dependência, a dependência é resolvida para a versão mais alta que satisfaz todos os seus intervalos. Combinações comuns são resolvidas assim:

229 

230| Plugin A requer | Plugin B requer | Resultado |

231| :-------------- | :-------------- | :---------------------------------------------------------------------------------------------------------------------------------------- |

232| `^2.0` | `>=2.1` | Uma instalação na tag `2.x` mais alta em ou acima de `2.1.0`. Ambos os plugins carregam. |

233| `~2.1` | `~3.0` | A instalação do plugin B falha com uma mensagem `has conflicting version requirements`. Plugin A e a dependência permanecem como estavam. |

234| `=2.1.0` | nenhum | A dependência permanece em `2.1.0`. A atualização automática pula versões mais recentes enquanto o plugin A está instalado. |

235 

236A atualização automática busca uma dependência restrita na tag git mais alta que satisfaz o intervalo de cada plugin instalado, em vez de na versão mais recente do marketplace. Se os intervalos dos plugins instalados não se sobrepõem, a atualização automática deixa essa dependência em sua versão atual, e a aba **Errors** do `/plugin` mostra uma entrada nomeando o plugin restritivo. Se eles se sobrepõem mas nenhuma tag cai no intervalo, a atualização automática busca a cópia atual do marketplace e pula a atualização quando a `version` dessa cópia cai fora do intervalo de qualquer plugin instalado.

237 

238Quando um usuário desinstala o último plugin que restringe uma dependência, a dependência não é mais restrita a um intervalo de versão e retoma o rastreamento de sua entrada de marketplace na próxima atualização.

239 

240<h2 id="see-also">

241 Veja também

242</h2>

243 

244* [`claude plugin prune`](/docs/pt/plugins/cli-reference#plugin-prune): remova dependências auto-instaladas que nenhum plugin precisa mais

245* [Hospede um marketplace](/docs/pt/plugins/host-marketplace): canais de lançamento e recomendação de outros plugins

plugins/host-marketplace.md +458 −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# Hospedar e manter um marketplace

6 

7> Publique um marketplace de plugins onde os usuários possam acessá-lo, conceda acesso a um privado e lance atualizações e renomeações sem quebrar as instalações.

8 

9Hospedar um marketplace significa colocar seu catálogo `marketplace.json` onde outras pessoas possam adicioná-lo com `/plugin marketplace add`, instalar seus plugins e continuar recebendo suas alterações após você fazer push.

10 

11Esta página é para a pessoa que opera um marketplace.

12 

13<Note>

14 Estes casos são cobertos em outras páginas:

15 

16 * **Você ainda não escreveu o arquivo de catálogo**: comece com [Create a marketplace](/docs/pt/plugins/create-marketplace)

17 * **Você é um administrador que exige, restringe ou pré-instala marketplaces nas máquinas da sua organização**: leia [Manage plugins for your organization](/docs/pt/plugins/org)

18</Note>

19 

20Comece com [Host your marketplace](#host-your-marketplace) para escolher um host e o comando que seus usuários executam. Leia [Keep users up to date](#keep-users-up-to-date) antes de seu primeiro lançamento. Leia [Rename or remove a plugin](#rename-or-remove-a-plugin) antes de alterar o `name` de um plugin.

21 

22<h2 id="host-your-marketplace">

23 Host your marketplace

24</h2>

25 

26Você pode hospedar o marketplace no GitHub, em outro host git, como uma URL `marketplace.json` hospedada ou em um diretório em um sistema de arquivos compartilhado. Envie aos seus usuários o comando add para seu host e diga-lhes o que eles precisam em sua máquina:

27 

28| Host | Os usuários executam, em uma sessão Claude Code | O que os usuários precisam |

29| :------------------------------------------------------------ | :--------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------- |

30| GitHub | `/plugin marketplace add your-org/your-marketplace` | `git`, e para um repositório privado o acesso descrito em [Grant access to a private marketplace](#grant-access-to-a-private-marketplace) |

31| GitLab, Bitbucket, GitHub Enterprise Server ou outro host git | `/plugin marketplace add https://gitlab.example.com/team/plugins.git` | `git`, e acesso ao host a partir de sua máquina. Envie a URL completa, porque o atalho `owner/repo` sempre significa github.com |

32| Uma URL `marketplace.json` hospedada | `/plugin marketplace add https://plugins.example.com/marketplace.json` | Acesso HTTPS à URL. Os usuários não precisam de `git` para o catálogo em si |

33| Um diretório em um sistema de arquivos compartilhado | `/plugin marketplace add /Volumes/shared/claude-plugins` | Acesso de leitura ao caminho |

34 

35Para fixar uma branch ou tag de um marketplace GitHub ou git-URL, diga aos usuários para anexar `#<ref>`, como em `your-org/your-marketplace#stable`. A [plugin commands reference](/docs/pt/plugins/cli-reference#plugin-marketplace-add) lista todas as formas que o comando aceita.

36 

37Um add bem-sucedido imprime `Successfully added marketplace: your-marketplace`. Claude Code pega esse nome do campo `name` em seu `marketplace.json`, não do nome do repositório.

38 

39Os usuários então instalam um plugin pelo `name` da entrada e pelo `name` do marketplace, como em `/plugin install code-formatter@your-marketplace`.

40 

41<h3 id="register-the-marketplace-for-everyone-in-a-repository">

42 Register the marketplace for everyone in a repository

43</h3>

44 

45Para compartilhar o marketplace com todos que trabalham em um repositório, execute `claude plugin marketplace add your-org/your-marketplace --scope project` lá uma vez a partir de seu shell e faça commit do `.claude/settings.json` que ele escreve. Claude Code então registra o marketplace para cada colega de trabalho que [trusts the folder](/docs/pt/plugins/org#require-plugins-per-repository).

46 

47<h3 id="avoid-relative-path-entries-in-a-url-hosted-marketplace">

48 Avoid relative-path entries in a URL-hosted marketplace

49</h3>

50 

51Quando os usuários adicionam seu marketplace como uma URL `marketplace.json` simples, Claude Code baixa apenas esse arquivo. Uma entrada em seu array `plugins` cujo `source` é um caminho relativo como `./plugins/formatter` então falha na instalação com [`its marketplace entry path does not stay inside the marketplace directory`](/docs/pt/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces). Dê a cada entrada um source que possa ser buscado por conta própria, como um repositório `github` ou uma URL `archive`, ou hospede o marketplace em um repositório git para que Claude Code clone a árvore inteira.

52 

53<h3 id="edit-plugins-in-place-on-a-shared-directory">

54 Edit plugins in place on a shared directory

55</h3>

56 

57Quando os usuários adicionam seu marketplace a partir de um diretório compartilhado, Claude Code lê plugins com sources de caminho relativo diretamente desse diretório em vez de copiá-los. Os usuários veem suas edições quando iniciam a próxima sessão ou executam `/reload-plugins`, sem uma etapa de atualização ou um bump de versão.

58 

59<h3 id="keep-plugin-files-out-of-git-lfs">

60 Keep plugin files out of Git LFS

61</h3>

62 

63Mantenha os arquivos que seus plugins precisam fora de [Git LFS](https://git-lfs.com). Quando os usuários adicionam um marketplace hospedado em um repositório git ou instalam um plugin baseado em git que ele lista, Claude Code clona esse marketplace ou repositório de plugin em sua máquina. O clone nunca baixa conteúdo LFS, então arquivos rastreados por LFS chegam como arquivos de ponteiro.

64 

65<h3 id="share-files-within-a-marketplace-with-symlinks">

66 Share files within a marketplace with symlinks

67</h3>

68 

69Para compartilhar arquivos entre seu plugin e outras partes do mesmo marketplace, crie links simbólicos dentro do diretório do seu plugin. Quando Claude Code copia o plugin em seu cache, ele lida com cada symlink por onde o alvo se resolve:

70 

71* **Dentro do próprio diretório do plugin**: o symlink é preservado como um symlink relativo no cache, para que continue resolvendo para o alvo copiado em tempo de execução.

72* **Em outro lugar dentro do mesmo marketplace**: o symlink é desreferenciado. O conteúdo do alvo é copiado para o cache em seu lugar. Isso permite que o diretório `skills/` de um meta-plugin vincule a skills definidas por outros plugins no marketplace.

73* **Fora do marketplace**: o symlink é ignorado por segurança.

74 

75Para plugins instalados a partir de um caminho local ou de um [`command` source](/docs/pt/plugins/marketplace-reference#command-plugin-source) cujo `mode` é o padrão `copy`, Claude Code preserva apenas symlinks que se resolvem dentro do próprio diretório do plugin e ignora todos os outros.

76 

77O comando a seguir cria um link de dentro de um plugin de marketplace para uma skill compartilhada definida por um plugin irmão. No Windows, use `mklink /D` a partir de um Prompt de Comando elevado ou ative o Modo de Desenvolvedor:

78 

79```bash theme={null}

80ln -s ../../shared-plugin/skills/foo ./skills/foo

81```

82 

83<h2 id="distribute-through-organization-settings">

84 Distribute through organization settings

85</h2>

86 

87Em um plano Team ou Enterprise, você também pode distribuir o marketplace através de [**Organization settings > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=inventory) em claude.ai em vez de hospedá-lo em algum lugar onde os usuários o adicionem. Organization sync lê o repositório através da conexão GitHub ou GitLab da sua organização em claude.ai, então as credenciais git dos seus usuários não estão envolvidas.

88 

89Organization sync é mais rigoroso sobre o repositório do que `/plugin marketplace add` é:

90 

91* **Repositório de marketplace**: em github.com e gitlab.com, deve ser privado ou interno

92* **Plugin sources**: cada plugin source deve ser do tipo `github`, `url` ou `git-subdir`, ou um [relative path](/docs/pt/plugins/marketplace-reference#relative-path-plugin-source) que comece com `./`

93* **Diretório `bin/` de nível superior**: claude.ai rejeita um plugin que tem um e sincroniza o resto do marketplace. A mensagem de erro começa com `Plugin contains a top-level bin/ directory`. Mantenha executáveis em outro diretório, como `scripts/`, e referencie-os como `${CLAUDE_PLUGIN_ROOT}/scripts/<name>` a partir de seus hooks ou configurações de servidor MCP

94 

95Veja [Manage plugins for your organization](https://support.claude.com/en/articles/13837433) para o fluxo de trabalho do administrador.

96 

97<h2 id="grant-access-to-a-private-marketplace">

98 Grant access to a private marketplace

99</h2>

100 

101Quando um usuário adiciona, instala a partir de ou atualiza seu marketplace, Claude Code executa `git` em sua máquina com prompts interativos desativados e depende de quaisquer credenciais que essa máquina já tenha. Claude Code não tem seu próprio token git, e `marketplace.json` não tem campo para um.

102 

103Você escolhe se o clone é executado sobre SSH ou HTTPS pela forma do comando add que você envia aos usuários:

104 

105* **GitHub `owner/repo`**: Claude Code testa `ssh -T git@github.com` e clona sobre SSH quando o teste é bem-sucedido. Se o teste falhar ou o próprio clone SSH falhar, ele clona sobre HTTPS. Os usuários em máquinas sem uma chave SSH do GitHub podem definir `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1` para pular o teste e clonar sobre HTTPS.

106* **`git@host:path.git`**: SSH.

107* **`https://example.com/repo.git`**: HTTPS.

108 

109Diga aos usuários o que cada protocolo precisa em sua máquina:

110 

111* **SSH**: a chave deve funcionar sem um prompt de passphrase, por exemplo porque está carregada em `ssh-agent`. O host já deve estar em `known_hosts`.

112* **HTTPS**: Claude Code deixa o helper de credencial git do usuário ativado, mas proíbe-o de solicitar. Uma credencial que o helper já armazena funciona; uma que ele teria que pedir falha. No GitHub, `gh auth login` seguido de `gh auth setup-git` armazena uma.

113 

114Para um host GitHub Enterprise Server, os usuários precisam de acesso git a esse host a partir de sua máquina. Veja [Plugin marketplaces on GHES](/docs/pt/github-enterprise-server#plugin-marketplaces-on-ghes) para o que cada superfície Claude Code precisa para alcançar um marketplace hospedado em GHES.

115 

116Se você distribuir através de **Organization settings > Plugins & skills** em claude.ai em vez disso, as credenciais git dos seus usuários não estão envolvidas. Veja [Distribute through organization settings](#distribute-through-organization-settings) para quais plugin sources podem ser privados lá.

117 

118<h3 id="serve-users-who-have-no-git-host-account">

119 Serve users who have no git-host account

120</h3>

121 

122Os usuários sem uma conta de host git podem adicionar um marketplace que você serve como uma URL `marketplace.json` ou a partir de um diretório compartilhado, mas podem instalar apenas os plugins cujas entradas sources eles também podem alcançar. Uma entrada que aponta para um repositório `github` privado ainda falha na instalação para eles, porque Claude Code a busca com o mesmo `git` não-interativo que usa para um marketplace hospedado em git.

123 

124Estas entry sources não precisam de conta git:

125 

126* **`archive`**: um zip baixado sobre HTTPS. Os usuários não precisam de `git` nem de uma conta, apenas acesso de rede à URL. Requer Claude Code v2.1.224 ou posterior. Fixe cada archive com `sha256` para que Claude Code recuse um download alterado. Para enviar credenciais com o download, veja [Authenticate archive downloads](#authenticate-archive-downloads).

127* **Um repositório git público**: Claude Code clona um source `url` ou `git-subdir` público sobre HTTPS sem credenciais quando a entrada fornece uma URL `https://`. Para um source `github` ou um source `git-subdir` escrito como `owner/repo`, os usuários sem uma chave SSH do GitHub definem `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`.

128 

129Para uma equipe em uma rede, um marketplace `directory` em um sistema de arquivos compartilhado também funciona sem contas git. Os usuários precisam apenas de acesso de leitura ao caminho.

130 

131<h3 id="what-background-auto-update-does-with-credentials">

132 What background auto-update does with credentials

133</h3>

134 

135Background auto-update é a atualização desatendida de Claude Code de marketplaces e plugins instalados após uma sessão iniciar. Está desativado para seu marketplace até que um usuário ou administrador o ative, conforme coberto em [Keep users up to date](#keep-users-up-to-date).

136 

137Quando está ativado para um marketplace privado, a verificação de fundo de novos commits usa os helpers de credencial git configurados do usuário e nunca solicita. Cada tipo de remoto e helper fornece um resultado diferente:

138 

139* **Remotes SSH**: uma chave carregada em `ssh-agent` autentica a verificação.

140* **Remotes HTTPS com uma credencial armazenada**: um helper que pode fornecer uma credencial armazenada sem solicitar autentica a verificação. Git Credential Manager, o helper Keychain do macOS e `git-credential-store` funcionam dessa forma uma vez que mantêm uma credencial para o host.

141* **Remotes HTTPS com um helper que precisa solicitar**: o helper não pode responder em segundo plano. A atualização falha silenciosamente e o checkout existente permanece no lugar, para que os plugins do usuário continuem funcionando a partir do último estado sincronizado.

142 

143Após a verificação, Claude Code faz um dos seguintes:

144 

145* **O checkout está atualizado**: Claude Code o deixa como está.

146* **A verificação encontra novos commits ou falha porque não consegue alcançar ou autenticar para o remoto**: Claude Code clona o marketplace novamente e substitui o checkout existente pelo novo clone. Se esse clone falhar, o checkout existente permanece no lugar. O re-clone pode [time out on large repositories](/docs/pt/plugins/troubleshooting#git-clone-timed-out-after-120s).

147 

148Para manter um marketplace privado atual, um usuário pode fazer um dos seguintes:

149 

150* **Armazenar uma credencial**: faça login no helper de credencial primeiro para que ele mantenha uma credencial para o host. Para GitHub, execute `gh auth login`, depois `gh auth setup-git`.

151* **Manter o checkout em falha**: se o usuário definir `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1`, Claude Code mantém o checkout existente sem tentar o re-clone quando a verificação de fundo não consegue alcançar ou autenticar para o remoto. Os plugins continuam funcionando a partir do último estado sincronizado.

152 

153Se um usuário definir `GITHUB_TOKEN` ou outro token de provedor no ambiente, isso sozinho não autentica a verificação de fundo. Um token entra em vigor através de um helper de credencial, como o helper da CLI `gh`, que lê `GH_TOKEN` e `GITHUB_TOKEN`.

154 

155<h2 id="roll-out-to-a-whole-company">

156 Roll out to a whole company

157</h2>

158 

159Lançar um plugin para uma empresa envolve você como proprietário do marketplace, um administrador que controla configurações gerenciadas e cada pessoa que usa Claude Code. Você pode executar o lançamento sem o administrador, caso em que cada pessoa adiciona o marketplace e instala o plugin por conta própria.

160 

161| Quem | O que eles fazem | Onde está coberto |

162| :---------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------ |

163| Você, o proprietário do marketplace | Mantenha o catálogo em um repositório que apenas a empresa pode ler, envie o comando add para seu host e diga o que cada pessoa precisa em sua máquina | [Host your marketplace](#host-your-marketplace) e [Grant access to a private marketplace](#grant-access-to-a-private-marketplace) |

164| Um administrador | Registra o marketplace e ativa seus plugins para todos com `extraKnownMarketplaces` e `enabledPlugins` em configurações gerenciadas, e define `autoUpdate` lá | [Require a marketplace and its plugins](/docs/pt/plugins/org#require-a-marketplace-and-its-plugins) e [Set update policy](/docs/pt/plugins/org#set-update-policy) |

165| Cada pessoa | Precisa de acesso de leitura a um repositório git privado, com credenciais já armazenadas em sua máquina. Sem um administrador, eles também executam os comandos add e install | [Add a private marketplace](/docs/pt/plugins/install#add-a-private-marketplace) |

166 

167Para pessoas que não têm conta de host git, estas seções cobrem uma forma cada de alcançá-las:

168 

169* **Entry sources que não precisam de conta git**: [Serve users who have no git-host account](#serve-users-who-have-no-git-host-account)

170* **Um diretório de plugins pré-preenchido**: [Seed containers and CI](/docs/pt/plugins/org#seed-containers-and-ci), que também serve usuários que não têm conta de host git

171* **Configurações de organização claude.ai**: [Distribute through organization settings](#distribute-through-organization-settings), onde as credenciais git dos seus usuários não estão envolvidas

172 

173<h2 id="keep-users-up-to-date">

174 Keep users up to date

175</h2>

176 

177Suas alterações chegam aos usuários através de background auto-update, uma vez que está ativado para seu marketplace, ou quando os usuários atualizam o plugin por conta própria. Em ambos os casos, um usuário obtém uma nova cópia de um plugin apenas quando sua versão computada muda, conforme descrito em [Release a new version](#release-a-new-version).

178 

179<h3 id="turn-on-auto-update">

180 Turn on auto-update

181</h3>

182 

183Background auto-update está desativado para seu marketplace por padrão, e `marketplace.json` não tem campo para ativá-lo. Um usuário ou um administrador o ativa:

184 

185* **Diga aos usuários para ativá-lo**: cada usuário vai para **Marketplaces** em `/plugin`, seleciona seu marketplace e seleciona **Enable auto-update**.

186* **Peça a um administrador para defini-lo**: se um administrador definir `"autoUpdate": true` na entrada `extraKnownMarketplaces` do seu marketplace em configurações gerenciadas, está ativado para todos que recebem essas configurações. Veja [Set update policy](/docs/pt/plugins/org#set-update-policy).

187 

188Sem auto-update, os usuários recebem suas alterações quando executam `/plugin marketplace update <name>` em uma sessão ou `claude plugin update <plugin>@<name>` no shell.

189 

190Para o que os usuários veem quando uma atualização os alcança, veja [When auto-update runs](/docs/pt/plugins/loading#when-auto-update-runs).

191 

192<h3 id="release-a-new-version">

193 Release a new version

194</h3>

195 

196Para lançar uma nova versão aos usuários, altere o `version` do plugin. Os usuários obtêm uma nova cópia apenas quando a versão computada do plugin difere da que eles têm. Essa versão vem de `plugin.json` primeiro, depois da entrada do marketplace, por [Versions and updates](/docs/pt/plugins/loading#versions-and-updates).

197 

198Um plugin que os usuários [load in place](/docs/pt/plugins/loading#find-plugins-on-disk) a partir de um marketplace que adicionaram como um diretório local não é controlado por `version`. Ele carrega seus arquivos atuais em cada início de sessão, seja qual for sua string de versão.

199 

200Para cada instalação que não seja um carregamento in-place ou um de um source `command`, aumente `version` em cada lançamento ou omita-o:

201 

202* **Bump `version` em cada lançamento**: os usuários permanecem em sua cópia em cache até a string mudar. Se você definir `"version": "1.0.0"` e fazer push de novos commits sem alterá-lo, os usuários não os recebem.

203* **Omita `version`**: os usuários rastreiam seus commits em vez disso. Deixe `version` fora de `plugin.json` e da entrada do marketplace.

204 

205Não defina `version` em `plugin.json` e na entrada do marketplace. Se você fizer, Claude Code usa o valor `plugin.json` sem aviso, e `claude plugin validate` relata a incompatibilidade como `Entry declares version "<a>" but <path>/plugin.json says "<b>"`.

206 

207<h3 id="hold-users-on-one-version">

208 Hold users on one version

209</h3>

210 

211Um marketplace serve uma versão de cada plugin por vez, então você mantém os usuários em uma versão escolhendo o que cada entrada aponta:

212 

213* **`ref` e `sha` na entrada do plugin**: `ref` nomeia uma branch ou tag e `sha` nomeia um commit para um source `github`, `url` ou `git-subdir`. Veja [Plugin sources](/docs/pt/plugins/marketplace-reference#plugin-sources).

214* **`#<ref>` no comando add**: os usuários que adicionam `your-org/your-marketplace#stable` obtêm essa branch ou tag do catálogo. Para duas linhas de lançamento ao mesmo tempo, veja [Run release channels](#run-release-channels).

215* **Tags `<plugin>--v<version>`**: um intervalo de versão de uma dependência se resolve contra essas tags. Veja [Release a plugin that others depend on](/docs/pt/plugins/dependencies#tag-plugin-releases-for-version-resolution).

216 

217[Release a new version](#release-a-new-version) diz quando uma entrada alterada alcança os usuários.

218 

219<h3 id="change-the-command-of-a-command-source">

220 Change the command of a command source

221</h3>

222 

223Se você alterar o `command` de um [`command` source](/docs/pt/plugins/marketplace-reference#command-plugin-source) ou alternar seu `mode`, cada usuário tem que aceitar o novo comando antes de Claude Code executá-lo. Claude Code executa apenas o comando exato que um usuário aceitou quando instalou ou atualizou pela última vez o plugin.

224 

225Depois que a cópia do marketplace de um usuário pega a alteração, esse usuário vê o seguinte:

226 

227* **Sem mais execuções de fundo**: a [once-per-session run](/docs/pt/plugins/loading#when-a-command-source-re-runs) do comando para para esse usuário, então a nova saída da ferramenta não os alcança.

228* **Uma entrada na aba Errors do `/plugin`**: a entrada mostra o novo comando e o comando `claude plugin update` para executar.

229 

230Diga aos usuários para executar o comando `claude plugin update` que essa entrada mostra, em um terminal. Claude Code mostra a eles o novo comando e pede que o aceitem.

231 

232<h2 id="run-release-channels">

233 Run release channels

234</h2>

235 

236Para oferecer faixas estáveis e de acesso antecipado, hospede dois marketplaces cujas entradas apontam para diferentes refs do mesmo plugin e deixe cada usuário adicionar o que quiser. Claude Code não tem conceito de canal de lançamento, e um marketplace serve uma versão de cada plugin por vez.

237 

238Dê aos dois arquivos `marketplace.json` valores `name` diferentes. Claude Code identifica um marketplace por seu `name`, então um usuário não pode ter dois marketplaces com o mesmo nome registrados ao mesmo tempo.

239 

240Com estes dois catálogos, os usuários que adicionam `stable-tools` instalam `code-formatter` a partir da branch `stable`, e os usuários que adicionam `latest-tools` instalam a partir de `latest`:

241 

242```json theme={null}

243{

244 "name": "stable-tools",

245 "owner": { "name": "Your Org" },

246 "plugins": [

247 { "name": "code-formatter", "source": { "source": "github", "repo": "your-org/code-formatter", "ref": "stable" } }

248 ]

249}

250```

251 

252```json theme={null}

253{

254 "name": "latest-tools",

255 "owner": { "name": "Your Org" },

256 "plugins": [

257 { "name": "code-formatter", "source": { "source": "github", "repo": "your-org/code-formatter", "ref": "latest" } }

258 ]

259}

260```

261 

262Dê aos dois refs versões `plugin.json` diferentes ou omita `version` para que o commit SHA os distinga. As atualizações são detectadas comparando versões, então uma ref que se move sem uma mudança de versão deixa os usuários na cópia em cache.

263 

264Para atribuir os canais a grupos de usuários em vez de deixar os usuários escolherem, um administrador dá a cada grupo a entrada `extraKnownMarketplaces` correspondente, conforme descrito em [Set update policy](/docs/pt/plugins/org#set-update-policy).

265 

266<h2 id="rename-or-remove-a-plugin">

267 Rename or remove a plugin

268</h2>

269 

270O `name` de um plugin é seu identificador. Os usuários o referenciam nas chaves de configurações `enabledPlugins` e `pluginConfigs` e em `/plugin install`, então alterá-lo quebra cada instalação existente.

271 

272Para alterar o rótulo que os usuários veem em `/plugin` sem quebrar nada, defina `displayName` em `plugin.json` e mantenha `name` inalterado.

273 

274<h3 id="migrate-users-with-a-renames-map">

275 Migrate users with a renames map

276</h3>

277 

278Quando você deve alterar um `name`, adicione um mapa `renames` de nível superior a `marketplace.json` para que Claude Code migre usuários existentes em vez de relatar [`Plugin "<name>" not found in marketplace`](/docs/pt/plugins/troubleshooting#plugin-not-found-in-marketplace). Faça o mesmo quando remover uma entrada de `plugins`. A migração automática requer Claude Code v2.1.193 ou posterior.

279 

280Mapeie cada nome anterior para seu nome atual ou para `null` quando o plugin se foi. Este marketplace renomeia `formatter` para `code-formatter` e registra que `legacy-linter` foi removido:

281 

282```json theme={null}

283{

284 "name": "your-marketplace",

285 "owner": { "name": "Your Org" },

286 "plugins": [

287 { "name": "code-formatter", "source": "./plugins/code-formatter" }

288 ],

289 "renames": {

290 "formatter": "code-formatter",

291 "legacy-linter": null

292 }

293}

294```

295 

296Depois que você faz push, um usuário que ainda tem o nome antigo ativado vê um destes resultados:

297 

298* **Entrada renomeada**: o plugin carrega sob seu novo nome. `claude plugin list` e os detalhes do plugin em `/plugin` mostram `Renamed to "code-formatter" in the "your-marketplace" marketplace` uma vez, e Claude Code reescreve a chave antiga para a nova em `enabledPlugins` e `pluginConfigs` nos escopos de configurações do usuário, projeto e local.

299* **Entrada `null`**: a chave antiga é removida desses escopos e o usuário vê `Removed from the "your-marketplace" marketplace`.

300* **Ativado em configurações gerenciadas**: o plugin ainda carrega sob seu novo nome, mas Claude Code não pode reescrever configurações gerenciadas, então o aviso recorre até que um administrador atualize `enabledPlugins` lá.

301 

302Para um marketplace que os usuários adicionaram a partir de um repositório git ou URL, um plugin renomeado relata [`Plugin "<name>" not cached at <path>`](/docs/pt/plugins/troubleshooting#plugin-not-cached-at) até que o usuário execute `/plugin install code-formatter@your-marketplace` uma vez em uma sessão.

303 

304Trate `renames` como histórico apenas de acréscimo. Mantenha entradas antigas depois que todos migrarem. Quando renomear novamente, adicione uma segunda entrada em vez de editar a primeira, porque Claude Code segue a cadeia a partir do nome mais antigo.

305 

306Em seu shell, execute `claude plugin validate .` após editar o mapa. Ele rejeita uma cadeia que cicla ou que termina em qualquer lugar que não seja `null` ou um nome em `plugins`, com `renames.<name>: chain does not resolve`.

307 

308<h3 id="uninstall-removed-plugins-from-users’-machines">

309 Uninstall removed plugins from users' machines

310</h3>

311 

312Para desinstalar um plugin removido das máquinas dos usuários em vez de deixar uma cópia para trás, defina `"forceRemoveDeletedPlugins": true` no nível superior de `marketplace.json`. Sem o campo, um plugin removido permanece instalado e relata `Plugin "<name>" not found in marketplace` quando uma sessão o carrega. Com ele, Claude Code faz o seguinte em cada início de sessão:

313 

3141. Compara o que os usuários instalaram a partir de seu marketplace contra as entradas e o mapa `renames`, e trata qualquer plugin que não esteja listado nem renomeado como removido.

3152. Desinstala cada plugin removido do usuário, projeto e escopos locais. Os plugins que apenas configurações gerenciadas instalaram permanecem no lugar.

3163. Lista cada plugin removido em um cabeçalho **Flagged** em `/plugin` com o status `Removed from marketplace`.

317 

318<h2 id="authenticate-archive-downloads">

319 Authenticate archive downloads

320</h2>

321 

322Para autenticar um download [`archive`](/docs/pt/plugins/marketplace-reference#archive-plugin-source), como um download de um registro privado, defina os cabeçalhos HTTP que Claude Code envia com ele. Você pode definir `headers` em um destes lugares:

323 

324* **O source `url` do marketplace**: o source `url` que você registrou o marketplace a partir de, como uma entrada [`extraKnownMarketplaces`](/docs/pt/settings-reference#extraknownmarketplaces).

325* **A entrada do plugin**: em Claude Code v2.1.238 ou posterior, você pode defini-lo na entrada `marketplace.json` do plugin em vez disso, ao lado de `source`.

326 

327Em um destes lugares, defina um comando `headersHelper` em vez de `headers` quando o valor é de curta duração, como um token que seu registro gera sob demanda. Claude Code executa o comando e envia o objeto JSON que ele imprime como os headers desse lugar. Requer Claude Code v2.1.238 ou posterior.

328 

329A [marketplace reference](/docs/pt/plugins/marketplace-reference#plugin-entries) lista os campos de entrada `headers` e `headersHelper`.

330 

331O lugar que você escolhe decide quais downloads obtêm os headers e quando Claude Code executa o comando:

332 

333| Lugar | Downloads que obtêm os headers | Quando Claude Code executa um `headersHelper` definido lá |

334| :-------------------------- | :---------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

335| Source `url` do marketplace | Downloads de archive na origem da URL do marketplace, significando o mesmo scheme, host e porta | Antes de cada busca do `marketplace.json` do marketplace e antes de cada download de archive nessa origem. Claude Code reutiliza a saída de uma execução por até 60 segundos |

336| Entrada do plugin | Apenas o download dessa entrada | Apenas quando um usuário instala ou atualiza apenas esse plugin e [aceita o comando](#how-users-accept-a-headershelper-command) |

337 

338Onde ambos os lugares definem um header do mesmo nome, Claude Code envia o valor da entrada. Dentro de um lugar, um header que o comando imprime substitui um header do mesmo nome listado em `headers`.

339 

340<h3 id="add-a-headershelper-to-a-plugin-entry">

341 Add a headersHelper to a plugin entry

342</h3>

343 

344Esta entrada define `headersHelper` ao lado de `source`. Ela também define [`"strict": false`](/docs/pt/plugins/marketplace-reference#strict-mode), que Claude Code exige de uma entrada `marketplace.json` que define `headersHelper`:

345 

346```json theme={null}

347{

348 "name": "my-plugin",

349 "description": "Formatting commands for internal services",

350 "strict": false,

351 "source": {

352 "source": "archive",

353 "url": "https://registry.example.com/plugins/my-plugin-2.1.0.zip"

354 },

355 "headersHelper": "/opt/bin/mint-registry-token.sh"

356}

357```

358 

359Para verificar a entrada, execute `claude plugin install my-plugin@your-marketplace` em seu shell. Claude Code mostra a você o comando e a URL do archive, e baixa o zip depois que você aceita.

360 

361<h3 id="write-the-headershelper-command">

362 Write the headersHelper command

363</h3>

364 

365Se você define `headersHelper` em um source `url` de um marketplace ou em uma entrada de plugin, escreva o comando para atender a estes requisitos:

366 

367* **Texto do comando**: no máximo 500 caracteres de ASCII imprimível, sem uma sequência de quatro ou mais espaços.

368* **Saída**: imprima um objeto JSON de nomes de headers e valores de string em stdout, depois saia com 0 dentro de 10 segundos.

369* **Shell e diretório de trabalho**: Claude Code executa o comando através de `sh` ou através de `cmd.exe` no Windows. O diretório de trabalho é o diretório de configuração, que é `~/.claude` ou [`CLAUDE_CONFIG_DIR`](/docs/pt/env-vars#variables). Dê um caminho absoluto ou um comando em `PATH`, porque um caminho relativo se resolve contra esse diretório, não o projeto do usuário.

370* **Variáveis que Claude Code remove**: quando o comando é definido em uma entrada `marketplace.json` ou no `.claude/settings.json` ou `.claude/settings.local.json` de um projeto, Claude Code remove do ambiente cada variável cujo nome parece uma credencial, pela [mesma regra que aplica a um `headersHelper` MCP](/docs/pt/mcp#which-variables-a-helper-can-read). `ANTHROPIC_API_KEY` e `MY_REGISTRY_TOKEN` são ambos removidos, então tenha o comando ler sua credencial de um arquivo ou um armazenamento de credenciais. Esta remoção não se aplica a um comando definido em configurações de usuário, um arquivo `--settings` ou configurações gerenciadas.

371* **Variáveis que Claude Code define**: `CLAUDE_CODE_MARKETPLACE_URL` e `CLAUDE_CODE_MARKETPLACE_NAME` para o comando de um source `url`, e `CLAUDE_CODE_PLUGIN_NAME` e `CLAUDE_CODE_PLUGIN_ARCHIVE_URL` para o comando de uma entrada. `CLAUDE_CODE_MARKETPLACE_NAME` não está definido na primeira busca depois que um usuário adiciona um marketplace por URL, porque essa busca é o que fornece o nome.

372 

373Um comando que cria um token bearer imprime um objeto como este:

374 

375```json theme={null}

376{"Authorization": "Bearer eyJhbGciOiJSUzI1NiJ9"}

377```

378 

379<h3 id="when-claude-code-skips-a-headershelper-command-or-drops-its-output">

380 When Claude Code skips a headersHelper command or drops its output

381</h3>

382 

383Um comando `headersHelper` não é executado ou headers de `headers` ou da saída do comando são descartados quando um dos seguintes se aplica:

384 

385* **Comando falha**: se o comando sair com não-zero, executar por mais de 10 segundos ou imprimir qualquer coisa que não seja um objeto JSON de valores de string, a busca ou download para o qual o comando foi executado não acontece.

386* **URL do marketplace não começa com `https://`**: o comando desse source `url` não é executado e as solicitações carregam apenas os headers listados em seu campo `headers`.

387* **Redirecionamento deixa a origem**: quando um download é redirecionado para fora da origem da URL do archive, a solicitação redirecionada não carrega valores de `headers` de nenhum source `url` do marketplace ou entrada de plugin.

388* **Entrada define um header de roteamento ou identidade**: Claude Code descarta nomes de roteamento de solicitação e identidade de cliente como `Host`, `Cookie` e `X-Forwarded-*` de `headers` de uma entrada e saída de comando, e mantém nomes de autenticação como `Authorization`. Cada entrada `marketplace.json` é filtrada dessa forma. Para uma entrada de plugin inline em configurações, veja [`extraKnownMarketplaces`](/docs/pt/settings-reference#extraknownmarketplaces).

389* **Comando definido em configurações de um diretório `--add-dir`**: o comando é ignorado, em um source `url` e em uma [entrada de plugin inline](/docs/pt/settings-reference#extraknownmarketplaces) igualmente, e apenas os `headers` desse arquivo são enviados.

390* **Configurações gerenciadas bloqueiam o comando**: definir [`disableCommandPluginSources`](/docs/pt/settings-reference#disablecommandpluginsources) para `true` bloqueia comandos `headersHelper`, e [`allowManagedHooksOnly`](/docs/pt/settings-reference#allowmanagedhooksonly) também os bloqueia a menos que `disableCommandPluginSources` seja explicitamente `false`. Sob um desses bloqueios, Claude Code ainda executa o comando para um marketplace que as próprias configurações gerenciadas declaram.

391 

392<h3 id="how-users-accept-a-headershelper-command">

393 How users accept a headersHelper command

394</h3>

395 

396Um usuário aceita o comando de uma entrada de plugin cada vez que instala ou atualiza apenas esse plugin. Eles fazem isso a partir da própria visualização do plugin em `/plugin` ou com `claude plugin install` ou `claude plugin update`. Claude Code mostra o comando e a URL do archive, e executa o comando apenas depois que o usuário aceita.

397 

398Em um shell não-interativo, passe [`--yes`](/docs/pt/plugins/cli-reference#plugin-install) para aceitar o comando. Para aceitar apenas o comando que uma execução anterior `--json` exibiu, passe [`--accept-command`](/docs/pt/plugins/cli-reference#plugin-install) com o `sha256` que a execução relatou.

399 

400Claude Code executa apenas o comando que mostrou, para a URL do archive que mostrou. Se o comando da entrada ou a URL do archive mudaram no meio, Claude Code recusa a instalação ou atualização. Uma mudança na string de consulta sozinha não conta.

401 

402<h3 id="installs-and-updates-that-refuse-the-command-instead-of-asking">

403 Installs and updates that refuse a command instead of asking

404</h3>

405 

406Em qualquer operação que não seja uma instalação ou atualização de um único plugin, Claude Code não executa o comando de uma entrada nem baixa seu archive. O plugin permanece em sua versão instalada ou permanece desinstalado, e o usuário vê um destes resultados:

407 

408* **Instalando vários plugins ao mesmo tempo, a partir de uma sugestão de plugin ou como dependência de outro plugin**: Claude Code recusa o plugin que tem o comando e direciona o usuário para a própria visualização desse plugin em `/plugin`. Os outros plugins em uma instalação em massa ainda instalam. Um plugin que depende do plugin recusado falha em instalar até que o usuário instale o plugin recusado por conta própria.

409* **Background auto-update ou início de sessão para um plugin cujo archive nunca foi baixado**: Claude Code lista o plugin na aba Errors do `/plugin` para que o usuário saiba instalá-lo ou atualizá-lo por conta própria.

410 

411<h3 id="when-a-marketplace-url-sources-command-runs">

412 When a marketplace `url` source's command runs

413</h3>

414 

415Você declara o `headersHelper` de um source `url` do marketplace em um arquivo de configurações, como uma entrada [`extraKnownMarketplaces`](/docs/pt/settings-reference#extraknownmarketplaces), em vez de no catálogo que o marketplace publica. Claude Code portanto não pede ao usuário para aceitá-lo em cada instalação ou atualização. Em vez disso, o arquivo de configurações que o declara decide quando Claude Code o executa:

416 

417| Arquivo de configurações | Quando Claude Code executa o comando |

418| :------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

419| Configurações de usuário, um arquivo `--settings` ou um arquivo de configurações gerenciadas na máquina | Sem pedir, incluindo durante uma atualização de marketplace de fundo |

420| `.claude/settings.json` ou `.claude/settings.local.json` de um projeto | Apenas depois que o usuário aceita o [workspace trust dialog](/docs/pt/permissions#what-runs-before-you-trust-a-folder) para essa pasta em si. Uma sessão `-p` ou SDK não conta como aceitá-lo, e nem a confiança concedida a uma pasta pai |

421| Configurações gerenciadas pelo servidor | Em uma sessão interativa, apenas depois que o usuário aprova as configurações entregues no [security approval dialog](/docs/pt/server-managed-settings#security-approval-dialogs) |

422 

423Para uma [entrada de plugin inline](/docs/pt/settings-reference#extraknownmarketplaces) em um desses arquivos, Claude Code exige a mesma confiança de pasta ou aprovação de configurações que para um comando de nível de marketplace nesse arquivo, e o usuário também aceita o comando da entrada em cada instalação ou atualização.

424 

425<h2 id="depend-on-and-recommend-other-plugins">

426 Depend on and recommend other plugins

427</h2>

428 

429Uma entrada pode declarar dependências em outros plugins.

430 

431* **Intervalos de versão**: uma dependência pode carregar um intervalo semver.

432* **Dependências entre marketplaces**: uma dependência de outro marketplace instala apenas quando seu marketplace lista esse marketplace em `allowCrossMarketplaceDependenciesOn`.

433 

434Para intervalos de versão, a convenção de tag git `<plugin>--v<version>` que eles se resolvem contra e confiança entre marketplaces, veja [Plugin dependencies](/docs/pt/plugins/dependencies).

435 

436Para ter Claude Code sugerir um plugin quando um projeto o corresponde, adicione um bloco `relevance` à entrada com os sinais que identificam o projeto. Os usuários veem sugestões do seu marketplace apenas quando um administrador o lista em `pluginSuggestionMarketplaces`. Para os sinais e a etapa de habilitação, veja [Plugin relevance](/docs/pt/plugins/relevance).

437 

438<h2 id="work-around-what-a-marketplace-can’t-do">

439 Work around what a marketplace can't do

440</h2>

441 

442Algumas coisas que proprietários pedem não têm campo em `marketplace.json`. Aqui está a opção mais próxima para cada:

443 

444* **Restringir o que mais os usuários instalam**: a lista de permissões do marketplace é uma configuração gerenciada, `strictKnownMarketplaces`. Veja [Restrict what users can install](/docs/pt/plugins/org#restrict-what-users-can-install).

445* **Instalar ou ativar um plugin sem o usuário pedir**: nenhum campo de entrada instala um plugin. `enabledPlugins` gerenciado faz isso para uma frota; veja [Pre-install and require plugins](/docs/pt/plugins/org#pre-install-and-require-plugins).

446* **Mostrar entradas diferentes para usuários diferentes**: as entradas não carregam campo de audiência, e cada usuário que adiciona o marketplace vê o catálogo inteiro. Hospede marketplaces separados para audiências separadas.

447* **Marcar um plugin como descontinuado**: não há estado de descontinuação. A opção é remover a entrada, mapear seu nome para `null` em `renames` e opcionalmente definir `forceRemoveDeletedPlugins`.

448* **Ativar auto-update para seus usuários**: cada usuário o ativa em **Marketplaces** em `/plugin` ou um administrador define `autoUpdate` em configurações gerenciadas. Veja [Turn on auto-update](#turn-on-auto-update).

449* **Carregar credenciais git**: nenhum campo de marketplace mantém um token git. O acesso a um marketplace ou plugin hospedado em git segue a configuração git do usuário, por [Grant access to a private marketplace](#grant-access-to-a-private-marketplace). Para sources `archive`, uma entrada pode definir [`headers` ou `headersHelper`](#authenticate-archive-downloads) em vez disso.

450 

451<h2 id="next-steps">

452 Next steps

453</h2>

454 

455* [Marketplace reference](/docs/pt/plugins/marketplace-reference): campos `marketplace.json`, tipos de source e mensagens de validação

456* [Manage plugins for your organization](/docs/pt/plugins/org): exija, restrinja ou semeie seu marketplace nas máquinas da sua organização

457* [Plugin dependencies](/docs/pt/plugins/dependencies): marque lançamentos para que plugins que dependem do seu possam resolver versões

458* [Troubleshoot plugins](/docs/pt/plugins/troubleshooting): os erros que seus usuários veem ao adicionar ou atualizar a partir de seu marketplace

plugins/install.md +418 −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# Instalar e gerenciar plugins

6 

7> Instale plugins do Claude Code a partir de um marketplace em qualquer superfície que você use, escolha um escopo de instalação e atualize ou remova-os posteriormente.

8 

9Instalar um plugin adiciona suas skills, agents, hooks e servidores MCP ao Claude Code na sua máquina.

10 

11Esta página é para qualquer pessoa que use plugins em sua própria máquina ou conta, seja no terminal, no aplicativo desktop, em um IDE ou em uma sessão na nuvem: ela cobre instalação, escolha de escopo, adição de marketplaces e manutenção de plugins atualizados.

12 

13<Note>

14 Estes casos são cobertos em outras páginas:

15 

16 * **Você usa o chat claude.ai ou Cowork, não Claude Code**: veja [Plugins no claude.ai e no Cowork](https://claude.com/docs/plugins/overview)

17 * **Claude Code imprimiu um erro**: encontre-o em [Solucionar problemas de plugins](/docs/pt/plugins/troubleshooting)

18</Note>

19 

20Comece com [Instalar um plugin](#install-a-plugin). Se alguém lhe enviou um comando de instalação cujo nome `@` não é `claude-plugins-official`, [adicione esse marketplace](#add-a-marketplace) primeiro.

21 

22<h2 id="install-a-plugin">

23 Instalar um plugin

24</h2>

25 

26Como exemplo, esta seção instala [`commit-commands`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/commit-commands) do [marketplace oficial da Anthropic](/docs/pt/plugins/anthropic-marketplaces), que adiciona comandos para fazer commit, fazer push e abrir pull requests.

27 

28Os mesmos passos instalam qualquer outro plugin: substitua seu nome e o nome do seu marketplace onde quer que `commit-commands` e `claude-plugins-official` apareçam. Se esse plugin vier de um marketplace diferente, [adicione o marketplace](#add-a-marketplace) primeiro.

29 

30Escolha a aba para onde você executa o Claude Code.

31 

32<Tabs>

33 <Tab title="Terminal">

34 Inicie o Claude Code com `claude` no seu projeto e depois:

35 

36 <Steps>

37 <Step title="Abra os detalhes do plugin com o comando de instalação">

38 Execute `/plugin install` com o nome do plugin e do marketplace. Em uma sessão, este comando não instala imediatamente: ele abre o painel `/plugin` nos detalhes desse plugin para que você possa revisá-lo e escolher um escopo primeiro.

39 

40 ```text theme={null}

41 /plugin install commit-commands@claude-plugins-official

42 ```

43 

44 Para navegar, execute `/plugin` sem nome de plugin: o painel abre na aba **Discover**, que lista plugins de cada marketplace que você adicionou, e você pode digitar para pesquisar, depois pressionar **Enter** em um plugin para abrir seus detalhes.

45 </Step>

46 

47 <Step title="Revise o que o plugin adiciona">

48 O painel de detalhes mostra a descrição do plugin. Ele também pode mostrar:

49 

50 * **Will install**: os comandos, agents, skills, hooks e servidores MCP e LSP que o plugin adiciona.

51 * **Last updated**: mostrado para um plugin no marketplace oficial da Anthropic.

52 * **Context cost**: para um plugin no marketplace oficial da Anthropic, duas estimativas de tokens. **Every turn** é o que o plugin adiciona a cada mensagem que você envia, e **When invoked** é o que suas skills e agents adicionam uma vez que o Claude os carrega. As estimativas aparecem quando você abre o plugin nomeando seu marketplace, como o comando da etapa 1 faz, ou na aba **Marketplaces**. O painel de detalhes que você alcança na lista **Discover** não as mostra.

53 

54 Plugins de um marketplace local ou personalizado podem mostrar `Components will be discovered at installation` em vez disso.

55 

56 Um plugin pode executar hooks e servidores MCP, então leia o painel antes de instalar. Veja [Segurança e confiança de plugins](/docs/pt/plugins/security).

57 </Step>

58 

59 <Step title="Escolha um escopo">

60 Selecione uma das três opções de instalação:

61 

62 * **Install for you (user scope)**: você obtém o plugin em cada projeto nesta máquina

63 * **Install for all collaborators on this repository (project scope)**: ele é habilitado para todos que trabalham neste repositório

64 * **Install for you, in this repo only (local scope)**: você o obtém apenas neste repositório

65 

66 [Escolha um escopo de instalação](#choose-an-install-scope) diz qual arquivo de configurações cada um escreve e qual se aplica quando o mesmo plugin é definido em mais de um.

67 

68 Depois de selecionar um escopo, o Claude Code instala o plugin junto com qualquer dependência que ele declara e imprime um resumo de instalação.

69 </Step>

70 

71 <Step title="Leia o resumo de instalação">

72 A última frase do resumo diz se o plugin é utilizável nesta sessão:

73 

74 * **Active now**: `Plugin is now active.` Nenhuma recarga é necessária.

75 * **Reload needed**: `Run /reload-plugins to activate.` O painel fecha e o Claude Code executa essa recarga para você. Se a recarga [invalidasse o cache de prompt](/docs/pt/prompt-caching#enabling-or-disabling-a-plugin), ela avisa e deixa o plugin pendente. Execute `/reload-plugins --force` para ativá-lo mesmo assim, o que custa uma solicitação sem cache.

76 * **Load failed**: `The plugin couldn't be loaded`. Abra a aba **Errors** em `/plugin` para saber o motivo e depois veja [Após instalação: plugin não funcionando](/docs/pt/plugins/troubleshooting#plugin-installed-but-not-working).

77 </Step>

78 

79 <Step title="Confirme que o plugin funciona">

80 Digite `/` e procure as skills do plugin sob seu nome, na forma `/<plugin>:<skill>`. Para `commit-commands`, `/commit-commands:commit` aparece. Dois outros lugares listam o plugin também:

81 

82 * Abra a aba **Installed** em `/plugin`, que lista o plugin com seu escopo.

83 * No seu shell, execute `claude plugin list`, que imprime a mesma lista com linhas `Version`, `Scope` e `Status`.

84 

85 Se `/commit-commands:commit` não aparecer, veja [Após instalação: plugin não funcionando](/docs/pt/plugins/troubleshooting#plugin-installed-but-not-working).

86 </Step>

87 </Steps>

88 

89 Instalar de qualquer outro marketplace requer uma etapa extra primeiro: [adicione o marketplace](#add-a-marketplace). O Claude Code adiciona o marketplace oficial da Anthropic para você na primeira vez que você inicia uma sessão de terminal interativa, é por isso que o exemplo pula essa etapa. Se você encontrou um plugin em [claude.com/marketplace](https://claude.com/marketplace), seu botão **Claude Code** copia o comando de instalação em sua [forma de shell](#install-from-your-shell), `claude plugin install <name>@claude-plugins-official`.

90 </Tab>

91 

92 <Tab title="Desktop app">

93 Em uma sessão local ou SSH na aba **Code** do aplicativo desktop:

94 

95 <Steps>

96 <Step title="Abra o navegador de plugins">

97 Clique no botão **+** ao lado da caixa de prompt e selecione **Plugins**, depois **Add plugin**. O navegador de plugins abre com os plugins de seus marketplaces.

98 </Step>

99 

100 <Step title="Selecione o plugin">

101 Encontre `commit-commands` e selecione-o.

102 </Step>

103 

104 <Step title="Escolha um escopo">

105 Escolha um [escopo](#choose-an-install-scope): sua conta de usuário, este projeto ou apenas local.

106 </Step>

107 </Steps>

108 

109 Para habilitar, desabilitar ou desinstalar depois, use **+ > Plugins > Manage plugins**. O navegador de plugins não está disponível nas sessões na nuvem do aplicativo desktop. Veja [Instalar plugins no aplicativo desktop](/docs/pt/desktop#install-plugins).

110 </Tab>

111 

112 <Tab title="VS Code">

113 No painel do Claude Code no VS Code:

114 

115 <Steps>

116 <Step title="Abra Manage plugins">

117 Digite `/plugins` na caixa de prompt para abrir **Manage plugins**.

118 </Step>

119 

120 <Step title="Instale o plugin">

121 Na aba **Plugins**, procure por `commit-commands` e clique em **Install**. Se a aba não listar plugins, adicione `anthropics/claude-plugins-official` na aba **Marketplaces** primeiro.

122 </Step>

123 

124 <Step title="Escolha um escopo">

125 Escolha um [escopo](#choose-an-install-scope): **Install for you**, **Install for this project** ou **Install locally**.

126 </Step>

127 </Steps>

128 

129 Suas alterações se aplicam a sessões abertas sem reinicialização. Veja [Gerenciar plugins no VS Code](/docs/pt/vs-code#manage-plugins).

130 </Tab>

131 

132 <Tab title="Cloud session">

133 Uma [sessão na nuvem](/docs/pt/cloud-environments), incluindo [o navegador em claude.ai/code](/docs/pt/claude-code-on-the-web), não tem navegador de plugins e não carrega os plugins que você instalou em sua própria máquina ou os que o `.claude/settings.json` do seu repositório ativa. Para plugins que sua organização distribui através de configurações gerenciadas, veja [Gerenciar plugins para sua organização](/docs/pt/plugins/org).

134 

135 Veja [quais partes de sua configuração também estão disponíveis em uma sessão na nuvem](/docs/pt/cloud-environments#what-carries-over-from-your-setup) para o resto de sua configuração.

136 </Tab>

137</Tabs>

138 

139<h3 id="choose-an-install-scope">

140 Escolha um escopo de instalação

141</h3>

142 

143O escopo de instalação de um plugin decide quem obtém o plugin e qual arquivo de configurações o registra como habilitado:

144 

145* **User scope**: o plugin é habilitado para você em cada projeto nesta máquina. A entrada vai em `enabledPlugins` em `~/.claude/settings.json`.

146* **Project scope**: o plugin é habilitado para todos que trabalham neste repositório. A entrada vai em `.claude/settings.json`, que você faz commit.

147* **Local scope**: o plugin é habilitado para você apenas neste repositório. A entrada vai em `.claude/settings.local.json`.

148 

149Alguns plugins são definidos por seu autor para começar desligados, através do campo [`defaultEnabled`](/docs/pt/plugins/manifest-reference#defaultenabled). Tal plugin é instalado mas permanece desligado até que você o ative com `claude plugin enable <name>` no seu shell, ou na aba **Installed** de `/plugin` em uma sessão.

150 

151Quando o mesmo plugin é definido em vários escopos, a configuração local substitui a configuração do projeto, e a configuração do projeto substitui a configuração do usuário. Veja [Encontre onde um plugin é habilitado](/docs/pt/plugins/loading#find-where-a-plugin-is-enabled) para a regra completa.

152 

153O terminal, as sessões locais do aplicativo desktop e a extensão VS Code em um computador leem os mesmos arquivos de configurações, então um plugin que você instala em escopo de usuário em qualquer um deles está disponível nos outros dois.

154 

155<h3 id="other-places-you-run-claude-code">

156 JetBrains, execuções não-interativas e o Agent SDK

157</h3>

158 

159Alguns lugares onde você executa o Claude Code não têm navegador de plugins próprio:

160 

161* **JetBrains IDEs**: o plugin JetBrains executa o Claude Code no terminal do IDE, então use os passos da aba **Terminal** lá.

162* **`claude -p` e outras execuções não-interativas**: `/plugin` não executa, e o Claude responde `/plugin isn't available in this environment.` Plugins que você já instalou carregam. Instale e gerencie-os do seu shell com [comandos `claude plugin`](#install-from-your-shell).

163* **Agent SDK**: carregue plugins através da opção de plugin do SDK. Veja [Carregar plugins no Agent SDK](/docs/pt/agent-sdk/plugins).

164 

165Se o Claude Code relatar que um plugin habilitado no `.claude/settings.json` do repositório não está instalado, veja [Habilitado nas configurações do projeto mas não instalado](/docs/pt/plugins/loading#enabled-in-project-settings-but-not-installed).

166 

167<Tip>

168 Se você é um autor de plugin testando uma cópia do seu plugin em disco, inicie o Claude Code do seu shell com `--plugin-dir` para carregá-lo por uma sessão em vez de instalá-lo. Veja [Flags que carregam um plugin por uma sessão](/docs/pt/plugins/cli-reference#flags-that-load-a-plugin-for-one-session).

169</Tip>

170 

171<h3 id="plugins-from-your-claude-ai-account">

172 Plugins da sua conta claude.ai

173</h3>

174 

175Sua conta claude.ai é uma fonte separada de plugins, ao lado dos marketplaces que você instala:

176 

177* **O que chega**: cada plugin que você ativa para sua conta claude.ai, e cada plugin que sua organização ativa para seus membros. Em uma sessão de terminal eles sincronizam em segundo plano cada vez que você inicia o Claude Code enquanto conectado com essa conta; em sessões do Cowork eles baixam quando a sessão inicia.

178* **Onde você os vê**: em `/plugin` e `claude plugin list` sob o ID `<name>@synced`. Você pode desativar um em seu próprio escopo a menos que sua organização o exija.

179* **O que não vai para o outro lado**: plugins que você instala com `/plugin` ou `claude plugin install` permanecem nesta máquina e não são adicionados à sua conta claude.ai.

180 

181Para tempo de sincronização, requisitos de login e desativar sincronização, veja [Plugins sincronizados do claude.ai](/docs/pt/plugins/loading#synced-plugins).

182 

183<h3 id="install-from-your-shell">

184 Instalar do seu shell

185</h3>

186 

187Execute `claude plugin install` no seu shell para instalar um plugin sem iniciar uma sessão do Claude Code, por exemplo a partir de um script de configuração.

188 

189* **Scope**: escopo de usuário por padrão. Passe `--scope project` ou `--scope local` para alterá-lo.

190* **Quando os plugins carregam**: plugins que ele instala carregam na próxima vez que você inicia o Claude Code, ou quando você executa `/reload-plugins` em uma sessão que já está aberta.

191* **O marketplace deve ser adicionado primeiro**: em uma máquina onde ninguém abriu uma sessão interativa do Claude Code ainda, o marketplace oficial não está registrado, então um script que instala a partir dele executa `claude plugin marketplace add anthropics/claude-plugins-official` antes da instalação.

192 

193```bash theme={null}

194claude plugin install formatter@your-org --scope project

195```

196 

197O comando imprime `Successfully installed plugin: formatter@your-org (scope: project)` quando termina.

198 

199Alguns plugins instalam executando um comando que seu marketplace nomeia, chamado de [`command` source](/docs/pt/plugins/marketplace-reference#command-plugin-source). O Claude Code mostra esse comando e pede que você o aceite antes de executá-lo. Um script não tem ninguém para responder esse prompt, então passe `--yes` lá para aceitá-lo.

200 

201Para cada flag `claude plugin install`, veja [plugin install](/docs/pt/plugins/cli-reference#plugin-install).

202 

203<h2 id="add-a-marketplace">

204 Adicionar um marketplace

205</h2>

206 

207Você só precisa desta seção quando o plugin que deseja não está no marketplace oficial da Anthropic, por exemplo um que um colega publicou ou um do marketplace da comunidade da Anthropic.

208 

209Um marketplace é um catálogo de plugins, e o Claude Code precisa saber sobre um marketplace antes de você poder instalar a partir dele. Você adiciona um marketplace uma vez. Depois disso, seus plugins aparecem na aba **Discover** e instalam com `/plugin install <plugin>@<marketplace>` em uma sessão ou `claude plugin install <plugin>@<marketplace>` no seu shell, onde `<marketplace>` é o nome que o marketplace se registrou. Para fazer ambos em uma etapa, veja [Adicionar um marketplace e instalar em um comando](#add-a-marketplace-and-install-in-one-command).

210 

211Em uma sessão do Claude Code, execute `/plugin marketplace add` seguido pela fonte do marketplace: um repositório GitHub, um repositório git em qualquer host, um diretório ou arquivo local, ou um `marketplace.json` hospedado.

212 

213| Fonte | O que você digita | Exemplo |

214| :------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------- |

215| Repositório GitHub | `owner/repo`. Adicione `#ref` para fixar um branch ou tag. | `/plugin marketplace add anthropics/claude-code`, ou `/plugin marketplace add your-org/plugins#v1.2.0` para fixar a tag `v1.2.0` |

216| Repositório Git em qualquer host | A URL de clone completa. Adicione `#ref` para fixar um branch ou tag. | `/plugin marketplace add https://gitlab.example.com/your-group/your-marketplace.git#v1.0.0` |

217| Diretório ou arquivo local | Um caminho relativo ou absoluto para um diretório que contém `.claude-plugin/marketplace.json`, ou para o arquivo JSON em si. Comece um caminho relativo com `./` ou `../`, porque o Claude Code lê um `name/name` simples como um repositório GitHub. | `/plugin marketplace add ./my-marketplace` |

218| `marketplace.json` hospedado | Sua URL `https://` | `/plugin marketplace add https://example.com/marketplace.json` |

219 

220Do seu shell, `claude plugin marketplace add` aceita as mesmas fontes.

221 

222<Tip>

223 `/plugin market` também funciona como uma forma mais curta de `/plugin marketplace`.

224</Tip>

225 

226Inclua o prefixo `https://` em cada URL, ou use a forma `git@host:path` para SSH. Se você digitar um `gitlab.example.com/your-group/your-marketplace.git` simples, o Claude Code o lê como atalho GitHub `owner/repo` e o rejeita.

227 

228Quando o comando é bem-sucedido, ele imprime `Successfully added marketplace: <name>`, e os plugins do marketplace aparecem na aba **Discover** na próxima vez que você abrir `/plugin`, sem necessidade de recarga. Se falhar, combine a mensagem de erro em [Solucionar problemas de plugins](/docs/pt/plugins/troubleshooting#add-a-marketplace).

229 

230<h3 id="add-a-marketplace-and-install-in-one-command">

231 Adicionar um marketplace e instalar em um comando

232</h3>

233 

234Para instalar um plugin de um marketplace que você ainda não adicionou, execute `/plugin install` em uma sessão do Claude Code e nomeie a fonte do marketplace com `--marketplace`. Requer Claude Code v2.1.275 ou posterior.

235 

236```text theme={null}

237/plugin install deploy-helper --marketplace your-org/plugins

238```

239 

240A fonte aceita [as mesmas formas que `/plugin marketplace add`](#add-a-marketplace), como GitHub `owner/repo`, uma URL git ou um caminho local, exceto que não pode conter espaços. Dê o nome do plugin por si só, sem um sufixo `@marketplace`.

241 

242Se você ainda não adicionou esse marketplace, o Claude Code mostra a fonte que resolveu e pede que você confirme antes de adicioná-lo. Uma vez que o marketplace é adicionado, os detalhes do plugin abrem e você escolhe um [escopo de instalação](#install-a-plugin). Se a fonte corresponder a um marketplace que você já adicionou, o Claude Code pula a confirmação e abre os detalhes do plugin nesse marketplace.

243 

244<h3 id="add-a-private-marketplace">

245 Adicionar um marketplace privado

246</h3>

247 

248Um marketplace privado é um em um repositório que você precisa de credenciais para clonar, no GitHub ou em qualquer outro host git. Você o adiciona com o mesmo comando `/plugin marketplace add` ou `claude plugin marketplace add` que um público. O Claude Code o clona com as credenciais git já em sua máquina e nunca solicita, então cada forma de conexão tem um requisito:

249 

250* **HTTPS**: seus ajudantes de credencial git se aplicam, então o acesso que você configurou com `gh auth login`, o Keychain do macOS ou `git-credential-store` funciona. Prompts interativos são suprimidos, então um host que você nunca autenticou falha em vez de pedir uma senha.

251* **SSH**: o host já deve estar em seu arquivo `known_hosts` e a chave deve funcionar sem um prompt de frase-passe, porque os prompts de impressão digital do host e frase-passe também são suprimidos.

252* **Atalho GitHub `owner/repo`**: o Claude Code verifica se sua chave SSH autentica em `github.com`, depois clona sobre SSH se fizer e sobre HTTPS se não fizer. Defina [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/pt/env-vars#variables) para pular essa verificação e sempre clonar sobre HTTPS.

253 

254As mesmas credenciais se aplicam quando você executa `/plugin install`, `/plugin marketplace update` e `claude plugin update`.

255 

256Em um host GitHub Enterprise Server, veja [Marketplaces de plugins no GHES](/docs/pt/github-enterprise-server#plugin-marketplaces-on-ghes) para as credenciais que cada operação precisa.

257 

258Se sua organização registra o marketplace para você através de configurações gerenciadas, você não o adiciona. Veja [Pré-instalar e exigir plugins](/docs/pt/plugins/org#pre-install-and-require-plugins).

259 

260<h3 id="add-from-claude-ai">

261 Adicionar um marketplace do claude.ai

262</h3>

263 

264Em sessões de terminal onde [plugins sincronizam da sua conta claude.ai](/docs/pt/plugins/loading#synced-plugins), claude.ai também pode listar marketplaces de plugins para você, como a biblioteca de plugins da sua organização e seus uploads próprios do claude.ai. Você adiciona um desses pelo seu nome em vez de por uma fonte. Adicionar um marketplace do claude.ai requer Claude Code v2.1.273 ou posterior.

265 

266Adicione um marketplace do claude.ai do painel `/plugin` ou do seu shell:

267 

268* **Dentro de uma sessão**: execute `/plugin` e vá para a aba **Marketplaces**, que lista os marketplaces do claude.ai. Selecione um lá para adicioná-lo.

269* **Do seu shell**: execute `claude plugin marketplace list`, que os imprime em uma seção `From claude.ai:`. Depois execute `claude plugin marketplace add` com a flag `--claudeai` e o nome mostrado na lista.

270 

271Por exemplo, este comando adiciona um marketplace nomeado `claudeai-organization-library`:

272 

273```bash theme={null}

274claude plugin marketplace add --claudeai claudeai-organization-library

275```

276 

277O Claude Code registra o marketplace sob um nome local que começa com `claudeai-`, derivado do nome que claude.ai o lista. Por exemplo, um marketplace listado como "Organization library" se torna `claudeai-organization-library`. Instale seus plugins por esse nome, por exemplo com `claude plugin install <plugin>@claudeai-organization-library`.

278 

279Se você sair, ou entrar em uma organização claude.ai diferente, o marketplace permanece configurado mas não mostra plugins, e os plugins que você já instalou a partir dele continuam carregando.

280 

281A seção `From claude.ai:` também pode listar marketplaces baseados em git compartilhados através do claude.ai, e imprime uma fonte para cada um desses. Adicione-os por essa fonte como em [Adicionar um marketplace](#add-a-marketplace), não com `--claudeai`.

282 

283<h2 id="manage-installed-plugins">

284 Gerenciar plugins instalados

285</h2>

286 

287A aba **Installed** em `/plugin` lista seus plugins com ações para habilitar, desabilitar, atualizar ou desinstalar cada um. Em uma sessão do Claude Code, execute `/plugin` e pressione **Tab** para alcançá-la, ou execute `/plugin enable`, `/plugin disable` ou `/plugin uninstall` para abrir o painel e fazer essa alteração lá. Plugins desabilitados são agrupados sob um cabeçalho recolhido na parte inferior da lista. Use estas teclas na lista:

288 

289* Digite para filtrar por nome ou descrição.

290* Pressione **Space** para habilitar ou desabilitar o plugin selecionado, e **f** para favoritá-lo.

291* Pressione **Enter** para abrir os detalhes de um plugin. O menu lá oferece **Disable plugin** ou **Enable plugin**, **Update now** e **Uninstall**. Plugins que aceitam configurações também oferecem **Configure options**.

292 

293A aba também pode mostrar plugins em escopo **Managed**. Sua organização os instalou através de [configurações gerenciadas](/docs/pt/settings#settings-files), e você não pode habilitá-los, desabilitá-los ou desinstalá-los aqui.

294 

295Para um plugin sincronizado que sua organização exige no claude.ai, veja [Gerenciar plugins sincronizados do claude.ai](#manage-plugins-synced-from-claude-ai).

296 

297Quando você fecha o painel `/plugin` com alterações pendentes que você fez nele, o Claude Code executa `/reload-plugins` para você aplicá-las. Se a recarga [invalidasse o cache de prompt](/docs/pt/prompt-caching#enabling-or-disabling-a-plugin), ela avisa e deixa as alterações pendentes. Execute `/reload-plugins --force` para aplicá-las mesmo assim.

298 

299<h3 id="manage-plugins-synced-from-claude-ai">

300 Gerenciar plugins sincronizados do claude.ai

301</h3>

302 

303A aba **Installed** em `/plugin` também lista os [plugins sincronizados da sua conta claude.ai](/docs/pt/plugins/loading#synced-plugins), com `synced` como sua fonte. Plugins sincronizados aparecem em sessões de terminal no Claude Code v2.1.273 ou posterior.

304 

305* **Habilitar ou desabilitar**: use a aba **Installed**, a menos que sua organização tenha marcado o plugin como obrigatório.

306* **Remover**: desative o plugin no claude.ai.

307 

308Quando o Claude Code sincroniza um plugin adicionado, atualizado ou removido em uma sessão interativa, você vê `Plugins changed. Run /reload-plugins to activate.` Execute `/reload-plugins` para carregar a alteração nessa sessão, ou deixe para a próxima vez que você iniciar o Claude Code.

309 

310<h3 id="uninstall-a-plugin-the-project-enables">

311 Desinstalar um plugin que o projeto habilita

312</h3>

313 

314Quando você escolhe **Uninstall** para um plugin que o `.claude/settings.json` deste repositório habilita, seja na aba **Installed** ou com `/plugin uninstall`, o Claude Code pergunta se deve desabilitá-lo para você ou desinstalá-lo para todos:

315 

316* **Disable for me**: pressione **y**. O Claude Code escreve `false` para o plugin em seu `.claude/settings.local.json` e o deixa instalado para o projeto.

317* **Uninstall for everyone**: pressione **u**. O Claude Code remove o plugin do `.claude/settings.json` compartilhado.

318 

319<h3 id="see-what-an-installed-plugin-adds-to-your-sessions">

320 Veja o que um plugin instalado adiciona às suas sessões

321</h3>

322 

323No seu shell, execute `claude plugin details <name>` para um plugin instalado. A linha `Always-on` é o número de tokens que o plugin adiciona a cada sessão onde está habilitado, e as linhas por componente mostram qual skill ou agent contribui mais. Para a saída completa e o que cada figura significa, veja [Medir o que um plugin custa](/docs/pt/plugins/measure#measure-what-a-plugin-costs).

324 

325<h3 id="find-plugins-you-no-longer-use">

326 Encontre plugins que você não usa mais

327</h3>

328 

329Na aba **Installed** em `/plugin`, plugins que você instalou e não usou recentemente aparecem sob um cabeçalho **Not used recently**, e os detalhes de cada plugin mostram uma linha **Last used**. Use esse cabeçalho e essa linha para encontrar plugins que ainda adicionam custo de inicialização e contexto, depois desabilite ou desinstale-os.

330 

331<h3 id="plugins-with-dependencies">

332 Plugins com dependências

333</h3>

334 

335Um plugin pode declarar outros plugins dos quais depende. Quando você instala, desabilita ou desinstala tal plugin de um marketplace, o Claude Code age sobre essas dependências também:

336 

337* **Install**: o Claude Code também instala e habilita as dependências declaradas do plugin no mesmo escopo. A mensagem de sucesso as lista.

338* **Enable**: o Claude Code também habilita as dependências do plugin que estão instaladas mas desabilitadas. Se uma dependência declarada não está instalada, a habilitação falha e a mensagem diz para instalá-la primeiro.

339* **Disable**: quando outro plugin habilitado ainda precisa do que você nomeou, o Claude Code recusa e imprime um comando encadeado que desabilita ambos na ordem correta.

340* **Uninstall**: dependências auto-instaladas permanecem até que você execute `claude plugin prune` no seu shell; veja [plugin prune](/docs/pt/plugins/cli-reference#plugin-prune).

341 

342Se você carregou o plugin com `--plugin-dir` em vez disso, veja [Teste um plugin e sua dependência localmente](/docs/pt/plugins/dependencies#test-a-plugin-and-its-dependency-locally).

343 

344<h3 id="manage-plugins-from-your-shell">

345 Gerenciar plugins do seu shell

346</h3>

347 

348Você também pode gerenciar plugins sem iniciar uma sessão do Claude Code. No seu shell, execute `claude plugin install`, `enable`, `disable` ou `uninstall` como comandos de terminal ordinários; eles alteram as mesmas configurações que o painel `/plugin` faz. Cada um aceita `--scope` para direcionar um escopo, e usa um escopo padrão quando você o omite:

349 

350* `enable` e `disable` agem no escopo mais específico cujas configurações já listam o plugin.

351* `install` e `uninstall` agem no escopo de usuário.

352 

353Por exemplo, estes comandos desabilitam e reabilitam um plugin, depois o desinstalam no escopo do projeto:

354 

355```bash theme={null}

356claude plugin disable formatter@your-org

357claude plugin enable formatter@your-org

358claude plugin uninstall formatter@your-org --scope project

359```

360 

361<h2 id="keep-plugins-updated">

362 Manter plugins atualizados

363</h2>

364 

365Plugins atualizam automaticamente quando o marketplace do qual vieram tem auto-update ativado. Depois que uma sessão inicia, o Claude Code atualiza esses marketplaces e atualiza as cópias em disco dos plugins que você instalou a partir deles.

366 

367A sessão em execução mantém as versões que já carregou. Após uma atualização, você vê `Plugin updated: <name> · Run /reload-plugins to apply`, e a próxima sessão carrega as novas versões automaticamente.

368 

369Estes são os padrões de auto-update para cada tipo de marketplace:

370 

371* **On by default**: `claude-plugins-official` e os outros [nomes de marketplace oficial](/docs/pt/plugins/security#official-marketplace-names) exceto `knowledge-work-plugins` e `first-party-plugins`, mais [marketplaces adicionados do claude.ai](#add-from-claude-ai).

372* **Off by default**: cada outro marketplace, incluindo o marketplace da comunidade, marketplaces de terceiros e marketplaces de desenvolvimento local.

373 

374Para quando auto-update executa, quais plugins ele pula e as variáveis de ambiente que o desativam, veja [Quando auto-update executa](/docs/pt/plugins/loading#when-auto-update-runs).

375 

376<h3 id="turn-auto-update-on-or-off-for-a-marketplace">

377 Ativar ou desativar auto-update para um marketplace

378</h3>

379 

380Em uma sessão do Claude Code, execute `/plugin` e vá para a aba **Marketplaces**. Selecione o marketplace, depois selecione **Enable auto-update** ou **Disable auto-update**.

381 

382<h3 id="update-one-plugin-now">

383 Atualizar um plugin agora

384</h3>

385 

386Em uma sessão, abra o plugin na aba **Installed** em `/plugin` e selecione **Update now**, ou no seu shell execute `claude plugin update <plugin>@<marketplace>`.

387 

388<h3 id="auto-update-from-a-private-marketplace">

389 Auto-update de um marketplace privado

390</h3>

391 

392Para um marketplace privado, veja [O que auto-update em segundo plano faz com credenciais](/docs/pt/plugins/host-marketplace#what-background-auto-update-does-with-credentials) para como auto-updates em segundo plano autenticam sobre SSH e HTTPS, e [Solucionar problemas de plugins](/docs/pt/plugins/troubleshooting#add-a-marketplace) para as mensagens que você vê quando falham.

393 

394<h2 id="manage-marketplaces">

395 Gerenciar marketplaces

396</h2>

397 

398A aba **Marketplaces** em `/plugin` lista cada marketplace que você registrou, junto com sua fonte. Selecione um para navegar seus plugins, atualizar sua listagem, ativar ou desativar auto-update, ou removê-lo.

399 

400Você também pode listar, atualizar e remover marketplaces com comandos, do seu shell ou dentro de uma sessão:

401 

402| Ação | No seu shell | Dentro de uma sessão |

403| :------------------------------------- | :---------------------------------------- | :---------------------------------- |

404| Listar marketplaces | `claude plugin marketplace list` | `/plugin marketplace list` |

405| Atualizar a listagem de um marketplace | `claude plugin marketplace update <name>` | `/plugin marketplace update <name>` |

406| Remover um marketplace | `claude plugin marketplace remove <name>` | `/plugin marketplace remove <name>` |

407 

408Quando você remove um marketplace, o Claude Code desinstala cada plugin que você instalou a partir dele e remove suas entradas `enabledPlugins` de seus arquivos de configurações. A aba **Marketplaces** nomeia esses plugins antes de pedir que você confirme.

409 

410<h2 id="next-steps">

411 Próximos passos

412</h2>

413 

414* [Marketplaces da Anthropic](/docs/pt/plugins/anthropic-marketplaces): como os marketplaces oficial, da comunidade e de demonstração diferem e onde navegar cada um

415* [Referência de carregamento de plugins](/docs/pt/plugins/loading): por que um plugin carregou, não carregou ou não mudou após uma atualização

416* [Segurança e confiança de plugins](/docs/pt/plugins/security): o que revisar antes de instalar um plugin de um marketplace que você não conhece

417* [Solucionar problemas de plugins](/docs/pt/plugins/troubleshooting): instalar e mensagens de erro de marketplace com suas correções

418* [Criar um plugin](/docs/pt/plugins/create): construa o seu próprio

plugins/loading.md +424 −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# Referência de carregamento de plugins

6 

7> Rastreie de onde Claude Code carrega cada plugin, qual arquivo de configurações decide se ele carrega e por que uma atualização não mudou nada.

8 

9Use esta página quando um plugin não carregou, carregou uma cópia diferente da esperada, ou não pegou uma atualização, e você quer ver qual fonte, escopo de configurações ou arquivo em disco decidiu isso. Ela fornece as regras que Claude Code aplica quando uma sessão inicia e cada vez que você executa `/reload-plugins`. Você também pode pedir ao Claude para ler esta página e diagnosticar sua configuração.

10 

11<Note>

12 Estes casos são cobertos em outras páginas:

13 

14 * **Passos de instalação, habilitação, desabilitação e atualização**: veja [Instalar e gerenciar plugins](/docs/pt/plugins/install)

15 * **Você tem uma mensagem de erro específica**: veja [Solucionar problemas de plugins](/docs/pt/plugins/troubleshooting)

16</Note>

17 

18Comece com [Verificar qual estágio um plugin atingiu](#check-which-stage-a-plugin-reached) para os três estágios pelos quais um plugin instalado passa, ou vá para a seção que corresponde ao que você está vendo:

19 

20* Um plugin que você desligou ainda carrega: [Encontrar onde um plugin está habilitado](#find-where-a-plugin-is-enabled)

21* Uma atualização não mudou nada: [Versões e atualizações](#versions-and-updates)

22* Você está olhando para os arquivos sob `~/.claude/plugins/`: [Encontrar plugins em disco](#find-plugins-on-disk)

23* Um plugin `--plugin-dir` não carregou, ou um plugin com o mesmo nome carregou em seu lugar: [Conflitos de nome](#name-conflicts)

24 

25<h2 id="check-which-stage-a-plugin-reached">

26 Verificar qual estágio um plugin atingiu

27</h2>

28 

29Uma entrada `enabledPlugins` se torna um plugin que você pode usar em estágios: suas configurações a declaram, Claude Code a busca para disco, e a sessão em execução a carrega. Quando um plugin não se comporta como um arquivo de configurações sugere, verifique qual estágio ele atingiu:

30 

31* **Declarado, em configurações**: `enabledPlugins` diz quais plugins devem estar ligados, e `extraKnownMarketplaces` diz quais marketplaces devem existir. Quando você executa `claude plugin marketplace add`, Claude Code escreve o marketplace para `extraKnownMarketplaces` em suas configurações de usuário, bem como para disco

32* **Buscado, em disco sob `~/.claude/plugins/`**: os registros do que Claude Code buscou, e os arquivos buscados em si:

33 * `known_marketplaces.json` registra cada marketplace que Claude Code buscou, com sua `source`, `installLocation`, `lastUpdated` e `autoUpdate`. Há um `known_marketplaces.json` por usuário, então um marketplace que você adiciona em um projeto está disponível em cada projeto

34 * `installed_plugins.json` registra cada instalação com seu `scope`, `installPath` e `version`

35 * `cache/` contém os arquivos do plugin

36* **Carregado, na sessão em execução**: o conjunto de plugins que Claude Code carregou na inicialização ou no último `/reload-plugins`. Mudanças em configurações ou em disco não chegam a esta camada até você executar `/reload-plugins` ou iniciar uma nova sessão. É por isso que `claude plugin update` termina com `Restart to apply changes.` e atualizações em segundo plano o solicitam com `Run /reload-plugins to apply`

37 

38<h3 id="plugins-and-marketplaces-that-aren’t-on-disk-at-session-start">

39 Plugins e marketplaces que não estão em disco no início da sessão

40</h3>

41 

42Plugins carregam no início da sessão a partir de `installed_plugins.json` e do cache sem usar a rede. Após a sessão iniciar, Claude Code verifica os marketplaces declarados em segundo plano:

43 

44* **Um marketplace que configurações declaram mas `known_marketplaces.json` não tem**: Claude Code o clona, depois recarrega plugins e baixa plugins habilitados que ainda não estão em cache

45* **Um marketplace declarado cuja fonte mudou em configurações**: Claude Code o busca novamente da nova fonte e mostra `Plugins changed. Run /reload-plugins to activate.`

46 

47Um plugin habilitado que nenhum caminho buscou e que não tem diretório de cache utilizável mostra `Plugin "<name>" not cached at <path>` na aba **Errors** do `/plugin`, e `claude plugin list` adiciona `— run /plugin to refresh` à mesma linha. Para a correção, veja [`Plugin "<name>" not cached at <path>`](/docs/pt/plugins/troubleshooting#plugin-not-cached-at).

48 

49<h2 id="find-where-a-plugin-came-from">

50 Encontrar de onde um plugin veio

51</h2>

52 

53Todo plugin tem um id da forma `<name>@<origin>`, que é o que você vê em arquivos de configurações e em `claude plugin list --json`. A parte após `@` diz onde Claude Code encontrou o plugin:

54 

55| ID termina em | Como o plugin chegou lá | Como você o liga ou desliga |

56| :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

57| `@<marketplace>` | Você o instalou a partir de um marketplace que adicionou | `"<name>@<marketplace>": true` ou `false` sob `enabledPlugins` em um arquivo de configurações |

58| `@inline` | Você iniciou Claude Code com `--plugin-dir` ou `--plugin-url`, definiu [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/pt/env-vars#variables), ou um aplicativo Agent SDK passou a opção `plugins`. Ele carrega apenas para essa sessão | Ligado para a sessão a menos que o manifesto defina `defaultEnabled: false` ou um arquivo de configurações defina `"<name>@inline": false` |

59| `@skills-dir` | Você salvou um diretório de plugin que tem um `.claude-plugin/plugin.json` sob `~/.claude/skills/` ou o `.claude/skills/` do projeto | O `defaultEnabled` do manifesto, a menos que um arquivo de configurações defina `"<name>@skills-dir"` como `true` ou `false` |

60| `@synced` | Você ou sua organização o ligou para sua conta claude.ai, e Claude Code o [baixou](#synced-plugins) | Ligado a menos que o manifesto defina `defaultEnabled: false` ou um arquivo de configurações defina `"<name>@synced": false`. Um plugin que sua organização marca como obrigatório carrega independentemente |

61 

62Para um plugin de marketplace, `<name>` é o nome da entrada em `marketplace.json`; para `@inline` e `@skills-dir` é o `name` no manifesto do plugin.

63 

64Os nomes de origem nesta tabela são reservados, então nenhum marketplace pode ser nomeado `inline`, `skills-dir` ou `synced`.

65 

66<h3 id="entry-name-and-manifest-name">

67 Nome da entrada e nome do manifesto

68</h3>

69 

70Um plugin de marketplace tem dois nomes, e eles podem diferir:

71 

72* **O nome da entrada em `marketplace.json`**: a chave de instalação e habilitação. É o que você escreve em `enabledPlugins`, o que o diretório de cache é nomeado, e o que `claude plugin list` mostra

73* **O `name` no manifesto**: sob o qual os componentes do plugin são nomeados, e o que [conflitos de nome](#name-conflicts) comparam

74 

75<h3 id="plugins-shared-through-a-repository">

76 Plugins compartilhados através de um repositório

77</h3>

78 

79Para compartilhar um plugin através de um repositório, liste-o sob `enabledPlugins` em `.claude/settings.json` ou coloque-o sob `.claude/skills/`. Claude Code não verifica o diretório `.claude/plugins/` de um projeto.

80 

81Uma sessão em nuvem não adiciona os marketplaces que um repositório lista sob [`extraKnownMarketplaces`](/docs/pt/settings-reference#extraknownmarketplaces), porque isso requer o diálogo de confiança do workspace, que uma sessão em nuvem nunca mostra.

82 

83Um plugin de diretório de skills com escopo de projeto carrega apenas a partir do `.claude/skills/` do [diretório de trabalho primário](/docs/pt/permissions#working-directories) da sessão, e apenas depois que você aceita o [diálogo de confiança do workspace](/docs/pt/permissions#what-runs-before-you-trust-a-folder) para essa pasta. Ele não [procura diretórios pai até a raiz do repositório](/docs/pt/skills#discovery-from-parent-and-nested-directories) da forma que skills e comandos simples fazem. Se você iniciar a partir de um subdiretório, um plugin na raiz do repositório não carrega. Inicie a partir da raiz do repositório em vez disso, ou [mova a sessão para lá com `/cd`](/docs/pt/permissions#move-the-session-to-another-directory) na v2.1.246 ou posterior.

84 

85Um plugin com escopo de projeto é verificado no repositório e chega a cada colaborador que o clona. Como esse conteúdo vem do repositório em vez de você, ele carrega apenas após a mesma verificação de confiança que se aplica às regras de permissão de projeto em `.claude/settings.json`. Confiar em uma pasta pai ou executar com `-p` não é suficiente. Componentes que executam código são ainda mais restritos:

86 

87* Servidores MCP que ele declara passam pela [mesma aprovação por servidor](/docs/pt/mcp) que um `.mcp.json` de projeto

88* Servidores MCP que ele declara como um [pacote MCP](/docs/pt/plugins/manifest-reference#mcpservers), um arquivo `.mcpb` ou `.dxt`, ou de um arquivo fora do diretório do plugin são ignorados. Declare-os inline ou em um `.mcp.json` dentro do diretório do plugin

89* [Monitores em segundo plano](/docs/pt/plugins/components#monitors) não carregam

90 

91Plugins com escopo pessoal não têm nenhuma dessas restrições.

92 

93Para como escrever plugins `--plugin-dir` e de diretório de skills, veja [Criar plugins](/docs/pt/plugins/create).

94 

95<h3 id="synced-plugins">

96 Plugins sincronizados de claude.ai

97</h3>

98 

99Um plugin que você liga para sua conta claude.ai também carrega em Claude Code, ao lado dos plugins que você instala a partir de marketplaces. Isso inclui plugins que sua organização liga para seus membros. Cada um desses plugins carrega como `<name>@synced`, sem marketplace e sem [registro de instalação](#check-which-stage-a-plugin-reached).

100 

101Em sessões de terminal, as skills, agentes, hooks, servidores MCP e servidores LSP de um plugin sincronizado todos carregam, com a mesma confiança que um plugin de marketplace que você instalou.

102 

103Para os componentes que Cowork carrega, veja [Plugins em claude.ai e em Cowork](https://claude.com/docs/plugins/overview) em claude.com.

104 

105Plugins sincronizados carregam em sessões Cowork e em sessões de terminal onde você se conecta com sua conta claude.ai:

106 

107* **[Cowork](https://claude.com/product/cowork)**: Claude Code os baixa para o ambiente próprio da sessão quando a sessão inicia

108* **Sessões de terminal**: cada vez que você inicia Claude Code, ele sincroniza uma vez em segundo plano, baixando plugins novos e atualizados e removendo aqueles que você ou sua organização desligou. A sincronização em sessões de terminal requer Claude Code v2.1.273 ou posterior

109 

110<h4 id="sync-timing-in-terminal-sessions">

111 Tempo de sincronização em sessões de terminal

112</h4>

113 

114Como a sincronização de terminal é executada em segundo plano, ela pode terminar após sua sessão ter iniciado. Quando ela adiciona, atualiza ou remove um plugin sincronizado em uma sessão interativa, você vê `Plugins changed. Run /reload-plugins to activate.` Execute `/reload-plugins` para carregar a mudança nessa sessão, ou deixe para a próxima vez que você iniciar Claude Code.

115 

116Se você habilitar um plugin em claude.ai enquanto uma sessão está em execução, o plugin baixa na próxima vez que você iniciar Claude Code.

117 

118<h4 id="sign-in-requirements-for-terminal-sync">

119 Requisitos de conexão para sincronização de terminal

120</h4>

121 

122Em seu terminal, plugins sincronizam apenas em sessões onde você se conecta com sua conta claude.ai.

123 

124Se você se conectou em uma versão anterior de Claude Code, essa conexão não cobre plugins até Claude Code renová-la em segundo plano. Para obter acesso mais cedo, execute `/login` novamente. A sincronização de plugins então inicia na próxima vez que você iniciar Claude Code.

125 

126<h4 id="control-which-synced-plugins-load">

127 Controlar quais plugins sincronizados carregam

128</h4>

129 

130Você pode desligar plugins sincronizados um de cada vez, exceto um plugin que sua organização exige, ou desligar cada plugin sincronizado na máquina:

131 

132* **Um plugin**: `claude plugin disable <name>@synced` em seu shell e a aba **Installed** do `/plugin` em uma sessão ambos salvam `"<name>@synced": false` em seu [`enabledPlugins`](/docs/pt/settings-reference#enabledplugins) de nível de usuário. Para manter o plugin fora de um projeto em cada ambiente, defina a mesma chave no `.claude/settings.json` comprometido do projeto

133* **Cada plugin sincronizado em uma máquina**: defina [`syncClaudeAiPlugins`](/docs/pt/settings-reference#syncclaudeaiplugins) como `false` em suas configurações de usuário, ou sua organização o define em [configurações gerenciadas](/docs/pt/managed-settings). Claude Code para de baixar, e na próxima vez que você o inicia, ele move os plugins que já sincronizou para `~/.claude/plugins/.trash/` e não os carrega mais. Se sua organização desligar Skills em claude.ai, plugins param de sincronizar também

134* **Um plugin que sua organização exige**: um plugin que sua organização marca como obrigatório em claude.ai carrega mesmo se você o desabilitou anteriormente. `claude plugin disable` o recusa com `Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.`, e `claude plugin list` o marca `required by your org`

135 

136Para remover um plugin em claude.ai, veja [Gerenciar plugins instalados](/docs/pt/plugins/install#manage-installed-plugins).

137 

138<h2 id="find-where-a-plugin-is-enabled">

139 Encontrar onde um plugin está habilitado

140</h2>

141 

142Você pode definir uma entrada `enabledPlugins` em qualquer uma de seis fontes. A tabela as lista de precedência mais baixa para mais alta, e quem cada uma se aplica. Para os próprios arquivos de configurações, veja [Arquivos de configurações e quem eles afetam](/docs/pt/settings#where-settings-live).

143 

144| Fonte | Onde você a define | Alcança |

145| :---------- | :------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------- |

146| `--add-dir` | `.claude/settings.json` ou `.claude/settings.local.json` em um diretório que você passa com `--add-dir` | Apenas esta sessão. Apenas um valor `true` tem efeito, e todas as outras fontes o substituem |

147| `user` | `~/.claude/settings.json` | Você, em cada projeto |

148| `project` | `.claude/settings.json` | Todos que clonam o repositório |

149| `local` | `.claude/settings.local.json` | Você, apenas neste repositório |

150| `flag` | O valor `--settings` que você passa no lançamento | Apenas esta sessão |

151| `managed` | [Configurações gerenciadas](/docs/pt/managed-settings) | Cada usuário que a política cobre. `true` força-habilita e `false` bloqueia, e nenhuma outra fonte as substitui |

152 

153Essas fontes se mesclam chave por chave. Para cada id de plugin, o valor que se aplica é o de fonte de precedência mais alta que menciona o id. Uma fonte que não menciona o id deixa o valor da fonte de precedência mais baixa em efeito.

154 

155<h3 id="disabled-in-user-settings-but-still-loads">

156 Desabilitado em configurações de usuário mas ainda carrega

157</h3>

158 

159Se você definir um plugin como `false` em `~/.claude/settings.json` e ele ainda carregar, um `true` em uma fonte de precedência mais alta o está substituindo. A linha do plugin em `claude plugin list` e em `/plugin` mostra `Disabled in ~/.claude/settings.json but still loads — project settings enable it, which overrides your user setting`. A mensagem nomeia a fonte que o substituiu: `project`, `project, gitignored` para `.claude/settings.local.json`, `cli flag` ou `managed`.

160 

161Para optar por não participar de um plugin habilitado por projeto em sua máquina, defina o id como `false` em `.claude/settings.local.json`, que tem precedência mais alta que o arquivo do projeto.

162 

163<h3 id="enabled-in-project-settings-but-not-installed">

164 Habilitado em configurações de projeto mas não instalado

165</h3>

166 

167Quando o único `true` de um plugin está em `.claude/settings.json` do projeto, Claude Code não o busca para uma máquina onde ele não está instalado, a menos que sua entrada de marketplace tenha uma [fonte de caminho relativo](/docs/pt/plugins/marketplace-reference#plugin-sources) ou um [diretório seed](/docs/pt/plugins/org#seed-containers-and-ci) já o contenha. Em vez disso, a aba **Errors** do `/plugin` mostra `Plugin "<name>" is enabled in project settings but isn't installed here`.

168 

169Um plugin de caminho relativo não precisa de registro de instalação porque carrega do próprio marketplace.

170 

171Claude Code busca um plugin com uma fonte externa apenas quando uma dessas fontes o define como `true`:

172 

173* Suas configurações de usuário

174* Um `.claude/settings.local.json` que git não rastreia

175* O sinalizador `--settings`

176* Configurações gerenciadas

177 

178<h2 id="find-plugins-on-disk">

179 Encontrar plugins em disco

180</h2>

181 

182Claude Code mantém arquivos de plugin e registros de estado sob uma raiz de plugins, que é `~/.claude/plugins` a menos que você defina [`CLAUDE_CODE_PLUGIN_CACHE_DIR`](/docs/pt/env-vars). Cada caminho na tabela é relativo a essa raiz.

183 

184| Caminho | O que ele contém |

185| :--------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

186| `cache/<marketplace>/<plugin>/<version>/` | Um diretório por versão instalada de um plugin de marketplace. `<plugin>` é o nome da entrada de marketplace e `<version>` é a [versão resolvida](#versions-and-updates). `${CLAUDE_PLUGIN_ROOT}` aponta para este diretório |

187| `data/<plugin-id>/` | O diretório persistente do plugin, exposto como `${CLAUDE_PLUGIN_DATA}`. Para como `<plugin-id>` é formado, veja [Variáveis de caminho e dados persistentes](/docs/pt/plugins/components#path-variables-and-persistent-data). Claude Code o cria quando um componente de plugin o usa pela primeira vez e o mantém através de atualizações. Claude Code o deleta quando você desinstala o plugin de seu último escopo, a menos que você passe `--keep-data` |

188| `marketplaces/<name>/` | O clone ou download de um marketplace adicionado do GitHub, outro host Git ou uma URL. Um marketplace adicionado de uma fonte local `file` ou `directory` não tem cópia aqui, e seu `installLocation` em `known_marketplaces.json` é o caminho que você forneceu |

189| `synced/` | Os plugins que Claude Code [sincronizou de sua conta claude.ai](#synced-plugins) |

190| `.trash/` | Plugins que a sincronização claude.ai removeu, como depois que você desliga um em claude.ai ou para de sincronizar |

191| `installed_plugins.json` e `known_marketplaces.json` | Os registros do que Claude Code instalou e quais marketplaces ele buscou, descritos sob [Verificar qual estágio um plugin atingiu](#check-which-stage-a-plugin-reached). Um [marketplace hospedado em claude.ai](/docs/pt/plugins/install#add-from-claude-ai) é registrado em `known_marketplaces_claudeai.json` em vez disso |

192| `flagged-plugins.json` | Plugins que Claude Code desinstalou porque seus marketplaces os removeram da lista. Eles aparecem na seção **Flagged** do `/plugin`; veja [Hospedar um marketplace](/docs/pt/plugins/host-marketplace) |

193 

194Como `${CLAUDE_PLUGIN_ROOT}` aponta para um diretório de versão, o caminho raiz de um plugin muda a cada versão. Mantenha os arquivos duráveis de um plugin em `${CLAUDE_PLUGIN_DATA}` em vez disso.

195 

196<h3 id="in-place-and-copied-plugins">

197 Plugins in-place e copiados

198</h3>

199 

200Claude Code carrega alguns plugins in-place de onde você os mantém e copia o resto para o cache, de acordo com sua origem:

201 

202* **Plugins `--plugin-dir` e de diretório de skills**: o diretório carrega in-place e nunca é copiado. Um arquivo `--plugin-url` ou um `.zip` de `--plugin-dir` é extraído para um diretório temporário de sessão primeiro

203* **Plugins de caminho relativo em um marketplace que você adicionou de um diretório local**: o plugin carrega in-place de seu caminho dentro da pasta do marketplace. Suas edições no diretório de origem têm efeito no próximo início de sessão ou `/reload-plugins`, e você não precisa aumentar a versão. Os processos de hook do plugin e servidores MCP e LSP recebem um `CLAUDE_PLUGIN_ROOT` que aponta para o diretório de origem. Para suas dependências de pacote Node.js, veja [Quando a instalação de dependência é executada](#when-the-dependency-install-runs)

204* **Plugins de fonte `command` em [modo de link](/docs/pt/plugins/marketplace-reference#command-plugin-source)**: o diretório que o comando imprimiu carrega in-place, através de links na entrada de cache

205* **Cada outro plugin de marketplace**: Claude Code copia o plugin para `cache/<marketplace>/<plugin>/<version>/` na instalação e carrega essa cópia. Arquivos fora do diretório do plugin não são copiados, então quando um script dentro de um plugin copiado lê um caminho acima da raiz do plugin, como `../shared`, ele não os encontra

206 

207<h3 id="paths-that-escape-the-plugin-directory">

208 Caminhos que escapam do diretório do plugin

209</h3>

210 

211Se um plugin carrega in-place ou de uma cópia em cache, Claude Code não deixa que ele declare componentes fora de seu próprio diretório. Ele rejeita um caminho de componente que se resolve fora da raiz do plugin, se o caminho é declarado em `plugin.json` ou em uma entrada de marketplace:

212 

213* **Um caminho que aponta para fora do plugin como escrito**, como `../shared-utils`

214* **Um symlink que leva para fora do plugin**, outro que [links entre plugins dentro de um marketplace](/docs/pt/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)

215* **Em macOS e Linux, um caminho que contém uma barra invertida em qualquer lugar nele**, mesmo quando o caminho fica dentro do plugin. Componentes declarados com caminhos de barra invertida portanto carregam apenas em Windows, então escreva caminhos de componentes com barras normais, como `./commands/deploy.md`

216 

217Um caminho rejeitado aparece como um erro [`path escapes plugin directory`](/docs/pt/errors#path-escapes-plugin-directory), e o plugin carrega sem esse componente.

218 

219<h3 id="cleanup-of-previous-versions">

220 Limpeza de versões anteriores

221</h3>

222 

223Quando você atualiza ou desinstala um plugin, Claude Code escreve um marcador `.orphaned_at` no diretório de versão anterior. Ele remove esse diretório em uma limpeza em segundo plano 14 dias depois, então uma sessão que já carregou a versão antiga continua em execução.

224 

225A varredura é executada apenas enquanto `installed_plugins.json` registra pelo menos uma instalação. Depois que você desinstala seu último plugin, diretórios órfãos ficam até você instalar outro.

226 

227<h3 id="node-js-package-dependencies">

228 Dependências de pacote Node.js

229</h3>

230 

231Quando Claude Code copia um plugin para o cache, ele também instala as dependências de pacote Node.js do plugin lá, então os hooks e servidores MCP do plugin podem carregá-las.

232 

233Esta seção cobre os pacotes npm e Bun que um plugin declara em seu próprio `package.json`. Para plugins que dependem de outros plugins, veja [versões de dependência de plugin](/docs/pt/plugins/dependencies).

234 

235<h4 id="when-the-dependency-install-runs">

236 Quando a instalação de dependência é executada

237</h4>

238 

239Claude Code executa a instalação dentro do diretório de versão copiado cada vez que cria um:

240 

241* Quando você instala um plugin

242* Quando Claude Code atualiza um plugin para uma nova versão

243* No início da sessão quando um plugin habilitado ainda não está em cache, como em uma máquina nova

244 

245Para um plugin de caminho relativo [carregado in-place](#in-place-and-copied-plugins) de um marketplace de diretório local, Claude Code não instala as dependências no diretório de origem. Instale-as lá você mesmo, ou de um hook para [`${CLAUDE_PLUGIN_DATA}`](/docs/pt/plugins/components#path-variables-and-persistent-data).

246 

247A instalação é executada apenas quando o diretório raiz do plugin contém tanto um `package.json` quanto um lockfile suportado. O lockfile decide qual comando Claude Code executa:

248 

249| Lockfile | Comando |

250| :------------------------------------------- | :----------------------------------------------- |

251| `bun.lock` ou `bun.lockb` | `bun install --frozen-lockfile --ignore-scripts` |

252| `npm-shrinkwrap.json` ou `package-lock.json` | `npm ci --ignore-scripts` |

253 

254Se um plugin contém mais de um desses lockfiles, Claude Code usa a primeira correspondência, verificando em ordem: `bun.lock`, `bun.lockb`, `npm-shrinkwrap.json`, `package-lock.json`.

255 

256Claude Code pula a instalação para lockfiles Yarn e pnpm e para um `bunfig.toml` ao lado do lockfile Bun:

257 

258* Se seu plugin tem apenas um `yarn.lock` ou `pnpm-lock.yaml`, substitua-o por um lockfile npm

259* Se um `bunfig.toml` está no mesmo diretório que o lockfile Bun, remova o `bunfig.toml`, ou substitua o lockfile Bun por um lockfile npm

260 

261Inclua um lockfile npm para alcançar a maioria dos usuários. Claude Code executa o gerenciador de pacotes do lockfile correspondente do PATH do usuário e não tenta o outro lockfile em vez disso se esse gerenciador de pacotes está faltando.

262 

263Para um plugin distribuído através de uma fonte npm, use `npm-shrinkwrap.json`, porque npm exclui `package-lock.json` de pacotes publicados.

264 

265<h4 id="limits-on-the-dependency-install">

266 Limites na instalação de dependência

267</h4>

268 

269Claude Code restringe essa instalação de dependência para que nenhum código do plugin ou seus pacotes seja executado durante ela, e limita quanto tempo ela pode levar:

270 

271* **Resolução congelada**: Bun e npm instalam exatamente o que o lockfile fixa, e falham em vez de re-resolver versões quando `package.json` e o lockfile discordam

272* **Sem scripts de ciclo de vida**: `--ignore-scripts` mantém scripts `preinstall`, `install` e `postinstall` de serem executados, então dependências que constroem módulos nativos nesses scripts baixam mas não compilam durante essa instalação

273* **Tempo limite de 60 segundos**: Claude Code para uma instalação que é executada mais tempo e a trata como falha

274 

275Claude Code busca um plugin de fonte npm antes dessa instalação de dependência, e nenhum dos scripts de instalação próprios do pacote é executado durante a busca. Veja [fonte de plugin npm](/docs/pt/plugins/marketplace-reference#npm-plugin-source).

276 

277Você não pode desligar a instalação automática. Nenhuma configuração ou variável de ambiente a desabilita.

278 

279Em redes restritas, veja os [requisitos de acesso à rede](/docs/pt/network-config#network-access-requirements) para os hosts a permitir.

280 

281<h4 id="when-the-dependency-install-fails-or-is-skipped">

282 Quando a instalação de dependência falha ou é ignorada

283</h4>

284 

285Uma instalação falha ou ignorada nunca bloqueia o plugin, e cada caso deixa um sinal diferente:

286 

287* Uma instalação falha, ou uma ignorada por causa de um lockfile Yarn ou pnpm ou um `bunfig.toml`, aparece como um aviso na saída `claude --debug`

288* Um plugin com um `package.json` e nenhum lockfile é ignorado sem uma entrada de log

289* Uma instalação com tempo limite pode deixar uma árvore `node_modules` parcial na cópia em cache

290 

291Quando a instalação automática não pode fornecer uma dependência, instale-a de um hook para o [diretório de dados persistentes](/docs/pt/plugins/components#path-variables-and-persistent-data). Isso inclui pacotes que precisam de seus scripts de ciclo de vida para construir, dependências Python e plugins bloqueados com Yarn ou pnpm.

292 

293<h2 id="versions-and-updates">

294 Versões e atualizações

295</h2>

296 

297Se o autor de um plugin empurrou novos commits e `claude plugin update` imprime `<name> is already at the latest version (<version>).`, a versão que Claude Code computa para o plugin é inalterada, então nada muda em disco.

298 

299Claude Code computa uma versão para cada plugin que instala, e essa versão é como ele detecta uma atualização. `claude plugin update` e auto-atualização em segundo plano computam a versão novamente e pulam o plugin quando ela corresponde ao que `installed_plugins.json` registra.

300 

301A versão também nomeia o diretório de cache do plugin.

302 

303Um manifesto que fixa `"version"` é uma forma da versão computada ficar a mesma através de commits. Veja [Como Claude Code computa a versão](#how-claude-code-computes-the-version) para a ordem de resolução.

304 

305Um plugin [carregado in-place](#in-place-and-copied-plugins) de um marketplace de diretório local carrega seus arquivos de origem atuais em cada início de sessão, qualquer que seja sua string de versão. Para um plugin de um [marketplace hospedado em claude.ai](/docs/pt/plugins/install#add-from-claude-ai), a versão que claude.ai registra para o plugin é sua versão, e o `version` do manifesto não é lido.

306 

307<h3 id="how-claude-code-computes-the-version">

308 Como Claude Code computa a versão

309</h3>

310 

311Para um marketplace que você adicionou por fonte, Claude Code escolhe a regra pelo tipo `source` da entrada de marketplace do plugin. A [referência de marketplace](/docs/pt/plugins/marketplace-reference#plugin-sources) lista os tipos de fonte. Para cada tipo de fonte nessa lista exceto `command`:

312 

3131. O campo `version` no manifesto do plugin vem primeiro

3142. Então o campo `version` na entrada de marketplace do plugin

3153. Quando nenhum é definido, a versão vem do tipo de fonte:

316 

317| Tipo de fonte | Versão quando nenhum campo `version` é definido |

318| :----------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------- |

319| `github`, `url` ou `git-subdir` | O SHA do commit da fonte, encurtado para 12 caracteres. Uma versão `git-subdir` também carrega um hash do caminho do subdiretório |

320| `archive` | O resumo SHA-256, encurtado para 12 caracteres: o pino `sha256` na entrada de marketplace, ou o resumo do arquivo baixado quando não há pino |

321| Caminho relativo dentro de um marketplace hospedado em Git | O SHA do commit do diretório instalado |

322| Diretório local, quando nem o diretório do plugin nem seu marketplace é um repositório git | `unknown` |

323| `npm` | `unknown` |

324 

325Claude Code não tira a versão de um repositório que enclausura o caminho de instalação, como um `~/.claude` gerenciado por git.

326 

327Para uma fonte `command`, Claude Code sempre deriva a versão do que o comando produziu: um hash de 12 caracteres por si só, ou `<manifest version>-<hash>` quando o manifesto define um. A `version` da entrada de marketplace é ignorada para fontes de comando. Para o que o hash cobre, veja [Modo de cópia e modo de link](/docs/pt/plugins/marketplace-reference#copy-mode-and-link-mode).

328 

329Como o manifesto vem primeiro, um manifesto que fixa `"version": "1.0.0"` mantém cada usuário na cópia em cache até seu autor mudar a string, quantos commits eles empurrem. Para deixar usuários rastrearem commits em vez disso, deixe `version` fora tanto do manifesto quanto da entrada. [Hospedar um marketplace](/docs/pt/plugins/host-marketplace) cobre qual escolha se encaixa em qual configuração de lançamento.

330 

331<h3 id="when-claude-code-refreshes-a-marketplace-before-an-install">

332 Quando Claude Code atualiza um marketplace antes de uma instalação

333</h3>

334 

335Quando você instala um plugin, Claude Code o procura em sua cópia local do catálogo de marketplace. Você pode executar `/plugin install` em uma sessão ou `claude plugin install` em seu shell, e nomear o plugin com ou sem seu marketplace. A tabela mostra quais dessas combinações atualizam a cópia local.

336 

337| Nome do plugin | Comando | O que Claude Code atualiza |

338| :----------------- | :------------------------------------------- | :---------------------------------------------------------------------------------- |

339| `name@marketplace` | `/plugin install` ou `claude plugin install` | O marketplace nomeado, antes da procura |

340| `name` sozinho | `/plugin install` | Apenas marketplaces que têm auto-atualização ligada, e apenas após a procura falhar |

341| `name` sozinho | `claude plugin install` | Nada. Ele lê os catálogos em cache sem atualizar |

342 

343A atualização antes de uma instalação `name@marketplace` não depende da configuração de auto-atualização do marketplace ou de `DISABLE_AUTOUPDATER`.

344 

345Quando a atualização falha, a instalação prossegue do catálogo em cache e `claude plugin install` relata `marketplace not refreshed`.

346 

347Claude Code pula a atualização antes de uma instalação `name@marketplace` quando:

348 

349* O marketplace foi adicionado de uma fonte local `file` ou `directory`, ou é definido inline em configurações com uma [fonte `settings`](/docs/pt/settings-reference#extraknownmarketplaces)

350* Um [diretório seed](/docs/pt/env-vars) fornece o marketplace

351* Claude Code atualizou o marketplace nos últimos 30 segundos

352* Você definiu `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

353* [Configurações gerenciadas](/docs/pt/plugins/org#restrict-what-users-can-install) bloqueiam o marketplace, nesse caso Claude Code também recusa a instalação

354 

355<h3 id="when-auto-update-runs">

356 Quando auto-atualização é executada

357</h3>

358 

359Em uma sessão interativa, depois que você envia sua primeira mensagem, Claude Code aguarda um atraso aleatório de até dez minutos. Ele então atualiza cada marketplace com auto-atualização ligada e atualiza os plugins instalados deles em disco.

360 

361A sessão em execução mantém as versões que carregou, e você vê `Plugin updated: <name> · Run /reload-plugins to apply`. Se você recarrega ou não, as novas versões carregam no seu próximo lançamento.

362 

363<h4 id="which-marketplaces-and-plugins-auto-update">

364 Quais marketplaces e plugins auto-atualizam

365</h4>

366 

367Se um marketplace auto-atualiza segue o primeiro destes que é definido:

368 

3691. **`autoUpdate` em sua entrada `extraKnownMarketplaces`** em um arquivo de configurações

3702. **`autoUpdate` em sua entrada `known_marketplaces.json`**, que o botão **Enable auto-update** sob `/plugin` **Marketplaces** escreve. Quando um arquivo de configurações também declara o marketplace sob `extraKnownMarketplaces`, o botão escreve `autoUpdate` para essa entrada de configurações também

3713. **O padrão**: ligado para marketplaces oficiais da Anthropic como `claude-plugins-official`, desligado para `knowledge-work-plugins` e `first-party-plugins`, ligado para [marketplaces adicionados de claude.ai](/docs/pt/plugins/install#add-from-claude-ai), e desligado para cada outro marketplace

372 

373Se você definir `DISABLE_UPDATES=1`, `DISABLE_AUTOUPDATER=1` ou `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1`, a passagem inteira é desligada e o botão **Enable auto-update** é ocultado, a menos que você também defina `FORCE_AUTOUPDATE_PLUGINS=1`. A [referência de variáveis de ambiente](/docs/pt/env-vars) cobre o efeito mais amplo de cada variável.

374 

375Auto-atualização também pula um plugin cuja entrada de marketplace declara um `headersHelper`. [Instalações e atualizações que recusam um comando em vez de perguntar](/docs/pt/plugins/host-marketplace#installs-and-updates-that-refuse-the-command-instead-of-asking) explica quando tal plugin aparece na aba **Errors** do `/plugin` e como você o atualiza de lá.

376 

377Quando um plugin copiado atualiza no meio da sessão, comandos de hook, monitores, servidores MCP e servidores LSP continuam usando o caminho da versão anterior. Execute `/reload-plugins` para mudar hooks, servidores MCP e servidores LSP para o novo caminho. Monitores requerem reinicialização de sessão.

378 

379<h3 id="when-a-command-source-re-runs">

380 Quando uma fonte de comando é re-executada

381</h3>

382 

383Plugins com uma fonte `command` não esperam pela [passagem de auto-atualização](#when-auto-update-runs). O diretório impresso reflete o estado da ferramenta no momento em que o comando foi executado, então Claude Code executa o [comando que você aceitou](/docs/pt/plugins/host-marketplace#change-the-command-of-a-command-source) novamente nestes momentos:

384 

385* Cada vez que você instala ou atualiza o plugin

386* Uma vez por sessão para cada plugin habilitado com fonte de comando, em segundo plano, pouco depois que a sessão inicia. Esta execução não depende da configuração de auto-atualização do marketplace ou de `DISABLE_AUTOUPDATER`

387* Na inicialização ou em `/reload-plugins`, quando a versão instalada de um plugin habilitado está faltando do cache de plugin

388 

389Claude Code pula as duas execuções em segundo plano quando você define [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/pt/env-vars). Instalações e atualizações explícitas ainda executam o comando com essa variável definida.

390 

391Quando a saída com hash do comando mudou, Claude Code instala o resultado como uma nova versão e o recarrega na sessão interativa em execução, mudando [os mesmos componentes que `/reload-plugins` muda](/docs/pt/plugins/cli-reference#reload-plugins). Você vê uma notificação de que o plugin foi recarregado.

392 

393Se recarregar in-place invalidaria o cache de prompt da sessão, Claude Code em vez disso o solicita a executar `/reload-plugins`, que [avisa sobre o custo do cache e se aplica quando re-executado com `--force`](/docs/pt/prompt-caching#enabling-or-disabling-a-plugin).

394 

395<h2 id="name-conflicts">

396 Conflitos de nome

397</h2>

398 

399Quando plugins habilitados de diferentes origens compartilham um nome de manifesto, esta ordem decide qual carrega, de precedência mais alta para mais baixa:

400 

4011. Um plugin cujo id aparece em configurações gerenciadas `enabledPlugins`, como `true` ou `false`. Uma cópia `--plugin-dir` cujo nome de manifesto corresponde à parte de nome do id não é carregada, e você vê `--plugin-dir copy of "<name>" ignored: plugin is locked by managed settings`

4022. Um plugin `--plugin-dir`, `--plugin-url` ou `CLAUDE_CODE_PLUGIN_DIRS` habilitado. Ele substitui um plugin de marketplace instalado com o mesmo nome ou um plugin de diretório de skills:

403 * **Um plugin de marketplace instalado**: substituído silenciosamente. `claude plugin list` ainda mostra a linha de marketplace como habilitada, porque essa linha reflete suas configurações. Apenas o log que Claude Code escreve sob `~/.claude/debug/` quando você inicia com `--debug` registra `Plugin "<name>" from --plugin-dir overrides installed version`

404 * **Um plugin de diretório de skills**: substituído com uma linha de aba **Errors** do `/plugin` que lê `Not loaded — the name "<name>" is already taken by a session-only plugin (--plugin-dir / --plugin-url), which takes precedence`

4053. Um plugin de marketplace instalado. Um plugin de diretório de skills com o mesmo nome recebe a mesma linha `Not loaded`, nomeando o plugin instalado

4064. Um plugin de diretório de skills. Entre dois destes, a cópia sob `~/.claude/skills/` carrega e a cópia do `.claude/skills/` do projeto é descartada, com uma linha que diz qual caminho a sombreou

4075. Um plugin [sincronizado de claude.ai](#synced-plugins). Quando um plugin habilitado de qualquer outra origem corresponde a seu nome, Claude Code carrega esse plugin e relata a cópia sincronizada como não carregada. Para usar a cópia claude.ai em vez disso, desabilite sua própria cópia

408 

409Como a ordem compara nomes de manifesto, um plugin `--plugin-dir` nomeado `hello-plugin` substitui `hello@example-marketplace` quando o manifesto desse plugin também diz `"name": "hello-plugin"`.

410 

411<h3 id="keep-a-session-only-plugin-from-loading">

412 Manter um plugin de sessão única de carregar

413</h3>

414 

415Para manter um plugin `--plugin-dir` de sombrear qualquer coisa, ou desligá-lo quando um processo pai passa o sinalizador para você, defina seu id como `false` em qualquer arquivo de configurações. Para um plugin cujo nome de manifesto é `hello-plugin`, a entrada é `"enabledPlugins": {"hello-plugin@inline": false}`. Um plugin de sessão única desabilitado não sombra, então a cópia de marketplace ou diretório de skills carrega em vez disso.

416 

417<h2 id="next-steps">

418 Próximos passos

419</h2>

420 

421* [Instalar e gerenciar plugins](/docs/pt/plugins/install): os passos de instalação, habilitação, desabilitação e atualização em si

422* [Solucionar problemas de plugins](/docs/pt/plugins/troubleshooting): mensagens de erro pelo estágio que as produz

423* [Referência de comandos de plugin](/docs/pt/plugins/cli-reference): os sinalizadores e comandos nomeados nesta página

424* [Gerenciar plugins para sua organização](/docs/pt/plugins/org): as configurações gerenciadas que força-habilitam ou bloqueiam plugins

plugins/manifest-reference.md +710 −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# Referência de manifesto de plugin

6 

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

8 

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

10 

11Esta referência é para criadores de plugins e para proprietários de marketplace que colocam campos de componentes em uma entrada de marketplace.

12 

13<Note>

14 Estes casos são cobertos em outras páginas:

15 

16 * **Aprender a construir um plugin**: comece com [Criar um plugin](/docs/pt/plugins/create)

17 * **O que cada componente faz em tempo de execução**: veja [Componentes de plugin](/docs/pt/plugins/components)

18</Note>

19 

20Comece na seção que corresponde ao que você está procurando:

21 

22* Um campo: a [tabela Campos](#fields) fornece o tipo de cada campo, se é obrigatório, seu padrão e o que aceita. [Regras de caminho](#path-rules) cobre o prefixo `./` e contenção para cada caminho de componente

23* Uma opção `userConfig` ou uma entrada `channels`: os esquemas [Configuração do usuário](#user-configuration) e [Canais](#channels)

24* `${CLAUDE_PLUGIN_ROOT}` ou outra variável que um plugin pode referenciar: [Variáveis de ambiente](#environment-variables)

25* Onde os arquivos de cada componente vão: [Layout padrão](#standard-layout)

26* Uma mensagem de `claude plugin validate`: a [página de solução de problemas](/docs/pt/plugins/troubleshooting) lista cada mensagem com sua correção e links para as seções relevantes nesta página

27 

28<h2 id="manifest-file">

29 Arquivo de manifesto

30</h2>

31 

32O manifesto é opcional. Sem ele, Claude Code carrega os componentes que encontra no [layout padrão](#standard-layout). O nome do plugin vem da entrada do marketplace ou do nome do diretório quando você carrega o plugin com `--plugin-dir`.

33 

34Escreva um manifesto quando quiser metadados, um componente fora de seu diretório padrão, `userConfig` ou uma definição de componente inline.

35 

36Salve o manifesto em `.claude-plugin/plugin.json` sob a raiz do plugin. Coloque todos os outros arquivos do plugin na raiz do plugin, não dentro de `.claude-plugin/`. Isso inclui `skills/`, `commands/` e `hooks/`.

37 

38O exemplo a seguir define a maioria das chaves na [tabela Campos](#fields). Ele passa na validação em um diretório de plugin que contém cada caminho referenciado.

39 

40```json theme={null}

41{

42 "name": "deploy-tools",

43 "displayName": "Deploy Tools",

44 "version": "1.2.0",

45 "description": "Deployment commands, a review agent, and a status monitor",

46 "author": {

47 "name": "Example Team",

48 "email": "dev@example.com",

49 "url": "https://example.com"

50 },

51 "homepage": "https://example.com/docs/deploy-tools",

52 "repository": "https://github.com/example/deploy-tools",

53 "license": "MIT",

54 "keywords": ["deployment", "ci"],

55 "defaultEnabled": true,

56 "dependencies": ["secrets-vault"],

57 "metadata": { "catalogId": "cat-123" },

58 "skills": ["./extra-skills/"],

59 "commands": {

60 "status": {

61 "source": "./commands/status.md",

62 "description": "Show the current deployment status"

63 },

64 "about": {

65 "content": "Explain what the deploy-tools plugin provides.",

66 "description": "Describe this plugin"

67 }

68 },

69 "agents": ["./agents/reviewer.md"],

70 "hooks": "./config/extra-hooks.json",

71 "mcpServers": {

72 "deploy-api": {

73 "command": "node",

74 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"]

75 }

76 },

77 "lspServers": "./.lsp.json",

78 "outputStyles": "./styles/",

79 "experimental": {

80 "themes": "./themes/",

81 "monitors": "./config/monitors.json"

82 },

83 "userConfig": {

84 "api_token": {

85 "type": "string",

86 "title": "API token",

87 "description": "Token for the deployment API",

88 "sensitive": true

89 }

90 }

91}

92```

93 

94<h3 id="unrecognized-fields">

95 Campos não reconhecidos

96</h3>

97 

98Uma chave de nível superior não reconhecida é removida, e uma chave não reconhecida dentro de uma opção `userConfig`, entrada `channels`, configuração `lspServers` ou entrada `monitors` é rejeitada:

99 

100* **Campos de nível superior**: o campo é removido e o plugin carrega. `claude plugin validate` relata cada campo de nível superior não reconhecido como um aviso

101* **Objetos estritos**: opções `userConfig`, entradas `channels`, configurações `lspServers` e entradas `monitors` são estritas. Uma chave desconhecida dentro de uma é um erro, e o plugin não carrega

102 

103<h3 id="validate-the-manifest">

104 Validar o manifesto

105</h3>

106 

107`claude plugin validate` é a verificação autoritária para um manifesto. Execute-o do seu shell contra o diretório do plugin:

108 

109```bash theme={null}

110claude plugin validate ./my-plugin

111```

112 

113O comando relata um destes resultados:

114 

115* **`Validation passed`**: o manifesto carrega

116* **`Validation passed with warnings`**: o manifesto carrega, mas o validador encontrou algo para corrigir, como um campo de nível superior desconhecido que Claude Code remove, um `name` que não está em kebab-case, ou um `version`, `description` ou `author` ausente. Passe `--strict` para transformar avisos em falhas em CI

117* **`Validation failed`**: o manifesto tem uma incompatibilidade de tipo, um caminho que está faltando ou escapa da raiz do plugin, ou uma chave desconhecida dentro de uma opção `userConfig`, entrada `channels`, configuração `lspServers` ou entrada `monitors`. Claude Code relata o mesmo problema quando carrega o plugin

118 

119<h2 id="fields">

120 Campos

121</h2>

122 

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

124 

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

126 

127| Campo | Tipo | Descrição |

128| :----------------------------------- | :--------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

129| `$schema` | String | URL do JSON Schema para autocompletar do editor. Claude Code a ignora no tempo de carregamento |

130| [`name`](#name) | String | Identificador do plugin, obrigatório. Use kebab-case. Cada componente é namespaced sob ele |

131| [`displayName`](#displayname) | String | Nome mostrado na UI no lugar de `name` |

132| [`version`](#version) | String | String de versão. Configurá-la mantém os usuários nessa versão até você alterá-la |

133| `description` | String | Explicação breve do que o plugin fornece |

134| `author` | Object | `name`, que é obrigatório, mais `email` e `url` opcionais |

135| `homepage` | String | URL de documentação. Deve ser analisada como uma URL, ou o plugin falha ao carregar |

136| `repository` | String | URL do repositório de origem. Não validada |

137| `license` | String | Identificador SPDX como `MIT` ou `Apache-2.0` |

138| `keywords` | Array de strings | Tags de descoberta |

139| [`metadata`](#metadata) | Object | Objeto de forma livre para seus próprios dados. Claude Code não o lê |

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

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

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

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

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

145| `skills` | Caminho, ou array de caminhos | Diretórios para escanear em busca de skills, cada um um diretório de pastas `<name>/SKILL.md` ou uma pasta contendo `SKILL.md` diretamente. `"."` nomeia a raiz do plugin. Adiciona ao scan padrão `skills/` |

146| [`commands`](#commands) | Caminho, array de caminhos, ou objeto | Arquivos de comando `.md` planos, diretórios deles, ou um mapa de objeto de nome de comando para `source` ou `content`. Substitui o scan padrão `commands/` |

147| `agents` | Caminho, ou array de caminhos | Arquivos de agente `.md`. Diretórios não são aceitos. Substitui o scan padrão `agents/` |

148| [`hooks`](#hooks) | Caminho, objeto, ou array de qualquer um | Arquivos hook `.json` ou configuração de hook inline. Carregados junto com `hooks/hooks.json` |

149| [`mcpServers`](#mcpservers) | Caminho, objeto, ou array de qualquer um | Arquivos de configuração MCP `.json`, bundles `.mcpb` ou `.dxt`, ou configurações de servidor inline com chave por nome. Carregados junto com `.mcp.json`; um nome de servidor declarado depois substitui um anterior |

150| [`lspServers`](#lspservers) | Caminho, objeto, ou array de qualquer um | Arquivos de configuração LSP `.json` ou configurações de servidor inline com chave por nome. Carregados junto com `.lsp.json` |

151| `outputStyles` | Caminho, ou array de caminhos | Arquivos de estilo de saída ou diretórios. Substitui o scan padrão `output-styles/` |

152| `workflows` | Caminho, ou array de caminhos | Arquivos de [Workflow](/docs/pt/workflows#distribute-a-workflow-in-a-plugin) `.js` ou diretórios. Substitui o scan padrão `workflows/` |

153| `experimental` | Object | Contêiner para `themes`, `monitors` e `evals`, cuja forma de manifesto ainda pode mudar |

154| `experimental.themes` | Caminho, ou array de caminhos | Arquivos de tema ou diretórios. Substitui o scan padrão `themes/`. Uma chave `themes` de nível superior ainda carrega, com um aviso `claude plugin validate` |

155| [`experimental.monitors`](#monitors) | Caminho, ou array inline | Um arquivo `.json` contendo o array de monitors, ou o próprio array. Padrão é `monitors/monitors.json`. Uma chave `monitors` de nível superior ainda carrega, com um aviso `claude plugin validate`. Monitors executam apenas em sessões interativas, e não no Amazon Bedrock, Agent Platform do Google Cloud ou Microsoft Foundry |

156| `experimental.evals` | Caminho, ou array de caminhos | Diretório que contém os [casos de eval](/docs/pt/plugin-evals#use-a-different-eval-directory) do plugin quando não é o padrão `evals/`. `claude plugin eval --eval-dir` o substitui |

157 

158Na coluna Tipo, um caminho é uma string relativa à raiz do plugin, como `"./custom/commands"`.

159 

160<h3 id="name">

161 `name`

162</h3>

163 

164O identificador do plugin. Deve ser não vazio, sem espaços, `@`, `:`, separadores de caminho, caracteres de controle ou caracteres de formatação bidirecional; use kebab-case.

165 

166Claude Code namespaces cada componente sob ele, então um agente `reviewer` no plugin `deploy-tools` aparece como `deploy-tools:reviewer`.

167 

168<h3 id="displayname">

169 `displayName`

170</h3>

171 

172O nome mostrado na UI no lugar de `name`. Pode conter espaços e qualquer capitalização, e não é usado para namespacing ou lookup.

173 

174Para um plugin instalado do marketplace, um `displayName` na [entrada do marketplace](/docs/pt/plugins/marketplace-reference#plugin-entries) tem precedência sobre este valor.

175 

176<h3 id="version">

177 `version`

178</h3>

179 

180Uma string de versão, não verificada contra semver. Configurá-la fixa o plugin nessa versão até você alterá-la; veja [Versões e atualizações](/docs/pt/plugins/loading#versions-and-updates). Um plugin com uma [`command` source](/docs/pt/plugins/marketplace-reference), um plugin de um [marketplace hospedado em claude.ai](/docs/pt/plugins/install#add-from-claude-ai) e um plugin [carregado no local](/docs/pt/plugins/loading#find-plugins-on-disk) de um marketplace adicionado como um diretório local não são fixados por este campo.

181 

182<h3 id="metadata">

183 `metadata`

184</h3>

185 

186Um objeto de forma livre para seus próprios dados, como campos de catálogo ou direito. Claude Code não o lê. Requer Claude Code v2.1.222 ou posterior.

187 

188<h3 id="defaultenabled">

189 `defaultEnabled`

190</h3>

191 

192Se o plugin inicia habilitado quando o usuário não o configurou em [`enabledPlugins`](/docs/pt/settings-reference#enabledplugins). Padrão é `true`. Um plugin que um plugin habilitado depende inicia habilitado independentemente. O mesmo campo na entrada do marketplace substitui este.

193 

194Uma vez que a entrada `enabledPlugins` de um usuário é escrita, ela persiste entre atualizações de plugin, então alterar `defaultEnabled` em uma versão posterior não altera a configuração para um usuário existente.

195 

196<h3 id="dependencies">

197 `dependencies`

198</h3>

199 

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

201 

202<h3 id="settings">

203 `settings`

204</h3>

205 

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

207 

208<h2 id="component-path-forms">

209 Formas de caminho de componente

210</h2>

211 

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

213 

214<h3 id="path-only-fields">

215 Campos apenas de caminho

216</h3>

217 

218`agents`, `skills`, `outputStyles`, `workflows` e `experimental.themes` recebem um caminho ou um array de caminhos. Entradas `agents` devem ser arquivos `.md`, e entradas `skills` devem ser diretórios. Os outros três aceitam um diretório ou um arquivo.

219 

220```json theme={null}

221{

222 "agents": ["./custom-agents/reviewer.md", "./custom-agents/tester.md"],

223 "skills": ["./extra-skills/", "."],

224 "outputStyles": "./styles/"

225}

226```

227 

228<h3 id="commands">

229 `commands`

230</h3>

231 

232`commands` recebe um caminho, um array de caminhos, ou um mapa de objeto. Um caminho nomeia um arquivo de comando `.md` plano ou um diretório. No mapa de objeto, cada chave se torna o nome do comando após o prefixo do plugin. Por exemplo, `"about"` no plugin `deploy-tools` executa como `/deploy-tools:about`.

233 

234Cada valor define exatamente um de `source` ou `content`, e uma entrada que define ambos ou nenhum falha na validação. Os outros campos nesta tabela são opcionais:

235 

236| Campo | Tipo | Descrição |

237| :------------- | :--------------- | :-------------------------------------------------------------------- |

238| `source` | string | Caminho para o arquivo Markdown do comando, relativo à raiz do plugin |

239| `content` | string | Markdown inline para o corpo do comando, em vez de `source` |

240| `description` | string | Descrição mostrada para o comando |

241| `argumentHint` | string | Dica de argumento mostrada após o nome do comando, como `[file]` |

242| `model` | string | Modelo padrão para o comando |

243| `allowedTools` | array de strings | Ferramentas que o comando pode usar sem solicitar |

244 

245Este mapa declara um comando de um arquivo e um de conteúdo inline:

246 

247```json theme={null}

248{

249 "commands": {

250 "status": { "source": "./commands/status.md", "argumentHint": "[env]" },

251 "about": { "content": "Explain what this plugin provides." }

252 }

253}

254```

255 

256<h3 id="hooks">

257 `hooks`

258</h3>

259 

260`hooks` recebe um caminho de arquivo `.json`, um objeto de hooks inline na mesma forma que [`hooks` em `settings.json`](/docs/pt/hooks#configuration), ou um array misturando ambos. Para eventos de hook e campos de handler, veja a [referência de hooks](/docs/pt/hooks#hook-events).

261 

262Claude Code mescla o que você declara com `hooks/hooks.json` quando esse arquivo existe.

263 

264```json theme={null}

265{

266 "hooks": [

267 "./config/extra-hooks.json",

268 {

269 "PostToolUse": [

270 {

271 "matcher": "Write|Edit",

272 "hooks": [

273 { "type": "command", "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/format.sh" }

274 ]

275 }

276 ]

277 }

278 ]

279}

280```

281 

282<h3 id="mcpservers">

283 `mcpServers`

284</h3>

285 

286`mcpServers` recebe um caminho de arquivo `.json`, um caminho de bundle MCP ou URL, um mapa inline, ou um array misturando-os. Para campos de configuração de servidor, veja [servidores MCP fornecidos por plugin](/docs/pt/mcp#plugin-provided-mcp-servers).

287 

288Claude Code carrega `.mcp.json` na raiz do plugin primeiro, depois cada forma declarada em ordem. Um nome de servidor declarado depois substitui um anterior.

289 

290Um valor `mcpServers` recebe uma destas formas:

291 

292| Forma | Valor de exemplo | O que Claude Code faz |

293| :------------------------- | :------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------- |

294| Caminho de arquivo `.json` | `"./mcp/servers.json"` | Lê o arquivo como um mapa `mcpServers` |

295| Caminho de bundle MCP | `"./bundle.mcpb"` | Extrai o bundle `.mcpb` ou `.dxt` em `.mcpb-cache/` sob a raiz do plugin e lê sua configuração de servidor |

296| URL de bundle MCP | `"https://example.com/server.mcpb"` | Baixa o bundle em `.mcpb-cache/`, depois o lê |

297| Mapa inline | `{ "deploy-api": { "command": "node", "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"] } }` | Usa o mapa como configurações de servidor com chave por nome |

298 

299Um caminho de bundle ou URL deve terminar em `.mcpb` ou `.dxt`. Qualquer outra extensão falha na validação.

300 

301<h3 id="lspservers">

302 `lspServers`

303</h3>

304 

305`lspServers` recebe um caminho de arquivo `.json`, um mapa inline de nome de servidor para configuração, ou um array de qualquer um.

306 

307Claude Code carrega `.lsp.json` na raiz do plugin primeiro, depois cada configuração declarada em ordem. Um nome de servidor declarado depois substitui um anterior.

308 

309Cada configuração de servidor é um objeto estrito com estes campos. Uma chave desconhecida falha na validação.

310 

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

312| :---------------------- | :---------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

313| `command` | Sim | Binário do servidor de linguagem. Sem espaços a menos que o valor comece com `/`; coloque argumentos em `args` |

314| `extensionToLanguage` | Sim | Mapa de extensão de arquivo para ID de linguagem LSP, pelo menos uma entrada. As chaves começam com um ponto, como `".go"` |

315| `args` | Não | Argumentos passados para o servidor |

316| `transport` | Não | Transporte de comunicação: `stdio` (padrão) ou `socket`. Claude Code aceita `socket` mas executa cada servidor sobre stdio, então as regras do protocolo stdout se aplicam a todos os servidores |

317| `env` | Não | Variáveis de ambiente para o processo do servidor |

318| `initializationOptions` | Não | Opções enviadas na solicitação de inicialização |

319| `settings` | Não | Configurações enviadas por `workspace/didChangeConfiguration` |

320| `workspaceFolder` | Não | Caminho da pasta de workspace para o servidor |

321| `startupTimeout` | Não | Milissegundos para esperar pela inicialização, um inteiro positivo |

322| `shutdownTimeout` | Não | Milissegundos para esperar por um desligamento gracioso, um inteiro positivo. Quando o tempo limite decorre, Claude Code encerra o processo do servidor. Quando não definido, nenhum tempo limite se aplica |

323| `restartOnCrash` | Não | Se deve reiniciar o servidor após ele falhar. Padrão é `true`. Defina como `false` para deixar um servidor que falhou parado em vez de reiniciá-lo |

324| `maxRestarts` | Não | Tentativas de reinicialização antes de desistir, zero ou mais |

325| `diagnostics` | Não | Se deve enviar diagnósticos para o contexto após edições. Padrão é `true` |

326 

327Esta configuração inline executa `gopls` para arquivos `.go`:

328 

329```json theme={null}

330{

331 "lspServers": {

332 "go": {

333 "command": "gopls",

334 "args": ["serve"],

335 "extensionToLanguage": { ".go": "go" }

336 }

337 }

338}

339```

340 

341Para os servidores de linguagem que Anthropic publica como plugins e como os servidores se comportam em tempo de execução, veja [Inteligência de código](/docs/pt/plugins/code-intelligence).

342 

343<h3 id="monitors">

344 `monitors`

345</h3>

346 

347`experimental.monitors` recebe um caminho de arquivo `.json` ou o array inline. Quando você omite a chave, Claude Code carrega `monitors/monitors.json` se existir.

348 

349Cada entrada é um objeto estrito com estes campos.

350 

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

352| :------------ | :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

353| `name` | Sim | Identificador único dentro do plugin |

354| `command` | Sim | Comando shell que Claude Code executa como um processo de background persistente no diretório de trabalho da sessão |

355| `description` | Sim | Resumo breve mostrado no painel de tarefas e resumos de notificação |

356| `when` | Não | Com `"always"`, o padrão, o monitor inicia no início da sessão e no recarregamento do plugin. Com `"on-skill-invoke:<skill>"`, ele inicia a primeira vez que essa skill executa |

357 

358Este array inline declara um monitor que inicia a primeira vez que a skill `deploy` executa:

359 

360```json theme={null}

361{

362 "experimental": {

363 "monitors": [

364 {

365 "name": "deploy-status",

366 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/poll-deploy.sh",

367 "description": "Deployment status changes",

368 "when": "on-skill-invoke:deploy"

369 }

370 ]

371 }

372}

373```

374 

375Um `command` de monitor não pode referenciar `${user_config.*}`. Veja [Campos que executam através de um shell](#fields-that-run-through-a-shell).

376 

377<h2 id="path-rules">

378 Regras de caminho

379</h2>

380 

381Cada caminho de componente em um manifesto é relativo à raiz do plugin e deve começar com `./`. Um caminho como `commands/foo.md` falha na validação. `skills` e `mcpServers` cada um aceitam uma forma fora dessa regra:

382 

383* **`skills`**: também aceita `"."`. Ambos `"."` e `"./"` denotam a raiz do plugin. Antes de v2.1.221, `"."` falhou na validação do manifesto, então use `"./"` quando o plugin deve carregar em versões anteriores

384* **`mcpServers`**: também aceita uma URL de bundle `https://`

385 

386<h3 id="containment-and-existence">

387 Contenção e existência

388</h3>

389 

390Cada caminho de componente deve resolver dentro da raiz do plugin e deve existir. `claude plugin validate` não verifica os caminhos `outputStyles`, `lspServers`, `monitors` ou `themes`, então um caminho ruim nesses campos falha apenas quando o plugin carrega:

391 

392* **Contenção**: um caminho que resolve fora da raiz do plugin não carrega, e a aba **Errors** do `/plugin` mostra `<component> path escapes plugin directory: <path>`. Um caminho contendo `..` é o caso usual, e `claude plugin validate` o relata como `Path contains ".." which could be a path traversal attempt`

393* **Existência**: um caminho que não existe não carrega, e a aba **Errors** do `/plugin` mostra `<component> path not found: <path>`. `claude plugin validate` o relata como `Path not found`

394 

395<h3 id="how-each-key-combines-with-its-default-location">

396 Como cada chave se combina com seu local padrão

397</h3>

398 

399Cada chave de componente substitui seu local padrão, adiciona a ele, ou mescla com ele:

400 

401* **Substitui o padrão**: `commands`, `agents`, `outputStyles`, `workflows`, `experimental.themes`, `experimental.monitors`. Quando você define `commands`, o diretório padrão `commands/` não é escaneado. Para manter o padrão e adicionar mais, liste-o explicitamente: `"commands": ["./commands/", "./extras/"]`

402* **Adiciona ao padrão**: `skills`. O diretório `skills/` ainda é escaneado, e os diretórios listados carregam junto com ele

403* **Mescla**: `hooks`, `mcpServers`, `lspServers`. O arquivo padrão carrega primeiro, e o que o manifesto declara mescla nele, conforme descrito em [Formas de caminho de componente](#component-path-forms)

404 

405Se um plugin tem uma pasta padrão como `commands/` e também define a chave de manifesto que a substitui, Claude Code carrega os caminhos do manifesto e não a pasta. `claude plugin list` e a interface `/plugin` então mostram o aviso `Default <folder>/ folder is ignored because the manifest sets "<key>"`.

406 

407Para evitar o aviso, defina a chave para um caminho dentro dessa pasta: `"commands": ["./commands/deploy.md"]` nomeia um arquivo na pasta padrão e não produz aviso.

408 

409<h2 id="user-configuration">

410 Configuração do usuário

411</h2>

412 

413`userConfig` declara valores que Claude Code solicita ao usuário quando o plugin está habilitado, para que os usuários não editem `settings.json` eles mesmos.

414 

415As chaves são identificadores feitos de letras, dígitos e underscores, e não podem começar com um dígito.

416 

417Cada valor é um objeto estrito com estes campos. Uma chave desconhecida falha na validação.

418 

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

420| :------------ | :---------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

421| `type` | Sim | Um de `string`, `number`, `boolean`, `directory` ou `file` |

422| `title` | Sim | Rótulo mostrado no diálogo de configuração |

423| `description` | Sim | Texto de ajuda mostrado sob o campo |

424| `required` | Não | Se `true`, o diálogo de configuração não aceita um valor vazio |

425| `default` | Não | Valor usado quando o usuário não fornece nada: uma string, número, booleano ou array de strings |

426| `options` | Não | Para `string`, os valores que o campo aceita, mostrados como um picker em `/config`. Veja [Limitar um campo a opções fixas](#limit-a-field-to-fixed-options). Requer Claude Code v2.1.271 ou posterior |

427| `multiple` | Não | Para `string`, permite um array de strings |

428| `sensitive` | Não | Se `true`, mascara entrada e armazena o valor em armazenamento seguro em vez de `settings.json` |

429| `min` / `max` | Não | Limites para `number` |

430 

431Cada opção de cada plugin habilitado também aparece como uma linha no painel `/config`, exceto opções `sensitive` e listas `multiple`. As linhas `/config` requerem Claude Code v2.1.269 ou posterior.

432 

433Este `userConfig` declara um endpoint e um token mascarado:

434 

435```json theme={null}

436{

437 "userConfig": {

438 "api_endpoint": {

439 "type": "string",

440 "title": "API endpoint",

441 "description": "Your team's API endpoint"

442 },

443 "api_token": {

444 "type": "string",

445 "title": "API token",

446 "description": "API authentication token",

447 "sensitive": true

448 }

449 }

450}

451```

452 

453<h3 id="limit-a-field-to-fixed-options">

454 Limitar um campo a opções fixas

455</h3>

456 

457Defina `options` em um campo `userConfig` para fazer os usuários escolherem seu valor de uma lista fixa.

458 

459Para limitar um campo `tone` a três opções, liste-as em `options` e defina `default` para uma delas:

460 

461```json theme={null}

462{

463 "userConfig": {

464 "tone": {

465 "type": "string",

466 "title": "Tone",

467 "description": "Voice for generated replies",

468 "options": ["neutral", "warm", "formal"],

469 "default": "neutral"

470 }

471 }

472}

473```

474 

475Se você declarar `options` em qualquer campo, usuários em versões Claude Code antes de v2.1.271 não podem carregar o plugin.

476 

477`options` se aplica a um campo `string` que não é `multiple` ou `sensitive`. Defina `default` para um dos valores listados, ou defina `required: true` para que o usuário escolha um. Cada opção é um rótulo simples de 1 a 64 caracteres, e `claude plugin validate`, que você executa no seu shell, relata qualquer coisa que rejeita. Um plugin cujas `options` quebram essas regras falha ao carregar.

478 

479<h3 id="where-values-are-stored">

480 Onde os valores são armazenados

481</h3>

482 

483Valores não sensíveis são salvos em [`pluginConfigs`](/docs/pt/settings-reference#pluginconfigs) no `settings.json` do usuário. Valores sensíveis vão para o armazenamento de credenciais seguro da plataforma. A [página de configurações](/docs/pt/settings-reference#pluginconfigs) lista quais arquivos de configurações `pluginConfigs` é lido.

484 

485<h3 id="reference-a-saved-value">

486 Referenciar um valor salvo

487</h3>

488 

489Referencie um valor salvo onde o plugin precisa dele, em uma de duas formas:

490 

491* **`${user_config.KEY}`**: substituído em configuração de servidor MCP, configuração de servidor LSP, hook `args` em [forma exec](/docs/pt/hooks#exec-form-and-shell-form), e conteúdo de skill e agente. Em conteúdo de skill e agente, apenas valores não sensíveis são substituídos, e um valor sensível lá se torna um placeholder

492* **`CLAUDE_PLUGIN_OPTION_<KEY>`**: exportado para processos de hook para cada opção, com `<KEY>` em maiúsculas. Um hook em forma shell lê `$CLAUDE_PLUGIN_OPTION_API_TOKEN` para `api_token`

493 

494<h3 id="fields-that-run-through-a-shell">

495 Campos que executam através de um shell

496</h3>

497 

498Comandos de hook em forma shell, comandos de monitor e MCP [`headersHelper`](/docs/pt/mcp#use-dynamic-headers-for-custom-authentication) rejeitam `${user_config.*}`. Um componente que o referencia em um desses campos falha com um [erro](/docs/pt/errors#plugin-command-references-user-config) em vez de executar, porque o valor do campo é passado para um shell que re-analisaria o valor substituído.

499 

500A tabela mostra como o valor pode chegar a cada um desses campos.

501 

502| Campo | Como o valor pode chegar a ele |

503| :------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

504| Comandos de hook em forma shell | Use [forma exec](/docs/pt/hooks#exec-form-and-shell-form) com `args`, ou leia `CLAUDE_PLUGIN_OPTION_<KEY>` do ambiente do hook |

505| Comandos de monitor | Não através de Claude Code. Processos de monitor não recebem `CLAUDE_PLUGIN_OPTION_<KEY>`, então o script de monitor tem que obter o valor por conta própria |

506| MCP `headersHelper` | Não através de Claude Code. O ambiente do helper carrega `CLAUDE_PLUGIN_ROOT`, `CLAUDE_CODE_MCP_SERVER_NAME` e `CLAUDE_CODE_MCP_SERVER_URL` mas nenhum valor de opção, então o script helper tem que obter o valor por conta própria |

507 

508<h2 id="channels">

509 Canais

510</h2>

511 

512`channels` declara os canais de mensagem que um plugin fornece, como uma ponte para um aplicativo de chat. Quando você declara um, Claude Code pode solicitar a configuração do canal quando o plugin está habilitado. Para como o servidor injeta mensagens, veja a [referência de canais](/docs/pt/channels-reference#package-as-a-plugin).

513 

514Cada entrada é um objeto estrito vinculado a um dos servidores MCP do plugin, com estes campos:

515 

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

517| :------------ | :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

518| `server` | Sim | Chave do servidor MCP em `mcpServers` deste plugin ao qual o canal se vincula |

519| `displayName` | Não | Nome mostrado no título do diálogo de configuração. Padrão é o nome do servidor |

520| `userConfig` | Não | Opções para solicitar, na mesma forma que [top-level `userConfig`](#user-configuration). Valores salvos substituem em referências `${user_config.KEY}` no `env` do servidor |

521 

522Este manifesto vincula um canal ao servidor MCP `telegram` do plugin e solicita um token de bot que substitui no `env` do servidor:

523 

524```json theme={null}

525{

526 "mcpServers": {

527 "telegram": {

528 "command": "node",

529 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"],

530 "env": { "BOT_TOKEN": "${user_config.bot_token}" }

531 }

532 },

533 "channels": [

534 {

535 "server": "telegram",

536 "displayName": "Telegram",

537 "userConfig": {

538 "bot_token": {

539 "type": "string",

540 "title": "Bot token",

541 "description": "Telegram bot token",

542 "sensitive": true

543 }

544 }

545 }

546 ]

547}

548```

549 

550<h2 id="environment-variables">

551 Variáveis de ambiente

552</h2>

553 

554Claude Code fornece três variáveis de caminho para componentes de plugin. Referencie-as como `${NAME}` nos campos listados em [Onde cada variável resolve](#where-each-variable-resolves), e leia-as como variáveis de ambiente nos processos que as recebem.

555 

556| Variável | Resolve para | Use-a para |

557| :---------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------ |

558| `${CLAUDE_PLUGIN_ROOT}` | Caminho absoluto da versão instalada do plugin | Scripts, binários e arquivos de configuração agrupados com o plugin |

559| `${CLAUDE_PLUGIN_DATA}` | `~/.claude/plugins/data/<id>/`, criado na primeira referência e mantido entre atualizações de plugin. `<id>` é o identificador do plugin com cada caractere diferente de uma letra, dígito, `_` ou `-` substituído por `-` | Dependências instaladas como `node_modules`, código gerado e caches |

560| `${CLAUDE_PROJECT_DIR}` | A raiz do projeto | Scripts e arquivos de configuração locais do projeto |

561 

562`${CLAUDE_PLUGIN_ROOT}` muda quando o plugin atualiza, então não escreva estado lá. Para onde a raiz se move e quando o diretório antigo é limpo, veja a [página de carregamento](/docs/pt/plugins/loading).

563 

564Quando você desinstala o plugin do último lugar onde está instalado, o diretório `${CLAUDE_PLUGIN_DATA}` é deletado a menos que você passe [`--keep-data`](/docs/pt/plugins/cli-reference).

565 

566<h3 id="where-each-variable-resolves">

567 Onde cada variável resolve

568</h3>

569 

570Em cada componente de plugin, referências `${...}` resolvem inline em campos específicos, e alguns componentes também recebem as variáveis em seu ambiente de processo:

571 

572| Componente de plugin | Campos onde `${...}` resolve | Exportado para o processo |

573| :---------------------------------- | :------------------------------------------ | :---------------------------------------------------------------------------------------------- |

574| Comandos de hook | Em qualquer lugar em `command` e `args` | `CLAUDE_PLUGIN_ROOT`, `CLAUDE_PLUGIN_DATA`, `CLAUDE_PROJECT_DIR` e `CLAUDE_PLUGIN_OPTION_<KEY>` |

575| Comandos de monitor | Em qualquer lugar em `command` | Não exportado |

576| Servidores MCP `stdio` | `command`, `args`, `env` | `CLAUDE_PLUGIN_ROOT`, `CLAUDE_PLUGIN_DATA` |

577| Servidores MCP `http`, `sse`, `ws` | `url`, `headers`, `headersHelper` | Não aplicável |

578| Servidores LSP | `command`, `args`, `env`, `workspaceFolder` | `CLAUDE_PLUGIN_ROOT`, `CLAUDE_PLUGIN_DATA`, `CLAUDE_PROJECT_DIR` |

579| Conteúdo de skill, comando e agente | Em qualquer lugar no corpo Markdown | Não aplicável |

580 

581As variáveis não estão presentes no ambiente de comandos que Claude executa através da ferramenta Bash, na sessão principal ou em um subagente. Em conteúdo de skill, comando e agente, escreva a referência `${...}` no corpo Markdown em vez disso, e Claude Code substitui o caminho inline quando carrega o conteúdo.

582 

583<h3 id="quoting-and-path-separators">

584 Citação e separadores de caminho

585</h3>

586 

587Mantenha cada caminho substituído um único argumento:

588 

589* **Comandos de hook**: use [forma exec](/docs/pt/hooks#exec-form-and-shell-form) com `args` para que cada caminho seja um argumento sem citação

590* **Hooks em forma shell e comandos de monitor**: envolva a variável em aspas duplas para que um caminho com espaços permaneça uma palavra

591 

592Este hook em forma shell executa um script agrupado com o plugin:

593 

594```json theme={null}

595{

596 "hooks": {

597 "PostToolUse": [

598 {

599 "hooks": [

600 {

601 "type": "command",

602 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/process.sh"

603 }

604 ]

605 }

606 ]

607 }

608}

609```

610 

611No Windows, os caminhos substituídos usam barras para frente para que um shell não leia barras invertidas como escapes.

612 

613<h2 id="standard-layout">

614 Layout padrão

615</h2>

616 

617Cada tipo de componente tem um local padrão sob a raiz do plugin, usado quando o manifesto não aponta para outro lugar.

618 

619| Componente | Local padrão | Conteúdo |

620| :--------------- | :--------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

621| Manifesto | `.claude-plugin/plugin.json` | Metadados e configuração do plugin. Opcional |

622| Skills | `skills/` | Um `<name>/SKILL.md` por skill. Um plugin com `SKILL.md` em sua raiz, sem `skills/` e sem chave `skills` carrega como uma única skill |

623| Comandos | `commands/` | Arquivos de comando Markdown planos. Prefira `skills/` para novos plugins |

624| Agentes | `agents/` | Arquivos Markdown de agente. Subpastas são parte do [nome do agente](/docs/pt/plugins/components#agents) |

625| Hooks | `hooks/hooks.json` | Configuração de hook |

626| Servidores MCP | `.mcp.json` | Definições de servidor MCP |

627| Servidores LSP | `.lsp.json` | Configurações de servidor LSP |

628| Estilos de saída | `output-styles/` | Arquivos de estilo de saída Markdown |

629| Workflows | `workflows/` | Arquivos de workflow `.js` |

630| Temas | `themes/` | Arquivos de tema JSON |

631| Monitors | `monitors/monitors.json` | O array de monitors |

632| Executáveis | `bin/` | Arquivos aqui estão no `PATH` da ferramenta Bash enquanto o plugin está habilitado, então Claude os executa como comandos simples. claude.ai e Cowork não instalam um plugin que tem este diretório, incluindo um que você [distribui através das configurações de organização claude.ai](/docs/pt/plugins/host-marketplace#distribute-through-organization-settings) |

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

634 

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

636 

637```text theme={null}

638deploy-tools/

639├── .claude-plugin/

640│ └── plugin.json

641├── skills/

642│ └── deploy/

643│ └── SKILL.md

644├── commands/

645│ └── status.md

646├── agents/

647│ └── reviewer.md

648├── hooks/

649│ └── hooks.json

650├── monitors/

651│ └── monitors.json

652├── output-styles/

653│ └── terse.md

654├── themes/

655│ └── dracula.json

656├── workflows/

657│ └── release-audit.js

658├── bin/

659│ └── deploy-tool

660├── scripts/

661│ └── format.sh

662├── settings.json

663├── .mcp.json

664└── .lsp.json

665```

666 

667Para clicar através deste layout e ler o que cada arquivo faz, abra o [explorador de plugin](/docs/pt/plugins/components#explore-the-plugin-directory).

668 

669Um `CLAUDE.md` na raiz do plugin não é carregado como contexto, e `claude plugin validate` avisa quando encontra um. Para incluir instruções que carregam no contexto de Claude, coloque-as em uma skill.

670 

671<h2 id="marketplace-entries-and-the-manifest">

672 Entradas de marketplace e o manifesto

673</h2>

674 

675Uma [entrada de marketplace](/docs/pt/plugins/marketplace-reference) aceita cada campo nesta página junto com [seus próprios campos](/docs/pt/plugins/marketplace-reference#plugin-entries), incluindo `strict`.

676 

677O campo `strict` decide se a entrada pode adicionar componentes a um plugin que tem seu próprio `plugin.json`. Padrão é `true`.

678 

679<h3 id="how-entry-fields-combine-with-plugin-json">

680 Como campos de entrada se combinam com `plugin.json`

681</h3>

682 

683A entrada serve como o manifesto, adiciona componentes a ele, ou entra em conflito com ele:

684 

685* **Sem `plugin.json`**: a entrada é o manifesto, independentemente de `strict`. Hooks de entrada carregam apenas na forma de objeto inline. Para um caminho de arquivo ou array lá, a aba **Errors** do `/plugin` mostra um erro `not yet supported in a marketplace entry`

686* **`plugin.json` presente, `strict` não definido ou `true`**: Claude Code carrega o manifesto e anexa `commands`, `agents`, `skills`, `outputStyles` e `themes` da entrada a ele. Para `hooks`, os matchers da entrada para um evento substituem os matchers do manifesto para esse mesmo evento, e eventos que apenas o manifesto declara mantêm os deles

687* **`plugin.json` presente, `strict: false`**: uma entrada que declara qualquer um de `commands`, `agents`, `skills`, `hooks`, `outputStyles` ou `themes` é um conflito, e o plugin falha ao carregar com `Plugin <name> has conflicting manifests`

688 

689Quando uma [entrada de marketplace cuja `source` é a raiz do marketplace](/docs/pt/plugins/marketplace-reference) lista subdiretórios `skills` específicos, apenas esses subdiretórios carregam, e o diretório padrão `skills/` do plugin não é escaneado. Uma chave `skills` no manifesto em vez disso [adiciona ao padrão](#how-each-key-combines-with-its-default-location).

690 

691<h3 id="metadata-precedence">

692 Precedência de metadados

693</h3>

694 

695Alguns campos de metadados têm uma precedência fixa independentemente de `strict`:

696 

697* **`defaultEnabled` e campos de exibição**: o `defaultEnabled` da entrada e seus [campos de exibição](/docs/pt/plugins/marketplace-reference#entry-and-plugin-json) como `displayName` substituem os do manifesto

698* **`version`**: o `version` do manifesto substitui o da entrada

699* **`name`**: quando a entrada lista o plugin sob um `name` diferente do manifesto, `enabledPlugins` usa o nome da entrada, e componentes são namespaced sob o nome do manifesto

700 

701Para a tabela de precedência completa, veja [Modo estrito](/docs/pt/plugins/marketplace-reference).

702 

703<h2 id="next-steps">

704 Próximos passos

705</h2>

706 

707* [Adicionar componentes a um plugin](/docs/pt/plugins/components): o que cada componente faz em tempo de execução, com um exemplo que valida

708* [Referência de marketplace](/docs/pt/plugins/marketplace-reference): os campos de entrada que um marketplace pode definir para seu plugin

709* [Referência de comandos de plugin](/docs/pt/plugins/cli-reference#plugin-validate): flags e saída de `claude plugin validate`

710* [Solucionar problemas de plugins](/docs/pt/plugins/troubleshooting#claude-plugin-validate-reports-errors): cada mensagem de validação com sua correção

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# Referência do marketplace

6 

7> Referência completa dos campos marketplace.json, entradas de plugins e dos objetos de origem do plugin e marketplace, com onde cada um é válido.

8 

9`marketplace.json` é o arquivo que define um marketplace de plugins. Ele contém o nome do marketplace, seu proprietário e uma entrada por plugin. A origem do plugin de cada entrada diz onde Claude Code busca esse plugin.

10 

11Uma origem de marketplace é um objeto separado que diz onde Claude Code busca o próprio arquivo marketplace. Você escreve um nas configurações, ou Claude Code constrói um quando você executa `claude plugin marketplace add`.

12 

13Esta referência é para mantenedores de marketplace que precisam de um nome de campo ou valor exato, e para administradores que precisam saber quais valores de `source` são válidos em [`extraKnownMarketplaces`](/docs/pt/settings-reference#extraknownmarketplaces), [`strictKnownMarketplaces`](/docs/pt/settings-reference#strictknownmarketplaces) e [`blockedMarketplaces`](/docs/pt/plugins/org#restrict-what-users-can-install).

14 

15<Note>

16 Estes casos são cobertos em outras páginas:

17 

18 * **Construir ou hospedar um marketplace**: veja [Create a marketplace](/docs/pt/plugins/create-marketplace) e [Host and maintain a marketplace](/docs/pt/plugins/host-marketplace)

19 * **Receitas de lista de permissões e bloqueio**: veja [Manage plugins for your organization](/docs/pt/plugins/org)

20</Note>

21 

22Encontre a seção para o que você está escrevendo ou lendo:

23 

24* **O arquivo marketplace**: [Top-level fields](#top-level-fields) e [Plugin entries](#plugin-entries)

25* **A `source` de uma entrada**: [Plugin sources](#plugin-sources)

26* **Um objeto `source` nas configurações**: [Marketplace sources](#marketplace-sources)

27* **Saída de [`claude plugin validate <path>`](/docs/pt/plugins/cli-reference)**: [Validation messages](#validation-messages), que mapeia cada mensagem para o campo que ela nomeia

28 

29<h2 id="marketplace-file">

30 Arquivo marketplace

31</h2>

32 

33Salve o arquivo marketplace em `.claude-plugin/marketplace.json` no diretório do seu marketplace. Se você manter o arquivo em outro lugar no repositório, os usuários precisam declarar o marketplace em [`extraKnownMarketplaces`](/docs/pt/settings-reference#extraknownmarketplaces) com `path` definido em sua origem, porque `claude plugin marketplace add` não tem opção para isso.

34 

35O diretório que contém `.claude-plugin/` é chamado de raiz do marketplace, e toda origem de plugin relativa se resolve a partir dele, não a partir de `.claude-plugin/`.

36 

37Cada usuário registra um marketplace por `name`, então um usuário não pode ter dois marketplaces com o mesmo nome registrados ao mesmo tempo.

38 

39Claude Code ignora uma chave de nível superior desconhecida ou uma chave de entrada de plugin em vez de rejeitá-la, então um erro de digitação carrega silenciosamente. `claude plugin validate` relata cada chave desconhecida como um aviso.

40 

41<h3 id="reserved-names">

42 Nomes reservados

43</h3>

44 

45Você não pode dar ao seu marketplace nenhum dos seguintes nomes:

46 

47* **Nomes de marketplace oficial**: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `life-sciences`, `knowledge-work-plugins`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`, `first-party-plugins` e `claude-tag-plugins`. Reservado a menos que o marketplace venha de uma [origem de marketplace](#marketplace-sources) `github` ou `git` sob `github.com/anthropics/`.

48* **Nomes de marketplace comunitário**: `claude-community`, `claude-plugins-community` e `healthcare`. Reservado sob a mesma regra que os nomes oficiais.

49* **Nomes de diretório de plugins**: `anthropic-plugin-directory` e `claude-plugin-directory`. Reservado sob a mesma regra que os nomes oficiais.

50* **Nomes que se passam por um marketplace oficial**: nomes como `official-claude-plugins` ou `claude-plugins-v2`, e qualquer nome contendo um caractere não-ASCII. O erro é `Marketplace name impersonates an official Anthropic/Claude marketplace`. Um caractere de controle ou formatação bidirecional em um nome também relata `Marketplace name cannot contain control or bidirectional-formatting characters`.

51* <span id="reserved-name-spellings" />**Outra grafia de um nome reservado**: um nome que difere de um nome reservado apenas por um ponto final, ou por um símbolo diferente de um hífen no lugar de um hífen, então `claude.code.plugins` conta como `claude-code-plugins`. `claude plugin validate` aceita tal nome; adicionar o marketplace falha com [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/pt/errors#marketplace-name-is-another-spelling-of-a-reserved-name), e um marketplace já registrado sob um para de carregar. Esta verificação requer Claude Code v2.1.280 ou posterior.

52* **Nomes que Claude Code usa para plugins que não vêm de um marketplace**: `inline` para plugins carregados com [`--plugin-dir`](/docs/pt/cli-reference), `builtin` para plugins integrados, `skills-dir` para plugins carregados automaticamente de [`.claude/skills/`](/docs/pt/skills) e `synced` para plugins sincronizados de sua conta claude.ai. `claude-plugin-test` também é reservado. `skills-dir` também aparece como `{"source": "skills-dir"}` em `strictKnownMarketplaces` e `blockedMarketplaces`, descrito em [Source values valid only in policy lists](#source-values-valid-only-in-policy-lists).

53* **`npm`, `pip`, `uv`, `cargo`, `github` e `gh`**: reservado em qualquer capitalização. Esta verificação requer Claude Code v2.1.275 ou posterior.

54* **Nomes começando com `claudeai-`**: reservado para marketplaces hospedados em claude.ai. `claude plugin marketplace add` recusa qualquer outro marketplace que use um com `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`.

55 

56<h2 id="top-level-fields">

57 Top-level fields

58</h2>

59 

60A tabela lista cada chave que Claude Code lê de `marketplace.json`. `name`, `owner` e `plugins` são obrigatórios.

61 

62| Field | Type | Description |

63| :----------------------------------------- | :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

64| `name` | string | Identificador do marketplace. Sem espaços, caracteres de controle ou caracteres de formatação bidirecional, sem `/` ou `\`, sem `..` e não `.`. Veja [Reserved names](#reserved-names). Os usuários digitam após `@` quando instalam um plugin |

65| `owner` | object | Informações do mantenedor. `name` é obrigatório; `email` e `url` são opcionais |

66| `plugins` | array | [Plugin entries](#plugin-entries). Cada entrada é validada por conta própria, então uma entrada inválida não falha o marketplace |

67| `$schema` | string | URL do JSON Schema para preenchimento automático do editor. Ignorado no tempo de carregamento |

68| `description` | string | Descrição do marketplace mostrada aos usuários. `claude plugin validate` avisa quando está faltando |

69| `version` | string | Versão do manifesto do marketplace |

70| `metadata.description`, `metadata.version` | string | Local alternativo para `description` e `version` |

71| `metadata.pluginRoot` | string | Diretório que nomes de origem de plugin simples se resolvem sob. Veja [Relative path plugin source](#relative-path-plugin-source). Requer Claude Code v2.1.239 ou posterior |

72| `forceRemoveDeletedPlugins` | boolean | Quando `true`, um plugin que você remove de `plugins` é desinstalado nas máquinas dos usuários. Veja [Host and maintain a marketplace](/docs/pt/plugins/host-marketplace) |

73| `allowCrossMarketplaceDependenciesOn` | array of strings | Nomes de marketplace cujos plugins podem ser instalados como dependências dos plugins deste marketplace. Quando você instala um plugin, apenas a lista no próprio marketplace do plugin se aplica, para toda sua cadeia de dependência. Veja [Plugin dependencies](/docs/pt/plugins/dependencies) |

74| `renames` | object | Mapa de um `name` de plugin anterior para seu nome atual, ou para `null` para um plugin que você removeu. Requer Claude Code v2.1.193 ou posterior. Veja [Host and maintain a marketplace](/docs/pt/plugins/host-marketplace) |

75 

76<h2 id="plugin-entries">

77 Plugin entries

78</h2>

79 

80Cada objeto no array `plugins` de nível superior de `marketplace.json` nomeia um plugin e diz onde buscá-lo. `name` e `source` são obrigatórios.

81 

82Uma entrada também aceita cada campo [`plugin.json`](/docs/pt/plugins/manifest-reference), como `description`, `version`, `author`, `commands` e `hooks`. Para quando esses campos se aplicam, veja [How an entry combines with plugin.json](#entry-and-plugin-json).

83 

84A tabela lista os campos próprios da entrada e os campos de manifesto cuja significação muda em uma entrada.

85 

86| Field | Type | Description |

87| :--------------- | :--------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

88| `name` | string | Identificador do plugin, sem espaços, caracteres de controle ou caracteres de formatação bidirecional. Os usuários digitam antes de `@` quando instalam, mesmo quando o próprio `plugin.json` do plugin define um `name` diferente |

89| `source` | string or object | Onde buscar o plugin. Veja [Plugin sources](#plugin-sources) |

90| `description` | string | Mostrado em listagens e detalhes de [`/plugin`](/docs/pt/plugins/install) |

91| `version` | string | String de versão para o plugin. Quando `plugin.json` também define `version`, `plugin.json` tem precedência e `claude plugin validate` avisa. Veja [Plugin loading reference](/docs/pt/plugins/loading) |

92| `category` | string | Categoria de forma livre para organizar o catálogo |

93| `tags` | array of strings | Tags de forma livre para busca |

94| `strict` | boolean | Padrão `true`. Se `plugin.json` é a fonte definitiva para os componentes do plugin. Veja [Strict mode](#strict-mode) |

95| `relevance` | object | Sinais que dizem a Claude Code quando sugerir o plugin. Veja [Recommend plugins for your org](/docs/pt/plugins/relevance) |

96| `dependencies` | array | Plugins que devem estar habilitados para este funcionar. Cada item é `"name"`, `"name@marketplace"` ou um objeto. Veja [Plugin dependencies](/docs/pt/plugins/dependencies) |

97| `defaultEnabled` | boolean | Padrão `true`. Se o plugin começa habilitado quando o usuário não o definiu em [`enabledPlugins`](/docs/pt/settings-reference#enabledplugins). O valor da entrada tem precedência sobre `plugin.json` |

98| `displayName` | string | Nome legível por humanos mostrado na UI. Quando nem a entrada nem o `plugin.json` do plugin define um, os usuários veem o `name` do plugin |

99| `metadata` | object | Objeto de forma livre para seus próprios campos. Claude Code não o lê. Requer Claude Code v2.1.222 ou posterior |

100| `headers` | object | Cabeçalhos HTTP que Claude Code envia quando baixa o [archive](#archive-plugin-source) desta entrada. Um cabeçalho definido aqui substitui um cabeçalho de mesmo nome da [`headers`](#fields-by-type) da origem do marketplace. Requer Claude Code v2.1.238 ou posterior |

101| `headersHelper` | string | Comando que imprime os cabeçalhos de download de arquivo desta entrada como um objeto JSON, para uma credencial que expira. A entrada também deve definir [`"strict": false`](#strict-mode). Requer Claude Code v2.1.238 ou posterior. Veja [Authenticate archive downloads](/docs/pt/plugins/host-marketplace#authenticate-archive-downloads) |

102 

103<h3 id="entry-and-plugin-json">

104 How an entry combines with plugin.json

105</h3>

106 

107Os campos da entrada se aplicam diferentemente a um plugin buscado que tem seu próprio `.claude-plugin/plugin.json` e a um que não tem:

108 

109* **Sem `plugin.json`**: a entrada é o manifesto independentemente de `strict`. Cada campo de manifesto na entrada se aplica, incluindo [`mcpServers`, `lspServers`, `userConfig` e `channels`](/docs/pt/plugins/manifest-reference).

110* **`plugin.json` presente**: `plugin.json` é o manifesto. [Strict mode](#strict-mode) decide se os seis campos de componente da entrada, `commands`, `agents`, `skills`, `hooks`, `outputStyles` e `themes`, são combinados com ele ou rejeitados como um conflito. Entrada `mcpServers`, `lspServers`, `userConfig` e `channels` não se aplicam. Declare-os em `plugin.json`.

111 

112<h4 id="hooks-in-an-entry">

113 Hooks in an entry

114</h4>

115 

116Escreva `hooks` de entrada como um objeto inline que mapeia nomes de eventos de hook para arrays de matcher. Se você escrever um caminho de arquivo ou um array em vez disso, `claude plugin validate` o passa. Esses hooks nunca são executados, e Claude Code relata um erro `not yet supported in a marketplace entry` para o plugin. Coloque hooks baseados em arquivo no próprio [`hooks/hooks.json`](/docs/pt/plugins/components) do plugin ou `plugin.json`.

117 

118<h4 id="display-fields">

119 Display fields

120</h4>

121 

122Tanto a entrada quanto o próprio `plugin.json` do plugin podem definir os campos de exibição `displayName`, `description`, `author`, `homepage`, `repository`, `license` e `keywords`. Os usuários veem esses valores em listagens e detalhes de plugins, antes e depois da instalação:

123 

124* Para um campo que você define na entrada, os usuários veem o valor da entrada, mesmo quando `plugin.json` define um diferente.

125* Para um campo que a entrada deixa indefinido, os usuários veem o valor de `plugin.json`.

126 

127Antes da instalação, Claude Code pode ler `plugin.json` apenas para entradas com uma [origem de caminho relativo](#relative-path-plugin-source), cujos arquivos de plugin estão dentro do próprio marketplace. Para uma entrada com qualquer outro tipo de origem, os usuários veem apenas os campos próprios da entrada até instalarem o plugin.

128 

129<h3 id="strict-mode">

130 Strict mode

131</h3>

132 

133`strict` decide o que acontece quando o plugin buscado tem seu próprio `plugin.json` e a entrada também declara qualquer um dos [campos de componente](#entry-and-plugin-json): `commands`, `agents`, `skills`, `hooks`, `outputStyles` ou `themes`. Com `strict: true`, o padrão, Claude Code anexa os campos de componente da entrada a `plugin.json`, exceto `hooks`, cujos matchers substituem os do manifesto por evento. Com `strict: false`, uma entrada que declara qualquer campo de componente é um conflito, e o plugin falha ao carregar. A tabela mostra cada combinação de `strict`, `plugin.json` e campos de componente da entrada.

134 

135| `strict` | `plugin.json` | Entry component fields | Result |

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

137| any | absent | any | A entrada é o manifesto |

138| `true`, o padrão | present | any | `plugin.json` é a autoridade. Claude Code anexa os campos de componente da entrada a ele, exceto `hooks`, cujos matchers [substituem os do manifesto por evento](/docs/pt/plugins/manifest-reference#how-entry-fields-combine-with-plugin-json) |

139| `false` | present | none | `plugin.json` é o manifesto, como com `true` |

140| `false` | present | one or more | Conflito. O plugin falha ao carregar com `Plugin <name> has conflicting manifests: both plugin.json and marketplace entry specify components` |

141 

142<h2 id="plugin-sources">

143 Plugin sources

144</h2>

145 

146A `source` de uma entrada de plugin diz onde Claude Code busca esse plugin. É uma string de caminho relativo ou um objeto cuja própria chave `source` nomeia o tipo, então uma entrada se parece com `"source": { "source": "github", "repo": "your-org/formatter" }`.

147 

148A tabela lista cada tipo de origem de plugin e seus campos.

149 

150| Type | Fields | Notes |

151| :------------ | :------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

152| Relative path | a própria string | Um diretório dentro do marketplace, resolvido a partir da raiz do marketplace. Deve começar com `./`, a menos que você escreva um [nome simples sob `metadata.pluginRoot`](#relative-path-plugin-source). `"."` por si só significa a raiz em si |

153| `github` | `repo`, `ref`, `sha` | Repositório GitHub na forma `owner/repo` |

154| `url` | `url`, `ref`, `sha` | Qualquer repositório git por URL |

155| `git-subdir` | `url`, `path`, `ref`, `sha` | Um subdiretório de um repositório git, buscado com um clone parcial esparso |

156| `npm` | `package`, `version`, `registry` | Pacote npm, buscado com seu cliente npm e desempacotado sem executar scripts de instalação |

157| `archive` | `url`, `sha256` | Arquivo Zip sobre HTTPS. Requer Claude Code v2.1.224 ou posterior |

158| `command` | `command`, `timeout`, `mode` | Diretório impresso por um comando que Claude Code executa na máquina do usuário. Requer Claude Code v2.1.229 ou posterior |

159 

160Os nomes `url` e `github` também são tipos de [origem de marketplace](#marketplace-sources), onde `url` significa um link direto a um arquivo `marketplace.json` em vez de um repositório git. `git` existe apenas como uma origem de marketplace, e `npm` existe como ambos. `git-subdir`, `archive` e `command` existem apenas como origens de plugin.

161 

162Use um caminho relativo para um plugin em um subdiretório do próprio repositório do marketplace. Use `git-subdir` para um subdiretório de algum outro repositório.

163 

164As origens `github`, `url` e `git-subdir` compartilham os campos `ref` e `sha`:

165 

166* **`ref`**: uma branch ou tag. Padrão para a branch padrão do repositório.

167* **`sha`**: um SHA de commit completo de 40 caracteres em minúsculas. Quando você define tanto `ref` quanto `sha`, Claude Code faz checkout de `sha`. Na maioria dos hosts git, incluindo GitHub, GitLab e Bitbucket, isso significa que a instalação é bem-sucedida mesmo se a branch ou tag nomeada por `ref` foi deletada upstream, desde que o commit ainda seja alcançável do repositório. Alguns servidores, como AWS CodeCommit, não suportam buscar commits por SHA. Nesses servidores, o `ref` ainda deve existir e o commit fixado deve ser alcançável a partir dele.

168 

169Para como cada tipo é buscado, armazenado em cache e versionado, veja [Plugin loading reference](/docs/pt/plugins/loading).

170 

171<h3 id="relative-path-plugin-source">

172 Relative path plugin source

173</h3>

174 

175O caminho se resolve a partir da raiz do marketplace. `./plugins/formatter` é `<root>/plugins/formatter` mesmo que o arquivo marketplace esteja em `<root>/.claude-plugin/`.

176 

177Um caminho contendo `..` falha na validação. Em macOS e Linux, Claude Code recusa um caminho de entrada que contém uma barra invertida em qualquer lugar após o `./` inicial, então escreva o caminho com barras para frente.

178 

179```json theme={null}

180{ "name": "formatter", "source": "./plugins/formatter" }

181```

182 

183Um caminho relativo se resolve apenas quando Claude Code tem os arquivos do marketplace, então verifique o tipo de [origem de marketplace](#marketplace-sources):

184 

185* **`github`, `git`, `file` e `directory`**: Claude Code tem os arquivos do marketplace.

186* **`url`**: Claude Code busca apenas `marketplace.json`, então caminhos relativos não podem se resolver. Dê a cada plugin uma origem de objeto em vez disso, como `github` ou `git-subdir`.

187* **`settings`**: caminhos relativos são rejeitados imediatamente.

188 

189<h4 id="bare-names-under-pluginroot">

190 Bare names under pluginRoot

191</h4>

192 

193Um nome simples é um único nome de diretório sem `/`, como `"formatter"`. Para escrever nomes simples em vez de caminhos `./`, defina [`metadata.pluginRoot`](#top-level-fields) para o diretório que eles se resolvem sob. Com `"pluginRoot": "./plugins"`, `"source": "formatter"` se resolve para `./plugins/formatter`. Requer Claude Code v2.1.239 ou posterior.

194 

195`metadata.pluginRoot` tem estes limites:

196 

197* Ele próprio deve ser um caminho relativo dentro do marketplace.

198* Não tem efeito em uma origem que já começa com `./`.

199* Uma origem que contém um `/`, como `team-a/formatter`, não é um nome simples e ainda precisa do prefixo `./`, mesmo quando `metadata.pluginRoot` está definido.

200 

201<h3 id="github-plugin-source">

202 github plugin source

203</h3>

204 

205`repo` leva `owner/repo`. `ref` e `sha` são opcionais.

206 

207```json theme={null}

208{

209 "name": "formatter",

210 "source": {

211 "source": "github",

212 "repo": "your-org/formatter",

213 "ref": "v2.0.0",

214 "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"

215 }

216}

217```

218 

219<h3 id="url-plugin-source">

220 url plugin source

221</h3>

222 

223`url` é uma URL git completa: `https://`, `http://`, `file://` ou `git@`. Um sufixo `.git` não é obrigatório, então URLs do Azure DevOps e AWS CodeCommit funcionam como escritas. Este tipo não leva o atalho `owner/repo`.

224 

225```json theme={null}

226{

227 "name": "formatter",

228 "source": {

229 "source": "url",

230 "url": "https://gitlab.example.com/your-group/formatter.git",

231 "ref": "main"

232 }

233}

234```

235 

236<h3 id="git-subdir-plugin-source">

237 git-subdir plugin source

238</h3>

239 

240`url` aceita uma URL git completa ou atalho GitHub `owner/repo`. `path` é o subdiretório que contém o plugin, e Claude Code baixa apenas esse subdiretório.

241 

242```json theme={null}

243{

244 "name": "formatter",

245 "source": {

246 "source": "git-subdir",

247 "url": "https://github.com/your-org/monorepo.git",

248 "path": "tools/formatter"

249 }

250}

251```

252 

253<h3 id="npm-plugin-source">

254 npm plugin source

255</h3>

256 

257Uma origem `npm` leva estes campos:

258 

259* `package`: um nome de pacote, ou um nome com escopo como `@your-org/formatter`

260* `version`: uma versão ou intervalo

261* `registry`: uma URL de registro para um pacote que não está no registro padrão

262 

263Claude Code busca o pacote com seu cliente npm. Os scripts de instalação do pacote, como `preinstall` ou `postinstall`, nunca são executados, e suas dependências não são instaladas durante a busca. Se o pacote tiver um lockfile suportado ao lado de seu `package.json`, Claude Code instala essas [dependências de pacote Node.js](/docs/pt/plugins/loading#node-js-package-dependencies) em uma etapa separada, também com scripts desabilitados.

264 

265```json theme={null}

266{

267 "name": "formatter",

268 "source": {

269 "source": "npm",

270 "package": "@your-org/formatter",

271 "version": "^2.0.0",

272 "registry": "https://npm.example.com"

273 }

274}

275```

276 

277<h3 id="archive-plugin-source">

278 archive plugin source

279</h3>

280 

281`url` deve usar `https://` e não pode apontar para um host loopback, link-local ou cloud-metadata.

282 

283A raiz do plugin pode estar no topo do zip ou um diretório abaixo.

284 

285`sha256` é o resumo do arquivo como 64 caracteres hexadecimais, maiúsculos ou minúsculos. Quando você o define, Claude Code recusa um download que não corresponde.

286 

287```json theme={null}

288{

289 "name": "formatter",

290 "source": {

291 "source": "archive",

292 "url": "https://artifacts.example.com/formatter-2.0.0.zip",

293 "sha256": "6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1"

294 }

295}

296```

297 

298<h3 id="command-plugin-source">

299 command plugin source

300</h3>

301 

302Use uma origem `command` quando uma ferramenta instalada na máquina do usuário produz o diretório do plugin, como um IDE que renderiza seu plugin para a cadeia de ferramentas que o usuário selecionou. Claude Code executa o comando quando o usuário instala ou atualiza o plugin, e [novamente uma vez por sessão](/docs/pt/plugins/loading#when-a-command-source-re-runs), então os usuários obtêm a saída alterada da ferramenta sem reinstalar.

303 

304Uma origem `command` leva estes campos:

305 

306* `command`: um comando shell que imprime o caminho absoluto do diretório do plugin como uma linha e sai com 0. Claude Code mostra aos usuários a string inteira para revisão antes de executá-la. Escreva-a como ASCII imprimível, no máximo 500 caracteres, sem uma sequência de quatro ou mais espaços.

307* `timeout`: um número inteiro de segundos de 1 a 600. Padrão para 60.

308* `mode`: `copy`, o padrão, ou `link`. Veja [Copy mode and link mode](#copy-mode-and-link-mode).

309 

310```json theme={null}

311{

312 "name": "formatter",

313 "source": {

314 "source": "command",

315 "command": "my-tool claude-plugin-path",

316 "timeout": 120

317 }

318}

319```

320 

321Para como os usuários aceitam o comando, veja [Install from your shell](/docs/pt/plugins/install#install-from-your-shell). Para o que os usuários veem depois que você o alteram, veja [Change the command of a command source](/docs/pt/plugins/host-marketplace#change-the-command-of-a-command-source). Administradores desligam origens de comando com [`disableCommandPluginSources`](/docs/pt/settings-reference#disablecommandpluginsources).

322 

323<h4 id="what-the-command-must-do">

324 What the command must do

325</h4>

326 

327Escreva o comando para atender a estes requisitos:

328 

329* **Shell e diretório de trabalho**: Claude Code executa o comando através de `sh`, ou através de `cmd.exe` no Windows, a partir do diretório home do usuário. Dê um caminho absoluto ou um comando em `PATH`.

330* **Saída**: imprima exatamente uma linha em stdout, o caminho absoluto do diretório do plugin, e saia com 0 dentro de `timeout` segundos.

331* **Conteúdo do diretório**: o diretório contém o plugin completo no momento em que o comando sai. O caminho pode diferir de uma execução para a próxima.

332 

333<h4 id="output-that-fails-the-install-or-update">

334 Output that fails the install or update

335</h4>

336 

337A instalação ou atualização falha quando o comando sai com não-zero, executa mais tempo que `timeout`, ou imprime qualquer coisa diferente de um caminho absoluto. Também falha quando o diretório impresso é um destes:

338 

339* **Sem conteúdo de plugin**: o diretório impresso não tem conteúdo de plugin em seu nível superior, como um diretório `.claude-plugin/` ou um diretório `skills/`, `commands/`, `agents/` ou `hooks/`.

340* **O diretório da própria sessão**: o diretório impresso é aquele em que Claude Code foi iniciado, ou um de seus pais.

341* **Um caminho de rede**: no Windows, o caminho impresso é um caminho UNC.

342* **Muito grande para copiar**: em modo copy, o diretório é maior que 256 MiB ou tem mais de 20.000 entradas.

343 

344<h4 id="copy-mode-and-link-mode">

345 Copy mode and link mode

346</h4>

347 

348`mode` decide se Claude Code copia o diretório impresso ou o usa no lugar:

349 

350* **`copy`**: Claude Code copia o diretório para o cache de plugins e deriva a [versão do plugin](/docs/pt/plugins/loading#how-claude-code-computes-the-version) de um hash dos arquivos copiados. Sua ferramenta pode deletar ou reescrever o diretório após o comando sair. Uma re-execução que produz arquivos idênticos conta como atualizado.

351* **`link`**: Claude Code preenche a entrada de cache do plugin com um link para cada entrada de nível superior do diretório impresso e carrega os arquivos no lugar. Nada é copiado, conteúdos de arquivo não são hash, e os limites de tamanho não se aplicam. Use-o para um diretório muito grande para copiar, como uma exportação de SDK renderizada.

352 

353Um plugin em modo link tem estes requisitos:

354 

355* **Mantenha o diretório no lugar**: Claude Code carrega o plugin através dos links a cada inicialização, então o diretório impresso deve ficar onde está enquanto o plugin permanecer instalado.

356* **Imprima um caminho diferente para sinalizar novo conteúdo**: a versão vem do caminho real do diretório impresso e suas entradas de nível superior, não dos arquivos dentro deles.

357* **Mantenha symlinks de nível superior dentro do diretório**: a instalação falha se uma entrada de nível superior é um symlink que aponta para fora do diretório impresso.

358* **Inclua `node_modules`**: Claude Code pula a [instalação de dependência de pacote Node.js](/docs/pt/plugins/loading#node-js-package-dependencies) para um plugin em modo link, então imprima um diretório que já contém os pacotes que o plugin precisa.

359* **Sessões iniciadas dentro do diretório**: uma sessão iniciada no diretório impresso ou em qualquer lugar abaixo dele não carrega o plugin.

360* **Não no Windows**: Claude Code recusa instalar um plugin em modo link no Windows. Declare `"mode": "copy"` lá.

361 

362<h2 id="marketplace-sources">

363 Fontes do marketplace

364</h2>

365 

366Uma fonte do marketplace diz onde Claude Code busca um `marketplace.json`. A CLI constrói uma para você quando você adiciona um marketplace, e você escreve uma você mesmo nas configurações:

367 

368* **[`claude plugin marketplace add`](/docs/pt/plugins/cli-reference)**: Claude Code constrói a fonte a partir da string que você passa.

369* **[`extraKnownMarketplaces`](/docs/pt/settings-reference#extraknownmarketplaces)**: você escreve a fonte você mesmo como o objeto `source`.

370* **[`strictKnownMarketplaces`](/docs/pt/settings-reference#strictknownmarketplaces) e [`blockedMarketplaces`](/docs/pt/plugins/org#restrict-what-users-can-install)**: administradores escrevem fontes nessas duas listas de política. `strictKnownMarketplaces` é a lista de permissão e `blockedMarketplaces` é a lista de bloqueio.

371 

372Os nomes de tipo `url`, `git` e `github` significam algo diferente em uma fonte do marketplace do que em uma [fonte de plugin](#plugin-sources):

373 

374| Nome do tipo | Como uma fonte do marketplace | Como uma fonte de plugin |

375| :----------- | :----------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------- |

376| `url` | Um link direto para um arquivo `marketplace.json`, com campos `url`, `headers` e `headersHelper` | Um repositório git para clonar, com campos `url`, `ref` e `sha` |

377| `git` | Um repositório git para clonar, com campos `url`, `ref`, `path` e `sparsePaths` | Não existe |

378| `github` | Um repositório GitHub, com campos `repo`, `ref`, `path` e `sparsePaths` | Um repositório GitHub, com campos `repo`, `ref` e `sha`, e sem `path` |

379 

380A tabela lista cada tipo de fonte do marketplace com seus campos, a entrada `claude plugin marketplace add` que a produz, e o que ela faz em cada uma das três chaves de configurações.

381 

382| Tipo | Campos | entrada `marketplace add` | `extraKnownMarketplaces` | `strictKnownMarketplaces` | `blockedMarketplaces` |

383| :------------ | :----------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------- |

384| `url` | `url`, `headers`, `headersHelper` | Uma URL `http://` ou `https://` que não corresponde a um formulário git | Carrega | Permite a mesma URL | Bloqueia a mesma URL |

385| `github` | `repo`, `ref`, `path`, `sparsePaths` | `owner/repo`, `owner/repo@ref` ou `owner/repo#ref` | Carrega | Permite o mesmo `repo`, `ref` e `path`. `repo` pode ser `owner/*` | Bloqueia o mesmo, e uma URL `git` para o mesmo repositório |

386| `git` | `url`, `ref`, `path`, `sparsePaths` | Uma URL `user@host:path`, ou uma URL `https://` que termina em `.git`, contém `/_git/`, ou nomeia um repositório github.com ou gitlab.com. `#ref` fixa uma ref | Carrega | Permite a mesma URL, `ref` e `path` | Bloqueia o mesmo, e outras grafias do mesmo repositório github.com |

387| `npm` | `package` | Não produzido | Falha ao carregar: `NPM marketplace sources not yet implemented` | Analisa mas não corresponde a nada, porque nada registra um marketplace `npm` | Analisa mas não corresponde a nada |

388| `file` | `path` | Um caminho para um arquivo `.json` | Carrega | Permite o mesmo caminho | Bloqueia o mesmo caminho |

389| `directory` | `path` | Um caminho para um diretório | Carrega | Permite o mesmo caminho | Bloqueia o mesmo caminho |

390| `settings` | `name`, `plugins`, `owner` | Não produzido | Carrega | Permite uma entrada com o mesmo `name` e `plugins` idênticos | Bloqueia o mesmo `name` |

391| `skills-dir` | nenhum | Não produzido | Falha ao carregar: `Unsupported marketplace source type` | Mantém [plugins de diretório de skills](/docs/pt/plugins/org#keep-skills-directory-plugins-loading) carregando enquanto uma lista de permissão está definida. Veja [Valores de fonte válidos apenas em listas de política](#source-values-valid-only-in-policy-lists) | Para plugins de diretório de skills de carregar |

392| `hostPattern` | `hostPattern` | Não produzido | Falha ao carregar: `Unsupported marketplace source type` | Permite fontes `github`, `git` e `url` cujo host corresponde | Bloqueia essas fontes |

393| `pathPattern` | `pathPattern` | Não produzido | Falha ao carregar: `Unsupported marketplace source type` | Permite fontes `file` e `directory` cujo `path` corresponde | Bloqueia essas fontes |

394 

395<h3 id="fields-by-type">

396 Campos por tipo

397</h3>

398 

399A tabela lista cada campo de fonte do marketplace que tem um padrão, uma restrição ou um significado específico para seu tipo.

400 

401| Campo | Tipos | Descrição |

402| :-------------- | :-------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

403| `url` | `url` | Link para o arquivo `marketplace.json`. Claude Code baixa apenas esse arquivo, então os plugins do marketplace não podem usar [fontes de caminho relativo](#relative-path-plugin-source) |

404| `url` | `git` | O repositório git para clonar |

405| `headers` | `url` | Mapa de cabeçalhos HTTP que Claude Code envia com a busca, para hosts autenticados |

406| `headersHelper` | `url` | Comando que imprime cabeçalhos cujos valores são muito efêmeros para listar em `headers`. Requer Claude Code v2.1.238 ou posterior. Veja [Autenticar downloads de arquivo](/docs/pt/plugins/host-marketplace#authenticate-archive-downloads) |

407| `repo` | `github` | Em `marketplace add` e `extraKnownMarketplaces`, `repo` deve nomear um repositório. `marketplace add` rejeita `owner/*` como não sendo um atalho `owner/repo` válido; em `extraKnownMarketplaces` Claude Code o toma literalmente e o clone falha |

408| `ref` | `github`, `git` | Branch ou tag. Padrão é o branch padrão do repositório |

409| `path` | `github`, `git` | O caminho do arquivo do marketplace dentro do repositório. Padrão é `.claude-plugin/marketplace.json` |

410| `path` | `file` | O arquivo do marketplace em si. Claude Code o lê no local e toma o diretório dois níveis acima como a raiz do marketplace, então mantenha o arquivo em `<root>/.claude-plugin/marketplace.json` |

411| `path` | `directory` | A raiz do marketplace, o diretório que contém `.claude-plugin/marketplace.json` |

412| `sparsePaths` | `github`, `git` | Array de diretórios para um checkout esparso, como `[".claude-plugin", "plugins"]`. `claude plugin marketplace add --sparse` o define |

413| `skipLfs` | `github`, `git` | Aceito e não tem efeito. Veja [Manter arquivos de plugin fora do Git LFS](/docs/pt/plugins/host-marketplace#keep-plugin-files-out-of-git-lfs) |

414| `name` | `settings` | Deve ser igual à chave `extraKnownMarketplaces` e não pode ser um [nome reservado](#reserved-names) |

415| `plugins` | `settings` | O catálogo inline, sem arquivo hospedado. Cada item leva `name`, `source`, `description`, `version`, `strict`, `headers` e `headersHelper`. Escreva o `source` de cada item como um tipo de objeto, porque um caminho relativo não tem repositório para resolver contra |

416 

417<h3 id="source-values-valid-only-in-policy-lists">

418 Valores de fonte válidos apenas em listas de política

419</h3>

420 

421`hostPattern`, `pathPattern`, `skills-dir` e a forma `owner/*` de `repo` são válidos apenas nas duas listas de política, `strictKnownMarketplaces` e `blockedMarketplaces`:

422 

423* **`hostPattern` e `pathPattern`**: expressões regulares que Claude Code testa contra uma fonte antes de buscar dela.

424* **`skills-dir`**: não é uma fonte. Se você definir `strictKnownMarketplaces` de qualquer forma, [plugins de diretório de skills](/docs/pt/plugins/org#keep-skills-directory-plugins-loading) param de carregar até que você adicione `{"source": "skills-dir"}` a essa lista.

425* **`owner/*`**: como um valor `repo` de `github`, corresponde a cada repositório sob exatamente esse proprietário do GitHub. Requer Claude Code v2.1.223 ou posterior.

426 

427Para ordem de correspondência, semântica exata de `ref` e receitas, veja [Gerenciar plugins para sua organização](/docs/pt/plugins/org).

428 

429<h3 id="source-objects-in-settings">

430 Objetos de fonte nas configurações

431</h3>

432 

433Um valor `extraKnownMarketplaces` é um mapa do nome do marketplace para um objeto com `source`. Esta entrada registra um marketplace de um repositório git em seu branch `main`:

434 

435```json theme={null}

436{

437 "extraKnownMarketplaces": {

438 "your-marketplace": {

439 "source": {

440 "source": "git",

441 "url": "https://git.example.com/your-org/your-marketplace.git",

442 "ref": "main"

443 }

444 }

445 }

446}

447```

448 

449`strictKnownMarketplaces` e `blockedMarketplaces` são arrays de objetos de fonte. Esta lista de permissão admite um proprietário do GitHub e um host interno:

450 

451```json theme={null}

452{

453 "strictKnownMarketplaces": [

454 { "source": "github", "repo": "your-org/*" },

455 { "source": "hostPattern", "hostPattern": "^git\\.example\\.com$" }

456 ]

457}

458```

459 

460<h2 id="validation-messages">

461 Validation messages

462</h2>

463 

464`claude plugin validate <path>` leva a raiz do marketplace ou o próprio arquivo marketplace. Ele imprime erros e avisos. Para códigos de saída e `--strict`, veja [plugin validate](/docs/pt/plugins/cli-reference#plugin-validate).

465 

466Uma mensagem nomeia uma entrada de plugin por seu índice, escrito como `plugins.1.source` ou `plugins[1].source`.

467 

468Uma mensagem prefixada com um índice de entrada e `plugin.json →`, como `plugins[2] plugin.json →`, é sobre os próprios arquivos desse plugin. [`claude plugin validate` relata erros](/docs/pt/plugins/troubleshooting#claude-plugin-validate-reports-errors) lista essas mensagens com suas correções.

469 

470Avisos que mencionam nomes de sinalizadores Claude Desktop indicam nomes que Claude Code aceita mas Claude Desktop rejeita, porque as regras de nome do Claude Desktop são mais rigorosas.

471 

472A tabela mapeia mensagens de nível de marketplace para o campo que cada uma é sobre.

473 

474| Message | Level | Field |

475| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ | :--------------------------------------------------------------------------------------------------------------------------- |

476| `Marketplace must have a name` | Error | `name` está vazio |

477| `Marketplace name cannot contain spaces. Use kebab-case (e.g., "my-marketplace")` | Error | `name` |

478| `Marketplace name cannot contain path separators (/ or \), ".." sequences, or be "."` | Error | `name` |

479| `Marketplace name impersonates an official Anthropic/Claude marketplace` | Error | `name`. Veja [Reserved names](#reserved-names) |

480| `Marketplace name cannot contain control or bidirectional-formatting characters` | Error | `name` contém um caractere de controle, como um escape ou uma nova linha, ou um caractere de formatação bidirecional Unicode |

481| `Marketplace name "inline" is reserved for --plugin-dir session plugins`, e as variantes `builtin`, `skills-dir`, `synced`, `claude-plugin-test`, `npm`, `pip`, `uv`, `cargo`, `github` e `gh` | Error | `name` |

482| `Author name cannot be empty` | Error | `owner.name` |

483| `Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")` | Error | `plugins[i].name` |

484| `Plugin name cannot contain control or bidirectional-formatting characters` | Error | `plugins[i].name` |

485| `Duplicate plugin name "x" found in marketplace` | Error | Duas entradas compartilham um `name` |

486| `plugins.i.source: Invalid input` | Error | A `source` da entrada não corresponde a nenhum tipo. Veja [Invalid input on a source](#invalid-input-on-a-source) |

487| `plugins[i].source: Path contains "..": <path>` | Error | Uma `source` relativa que escapa da raiz do marketplace |

488| `source.source: 'unsupported' is a parse-time placeholder and cannot be authored` | Error | `plugins[i].source` |

489| `Plugin "x" sets headersHelper but is not "strict": false` | Error | `plugins[i].headersHelper`, em uma entrada `archive` |

490| `chain does not resolve (<reason>) — target must be a name in plugins[], a key in renames, or null` | Error | `renames.<old>` |

491| `target "x" is not a valid plugin name (PluginIdSchema)` | Error | `renames.<old>` |

492| `Unknown field 'x'. Claude Code ignores it at load time.` | Warning | A chave nomeada no nível superior, sob `metadata`, em uma entrada, ou sob a `relevance` de uma entrada |

493| `Marketplace has no plugins defined` | Warning | `plugins` está vazio |

494| `Plugin "x" sets headers/headersHelper, which only apply to "archive" sources; they have no effect on this entry.` | Warning | `plugins[i].headers` ou `plugins[i].headersHelper`, em uma entrada cuja `source` não é `archive` |

495| `Plugin "x" fetches its archive with a headersHelper but sets no sha256 pin` | Warning | `plugins[i].source.sha256` |

496| `Header "x" is a request-routing/identity header that catalog entries may not set; Claude Code drops it at download time.` | Warning | `plugins[i].headers.<name>` |

497| `Local source "x" is or traverses a symlink, so <path> was not read` | Warning | `plugins[i].source` |

498| `No marketplace description provided. Adding a description helps users understand what this marketplace offers` | Warning | `description` |

499| `Entry declares version "x" but <path>/plugin.json says "y". At install time, plugin.json wins` | Warning | `plugins[i].version`, em uma entrada de caminho relativo |

500| `'relevance' must be an object containing topic and signals; got <type>. It will be ignored at load time.` | Warning | `plugins[i].relevance` |

501| `'metadata' must be a free-form object; got <type>. It will be ignored at load time.` | Warning | `plugins[i].metadata` |

502| `'experimental' must be an object containing component declarations; got <type>. It will be ignored at load time.` | Warning | `plugins[i].experimental` |

503| `Marketplace name "x" is reserved in Claude Desktop` | Warning | `name` é `org`, `org-provisioned` ou `unknown`. Claude Desktop rejeita o marketplace |

504| `Marketplace name "x" is not accepted by Claude Desktop (letters, digits, ".", "_", "-"; must start alphanumeric; max 128 chars)` | Warning | `name`. Claude Desktop rejeita o marketplace |

505| `Plugin name "x" is not accepted by Claude Desktop (letters, digits, ".", "_", "-"; must start alphanumeric; max 128 chars)` | Warning | `plugins[i].name`. Claude Desktop descarta a entrada |

506 

507<h3 id="invalid-input-on-a-source">

508 Invalid input on a source

509</h3>

510 

511`Invalid input` em uma `source` significa que o objeto não correspondeu a nenhum tipo de origem. Verifique estas causas:

512 

513* Um caminho relativo que não começa com `./`, diferente de `"."` ou um [nome simples sob `metadata.pluginRoot`](#relative-path-plugin-source)

514* Um `package` `npm` contendo `..`

515* Um tipo de `source` que não é um das [origens de plugin](#plugin-sources)

516* Um tipo conhecido com um campo obrigatório faltando ou do tipo errado, como `github` sem `repo`

517 

518<h3 id="failures-that-validation-doesn’t-catch">

519 Failures that validation doesn't catch

520</h3>

521 

522`claude plugin validate` não relata cada falha. Uma entrada `hooks` escrita como um caminho de arquivo ou array passa na validação, e o erro aparece apenas quando o plugin carrega, como [Hooks in an entry](#hooks-in-an-entry) descreve. Erros buscando uma `source` também aparecem apenas após a instalação, não na validação.

523 

524[`claude plugin list`](/docs/pt/plugins/cli-reference) mostra um plugin que falhou ao carregar com seu erro, e [Troubleshoot plugins](/docs/pt/plugins/troubleshooting) cobre as strings de tempo de carregamento.

525 

526<h2 id="next-steps">

527 Next steps

528</h2>

529 

530* [Create a marketplace](/docs/pt/plugins/create-marketplace): construa um marketplace a partir desses campos e instale dele localmente

531* [Host and maintain a marketplace](/docs/pt/plugins/host-marketplace): onde colocar o arquivo e como os usuários recebem mudanças

532* [Plugin manifest reference](/docs/pt/plugins/manifest-reference): os campos `plugin.json` que uma entrada pode sobrescrever

533* [Manage plugins for your organization](/docs/pt/plugins/org): receitas de lista de permissões e bloqueio que usam esses valores de origem

plugins/measure.md +193 −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# Medir custo e uso do plugin

6 

7> Meça o custo de token de um plugin Claude Code, descubra se as pessoas ainda o usam e escolha os eventos de telemetria para perguntas sobre plugins em toda a organização.

8 

9Cada sessão em que um plugin está ativado inclui os nomes e descrições de suas skills, agentes e comandos no contexto do Claude, e esses tokens contam contra o uso do usuário, independentemente de o plugin ser usado ou não. Esta página mostra como ver esse número para um plugin, como reduzi-lo se você mantém o plugin e onde o uso aparece para que você possa saber se um plugin ainda está sendo usado.

10 

11Esta página é para autores e mantenedores de plugins. Se você administra Claude Code para uma organização, [Medir em toda a frota](#measure-across-a-fleet) cobre as mesmas perguntas em cada máquina.

12 

13<Note>

14 Estes casos são cobertos em outras páginas:

15 

16 * **Testar com que confiabilidade o plugin muda o comportamento do Claude**: veja [Testar plugins com evals](/docs/pt/plugin-evals)

17 * **Aparar o contexto de sua própria sessão**: veja [Gerenciar plugins instalados](/docs/pt/plugins/install#manage-installed-plugins) e a página [janela de contexto](/docs/pt/context-window)

18</Note>

19 

20Comece com [Medir o que um plugin custa](#measure-what-a-plugin-costs).

21 

22<h2 id="measure-what-a-plugin-costs">

23 Medir o que um plugin custa

24</h2>

25 

26Para ver o que um plugin adiciona ao contexto do Claude, execute [`claude plugin details`](/docs/pt/plugins/cli-reference#plugin-details) com o nome do plugin. Você o executa em seu shell, não no prompt de uma sessão Claude Code em execução. O plugin deve estar carregado: instalado, em um diretório de skills ou passado com `--plugin-dir` no mesmo comando, como em `claude --plugin-dir ./formatter plugin details formatter`.

27 

28Este exemplo lê um plugin instalado chamado `formatter` que tem duas skills, um comando, um agente, um hook e um servidor MCP:

29 

30```bash theme={null}

31claude plugin details formatter

32```

33 

34```text theme={null}

35formatter 1.0.0

36 Description: Formats and lints code on save

37 Source: formatter@my-marketplace

38 

39Component inventory

40 Skills (3) format-all, format-code, lint-fix

41 Agents (1) style-reviewer

42 Hooks (1) PostToolUse (harness-only — no model context cost)

43 MCP servers (1) formatter-tools (tool schemas resolved at runtime; not counted)

44 LSP servers (0)

45 

46Projected token cost

47 Always-on: ~146 tok added to every session

48 

49Per-component (rounded)

50 component always-on on-invoke

51 format-code ~40 ~30

52 lint-fix ~50 ~30

53 style-reviewer ~40 ~40

54 format-all < 20 ~30

55 

56 On-invoke cost is paid each time a skill or agent fires.

57 Token counts are estimates and may differ from actual usage.

58```

59 

60Cada parte da saída responde a uma pergunta diferente:

61 

62* **Component inventory**: o que Claude Code encontrou no plugin. Comandos são contados com skills, então `format-all` aparece em `Skills`. Hooks e servidores MCP não recebem estimativa de custo e nenhuma linha por componente; para ver o que as ferramentas MCP de um plugin adicionam, execute `/context` em uma sessão com o plugin ativado e leia a categoria `MCP tools`.

63* **Always-on**: os tokens que os nomes e descrições das skills, agentes e comandos do plugin adicionam a cada sessão em que o plugin está ativado, independentemente de algo ser executado ou não. Este é o número que cada usuário carrega e o que deve ser reduzido.

64* **Per-component**: cada linha divide uma skill, agente ou comando em sua parte sempre ativa e seu custo ao invocar, que é o corpo que carrega apenas quando esse componente é executado. Use a coluna sempre ativa para encontrar qual componente contribui mais.

65 

66<h3 id="lower-the-always-on-figure">

67 Reduzir a figura sempre ativa

68</h3>

69 

70Se você mantém o plugin, essas mudanças reduzem o que ele adiciona a cada sessão. Se você apenas o usa, suas opções são desativá-lo ou desinstalá-lo; veja [Gerenciar plugins instalados](/docs/pt/plugins/install#manage-installed-plugins).

71 

72A figura sempre ativa conta o nome de cada componente mais sua `description` e `when_to_use` frontmatter. Para reduzi-la:

73 

74* Encurte as descrições de skills e agentes.

75* Divida um plugin grande para que os usuários instalem apenas os componentes que precisam.

76 

77A descrição de uma skill também é o que Claude corresponde a uma solicitação, então uma mais curta pode impedir que a skill seja acionada. Depois de aparar as descrições, verifique o acionamento com um [avaliador `tool_used: Skill`](/docs/pt/plugin-evals#create-your-first-eval-suite) em sua suíte de avaliação.

78 

79Para saber o que cada tipo de componente contribui, veja [componentes de plugin](/docs/pt/plugins/components).

80 

81<h3 id="cost-shown-to-users-before-install">

82 Custo mostrado aos usuários antes da instalação

83</h3>

84 

85Plugins no marketplace oficial mostram seu custo aos usuários antes da instalação. Em `/plugin`, quando um usuário navega pela lista de plugins de um marketplace e seleciona um plugin, o painel de detalhes mostra uma seção **Context cost** com uma linha `Every turn:` e uma linha `When invoked:`. Quando a figura sempre ativa é 2.000 tokens ou mais, a linha `Every turn:` aparece destacada.

86 

87Um plugin em seu próprio marketplace não tem uma seção **Context cost**.

88 

89<h2 id="check-whether-a-plugin-is-used">

90 Verificar se um plugin é usado

91</h2>

92 

93Claude Code não relata o uso de um plugin de volta ao seu autor. O uso é registrado na máquina de cada pessoa que instalou o plugin, então o que você pode aprender depende de seu relacionamento com essas pessoas:

94 

95* **Você administra Claude Code para sua organização**: os eventos OpenTelemetry e a API Analytics contam instalações e ativações de skills em cada máquina. Veja [Medir em toda a frota](#measure-across-a-fleet).

96* **São colegas de equipe que você pode perguntar**: o próprio Claude Code de cada usuário mostra a eles se ainda usam o plugin, em quatro lugares: o painel [`/plugin`](#not-used-recently-in-/plugin), [`/skill-doctor`](#find-skills-that-never-run), [`/doctor`](#unused-plugins-in-/doctor) e [`/usage`](#usage-share-in-/usage). Todos os quatro são comandos que o usuário executa no prompt Claude Code em uma sessão em sua própria máquina.

97* **Nenhum dos dois**: você não tem sinal de uso de Claude Code para esse plugin.

98 

99<h3 id="not-used-recently-in-/plugin">

100 Não usado recentemente em `/plugin`

101</h3>

102 

103Na aba **Installed** de `/plugin`, um plugin que o usuário instalou de um marketplace se move sob um cabeçalho **Not used recently** uma vez que ficou sem uso por pelo menos 14 dias e 10 sessões. Os detalhes do plugin também mostram uma linha `Last used:`. Para saber o que os usuários fazem com esse cabeçalho e linha, veja [Encontrar plugins que você não usa mais](/docs/pt/plugins/install#find-plugins-you-no-longer-use).

104 

105O cabeçalho **Not used recently** nunca aparece para:

106 

107* Plugins carregados com `--plugin-dir` ou de um diretório de skills

108* Plugins ativados através de configurações gerenciadas ou montados de um [diretório seed](/docs/pt/plugins/org#seed-containers-and-ci)

109* Plugins que incluem um tema, estilo de saída, monitor ou workflow, porque esses estão em uso sem uma invocação rastreada

110 

111Um [servidor de linguagem](/docs/pt/plugins/components#lsp-servers) de um plugin conta como usado quando entrega diagnósticos ou responde a uma solicitação de navegação de código, então um plugin LSP cujo servidor está ativo em suas sessões não está listado como não usado.

112 

113Quando a organização do usuário define [`strictKnownMarketplaces`](/docs/pt/plugins/org#restrict-what-users-can-install), nem o cabeçalho nem a linha `Last used:` aparece.

114 

115<h3 id="find-skills-that-never-run">

116 Encontrar skills que nunca são executadas

117</h3>

118 

119Execute `/skill-doctor` para ver o que cada uma de suas skills custa e com que frequência é usada. Ele sinaliza skills que estão na listagem de skills do Claude mas nunca foram invocadas, incluindo skills de plugins.

120 

121Em uma sessão interativa, o relatório abre na aba **Stats** do gerenciador `/plugin`. Veja [Encontrar skills não usadas](/docs/pt/skills#find-unused-skills) para saber o que o relatório cobre e onde está disponível.

122 

123<h3 id="unused-plugins-in-/doctor">

124 Plugins não usados em `/doctor`

125</h3>

126 

127A verificação `/doctor` lista cada skill instalada pelo usuário, servidor MCP e plugin, e recomenda desativar os que não foram usados. Veja [`/doctor` na referência de comandos](/docs/pt/commands#all-commands).

128 

129<h3 id="usage-share-in-/usage">

130 Compartilhamento de uso em `/usage`

131</h3>

132 

133Em um plano Pro, Max, Team ou Enterprise, o detalhamento `/usage` atribui o uso recente a skills, subagentes, plugins e servidores MCP como uma parte do total. Veja [Usando o comando `/usage`](/docs/pt/costs#using-the-/usage-command).

134 

135<h2 id="measure-across-a-fleet">

136 Medir em toda a frota

137</h2>

138 

139Se você administra Claude Code para uma organização, você pode medir custo e uso de plugin em cada máquina de uma dessas fontes:

140 

141* **Eventos OpenTelemetry**: Claude Code exporta esses para seu próprio backend uma vez que você [configure um exportador](/docs/pt/monitoring-usage). Veja [Eventos OpenTelemetry para instalações e uso de plugins](#pick-the-opentelemetry-event-for-each-question).

142* **API Analytics**: servida dos registros da Anthropic, sem necessidade de exportador. Veja [Consultar a API Analytics](#query-the-analytics-api).

143 

144<h3 id="pick-the-opentelemetry-event-for-each-question">

145 Eventos OpenTelemetry para instalações e uso de plugins

146</h3>

147 

148Esses eventos e atributos OpenTelemetry respondem cada pergunta de plugin de seu backend:

149 

150| Pergunta | Evento ou atributo OpenTelemetry |

151| :------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------ |

152| Quais plugins são instalados e de onde | [`claude_code.plugin_installed`](/docs/pt/monitoring-usage#plugin-installed-event), um por instalação |

153| Quais plugins estão ativos em quantas sessões | [`claude_code.plugin_loaded`](/docs/pt/monitoring-usage#plugin-loaded-event), um por plugin ativado no início da sessão |

154| Quais skills são ativadas e qual plugin as possui | [`claude_code.skill_activated`](/docs/pt/monitoring-usage#skill-activated-event), com `plugin.name` e `marketplace.name` para skills de plugin |

155| O que os hooks de um plugin relatam | [`claude_code.hook_plugin_metrics`](/docs/pt/monitoring-usage#hook-plugin-metrics-event), emitido apenas para hooks em plugins do marketplace oficial |

156| O que um plugin custa em gastos de API | `plugin.name` e `marketplace.name` no [contador de custo](/docs/pt/monitoring-usage#cost-counter), definido quando a skill ativa ou subagente pertence a um plugin |

157 

158<h3 id="redacted-plugin-names-in-your-backend">

159 Nomes de plugin redatados em seu backend

160</h3>

161 

162Plugins do marketplace oficial relatam seu nome de plugin e nome de marketplace para seu backend literalmente. Todos os outros nomes de plugin são redatados ou omitidos por padrão, incluindo um plugin do próprio marketplace de sua organização. O [nível de confiança](/docs/pt/plugins/security#find-plugins-in-telemetry) do plugin decide qual.

163 

164Para obter nomes reais em alguns eventos, defina a variável de ambiente [`OTEL_LOG_TOOL_DETAILS`](/docs/pt/monitoring-usage#common-configuration-variables) como `1` nas máquinas que exportam telemetria, por exemplo no bloco `env` das mesmas [configurações gerenciadas](/docs/pt/monitoring-usage#administrator-configuration) que configuram o exportador:

165 

166| Evento | Padrão | Com `OTEL_LOG_TOOL_DETAILS=1` |

167| :------------------------------------ | :----------------------------------------------------------------------------------------------- | :--------------------------------------------------- |

168| `plugin_loaded` | `plugin.name` e `marketplace.name` são a string literal `third-party` | Nomes reais |

169| `plugin_installed`, `skill_activated` | `plugin.name` e `marketplace.name` omitidos; em `skill_activated`, `skill.name` é `custom_skill` | Nomes reais |

170| Contador de custo | `plugin.name` é `third-party`; `marketplace.name` ausente | `plugin.name` real; `marketplace.name` ainda ausente |

171 

172Em `plugin_loaded`, `plugin_id_hash` ainda identifica cada plugin por padrão, então você pode contar plugins de terceiros distintos.

173 

174<h3 id="query-the-analytics-api">

175 Consultar a API Analytics

176</h3>

177 

178No plano Enterprise, a API Analytics responde "quais plugins minha organização instala e invoca" dos registros da Anthropic, sem necessidade de exportador. [`GET /v1/organizations/analytics/plugins`](https://platform.claude.com/docs/en/api/admin/analytics/plugins/list) retorna contagens de instalação e invocação por plugin, por dia em Claude Code e Cowork, que você pode agrupar por usuário, grupo RBAC ou produto.

179 

180A atividade de plugin que chega à Anthropic sem um nome de plugin aparece em uma linha agregada `third-party`. [Encontrar plugins em telemetria](/docs/pt/plugins/security#find-plugins-in-telemetry) diz quais plugins Claude Code relata por nome.

181 

182Autentique a solicitação com uma chave de API que tenha o escopo `read:analytics`, que um Proprietário Primário cria conforme descrito em [Acessar dados programaticamente](/docs/pt/analytics#access-data-programmatically).

183 

184Veja a [referência de endpoint](https://platform.claude.com/docs/en/api/admin/analytics/plugins/list) para os parâmetros e campos de resposta.

185 

186<h2 id="next-steps">

187 Próximos passos

188</h2>

189 

190* [Testar plugins com evals](/docs/pt/plugin-evals): meça com que confiabilidade o plugin orienta o Claude, não apenas o que custa

191* [Reduzir a figura sempre ativa](#lower-the-always-on-figure): o que mudar no plugin para reduzir seu custo por turno

192* [Segurança e confiança de plugin](/docs/pt/plugins/security#find-plugins-in-telemetry): quais campos de telemetria carregam nomes de plugin e quando são redatados

193* [Monitoramento de uso](/docs/pt/monitoring-usage): a referência completa de eventos OpenTelemetry

plugins/org.md +460 −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# Gerenciar plugins do Claude Code para sua organização

6 

7> Controle quais plugins o Claude Code instala e permite em toda a sua organização através de configurações gerenciadas.

8 

9As configurações gerenciadas permitem que você decida quais plugins o Claude Code instala e permite em cada máquina da sua organização. Os usuários não podem substituí-las. Você as entrega como [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) do console de administração do claude.ai ou como configurações gerenciadas por endpoint através de MDM ou um arquivo `managed-settings.json`. A maioria dos controles nesta página funciona apenas a partir de configurações gerenciadas.

10 

11Esta página é para administradores e as configurações aqui governam o Claude Code.

12 

13<Note>

14 Estes casos são cobertos em outras páginas:

15 

16 * **Instalando plugins para você mesmo**: comece em [Install plugins](/docs/pt/plugins/install)

17 * **Controlando quais plugins os membros podem usar no claude.ai e Cowork**: veja [Manage plugins for your organization](https://support.claude.com/en/articles/13837433) no centro de ajuda

18 * **A página de plugins nas configurações de administração do claude.ai**: [**Organization settings > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=inventory) ativa plugins para as contas do claude.ai dos membros, e esses chegam ao Claude Code como [synced plugins](/docs/pt/plugins/loading#synced-plugins). Não define nenhuma das chaves nesta página

19</Note>

20 

21As seções seguem a ordem que a maioria dos lançamentos segue: [exigir plugins](#pre-install-and-require-plugins) para todos ou por repositório, [seed containers e CI](#seed-containers-and-ci), [restringir](#restrict-what-users-can-install) o que os usuários podem adicionar por conta própria, [definir política de atualização](#set-update-policy), depois [auditar](#audit-and-review) o que está instalado. Para revisar cada chave de política em um único lugar, veja a [matriz de controle](#control-matrix).

22 

23<h2 id="pre-install-and-require-plugins">

24 Pre-install and require plugins

25</h2>

26 

27Um marketplace é um catálogo de plugins que o Claude Code busca de um repositório git, uma URL ou um caminho local. Depois de registrar um marketplace em uma máquina, o Claude Code pode instalar plugins dele.

28 

29Para instalar plugins para uma frota, defina duas chaves juntas em [managed settings](/docs/pt/managed-settings), o arquivo de política ou a política entregue pelo servidor que cada máquina da sua organização lê: `extraKnownMarketplaces` registra um marketplace em cada máquina, e `enabledPlugins` nomeia os plugins a instalar e ativar dele. [Choose a delivery mechanism](#choose-a-delivery-mechanism) cobre como as configurações gerenciadas chegam a cada máquina.

30 

31<h3 id="choose-a-delivery-mechanism">

32 Choose a delivery mechanism

33</h3>

34 

35As configurações gerenciadas chegam a uma máquina através de um de três mecanismos de entrega:

36 

37* **Server-managed settings**: defina as chaves de plugin como JSON em [**Organization settings > Claude Code > Managed settings**](https://claude.ai/admin-settings/claude-code). Requer uma [função Owner](/docs/pt/server-managed-settings#access-control) na sua organização Claude. Uma sessão em nuvem busca essas configurações antes de instalar plugins.

38* **MDM policies**: no macOS, entregue um plist cujas chaves de nível superior são as chaves de configurações. No Windows, armazene o documento JSON inteiro como uma string em um valor de registro. O domínio plist e a chave de registro estão em [Where each mechanism stores the policy](/docs/pt/managed-settings#where-each-mechanism-stores-the-policy).

39* **Managed settings file**: coloque um `managed-settings.json` no caminho do sistema da plataforma. Você também pode adicionar arquivos ao diretório drop-in `managed-settings.d/` ao lado dele. Os caminhos de arquivo por plataforma estão em [Where each mechanism stores the policy](/docs/pt/managed-settings#where-each-mechanism-stores-the-policy), e as regras de mesclagem drop-in estão em [Split a file-based policy across teams](/docs/pt/managed-settings#split-a-file-based-policy-across-teams).

40 

41Use configurações gerenciadas pelo servidor se você tiver uma organização Claude for Teams ou Enterprise no claude.ai e seus dispositivos não estão todos sob MDM. Caso contrário, use uma política MDM ou o arquivo de configurações gerenciadas. Para a compensação, veja [Choose between server-managed and endpoint-managed settings](/docs/pt/server-managed-settings#choose-between-server-managed-and-endpoint-managed-settings).

42 

43<h4 id="which-managed-source-applies-on-a-machine">

44 Which managed source applies on a machine

45</h4>

46 

47Por padrão, apenas uma dessas três fontes se aplica em uma máquina. O Claude Code usa a primeira que entrega uma chave de política, verificando primeiro as configurações gerenciadas pelo servidor, depois as políticas MDM, depois o arquivo de configurações gerenciadas. Se as configurações gerenciadas pelo servidor entregarem até mesmo uma chave de política não relacionada, o Claude Code ignora as chaves de plugin em uma política MDM ou arquivo de configurações gerenciadas nessa máquina, exceto pelas [chaves que lê de cada fonte](/docs/pt/managed-settings#keys-read-from-every-admin-source).

48 

49Para aplicar cada fonte em vez disso, defina [`managedSourcesBehavior`](/docs/pt/managed-settings#compose-every-managed-source) como `"merge"`.

50 

51[How Claude Code combines managed sources](/docs/pt/managed-settings#how-claude-code-combines-managed-sources) também lista as chaves que o Claude Code lê de cada fonte em ambos os modos.

52 

53<h3 id="require-a-marketplace-and-its-plugins">

54 Require a marketplace and its plugins

55</h3>

56 

57Adicione o marketplace sob `extraKnownMarketplaces`, com chave do próprio `name` do marketplace de seu `marketplace.json`. Depois adicione cada plugin sob `enabledPlugins` como `plugin-name@marketplace-name`. Cada entrada de marketplace carrega um objeto `source` com um campo `source` nomeando o tipo, como `github`. Este exemplo de configurações gerenciadas registra um marketplace de organização e força-ativa dois plugins dele:

58 

59```json theme={null}

60{

61 "extraKnownMarketplaces": {

62 "your-marketplace": {

63 "source": { "source": "github", "repo": "your-org/your-marketplace" },

64 "autoUpdate": true

65 }

66 },

67 "enabledPlugins": {

68 "code-formatter@your-marketplace": true,

69 "deploy-helper@your-marketplace": true

70 }

71}

72```

73 

74Depois que as configurações chegam a uma máquina, o Claude Code registra o marketplace e instala os dois plugins no início da próxima sessão do usuário. Os usuários os veem em `/plugin`, e desativar um em seu próprio escopo não impede que ele carregue, porque as configurações gerenciadas têm precedência sobre cada outro escopo.

75 

76Para bloquear um plugin em cada escopo e ocultá-lo da listagem do marketplace, defina-o como `false` no `enabledPlugins` gerenciado em vez disso.

77 

78Ajuste os campos `autoUpdate` e `source` para seu marketplace:

79 

80* **`autoUpdate`**: `true` mantém o marketplace e seus plugins atualizando em segundo plano, e `false` desativa isso. Veja [Set update policy](#set-update-policy).

81* **`source`**: `github` é um de vários tipos de fonte. Uma fonte `git` leva uma `url` para GitLab ou um host interno, e uma fonte `url` leva o endereço de um `marketplace.json` hospedado. Cada forma de fonte está na [marketplace reference](/docs/pt/plugins/marketplace-reference).

82 

83Se o marketplace é um repositório git privado, cada usuário precisa de acesso de leitura a ele. O clone de um marketplace baseado em git é executado com git na máquina do usuário, usando credenciais armazenadas e sem prompts. Para usuários sem contas de host git, use um [seed](#seed-containers-and-ci) em vez disso.

84 

85Uma entrada gerenciada também substitui uma entrada de marketplace com o mesmo nome ou cópia `--plugin-dir` de outra fonte:

86 

87* **Marketplaces**: uma entrada de marketplace gerenciada substitui uma entrada de precedência mais baixa com o mesmo nome, e os campos das duas entradas não se mesclam.

88* **Cópias `--plugin-dir`**: `--plugin-dir` carrega um plugin de um diretório local para uma sessão. Para o que acontece quando o nome dessa cópia corresponde a um plugin que seu `enabledPlugins` gerenciado nomeia, veja [Name conflicts](/docs/pt/plugins/loading#name-conflicts).

89 

90O marketplace oficial da Anthropic `claude-plugins-official` não precisa de uma entrada `extraKnownMarketplaces` quando `enabledPlugins` define um de seus plugins como `true`. Essa entrada `name@claude-plugins-official` declara o marketplace por si só, onde quer que essas chaves se apliquem. Se você não ativar nenhum de seus plugins e ainda quiser que ele seja registrado em cada máquina, dê a ele uma entrada explícita, como [Allow the official marketplace and your own](#allow-the-official-marketplace-and-your-own) faz.

91 

92<h3 id="require-plugins-per-repository">

93 Require plugins per repository

94</h3>

95 

96Para cobrir os contribuidores de um repositório em vez de toda a sua frota, defina `extraKnownMarketplaces` e `enabledPlugins` no `.claude/settings.json` desse repositório. As entradas `extraKnownMarketplaces` se aplicam apenas em uma pasta que o contribuidor confiou, e em uma pasta não confiável o Claude Code as ignora sem uma mensagem:

97 

98* **Sessões interativas**: o Claude Code registra o marketplace apenas depois que o contribuidor aceita o [workspace trust dialog](/docs/pt/permissions#what-runs-before-you-trust-a-folder) para essa pasta.

99* **[Execuções não-interativas `-p`](/docs/pt/headless)**: as entradas se aplicam apenas em uma pasta cuja confiança o usuário já aceitou interativamente, ou cuja flag `hasTrustDialogAccepted` você definiu em `~/.claude.json`.

100 

101Um plugin que o marketplace lista por um caminho relativo carrega da cópia do marketplace uma vez que as entradas `extraKnownMarketplaces` do repositório se apliquem. Um plugin cujo marketplace aponta para uma fonte externa em vez disso, como o próprio repositório GitHub do plugin, não instala apenas das configurações do repositório. Cada contribuidor vê `Plugin "<name>" is enabled in project settings but isn't installed` até executar `claude plugin install <name>@<marketplace> --scope project`, como [Install plugins](/docs/pt/plugins/install) descreve.

102 

103Se você usar uma fonte `directory` ou `file` local com um caminho relativo, o caminho se resolve contra o checkout principal do seu repositório. Quando você executa o Claude Code de um git worktree, o caminho ainda aponta para o checkout principal, então todos os worktrees compartilham o mesmo local do marketplace.

104 

105Para lançar um pacote de plugins com dependências, coloque o plugin do pacote em `enabledPlugins`, como [Plugin dependencies](/docs/pt/plugins/dependencies) descreve.

106 

107<h3 id="when-each-surface-applies-the-plugin-keys">

108 When each surface applies the plugin keys

109</h3>

110 

111A tabela mostra quando cada tipo de sessão do Claude Code aplica `extraKnownMarketplaces` e `enabledPlugins`, de configurações gerenciadas e do `.claude/settings.json` de um repositório. Para o aplicativo Desktop e as extensões IDE, veja [Install a plugin](/docs/pt/plugins/install#install-a-plugin).

112 

113| Surface | Managed `extraKnownMarketplaces` and `enabledPlugins` | Repository `.claude/settings.json` |

114| :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------- |

115| Terminal, interactive | Applied at session start on every machine that receives the settings | `extraKnownMarketplaces` applied after trust; `enabledPlugins` applied at session start |

116| `-p` and CI | Applied at session start, with installs running in the background | `extraKnownMarketplaces` in trusted folders only; `enabledPlugins` applied |

117| Cloud sessions | In an Anthropic-hosted environment, only server-managed settings reach the session, which waits for them before it installs plugins. MDM policies and managed settings files stay on the user's machine. For a self-hosted environment, see [Where and when a policy applies](/docs/pt/managed-settings#where-and-when-a-policy-applies) | See the **Cloud session** tab under [Install a plugin](/docs/pt/plugins/install#install-a-plugin) |

118 

119Em uma execução `-p` ou CI, marketplaces e plugins instalam em segundo plano, então um plugin pode estar faltando da primeira volta. Defina `CLAUDE_CODE_SYNC_PLUGIN_INSTALL=1` para fazer a execução esperar pela instalação antes de sua primeira consulta.

120 

121<h3 id="confirm-the-rollout">

122 Confirm the rollout

123</h3>

124 

125Verifique se o marketplace e os plugins chegaram em uma máquina ou em uma execução de CI:

126 

127* **Em uma máquina**: inicie o Claude Code e execute `/plugin`. O marketplace e os plugins estão listados.

128* **Em CI**: execute `claude -p` com `--output-format stream-json --verbose`. O evento `init` lista os plugins carregados sob `plugins`.

129 

130<h2 id="seed-containers-and-ci">

131 Seed containers and CI

132</h2>

133 

134Para imagens de container e executores de CI que não podem clonar em tempo de execução, pré-popule um diretório de plugins no tempo de construção e aponte `CLAUDE_CODE_PLUGIN_SEED_DIR` para ele. O Claude Code registra os marketplaces do seed na inicialização e carrega caches de plugin do seed no local, sem clonar.

135 

136Um seed também serve usuários que não têm uma conta de host git.

137 

138<Note>

139 Em ambientes CI/CD, configure um auxiliar de credencial git antes de instalar plugins de repositórios privados. No GitHub Actions, exporte um token com acesso de leitura ao repositório do marketplace como `GH_TOKEN`, depois execute `gh auth setup-git`. O token de fluxo de trabalho padrão pode acessar apenas o repositório do próprio fluxo de trabalho, então um marketplace privado em outro repositório precisa de um token de acesso pessoal ou token de aplicativo.

140</Note>

141 

142<Steps>

143 <Step title="Install into the seed at build time">

144 Defina `CLAUDE_CODE_PLUGIN_CACHE_DIR` para o caminho do seed para que o marketplace e os plugins instalem lá em vez de `~/.claude/plugins`:

145 

146 ```bash theme={null}

147 CLAUDE_CODE_PLUGIN_CACHE_DIR=/opt/claude-seed claude plugin marketplace add your-org/your-marketplace

148 CLAUDE_CODE_PLUGIN_CACHE_DIR=/opt/claude-seed claude plugin install code-formatter@your-marketplace

149 ```

150 

151 O seed tem o mesmo layout que `~/.claude/plugins`: `known_marketplaces.json`, `marketplaces/<name>/`, e `cache/<marketplace>/<plugin>/<version>/`. Você pode montar o seed em um caminho diferente de onde o construiu.

152 </Step>

153 

154 <Step title="Point the runtime at the seed">

155 Defina `CLAUDE_CODE_PLUGIN_SEED_DIR=/opt/claude-seed` no ambiente do container. Para usar vários seeds, separe seus caminhos com `:` no Unix ou `;` no Windows. O Claude Code usa o primeiro seed que contém um determinado marketplace ou cache de plugin.

156 </Step>

157 

158 <Step title="Enable the plugins">

159 Os plugins em um seed não são ativados por conta própria. Defina `enabledPlugins` para cada plugin de seed que você quer carregado, em configurações gerenciadas ou no `.claude/settings.json` do repositório.

160 </Step>

161</Steps>

162 

163Para verificar um seed, execute `claude -p` com `--output-format stream-json --verbose` na imagem. Na lista `plugins` do evento `init`, o `path` de cada plugin carregado está sob o seed, como `/opt/claude-seed/cache/your-marketplace/code-formatter/1.0.0`.

164 

165Os marketplaces de seed seguem estas regras:

166 

167* **Read-only**: o Claude Code nunca escreve no seed e força `autoUpdate` desligado para marketplaces de seed.

168* **Entradas de seed têm precedência**: em cada inicialização, um marketplace declarado no seed sobrescreve a entrada do usuário com o mesmo nome. Os usuários desativam um plugin de seed com `claude plugin disable`, não removendo o marketplace.

169* **Atualizar e remover falham**: `claude plugin marketplace update <name>` e `remove` sem `--scope` em um marketplace de seed falham com uma mensagem que nomeia o diretório do seed.

170* **A política ainda se aplica**: a [allowlist e blocklist](#restrict-what-users-can-install) verificam a fonte registrada de um marketplace de seed também. Permita a fonte de onde você construiu o seed.

171 

172Para frotas sem acesso git de saída, combine um seed com fontes de marketplace `directory` ou `file` em uma montagem compartilhada. Defina `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1` também, que também desativa [plugin auto-update](/docs/pt/plugins/loading#when-auto-update-runs). Se um proxy estiver disponível, veja [Proxy configuration](/docs/pt/network-config#proxy-configuration) para as variáveis a definir.

173 

174<h2 id="restrict-what-users-can-install">

175 Restrict what users can install

176</h2>

177 

178A allowlist gerenciada `strictKnownMarketplaces` e a blocklist `blockedMarketplaces` decidem de quais fontes de marketplace os plugins podem vir. A fonte de um marketplace é o repositório git, URL ou caminho local que o Claude Code busca dele. Ambas as listas correspondem à fonte do marketplace de onde um plugin vem, não à entrada do próprio plugin dentro desse marketplace.

179 

180Para o lockdown comum, que permite o marketplace oficial e o seu, veja [Allow the official marketplace and your own](#allow-the-official-marketplace-and-your-own). Emparelhe-o com [`disableSideloadFlags`](#control-matrix) para que os usuários não possam carregar plugins de um diretório local ou URL também.

181 

182Ambas as listas se aplicam antes de qualquer coisa baixar e novamente no início da sessão:

183 

184* **Antes de um download**: as listas se aplicam quando um usuário adiciona um marketplace e em cada instalação, atualização, atualização e auto-atualização.

185* **No início da sessão**: as listas se aplicam novamente aos plugins que já estão instalados, então um plugin instalado cuja fonte de marketplace não corresponde mais não carrega. `/plugin` o lista com `Marketplace "<name>" is not in the allowed marketplace list` ou `Marketplace "<name>" is blocked by enterprise policy`.

186 

187Onde as duas listas são aplicadas depende de onde você as define:

188 

189* **O console de administração do claude.ai**: o Claude Code aplica ambas as listas nas sessões que [leem configurações gerenciadas pelo servidor](/docs/pt/managed-settings#where-and-when-a-policy-applies). O claude.ai também as verifica quando qualquer pessoa na sua organização adiciona um novo marketplace de um repositório git no claude.ai, ou de **Customize** no aplicativo Claude Desktop fora de sua aba Code. Isso cobre um marketplace que um membro adiciona para sua própria conta e um adicionado para toda a organização sob [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins). O claude.ai recusa um repositório que a allowlist não admite ou que a blocklist nomeia. Ele não re-verifica um marketplace que foi adicionado em qualquer lugar antes de você definir as listas, e não verifica plugins carregados.

190* **Um arquivo de configurações gerenciadas, política de nível do SO ou outra fonte gerenciada**: o Claude Code aplica ambas as listas onde lê essa fonte. O claude.ai não a lê.

191 

192Enquanto qualquer allowlist estiver definida, ou uma blocklist nomear qualquer fonte que não seja [`skills-dir`](#blocklist-with-blockedmarketplaces), um plugin cujo marketplace o Claude Code não consegue encontrar não carrega. `/plugin` mostra o erro de política para ele em vez de um erro de não encontrado. O caso comum é uma entrada `enabledPlugins` obsoleta para um marketplace que ninguém registrou.

193 

194<h3 id="control-matrix">

195 Control matrix

196</h3>

197 

198A tabela lista cada chave de política de plugin, o que ela aplica e o que não pode fazer.

199 

200| Key | What it enforces | What it can't do |

201| :----------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

202| `strictKnownMarketplaces` | Allowlist de fontes de marketplace. `[]` bloqueia cada fonte, incluindo o marketplace oficial. Alias: `allowedMarketplaces` | Não registra um marketplace, restringe entradas dentro de um marketplace permitido, ou bloqueia `--plugin-dir` |

203| `blockedMarketplaces` | Blocklist de fontes de marketplace, verificada antes da allowlist | Não bloqueia um marketplace já registrado de uma fonte que não corresponde |

204| `syncClaudeAiPlugins` | Defina `false` para parar o Claude Code de baixar e carregar os plugins [sincronizados do claude.ai](/docs/pt/plugins/loading#synced-plugins) para a conta de cada usuário. Requer Claude Code v2.1.273 ou posterior | Não desativa um plugin sincronizado. Para isso, defina `"<name>@synced": false` em [`enabledPlugins`](/docs/pt/settings-reference#enabledplugins) |

205| `enabledPlugins` | `true` força-ativa, `false` bloqueia em cada escopo e oculta o plugin | Não instala um plugin cujo marketplace não está registrado ou permitido |

206| `disableSideloadFlags` | Rejeita `--plugin-dir`, `--plugin-url`, `--agents`, a opção `plugins` do Agent SDK, e `--mcp-config` não-SDK na inicialização, e rejeita pastas nomeadas na variável [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/pt/env-vars#variables) da mesma forma | Não restringe `.mcp.json`, `claude mcp add`, ou servidores fornecidos por SDK. Emparelhe-o com [`allowedMcpServers`](/docs/pt/managed-mcp) |

207| `disableCommandPluginSources` | Bloqueia plugins com uma fonte `command` de instalar, atualizar ou carregar. Uma fonte `command` é aquela cujo diretório de plugin é produzido executando um comando na máquina. Quando não definido, leva o valor de `allowManagedHooksOnly` | Não afeta outros tipos de fonte |

208| `allowManagedHooksOnly` | Restringe quais hooks executam. Veja [`allowManagedHooksOnly`](/docs/pt/settings-reference#allowmanagedhooksonly) | Não confia em hooks de plugins que os usuários ativam por conta própria |

209| `strictPluginOnlyCustomization` | Bloqueia skills, agents, hooks e servidores MCP que não vêm de um plugin, configurações gerenciadas ou built-ins do Claude Code. Defina `true` para cobrir todos os quatro tipos, ou um array de valores `skills`, `agents`, `hooks` e `mcp` como `["skills", "hooks"]` para cobrir alguns | Não restringe quais plugins os usuários instalam. Emparelhe-o com `strictKnownMarketplaces` |

210| `pluginSuggestionMarketplaces` | Marketplaces cujos plugins podem aparecer como sugestões de instalação. Veja [Recommend plugins](#recommend-plugins) | Não afeta as dicas built-in |

211| `pluginTrustMessage` | Anexa seu texto ao aviso de confiança que `/plugin` mostra antes de um plugin instalar | Não muda o próprio texto do aviso |

212| `allowedChannelPlugins` | Substitui a lista padrão de plugins permitidos para enviar mensagens de canal. Requer `channelsEnabled: true` | Veja [Restrict which channel plugins can run](/docs/pt/channels#restrict-which-channel-plugins-can-run) |

213| [`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL=1`](/docs/pt/env-vars) | Para sessões de terminal interativas de auto-registrar o marketplace oficial | Não remove um marketplace já registrado. A allowlist e blocklist controlam o mesmo auto-registro sem ele. Uma máquina que começou uma vez com ele definido não retoma auto-registro depois que você o desdefine |

214 

215Cada chave na tabela é uma configuração gerenciada, exceto `enabledPlugins`, `syncClaudeAiPlugins` e `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`:

216 

217* **`enabledPlugins`**: você pode defini-lo em qualquer escopo, e as configurações gerenciadas o bloqueiam.

218* **`syncClaudeAiPlugins`**: cada usuário também pode defini-lo em suas próprias configurações de usuário ou local. Veja seu [escopo na referência de configurações](/docs/pt/settings-reference#syncclaudeaiplugins).

219* **`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`**: esta é uma variável de ambiente que você entrega através do bloco `env` gerenciado mostrado sob [Turn updates off for the whole fleet](#turn-updates-off-for-the-whole-fleet).

220 

221Cada chave de configurações aqui tem uma entrada na [referência de configurações](/docs/pt/settings-reference).

222 

223<h4 id="aliases-for-the-marketplace-keys">

224 Aliases for the marketplace keys

225</h4>

226 

227`strictKnownMarketplaces` também pode ser escrito `allowedMarketplaces`, e `extraKnownMarketplaces` também pode ser escrito `additionalMarketplaces`.

228 

229* **Version**: os aliases requerem Claude Code v2.1.232 ou posterior, e clientes mais antigos os ignoram. Em um arquivo que uma frota mista lê, mantenha os nomes canônicos.

230* **Ambas as grafias definidas**: quando um arquivo define ambas as grafias, o valor da chave canônica se aplica.

231 

232<h3 id="allowlist-with-strictknownmarketplaces">

233 Allowlist with `strictKnownMarketplaces`

234</h3>

235 

236Defina a allowlist para uma lista desses objetos de fonte. A maioria das entradas corresponde exatamente, entradas `hostPattern` e `pathPattern` correspondem como expressões regulares, e wildcards de proprietário `github` correspondem por proprietário:

237 

238* **`github`**: `{ "source": "github", "repo": "your-org/approved-plugins" }`, com `ref` e `path` opcionais.

239* **Wildcard de proprietário `github`**: `{ "source": "github", "repo": "your-org/*" }` corresponde a cada repositório sob esse proprietário. O `*` deve representar o nome inteiro do repositório. O Claude Code ignora entradas como `*/plugins` e `your-org/tools-*` como inválidas, então não correspondem a nada. Requer Claude Code v2.1.223 ou posterior.

240* **`git`**: `{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git" }`, com `ref` e `path` opcionais.

241* **`url`**: `{ "source": "url", "url": "https://plugins.example.com/marketplace.json" }`, com `headers` opcionais.

242* **`file` e `directory`**: `{ "source": "file", "path": "/opt/marketplace/marketplace.json" }` ou `{ "source": "directory", "path": "/opt/marketplace/plugins" }`, com caminhos absolutos.

243* **`hostPattern`**: `{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }`, correspondido contra o host de fontes `github`, `git` e `url`. O padrão corresponde em qualquer lugar no nome do host, então ancorá-lo com `^` e `$` como mostrado para corresponder ao host inteiro. Uma fonte `github` sempre conta como `github.com`. Use uma entrada `hostPattern` para um GitHub Enterprise Server ou host GitLab onde desenvolvedores criam seus próprios marketplaces. A [página GHES](/docs/pt/github-enterprise-server#allowlist-ghes-marketplaces-in-managed-settings) tem o exemplo trabalhado.

244* **`pathPattern`**: `{ "source": "pathPattern", "pathPattern": "^/opt/approved/" }`, correspondido contra o `path` de fontes `file` e `directory`. O padrão corresponde em qualquer lugar no caminho, então comece-o com `^` para fixar um prefixo de diretório. `".*"` permite cada caminho local.

245* **`skills-dir`**: `{ "source": "skills-dir" }` mantém [skills-directory plugins](#keep-skills-directory-plugins-loading) carregando enquanto uma allowlist está definida, e não corresponde a nenhum marketplace.

246 

247<h4 id="how-entries-match">

248 How entries match

249</h4>

250 

251Uma entrada `url` corresponde em seu valor `url`; `headers` não são comparados. Para entradas `github` e `git`, o `repo` ou `url`, o `ref` e o `path` devem todos corresponder, ou estar ausentes em ambos os lados:

252 

253* Uma entrada sem `ref` não cobre uma fonte com `ref: "main"`.

254* Uma entrada para `your-org/your-marketplace` não cobre uma URL `git` que clona o mesmo repositório.

255* Uma barra final, um sufixo `.git` ou `ssh://` no lugar de `https://` é um valor diferente. Quando um marketplace pode ser clonado por mais de uma URL, prefira uma entrada `hostPattern`.

256 

257Entradas de wildcard de proprietário seguem as regras exatas para `ref` e correspondem a qualquer `path` dentro do repositório a menos que a entrada fixe um. A correspondência de wildcard é sensível a maiúsculas e minúsculas na allowlist.

258 

259<h4 id="keep-skills-directory-plugins-loading">

260 Keep skills-directory plugins loading

261</h4>

262 

263Plugins de diretório de skills são os plugins que os usuários mantêm sob `~/.claude/skills/` ou `.claude/skills/` de um projeto em pastas que carregam um `.claude-plugin/plugin.json`. Se você definir qualquer allowlist sem uma entrada `{ "source": "skills-dir" }`, eles param de carregar. [Skills](/docs/pt/skills) simples, significando um `SKILL.md` sem esse manifesto, continuam carregando.

264 

265<h4 id="marketplaces-hosted-on-claude-ai">

266 Marketplaces hosted on claude.ai

267</h4>

268 

269A allowlist e blocklist correspondem a um [marketplace hospedado no claude.ai](/docs/pt/plugins/install#add-from-claude-ai) por seu host. Para permitir ou bloquear um, adicione uma entrada `hostPattern` que corresponda a `claude.ai` a `strictKnownMarketplaces` ou `blockedMarketplaces`. Na allowlist, tal entrada admite os marketplaces do claude.ai da sua organização e os marketplaces padrão do claude.ai, mas não um marketplace feito de uploads do próprio claude.ai de um membro ou um cujo escopo o claude.ai não declarou. Requer Claude Code v2.1.273 ou posterior.

270 

271<h4 id="lock-every-source-out">

272 Lock every source out

273</h4>

274 

275Uma allowlist vazia, `[]`, bloqueia cada fonte de marketplace, incluindo o marketplace oficial.

276 

277Este lockdown não cobre os plugins [sincronizados do claude.ai](/docs/pt/plugins/loading#synced-plugins), que o Claude Code baixa da conta de cada usuário em vez de um marketplace. Para parar aqueles também, defina [`syncClaudeAiPlugins`](/docs/pt/settings-reference#syncclaudeaiplugins) como `false` em configurações gerenciadas, ou desative Skills para sua organização no claude.ai.

278 

279<h3 id="blocklist-with-blockedmarketplaces">

280 Blocklist with `blockedMarketplaces`

281</h3>

282 

283`blockedMarketplaces` leva os mesmos objetos de fonte que [`strictKnownMarketplaces`](#allowlist-with-strictknownmarketplaces) e é verificado primeiro, então uma fonte em ambas as listas é bloqueada. A correspondência de blocklist é mais ampla que a correspondência de allowlist:

284 

285* URLs de Git são canonicalizadas, então as formas `git@` e `https://`, sufixos `.git` e barras finais de um repositório `github.com` todos correspondem à mesma entrada.

286* Uma entrada `github` também bloqueia a URL `git` equivalente, e vice-versa.

287* Para uma entrada `owner/*`, a comparação de proprietário é insensível a maiúsculas e minúsculas.

288* Uma entrada sem `ref` ou `path` bloqueia cada ref e caminho dos repositórios que corresponde.

289 

290Esta entrada bloqueia cada repositório sob um proprietário GitHub:

291 

292```json theme={null}

293{

294 "blockedMarketplaces": [

295 { "source": "github", "repo": "untrusted-org/*" }

296 ]

297}

298```

299 

300As entradas `url` em `blockedMarketplaces` também se aplicam quando um usuário adiciona uma URL de repositório `https://` que o Claude Code [clona em vez de buscar](/docs/pt/plugins/cli-reference#plugin-marketplace-add), como uma URL de repositório `github.com` ou `gitlab.com` simples. O usuário não pode adicionar essa URL se uma entrada a nomeia. A correspondência ignora o sufixo `.git` e qualquer ref que o usuário anexe após `#`. Requer Claude Code v2.1.232 ou posterior.

301 

302Uma entrada `{ "source": "skills-dir" }` aqui para [skills-directory plugins](#keep-skills-directory-plugins-loading) de carregar, de ambos `~/.claude/skills/` e `.claude/skills/` de um projeto.

303 

304Uma blocklist que nomeia apenas essa entrada não conta como uma restrição ativa, então não [para plugins cujo marketplace o Claude Code não consegue encontrar](#restrict-what-users-can-install) de carregar.

305 

306<h3 id="allow-the-official-marketplace-and-your-own">

307 Allow the official marketplace and your own

308</h3>

309 

310A maioria das organizações permite o marketplace oficial e o seu, e registra ambos para que cada máquina os tenha. Esta política de configurações gerenciadas permite ambos os marketplaces, registra ambos, força-ativa dois plugins e rejeita `--plugin-dir`:

311 

312```json theme={null}

313{

314 "strictKnownMarketplaces": [

315 { "source": "github", "repo": "anthropics/claude-plugins-official" },

316 { "source": "github", "repo": "your-org/*" },

317 { "source": "skills-dir" }

318 ],

319 "extraKnownMarketplaces": {

320 "claude-plugins-official": {

321 "source": { "source": "github", "repo": "anthropics/claude-plugins-official" }

322 },

323 "your-marketplace": {

324 "source": { "source": "github", "repo": "your-org/your-marketplace" }

325 }

326 },

327 "enabledPlugins": {

328 "code-formatter@your-marketplace": true,

329 "deploy-helper@your-marketplace": true

330 },

331 "disableSideloadFlags": true

332}

333```

334 

335Em uma máquina com esta política, adicionar qualquer fonte fora da lista, por exemplo `/plugin marketplace add https://example.com/other-marketplace.git`, falha com uma mensagem contendo `is blocked by enterprise policy` seguida pelas fontes permitidas. `claude --plugin-dir ./x` sai com uma mensagem nomeando `disableSideloadFlags`.

336 

337A entrada `{ "source": "skills-dir" }` mantém [skills-directory plugins](#keep-skills-directory-plugins-loading) carregando sob esta allowlist. Remova essa entrada e eles param de carregar.

338 

339Registre ambos os marketplaces com entradas `extraKnownMarketplaces` explícitas, como esta política faz, em vez de confiar na allowlist ou no marketplace oficial se registrando:

340 

341* **A allowlist não registra nada**: uma entrada `extraKnownMarketplaces` faz, e ela mesma deve passar na allowlist. O Claude Code recusa registrar um marketplace gerenciado cuja fonte a allowlist não corresponde.

342* **O marketplace oficial se registra apenas em uma sessão de terminal interativa**: mesmo lá, ele se registra apenas quando a allowlist o permite. Uma execução `-p` ou um terminal anexado a uma sessão em nuvem nunca o registra.

343* **Uma tentativa bloqueada é lembrada**: se uma máquina já executou sob uma política que bloqueou o marketplace oficial, o Claude Code registra a tentativa bloqueada e não tenta novamente depois que a política muda. Um lockdown `[]` é uma tal política. Essa máquina o registra novamente apenas através de uma entrada `extraKnownMarketplaces` como a nesta política, uma entrada `enabledPlugins` para um de seus plugins, ou um `/plugin marketplace add` manual.

344 

345<h2 id="set-update-policy">

346 Set update policy

347</h2>

348 

349Você pode definir a política de atualização por marketplace, para toda a frota ou por grupo de usuários através de canais de lançamento.

350 

351<h3 id="turn-auto-update-on-or-off-per-marketplace">

352 Turn auto-update on or off per marketplace

353</h3>

354 

355A auto-atualização de plugin é executada em segundo plano após a inicialização para marketplaces que a têm ativada. Para quais marketplaces a têm ativada por padrão, veja [When auto-update runs](/docs/pt/plugins/loading#when-auto-update-runs). Para decidir para a frota, defina `"autoUpdate": true` ou `false` em uma entrada `extraKnownMarketplaces` gerenciada:

356 

357* Se a entrada gerenciada define o campo, o Claude Code recusa o toggle `/plugin` do usuário com um erro que começa `Auto-update for '<name>' is set by`.

358* Se a entrada gerenciada deixa o campo indefinido, o toggle do usuário persiste.

359 

360<h3 id="turn-updates-off-for-the-whole-fleet">

361 Turn updates off for the whole fleet

362</h3>

363 

364Para desativar a auto-atualização de plugin para cada marketplace, defina `DISABLE_AUTOUPDATER` no bloco `env` gerenciado, como este exemplo faz. A mesma variável também para as próprias atualizações do Claude Code:

365 

366```json theme={null}

367{

368 "env": {

369 "DISABLE_AUTOUPDATER": "1"

370 }

371}

372```

373 

374Para parar as próprias atualizações do Claude Code mas manter a auto-atualização de plugin, adicione `"FORCE_AUTOUPDATE_PLUGINS": "1"` ao mesmo bloco. As outras [variáveis de ambiente que param a auto-atualização de plugin](/docs/pt/plugins/loading#when-auto-update-runs) funcionam da mesma forma.

375 

376`DISABLE_AUTOUPDATER` não cobre plugins com uma [fonte `command`](/docs/pt/plugins/marketplace-reference#command-plugin-source). O Claude Code re-executa o comando de cada um ativado a cada sessão e instala a saída quando mudou. Para o que para essas execuções, veja [When a command source re-runs](/docs/pt/plugins/loading#when-a-command-source-re-runs).

377 

378<h3 id="assign-release-channels-to-user-groups">

379 Assign release channels to user groups

380</h3>

381 

382Para executar canais estáveis e de acesso antecipado, hospede dois marketplaces que apontam para refs diferentes dos mesmos plugins. Depois dê a cada grupo de usuários seu próprio marketplace através de configurações gerenciadas por endpoint separadas ou uma política de gateway. As configurações gerenciadas pelo servidor do console de administração [se aplicam a cada usuário na sua organização](/docs/pt/server-managed-settings#current-limitations), então não podem atribuir configurações diferentes a grupos diferentes.

383 

384* Implante [configurações gerenciadas por endpoint](/docs/pt/managed-settings#delivery-mechanisms) separadas, como um arquivo de configurações gerenciadas ou um perfil MDM, para os dispositivos de cada grupo. Para verificar se o arquivo ou perfil por grupo se aplica em um dispositivo que também tem uma fonte de nível de organização, veja [How Claude Code combines managed sources](/docs/pt/managed-settings#precedence-within-the-managed-tier).

385* Defina uma [política de gateway de aplicativos Claude](/docs/pt/claude-apps-gateway-config#managed) por grupo. O gateway aplica a primeira política cuja regra de correspondência se encaixa em um usuário, então ordene as políticas para que cada usuário chegue à política do seu grupo. O mapa `extraKnownMarketplaces` dessa política não se mescla com o de qualquer outra política, então liste cada marketplace que o grupo precisa nele, não apenas seu marketplace de canal.

386 

387Com qualquer mecanismo, o grupo estável recebe esta configuração:

388 

389```json theme={null}

390{

391 "extraKnownMarketplaces": {

392 "stable-tools": {

393 "source": { "source": "github", "repo": "your-org/stable-tools" }

394 }

395 }

396}

397```

398 

399O grupo de acesso antecipado recebe `latest-tools` em vez disso. Para configurar os dois marketplaces, veja [Run release channels](/docs/pt/plugins/host-marketplace#run-release-channels).

400 

401<h2 id="recommend-plugins">

402 Recommend plugins

403</h2>

404 

405Os proprietários de marketplace podem anexar sinais `relevance` a entradas para que o Claude Code sugira o plugin quando um projeto corresponde.

406 

407As sugestões de um marketplace aparecem apenas quando ele está registrado na máquina do usuário, você lista seu nome em `pluginSuggestionMarketplaces` em configurações gerenciadas, e você declara sua fonte na mesma política. Declare a fonte como a entrada `extraKnownMarketplaces` do marketplace ou como uma entrada de allowlist. O marketplace oficial precisa apenas do nome. Veja [Enable suggestions in managed settings](/docs/pt/plugins/relevance#enable-suggestions-in-managed-settings).

408 

409<h2 id="audit-and-review">

410 Audit and review

411</h2>

412 

413Eventos OpenTelemetry e a API Analytics dizem o que sua frota instala e executa.

414 

415Para o que um plugin pode executar em uma máquina e o que cada nível de confiança permite, leia [Plugin security](/docs/pt/plugins/security) antes de aprovar um marketplace.

416 

417<h3 id="opentelemetry-events">

418 OpenTelemetry events

419</h3>

420 

421`claude_code.plugin_installed` registra cada instalação, e `claude_code.plugin_loaded` registra cada plugin ativado no início da sessão. Ambos os eventos reduzem ou omitem nomes de plugin e marketplace de terceiros a menos que você defina `OTEL_LOG_TOOL_DETAILS=1`, como [Redacted plugin names in your backend](/docs/pt/plugins/measure#redacted-plugin-names-in-your-backend) mostra. As listas de campos estão sob [Plugin installed event](/docs/pt/monitoring-usage#plugin-installed-event) e [Plugin loaded event](/docs/pt/monitoring-usage#plugin-loaded-event).

422 

423<h3 id="analytics-api">

424 Analytics API

425</h3>

426 

427No plano Enterprise, `GET /v1/organizations/analytics/plugins` retorna contagens de instalação e invocação por plugin, por dia em Claude Code e Cowork. Você pode agrupar as contagens por usuário ou grupo RBAC. A atividade de plugin que chega à Anthropic sem um nome de plugin aparece em uma linha `third-party` agregada. Veja a [referência de endpoint](https://platform.claude.com/docs/en/api/admin/analytics/plugins/list) e [Access data programmatically](/docs/pt/analytics#access-data-programmatically) para a chave que precisa.

428 

429<h2 id="plan-for-what-managed-settings-can’t-enforce">

430 Plan for what managed settings can't enforce

431</h2>

432 

433Estes pedidos de revisões de segurança não têm uma chave dedicada no esquema de configurações atual. Os controles existentes mais próximos são:

434 

435* **Direcionamento por usuário ou por grupo**: cada chave de plugin se aplica a cada usuário que recebe as configurações. As configurações gerenciadas pelo servidor entregam uma configuração por organização. Para política por grupo, use configurações gerenciadas por endpoint separadas ou políticas de gateway, como sob [Assign release channels to user groups](#assign-release-channels-to-user-groups).

436* **Restringindo entradas dentro de um marketplace permitido**: a allowlist corresponde a fontes de marketplace. Para bloquear um plugin de um marketplace permitido, defina-o como `false` em `enabledPlugins` gerenciado.

437* **Ocultando `/plugin`**: nenhuma chave desativa o comando. O equivalente mais próximo combina uma allowlist nomeando apenas seu marketplace, entradas `enabledPlugins` gerenciadas para os plugins que você fornece, e `disableSideloadFlags`.

438* **Controlando `--plugin-dir` através da allowlist**: a allowlist não cobre `--plugin-dir`. `disableSideloadFlags` cobre.

439* **Aplicando os toggles de plugin do claude.ai através dessas chaves**: [**Organization settings > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=inventory) não define as chaves nesta página. O que os membros e sua organização ativam lá chega ao CLI como [synced plugins](/docs/pt/plugins/loading#synced-plugins), que têm seus próprios controles.

440 

441<h2 id="troubleshoot-policy">

442 Troubleshoot policy

443</h2>

444 

445Se a política de plugin não se comportar como esperado em uma máquina, verifique primeiro estes sintomas:

446 

447* **O arquivo gerenciado não foi analisado**: quando um `managed-settings.json` não é JSON válido, o Claude Code recusa iniciar e imprime [um erro nomeando o arquivo](/docs/pt/errors#managed-settings-document-could-not-be-parsed). Um arquivo que analisa mas tem uma entrada inválida mantém o resto de sua política. Veja [Invalid entries in managed settings](/docs/pt/managed-settings#invalid-entries-in-managed-settings).

448* **A fonte gerenciada não carregou**: execute `/status` e procure por `Enterprise managed settings` na linha `Setting sources`. Se estiver faltando, a fonte não carregou.

449* **Um usuário relata `blocked by enterprise policy`**: a mensagem nomeia o marketplace ou sua fonte. Para uma allowlist, também lista as fontes permitidas. As entradas voltadas para o usuário estão em [Troubleshoot plugins](/docs/pt/plugins/troubleshooting).

450* **Um plugin que o usuário desativou em `~/.claude/settings.json` ainda carrega**: outra fonte de configurações o re-ativou, como uma entrada `enabledPlugins` gerenciada que o força-ativa. `/plugin` e `claude plugin list` mostram `Disabled in ~/.claude/settings.json but still loads` com essa fonte de configurações.

451 

452<h2 id="next-steps">

453 Next steps

454</h2>

455 

456* [Marketplace reference](/docs/pt/plugins/marketplace-reference#marketplace-sources): os valores `source` que `extraKnownMarketplaces`, `strictKnownMarketplaces` e `blockedMarketplaces` aceitam

457* [Host and maintain a marketplace](/docs/pt/plugins/host-marketplace): execute o marketplace que sua política aponta

458* [Plugin security and trust](/docs/pt/plugins/security): o que um plugin pode fazer em uma máquina e como revisar um antes de instalar

459* [Server-managed settings](/docs/pt/server-managed-settings): entregue essas chaves do console de administração do claude.ai

460* [Troubleshoot plugins](/docs/pt/plugins/troubleshooting#blocked-by-your-organization): as mensagens que os usuários veem quando a política os bloqueia

plugins/overview.md +142 −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# Visão geral de plugins

6 

7> Entenda o que é um plugin Claude Code, quando você precisa de um em vez de uma skill ou servidor MCP independente, e qual página ler para instalar ou criar um.

8 

9Um plugin Claude Code é um diretório de skills, agentes, hooks, servidores MCP ou outros componentes que Claude Code instala e carrega como uma unidade. A maioria dos plugins vem de um marketplace, que é um catálogo que lista plugins e onde buscar cada um. Você também pode carregar um plugin de uma pasta que alguém lhe dá, ou [criar o seu próprio](/docs/pt/plugins/create).

10 

11<Note>

12 Se você usa claude.ai chat ou Cowork e não Claude Code, veja [Plugins no claude.ai e no Cowork](https://claude.com/docs/plugins/overview).

13</Note>

14 

15Para experimentar um plugin agora, execute `/plugin` em uma sessão de terminal Claude Code e instale um na aba **Discover**, que lista os plugins do marketplace oficial da Anthropic e qualquer marketplace que você tenha adicionado. De lá:

16 

17* [Instalar e gerenciar plugins](/docs/pt/plugins/install): as etapas completas de instalação, escopos e outras superfícies

18* [Criar um plugin](/docs/pt/plugins/create): crie o seu próprio

19* [Decida se você precisa de um plugin](#decide-whether-you-need-a-plugin): se um plugin é a ferramenta certa para o que você quer

20 

21<h2 id="understand-what-a-plugin-is">

22 Entenda o que é um plugin

23</h2>

24 

25Um plugin é um diretório de componentes, geralmente com um manifesto. O manifesto, um arquivo JSON em `.claude-plugin/plugin.json`, dá ao plugin seu nome e pode adicionar uma versão, uma descrição e outros [metadados](/docs/pt/plugins/manifest-reference). Os componentes são o que o plugin adiciona ao Claude Code, como:

26 

27* [**Skills**](/docs/pt/plugins/components#skills): instruções `SKILL.md` que Claude carrega quando relevante, e que você também pode executar como um comando

28* [**Agents**](/docs/pt/plugins/components#agents): definições de subagentes que Claude pode delegar

29* [**Hooks**](/docs/pt/plugins/components#hooks): comandos que Claude Code executa em pontos do seu ciclo de vida, como após cada edição

30* [**MCP servers**](/docs/pt/plugins/components#mcp-servers): servidores de ferramentas aos quais Claude Code se conecta enquanto o plugin está ativado

31 

32Este diagrama mostra um plugin chamado `my-plugin` que contém um de cada um desses componentes, e o que você obtém de cada arquivo uma vez que o plugin é carregado.

33 

34<img src="https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugin-directory.svg?fit=max&auto=format&n=2Q_GtOEovg5qaBem&q=85&s=f623b64e82713b830e48174f0a922888" className="dark:hidden" alt="Diagrama em duas colunas unidas por cinco setas retas. À esquerda, o diretório de um plugin chamado my-plugin, contendo um manifesto em .claude-plugin/plugin.json, skills/review/SKILL.md, agents/reviewer.md, hooks/hooks.json, .mcp.json e outros componentes. À direita, o que cada arquivo oferece em sua sessão: o manifesto define o nome do plugin, my-plugin; a skill é executada como /my-plugin:review; o arquivo do agente é um subagente que Claude pode delegar; o arquivo de hooks contém hooks que são executados em eventos do ciclo de vida; e .mcp.json adiciona um servidor MCP que oferece ferramentas a Claude." width="760" height="336" data-path="images/plugin-directory.svg" />

35 

36<img src="https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugin-directory-dark.svg?fit=max&auto=format&n=2Q_GtOEovg5qaBem&q=85&s=17ee2bd45b63154fcc148ae1d1f736d8" className="hidden dark:block" alt="Diagrama em duas colunas unidas por cinco setas retas. À esquerda, o diretório de um plugin chamado my-plugin, contendo um manifesto em .claude-plugin/plugin.json, skills/review/SKILL.md, agents/reviewer.md, hooks/hooks.json, .mcp.json e outros componentes. À direita, o que cada arquivo oferece em sua sessão: o manifesto define o nome do plugin, my-plugin; a skill é executada como /my-plugin:review; o arquivo do agente é um subagente que Claude pode delegar; o arquivo de hooks contém hooks que são executados em eventos do ciclo de vida; e .mcp.json adiciona um servidor MCP que oferece ferramentas a Claude." width="760" height="336" data-path="images/plugin-directory-dark.svg" />

37 

38Para cada tipo de componente que um plugin pode conter, com um exemplo de cada, veja [Plugin components](/docs/pt/plugins/components). Para ver onde cada peça está localizada no diretório de um plugin, use o [plugin explorer](/docs/pt/plugins/components#explore-the-plugin-directory) nessa página.

39 

40<h3 id="decide-whether-you-need-a-plugin">

41 Decida se você precisa de um plugin

42</h3>

43 

44Skills, subagentes, hooks e servidores MCP funcionam por conta própria, sem um plugin. Uma skill que você salva em `~/.claude/skills/`, por exemplo, está disponível em cada projeto em sua máquina. Para configurar uma por conta própria, veja [Skills](/docs/pt/skills), [Subagents](/docs/pt/sub-agents), [Hooks](/docs/pt/hooks-guide) ou [MCP](/docs/pt/mcp).

45 

46Use um plugin quando você quer várias skills, subagentes, hooks ou servidores MCP empacotados como uma unidade. Instale um para obter uma configuração que alguém construiu, com um comando e atualizações de seu marketplace. Crie um para dar sua própria configuração aos colegas de trabalho, instalá-lo em muitos projetos ou publicar versões lançadas.

47 

48<h3 id="what-an-enabled-plugin-adds-to-your-sessions">

49 O que um plugin ativado adiciona às suas sessões

50</h3>

51 

52Um plugin ativado faz parte de cada sessão, não apenas das sessões onde você o usa. Isso tem algumas consequências que vale a pena saber antes de instalar um:

53 

54* **Contexto e uso**: para cada skill, agente e comando que [Claude pode invocar por conta própria](/docs/pt/skills#control-who-invokes-a-skill), o nome e a descrição estão no contexto de Claude a cada turno para que Claude saiba que existe. Esses tokens contam para seu uso e deixam menos espaço na [janela de contexto](/docs/pt/context-window) mesmo em sessões onde nada do plugin é executado. O texto completo de uma skill ou agente é carregado apenas quando é usado. O que os servidores MCP do plugin adicionam por turno segue [MCP tool search](/docs/pt/mcp#scale-with-mcp-tool-search).

55* **Processos**: servidores MCP que o plugin define são executados junto com cada sessão onde está ativado, e seus hooks disparam em seus eventos.

56* **Permissões**: o que o plugin executa, ele executa como você. Veja [Plugin security and trust](/docs/pt/plugins/security) para o que revisar primeiro.

57 

58Você pode verificar a pegada de um plugin em cada estágio:

59 

60* **Antes de instalar**: abra o plugin na aba **Marketplaces** em `/plugin`. Plugins no marketplace oficial da Anthropic mostram uma estimativa de **Context cost** lá.

61* **Depois de instalar**: [Measure what a plugin costs](/docs/pt/plugins/measure#measure-what-a-plugin-costs) mostra como ler a pegada de um plugin, e a aba **Installed** do grupo **Not used recently** lista plugins que você poderia desativar.

62* **Para parar sem desinstalar**: desative o plugin com `/plugin` ou, em seu shell, `claude plugin disable`. Veja [Manage installed plugins](/docs/pt/plugins/install#manage-installed-plugins).

63 

64<h2 id="get-plugins-from-a-marketplace">

65 Obtenha plugins de um marketplace

66</h2>

67 

68Um marketplace é um repositório ou diretório com um arquivo `.claude-plugin/marketplace.json` que lista plugins e onde buscar cada um. É um catálogo, não uma loja hospedada. Você adiciona um marketplace uma vez, depois instala plugins dele por nome, como `commit-commands@claude-plugins-official`.

69 

70<Note>

71 Um marketplace de plugin não é [Claude Marketplace](https://claude.com/marketplace). Claude Marketplace é o site em claude.com/marketplace onde você navega por plugins, conectores, produtos de parceiros e parceiros de serviço. Não é um marketplace que você adiciona com `/plugin marketplace add`.

72</Note>

73 

74Claude Code adiciona o marketplace oficial da Anthropic na primeira vez que você inicia uma sessão de terminal interativa, a menos que uma [managed policy](/docs/pt/plugins/org#allow-the-official-marketplace-and-your-own) o bloqueie. Claude Code não adiciona nenhum outro marketplace por conta própria, incluindo os marketplaces comunitários e de demonstração da Anthropic. Para distinguir os três marketplaces da Anthropic, leia [Anthropic's marketplaces](/docs/pt/plugins/anthropic-marketplaces). Para ver o que o oficial lista, abra a aba **Discover** de `/plugin` em uma sessão ou navegue por [Claude Marketplace](https://claude.com/marketplace/plugins).

75 

76Este diagrama mostra o caminho de um marketplace para sua sessão. Um marketplace lista um plugin, você instala esse plugin, e Claude Code carrega seus componentes.

77 

78<img src="https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugins-model.svg?fit=max&auto=format&n=2Q_GtOEovg5qaBem&q=85&s=4196344954b7c2e27fc0bd6a9a1113a1" className="dark:hidden" alt="Diagrama do caminho do marketplace em três caixas, da esquerda para a direita. Um marketplace, um catálogo de plugins, lista um plugin. O plugin é um diretório instalado como uma unidade, contendo skills, agentes, hooks, servidores MCP e outros componentes. Você instala o plugin no Claude Code, que carrega seus componentes." width="760" height="252" data-path="images/plugins-model.svg" />

79 

80<img src="https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugins-model-dark.svg?fit=max&auto=format&n=2Q_GtOEovg5qaBem&q=85&s=f6cdefe1fc05daf3b253d26e9f3f70f6" className="hidden dark:block" alt="Diagrama do caminho do marketplace em três caixas, da esquerda para a direita. Um marketplace, um catálogo de plugins, lista um plugin. O plugin é um diretório instalado como uma unidade, contendo skills, agentes, hooks, servidores MCP e outros componentes. Você instala o plugin no Claude Code, que carrega seus componentes." width="760" height="252" data-path="images/plugins-model-dark.svg" />

81 

82[Install and manage plugins](/docs/pt/plugins/install#install-a-plugin) tem as etapas de instalação para cada lugar onde você executa Claude Code. Enquanto você está desenvolvendo um plugin, você não precisa de um marketplace: carregue-o diretamente de sua pasta com `--plugin-dir`, como [Develop without a marketplace](/docs/pt/plugins/create#develop-without-a-marketplace) mostra.

83 

84<h3 id="make-an-installed-plugin-available-in-your-session">

85 Disponibilize um plugin instalado em sua sessão

86</h3>

87 

88Antes de um plugin que você instalou oferecer uma skill que você pode executar, ele tem que estar presente em cada uma dessas camadas:

89 

90* **Settings**: suas configurações listam os marketplaces que você adicionou e os plugins que estão ativados.

91* **Disk**: `~/.claude/plugins/` contém o que Claude Code buscou e instalou.

92* **Session**: plugins são carregados na inicialização, ou quando você [reload plugins](/docs/pt/plugins/loading#check-which-stage-a-plugin-reached).

93 

94Leia [Plugin loading reference](/docs/pt/plugins/loading) para as regras em cada camada, incluindo qual arquivo de configurações tem precedência e onde os arquivos estão no disco.

95 

96<h2 id="tell-anthropic’s-marketplaces-from-third-party-ones">

97 Diferencie os marketplaces da Anthropic dos de terceiros

98</h2>

99 

100O nome de um marketplace o coloca em um de três níveis. Claude Code aceita os nomes oficiais e comunitários apenas para marketplaces originários de repositórios `github.com/anthropics/`:

101 

102* **Official**: marketplaces com um dos [official marketplace names](/docs/pt/plugins/security#official-marketplace-names) da Anthropic, incluindo `claude-plugins-official` e o marketplace de demonstração `claude-code-plugins`.

103* **Community**: marketplaces com um dos nomes comunitários da Anthropic, como `claude-community`. [Identify Anthropic's marketplaces by name](/docs/pt/plugins/security#marketplace-tiers) os lista.

104* **Third-party**: todos os outros marketplaces. Um marketplace que seu colega de trabalho ou sua organização publica é de terceiros.

105 

106Qualquer que seja o nível, um plugin que você instala pode executar código com seus privilégios de usuário. Leia [Plugin security and trust](/docs/pt/plugins/security) para como revisar um plugin antes de instalá-lo.

107 

108Através de [managed settings](/docs/pt/settings#settings-files), uma organização pode colocar na lista de permissões ou bloquear marketplaces, forçar a instalação de plugins e desativar o carregamento apenas de sessão. Leia [Manage plugins for your organization](/docs/pt/plugins/org) para esses controles.

109 

110<h2 id="understand-install-scopes">

111 Entenda os escopos de instalação

112</h2>

113 

114Quando você instala um plugin, você escolhe um escopo, e o escopo decide para quem o plugin está ativado:

115 

116* **User scope**: ativado para você em cada projeto neste computador

117* **Project scope**: ativado para todos que trabalham neste repositório, através do `.claude/settings.json` confirmado. Cada colaborador ainda [instala em sua própria máquina](/docs/pt/plugins/loading#enabled-in-project-settings-but-not-installed)

118* **Local scope**: ativado para você apenas neste repositório

119 

120Um plugin que você instala no escopo do usuário no terminal, nas sessões locais do aplicativo desktop ou na extensão VS Code está disponível nos outros dois naquele computador, porque todos os três leem os mesmos arquivos de configurações. Veja [Choose an install scope](/docs/pt/plugins/install#choose-an-install-scope) para como escolher um.

121 

122Uma sessão em nuvem, incluindo uma no navegador em claude.ai/code, não carrega os plugins em suas configurações locais. Para etapas de instalação no terminal, VS Code e aplicativo desktop, e para o que uma sessão em nuvem carrega, veja [Install a plugin](/docs/pt/plugins/install#install-a-plugin).

123 

124<Note>

125 O mesmo formato de plugin também instala no claude.ai e no Cowork, onde um conjunto diferente de componentes é carregado. Para essas superfícies, veja [Plugins on claude.ai and in Cowork](https://claude.com/docs/plugins/overview) em claude.com.

126</Note>

127 

128<h2 id="next-steps">

129 Próximas etapas

130</h2>

131 

132A maioria das pessoas começa instalando um plugin do marketplace oficial da Anthropic, que Claude Code adiciona na primeira vez que você inicia uma sessão de terminal interativa. Execute `/plugin` em uma sessão de terminal para navegá-lo, ou siga [Install and manage plugins](/docs/pt/plugins/install), que também cobre o aplicativo desktop e VS Code. Para ver o que está naquele marketplace antes de abrir Claude Code, navegue por [Claude Marketplace](https://claude.com/marketplace/plugins) na web.

133 

134Para construir o seu próprio, [Create a plugin](/docs/pt/plugins/create) começa com um diretório vazio e termina com um plugin funcionando.

135 

136Uma vez que você tenha instalado ou construído um plugin, essas páginas cobrem o que vem a seguir:

137 

138* **Compartilhe o que você construiu**: [Publish and distribute a plugin](/docs/pt/plugins/publish)

139* **Verifique se funciona e é usado**: [Test plugins with evals](/docs/pt/plugin-evals) e [Measure plugin cost and usage](/docs/pt/plugins/measure)

140* **Execute um marketplace para sua equipe**: [Create a marketplace](/docs/pt/plugins/create-marketplace), depois [Host and maintain a marketplace](/docs/pt/plugins/host-marketplace)

141* **Defina a política de plugin para uma organização**: [Manage plugins for your organization](/docs/pt/plugins/org)

142* **Corrija um problema**: [Troubleshoot plugins](/docs/pt/plugins/troubleshooting)

plugins/publish.md +210 −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# Publicar e distribuir um plugin

6 

7> Publique um plugin Claude Code através do seu próprio marketplace ou do marketplace da comunidade da Anthropic, com uma lista de verificação de pré-lançamento e como os usuários recebem atualizações.

8 

9Publicar um plugin Claude Code significa listá-lo em um marketplace, um catálogo JSON que lista plugins e onde buscar cada um, para que outras pessoas possam instalá-lo pelo nome e receber suas atualizações. Você pode executar seu próprio marketplace ou enviar seu plugin para o marketplace da comunidade da Anthropic. Para compartilhar um plugin sem publicá-lo, envie o diretório do plugin ou um `.zip` dele para que as pessoas carreguem por conta própria.

10 

11Esta página é para o autor de um plugin funcional que está pronto para compartilhá-lo.

12 

13<Note>

14 Estes casos são cobertos em outras páginas:

15 

16 * **Seu plugin ainda não está pronto**: comece com [Criar um plugin](/docs/pt/plugins/create)

17 * **Você mantém uma CLI ou SDK com um plugin em um marketplace oficial**: veja [Recomende seu plugin a partir de sua CLI](/docs/pt/plugins/cli-hints)

18</Note>

19 

20Comece com [Escolha como distribuir](#choose-how-to-distribute) para comparar as opções de distribuição. Se você já conhece sua rota, vá para [Prepare seu plugin para lançamento](#prepare-your-plugin-for-release), depois siga a seção da sua rota para o que contar aos seus usuários e como eles recebem suas atualizações.

21 

22<h2 id="choose-how-to-distribute">

23 Escolha como distribuir

24</h2>

25 

26Escolha uma opção de distribuição com base em quem precisa instalar o plugin:

27 

28| Rota | Quem pode instalar | O que você precisa | Os usuários recebem suas atualizações automaticamente? |

29| :----------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------- | :----------------------------------------------------- |

30| [Sem marketplace](#share-a-plugin-without-a-marketplace) | As pessoas para as quais você envia a pasta do plugin ou um `.zip` dele | A pasta do plugin | Nenhuma. Eles carregam a cópia que você enviou |

31| [Seu próprio marketplace](#publish-through-your-own-marketplace) | Qualquer pessoa que possa acessar o repositório, que pode ser um privado que sua equipe pode clonar | Um repositório git ou outro host com um `.claude-plugin/marketplace.json` que lista seu plugin | Desativado |

32| [Marketplace da comunidade da Anthropic](#submit-to-the-community-marketplace) | Qualquer pessoa que adicione `anthropics/claude-plugins-community` | Um envio através do formulário de envio do diretório de plugins | Desativado |

33 

34Auto-atualização é uma configuração por marketplace no lado do usuário que busca novas versões em segundo plano.

35 

36<h2 id="prepare-your-plugin-for-release">

37 Prepare seu plugin para lançamento

38</h2>

39 

40O nome, a versão, validação e uma instalação a partir de um marketplace decidem se um lançamento funciona para as pessoas que o instalam. Verifique-os antes do primeiro lançamento e novamente antes de cada um posterior.

41 

42<Steps>

43 <Step title="Escolha um nome permanente">

44 Os usuários instalam, habilitam e configuram seu plugin por `name@marketplace`, então um plugin renomeado é um plugin diferente para cada instalação existente. Escolha um nome em kebab-case como `deploy-helper`, porque `claude plugin validate` avisa sobre outras formas, e trate-o como permanente. Defina `displayName` em `plugin.json` para o rótulo que os usuários veem.

45 </Step>

46 

47 <Step title="Decida como você versionar">

48 Se você definir `version` em `plugin.json` e depois fazer push de commits sem alterá-lo, `claude plugin update` imprime `<name> is already at the latest version (1.0.0).` e os usuários mantêm a cópia antiga. Incremente `version` em cada lançamento ou omita-o em um marketplace hospedado em git para que Claude Code use o SHA do commit. Veja [Versões e atualizações](/docs/pt/plugins/loading#versions-and-updates).

49 </Step>

50 

51 <Step title="Valide">

52 Em seu shell, execute `claude plugin validate --strict ./your-plugin`. Uma execução limpa imprime `✔ Validation passed`.

53 

54 * **Em CI**: mantenha `--strict`, que também falha a execução com código de saída 1 em avisos como um campo de manifesto desconhecido ou um `version` ausente. Remova `--strict` se você escolheu omitir `version` na etapa anterior.

55 * **Caminhos**: a validação relata caminhos de componentes que não começam com `./`. Dentro de comandos hook e configurações de servidor MCP, consulte arquivos como `${CLAUDE_PLUGIN_ROOT}/...`. Veja [regras de caminho](/docs/pt/plugins/manifest-reference#path-rules).

56 </Step>

57 

58 <Step title="Instale-o a partir de um marketplace local">

59 Em seu shell, adicione um marketplace local que lista o plugin com `claude plugin marketplace add ./path-to-marketplace`, instale o plugin a partir dele e inicie uma sessão para confirmar que ele carrega.

60 

61 * Para o menor marketplace que funciona, veja [Criar um marketplace](/docs/pt/plugins/create-marketplace).

62 * Para saber se uma instalação carrega seu diretório de origem ou uma cópia em cache, veja [Plugins in-place e copiados](/docs/pt/plugins/loading#in-place-and-copied-plugins).

63 </Step>

64 

65 <Step title="Preencha os metadados que os usuários veem">

66 Defina `description`, `author`, `homepage` e `repository` em `plugin.json` e adicione um `README.md` na raiz do plugin. `homepage` deve ser analisado como uma URL. A [referência de manifesto](/docs/pt/plugins/manifest-reference#fields) lista todos os campos.

67 </Step>

68 

69 <Step title="Execute sua suite de avaliação">

70 Se você tiver uma suite de avaliação, execute `claude plugin eval` em seu shell. Ele executa os casos de teste do plugin e pontua os resultados, o que detecta regressões quando você altera o plugin. Veja [Teste plugins com evals](/docs/pt/plugin-evals).

71 </Step>

72</Steps>

73 

74<h2 id="share-a-plugin-without-a-marketplace">

75 Compartilhe um plugin sem um marketplace

76</h2>

77 

78Se o plugin estiver em um repositório git, as pessoas podem cloná-lo e carregar o checkout, ou iniciar Claude Code a partir de seu shell com `--plugin-url` apontando para um `.zip` que você anexa a um lançamento. Para obter sua próxima versão, eles puxam ou baixam novamente. Se não estiver em um repositório, envie-lhes o diretório ou um `.zip` dele. Eles o carregam de uma de duas maneiras:

79 

80* **Para uma sessão**: eles iniciam Claude Code a partir de seu shell com `claude --plugin-dir ./deploy-helper`, onde o caminho é o clone, a pasta descompactada ou o próprio `.zip`. Veja [Sinalizadores que carregam um plugin para uma sessão](/docs/pt/plugins/cli-reference#flags-that-load-a-plugin-for-one-session).

81* **Para cada sessão**: eles movem o diretório do plugin, com seu `.claude-plugin/plugin.json`, sob `~/.claude/skills/` para que Claude Code [o carregue em cada sessão](/docs/pt/plugins/loading#find-where-a-plugin-came-from).

82 

83Adicionar um `.claude-plugin/marketplace.json` ao mesmo repositório é o que permite que as pessoas instalem pelo nome e atualizem com um comando; veja [Publique através de seu próprio marketplace](#publish-through-your-own-marketplace).

84 

85<h3 id="ship-a-plugin-with-your-own-tool">

86 Envie um plugin com sua própria ferramenta

87</h3>

88 

89Se você mantém uma CLI ou SDK, publique o plugin em um marketplace e faça seu instalador ou mensagem pós-instalação executar ou imprimir os dois comandos que um usuário precisa: `claude plugin marketplace add <source>`, depois `claude plugin install <name>@<marketplace>`. Para descoberta em sessão quando alguém usa sua ferramenta, veja [Recomende seu plugin a partir de sua CLI](/docs/pt/plugins/cli-hints).

90 

91<h2 id="publish-through-your-own-marketplace">

92 Publique através de seu próprio marketplace

93</h2>

94 

95Seu próprio marketplace é um arquivo `.claude-plugin/marketplace.json` que lista seu plugin, adicionado a um repositório git. Uma vez que o arquivo está no repositório, o plugin é publicado, sem formulário de envio. Você pode manter o arquivo no próprio repositório do plugin ou em um separado.

96 

97<h3 id="add-the-marketplace-file-to-your-repository">

98 Adicione o arquivo de marketplace ao seu repositório

99</h3>

100 

101Para publicar a partir do próprio repositório do plugin, salve o arquivo de marketplace ao lado de `plugin.json` em `.claude-plugin/`, com uma entrada cuja `source` é `"./"`, a raiz do repositório. Dê à entrada o mesmo `name` que `plugin.json`, de acordo com [Mantenha o nome da entrada e o nome do manifesto iguais](/docs/pt/plugins/create-marketplace#keep-the-entry-name-and-the-manifest-name-the-same):

102 

103```json .claude-plugin/marketplace.json theme={null}

104{

105 "name": "your-marketplace",

106 "owner": { "name": "Your Name" },

107 "plugins": [

108 { "name": "deploy-helper", "source": "./" }

109 ]

110}

111```

112 

113Em seu shell, execute `claude plugin validate .` no repositório para verificar o arquivo antes de fazer push.

114 

115[Criar um marketplace](/docs/pt/plugins/create-marketplace) cobre o layout com vários plugins em um repositório.

116 

117<h3 id="control-who-can-install">

118 Controle quem pode instalar

119</h3>

120 

121Qualquer pessoa que possa clonar o repositório pode instalar a partir dele, então se o repositório for privado, o marketplace também será privado. Para hosts diferentes de um repositório git, veja [Hospede um marketplace](/docs/pt/plugins/host-marketplace). Para alcançar todos em uma empresa, incluindo pessoas que não usam git, veja [Implante para uma empresa inteira](/docs/pt/plugins/host-marketplace#roll-out-to-a-whole-company).

122 

123<h3 id="tell-users-how-to-install">

124 Diga aos usuários como instalar

125</h3>

126 

127Diga aos seus usuários para adicionar o marketplace e depois instalar o plugin a partir de seu shell, substituindo a fonte e os nomes pelos seus:

128 

129* Adicione o marketplace uma vez: `claude plugin marketplace add your-org/your-marketplace`, onde o argumento é um atalho GitHub `owner/repo`, uma URL ou um caminho

130* Instale o plugin: `claude plugin install deploy-helper@your-marketplace`

131* Ou faça ambos de dentro de uma sessão: `/plugin install deploy-helper --marketplace your-org/your-marketplace`. Requer Claude Code v2.1.275 ou posterior. Veja [Adicione um marketplace e instale em um comando](/docs/pt/plugins/install#add-a-marketplace-and-install-in-one-command)

132 

133<h3 id="ship-updates-to-users">

134 Envie atualizações aos usuários

135</h3>

136 

137Os usuários recebem um lançamento quando o solicitam ou quando a auto-atualização está ativada para seu marketplace:

138 

139* **Sob demanda**: `claude plugin update deploy-helper@your-marketplace` no shell do usuário atualiza o marketplace e instala a nova cópia quando a versão do seu plugin foi alterada

140* **Auto-atualização**: desativada por padrão para seu marketplace. Veja [Ative a auto-atualização](/docs/pt/plugins/host-marketplace#turn-on-auto-update). Uma vez ativada, ela faz o mesmo que `claude plugin update` com um atraso após o início da sessão

141 

142[Instale plugins](/docs/pt/plugins/install) cobre os comandos do lado do usuário, e [quando a auto-atualização é executada](/docs/pt/plugins/loading#when-auto-update-runs) cobre o tempo.

143 

144<h2 id="submit-to-the-community-marketplace">

145 Envie para o marketplace da comunidade

146</h2>

147 

148O marketplace da comunidade da Anthropic, `claude-community`, é o marketplace público que lista plugins enviados através do formulário de envio do diretório de plugins.

149 

150Os usuários adicionam o marketplace da comunidade em uma sessão Claude Code com `/plugin marketplace add anthropics/claude-plugins-community` e instalam a partir dele como `@claude-community`.

151 

152Para saber como o marketplace da comunidade difere do marketplace oficial, veja [Marketplaces da Anthropic](/docs/pt/plugins/anthropic-marketplaces).

153 

154Para enviar seu plugin para o marketplace da comunidade, use um dos formulários no aplicativo:

155 

156* **claude.ai**: [claude.ai/admin-settings/directory/submissions/plugins/new](https://claude.ai/admin-settings/directory/submissions/plugins/new)

157* **Console**: [platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit)

158 

159O formulário claude.ai requer uma organização Team ou Enterprise e a permissão Directory, que os Owners possuem por padrão. Autores individuais que não fazem parte de uma organização Team ou Enterprise podem usar o formulário Console.

160 

161Em seu shell, execute `claude plugin validate ./your-plugin` localmente antes de enviar, substituindo `./your-plugin` pelo caminho para seu diretório de plugin. Quando a validação passa, Claude Code imprime `✔ Validation passed`, ou `✔ Validation passed with warnings` se houver avisos. Avisos não falham na validação; adicione `--strict` para tratá-los como erros.

162 

163Os plugins listados aparecem no catálogo [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community), em quase todos os casos fixados a um SHA de commit específico.

164 

165Pode haver um atraso entre o envio e seu plugin aparecer em `marketplace.json`. Para verificar se seu plugin já é instalável, procure por seu nome no [catálogo da comunidade](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json).

166 

167O marketplace oficial, `claude-plugins-official`, não aceita envios através desses formulários. Se você trabalha com um contato de parceiro da Anthropic, pergunte-lhes sobre uma listagem no marketplace oficial.

168 

169<h2 id="ship-updates-renames-and-removals">

170 Envie atualizações, renomeações e remoções

171</h2>

172 

173<h3 id="release-a-new-version">

174 Libere uma nova versão

175</h3>

176 

177Se você publicar através de seu próprio marketplace e seu `plugin.json` definir `version`, incremente-o e faça push. Os usuários que executam `claude plugin update` ou têm auto-atualização ativada recebem a nova versão, conforme descrito em [Envie atualizações aos usuários](#ship-updates-to-users).

178 

179<h3 id="tag-a-release">

180 Marque um lançamento

181</h3>

182 

183Marque o lançamento em git quando outros plugins declaram um intervalo de versão no seu, porque esses intervalos se resolvem contra tags. Caso contrário, você não precisa de uma tag.

184 

185Para marcar, execute `claude plugin tag` em seu shell a partir do diretório do plugin. Ele cria uma tag `{name}--v{version}`. Adicione `--push` para enviar a tag para `origin`. A [referência `plugin tag`](/docs/pt/plugins/cli-reference#plugin-tag) lista seus sinalizadores.

186 

187<h3 id="rename-or-remove-a-plugin">

188 Renomeie ou remova um plugin

189</h3>

190 

191Nunca altere o `name` de um plugin publicado. Após uma renomeação, os usuários que já o instalaram perdem o plugin, porque sua instalação é registrada sob o nome antigo. Uma entrada `renames` em seu arquivo de marketplace os migra. Altere `displayName` quando quiser um rótulo diferente.

192 

193Se uma renomeação for inevitável, use o mapa `renames` do arquivo de marketplace para que as instalações existentes migrem em vez de falhar com [`Plugin "<name>" not found in marketplace`](/docs/pt/plugins/troubleshooting#plugin-not-found-in-marketplace). Para remover um plugin do marketplace ou para os detalhes completos de `renames`, veja [Renomeie ou remova um plugin](/docs/pt/plugins/host-marketplace#rename-or-remove-a-plugin) na página de hospedagem. A [referência de marketplace](/docs/pt/plugins/marketplace-reference#top-level-fields) tem o campo.

194 

195<h2 id="declare-dependencies">

196 Declare dependências

197</h2>

198 

199Se seu plugin precisa que outro plugin do mesmo marketplace seja habilitado, liste-o no array `dependencies` de `plugin.json`. Cada entrada é um nome simples ou um objeto com um intervalo de semver `version`. Quando um usuário instala seu plugin, Claude Code instala e habilita a dependência também.

200 

201[Dependências de plugin](/docs/pt/plugins/dependencies) cobre a sintaxe de intervalo, dependências entre marketplaces e como os usuários removem dependências que não precisam mais.

202 

203<h2 id="next-steps">

204 Próximas etapas

205</h2>

206 

207* [Hospede e mantenha um marketplace](/docs/pt/plugins/host-marketplace): libere novas versões e mantenha os usuários atualizados

208* [Dependências de plugin](/docs/pt/plugins/dependencies): declare e versione os plugins dos quais o seu depende

209* [Recomende seu plugin a partir de sua CLI](/docs/pt/plugins/cli-hints): solicite aos usuários Claude Code de sua CLI que instalem o plugin

210* [Meça o custo e o uso do plugin](/docs/pt/plugins/measure): veja quanto seu plugin custa em contexto e se as pessoas o usam

plugins/security.md +186 −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# Segurança e confiança de plugins

6 

7> Decida se confia em um plugin antes de instalá-lo, desde o que um plugin pode fazer em sua máquina até como revisar um e removê-lo.

8 

9Um plugin Claude Code que você instala pode executar código arbitrário em sua máquina com seus privilégios de usuário.

10 

11Você instala um plugin de um marketplace, que é o catálogo do qual Claude Code o busca. Alguns nomes de marketplace são [reservados para os próprios marketplaces da Anthropic](#marketplace-tiers), e todos os outros marketplaces são de terceiros. O nome de um marketplace informa quem publica o catálogo, não o que cada plugin nele faz, portanto [revise um plugin antes de instalá-lo](#review-a-plugin-before-you-install) de qualquer marketplace de onde ele venha.

12 

13Leia esta página se você está decidindo se deve instalar um plugin ou se você revisa ferramentas antes que sua equipe possa usá-las.

14 

15<Note>

16 Estes casos são cobertos em outras páginas:

17 

18 * **Modelo de segurança próprio do Claude Code**: veja [Segurança](/docs/pt/security)

19 * **Restringir ou exigir plugins para uma organização**: veja [Gerenciar plugins para sua organização](/docs/pt/plugins/org)

20 * **Os plugins `security-guidance` ou `claude-security`**: esta página não é sobre eles. Veja [`security-guidance`](/docs/pt/security-guidance) e [`claude-security`](/docs/pt/claude-security)

21</Note>

22 

23Comece com [o que um plugin pode fazer](#understand-what-a-plugin-can-do) e [quais marketplaces são da Anthropic](#marketplace-tiers), depois [revise o plugin antes de instalá-lo](#review-a-plugin-before-you-install).

24 

25<h2 id="understand-what-a-plugin-can-do">

26 Entenda o que um plugin pode fazer

27</h2>

28 

29Um plugin pode conter conteúdo que executa código em sua máquina com seus privilégios de usuário e conteúdo que entra no contexto do Claude como instruções, portanto [revise um plugin antes de instalá-lo](#review-a-plugin-before-you-install). Aqui está o que um plugin instalado pode fazer:

30 

31* **Hooks**: os [hooks](/docs/pt/hooks) de um plugin são executados como comandos shell em pontos do ciclo de vida do Claude Code, como antes ou depois de uma chamada de ferramenta.

32* **Servidores MCP e LSP**: Claude Code se conecta aos [servidores MCP](/docs/pt/mcp) que um plugin habilitado declara e fornece ao Claude suas ferramentas. Um servidor MCP stdio é executado como um processo que Claude Code inicia em sua máquina. Claude Code também inicia os servidores de linguagem que o plugin declara.

33* **Diretório `bin/`**: Claude Code adiciona o diretório `bin/` de cada plugin habilitado ao `PATH` do shell da ferramenta Bash, para que os comandos Bash do Claude possam executar qualquer executável lá.

34* **Skills, comandos e agentes**: estes entram no contexto do Claude como instruções, portanto influenciam o que Claude faz com as ferramentas que já possui.

35* **Atualizações**: quando a atualização automática está ativada para o marketplace do qual você instalou um plugin, Claude Code atualiza esse plugin em segundo plano, portanto os arquivos que você revisou podem mudar no disco. [Quando auto-update é executado](/docs/pt/plugins/loading#when-auto-update-runs) tem o cronograma. Para ativar ou desativar a atualização automática por marketplace, veja [Manter plugins atualizados](/docs/pt/plugins/install#keep-plugins-updated).

36 

37As [regras de permissão](/docs/pt/permissions) e [sandbox](/docs/pt/sandboxing) do Claude Code cobrem as chamadas de ferramenta que Claude faz, não o código que um plugin executa por si só:

38 

39* **Hooks e processos de servidor**: command hooks executam comandos shell com suas permissões completas de usuário. Claude Code executa hooks e servidores MCP fora da sandbox.

40* **Chamadas de ferramenta do Claude**: uma chamada para uma das ferramentas MCP do plugin e um comando Bash que executa um executável do `bin/` do plugin são chamadas de ferramenta, portanto suas regras de permissão se aplicam a elas.

41 

42Instalar um plugin também o habilita, a menos que seu manifesto ou entrada de marketplace defina [`defaultEnabled: false`](/docs/pt/plugins/install#choose-an-install-scope) e você não o tenha habilitado você mesmo.

43 

44Para remover um plugin em que você não confia mais, veja [Remover um plugin em que você não confia mais](#remove-a-plugin-you-no-longer-trust).

45 

46<h2 id="marketplace-tiers">

47 Identifique os marketplaces da Anthropic pelo nome

48</h2>

49 

50O nome de um marketplace o coloca em um de três níveis: oficial, comunidade ou terceiros. Claude Code aceita os nomes oficial e comunidade apenas para marketplaces originários de repositórios `github.com/anthropics/`, portanto um marketplace de terceiros não pode se apresentar como um da Anthropic. Um marketplace que um colega de trabalho ou sua organização publica é de terceiros.

51 

52A tabela lista quais nomes se enquadram em cada nível:

53 

54| Nível | Quais marketplaces |

55| :--------- | :--------------------------------------------------------------------------------------------- |

56| Oficial | Os [nomes de marketplace oficial](#official-marketplace-names), como `claude-plugins-official` |

57| Comunidade | `claude-community`, `claude-plugins-community` e `healthcare` |

58| Terceiros | Todos os outros marketplaces |

59 

60Onde o catálogo `claude-community` fixa um plugin em um SHA de commit, o que faz para quase todas as entradas, Claude Code recusa instalar um commit diferente.

61 

62<h3 id="official-marketplace-names">

63 Nomes de marketplace oficial

64</h3>

65 

66Estes nomes de marketplace compõem o nível oficial:

67 

68* `claude-plugins-official`

69* `claude-code-marketplace`

70* `claude-code-plugins`

71* `anthropic-marketplace`

72* `anthropic-plugins`

73* `agent-skills`

74* `anthropic-agent-skills`

75* `life-sciences`

76* `knowledge-work-plugins`

77* `claude-for-legal`

78* `claude-for-financial-services`

79* `financial-services-plugins`

80* `first-party-plugins`

81* `claude-tag-plugins`

82 

83Para saber como os marketplaces oficial, comunidade e demo diferem e onde procurar o que cada um lista, veja [Marketplaces da Anthropic](/docs/pt/plugins/anthropic-marketplaces).

84 

85<h2 id="review-a-plugin-before-you-install">

86 Revise um plugin antes de instalar

87</h2>

88 

89Antes de instalar um plugin, veja o que ele adiciona e de onde vem.

90 

91<Steps>

92 <Step title="Verifique a fonte do marketplace">

93 Em seu shell, execute `claude plugin marketplace list` para imprimir a fonte de cada marketplace foi adicionado, como um repositório GitHub ou um diretório.

94 </Step>

95 

96 <Step title="Leia o painel de detalhes">

97 Em uma sessão Claude Code, execute `/plugin` e selecione o plugin. O painel de detalhes mostra uma seção **Will install** listando os comandos, agentes, skills, hooks e servidores MCP e LSP do plugin. Para um plugin para o qual a Anthropic não tem dados de componente publicados, a seção mostra o que a entrada do marketplace declara, ou uma nota: `Components will be discovered at installation` para um plugin armazenado dentro do marketplace, ou `Component summary not available for remote plugin` para um buscado de outro lugar.

98 </Step>

99 

100 <Step title="Leia a fonte do plugin">

101 No painel de detalhes, selecione **Open homepage** ou **View on GitHub** abaixo das opções de instalação. Se o painel não oferecer nenhum dos dois, abra o repositório do marketplace que você encontrou na primeira etapa. Encontre o diretório do plugin lá. A seção **Will install** mostra que um hook existe, mas não o que ele executa, portanto leia estes arquivos no diretório do plugin:

102 

103 * **`hooks/hooks.json`**: o comando que cada hook executa

104 * **`.mcp.json`**: o comando ou URL de cada servidor

105 * **`bin/`**: cada arquivo no diretório

106 </Step>

107 

108 <Step title="Liste o que o plugin contém">

109 Clone o repositório que contém o diretório do plugin, depois execute `claude --plugin-dir <plugin directory> plugin details <plugin name>` em seu shell para ver o que Claude Code encontra nele. O comando lê os arquivos do plugin sem iniciar uma sessão e imprime um `Component inventory` listando os skills e comandos do plugin, agentes, hooks com o evento de cada hook e servidores MCP e LSP.

110 </Step>

111</Steps>

112 

113Depois de instalar um plugin, execute `claude plugin details <plugin name>` em seu shell para imprimir o mesmo `Component inventory` para a cópia instalada em `~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/`.

114 

115<h3 id="remove-a-plugin-you-no-longer-trust">

116 Remover um plugin em que você não confia mais

117</h3>

118 

119Em seu shell, execute [`claude plugin uninstall <plugin>`](/docs/pt/plugins/cli-reference#plugin-uninstall) com o `--scope` em que você o instalou. Depois verifique o que a desinstalação removeu e o que deixou:

120 

121* **Dados persistentes**: quando essa era a última escopo em que o plugin foi instalado, desinstalar também exclui o diretório de dados persistentes do plugin, a menos que você passe `--keep-data`.

122* **Arquivos em cache**: os arquivos do plugin permanecem no disco em `~/.claude/plugins/cache/` por 14 dias antes de uma [varredura em segundo plano removê-los](/docs/pt/plugins/loading#cleanup-of-previous-versions). Depois de desinstalar seu último plugin, diretórios órfãos permanecem até você instalar outro. Para excluir os arquivos agora, remova o diretório do plugin em `~/.claude/plugins/cache/<marketplace>/<plugin>/` você mesmo.

123* **O marketplace**: se você também não confia no proprietário do marketplace, [remova o marketplace](/docs/pt/plugins/install#manage-marketplaces) também, o que desinstala cada plugin que você instalou dele.

124 

125<h2 id="recognize-when-claude-code-refuses-or-warns">

126 Reconheça quando Claude Code recusa ou avisa

127</h2>

128 

129O painel de detalhes que você abre na aba **Discover** ou **Marketplaces** em `/plugin` mostra o mesmo aviso de confiança para cada plugin. Claude Code recusa em vez de avisar em casos como aqueles em [Fontes de marketplace não confiáveis e verificações de integridade falhadas](#untrusted-marketplace-sources-and-failed-integrity-checks).

130 

131<h3 id="trust-warning-before-you-install">

132 Aviso de confiança antes de instalar

133</h3>

134 

135O aviso lê o mesmo independentemente de qual marketplace o plugin vem:

136 

137```text theme={null}

138Make sure you trust a plugin before installing, updating, or using it. Anthropic does not control what MCP servers, files, or other software are included in plugins and cannot verify that they will work as intended or that they won't change. See each plugin's homepage for more information.

139```

140 

141Se sua organização define `pluginTrustMessage` em [configurações gerenciadas](/docs/pt/plugins/org), Claude Code anexa esse texto ao aviso.

142 

143<h3 id="untrusted-marketplace-sources-and-failed-integrity-checks">

144 Fontes de marketplace não confiáveis e verificações de integridade falhadas

145</h3>

146 

147Claude Code recusa carregar um marketplace ou instalar um plugin nestes casos, cada um com sua própria mensagem de erro:

148 

149* **Fonte de marketplace não confiável**: quando um marketplace usa um nome oficial ou comunidade, mas sua fonte está fora de `github.com/anthropics/`, Claude Code para de carregar o marketplace e os plugins que você instalou dele. O erro é [Marketplace is registered from an untrusted source](/docs/pt/errors#marketplace-is-registered-from-an-untrusted-source).

150* **Integridade do arquivo**: quando uma entrada de marketplace fixa uma [`archive` source](/docs/pt/plugins/marketplace-reference#archive-plugin-source) para um digest `sha256` e o digest do arquivo baixado não corresponde, Claude Code recusa a instalação. O erro é [Plugin archive integrity check failed](/docs/pt/errors#plugin-archive-integrity-check-failed).

151 

152O pin `sha256` é separado do pin de SHA de commit do catálogo da comunidade, que seleciona o commit git para fazer checkout.

153 

154<h2 id="enforce-plugin-controls-for-your-organization">

155 Aplique controles de plugin para sua organização

156</h2>

157 

158Com [configurações gerenciadas](/docs/pt/plugins/org), um administrador pode aplicar estes controles de plugin:

159 

160* Lista de permissão ou bloqueio de fontes de marketplace

161* Forçar habilitação de plugins

162* Desativar os sinalizadores `--plugin-dir` e `--plugin-url` e a variável `CLAUDE_CODE_PLUGIN_DIRS`

163* Limitar hooks aos das configurações gerenciadas e plugins forçados habilitados

164* Impedir que plugins das contas claude.ai de membros sejam carregados em Claude Code, com [`syncClaudeAiPlugins`](/docs/pt/plugins/org#control-matrix)

165 

166A [matriz de controle](/docs/pt/plugins/org#control-matrix) diz o que cada chave faz e não cobre.

167 

168<h2 id="find-plugins-in-telemetry">

169 Encontre plugins em telemetria

170</h2>

171 

172Se sua organização exporta os [eventos OpenTelemetry](/docs/pt/monitoring-usage) do Claude Code para seu próprio backend, os [níveis de marketplace](#marketplace-tiers) decidem quais nomes de plugin aparecem lá:

173 

174* **[Evento de plugin carregado](/docs/pt/monitoring-usage#plugin-loaded-event)**: o evento relata nomes de plugin e marketplace de nível oficial como estão. Para os níveis comunidade e terceiros, `plugin.name` e `marketplace.name` são a string literal `third-party` a menos que você defina `OTEL_LOG_TOOL_DETAILS=1`.

175* **Escopo do plugin**: o `plugin.scope` do evento carregado ainda relata de onde o plugin veio, como `org` para um plugin que suas configurações gerenciadas habilitam ou `user-local` para qualquer outro plugin de terceiros. O [evento de plugin carregado](/docs/pt/monitoring-usage#plugin-loaded-event) lista cada valor.

176* **[Evento de plugin instalado](/docs/pt/monitoring-usage#plugin-installed-event)**: a menos que você defina `OTEL_LOG_TOOL_DETAILS=1`, o evento omite os campos de nome para plugins não oficiais em vez de relatar `third-party`.

177* **[API de Análise do Claude Code](https://platform.claude.com/docs/en/api/admin/analytics/plugins/list)**: Claude Code relata plugins dos níveis oficial e comunidade por nome e relata cada outro plugin como `third-party`.

178 

179<h2 id="next-steps">

180 Próximas etapas

181</h2>

182 

183* [Gerenciar plugins para sua organização](/docs/pt/plugins/org): restrinja quais marketplaces os usuários podem instalar e exija os em que você confia

184* [Instalar e gerenciar plugins](/docs/pt/plugins/install): revise o painel de detalhes de um plugin antes de escolher um escopo

185* [Marketplaces da Anthropic](/docs/pt/plugins/anthropic-marketplaces): quais nomes de marketplace são da Anthropic

186* [Segurança](/docs/pt/security): modelo de segurança próprio do Claude Code

plugins/troubleshooting.md +1064 −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 de plugins

6 

7> Corrija erros de plugins no Claude Code. Encontre a mensagem exata que você viu, agrupada por estágio desde onde /plugin é executado até a instalação e política da organização.

8 

9Esta página lista mensagens de erro e sintomas para plugins do Claude Code e para marketplaces, os catálogos dos quais o Claude Code instala plugins. Cada entrada fornece a causa, uma correção e o que você vê após a correção funcionar.

10 

11Quando uma mensagem nomeia um plugin ou marketplace, a entrada mostra um espaço reservado como `<name>` em vez disso.

12 

13Use esta página se você instalar plugins, construí-los, hospedar um marketplace ou administrar plugins para uma organização.

14 

15<Note>

16 Estes casos são cobertos em outras páginas:

17 

18 * **Por que escopos, o cache e precedência se comportam da maneira que fazem**: leia [Plugin loading reference](/docs/pt/plugins/loading)

19 * **Procurando por um sinalizador, campo ou comando**: use a [plugin commands reference](/docs/pt/plugins/cli-reference), a [manifest reference](/docs/pt/plugins/manifest-reference), ou a [marketplace reference](/docs/pt/plugins/marketplace-reference)

20</Note>

21 

22Procure pela mensagem exata que você viu. Cada mensagem é listada sob o estágio que a produz, o que nem sempre é o comando que você executou. Por exemplo, uma instalação pode falhar porque um marketplace está faltando, então essa mensagem está sob [Add a marketplace](#add-a-marketplace).

23 

24<h2 id="find-where-/plugin-runs">

25 Find where `/plugin` runs

26</h2>

27 

28`/plugin` é um comando que você digita dentro de uma sessão de terminal do Claude Code em execução, e abre um painel interativo. As entradas nesta seção cobrem os lugares onde você pode digitá-lo, mas ele não pode ser executado, e os comandos que não existem.

29 

30<h3 id="plugin-isnt-available-in-this-environment">

31 `/plugin isn't available in this environment`

32</h3>

33 

34Você digitou `/plugin` em algum lugar que não seja uma sessão de terminal do Claude Code, e Claude respondeu com esta linha em vez de abrir qualquer coisa.

35 

36Você recebe esta resposta em uma sessão que não tem terminal para desenhar o painel `/plugin`: [non-interactive mode](/docs/pt/headless) com `claude -p`, o Agent SDK, a aba Code do aplicativo Claude desktop, o painel de extensão do VS Code e o navegador em claude.ai/code.

37 

38No painel de extensão do VS Code, apenas uma linha `/plugin` com algo depois dela, como `/plugin install <plugin>@<marketplace>`, recebe esta resposta. `/plugin` ou `/plugins` digitados sozinhos abre o diálogo **Manage plugins**.

39 

40Instale o plugin a partir da superfície em que você está:

41 

42* **Aplicativo Claude desktop, sessão local ou SSH**: clique no botão **+** ao lado do prompt, depois **Plugins**, depois **Add plugin** para abrir o [plugin browser](/docs/pt/desktop#install-plugins)

43* **Extensão VS Code**: use a aba **VS Code** em [Install a plugin](/docs/pt/plugins/install#install-a-plugin)

44* **Claude Code na web ou uma sessão cloud desktop**: uma sessão cloud não tem navegador de plugins. Veja a aba **Cloud session** em [Install a plugin](/docs/pt/plugins/install#install-a-plugin) para o que uma sessão cloud carrega

45* **Um terminal que você tem acesso**: execute `claude` e digite `/plugin` lá, ou execute `claude plugin install <plugin>@<marketplace>` no seu shell sem iniciar uma sessão

46 

47Quando uma instalação de terminal funciona, `/plugin` imprime um resumo de instalação que começa com `✓ Installed <plugin>.` e `claude plugin install` imprime `Successfully installed plugin: <plugin>@<marketplace>`.

48 

49<h3 id="zsh-no-such-file-or-directory-plugin">

50 `zsh: no such file or directory: /plugin`

51</h3>

52 

53Você digitou `/plugin ...` em um prompt de shell, e o shell relatou que nenhum arquivo chamado `/plugin` existe. Bash relata `bash: /plugin: No such file or directory`.

54 

55`/plugin` é um comando que você digita dentro de uma sessão do Claude Code, não em um prompt de shell. Inicie uma sessão e digite o mesmo comando lá:

56 

57```shell theme={null}

58claude

59```

60 

61Depois, no prompt do Claude Code:

62 

63```text theme={null}

64/plugin install <plugin>@<marketplace>

65```

66 

67Uma instalação bem-sucedida imprime um resumo que começa com `✓ Installed <plugin>.` Se a instalação em si falhar, sua mensagem está em [Add a marketplace](#add-a-marketplace) ou [Install a plugin](#install-a-plugin).

68 

69Para instalar a partir do shell sem iniciar uma sessão, execute `claude plugin install <plugin>@<marketplace>` em vez disso.

70 

71<h3 id="the-term-plugin-is-not-recognized-as-the-name-of-a-cmdlet">

72 `The term '/plugin' is not recognized as the name of a cmdlet`

73</h3>

74 

75Você digitou `/plugin ...` em um prompt do PowerShell, e `/plugin` é um comando do Claude Code, não um programa. Bash e Zsh relatam [sua própria forma deste erro](#zsh-no-such-file-or-directory-plugin).

76 

77Use um destes em vez disso:

78 

79* Execute `claude`, depois digite `/plugin` no prompt do Claude Code

80* Execute `claude plugin install <plugin>@<marketplace>` no PowerShell sem iniciar uma sessão

81 

82<h3 id="claude-command-not-found-after-claude-plugin">

83 `claude: command not found` after `claude plugin ...`

84</h3>

85 

86Você executou `claude plugin install ...` no seu shell, e o shell não conseguiu encontrar `claude` em absoluto. No Windows a mensagem é `'claude' is not recognized as the name of a cmdlet` ou `'claude' is not recognized as an internal or external command`.

87 

88A causa não é o comando do plugin. Ou o Claude Code não está instalado, ou seu diretório de instalação não está no seu `PATH` neste shell. Siga [`command not found: claude` after installation](/docs/pt/troubleshoot-install#command-not-found-claude-after-installation), depois tente novamente o comando do plugin.

89 

90<h3 id="unknown-command-and-command-spellings-that-dont-exist">

91 `Unknown command` and command spellings that don't exist

92</h3>

93 

94Você digitou um comando de plugin que viu em algum lugar e recebeu `Unknown command: /<name>` em uma sessão, ou `error: unknown command '<name>'` ou `error: unknown option '<flag>'` do binário `claude` no seu shell.

95 

96Vários comandos estão em uso que o Claude Code não possui. A tabela abaixo mapeia cada um para o comando real. A [plugin commands reference](/docs/pt/plugins/cli-reference) lista todos os subcomandos e sinalizadores.

97 

98| Você digitou | O que Claude Code diz | Use em vez disso |

99| :----------------------------------------- | :--------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------ |

100| `claude plugin add <source>` | `error: unknown command 'add'` | `claude plugin marketplace add <source>` para adicionar um marketplace, ou `claude plugin install <plugin>@<marketplace>` para instalar um plugin |

101| `claude plugin install <plugin> --project` | `error: unknown option '--project'` | `claude plugin install <plugin>@<marketplace> --scope project` |

102| `/install <plugin>` | `Unknown command: /install` | `/plugin install <plugin>@<marketplace>` |

103| `/plugin add <source>` | O painel `/plugin` abre na aba **Discover** | `/plugin marketplace add <source>` |

104| `marketplace.anthropic.com` como uma fonte | `Invalid marketplace source format. Try: owner/repo, https://..., or ./path` | `anthropics/claude-plugins-official` para o marketplace oficial |

105 

106Estes comandos parecem errados mas funcionam:

107 

108* `claude plugins` é um alias de `claude plugin`

109* `claude plugin remove` é um alias de `claude plugin uninstall`

110* `/plugins` e `/marketplace` em uma sessão abrem o mesmo painel que `/plugin`

111 

112<h2 id="add-a-marketplace">

113 Add a marketplace

114</h2>

115 

116Um marketplace é um catálogo que você adiciona ao Claude Code a partir de um repositório git, uma URL ou um caminho local. Estas entradas cobrem as mensagens que você recebe quando adicionar um falha ou uma atualização posterior falha.

117 

118<h3 id="marketplace-claude-plugins-official-not-found">

119 `Marketplace "claude-plugins-official" not found`

120</h3>

121 

122Você executou `/plugin install <plugin>@claude-plugins-official` em uma sessão, e Claude Code relatou que não tem um marketplace com esse nome.

123 

124O marketplace oficial não está registrado nesta máquina ainda. Claude Code normalmente o registra por conta própria na primeira vez que você inicia uma sessão de terminal interativa. Ele não foi executado ainda se você só usou Claude Code através da extensão VS Code, e pula ou adia essa etapa:

125 

126* Quando uma política bloqueia a fonte

127* Quando `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` está definido

128* Após uma tentativa falhada que está aguardando para tentar novamente

129 

130Os comandos de shell `claude plugin` nunca o registram para você.

131 

132Adicione-o, depois tente novamente a instalação:

133 

134```text theme={null}

135/plugin marketplace add anthropics/claude-plugins-official

136```

137 

138Claude Code imprime `Successfully added marketplace: claude-plugins-official`, e `/plugin marketplace list` mostra o marketplace com sua fonte.

139 

140Para qualquer outro nome de marketplace nesta mensagem, veja [`Marketplace "<name>" not found`](#marketplace-not-found).

141 

142A mesma string também aparece na aba **Errors** do `/plugin`, a lista de falhas de carregamento do painel, quando um plugin listado em suas configurações nomeia um marketplace que você não adicionou.

143 

144<h3 id="marketplace-not-found">

145 `Marketplace "<name>" not found`

146</h3>

147 

148Você executou `/plugin install <plugin>@<name>` em uma sessão, frequentemente a partir de uma linha de instalação que alguém enviou para você, e Claude Code relatou que não tem um marketplace com esse nome.

149 

150Se o nome começar com `claudeai-`, o marketplace é hospedado em claude.ai, e você o adiciona pelo nome a partir do seu shell com `claude plugin marketplace add --claudeai <name>`. Veja [Add a marketplace from claude.ai](/docs/pt/plugins/install#add-from-claude-ai).

151 

152Para qualquer outro nome, uma linha de instalação nomeia um marketplace mas não diz onde o marketplace é hospedado, e Claude Code não tem um índice para procurar um nome de marketplace. Peça a quem enviou a linha pela fonte do marketplace, que é um GitHub `owner/repo`, uma URL git ou um caminho. Depois [adicione o marketplace](/docs/pt/plugins/install#add-a-marketplace) e execute a linha de instalação novamente.

153 

154Um marketplace que alguém envia para você é de terceiros, então [revise o plugin antes de instalá-lo](/docs/pt/plugins/security#review-a-plugin-before-you-install).

155 

156Se você já adicionou o marketplace, verifique a ortografia contra `/plugin marketplace list`.

157 

158<h3 id="invalid-marketplace-source-format">

159 `Invalid marketplace source format`

160</h3>

161 

162Você executou `/plugin marketplace add <source>` ou `claude plugin marketplace add <source>`, e Claude Code respondeu `Invalid marketplace source format. Try: owner/repo, https://..., or ./path`.

163 

164Claude Code aceita uma fonte em uma destas formas:

165 

166* Um atalho GitHub `owner/repo`

167* Uma URL `https://` ou `http://`

168* Uma URL SSH `user@host:path`

169* Um caminho local começando com `./`, `../`, `/` ou `~`

170 

171Um nome simples como `claude-plugins-official` não corresponde a nenhum deles. Nem um nome de host simples como `marketplace.anthropic.com`.

172 

173Redigite a fonte em uma das formas aceitas:

174 

175```text theme={null}

176/plugin marketplace add anthropics/claude-plugins-official

177```

178 

179Claude Code imprime `Successfully added marketplace: <name>` quando a adição funciona.

180 

181<h3 id="is-not-a-valid-github-owner-repo-shorthand">

182 `'<source>' is not a valid GitHub owner/repo shorthand`

183</h3>

184 

185Você passou uma fonte com uma barra que não é `owner/repo`, como `github.com/owner/repo` ou um caminho `gitlab.example.com/group/project`. Claude Code a recusou com esta mensagem e uma lista de formas aceitas.

186 

187O atalho `owner/repo` é apenas para GitHub e tem que seguir as regras de nomenclatura do GitHub, então um nome de host ou um segmento de caminho extra falha. Passe a fonte na forma que corresponde a onde o marketplace é hospedado:

188 

189* **Um repositório em qualquer host**: a URL de clone completa

190* **Um `marketplace.json` hospedado**: sua URL `https://`

191* **Um checkout local**: `./path` ou um caminho absoluto

192 

193Por exemplo, para adicionar o marketplace oficial pela sua URL de clone, em uma sessão:

194 

195```text theme={null}

196/plugin marketplace add https://github.com/anthropics/claude-plugins-official.git

197```

198 

199Uma adição bem-sucedida imprime `Successfully added marketplace: <name>`.

200 

201<h3 id="path-does-not-exist">

202 `Path does not exist: <path>`

203</h3>

204 

205Você passou um caminho local para `marketplace add`, e nada existe nesse caminho. Um caminho relativo resolve contra seu diretório atual.

206 

207Verifique o caminho resolvido na mensagem. Depois execute o comando a partir do diretório do qual o caminho relativo começa, ou passe um caminho absoluto para o diretório do marketplace. Uma adição bem-sucedida imprime `Successfully added marketplace: <name>`.

208 

209Claude Code aceita um diretório que contém `.claude-plugin/marketplace.json`, ou um caminho para um arquivo `.json`. Um caminho para qualquer outro arquivo falha com `File path must point to a .json file (marketplace.json)`.

210 

211<h3 id="marketplace-file-not-found-at-claude-plugin-marketplace-json">

212 `Marketplace file not found at <path>/.claude-plugin/marketplace.json`

213</h3>

214 

215Claude Code clonou ou baixou o marketplace mas não encontrou `marketplace.json` no caminho esperado dentro dele. O comando add relata como `Failed to add marketplace: Marketplace file not found at ...`.

216 

217O local padrão é `.claude-plugin/marketplace.json` na raiz do repositório, e a [marketplace reference](/docs/pt/plugins/marketplace-reference) lista os locais aceitos.

218 

219A correção difere para o proprietário e para todos os outros:

220 

221* **Você é o proprietário do marketplace**: coloque o arquivo nesse local e re-adicione o marketplace

222* **Alguém mais o hospeda**: peça ao proprietário pela fonte exata que eles publicam

223 

224<h3 id="ssh-authentication-failed-or-https-authentication-failed">

225 `SSH authentication failed` or `HTTPS authentication failed`

226</h3>

227 

228Você adicionou ou atualizou um marketplace a partir de um repositório git, e o clone falhou com `Failed to clone marketplace repository:` seguido por uma destas linhas.

229 

230Primeiro verifique o repositório em si: um `owner/repo` digitado errado, um repositório que não existe ou um repositório privado que você não consegue ver também termina nesta mensagem. Abra a URL do repositório no seu navegador, ou execute `git ls-remote <url>` no seu terminal, para confirmar que existe e você tem acesso.

231 

232Se o repositório está correto, a causa é credenciais. Claude Code executa git com prompts interativos desabilitados, então não consegue pedir uma senha, uma frase de passagem de chave ou uma credencial da maneira que seu terminal faria. Se git precisa fazer um prompt, você vê `fatal: Cannot prompt because user interactivity has been disabled` ou `terminal prompts disabled` no erro original. Apenas credenciais que já funcionam de forma não-interativa têm sucesso:

233 

234* **SSH**: `ssh -T git@<host>` deve ter sucesso sem pedir uma frase de passagem, e o host já deve estar em `known_hosts`

235* **HTTPS**: seu auxiliar de credencial deve manter um token para o host. Para GitHub, execute `gh auth login` e `gh auth setup-git`. Para outro host, armazene um token de acesso pessoal no seu auxiliar de credencial git. Teste com `git ls-remote <url>`

236 

237Uma vez que `git ls-remote` tenha sucesso no seu terminal sem um prompt, execute a adição ou atualização novamente. Uma adição bem-sucedida imprime `Successfully added marketplace: <name>`. Uma atualização bem-sucedida imprime `Successfully updated marketplace: <name>` a partir do seu shell, ou `✔ Updated 1 marketplace` em uma sessão.

238 

239Para fazer Claude Code pular SSH para fontes GitHub `owner/repo`, defina `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`. Sem isso, Claude Code clona essas fontes sobre SSH quando uma chave SSH para `github.com` parece estar configurada, e volta para HTTPS quando o clone SSH falha.

240 

241Para o que as atualizações automáticas de fundo podem e não podem fazer com suas credenciais, veja [What background auto-update does with credentials](/docs/pt/plugins/host-marketplace#what-background-auto-update-does-with-credentials).

242 

243<h3 id="ssh-host-key-is-not-in-your-known-hosts-file">

244 `SSH host key is not in your known_hosts file`

245</h3>

246 

247Você adicionou um marketplace sobre SSH a partir de um host ao qual nunca se conectou, e o clone falhou com esta linha e uma dica `ssh -T git@<host>`. Para um host cuja chave mudou, a mensagem é `SSH host key has changed` com uma dica `ssh-keygen -R <host>` em vez disso.

248 

249Claude Code clona com `StrictHostKeyChecking=yes`, então recusa um host cuja chave você ainda não aceitou em vez de aceitar a chave automaticamente. Conecte uma vez a partir do seu terminal para aceitar a impressão digital, depois tente novamente:

250 

251```shell theme={null}

252ssh -T git@github.com

253```

254 

255Para um repositório público, adicione o marketplace pela sua URL `https://` em vez disso para evitar SSH completamente.

256 

257<h3 id="command-git-not-found-or-is-in-an-unsafe-location">

258 `Command 'git' not found or is in an unsafe location`

259</h3>

260 

261No Windows, você adicionou um marketplace e Claude Code relatou `Failed to clone marketplace repository: Command 'git' not found or is in an unsafe location (current directory)`.

262 

263Claude Code procura por `git` no seu `PATH` e recusa executar um encontrado apenas no diretório atual. Para corrigi-lo, instale Git e tente novamente:

264 

265<Steps>

266 <Step title="Install Git for Windows">

267 Instale Git for Windows para que `git` esteja no seu `PATH`.

268 </Step>

269 

270 <Step title="Open a new terminal">

271 Abra um novo terminal para que o `PATH` atualizado se aplique.

272 </Step>

273 

274 <Step title="Confirm git runs">

275 Confirme que `git --version` imprime uma versão.

276 </Step>

277 

278 <Step title="Retry the add">

279 Execute o comando `marketplace add` novamente.

280 </Step>

281</Steps>

282 

283<h3 id="git-clone-timed-out-after-120s">

284 `Git clone timed out after 120s`

285</h3>

286 

287Você adicionou ou atualizou um marketplace, e falhou com `Git clone timed out after 120s`, seguido por uma dica para definir `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS`.

288 

289Clonar um marketplace, e re-clonar um para atualizá-lo, recebe 120 segundos por padrão. Para um repositório grande ou uma conexão lenta, aumente o limite. O valor está em milissegundos:

290 

291<Tabs>

292 <Tab title="Bash or Zsh">

293 ```bash theme={null}

294 export CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS=300000

295 ```

296 </Tab>

297 

298 <Tab title="PowerShell">

299 ```powershell theme={null}

300 $env:CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS = "300000"

301 ```

302 </Tab>

303</Tabs>

304 

305Depois tente novamente no mesmo shell.

306 

307Se o repositório é um monorepo, limite o checkout aos diretórios que você nomeia com `claude plugin marketplace add <source> --sparse <paths>`.

308 

309<h3 id="marketplace-updates-keep-failing-offline">

310 Marketplace updates keep failing offline

311</h3>

312 

313Você trabalha em um ambiente onde o host git do marketplace é inacessível, e cada sessão repete uma atualização falhada em segundo plano. Seu checkout existente do marketplace permanece no lugar e a inicialização não é atrasada.

314 

315Cada sessão, para um marketplace com [auto-update on](/docs/pt/plugins/loading#which-marketplaces-and-plugins-auto-update), Claude Code verifica o host git do marketplace para novos commits em segundo plano. Quando essa verificação não consegue alcançar o host, ela tenta clonar o marketplace novamente, e offline esse clone também falha.

316 

317Defina esta variável para pular a tentativa de re-clone e continuar usando o checkout existente quando a verificação não conseguir alcançar o host:

318 

319<Tabs>

320 <Tab title="Bash or Zsh">

321 ```bash theme={null}

322 export CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1

323 ```

324 </Tab>

325 

326 <Tab title="PowerShell">

327 ```powershell theme={null}

328 $env:CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE = "1"

329 ```

330 </Tab>

331</Tabs>

332 

333Com a variável definida, Claude Code pula o re-clone apenas para um checkout que já contém `.claude-plugin/marketplace.json`. Um marketplace que nunca foi clonado ou cujo clone parou no meio ainda recebe a tentativa de clone, então adicione-o uma vez enquanto online.

334 

335Para uma implantação totalmente offline, pré-popule o diretório de plugins no tempo de construção da imagem com `CLAUDE_CODE_PLUGIN_SEED_DIR` em vez disso, seguindo [Seed containers and CI](/docs/pt/plugins/org#seed-containers-and-ci).

336 

337<h3 id="marketplace-add-fails-on-a-github-enterprise-server-host">

338 Marketplace add fails on a GitHub Enterprise Server host

339</h3>

340 

341Você adicionou um marketplace a partir de uma URL do GitHub Enterprise Server (GHES) e recebeu um erro de política, ou o adicionou a partir de claude.ai e recebeu um erro de acesso ao GitHub.

342 

343Ambos os casos estão na página GHES:

344 

345* [A policy error](/docs/pt/github-enterprise-server#marketplace-add-fails-with-a-policy-error) significa que sua organização restringiu fontes de marketplace e um administrador precisa adicionar um `hostPattern` para o host

346* [A GitHub access error on claude.ai](/docs/pt/github-enterprise-server#marketplace-add-on-claude-ai-fails-with-a-github-access-error) significa que sua própria conta GitHub Enterprise ainda não está conectada

347 

348<h2 id="install-a-plugin">

349 Install a plugin

350</h2>

351 

352Você adicionou um marketplace e executou uma instalação, e a instalação parou com uma mensagem em vez de instalar qualquer coisa. Estas entradas cobrem essas mensagens. Elas também cobrem as mensagens relacionadas que aparecem mais tarde na aba **Errors** do `/plugin`, ou como uma aba **Discover** vazia, quando um plugin ou seu marketplace não conseguem ser encontrados, lidos ou confiáveis.

353 

354<h3 id="plugin-not-found-in-marketplace">

355 `Plugin "<name>" not found in marketplace "<marketplace>"`

356</h3>

357 

358Você executou `/plugin install <name>@<marketplace>` ou `claude plugin install <name>@<marketplace>`, e o nome do plugin não está na cópia do catálogo desse marketplace em sua máquina.

359 

360`claude plugin install` no seu shell imprime a mesma mensagem quando você não adicionou o marketplace em absoluto. Se `claude plugin marketplace update <marketplace>` então responde `Marketplace '<marketplace>' not found`, [adicione o marketplace](#add-a-marketplace) primeiro.

361 

362<h4 id="the-message-ends-with-a-refresh-hint">

363 `not found in marketplace` with a refresh hint

364</h4>

365 

366A dica lê `Your local copy may be out of date — try claude plugin marketplace update <marketplace>` ou `The marketplace couldn't be refreshed (...)`. Claude Code não atualizou o marketplace antes da busca, como quando você está offline, então sua cópia do catálogo pode estar desatualizada. Atualize com o nome do marketplace, depois instale novamente:

367 

368```text theme={null}

369/plugin marketplace update <marketplace>

370```

371 

372`claude plugin marketplace update` imprime `Successfully updated marketplace: <name>`, e `/plugin marketplace update` mostra `✔ Updated 1 marketplace`. Se a instalação retentada imprime a mesma mensagem, verifique o nome como [`not found in marketplace` with no hint](#the-message-has-no-hint) descreve. [When Claude Code refreshes a marketplace before an install](/docs/pt/plugins/loading#when-claude-code-refreshes-a-marketplace-before-an-install) lista os outros casos onde a atualização não é executada.

373 

374<h4 id="the-message-has-no-hint">

375 `not found in marketplace` with no hint

376</h4>

377 

378O nome é o problema mais provável. Abra `/plugin`, vá para **Discover** e copie o nome da lista.

379 

380Antes da v2.1.232, Claude Code atualizava o marketplace nomeado apenas após a busca falhar, e apenas quando auto-update estava ativado para ele.

381 

382<h3 id="plugin-not-found-in-any-marketplace">

383 `Plugin "<name>" not found in any marketplace`

384</h3>

385 

386Você executou `/plugin install <name>` sem `@marketplace`, e nenhum marketplace registrado tem esse plugin. `claude plugin install <name>` relata `Plugin "<name>" not found in any configured marketplace`.

387 

388Sem um nome de marketplace, `claude plugin install` procura nos catálogos que já tem e não os atualiza primeiro, e `/plugin install` atualiza apenas marketplaces que têm auto-update ativado. Nomeie o marketplace, e Claude Code o atualiza antes de procurar o plugin:

389 

390```text theme={null}

391/plugin install <name>@<marketplace>

392```

393 

394Quando a instalação funciona, você vê `✓ Installed <plugin>.` em uma sessão, ou `Successfully installed plugin: <plugin>@<marketplace>` a partir de `claude plugin install`.

395 

396Se você não sabe qual marketplace lista o plugin, execute `/plugin marketplace list` para os marketplaces que você tem, e navegue **Discover** em `/plugin` para o nome do plugin.

397 

398<h3 id="plugin-is-already-installed-globally">

399 `Plugin '<name>@<marketplace>' is already installed globally`

400</h3>

401 

402Você executou `/plugin install` para um plugin que já está instalado no escopo do usuário ou pelas configurações gerenciadas, e Claude Code recusou com `Use '/plugin' to manage existing plugins.` Se você digitou o nome do plugin sem `@<marketplace>`, a mensagem omite `globally`.

403 

404O plugin já está disponível em cada projeto, então não há nada a adicionar. Para alterar seu [scope](/docs/pt/plugins/install), habilitá-lo ou desabilitá-lo, ou configurá-lo, abra `/plugin` e vá para **Installed**.

405 

406Um plugin instalado apenas no escopo do projeto ou local não dispara esta mensagem. Claude Code permite que você o instale no escopo do usuário também, então está disponível em outros projetos.

407 

408`claude plugin install` no seu shell imprime uma mensagem diferente. Para um plugin já instalado no escopo de destino, imprime `Plugin "<name>@<marketplace>" is already installed (scope: user)` e sai com 0. Se seu diretório de cache está faltando, o mesmo comando o re-baixa.

409 

410<h3 id="this-plugin-uses-a-source-type-your-claude-code-version-does-not-suppo">

411 `This plugin uses a source type your Claude Code version does not support`

412</h3>

413 

414Você instalou um plugin cujo marketplace usa um tipo de fonte que esta versão do Claude Code não consegue buscar, e Claude Code parou com esta mensagem e `Update Claude Code and try again.`

415 

416Atualize Claude Code, depois tente novamente a instalação. Tipos de fonte estão na [marketplace reference](/docs/pt/plugins/marketplace-reference).

417 

418<h3 id="plugin-archive-integrity-check-failed">

419 `Plugin archive integrity check failed`

420</h3>

421 

422Você instalou um plugin que é distribuído como um arquivo zip, e Claude Code o recusou com esta linha e `The archive was not installed.` A entrada do marketplace do plugin usa uma [`archive` source](/docs/pt/plugins/marketplace-reference) com um pin `sha256`, e o digest do arquivo baixado não corresponde ao pin.

423 

424A mensagem completa se parece com isto:

425 

426```text theme={null}

427Plugin archive integrity check failed for https://artifacts.example.com/claude-plugins/my-plugin.zip: expected sha256 6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1, got ac52220c0914ef8ca6a602e4a7362f88d30fb021110f72a6d15b68c3fe7df2b7. The archive was not installed. Verify the sha256 in the marketplace entry, or that the URL serves the intended file.

428```

429 

430A correção difere para o publicador e para o instalador:

431 

432* **Você publica o plugin**: recompute o digest do arquivo exato que a URL serve e atualize o `sha256` na entrada do marketplace. Use `shasum -a 256 my-plugin.zip`, ou `Get-FileHash -Algorithm SHA256 my-plugin.zip` no PowerShell

433* **Você instala o plugin**: execute `/plugin marketplace update <name>` em uma sessão para atualizar o catálogo caso a entrada tenha sido corrigida, depois tente novamente a instalação. Se os digests ainda discordam após a atualização, peça ao proprietário do marketplace qual arquivo eles fixaram antes de instalar

434 

435<h3 id="marketplace-is-registered-from-an-untrusted-source">

436 `Marketplace "<name>" is registered from an untrusted source`

437</h3>

438 

439Um marketplace que você adicionou anteriormente parou de carregar, e também seus plugins. Esta linha aparece na aba **Errors** do `/plugin` ou na próxima atualização.

440 

441O marketplace está registrado sob um nome que é [reservado para marketplaces oficiais da Anthropic](/docs/pt/plugins/marketplace-reference), mas sua fonte registrada não é um repositório GitHub `anthropics`. Nomes reservados são re-verificados toda vez que um marketplace carrega ou atualiza, então o marketplace e os plugins instalados a partir dele param de carregar.

442 

443A mensagem completa nomeia o nome reservado e a correção:

444 

445```text theme={null}

446Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.

447```

448 

449A correção difere para usuários e publicadores:

450 

451* **Você usa o marketplace**: no seu shell, execute `claude plugin marketplace remove <name>`, depois adicione o marketplace novamente a partir do repositório oficial `github.com/anthropics`

452* **Você publica um marketplace de terceiros que usou o nome antes de ele se tornar reservado**: renomeie-o e peça aos usuários para re-adicioná-lo a partir de sua fonte

453 

454Antes da v2.1.205, Claude Code verificava o nome apenas quando você adicionava o marketplace, então uma entrada registrada antes de seu nome se tornar reservado continuava carregando.

455 

456<h3 id="plugin-has-a-corrupt-manifest-file-or-has-an-invalid-manifest-file">

457 `Plugin <name> has a corrupt manifest file` or `has an invalid manifest file`

458</h3>

459 

460Claude Code buscou o plugin, depois falhou ao ler seu `.claude-plugin/plugin.json`. No shell, o `<name>` nesta linha pode ser um nome de diretório temporário; o prefixo `Failed to install plugin "<name>@<marketplace>"` carrega o nome real do plugin. A redação diz qual verificação falhou:

461 

462* **`corrupt manifest file`, seguido por `JSON parse error:`**: o arquivo não é JSON válido

463* **`invalid manifest file`, seguido por `Validation errors:`**: o arquivo analisa mas falha no schema, como `name: Invalid input` para um campo obrigatório faltando

464 

465`claude plugin install` relata qualquer um como `Failed to install plugin "<name>@<marketplace>":` e sai com código 1.

466 

467O autor do plugin tem que corrigir o arquivo, e o plugin não pode ser instalado até então:

468 

469* **Se é você**: execute `claude plugin validate <plugin-directory>` no seu shell para ver o mesmo erro com o caminho ofensivo, depois corrija o arquivo

470* **Se não é você**: relate a mensagem ao proprietário do marketplace

471 

472<h3 id="plugin-directory-not-found-at-path">

473 `Plugin directory not found at path: <path>`

474</h3>

475 

476A aba **Errors** em `/plugin` mostra isto para um plugin habilitado que seu marketplace lista por um caminho relativo, como `./plugins/my-plugin`, quando nenhum diretório existe nesse caminho dentro do marketplace. Se você mantém o marketplace, corrija o caminho `source` da entrada ou restaure a pasta. Caso contrário, relate a mensagem ao proprietário do marketplace.

477 

478`Marketplace directory not found at path: <path>` significa que o próprio diretório do marketplace está faltando em vez disso. Para um marketplace que você adicionou a partir de um caminho local, esse diretório se moveu ou foi deletado. Restaure-o, ou remova o marketplace e adicione-o novamente a partir de seu novo local.

479 

480<h3 id="no-plugins-available-or-no-marketplaces-configured">

481 `No plugins available` or `No marketplaces configured`

482</h3>

483 

484Você abriu `/plugin` e a aba **Discover** está vazia, ou `claude plugin marketplace list` imprimiu `No marketplaces configured`.

485 

486Nenhum marketplace está registrado, então não há catálogo para mostrar. Em uma sessão, adicione o marketplace oficial, `anthropics/claude-plugins-official`:

487 

488```text theme={null}

489/plugin marketplace add anthropics/claude-plugins-official

490```

491 

492Claude Code imprime `Successfully added marketplace: claude-plugins-official`, e **Discover** lista seus plugins. A página [Anthropic marketplaces](/docs/pt/plugins/anthropic-marketplaces) lista os outros marketplaces que você pode adicionar.

493 

494<h3 id="marketplace-is-already-added-from-a-different-source">

495 `Marketplace "<name>" is already added from a different source`

496</h3>

497 

498Você confirmou adicionar um marketplace através de [`/plugin install <plugin> --marketplace <source>`](/docs/pt/plugins/install#add-a-marketplace-and-install-in-one-command), e o catálogo que Claude Code buscou dessa fonte tem o mesmo nome que um marketplace que você já adicionou a partir de uma fonte diferente. Claude Code mantém o marketplace existente em vez de substituí-lo, e o plugin não é instalado.

499 

500A mensagem completa se parece com isto:

501 

502```text theme={null}

503Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.

504```

505 

506Escolha qual fonte você quer:

507 

508* **O marketplace que você já adicionou**: instale a partir dele pelo nome com `/plugin install <plugin>@<name>`

509* **A nova fonte**: execute `/plugin marketplace remove <name>`, depois tente novamente a instalação

510 

511<h3 id="cannot-add-marketplace-its-network-source-differs">

512 `Cannot add marketplace "<name>": its network source differs from the one declared for it in settings`

513</h3>

514 

515Você executou `marketplace add`, e o catálogo nessa fonte tem o mesmo nome que um marketplace que um arquivo de configurações já declara sob [`extraKnownMarketplaces`](/docs/pt/settings-reference#extraknownmarketplaces) com uma fonte diferente. Claude Code recusa a adição e não registra nada.

516 

517A mensagem termina com a correção: a fonte deve corresponder à que é declarada para este nome nas configurações, ou você muda a declaração. Compare a fonte que você passou contra a entrada `extraKnownMarketplaces` para esse nome, incluindo seu `ref`, `path` e `headers`, depois faça um destes:

518 

519* **Use a fonte declarada**: adicione o marketplace a partir da fonte que a entrada de configurações nomeia

520* **Use a nova fonte**: edite ou remova a entrada `extraKnownMarketplaces`, depois adicione o marketplace novamente. Se as configurações gerenciadas a declaram, peça ao seu administrador

521 

522<h3 id="failed-to-install-from-the-plugin-menu">

523 `Failed to install: <plugin> (<reason>)`

524</h3>

525 

526Você selecionou plugins para instalar no menu `/plugin`, nenhum deles foi instalado, e o menu fechou com este resumo do que falhou.

527 

528Algumas razões, como a saída do git após um clone falhado, mostram apenas sua primeira linha. Quando tal razão foi encurtada, o resumo termina com `Installing a plugin from its details (Enter) in /plugin shows its full error.`

529 

530O que fazer depende de se o resumo encurtou a razão:

531 

532* Corrija o que a razão entre parênteses nomeia

533* Quando a razão foi encurtada, execute `/plugin`, selecione o plugin na aba **Discover** e pressione **Enter** para instalá-lo a partir de seus detalhes. Se a instalação falhar lá, a visualização de detalhes mostra o erro completo

534 

535<h3 id="could-not-move-the-new-copy-of-this-plugin-version">

536 `Could not move the new copy of this plugin version into <path>`

537</h3>

538 

539Quando você instala um plugin, Claude Code baixa uma cópia fresca de seus arquivos e a move para a pasta dessa versão no [plugin cache](/docs/pt/plugins/loading#find-plugins-on-disk). Esta mensagem significa que a movimentação falhou, geralmente porque outro programa estava usando a pasta enquanto a instalação era executada. O código do sistema de arquivos aparece entre parênteses:

540 

541```text theme={null}

542Could not move the new copy of this plugin version into /home/user/.claude/plugins/cache/acme-tools/formatter/1.2.0: the new copy or the version folder stayed busy while the install ran (ENOTEMPTY) — usually a scanner still reading the freshly downloaded files, another program using that folder, or another process re-creating it. The previously installed copy was moved back. Run the install again once other Claude Code sessions or programs using that folder have finished.

543```

544 

545A mensagem diz o que aconteceu com a cópia que foi instalada antes, o que lhe diz se o plugin ainda funciona:

546 

547* `The previously installed copy was moved back`: a versão que você tinha ainda está instalada

548* `had to be removed first`, `was not moved back` ou `could not be moved back`: essa versão do plugin não está instalada até que uma instalação tenha sucesso

549* Nenhuma tal sentença: não havia cópia anterior, então a versão não está instalada ainda

550 

551No Windows, quando outro programa mantém a cópia instalada em si, a mensagem em vez disso diz que essa cópia `could not be replaced` e que `It was not replaced and the new copy was discarded`, então a versão que você tinha ainda está instalada.

552 

553Uma lista `Left on disk` nomeia pastas postas de lado dentro do cache. Uma instalação posterior dessa versão ou uma limpeza de cache de plugin as remove, então você não precisa deletá-las.

554 

555Para corrigir a instalação:

556 

557* Feche outras sessões do Claude Code, editores e terminais que estão usando a pasta do plugin sob `~/.claude/plugins/cache`, depois execute a instalação novamente

558* Quando a mensagem diz para verificar as permissões da pasta de cache do plugin, restaure sua permissão de escrita na pasta que ela nomeia e libere espaço em disco, depois execute a instalação novamente

559 

560<h3 id="dependency-errors">

561 Dependency errors

562</h3>

563 

564Um plugin que declara dependências pode falhar ao instalar, ou instalar e permanecer desabilitado, quando uma dependência não consegue ser satisfeita. A mensagem chega até você no tempo de instalação ou no tempo de carregamento:

565 

566* **Durante a instalação**: a recusa volta como a mensagem de erro da instalação

567* **Quando o plugin carrega**: o problema aparece em `claude plugin list` e na aba **Errors** do `/plugin`, e Claude Code mantém o plugin afetado desabilitado até que você o resolva

568 

569A tabela lista cada mensagem e sua correção. Para declarar dependências como um autor, veja [Plugin dependencies](/docs/pt/plugins/dependencies).

570 

571| Mensagem | Significado | Como resolver |

572| :---------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

573| `Dependency "<dep>" is not installed` | Uma dependência declarada não está instalada. | Instale-a no seu shell com `claude plugin install <dep>@<marketplace>`, ou desinstale o plugin. Se o marketplace da dependência ainda não está registrado, adicione-o e execute `/reload-plugins` em sua sessão, que instala as dependências faltantes que consegue resolver. |

574| `Dependency "<dep>" is disabled` | A dependência está instalada mas desligada. | Habilite a dependência, ou desinstale o plugin que a precisa. |

575| `Requires "<dep>" <range>, installed <version>` | A versão da dependência instalada está fora do intervalo declarado do plugin. | Atualize a dependência para uma versão no intervalo, ou desinstale o plugin. |

576| `<Plugin or Dependency> "<name>" has conflicting version requirements` | Nenhuma versão satisfaz cada intervalo que a fixa. A mensagem lista os intervalos. | Desinstale ou atualize um dos plugins conflitantes, ou peça ao autor upstream para ampliar sua restrição. |

577| `... has version requirements too complex to intersect` ou `has an invalid version requirement` | Um intervalo não é semver válido, ou os intervalos combinados não conseguem ser intersectados. | Corrija o intervalo inválido ou simplifique cadeias `\|\|` longas. |

578| `... has no git tag satisfying <range>` | O repositório da dependência não tem uma tag `<name>--v*` no intervalo. | Verifique que o upstream marca lançamentos com essa convenção, ou relaxe o intervalo. |

579| `Dependency "<dep>" (required by <plugin>) is in <marketplace>, which is not in the allowlist` | A dependência está em um marketplace diferente, e a resolução entre marketplaces está desligada por padrão. | Instale a dependência você mesmo no mesmo escopo, no seu shell com `claude plugin install <dep>@<marketplace>` mais o `--scope` em que você está instalando o plugin, depois tente novamente. |

580 

581Para ver estes programaticamente, execute `claude plugin list --json` no seu shell. Plugins com problemas carregam um campo `errors` com as mensagens e um campo `errorDetails` com um `type` para cada: as duas primeiras linhas são `dependency-unsatisfied` e a terceira é `dependency-version-unsatisfied`.

582 

583<h2 id="plugin-installed-but-not-working">

584 Plugin installed but not working

585</h2>

586 

587A instalação teve sucesso, mas as skills, hooks ou servidores do plugin não estão fazendo nada. Comece com [Plugin doesn't appear or its skills don't show up](#plugin-doesnt-appear-or-its-skills-dont-show-up), que lhe diz onde Claude Code relata o que carregou, depois corresponda a mensagem.

588 

589<h3 id="plugin-doesnt-appear-or-its-skills-dont-show-up">

590 Plugin doesn't appear or its skills don't show up

591</h3>

592 

593Você instalou um plugin e digitou `/` esperando suas skills, ou pediu a Claude para usá-lo, e nada aconteceu.

594 

595Verifique o estado do plugin antes de mudar qualquer coisa:

596 

597<Steps>

598 <Step title="Confirm the plugin is installed and enabled">

599 Execute `/plugin` e abra **Installed**. Confirme que o plugin está listado e habilitado. `claude plugin list` no seu shell imprime a mesma lista com a versão de cada plugin, escopo e `Status: ✔ enabled`.

600 </Step>

601 

602 <Step title="Read the Errors tab">

603 Abra a aba **Errors** no mesmo painel. Cada entrada emparelha uma mensagem com uma linha de orientação. A maioria das mensagens no resto desta seção vem dessa aba.

604 </Step>

605 

606 <Step title="Reload if you installed during this session">

607 Se o plugin está instalado e sem erros mas você o instalou durante esta sessão, execute `/reload-plugins`. Imprime `Reloaded:` com contagens de plugins, skills, agents, hooks e servidores. Quando algo falhou ao carregar, adiciona `N errors during load. Run /plugin for details.`

608 </Step>

609</Steps>

610 

611Se o plugin carrega sem erro e suas skills ainda não aparecem, o próximo passo difere para seu próprio plugin e para o de alguém:

612 

613* **Um plugin que você está construindo**: veja [Plugin loads but its skills are missing](#plugin-loads-but-its-skills-are-missing)

614* **Um plugin que alguém publicou**: abra **Installed** em `/plugin` e abra o painel de detalhes do plugin, que lista o que o plugin contém. Um plugin que não lista skills lá não tem nenhuma para oferecer quando você digita `/`

615 

616<h3 id="run-reload-plugins-to-activate">

617 `Run /reload-plugins to activate.`

618</h3>

619 

620O resumo de instalação em `/plugin` terminou com `Run /reload-plugins to activate.` em vez de `Plugin is now active.`

621 

622Claude Code não ativou o plugin durante a instalação, seja porque ativá-lo [invalidaria o cache de prompt](/docs/pt/prompt-caching#enabling-or-disabling-a-plugin) ou porque a tentativa de ativação falhou.

623 

624Você não precisa digitar o comando. O painel fecha e Claude Code executa `/reload-plugins` para você, ou o coloca na fila até que a resposta que está sendo transmitida termine.

625 

626Leia o que esse reload imprime:

627 

628* **`Reloaded:` com contagens de plugins, skills, agents, hooks e servidores**: o plugin agora está ativo. Quando algo falhou ao carregar, a linha adiciona `N errors during load. Run /plugin for details.`

629* **`This reload changes MCP tools (...) — your next message will re-read the whole conversation instead of using the cache. Run /reload-plugins --force to apply.`**: o reload adicionaria ou removeria um servidor MCP de plugin, ou a ferramenta `LSP`, e invalidaria seu cache de prompt. Para o caso LSP a linha começa `This reload adds the LSP tool` ou `This reload removes the LSP tool`. Execute-o com `--force` para ativar o plugin mesmo assim, ou inicie uma nova sessão

630 

631Antes da v2.1.268, uma instalação que não ativou durante a instalação permanecia pendente até que você executasse `/reload-plugins` você mesmo.

632 

633Antes da v2.1.246, a contagem de skills nesse resumo incluía apenas entradas `commands/` de um plugin, então um reload poderia carregar as skills `SKILL.md` de um plugin e ainda relatar `0 skills`.

634 

635<h3 id="plugin-not-cached-at">

636 `Plugin "<name>" not cached at <path>`

637</h3>

638 

639A aba **Errors** mostra esta linha com a orientação `Run /plugin to refresh the plugin cache`. Claude Code tem um registro de instalação para o plugin, mas o diretório que o registro aponta está faltando, por exemplo após você limpar o cache.

640 

641Reinstale o plugin a partir do seu shell. `claude plugin install <name>@<marketplace>` re-baixa um plugin cujo diretório de instalação está faltando mesmo que seu registro exista:

642 

643```shell theme={null}

644claude plugin install <name>@<marketplace>

645```

646 

647Depois execute `/reload-plugins` em sua sessão. A entrada da aba **Errors** desaparece e o plugin está de volta sob **Installed**.

648 

649<h3 id="a-plugin-you-disabled-still-loads">

650 `Disabled in ~/.claude/settings.json but still loads`

651</h3>

652 

653Você definiu um plugin como `false` em `~/.claude/settings.json`, e sua linha em `claude plugin list` ou `/plugin` mostra esta mensagem seguida pela fonte que o habilita, como `— project settings enable it, which overrides your user setting`. Um `true` nessa fonte de precedência mais alta está sobrescrevendo sua configuração de usuário.

654 

655Para optar por não usar um plugin habilitado por projeto em sua máquina, defina o id como `false` em `.claude/settings.local.json`, que tem precedência mais alta que o arquivo do projeto. Para as outras fontes que a mensagem pode nomear, veja [Disabled in user settings but still loads](/docs/pt/plugins/loading#disabled-in-user-settings-but-still-loads).

656 

657Se `claude plugin list` em vez disso marca o plugin `required by your org`, nenhum arquivo de configurações está envolvido: sua organização marca esse plugin sincronizado como obrigatório em claude.ai, e ele carrega mesmo que você o tenha desabilitado antes. Veja [Plugins synced from claude.ai](/docs/pt/plugins/loading#synced-plugins).

658 

659<h3 id="plugin-is-enabled-in-project-settings-but-isnt-installed-here">

660 `Plugin "<name>" is enabled in project settings but isn't installed here`

661</h3>

662 

663A aba **Errors** mostra esta linha para um plugin que o `.claude/settings.json` do seu projeto habilita, com a orientação `Run claude plugin install <name>@<marketplace> --scope project to install it for this project`.

664 

665As configurações de um repositório podem habilitar um plugin para todos que o abrem, mas não o instalam. Quando o plugin vem de uma fonte externa como um repositório GitHub ou um pacote npm, Claude Code não o baixa até que você o instale você mesmo. Execute o comando da linha de orientação no seu shell, depois recarregue:

666 

667```shell theme={null}

668claude plugin install <name>@<marketplace> --scope project

669```

670 

671Depois que você executar `/reload-plugins` em sua sessão, a entrada da aba **Errors** se foi e o plugin está listado sob **Installed**.

672 

673Se sua organização pré-instala plugins para você, ela o faz através de configurações gerenciadas em vez disso. Veja [Pre-install and require plugins](/docs/pt/plugins/org#pre-install-and-require-plugins).

674 

675<h3 id="failed-to-load-hooks-from-and-hooks-that-dont-fire">

676 `Failed to load hooks from <path>` and hooks that don't fire

677</h3>

678 

679Os hooks de um plugin não são executados. Ou a aba **Errors** mostra uma falha de carregamento para eles, os hooks carregam e você vê avisos `<Event> hook error` na transcrição, ou um hook carrega sem erro e nunca dispara.

680 

681<h4 id="hooks-fail-to-load">

682 Hooks fail to load

683</h4>

684 

685A aba **Errors** mostra uma destas mensagens:

686 

687* **`Failed to load hooks from <path>: <reason>`**: `hooks/hooks.json` não é JSON válido ou falha no schema de hooks. A razão nomeia o erro de análise ou validação. Corrija o arquivo. Para capturar um problema de sintaxe JSON em `hooks/hooks.json` antes de publicar o plugin, execute `claude plugin validate <plugin-directory>` no seu shell

688* **`hooks path not found: <path>`**: o campo `hooks` do manifesto nomeia um arquivo que não existe nesse caminho relativo à raiz do plugin. Corrija o caminho ou adicione o arquivo

689 

690<h4 id="hook-error-notices-in-the-transcript">

691 `hook error` notices in the transcript

692</h4>

693 

694Um aviso da forma `... hook error: Failed with non-blocking status code: <stderr>` significa que o hook foi executado e seu comando falhou. Por exemplo, `Stop hook error: Failed with non-blocking status code: /bin/sh: node: command not found` significa que o shell que Claude Code gerou não conseguiu encontrar `node`. Instale-o, ou certifique-se de que está no `PATH` do terminal a partir do qual você inicia `claude`.

695 

696Para qualquer outro erro, execute o comando do hook você mesmo a partir do diretório do plugin para ver a saída completa, ou capture o stderr completo com [debug logging](/docs/pt/hooks#debug-hooks).

697 

698<h4 id="hook-loads-but-never-fires">

699 Hook loads but never fires

700</h4>

701 

702Se um hook carrega sem erro mas nunca dispara, verifique sua definição e depois observe-o ser executado:

703 

704<Steps>

705 <Step title="Check the event name">

706 Nomes de eventos são sensíveis a maiúsculas, então confirme que o seu corresponde exatamente, por exemplo `PostToolUse`.

707 </Step>

708 

709 <Step title="Check the matcher">

710 Confirme que o `matcher` do hook corresponde ao nome da ferramenta.

711 </Step>

712 

713 <Step title="Trigger the event on purpose">

714 Para um hook `PostToolUse`, peça a Claude para editar um arquivo.

715 </Step>

716 

717 <Step title="Read the debug log">

718 Abra o [debug log](/docs/pt/hooks#debug-hooks), que registra quais hooks corresponderam. Um hook que foi executado aparece lá com seu código de saída.

719 </Step>

720</Steps>

721 

722<h3 id="invalid-mcp-server-config-for-and-mcp-servers-that-dont-start">

723 `Invalid MCP server config for "<server>"` and MCP servers that don't start

724</h3>

725 

726Um plugin agrupa um servidor MCP, e a aba **Errors** mostra `Invalid MCP server config for "<server>": <error>`, ou o servidor está listado mas `/mcp` nunca o mostra conectado.

727 

728<h4 id="invalid-mcp-server-config-for-server-error">

729 `Invalid MCP server config for "<server>": <error>`

730</h4>

731 

732A configuração do servidor passa na verificação de schema, mas Claude Code não consegue resolvê-la para esta sessão. O texto após os dois pontos nomeia a causa e decide a correção:

733 

734* **`Missing environment variables: <names>`**: defina essas variáveis no shell a partir do qual você inicia Claude Code, depois inicie uma nova sessão

735* **`URL is unset or invalid`**: uma opção `${user_config.*}` que a URL usa não está definida. Execute `/plugin configure <plugin>` para defini-la

736* **`has an invalid MCP url`** ou **`headersHelper for MCP server '<server>' references ${user_config.*}`**: a configuração do próprio plugin está em falta. Corrija a `url` ou `headersHelper` em sua configuração MCP do plugin, ou relate ao autor do plugin se o plugin não é seu. O caso `headersHelper` tem sua própria entrada em [plugin command references user\_config](/docs/pt/errors#plugin-command-references-user-config)

737 

738<h4 id="server-is-configured-but-never-connects">

739 Server is configured but never connects

740</h4>

741 

742Execute `/mcp` para ver o status do servidor. Quando o servidor está saudável, `/mcp` o lista como conectado.

743 

744Para ler o erro que o servidor imprimiu ao iniciar, execute `claude --debug` e abra o log em `~/.claude/debug/<session-id>.txt`. O sinalizador `--debug` não imprime no terminal.

745 

746Uma entrada de servidor em `.mcp.json` que falha no schema não aparece na aba **Errors**. Claude Code descarta esse servidor e registra `Invalid MCP server config for <server> in <path>` apenas nesse log de debug. Para encontrar a entrada sem carregar o plugin, execute `claude plugin validate` no seu shell no diretório do plugin, que a relata como um erro.

747 

748Antes da v2.1.281, `claude plugin validate` não verificava `.mcp.json`.

749 

750<h4 id="server-works-with-plugin-dir-but-fails-after-install">

751 Server works with `--plugin-dir` but fails after install

752</h4>

753 

754Você é o autor do plugin, e o servidor inicia quando você carrega o plugin a partir de seu diretório de origem com `--plugin-dir` mas falha uma vez que o plugin está instalado.

755 

756Claude Code copia um plugin instalado em seu cache, então um caminho que só funciona a partir do diretório de origem quebra. Escreva caminhos dentro do plugin com `${CLAUDE_PLUGIN_ROOT}`.

757 

758Para caminhos que alcançam fora do diretório do plugin, veja [Files the plugin references outside its directory aren't found](#files-the-plugin-references-outside-its-directory-arent-found).

759 

760<h3 id="language-server-doesnt-start">

761 Language server doesn't start, uses too much memory, or reports wrong diagnostics

762</h3>

763 

764Você instalou um [code intelligence plugin](/docs/pt/plugins/code-intelligence) e Claude não está vendo diagnósticos, ou o servidor de linguagem está usando muita memória ou relatando erros que não são reais.

765 

766<h4 id="language-server-doesn’t-start">

767 Language server doesn't start

768</h4>

769 

770O plugin se conecta a um binário de servidor de linguagem que você instala separadamente, e Claude Code o gera por nome de comando a partir do seu `PATH`.

771 

772A aba **Errors** do `/plugin` mostra a falha com sua razão, como `Executable not found in $PATH: "<binary>"`, e `claude --debug` a registra como `LSP server <name> failed to start: <reason>`.

773 

774Instale o binário e confirme que está no `PATH` do terminal a partir do qual você inicia `claude`, por exemplo com `which typescript-language-server`. Depois inicie uma nova sessão.

775 

776<h4 id="language-server-uses-too-much-memory">

777 Language server uses too much memory

778</h4>

779 

780Servidores de linguagem como `rust-analyzer` e `pyright` indexam o projeto inteiro. Desabilite o plugin com `/plugin disable <plugin>` em uma sessão e confie nas ferramentas de busca integradas do Claude em vez disso.

781 

782<h4 id="false-positive-diagnostics-in-a-monorepo">

783 False positive diagnostics in a monorepo

784</h4>

785 

786Um servidor de linguagem que não está configurado para o workspace pode relatar importações não resolvidas para pacotes internos. Não há nada a corrigir no lado do Claude Code, e os diagnósticos não impedem Claude de editar código.

787 

788<h2 id="build-a-plugin">

789 Build a plugin

790</h2>

791 

792Você está desenvolvendo um plugin e carregando-o com `--plugin-dir` ou instalando-o a partir de um marketplace local. Estas entradas cobrem as falhas que você encontra ao desenvolver um plugin. Para as verificações serem executadas após cada mudança, veja [Test and debug](/docs/pt/plugins/create#test-and-debug).

793 

794Duas falhas que também alcançam os usuários de um plugin têm suas entradas em [Plugin installed but not working](#plugin-installed-but-not-working):

795 

796* **Um hook que não dispara**: veja [hooks that don't fire](#failed-to-load-hooks-from-and-hooks-that-dont-fire)

797* **Um servidor MCP que não inicia**: veja [MCP servers that don't start](#invalid-mcp-server-config-for-and-mcp-servers-that-dont-start)

798 

799<h3 id="commands-path-not-found">

800 `commands path not found: <path>`

801</h3>

802 

803A aba **Errors** mostra `commands path not found: <absolute path>` com a orientação `Check that the path in your manifest or marketplace config is correct`. A mesma mensagem aparece para `skills`, `agents` e `hooks`.

804 

805Claude Code resolveu um caminho a partir de seu `plugin.json` ou entrada de marketplace contra a raiz do plugin e não encontrou nada lá. O caminho na mensagem é o caminho absoluto que verificou, então compare-o com o que está no disco. Corrija o caminho ou crie o diretório, depois execute `/reload-plugins`.

806 

807Caminhos no manifesto são relativos à raiz do plugin e começam com `./`. Um caminho que resolve fora da raiz do plugin é relatado como `<component> path escapes plugin directory` em vez disso e é descartado.

808 

809<h3 id="plugin-dir-loads-a-plugin-with-no-components">

810 `--plugin-dir` at a marketplace root doesn't load the plugins under `plugins/`

811</h3>

812 

813Você iniciou `claude --plugin-dir <path>` e não vê erro, mas as skills, agents e hooks do plugin não estão lá.

814 

815`--plugin-dir` leva o diretório raiz do plugin, aquele que contém `.claude-plugin/plugin.json` e os diretórios de componentes como `skills/`. Se você apontá-lo para uma raiz de marketplace em vez disso, Claude Code não lê `marketplace.json`, então um plugin sob `plugins/` não carrega, e você não vê erro. Antes da v2.1.281, Claude Code carregava uma raiz de marketplace como um plugin vazio nomeado após esse diretório. Aponte o sinalizador para o diretório do plugin em si:

816 

817```shell theme={null}

818claude --plugin-dir ./my-marketplace/plugins/my-plugin

819```

820 

821Depois abra **Installed** em `/plugin`, onde o painel de detalhes do plugin lista seus componentes.

822 

823<h3 id="files-the-plugin-references-outside-its-directory-arent-found">

824 Files the plugin references outside its directory aren't found

825</h3>

826 

827Um plugin funciona a partir de seu diretório de origem com `--plugin-dir` mas falha após instalar, com erros sobre um caminho como `../shared-utils`.

828 

829Claude Code copia um plugin instalado em seu cache e o carrega de lá, então um caminho que alcança fora do próprio diretório do plugin aponta para nada no cache. Mova os arquivos compartilhados dentro do diretório do plugin, ou os referencie através de um symlink dentro dele. Para onde o cache está e como caminhos resolvem, veja [Find plugins on disk](/docs/pt/plugins/loading#find-plugins-on-disk).

830 

831<h3 id="claude-plugin-root-shows-forward-slashes-on-windows">

832 `${CLAUDE_PLUGIN_ROOT}` shows forward slashes on Windows

833</h3>

834 

835No Windows, um hook de plugin recebe `${CLAUDE_PLUGIN_ROOT}` como `C:/Users/you/...` em vez de `C:\Users\you\...`, e um script que esperava barras invertidas quebra.

836 

837Claude Code executa hooks de forma de shell através do Git Bash no Windows e substitui a raiz do plugin na forma Win32 com barra para frente de propósito. Builtins Bash, ferramentas MSYS e binários Windows nativos todos aceitam essa forma.

838 

839Se seu script precisa de barras invertidas, mude o hook para uma das formas que mantêm caminhos nativos, descritas em [exec form and shell form](/docs/pt/hooks#exec-form-and-shell-form):

840 

841* Um hook de forma exec, que gera o processo diretamente com um array `args`

842* Um hook com `"shell": "powershell"`

843 

844<h3 id="plugin-loads-but-its-skills-are-missing">

845 Plugin loads but its skills are missing

846</h3>

847 

848Seu plugin está listado sob **Installed** sem erros, mas suas skills não são oferecidas quando você digita `/`.

849 

850Skills carregam a partir de `skills/` na raiz do plugin e comandos a partir de `commands/` na raiz do plugin. Apenas `plugin.json` pertence dentro de `.claude-plugin/`, e um diretório `skills/` dentro de `.claude-plugin/` não é verificado. Mova os diretórios para a raiz do plugin e execute `/reload-plugins`. Depois, o painel de detalhes do plugin em `/plugin` lista as skills, e digitar `/` as oferece.

851 

852Cada skill é um diretório contendo `SKILL.md`. Uma entrada `skills` no manifesto que aponta para um arquivo `SKILL.md` em vez de seu diretório é relatada como `path is a file; skills entries must be directories containing SKILL.md`.

853 

854<h3 id="skill-loads-but-claude-never-invokes-the-skill">

855 Skill loads but Claude never invokes the skill

856</h3>

857 

858A skill do seu plugin é executada quando você digita seu comando `/<plugin>:<skill>`, mas Claude nunca a invoca em resposta a um pedido simples.

859 

860Verifique estas causas em ordem:

861 

862* **A skill define `disable-model-invocation: true`**: com esse campo definido, apenas você pode invocar a skill. A skill de modelo em [Create your first plugin](/docs/pt/plugins/create#create-your-first-plugin) a define. Remova a linha de uma skill que você quer que Claude invoque por conta própria. [Control who invokes a skill](/docs/pt/skills#control-who-invokes-a-skill) cobre o campo

863* **A descrição não corresponde a como as pessoas pedem**: trabalhe através das verificações em [Skill not triggering](/docs/pt/skills#skill-not-triggering)

864* **A descrição está truncada**: quando muitas skills estão instaladas, Claude Code encurta descrições para caber na listagem do orçamento de caracteres, o que pode remover as palavras-chave que Claude precisa para corresponder a um pedido. Veja [Skill descriptions are cut short](/docs/pt/skills#skill-descriptions-are-cut-short)

865 

866Para medir com que frequência a skill dispara em prompts realistas em vez de verificar um de cada vez, escreva um caso de eval com um [grader `tool_used: Skill`](/docs/pt/plugin-evals#create-your-first-eval-suite) e execute-o com `claude plugin eval` após cada mudança de descrição.

867 

868<h3 id="is-not-a-plugin-or-skill-folder">

869 `<directory> is not a plugin or skill folder` from `claude plugin eval init`

870</h3>

871 

872Você executou `claude plugin eval init` a partir de um diretório que não é a raiz de um plugin, como seu diretório inicial ou a raiz de um repositório que mantém o plugin em um subdiretório. `init` escreve a suite sob o diretório de trabalho, então para em vez de criar um diretório `evals/` que o plugin nunca veria.

873 

874Mude para a raiz do plugin, o diretório que contém `.claude-plugin/plugin.json` ou o `SKILL.md` da skill, e execute o comando novamente. Para estruturar a suite em outro lugar de propósito, passe `--eval-dir`. Veja [Test plugins with evals](/docs/pt/plugin-evals).

875 

876<h3 id="the-userconfig-dialog-never-appears">

877 The `userConfig` dialog never appears

878</h3>

879 

880Seu plugin declara opções `userConfig`, mas nenhum diálogo de configuração aparece quando você o instala.

881 

882A instalação interativa mostra o diálogo, e o comando de shell leva os valores como sinalizadores em vez disso:

883 

884* **`/plugin install` em uma sessão, ou a aba Discover em `/plugin`**: o diálogo é parte desta instalação interativa

885* **`claude plugin install` no seu shell**: nunca pede valores `userConfig`. Salva qualquer valor `--config KEY=VALUE` que você passa, e quando opções permanecem não definidas imprime `N userConfig options not yet set — run /plugin configure <plugin>@<marketplace> in Claude Code, or pass --config KEY=VALUE.` Quando qualquer uma das opções não definidas é obrigatória, `(M required)` segue `not yet set`.

886 

887Se você instalou a partir do shell, passe os valores com `--config`, um sinalizador por opção:

888 

889```shell theme={null}

890claude plugin install my-plugin@my-marketplace --config api_url=https://example.com

891```

892 

893Quando cada opção está definida, a saída de instalação não carrega nenhuma linha `not yet set`. Para abrir o diálogo depois em vez disso, execute `/plugin configure my-plugin@my-marketplace` em uma sessão.

894 

895Se você passar uma chave `--config` que o manifesto não declara, o plugin ainda instala, e o comando imprime `⚠ Installed, but --config not applied: --config key "<key>" isn't declared in this plugin's userConfig.` seguido pelas chaves que o plugin declara.

896 

897<h3 id="claude-plugin-validate-reports-errors">

898 `claude plugin validate` reports errors

899</h3>

900 

901Você executou `claude plugin validate <path>`, ou `/plugin validate <path>` em uma sessão, e imprimiu `Found N errors` e `Validation failed`, depois saiu com código 1.

902 

903O validador lê o manifesto no caminho que você fornece: `.claude-plugin/plugin.json` para um diretório de plugin, ou `.claude-plugin/marketplace.json` para um diretório de marketplace. Para um marketplace, ele prefixos problemas no manifesto próprio de uma entrada com o índice de entrada, como `plugins[1] plugin.json → json: ...`.

904 

905A tabela cobre as mensagens que param a validação e dois avisos, `No frontmatter block found` e `Unknown field '<key>'`, que a param apenas quando você passa `--strict`. Outros avisos, como uma descrição faltando, não estão listados.

906 

907| Mensagem | Causa | Correção |

908| :------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------- |

909| `File not found: <path>` | O caminho não tem manifesto, ou não existe. | Execute o comando contra a raiz do plugin ou marketplace, o diretório que contém `.claude-plugin/`. |

910| `No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json` | O diretório não tem manifesto `.claude-plugin/`. | Crie o manifesto, ou aponte para o diretório correto. |

911| `Invalid JSON syntax: <parse error>` | O manifesto, ou `hooks/hooks.json`, não é JSON válido. | Corrija o JSON. Até que você corrija `hooks/hooks.json`, uma sessão carrega o plugin sem os hooks nesse arquivo. |

912| `Path not found: <path>. The runtime loader will report this as a load failure.` | Um caminho de componente no manifesto não existe. | Corrija o caminho ou crie o diretório. |

913| `Path contains ".." which could be a path traversal attempt: <path>` | Um caminho de componente escapa do diretório do plugin. | Use caminhos dentro da raiz do plugin. |

914| `Path is a file; skills entries must be directories containing SKILL.md` | Uma entrada `skills` aponta para `SKILL.md` em vez de seu diretório. | Aponte para o diretório pai, ou `.` para um `SKILL.md` no nível raiz. |

915| `No frontmatter block found` ou `YAML frontmatter failed to parse: <error>` | Um arquivo de skill, agent ou comando tem frontmatter YAML faltando ou inválido. | Adicione ou corrija o frontmatter entre delimitadores `---`. Relatado ao validar um diretório de plugin. |

916| `Unknown field '<key>'` | O manifesto tem um campo que o schema não define. | Remova-o, ou use o nome que a mensagem sugere. Claude Code ignora campos desconhecidos no tempo de carregamento. |

917 

918Execute o comando novamente após cada correção até que imprima sem erros.

919 

920Os campos `plugin.json` estão na [manifest reference](/docs/pt/plugins/manifest-reference), e as mensagens no nível de marketplace estão em [Marketplace validation errors](#marketplace-validation-errors).

921 

922<h3 id="plugin-has-conflicting-manifests">

923 `Plugin <name> has conflicting manifests`

924</h3>

925 

926O plugin falha ao carregar com `Plugin <name> has conflicting manifests: both plugin.json and marketplace entry specify components.`

927 

928O plugin tem seu próprio `plugin.json`, e sua entrada de marketplace define `strict: false` enquanto também declara qualquer um de `commands`, `agents`, `skills`, `hooks`, `outputStyles` ou `themes`. Remova esses campos da entrada, ou defina `strict: true` na entrada para que Claude Code os acrescente a `plugin.json`. Veja [Strict mode](/docs/pt/plugins/marketplace-reference#strict-mode).

929 

930<h3 id="warning-no-commands-found-in-plugin-custom-directory">

931 `Warning: No commands found in plugin <name> custom directory`

932</h3>

933 

934Quando o plugin carrega, o log `claude --debug` em `~/.claude/debug/<session-id>.txt` registra `Warning: No commands found in plugin <name> custom directory: <path>. Expected .md files or SKILL.md in subdirectories.` Nada aparece na sessão ou na aba **Errors**.

935 

936O caminho `commands` no manifesto existe mas não contém arquivos `.md` e nenhum `SKILL.md` em um subdiretório. Adicione os arquivos de comando, ou remova o caminho do manifesto.

937 

938<h2 id="host-a-marketplace">

939 Host a marketplace

940</h2>

941 

942Você publica um marketplace e um usuário relata um erro, ou sua própria validação falha. Estas entradas são para o proprietário do marketplace.

943 

944<h3 id="plugins-with-relative-paths-fail-in-url-based-marketplaces">

945 Plugins with relative paths fail in URL-based marketplaces

946</h3>

947 

948Os usuários adicionaram seu marketplace com uma URL `https://example.com/marketplace.json`. As instalações de plugins cuja `source` é um caminho relativo, como `./plugins/my-plugin`, falham com `its marketplace entry path does not stay inside the marketplace directory`. Os plugins já instalados falham ao carregar com `Plugin source path refused`. Ambas as mensagens têm uma [entrada de referência de erro](/docs/pt/errors#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory).

949 

950Quando um usuário adiciona um marketplace baseado em URL, Claude Code baixa apenas o arquivo `marketplace.json` em si. Não busca arquivos de plugin por caminho relativo desse servidor, então um caminho relativo em uma entrada aponta para um diretório que nunca foi buscado. Dê a cada entrada uma fonte que Claude Code consegue buscar por conta própria, como um repositório GitHub:

951 

952```json theme={null}

953{ "name": "my-plugin", "source": { "source": "github", "repo": "owner/repo" } }

954```

955 

956Alternativamente, hospede o marketplace em um repositório git e diga aos usuários para adicioná-lo com a URL do repositório. Para uma fonte git, Claude Code clona o repositório inteiro, então caminhos relativos resolvem. Tipos de fonte estão na [marketplace reference](/docs/pt/plugins/marketplace-reference).

957 

958<h3 id="marketplace-validation-errors">

959 Marketplace validation errors

960</h3>

961 

962Você executou `claude plugin validate .` a partir de seu diretório de marketplace e relatou erros ou avisos no arquivo do marketplace em si.

963 

964`claude plugin validate` também valida cada entrada cuja `source` é um caminho local e avisa quando a `version` da entrada discorda do manifesto próprio do plugin.

965 

966A tabela lista as mensagens no nível de marketplace. As mensagens no nível de entrada são as mensagens de plugin em [`claude plugin validate` reports errors](#claude-plugin-validate-reports-errors), prefixadas com `plugins[N] plugin.json →`.

967 

968| Mensagem | Tipo | Correção |

969| :------------------------------------------------------------------------------------------------------------------------ | :---- | :--------------------------------------------------------------------------------------------------------------------------------------------------- |

970| `Duplicate plugin name "<name>" found in marketplace` | Erro | Dê a cada plugin um `name` único. |

971| `Path contains "..": <path>` sob `plugins[N].source` | Erro | Use caminhos relativos à raiz do marketplace sem segmentos `..`. |

972| `Marketplace name cannot contain control or bidirectional-formatting characters` | Erro | Remova o caractere do nome, como um escape ou uma nova linha. |

973| `Plugin name cannot contain control or bidirectional-formatting characters` | Erro | Remova o caractere do `name` do plugin. |

974| `Marketplace has no plugins defined` | Aviso | Adicione pelo menos uma entrada a `plugins`. |

975| `No marketplace description provided` | Aviso | Adicione uma `description` no nível superior. |

976| `Plugin name "<name>" is not kebab-case` sob `plugins[N] plugin.json → name` | Aviso | Renomeie para letras minúsculas, dígitos e hífens. Claude Code aceita outras formas, mas a sincronização de marketplace de claude.ai as rejeita. |

977| `Entry declares version "<a>" but <path>/plugin.json says "<b>"` | Aviso | Atualize a entrada para corresponder a `plugin.json`, que é autoritário no tempo de instalação. |

978| `Marketplace name "<name>" is reserved in Claude Desktop` | Aviso | Renomeie o marketplace. A sincronização de marketplace gerenciada do Claude Desktop rejeita `org`, `org-provisioned` e `unknown` em qualquer casing. |

979| `Marketplace name "<name>" is not accepted by Claude Desktop` ou `Plugin name "<name>" is not accepted by Claude Desktop` | Aviso | Renomeie para no máximo 128 caracteres de letras, dígitos, `.`, `_` e `-`, começando com uma letra ou dígito. |

980 

981Antes da v2.1.247, um nome de marketplace contendo caracteres de controle ou formatação bidirecional era relatado apenas como `Marketplace name impersonates an official Anthropic/Claude marketplace`.

982 

983<h2 id="blocked-by-your-organization">

984 Blocked by your organization

985</h2>

986 

987Sua organização implanta configurações gerenciadas que restringem plugins, e um comando foi recusado com uma mensagem de política. Estas entradas nomeiam a configuração por trás de cada recusa para que você saiba o que pedir ao seu administrador. Para o lado do administrador, veja [Manage plugins for your organization](/docs/pt/plugins/org).

988 

989<h3 id="marketplace-source-is-blocked-by-enterprise-policy">

990 `Marketplace source '<source>' is blocked by enterprise policy`

991</h3>

992 

993Você executou `/plugin marketplace add`, `update` ou uma instalação, e Claude Code recusou com esta linha. Para uma fonte GitHub ou git, o host segue a fonte entre parênteses, como em `'github:owner/repo' (github.com)`.

994 

995Seu administrador definiu `blockedMarketplaces` ou `strictKnownMarketplaces` em configurações gerenciadas, e esta fonte não é permitida. Peça ao seu administrador para permitir a fonte, ou adicione uma das fontes permitidas que a mensagem lista.

996 

997Corresponda o resto da mensagem para ver que tipo de política bloqueou a fonte:

998 

999* **`Allowed sources: <list>`**: o bloqueio vem da lista de permissões `strictKnownMarketplaces` em vez da lista de bloqueio `blockedMarketplaces`

1000* **`No external marketplaces are allowed.`**: a lista de permissões `strictKnownMarketplaces` está vazia

1001* **Uma `Tip:` que o atalho assume github.com**: a lista de permissões permite um host git pelo nome de host, e o atalho `owner/repo` que você passou aponta para github.com. Se o repositório vive em seu host interno, adicione-o novamente com sua URL completa, como `git@your-git-host.com:owner/repo.git`

1002 

1003Um marketplace que você adicionou antes da política se tornar mais restritiva para de atualizar também, porque a política se aplica em cada atualização.

1004 

1005<h3 id="marketplace-is-not-in-the-allowed-marketplace-list">

1006 `Marketplace "<name>" is not in the allowed marketplace list`

1007</h3>

1008 

1009A aba **Errors** mostra esta linha, ou `Marketplace "<name>" is blocked by enterprise policy`, para um marketplace que você já tem registrado.

1010 

1011As mesmas configurações gerenciadas que bloqueiam uma [marketplace source](#marketplace-source-is-blocked-by-enterprise-policy) se aplicam no tempo de carregamento. `strictKnownMarketplaces` não inclui este marketplace, ou `blockedMarketplaces` o nomeia, então Claude Code para de carregá-lo e seus plugins. Para a variante de lista de permissões, a linha de orientação mostra as fontes permitidas, ou `Contact your administrator to configure allowed marketplace sources`. Para a variante de lista de bloqueio lê `This marketplace source is explicitly blocked by your administrator`.

1012 

1013<h3 id="plugin-is-blocked-by-your-organizations-policy-and-cannot-be-installed">

1014 `Plugin "<name>" is blocked by your organization's policy and cannot be installed`

1015</h3>

1016 

1017Uma instalação foi recusada com esta linha, uma habilitação com a mesma linha terminando `cannot be enabled`, ou uma instalação ou atualização com uma nomeando a razão: `Plugin "<name>" is from marketplace "<marketplace>", which is blocked by your organization's policy`, ou `Plugin "<name>" depends on "<dep>", which is blocked by your organization's policy`.

1018 

1019As configurações gerenciadas bloqueiam este plugin, seu marketplace ou uma dependência que precisa. Peça ao seu administrador qual entrada se aplica. Uma dependência bloqueada significa que o plugin não consegue instalar até que o marketplace da dependência seja permitido.

1020 

1021<h3 id="plugin-dir-is-disabled-by-your-organizations-managed-settings-disables">

1022 `--plugin-dir is disabled by your organization's managed settings (disableSideloadFlags)`

1023</h3>

1024 

1025Você iniciou `claude` com `--plugin-dir`, `--plugin-url`, `--agents` ou `--mcp-config`. Claude Code saiu com esta mensagem e `Plugins, custom agents, and MCP servers can only be loaded from sources your administrator has approved.`

1026 

1027Seu administrador definiu `disableSideloadFlags` em configurações gerenciadas, que desliga os sinalizadores que carregam plugins, agents e servidores a partir de caminhos arbitrários. Carregue o plugin a partir de um marketplace aprovado em vez disso, ou peça ao seu administrador para remover a configuração.

1028 

1029Uma mensagem relacionada na aba **Errors** do `/plugin` é `--plugin-dir copy of "<name>" ignored: plugin is locked by managed settings`. As configurações gerenciadas habilitam ou desabilitam esse plugin pelo nome, e Claude Code ignora sua cópia `--plugin-dir` dele para que o sinalizador não possa sobrescrever a política.

1030 

1031<h3 id="plugins-from-claude-skills-are-blocked-by-your-organizations-managed-s">

1032 `Plugins from ~/.claude/skills/ are blocked by your organization's managed settings`

1033</h3>

1034 

1035Você executou `claude plugin init` ou `claude plugin enable`, e parou com esta linha. A mensagem nomeia `strictKnownMarketplaces or blockedMarketplaces` e pede ao seu administrador para adicionar `{"source":"skills-dir"}` a `strictKnownMarketplaces` ou removê-lo de `blockedMarketplaces`.

1036 

1037A fonte `skills-dir` representa plugins que Claude Code carrega a partir de seu diretório `~/.claude/skills/`. Peça ao seu administrador para fazer a mudança que a mensagem nomeia.

1038 

1039<h3 id="command-sourced-plugins-are-disabled-by-your-organizations-managed-set">

1040 `Command-sourced plugins are disabled by your organization's managed settings`

1041</h3>

1042 

1043Você instalou ou atualizou um plugin com uma fonte `command`, e parou com esta linha e `The plugin was not installed or updated and its command was not run.`

1044 

1045Seu administrador definiu `disableCommandPluginSources`, então Claude Code recusa executar o comando declarado pelo marketplace que produz o plugin. Definir `allowManagedHooksOnly` sozinho tem o mesmo efeito quando `disableCommandPluginSources` não está definido. Peça ao seu administrador se o plugin pode ser publicado a partir de um tipo de fonte que a política permite.

1046 

1047<h3 id="marketplace-is-seed-managed">

1048 `Marketplace '<name>' is seed-managed`

1049</h3>

1050 

1051Você executou `claude plugin marketplace update <name>`, e falhou com `Marketplace '<name>' is seed-managed (<dir>)` e uma dica para pedir ao seu admin.

1052 

1053Um operador pré-populou este marketplace através de `CLAUDE_CODE_PLUGIN_SEED_DIR`, e Claude Code trata um marketplace gerenciado por seed como somente leitura. Uma atualização em massa `marketplace update` o pula e atualiza os outros.

1054 

1055Para mudar o conteúdo do marketplace, peça à pessoa que mantém a imagem de seed para atualizá-lo. Para o procedimento, veja [Seed containers and CI](/docs/pt/plugins/org#seed-containers-and-ci).

1056 

1057<h2 id="next-steps">

1058 Next steps

1059</h2>

1060 

1061* [Plugin loading reference](/docs/pt/plugins/loading): por que escopos, o cache e precedência se comportam da maneira que fazem

1062* [Plugin commands reference](/docs/pt/plugins/cli-reference): sinalizadores, padrões, saída e códigos de saída para os comandos `claude plugin`

1063* [Install and manage plugins](/docs/pt/plugins/install): os passos de instalação desde o início

1064* [Manage plugins for your organization](/docs/pt/plugins/org#troubleshoot-policy): solução de problemas do lado da política para administradores

Details

135 Enabling or disabling a plugin135 Enabling or disabling a plugin

136</h3>136</h3>

137 137 

138Quando você habilita ou desabilita um [plugin](/docs/pt/plugins), o que a mudança custa depende de quais tipos de componentes o plugin fornece. Os casos abaixo cobrem cada tipo de componente, quando Claude Code aplica a mudança e o que acontece quando você desabilita um plugin novamente na mesma sessão.138Quando você habilita ou desabilita um [plugin](/docs/pt/plugins/overview), o que a mudança custa depende de quais tipos de componentes o plugin fornece. Os casos abaixo cobrem cada tipo de componente, quando Claude Code aplica a mudança e o que acontece quando você desabilita um plugin novamente na mesma sessão.

139 139 

140<h4 id="plugin-components-that-keep-the-cache">140<h4 id="plugin-components-that-keep-the-cache">

141 Plugin components that keep the cache141 Plugin components that keep the cache


147 Plugins that provide MCP servers147 Plugins that provide MCP servers

148</h4>148</h4>

149 149 

150Quando você habilita ou desabilita um plugin que fornece [MCP servers](/docs/pt/plugins-reference#mcp-servers), Claude Code segue as mesmas regras de quando você [conecta ou desconecta um MCP server](#connecting-or-disconnecting-an-mcp-server):150Quando você habilita ou desabilita um plugin que fornece [MCP servers](/docs/pt/plugins/components#mcp-servers), Claude Code segue as mesmas regras de quando você [conecta ou desconecta um MCP server](#connecting-or-disconnecting-an-mcp-server):

151 151 

152* Se Claude Code adia as ferramentas do servidor, ele mantém o cache.152* Se Claude Code adia as ferramentas do servidor, ele mantém o cache.

153* Se Claude Code as carrega no prefixo, a próxima solicitação relê toda a conversa.153* Se Claude Code as carrega no prefixo, a próxima solicitação relê toda a conversa.


156 Code intelligence plugins156 Code intelligence plugins

157</h4>157</h4>

158 158 

159Quando você habilita um [code intelligence plugin](/docs/pt/discover-plugins#code-intelligence), Claude obtém a [LSP tool](/docs/pt/tools-reference#lsp-tool-behavior).159Quando você habilita um [code intelligence plugin](/docs/pt/plugins/code-intelligence), Claude obtém a [LSP tool](/docs/pt/tools-reference#lsp-tool-behavior).

160 160 

161<h4 id="when-plugin-changes-apply">161<h4 id="when-plugin-changes-apply">

162 When plugin changes apply162 When plugin changes apply

163</h4>163</h4>

164 164 

165Uma mudança que você faz no menu `/plugin` passa por [`/reload-plugins`](/docs/pt/discover-plugins#apply-plugin-changes-without-restarting), que Claude Code executa para você quando você fecha o menu. Você paga o custo, seja anúncios anexados ou uma releitura completa, no primeiro turno após a mudança ser aplicada. Claude Code também pode aplicar uma mudança por conta própria:165Uma mudança que você faz no menu `/plugin` passa por [`/reload-plugins`](/docs/pt/plugins/cli-reference#reload-plugins), que Claude Code executa para você quando você fecha o menu. Você paga o custo, seja anúncios anexados ou uma releitura completa, no primeiro turno após a mudança ser aplicada. Claude Code também pode aplicar uma mudança por conta própria:

166 166 

167* Para um plugin com uma fonte `command`, Claude Code [pode recarregar o plugin em si](/docs/pt/plugin-marketplaces#when-claude-code-re-runs-the-command).167* Para um plugin com uma fonte `command`, Claude Code [pode recarregar o plugin em si](/docs/pt/plugins/loading#when-a-command-source-re-runs).

168* Quando você [instala um plugin da interface `/plugin`](/docs/pt/discover-plugins#install-plugins), Claude Code pode ativá-lo durante a instalação. O resumo da instalação informa se fez isso.168* Quando você [instala um plugin da interface `/plugin`](/docs/pt/plugins/install#install-a-plugin), Claude Code pode ativá-lo durante a instalação. O resumo da instalação informa se fez isso.

169* Quando você [move a sessão com `/cd`](/docs/pt/permissions#move-the-session-to-another-directory) na v2.1.246 ou posterior, Claude Code aplica os plugins que as configurações do novo diretório habilitam como parte da mudança, sem o aviso de releitura completa que mantém um `/reload-plugins`.169* Quando você [move a sessão com `/cd`](/docs/pt/permissions#move-the-session-to-another-directory) na v2.1.246 ou posterior, Claude Code aplica os plugins que as configurações do novo diretório habilitam como parte da mudança, sem o aviso de releitura completa que mantém um `/reload-plugins`.

170* Em sessões interativas, quando você adiciona ou remove um plugin em uma [folder of plugins](/docs/pt/plugins#test-your-plugins-locally) que você passou com `--plugin-dir`, a mudança se aplica imediatamente. Se aplicá-la acionaria uma releitura completa, Claude Code retém a mudança e mostra um aviso para executar `/reload-plugins`. Requer Claude Code v2.1.265 ou posterior.170* Em sessões interativas, quando você adiciona ou remove um plugin em uma [folder of plugins](/docs/pt/plugins/create#load-a-directory-or-archive-for-one-session) que você passou com `--plugin-dir`, a mudança se aplica imediatamente. Se aplicá-la acionaria uma releitura completa, Claude Code retém a mudança e mostra um aviso para executar `/reload-plugins`. Requer Claude Code v2.1.265 ou posterior.

171 171 

172Quando `/reload-plugins` é executado e o recarregamento acionaria uma releitura completa, Claude Code mostra um aviso e não aplica o recarregamento. Execute `/reload-plugins --force` para aplicá-lo de qualquer forma.172Quando `/reload-plugins` é executado e o recarregamento acionaria uma releitura completa, Claude Code mostra um aviso e não aplica o recarregamento. Execute `/reload-plugins --force` para aplicá-lo de qualquer forma.

173 173 

174`/reload-plugins` também é executado em sessões sem um terminal interativo, como o aplicativo de desktop, o Agent SDK e [non-interactive mode](/docs/pt/headless) com `-p`, quando você o digita diretamente na sessão. Requer Claude Code v2.1.260 ou posterior.174`/reload-plugins` também é executado em sessões sem um terminal interativo, como o aplicativo de desktop, o Agent SDK e [non-interactive mode](/docs/pt/headless) com `-p`, quando você o digita diretamente na sessão. Requer Claude Code v2.1.260 ou posterior.

175 175 

176Nessas sessões, o recarregamento aplica tudo exceto mudanças de MCP server de plugin, que [entram em vigor em sua próxima sessão](/docs/pt/discover-plugins#apply-plugin-changes-without-restarting) e portanto nunca custam uma releitura completa no meio da sessão.176Nessas sessões, o recarregamento aplica tudo exceto mudanças de MCP server de plugin, que [entram em vigor em sua próxima sessão](/docs/pt/plugins/cli-reference#reload-plugins) e portanto nunca custam uma releitura completa no meio da sessão.

177 177 

178<h4 id="plugins-you-enable-and-then-disable-in-one-session">178<h4 id="plugins-you-enable-and-then-disable-in-one-session">

179 Plugins you enable and then disable in one session179 Plugins you enable and then disable in one session

Details

626 return base + (href.startsWith('/en/') ? '/' + locale + href.slice(3) : href);626 return base + (href.startsWith('/en/') ? '/' + locale + href.slice(3) : href);

627 };627 };

628 }, []);628 }, []);

629 const SAFE_HREF = /^(\/(?![\/\\\s])|#|https?:\/\/)/;

629 const linkify = s => {630 const linkify = s => {

630 const out = [];631 const out = [];

631 let last = 0;632 let last = 0;

632 const re = /\[([^\]]+)\]\(([^)]+)\)/g;633 const re = /\[([^\]]+)\]\(([^)]+)\)/g;

633 for (let m; m = re.exec(s); ) {634 for (let m; m = re.exec(s); ) {

634 if (m.index > last) out.push(s.slice(last, m.index));635 if (m.index > last) out.push(s.slice(last, m.index));

635 out.push(<a key={m.index} href={doc(m[2])}>{m[1]}</a>);636 out.push(SAFE_HREF.test(m[2]) ? <a key={m.index} href={doc(m[2])}>{m[1]}</a> : m[1]);

636 last = re.lastIndex;637 last = re.lastIndex;

637 }638 }

638 if (last < s.length) out.push(s.slice(last));639 if (last < s.length) out.push(s.slice(last));


776 </div>777 </div>

777 <div className="pl-label">{L.whyWorks}</div>778 <div className="pl-label">{L.whyWorks}</div>

778 <div className="pl-teaches">{linkify(p.teaches)}</div>779 <div className="pl-teaches">{linkify(p.teaches)}</div>

779 {p.nextHref && p.next && <div className="pl-next">780 {p.nextHref && p.next && SAFE_HREF.test(p.nextHref) && <div className="pl-next">

780 <span className="pl-next-label">{L.makeItStick}</span>781 <span className="pl-next-label">{L.makeItStick}</span>

781 <a href={doc(p.nextHref)}>{codeify(p.next)} →</a>782 <a href={doc(p.nextHref)}>{codeify(p.next)} →</a>

782 </div>}783 </div>}


1202 },1203 },

1203 "migrate-a-pattern-across": {1204 "migrate-a-pattern-across": {

1204 title: "Migrar um padrão em toda a base de código",1205 title: "Migrar um padrão em toda a base de código",

1205 teaches: "Descreva o padrão antigo e o novo. Pedir a Claude para identificar cada lugar primeiro significa que os sites de chamada são listados na resposta, para que você possa verificar se nenhum foi perdido. Para uma migração em muitos arquivos, execute [/batch](/docs/pt/commands). Claude divide o trabalho em unidades para você aprovar, depois subagentes em background fazem as mudanças e abrem um pull request por unidade."1206 teaches: "Descreva o padrão antigo e o novo. Pedir a Claude para identificar cada lugar primeiro significa que os sites de chamada são listados na resposta, para que você possa verificar se nenhum foi perdido. Para uma migração em muitos arquivos, execute [/batch](/docs/pt/commands). Claude divide o trabalho em unidades para você aprovar, depois subagentes em background fazem as mudanças."

1206 },1207 },

1207 "optimize-against-a-measurable": {1208 "optimize-against-a-measurable": {

1208 title: "Otimizar contra um alvo mensurável",1209 title: "Otimizar contra um alvo mensurável",

Details

252<Note>252<Note>

253 Dispositivos Confiáveis está atualmente em beta. Recursos e funcionalidades podem evoluir conforme a experiência é refinada.253 Dispositivos Confiáveis está atualmente em beta. Recursos e funcionalidades podem evoluir conforme a experiência é refinada.

254 254 

255 Dispositivos Confiáveis está disponível nos planos Team e Enterprise. Ele fica desativado por padrão até que um Owner o ative.255 Dispositivos Confiáveis está disponível nos planos Pro, Max, Team e Enterprise e fica desativado por padrão. Nos planos Team e Enterprise, um Owner o ativa para a organização. Nos planos Pro e Max, você ativa **Require trusted devices** você mesmo nas suas configurações, na página Cowork ou Account.

256</Note>256</Note>

257 257 

258Dispositivos Confiáveis é uma configuração em toda a organização que requer que os membros verifiquem seu dispositivo antes de poderem visualizar ou controlar sessões de Remote Control a partir de claude.ai, dos aplicativos Claude para dispositivos móveis ou Claude Desktop. Ele vincula o acesso ao Remote Control a um dispositivo conhecido e uma autenticação recente, não apenas a uma conta conectada.258Dispositivos Confiáveis requer que cada membro da sua organização, ou você sozinho em um plano Pro ou Max, verifique seu dispositivo antes de poder visualizar ou controlar sessões de Remote Control a partir de claude.ai, dos aplicativos Claude para dispositivos móveis ou Claude Desktop. Ele vincula o acesso ao Remote Control a um dispositivo conhecido e uma autenticação recente, não apenas a uma conta conectada.

259 259 

260Quando a configuração está ativada, interagir com uma sessão de Remote Control requer ambos os seguintes:260Quando a configuração está ativada, interagir com uma sessão de Remote Control requer ambos os seguintes:

261 261 


267A configuração se aplica apenas ao Remote Control. Chat regular do Claude, Claude Code no terminal e uso de API não são afetados.267A configuração se aplica apenas ao Remote Control. Chat regular do Claude, Claude Code no terminal e uso de API não são afetados.

268 268 

269<h3 id="enable-trusted-devices-for-your-organization">269<h3 id="enable-trusted-devices-for-your-organization">

270 Ativar Dispositivos Confiáveis para sua organização270 Ativar Dispositivos Confiáveis para uma organização Team ou Enterprise

271</h3>271</h3>

272 272 

273Um Owner ativa a configuração a partir do console de administrador do Claude Code.273Um Owner ativa a configuração a partir das configurações de organização do claude.ai.

274 274 

275<Steps>275<Steps>

276 <Step title="Abra as configurações de administrador do Claude Code">276 <Step title="Acesse a página Capabilities">

277 Vá para [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code). O toggle **Require trusted devices** aparece sob a configuração Remote Control.277 Vá para [**Organization settings > Capabilities > Remote sessions**](https://claude.ai/admin-settings/capabilities). O toggle **Require trusted devices** aparece nessa seção.

278 </Step>278 </Step>

279 279 

280 <Step title="Ative Require trusted devices">280 <Step title="Ative Require trusted devices">

sandboxing.md +31 −25

Details

147* Uma regra ask `Bash` simples, ou o formulário equivalente `Bash(*)`, é ignorada para comandos executados em sandbox; ainda se aplica a comandos que voltam ao fluxo de permissão regular. Em [plan mode](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode), a regra não é ignorada: ela solicita comandos em sandbox também, incluindo os somente leitura. Antes da v2.1.212, a omissão se aplicava no modo plan também147* Uma regra ask `Bash` simples, ou o formulário equivalente `Bash(*)`, é ignorada para comandos executados em sandbox; ainda se aplica a comandos que voltam ao fluxo de permissão regular. Em [plan mode](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode), a regra não é ignorada: ela solicita comandos em sandbox também, incluindo os somente leitura. Antes da v2.1.212, a omissão se aplicava no modo plan também

148 148 

149<Info>149<Info>

150 O modo auto-allow funciona independentemente de sua configuração de permission mode, com uma exceção: [plan mode](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode). Mesmo que você não esteja no modo "accept edits", comandos Bash em sandbox são executados automaticamente quando auto-allow está habilitado. Isso significa que comandos Bash que modificam arquivos dentro dos limites do sandbox são executados sem avisar, mesmo no modo Manual, onde as ferramentas de edição de arquivo solicitariam.150 O modo auto-allow funciona independentemente de sua configuração de permission mode, com três exceções: [plan mode](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode), um comando auto mode que carrega [per-command allowed domains](#per-command-allowed-domains-in-auto-mode), e [server-side classifier review](/docs/pt/permission-modes#how-the-classifier-evaluates-actions) de comandos em sandbox no modo auto. Mesmo que você não esteja no modo "accept edits", comandos Bash em sandbox são executados automaticamente quando auto-allow está habilitado. Isso significa que comandos Bash que modificam arquivos dentro dos limites do sandbox são executados sem avisar, mesmo no modo Manual, onde as ferramentas de edição de arquivo solicitariam.

151 151 

152 No modo plan, auto-allow não amplia aprovações; consulte [plan mode](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode) para saber como Claude Code bloqueia comandos enquanto você planeja. Antes da v2.1.212, auto-allow executava comandos em sandbox sem um prompt no modo plan também.152 No modo plan, auto-allow não amplia aprovações; consulte [plan mode](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode) para saber como Claude Code bloqueia comandos enquanto você planeja. Antes da v2.1.212, auto-allow executava comandos em sandbox sem um prompt no modo plan também.

153</Info>153</Info>


179 Diretórios temporários179 Diretórios temporários

180</h4>180</h4>

181 181 

182O diretório temporário da sessão é gravável dentro do sandbox por padrão, junto com o diretório de trabalho. A menos que você [desabilite isolamento de sistema de arquivos](#disable-filesystem-isolation), Claude Code define `$TMPDIR` para este diretório para comandos em sandbox, portanto ferramentas que escrevem arquivos temporários funcionam sem configuração extra. Comandos não em sandbox herdam o `$TMPDIR` do seu shell inalterado, portanto enquanto isolamento de sistema de arquivos está ativado, comandos em sandbox e não em sandbox resolvem `$TMPDIR` para diretórios diferentes. Para passar arquivos temporários entre os dois, escreva-os no diretório de trabalho em vez disso.182O diretório temporário da sessão é gravável dentro do sandbox por padrão, junto com o diretório de trabalho. A menos que você [desabilite isolamento de sistema de arquivos](#disable-filesystem-isolation), Claude Code define `$TMPDIR` para este diretório para comandos em sandbox, portanto ferramentas que escrevem arquivos temporários funcionam sem configuração extra.

183 

184Comandos não em sandbox herdam o `$TMPDIR` do seu shell quando está definido, portanto enquanto isolamento de sistema de arquivos está ativado, comandos em sandbox e não em sandbox resolvem `$TMPDIR` para diretórios diferentes. Se seu shell deixar `$TMPDIR` indefinido ou vazio, um comando não em sandbox que referencia `$TMPDIR` recebe sua substituição [`CLAUDE_CODE_TMPDIR`](/docs/pt/env-vars) ou o diretório temporário do sistema operacional quando você não definiu uma ou a substituição é um caminho longo, portanto a variável não se expande para uma string vazia. Para passar arquivos temporários entre os dois, escreva-os no diretório de trabalho em vez disso.

183 185 

184<h2 id="configure-sandboxing">186<h2 id="configure-sandboxing">

185 Configure o sandboxing187 Configure o sandboxing


309 311 

310* Comandos em sandbox herdam `$TMPDIR` do seu shell em vez do diretório temporário da sessão, porque cada diretório temporário é gravável e Claude Code não redireciona mais comandos para o da sessão.312* Comandos em sandbox herdam `$TMPDIR` do seu shell em vez do diretório temporário da sessão, porque cada diretório temporário é gravável e Claude Code não redireciona mais comandos para o da sessão.

311 313 

312 No Linux a variável geralmente não está definida no shell pai, portanto pode se expandir vazia dentro de comandos em sandbox; Claude Code diz a Claude através de sua orientação de ferramenta Bash para criar diretórios de rascunho com `mktemp -d` em vez de confiar em `$TMPDIR`.314 No Linux a variável geralmente não está definida no shell pai. A orientação de ferramenta Bash diz a Claude para criar diretórios de rascunho com `mktemp -d` em vez de confiar em `$TMPDIR`.

313* [`autoAllowBashIfSandboxed`](/docs/pt/settings-reference#sandbox-autoallowbashifsandboxed) ainda padrão para `true`, portanto comandos em sandbox continuam executando sem prompts. Defina-o como `false` para solicitar comandos em sandbox.315* [`autoAllowBashIfSandboxed`](/docs/pt/settings-reference#sandbox-autoallowbashifsandboxed) ainda padrão para `true`, portanto comandos em sandbox continuam executando sem prompts. Defina-o como `false` para solicitar comandos em sandbox.

314 316 

315<h3 id="protect-credentials">317<h3 id="protect-credentials">

316 Proteja credenciais318 Proteja credenciais

317</h3>319</h3>

318 320 

319A configuração `sandbox.credentials` declara arquivos de credenciais e variáveis de ambiente a proteger de comandos em sandbox. Cada entrada nomeia um caminho de arquivo ou uma variável de ambiente e um `mode`. O bloco `credentials` dedicado mantém as regras de credenciais agrupadas e separadas das regras gerais do sistema de arquivos. Requer Claude Code v2.1.187 ou posterior.321A configuração `sandbox.credentials` declara arquivos de credenciais e variáveis de ambiente a proteger de comandos em sandbox. Cada entrada nomeia um caminho de arquivo ou uma variável de ambiente e um `mode`. O bloco `credentials` dedicado mantém as regras de credenciais agrupadas e separadas das regras gerais do sistema de arquivos.

320 322 

321Para entradas com `"mode": "deny"`, caminhos de arquivo são negados para leituras dentro do sandbox, a mesma restrição que `filesystem.denyRead` aplica, e variáveis de ambiente são removidas antes de cada comando em sandbox ser executado. A proteção de arquivo faz parte da camada do sistema de arquivos, portanto não se aplica se você [desativar o isolamento do sistema de arquivos](#disable-filesystem-isolation); a proteção de variável de ambiente ainda se aplica.323Para entradas com `"mode": "deny"`, caminhos de arquivo são negados para leituras dentro do sandbox, a mesma restrição que `filesystem.denyRead` aplica, e variáveis de ambiente são removidas antes de cada comando em sandbox ser executado. A proteção de arquivo faz parte da camada do sistema de arquivos, portanto não se aplica se você [desativar o isolamento do sistema de arquivos](#disable-filesystem-isolation); a proteção de variável de ambiente ainda se aplica.

322 324 


616Esses mesmos primitivos estão disponíveis como o pacote autônomo [`@anthropic-ai/sandbox-runtime`](https://github.com/anthropic-experimental/sandbox-runtime), que a página [Sandbox environments](/docs/pt/sandbox-environments#sandbox-runtime) aborda como uma abordagem separada para envolver todo o processo do Claude Code.618Esses mesmos primitivos estão disponíveis como o pacote autônomo [`@anthropic-ai/sandbox-runtime`](https://github.com/anthropic-experimental/sandbox-runtime), que a página [Sandbox environments](/docs/pt/sandbox-environments#sandbox-runtime) aborda como uma abordagem separada para envolver todo o processo do Claude Code.

617 619 

618<h2 id="how-sandboxing-relates-to-permissions-and-permission-modes">620<h2 id="how-sandboxing-relates-to-permissions-and-permission-modes">

619 Como sandboxing se relaciona com permissões e modos de permissão621 Como o sandboxing se relaciona com permissões e modos de permissão

620</h2>622</h2>

621 623 

622Sandboxing, [regras de permissão](/docs/pt/permissions) e [modos de permissão](/docs/pt/permission-modes) são camadas complementares. As seções abaixo abrangem como o sandbox interage com cada uma.624Sandboxing, [regras de permissão](/docs/pt/permissions), e [modos de permissão](/docs/pt/permission-modes) são camadas complementares. As seções abaixo cobrem como o sandbox interage com cada uma.

623 625 

624<h3 id="permission-rules">626<h3 id="permission-rules">

625 Regras de permissão627 Regras de permissão


627 629 

628Regras de permissão e sandboxing controlam coisas diferentes:630Regras de permissão e sandboxing controlam coisas diferentes:

629 631 

630* **Regras de permissão** controlam quais ferramentas Claude Code pode usar e são avaliadas antes de qualquer ferramenta ser executada. Elas se aplicam a todas as ferramentas: Bash, Read, Edit, WebFetch, MCP e outras, exceto que uma regra de negação ou solicitação não pode bloquear [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior) enquanto qualquer outra ferramenta permanecer.632* **Regras de permissão** controlam quais ferramentas o Claude Code pode usar e são avaliadas antes de qualquer ferramenta ser executada. Elas se aplicam a todas as ferramentas: Bash, Read, Edit, WebFetch, MCP e outras, exceto que uma regra de negação ou pergunta não pode bloquear [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior) enquanto qualquer outra ferramenta permanecer.

631* **Sandboxing** fornece imposição no nível do SO que restringe o que comandos Bash, PowerShell e [Monitor](/docs/pt/tools-reference#monitor-tool) podem acessar no nível de sistema de arquivos e rede. Aplica-se apenas a comandos Bash, PowerShell e [Monitor](/docs/pt/tools-reference#monitor-tool) e seus processos filhos.633* **Sandboxing** fornece aplicação em nível de SO que restringe o que os comandos shell podem acessar no nível do sistema de arquivos e rede. Aplica-se apenas aos comandos Bash, PowerShell e [Monitor](/docs/pt/tools-reference#monitor-tool) e seus processos filhos.

632 634 

633As duas camadas também diferem em como são impostas. Claude Code avalia decisões de permissão antes de um comando ser executado, com base na string do comando e, no modo auto, no julgamento de um classificador separado sobre se o comando é seguro. O sistema operacional impõe o limite do sandbox no processo em execução, portanto se mantém independentemente do que o modelo escolheu executar e mesmo se um comando permitido faz mais do que seu nome sugere.635As duas camadas também diferem em como são aplicadas. O Claude Code avalia decisões de permissão antes de um comando ser executado, com base na string do comando e, em modo automático, no julgamento de um classificador separado sobre se o comando é seguro. O sistema operacional aplica o limite do sandbox no processo em execução, portanto ele se mantém independentemente do que o modelo escolheu executar e mesmo que um comando permitido faça mais do que seu nome sugere.

634 636 

635Restrições de sistema de arquivos e rede são configuradas através de configurações de sandbox e regras de permissão:637Restrições de sistema de arquivos e rede são configuradas através de ambas as configurações de sandbox e regras de permissão:

636 638 

637| Configuração ou regra | O que faz |639| Configuração ou regra | O que faz |

638| :------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------- |640| :------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------- |

639| `sandbox.filesystem.allowWrite` | Concede acesso de escrita de subprocesso a caminhos fora do diretório de trabalho |641| `sandbox.filesystem.allowWrite` | Concede acesso de escrita ao subprocesso para caminhos fora do diretório de trabalho |

640| `sandbox.filesystem.denyWrite` e `sandbox.filesystem.denyRead` | Bloqueiam acesso de subprocesso a caminhos específicos |642| `sandbox.filesystem.denyWrite` e `sandbox.filesystem.denyRead` | Bloqueiam acesso do subprocesso a caminhos específicos |

641| `sandbox.filesystem.allowRead` | Permite novamente a leitura de caminhos específicos dentro de uma região `denyRead` |643| `sandbox.filesystem.allowRead` | Permite novamente a leitura de caminhos específicos dentro de uma região `denyRead` |

642| [`sandbox.filesystem.disabled`](#disable-filesystem-isolation) | Desativa a camada de sistema de arquivos inteiramente enquanto mantém isolamento de rede |644| [`sandbox.filesystem.disabled`](#disable-filesystem-isolation) | Desativa a camada de sistema de arquivos inteiramente enquanto mantém isolamento de rede |

643| Regras de permissão `Edit` | Concedem acesso de escrita a caminhos específicos, da mesma forma que `sandbox.filesystem.allowWrite` faz |645| Regras de permissão `Edit` | Concedem acesso de escrita a caminhos específicos, da mesma forma que `sandbox.filesystem.allowWrite` faz |

644| Regras de negação `Read` e `Edit` | Bloqueiam acesso a arquivos ou diretórios específicos |646| Regras de negação `Read` e `Edit` | Bloqueiam acesso a arquivos ou diretórios específicos |

645| Regras de permissão e negação `WebFetch(domain:...)` | Controlam acesso a domínios |647| Regras de permissão `WebFetch(domain:...)` | Controlam acesso a domínios |

646| `allowedDomains` de sandbox | Controla quais domínios comandos Bash podem alcançar |648| `allowedDomains` do Sandbox | Controla quais domínios os comandos Bash podem alcançar |

647| `deniedDomains` de sandbox | Bloqueia domínios específicos mesmo quando um wildcard `allowedDomains` mais amplo permitiria de outra forma |649| `deniedDomains` do Sandbox | Bloqueia domínios específicos mesmo quando um wildcard `allowedDomains` mais amplo permitiria de outra forma |

648 650 

649Caminhos e domínios de ambas as configurações de sandbox e regras de permissão são mesclados na configuração final do sandbox.651Caminhos e domínios das configurações de sandbox e regras de permissão são mesclados na configuração final do sandbox.

650 652 

651O [diretório de exemplos do repositório claude-code](https://github.com/anthropics/claude-code/tree/main/examples/settings) inclui configurações iniciais para cenários de implantação comuns, incluindo exemplos específicos de sandbox. Use-os como pontos de partida e ajuste-os para suas necessidades.653O [diretório de exemplos do repositório claude-code](https://github.com/anthropics/claude-code/tree/main/examples/settings) inclui configurações de configurações iniciais para cenários de implantação comuns, incluindo exemplos específicos de sandbox. Use-os como pontos de partida e ajuste-os para suas necessidades.

652 654 

653<h3 id="permission-modes">655<h3 id="permission-modes">

654 Modos de permissão656 Modos de permissão


657`/sandbox` não é um [modo de permissão](/docs/pt/permission-modes). Modos de permissão decidem se uma chamada de ferramenta é executada e se você é solicitado primeiro, enquanto o sandbox restringe o que um comando Bash pode acessar uma vez que é executado. Eles diferem no que controlam e o que substitui o prompt por ação:659`/sandbox` não é um [modo de permissão](/docs/pt/permission-modes). Modos de permissão decidem se uma chamada de ferramenta é executada e se você é solicitado primeiro, enquanto o sandbox restringe o que um comando Bash pode acessar uma vez que é executado. Eles diferem no que controlam e o que substitui o prompt por ação:

658 660 

659| | O que controla | O que substitui o prompt |661| | O que controla | O que substitui o prompt |

660| :----------------------------------------------------------------- | :--------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |662| :----------------------------------------------------------------------- | :--------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

661| `/sandbox` | O que um comando Bash pode acessar uma vez que é executado | O limite do sandbox em si, no [modo auto-allow](#sandbox-modes) |663| `/sandbox` | O que um comando Bash pode acessar uma vez que é executado | O limite do sandbox em si, em [modo auto-allow](#sandbox-modes) |

662| [Modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) | Se cada chamada de ferramenta é executada | Um classificador que revisa ações |664| [Modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) | Se cada chamada de ferramenta é executada | Um classificador que revisa ações |

663| `--dangerously-skip-permissions` | Se cada chamada de ferramenta é executada | Nada. Verificações de [caminho protegido](/docs/pt/permission-modes#protected-paths) também são ignoradas; as [ações que nenhum modo auto-aprova](/docs/pt/permission-modes#actions-no-mode-auto-approves) ainda se aplicam |665| `--dangerously-skip-permissions` | Se cada chamada de ferramenta é executada | Nada. Verificações de [caminho protegido](/docs/pt/permission-modes#protected-paths) também são ignoradas; as [ações que nenhum modo auto-aprova](/docs/pt/permission-modes#actions-no-mode-auto-approves) ainda se aplicam |

664 666 

665O [modo auto-allow](#sandbox-modes) do sandbox é separado do [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode): auto-allow aprova comandos Bash porque o limite do sandbox os contém, enquanto modo auto usa um classificador para revisar ações. Os dois funcionam independentemente e podem ser combinados, com as exceções listadas em [Modos de sandbox](#sandbox-modes). Para escolher um limite de isolamento para execuções autônomas, consulte [Ambientes de sandbox](/docs/pt/sandbox-environments#how-isolation-relates-to-permission-modes). Para uma tabela de emparelhamentos comuns de modo de permissão e sandbox com os sinalizadores que iniciam cada um, consulte [Configurações comuns](/docs/pt/permission-modes#common-setups).667O [modo auto-allow](#sandbox-modes) do sandbox é separado do [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode): auto-allow aprova comandos Bash porque o limite do sandbox os contém, enquanto modo automático usa um classificador para revisar ações. Os dois funcionam independentemente e podem ser combinados, com as exceções listadas em [Modos de sandbox](#sandbox-modes). Para escolher um limite de isolamento para execuções autônomas, consulte [Ambientes de sandbox](/docs/pt/sandbox-environments#how-isolation-relates-to-permission-modes). Para uma tabela de emparelhamentos comuns de modo de permissão e sandbox com os sinalizadores que iniciam cada um, consulte [Configurações comuns](/docs/pt/permission-modes#common-setups).

666 668 

667<h2 id="configure-the-sandbox-for-your-organization">669<h2 id="configure-the-sandbox-for-your-organization">

668 Configure o sandbox para sua organização670 Configure o sandbox para sua organização


743 745 

744* **Comandos falham com um erro host-not-allowed**: muitas ferramentas CLI precisam alcançar hosts específicos. Conceder permissão quando solicitado adiciona o host à sua lista de permitidos para que a ferramenta seja executada dentro do sandbox no futuro.746* **Comandos falham com um erro host-not-allowed**: muitas ferramentas CLI precisam alcançar hosts específicos. Conceder permissão quando solicitado adiciona o host à sua lista de permitidos para que a ferramenta seja executada dentro do sandbox no futuro.

745* **`jest` trava ou falha**: `watchman` é incompatível com o sandbox. Execute `jest --no-watchman` em vez disso.747* **`jest` trava ou falha**: `watchman` é incompatível com o sandbox. Execute `jest --no-watchman` em vez disso.

746* **CLIs baseadas em Go falham na verificação TLS no macOS**: ferramentas como `gh`, `gcloud` e `terraform` podem falhar na verificação TLS sob Seatbelt. Liste essas ferramentas em `excludedCommands` para executá-las fora do sandbox. Se você estiver usando `httpProxyPort` com um proxy MITM e CA personalizado, defina [`enableWeakerNetworkIsolation`](/docs/pt/settings-reference#sandbox-enableweakernetworkisolation) como `true` em vez disso.748* **CLIs baseadas em Go falham na verificação TLS no macOS**: ferramentas como `gh`, `gcloud` e `terraform` podem falhar na verificação TLS sob Seatbelt. Liste essas ferramentas em [`excludedCommands`](/docs/pt/settings-reference#sandbox-excludedcommands). Se você estiver usando `httpProxyPort` com um proxy MITM e CA personalizado, defina [`enableWeakerNetworkIsolation`](/docs/pt/settings-reference#sandbox-enableweakernetworkisolation) como `true` em vez disso.

747* **`open`, `osascript`, ou fluxos de autenticação baseados em navegador falham com erro `-600` no macOS**: o sandbox bloqueia Apple Events por padrão. Defina [`allowAppleEvents`](/docs/pt/settings-reference#sandbox-allowappleevents) como `true` em suas configurações de usuário, gerenciadas ou CLI para permitir. As configurações do projeto são ignoradas para esta chave. Habilitá-lo remove o isolamento de execução de código, pois comandos em sandbox podem então iniciar outras aplicações sem sandbox sem prompt do usuário e enviar comandos AppleScript para aplicações em execução, sujeito ao prompt de consentimento de automação do macOS (TCC). Alternativamente, adicione o comando a `excludedCommands` para executá-lo fora do sandbox.749* **`open`, `osascript`, ou fluxos de autenticação baseados em navegador falham com erro `-600` no macOS**: o sandbox bloqueia Apple Events por padrão. Defina [`allowAppleEvents`](/docs/pt/settings-reference#sandbox-allowappleevents) como `true` em suas configurações de usuário, gerenciadas ou CLI para permitir. As configurações do projeto são ignoradas para esta chave. Habilitá-lo remove o isolamento de execução de código, pois comandos em sandbox podem então iniciar outras aplicações sem sandbox sem prompt do usuário e enviar comandos AppleScript para aplicações em execução, sujeito ao prompt de consentimento de automação do macOS (TCC). Alternativamente, adicione o comando a [`excludedCommands`](/docs/pt/settings-reference#sandbox-excludedcommands).

748* **Comandos `docker` falham**: `docker` é incompatível com o sandbox. Adicione `docker *` a `excludedCommands` para executá-lo fora do sandbox.750* **Comandos `docker` falham**: `docker` é incompatível com o sandbox. Adicione `docker *` a [`excludedCommands`](/docs/pt/settings-reference#sandbox-excludedcommands).

749* **`pbcopy`, `xclip`, ou `wl-copy` não atualiza a área de transferência**: esses utilitários de área de transferência podem falhar ao alcançar a área de transferência do sistema de dentro do sandbox, caso em que o texto canalizado para eles não chega. Para colocar a saída do Claude em sua área de transferência, peça ao Claude para imprimi-la em sua resposta e execute [`/copy`](/docs/pt/commands), que escreve na área de transferência do processo Claude Code em vez de um comando em sandbox. Alternativamente, adicione `pbcopy *`, `wl-copy *`, ou `xclip *` a `excludedCommands` para executar o comando fora do sandbox.751* **`pbcopy`, `xclip`, ou `wl-copy` não atualiza a área de transferência**: esses utilitários de área de transferência podem falhar ao alcançar a área de transferência do sistema de dentro do sandbox, caso em que o texto canalizado para eles não chega.

752 

753 Para colocar a saída do Claude em sua área de transferência, peça ao Claude para imprimi-la em sua resposta e execute [`/copy`](/docs/pt/commands). `/copy` escreve na área de transferência do processo Claude Code em vez de um comando em sandbox.

754 

755 Quando Claude canaliza texto para uma dessas ferramentas, adicionar a ferramenta a [`excludedCommands`](/docs/pt/settings-reference#sandbox-excludedcommands) não tira essa chamada do sandbox por si só.

750* **Um comando git falha com `unable to unlink old`**: `git merge`, `git checkout` e comandos similares falham dessa forma quando precisam substituir um arquivo que o sandbox nega gravações, seja esse arquivo sob um [caminho protegido](#protected-paths) como `.claude/skills`, sob uma de suas entradas `denyWrite`, ou fora dos diretórios que o sandbox permite que comandos gravem. No Linux e WSL2 o erro termina com `Read-only file system`.756* **Um comando git falha com `unable to unlink old`**: `git merge`, `git checkout` e comandos similares falham dessa forma quando precisam substituir um arquivo que o sandbox nega gravações, seja esse arquivo sob um [caminho protegido](#protected-paths) como `.claude/skills`, sob uma de suas entradas `denyWrite`, ou fora dos diretórios que o sandbox permite que comandos gravem. No Linux e WSL2 o erro termina com `Read-only file system`.

751 757 

752 Após a falha, Claude pode [oferecer executar novamente o comando fora do sandbox](#the-unsandboxed-retry-escape-hatch); aprove essa nova tentativa ou execute o comando git você mesmo em outro terminal. Se você definiu `allowUnsandboxedCommands` como `false`, Claude não pode oferecer a nova tentativa, então execute o comando você mesmo. Se o mesmo comando git falhar frequentemente, adicione-o a [`excludedCommands`](/docs/pt/settings-reference#sandbox-excludedcommands).758 Após a falha, Claude pode [oferecer executar novamente o comando fora do sandbox](#the-unsandboxed-retry-escape-hatch); aprove essa nova tentativa ou execute o comando git você mesmo em outro terminal. Se você definiu `allowUnsandboxedCommands` como `false`, Claude não pode oferecer a nova tentativa, então execute o comando você mesmo. Se o mesmo comando git falhar frequentemente, adicione-o a [`excludedCommands`](/docs/pt/settings-reference#sandbox-excludedcommands).

Details

25 Instalar o plugin25 Instalar o plugin

26</h2>26</h2>

27 27 

28Em uma sessão Claude Code no terminal, instale do [marketplace oficial da Anthropic](/docs/pt/discover-plugins#official-anthropic-marketplace):28Em uma sessão Claude Code no terminal, instale do [marketplace oficial da Anthropic](/docs/pt/plugins/anthropic-marketplaces):

29 29 

30```text theme={null}30```text theme={null}

31/plugin install security-guidance@claude-plugins-official31/plugin install security-guidance@claude-plugins-official


35 35 

36* **Aplicativo Claude desktop, sessão local ou SSH**: abra o [navegador de plugins](/docs/pt/desktop#install-plugins) clicando no botão **+** ao lado do prompt, depois em **Plugins**, depois em **Adicionar plugin**36* **Aplicativo Claude desktop, sessão local ou SSH**: abra o [navegador de plugins](/docs/pt/desktop#install-plugins) clicando no botão **+** ao lado do prompt, depois em **Plugins**, depois em **Adicionar plugin**

37* **Extensão VS Code**: instale do [diálogo **Gerenciar plugins**](/docs/pt/vs-code#manage-plugins)37* **Extensão VS Code**: instale do [diálogo **Gerenciar plugins**](/docs/pt/vs-code#manage-plugins)

38* **Sessões na nuvem**: ative o plugin para sua conta claude.ai para que Claude Code o carregue como um [plugin sincronizado](/docs/pt/plugins-reference#synced-plugins). Uma sessão na nuvem não carrega plugins de suas configurações de usuário ou do arquivo `.claude/settings.json` do repositório, conforme [O que é transferido de sua configuração](/docs/pt/cloud-environments#what-carries-over-from-your-setup) explica38* **Sessões na nuvem**: uma sessão na nuvem não carrega plugins de suas configurações de usuário ou do arquivo `.claude/settings.json` do repositório, conforme [O que é transferido de sua configuração](/docs/pt/cloud-environments#what-carries-over-from-your-setup) explica. Para plugins que sua organização distribui através de configurações gerenciadas, consulte [Gerenciar plugins para sua organização](/docs/pt/plugins/org)

39 39 

40A instalação no terminal solicita um escopo. Escolha escopo de usuário para escrever o plugin em suas configurações de usuário, para que seja carregado em cada nova sessão local que você inicia nesta máquina.40A instalação no terminal solicita um escopo. Escolha escopo de usuário para escrever o plugin em suas configurações de usuário, para que seja carregado em cada nova sessão local que você inicia nesta máquina.

41 41 

42Se a instalação falhar, corresponda à mensagem que Claude Code relata:42Se a instalação falhar, corresponda à mensagem que Claude Code relata:

43 43 

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

45* O plugin [não foi encontrado no marketplace](/docs/pt/discover-plugins#install-plugins): verifique o nome do plugin.45* O plugin [não foi encontrado no marketplace](/docs/pt/plugins/install#install-a-plugin): verifique o nome do plugin.

46 46 

47Verifique o resumo da instalação. Se relatar `Run /reload-plugins to activate.`, consulte [Aplicar alterações de plugin sem reiniciar](/docs/pt/discover-plugins#apply-plugin-changes-without-restarting) para ativar o plugin em sua sessão atual.47Verifique o resumo da instalação. Se relatar `Run /reload-plugins to activate.`, consulte [Aplicar alterações de plugin sem reiniciar](/docs/pt/plugins/cli-reference#reload-plugins) para ativar o plugin em sua sessão atual.

48 48 

49<h3 id="enable-for-your-team-in-local-sessions">49<h3 id="enable-for-your-team-in-local-sessions">

50 Ativar para sua equipe em sessões locais50 Ativar para sua equipe em sessões locais


279 279 

280* [Code Review](/docs/pt/code-review): configurar a revisão multi-agente no tempo de PR280* [Code Review](/docs/pt/code-review): configurar a revisão multi-agente no tempo de PR

281* [Automatizar fluxos de trabalho com hooks](/docs/pt/hooks-guide): construir suas próprias verificações nos mesmos pontos de ciclo de vida281* [Automatizar fluxos de trabalho com hooks](/docs/pt/hooks-guide): construir suas próprias verificações nos mesmos pontos de ciclo de vida

282* [Descobrir e instalar plugins](/docs/pt/discover-plugins#official-anthropic-marketplace): procurar outros plugins oficiais282* [Encontrar plugins no marketplace oficial](/docs/pt/plugins/anthropic-marketplaces#find-plugins-in-the-official-marketplace): onde procurar os outros plugins oficiais

Details

249}249}

250```250```

251 251 

252Você também pode definir essa chave em um [perfil MDM](/docs/pt/managed-settings#delivery-mechanisms) gerenciado pelo endpoint ou arquivo `managed-settings.json` do sistema para impor comportamento de falha fechada no primeiro lançamento, antes de qualquer payload do servidor ter chegado. No Claude Code v2.1.191 ou posterior, esse sinalizador é uma exceção à [regra de precedência](#settings-precedence) acima: o Claude Code o honra quando qualquer fonte gerenciada controlada por administrador o define, mesmo se um payload gerenciado pelo servidor em cache também estiver presente, portanto ele não ignora um valor entregue por MDM quando configurações gerenciadas pelo servidor existem.252Você também pode definir essa chave em um [perfil MDM](/docs/pt/managed-settings#delivery-mechanisms) gerenciado pelo endpoint ou arquivo `managed-settings.json` do sistema para impor comportamento de falha fechada no primeiro lançamento, antes de qualquer payload do servidor ter chegado. Esse sinalizador é uma exceção à [regra de precedência](#settings-precedence) acima: o Claude Code o honra quando qualquer fonte gerenciada controlada por administrador o define, mesmo se um payload gerenciado pelo servidor em cache também estiver presente, portanto ele não ignora um valor entregue por MDM quando configurações gerenciadas pelo servidor existem.

253 253 

254Quando um [`policyHelper`](/docs/pt/settings-reference#policyhelper) fornece configurações gerenciadas, sua saída substitui todas as outras fontes gerenciadas para as chaves que o Claude Code lê após a inicialização. Para as fontes que o Claude Code lê essa chave, veja [sua entrada de configurações](/docs/pt/settings-reference#forceremotesettingsrefresh). A entrada `policyHelper` diz quais fontes o Claude Code lê o helper e quando ele é executado.254Quando um [`policyHelper`](/docs/pt/settings-reference#policyhelper) fornece configurações gerenciadas, sua saída substitui todas as outras fontes gerenciadas para as chaves que o Claude Code lê após a inicialização. Para as fontes que o Claude Code lê essa chave, veja [sua entrada de configurações](/docs/pt/settings-reference#forceremotesettingsrefresh). A entrada `policyHelper` diz quais fontes o Claude Code lê o helper e quando ele é executado.

255 255 


338 338 

339Nem as chaves retornadas por um script [`apiKeyHelper`](/docs/pt/settings-reference#apikeyhelper) nem as credenciais de [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) acionam a busca de configurações.339Nem as chaves retornadas por um script [`apiKeyHelper`](/docs/pt/settings-reference#apikeyhelper) nem as credenciais de [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) acionam a busca de configurações.

340 340 

341Em uma sessão de [Cowork](https://claude.com/docs/cowork/overview) no aplicativo Claude Desktop, Claude Code não busca configurações gerenciadas pelo servidor do console de administração claude.ai, mesmo quando o usuário se conecta com uma conta de Equipe ou Empresa. [Onde e quando uma política se aplica](/docs/pt/managed-settings#where-and-when-a-policy-applies) cobre qual política alcança sessões de Cowork na máquina do usuário e sessões de Cowork remotas. claude.ai ainda aplica suas listas [`strictKnownMarketplaces`](/docs/pt/settings-reference#strictknownmarketplaces) e [`blockedMarketplaces`](/docs/pt/settings-reference#blockedmarketplaces) quando um usuário de Cowork adiciona um marketplace de um repositório git em claude.ai ou de **Customize** na aba Cowork. [Como as restrições funcionam](/docs/pt/plugin-marketplaces#how-restrictions-work) descreve essa verificação.341Em uma sessão de [Cowork](https://claude.com/docs/cowork/overview) no aplicativo Claude Desktop, Claude Code não busca configurações gerenciadas pelo servidor do console de administração claude.ai, mesmo quando o usuário se conecta com uma conta de Equipe ou Empresa. [Onde e quando uma política se aplica](/docs/pt/managed-settings#where-and-when-a-policy-applies) cobre qual política alcança sessões de Cowork na máquina do usuário e sessões de Cowork remotas. claude.ai ainda aplica suas listas [`strictKnownMarketplaces`](/docs/pt/settings-reference#strictknownmarketplaces) e [`blockedMarketplaces`](/docs/pt/settings-reference#blockedmarketplaces) quando um usuário de Cowork adiciona um marketplace de um repositório git em claude.ai ou de **Customize** na aba Cowork. [Como as restrições funcionam](/docs/pt/plugins/org#restrict-what-users-can-install) descreve essa verificação.

342 342 

343Se você exportar uma variável de provedor `CLAUDE_CODE_USE_*` ou um `ANTHROPIC_BASE_URL` não padrão em seu shell, Claude Code ignora a busca de configurações para suas sessões. [`claude doctor` e `/status` relatam a busca ignorada e sua causa](#verify-settings-delivery).343Se você exportar uma variável de provedor `CLAUDE_CODE_USE_*` ou um `ANTHROPIC_BASE_URL` não padrão em seu shell, Claude Code ignora a busca de configurações para suas sessões. [`claude doctor` e `/status` relatam a busca ignorada e sua causa](#verify-settings-delivery).

344 344 

sessions.md +1 −1

Details

37 37 

38Uma sessão retomada restaura a conversa junto com o estado salvo nela:38Uma sessão retomada restaura a conversa junto com o estado salvo nela:

39 39 

40* Histórico de conversa: o histórico completo, incluindo chamadas de ferramentas e resultados. Uma ferramenta que ainda estava em execução quando o processo anterior terminou, por exemplo em uma falha, não termina ou executa novamente quando você retoma; Claude continua sem sua saída.40* Histórico de conversa: o histórico completo, incluindo chamadas de ferramentas e resultados. Uma ferramenta que ainda estava em execução quando o processo anterior terminou, por exemplo em uma falha, não termina ou executa novamente quando você retoma. Claude vê a chamada marcada como interrompida antes de seu resultado ser registrado e é instruído a verificar se ela teve efeito antes de executá-la novamente, a menos que [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/pt/env-vars#variables) esteja definido. Antes da v2.1.281, Claude Code descartava a chamada interrompida da conversa ou a mostrava a Claude como uma que você interrompeu.

41* Modelo: a sessão continua no modelo que estava usando. O modelo não é restaurado quando foi descontinuado ou não é permitido por `availableModels`, quando uma flag `--model` ou uma variável de ambiente da família `ANTHROPIC_MODEL` escolhe um no lançamento, ou em provedores que usam IDs de implantação específicos do provedor, como [Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry](/docs/pt/third-party-integrations); veja [configuração de modelo](/docs/pt/model-config#setting-your-model) para a ordem de resolução.41* Modelo: a sessão continua no modelo que estava usando. O modelo não é restaurado quando foi descontinuado ou não é permitido por `availableModels`, quando uma flag `--model` ou uma variável de ambiente da família `ANTHROPIC_MODEL` escolhe um no lançamento, ou em provedores que usam IDs de implantação específicos do provedor, como [Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry](/docs/pt/third-party-integrations); veja [configuração de modelo](/docs/pt/model-config#setting-your-model) para a ordem de resolução.

42* Agente: uma sessão iniciada com [`--agent`](/docs/pt/sub-agents#invoke-subagents-explicitly) ou a configuração `agent` continua como esse agente, mantendo suas restrições de ferramentas e modelo. Passe `--agent` ao retomar para escolher um diferente; para o prompt do sistema em ambos os casos, veja [Flags de prompt do sistema em conversas retomadas](/docs/pt/cli-reference#system-prompt-flags-in-resumed-conversations). Claude Code procura o agente em dois lugares: o diretório original da sessão, desde que você tenha [confiado nesse workspace](/docs/pt/permissions#project-allow-rules-and-workspace-trust), e depois o diretório de onde você retoma, para que um agente com escopo de projeto ainda carregue quando você retoma de outro diretório. Se Claude Code não encontrar o agente em nenhum dos dois lugares, a sessão retoma com as ferramentas padrão e mostra um [aviso nomeando o agente](/docs/pt/errors#session-agent-no-longer-available).42* Agente: uma sessão iniciada com [`--agent`](/docs/pt/sub-agents#invoke-subagents-explicitly) ou a configuração `agent` continua como esse agente, mantendo suas restrições de ferramentas e modelo. Passe `--agent` ao retomar para escolher um diferente; para o prompt do sistema em ambos os casos, veja [Flags de prompt do sistema em conversas retomadas](/docs/pt/cli-reference#system-prompt-flags-in-resumed-conversations). Claude Code procura o agente em dois lugares: o diretório original da sessão, desde que você tenha [confiado nesse workspace](/docs/pt/permissions#project-allow-rules-and-workspace-trust), e depois o diretório de onde você retoma, para que um agente com escopo de projeto ainda carregue quando você retoma de outro diretório. Se Claude Code não encontrar o agente em nenhum dos dois lugares, a sessão retoma com as ferramentas padrão e mostra um [aviso nomeando o agente](/docs/pt/errors#session-agent-no-longer-available).

43* Modo de permissão: se você retomar de um terminal com `claude --continue`, `claude --resume <session-id>` ou `claude --resume <name>` quando o nome corresponde a uma sessão, sem `-p`, Claude Code restaura o modo de permissão em que a sessão estava, exceto nos casos em [modo de permissão ao retomar](#permission-mode-on-resume), que também cobre o seletor de sessão, `/resume` e retomar com `claude -p`. Passe `--permission-mode` ou `--dangerously-skip-permissions` para substituir o modo restaurado.43* Modo de permissão: se você retomar de um terminal com `claude --continue`, `claude --resume <session-id>` ou `claude --resume <name>` quando o nome corresponde a uma sessão, sem `-p`, Claude Code restaura o modo de permissão em que a sessão estava, exceto nos casos em [modo de permissão ao retomar](#permission-mode-on-resume), que também cobre o seletor de sessão, `/resume` e retomar com `claude -p`. Passe `--permission-mode` ou `--dangerously-skip-permissions` para substituir o modo restaurado.

settings.md +5 −1

Details

452 Compartilhe configurações com sua equipe452 Compartilhe configurações com sua equipe

453</h3>453</h3>

454 454 

455Confirme `.claude/settings.json` para que todos que clonem o repositório obtenham as mesmas permissões, hooks, telemetria e plugins. Cada colega de equipe ainda pode substituí-lo para si mesmo em seu próprio `.claude/settings.local.json`, para que exceções pessoais não precisem de um commit. Para um arquivo de equipe completo, veja [configurações compartilhadas de uma equipe](/docs/pt/settings-example#a-teams-shared-settings).455Confirme `.claude/settings.json` para que todos que clonem o repositório obtenham as mesmas permissões, hooks e plugins. Cada colega de equipe ainda pode substituí-lo para si mesmo em seu próprio `.claude/settings.local.json`, para que exceções pessoais não precisem de um commit. Para um arquivo de equipe completo, veja [configurações compartilhadas de uma equipe](/docs/pt/settings-example#a-teams-shared-settings).

456 456 

457Parte do que você confirma espera até que cada colega de equipe [confie na pasta](/docs/pt/permissions#project-allow-rules-and-workspace-trust), e algumas chaves nunca entram em vigor de um arquivo de repositório; [Solucione problemas de uma configuração que não se aplica](#common-cases) cobre ambos.457Parte do que você confirma espera até que cada colega de equipe [confie na pasta](/docs/pt/permissions#project-allow-rules-and-workspace-trust), e algumas chaves nunca entram em vigor de um arquivo de repositório; [Solucione problemas de uma configuração que não se aplica](#common-cases) cobre ambos.

458 458 


743* **Um nível mais alto o define.** Outro arquivo de configurações, uma flag `--settings` ou uma fonte gerenciada define a chave acima da sua; a [pilha](#settings-precedence) diz qual. Uma flag ou variável de ambiente também pode substituir a chave por conta própria, decidido chave por chave; a entrada da chave na [referência de configurações](/docs/pt/settings-reference) diz qual o Claude Code usa, e a [entrada `env`](/docs/pt/settings-reference#env) cobre um valor `env` gerenciado versus uma exportação de shell.743* **Um nível mais alto o define.** Outro arquivo de configurações, uma flag `--settings` ou uma fonte gerenciada define a chave acima da sua; a [pilha](#settings-precedence) diz qual. Uma flag ou variável de ambiente também pode substituir a chave por conta própria, decidido chave por chave; a entrada da chave na [referência de configurações](/docs/pt/settings-reference) diz qual o Claude Code usa, e a [entrada `env`](/docs/pt/settings-reference#env) cobre um valor `env` gerenciado versus uma exportação de shell.

744* **Uma chave de segurança mantém seu valor rigoroso.** Para algumas chaves o Claude Code honra o valor restritivo de qualquer arquivo, então um projeto `true` para [`disableClaudeAiConnectors`](/docs/pt/settings-reference#disableclaudeaiconnectors) permanece ligado; veja [Exceções à precedência de configurações gerenciadas](#exceptions-to-managed-settings-precedence).744* **Uma chave de segurança mantém seu valor rigoroso.** Para algumas chaves o Claude Code honra o valor restritivo de qualquer arquivo, então um projeto `true` para [`disableClaudeAiConnectors`](/docs/pt/settings-reference#disableclaudeaiconnectors) permanece ligado; veja [Exceções à precedência de configurações gerenciadas](#exceptions-to-managed-settings-precedence).

745* **O arquivo não pode definir esse valor.** Os valores [`permissions.defaultMode`](/docs/pt/settings-reference#permissions-defaultmode) `auto` e `bypassPermissions` não entram em vigor de configurações de projeto ou local; defina-os em configurações de usuário ou gerenciadas em vez disso, ou passe `--permission-mode` para uma sessão. Antes da v2.1.257, `bypassPermissions` entrava em vigor de qualquer arquivo.745* **O arquivo não pode definir esse valor.** Os valores [`permissions.defaultMode`](/docs/pt/settings-reference#permissions-defaultmode) `auto` e `bypassPermissions` não entram em vigor de configurações de projeto ou local; defina-os em configurações de usuário ou gerenciadas em vez disso, ou passe `--permission-mode` para uma sessão. Antes da v2.1.257, `bypassPermissions` entrava em vigor de qualquer arquivo.

746 

747 Uma variável de exportação de telemetria em um bloco [`env`](/docs/pt/settings-reference#env) também não entra em vigor de configurações de projeto ou local, exceto por alguns valores desligados. [Variáveis que o Claude Code ignora em `env`](/docs/pt/settings-reference#variables-claude-code-ignores-in-env) lista as variáveis e esses valores.

746* **O arquivo está quebrado.** JSON inválido ou um valor rejeitado faz o Claude Code pular o arquivo ou a entrada; veja [Corrija um arquivo de configurações quebrado](#fix-a-broken-settings-file).748* **O arquivo está quebrado.** JSON inválido ou um valor rejeitado faz o Claude Code pular o arquivo ou a entrada; veja [Corrija um arquivo de configurações quebrado](#fix-a-broken-settings-file).

747 749 

748<h4 id="a-change-you-made-in-claude-code-is-lost-in-new-sessions">750<h4 id="a-change-you-made-in-claude-code-is-lost-in-new-sessions">


766Duas coisas mantêm uma chave em `.claude/settings.json` de se aplicar para todos que a clonam:768Duas coisas mantêm uma chave em `.claude/settings.json` de se aplicar para todos que a clonam:

767 769 

768* **O Claude Code ignora a chave em um arquivo de repositório.** Procure por `User, local, or managed`, `User or managed`, `Managed` ou `Global config` na coluna Scope do [índice de configurações](/docs/pt/settings-reference#settings-index). Essas chaves nunca se aplicam do arquivo compartilhado, exceto por algumas que um arquivo de repositório ainda pode desligar. Cada uma dessas entradas diz assim em sua linha de Scope. As chaves `Global config` se aplicam apenas de `~/.claude.json`.770* **O Claude Code ignora a chave em um arquivo de repositório.** Procure por `User, local, or managed`, `User or managed`, `Managed` ou `Global config` na coluna Scope do [índice de configurações](/docs/pt/settings-reference#settings-index). Essas chaves nunca se aplicam do arquivo compartilhado, exceto por algumas que um arquivo de repositório ainda pode desligar. Cada uma dessas entradas diz assim em sua linha de Scope. As chaves `Global config` se aplicam apenas de `~/.claude.json`.

771 

772 Dentro da chave `env`, as variáveis de exportação de telemetria nunca se aplicam do arquivo compartilhado também, exceto por alguns valores desligados; veja [Variáveis que o Claude Code ignora em `env`](/docs/pt/settings-reference#variables-claude-code-ignores-in-env).

769* **A chave espera por confiança.** As regras `permissions.allow`, `permissions.additionalDirectories`, `extraKnownMarketplaces` e a maioria dos valores [`env`](/docs/pt/settings-reference#env) se aplicam apenas depois que cada colega de equipe [confia na pasta](/docs/pt/permissions#project-allow-rules-and-workspace-trust). Até então eles ainda veem prompts e não obtêm plugins de um marketplace que o arquivo declara. As regras `deny` e `ask` se aplicam imediatamente.773* **A chave espera por confiança.** As regras `permissions.allow`, `permissions.additionalDirectories`, `extraKnownMarketplaces` e a maioria dos valores [`env`](/docs/pt/settings-reference#env) se aplicam apenas depois que cada colega de equipe [confia na pasta](/docs/pt/permissions#project-allow-rules-and-workspace-trust). Até então eles ainda veem prompts e não obtêm plugins de um marketplace que o arquivo declara. As regras `deny` e `ask` se aplicam imediatamente.

770 774 

771<h4 id="permission-rules-combine-differently-than-you-expected">775<h4 id="permission-rules-combine-differently-than-you-expected">

Details

98 Configurações compartilhadas de uma equipe98 Configurações compartilhadas de uma equipe

99</h2>99</h2>

100 100 

101As configurações compartilhadas de uma equipe, confirmadas no repositório para que todos que o clonem obtenham as mesmas permissões, hooks, telemetria e marketplace de plugins. Salve um arquivo como este em `.claude/settings.json` no topo do repositório. O que você precisa saber antes de confirmar um:101As configurações compartilhadas de uma equipe, confirmadas no repositório para que todos que o clonem obtenham as mesmas permissões, hooks e marketplace de plugins. Salve um arquivo como este em `.claude/settings.json` no topo do repositório. O que você precisa saber antes de confirmar um:

102 102 

103* **Sessões em nuvem também o leem.** Uma [sessão em nuvem](/docs/pt/settings#settings-in-cloud-sessions) começa a partir de um clone do repositório, então o arquivo confirmado se aplica lá também.103* **Sessões em nuvem também o leem.** Uma [sessão em nuvem](/docs/pt/settings#settings-in-cloud-sessions) começa a partir de um clone do repositório, então o arquivo confirmado se aplica lá também.

104* **Telemetria vai em configurações gerenciadas ou pessoais.** Claude Code ignora as [variáveis do exportador OpenTelemetry](/docs/pt/settings-reference#variables-claude-code-ignores-in-env) nos arquivos de configurações de um repositório, exceto alguns valores que desativam a telemetria. Defina-as em [configurações gerenciadas](/docs/pt/monitoring-usage#administrator-configuration) para sua organização, ou no `~/.claude/settings.json` de cada pessoa.

104* **Regras de permissão aguardam confiança.** Regras de permissão e entradas `extraKnownMarketplaces` entram em vigor depois que cada pessoa [confia nesta pasta em si](/docs/pt/permissions#project-allow-rules-and-workspace-trust), não apenas em uma pasta pai; regras de negação e pergunta se aplicam em cada sessão, confiável ou não.105* **Regras de permissão aguardam confiança.** Regras de permissão e entradas `extraKnownMarketplaces` entram em vigor depois que cada pessoa [confia nesta pasta em si](/docs/pt/permissions#project-allow-rules-and-workspace-trust), não apenas em uma pasta pai; regras de negação e pergunta se aplicam em cada sessão, confiável ou não.

105* **O hook é um script no repositório.** O hook deste arquivo executa `.claude/hooks/block-rm.sh`; [How a hook resolves](/docs/pt/hooks#how-a-hook-resolves) percorre como escrevê-lo.106* **O hook é um script no repositório.** O hook deste arquivo executa `.claude/hooks/block-rm.sh`; [How a hook resolves](/docs/pt/hooks#how-a-hook-resolves) percorre como escrevê-lo.

106* **Regras correspondem ao comando e caminho conforme escrito.** `Bash(git push *)` não corresponde a [`git -C . push`](/docs/pt/permissions#bash-rule-limits). `Read(./.env)` por si só impede as ferramentas de arquivo e comandos que nomeiam o arquivo, como `cat .env`, mas não [`grep -r` executado sobre o diretório](/docs/pt/permissions#read-and-edit); o bloco `sandbox` neste arquivo fecha essa lacuna, porque o sandbox [adiciona seus caminhos de negação `Read`](/docs/pt/settings-reference#sandbox-filesystem-denyread) ao que todo comando em sandbox não pode ler.107* **Regras correspondem ao comando e caminho conforme escrito.** `Bash(git push *)` não corresponde a [`git -C . push`](/docs/pt/permissions#bash-rule-limits). `Read(./.env)` por si só impede as ferramentas de arquivo e comandos que nomeiam o arquivo, como `cat .env`, mas não [`grep -r` executado sobre o diretório](/docs/pt/permissions#read-and-edit); o bloco `sandbox` neste arquivo fecha essa lacuna, porque o sandbox [adiciona seus caminhos de negação `Read`](/docs/pt/settings-reference#sandbox-filesystem-denyread) ao que todo comando em sandbox não pode ler.


124 "Read(./secrets/**)"125 "Read(./secrets/**)"

125 ]126 ]

126 },127 },

127 "env": {

128 "CLAUDE_CODE_ENABLE_TELEMETRY": "1",

129 "OTEL_METRICS_EXPORTER": "otlp",

130 "OTEL_EXPORTER_OTLP_PROTOCOL": "grpc",

131 "OTEL_EXPORTER_OTLP_ENDPOINT": "http://collector.example.com:4317"

132 },

133 "hooks": {128 "hooks": {

134 "PreToolUse": [129 "PreToolUse": [

135 {130 {


194 "Read(./secrets/**)"189 "Read(./secrets/**)"

195 ]190 ]

196 },191 },

197 // Envie métricas OpenTelemetry para o coletor da equipe sobre gRPC; substitua o endpoint pela URL do seu coletor

198 "env": {

199 "CLAUDE_CODE_ENABLE_TELEMETRY": "1",

200 "OTEL_METRICS_EXPORTER": "otlp",

201 "OTEL_EXPORTER_OTLP_PROTOCOL": "grpc",

202 "OTEL_EXPORTER_OTLP_ENDPOINT": "http://collector.example.com:4317"

203 },

204 // Antes de cada comando Bash, execute um script no repositório que pode bloqueá-lo192 // Antes de cada comando Bash, execute um script no repositório que pode bloqueá-lo

205 "hooks": {193 "hooks": {

206 "PreToolUse": [194 "PreToolUse": [

Details

626| [`axScreenReader`](#axscreenreader) | Renderize a [saída amigável ao leitor de tela](/docs/pt/accessibility) | Interface e terminal | Any file |626| [`axScreenReader`](#axscreenreader) | Renderize a [saída amigável ao leitor de tela](/docs/pt/accessibility) | Interface e terminal | Any file |

627| [`bashEditDiffEnabled`](#basheditdiffenabled) | Registre os [arquivos que um comando Bash alterou](/docs/pt/hooks#bash) em cada modo de permissão | Interface e terminal | User or managed |627| [`bashEditDiffEnabled`](#basheditdiffenabled) | Registre os [arquivos que um comando Bash alterou](/docs/pt/hooks#bash) em cada modo de permissão | Interface e terminal | User or managed |

628| [`bashOutputMaxChars`](#bashoutputmaxchars) | Defina quanto da [saída](/docs/pt/tools-reference#output-limits) de um comando bem-sucedido Claude recebe inline | Memória e contexto | Any file |628| [`bashOutputMaxChars`](#bashoutputmaxchars) | Defina quanto da [saída](/docs/pt/tools-reference#output-limits) de um comando bem-sucedido Claude recebe inline | Memória e contexto | Any file |

629| [`blockedMarketplaces`](#blockedmarketplaces) | Bloqueie as fontes do [marketplace de plugins](/docs/pt/plugin-marketplaces) para sua organização | Plugins e skills | Managed |629| [`blockedMarketplaces`](#blockedmarketplaces) | Bloqueie as fontes do [marketplace de plugins](/docs/pt/plugins/overview) para sua organização | Plugins e skills | Managed |

630| [`browserExternalPageTools`](#browserexternalpagetools) | Mantenha as ferramentas de Claude desativadas em páginas externas no painel [desktop](/docs/pt/desktop) Browser | Ferramentas | Managed |630| [`browserExternalPageTools`](#browserexternalpagetools) | Mantenha as ferramentas de Claude desativadas em páginas externas no painel [desktop](/docs/pt/desktop) Browser | Ferramentas | Managed |

631| [`channelsEnabled`](#channelsenabled) | Permita [canais](/docs/pt/channels#enable-channels-for-your-organization) para sua organização | Plugins e skills | Managed |631| [`channelsEnabled`](#channelsenabled) | Permita [canais](/docs/pt/channels#enable-channels-for-your-organization) para sua organização | Plugins e skills | Managed |

632| [`claudeMd`](#claudemd) | Injete instruções [CLAUDE.md](/docs/pt/memory#deploy-organization-wide-claude-md) em toda a organização a partir de configurações gerenciadas | Memória e contexto | Managed |632| [`claudeMd`](#claudemd) | Injete instruções [CLAUDE.md](/docs/pt/memory#deploy-organization-wide-claude-md) em toda a organização a partir de configurações gerenciadas | Memória e contexto | Managed |


647| [`disableBrowserExternalNavigation`](#disablebrowserexternalnavigation) | Limite o painel [desktop](/docs/pt/desktop) Browser para localhost para pessoas e Claude | Ferramentas | Managed |647| [`disableBrowserExternalNavigation`](#disablebrowserexternalnavigation) | Limite o painel [desktop](/docs/pt/desktop) Browser para localhost para pessoas e Claude | Ferramentas | Managed |

648| [`disableBundledSkills`](#disablebundledskills) | Desative as [skills](/docs/pt/skills#bundled-skills) e [workflows](/docs/pt/workflows) inclusos com Claude Code | Plugins e skills | Any file |648| [`disableBundledSkills`](#disablebundledskills) | Desative as [skills](/docs/pt/skills#bundled-skills) e [workflows](/docs/pt/workflows) inclusos com Claude Code | Plugins e skills | Any file |

649| [`disableClaudeAiConnectors`](#disableclaudeaiconnectors) | Desative os [conectores claude.ai](/docs/pt/mcp#disable-claude-ai-connectors) para que Claude Code não os busque | MCP | Any file |649| [`disableClaudeAiConnectors`](#disableclaudeaiconnectors) | Desative os [conectores claude.ai](/docs/pt/mcp#disable-claude-ai-connectors) para que Claude Code não os busque | MCP | Any file |

650| [`disableCommandPluginSources`](#disablecommandpluginsources) | Bloqueie [plugins](/docs/pt/plugins) que instalam executando um comando declarado pelo marketplace | Plugins e skills | Managed |650| [`disableCommandPluginSources`](#disablecommandpluginsources) | Bloqueie [plugins](/docs/pt/plugins/overview) que instalam executando um comando declarado pelo marketplace | Plugins e skills | Managed |

651| [`disableDeepLinkRegistration`](#disabledeeplinkregistration) | Impeça Claude Code de registrar o manipulador [`claude-cli://`](/docs/pt/deep-links) | Remoto, desktop e notificações | Any file |651| [`disableDeepLinkRegistration`](#disabledeeplinkregistration) | Impeça Claude Code de registrar o manipulador [`claude-cli://`](/docs/pt/deep-links) | Remoto, desktop e notificações | Any file |

652| [`disableDesktopLocalSessions`](#disabledesktoplocalsessions) | Desative as [sessões Desktop Code](/docs/pt/desktop#local-sessions-on-managed-devices) que executam no dispositivo, deixando SSH para outros hosts e nuvem | Remoto, desktop e notificações | Managed |652| [`disableDesktopLocalSessions`](#disabledesktoplocalsessions) | Desative as [sessões Desktop Code](/docs/pt/desktop#local-sessions-on-managed-devices) que executam no dispositivo, deixando SSH para outros hosts e nuvem | Remoto, desktop e notificações | Managed |

653| [`disabledMcpjsonServers`](#disabledmcpjsonservers) | Rejeite servidores específicos do [`.mcp.json`](/docs/pt/mcp#project-scope) de um projeto | MCP | Any file |653| [`disabledMcpjsonServers`](#disabledmcpjsonservers) | Rejeite servidores específicos do [`.mcp.json`](/docs/pt/mcp#project-scope) de um projeto | MCP | Any file |

654| [`disableMobileSimulatorTools`](#disablemobilesimulatortools) | Bloqueie as ferramentas de Claude no painel [desktop](/docs/pt/desktop) iOS Simulator | Ferramentas | Managed |654| [`disableMobileSimulatorTools`](#disablemobilesimulatortools) | Bloqueie as ferramentas de Claude no painel [desktop](/docs/pt/desktop) iOS Simulator | Ferramentas | Managed |

655| [`disableRemoteControl`](#disableremotecontrol) | Desative o [Remote Control](/docs/pt/remote-control) em todos os lugares onde pode começar | Remoto, desktop e notificações | Any file |655| [`disableRemoteControl`](#disableremotecontrol) | Desative o [Remote Control](/docs/pt/remote-control) em todos os lugares onde pode começar | Remoto, desktop e notificações | Any file |

656| [`disableSideloadFlags`](#disablesideloadflags) | Rejeite os sinalizadores CLI que carregam [plugins](/docs/pt/plugins), [subagentes](/docs/pt/sub-agents) e [servidores MCP](/docs/pt/mcp) | Configurações empresariais e gerenciadas | Managed |656| [`disableSideloadFlags`](#disablesideloadflags) | Rejeite os sinalizadores CLI que carregam [plugins](/docs/pt/plugins/overview), [subagentes](/docs/pt/sub-agents) e [servidores MCP](/docs/pt/mcp) | Configurações empresariais e gerenciadas | Managed |

657| [`disableSkillShellExecution`](#disableskillshellexecution) | Impeça [skills](/docs/pt/skills) e comandos personalizados de executar shell inline | Plugins e skills | Any file |657| [`disableSkillShellExecution`](#disableskillshellexecution) | Impeça [skills](/docs/pt/skills) e comandos personalizados de executar shell inline | Plugins e skills | Any file |

658| [`disableWorkflows`](#disableworkflows) | Desative [workflows dinâmicos](/docs/pt/workflows) para todos; use `enableWorkflows` para você mesmo | Hooks e automação | Any file |658| [`disableWorkflows`](#disableworkflows) | Desative [workflows dinâmicos](/docs/pt/workflows) para todos; use `enableWorkflows` para você mesmo | Hooks e automação | Any file |

659| [`editorMode`](#editormode) | Use [atalhos de teclado vim](/docs/pt/interactive-mode#vim-editor-mode) no prompt de entrada | Interface e terminal | Any file |659| [`editorMode`](#editormode) | Use [atalhos de teclado vim](/docs/pt/interactive-mode#vim-editor-mode) no prompt de entrada | Interface e terminal | Any file |


662| [`enableAllProjectMcpServers`](#enableallprojectmcpservers) | Aprove cada servidor no arquivo [`.mcp.json`](/docs/pt/mcp#project-server-approvals-and-workspace-trust) do projeto sem um prompt | MCP | Any file |662| [`enableAllProjectMcpServers`](#enableallprojectmcpservers) | Aprove cada servidor no arquivo [`.mcp.json`](/docs/pt/mcp#project-server-approvals-and-workspace-trust) do projeto sem um prompt | MCP | Any file |

663| [`enableArtifact`](#enableartifact) | Desative a [ferramenta Artifact](/docs/pt/artifacts) com um `false` em qualquer arquivo; nenhum arquivo pode ativá-la novamente | Remoto, desktop e notificações | Any file |663| [`enableArtifact`](#enableartifact) | Desative a [ferramenta Artifact](/docs/pt/artifacts) com um `false` em qualquer arquivo; nenhum arquivo pode ativá-la novamente | Remoto, desktop e notificações | Any file |

664| [`enabledMcpjsonServers`](#enabledmcpjsonservers) | Aprove servidores específicos do [`.mcp.json`](/docs/pt/mcp#project-server-approvals-and-workspace-trust) de um projeto | MCP | Any file |664| [`enabledMcpjsonServers`](#enabledmcpjsonservers) | Aprove servidores específicos do [`.mcp.json`](/docs/pt/mcp#project-server-approvals-and-workspace-trust) de um projeto | MCP | Any file |

665| [`enabledPlugins`](#enabledplugins) | Ative ou desative [plugins](/docs/pt/plugins) individuais por escopo | Plugins e skills | Any file |665| [`enabledPlugins`](#enabledplugins) | Ative ou desative [plugins](/docs/pt/plugins/overview) individuais por escopo | Plugins e skills | Any file |

666| [`enableWorkflows`](#enableworkflows) | Ative ou desative [workflows dinâmicos](/docs/pt/workflows) contra o padrão de seu plano | Hooks e automação | Any file |666| [`enableWorkflows`](#enableworkflows) | Ative ou desative [workflows dinâmicos](/docs/pt/workflows) contra o padrão de seu plano | Hooks e automação | Any file |

667| [`enforceAvailableModels`](#enforceavailablemodels) | Mantenha a [escolha Padrão de `/model`](/docs/pt/model-config#enforce-the-allowlist-for-the-default-model) dentro de sua lista de permissões `availableModels` | Modelo e respostas | Any file |667| [`enforceAvailableModels`](#enforceavailablemodels) | Mantenha a [escolha Padrão de `/model`](/docs/pt/model-config#enforce-the-allowlist-for-the-default-model) dentro de sua lista de permissões `availableModels` | Modelo e respostas | Any file |

668| [`env`](#env) | Defina [variáveis de ambiente](/docs/pt/env-vars#in-settings-files) para cada sessão e seus subprocessos | Memória e contexto | Any file |668| [`env`](#env) | Defina [variáveis de ambiente](/docs/pt/env-vars#in-settings-files) para cada sessão e seus subprocessos | Memória e contexto | Any file |

669| [`externalEditorContext`](#externaleditorcontext) | Mostre a última resposta de Claude como comentários quando você pressiona [Ctrl+G](/docs/pt/interactive-mode#general-controls) para editar | Configurações de config global | Global config |669| [`externalEditorContext`](#externaleditorcontext) | Mostre a última resposta de Claude como comentários quando você pressiona [Ctrl+G](/docs/pt/interactive-mode#general-controls) para editar | Configurações de config global | Global config |

670| [`extraKnownMarketplaces`](#extraknownmarketplaces) | Registre [marketplaces](/docs/pt/plugin-marketplaces) para um repositório ou uma organização | Plugins e skills | Any file |670| [`extraKnownMarketplaces`](#extraknownmarketplaces) | Registre [marketplaces](/docs/pt/plugins/overview) para um repositório ou uma organização | Plugins e skills | Any file |

671| [`fallbackModel`](#fallbackmodel) | Nomeie [modelos de backup](/docs/pt/model-config#fallback-model-chains) para quando o primário estiver sobrecarregado | Modelo e respostas | Any file |671| [`fallbackModel`](#fallbackmodel) | Nomeie [modelos de backup](/docs/pt/model-config#fallback-model-chains) para quando o primário estiver sobrecarregado | Modelo e respostas | Any file |

672| [`fastMode`](#fastmode) | Ative o [modo rápido](/docs/pt/fast-mode) para sessões onde está disponível | Modelo e respostas | Any file |672| [`fastMode`](#fastmode) | Ative o [modo rápido](/docs/pt/fast-mode) para sessões onde está disponível | Modelo e respostas | Any file |

673| [`fastModePerSessionOptIn`](#fastmodepersessionoptin) | Exija que as pessoas ativem o [modo rápido](/docs/pt/fast-mode) em cada sessão | Modelo e respostas | Any file |673| [`fastModePerSessionOptIn`](#fastmodepersessionoptin) | Exija que as pessoas ativem o [modo rápido](/docs/pt/fast-mode) em cada sessão | Modelo e respostas | Any file |


712| [`permissions.deny`](#permissions-deny) | Bloqueie [usos de ferramentas](/docs/pt/permissions#permission-rule-syntax) listados, incluindo leituras de arquivos que contêm segredos | Configurações de permissão | Any file |712| [`permissions.deny`](#permissions-deny) | Bloqueie [usos de ferramentas](/docs/pt/permissions#permission-rule-syntax) listados, incluindo leituras de arquivos que contêm segredos | Configurações de permissão | Any file |

713| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | Impeça qualquer pessoa de entrar no [modo bypassPermissions](/docs/pt/permission-modes#skip-all-checks-with-bypasspermissions-mode) | Configurações de permissão | Any file |713| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | Impeça qualquer pessoa de entrar no [modo bypassPermissions](/docs/pt/permission-modes#skip-all-checks-with-bypasspermissions-mode) | Configurações de permissão | Any file |

714| [`plansDirectory`](#plansdirectory) | Escolha onde o [modo de plano](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode) escreve arquivos de plano | Memória e contexto | Any file |714| [`plansDirectory`](#plansdirectory) | Escolha onde o [modo de plano](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode) escreve arquivos de plano | Memória e contexto | Any file |

715| [`pluginConfigs`](#pluginconfigs) | Armazene as respostas que você deu ao diálogo de configuração de um [plugin](/docs/pt/plugins) | Plugins e skills | User or managed |715| [`pluginConfigs`](#pluginconfigs) | Armazene as respostas que você deu ao diálogo de configuração de um [plugin](/docs/pt/plugins/overview) | Plugins e skills | User or managed |

716| [`pluginSuggestionMarketplaces`](#pluginsuggestionmarketplaces) | Escolha quais [marketplaces](/docs/pt/plugin-marketplaces#managed-marketplace-restrictions) podem exibir sugestões de instalação de plugin em `/plugin` | Plugins e skills | Managed |716| [`pluginSuggestionMarketplaces`](#pluginsuggestionmarketplaces) | Escolha quais [marketplaces](/docs/pt/plugins/org#restrict-what-users-can-install) podem exibir sugestões de instalação de plugin em `/plugin` | Plugins e skills | Managed |

717| [`pluginTrustMessage`](#plugintrustmessage) | Adicione seu próprio texto ao aviso de confiança de [plugin](/docs/pt/plugins) | Plugins e skills | Managed |717| [`pluginTrustMessage`](#plugintrustmessage) | Adicione seu próprio texto ao aviso de confiança de [plugin](/docs/pt/plugins/overview) | Plugins e skills | Managed |

718| [`policyHelper`](#policyhelper) | Execute um executável que calcula [configurações gerenciadas](/docs/pt/managed-settings#compute-the-policy-with-a-helper-program) na inicialização | Configurações empresariais e gerenciadas | Managed |718| [`policyHelper`](#policyhelper) | Execute um executável que calcula [configurações gerenciadas](/docs/pt/managed-settings#compute-the-policy-with-a-helper-program) na inicialização | Configurações empresariais e gerenciadas | Managed |

719| [`policyHelper.path`](#policyhelper-path) | Nomeie o [executável auxiliar](/docs/pt/managed-settings#compute-the-policy-with-a-helper-program) que Claude Code executa | Configurações empresariais e gerenciadas | Managed |719| [`policyHelper.path`](#policyhelper-path) | Nomeie o [executável auxiliar](/docs/pt/managed-settings#compute-the-policy-with-a-helper-program) que Claude Code executa | Configurações empresariais e gerenciadas | Managed |

720| [`policyHelper.refreshIntervalMs`](#policyhelper-refreshintervalms) | Execute novamente o [auxiliar](/docs/pt/managed-settings#compute-the-policy-with-a-helper-program) em segundo plano em um intervalo | Configurações empresariais e gerenciadas | Managed |720| [`policyHelper.refreshIntervalMs`](#policyhelper-refreshintervalms) | Execute novamente o [auxiliar](/docs/pt/managed-settings#compute-the-policy-with-a-helper-program) em segundo plano em um intervalo | Configurações empresariais e gerenciadas | Managed |


745| [`sandbox.enabled`](#sandbox-enabled) | Ative o [sandboxing de Bash](/docs/pt/sandboxing#get-started) no macOS, Linux e WSL2 | Configurações de sandbox | Any file |745| [`sandbox.enabled`](#sandbox-enabled) | Ative o [sandboxing de Bash](/docs/pt/sandboxing#get-started) no macOS, Linux e WSL2 | Configurações de sandbox | Any file |

746| [`sandbox.enableWeakerNestedSandbox`](#sandbox-enableweakernestedsandbox) | Execute o [sandbox](/docs/pt/sandboxing) do Linux dentro de um contêiner sem privilégios | Configurações de sandbox | Any file |746| [`sandbox.enableWeakerNestedSandbox`](#sandbox-enableweakernestedsandbox) | Execute o [sandbox](/docs/pt/sandboxing) do Linux dentro de um contêiner sem privilégios | Configurações de sandbox | Any file |

747| [`sandbox.enableWeakerNetworkIsolation`](#sandbox-enableweakernetworkisolation) | Permita que `gh`, `gcloud` e `terraform` verifiquem TLS atrás de um proxy MITM dentro do [sandbox](/docs/pt/sandboxing#troubleshooting) no macOS | Configurações de sandbox | Any file |747| [`sandbox.enableWeakerNetworkIsolation`](#sandbox-enableweakernetworkisolation) | Permita que `gh`, `gcloud` e `terraform` verifiquem TLS atrás de um proxy MITM dentro do [sandbox](/docs/pt/sandboxing#troubleshooting) no macOS | Configurações de sandbox | Any file |

748| [`sandbox.excludedCommands`](#sandbox-excludedcommands) | Nomeie comandos que sempre executam fora do [sandbox](/docs/pt/sandboxing) | Configurações de sandbox | Any file |748| [`sandbox.excludedCommands`](#sandbox-excludedcommands) | Nomeie comandos que Claude Code pode executar fora do [sandbox](/docs/pt/sandboxing) | Configurações de sandbox | Any file |

749| [`sandbox.failIfUnavailable`](#sandbox-failifunavailable) | Recuse-se a iniciar quando o [sandbox](/docs/pt/sandboxing) não puder, em vez de executar sem sandbox | Configurações de sandbox | Any file |749| [`sandbox.failIfUnavailable`](#sandbox-failifunavailable) | Recuse-se a iniciar quando o [sandbox](/docs/pt/sandboxing) não puder, em vez de executar sem sandbox | Configurações de sandbox | Any file |

750| [`sandbox.filesystem`](#sandbox-filesystem) | Controle quais caminhos [comandos em sandbox](/docs/pt/sandboxing#filesystem-isolation) podem ler e escrever | Configurações de sandbox | Any file |750| [`sandbox.filesystem`](#sandbox-filesystem) | Controle quais caminhos [comandos em sandbox](/docs/pt/sandboxing#filesystem-isolation) podem ler e escrever | Configurações de sandbox | Any file |

751| [`sandbox.filesystem.allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) | Impeça desenvolvedores de reabrir [caminhos de leitura que sua organização bloqueou](/docs/pt/sandboxing#keep-developers-from-widening-the-policy) | Configurações de sandbox | Managed |751| [`sandbox.filesystem.allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) | Impeça desenvolvedores de reabrir [caminhos de leitura que sua organização bloqueou](/docs/pt/sandboxing#keep-developers-from-widening-the-policy) | Configurações de sandbox | Managed |


785| [`sshConfigs`](#sshconfigs) | Adicione [conexões SSH](/docs/pt/desktop#pre-configure-ssh-connections-for-your-team) ao dropdown de ambiente Desktop | Remoto, desktop e notificações | User or managed |785| [`sshConfigs`](#sshconfigs) | Adicione [conexões SSH](/docs/pt/desktop#pre-configure-ssh-connections-for-your-team) ao dropdown de ambiente Desktop | Remoto, desktop e notificações | User or managed |

786| [`sshHostAllowlist`](#sshhostallowlist) | Limite quais hosts as [sessões SSH do Desktop](/docs/pt/desktop#restrict-which-ssh-hosts-users-can-connect-to) podem alcançar | Remoto, desktop e notificações | Managed |786| [`sshHostAllowlist`](#sshhostallowlist) | Limite quais hosts as [sessões SSH do Desktop](/docs/pt/desktop#restrict-which-ssh-hosts-users-can-connect-to) podem alcançar | Remoto, desktop e notificações | Managed |

787| [`statusLine`](#statusline) | Execute seu próprio comando para renderizar uma [linha de status](/docs/pt/statusline) abaixo do prompt | Interface e terminal | Any file |787| [`statusLine`](#statusline) | Execute seu próprio comando para renderizar uma [linha de status](/docs/pt/statusline) abaixo do prompt | Interface e terminal | Any file |

788| [`strictKnownMarketplaces`](#strictknownmarketplaces) | Lista de permissões das fontes de [marketplace](/docs/pt/plugin-marketplaces) que os usuários podem adicionar e instalar | Plugins e skills | Managed |788| [`strictKnownMarketplaces`](#strictknownmarketplaces) | Lista de permissões das fontes de [marketplace](/docs/pt/plugins/overview) que os usuários podem adicionar e instalar | Plugins e skills | Managed |

789| [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | Bloqueie [skills](/docs/pt/skills), [agentes](/docs/pt/sub-agents), [hooks](/docs/pt/hooks) e [servidores MCP](/docs/pt/mcp) de fontes de usuário e projeto | Plugins e skills | Managed |789| [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | Bloqueie [skills](/docs/pt/skills), [agentes](/docs/pt/sub-agents), [hooks](/docs/pt/hooks) e [servidores MCP](/docs/pt/mcp) de fontes de usuário e projeto | Plugins e skills | Managed |

790| [`strictPluginOnlyCustomization.agents`](#strictpluginonlycustomization-agents) | Restrinja [agentes](/docs/pt/sub-agents) a fontes de plugin e gerenciadas | Plugins e skills | Managed |790| [`strictPluginOnlyCustomization.agents`](#strictpluginonlycustomization-agents) | Restrinja [agentes](/docs/pt/sub-agents) a fontes de plugin e gerenciadas | Plugins e skills | Managed |

791| [`strictPluginOnlyCustomization.hooks`](#strictpluginonlycustomization-hooks) | Restrinja [hooks](/docs/pt/hooks) a fontes de plugin e gerenciadas | Plugins e skills | Managed |791| [`strictPluginOnlyCustomization.hooks`](#strictpluginonlycustomization-hooks) | Restrinja [hooks](/docs/pt/hooks) a fontes de plugin e gerenciadas | Plugins e skills | Managed |


794| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | Escolha o [tempo de vida do cache de prompt](/docs/pt/prompt-caching#cache-lifetime) para subagentes e outras solicitações fora da conversa principal | Modelo e respostas | Any file |794| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | Escolha o [tempo de vida do cache de prompt](/docs/pt/prompt-caching#cache-lifetime) para subagentes e outras solicitações fora da conversa principal | Modelo e respostas | Any file |

795| [`subagentStatusLine`](#subagentstatusline) | Reescreva linhas na [exibição de tarefa do subagente](/docs/pt/sub-agents) com seu próprio comando | Interface e terminal | Any file |795| [`subagentStatusLine`](#subagentstatusline) | Reescreva linhas na [exibição de tarefa do subagente](/docs/pt/sub-agents) com seu próprio comando | Interface e terminal | Any file |

796| [`switchModelsOnFlag`](#switchmodelsonflag) | Alterne modelos automaticamente ou pause quando um [classificador de segurança](/docs/pt/model-config#ask-before-switching) sinalizar uma solicitação | Modelo e respostas | Any file |796| [`switchModelsOnFlag`](#switchmodelsonflag) | Alterne modelos automaticamente ou pause quando um [classificador de segurança](/docs/pt/model-config#ask-before-switching) sinalizar uma solicitação | Modelo e respostas | Any file |

797| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | Pare de carregar os [plugins ativados em sua conta claude.ai](/docs/pt/plugins-reference#synced-plugins) e pare de baixar novos | Plugins e skills | User, local, or managed |797| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | Pare de carregar os [plugins ativados em sua conta claude.ai](/docs/pt/plugins/loading#synced-plugins) e pare de baixar novos | Plugins e skills | User, local, or managed |

798| [`syncClaudeAiSkills`](#syncclaudeaiskills) | Pare de carregar as [skills ativadas em sua conta claude.ai](/docs/pt/skills#how-synced-skills-behave) e pare de baixar novas | Plugins e skills | User, local, or managed |798| [`syncClaudeAiSkills`](#syncclaudeaiskills) | Pare de carregar as [skills ativadas em sua conta claude.ai](/docs/pt/skills#how-synced-skills-behave) e pare de baixar novas | Plugins e skills | User, local, or managed |

799| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | Desative o destaque de sintaxe em diffs e blocos de código | Interface e terminal | Any file |799| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | Desative o destaque de sintaxe em diffs e blocos de código | Interface e terminal | Any file |

800| [`taskOutputMaxChars`](#taskoutputmaxchars) | Removido na v2.1.277, junto com a ferramenta `TaskOutput` que dimensionava | Memória e contexto | Any file |800| [`taskOutputMaxChars`](#taskoutputmaxchars) | Removido na v2.1.277, junto com a ferramenta `TaskOutput` que dimensionava | Memória e contexto | Any file |


2256 `sandbox.credentials`2256 `sandbox.credentials`

2257</h3>2257</h3>

2258 2258 

2259Declare os arquivos de credenciais e variáveis de ambiente para [proteger de comandos em sandbox](/docs/pt/sandboxing#protect-credentials). Cada entrada nomeia um arquivo `path` ou uma variável `name` e um `mode`: `deny` oculta a credencial dentro do sandbox, e `mask` mostra comandos em sandbox um espaço reservado enquanto o [proxy do sandbox](/docs/pt/sandboxing#mask-credentials) substitui o valor real em solicitações de saída. Claude Code protege apenas as entradas que você lista; não há lista de negação de credenciais integrada. Requer Claude Code v2.1.187 ou posterior.2259Declare os arquivos de credenciais e variáveis de ambiente para [proteger de comandos em sandbox](/docs/pt/sandboxing#protect-credentials). Cada entrada nomeia um arquivo `path` ou uma variável `name` e um `mode`: `deny` oculta a credencial dentro do sandbox, e `mask` mostra comandos em sandbox um espaço reservado enquanto o [proxy do sandbox](/docs/pt/sandboxing#mask-credentials) substitui o valor real em solicitações de saída. Claude Code protege apenas as entradas que você lista; não há lista de negação de credenciais integrada.

2260 2260 

2261* **Scope**: [`Any file`](#scopes). Claude Code honra entradas `mask`, `allowPlaintextInject`, `awsPairs` e `sigv4` apenas de configurações de usuário, configurações gerenciadas e a flag `--settings`.2261* **Scope**: [`Any file`](#scopes). Claude Code honra entradas `mask`, `allowPlaintextInject`, `awsPairs` e `sigv4` apenas de configurações de usuário, configurações gerenciadas e a flag `--settings`.

2262* **Type**: object com `files`, `envVars`, `allowPlaintextInject`, `awsPairs` e `sigv4`2262* **Type**: object com `files`, `envVars`, `allowPlaintextInject`, `awsPairs` e `sigv4`


2275}2275}

2276```2276```

2277 2277 

2278A proteção de arquivo `deny` faz parte da camada do sistema de arquivos, então não se aplica quando você [desativa isolamento do sistema de arquivos](/docs/pt/sandboxing#disable-filesystem-isolation); a proteção de variável de ambiente ainda se aplica. Requer Claude Code v2.1.187 ou posterior.2278A proteção de arquivo `deny` faz parte da camada do sistema de arquivos, então não se aplica quando você [desativa isolamento do sistema de arquivos](/docs/pt/sandboxing#disable-filesystem-isolation); a proteção de variável de ambiente ainda se aplica.

2279 2279 

2280<h4 id="invalid-credential-entries-in-managed-settings">2280<h4 id="invalid-credential-entries-in-managed-settings">

2281 Entradas de credenciais inválidas em configurações gerenciadas2281 Entradas de credenciais inválidas em configurações gerenciadas


2283 2283 

2284Quando uma entrada `sandbox.credentials` gerenciada falha na validação, Claude Code continua protegendo a credencial onde pode:2284Quando uma entrada `sandbox.credentials` gerenciada falha na validação, Claude Code continua protegendo a credencial onde pode:

2285 2285 

2286* Uma entrada em `files` ou `envVars` que ainda tem um `path` ou `name` válido e um `mode` de `mask` ou `deny`, como uma cujo padrão `extract` não tem grupo de captura, é degradada para `mode: "deny"` com um aviso, então a credencial permanece bloqueada, não mascarada, até você corrigir a entrada. Uma entrada `files` degradada fixa [`filesystem.disabled`](/docs/pt/sandboxing#disable-filesystem-isolation) como uma entrada `deny` explícita, e o aviso observa que seu bloqueio de leitura não é imposto se configurações gerenciadas desativarem isolamento do sistema de arquivos.2286* Uma entrada em `files` ou `envVars` que ainda tem um `path` ou `name` válido e um `mode` de `mask` ou `deny`, como uma cujo padrão `extract` não tem grupo de captura, é degradada para `mode: "deny"` com um aviso, então a credencial permanece bloqueada, não mascarada, até você corrigir a entrada. Uma entrada `files` degradada fixa [`filesystem.disabled`](#sandbox-filesystem-disabled) como uma entrada `deny` explícita, e o aviso observa que seu bloqueio de leitura não é imposto se configurações gerenciadas desativarem isolamento do sistema de arquivos.

2287* Uma entrada com um `mode` desconhecido ou um `path` ou `name` inválido é removida.2287* Uma entrada com um `mode` desconhecido ou um `path` ou `name` inválido é removida.

2288* Cada caso avisa; se uma entrada é degradada ou removida, as entradas válidas restantes ainda são impostas, e um valor `credentials` totalmente inválido é descartado enquanto o resto de `sandbox` ainda se aplica.2288* Cada caso avisa; se uma entrada é degradada ou removida, as entradas válidas restantes ainda são impostas, e um valor `credentials` totalmente inválido é descartado enquanto o resto de `sandbox` ainda se aplica.

2289 2289 


2293 `sandbox.credentials.files`2293 `sandbox.credentials.files`

2294</h3>2294</h3>

2295 2295 

2296Proteja arquivos ou diretórios de credenciais de comandos em sandbox. Com `"mode": "deny"`, Claude Code bloqueia leituras do caminho dentro do sandbox, o mesmo bloqueio de leitura que [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread). Com `"mode": "mask"`, comandos em sandbox em Linux e WSL2 leem uma cópia sentinela do arquivo, e o proxy do sandbox substitui o valor real em solicitações de saída para `injectHosts` dessa entrada; em macOS o arquivo é ilegível dentro do sandbox em vez disso. Requer Claude Code v2.1.187 ou posterior, e `"mode": "mask"` requer v2.1.221 ou posterior.2296Proteja arquivos ou diretórios de credenciais de comandos em sandbox. Com `"mode": "deny"`, Claude Code bloqueia leituras do caminho dentro do sandbox, o mesmo bloqueio de leitura que [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread). Com `"mode": "mask"`, comandos em sandbox em Linux e WSL2 leem uma cópia sentinela do arquivo, e o proxy do sandbox substitui o valor real em solicitações de saída para `injectHosts` dessa entrada; em macOS o arquivo é ilegível dentro do sandbox em vez disso. `"mode": "mask"` requer Claude Code v2.1.221 ou posterior.

2297 2297 

2298* **Scope**: [`Any file`](#scopes). Claude Code descarta entradas `mask` de `.claude/settings.json` de projeto e `.claude/settings.local.json` local.2298* **Scope**: [`Any file`](#scopes). Claude Code descarta entradas `mask` de `.claude/settings.json` de projeto e `.claude/settings.local.json` local.

2299* **Type**: array de objetos, cada um com `path` e um `mode` de `"deny"` ou `"mask"`, mais os [campos mask opcionais para arquivos](#mask-fields-for-files)2299* **Type**: array de objetos, cada um com `path` e um `mode` de `"deny"` ou `"mask"`, mais os [campos mask opcionais para arquivos](#mask-fields-for-files)


2314}2314}

2315```2315```

2316 2316 

2317Caminhos usam os mesmos [prefixos](#sandbox-path-prefixes) que as configurações `sandbox.filesystem.*`, e Claude Code mescla os arrays de todos os escopos de configurações que a sessão carrega. [Protect credentials](/docs/pt/sandboxing#protect-credentials) cobre o que ainda se aplica de fontes que você exclui com `--setting-sources`. Requer Claude Code v2.1.187 ou posterior; entradas `mask` requerem v2.1.221 ou posterior.2317Caminhos usam os mesmos [prefixos](#sandbox-path-prefixes) que as configurações `sandbox.filesystem.*`, e Claude Code mescla os arrays de todos os escopos de configurações que a sessão carrega. [Protect credentials](/docs/pt/sandboxing#protect-credentials) cobre o que ainda se aplica de fontes que você exclui com `--setting-sources`. `mask` entradas requerem Claude Code v2.1.221 ou posterior.

2318 2318 

2319A substituição `mask` é executada apenas através do proxy do sandbox, então defina [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) ou [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) para redes de teste HTTP simples. `mask` se aplica a um único arquivo, então liste cada arquivo de credenciais individualmente. Claude Code aceita mas ignora os campos `mask` em uma entrada `deny`. [Mask credential files](/docs/pt/sandboxing#mask-credential-files) cobre quais fontes de configurações são honradas e quando uma entrada volta para `deny`.2319A substituição `mask` é executada apenas através do proxy do sandbox, então defina [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) ou [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) para redes de teste HTTP simples. `mask` se aplica a um único arquivo, então liste cada arquivo de credenciais individualmente. Claude Code aceita mas ignora os campos `mask` em uma entrada `deny`. [Mask credential files](/docs/pt/sandboxing#mask-credential-files) cobre quais fontes de configurações são honradas e quando uma entrada volta para `deny`.

2320 2320 


2370 `sandbox.credentials.envVars`2370 `sandbox.credentials.envVars`

2371</h3>2371</h3>

2372 2372 

2373Proteja variáveis de ambiente de comandos em sandbox. Com `"mode": "deny"`, Claude Code remove a variável do ambiente de comandos em sandbox. Com `"mode": "mask"`, comandos em sandbox veem um valor sentinela por sessão, e o proxy do sandbox substitui o valor real em solicitações de saída para `injectHosts` dessa entrada, então ferramentas como `gh` e `npm` continuam autenticando sem nunca manter a credencial real. Requer Claude Code v2.1.187 ou posterior, e `"mode": "mask"` requer v2.1.199 ou posterior.2373Proteja variáveis de ambiente de comandos em sandbox. Com `"mode": "deny"`, Claude Code remove a variável do ambiente de comandos em sandbox. Com `"mode": "mask"`, comandos em sandbox veem um valor sentinela por sessão, e o proxy do sandbox substitui o valor real em solicitações de saída para `injectHosts` dessa entrada, então ferramentas como `gh` e `npm` continuam autenticando sem nunca manter a credencial real. `"mode": "mask"` requer Claude Code v2.1.199 ou posterior.

2374 2374 

2375* **Scope**: [`Any file`](#scopes). Claude Code descarta entradas `mask` de `.claude/settings.json` de projeto e `.claude/settings.local.json` local.2375* **Scope**: [`Any file`](#scopes). Claude Code descarta entradas `mask` de `.claude/settings.json` de projeto e `.claude/settings.local.json` local.

2376* **Type**: array de objetos, cada um com `name` e um `mode` de `"deny"` ou `"mask"`, mais os [campos mask opcionais para variáveis de ambiente](#mask-fields-for-environment-variables)2376* **Type**: array de objetos, cada um com `name` e um `mode` de `"deny"` ou `"mask"`, mais os [campos mask opcionais para variáveis de ambiente](#mask-fields-for-environment-variables)


2391}2391}

2392```2392```

2393 2393 

2394O `name` deve começar com uma letra ou sublinhado e conter apenas letras, dígitos e sublinhados. Claude Code mescla os arrays de todos os escopos de configurações que a sessão carrega e aplica `deny` quando a mesma variável aparece com ambos os modos. [Protect credentials](/docs/pt/sandboxing#protect-credentials) cobre o que ainda se aplica de fontes que você exclui com `--setting-sources`. Requer Claude Code v2.1.187 ou posterior; entradas `mask` requerem v2.1.199 ou posterior.2394O `name` deve começar com uma letra ou sublinhado e conter apenas letras, dígitos e sublinhados. Claude Code mescla os arrays de todos os escopos de configurações que a sessão carrega e aplica `deny` quando a mesma variável aparece com ambos os modos. [Protect credentials](/docs/pt/sandboxing#protect-credentials) cobre o que ainda se aplica de fontes que você exclui com `--setting-sources`. `mask` entradas requerem Claude Code v2.1.199 ou posterior.

2395 2395 

2396A substituição `mask` é executada apenas através do proxy do sandbox, então defina [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) ou [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) para redes de teste HTTP simples; consulte [Mask environment variables](/docs/pt/sandboxing#mask-environment-variables). Claude Code aceita mas ignora os campos `mask` em uma entrada `deny`.2396A substituição `mask` é executada apenas através do proxy do sandbox, então defina [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) ou [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) para redes de teste HTTP simples; consulte [Mask environment variables](/docs/pt/sandboxing#mask-environment-variables). Claude Code aceita mas ignora os campos `mask` em uma entrada `deny`.

2397 2397 


2954 `env`2954 `env`

2955</h3>2955</h3>

2956 2956 

2957Defina variáveis de ambiente para cada sessão e para os subprocessos que Claude Code inicia a partir dela. Qualquer variável na [referência de variáveis de ambiente](/docs/pt/env-vars) pode ir aqui, que é como você aplica uma a cada sessão ou a implanta para seu time.2957Defina variáveis de ambiente para cada sessão e para os subprocessos que Claude Code inicia a partir dela. A maioria das variáveis na [referência de variáveis de ambiente](/docs/pt/env-vars) pode ir aqui, que é como você aplica uma a cada sessão ou a implanta para seu time. Configurações de projeto e local não podem definir [algumas delas](#variables-claude-code-ignores-in-env).

2958 2958 

2959* **Scope**: [`Any file`](#scopes)2959* **Scope**: [`Any file`](#scopes)

2960* **Type**: objeto mapeando nomes de variáveis para valores de string2960* **Type**: objeto mapeando nomes de variáveis para valores de string


2975 Como valores `env` interagem com seu shell2975 Como valores `env` interagem com seu shell

2976</h4>2976</h4>

2977 2977 

2978* Um valor aqui sobrescreve a mesma variável exportada em seu shell, e quando mais de um arquivo de configurações define uma variável, a [precedência mais alta](/docs/pt/settings#settings-precedence) se aplica.2978* Um valor aqui sobrescreve a mesma variável exportada em seu shell, e quando mais de um arquivo de configurações define uma variável, a [precedência mais alta](/docs/pt/settings#settings-precedence) se aplica. [Variáveis que Claude Code ignora em `env`](#variables-claude-code-ignores-in-env) lista as exceções para configurações de projeto e local.

2979* Para cancelar uma exportação de shell, defina a variável como `""`. Claude Code trata um valor vazio como não definido para seleção de provedor, e subprocessos herdam o valor vazio.2979* Para cancelar uma exportação de shell, defina a variável como `""`. Claude Code trata um valor vazio como não definido para seleção de provedor, e subprocessos herdam o valor vazio.

2980* `NO_COLOR` e `FORCE_COLOR` definidos aqui chegam apenas aos subprocessos. Para alterar as cores da própria interface de Claude Code, defina-as em seu shell antes de iniciar `claude`.2980* `NO_COLOR` e `FORCE_COLOR` definidos aqui chegam apenas aos subprocessos. Para alterar as cores da própria interface de Claude Code, defina-as em seu shell antes de iniciar `claude`.

2981* Valores aqui são texto simples no arquivo de configurações e chegam a cada subprocesso que Claude Code inicia. Para um token de portador OTLP que gira, use [`otelHeadersHelper`](#otelheadershelper); para credenciais de API, use [`apiKeyHelper`](#apikeyhelper).2981* Valores aqui são texto simples no arquivo de configurações e chegam a cada subprocesso que Claude Code inicia. Para um token de portador OTLP que gira, use [`otelHeadersHelper`](#otelheadershelper); para credenciais de API, use [`apiKeyHelper`](#apikeyhelper).


2986 2986 

2987* Das configurações de usuário, `--settings` e configurações gerenciadas: na inicialização, e novamente na sessão em execução quando uma alteração salva modifica o `env` mesclado.2987* Das configurações de usuário, `--settings` e configurações gerenciadas: na inicialização, e novamente na sessão em execução quando uma alteração salva modifica o `env` mesclado.

2988* Das configurações de projeto e local: depois que você confia no workspace, ou na inicialização no modo `-p`, que nunca mostra o diálogo de confiança, e novamente quando uma alteração salva modifica o `env` mesclado.2988* Das configurações de projeto e local: depois que você confia no workspace, ou na inicialização no modo `-p`, que nunca mostra o diálogo de confiança, e novamente quando uma alteração salva modifica o `env` mesclado.

2989* Variáveis que Claude Code classifica como seguras, como seleção de modelo, timeouts e limites, alternadores de recursos e configurações de telemetria: na inicialização de cada arquivo de configurações, além das [variáveis que configurações de projeto e local não podem definir](#variables-claude-code-ignores-in-env).2989* Variáveis que Claude Code classifica como seguras, como seleção de modelo, timeouts e limites, e alternadores de recursos: na inicialização de cada arquivo de configurações, além das [variáveis que configurações de projeto e local não podem definir](#variables-claude-code-ignores-in-env).

2990* Depois que você [move a sessão com `/cd`](/docs/pt/permissions#move-the-session-to-another-directory) em v2.1.246 ou posterior: os valores `env` do novo diretório de projeto e local, além dos do diretório anterior.2990* Depois que você [move a sessão com `/cd`](/docs/pt/permissions#move-the-session-to-another-directory) em v2.1.246 ou posterior: os valores `env` do novo diretório de projeto e local, além dos do diretório anterior.

2991 2991 

2992<h4 id="variables-claude-code-ignores-in-env">2992<h4 id="variables-claude-code-ignores-in-env">

2993 Variáveis que Claude Code ignora em `env`2993 Variáveis que Claude Code ignora em `env`

2994</h4>2994</h4>

2995 2995 

2996* Configurações de projeto e local não podem definir variáveis que um repositório verificado não deveria controlar; defina-as em seu shell, configurações de usuário ou configurações gerenciadas. Claude Code descarta cada uma e registra um aviso que você pode ver com `claude --debug`. Elas incluem:2996* Configurações de projeto e local não podem definir variáveis que um repositório verificado não deveria controlar; defina-as em seu shell, configurações de usuário ou configurações gerenciadas. Claude Code descarta cada uma, além de alguns valores que desativam telemetria, e registra um aviso que você pode ver com `claude --debug`. Elas incluem:

2997 2997 

2998 * Variáveis que escolhem onde Claude Code armazena ou escreve seus próprios arquivos: `CLAUDE_CONFIG_DIR`, `CLAUDE_CODE_TMPDIR` e as variáveis de diretório do sistema operacional como `HOME`, `TMPDIR`, `TMP`, `TEMP` e a família `XDG_*`.2998 * Variáveis que escolhem onde Claude Code armazena ou escreve seus próprios arquivos: `CLAUDE_CONFIG_DIR`, `CLAUDE_CODE_TMPDIR` e as variáveis de diretório do sistema operacional como `HOME`, `TMPDIR`, `TMP`, `TEMP` e a família `XDG_*`.

2999 * Variáveis que exportam conteúdo de sessão: [`OTEL_LOG_RAW_API_BODIES`](/docs/pt/env-vars#variables) e o par de rastreamento beta detalhado `ENABLE_BETA_TRACING_DETAILED` e `BETA_TRACING_ENDPOINT`.2999 * Variáveis que exportam conteúdo de sessão: [`OTEL_LOG_RAW_API_BODIES`](/docs/pt/env-vars#variables) e o par de rastreamento beta detalhado `ENABLE_BETA_TRACING_DETAILED` e `BETA_TRACING_ENDPOINT`.

3000 * As variáveis do [exportador OpenTelemetry](/docs/pt/monitoring-usage) que ativam telemetria, escolhem para onde ela vai ou escolhem qual conteúdo ela captura:

3001 

3002 * `CLAUDE_CODE_ENABLE_TELEMETRY`, mais o par de telemetria aprimorada beta `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA` e `ENABLE_ENHANCED_TELEMETRY_BETA`

3003 * Os seletores de exportador `OTEL_LOGS_EXPORTER`, `OTEL_METRICS_EXPORTER` e `OTEL_TRACES_EXPORTER`

3004 * As variáveis de conteúdo `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_ASSISTANT_RESPONSES`, `OTEL_LOG_TOOL_CONTENT` e `OTEL_LOG_TOOL_DETAILS`

3005 * Variáveis `OTEL_EXPORTER_OTLP_*` cujos nomes terminam em `_ENDPOINT`, `_HEADERS`, `_PROTOCOL`, `_CERTIFICATE`, `_CLIENT_KEY` ou `_INSECURE`, nas formas genérica e por sinal, como `OTEL_EXPORTER_OTLP_ENDPOINT` e `OTEL_EXPORTER_OTLP_METRICS_HEADERS`

3006 * `OTEL_EXPORTER_PROMETHEUS_HOST` e `OTEL_EXPORTER_PROMETHEUS_PORT`

3007 

3008 Apenas esses valores ainda se aplicam das configurações de projeto e local, porque desativam algo: `none` para os três seletores de exportador, e um valor desativado como `0` para `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_CONTENT` e `OTEL_LOG_TOOL_DETAILS`. Tal valor sobrescreve a mesma variável em suas configurações de usuário, mas não uma que o ambiente do qual você inicia Claude Code, um arquivo `--settings` ou configurações gerenciadas definem.

3009 

3010 Quando um arquivo de configurações de projeto ou local define uma variável neste grupo, uma sessão interativa local mostra um aviso na inicialização. Execute `/status` ou `claude doctor` para ver quais Claude Code ignorou e quais desativaram telemetria; ambos listam nomes, nunca valores. Uma execução não interativa com `-p` ou uma sessão do Agent SDK não mostra aviso, então verifique se seu coletor ainda recebe dados depois que você atualizar. Se não receber, defina as variáveis em suas configurações de usuário, configurações gerenciadas, o ambiente do trabalho ou um arquivo que você passa com `--settings`.

3011 

3012 Ignorar este grupo em configurações de projeto e local requer Claude Code v2.1.282 ou posterior.

3000 * Variáveis que alteram como Claude Code inicia ou sincroniza, como `CLAUDE_CODE_PROCESS_WRAPPER`, `CLAUDE_CODE_SYNC_SKILLS`, `CLAUDE_CODE_SYNC_PLUGINS`, `CLAUDE_CODE_PLUGIN_CACHE_DIR` e `CLAUDE_CODE_PLUGIN_SEED_DIR`.3013 * Variáveis que alteram como Claude Code inicia ou sincroniza, como `CLAUDE_CODE_PROCESS_WRAPPER`, `CLAUDE_CODE_SYNC_SKILLS`, `CLAUDE_CODE_SYNC_PLUGINS`, `CLAUDE_CODE_PLUGIN_CACHE_DIR` e `CLAUDE_CODE_PLUGIN_SEED_DIR`.

3001 3014 

3002 Antes de v2.1.251, configurações de projeto e local podiam definir cada variável que essa lista nomeia exceto `HOME`, `XDG_CONFIG_HOME` e as variáveis que alteram como Claude Code inicia ou sincroniza.3015 Antes de v2.1.251, configurações de projeto e local podiam definir as variáveis nesta lista que escolhem onde Claude Code escreve seus arquivos ou que exportam conteúdo de sessão, exceto `HOME` e `XDG_CONFIG_HOME`.

3003* Variáveis de identidade que os ambientes de hospedagem de Claude Code possuem, como `CLAUDE_CODE_REMOTE` e `CLAUDE_CODE_ACCOUNT_UUID`, são ignoradas de cada arquivo.3016* Variáveis de identidade que os ambientes de hospedagem de Claude Code possuem, como `CLAUDE_CODE_REMOTE` e `CLAUDE_CODE_ACCOUNT_UUID`, são ignoradas de cada arquivo.

3004* [`CLAUDE_CODE_MESSAGING_SOCKET` e `CLAUDE_CODE_MESSAGING_TOKEN`](/docs/pt/env-vars#variables), que Claude Code exporta a si mesmo, são ignoradas de cada arquivo. Ignorar a variável de socket requer Claude Code v2.1.224 ou posterior, e ignorar o token requer v2.1.228 ou posterior.3017* [`CLAUDE_CODE_MESSAGING_SOCKET` e `CLAUDE_CODE_MESSAGING_TOKEN`](/docs/pt/env-vars#variables), que Claude Code exporta a si mesmo, são ignoradas de cada arquivo. Ignorar a variável de socket requer Claude Code v2.1.224 ou posterior, e ignorar o token requer v2.1.228 ou posterior.

3005* [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/pt/sessions#name-the-project-directory-yourself), que Claude Code lê apenas do ambiente de inicialização, é ignorada de cada arquivo; requer v2.1.234 ou posterior.3018* [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/pt/sessions#name-the-project-directory-yourself), que Claude Code lê apenas do ambiente de inicialização, é ignorada de cada arquivo; requer v2.1.234 ou posterior.


3464 `respondToBashCommands`3477 `respondToBashCommands`

3465</h3>3478</h3>

3466 3479 

3467Escolha se Claude responde depois que você executa um comando shell com o prefixo [`!`](/docs/pt/interactive-mode#shell-mode-with-prefix) na caixa de entrada. Por padrão, Claude Code adiciona a saída do comando à conversa e Claude responde a ela. Defina esta chave como `false` para adicionar a saída ao contexto sem uma resposta, para que você possa executar vários comandos e perguntar sobre eles juntos. Requer Claude Code v2.1.186 ou posterior.3480Escolha se Claude responde depois que você executa um comando shell com o prefixo [`!`](/docs/pt/interactive-mode#shell-mode-with-prefix) na caixa de entrada. Por padrão, Claude Code adiciona a saída do comando à conversa e Claude responde a ela. Defina esta chave como `false` para adicionar a saída ao contexto sem uma resposta, para que você possa executar vários comandos e perguntar sobre eles juntos.

3468 3481 

3469* **Scope**: [`Any file`](#scopes)3482* **Scope**: [`Any file`](#scopes)

3470* **Type**: Boolean3483* **Type**: Boolean


3478}3491}

3479```3492```

3480 3493 

3481Veja [Shell mode com prefixo `!`](/docs/pt/interactive-mode#shell-mode-with-prefix). Requer Claude Code v2.1.186 ou posterior.3494Veja [Shell mode com prefixo `!`](/docs/pt/interactive-mode#shell-mode-with-prefix).

3482 3495 

3483<h3 id="showclearcontextonplanaccept">3496<h3 id="showclearcontextonplanaccept">

3484 `showClearContextOnPlanAccept`3497 `showClearContextOnPlanAccept`


3985Personalize a atribuição que Claude Code adiciona aos commits git e pull requests. Os commits recebem um [git trailer](https://git-scm.com/docs/git-interpret-trailers) como `Co-Authored-By` por padrão; as descrições de pull request recebem texto simples. Defina cada parte separadamente com as sub-chaves abaixo.3998Personalize a atribuição que Claude Code adiciona aos commits git e pull requests. Os commits recebem um [git trailer](https://git-scm.com/docs/git-interpret-trailers) como `Co-Authored-By` por padrão; as descrições de pull request recebem texto simples. Defina cada parte separadamente com as sub-chaves abaixo.

3986 3999 

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

3988* **Tipo**: objeto com strings `commit` e `pr` e um Boolean `sessionUrl`4001* **Tipo**: objeto com strings `commit` e `pr` e um Boolean `sessionUrl`, ou `false` para ocultar toda a atribuição. O valor `false` requer Claude Code v2.1.281 ou posterior; versões anteriores o rejeitam e [pulam todo o arquivo de configurações do usuário, projeto ou local](/docs/pt/settings#fix-a-broken-settings-file) que o contém

3989* **Padrão**: não definido, então Claude Code usa a atribuição padrão mostrada em cada sub-chave4002* **Padrão**: não definido, então Claude Code usa a atribuição padrão mostrada em cada sub-chave

3990 4003 

4004Para ocultar toda a atribuição, defina `attribution` como `false`. Em um arquivo de configurações que versões anteriores também leem, defina [`commit`](#attribution-commit) e [`pr`](#attribution-pr) como strings vazias e [`sessionUrl`](#attribution-sessionurl) como `false` em vez disso.

4005 

3991Este exemplo substitui a atribuição de commit, remove a atribuição de pull request e descarta o link da sessão:4006Este exemplo substitui a atribuição de commit, remove a atribuição de pull request e descarta o link da sessão:

3992 4007 

3993```json settings.json theme={null}4008```json settings.json theme={null}


4000}4015}

4001```4016```

4002 4017 

4003Para ocultar toda a atribuição, defina [`commit`](#attribution-commit) e [`pr`](#attribution-pr) como strings vazias e [`sessionUrl`](#attribution-sessionurl) como `false`. Depois que você definir `commit` ou `pr`, Claude Code ignora a configuração `includeCoAuthoredBy` descontinuada e usa seu texto padrão para qualquer um dos dois que você deixou não definido.4018Depois que você definir `commit` ou `pr`, Claude Code ignora a configuração `includeCoAuthoredBy` descontinuada e usa seu texto padrão para qualquer um dos dois que você deixou não definido.

4004 4019 

4005Claude Code informa a Claude que suas próprias instruções sobre atribuição, como uma regra CLAUDE.md ou [memory](/docs/pt/memory), têm precedência sobre essas linhas de commit e PR, a menos que a linha esteja definida em [managed settings](/docs/pt/managed-settings).4020Claude Code informa a Claude que suas próprias instruções sobre atribuição, como uma regra CLAUDE.md ou [memory](/docs/pt/memory), têm precedência sobre essas linhas de commit e PR, a menos que a linha esteja definida em [managed settings](/docs/pt/managed-settings).

4006 4021 


4026}4041}

4027```4042```

4028 4043 

4029Para ocultar toda a atribuição hoje, defina [`attribution.commit`](#attribution-commit) e [`attribution.pr`](#attribution-pr) como strings vazias e [`attribution.sessionUrl`](#attribution-sessionurl) como `false`.4044Para ocultar toda a atribuição, consulte [`attribution`](#attribution).

4030 4045 

4031<h3 id="includegitinstructions">4046<h3 id="includegitinstructions">

4032 `includeGitInstructions`4047 `includeGitInstructions`


4184* **Hooks gerenciados e SDK são executados**: hooks de configurações gerenciadas e hooks que o [Agent SDK](/docs/pt/agent-sdk/overview) registra em processo4199* **Hooks gerenciados e SDK são executados**: hooks de configurações gerenciadas e hooks que o [Agent SDK](/docs/pt/agent-sdk/overview) registra em processo

4185* **Hooks de plugins forçadamente ativados são executados**: hooks de plugins que suas configurações gerenciadas forçam a ativar através de [`enabledPlugins`](#enabledplugins). Claude Code corresponde ao ID completo `plugin@marketplace`, portanto um plugin com o mesmo nome de um marketplace diferente permanece bloqueado. Isso permite que você distribua hooks verificados através de um marketplace da organização enquanto bloqueia tudo o mais4200* **Hooks de plugins forçadamente ativados são executados**: hooks de plugins que suas configurações gerenciadas forçam a ativar através de [`enabledPlugins`](#enabledplugins). Claude Code corresponde ao ID completo `plugin@marketplace`, portanto um plugin com o mesmo nome de um marketplace diferente permanece bloqueado. Isso permite que você distribua hooks verificados através de um marketplace da organização enquanto bloqueia tudo o mais

4186* **Tudo o mais é bloqueado**: hooks de usuário, projeto e local, hooks de outros plugins e hooks declarados no frontmatter do agente4201* **Tudo o mais é bloqueado**: hooks de usuário, projeto e local, hooks de outros plugins e hooks declarados no frontmatter do agente

4187* **Plugins com origem em comando são desativados**: Claude Code também desativa plugins com uma [`command` source](/docs/pt/plugin-marketplaces#command-sources), incluindo plugins forçadamente ativados em `enabledPlugins` gerenciado, a menos que você defina [`disableCommandPluginSources`](#disablecommandpluginsources) explicitamente como `false`4202* **Plugins com origem em comando são desativados**: Claude Code também desativa plugins com uma [`command` source](/docs/pt/plugins/marketplace-reference#command-plugin-source), incluindo plugins forçadamente ativados em `enabledPlugins` gerenciado, a menos que você defina [`disableCommandPluginSources`](#disablecommandpluginsources) explicitamente como `false`

4188* **Comandos `headersHelper` do marketplace são bloqueados**: Claude Code também bloqueia comandos [`headersHelper`](/docs/pt/plugin-marketplaces#authenticate-archive-downloads) do marketplace a menos que [`disableCommandPluginSources`](#disablecommandpluginsources) seja explicitamente definido como `false`, exceto para um marketplace que as próprias configurações gerenciadas declaram. Requer Claude Code v2.1.238 ou posterior4203* **Comandos `headersHelper` do marketplace são bloqueados**: Claude Code também bloqueia comandos [`headersHelper`](/docs/pt/plugins/host-marketplace#authenticate-archive-downloads) do marketplace a menos que [`disableCommandPluginSources`](#disablecommandpluginsources) seja explicitamente definido como `false`, exceto para um marketplace que as próprias configurações gerenciadas declaram. Requer Claude Code v2.1.238 ou posterior

4189* **Linha de status e sugestão de arquivo restringem-se a configurações gerenciadas**: Claude Code lê [`statusLine`](/docs/pt/statusline), [`fileSuggestion`](#filesuggestion) e [`subagentStatusLine`](/docs/pt/statusline#subagent-status-lines) apenas de configurações gerenciadas, seguindo os [gates de linha de status e sugestão de arquivo](#status-line-and-file-suggestion-gates)4204* **Linha de status e sugestão de arquivo restringem-se a configurações gerenciadas**: Claude Code lê [`statusLine`](/docs/pt/statusline), [`fileSuggestion`](#filesuggestion) e [`subagentStatusLine`](/docs/pt/statusline#subagent-status-lines) apenas de configurações gerenciadas, seguindo os [gates de linha de status e sugestão de arquivo](#status-line-and-file-suggestion-gates)

4190 4205 

4191O comando [`/goal`](/docs/pt/goal) não pode ser executado enquanto essa chave está definida, porque depende de hooks.4206O comando [`/goal`](/docs/pt/goal) não pode ser executado enquanto essa chave está definida, porque depende de hooks.


4369 Plugins e skills4384 Plugins e skills

4370</h2>4385</h2>

4371 4386 

4372Ative plugins, registre marketplaces, restrinja quais fontes de plugin sua organização permite e controle quais skills são carregadas. Para instalar e construir plugins, consulte [Plugins](/docs/pt/plugins).4387Ative plugins, registre marketplaces, restrinja quais fontes de plugin sua organização permite e controle quais skills são carregadas. Para instalar e construir plugins, consulte [Plugins](/docs/pt/plugins/overview).

4373 4388 

4374<h3 id="disablebundledskills">4389<h3 id="disablebundledskills">

4375 `disableBundledSkills`4390 `disableBundledSkills`


4465 `syncClaudeAiPlugins`4480 `syncClaudeAiPlugins`

4466</h3>4481</h3>

4467 4482 

4468Desative o download dos [plugins habilitados para sua conta claude.ai](/docs/pt/plugins-reference#synced-plugins). Claude Code os baixa em `~/.claude/plugins/synced/` no início de sessões de terminal onde você entra com sua conta claude.ai, e em sessões Cowork e cloud, e carrega cada um como `<name>@synced`. Defina `false` para parar esse download e parar de carregar os plugins que já sincronizou. Claude Code honra apenas `false`: `true` é o mesmo que não definido e não ativa a sincronização onde está desativada. Requer Claude Code v2.1.273 ou posterior.4483Desative o download dos [plugins habilitados para sua conta claude.ai](/docs/pt/plugins/loading#synced-plugins). Claude Code os baixa em `~/.claude/plugins/synced/` no início de sessões de terminal onde você entra com sua conta claude.ai e em sessões Cowork, e carrega cada um como `<name>@synced`. Defina `false` para parar esse download e parar de carregar os plugins que já sincronizou. Claude Code honra apenas `false`: `true` é o mesmo que não definido e não ativa a sincronização onde está desativada. Requer Claude Code v2.1.273 ou posterior.

4469 4484 

4470* **Scope**: [`User, local, or managed`](#scopes), e arquivos passados com `--settings`. Um repositório não pode desativá-lo para você.4485* **Scope**: [`User, local, or managed`](#scopes), e arquivos passados com `--settings`. Um repositório não pode desativá-lo para você.

4471* **Type**: Boolean4486* **Type**: Boolean


4514 4529 

4515Bloqueie fontes de marketplace de plugin para sua organização. Claude Code verifica a lista de bloqueio ao adicionar marketplace e ao instalar, atualizar, atualizar e auto-atualizar plugin, portanto um marketplace que alguém adicionou antes de você definir a política não pode ser usado para buscar plugins. Fontes bloqueadas são verificadas antes do download, portanto nunca tocam o sistema de arquivos.4530Bloqueie fontes de marketplace de plugin para sua organização. Claude Code verifica a lista de bloqueio ao adicionar marketplace e ao instalar, atualizar, atualizar e auto-atualizar plugin, portanto um marketplace que alguém adicionou antes de você definir a política não pode ser usado para buscar plugins. Fontes bloqueadas são verificadas antes do download, portanto nunca tocam o sistema de arquivos.

4516 4531 

4517Se você definir esta chave no [console de administração claude.ai](/docs/pt/server-managed-settings), claude.ai também a aplica quando qualquer pessoa em sua organização adiciona um marketplace de um repositório git no claude.ai, como [Como restrições funcionam](/docs/pt/plugin-marketplaces#how-restrictions-work) descreve.4532Se você definir esta chave no [console de administração claude.ai](/docs/pt/server-managed-settings), claude.ai também a aplica quando qualquer pessoa em sua organização adiciona um marketplace de um repositório git no claude.ai, como [Como restrições funcionam](/docs/pt/plugins/org#restrict-what-users-can-install) descreve.

4518 4533 

4519* **Scope**: [`Managed`](#scopes)4534* **Scope**: [`Managed`](#scopes)

4520* **Type**: array de objetos de fonte de marketplace, nas mesmas formas que [`strictKnownMarketplaces`](#allowed-source-types)4535* **Type**: array de objetos de fonte de marketplace, nas mesmas formas que [`strictKnownMarketplaces`](#allowed-source-types)


4530}4545}

4531```4546```

4532 4547 

4533Uma entrada `github` pode usar a forma [owner-wildcard](#owner-wildcards) `"owner/*"` para bloquear cada repositório sob esse proprietário GitHub, que requer Claude Code v2.1.223 ou posterior. Adicione `{ "source": "skills-dir" }` para parar Claude Code carregando plugins [`@skills-dir`](/docs/pt/plugins-reference#skills-directory-plugins) de `~/.claude/skills/` sem restringir nenhum marketplace. Consulte [Restrições de marketplace gerenciadas](/docs/pt/plugin-marketplaces#managed-marketplace-restrictions).4548Uma entrada `github` pode usar a forma [owner-wildcard](#owner-wildcards) `"owner/*"` para bloquear cada repositório sob esse proprietário GitHub, que requer Claude Code v2.1.223 ou posterior. Adicione `{ "source": "skills-dir" }` para parar Claude Code carregando plugins [`@skills-dir`](/docs/pt/plugins/loading#plugins-shared-through-a-repository) de `~/.claude/skills/` sem restringir nenhum marketplace. Consulte [Restrições de marketplace gerenciadas](/docs/pt/plugins/org#restrict-what-users-can-install).

4534 4549 

4535<h3 id="channelsenabled">4550<h3 id="channelsenabled">

4536 `channelsEnabled`4551 `channelsEnabled`


4556 `disableCommandPluginSources`4571 `disableCommandPluginSources`

4557</h3>4572</h3>

4558 4573 

4559Bloqueie a [fonte de plugin `command`](/docs/pt/plugin-marketplaces#command-sources), que instala um plugin executando um comando declarado pelo marketplace na máquina do usuário. Quando você o define como `true`, Claude Code nunca executa o comando, não instala ou atualiza plugins originários de comando, e para de carregar os já instalados. Defina como `false` para permitir explicitamente. Sempre que bloqueia fontes de comando, seja você o definindo como `true` ou deixando não definido sob [`allowManagedHooksOnly`](#allowmanagedhooksonly), também bloqueia comandos [`headersHelper`](/docs/pt/plugin-marketplaces#authenticate-archive-downloads) do marketplace, exceto para um marketplace que as próprias configurações gerenciadas declaram. Requer Claude Code v2.1.229 ou posterior, e o bloqueio `headersHelper` requer v2.1.238 ou posterior.4574Bloqueie a [fonte de plugin `command`](/docs/pt/plugins/marketplace-reference#command-plugin-source), que instala um plugin executando um comando declarado pelo marketplace na máquina do usuário. Quando você o define como `true`, Claude Code nunca executa o comando, não instala ou atualiza plugins originários de comando, e para de carregar os já instalados. Defina como `false` para permitir explicitamente. Sempre que bloqueia fontes de comando, seja você o definindo como `true` ou deixando não definido sob [`allowManagedHooksOnly`](#allowmanagedhooksonly), também bloqueia comandos [`headersHelper`](/docs/pt/plugins/host-marketplace#authenticate-archive-downloads) do marketplace, exceto para um marketplace que as próprias configurações gerenciadas declaram. Requer Claude Code v2.1.229 ou posterior, e o bloqueio `headersHelper` requer v2.1.238 ou posterior.

4560 4575 

4561* **Scope**: [`Managed`](#scopes)4576* **Scope**: [`Managed`](#scopes)

4562* **Type**: Boolean4577* **Type**: Boolean


4588}4603}

4589```4604```

4590 4605 

4591Um nome entra em vigor apenas quando o marketplace é registrado na máquina e sua fonte registrada também é declarada nas mesmas configurações gerenciadas, seja como a entrada [`extraKnownMarketplaces`](#extraknownmarketplaces) para esse nome ou como uma entrada de [`strictKnownMarketplaces`](#strictknownmarketplaces). Claude Code ignora um marketplace registrado de uma fonte diferente sob um nome na lista de permissões. O marketplace oficial é isento do requisito de fonte: permitir apenas seu nome é suficiente, já que esse nome só pode se registrar da fonte Anthropic oficial. Consulte [Sugerir plugins por contexto](/docs/pt/plugin-relevance).4606Um nome entra em vigor apenas quando o marketplace é registrado na máquina e sua fonte registrada também é declarada nas mesmas configurações gerenciadas, seja como a entrada [`extraKnownMarketplaces`](#extraknownmarketplaces) para esse nome ou como uma entrada de [`strictKnownMarketplaces`](#strictknownmarketplaces). Claude Code ignora um marketplace registrado de uma fonte diferente sob um nome na lista de permissões. O marketplace oficial é isento do requisito de fonte: permitir apenas seu nome é suficiente, já que esse nome só pode se registrar da fonte Anthropic oficial. Consulte [Sugerir plugins por contexto](/docs/pt/plugins/relevance).

4592 4607 

4593<h3 id="plugintrustmessage">4608<h3 id="plugintrustmessage">

4594 `pluginTrustMessage`4609 `pluginTrustMessage`


4612 4627 

4613Restrinja quais fontes de marketplace de plugin as pessoas em sua organização podem adicionar e instalar plugins. Claude Code aplica a lista de permissões ao adicionar marketplace e ao instalar, atualizar, atualizar e auto-atualizar plugin, antes de qualquer operação de rede ou sistema de arquivos, portanto um marketplace que alguém adicionou antes de você definir a política não pode ser usado para buscar plugins uma vez que sua fonte não corresponda mais. Usuários bloqueados veem um erro nomeando a política gerenciada.4628Restrinja quais fontes de marketplace de plugin as pessoas em sua organização podem adicionar e instalar plugins. Claude Code aplica a lista de permissões ao adicionar marketplace e ao instalar, atualizar, atualizar e auto-atualizar plugin, antes de qualquer operação de rede ou sistema de arquivos, portanto um marketplace que alguém adicionou antes de você definir a política não pode ser usado para buscar plugins uma vez que sua fonte não corresponda mais. Usuários bloqueados veem um erro nomeando a política gerenciada.

4614 4629 

4615Se você definir esta chave no [console de administração claude.ai](/docs/pt/server-managed-settings), claude.ai também a aplica quando qualquer pessoa em sua organização adiciona um marketplace de um repositório git no claude.ai, como [Como restrições funcionam](/docs/pt/plugin-marketplaces#how-restrictions-work) descreve.4630Se você definir esta chave no [console de administração claude.ai](/docs/pt/server-managed-settings), claude.ai também a aplica quando qualquer pessoa em sua organização adiciona um marketplace de um repositório git no claude.ai, como [Como restrições funcionam](/docs/pt/plugins/org#restrict-what-users-can-install) descreve.

4616 4631 

4617* **Scope**: [`Managed`](#scopes)4632* **Scope**: [`Managed`](#scopes)

4618* **Type**: array de objetos de fonte de marketplace; consulte [Tipos de fonte permitidos](#allowed-source-types)4633* **Type**: array de objetos de fonte de marketplace; consulte [Tipos de fonte permitidos](#allowed-source-types)


4630}4645}

4631```4646```

4632 4647 

4633Você também pode escrever esta chave como `allowedMarketplaces`; [Aliases de chave de marketplace](#marketplace-key-aliases) descreve como Claude Code trata o alias e qual versão o aceita. Esta chave é uma porta de política: controla o que usuários podem adicionar, mas não registra nada. Para restringir e pré-registrar em um arquivo, consulte [Combinar com `extraKnownMarketplaces`](#combine-with-extraknownmarketplaces). Para a visualização voltada ao usuário, consulte [Restrições de marketplace gerenciadas](/docs/pt/plugin-marketplaces#managed-marketplace-restrictions).4648Você também pode escrever esta chave como `allowedMarketplaces`; [Aliases de chave de marketplace](#marketplace-key-aliases) descreve como Claude Code trata o alias e qual versão o aceita. Esta chave é uma porta de política: controla o que usuários podem adicionar, mas não registra nada. Para restringir e pré-registrar em um arquivo, consulte [Combinar com `extraKnownMarketplaces`](#combine-with-extraknownmarketplaces). Para a visualização voltada ao usuário, consulte [Restrições de marketplace gerenciadas](/docs/pt/plugins/org#restrict-what-users-can-install).

4634 4649 

4635<h4 id="allowed-source-types">4650<h4 id="allowed-source-types">

4636 Tipos de fonte permitidos4651 Tipos de fonte permitidos


4639Cada entrada abaixo mostra uma entrada de lista de permissões por tipo de fonte e os campos que aceita. A maioria dos tipos corresponde exatamente; `hostPattern` e `pathPattern` correspondem por regex, e entradas `github` podem usar um [owner wildcard](#owner-wildcards).4654Cada entrada abaixo mostra uma entrada de lista de permissões por tipo de fonte e os campos que aceita. A maioria dos tipos corresponde exatamente; `hostPattern` e `pathPattern` correspondem por regex, e entradas `github` podem usar um [owner wildcard](#owner-wildcards).

4640 4655 

4641| Source | Example entry | Fields |4656| Source | Example entry | Fields |

4642| :------------ | :------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------- |4657| :------------ | :------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------- |

4643| `github` | `{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }` | `repo` obrigatório; `ref` é um branch ou tag; `path` é um subdiretório |4658| `github` | `{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }` | `repo` obrigatório; `ref` é um branch ou tag; `path` é um subdiretório |

4644| `git` | `{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git", "ref": "production" }` | `url` obrigatório; `ref` e `path` como para `github` |4659| `git` | `{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git", "ref": "production" }` | `url` obrigatório; `ref` e `path` como para `github` |

4645| `url` | `{ "source": "url", "url": "https://plugins.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } }` | `url` obrigatório; `headers` adiciona cabeçalhos HTTP para acesso autenticado |4660| `url` | `{ "source": "url", "url": "https://plugins.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } }` | `url` obrigatório; `headers` adiciona cabeçalhos HTTP para acesso autenticado |

4646| `file` | `{ "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" }` | `path` obrigatório, o caminho absoluto para um arquivo `marketplace.json` |4661| `file` | `{ "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" }` | `path` obrigatório, o caminho absoluto para um arquivo `marketplace.json` |

4647| `directory` | `{ "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" }` | `path` obrigatório, o caminho absoluto para um diretório contendo `.claude-plugin/marketplace.json` |4662| `directory` | `{ "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" }` | `path` obrigatório, o caminho absoluto para um diretório contendo `.claude-plugin/marketplace.json` |

4648| `hostPattern` | `{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }` | `hostPattern` obrigatório, um regex correspondido contra o host do marketplace |4663| `hostPattern` | `{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }` | `hostPattern` obrigatório, um regex correspondido em qualquer lugar no host do marketplace; ancorá-lo com `^` e `$` para corresponder o host inteiro |

4649| `pathPattern` | `{ "source": "pathPattern", "pathPattern": "^/opt/approved/" }` | `pathPattern` obrigatório, um regex correspondido contra o `path` de fontes `file` e `directory` |4664| `pathPattern` | `{ "source": "pathPattern", "pathPattern": "^/opt/approved/" }` | `pathPattern` obrigatório, um regex correspondido em qualquer lugar no `path` de fontes `file` e `directory`; comece com `^` para fixar um prefixo |

4650| `skills-dir` | `{ "source": "skills-dir" }` | Sem campos. Opta a varredura de plugin `~/.claude/skills/` de volta |4665| `skills-dir` | `{ "source": "skills-dir" }` | Sem campos. Opta a varredura de plugin `~/.claude/skills/` de volta |

4651 4666 

4652Três tipos de fonte carregam regras além da tabela:4667Três tipos de fonte carregam regras além da tabela:

4653 4668 

4654* **`url`**: um marketplace de URL baixa apenas o arquivo `marketplace.json`, e Claude Code não busca arquivos de plugin por caminho relativo desse servidor, portanto seus plugins devem usar uma [plugin source](/docs/pt/plugin-marketplaces#plugin-sources) diferente de um caminho relativo, como uma URL de arquivo, que pode estar no mesmo host. Para plugins com caminhos relativos, use um marketplace baseado em Git. Consulte [Plugins com caminhos relativos falham em marketplaces baseados em URL](/docs/pt/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces).4669* **`url`**: um marketplace de URL baixa apenas o arquivo `marketplace.json`, e Claude Code não busca arquivos de plugin por caminho relativo desse servidor, portanto seus plugins devem usar uma [plugin source](/docs/pt/plugins/marketplace-reference#plugin-sources) diferente de um caminho relativo, como uma URL de arquivo, que pode estar no mesmo host. Para plugins com caminhos relativos, use um marketplace baseado em Git. Consulte [Plugins com caminhos relativos falham em marketplaces baseados em URL](/docs/pt/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces).

4655* **`hostPattern`**: use-o para permitir cada marketplace em um GitHub Enterprise interno ou servidor GitLab sem listar cada repositório. Claude Code corresponde fontes `github` contra `github.com`, pega o hostname de fontes `url`, e o pega de fontes `git` dependendo da forma da [git URL](https://git-scm.com/docs/git-clone#_git_urls):4670* **`hostPattern`**: use-o para permitir cada marketplace em um GitHub Enterprise interno ou servidor GitLab sem listar cada repositório. Claude Code corresponde fontes `github` contra `github.com`, pega o hostname de fontes `url`, e o pega de fontes `git` dependendo da forma da [git URL](https://git-scm.com/docs/git-clone#_git_urls):

4656 4671 

4657 * Uma URL com um esquema, como `https://` ou `ssh://`: o hostname na URL.4672 * Uma URL com um esquema, como `https://` ou `ssh://`: o hostname na URL.


4661 Fontes `file` e `directory` não têm host e nunca correspondem a uma entrada `hostPattern`.4676 Fontes `file` e `directory` não têm host e nunca correspondem a uma entrada `hostPattern`.

4662* **`pathPattern`**: use-o para permitir marketplaces do sistema de arquivos ao lado de entradas `hostPattern` para fontes de rede. `".*"` permite cada caminho local; um padrão mais estreito como `"^/opt/approved/"` restringe a um diretório.4677* **`pathPattern`**: use-o para permitir marketplaces do sistema de arquivos ao lado de entradas `hostPattern` para fontes de rede. `".*"` permite cada caminho local; um padrão mais estreito como `"^/opt/approved/"` restringe a um diretório.

4663 4678 

4664Qualquer lista de permissões, mesmo uma vazia, também para Claude Code carregando plugins [`@skills-dir`](/docs/pt/plugins-reference#skills-directory-plugins) de `~/.claude/skills/`. Adicione a entrada `{ "source": "skills-dir" }` para continuar carregando-os; a entrada não tem significado fora desta chave e `blockedMarketplaces`.4679Qualquer lista de permissões, mesmo uma vazia, também para Claude Code carregando plugins [`@skills-dir`](/docs/pt/plugins/loading#plugins-shared-through-a-repository) de `~/.claude/skills/`. Adicione a entrada `{ "source": "skills-dir" }` para continuar carregando-os; a entrada não tem significado fora desta chave e `blockedMarketplaces`.

4665 4680 

4666<h4 id="owner-wildcards">4681<h4 id="owner-wildcards">

4667 Owner wildcards4682 Owner wildcards


4679}4694}

4680```4695```

4681 4696 

4682Apenas a posição de nome de repositório inteiro pode ser um wildcard. Claude Code compara entradas como `*`, `*/plugins`, ou `acme-corp/tools-*` literalmente, portanto não correspondem a nenhum repositório.4697Apenas a posição de nome de repositório inteiro pode ser um wildcard. Claude Code ignora entradas como `*`, `*/plugins`, ou `acme-corp/tools-*` como inválidas, portanto não correspondem a nenhum repositório.

4683 4698 

4684As regras de correspondência diferem entre as duas configurações:4699As regras de correspondência diferem entre as duas configurações:

4685 4700 


4719}4734}

4720```4735```

4721 4736 

4722Com esta entrada, Claude Code mantém um marketplace oficial já registrado disponível e, em uma máquina nova, registra o marketplace automaticamente na primeira vez que você inicia Claude Code interativamente. O registro automático mais comumente perde:4737Com esta entrada, Claude Code mantém um marketplace oficial já registrado disponível e, em uma máquina nova, registra o marketplace automaticamente na primeira vez que você inicia uma sessão de terminal interativa. O registro automático mais comumente perde:

4723 4738 

4724* Ambientes não interativos que executam antes do primeiro lançamento interativo da máquina.4739* Ambientes não interativos que executam antes da primeira sessão de terminal interativa da máquina.

4725* Máquinas onde Claude Code já executou interativamente sob uma política que bloqueou o marketplace, como o bloqueio de array vazio. Claude Code registra a tentativa bloqueada e não tenta novamente após a política mudar.4740* Máquinas onde Claude Code já executou uma sessão de terminal interativa sob uma política que bloqueou o marketplace, como o bloqueio de array vazio. Claude Code registra a tentativa bloqueada e não tenta novamente após a política mudar.

4726 4741 

4727Nessas máquinas, adicione o marketplace a [`extraKnownMarketplaces`](#extraknownmarketplaces) no mesmo `managed-settings.json` para que Claude Code o registre automaticamente, ou execute `claude plugin marketplace add anthropics/claude-plugins-official`.4742Nessas máquinas, adicione o marketplace a [`extraKnownMarketplaces`](#extraknownmarketplaces) no mesmo `managed-settings.json` para que Claude Code o registre automaticamente, ou execute `claude plugin marketplace add anthropics/claude-plugins-official`.

4728 4743 


4846 `enabledPlugins`4861 `enabledPlugins`

4847</h3>4862</h3>

4848 4863 

4849Ative ou desative [plugins](/docs/pt/plugins) individuais, codificados por `plugin-name@marketplace-name`. Um plugin sem entrada em nenhum escopo volta para seu valor [`defaultEnabled`](/docs/pt/plugins-reference#default-enablement). Quando você ativa ou desativa um plugin com `/plugin` ou `claude plugin enable`, Claude Code escreve esta chave para você.4864Ative ou desative [plugins](/docs/pt/plugins/overview) individuais, codificados por `plugin-name@marketplace-name`. Um plugin sem entrada em nenhum escopo volta para seu valor [`defaultEnabled`](/docs/pt/plugins/manifest-reference#fields). Quando você ativa ou desativa um plugin com `/plugin` ou `claude plugin enable`, Claude Code escreve esta chave para você.

4850 4865 

4851* **Scope**: [`Any file`](#scopes)4866* **Scope**: [`Any file`](#scopes)

4852* **Type**: objeto mapeando `plugin-name@marketplace-name` para um Boolean4867* **Type**: objeto mapeando `plugin-name@marketplace-name` para um Boolean


4873 4888 

4874Configurações de projeto têm precedência sobre configurações de usuário, portanto definir um plugin como `false` em `~/.claude/settings.json` não desativa um plugin que o `.claude/settings.json` do projeto ativa. Para optar por não participar de um plugin ativado pelo projeto em sua máquina, defina-o como `false` em `.claude/settings.local.json`. Plugins forçadamente ativados por configurações gerenciadas não podem ser desativados desta forma, já que configurações gerenciadas substituem configurações locais.4889Configurações de projeto têm precedência sobre configurações de usuário, portanto definir um plugin como `false` em `~/.claude/settings.json` não desativa um plugin que o `.claude/settings.json` do projeto ativa. Para optar por não participar de um plugin ativado pelo projeto em sua máquina, defina-o como `false` em `.claude/settings.local.json`. Plugins forçadamente ativados por configurações gerenciadas não podem ser desativados desta forma, já que configurações gerenciadas substituem configurações locais.

4875 4890 

4876Ativar um plugin de uma fonte externa como um repositório GitHub ou pacote npm no `.claude/settings.json` de um projeto não o instala para outras pessoas. Em cada caminho que carrega plugins, Claude Code relata o plugin como não instalado até que cada usuário o [instale eles mesmos](/docs/pt/discover-plugins#configure-team-marketplaces).4891Ativar um plugin de uma fonte externa como um repositório GitHub ou pacote npm no `.claude/settings.json` de um projeto não o instala para outras pessoas. Em cada caminho que carrega plugins, Claude Code relata o plugin como não instalado até que cada usuário o [instale eles mesmos](/docs/pt/plugins/org#require-plugins-per-repository).

4877 4892 

4878<h3 id="extraknownmarketplaces">4893<h3 id="extraknownmarketplaces">

4879 `extraKnownMarketplaces`4894 `extraKnownMarketplaces`


4908 4923 

4909[O que é executado antes de você confiar em uma pasta](/docs/pt/permissions#what-runs-before-you-trust-a-folder) compara a porta de confiança com o outro conteúdo que um repositório pode fornecer. Você também pode escrever esta chave como `additionalMarketplaces`; consulte [Aliases de chave de marketplace](#marketplace-key-aliases).4924[O que é executado antes de você confiar em uma pasta](/docs/pt/permissions#what-runs-before-you-trust-a-folder) compara a porta de confiança com o outro conteúdo que um repositório pode fornecer. Você também pode escrever esta chave como `additionalMarketplaces`; consulte [Aliases de chave de marketplace](#marketplace-key-aliases).

4910 4925 

4911Defina `"autoUpdate": true` ao lado de `source` para fazer Claude Code atualizar esse marketplace e atualizar seus plugins instalados em segundo plano após a inicialização. Quando omitido, `claude-plugins-official` e a maioria dos outros marketplaces oficiais da Anthropic padrão para `true`, e marketplaces de terceiros padrão para `false`. Consulte [Configurar auto-atualizações](/docs/pt/discover-plugins#configure-auto-updates).4926Defina `"autoUpdate": true` ao lado de `source` para fazer Claude Code atualizar esse marketplace e atualizar seus plugins instalados em segundo plano após a inicialização. Quando omitido, `claude-plugins-official` e a maioria dos outros marketplaces oficiais da Anthropic padrão para `true`, e marketplaces de terceiros padrão para `false`. Consulte [Configurar auto-atualizações](/docs/pt/plugins/install#keep-plugins-updated).

4912 4927 

4913Quando mais de um arquivo de configurações define uma entrada de marketplace sob o mesmo nome, Claude Code usa a entrada do arquivo de [precedência mais alta](/docs/pt/settings#settings-precedence) inteiro. Essa entrada substitui a entrada de precedência mais baixa e não herda nenhum de seus campos, portanto uma redefinição não pode combinar `source.headers` de credencial de um arquivo com uma URL que outro arquivo controla. Antes de v2.1.228, Claude Code mesclava entradas de mesmo nome campo por campo, portanto uma entrada em um arquivo de precedência mais alta poderia herdar campos que não definiu, incluindo `headers` de outro arquivo.4928Quando mais de um arquivo de configurações define uma entrada de marketplace sob o mesmo nome, Claude Code usa a entrada do arquivo de [precedência mais alta](/docs/pt/settings#settings-precedence) inteiro. Essa entrada substitui a entrada de precedência mais baixa e não herda nenhum de seus campos, portanto uma redefinição não pode combinar `source.headers` de credencial de um arquivo com uma URL que outro arquivo controla. Antes de v2.1.228, Claude Code mesclava entradas de mesmo nome campo por campo, portanto uma entrada em um arquivo de precedência mais alta poderia herdar campos que não definiu, incluindo `headers` de outro arquivo.

4914 4929 


4925* **`directory`**: um caminho do sistema de arquivos local, com `path`, apenas para desenvolvimento4940* **`directory`**: um caminho do sistema de arquivos local, com `path`, apenas para desenvolvimento

4926* **`settings`**: um marketplace inline declarado diretamente no arquivo de configurações sem um repositório hospedado, com `name` e `plugins`4941* **`settings`**: um marketplace inline declarado diretamente no arquivo de configurações sem um repositório hospedado, com `name` e `plugins`

4927 4942 

4928O tipo de fonte `git` funciona com qualquer serviço de hospedagem git, incluindo GitLab auto-hospedado e Bitbucket. Claude Code clona o repositório com a mesma autenticação que `git clone` usaria nessa máquina: helpers de credencial configurados ou chaves SSH. Um token de provedor como `GITHUB_TOKEN` entra em vigor apenas através de um helper de credencial que o lê. Consulte [Repositórios privados](/docs/pt/plugin-marketplaces#private-repositories) para detalhes de configuração.4943O tipo de fonte `git` funciona com qualquer serviço de hospedagem git, incluindo GitLab auto-hospedado e Bitbucket. Claude Code clona o repositório com a mesma autenticação que `git clone` usaria nessa máquina: helpers de credencial configurados ou chaves SSH. Um token de provedor como `GITHUB_TOKEN` entra em vigor através de um helper de credencial que o lê. Consulte [Repositórios privados](/docs/pt/plugins/host-marketplace#grant-access-to-a-private-marketplace) para detalhes de configuração.

4929 4944 

4930Para fontes `github` e `git`, Claude Code nunca baixa conteúdo de [Git LFS](https://git-lfs.com) quando clona o repositório de marketplace para adicioná-lo ou atualizá-lo. Arquivos rastreados por LFS são verificados como arquivos de ponteiro, e a saída de adição ou atualização relata quantos.4945Para fontes `github` e `git`, Claude Code nunca baixa conteúdo de [Git LFS](https://git-lfs.com) quando clona o repositório de marketplace para adicioná-lo ou atualizá-lo. Arquivos rastreados por LFS são verificados como arquivos de ponteiro, e a saída de adição ou atualização relata quantos.

4931 4946 

4932O campo `skipLfs` dentro do objeto `source` é aceito e não tem efeito. Antes de v2.1.274, Claude Code baixava conteúdo de LFS a menos que você definisse `"skipLfs": true`.4947O campo `skipLfs` dentro do objeto `source` é aceito e não tem efeito. Antes de v2.1.274, Claude Code baixava conteúdo de LFS a menos que você definisse `"skipLfs": true`.

4933 4948 

4934Para uma fonte `url`, defina `headersHelper` dentro do objeto `source` quando a credencial em `headers` expira e um comando tem que produzir uma nova. Requer Claude Code v2.1.238 ou posterior. Para o que o comando deve imprimir e onde Claude Code o executa, consulte [Escrever o comando headersHelper](/docs/pt/plugin-marketplaces#write-the-headershelper-command), e para os casos onde Claude Code não o executa, consulte [Quando Claude Code pula um comando headersHelper](/docs/pt/plugin-marketplaces#when-claude-code-skips-a-headershelper-command-or-drops-its-output). Uma vez que você defina `headersHelper` em uma URL de marketplace `https://`, Claude Code executa o comando em dois pontos, reutilizando a saída de uma execução por até 60 segundos:4949Para uma fonte `url`, defina `headersHelper` dentro do objeto `source` quando a credencial em `headers` expira e um comando tem que produzir uma nova. Requer Claude Code v2.1.238 ou posterior. Para o que o comando deve imprimir e onde Claude Code o executa, consulte [Escrever o comando headersHelper](/docs/pt/plugins/host-marketplace#write-the-headershelper-command), e para os casos onde Claude Code não o executa, consulte [Quando Claude Code pula um comando headersHelper](/docs/pt/plugins/host-marketplace#when-claude-code-skips-a-headershelper-command-or-drops-its-output). Uma vez que você defina `headersHelper` em uma URL de marketplace `https://`, Claude Code executa o comando em dois pontos, reutilizando a saída de uma execução por até 60 segundos:

4935 4950 

4936* Antes de cada busca desse `marketplace.json` do marketplace, incluindo uma atualização posterior. Claude Code envia os cabeçalhos impressos com essa busca.4951* Antes de cada busca desse `marketplace.json` do marketplace, incluindo uma atualização posterior. Claude Code envia os cabeçalhos impressos com essa busca.

4937* Antes de cada download de arquivo de plugin na origem da URL do marketplace, significando o mesmo esquema, host e porta. Claude Code envia a saída com esse download, e nenhum outro download obtém os cabeçalhos.4952* Antes de cada download de arquivo de plugin na origem da URL do marketplace, significando o mesmo esquema, host e porta. Claude Code envia a saída com esse download, e nenhum outro download obtém os cabeçalhos.

4938 4953 

4939Claude Code ignora qualquer `headersHelper` definido no `.claude/settings.json` ou `.claude/settings.local.json` de um diretório que você adiciona com [`--add-dir`](/docs/pt/permissions#what-runs-before-you-trust-a-folder), em uma fonte `url` e em uma entrada de plugin inline, e envia apenas os `headers` fixos definidos naquele arquivo. [Como usuários aceitam um comando headersHelper](/docs/pt/plugin-marketplaces#how-users-accept-a-headershelper-command) cobre os outros arquivos de configurações.4954Claude Code ignora qualquer `headersHelper` definido no `.claude/settings.json` ou `.claude/settings.local.json` de um diretório que você adiciona com [`--add-dir`](/docs/pt/permissions#what-runs-before-you-trust-a-folder), em uma fonte `url` e em uma entrada de plugin inline, e envia apenas os `headers` fixos definidos naquele arquivo. [Como usuários aceitam um comando headersHelper](/docs/pt/plugins/host-marketplace#how-users-accept-a-headershelper-command) cobre os outros arquivos de configurações.

4940 4955 

4941Plugins listados em uma fonte `settings` devem referenciar fontes externas como GitHub ou npm, e o `name` deve corresponder à chave de marketplace. Você ainda ativa cada plugin separadamente em `enabledPlugins`. Este exemplo declara um plugin inline:4956Plugins listados em uma fonte `settings` devem referenciar fontes externas como GitHub ou npm, e o `name` deve corresponder à chave de marketplace. Você ainda ativa cada plugin separadamente em `enabledPlugins`. Este exemplo declara um plugin inline:

4942 4957 


4962}4977}

4963```4978```

4964 4979 

4965Uma entrada de plugin sob `source: 'settings'` cuja própria `source` é um [`archive`](/docs/pt/plugin-marketplaces#zip-archives) pode definir `headers` para o download de arquivo. Se o valor que você colocaria em `headers` é efêmero, como um token que seu registro cria sob demanda, defina um comando `headersHelper` em vez disso. Uma entrada pode definir ambos. Ambos os campos requerem Claude Code v2.1.238 ou posterior.4980Uma entrada de plugin sob `source: 'settings'` cuja própria `source` é um [`archive`](/docs/pt/plugins/marketplace-reference#archive-plugin-source) pode definir `headers` para o download de arquivo. Se o valor que você colocaria em `headers` é efêmero, como um token que seu registro cria sob demanda, defina um comando `headersHelper` em vez disso. Uma entrada pode definir ambos. Ambos os campos requerem Claude Code v2.1.238 ou posterior.

4966 4981 

4967Claude Code envia os `headers` da entrada, e o que o comando imprime, com o download de arquivo daquele plugin e com nenhum outro download. Claude Code executa o comando apenas quando um usuário [instala ou atualiza apenas aquele plugin](/docs/pt/plugin-marketplaces#how-users-accept-a-headershelper-command). Três regras adicionais dependem de qual arquivo contém a entrada:4982Claude Code envia os `headers` da entrada, e o que o comando imprime, com o download de arquivo daquele plugin e com nenhum outro download. Claude Code executa o comando apenas quando um usuário [instala ou atualiza apenas aquele plugin](/docs/pt/plugins/host-marketplace#how-users-accept-a-headershelper-command). Três regras adicionais dependem de qual arquivo contém a entrada:

4968 4983 

4969* **`strict`**: diferentemente de uma entrada no `marketplace.json` de um marketplace, uma entrada em configurações não precisa de `"strict": false`, porque um arquivo de configurações não carrega campos de manifesto para inline. Consulte [Modo strict](/docs/pt/plugin-marketplaces#strict-mode).4984* **`strict`**: diferentemente de uma entrada no `marketplace.json` de um marketplace, uma entrada em configurações não precisa de `"strict": false`, porque um arquivo de configurações não carrega campos de manifesto para inline. Consulte [Modo strict](/docs/pt/plugins/marketplace-reference#strict-mode).

4970* **Folder trust**: para uma entrada no `.claude/settings.json` ou `.claude/settings.local.json` de um projeto, Claude Code executa o comando apenas após o usuário também ter [confiado naquela pasta](/docs/pt/permissions#what-runs-before-you-trust-a-folder).4985* **Folder trust**: para uma entrada no `.claude/settings.json` ou `.claude/settings.local.json` de um projeto, Claude Code executa o comando apenas após o usuário também ter [confiado naquela pasta](/docs/pt/permissions#what-runs-before-you-trust-a-folder).

4971* **Header filter**: Claude Code descarta [nomes de cabeçalho de roteamento de solicitação e identidade de cliente](/docs/pt/plugin-marketplaces#when-claude-code-skips-a-headershelper-command-or-drops-its-output) de uma entrada no `.claude/settings.json` ou `.claude/settings.local.json` de um projeto, porque um repositório pode fornecer esses arquivos. Claude Code aplica o mesmo filtro a uma entrada de catálogo e a uma entrada no diretório de configurações `--add-dir`, e nenhum filtro a uma entrada em suas configurações de usuário, um arquivo `--settings` ou configurações gerenciadas.4986* **Header filter**: Claude Code descarta [nomes de cabeçalho de roteamento de solicitação e identidade de cliente](/docs/pt/plugins/host-marketplace#when-claude-code-skips-a-headershelper-command-or-drops-its-output) de uma entrada no `.claude/settings.json` ou `.claude/settings.local.json` de um projeto, porque um repositório pode fornecer esses arquivos. Claude Code aplica o mesmo filtro a uma entrada de catálogo e a uma entrada no diretório de configurações `--add-dir`, e nenhum filtro a uma entrada em suas configurações de usuário, um arquivo `--settings` ou configurações gerenciadas.

4972 4987 

4973<h4 id="marketplace-key-aliases">4988<h4 id="marketplace-key-aliases">

4974 Aliases de chave de marketplace4989 Aliases de chave de marketplace


4985 `pluginConfigs`5000 `pluginConfigs`

4986</h3>5001</h3>

4987 5002 

4988Armazene as respostas não sensíveis que você dá ao diálogo de configuração [`userConfig`](/docs/pt/plugins-reference#user-configuration) de um plugin, codificadas por ID de plugin. Claude Code escreve esta chave para suas configurações de usuário quando você preenche o diálogo, portanto você não precisa editá-la manualmente. Claude Code armazena opções sensíveis no Keychain do macOS em vez disso, voltando para `~/.claude/.credentials.json` quando o Keychain rejeita a escrita; em plataformas sem um keychain suportado, armazena em `~/.claude/.credentials.json`.5003Armazene as respostas não sensíveis que você dá ao diálogo de configuração [`userConfig`](/docs/pt/plugins/manifest-reference#user-configuration) de um plugin, codificadas por ID de plugin. Claude Code escreve esta chave para suas configurações de usuário quando você preenche o diálogo, portanto você não precisa editá-la manualmente. Claude Code armazena opções sensíveis no Keychain do macOS em vez disso, voltando para `~/.claude/.credentials.json` quando o Keychain rejeita a escrita; em plataformas sem um keychain suportado, armazena em `~/.claude/.credentials.json`.

4989 5004 

4990* **Scope**: [`User or managed`](#scopes)5005* **Scope**: [`User or managed`](#scopes)

4991* **Type**: objeto mapeando um ID de plugin para um objeto com um campo `options`, mapeando cada nome de opção para uma string, número, Boolean ou array de strings, e um campo `mcpServers` opcional mantendo valores de configuração de usuário por servidor na mesma forma5006* **Type**: objeto mapeando um ID de plugin para um objeto com um campo `options`, mapeando cada nome de opção para uma string, número, Boolean ou array de strings, e um campo `mcpServers` opcional mantendo valores de configuração de usuário por servidor na mesma forma


5233}5248}

5234```5249```

5235 5250 

5236O próprio `settings.json` de um plugin também pode fornecer esta chave; veja [Envie configurações padrão com seu plugin](/docs/pt/plugins#ship-default-settings-with-your-plugin).5251O próprio `settings.json` de um plugin também pode fornecer esta chave; veja [Envie configurações padrão com seu plugin](/docs/pt/plugins/components#default-settings).

5237 5252 

5238<h3 id="crosssessioninbound">5253<h3 id="crosssessioninbound">

5239 `crossSessionInbound`5254 `crossSessionInbound`


5329 * `"in-process"`: colegas de equipe são executados dentro do seu painel de terminal principal5344 * `"in-process"`: colegas de equipe são executados dentro do seu painel de terminal principal

5330 * `"auto"`: painéis divididos quando você está executando dentro do tmux, ou dentro do iTerm2 com `it2` no seu `PATH` ou tmux instalado; em processo caso contrário5345 * `"auto"`: painéis divididos quando você está executando dentro do tmux, ou dentro do iTerm2 com `it2` no seu `PATH` ou tmux instalado; em processo caso contrário

5331 * `"tmux"`: painéis divididos usando tmux ou iTerm2, detectados do seu terminal5346 * `"tmux"`: painéis divididos usando tmux ou iTerm2, detectados do seu terminal

5332 * `"iterm2"`: painéis divididos nativos do iTerm2 através do CLI `it2`, no Claude Code v2.1.186 ou posterior5347 * `"iterm2"`: painéis divididos nativos do iTerm2 através do CLI `it2`

5333* **Padrão**: `"in-process"`5348* **Padrão**: `"in-process"`

5334* **Substituições por sessão**: `--teammate-mode` tem precedência sobre esta chave para uma sessão5349* **Substituições por sessão**: `--teammate-mode` tem precedência sobre esta chave para uma sessão

5335 5350 


5339}5354}

5340```5355```

5341 5356 

5342O valor `iterm2` requer Claude Code v2.1.186 ou posterior.

5343 

5344<span id="worktree-settings" />5357<span id="worktree-settings" />

5345 5358 

5346<h3 id="worktree">5359<h3 id="worktree">


6200 6213 

6201Claude Code ainda aceita um `--mcp-config` cujos servidores são todas entradas `type: "sdk"` em processo, então o Agent SDK e a extensão VS Code continuam funcionando. Os usuários ainda podem adicionar servidores com `claude mcp add` ou um arquivo `.mcp.json`; para controle por servidor, defina [`allowedMcpServers`](/docs/pt/managed-mcp) também. Requer Claude Code v2.1.193 ou posterior.6214Claude Code ainda aceita um `--mcp-config` cujos servidores são todas entradas `type: "sdk"` em processo, então o Agent SDK e a extensão VS Code continuam funcionando. Os usuários ainda podem adicionar servidores com `claude mcp add` ou um arquivo `.mcp.json`; para controle por servidor, defina [`allowedMcpServers`](/docs/pt/managed-mcp) também. Requer Claude Code v2.1.193 ou posterior.

6202 6215 

6203Em sessões na nuvem, Claude Code também ignora atualizações MCP entregues pelo servidor no meio da sessão, o caminho por trás da configuração de sessão na nuvem e SDK `setMcpServers()` em workers remotos. Entradas `type: "sdk"` em processo permanecem isentas lá também. Antes da v2.1.239, um `--mcp-config` entregue pelo servidor bloqueava uma sessão na nuvem de iniciar.6216A mesma verificação cobre pastas de plugins nomeadas na variável de ambiente [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/pt/env-vars#variables), que requer Claude Code v2.1.280 ou posterior. Quando a variável nomeia uma pasta, Claude Code sai com o mesmo erro, e o erro diz para desconfigurar a variável.

6217 

6218Em sessões na nuvem, Claude Code também ignora atualizações MCP entregues pelo servidor no meio da sessão, o caminho por trás da configuração de sessão na nuvem e SDK `setMcpServers()` que alcançam essas sessões. Entradas `type: "sdk"` em processo permanecem isentas lá também. Antes da v2.1.239, um `--mcp-config` entregue pelo servidor bloqueava uma sessão na nuvem de iniciar.

6204 6219 

6205<h3 id="forceremotesettingsrefresh">6220<h3 id="forceremotesettingsrefresh">

6206 `forceRemoteSettingsRefresh`6221 `forceRemoteSettingsRefresh`

skills.md +15 −15

Details

129| Project | `.claude/skills/<skill-name>/SKILL.md` | Sessões neste repositório. Confirme-a para que seu time também a obtenha |129| Project | `.claude/skills/<skill-name>/SKILL.md` | Sessões neste repositório. Confirme-a para que seu time também a obtenha |

130| Nested | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | Sessões iniciadas em ou abaixo de `<subdir>`. Uma sessão iniciada acima dela carrega a skill uma vez que Claude trabalha em arquivos lá. Veja [monorepos e subdiretórios](#discovery-from-parent-and-nested-directories) |130| Nested | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | Sessões iniciadas em ou abaixo de `<subdir>`. Uma sessão iniciada acima dela carrega a skill uma vez que Claude trabalha em arquivos lá. Veja [monorepos e subdiretórios](#discovery-from-parent-and-nested-directories) |

131| Diretório adicional | `.claude/skills/<skill-name>/SKILL.md` em um diretório que você passa com `--add-dir` | Essa sessão. Veja [diretórios fora do projeto](#skills-from-additional-directories) |131| Diretório adicional | `.claude/skills/<skill-name>/SKILL.md` em um diretório que você passa com `--add-dir` | Essa sessão. Veja [diretórios fora do projeto](#skills-from-additional-directories) |

132| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | Onde quer que o [plugin](/docs/pt/plugins) esteja habilitado, como `/plugin-name:skill-name` |132| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | Onde quer que o [plugin](/docs/pt/plugins/overview) esteja habilitado, como `/plugin-name:skill-name` |

133| Conta claude.ai | Skills habilitadas para sua conta claude.ai | Sessões Cowork, sessões cloud e sessões de terminal onde você entra com essa conta. Veja [Skills sincronizadas do claude.ai](#how-synced-skills-behave) |133| Conta claude.ai | Skills habilitadas para sua conta claude.ai | Sessões Cowork, sessões cloud e sessões de terminal onde você entra com essa conta. Veja [Skills sincronizadas do claude.ai](#how-synced-skills-behave) |

134 134 

135As pastas de skill também seguem estas regras:135As pastas de skill também seguem estas regras:

136 136 

137* **Pastas com symlink**: uma entrada `<skill-name>` na localização enterprise, personal ou project pode ser um symlink para um diretório em outro lugar no disco. Claude Code lê `SKILL.md` do alvo e carrega a skill uma vez mesmo que vários locais apontem para o mesmo alvo. Skills de plugin [lidam com symlinks de forma diferente](/docs/pt/plugins-reference#share-files-within-a-marketplace-with-symlinks).137* **Pastas com symlink**: uma entrada `<skill-name>` na localização enterprise, personal ou project pode ser um symlink para um diretório em outro lugar no disco. Claude Code lê `SKILL.md` do alvo e carrega a skill uma vez mesmo que vários locais apontem para o mesmo alvo. Skills de plugin [lidam com symlinks de forma diferente](/docs/pt/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks).

138* **Nome reservado**: não nomeie uma pasta de skill como `synced`, em qualquer capitalização. Claude Code usa `~/.claude/skills/synced/` para [skills baixadas do claude.ai](#where-synced-skills-load) e pula uma skill que você cria com esse nome nas localizações enterprise, personal e project.138* **Nome reservado**: não nomeie uma pasta de skill como `synced`, em qualquer capitalização. Claude Code usa `~/.claude/skills/synced/` para [skills baixadas do claude.ai](#where-synced-skills-load) e pula uma skill que você cria com esse nome nas localizações enterprise, personal e project.

139* **Arquivos de comando**: um arquivo Markdown em `.claude/commands/` é o formato mais antigo e ainda funciona. Ele suporta o mesmo [frontmatter](#frontmatter-reference) exceto `name` e `paths`. Para encontrar o nome que você digita para invocá-lo, veja [Como uma skill obtém seu nome de comando](#how-a-skill-gets-its-command-name). Prefira uma skill para novo trabalho, já que skills também suportam [arquivos de suporte](#add-supporting-files).139* **Arquivos de comando**: um arquivo Markdown em `.claude/commands/` é o formato mais antigo e ainda funciona. Ele suporta o mesmo [frontmatter](#frontmatter-reference) exceto `name` e `paths`. Para encontrar o nome que você digita para invocá-lo, veja [Como uma skill obtém seu nome de comando](#how-a-skill-gets-its-command-name). Prefira uma skill para novo trabalho, já que skills também suportam [arquivos de suporte](#add-supporting-files).

140* **Pasta de skill como um plugin**: adicione um `.claude-plugin/plugin.json` a uma pasta de skill e ela carrega como um [plugin](/docs/pt/plugins-reference#skills-directory-plugins) nomeado `<name>@skills-dir`, para que possa agrupar agents, hooks e servidores MCP. Em um `.claude/skills/` de projeto, isso requer aceitar primeiro o diálogo de confiança do workspace.140* **Pasta de skill como um plugin**: adicione um `.claude-plugin/plugin.json` a uma pasta de skill e ela carrega como um [plugin](/docs/pt/plugins/loading#plugins-shared-through-a-repository) nomeado `<name>@skills-dir`, para que possa agrupar agents, hooks e servidores MCP. Em um `.claude/skills/` de projeto, isso requer aceitar primeiro o diálogo de confiança do workspace.

141 141 

142<h3 id="discovery-from-parent-and-nested-directories">142<h3 id="discovery-from-parent-and-nested-directories">

143 Carregue skills em monorepos e subdiretórios143 Carregue skills em monorepos e subdiretórios


275 275 

276Claude Code observa diretórios de skill para mudanças de arquivo, exceto em [modo bare](/docs/pt/headless#start-faster-with-bare-mode). Quando você adiciona, edita ou remove uma skill sob `~/.claude/skills/`, o `.claude/skills/` do projeto, ou um `.claude/skills/` dentro de um diretório `--add-dir`, Claude Code pega a mudança dentro da sessão atual, sem uma reinicialização. Se você criar um diretório de skills de nível superior que não existia quando a sessão iniciou, reinicie Claude Code para que possa observar o novo diretório.276Claude Code observa diretórios de skill para mudanças de arquivo, exceto em [modo bare](/docs/pt/headless#start-faster-with-bare-mode). Quando você adiciona, edita ou remove uma skill sob `~/.claude/skills/`, o `.claude/skills/` do projeto, ou um `.claude/skills/` dentro de um diretório `--add-dir`, Claude Code pega a mudança dentro da sessão atual, sem uma reinicialização. Se você criar um diretório de skills de nível superior que não existia quando a sessão iniciou, reinicie Claude Code para que possa observar o novo diretório.

277 277 

278A detecção de mudança ao vivo cobre apenas texto `SKILL.md`. Para uma pasta de skill que também é um [plugin](/docs/pt/plugins-reference#skills-directory-plugins), mudanças em `hooks/`, `.mcp.json`, `agents/` e `output-styles/` precisam de `/reload-plugins` para entrar em vigor.278A detecção de mudança ao vivo cobre apenas texto `SKILL.md`. Para uma pasta de skill que também é um [plugin](/docs/pt/plugins/loading#plugins-shared-through-a-repository), mudanças em `hooks/`, `.mcp.json`, `agents/` e `output-styles/` precisam de `/reload-plugins` para entrar em vigor.

279 279 

280<h3 id="remove-a-skill">280<h3 id="remove-a-skill">

281 Remova uma skill281 Remova uma skill


285 285 

286* **Skill pessoal ou de projeto**: delete o diretório da skill, `~/.claude/skills/<skill-name>/` ou `.claude/skills/<skill-name>/`. Claude Code a [remove de `/skills` na sessão atual](#live-change-detection); conteúdo que Claude Code já carregou dela segue o [ciclo de vida do conteúdo da skill](#skill-content-lifecycle).286* **Skill pessoal ou de projeto**: delete o diretório da skill, `~/.claude/skills/<skill-name>/` ou `.claude/skills/<skill-name>/`. Claude Code a [remove de `/skills` na sessão atual](#live-change-detection); conteúdo que Claude Code já carregou dela segue o [ciclo de vida do conteúdo da skill](#skill-content-lifecycle).

287* **Skill enterprise**: um administrador deleta o diretório da skill de `.claude/skills/` dentro do [diretório de configurações gerenciadas](/docs/pt/managed-settings#delivery-mechanisms), por exemplo `/etc/claude-code/.claude/skills/<skill-name>/` no Linux.287* **Skill enterprise**: um administrador deleta o diretório da skill de `.claude/skills/` dentro do [diretório de configurações gerenciadas](/docs/pt/managed-settings#delivery-mechanisms), por exemplo `/etc/claude-code/.claude/skills/<skill-name>/` no Linux.

288* **Skill de plugin**: desabilite ou desinstale o plugin que a fornece, do menu `/plugin` ou com `/plugin uninstall <plugin-name>@<marketplace-name>`. Claude Code descarrega as skills do plugin quando [a mudança se aplica](/docs/pt/discover-plugins#apply-plugin-changes-without-restarting) ou quando você reinicia.288* **Skill de plugin**: desabilite ou desinstale o plugin que a fornece, do menu `/plugin` ou com `/plugin uninstall <plugin-name>@<marketplace-name>`. Claude Code descarrega as skills do plugin quando [a mudança se aplica](/docs/pt/plugins/cli-reference#reload-plugins) ou quando você reinicia.

289* **Skill sincronizada do claude.ai**: desative a skill para sua conta claude.ai, no mesmo lugar onde você a [habilitou](#skills-in-cowork-and-cloud-sessions). Claude Code a remove de `~/.claude/skills/synced/` na próxima vez que [sincroniza suas skills](#where-synced-skills-load). Se você deletar o diretório manualmente, a próxima sincronização o baixa novamente enquanto a skill permanece habilitada no claude.ai.289* **Skill sincronizada do claude.ai**: desative a skill para sua conta claude.ai, no mesmo lugar onde você a [habilitou](#skills-in-cowork-and-cloud-sessions). Claude Code a remove de `~/.claude/skills/synced/` na próxima vez que [sincroniza suas skills](#where-synced-skills-load). Se você deletar o diretório manualmente, a próxima sincronização o baixa novamente enquanto a skill permanece habilitada no claude.ai.

290* **Skill agrupada**: defina [`disableBundledSkills`](#bundled-skills) como `true` para desativar skills agrupadas, ou defina uma skill como `"off"` em [`skillOverrides`](#override-skill-visibility-from-settings) para ocultá-la.290* **Skill agrupada**: defina [`disableBundledSkills`](#bundled-skills) como `true` para desativar skills agrupadas, ou defina uma skill como `"off"` em [`skillOverrides`](#override-skill-visibility-from-settings) para ocultá-la.

291 291 


389 389 

390| Caminho de distribuição | Campos de frontmatter que você pode usar |390| Caminho de distribuição | Campos de frontmatter que você pode usar |

391| :----------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------- |391| :----------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------- |

392| Skills do Claude Code em [qualquer nível](#where-skills-live), incluindo skills de [plugin](/docs/pt/plugins) | Todos os campos na tabela acima |392| Skills do Claude Code em [qualquer nível](#where-skills-live), incluindo skills de [plugin](/docs/pt/plugins/overview) | Todos os campos na tabela acima |

393| Uploads de skills do claude.ai, a Skills API e empacotamento com `package_skill.py` de [anthropics/skills](https://github.com/anthropics/skills) | `name`, `description`, `license`, `compatibility`, `metadata`, `allowed-tools` |393| Uploads de skills do claude.ai, a Skills API e empacotamento com `package_skill.py` de [anthropics/skills](https://github.com/anthropics/skills) | `name`, `description`, `license`, `compatibility`, `metadata`, `allowed-tools` |

394 394 

395Quando você habilita uma skill pessoal para sua conta claude.ai, por exemplo para usá-la em [sessões Cowork e cloud](#skills-in-cowork-and-cloud-sessions) e rotinas, você a carrega no claude.ai, então as mesmas regras se aplicam.395Quando você habilita uma skill pessoal para sua conta claude.ai, por exemplo para usá-la em [sessões Cowork e cloud](#skills-in-cowork-and-cloud-sessions) e rotinas, você a carrega no claude.ai, então as mesmas regras se aplicam.


411A tabela abaixo mostra de onde o nome do comando vem para cada layout:411A tabela abaixo mostra de onde o nome do comando vem para cada layout:

412 412 

413| Local da skill | Fonte do nome do comando | Exemplo |413| Local da skill | Fonte do nome do comando | Exemplo |

414| :---------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- |414| :---------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------- |

415| Diretório de skill sob `~/.claude/skills/` ou `.claude/skills/` | Nome do diretório | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` |415| Diretório de skill sob `~/.claude/skills/` ou `.claude/skills/` | Nome do diretório | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` |

416| [Aninhado](#where-skills-live) diretório `.claude/skills/`, quando o nome entra em conflito com outra skill | Caminho do subdiretório relativo ao diretório de trabalho, depois o nome do diretório de skill | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |416| [Aninhado](#where-skills-live) diretório `.claude/skills/`, quando o nome entra em conflito com outra skill | Caminho do subdiretório relativo ao diretório de trabalho, depois o nome do diretório de skill | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |

417| Arquivo sob `.claude/commands/` | Nome do arquivo sem extensão | `.claude/commands/deploy.md` → `/deploy` |417| Arquivo sob `.claude/commands/` | Nome do arquivo sem extensão | `.claude/commands/deploy.md` → `/deploy` |

418| Arquivo em um subdiretório de `.claude/commands/` | Caminho do subdiretório relativo a `commands/` com cada `/` substituído por `:`, depois o nome do arquivo sem extensão | `.claude/commands/frontend/component.md` → `/frontend:component` |418| Arquivo em um subdiretório de `.claude/commands/` | Caminho do subdiretório relativo a `commands/` com cada `/` substituído por `:`, depois o nome do arquivo sem extensão | `.claude/commands/frontend/component.md` → `/frontend:component` |

419| Subdiretório `skills/` do plugin | Frontmatter `name` ou o nome do diretório, com namespace pelo plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`, ou `/my-plugin:fancy` com `name: fancy` |419| Subdiretório `skills/` do plugin | Frontmatter `name` ou o nome do diretório, com namespace pelo plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`, ou `/my-plugin:fancy` com `name: fancy` |

420| `SKILL.md` raiz do plugin | Frontmatter `name`, com o nome do diretório do plugin como fallback | `my-plugin/SKILL.md` com `name: review` → `/my-plugin:review`. Veja [Regras de comportamento de caminho](/docs/pt/plugins-reference#path-behavior-rules) |420| `SKILL.md` raiz do plugin | Frontmatter `name`, com o nome do diretório do plugin como fallback | `my-plugin/SKILL.md` com `name: review` → `/my-plugin:review`. Veja [uma única skill na raiz do plugin](/docs/pt/plugins/components#skills) |

421| Skill [sincronizada do claude.ai](#how-synced-skills-behave) | O nome da skill em sua conta claude.ai, prefixado com `anthropic-skills:` | Skill de conta `deploy` → `/anthropic-skills:deploy`, ou `/deploy` enquanto nenhum outro comando usa esse nome |421| Skill [sincronizada do claude.ai](#how-synced-skills-behave) | O nome da skill em sua conta claude.ai, prefixado com `anthropic-skills:` | Skill de conta `deploy` → `/anthropic-skills:deploy`, ou `/deploy` enquanto nenhum outro comando usa esse nome |

422 422 

423Em uma skill de plugin, o frontmatter `name` substitui o nome do diretório no último segmento do comando, então `my-plugin/skills/review/SKILL.md` com `name: fancy` se torna `/my-plugin:fancy`. O comando `/fancy` simples também invoca a skill a menos que outro comando já use esse nome. Se o `name` que você escreve já começa com o próprio prefixo do plugin, Claude Code não adiciona o prefixo novamente na v2.1.246 ou posterior. Por exemplo, `name: my-plugin:fancy` ainda se torna `/my-plugin:fancy`. Da v2.1.216 até v2.1.245, Claude Code duplicava o prefixo quando o `name` já o carregava.423Em uma skill de plugin, o frontmatter `name` substitui o nome do diretório no último segmento do comando, então `my-plugin/skills/review/SKILL.md` com `name: fancy` se torna `/my-plugin:fancy`. O comando `/fancy` simples também invoca a skill a menos que outro comando já use esse nome. Se o `name` que você escreve já começa com o próprio prefixo do plugin, Claude Code não adiciona o prefixo novamente na v2.1.246 ou posterior. Por exemplo, `name: my-plugin:fancy` ainda se torna `/my-plugin:fancy`. Da v2.1.216 até v2.1.245, Claude Code duplicava o prefixo quando o `name` já o carregava.


442| `${CLAUDE_EFFORT}` | O nível de esforço atual: `low`, `medium`, `high`, `xhigh` ou `max`. Ultracode não é um nível distinto e relata como `xhigh`. Use isso para adaptar instruções de skill à configuração de esforço ativo. |442| `${CLAUDE_EFFORT}` | O nível de esforço atual: `low`, `medium`, `high`, `xhigh` ou `max`. Ultracode não é um nível distinto e relata como `xhigh`. Use isso para adaptar instruções de skill à configuração de esforço ativo. |

443| `${CLAUDE_SKILL_DIR}` | O diretório contendo o arquivo `SKILL.md` da skill. Para skills de plugin, este é o subdiretório da skill dentro do plugin, não a raiz do plugin. Use isso em comandos de injeção bash para referenciar scripts ou arquivos agrupados com a skill, independentemente do diretório de trabalho atual. |443| `${CLAUDE_SKILL_DIR}` | O diretório contendo o arquivo `SKILL.md` da skill. Para skills de plugin, este é o subdiretório da skill dentro do plugin, não a raiz do plugin. Use isso em comandos de injeção bash para referenciar scripts ou arquivos agrupados com a skill, independentemente do diretório de trabalho atual. |

444| `${CLAUDE_PROJECT_DIR}` | O diretório raiz do projeto. Este é o mesmo caminho que [hooks](/docs/pt/hooks#reference-scripts-by-path) e servidores MCP recebem como `CLAUDE_PROJECT_DIR`. Use isso para referenciar scripts ou arquivos locais do projeto, como `${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh`, independentemente de onde a skill está instalada. |444| `${CLAUDE_PROJECT_DIR}` | O diretório raiz do projeto. Este é o mesmo caminho que [hooks](/docs/pt/hooks#reference-scripts-by-path) e servidores MCP recebem como `CLAUDE_PROJECT_DIR`. Use isso para referenciar scripts ou arquivos locais do projeto, como `${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh`, independentemente de onde a skill está instalada. |

445| `${CLAUDE_PLUGIN_ROOT}` | O diretório de instalação do plugin. Substituído apenas em skills de plugin. Use isso para referenciar scripts ou arquivos agrupados em qualquer lugar do plugin, incluindo recursos compartilhados entre as skills do plugin. Veja [variáveis de ambiente do plugin](/docs/pt/plugins-reference#environment-variables). |445| `${CLAUDE_PLUGIN_ROOT}` | O diretório de instalação do plugin. Substituído apenas em skills de plugin. Use isso para referenciar scripts ou arquivos agrupados em qualquer lugar do plugin, incluindo recursos compartilhados entre as skills do plugin. Veja [variáveis de ambiente do plugin](/docs/pt/plugins/manifest-reference#environment-variables). |

446| `${CLAUDE_PLUGIN_DATA}` | O [diretório de dados persistentes](/docs/pt/plugins-reference#persistent-data-directory) do plugin, que sobrevive a atualizações de plugin. Substituído apenas em skills de plugin. Use isso para referenciar dependências instaladas, arquivos gerados ou caches que devem sobreviver a uma atualização. |446| `${CLAUDE_PLUGIN_DATA}` | O [diretório de dados persistentes](/docs/pt/plugins/components#path-variables-and-persistent-data) do plugin, que sobrevive a atualizações de plugin. Substituído apenas em skills de plugin. Use isso para referenciar dependências instaladas, arquivos gerados ou caches que devem sobreviver a uma atualização. |

447 447 

448Claude Code substitui `${CLAUDE_SKILL_DIR}` e `${CLAUDE_PROJECT_DIR}` em dois lugares: o conteúdo markdown da skill e regras Bash no frontmatter [`allowed-tools`](#frontmatter-reference). Em uma skill de plugin, Claude Code substitui `${CLAUDE_PLUGIN_ROOT}` e `${CLAUDE_PLUGIN_DATA}` nos mesmos dois lugares. Usar a mesma variável em ambos os lugares permite que uma skill execute um script agrupado sem um prompt de permissão. A skill a seguir mostra o padrão:448Claude Code substitui `${CLAUDE_SKILL_DIR}` e `${CLAUDE_PROJECT_DIR}` em dois lugares: o conteúdo markdown da skill e regras Bash no frontmatter [`allowed-tools`](#frontmatter-reference). Em uma skill de plugin, Claude Code substitui `${CLAUDE_PLUGIN_ROOT}` e `${CLAUDE_PLUGIN_DATA}` nos mesmos dois lugares. Usar a mesma variável em ambos os lugares permite que uma skill execute um script agrupado sem um prompt de permissão. A skill a seguir mostra o padrão:

449 449 


892 892 

893A verificação de ambas é uma comparação de linha de base. Colete alguns prompts realistas, execute cada um em uma sessão nova com a skill disponível e novamente com ela [desabilitada](#override-skill-visibility-from-settings), e compare os resultados. Uma sessão nova é importante porque o contexto restante da autoria da skill mascarará lacunas nas instruções escritas.893A verificação de ambas é uma comparação de linha de base. Colete alguns prompts realistas, execute cada um em uma sessão nova com a skill disponível e novamente com ela [desabilitada](#override-skill-visibility-from-settings), e compare os resultados. Uma sessão nova é importante porque o contexto restante da autoria da skill mascarará lacunas nas instruções escritas.

894 894 

895Duas ferramentas automatizam essa comparação. Para uma skill que é entregue em um [plugin](/docs/pt/plugins), [`claude plugin eval`](/docs/pt/plugin-evals) executa cada prompt em uma sessão isolada com e sem o plugin, a classifica com avaliadores que você define ou que ela escreve para você, e sai com código não-zero abaixo de um limite para que você possa bloquear CI nela. Para iterar em uma única skill dentro de uma conversa Claude Code, o plugin skill-creator abaixo executa um loop similar com seu próprio formato `evals/evals.json`. Os dois formatos não são intercambiáveis.895Duas ferramentas automatizam essa comparação. Para uma skill que é entregue em um [plugin](/docs/pt/plugins/overview), [`claude plugin eval`](/docs/pt/plugin-evals) executa cada prompt em uma sessão isolada com e sem o plugin, a classifica com avaliadores que você define ou que ela escreve para você, e sai com código não-zero abaixo de um limite para que você possa bloquear CI nela. Para iterar em uma única skill dentro de uma conversa Claude Code, o plugin skill-creator abaixo executa um loop similar com seu próprio formato `evals/evals.json`. Os dois formatos não são intercambiáveis.

896 896 

897<h3 id="run-evals-with-skill-creator">897<h3 id="run-evals-with-skill-creator">

898 Executar evals com skill-creator898 Executar evals com skill-creator


907Se a instalação falhar, corresponda à mensagem que Claude Code relata:907Se a instalação falhar, corresponda à mensagem que Claude Code relata:

908 908 

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

910* O plugin [não foi encontrado no marketplace](/docs/pt/discover-plugins#install-plugins): verifique o nome do plugin.910* O plugin [não foi encontrado no marketplace](/docs/pt/plugins/install#install-a-plugin): verifique o nome do plugin.

911 911 

912Se o resumo da instalação relatar `Run /reload-plugins to activate.`, Claude Code então executa esse reload para você. Se o reload avisar que sua próxima mensagem releria a conversa, execute `/reload-plugins --force` para disponibilizar as skills do plugin na sessão atual. Depois peça ao Claude para avaliar uma skill existente, por exemplo `evaluate my summarize-changes skill with skill-creator`. O plugin o orienta através da escrita de casos de teste e executa o loop:912Se o resumo da instalação relatar `Run /reload-plugins to activate.`, Claude Code então executa esse reload para você. Se o reload avisar que sua próxima mensagem releria a conversa, execute `/reload-plugins --force` para disponibilizar as skills do plugin na sessão atual. Depois peça ao Claude para avaliar uma skill existente, por exemplo `evaluate my summarize-changes skill with skill-creator`. O plugin o orienta através da escrita de casos de teste e executa o loop:

913 913 


928Skills podem ser distribuídas em diferentes escopos dependendo do seu público:928Skills podem ser distribuídas em diferentes escopos dependendo do seu público:

929 929 

930* **Project skills**: Faça commit de `.claude/skills/` para controle de versão930* **Project skills**: Faça commit de `.claude/skills/` para controle de versão

931* **Plugins**: Crie um diretório `skills/` em seu [plugin](/docs/pt/plugins)931* **Plugins**: Crie um diretório `skills/` em seu [plugin](/docs/pt/plugins/overview)

932* **Managed**: Implante em toda a organização através de [managed settings](/docs/pt/managed-settings)932* **Managed**: Implante em toda a organização através de [managed settings](/docs/pt/managed-settings)

933 933 

934<h3 id="generate-visual-output">934<h3 id="generate-visual-output">


1143 1143 

1144Se a skill é fornecida em um plugin, você pode medir com que frequência ela é acionada em prompts realistas em vez de verificar uma de cada vez: escreva um caso de eval com um [`tool_used: Skill` grader](/docs/pt/plugin-evals#create-your-first-eval-suite) e execute-o com `claude plugin eval` após cada mudança de descrição.1144Se a skill é fornecida em um plugin, você pode medir com que frequência ela é acionada em prompts realistas em vez de verificar uma de cada vez: escreva um caso de eval com um [`tool_used: Skill` grader](/docs/pt/plugin-evals#create-your-first-eval-suite) e execute-o com `claude plugin eval` após cada mudança de descrição.

1145 1145 

1146Para encontrar arquivos `SKILL.md` cujo frontmatter não é analisado, execute [`claude plugin validate`](/docs/pt/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest) no diretório de skills, por exemplo `claude plugin validate .claude/skills` para skills de projeto ou `claude plugin validate ~/.claude/skills` para skills pessoais. Requer Claude Code v2.1.233 ou posterior.1146Para encontrar arquivos `SKILL.md` cujo frontmatter não é analisado, execute [`claude plugin validate`](/docs/pt/plugins/cli-reference#validate-a-directory) no diretório de skills, por exemplo `claude plugin validate .claude/skills` para skills de projeto ou `claude plugin validate ~/.claude/skills` para skills pessoais. Requer Claude Code v2.1.233 ou posterior.

1147 1147 

1148<h3 id="skill-triggers-too-often">1148<h3 id="skill-triggers-too-often">

1149 Skill é acionada com muita frequência1149 Skill é acionada com muita frequência


1184* **[Avaliando a qualidade de saída de skill](https://agentskills.io/skill-creation/evaluating-skills)**: o formato do arquivo eval e fluxo de trabalho de iteração em agentskills.io1184* **[Avaliando a qualidade de saída de skill](https://agentskills.io/skill-creation/evaluating-skills)**: o formato do arquivo eval e fluxo de trabalho de iteração em agentskills.io

1185* **[Melhores práticas de autoria de skill](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices)**: orientação de escrita que se aplica em produtos Claude1185* **[Melhores práticas de autoria de skill](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices)**: orientação de escrita que se aplica em produtos Claude

1186* **[Subagents](/docs/pt/sub-agents)**: delegue tarefas para agents especializados1186* **[Subagents](/docs/pt/sub-agents)**: delegue tarefas para agents especializados

1187* **[Plugins](/docs/pt/plugins)**: empacote e distribua skills com outras extensões1187* **[Plugins](/docs/pt/plugins/overview)**: empacote e distribua skills com outras extensões

1188* **[Hooks](/docs/pt/hooks)**: automatize fluxos de trabalho em torno de eventos de ferramentas1188* **[Hooks](/docs/pt/hooks)**: automatize fluxos de trabalho em torno de eventos de ferramentas

1189* **[Memory](/docs/pt/memory)**: gerencie arquivos CLAUDE.md para contexto persistente1189* **[Memory](/docs/pt/memory)**: gerencie arquivos CLAUDE.md para contexto persistente

1190* **[Comandos](/docs/pt/commands)**: referência para comandos integrados e skills agrupadas1190* **[Comandos](/docs/pt/commands)**: referência para comandos integrados e skills agrupadas

statusline.md +1 −1

Details

1142 1142 

1143Escreva uma linha JSON para stdout por linha que você queira substituir, na forma `{"id": "<task id>", "content": "<row body>"}`. A string `content` é renderizada como está, incluindo cores ANSI e hiperlinks OSC 8. Omita o `id` de uma tarefa para manter a renderização padrão para essa linha; emita uma string `content` vazia para ocultá-la.1143Escreva uma linha JSON para stdout por linha que você queira substituir, na forma `{"id": "<task id>", "content": "<row body>"}`. A string `content` é renderizada como está, incluindo cores ANSI e hiperlinks OSC 8. Omita o `id` de uma tarefa para manter a renderização padrão para essa linha; emita uma string `content` vazia para ocultá-la.

1144 1144 

1145Os mesmos portões de confiança, `disableAllHooks` e [`allowManagedHooksOnly`](/docs/pt/settings-reference#allowmanagedhooksonly) que se aplicam a `statusLine` se aplicam aqui. Plugins podem enviar um `subagentStatusLine` padrão em seu [`settings.json`](/docs/pt/plugins-reference#standard-plugin-layout), mas diferentemente de hooks, valores de plugin não são executados sob `allowManagedHooksOnly` mesmo quando o plugin é forçadamente ativado nas configurações gerenciadas `enabledPlugins`.1145Os mesmos portões de confiança, `disableAllHooks` e [`allowManagedHooksOnly`](/docs/pt/settings-reference#allowmanagedhooksonly) que se aplicam a `statusLine` se aplicam aqui. Plugins podem enviar um `subagentStatusLine` padrão em seu [`settings.json`](/docs/pt/plugins/manifest-reference#standard-layout), mas diferentemente de hooks, valores de plugin não são executados sob `allowManagedHooksOnly` mesmo quando o plugin é forçadamente ativado nas configurações gerenciadas `enabledPlugins`.

1146 1146 

1147<h2 id="tips">1147<h2 id="tips">

1148 Dicas1148 Dicas

sub-agents.md +16 −14

Details

169Armazene arquivos de subagente em locais diferentes dependendo do escopo. Quando múltiplos subagentes compartilham o mesmo nome, Claude Code usa o que está no local de prioridade mais alta.169Armazene arquivos de subagente em locais diferentes dependendo do escopo. Quando múltiplos subagentes compartilham o mesmo nome, Claude Code usa o que está no local de prioridade mais alta.

170 170 

171| Location | Scope | Priority | How to create |171| Location | Scope | Priority | How to create |

172| :--------------------------- | :---------------------- | :---------- | :-------------------------------------------- |172| :--------------------------- | :---------------------- | :---------- | :--------------------------------------------- |

173| Managed settings | Organization-wide | 1 (highest) | Deployed via [managed settings](/docs/pt/settings) |173| Managed settings | Organization-wide | 1 (highest) | Deployed via [managed settings](/docs/pt/settings) |

174| `--agents` CLI flag | Current session | 2 | Pass JSON when launching Claude Code |174| `--agents` CLI flag | Current session | 2 | Pass JSON when launching Claude Code |

175| `.claude/agents/` | Current project | 3 | Ask Claude, or create the file manually |175| `.claude/agents/` | Current project | 3 | Ask Claude, or create the file manually |

176| `~/.claude/agents/` | All your projects | 4 | Ask Claude, or create the file manually |176| `~/.claude/agents/` | All your projects | 4 | Ask Claude, or create the file manually |

177| Plugin's `agents/` directory | Where plugin is enabled | 5 (lowest) | Installed with [plugins](/docs/pt/plugins) |177| Plugin's `agents/` directory | Where plugin is enabled | 5 (lowest) | Installed with [plugins](/docs/pt/plugins/overview) |

178 178 

179**Subagentes de projeto** (`.claude/agents/`) são ideais para subagentes específicos de uma base de código. Verifique-os no controle de versão para que sua equipe possa usá-los e melhorá-los colaborativamente.179**Subagentes de projeto** (`.claude/agents/`) são ideais para subagentes específicos de uma base de código. Verifique-os no controle de versão para que sua equipe possa usá-los e melhorá-los colaborativamente.

180 180 

181Subagentes de projeto são descobertos caminhando para cima a partir do diretório de trabalho atual, portanto cada `.claude/agents/` entre lá e a raiz do repositório é verificado. A partir da v2.1.178, quando mais de um desses diretórios aninhados define o mesmo `name`, Claude Code usa a definição mais próxima do diretório de trabalho.181Subagentes de projeto são descobertos caminhando para cima a partir do diretório de trabalho atual, portanto cada `.claude/agents/` entre lá e a raiz do repositório é verificado. Quando mais de um desses diretórios aninhados define o mesmo `name`, Claude Code usa a definição mais próxima do diretório de trabalho.

182 182 

183Quando você adiciona um diretório com `--add-dir` ou `/add-dir`, Claude Code também carrega sua pasta `.claude/agents/`, junto com seus subagentes de projeto. Veja [Diretórios adicionais](/docs/pt/permissions#additional-directories-grant-file-access-not-configuration) para quais outros tipos de configuração carregam de `--add-dir`. Para compartilhar subagentes entre projetos sem `--add-dir`, use `~/.claude/agents/` ou um [plugin](/docs/pt/plugins).183Quando você adiciona um diretório com `--add-dir` ou `/add-dir`, Claude Code também carrega sua pasta `.claude/agents/`, junto com seus subagentes de projeto. Veja [Diretórios adicionais](/docs/pt/permissions#additional-directories-grant-file-access-not-configuration) para quais outros tipos de configuração carregam de `--add-dir`. Para compartilhar subagentes entre projetos sem `--add-dir`, use `~/.claude/agents/` ou um [plugin](/docs/pt/plugins/overview).

184 184 

185**Subagentes de usuário** (`~/.claude/agents/`) são subagentes pessoais disponíveis em todos os seus projetos.185**Subagentes de usuário** (`~/.claude/agents/`) são subagentes pessoais disponíveis em todos os seus projetos.

186 186 


238 238 

239**Subagentes gerenciados** são implantados por administradores da organização. Coloque arquivos markdown em `.claude/agents/` dentro do [diretório de configurações gerenciadas](/docs/pt/managed-settings#delivery-mechanisms), usando o mesmo formato de frontmatter que subagentes de projeto e usuário. Definições gerenciadas têm precedência sobre subagentes de projeto e usuário com o mesmo nome.239**Subagentes gerenciados** são implantados por administradores da organização. Coloque arquivos markdown em `.claude/agents/` dentro do [diretório de configurações gerenciadas](/docs/pt/managed-settings#delivery-mechanisms), usando o mesmo formato de frontmatter que subagentes de projeto e usuário. Definições gerenciadas têm precedência sobre subagentes de projeto e usuário com o mesmo nome.

240 240 

241**Subagentes de plugin** vêm de [plugins](/docs/pt/plugins) que você instalou. Eles carregam automaticamente junto com seus subagentes personalizados e aparecem na digitação de @-menção sob seu nome com escopo. Veja a [referência de componentes de plugin](/docs/pt/plugins-reference#agents) para detalhes sobre como criar subagentes de plugin.241**Subagentes de plugin** vêm de [plugins](/docs/pt/plugins/overview) que você instalou. Eles carregam automaticamente junto com seus subagentes personalizados e aparecem na digitação de @-menção sob seu nome com escopo. Veja a [referência de componentes de plugin](/docs/pt/plugins/components#agents) para detalhes sobre como criar subagentes de plugin.

242 242 

243<Note>243<Note>

244 Por razões de segurança, subagentes de plugin não suportam os campos de frontmatter `hooks`, `mcpServers` ou `permissionMode`. Estes campos são ignorados ao carregar agentes de um plugin. Se você precisar deles, copie o arquivo do agente para `.claude/agents/` ou `~/.claude/agents/`. Você também pode adicionar regras a [`permissions.allow`](/docs/pt/settings-reference#permissions-allow) em `settings.json` ou `settings.local.json`, mas estas regras se aplicam a toda a sessão, não apenas ao subagente do plugin.244 Por razões de segurança, subagentes de plugin não suportam os campos de frontmatter `hooks`, `mcpServers` ou `permissionMode`. Estes campos são ignorados ao carregar agentes de um plugin. Se você precisar deles, copie o arquivo do agente para `.claude/agents/` ou `~/.claude/agents/`. Você também pode adicionar regras a [`permissions.allow`](/docs/pt/settings-reference#permissions-allow) em `settings.json` ou `settings.local.json`, mas estas regras se aplicam a toda a sessão, não apenas ao subagente do plugin.


305 305 

306| Field | Required | Description |306| Field | Required | Description |

307| :---------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |307| :---------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

308| `name` | Yes | Identificador único, como `code-reviewer` ou `reviewer-v2`. [Hooks](/docs/pt/hooks#subagentstart) recebem este valor como `agent_type`. O nome do arquivo não precisa corresponder. Nomes não podem conter `:`, que é reservado para [identificadores com escopo de plugin](/docs/pt/plugins) como `my-plugin:reviewer`. Claude Code não carrega um arquivo cujo nome contém um e registra um erro no log de debug. Antes da v2.1.218, tais nomes eram aceitos |308| `name` | Yes | Identificador único, como `code-reviewer` ou `reviewer-v2`. [Hooks](/docs/pt/hooks#subagentstart) recebem este valor como `agent_type`. O nome do arquivo não precisa corresponder. Nomes não podem conter `:`, que é reservado para [identificadores com escopo de plugin](/docs/pt/plugins/overview) como `my-plugin:reviewer`. Claude Code não carrega um arquivo cujo nome contém um e registra um erro no log de debug. Antes da v2.1.218, tais nomes eram aceitos |

309| `description` | Yes | Quando Claude deve delegar para este subagente |309| `description` | Yes | Quando Claude deve delegar para este subagente |

310| `tools` | No | [Ferramentas](#available-tools) que o subagente pode usar, como uma string separada por vírgulas como `Read, Grep, Bash` ou uma lista YAML. Herda todas as ferramentas disponíveis para subagentes se omitido. Se nenhuma entrada na lista se resolver para uma ferramenta, o subagente geralmente [falha ao iniciar](/docs/pt/errors#agent-would-be-spawned-with-zero-tools) com um erro nomeando as entradas. Para pré-carregar Skills no contexto, use o campo `skills` em vez de listar `Skill` aqui |310| `tools` | No | [Ferramentas](#available-tools) que o subagente pode usar, como uma string separada por vírgulas como `Read, Grep, Bash` ou uma lista YAML. Herda todas as ferramentas disponíveis para subagentes se omitido. Se nenhuma entrada na lista se resolver para uma ferramenta, o subagente geralmente [falha ao iniciar](/docs/pt/errors#agent-would-be-spawned-with-zero-tools) com um erro nomeando as entradas. Para pré-carregar Skills no contexto, use o campo `skills` em vez de listar `Skill` aqui |

311| `disallowedTools` | No | Ferramentas a negar, removidas da lista herdada ou especificada. Mesmo formato que `tools`. Uma entrada com um especificador, como `Bash(git push *)`, ainda [remove a ferramenta inteira](#available-tools) |311| `disallowedTools` | No | Ferramentas a negar, removidas da lista herdada ou especificada. Mesmo formato que `tools`. Uma entrada com um especificador, como `Bash(git push *)`, ainda [remove a ferramenta inteira](#available-tools) |


349 349 

350Para ver o log de debug, execute Claude Code com `--debug`.350Para ver o log de debug, execute Claude Code com `--debug`.

351 351 

352Um [subagente de plugin](/docs/pt/plugins-reference#agents) cujo frontmatter não tem `name` ou não analisa ainda carrega, sob seu nome de arquivo.352Um [subagente de plugin](/docs/pt/plugins/components#agents) cujo frontmatter não tem `name` ou não analisa ainda carrega, sob seu nome de arquivo.

353 353 

354<h5 id="check-an-agents-directory-before-a-session">354<h5 id="check-an-agents-directory-before-a-session">

355 Verificar um diretório `agents` antes de uma sessão355 Verificar um diretório `agents` antes de uma sessão

356</h5>356</h5>

357 357 

358Para encontrar arquivos em um diretório `agents` cujo frontmatter não analisa, execute `claude plugin validate` contra o diretório, por exemplo `.claude/agents` ou `~/.claude/agents`. Claude Code verifica apenas [o diretório que você nomeia](/docs/pt/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest), e não sinaliza um arquivo cujo frontmatter analisa mas não tem `name`. Requer Claude Code v2.1.233 ou posterior.358Para encontrar arquivos em um diretório `agents` cujo frontmatter não analisa, execute `claude plugin validate` contra o diretório, por exemplo `.claude/agents` ou `~/.claude/agents`. Claude Code verifica apenas [o diretório que você nomeia](/docs/pt/plugins/cli-reference#validate-a-directory), e não sinaliza um arquivo cujo frontmatter analisa mas não tem `name`. Requer Claude Code v2.1.233 ou posterior.

359 359 

360<h3 id="choose-a-model">360<h3 id="choose-a-model">

361 Escolher um modelo361 Escolher um modelo


573* Um nome que referencia um servidor que você já configurou573* Um nome que referencia um servidor que você já configurou

574* Um servidor inline em um arquivo de agente de `~/.claude/agents/`, em um que você passa com `--agents` ou a opção `agents` do SDK, ou em um que as configurações gerenciadas fornecem574* Um servidor inline em um arquivo de agente de `~/.claude/agents/`, em um que você passa com `--agents` ou a opção `agents` do SDK, ou em um que as configurações gerenciadas fornecem

575 575 

576A partir da v2.1.153, as restrições de MCP que se aplicam à sessão principal também cobrem servidores declarados no frontmatter do subagente:576As restrições de MCP que se aplicam à sessão principal também cobrem servidores declarados no frontmatter do subagente:

577 577 

578* [`--strict-mcp-config`](/docs/pt/cli-reference) e [`--bare`](/docs/pt/cli-reference)578* [`--strict-mcp-config`](/docs/pt/cli-reference) e [`--bare`](/docs/pt/cli-reference)

579* [Configuração de MCP gerenciada pela empresa](/docs/pt/managed-mcp)579* [Configuração de MCP gerenciada pela empresa](/docs/pt/managed-mcp)


820| `SubagentStart` | Nome do tipo de agente | Quando um subagente começa a execução |820| `SubagentStart` | Nome do tipo de agente | Quando um subagente começa a execução |

821| `SubagentStop` | Nome do tipo de agente | Quando um subagente completa |821| `SubagentStop` | Nome do tipo de agente | Quando um subagente completa |

822 822 

823Ambos os eventos suportam matchers para direcionar tipos de agente específicos por nome. O valor do matcher é o `name` do frontmatter do agente para subagentes no nível de projeto e usuário, ou o identificador com escopo de plugin como `my-plugin:db-agent` para [subagentes de plugin](/docs/pt/plugins). Um nome com escopo contém dois-pontos, portanto é avaliado como uma [expressão regular sem âncora](/docs/pt/hooks#matcher-patterns); ancorá-lo com `^` e `$`, como em `^my-plugin:db-agent$`, para corresponder apenas a esse agente.823Ambos os eventos suportam matchers para direcionar tipos de agente específicos por nome. O valor do matcher é o `name` do frontmatter do agente para subagentes no nível de projeto e usuário, ou o identificador com escopo de plugin como `my-plugin:db-agent` para [subagentes de plugin](/docs/pt/plugins/components#agents). Um nome com escopo contém dois-pontos, portanto é avaliado como uma [expressão regular sem âncora](/docs/pt/hooks#matcher-patterns); ancorá-lo com `^` e `$`, como em `^my-plugin:db-agent$`, para corresponder apenas a esse agente.

824 824 

825Este exemplo executa um script de configuração apenas quando o subagente `db-agent` inicia, e um script de limpeza quando qualquer subagente para:825Este exemplo executa um script de configuração apenas quando o subagente `db-agent` inicia, e um script de limpeza quando qualquer subagente para:

826 826 


862 862 

863Mantenha as descrições breves: Claude Code mostra um aviso de inicialização quando as descrições combinadas de seus subagentes ultrapassam o [limite de 15.000 tokens](/docs/pt/errors#agent-descriptions-are-over-the-15000-token-limit), e ainda carrega todos os subagentes.863Mantenha as descrições breves: Claude Code mostra um aviso de inicialização quando as descrições combinadas de seus subagentes ultrapassam o [limite de 15.000 tokens](/docs/pt/errors#agent-descriptions-are-over-the-15000-token-limit), e ainda carrega todos os subagentes.

864 864 

865Se o subagente é fornecido em um [plugin](/docs/pt/plugins/overview), você pode medir o quão confiável Claude delega a ele em prompts realistas em vez de verificar um de cada vez: [`claude plugin eval`](/docs/pt/plugin-evals) executa cada prompt com e sem o plugin e pontua os resultados.

866 

865<h3 id="invoke-subagents-explicitly">867<h3 id="invoke-subagents-explicitly">

866 Invocar subagentes explicitamente868 Invocar subagentes explicitamente

867</h3>869</h3>


887 889 

888Sua mensagem completa ainda vai para Claude, que escreve o prompt de tarefa do subagente com base no que você pediu. O @-mention controla qual subagente Claude invoca, não qual prompt ele recebe.890Sua mensagem completa ainda vai para Claude, que escreve o prompt de tarefa do subagente com base no que você pediu. O @-mention controla qual subagente Claude invoca, não qual prompt ele recebe.

889 891 

890Subagentes fornecidos por um [plugin](/docs/pt/plugins) habilitado aparecem na lista de sugestões sob seu nome com escopo, como `my-plugin:code-reviewer` ou `my-plugin:review:security` quando o plugin [organiza agentes em subpastas](#choose-the-subagent-scope). Subagentes de fundo nomeados atualmente em execução na sessão também aparecem na lista de sugestões, mostrando seu status ao lado do nome.892Subagentes fornecidos por um [plugin](/docs/pt/plugins/overview) habilitado aparecem na lista de sugestões sob seu nome com escopo, como `my-plugin:code-reviewer` ou `my-plugin:review:security` quando o plugin [organiza agentes em subpastas](#choose-the-subagent-scope). Subagentes de fundo nomeados atualmente em execução na sessão também aparecem na lista de sugestões, mostrando seu status ao lado do nome.

891 893 

892Você também pode digitar a menção manualmente sem usar o seletor: `@agent-<name>` para subagentes locais, ou `@agent-` seguido pelo nome com escopo para subagentes de plugin, por exemplo `@agent-my-plugin:code-reviewer`. Enquanto você digita este formulário, a lista de sugestões mostra correspondências de arquivo em vez de agentes. A menção do agente ainda é resolvida quando você envia.894Você também pode digitar a menção manualmente sem usar o seletor: `@agent-<name>` para subagentes locais, ou `@agent-` seguido pelo nome com escopo para subagentes de plugin, por exemplo `@agent-my-plugin:code-reviewer`. Enquanto você digita este formulário, a lista de sugestões mostra correspondências de arquivo em vez de agentes. A menção do agente ainda é resolvida quando você envia.

893 895 


934Subagentes podem ser executados em primeiro plano ou segundo plano:936Subagentes podem ser executados em primeiro plano ou segundo plano:

935 937 

936* **Subagentes em primeiro plano** bloqueiam a conversa principal até a conclusão. Prompts de permissão são passados para você conforme surgem.938* **Subagentes em primeiro plano** bloqueiam a conversa principal até a conclusão. Prompts de permissão são passados para você conforme surgem.

937* **Subagentes em segundo plano** são executados simultaneamente enquanto você continua trabalhando. Quando um subagente em segundo plano atinge uma chamada de ferramenta que precisa de permissão, Claude Code exibe o prompt em sua sessão principal e nomeia o subagente que está pedindo. Aprove para deixar o subagente continuar, ou pressione Esc para negar essa chamada de ferramenta sem parar o subagente. Antes da v2.1.186, subagentes em segundo plano negavam automaticamente qualquer chamada de ferramenta que teria solicitado.939* **Subagentes em segundo plano** são executados simultaneamente enquanto você continua trabalhando. Quando um subagente em segundo plano atinge uma chamada de ferramenta que precisa de permissão, Claude Code exibe o prompt em sua sessão principal e nomeia o subagente que está pedindo. Aprove para deixar o subagente continuar, ou pressione Esc para negar essa chamada de ferramenta sem parar o subagente.

938 940 

939Para cada subagente que Claude gera com a ferramenta Agent, Claude Code escolhe primeiro plano ou segundo plano do primeiro desses casos que se aplica:941Para cada subagente que Claude gera com a ferramenta Agent, Claude Code escolhe primeiro plano ou segundo plano do primeiro desses casos que se aplica:

940 942 


1177 1179 

1178Um subagente que você parou você mesmo, com `x` em `/tasks` ou uma solicitação SDK `stop_task`, não retoma automaticamente. Se Claude enviar uma mensagem a ele, a mensagem é recusada e Claude é informado de que o agente foi cancelado.1180Um subagente que você parou você mesmo, com `x` em `/tasks` ou uma solicitação SDK `stop_task`, não retoma automaticamente. Se Claude enviar uma mensagem a ele, a mensagem é recusada e Claude é informado de que o agente foi cancelado.

1179 1181 

1180Enquanto [a linha desse subagente ainda está no painel de subagentes](#run-subagents-in-foreground-or-background), digite em sua transcrição para retomá-lo você mesmo. Depois disso, uma mensagem de Claude pode retomá-lo automaticamente novamente. Requer Claude Code v2.1.191 ou posterior.1182Enquanto [a linha desse subagente ainda está no painel de subagentes](#run-subagents-in-foreground-or-background), digite em sua transcrição para retomá-lo você mesmo. Depois disso, uma mensagem de Claude pode retomá-lo automaticamente novamente.

1181 1183 

1182Retomar inicia uma nova execução do agente sob o mesmo ID, então um subagente que já havia falhado ou sido concluído mostra como em execução novamente na lista de tarefas e nos eventos de tarefa do Agent SDK. Antes da v2.1.205, ele mantinha seu status anterior de falha ou conclusão enquanto a execução retomada estava funcionando.1184Retomar inicia uma nova execução do agente sob o mesmo ID, então um subagente que já havia falhado ou sido concluído mostra como em execução novamente na lista de tarefas e nos eventos de tarefa do Agent SDK. Antes da v2.1.205, ele mantinha seu status anterior de falha ou conclusão enquanto a execução retomada estava funcionando.

1183 1185 


1495 1497 

1496Agora que você entende subagentes, explore estes recursos relacionados:1498Agora que você entende subagentes, explore estes recursos relacionados:

1497 1499 

1498* [Distribuir subagentes com plugins](/docs/pt/plugins) para compartilhar subagentes entre equipes ou projetos1500* [Distribuir subagentes com plugins](/docs/pt/plugins/components#agents) para compartilhar subagentes entre equipes ou projetos

1499* [Executar Claude Code programaticamente](/docs/pt/headless) com o Agent SDK para CI/CD e automação1501* [Executar Claude Code programaticamente](/docs/pt/headless) com o Agent SDK para CI/CD e automação

1500* [Usar MCP servers](/docs/pt/mcp) para dar aos subagentes acesso a ferramentas e dados externos1502* [Usar MCP servers](/docs/pt/mcp) para dar aos subagentes acesso a ferramentas e dados externos

Details

156 Criar um tema personalizado156 Criar um tema personalizado

157</h3>157</h3>

158 158 

159Além dos presets integrados, `/theme` lista todos os temas personalizados que você definiu e quaisquer temas contribuídos pelos [plugins](/docs/pt/plugins-reference#themes) instalados. Selecione **Novo tema personalizado…** no final da lista para criar um interativamente: você nomeia o tema e depois escolhe tokens de cores individuais para substituir. Pressione `Ctrl+E` enquanto um tema personalizado está destacado para editá-lo.159Além dos presets integrados, `/theme` lista todos os temas personalizados que você definiu e quaisquer temas contribuídos pelos [plugins](/docs/pt/plugins/components#themes-and-output-styles) instalados. Selecione **Novo tema personalizado…** no final da lista para criar um interativamente: você nomeia o tema e depois escolhe tokens de cores individuais para substituir. Pressione `Ctrl+E` enquanto um tema personalizado está destacado para editá-lo.

160 160 

161Cada tema personalizado é um arquivo JSON em `~/.claude/themes/`. O nome do arquivo sem a extensão `.json` é o slug do tema, e selecionar o tema armazena `custom:<slug>` como sua preferência de tema. O arquivo tem três campos opcionais:161Cada tema personalizado é um arquivo JSON em `~/.claude/themes/`. O nome do arquivo sem a extensão `.json` é o slug do tema, e selecionar o tema armazena `custom:<slug>` como sua preferência de tema. O arquivo tem três campos opcionais:

162 162 

Details

179Claude Code transmite a saída de um comando para um arquivo de trabalho enquanto o comando é executado; um comando cuja saída ultrapassa 5 GB é interrompido. Quando o comando termina, Claude Code lê a saída de volta desse arquivo, até a janela de releitura descrita abaixo. Quanto da saída chega a Claude inline depende se Claude Code trata o resultado como uma falha:179Claude Code transmite a saída de um comando para um arquivo de trabalho enquanto o comando é executado; um comando cuja saída ultrapassa 5 GB é interrompido. Quando o comando termina, Claude Code lê a saída de volta desse arquivo, até a janela de releitura descrita abaixo. Quanto da saída chega a Claude inline depende se Claude Code trata o resultado como uma falha:

180 180 

181| Resultado | O que Claude obtém |181| Resultado | O que Claude obtém |

182| :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |182| :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

183| Válido | Inline até aproximadamente 30.000 caracteres por padrão; além disso, o caminho de um arquivo salvo no diretório da sessão e truncado após 64 MiB, mais uma breve visualização do início, e Claude lê ou pesquisa o arquivo quando precisa do resto |183| Válido | Inline até aproximadamente 30.000 caracteres por padrão; além disso, o caminho de um arquivo salvo no diretório da sessão e truncado após 64 MiB, mais uma visualização de até os primeiros 2.000 caracteres, e Claude lê ou pesquisa o arquivo quando precisa do resto |

184| Falha | Inline até aproximadamente 10.000 caracteres; além disso, um trecho de cabeça e cauda desse tamanho cortado da janela de releitura, sem caminho de arquivo |184| Falha | Inline até aproximadamente 10.000 caracteres; além disso, um trecho de cabeça e cauda desse tamanho cortado da janela de releitura, sem caminho de arquivo |

185 185 

186Um comando que sai com código 1 conta como um resultado válido para a ferramenta Bash apenas quando Claude Code reconhece o código de saída 1 como um resultado benigno para esse comando: `grep`, `rg`, `egrep`, `fgrep`, `find`, `diff`, `test`, e `[`, mais `git diff` e `git grep`. Todo outro comando que sai com código 1 conta como uma falha, mesmo quando o código de saída 1 é um resultado informacional benigno: sem correspondências para `pgrep` e `jq -e`, arquivos que diferem para `cmp`.186Um comando que sai com código 1 conta como um resultado válido para a ferramenta Bash apenas quando Claude Code reconhece o código de saída 1 como um resultado benigno para esse comando: `grep`, `rg`, `egrep`, `fgrep`, `find`, `diff`, `test`, e `[`, mais `git diff` e `git grep`. Todo outro comando que sai com código 1 conta como uma falha, mesmo quando o código de saída 1 é um resultado informacional benigno: sem correspondências para `pgrep` e `jq -e`, arquivos que diferem para `cmp`.


221* `mcp`: [servidores MCP](/docs/pt/mcp) locais221* `mcp`: [servidores MCP](/docs/pt/mcp) locais

222* `lsp`: [servidores de linguagem](#lsp-tool-behavior)222* `lsp`: [servidores de linguagem](#lsp-tool-behavior)

223* `hooks`: comandos [hook](/docs/pt/hooks)223* `hooks`: comandos [hook](/docs/pt/hooks)

224* `plugin`: comandos que [plugins](/docs/pt/plugins) executam224* `plugin`: comandos que [plugins](/docs/pt/plugins/overview) executam

225* `helper`: comandos auxiliares próprios de Claude Code, como `git`225* `helper`: comandos auxiliares próprios de Claude Code, como `git`

226* `agent`: processos Claude Code filhos, como [colegas de equipe agentes](/docs/pt/agent-teams)226* `agent`: processos Claude Code filhos, como [colegas de equipe agentes](/docs/pt/agent-teams)

227 227 


344* Encontrar implementações de uma interface344* Encontrar implementações de uma interface

345* Rastrear hierarquias de chamadas345* Rastrear hierarquias de chamadas

346 346 

347Claude Code mantém a ferramenta inativa até que você instale um [plugin de inteligência de código](/docs/pt/discover-plugins#code-intelligence) para sua linguagem. Em [sessões na nuvem](/docs/pt/claude-code-on-the-web), Claude Code não inicia servidores de linguagem de plugin, portanto a ferramenta LSP permanece inativa lá. Claude Code obtém a configuração do servidor de linguagem do plugin, e você instala o binário do servidor você mesmo.347Claude Code mantém a ferramenta inativa até que você instale um [plugin de inteligência de código](/docs/pt/plugins/code-intelligence) para sua linguagem. Em [sessões na nuvem](/docs/pt/claude-code-on-the-web), Claude Code não inicia servidores de linguagem de plugin, portanto a ferramenta LSP permanece inativa lá. Claude Code obtém a configuração do servidor de linguagem do plugin, e você instala o binário do servidor você mesmo.

348 348 

349Claude Code retorna um resultado de erro para cada chamada LSP em um arquivo cujo servidor de linguagem não consegue iniciar.349Claude Code retorna um resultado de erro para cada chamada LSP em um arquivo cujo servidor de linguagem não consegue iniciar.

350 350 


376 376 

377A ferramenta não está disponível no Amazon Bedrock, na Agent Platform do Google Cloud ou no Microsoft Foundry. Também não está disponível quando `DISABLE_TELEMETRY` ou `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` está definido.377A ferramenta não está disponível no Amazon Bedrock, na Agent Platform do Google Cloud ou no Microsoft Foundry. Também não está disponível quando `DISABLE_TELEMETRY` ou `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` está definido.

378 378 

379Plugins podem declarar monitors que iniciam automaticamente quando o plugin está ativo, em vez de pedir a Claude para iniciá-los. Veja [plugin monitors](/docs/pt/plugins-reference#monitors).379Plugins podem declarar monitors que iniciam automaticamente quando o plugin está ativo, em vez de pedir a Claude para iniciá-los. Veja [plugin monitors](/docs/pt/plugins/components#monitors).

380 380 

381<h3 id="websocket-source">381<h3 id="websocket-source">

382 Fonte WebSocket382 Fonte WebSocket

vs-code.md +2 −2

Details

331 Gerenciar plugins331 Gerenciar plugins

332</h2>332</h2>

333 333 

334A extensão VS Code inclui uma interface gráfica para instalar e gerenciar [plugins](/docs/pt/plugins). Digite `/plugins` na caixa de prompt para abrir a interface **Gerenciar plugins**.334A extensão VS Code inclui uma interface gráfica para instalar e gerenciar [plugins](/docs/pt/plugins/overview). Digite `/plugins` na caixa de prompt para abrir a interface **Gerenciar plugins**.

335 335 

336<h3 id="install-plugins">336<h3 id="install-plugins">

337 Instalar plugins337 Instalar plugins


394 O gerenciamento de plugins no VS Code usa os mesmos comandos CLI sob o capô. Plugins e marketplaces que você configura na extensão também estão disponíveis na CLI, e vice-versa.394 O gerenciamento de plugins no VS Code usa os mesmos comandos CLI sob o capô. Plugins e marketplaces que você configura na extensão também estão disponíveis na CLI, e vice-versa.

395</Note>395</Note>

396 396 

397Para mais informações sobre o sistema de plugins, consulte [Plugins](/docs/pt/plugins) e [Plugin marketplaces](/docs/pt/plugin-marketplaces).397Para mais informações sobre o sistema de plugins, consulte [Plugins](/docs/pt/plugins/overview) e [Plugin marketplaces](/docs/pt/plugins/overview).

398 398 

399<h2 id="automate-browser-tasks-with-chrome">399<h2 id="automate-browser-tasks-with-chrome">

400 Automatizar tarefas do navegador com Chrome400 Automatizar tarefas do navegador com Chrome

Details

116 └── my-tool116 └── my-tool

117 ```117 ```

118 118 

119 <a className="digest-feature-link" href="/docs/pt/plugins-reference#file-locations-reference">Referência de plugins</a>119 <a className="digest-feature-link" href="/docs/pt/plugins/manifest-reference#standard-layout">Referência de plugins</a>

120</div>120</div>

121 121 

122<div className="digest-wins">122<div className="digest-wins">

Details

104 <div>Compilações nativas macOS e Linux substituem as ferramentas <code>Glob</code> e <code>Grep</code> por <code>bfs</code> e <code>ugrep</code> incorporados disponíveis através de Bash, para buscas mais rápidas sem uma rodada de ferramenta separada</div>104 <div>Compilações nativas macOS e Linux substituem as ferramentas <code>Glob</code> e <code>Grep</code> por <code>bfs</code> e <code>ugrep</code> incorporados disponíveis através de Bash, para buscas mais rápidas sem uma rodada de ferramenta separada</div>

105 <div><code>--from-pr</code> agora aceita URLs de solicitação de mesclagem GitLab, solicitação de pull Bitbucket e PR do GitHub Enterprise além de github.com</div>105 <div><code>--from-pr</code> agora aceita URLs de solicitação de mesclagem GitLab, solicitação de pull Bitbucket e PR do GitHub Enterprise além de github.com</div>

106 <div>Modo Auto: inclua <code>"\$defaults"</code> em <a href="/docs/pt/auto-mode-config"><code>autoMode.allow</code>, <code>soft\_deny</code>, ou <code>environment</code></a> para adicionar regras personalizadas ao lado da lista integrada em vez de substituí-la</div>106 <div>Modo Auto: inclua <code>"\$defaults"</code> em <a href="/docs/pt/auto-mode-config"><code>autoMode.allow</code>, <code>soft\_deny</code>, ou <code>environment</code></a> para adicionar regras personalizadas ao lado da lista integrada em vez de substituí-la</div>

107 <div>Novo comando <a href="/docs/pt/plugin-dependencies#tag-plugin-releases-for-version-resolution"><code>claude plugin tag</code></a> cria tags git de lançamento para plugins com validação de versão</div>107 <div>Novo comando <a href="/docs/pt/plugins/dependencies#tag-plugin-releases-for-version-resolution"><code>claude plugin tag</code></a> cria tags git de lançamento para plugins com validação de versão</div>

108 <div>Sessões Opus 4.7 agora computam contra a janela de contexto nativa de 1M do modelo, corrigindo percentuais inflados de <code>/context</code> e autocompactação prematura</div>108 <div>Sessões Opus 4.7 agora computam contra a janela de contexto nativa de 1M do modelo, corrigindo percentuais inflados de <code>/context</code> e autocompactação prematura</div>

109 <div><code>/resume</code> em sessões grandes é até 67% mais rápido e agora oferece resumir sessões grandes e obsoletas antes de relê-las</div>109 <div><code>/resume</code> em sessões grandes é até 67% mais rápido e agora oferece resumir sessões grandes e obsoletas antes de relê-las</div>

110 </div>110 </div>

Details

24 claude --plugin-url https://example.com/my-plugin.zip24 claude --plugin-url https://example.com/my-plugin.zip

25 ```25 ```

26 26 

27 <a className="digest-feature-link" href="/docs/pt/plugins">Guia de plugins</a>27 <a className="digest-feature-link" href="/docs/pt/plugins/overview">Guia de plugins</a>

28</div>28</div>

29 29 

30<div className="digest-feature">30<div className="digest-feature">

Details

59 > /plugin list --enabled59 > /plugin list --enabled

60 ```60 ```

61 61 

62 <a className="digest-feature-link" href="/docs/pt/plugins-reference#plugin-list">Comandos de plugin</a>62 <a className="digest-feature-link" href="/docs/pt/plugins/cli-reference#plugin-list">Comandos de plugin</a>

63</div>63</div>

64 64 

65<div className="digest-feature">65<div className="digest-feature">

Details

86 <div className="digest-wins-grid">86 <div className="digest-wins-grid">

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/plugin-marketplaces#zip-archives">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#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>

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 uma worktree própria em vez do checkout da sessão original</div>

92 <div>Plugins que você instala a partir de <a href="/docs/pt/discover-plugins#install-plugins"><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 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>

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

Details

72 <div className="digest-wins-grid">72 <div className="digest-wins-grid">

73 <div>Digite <code>@</code> no prompt para <a href="/docs/pt/cross-session-messaging#message-another-session">mencionar outra sessão do Claude</a> pelo nome, e Claude a mensageia diretamente com <code>SendMessage</code>; um nome simples que corresponde exatamente a uma sessão ativa agora é entregue sem uma etapa de confirmação</div>73 <div>Digite <code>@</code> no prompt para <a href="/docs/pt/cross-session-messaging#message-another-session">mencionar outra sessão do Claude</a> pelo nome, e Claude a mensageia diretamente com <code>SendMessage</code>; um nome simples que corresponde exatamente a uma sessão ativa agora é entregue sem uma etapa de confirmação</div>

74 <div>Sessões interativas em uma máquina mantêm <a href="/docs/pt/cross-session-messaging#see-which-sessions-claude-can-reach">nomes únicos</a>: se você iniciar ou renomear uma sessão com um nome que outra sessão ativa já usa, Claude Code oferece uma variante <code>name-word-word</code> para a sua e avisa você</div>74 <div>Sessões interativas em uma máquina mantêm <a href="/docs/pt/cross-session-messaging#see-which-sessions-claude-can-reach">nomes únicos</a>: se você iniciar ou renomear uma sessão com um nome que outra sessão ativa já usa, Claude Code oferece uma variante <code>name-word-word</code> para a sua e avisa você</div>

75 <div>Os marketplaces de plugins aceitam <a href="/docs/pt/plugin-marketplaces#command-sources">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#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>

79 <div><a href="/docs/pt/discover-plugins#install-plugins"><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>

82 <div>A extensão VS Code pode <a href="/docs/pt/vs-code#organize-sessions-into-groups">organizar a lista de sessões em grupos</a>: clique com o botão direito para criar, renomear ou excluir um grupo, e Cmd/Ctrl- ou Shift-clique para mover várias sessões de uma vez</div>82 <div>A extensão VS Code pode <a href="/docs/pt/vs-code#organize-sessions-into-groups">organizar a lista de sessões em grupos</a>: clique com o botão direito para criar, renomear ou excluir um grupo, e Cmd/Ctrl- ou Shift-clique para mover várias sessões de uma vez</div>

Details

54 54 

55 <div className="digest-wins-grid">55 <div className="digest-wins-grid">

56 <div>Defina <a href="/docs/pt/settings-reference#maxeffortlevel"><code>maxEffortLevel</code></a> no nível superior ou por modelo sob <code>modelSettings</code> para limitar o nível de esforço em cada provedor, incluindo Amazon Bedrock, Agent Platform do Google Cloud e Microsoft Foundry; qualquer nível mais alto é executado no limite</div>56 <div>Defina <a href="/docs/pt/settings-reference#maxeffortlevel"><code>maxEffortLevel</code></a> no nível superior ou por modelo sob <code>modelSettings</code> para limitar o nível de esforço em cada provedor, incluindo Amazon Bedrock, Agent Platform do Google Cloud e Microsoft Foundry; qualquer nível mais alto é executado no limite</div>

57 <div>Aponte `--plugin-dir` para uma pasta de plugins para <a href="/docs/pt/plugins#test-your-plugins-locally">carregar cada subpasta imediata que tenha um manifesto</a></div>57 <div>Aponte `--plugin-dir` para uma pasta de plugins para <a href="/docs/pt/plugins/create#load-a-directory-or-archive-for-one-session">carregar cada subpasta imediata que tenha um manifesto</a></div>

58 <div>Se WebFetch não terminar de baixar uma página em cinco minutos, <a href="/docs/pt/tools-reference#webfetch-tool-behavior">a busca falha com um erro de prazo</a> em vez de travar; defina `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` para alterar o prazo, ou para `0` para remover o limite</div>58 <div>Se WebFetch não terminar de baixar uma página em cinco minutos, <a href="/docs/pt/tools-reference#webfetch-tool-behavior">a busca falha com um erro de prazo</a> em vez de travar; defina `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` para alterar o prazo, ou para `0` para remover o limite</div>

59 <div>Passe `--json` para <code>claude plugin install</code>, <code>uninstall</code>, <code>update</code>, <code>enable</code> ou <code>disable</code> para imprimir o resultado como <a href="/docs/pt/plugins-reference#plugin-json-result">um objeto JSON na última linha de stdout</a></div>59 <div>Passe `--json` para <code>claude plugin install</code>, <code>uninstall</code>, <code>update</code>, <code>enable</code> ou <code>disable</code> para imprimir o resultado como <a href="/docs/pt/plugins/cli-reference#plugin-json-result">um objeto JSON na última linha de stdout</a></div>

60 <div>Quando o classificador do modo automático bloqueia uma ação, o motivo que Claude recebe <a href="/docs/pt/auto-mode-config#fix-a-denial-with-an-allow-rule-an-environment-entry-or-a-retry">geralmente nomeia a regra que correspondeu</a>, como <code>\[Data Exfiltration]</code></div>60 <div>Quando o classificador do modo automático bloqueia uma ação, o motivo que Claude recebe <a href="/docs/pt/auto-mode-config#fix-a-denial-with-an-allow-rule-an-environment-entry-or-a-retry">geralmente nomeia a regra que correspondeu</a>, como <code>\[Data Exfiltration]</code></div>

61 <div>Quando você digita <code>/</code> no meio de um prompt, agora você pode escolher entre <a href="/docs/pt/interactive-mode#complete-a-command-mid-prompt">uma lista de comandos correspondentes</a> em vez de uma única sugestão. A lista abre conforme você digita em renderização em tela cheia. Uma skill de plugin também corresponde em seu nome sem o prefixo do plugin</div>61 <div>Quando você digita <code>/</code> no meio de um prompt, agora você pode escolher entre <a href="/docs/pt/interactive-mode#complete-a-command-mid-prompt">uma lista de comandos correspondentes</a> em vez de uma única sugestão. A lista abre conforme você digita em renderização em tela cheia. Uma skill de plugin também corresponde em seu nome sem o prefixo do plugin</div>

62 <div>Na extensão VS Code, clique na contagem de agentes na parte inferior da caixa de prompt para abrir o <a href="/docs/pt/vs-code#use-the-prompt-box">mapa de agentes</a>, onde você pode abrir a transcrição somente leitura de um subagente ou pará-lo</div>62 <div>Na extensão VS Code, clique na contagem de agentes na parte inferior da caixa de prompt para abrir o <a href="/docs/pt/vs-code#use-the-prompt-box">mapa de agentes</a>, onde você pode abrir a transcrição somente leitura de um subagente ou pará-lo</div>

workflows.md +1 −1

Details

239 Distribuir um fluxo de trabalho em um plugin239 Distribuir um fluxo de trabalho em um plugin

240</h3>240</h3>

241 241 

242Para compartilhar um fluxo de trabalho entre equipes ou repositórios, inclua-o em um [plugin](/docs/pt/plugins). Coloque o script em um diretório `workflows/` na raiz do plugin, ou aponte para um local diferente com o [campo de manifesto `workflows`](/docs/pt/plugins-reference#component-path-fields).242Para compartilhar um fluxo de trabalho entre equipes ou repositórios, inclua-o em um [plugin](/docs/pt/plugins/overview). Coloque o script em um diretório `workflows/` na raiz do plugin, ou aponte para um local diferente com o [campo de manifesto `workflows`](/docs/pt/plugins/manifest-reference#fields).

243 243 

244Os fluxos de trabalho de plugin são nomeados pelo nome do plugin. Um plugin chamado `acme-tools` contendo um script cujo `meta.name` é `release-audit` é executado como `/acme-tools:release-audit`.244Os fluxos de trabalho de plugin são nomeados pelo nome do plugin. Um plugin chamado `acme-tools` contendo um script cujo `meta.name` é `release-audit` é executado como `/acme-tools:release-audit`.

245 245 

worktrees.md +3 −1

Details

256Uma worktree obtém seus próprios arquivos e branch, mas compartilha o seguinte com o checkout principal:256Uma worktree obtém seus próprios arquivos e branch, mas compartilha o seguinte com o checkout principal:

257 257 

258* **O diretório `.git` do repositório**: comandos git em uma worktree escrevem no diretório `.git` compartilhado do repositório principal, e [sandboxing](/docs/pt/sandboxing#filesystem-isolation) permite essas escritas, então comandos como `git commit` funcionam de dentro de uma worktree com a sandbox ativada.258* **O diretório `.git` do repositório**: comandos git em uma worktree escrevem no diretório `.git` compartilhado do repositório principal, e [sandboxing](/docs/pt/sandboxing#filesystem-isolation) permite essas escritas, então comandos como `git commit` funcionam de dentro de uma worktree com a sandbox ativada.

259* **Plugins**: plugins instalados em [escopo de projeto](/docs/pt/plugins-reference#plugin-installation-scopes) do checkout principal também carregam em worktrees do mesmo repositório, então você não precisa reinstalá-los por worktree. Requer Claude Code v2.1.200 ou posterior.259* **Plugins**: plugins instalados em [escopo de projeto](/docs/pt/plugins/loading#find-where-a-plugin-is-enabled) do checkout principal também carregam em worktrees do mesmo repositório, então você não precisa reinstalá-los por worktree. Requer Claude Code v2.1.200 ou posterior.

260* **Aprovações de permissão**: escolher "Sim, e não pergunte novamente" para um comando Bash em uma sessão de worktree salva a regra no `.claude/settings.local.json` do checkout principal, para que se aplique no checkout principal e em cada outra worktree do repositório, e sobreviva à remoção da worktree. No Windows e nos outros casos onde Claude Code [não usa a raiz do repositório](/docs/pt/settings#where-claude-code-looks-for-each-file), a regra fica com essa worktree. Antes da v2.1.211, uma aprovação concedida em uma worktree era salva dentro dessa worktree, não se aplicava em outro lugar, e era perdida quando a worktree era removida. Consulte [onde as aprovações são salvas](/docs/pt/permissions#permission-system).260* **Aprovações de permissão**: escolher "Sim, e não pergunte novamente" para um comando Bash em uma sessão de worktree salva a regra no `.claude/settings.local.json` do checkout principal, para que se aplique no checkout principal e em cada outra worktree do repositório, e sobreviva à remoção da worktree. No Windows e nos outros casos onde Claude Code [não usa a raiz do repositório](/docs/pt/settings#where-claude-code-looks-for-each-file), a regra fica com essa worktree. Antes da v2.1.211, uma aprovação concedida em uma worktree era salva dentro dessa worktree, não se aplicava em outro lugar, e era perdida quando a worktree era removida. Consulte [onde as aprovações são salvas](/docs/pt/permissions#permission-system).

261* **Skills, agentes e comandos não rastreados**: quando o checkout da worktree não tem um diretório `.claude/skills` em sua raiz, por exemplo porque seu `.claude/skills` é gitignored, Claude Code carrega as [skills de projeto](/docs/pt/skills#where-skills-live) do checkout principal na sessão da worktree. Em uma worktree com seu próprio diretório `.claude/skills`, apenas essa cópia carrega.261* **Skills, agentes e comandos não rastreados**: quando o checkout da worktree não tem um diretório `.claude/skills` em sua raiz, por exemplo porque seu `.claude/skills` é gitignored, Claude Code carrega as [skills de projeto](/docs/pt/skills#where-skills-live) do checkout principal na sessão da worktree. Em uma worktree com seu próprio diretório `.claude/skills`, apenas essa cópia carrega.

262 262 


330 330 

331Emparelhe-o com um hook `WorktreeRemove` para limpar quando a sessão terminar. Consulte a [referência de hooks](/docs/pt/hooks#worktreecreate) para o esquema de entrada e um exemplo de remoção.331Emparelhe-o com um hook `WorktreeRemove` para limpar quando a sessão terminar. Consulte a [referência de hooks](/docs/pt/hooks#worktreecreate) para o esquema de entrada e um exemplo de remoção.

332 332 

333Um hook `WorktreeCreate` também permite que você execute [`/batch`](/docs/pt/commands#all-commands) fora de um repositório git. Cada subagente `/batch` publica sua alteração com os comandos de controle de versão do seu projeto e, quando não consegue abrir uma solicitação de pull, relata o que publicou. Executar `/batch` fora de um repositório git requer Claude Code v2.1.281 ou posterior.

334 

333<h2 id="troubleshooting">335<h2 id="troubleshooting">

334 Troubleshooting336 Troubleshooting

335</h2>337</h2>

Details

66| Recurso | Motivo |66| Recurso | Motivo |

67| ---------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |67| ---------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |

68| [Sessões na nuvem](/docs/pt/claude-code-on-the-web), incluindo aquelas iniciadas a partir do [aplicativo Desktop](/docs/pt/desktop#cloud-sessions) | Requer armazenamento no servidor de dados de sessão, incluindo histórico de conversas com prompts e conclusões. |68| [Sessões na nuvem](/docs/pt/claude-code-on-the-web), incluindo aquelas iniciadas a partir do [aplicativo Desktop](/docs/pt/desktop#cloud-sessions) | Requer armazenamento no servidor de dados de sessão, incluindo histórico de conversas com prompts e conclusões. |

69| [Claude Tag](/docs/pt/claude-tag) | Retém memória de canal e transcrições de sessão. |69| [Claude Tag](https://claude.com/docs/claude-tag) | Retém memória de canal e transcrições de sessão. |

70| [Artefatos](/docs/pt/artifacts) | Requer armazenamento de conteúdo de página publicado na infraestrutura operada pela Anthropic. |70| [Artefatos](/docs/pt/artifacts) | Requer armazenamento de conteúdo de página publicado na infraestrutura operada pela Anthropic. |

71| Envio de feedback (`/feedback`, `/bug`, `/share`) | Enviar feedback envia dados de conversas para a Anthropic. |71| Envio de feedback (`/feedback`, `/bug`, `/share`) | Enviar feedback envia dados de conversas para a Anthropic. |

72| [Controle Remoto](/docs/pt/remote-control) | Armazena a transcrição da sessão nos servidores da Anthropic para sincronizar a conversa entre dispositivos. |72| [Controle Remoto](/docs/pt/remote-control) | Armazena a transcrição da sessão nos servidores da Anthropic para sincronizar a conversa entre dispositivos. |