Plugin
I plugin estendono OpenClaw con nuove capability: canali, provider di modelli, strumenti, Skills, speech, trascrizione realtime, voce realtime, 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 in chat, abilita
commands.plugins: true e usa:
clawhub:<pkg> esplicito o specifica di pacchetto bare (prima ClawHub, poi fallback su npm).
Se la configurazione non è valida, normalmente l’installazione fallisce in modalità fail-closed e ti indirizza a
openclaw doctor --fix. L’unica eccezione di ripristino è un percorso ristretto di
reinstallazione di plugin bundled per plugin che scelgono di usare
openclaw.install.allowInvalidConfigRecovery.
Tipi di plugin
OpenClaw riconosce due formati di plugin:| Formato | Come funziona | Esempi |
|---|---|---|
| Nativo | 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 Bundle di plugin per i dettagli sui bundle.
Se stai scrivendo un plugin nativo, inizia con Creazione di plugin
e la Panoramica del Plugin SDK.
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 memory
Plugin memory
memory-core— memory search bundled (predefinito tramiteplugins.slots.memory)memory-lancedb— memory a lungo termine installata on-demand 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 bundled per lo strumento browser, la CLIopenclaw browser, il metodo gatewaybrowser.request, il runtime browser e il servizio di controllo browser predefinito (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 la precedenza) |
load.paths | File/directory di plugin aggiuntivi |
slots | Selettori di slot esclusivi (ad es. memory, contextEngine) |
entries.\<id\> | Toggle + configurazione per plugin |
openclaw gateway),
quel riavvio di solito viene eseguito automaticamente poco dopo la scrittura della configurazione.
Stati del plugin: disabilitato vs mancante vs non valido
Stati del plugin: disabilitato vs mancante vs non valido
- Disabilitato: il plugin esiste ma le regole di abilitazione lo hanno disattivato. La configurazione viene preservata.
- 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 (vince la prima corrispondenza):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 originati dal workspace sono disabilitati per impostazione predefinita (devono essere esplicitamente abilitati)
- I plugin bundled seguono l’insieme built-in abilitato per impostazione predefinita, salvo override
- Gli slot esclusivi possono forzare l’abilitazione del plugin selezionato per quello slot
Slot dei plugin (categorie esclusive)
Alcune categorie sono esclusive (una sola attiva alla volta):| Slot | Cosa controlla | Predefinito |
|---|---|---|
memory | Plugin memory attivo | memory-core |
contextEngine | Context engine attivo | legacy (built-in) |
Riferimento CLI
openclaw plugins enable <id>.
--force sovrascrive sul posto un plugin installato o hook pack esistente.
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 da marketplace persistono i metadati della sorgente del marketplace invece di una specifica npm.
--dangerously-force-unsafe-install è un override di emergenza per falsi
positivi dallo scanner integrato di codice pericoloso. Consente ai flussi di installazione e aggiornamento
dei plugin di continuare oltre i rilevamenti integrati critical, ma non
aggira comunque i blocchi di policy before_install del plugin o il blocco per errori di scansione.
Questo flag CLI si applica solo ai flussi di installazione/aggiornamento dei plugin. Le installazioni di dipendenze
Skills supportate dal Gateway usano invece l’override della richiesta corrispondente dangerouslyForceUnsafeInstall, mentre openclaw skills install resta il flusso separato di download/installazione Skills da ClawHub.
I bundle compatibili partecipano allo stesso flusso di lista/inspect/enable/disable dei plugin. Il supporto runtime attuale include Skills bundle, command-Skills Claude,
valori predefiniti di Claude settings.json, valori predefiniti di Claude .lsp.json e lspServers dichiarati nel manifest, command-Skills Cursor e directory hook Codex compatibili.
openclaw plugins inspect <id> segnala anche le capability di bundle rilevate più le voci di server MCP e LSP supportate o non supportate per i plugin supportati da bundle.
Le sorgenti marketplace possono essere un nome noto di marketplace Claude da
~/.claude/plugins/known_marketplaces.json, una root locale di marketplace o un percorso
marketplace.json, una scorciatoia GitHub come owner/repo, un URL di repo GitHub
o un URL git. Per i marketplace remoti, le voci del plugin devono rimanere all’interno del
repo marketplace clonato e usare solo sorgenti di percorso relative.
Vedi riferimento CLI openclaw plugins per tutti i dettagli.
Panoramica dell’API 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 activate(api) come fallback per i plugin più vecchi,
ma i plugin bundled e i nuovi plugin esterni dovrebbero considerare register come il
contratto pubblico.
Metodi comuni di registrazione:
| Metodo | Cosa registra |
|---|---|
registerProvider | Provider di modelli (LLM) |
registerChannel | Canale 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 immagini/audio |
registerImageGenerationProvider | Generazione di immagini |
registerMusicGenerationProvider | Generazione musicale |
registerVideoGenerationProvider | Generazione video |
registerWebFetchProvider | Provider web fetch / scrape |
registerWebSearchProvider | Web search |
registerHttpRoute | Endpoint HTTP |
registerCommand / registerCli | Comandi CLI |
registerContextEngine | Context engine |
registerService | Servizio in background |
before_tool_call:{ block: true }è terminale; gli handler a priorità inferiore vengono saltati.before_tool_call:{ block: false }è un no-op e non annulla un blocco precedente.before_install:{ block: true }è terminale; gli handler a priorità inferiore vengono saltati.before_install:{ block: false }è un no-op e non annulla un blocco precedente.message_sending:{ cancel: true }è terminale; gli handler a priorità inferiore vengono saltati.message_sending:{ cancel: false }è un no-op e non annulla una cancellazione precedente.
Correlati
- Creazione di plugin — crea il tuo plugin
- Bundle di plugin — compatibilità con bundle Codex/Claude/Cursor
- Manifesto plugin — schema del manifesto
- Registrazione degli strumenti — aggiungi strumenti agente in un plugin
- Interni dei plugin — modello delle capability e pipeline di caricamento
- Plugin della community — elenchi di terze parti