CLI commands
Plugins
Gérez les plugins du Gateway, les packs de hooks et les bundles compatibles.
Guide destiné aux utilisateurs finaux pour installer, activer et dépanner les plugins.
Exemples rapides pour lâinstallation, lâaffichage de la liste, la mise Ă jour, la dĂ©sinstallation et la publication.
ModÚle de compatibilité des bundles.
Champs du manifeste et schéma de configuration.
Renforcement de la sécurité des installations de plugins.
Commandes
openclaw plugins list [--enabled] [--verbose] [--json]openclaw plugins search <query> [--limit <n>] [--json]openclaw plugins install <path-or-spec> [--link] [--force] [--pin] [--marketplace <source>]openclaw plugins inspect <id> [--runtime] [--json]openclaw plugins inspect --all [--runtime] [--json]openclaw plugins info <id> # alias dâinspectopenclaw plugins enable <id>openclaw plugins disable <id>openclaw plugins uninstall <id> [--dry-run] [--keep-files] [--force]openclaw plugins update <id-or-npm-spec> | --all [--dry-run]openclaw plugins registry [--refresh] [--json]openclaw plugins doctoropenclaw plugins init <id> [--name <name>] [--type tool|provider] [--directory <path>]openclaw plugins build [--entry <path>] [--check]openclaw plugins validate [--entry <path>]openclaw plugins marketplace entries [--offline] [--feed-profile <name>] [--json]openclaw plugins marketplace list <source> [--json]openclaw plugins marketplace refresh [--feed-profile <name>] [--expected-sha256 <sha256>] [--json]Pour analyser une installation, une inspection, une dĂ©sinstallation ou une actualisation du registre lente, exĂ©cutez la
commande avec OPENCLAW_PLUGIN_LIFECYCLE_TRACE=1. La trace écrit la durée des phases
dans stderr et conserve une sortie JSON analysable. Consultez Débogage.
Création
openclaw plugins init stock-quotes --name "Stock Quotes"cd stock-quotesnpm run plugin:buildnpm run plugin:validateplugins init crĂ©e par dĂ©faut un plugin dâoutil TypeScript minimal. Le premier
argument est lâidentifiant du plugin ; --name dĂ©finit le nom dâaffichage. OpenClaw utilise
lâidentifiant pour le rĂ©pertoire de sortie par dĂ©faut et le nommage du paquet. Les structures dâoutil utilisent
defineToolPlugin et génÚrent les scripts package.json plugin:build et
plugin:validate, qui effectuent la compilation puis appellent openclaw plugins build/validate.
plugins build importe le point dâentrĂ©e compilĂ©, lit les mĂ©tadonnĂ©es statiques de son outil, Ă©crit
openclaw.plugin.json et maintient le champ openclaw.extensions de package.json synchronisé.
plugins validate vérifie que le manifeste généré, les métadonnées du paquet et
lâexportation actuelle du point dâentrĂ©e concordent toujours. Consultez Plugins dâoutils pour
le processus de création complet.
La structure Ă©crit le code source TypeScript, mais gĂ©nĂšre les mĂ©tadonnĂ©es Ă partir du point dâentrĂ©e
./dist/index.js compilé, de sorte que le processus fonctionne également avec la CLI publiée. Utilisez
--entry <path> lorsque le point dâentrĂ©e nâest pas celui par dĂ©faut du paquet. Utilisez
plugins build --check dans la CI pour échouer lorsque les métadonnées générées sont obsolÚtes, sans
réécrire les fichiers.
Structure de fournisseur
openclaw plugins init acme-models --name "Acme Models" --type providercd acme-modelsnpm installnpm run buildnpm testnpm run validateLes structures de fournisseur créent un plugin générique de fournisseur de modÚles compatible avec OpenAI,
avec la gestion de lâauthentification par clĂ© API, un script npm run validate qui exĂ©cute
clawhub package validate, les métadonnées de paquet ClawHub et un workflow GitHub Actions
déclenché manuellement pour permettre ultérieurement une publication fiable via GitHub
OIDC. Les structures de fournisseur ne gĂ©nĂšrent pas de Skills et nâutilisent pas
openclaw plugins build/validate ; ces commandes sont destinées au chemin de métadonnées générées
de la structure dâoutil.
Avant la publication, remplacez lâURL de base dâAPI fictive, le catalogue de modĂšles, la route de documentation, le texte relatif aux identifiants et le contenu du README par les informations rĂ©elles du fournisseur. Utilisez le README gĂ©nĂ©rĂ© pour la premiĂšre publication sur ClawHub et la configuration dâun Ă©diteur de confiance.
Installation
openclaw plugins search "calendar" # rechercher des plugins ClawHubopenclaw plugins install @openclaw/<package> # catalogue officiel de confianceopenclaw plugins install <package> # paquet npm arbitraireopenclaw plugins install clawhub:<package> # ClawHub uniquementopenclaw plugins install npm:<package> # npm uniquementopenclaw plugins install npm-pack:<path.tgz> # archive npm-pack localeopenclaw plugins install git:github.com/<owner>/<repo> # dĂ©pĂŽt gitopenclaw plugins install git:github.com/<owner>/<repo>@<ref>openclaw plugins install <path> # chemin local ou archiveopenclaw plugins install -l <path> # lier au lieu de copieropenclaw plugins install <plugin>@<marketplace> # forme abrĂ©gĂ©e de marketplaceopenclaw plugins install <plugin> --marketplace <name> # marketplace (explicite)openclaw plugins install <package> --force # confirmer la source / Ă©craser lâexistantopenclaw plugins install <package> --pin # Ă©pingler la version npm rĂ©solueopenclaw plugins install clawhub:<package> --acknowledge-clawhub-riskopenclaw plugins install <package> --dangerously-force-unsafe-installLes mainteneurs qui testent les installations pendant la configuration peuvent remplacer les sources dâinstallation automatique des plugins Ă lâaide de variables dâenvironnement protĂ©gĂ©es. Consultez Remplacements des sources dâinstallation de plugins.
plugins search interroge ClawHub pour obtenir les paquets code-plugin et
bundle-plugin installables (pas les Skills ; utilisez openclaw skills search pour ceux-ci).
La valeur par défaut de --limit est 20, avec un maximum de 100. Cette commande lit uniquement le catalogue distant : aucune
inspection de lâĂ©tat local, modification de la configuration, installation de paquet ni
chargement de lâenvironnement dâexĂ©cution du plugin. Les rĂ©sultats comprennent le nom du paquet ClawHub, la famille, le canal, la version,
le rĂ©sumĂ© et une indication dâinstallation telle que openclaw plugins install clawhub:<package>.
Inclusions de configuration et rĂ©paration dâune configuration non valide
Si votre section plugins repose sur un fichier unique $include, plugins install/update/enable/disable/uninstall Ă©crit directement dans ce fichier inclus et laisse openclaw.json intact. Les inclusions racine, les tableaux dâinclusions et les inclusions comportant des remplacements voisins Ă©chouent de maniĂšre fermĂ©e au lieu dâĂȘtre aplatis. Consultez Inclusions de configuration pour connaĂźtre les structures prises en charge.
Si la configuration nâest pas valide pendant lâinstallation, plugins install Ă©choue normalement de maniĂšre fermĂ©e et vous demande dâexĂ©cuter dâabord openclaw doctor --fix. Lors du dĂ©marrage du Gateway et du rechargement Ă chaud, une configuration de plugin non valide Ă©choue de maniĂšre fermĂ©e comme toute autre configuration non valide ; openclaw doctor --fix peut placer en quarantaine lâentrĂ©e de plugin non valide. La seule exception documentĂ©e pendant lâinstallation est un chemin de rĂ©cupĂ©ration restreint pour les plugins intĂ©grĂ©s qui activent explicitement openclaw.install.allowInvalidConfigRecovery.
Confirmation avec --force et réinstallation ou mise à jour
--force confirme une source autre que ClawHub sans afficher dâinvite. Il ne contourne pas security.installPolicy ni les autres contrĂŽles de sĂ©curitĂ© de lâinstallation. Lorsque le plugin ou le pack de hooks est dĂ©jĂ installĂ©, il rĂ©utilise Ă©galement la cible existante et lâĂ©crase sur place. Utilisez-le aprĂšs avoir examinĂ© une source npm arbitraire, locale, dâarchive, git ou de marketplace, ou lorsque vous rĂ©installez intentionnellement le mĂȘme identifiant. Pour les mises Ă niveau courantes dâun plugin npm dĂ©jĂ suivi, privilĂ©giez openclaw plugins update <id-or-npm-spec>.
Si vous exĂ©cutez plugins install pour un identifiant de plugin dĂ©jĂ installĂ©, OpenClaw sâarrĂȘte et vous indique plugins update <id-or-npm-spec> pour une mise Ă niveau normale, ou plugins install <package> --force lorsque vous souhaitez rĂ©ellement Ă©craser lâinstallation actuelle depuis une autre source. Les sources arbitraires affichent toujours lâavertissement interactif relatif Ă la provenance ; les installations non interactives doivent fournir --force aprĂšs vĂ©rification. Les sources ClawHub et du catalogue OpenClaw de confiance ne lâexigent pas. Avec --link, --force confirme la source, mais ne modifie pas le mode dâinstallation par chemin liĂ©.
Portée de --pin
--pin sâapplique uniquement aux installations npm et enregistre la valeur exacte rĂ©solue de <name>@<version>. Il nâest pas pris en charge avec les installations git: (Ă©pinglez plutĂŽt la rĂ©fĂ©rence dans la spĂ©cification, par exemple git:github.com/acme/plugin@v1.2.3) ni avec --marketplace (les installations depuis une marketplace conservent les mĂ©tadonnĂ©es de source de la marketplace au lieu dâune spĂ©cification npm).
--dangerously-force-unsafe-install
--dangerously-force-unsafe-install est obsolĂšte et nâeffectue dĂ©sormais aucune opĂ©ration. OpenClaw nâexĂ©cute plus le blocage intĂ©grĂ© du code dangereux pendant lâinstallation des plugins.
Utilisez la surface security.installPolicy appartenant Ă lâopĂ©rateur lorsquâune politique dâinstallation propre Ă lâhĂŽte est requise. Les hooks before_install de Plugin sont des hooks du cycle de vie de lâenvironnement dâexĂ©cution du Plugin, et non la principale limite dâapplication de la politique pour les installations via la CLI.
Si un Plugin que vous avez publiĂ© sur ClawHub est masquĂ© ou bloquĂ© par une analyse du registre, suivez les Ă©tapes destinĂ©es Ă lâĂ©diteur dans Publication sur ClawHub. --dangerously-force-unsafe-install ne demande pas Ă ClawHub dâanalyser Ă nouveau le Plugin ni de rendre publique une version bloquĂ©e.
--acknowledge-clawhub-risk
Les installations depuis la communautĂ© ClawHub vĂ©rifient le niveau de confiance de la version sĂ©lectionnĂ©e avant le tĂ©lĂ©chargement. Si ClawHub dĂ©sactive le tĂ©lĂ©chargement de la version, signale des rĂ©sultats dâanalyse malveillants ou place la version dans un Ă©tat de modĂ©ration bloquant (mise en quarantaine, rĂ©voquĂ©e), OpenClaw la refuse catĂ©goriquement, indĂ©pendamment de cet indicateur. Pour les Ă©tats de modĂ©ration ou dâanalyse risquĂ©s mais non bloquants, OpenClaw affiche les dĂ©tails de confiance et demande une confirmation avant de poursuivre.
Utilisez --acknowledge-clawhub-risk uniquement aprĂšs avoir examinĂ© lâavertissement de ClawHub et dĂ©cidĂ© de continuer sans invite interactive. Les rĂ©sultats dâanalyse en attente ou obsolĂštes (pas encore dĂ©clarĂ©s sains) dĂ©clenchent un avertissement, mais ne nĂ©cessitent pas dâaccusĂ© de rĂ©ception. Les paquets ClawHub officiels et les sources de Plugin intĂ©grĂ©es Ă OpenClaw contournent entiĂšrement cette vĂ©rification de confiance de la version.
Packs de hooks et spécifications npm
plugins install est Ă©galement la surface dâinstallation des packs de hooks qui exposent openclaw.hooks dans package.json. Utilisez openclaw hooks pour filtrer la visibilitĂ© des hooks et activer chaque hook individuellement, et non pour installer des paquets.
Les spĂ©cifications npm sont rĂ©servĂ©es au registre (nom du paquet accompagnĂ© Ă©ventuellement dâune version exacte ou dâun dist-tag). Les spĂ©cifications Git/URL/fichier et les plages semver sont rejetĂ©es. Par sĂ©curitĂ©, les installations de dĂ©pendances sâexĂ©cutent dans un projet npm gĂ©rĂ© distinct pour chaque Plugin avec --ignore-scripts, mĂȘme lorsque votre shell dispose de paramĂštres globaux dâinstallation npm. Les projets npm gĂ©rĂ©s des Plugins hĂ©ritent du overrides npm dĂ©fini au niveau du paquet dâOpenClaw, afin que les Ă©pinglages de sĂ©curitĂ© de lâhĂŽte sâappliquent Ă©galement aux dĂ©pendances de Plugin remontĂ©es.
Utilisez npm:<package> pour rendre explicite la rĂ©solution npm. Pendant la transition de lancement, les spĂ©cifications de paquet sans prĂ©fixe sâinstallent Ă©galement directement depuis npm, sauf si elles correspondent Ă lâidentifiant dâun Plugin officiel.
Les spĂ©cifications @openclaw/* brutes qui correspondent Ă des Plugins intĂ©grĂ©s sont rĂ©solues vers la copie intĂ©grĂ©e appartenant Ă lâimage avant le recours Ă npm. Par exemple, openclaw plugins install @openclaw/discord@2026.5.20 --pin utilise le Plugin Discord intĂ©grĂ© Ă la version actuelle dâOpenClaw au lieu de crĂ©er un remplacement npm gĂ©rĂ©. Pour imposer lâutilisation du paquet npm externe, utilisez openclaw plugins install npm:@openclaw/discord@2026.5.20 --pin.
Les spĂ©cifications sans prĂ©fixe et @latest restent sur le canal stable. Les versions correctives dâOpenClaw horodatĂ©es par date, telles que 2026.5.3-1, sont considĂ©rĂ©es comme stables pour cette vĂ©rification. Si npm rĂ©sout lâune de ces formes vers une prĂ©version, OpenClaw sâarrĂȘte et vous demande de lâautoriser explicitement au moyen dâune Ă©tiquette de prĂ©version (@beta/@rc) ou dâune version de prĂ©publication exacte (@1.2.3-beta.4).
Pour les installations npm sans version exacte (npm:<package> ou npm:<package>@latest), OpenClaw vĂ©rifie les mĂ©tadonnĂ©es du paquet rĂ©solu avant lâinstallation. Si le dernier paquet stable nĂ©cessite une API de Plugin OpenClaw plus rĂ©cente ou une version minimale plus rĂ©cente de lâhĂŽte, OpenClaw examine les anciennes versions stables et installe Ă la place la version compatible la plus rĂ©cente. Les versions exactes et les dist-tags explicites restent stricts : une sĂ©lection incompatible Ă©choue et vous demande de mettre Ă niveau OpenClaw ou de choisir une version compatible.
Si une spĂ©cification dâinstallation sans prĂ©fixe correspond Ă lâidentifiant dâun Plugin officiel (par exemple diffs), OpenClaw installe directement lâentrĂ©e du catalogue. Pour installer un paquet npm portant le mĂȘme nom, utilisez une spĂ©cification avec portĂ©e explicite (par exemple @scope/diffs).
DépÎts Git
Utilisez git:<repo> pour effectuer une installation directement depuis un dĂ©pĂŽt Git. Formes prises en charge : git:github.com/owner/repo, git:owner/repo, https:// complet, ssh://, git://, file:// et les URL de clonage git@host:owner/repo.git. Ajoutez @<ref> ou #<ref> pour extraire une branche, une Ă©tiquette ou un commit avant lâinstallation.
Les installations Git clonent le dĂ©pĂŽt dans un rĂ©pertoire temporaire, extraient la rĂ©fĂ©rence demandĂ©e lorsquâelle est prĂ©sente, puis utilisent le programme dâinstallation habituel des rĂ©pertoires de Plugin. La validation du manifeste, la politique dâinstallation de lâopĂ©rateur, les opĂ©rations dâinstallation du gestionnaire de paquets et les enregistrements dâinstallation se comportent donc comme pour les installations npm. Les installations Git enregistrĂ©es incluent lâURL et la rĂ©fĂ©rence de la source ainsi que le commit rĂ©solu, afin que openclaw plugins update puisse rĂ©soudre Ă nouveau la source ultĂ©rieurement.
AprĂšs une installation depuis Git, utilisez openclaw plugins inspect <id> --runtime --json pour vĂ©rifier les enregistrements dans lâenvironnement dâexĂ©cution, tels que les mĂ©thodes du Gateway et les commandes de la CLI. Si le Plugin a enregistrĂ© une commande racine de la CLI avec api.registerCli, exĂ©cutez cette commande directement depuis la CLI racine dâOpenClaw, par exemple openclaw demo-plugin ping.
Archives
Archives prises en charge : .zip, .tgz, .tar.gz, .tar. Les archives natives de Plugin OpenClaw doivent contenir un openclaw.plugin.json valide Ă la racine du Plugin extrait ; les archives qui contiennent uniquement package.json sont rejetĂ©es avant quâOpenClaw nâĂ©crive les enregistrements dâinstallation.
Utilisez npm-pack:<path.tgz> lorsque le fichier est une archive tar créée par npm-pack et que vous souhaitez
utiliser le mĂȘme chemin de projet npm gĂ©rĂ© par Plugin que pour les installations depuis le registre,
notamment la vĂ©rification package-lock.json, lâanalyse des dĂ©pendances remontĂ©es
et les enregistrements dâinstallation npm. Les chemins dâarchive ordinaires sont toujours installĂ©s en tant
quâarchives locales sous la racine des extensions de Plugin.
Les installations depuis la place de marché Claude sont également prises en charge.
Les installations ClawHub utilisent un localisateur clawhub:<package> explicite :
openclaw plugins install clawhub:openclaw-codex-app-serveropenclaw plugins install clawhub:openclaw-codex-app-server@1.2.3Pendant la transition de lancement, les spĂ©cifications de Plugin sans prĂ©fixe compatibles avec les noms npm sâinstallent par dĂ©faut depuis npm, sauf si elles correspondent Ă lâidentifiant dâun Plugin officiel :
openclaw plugins install openclaw-codex-app-serverUtilisez npm: pour rendre explicite une résolution exclusivement via npm :
openclaw plugins install npm:openclaw-codex-app-serveropenclaw plugins install npm:@openclaw/discord@2026.5.20openclaw plugins install npm:@scope/plugin-name@1.0.1OpenClaw vĂ©rifie avant lâinstallation la compatibilitĂ© annoncĂ©e avec lâAPI de Plugin et la version minimale du Gateway. Lorsque la version ClawHub sĂ©lectionnĂ©e publie un artefact ClawPack, OpenClaw tĂ©lĂ©charge le .tgz npm-pack versionnĂ©, vĂ©rifie lâen-tĂȘte dâempreinte de ClawHub et lâempreinte de lâartefact, puis lâinstalle par le chemin dâarchive habituel. Les anciennes versions ClawHub sans mĂ©tadonnĂ©es ClawPack sâinstallent toujours par le chemin historique de vĂ©rification des archives de paquet. Les installations enregistrĂ©es conservent les mĂ©tadonnĂ©es de leur source ClawHub, le type dâartefact, lâintĂ©gritĂ© npm, la somme SHA npm, le nom de lâarchive tar et les informations dâempreinte ClawPack en vue des mises Ă jour ultĂ©rieures.
Les installations ClawHub sans version conservent une spĂ©cification enregistrĂ©e sans version afin que openclaw plugins update puisse suivre les nouvelles versions ClawHub ; les sĂ©lecteurs explicites de version ou dâĂ©tiquette tels que clawhub:pkg@1.2.3 et clawhub:pkg@beta restent Ă©pinglĂ©s Ă ce sĂ©lecteur.
Forme abrégée de la place de marché
Utilisez la forme abrĂ©gĂ©e plugin@marketplace lorsque le nom de la place de marchĂ© existe dans le cache local du registre Claude Ă lâemplacement ~/.claude/plugins/known_marketplaces.json :
openclaw plugins marketplace list <marketplace-name>openclaw plugins install <plugin-name>@<marketplace-name>Utilisez --marketplace pour transmettre explicitement la source de la place de marché :
openclaw plugins install <plugin-name> --marketplace <marketplace-name>openclaw plugins install <plugin-name> --marketplace <owner/repo>openclaw plugins install <plugin-name> --marketplace https://github.com/<owner>/<repo>openclaw plugins install <plugin-name> --marketplace ./my-marketplaceSources de la place de marché
- un nom de place de marché connue de Claude provenant de
~/.claude/plugins/known_marketplaces.json - une racine de place de marché locale ou un chemin
marketplace.json - une forme abrégée de dépÎt GitHub telle que
owner/repo - une URL de dépÎt GitHub telle que
https://github.com/owner/repo - une URL Git
RÚgles des places de marché distantes
Pour les places de marché distantes chargées depuis GitHub ou Git, les entrées de Plugin doivent rester dans le dépÎt cloné de la place de marché. OpenClaw accepte les sources à chemin relatif provenant de ce dépÎt et rejette les sources de Plugin HTTP(S), à chemin absolu, Git, GitHub et les autres sources ne correspondant pas à un chemin dans les manifestes distants.
Pour les chemins locaux et les archives, OpenClaw détecte automatiquement :
- les Plugins OpenClaw natifs (
openclaw.plugin.json) - les ensembles compatibles avec Codex (
.codex-plugin/plugin.json) - les ensembles compatibles avec Claude (
.claude-plugin/plugin.json, ou la disposition par défaut des composants Claude lorsque ce fichier manifeste est absent) - les ensembles compatibles avec Cursor (
.cursor-plugin/plugin.json)
Les installations locales gĂ©rĂ©es doivent ĂȘtre des rĂ©pertoires ou des archives de Plugin. Les fichiers de Plugin autonomes .js,
.mjs, .cjs et .ts ne sont pas copiés dans la racine gérée des Plugins
par plugins install, ni chargĂ©s lorsquâils sont placĂ©s directement dans
~/.openclaw/extensions ou <workspace>/.openclaw/extensions ; ces
racines de dĂ©tection automatique chargent des rĂ©pertoires de paquet ou dâensemble de Plugin et ignorent
les fichiers de script de premier niveau en tant quâutilitaires locaux. RĂ©pertoriez plutĂŽt explicitement les fichiers autonomes dans
plugins.load.paths.
Utilisez -l/--link pour rĂ©fĂ©rencer un rĂ©pertoire local de Plugin sans le copier (lâajoute
Ă plugins.load.paths) :
openclaw plugins install -l ./my-plugin--link nâest pas pris en charge avec les installations --marketplace ou git:, et
nécessite un chemin local qui existe déjà . Pour créer un lien local sans interaction,
transmettez --force aprÚs avoir examiné la source ; cette option confirme la provenance, mais ne
copie ni ne remplace le répertoire lié.
Liste
openclaw plugins listopenclaw plugins list --enabledopenclaw plugins list --verboseopenclaw plugins list --json--enabledbooleanAfficher uniquement les Plugins activés.
--verbosebooleanRemplacer la vue en tableau par des lignes de détails pour chaque Plugin, avec les métadonnées de format/source/origine/version/activation.
--jsonbooleanInventaire lisible par machine, accompagnĂ© des diagnostics du registre et de lâĂ©tat dâinstallation des dĂ©pendances du paquet.
Si le démarrage journalise plugins.allow is empty; discovered non-bundled plugins may auto-load: ...,
exécutez openclaw plugins list --enabled --verbose ou
openclaw plugins inspect <id> avec lâidentifiant dâun plugin rĂ©pertoriĂ© pour confirmer les
identifiants des plugins et copier les identifiants fiables dans plugins.allow dans openclaw.json. Lorsque
lâavertissement peut rĂ©pertorier tous les plugins dĂ©couverts, il affiche un extrait
plugins.allow prĂȘt Ă coller qui inclut dĂ©jĂ ces identifiants. Si un plugin se charge
sans provenance dâinstallation ou de chemin de chargement, inspectez cet identifiant de plugin, puis Ă©pinglez
lâidentifiant fiable dans plugins.allow ou rĂ©installez le plugin depuis une source fiable
afin quâOpenClaw enregistre la provenance de lâinstallation.
Pour travailler sur un plugin intégré dans une image Docker empaquetée, montez par liaison le répertoire
source du plugin sur le chemin source empaqueté correspondant, par exemple
/app/extensions/synology-chat. OpenClaw découvre cette superposition de sources montée
avant /app/dist/extensions/synology-chat ; un simple répertoire source copié
reste inactif, de sorte que les installations empaquetĂ©es normales continuent dâutiliser la distribution compilĂ©e.
Pour dĂ©boguer les hooks dâexĂ©cution :
openclaw plugins inspect <id> --runtime --jsonaffiche les hooks enregistrĂ©s et les diagnostics issus dâune passe dâinspection avec chargement du module. Lâinspection dâexĂ©cution nâinstalle jamais de dĂ©pendances ; utilisezopenclaw doctor --fixpour nettoyer lâĂ©tat hĂ©ritĂ© des dĂ©pendances ou rĂ©cupĂ©rer les plugins tĂ©lĂ©chargeables manquants qui sont rĂ©fĂ©rencĂ©s par la configuration.openclaw gateway status --deep --require-rpcconfirme lâURL et le profil Gateway accessibles, les indications relatives au service et au processus, le chemin de configuration et lâĂ©tat RPC.- Les hooks de conversation non intĂ©grĂ©s (
llm_input,llm_output,before_model_resolve,before_agent_reply,before_agent_run,before_agent_finalize,agent_end) nécessitentplugins.entries.<id>.hooks.allowConversationAccess=true.
Index des plugins
Les mĂ©tadonnĂ©es dâinstallation des plugins constituent un Ă©tat gĂ©rĂ© par la machine, et non une configuration utilisateur. Les installations et les mises Ă jour les Ă©crivent dans la base de donnĂ©es dâĂ©tat SQLite partagĂ©e, sous le rĂ©pertoire dâĂ©tat OpenClaw actif. La ligne installed_plugin_index stocke des mĂ©tadonnĂ©es installRecords durables, notamment des enregistrements pour les manifestes de plugins endommagĂ©s ou manquants, ainsi quâun cache de registre Ă froid dĂ©rivĂ© des manifestes utilisĂ© par openclaw plugins update, la dĂ©sinstallation, les diagnostics et le registre de plugins Ă froid.
LorsquâOpenClaw dĂ©tecte dans la configuration des enregistrements hĂ©ritĂ©s plugins.installs provenant dâune version publiĂ©e, les lectures Ă lâexĂ©cution les traitent comme des donnĂ©es de compatibilitĂ© sans réécrire openclaw.json. Les Ă©critures explicites de plugins et openclaw doctor --fix dĂ©placent ces enregistrements vers lâindex des plugins et suppriment la clĂ© de configuration lorsque les Ă©critures de configuration sont autorisĂ©es ; si lâune ou lâautre Ă©criture Ă©choue, les enregistrements de configuration sont conservĂ©s afin de ne pas perdre les mĂ©tadonnĂ©es dâinstallation.
Désinstallation
openclaw plugins uninstall <id>openclaw plugins uninstall <id> --dry-runopenclaw plugins uninstall <id> --keep-filesopenclaw plugins uninstall <id> --forceuninstall supprime les enregistrements du plugin de plugins.entries, de lâindex persistant des plugins, des entrĂ©es des listes dâautorisation et de refus des plugins, ainsi que des entrĂ©es plugins.load.paths liĂ©es, le cas Ă©chĂ©ant. Sauf si --keep-files est dĂ©fini, la dĂ©sinstallation supprime Ă©galement le rĂ©pertoire dâinstallation gĂ©rĂ© suivi, mais uniquement si son chemin rĂ©solu se trouve dans la racine des extensions de plugins dâOpenClaw. Si le plugin occupe actuellement lâemplacement memory ou contextEngine, cet emplacement est rĂ©initialisĂ© Ă sa valeur par dĂ©faut (memory-core pour la mĂ©moire, legacy pour le moteur de contexte).
uninstall affiche un aperçu de ce qui sera supprimĂ©, puis demande Uninstall plugin "<id>"? avant dâappliquer les modifications. Passez --force pour ignorer la demande de confirmation, ce qui est utile pour les scripts et les exĂ©cutions non interactives ; sans cette option, la dĂ©sinstallation nĂ©cessite un TTY interactif. --dry-run affiche le mĂȘme aperçu et se termine sans demander de confirmation ni modifier quoi que ce soit.
Mise Ă jour
openclaw plugins update <id-or-npm-spec>openclaw plugins update --allopenclaw plugins update <id-or-npm-spec> --dry-runopenclaw plugins update @openclaw/voice-callopenclaw plugins update @acme/demoopenclaw plugins update openclaw-codex-app-server --acknowledge-clawhub-riskopenclaw plugins update openclaw-codex-app-server --dangerously-force-unsafe-installLes mises Ă jour sâappliquent aux installations de plugins suivies dans lâindex gĂ©rĂ© des plugins et aux installations de paquets de hooks suivies dans hooks.internal.installs. Elles rĂ©utilisent la source dĂ©jĂ choisie par lâutilisateur lors de lâinstallation du plugin et ne nĂ©cessitent donc pas une seconde acceptation de la source.
RĂ©solution de lâidentifiant du plugin par rapport Ă la spĂ©cification npm
Lorsque vous transmettez un identifiant de plugin, OpenClaw rĂ©utilise la spĂ©cification dâinstallation enregistrĂ©e pour ce plugin. Les balises de distribution prĂ©cĂ©demment stockĂ©es, telles que @beta, et les versions exactes Ă©pinglĂ©es continuent donc dâĂȘtre utilisĂ©es lors des exĂ©cutions ultĂ©rieures de update <id>.
Pendant update <id> --dry-run, les installations npm Ă©pinglĂ©es Ă une version exacte le restent. Si OpenClaw peut Ă©galement rĂ©soudre la ligne par dĂ©faut du registre du paquet et que celle-ci est plus rĂ©cente que la version Ă©pinglĂ©e installĂ©e, la simulation signale lâĂ©pinglage et affiche la commande explicite de mise Ă jour du paquet @latest permettant de suivre la ligne par dĂ©faut du registre.
Cette rĂšgle de mise Ă jour ciblĂ©e diffĂšre du parcours de maintenance en masse openclaw plugins update --all. Les mises Ă jour en masse respectent toujours les spĂ©cifications dâinstallation suivies ordinaires, mais les enregistrements fiables de plugins OpenClaw officiels peuvent se synchroniser avec la cible actuelle du catalogue officiel au lieu de rester sur un ancien paquet officiel Ă version exacte. Utilisez la commande ciblĂ©e update <id> lorsque vous souhaitez intentionnellement conserver intacte une spĂ©cification officielle exacte ou balisĂ©e.
Pour les installations npm, vous pouvez Ă©galement transmettre une spĂ©cification explicite de paquet npm avec une balise de distribution ou une version exacte. OpenClaw associe ce nom de paquet Ă lâenregistrement de plugin suivi, met Ă jour ce plugin installĂ© et enregistre la nouvelle spĂ©cification npm pour les futures mises Ă jour basĂ©es sur lâidentifiant.
Le fait de transmettre le nom du paquet npm sans version ni balise permet Ă©galement de retrouver lâenregistrement de plugin suivi. Utilisez cette mĂ©thode lorsquâun plugin Ă©tait Ă©pinglĂ© Ă une version exacte et que vous souhaitez le replacer sur la ligne de publication par dĂ©faut du registre.
Mises Ă jour du canal bĂȘta
La commande ciblĂ©e openclaw plugins update <id-or-npm-spec> rĂ©utilise la spĂ©cification de plugin suivie, sauf si vous transmettez une nouvelle spĂ©cification. La commande en masse openclaw plugins update --all utilise le paramĂštre update.channel configurĂ© lorsquâelle synchronise les enregistrements fiables de plugins officiels avec la cible du catalogue officiel, afin que les installations du canal bĂȘta puissent rester sur la ligne de publication bĂȘta au lieu dâĂȘtre silencieusement normalisĂ©es vers stable/latest.
openclaw update connaĂźt Ă©galement le canal de mise Ă jour OpenClaw actif : sur le canal bĂȘta, les enregistrements de plugins npm de la ligne par dĂ©faut et de ClawHub essaient dâabord @beta. Ils reviennent Ă la spĂ©cification default/latest enregistrĂ©e si aucune version bĂȘta du plugin nâexiste ; les plugins npm utilisent Ă©galement cette solution de repli lorsque le paquet bĂȘta existe mais Ă©choue Ă la validation de lâinstallation. Cette solution de repli est signalĂ©e par un avertissement et ne fait pas Ă©chouer la mise Ă jour du cĆur. Les versions exactes et les balises explicites restent Ă©pinglĂ©es Ă ce sĂ©lecteur pour les mises Ă jour ciblĂ©es.
VĂ©rifications de version et dĂ©rive dâintĂ©gritĂ©
Avant une mise Ă jour npm rĂ©elle, OpenClaw compare la version du paquet installĂ© aux mĂ©tadonnĂ©es du registre npm. Si la version installĂ©e et lâidentitĂ© dâartefact enregistrĂ©e correspondent dĂ©jĂ Ă la cible rĂ©solue, la mise Ă jour est ignorĂ©e sans tĂ©lĂ©chargement, rĂ©installation ni réécriture de openclaw.json.
Lorsquâun hachage dâintĂ©gritĂ© stockĂ© existe et que le hachage de lâartefact rĂ©cupĂ©rĂ© change, OpenClaw considĂšre cela comme une dĂ©rive de lâartefact npm. La commande interactive openclaw plugins update affiche les hachages attendu et rĂ©el et demande confirmation avant de poursuivre. Les assistants de mise Ă jour non interactifs Ă©chouent par dĂ©faut, sauf si lâappelant fournit une politique explicite de poursuite.
--dangerously-force-unsafe-install lors de la mise Ă jour
--dangerously-force-unsafe-install est Ă©galement acceptĂ© avec plugins update Ă des fins de compatibilitĂ©, mais il est obsolĂšte et ne modifie plus le comportement de mise Ă jour des plugins. La configuration security.installPolicy de lâopĂ©rateur peut toujours bloquer les mises Ă jour ; les hooks before_install du plugin sâappliquent uniquement dans les processus oĂč les hooks de plugins sont chargĂ©s.
--acknowledge-clawhub-risk lors de la mise Ă jour
Les mises Ă jour de plugins communautaires provenant de ClawHub exĂ©cutent la mĂȘme vĂ©rification de confiance de la version exacte que les installations avant de tĂ©lĂ©charger le paquet de remplacement. Utilisez --acknowledge-clawhub-risk pour les automatisations examinĂ©es qui doivent continuer lorsque la version ClawHub sĂ©lectionnĂ©e prĂ©sente un avertissement de confiance risquĂ©. Les paquets ClawHub officiels et les sources de plugins OpenClaw intĂ©grĂ©s contournent cette demande de confirmation liĂ©e Ă la confiance de la version.
Inspection
openclaw plugins inspect <id>openclaw plugins inspect <id> --runtimeopenclaw plugins inspect <id> --jsonopenclaw plugins inspect --allPar dĂ©faut, lâinspection affiche lâidentitĂ©, lâĂ©tat de chargement, la source, les capacitĂ©s du manifeste, les indicateurs de politique, les diagnostics, les mĂ©tadonnĂ©es dâinstallation, les capacitĂ©s du paquet et toute prise en charge dĂ©tectĂ©e de serveurs MCP ou LSP, sans importer le code dâexĂ©cution du plugin. La sortie JSON inclut les contrats du manifeste du plugin, tels que contracts.agentToolResultMiddleware et contracts.trustedToolPolicies, afin que les opĂ©rateurs puissent auditer les dĂ©clarations des surfaces fiables avant dâactiver ou de redĂ©marrer un plugin. Ajoutez --runtime pour charger le module du plugin et inclure les hooks, outils, commandes, services, mĂ©thodes du Gateway et routes HTTP enregistrĂ©s. Lâinspection dâexĂ©cution signale directement les dĂ©pendances de plugin manquantes ; les installations et rĂ©parations restent assurĂ©es par openclaw plugins install, openclaw plugins update et openclaw doctor --fix.
Les commandes CLI appartenant aux plugins sont gĂ©nĂ©ralement installĂ©es sous forme de groupes de commandes openclaw Ă la racine, mais les plugins peuvent Ă©galement enregistrer des commandes imbriquĂ©es sous un parent du cĆur tel que openclaw nodes. Une fois que inspect --runtime affiche une commande sous cliCommands, exĂ©cutez-la au chemin indiquĂ© ; par exemple, un plugin qui enregistre demo-git peut ĂȘtre vĂ©rifiĂ© avec openclaw demo-git ping.
Chaque plugin est classĂ© selon ce quâil enregistre rĂ©ellement Ă lâexĂ©cution :
| Forme | Signification |
|---|---|
plain-capability |
exactement un type de capacité (par exemple, un plugin uniquement fournisseur) |
hybrid-capability |
plusieurs types de capacités (par exemple, texte + parole + images) |
hook-only |
uniquement des hooks, sans capacités, outils, commandes, services ni routes |
non-capability |
outils, commandes ou services, mais aucune capacité |
Consultez Formes de plugins pour en savoir plus sur le modÚle de capacités.
Doctor
openclaw plugins doctordoctor signale les erreurs de chargement des plugins, les diagnostics de manifeste/dĂ©couverte, les avis de compatibilitĂ© et les rĂ©fĂ©rences obsolĂštes de configuration de plugins, telles que des emplacements de plugins manquants. Lorsque lâarborescence dâinstallation et la configuration des plugins sont propres, il affiche No plugin issues detected. Si une configuration obsolĂšte subsiste, mais que lâarborescence dâinstallation est par ailleurs saine, le rĂ©sumĂ© lâindique au lieu de laisser entendre que tous les plugins sont sains.
Si un plugin configurĂ© est prĂ©sent sur le disque, mais bloquĂ© par les contrĂŽles de sĂ©curitĂ© des chemins du chargeur, la validation de la configuration conserve lâentrĂ©e du plugin et la signale comme present but blocked. Corrigez le diagnostic prĂ©cĂ©dent concernant le plugin bloquĂ©, par exemple la propriĂ©tĂ© du chemin ou les autorisations dâĂ©criture pour tous, au lieu de supprimer la configuration plugins.entries.<id> ou plugins.allow.
Pour les Ă©checs liĂ©s Ă la structure du module, tels que des exports register/activate manquants, relancez avec OPENCLAW_PLUGIN_LOAD_DEBUG=1 afin dâinclure un rĂ©sumĂ© compact de la structure des exports dans la sortie de diagnostic.
Registre
openclaw plugins registryopenclaw plugins registry --refreshopenclaw plugins registry --jsonLe registre local des plugins est le modĂšle de lecture Ă froid persistant dâOpenClaw pour lâidentitĂ© des plugins installĂ©s, leur activation, les mĂ©tadonnĂ©es de leur source et la propriĂ©tĂ© de leurs contributions. Le dĂ©marrage normal, la recherche du propriĂ©taire dâun fournisseur, la classification de la configuration des canaux et lâinventaire des plugins peuvent le consulter sans importer les modules dâexĂ©cution des plugins.
Utilisez plugins registry pour vĂ©rifier si le registre persistant est prĂ©sent, Ă jour ou obsolĂšte. Utilisez --refresh pour le reconstruire Ă partir de lâindex persistant des plugins, de la politique de configuration et des mĂ©tadonnĂ©es des manifestes/paquets. Il sâagit dâune procĂ©dure de rĂ©paration, et non dâune procĂ©dure dâactivation Ă lâexĂ©cution.
openclaw doctor --fix rĂ©pare Ă©galement les dĂ©rives npm gĂ©rĂ©es adjacentes au registre : si un paquet @openclaw/* orphelin ou rĂ©cupĂ©rĂ©, situĂ© dans un projet npm de plugin gĂ©rĂ© ou dans lâancienne racine npm gĂ©rĂ©e Ă plat, masque un plugin intĂ©grĂ©, doctor supprime ce paquet obsolĂšte et reconstruit le registre afin que le dĂ©marrage effectue la validation par rapport au manifeste intĂ©grĂ©. Doctor recrĂ©e Ă©galement le lien vers le paquet hĂŽte openclaw dans les plugins npm gĂ©rĂ©s qui dĂ©clarent peerDependencies.openclaw, afin que les imports dâexĂ©cution locaux au paquet, tels que openclaw/plugin-sdk/*, soient rĂ©solus aprĂšs des mises Ă jour ou des rĂ©parations npm.
Place de marché
openclaw plugins marketplace entriesopenclaw plugins marketplace entries --offlineopenclaw plugins marketplace entries --jsonopenclaw plugins marketplace entries --feed-profile <name>openclaw plugins marketplace entries --feed-url <url>openclaw plugins marketplace list <source>openclaw plugins marketplace list <source> --jsonopenclaw plugins marketplace refreshopenclaw plugins marketplace refresh --feed-profile <name>openclaw plugins marketplace refresh --feed-url <url>openclaw plugins marketplace refresh --expected-sha256 <sha256> --jsonplugins marketplace entries rĂ©pertorie les entrĂ©es du flux de place de marchĂ© OpenClaw configurĂ©. Par dĂ©faut, il tente dâutiliser le flux hĂ©bergĂ© et se rabat sur le dernier instantanĂ© acceptĂ© ou les donnĂ©es intĂ©grĂ©es. Utilisez --feed-profile <name> pour lire un profil configurĂ© spĂ©cifique, --feed-url <url> pour lire une URL explicite de flux hĂ©bergĂ© et --offline pour lire le dernier instantanĂ© acceptĂ© sans rĂ©cupĂ©rer le flux.
plugins marketplace refresh actualise lâinstantanĂ© du flux hĂ©bergĂ© configurĂ© et indique si OpenClaw a acceptĂ© les donnĂ©es hĂ©bergĂ©es, un instantanĂ© hĂ©bergĂ© ou les donnĂ©es intĂ©grĂ©es de repli. Utilisez --expected-sha256 lorsquâun appelant exige que la commande Ă©choue Ă moins quâune charge utile hĂ©bergĂ©e rĂ©cente corresponde Ă une somme de contrĂŽle Ă©pinglĂ©e.
La commande list de la place de marché accepte un chemin local de place de marché, un chemin marketplace.json, un raccourci GitHub tel que owner/repo, une URL de dépÎt GitHub ou une URL git. --json affiche le libellé de la source résolue, ainsi que le manifeste analysé de la place de marché et les entrées de plugins.
Lâactualisation de la place de marchĂ© charge un flux hĂ©bergĂ© de la place de marchĂ© OpenClaw et conserve la
rĂ©ponse validĂ©e en tant quâinstantanĂ© local du flux hĂ©bergĂ©. Sans option, elle utilise
le profil de flux par défaut configuré. Utilisez --feed-profile <name> pour actualiser un
profil configuré spécifique, --feed-url <url> pour actualiser une URL explicite de
flux hébergé, --expected-sha256 <sha256> pour exiger une somme de contrÎle de charge utile correspondante
(sha256:<hex> ou un condensé hexadécimal brut de 64 caractÚres), et --json pour
une sortie lisible par une machine. Les URL explicites de flux hébergés ne doivent pas contenir
dâidentifiants, de chaĂźnes de requĂȘte ni de fragments. Les actualisations non Ă©pinglĂ©es peuvent signaler
un instantané hébergé ou un résultat de repli sur les données intégrées sans faire échouer la commande. Les actualisations
épinglées échouent sauf si elles acceptent une nouvelle charge utile hébergée, et les actualisations hébergées
rĂ©ussies Ă©chouent si OpenClaw ne peut pas conserver lâinstantanĂ© validĂ©.