> ## Documentation Index
> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Visão geral de mods

> Adicione painéis, comandos e regras de chamada de ferramentas ao Claude Code com um mod. Veja o que um mod pode fazer, como criar ou instalar um, e onde os mods são executados.

Um mod é um [plugin](/docs/pt/plugins/overview) que muda como o Claude Code se parece e se comporta. É feito de manipuladores de eventos em JavaScript ou TypeScript: Claude Code chama um quando um evento acontece, como uma chamada de ferramenta, um prompt enviado, ou uma parte da interface sendo desenhada, e o manipulador pode observar o evento, alterá-lo ou assumir o controle dele. Use um mod para adicionar um recurso próprio ao Claude Code, como um painel que mostra graficamente o quão cheio seu contexto está após cada solicitação. Para os arquivos em um mod e um exemplo completo, veja [Como um mod funciona](#how-a-mod-works).

<Note>
  Os [hooks](/docs/pt/hooks) existentes do Claude Code também são executados em eventos, como um comando shell, uma solicitação HTTP ou um prompt que você configura em um arquivo de configurações. Os manipuladores de um mod são funções que são executadas dentro do Claude Code em vez disso. Claude Code chama ambos os tipos de hooks: nessas páginas, "hook" significa um manipulador de um mod, e o tipo de arquivo de configurações é um "settings hook".
</Note>

<h2 id="what-a-mod-can-do">
  O que um mod pode fazer
</h2>

Settings hooks, skills, linhas de status e servidores MCP funcionam de fora do Claude Code: cada um executa um script ou fornece ao Claude texto ou ferramentas. Um mod é executado dentro do Claude Code, então pode fazer coisas que eles não conseguem:

* **Desenhar uma interface que você pode usar**: um painel ao lado da transcrição ou uma faixa acima do prompt, com abas, botões e campos de texto. Veja [Desenhar na interface](/docs/pt/plugins/mods/interface).
* **Redesenhar a própria interface do Claude Code**: substituir ou reformatar partes que o Claude Code desenha, como a linha de uma chamada de ferramenta, o spinner ou o diálogo que o Claude faz perguntas. Veja [Alterar o que o Claude Code já desenha](/docs/pt/plugins/mods/interface#change-what-claude-code-already-draws).
* **Intervir em uma chamada de ferramenta ou uma solicitação**: por exemplo, manter uma chamada de ferramenta enquanto você faz uma pergunta ao usuário, responder sem executar a ferramenta ou enviar uma solicitação para um modelo diferente. Veja [Guardar ou alterar uma chamada de ferramenta](/docs/pt/plugins/mods/events#guard-or-change-a-tool-call) e [Seguir um turno](/docs/pt/plugins/mods/events#follow-a-turn).
* **Executar seu próprio código em um comando**: um `/command` que executa sua função imediatamente, sem nenhum turno do Claude, mesmo enquanto o Claude está trabalhando. Veja [Adicionar um comando ou uma ferramenta](/docs/pt/plugins/mods/api#add-a-command-or-a-tool).
* **Compartilhar dados entre hooks**: os hooks de um mod compartilham as variáveis em seu arquivo, então o que um hook registra, outro pode mostrar. Por exemplo, um hook pode contar chamadas de ferramenta enquanto outro mostra a contagem ao lado do spinner, ou um pode ler o uso de tokens de cada solicitação enquanto outro o mostra em gráfico em um painel. Veja [Reagir a eventos](/docs/pt/plugins/mods/events).

Os mods funcionam no CLI do Claude Code e na aba Code do aplicativo Claude Desktop. Veja [Onde os mods são executados](#where-mods-run) para entender como eles se comportam em outros lugares, como na extensão VS Code, `claude -p` e sessões na nuvem. Se um settings hook, uma skill ou um servidor MCP já faz o que você precisa, [compare-os](#compare-mods-settings-hooks-skills-and-mcp-servers) antes de escrever um mod. Para gerenciar mods para uma organização, veja [Gerenciar mods para sua organização](/docs/pt/plugins/mods/admin).

<h2 id="get-a-mod">
  Obter um mod
</h2>

Você pode começar com um mod de três maneiras:

* **Use um que você já tem**: alguns dos próprios recursos do Claude Code são mods, como `/diff`. Veja [Mods integrados ao Claude Code](#mods-built-into-claude-code).
* **Crie um**: descreva o que você quer em uma sessão do Claude Code, e o Claude escreve o mod. Veja [Peça ao Claude por um mod](/docs/pt/plugins/mods/create#ask-claude-for-a-mod). Para aprender como o código de um mod funciona, [escreva um você mesmo](/docs/pt/plugins/mods/create#write-a-mod-yourself).
* **Instale um**: veja [Instalar ou atualizar um mod](#install-or-update-a-mod)

<h3 id="install-or-update-a-mod">
  Instalar ou atualizar um mod
</h3>

<Warning>
  Um mod é código que é executado com suas permissões. Pode ler e escrever seus arquivos, iniciar processos e fazer solicitações de rede. Instale mods apenas de autores e marketplaces em que você confia. Veja [Decidir se confia em um mod](#decide-whether-to-trust-a-mod).
</Warning>

Um mod é instalado como um plugin, a partir de um marketplace. Forneça o nome do plugin, um `@` e o nome do marketplace. Estes exemplos instalam um plugin chamado `token-chart` de um marketplace chamado `your-org`:

* Em uma sessão do Claude Code, execute `/plugin install token-chart@your-org`.
* No seu shell, execute `claude plugin install token-chart@your-org`.

[Instalar plugins](/docs/pt/plugins/install) cobre marketplaces, escopos, a extensão VS Code e o aplicativo Desktop, e [manter plugins atualizados](/docs/pt/plugins/install#keep-plugins-updated), tudo isso se aplica a um plugin que contém um mod sem alterações.

Se você instalar ou atualizar um mod do seu shell enquanto uma sessão está aberta, execute `/reload-plugins` nessa sessão para carregá-lo. Caso contrário, ele carrega na próxima vez que você iniciar o Claude Code.

<h2 id="decide-whether-to-trust-a-mod">
  Decidir se confia em um mod
</h2>

Um mod é código que é executado com suas permissões, dentro do Claude Code. Instale mods apenas de autores e [marketplaces em que você confia](/docs/pt/plugins/security).

<h3 id="what-a-mod-can-reach">
  O que um mod pode alcançar
</h3>

Um mod é executado com suas permissões, então antes de instalar um, saiba o que ele tem acesso. Uma vez carregado, um mod pode:

* **Agir em sua máquina como você**: ler e escrever arquivos em qualquer lugar que sua conta de usuário possa, iniciar programas e fazer solicitações de rede
* **Ler seus segredos**: variáveis de ambiente e arquivos de configurações, incluindo uma chave de API que você mantém em qualquer um deles
* **Ver sua sessão**: cada prompt que você envia e cada chamada de ferramenta que o Claude faz
* **Alterar sua sessão**: reescrever um prompt ou uma chamada de ferramenta, enviar um prompt como se você o tivesse digitado, ou enviar uma mensagem para outra de suas sessões
* **Agir sem pedir a você**: aprovar uma chamada de ferramenta antes de você ser perguntado
* **Gastar seu uso**: chamar um modelo em seu plano ou chave de API

Um mod que aprova chamadas de ferramenta pode aprovar uma que uma regra `ask` solicitaria, ou que um de seus próprios hooks `PreToolUse` bloqueou. [Estender permissões com hooks](/docs/pt/permissions#extend-permissions-with-hooks) lista o que tal mod pode aprovar, incluindo quando pode aprovar uma chamada que uma regra `deny` recusa.

Um mod pode reformatar grande parte da interface do Claude Code, mas não o prompt de permissão. Não pode alterar o que um prompt mostra a você.

<h3 id="list-what-a-mod-does-before-you-install-one">
  Listar o que um mod faz antes de instalá-lo
</h3>

Antes de instalar um mod, você pode listar quais eventos ele conecta e o que pede ao Claude Code para fazer, como ler um arquivo ou fazer uma solicitação de rede, sem executá-lo. Obtenha os arquivos do plugin primeiro, por exemplo clonando seu repositório. Depois, no seu shell, execute `claude plugin validate` no diretório do plugin:

```bash theme={null}
claude plugin validate ./some-mod
```

As linhas `hooks:` e `calls:` na saída listam os eventos que o mod manipula e o que pede ao Claude Code para fazer. [Revisar o que um mod pode fazer](/docs/pt/plugins/mods/admin#review-what-a-mod-can-do) mostra a saída e quais chamadas procurar.

<h2 id="turn-mods-on-or-off">
  Ativar ou desativar mods
</h2>

Os mods requerem Claude Code v2.1.287 ou posterior, e estão ativados por padrão. No seu shell, execute `claude --version` para verificar e atualize o Claude Code se o seu for mais antigo.

Para desativar mods, escolha quantos parar e por quanto tempo. Para ativá-los novamente, desfaça a mesma alteração:

* **Um mod**: desabilite ou desinstale seu plugin da [**aba Installed em `/plugin`**](/docs/pt/plugins/install#manage-installed-plugins)
* **Cada mod instalado, para uma sessão**: inicie o Claude Code com [`--safe-mode`](/docs/pt/cli-reference#cli-flags), que também deixa de fora suas outras personalizações
* **Cada mod que você instalou, em cada sessão**: defina [`"disableAllHooks": true`](/docs/pt/settings-reference#disableallhooks) em `~/.claude/settings.json`. Seus settings hooks e linha de status personalizada também param. O que sua organização gerencia continua funcionando.

Se você usar o Claude Code através de uma organização, um administrador também pode limitar quais mods carregam. Os administradores começam em [Impedir que mods instalados pelo usuário sejam carregados](/docs/pt/plugins/mods/admin#stop-user-installed-mods-from-loading).

Para descobrir se mods podem carregar para você, veja [Verificar se mods podem carregar](/docs/pt/plugins/mods/troubleshoot#check-whether-mods-can-load).

<Note>
  Se você definiu `CLAUDE_CODE_ENABLE_FUNCTION_HOOKS` durante acesso antecipado, remova-o. Claude Code v2.1.287 e posterior o ignora, então defini-lo como `0` não mantém mods desativados.
</Note>

<h3 id="see-which-mods-a-session-loaded">
  Ver quais mods uma sessão carregou
</h3>

Para ver quais mods uma sessão de terminal carregou, execute `/plugin` no prompt do Claude Code. Uma linha atenuada sob as abas fornece a contagem e os nomes, como `1 mod active · first-mod`. Se um mod que você instalou não estiver nomeado lá, veja [Descobrir por que um mod não faz nada](/docs/pt/plugins/mods/troubleshoot#find-out-why-a-mod-does-nothing).

<h2 id="how-a-mod-works">
  Como um mod funciona
</h2>

Um mod é um [plugin](/docs/pt/plugins/overview) cujo código registra manipuladores de eventos, chamados hooks. O Claude Code executa um hook quando seu evento acontece, como quando o Claude chama uma ferramenta ou quando o spinner é desenhado. Um mod pequeno tem três arquivos:

```text theme={null}
first-mod/
├── .claude-plugin/
│   └── plugin.json
└── hooks/
    ├── hooks.json
    └── register.js
```

* **`plugin.json`**: o [manifesto](/docs/pt/plugins/manifest-reference) do plugin
* **`hooks.json`**: [aponta para seu arquivo de código](/docs/pt/plugins/mods/reference#files)
* **`register.js`**: [seu código](/docs/pt/plugins/mods/create#write-a-mod-yourself), chamado de módulo hooks. Ele diz ao Claude Code em quais eventos executar suas funções.

Este é um `register.js` completo. Ele conta as chamadas de ferramenta que o Claude faz e mostra a contagem ao lado do spinner enquanto o Claude trabalha, como em `Thinking · tool calls: 3…`.

```javascript hooks/register.js theme={null}
// A contagem, compartilhada pelos dois hooks abaixo
let calls = 0

// Claude Code chama isso uma vez quando o mod carrega
export function register(on) {
  // Executado cada vez que Claude está prestes a usar uma ferramenta
  on('tool.call', async ($, e, next) => {
    calls += 1
    // Peça ao Claude Code para desenhar a interface novamente, para que a nova contagem apareça
    $.ui.invalidate('ui.render')
    // Deixe a ferramenta ser executada normalmente
    return next(e)
  })

  // Executado cada vez que Claude Code desenha o spinner
  on('ui.render', { component: 'Spinner' }, async ($, e, next) => {
    // Mantenha o spinner do Claude Code, com a contagem adicionada após sua palavra
    return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })
  })
}
```

O arquivo registra dois hooks, e ambos usam a variável `calls` no topo:

* **O hook [`tool.call`](/docs/pt/plugins/mods/reference#tools)** é executado cada vez que o Claude está prestes a usar uma ferramenta. Adiciona um a `calls`, pede ao Claude Code para desenhar a interface novamente e deixa a ferramenta ser executada normalmente.
* **O hook [`ui.render`](/docs/pt/plugins/mods/reference#interface)** é executado cada vez que o Claude Code desenha o spinner. Mantém o próprio spinner do Claude Code e adiciona a contagem após a palavra.

Esta gravação mostra o mod em ação. Observe a linha do spinner acima da caixa de prompt: enquanto o Claude lista um diretório e lê dois arquivos, ele lê `Thinking · tool calls: 1…`, depois `2…`, depois `3…`.

<Frame>
  <video autoPlay muted loop playsInline controls className="w-full dark:hidden" src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-overview-light.mp4?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=00a18aa0743b59a700f0275ce226e6d1" aria-label="Em uma sessão do Claude Code, o prompt 'list the files here and read the README' é digitado e enviado. Enquanto o Claude trabalha, o spinner lê 'Thinking · tool calls: 1', depois 2, depois 3, conforme o Claude lista os arquivos e lê dois deles." data-path="images/mods-overview-light.mp4" />

  <video autoPlay muted loop playsInline controls className="w-full hidden dark:block" src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-overview-dark.mp4?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=d5223da2fef16ceaaa214a36d72c0536" aria-label="Em uma sessão do Claude Code, o prompt 'list the files here and read the README' é digitado e enviado. Enquanto o Claude trabalha, o spinner lê 'Thinking · tool calls: 1', depois 2, depois 3, conforme o Claude lista os arquivos e lê dois deles." data-path="images/mods-overview-dark.mp4" />
</Frame>

<h3 id="what-a-hook-can-do-with-an-event">
  O que um hook pode fazer com um evento
</h3>

O Claude Code executa seu hook antes de agir no evento, então o hook decide o que acontece a seguir. Ele tem três opções:

* **Observar**: notar o que está acontecendo e deixar continuar inalterado, como o hook `tool.call` no exemplo faz
* **Reescrever**: alterar o evento antes de continuar, como o hook `ui.render` faz quando adiciona a contagem ao spinner
* **Responder**: manipular o evento em si, para que o comportamento usual não seja executado, como recusar um comando

Para fazer qualquer coisa fora de seu próprio código, como desenhar, adicionar um comando, chamar um modelo, ler um arquivo, iniciar um processo ou fazer uma solicitação de rede, um hook chama a API de mods. Um hook não tem outra maneira de fazer essas coisas, é por isso que o Claude Code pode [listar o que um mod faz](#list-what-a-mod-does-before-you-install-one) antes de você instalá-lo.

Para o código por trás de cada opção, veja [Reagir a eventos](/docs/pt/plugins/mods/events#how-a-hook-handles-an-event). Para o que um hook pode chamar, veja [Usar a API de mods](/docs/pt/plugins/mods/api).

<h3 id="where-mods-run">
  Onde os mods são executados
</h3>

Os hooks de um mod são executados em todos os tipos de sessão que carregam o plugin. O desenho é mais restrito: apenas o terminal e o aplicativo Desktop mostram painéis, faixas e linhas substituídas de um mod. Esta tabela lista cada lugar onde você pode executar o Claude Code:

| Onde você executa o Claude Code | Hooks são executados | O que o mod desenha aparece |
| :- | :- | :- |
| `claude` em um terminal, incluindo o terminal integrado de um editor e o plugin JetBrains | Sim | Sim |
| A aba Code do aplicativo Desktop, exceto em uma sessão WSL | Sim | Sim, exceto elementos que a [tabela de elementos](/docs/pt/plugins/mods/reference#elements) marca como apenas terminal |
| Uma [sessão WSL](/docs/pt/desktop-wsl) no aplicativo Desktop | Não, porque plugins não estão disponíveis em sessões WSL | Não |
| O painel de chat da extensão VS Code | Sim | Não |
| `claude -p` e o [Agent SDK](/docs/pt/agent-sdk/overview) | Sim | Não |
| [Remote Control](/docs/pt/remote-control) de claude.ai ou do aplicativo móvel | Sim, na sessão em sua máquina | No terminal em sua máquina |
| Uma [sessão na nuvem](/docs/pt/claude-code-on-the-web) | Sim, para um plugin que [alcança a sessão na nuvem](/docs/pt/cloud-environments#what-carries-over-from-your-setup) | Não |

Um mod que desenha pode verificar em qual aplicativo está sendo executado e voltar para uma linha na transcrição ou uma resposta de texto de comando onde nada desenha.

<h2 id="control-mods-for-your-organization">
  Controlar mods para sua organização
</h2>

Os administradores decidem se mods são executados e quais, através de [configurações gerenciadas](/docs/pt/managed-settings). [Gerenciar mods para sua organização](/docs/pt/plugins/mods/admin) cobre o que acontece por padrão, como revisar um mod e como aplicar uma política com um mod próprio.

<h2 id="compare-mods-settings-hooks-skills-and-mcp-servers">
  Comparar mods, settings hooks, skills e servidores MCP
</h2>

Mods, settings hooks, skills e servidores MCP se sobrepõem. Esta tabela mostra o que cada um é e quando escolhê-lo.

| | Mod | Settings hook | Skill | Servidor MCP |
| :- | :- | :- | :- | :- |
| O que é | Funções em um plugin que o Claude Code chama em seu próprio processo | Um comando shell, solicitação HTTP ou prompt que o Claude Code executa em um evento de ciclo de vida | Um arquivo `SKILL.md` de instruções que o Claude lê | Um processo ou serviço externo que fornece ferramentas ao Claude |
| O que pode alterar | Chamadas de ferramenta, prompts, comandos, turnos e o que a interface desenha | Se uma chamada de ferramenta ou prompt prossegue, argumentos de uma chamada de ferramenta e resultado, e contexto adicionado para o Claude | O que o Claude sabe e faz | Quais ferramentas o Claude tem |
| Pode desenhar na interface | Sim | Não | Não | Não |
| O que você escreve | JavaScript ou TypeScript | Um script e uma entrada `settings.json` | Markdown | Um servidor em qualquer linguagem |
| Escolha quando | Você quer um painel, uma faixa acima do prompt, um comando personalizado ou reescrever um evento | Você quer bloquear, permitir ou registrar um evento com um script que você já tem | Você fica colando as mesmas instruções no chat | O Claude precisa alcançar um sistema externo |

Cada um dos outros tem sua própria página: [Hooks](/docs/pt/hooks), [Skills](/docs/pt/skills) e [MCP](/docs/pt/mcp). Um plugin pode conter todos os quatro, então um mod pode ser enviado no mesmo plugin que uma skill e um servidor MCP.

<h2 id="mods-built-into-claude-code">
  Mods integrados ao Claude Code
</h2>

Alguns dos próprios recursos do Claude Code são mods. Para ver os que sua sessão tem, execute `/plugin` no prompt do Claude Code e vá para a aba **Installed**, que os lista em **Built-in**. Você não pode atualizar ou desinstalar um mod integrado, e a última coluna da tabela diz como desativar cada um. A linha [`mods active`](#see-which-mods-a-session-loaded) deixa mods integrados de fora.

Esta tabela lista cada entrada pelo nome que `/plugin` mostra:

| Nome em `/plugin` | O que faz | Onde está ativado | Como desativar |
| :- | :- | :- | :- |
| `cc-plugin-agents-md` | Carrega `AGENTS.md` como instruções do projeto | Cada sessão, exceto [as que não conseguem ler `AGENTS.md`](/docs/pt/memory#when-agents-md-support-is-unavailable) | Desabilite em `/plugin` ou [escolha quais arquivos de instruções carregam](/docs/pt/memory#choose-which-instruction-files-load) |
| `cc-plugin-diff` | Assume o controle de [`/diff`](/docs/pt/interactive-mode#review-changes-with-%2Fdiff) e desenha seu painel | Sessões de terminal interativas | Desabilite em `/plugin`. `/diff` permanece, e a versão integrada do Claude Code do comando responde. |
| `cc-plugin-plugin-authoring` | Dá ao Claude a [skill `plugin-authoring`](/docs/pt/plugins/mods/create#ask-claude-for-a-mod) para escrever mods. Contém uma skill e nenhum código de mod. | A menos que a Anthropic tenha desativado mods instalados remotamente | Desabilite em `/plugin` |
| `cc-plugin-sec-default` | Guarda o que sua organização gerencia dos mods que um usuário instala | [Onde o guarda carrega](/docs/pt/plugins/mods/admin#know-what-happens-by-default) | Você não consegue. Um administrador [define a ordem](/docs/pt/plugins/mods/admin#install-your-organizations-mods) em configurações gerenciadas |
| `cc-plugin-telemetry` | Envia os registros de análise que o Claude Code e seus mods integrados registram | Onde a análise própria do Claude Code está ativada | Desabilite em `/plugin` ou desative a análise, por exemplo com [`DISABLE_TELEMETRY`](/docs/pt/env-vars) |
| `cc-plugin-you-should-know` | Executa um agente lateral que vigia você enquanto Claude trabalha em tarefas mais longas. Quando encontra algo que vale a pena saber que você pode perder, mostra uma nota acima do prompt. | Desativado por padrão. Listado em `/plugin` -> **Installed** -> **Show disabled** se disponível para sua organização. Ative com [`/plugin enable cc-plugin-you-should-know@builtin`](/docs/pt/plugins/cli-reference#plugin-in-a-session). | Desabilite em `/plugin` |

As configurações e sinalizadores que param mods instalados, como `disableAllHooks`, `--bare` e `--safe-mode`, não param mods integrados.

<h3 id="read-the-source-of-built-in-mods">
  Ler a fonte de mods integrados
</h3>

A fonte de quatro desses mods é pública no [diretório `mods` do repositório Claude Code](https://github.com/anthropics/claude-code/tree/main/mods). Cada um é um plugin completo com seu módulo hooks e testes:

* [`diff`](https://github.com/anthropics/claude-code/tree/main/mods/diff): o painel `/diff`, com botões vinculados a ações de teclado e rolagem que o mod manipula
* [`agents-md`](https://github.com/anthropics/claude-code/tree/main/mods/agents-md): carrega `AGENTS.md` como instruções do projeto, com uma opção [`userConfig`](/docs/pt/plugins/components#user-configuration)
* [`sec-default`](https://github.com/anthropics/claude-code/tree/main/mods/sec-default): o guarda descrito em [Saber o que acontece por padrão](/docs/pt/plugins/mods/admin#know-what-happens-by-default), um modelo para um mod que aplica política
* [`telemetry`](https://github.com/anthropics/claude-code/tree/main/mods/telemetry): adiciona métodos que outros mods podem chamar e envia seus tipos

<h2 id="next-steps">
  Próximos passos
</h2>

* [Criar um mod](/docs/pt/plugins/mods/create): construa um que conte chamadas de ferramenta, mostre a contagem ao lado do spinner e adicione um comando, e aprenda o loop de edição e recarga
* [Desenhar na interface](/docs/pt/plugins/mods/interface): painéis, a faixa acima do prompt, botões, campos de texto e estado
* [Reagir a eventos](/docs/pt/plugins/mods/events): chamadas de ferramenta, prompts, turnos e a ordem em que mods são executados
* [Usar a API de mods](/docs/pt/plugins/mods/api): comandos, ferramentas, chamadas de modelo, temporizadores e arquivos
* [Testar um mod](/docs/pt/plugins/mods/test): testes automatizados que são executados sem uma sessão
* [Solucionar problemas de um mod](/docs/pt/plugins/mods/troubleshoot): as razões pelas quais um mod não faz nada e o log de depuração
* [Gerenciar mods para sua organização](/docs/pt/plugins/mods/admin): padrões, configurações gerenciadas, revisão de um mod e mods de política
* [Referência de mods](/docs/pt/plugins/mods/reference): cada evento, método, elemento e limite
