close

CLI commands

Plugins

Gérez les plugins du Gateway, les packs de hooks et les bundles compatibles.

Commandes

bash
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

bash
openclaw plugins init stock-quotes --name "Stock Quotes"cd stock-quotesnpm run plugin:buildnpm run plugin:validate

plugins 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

bash
openclaw plugins init acme-models --name "Acme Models" --type providercd acme-modelsnpm installnpm run buildnpm testnpm run validate

Les 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

bash
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-install

Les 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 :

bash
openclaw plugins install clawhub:openclaw-codex-app-serveropenclaw plugins install clawhub:openclaw-codex-app-server@1.2.3

Pendant 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 :

bash
openclaw plugins install openclaw-codex-app-server

Utilisez npm: pour rendre explicite une résolution exclusivement via npm :

bash
openclaw plugins install npm:openclaw-codex-app-serveropenclaw plugins install npm:@openclaw/discord@2026.5.20openclaw plugins install npm:@scope/plugin-name@1.0.1

OpenClaw 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 :

bash
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é :

bash
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-marketplace

Sources 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) :

bash
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

bash
openclaw plugins listopenclaw plugins list --enabledopenclaw plugins list --verboseopenclaw plugins list --json
--enabledboolean

Afficher uniquement les Plugins activés.

--verboseboolean

Remplacer la vue en tableau par des lignes de détails pour chaque Plugin, avec les métadonnées de format/source/origine/version/activation.

--jsonboolean

Inventaire 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 --json affiche 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 ; utilisez openclaw doctor --fix pour 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-rpc confirme 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Ă©cessitent plugins.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

bash
openclaw plugins uninstall <id>openclaw plugins uninstall <id> --dry-runopenclaw plugins uninstall <id> --keep-filesopenclaw plugins uninstall <id> --force

uninstall 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

bash
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-install

Les 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

bash
openclaw plugins inspect <id>openclaw plugins inspect <id> --runtimeopenclaw plugins inspect <id> --jsonopenclaw plugins inspect --all

Par 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

bash
openclaw plugins doctor

doctor 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

bash
openclaw plugins registryopenclaw plugins registry --refreshopenclaw plugins registry --json

Le 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é

bash
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> --json

plugins 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Ă©.

Voir aussi

Was this useful?
On this page

On this page