Plugins
Les plugins étendent OpenClaw avec de nouvelles capacités : canaux, fournisseurs de modèles, outils, Skills, parole, transcription en temps réel, voix en temps réel, compréhension des médias, génération d’images, génération de vidéos, récupération web, recherche web, et plus encore. Certains plugins sont core (fournis avec OpenClaw), d’autres sont externes (publiés sur npm par la communauté).Démarrage rapide
Si vous préférez un contrôle natif dans le chat, activez
commands.plugins: true et utilisez :
clawhub:<pkg>, ou spécification de package simple (ClawHub d’abord, puis repli sur npm).
Si la configuration est invalide, l’installation échoue normalement de manière fermée et vous renvoie vers
openclaw doctor --fix. La seule exception de récupération est un chemin étroit de
réinstallation de plugin groupé pour les plugins qui activent
openclaw.install.allowInvalidConfigRecovery.
Types de plugins
OpenClaw reconnaît deux formats de plugin :| Format | Fonctionnement | Exemples |
|---|---|---|
| Natif | openclaw.plugin.json + module d’exécution ; s’exécute en processus | Plugins officiels, packages npm de la communauté |
| Bundle | Disposition compatible Codex/Claude/Cursor ; mappée vers les fonctionnalités OpenClaw | .codex-plugin/, .claude-plugin/, .cursor-plugin/ |
openclaw plugins list. Voir Plugin Bundles pour les détails sur les bundles.
Si vous écrivez un plugin natif, commencez par Building Plugins
et la vue d’ensemble du SDK Plugin.
Plugins officiels
Installables (npm)
| Plugin | Package | Documentation |
|---|---|---|
| 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 (fournis avec OpenClaw)
Fournisseurs de modèles (activés par défaut)
Fournisseurs de modèles (activés par défaut)
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 mémoire
Plugins de mémoire
memory-core— recherche mémoire groupée (par défaut viaplugins.slots.memory)memory-lancedb— mémoire à long terme installée à la demande avec rappel/capture automatiques (définissezplugins.slots.memory = "memory-lancedb")
Fournisseurs vocaux (activés par défaut)
Fournisseurs vocaux (activés par défaut)
elevenlabs, microsoftAutres
Autres
browser— plugin browser groupé pour l’outil browser, la CLIopenclaw browser, la méthode gatewaybrowser.request, le runtime browser et le service de contrôle du navigateur par défaut (activé par défaut ; désactivez-le avant de le remplacer)copilot-proxy— pont VS Code Copilot Proxy (désactivé par défaut)
Configuration
| Field | Description |
|---|---|
enabled | Commutateur principal (par défaut : true) |
allow | Liste d’autorisation des plugins (facultatif) |
deny | Liste de refus des plugins (facultatif ; deny est prioritaire) |
load.paths | Fichiers/répertoires de plugin supplémentaires |
slots | Sélecteurs de slots exclusifs (par ex. memory, contextEngine) |
entries.\<id\> | Commutateurs + configuration par plugin |
openclaw gateway par défaut), ce
redémarrage est généralement effectué automatiquement peu après l’écriture de la configuration.
États de plugin : désactivé vs manquant vs invalide
États de plugin : désactivé vs manquant vs invalide
- Désactivé : le plugin existe mais les règles d’activation l’ont désactivé. La configuration est conservée.
- Manquant : la configuration référence un id de plugin que la découverte n’a pas trouvé.
- Invalide : le plugin existe mais sa configuration ne correspond pas au schéma déclaré.
Découverte et priorité
OpenClaw analyse les plugins dans cet ordre (la première correspondance l’emporte) :Extensions du workspace
\<workspace\>/.openclaw/<plugin-root>/*.ts et \<workspace\>/.openclaw/<plugin-root>/*/index.ts.Règles d’activation
plugins.enabled: falsedésactive tous les pluginsplugins.denyest toujours prioritaire sur allowplugins.entries.\<id\>.enabled: falsedésactive ce plugin- Les plugins provenant du workspace sont désactivés par défaut (ils doivent être explicitement activés)
- Les plugins groupés suivent l’ensemble intégré activé par défaut, sauf remplacement
- Les slots exclusifs peuvent forcer l’activation du plugin sélectionné pour ce slot
Slots de plugin (catégories exclusives)
Certaines catégories sont exclusives (une seule active à la fois) :| Slot | Ce qu’il contrôle | Valeur par défaut |
|---|---|---|
memory | Plugin mémoire actif | memory-core |
contextEngine | Moteur de contexte actif | legacy (intégré) |
Référence CLI
openclaw plugins enable <id>.
--force écrase en place un plugin installé existant ou un pack de hooks.
Il n’est pas pris en charge avec --link, qui réutilise le chemin source au lieu de
copier vers une cible d’installation gérée.
--pin est propre à npm. Il n’est pas pris en charge avec --marketplace, car
les installations marketplace conservent des métadonnées de source marketplace au lieu d’une spécification npm.
--dangerously-force-unsafe-install est un remplacement de secours pour les faux
positifs du scanner intégré de code dangereux. Il permet aux installations et mises à jour de plugins
de continuer au-delà des résultats intégrés critical, mais il
ne contourne toujours pas les blocages de politique before_install des plugins ni les blocages dus à l’échec de l’analyse.
Cet indicateur CLI s’applique uniquement aux flux d’installation/mise à jour de plugins. Les
installations de dépendances de Skills prises en charge par la Gateway utilisent à la place le remplacement de requête
correspondant dangerouslyForceUnsafeInstall, tandis que openclaw skills install reste le flux séparé de téléchargement/installation
des Skills ClawHub.
Les bundles compatibles participent au même flux list/inspect/enable/disable des plugins.
La prise en charge d’exécution actuelle inclut les Skills de bundle, les command-skills Claude,
les valeurs par défaut Claude settings.json, les valeurs par défaut Claude .lsp.json et
lspServers déclarées dans le manifeste, les command-skills Cursor, et les répertoires de hooks Codex compatibles.
openclaw plugins inspect <id> signale aussi les capacités de bundle détectées ainsi que
les entrées de serveurs MCP et LSP prises en charge ou non prises en charge pour les plugins basés sur des bundles.
Les sources de marketplace peuvent être un nom de marketplace Claude connu provenant de
~/.claude/plugins/known_marketplaces.json, une racine de marketplace locale ou un chemin
marketplace.json, une forme abrégée GitHub comme owner/repo, une URL de dépôt GitHub,
ou une URL git. Pour les marketplaces distantes, les entrées de plugin doivent rester à l’intérieur du
dépôt marketplace cloné et n’utiliser que des sources de chemin relatives.
Voir la référence CLI openclaw plugins pour tous les détails.
Vue d’ensemble de l’API des plugins
Les plugins natifs exportent un objet d’entrée qui exposeregister(api). Les anciens
plugins peuvent encore utiliser activate(api) comme alias hérité, mais les nouveaux plugins doivent
utiliser register.
register(api) pendant l’activation du plugin.
Le chargeur continue de se rabattre sur activate(api) pour les anciens plugins,
mais les plugins groupés et les nouveaux plugins externes doivent considérer register comme le
contrat public.
Méthodes d’enregistrement courantes :
| Method | Ce qu’elle enregistre |
|---|---|
registerProvider | Fournisseur de modèles (LLM) |
registerChannel | Canal de chat |
registerTool | Outil d’agent |
registerHook / on(...) | Hooks de cycle de vie |
registerSpeechProvider | Synthèse vocale / STT |
registerRealtimeTranscriptionProvider | STT en streaming |
registerRealtimeVoiceProvider | Voix temps réel bidirectionnelle |
registerMediaUnderstandingProvider | Analyse d’image/audio |
registerImageGenerationProvider | Génération d’images |
registerVideoGenerationProvider | Génération de vidéos |
registerWebFetchProvider | Fournisseur de récupération / scraping web |
registerWebSearchProvider | Recherche web |
registerHttpRoute | Endpoint HTTP |
registerCommand / registerCli | Commandes CLI |
registerContextEngine | Moteur de contexte |
registerService | Service d’arrière-plan |
before_tool_call:{ block: true }est terminal ; les gestionnaires de priorité inférieure sont ignorés.before_tool_call:{ block: false }n’a aucun effet et n’efface pas un blocage antérieur.before_install:{ block: true }est terminal ; les gestionnaires de priorité inférieure sont ignorés.before_install:{ block: false }n’a aucun effet et n’efface pas un blocage antérieur.message_sending:{ cancel: true }est terminal ; les gestionnaires de priorité inférieure sont ignorés.message_sending:{ cancel: false }n’a aucun effet et n’efface pas une annulation antérieure.
Lié
- Building Plugins — créez votre propre plugin
- Plugin Bundles — compatibilité des bundles Codex/Claude/Cursor
- Plugin Manifest — schéma du manifeste
- Registering Tools — ajouter des outils d’agent dans un plugin
- Plugin Internals — modèle de capacité et pipeline de chargement
- Community Plugins — listes tierces