Requisitos
- um checkout ou uma instalação do OpenClaw com a CLI
openclawdisponível - acesso de rede à fonte selecionada (ClawHub, npm ou um host git)
- quaisquer credenciais, chaves de configuração ou ferramentas do sistema operacional específicas do plugin mencionadas pela documentação de configuração desse plugin
- permissão para recarregar ou reiniciar o Gateway que atende aos seus canais
Início rápido
1
Encontrar o plugin
Pesquise pacotes públicos de plugins no ClawHub:O ClawHub é a principal interface de descoberta de plugins da comunidade. Durante a
transição de lançamento, especificações simples comuns de pacotes ainda são instaladas pelo npm, a menos que
correspondam ao id de um plugin oficial. Especificações
@openclaw/* brutas que correspondam a um
plugin integrado são resolvidas para essa cópia integrada. Use um prefixo explícito de fonte
quando precisar especificamente de uma fonte.2
Instalar o plugin
npm-pack: ou marketplace exigem
--force em instalações não interativas depois que você
revisar e confiar na fonte.3
Configurar e habilitar
Defina as configurações específicas do plugin em Se
plugins.entries.<id>.config.
Habilite o plugin se ele ainda não estiver habilitado:plugins.allow estiver definido, o id do plugin instalado deverá estar nessa lista
para que o plugin possa ser carregado. openclaw plugins install adiciona o
id instalado a uma lista plugins.allow existente e remove o mesmo id de
plugins.deny, permitindo que a instalação explícita seja carregada após a reinicialização.4
Permitir que o Gateway recarregue
Instalar, atualizar ou desinstalar o código de um plugin exige a reinicialização do
Gateway. Um Gateway gerenciado com recarregamento de configuração habilitado detecta a alteração
no registro de instalação do plugin e reinicia automaticamente. Caso contrário, reinicie-o
manualmente:A habilitação/desabilitação atualiza a configuração e o registro a frio. Uma inspeção do runtime
ainda é a prova mais clara das interfaces ativas do runtime.
5
Verificar o registro no runtime
--runtime para comprovar ferramentas, hooks, serviços, métodos do Gateway
ou comandos da CLI pertencentes ao plugin que foram registrados. inspect simples é apenas uma
verificação a frio do manifesto e do registro.Configuração
Escolher uma fonte de instalação
Especificações simples de pacotes têm um comportamento especial de compatibilidade: um nome simples que
corresponda ao id de um plugin integrado usa essa fonte integrada; um nome simples que corresponda
ao id de um plugin externo oficial usa o catálogo oficial de pacotes; qualquer outra
especificação simples é instalada pelo npm durante a transição de lançamento. Especificações
@openclaw/*
brutas que correspondam a plugins integrados também são resolvidas para a cópia integrada antes do
fallback para o npm. Use npm:@openclaw/<plugin>@<version> para instalar deliberadamente o
pacote npm externo em vez da cópia integrada. Use clawhub:, npm:,
git: ou npm-pack: para uma seleção determinística da fonte. Consulte
openclaw plugins para ver o contrato completo do comando.
Em instalações pelo npm, especificações sem versão fixada e @latest selecionam o pacote
estável mais recente que declara compatibilidade com esta compilação do OpenClaw. Se a
versão latest atual do npm declarar um openclaw.compat.pluginApi ou
openclaw.install.minHostVersion mais recente do que o compatível com esta compilação, o OpenClaw verifica
versões estáveis anteriores e instala a mais recente que seja compatível. Versões exatas
e tags explícitas de canais, como @beta, permanecem fixadas no pacote selecionado
e falham quando são incompatíveis.
Política de instalação do operador
Configuresecurity.installPolicy para executar um comando de política local confiável
antes que a instalação ou atualização de um plugin prossiga. A política recebe metadados e
o caminho da fonte preparada e pode permitir ou bloquear a instalação. Ela abrange tanto os caminhos de
instalação/atualização da CLI quanto os baseados no Gateway. Os hooks before_install do plugin são executados
posteriormente e somente nos processos do OpenClaw em que os hooks do plugin estão carregados; portanto, use
security.installPolicy para decisões de instalação pertencentes ao operador. A
opção obsoleta --dangerously-force-unsafe-install é aceita por
compatibilidade, mas não realiza nenhuma ação: ela não ignora a política de instalação nem a lista de bloqueio
integrada do OpenClaw para dependências de plugins.
Consulte Configuração de Skills
para ver o esquema compartilhado de execução security.installPolicy usado por skills e
plugins.
Configurar a política de plugins
O formato comum de configuração de plugins é:plugins.enabled: falsedesabilita todos os plugins e ignora o trabalho de descoberta/carregamento. Referências obsoletas a plugins permanecem inertes enquanto isso estiver ativo; reabilite os plugins antes de executar a limpeza do doctor se quiser remover ids obsoletos.plugins.denyprevalece sobre a lista de permissões e a habilitação individual dos plugins.plugins.allowé uma lista de permissões exclusiva. Ferramentas pertencentes a plugins fora da lista de permissões permanecem indisponíveis mesmo quandotools.allowinclui"*".plugins.entries.<id>.enabled: falsedesabilita um plugin sem remover sua configuração.plugins.load.pathsadiciona arquivos ou diretórios locais explícitos de plugins. Caminhos locais gerenciados emplugins installdevem ser diretórios ou arquivos compactados de plugins; useplugins.load.pathspara arquivos independentes de plugins.- Plugins originados do workspace são desabilitados por padrão; habilite-os explicitamente ou adicione-os à lista de permissões antes de usar código do workspace local.
- Plugins integrados seguem seus metadados internos de ativação/desativação padrão, a menos que a configuração os substitua explicitamente.
plugins.slots.<slot>(memoryoucontextEngine) seleciona um plugin para uma categoria exclusiva. A seleção de slot conta como ativação explícita e força a habilitação do plugin selecionado para esse slot, mesmo que, de outra forma, ele exigisse adesão explícita.plugins.denyeplugins.entries.<id>.enabled: falseainda o bloqueiam.- Plugins integrados de adesão explícita podem ser ativados automaticamente quando a configuração menciona uma de suas interfaces, como uma referência de provedor/modelo, configuração de canal, backend da CLI ou runtime de estrutura de agentes.
- O roteamento do Codex da família OpenAI mantém separados os limites do plugin de provedor e de runtime:
referências legadas de modelos do Codex são configurações legadas que o doctor corrige,
enquanto o plugin integrado
codexcontrola o runtime do servidor de aplicativos do Codex para referências canônicas de agentesopenai/*,agentRuntime.id: "codex"explícitas e referências legadascodex/*.
plugins.allow não está definido e plugins não integrados são descobertos automaticamente no
workspace ou nas raízes globais de plugins, a inicialização registra
plugins.allow is empty; discovered non-bundled plugins may auto-load: ...
com os ids dos plugins descobertos e, para listas curtas, um trecho mínimo de plugins.allow.
Execute openclaw plugins list --enabled --verbose
ou openclaw plugins inspect <id> com o id de plugin listado
antes de copiar plugins confiáveis para openclaw.json. A mesma
fixação de confiança se aplica quando os diagnósticos informam que um plugin foi carregado
without install/load-path provenance: inspecione esse id de plugin e fixe-o em
plugins.allow ou reinstale-o de uma fonte confiável para que o OpenClaw registre a
proveniência da instalação.
Execute openclaw doctor ou openclaw doctor --fix quando a validação da configuração
informar ids de plugins obsoletos, incompatibilidades entre a lista de permissões e as ferramentas ou caminhos legados de
plugins integrados.
Entender os formatos de plugins
O OpenClaw reconhece dois formatos de plugins:
Ambos os formatos aparecem em
openclaw plugins list, openclaw plugins inspect,
openclaw plugins enable e openclaw plugins disable. Consulte
Pacotes de plugins para conhecer o limite de compatibilidade dos pacotes e
Criação de plugins para criar plugins nativos.
Hooks de plugins
Os plugins podem registrar hooks no runtime por meio de duas APIs diferentes:api.on(...)hooks tipados para eventos do ciclo de vida do runtime. Essa é a interface preferencial para middleware, política, reescrita de mensagens, definição de prompts e controle de ferramentas.api.registerHook(...)para o sistema interno de hooks descrito em Hooks. Ele é usado principalmente para efeitos colaterais amplos de comandos/ciclo de vida e compatibilidade com automações existentes no estilo HOOK.
command:new,
command:reset, message:sent ou eventos amplos semelhantes, api.registerHook
é suficiente.
Hooks internos gerenciados por plugins aparecem em openclaw hooks list com
plugin:<id>. Não é possível habilitá-los ou desabilitá-los por meio de openclaw hooks;
em vez disso, habilite ou desabilite o plugin.
Verificar o Gateway ativo
openclaw plugins list e openclaw plugins inspect simples leem o estado frio da configuração,
do manifesto e do registro. Eles não comprovam que um Gateway já em execução
tenha importado o mesmo código do plugin.
Quando um plugin parece instalado, mas o tráfego de chat ao vivo não o utiliza:
openclaw gateway run real que atende aos
seus canais, e não apenas um wrapper ou supervisor.
Solução de problemas
Quando uma configuração obsoleta de plugin ainda menciona um plugin de canal que
não pode mais ser descoberto, a validação da configuração rebaixa essa chave de
canal para um aviso em vez de uma falha grave, permitindo que a inicialização do
Gateway continue atendendo a todos os outros canais. Execute
openclaw doctor --fix para remover entradas obsoletas de plugins e canais. Chaves
de canal desconhecidas sem evidências de plugin obsoleto ainda causam falha na
validação, para que erros de digitação permaneçam visíveis.
Para uma substituição intencional de canal, o plugin preferencial deve declarar
channelConfigs.<channel-id>.preferOver com o id do plugin legado ou de menor prioridade.
Se ambos os plugins estiverem explicitamente habilitados, o OpenClaw mantém essa
solicitação e relata diagnósticos de canais/ferramentas duplicados, em vez de
escolher silenciosamente um proprietário.
Se um pacote instalado informar que requires compiled runtime output for TypeScript entry ..., o pacote foi publicado
sem os arquivos JavaScript necessários para o OpenClaw no runtime. Atualize ou
reinstale depois que o publicador disponibilizar o JavaScript compilado, ou
desabilite/desinstale o plugin até lá.
Propriedade bloqueada do caminho do plugin
Se os diagnósticos informaremblocked plugin candidate: suspicious ownership (... uid=1000, expected uid=0 or root)
e a validação vier acompanhada de plugin present but blocked, o OpenClaw encontrou
arquivos de plugin pertencentes a um usuário Unix diferente daquele do processo
que os está carregando. Mantenha a configuração do plugin; corrija a propriedade
do sistema de arquivos ou execute o OpenClaw como o mesmo usuário proprietário
do diretório de estado.
Em instalações com Docker, a imagem oficial é executada como
node (uid 1000), portanto, os diretórios de
configuração e workspace do OpenClaw montados por bind no host normalmente devem
pertencer ao uid 1000:
openclaw doctor --fix ou
openclaw plugins registry --refresh para que o registro persistente de plugins corresponda aos
arquivos corrigidos.
Configuração lenta das ferramentas de plugins
Se as execuções do agente parecerem travar durante a preparação das ferramentas, habilite o registro de rastreamento e procure linhas de temporização das fábricas de ferramentas de plugins:Relacionados
- Gerenciar plugins - exemplos de comandos para listar, instalar, atualizar, desinstalar e publicar
openclaw plugins- referência completa da CLI- Inventário de plugins - lista gerada de plugins integrados e externos
- Referência de plugins - páginas de referência geradas para cada plugin
- Plugins da comunidade - descoberta no ClawHub e política de PRs de documentação
- Resolução de dependências de plugins - raízes de instalação, registros do registro e limites do runtime
- Criação de plugins - guia de criação de plugins nativos
- Visão geral do SDK de plugins - registro de runtime, hooks e campos da API
- Manifesto de plugin - manifesto e metadados do pacote