Plugins
Plugins estendem o OpenClaw com novas capabilities: canais, provedores de model, tools, Skills, fala, transcrição em tempo real, voz em tempo real, compreensão de mídia, geração de imagens, geração de vídeo, web fetch, web search e muito mais. Alguns plugins são core (incluídos no OpenClaw), outros são externos (publicados no npm pela comunidade).Início rápido
Se você preferir controle nativo por chat, ative
commands.plugins: true e use:
clawhub:<pkg> explícito ou especificação simples de pacote (ClawHub primeiro, depois fallback para npm).
Se a config for inválida, a instalação normalmente falha de forma fechada e direciona você para
openclaw doctor --fix. A única exceção de recuperação é um caminho estreito de reinstalação de plugin incluído
para plugins que fazem opt-in em
openclaw.install.allowInvalidConfigRecovery.
Tipos de plugin
O OpenClaw reconhece dois formatos de plugin:| Formato | Como funciona | Exemplos |
|---|---|---|
| Native | openclaw.plugin.json + módulo de runtime; executa em processo | Plugins oficiais, pacotes npm da comunidade |
| Bundle | Layout compatível com Codex/Claude/Cursor; mapeado para recursos do OpenClaw | .codex-plugin/, .claude-plugin/, .cursor-plugin/ |
openclaw plugins list. Consulte Plugin Bundles para detalhes sobre bundles.
Se você estiver escrevendo um plugin Native, comece com Building Plugins
e Plugin SDK Overview.
Plugins oficiais
Instaláveis (npm)
| Plugin | Pacote | Documentação |
|---|---|---|
| Matrix | @openclaw/matrix | Matrix |
| Microsoft Teams | @openclaw/msteams | Microsoft Teams |
| Nostr | @openclaw/nostr | Nostr |
| Voice Call | @openclaw/voice-call | Voice Call |
| Zalo | @openclaw/zalo | Zalo |
| Zalo Personal | @openclaw/zalouser | Zalo Personal |
Core (incluídos no OpenClaw)
Provedores de model (ativados por padrão)
Provedores de model (ativados por padrão)
anthropic, byteplus, cloudflare-ai-gateway, github-copilot, google,
huggingface, kilocode, kimi-coding, minimax, mistral, qwen,
moonshot, nvidia, openai, opencode, opencode-go, openrouter,
qianfan, synthetic, together, venice,
vercel-ai-gateway, volcengine, xiaomi, zaiPlugins de memória
Plugins de memória
memory-core— memory search incluída (padrão viaplugins.slots.memory)memory-lancedb— memória de longo prazo com instalação sob demanda, auto-recall/capture (definaplugins.slots.memory = "memory-lancedb")
Provedores de fala (ativados por padrão)
Provedores de fala (ativados por padrão)
elevenlabs, microsoftOutros
Outros
browser— plugin de browser incluído para a tool de browser, a CLIopenclaw browser, o método de gatewaybrowser.request, o runtime de browser e o serviço padrão de controle de browser (ativado por padrão; desative antes de substituí-lo)copilot-proxy— bridge local do VS Code Copilot Proxy (desativada por padrão)
Configuração
| Campo | Descrição |
|---|---|
enabled | Chave mestre (padrão: true) |
allow | Allowlist de plugins (opcional) |
deny | Denylist de plugins (opcional; deny vence) |
load.paths | Arquivos/diretórios extras de plugin |
slots | Seletores de slot exclusivos (por exemplo memory, contextEngine) |
entries.\<id\> | Chaves + config por plugin |
openclaw gateway),
esse reinício normalmente é executado automaticamente logo após a gravação da config.
Estados do plugin: disabled vs missing vs invalid
Estados do plugin: disabled vs missing vs invalid
- Disabled: o plugin existe, mas regras de ativação o desligaram. A config é preservada.
- Missing: a config referencia um id de plugin que a descoberta não encontrou.
- Invalid: o plugin existe, mas sua config não corresponde ao schema declarado.
Descoberta e precedência
O OpenClaw procura plugins nesta ordem (a primeira correspondência vence):Extensões do workspace
\<workspace\>/.openclaw/<plugin-root>/*.ts e \<workspace\>/.openclaw/<plugin-root>/*/index.ts.Regras de ativação
plugins.enabled: falsedesativa todos os pluginsplugins.denysempre vence sobre allowplugins.entries.\<id\>.enabled: falsedesativa esse plugin- Plugins originados do workspace ficam desativados por padrão (devem ser ativados explicitamente)
- Plugins incluídos seguem o conjunto interno ativado por padrão, salvo sobrescrita
- Slots exclusivos podem forçar a ativação do plugin selecionado para esse slot
Slots de plugin (categorias exclusivas)
Algumas categorias são exclusivas (somente uma ativa por vez):| Slot | O que controla | Padrão |
|---|---|---|
memory | Plugin de memória ativo | memory-core |
contextEngine | Mecanismo de contexto ativo | legacy (integrado) |
Referência da CLI
openclaw plugins enable <id>.
--force sobrescreve um plugin instalado existente ou um pacote de hooks no local.
Não é compatível com --link, que reutiliza o caminho de origem em vez de
copiar para um destino de instalação gerenciado.
--pin é somente para npm. Não é compatível com --marketplace, porque
instalações via marketplace persistem metadados da origem do marketplace em vez de uma especificação npm.
--dangerously-force-unsafe-install é uma sobrescrita de último recurso para falsos
positivos do scanner integrado de código perigoso. Ele permite que instalações
e atualizações de plugins prossigam mesmo diante de achados integrados critical, mas ainda
não contorna bloqueios de política before_install de plugin nem o bloqueio por falha de scan.
Essa flag da CLI se aplica apenas aos fluxos de instalação/atualização de plugins. Instalações de dependência de Skills com suporte do Gateway
usam, em vez disso, a sobrescrita correspondente de requisição dangerouslyForceUnsafeInstall, enquanto openclaw skills install continua sendo o fluxo separado de download/instalação de Skills do ClawHub.
Bundles compatíveis participam do mesmo fluxo de list/inspect/enable/disable de plugins. O suporte atual de runtime inclui bundle Skills, command-Skills do Claude,
padrões de settings.json do Claude, padrões de .lsp.json e lspServers declarados em manifesto do Claude,
command-Skills do Cursor e diretórios de hook compatíveis do Codex.
openclaw plugins inspect <id> também informa capabilities de bundle detectadas, além de entradas de servidor MCP e LSP compatíveis ou não compatíveis para plugins baseados em bundle.
As origens de marketplace podem ser um nome de marketplace conhecido do Claude em
~/.claude/plugins/known_marketplaces.json, uma raiz local de marketplace ou caminho
marketplace.json, um atalho GitHub como owner/repo, uma URL de repositório do GitHub,
ou uma URL git. Para marketplaces remotos, as entradas de plugin devem permanecer dentro do
repositório clonado do marketplace e usar apenas origens de caminho relativo.
Consulte referência da CLI openclaw plugins para detalhes completos.
Visão geral da API de plugin
Plugins Native exportam um objeto de entrada que expõeregister(api). Plugins mais antigos
ainda podem usar activate(api) como alias legado, mas plugins novos devem
usar register.
register(api) durante a
ativação do plugin. O loader ainda usa activate(api) como fallback para plugins antigos,
mas plugins incluídos e novos plugins externos devem tratar register como o
contrato público.
Métodos comuns de registro:
| Método | O que registra |
|---|---|
registerProvider | Provedor de model (LLM) |
registerChannel | Canal de chat |
registerTool | Tool de agente |
registerHook / on(...) | Hooks de lifecycle |
registerSpeechProvider | Texto para fala / STT |
registerRealtimeTranscriptionProvider | STT streaming |
registerRealtimeVoiceProvider | Voz duplex em tempo real |
registerMediaUnderstandingProvider | Análise de imagem/áudio |
registerImageGenerationProvider | Geração de imagens |
registerMusicGenerationProvider | Geração de música |
registerVideoGenerationProvider | Geração de vídeo |
registerWebFetchProvider | Provedor de web fetch / scrape |
registerWebSearchProvider | Web search |
registerHttpRoute | Endpoint HTTP |
registerCommand / registerCli | Comandos da CLI |
registerContextEngine | Mecanismo de contexto |
registerService | Serviço em segundo plano |
before_tool_call:{ block: true }é terminal; handlers de prioridade inferior são ignorados.before_tool_call:{ block: false }é um no-op e não limpa um bloqueio anterior.before_install:{ block: true }é terminal; handlers de prioridade inferior são ignorados.before_install:{ block: false }é um no-op e não limpa um bloqueio anterior.message_sending:{ cancel: true }é terminal; handlers de prioridade inferior são ignorados.message_sending:{ cancel: false }é um no-op e não limpa um cancelamento anterior.
Relacionados
- Building Plugins — crie seu próprio plugin
- Plugin Bundles — compatibilidade com bundles de Codex/Claude/Cursor
- Plugin Manifest — schema de manifesto
- Registering Tools — adicione tools de agente em um plugin
- Plugin Internals — modelo de capability e pipeline de carregamento
- Community Plugins — listagens de terceiros