Plugins
Plugins
Les Plugins Ă©tendent OpenClaw avec des canaux, des fournisseurs de modĂšles, des environnements dâagents, des outils, des Skills, la parole, la transcription en temps rĂ©el, la voix, la comprĂ©hension des mĂ©dias, la gĂ©nĂ©ration, la rĂ©cupĂ©ration Web, la recherche Web et dâautres fonctionnalitĂ©s dâexĂ©cution.
Utilisez cette page pour installer un Plugin, redĂ©marrer le Gateway, vĂ©rifier que lâenvironnement dâexĂ©cution lâa chargĂ© et rĂ©soudre les Ă©checs de configuration courants. Pour des exemples portant uniquement sur les commandes, consultez GĂ©rer les Plugins. Pour lâinventaire gĂ©nĂ©rĂ© des Plugins intĂ©grĂ©s, externes officiels et disponibles uniquement sous forme de code source, consultez Inventaire des Plugins.
Prérequis
- une copie de travail ou une installation dâOpenClaw avec la CLI
openclawdisponible - un accÚs réseau à la source sélectionnée (ClawHub, npm ou un hébergeur git)
- les identifiants, clĂ©s de configuration ou outils du systĂšme dâexploitation propres au Plugin indiquĂ©s dans la documentation de configuration de ce Plugin
- lâautorisation de recharger ou redĂ©marrer le Gateway qui dessert vos canaux
Démarrage rapide
Trouver le Plugin
Recherchez des paquets de Plugins publics sur ClawHub :
openclaw plugins search "calendar"ClawHub est lâinterface principale de dĂ©couverte des Plugins communautaires. Pendant la
transition de lancement, les spécifications de paquet simples ordinaires sont toujours installées depuis npm, sauf si
elles correspondent Ă lâidentifiant dâun Plugin officiel. Les spĂ©cifications @openclaw/* brutes qui correspondent Ă un
Plugin intégré sont résolues vers cette copie intégrée. Utilisez un préfixe de source explicite
lorsque vous avez besoin dâune source prĂ©cise.
Installer le Plugin
# Depuis ClawHub.openclaw plugins install clawhub:<package> # Depuis npm.openclaw plugins install npm:<package> # Depuis git.openclaw plugins install git:github.com/<owner>/<repo>@<ref> # Depuis une copie de travail de dĂ©veloppement locale.openclaw plugins install ./my-pluginopenclaw plugins install --link ./my-pluginConsidĂ©rez lâinstallation dâun Plugin comme lâexĂ©cution de code. PrĂ©fĂ©rez des versions Ă©pinglĂ©es pour
des installations de production reproductibles. Les paquets ClawHub et le catalogue
intĂ©grĂ©/officiel dâOpenClaw sont des sources fiables. Les nouvelles sources arbitraires npm, git,
de chemin/archive local, npm-pack: ou de place de marché nécessitent
--force dans les installations non interactives aprĂšs avoir
examinĂ© la source et Ă©tabli quâelle est fiable.
Le configurer et lâactiver
Configurez les paramĂštres propres au Plugin sous plugins.entries.<id>.config.
Activez le Plugin sâil ne lâest pas dĂ©jĂ :
openclaw plugins enable <plugin-id>Si plugins.allow est dĂ©fini, lâidentifiant du Plugin installĂ© doit figurer dans cette liste
avant que le Plugin puisse ĂȘtre chargĂ©. openclaw plugins install ajoute lâidentifiant
installĂ© Ă une liste plugins.allow existante et supprime ce mĂȘme identifiant de
plugins.deny afin que lâinstallation explicite puisse ĂȘtre chargĂ©e aprĂšs le redĂ©marrage.
Laisser le Gateway se recharger
Lâinstallation, la mise Ă jour ou la dĂ©sinstallation du code dâun Plugin nĂ©cessite un redĂ©marrage du Gateway. Un Gateway gĂ©rĂ© dont le rechargement de la configuration est activĂ© dĂ©tecte la modification de lâenregistrement dâinstallation du Plugin et redĂ©marre automatiquement. Sinon, redĂ©marrez-le vous-mĂȘme :
openclaw gateway restartLâactivation ou la dĂ©sactivation met Ă jour la configuration et le registre Ă froid. Une inspection de lâenvironnement dâexĂ©cution reste la preuve la plus claire des interfaces dâexĂ©cution actives.
VĂ©rifier lâenregistrement dans lâenvironnement dâexĂ©cution
openclaw plugins inspect <plugin-id> --runtime --jsonUtilisez --runtime pour confirmer lâenregistrement des outils, hooks, services, mĂ©thodes du Gateway
ou commandes de la CLI appartenant au Plugin. La commande inspect simple vérifie uniquement le manifeste
et le registre Ă froid.
Configuration
Choisir une source dâinstallation
| Source | Ă utiliser lorsque | Exemple |
|---|---|---|
| ClawHub | Vous souhaitez bĂ©nĂ©ficier de la dĂ©couverte native dâOpenClaw, des analyses, des mĂ©tadonnĂ©es de version et des indications dâinstallation | openclaw plugins install clawhub:<package> |
| npm | Vous avez besoin dâutiliser directement le registre npm ou des flux de travail avec des balises de distribution | openclaw plugins install npm:<package> |
| git | Vous avez besoin dâune branche, dâune balise ou dâun commit provenant dâun dĂ©pĂŽt | openclaw plugins install git:github.com/<owner>/<repo>@<ref> |
| chemin local | Vous dĂ©veloppez ou testez un Plugin sur la mĂȘme machine | openclaw plugins install --link ./my-plugin |
| place de marché | Vous installez un Plugin de place de marché compatible avec Claude | openclaw plugins install <plugin> --marketplace <source> |
Les spécifications de paquet simples ont un comportement de compatibilité particulier : un nom simple qui
correspond Ă lâidentifiant dâun Plugin intĂ©grĂ© utilise cette source intĂ©grĂ©e ; un nom simple qui correspond
Ă lâidentifiant dâun Plugin externe officiel utilise le catalogue officiel de paquets ; toute autre
spécification simple est installée par npm pendant la transition de lancement. Les spécifications @openclaw/*
brutes qui correspondent à des Plugins intégrés sont également résolues vers la copie intégrée avant le
repli vers npm. Utilisez npm:@openclaw/<plugin>@<version> pour installer délibérément le
paquet npm externe plutÎt que la copie intégrée. Utilisez clawhub:, npm:,
git: ou npm-pack: pour sélectionner la source de maniÚre déterministe. Consultez
openclaw plugins pour connaĂźtre le contrat complet de la commande.
Pour les installations npm, les spécifications non épinglées et @latest sélectionnent le paquet
stable le plus rĂ©cent qui annonce sa compatibilitĂ© avec cette version dâOpenClaw. Si la
derniÚre version actuellement publiée sur npm déclare une version de openclaw.compat.pluginApi ou
openclaw.install.minHostVersion plus récente que celle prise en charge par cette version, OpenClaw analyse
les anciennes versions stables et installe la plus récente qui convient. Les versions exactes
et les balises de canal explicites telles que @beta restent épinglées au paquet sélectionné
et Ă©chouent en cas dâincompatibilitĂ©.
Politique dâinstallation de lâopĂ©rateur
Configurez security.installPolicy afin dâexĂ©cuter une commande de politique locale fiable
avant quâune installation ou une mise Ă jour de Plugin ne se poursuive. La politique reçoit des mĂ©tadonnĂ©es ainsi que
le chemin de la source prĂ©parĂ©e et peut autoriser ou bloquer lâinstallation. Elle couvre Ă la fois les chemins
dâinstallation et de mise Ă jour de la CLI et ceux gĂ©rĂ©s par le Gateway. Les hooks before_install du Plugin sâexĂ©cutent
plus tard, et uniquement dans les processus OpenClaw oĂč les hooks de Plugins sont chargĂ©s ; utilisez donc
plutĂŽt security.installPolicy pour les dĂ©cisions dâinstallation appartenant Ă lâopĂ©rateur. Lâoption
obsolÚte --dangerously-force-unsafe-install est acceptée à des fins de
compatibilitĂ©, mais nâa aucun effet : elle ne contourne ni la politique dâinstallation ni la liste de refus
intĂ©grĂ©e des dĂ©pendances de Plugins dâOpenClaw.
Consultez la configuration des Skills
pour connaĂźtre le schĂ©ma dâexĂ©cution security.installPolicy partagĂ© par les Skills et les
Plugins.
Configurer la politique des Plugins
La structure de configuration commune des Plugins est la suivante :
{ plugins: { enabled: true, allow: ["voice-call"], deny: ["untrusted-plugin"], load: { paths: ["~/Projects/oss/voice-call-plugin"] }, slots: { memory: "memory-core" }, entries: { "voice-call": { enabled: true, config: { provider: "twilio" } }, }, },}Principales rĂšgles de politique :
plugins.enabled: falsedĂ©sactive tous les Plugins et ignore les opĂ©rations de dĂ©couverte et de chargement. Les rĂ©fĂ©rences obsolĂštes Ă des Plugins restent inertes tant que cette option est active ; rĂ©activez les Plugins avant dâexĂ©cuter le nettoyage par doctor si vous souhaitez supprimer les identifiants obsolĂštes.plugins.denyprĂ©vaut sur la liste dâautorisation et sur lâactivation individuelle des Plugins.plugins.allowest une liste dâautorisation exclusive. Les outils appartenant Ă des Plugins qui ne figurent pas dans la liste dâautorisation restent indisponibles mĂȘme lorsquetools.allowcontient"*".plugins.entries.<id>.enabled: falsedĂ©sactive un Plugin tout en conservant sa configuration.plugins.load.pathsajoute explicitement des fichiers ou rĂ©pertoires de Plugins locaux. Les chemins locauxplugins installgĂ©rĂ©s doivent ĂȘtre des rĂ©pertoires ou des archives de Plugins ; utilisezplugins.load.pathspour les fichiers de Plugin autonomes.- Les Plugins provenant de lâespace de travail sont dĂ©sactivĂ©s par dĂ©faut ; activez-les explicitement ou ajoutez-les Ă la liste dâautorisation avant dâutiliser du code local de lâespace de travail.
- Les Plugins intĂ©grĂ©s suivent leurs mĂ©tadonnĂ©es internes dâactivation ou de dĂ©sactivation par dĂ©faut, sauf si la configuration les remplace explicitement.
plugins.slots.<slot>(memoryoucontextEngine) sĂ©lectionne un Plugin pour une catĂ©gorie exclusive. La sĂ©lection dâun emplacement compte comme une activation explicite et force lâactivation du Plugin sĂ©lectionnĂ© pour cet emplacement, mĂȘme sâil devrait autrement ĂȘtre optionnel.plugins.denyetplugins.entries.<id>.enabled: falsele bloquent toujours.- Les Plugins intĂ©grĂ©s optionnels peuvent sâactiver automatiquement lorsque la configuration nomme lâune de leurs interfaces, comme une rĂ©fĂ©rence de fournisseur/modĂšle, une configuration de canal, un moteur de CLI ou un environnement dâexĂ©cution dâagent.
- Le routage Codex de la famille OpenAI maintient sĂ©parĂ©es les limites entre le fournisseur et le Plugin dâexĂ©cution :
les anciennes références de modÚles Codex constituent une configuration héritée que doctor répare,
tandis que le Plugin intégré
codexpossĂšde lâenvironnement dâexĂ©cution du serveur dâapplication Codex pour les rĂ©fĂ©rences dâagentsopenai/*canoniques, les rĂ©fĂ©rencesagentRuntime.id: "codex"explicites et les anciennes rĂ©fĂ©rencescodex/*.
Lorsque plugins.allow nâest pas dĂ©fini et que des Plugins non intĂ©grĂ©s sont dĂ©couverts automatiquement depuis
lâespace de travail ou les racines globales des Plugins, le dĂ©marrage consigne
plugins.allow is empty; discovered non-bundled plugins may auto-load: ...
avec les identifiants des Plugins découverts et, pour les listes courtes, un extrait plugins.allow
minimal. Exécutez openclaw plugins list --enabled --verbose
ou openclaw plugins inspect <id> avec lâidentifiant du
Plugin indiquĂ© avant de copier les Plugins fiables dans openclaw.json. Le mĂȘme
Ă©pinglage de confiance sâapplique lorsque les diagnostics indiquent quâun Plugin a Ă©tĂ© chargĂ©
without install/load-path provenance : inspectez cet identifiant de Plugin, puis épinglez-le dans
plugins.allow ou rĂ©installez-le depuis une source fiable afin quâOpenClaw enregistre la
provenance de lâinstallation.
Exécutez openclaw doctor ou openclaw doctor --fix lorsque la validation de la configuration
signale des identifiants de Plugins obsolĂštes, des incohĂ©rences de liste dâautorisation ou dâoutils, ou dâanciens chemins de
Plugins intégrés.
Comprendre les formats de Plugins
OpenClaw reconnaĂźt deux formats de Plugins :
| Format | Méthode de chargement | à utiliser lorsque |
|---|---|---|
| Plugin OpenClaw natif | openclaw.plugin.json accompagnĂ© dâun module dâexĂ©cution chargĂ© dans le processus |
Vous installez ou dĂ©veloppez des fonctionnalitĂ©s dâexĂ©cution propres Ă OpenClaw |
| Bundle compatible | Structure de Plugin Codex, Claude ou Cursor mappĂ©e dans lâinventaire des Plugins dâOpenClaw | Vous rĂ©utilisez des Skills, commandes, hooks ou mĂ©tadonnĂ©es de bundle compatibles |
Les deux formats apparaissent dans openclaw plugins list, openclaw plugins inspect,
openclaw plugins enable et openclaw plugins disable. Consultez
Bundles de Plugins pour connaßtre la limite de compatibilité des bundles et
Créer des Plugins pour la création de Plugins natifs.
Hooks de Plugins
Les Plugins peuvent enregistrer des hooks Ă lâexĂ©cution au moyen de deux API diffĂ©rentes :
- Les hooks typés
api.on(...)pour les Ă©vĂ©nements du cycle de vie de lâenvironnement dâexĂ©cution. Il sâagit de lâinterface privilĂ©giĂ©e pour les intergiciels, les politiques, la réécriture des messages, la mise en forme des prompts et le contrĂŽle des outils. api.registerHook(...)pour le systĂšme de hooks interne dĂ©crit dans Hooks. Il sert principalement aux effets secondaires gĂ©nĂ©raux liĂ©s aux commandes ou au cycle de vie et Ă la compatibilitĂ© avec les automatisations existantes de style HOOK.
RÚgle simple : si le gestionnaire nécessite une priorité, une sémantique de fusion ou un
comportement de blocage/annulation, utilisez les hooks typĂ©s. Sâil rĂ©agit simplement Ă command:new,
command:reset, message:sent ou à des événements généraux similaires, api.registerHook
convient.
Les hooks internes gérés par les Plugins apparaissent dans openclaw hooks list avec
plugin:<id>. Vous ne pouvez pas les activer ou les désactiver au moyen de openclaw hooks ;
activez ou désactivez plutÎt le Plugin.
Vérifier le Gateway actif
openclaw plugins list et la commande simple openclaw plugins inspect lisent lâĂ©tat Ă froid de la configuration,
du manifeste et du registre. Elles ne prouvent pas quâun
Gateway dĂ©jĂ en cours dâexĂ©cution a importĂ© le mĂȘme code de plugin.
Lorsquâun plugin semble installĂ©, mais que le trafic de discussion en direct ne lâutilise pas :
openclaw gateway status --deep --require-rpcopenclaw plugins inspect <plugin-id> --runtime --jsonopenclaw gateway restartLes Gateways gĂ©rĂ©s redĂ©marrent automatiquement aprĂšs les modifications dâinstallation, de mise Ă jour et
de désinstallation qui changent la source du plugin. Sur les installations VPS ou en conteneur, assurez-vous
que tout redémarrage manuel cible bien le processus enfant openclaw gateway run
qui dessert vos canaux, et pas seulement un encapsuleur ou un superviseur.
Résolution des problÚmes
| SymptÎme | Vérification | Correction |
|---|---|---|
Le plugin apparaĂźt dans plugins list, mais les hooks dâexĂ©cution ne sâexĂ©cutent pas |
Utilisez openclaw plugins inspect <id> --runtime --json et confirmez le Gateway actif avec gateway status --deep --require-rpc |
RedĂ©marrez le Gateway actif aprĂšs toute modification dâinstallation, de mise Ă jour, de configuration ou de source |
| Des diagnostics de propriĂ©tĂ© de canal ou dâoutil en double apparaissent | ExĂ©cutez openclaw plugins list --enabled --verbose, inspectez chaque plugin suspect avec --runtime --json et comparez la propriĂ©tĂ© des canaux/outils |
DĂ©sactivez lâun des propriĂ©taires, supprimez les installations obsolĂštes ou utilisez la propriĂ©tĂ© de manifeste preferOver pour un remplacement intentionnel |
| La configuration indique quâun plugin est manquant | Consultez lâinventaire des plugins pour dĂ©terminer sâil est intĂ©grĂ©, externe officiel ou uniquement disponible sous forme de source | Installez le paquet externe, activez le plugin intĂ©grĂ© ou supprimez la configuration obsolĂšte |
| La configuration nâest pas valide pendant lâinstallation | Lisez le message de validation et exĂ©cutez openclaw doctor --fix sâil signale un Ă©tat de plugin obsolĂšte |
Doctor peut mettre en quarantaine la configuration de plugin non valide en dĂ©sactivant lâentrĂ©e et en supprimant la charge utile non valide |
| Le chemin du plugin est bloquĂ© en raison dâun propriĂ©taire ou de permissions suspects | Examinez le diagnostic prĂ©cĂ©dant lâerreur de configuration | Corrigez le propriĂ©taire ou les permissions du systĂšme de fichiers, puis exĂ©cutez openclaw plugins registry --refresh |
OPENCLAW_NIX_MODE=1 bloque les commandes de cycle de vie |
Confirmez que lâinstallation est gĂ©rĂ©e par Nix | Modifiez la sĂ©lection des plugins dans la source Nix au lieu dâutiliser les commandes de modification des plugins |
| Lâimportation dâune dĂ©pendance Ă©choue Ă lâexĂ©cution | VĂ©rifiez si le plugin a Ă©tĂ© installĂ© via npm/git/ClawHub ou chargĂ© depuis un chemin local | ExĂ©cutez openclaw plugins update <id>, rĂ©installez la source ou installez vous-mĂȘme les dĂ©pendances locales du plugin |
Lorsque la configuration obsolĂšte dâun plugin mentionne encore un plugin de canal qui nâest plus dĂ©tectable,
la validation de la configuration rĂ©trograde la clĂ© de ce canal en avertissement au lieu dâĂ©mettre une
erreur bloquante, afin que le démarrage du Gateway puisse toujours desservir tous les autres canaux. Exécutez
openclaw doctor --fix pour supprimer les entrées obsolÚtes du plugin et du canal. Les clés
de canal inconnues sans preuve de plugin obsolÚte font toujours échouer la validation afin que les fautes de frappe
restent visibles.
Pour remplacer intentionnellement un canal, le plugin à privilégier doit déclarer
channelConfigs.<channel-id>.preferOver avec lâidentifiant du plugin hĂ©ritĂ© ou de prioritĂ© infĂ©rieure.
Si les deux plugins sont explicitement activés, OpenClaw respecte cette demande
et signale des diagnostics de propriĂ©tĂ© de canal ou dâoutil en double au lieu de choisir
silencieusement un propriétaire.
Si un paquet installĂ© indique quâil requires compiled runtime output for TypeScript entry ..., le paquet a Ă©tĂ© publiĂ© sans les fichiers JavaScript
dont OpenClaw a besoin Ă lâexĂ©cution. Mettez-le Ă jour ou rĂ©installez-le aprĂšs que lâĂ©diteur a fourni
le JavaScript compilé, ou désactivez/désinstallez le plugin en attendant.
Propriété bloquée du chemin du plugin
Si les diagnostics indiquent
blocked plugin candidate: suspicious ownership (... uid=1000, expected uid=0 or root)
et que la validation affiche ensuite plugin present but blocked, OpenClaw a trouvé
des fichiers de plugin appartenant à un utilisateur Unix différent de celui du processus qui les charge.
Conservez la configuration du plugin ; corrigez le propriétaire dans le systÚme de fichiers ou exécutez OpenClaw
avec le mĂȘme utilisateur que celui qui possĂšde le rĂ©pertoire dâĂ©tat.
Pour les installations Docker, lâimage officielle sâexĂ©cute sous lâidentitĂ© node (uid 1000) ; les
rĂ©pertoires de configuration et dâespace de travail OpenClaw montĂ©s depuis lâhĂŽte doivent donc normalement
appartenir Ă lâuid 1000 :
sudo chown -R 1000:1000 /path/to/openclaw-config /path/to/openclaw-workspaceSi vous exécutez intentionnellement OpenClaw en tant que root, attribuez plutÎt à root la propriété de la racine des plugins gérés :
sudo chown -R root:root /path/to/openclaw-config/npmAprÚs avoir corrigé le propriétaire, réexécutez openclaw doctor --fix ou
openclaw plugins registry --refresh afin que le registre persistant des plugins
corresponde aux fichiers réparés.
Configuration lente des outils de plugin
Si les tours de lâagent semblent se bloquer pendant la prĂ©paration des outils, activez la journalisation de trace et recherchez les lignes de durĂ©e des fabriques dâoutils de plugin :
openclaw config set logging.level traceopenclaw logs --followRecherchez :
[trace:plugin-tools] durĂ©es des fabriques ...Le rĂ©capitulatif indique la durĂ©e totale des fabriques et les fabriques dâoutils de plugin les plus lentes, notamment lâidentifiant du plugin, les noms dâoutils dĂ©clarĂ©s, la forme du rĂ©sultat et le caractĂšre facultatif ou non de lâoutil. Les lignes lentes deviennent des avertissements lorsquâune seule fabrique prend au moins 1s ou que la prĂ©paration totale des fabriques dâoutils de plugin prend au moins 5s.
OpenClaw met en cache les rĂ©sultats rĂ©ussis des fabriques dâoutils de plugin pour les rĂ©solutions rĂ©pĂ©tĂ©es avec le mĂȘme contexte de requĂȘte effectif. La clĂ© du cache comprend la configuration dâexĂ©cution effective, lâespace de travail et lâidentifiant de lâagent, la politique de bac Ă sable, les paramĂštres du navigateur, le contexte de livraison, lâidentitĂ© du demandeur et lâĂ©tat de propriĂ©tĂ©, de sorte que les fabriques dĂ©pendant de ces champs fiables se rĂ©exĂ©cutent lorsque le contexte change. Si les durĂ©es restent Ă©levĂ©es, il est possible que le plugin effectue un travail coĂ»teux avant de renvoyer les dĂ©finitions de ses outils.
Si un plugin domine les mesures de durĂ©e, examinez ses enregistrements dâexĂ©cution :
openclaw plugins inspect <plugin-id> --runtime --jsonMettez ensuite Ă jour, rĂ©installez ou dĂ©sactivez ce plugin. Les auteurs de plugins doivent dĂ©placer le chargement coĂ»teux des dĂ©pendances vers le chemin dâexĂ©cution de lâoutil plutĂŽt que de lâeffectuer dans la fabrique dâoutils.
Pour les racines des dépendances, la validation des métadonnées de paquet, les enregistrements du registre, le comportement de rechargement au démarrage et le nettoyage des éléments hérités, consultez Résolution des dépendances des plugins.
Pages connexes
- Gérer les plugins - exemples de commandes pour répertorier, installer, mettre à jour, désinstaller et publier
openclaw plugins- référence complÚte de la CLI- Inventaire des plugins - liste générée des plugins intégrés et externes
- Référence des plugins - pages de référence générées pour chaque plugin
- Plugins communautaires - découverte sur ClawHub et politique relative aux PR de documentation
- RĂ©solution des dĂ©pendances des plugins - racines dâinstallation, enregistrements du registre et limites dâexĂ©cution
- Création de plugins - guide de création de plugins natifs
- PrĂ©sentation du SDK des plugins - enregistrement Ă lâexĂ©cution, hooks et champs de lâAPI
- Manifeste de plugin - manifeste et métadonnées de paquet