Plugin
I plugin estendono OpenClaw con nuove capacità: canali, provider di modelli, strumenti, skills, speech, trascrizione in tempo reale, voce in tempo reale, media-understanding, generazione di immagini, generazione video, web fetch, web search e altro ancora. Alcuni plugin sono core (forniti con OpenClaw), altri sono esterni (pubblicati su npm dalla community).Avvio rapido
Se preferisci il controllo nativo via chat, abilita
commands.plugins: true e usa:
clawhub:<pkg>
esplicito oppure specifica pacchetto semplice (prima ClawHub, poi fallback su npm).
Se la configurazione non è valida, normalmente l’installazione fallisce in modo sicuro e ti indirizza a
openclaw doctor --fix. L’unica eccezione di recupero è un ristretto percorso di
reinstallazione di plugin inclusi per i plugin che scelgono di aderire a
openclaw.install.allowInvalidConfigRecovery.
Tipi di plugin
OpenClaw riconosce due formati di plugin:| Formato | Come funziona | Esempi |
|---|---|---|
| Native | openclaw.plugin.json + modulo runtime; viene eseguito in-process | Plugin ufficiali, pacchetti npm della community |
| Bundle | Layout compatibile con Codex/Claude/Cursor; mappato alle funzionalità OpenClaw | .codex-plugin/, .claude-plugin/, .cursor-plugin/ |
openclaw plugins list. Vedi Plugin Bundles per i dettagli sui bundle.
Se stai scrivendo un plugin nativo, inizia da Building Plugins
e da Plugin SDK Overview.
Plugin ufficiali
Installabili (npm)
| Plugin | Pacchetto | Documentazione |
|---|---|---|
| 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 (forniti con OpenClaw)
Provider di modelli (abilitati per impostazione predefinita)
Provider di modelli (abilitati per impostazione predefinita)
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, zaiPlugin di memoria
Plugin di memoria
memory-core— ricerca di memoria inclusa (predefinita tramiteplugins.slots.memory)memory-lancedb— memoria a lungo termine installata su richiesta con auto-recall/capture (impostaplugins.slots.memory = "memory-lancedb")
Provider speech (abilitati per impostazione predefinita)
Provider speech (abilitati per impostazione predefinita)
elevenlabs, microsoftAltro
Altro
browser— plugin browser incluso per lo strumento browser, la CLIopenclaw browser, il metodo gatewaybrowser.request, il runtime browser e il servizio predefinito di controllo browser (abilitato per impostazione predefinita; disabilitalo prima di sostituirlo)copilot-proxy— bridge VS Code Copilot Proxy (disabilitato per impostazione predefinita)
Configurazione
| Campo | Descrizione |
|---|---|
enabled | Interruttore principale (predefinito: true) |
allow | Allowlist dei plugin (facoltativa) |
deny | Denylist dei plugin (facoltativa; deny ha precedenza) |
load.paths | File/directory plugin aggiuntivi |
slots | Selettori di slot esclusivi (ad es. memory, contextEngine) |
entries.\<id\> | Attivazione/disattivazione + configurazione per plugin |
openclaw gateway), quel
riavvio viene di solito eseguito automaticamente poco dopo che la scrittura della configurazione è stata applicata.
Stati dei plugin: disabilitato vs mancante vs non valido
Stati dei plugin: disabilitato vs mancante vs non valido
- Disabilitato: il plugin esiste ma le regole di abilitazione lo hanno disattivato. La configurazione viene mantenuta.
- Mancante: la configurazione fa riferimento a un ID plugin che il rilevamento non ha trovato.
- Non valido: il plugin esiste ma la sua configurazione non corrisponde allo schema dichiarato.
Rilevamento e precedenza
OpenClaw analizza i plugin in questo ordine (la prima corrispondenza vince):Estensioni del workspace
\<workspace\>/.openclaw/<plugin-root>/*.ts e \<workspace\>/.openclaw/<plugin-root>/*/index.ts.Regole di abilitazione
plugins.enabled: falsedisabilita tutti i pluginplugins.denyha sempre la precedenza su allowplugins.entries.\<id\>.enabled: falsedisabilita quel plugin- I plugin di origine workspace sono disabilitati per impostazione predefinita (devono essere abilitati esplicitamente)
- I plugin inclusi seguono l’insieme predefinito integrato attivo salvo override
- Gli slot esclusivi possono forzare l’abilitazione del plugin selezionato per quello slot
Slot dei plugin (categorie esclusive)
Alcune categorie sono esclusive (solo una può essere attiva alla volta):| Slot | Cosa controlla | Predefinito |
|---|---|---|
memory | Plugin di memoria attivo | memory-core |
contextEngine | Motore di contesto attivo | legacy (integrato) |
Riferimento CLI
openclaw plugins enable <id>.
--force sovrascrive sul posto un plugin o un pacchetto hook già installato.
Non è supportato con --link, che riutilizza il percorso sorgente invece di
copiare su una destinazione di installazione gestita.
--pin è solo per npm. Non è supportato con --marketplace, perché
le installazioni dal marketplace mantengono i metadati della sorgente del marketplace invece di una specifica npm.
--dangerously-force-unsafe-install è un override di emergenza per falsi
positivi del rilevatore integrato di codice pericoloso. Consente alle installazioni
e agli aggiornamenti dei plugin di proseguire oltre i rilevamenti integrati critical, ma comunque
non aggira i blocchi di policy before_install del plugin né i blocchi dovuti a errori di scansione.
Questo flag CLI si applica solo ai flussi di installazione/aggiornamento dei plugin. Le installazioni di dipendenze skill
supportate dal Gateway usano invece il corrispondente override di richiesta dangerouslyForceUnsafeInstall, mentre openclaw skills install resta il flusso separato di download/installazione skill da ClawHub.
I bundle compatibili partecipano allo stesso flusso plugin di list/inspect/enable/disable.
Il supporto runtime attuale include skill bundle, command-skills Claude,
valori predefiniti Claude settings.json, valori predefiniti Claude .lsp.json e
lspServers dichiarati nel manifest, command-skills Cursor e directory hook Codex compatibili.
openclaw plugins inspect <id> riporta anche le capacità del bundle rilevate più
le voci di server MCP e LSP supportate o non supportate per i plugin basati su bundle.
Le sorgenti del marketplace possono essere un nome di marketplace noto di Claude da
~/.claude/plugins/known_marketplaces.json, una root di marketplace locale o un percorso
marketplace.json, una forma abbreviata GitHub come owner/repo, un URL di repository GitHub
oppure un URL git. Per i marketplace remoti, le voci plugin devono rimanere dentro il
repository del marketplace clonato e usare solo sorgenti di percorso relative.
Vedi il riferimento CLI openclaw plugins per tutti i dettagli.
Panoramica dell’API dei plugin
I plugin nativi esportano un oggetto entry che esponeregister(api). I plugin più vecchi
possono ancora usare activate(api) come alias legacy, ma i nuovi plugin dovrebbero
usare register.
register(api) durante l’attivazione del plugin.
Il loader continua a usare come fallback activate(api) per i plugin più vecchi,
ma i plugin inclusi e i nuovi plugin esterni dovrebbero trattare register come
contratto pubblico.
Metodi di registrazione comuni:
| Metodo | Cosa registra |
|---|---|
registerProvider | Provider di modelli (LLM) |
registerChannel | Canale di chat |
registerTool | Strumento agente |
registerHook / on(...) | Hook del ciclo di vita |
registerSpeechProvider | Text-to-speech / STT |
registerRealtimeTranscriptionProvider | STT in streaming |
registerRealtimeVoiceProvider | Voce realtime duplex |
registerMediaUnderstandingProvider | Analisi di immagini/audio |
registerImageGenerationProvider | Generazione di immagini |
registerVideoGenerationProvider | Generazione video |
registerWebFetchProvider | Provider di web fetch / scrape |
registerWebSearchProvider | Web search |
registerHttpRoute | Endpoint HTTP |
registerCommand / registerCli | Comandi CLI |
registerContextEngine | Motore di contesto |
registerService | Servizio in background |
before_tool_call:{ block: true }è terminale; i gestori con priorità più bassa vengono saltati.before_tool_call:{ block: false }è un no-op e non annulla un blocco precedente.before_install:{ block: true }è terminale; i gestori con priorità più bassa vengono saltati.before_install:{ block: false }è un no-op e non annulla un blocco precedente.message_sending:{ cancel: true }è terminale; i gestori con priorità più bassa vengono saltati.message_sending:{ cancel: false }è un no-op e non annulla una precedente cancellazione.
Correlati
- Building Plugins — crea il tuo plugin
- Plugin Bundles — compatibilità bundle Codex/Claude/Cursor
- Plugin Manifest — schema del manifest
- Registering Tools — aggiungi strumenti agente in un plugin
- Plugin Internals — modello di capacità e pipeline di caricamento
- Community Plugins — elenchi di terze parti