Plugins
Les plugins étendent OpenClaw avec de nouvelles capacités : canaux, fournisseurs de modèles, outils, Skills, voix, 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 (livrés 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 par chat, activez
commands.plugins: true et utilisez :
clawhub:<pkg>
explicite, 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 sûre et vous oriente 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 adoptent
openclaw.install.allowInvalidConfigRecovery.
Types de plugins
OpenClaw reconnaît deux formats de plugin :| Format | Fonctionnement | Exemples |
|---|---|---|
| Native | openclaw.plugin.json + module d’exécution ; s’exécute en processus | Plugins officiels, packages npm communautaires |
| Bundle | Disposition compatible Codex/Claude/Cursor ; mappée aux 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 Plugin SDK Overview.
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 (livrés 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 de 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
| Champ | Description |
|---|---|
enabled | Commutateur principal (par défaut : true) |
allow | Allowlist des plugins (facultatif) |
deny | Liste de refus des plugins (facultatif ; deny l’emporte) |
load.paths | Fichiers/répertoires de plugins supplémentaires |
slots | Sélecteurs de slot exclusifs (par ex. memory, contextEngine) |
entries.\<id\> | Basculements + 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 des plugins : désactivé vs manquant vs invalide
États des plugins : 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 identifiant 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 recherche les plugins dans cet ordre (la première correspondance l’emporte) :Extensions de l’espace de travail
\<workspace\>/.openclaw/<plugin-root>/*.ts et \<workspace\>/.openclaw/<plugin-root>/*/index.ts.Règles d’activation
plugins.enabled: falsedésactive tous les pluginsplugins.denyl’emporte toujours sur allowplugins.entries.\<id\>.enabled: falsedésactive ce plugin- Les plugins provenant de l’espace de travail 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 | Par défaut |
|---|---|---|
memory | Plugin de mémoire actif | memory-core |
contextEngine | Moteur de contexte actif | legacy (intégré) |
Référence CLI
openclaw plugins enable <id>.
--force écrase sur place un plugin ou hook pack installé existant.
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 uniquement pour npm. Il n’est pas pris en charge avec --marketplace, car
les installations marketplace conservent les métadonnées de source marketplace au lieu d’une spécification npm.
--dangerously-force-unsafe-install est une dérogation d’urgence pour les faux
positifs du scanner intégré de code dangereux. Il permet aux installations et mises à jour de plugins de continuer malgré 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 aux échecs d’analyse.
Ce drapeau CLI s’applique uniquement aux flux d’installation/mise à jour de plugins. Les installations de dépendances de Skills
adossées à la gateway utilisent à la place la dérogation de requête correspondante dangerouslyForceUnsafeInstall, tandis que openclaw skills install reste le flux distinct de téléchargement/installation de Skills ClawHub.
Les bundles compatibles participent au même flux plugin list/inspect/enable/disable.
La prise en charge actuelle du runtime comprend les bundle skills, les Claude command-skills,
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 Cursor command-skills 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 marketplace peuvent être un nom de marketplace Claude connu issu de
~/.claude/plugins/known_marketplaces.json, une racine de marketplace locale ou
un chemin marketplace.json, une notation GitHub abrégée 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 utiliser uniquement des sources de chemin relatives.
Voir la référence CLI openclaw plugins pour tous les détails.
Aperçu de l’API des plugins
Les plugins natifs exportent un objet d’entrée qui exposeregister(api). Les plugins plus anciens
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 se replie toujours sur activate(api) pour les anciens plugins,
mais les plugins groupés et les nouveaux plugins externes doivent traiter register comme
le contrat public.
Méthodes d’enregistrement courantes :
| Méthode | 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 duplex |
registerMediaUnderstandingProvider | Analyse d’image/audio |
registerImageGenerationProvider | Génération d’images |
registerMusicGenerationProvider | Génération musicale |
registerVideoGenerationProvider | Génération de vidéos |
registerWebFetchProvider | Fournisseur de récupération / extraction web |
registerWebSearchProvider | Recherche web |
registerHttpRoute | Point de terminaison 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 }est sans 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 }est sans 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 }est sans 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és et pipeline de chargement
- Community Plugins — listes tierces