claude plugin depuis votre shell ou un script, soit en tant que /plugin et /reload-plugins dans une session Claude Code. Cette référence donne les drapeaux, les valeurs par défaut, la sortie et les codes de sortie de chaque commande, ainsi que les deux drapeaux qui chargent un plugin pour une seule session.
Les tableaux ci-dessous répertorient les options couramment utilisées de chaque sous-commande, et non toutes les options. Exécutez claude plugin --help dans votre shell pour voir quelles sous-commandes votre version possède, et claude plugin <subcommand> --help pour obtenir la liste complète des options d’une sous-commande.
Ces cas sont couverts sur d’autres pages :
- Installer et gérer les étapes, et où
/plugins’exécute : voir Installer et gérer les plugins - Ce qu’une commande change sur le disque et quelle portée prend la priorité : voir Référence du chargement des plugins
- Ce qu’un message d’erreur signifie : voir Dépanner les plugins
Commandes claude plugin
Exécutezclaude plugin <subcommand> depuis votre shell ou un script, en dehors d’une session Claude Code. Ces sous-commandes installent et gèrent les plugins sans ouvrir le panneau /plugin.
claude plugins est un alias pour claude plugin.
Chaque sous-commande partage ces codes de sortie, arguments de plugin et valeurs de portée :
- Codes de sortie :
0en cas de succès et1en cas d’échec.validateajoute la sortie2pour une erreur inattendue, etevalajoute les codes listés dans sa section. - Arguments de plugin : un argument
<plugin>est unnamede plugin ouname@marketplace. Quand deux marketplaces offrent le même nom, utilisez la forme qualifiée.configureprend seulement la forme qualifiée. - Portées :
--scopeprenduser,project, oulocal, et nomme le fichier de paramètres que la commande écrit.updateprend aussimanaged.
plugin init
Créez un nouveau plugin à~/.claude/skills/<name>/. Sauf si votre administrateur a bloqué les plugins du répertoire de skills, il se charge dans votre prochaine session en tant que <name>@skills-dir sans étape d’installation.
new est un alias pour init.
Pour le workflow créer, tester et éditer qui commence par cette commande, voir Créer un plugin.
<name> devient le nom du répertoire sous ~/.claude/skills/ et le name du plugin dans son manifeste.
La commande n’a pas de flag pour un autre emplacement. Pour créer un scaffold dans un projet à la place, voir Créer un plugin.
Créez un plugin avec des fichiers de skill et hook de démarrage :
Created plugin "my-helper" at ~/.claude/skills/my-helper, suivi de l’id qu’il charge et de la commande claude plugin disable qui l’éteint.
Claude Code quitte avec 1 sans écrire quand il ne peut pas créer le scaffold en toute sécurité, et le message nomme la raison. Voici les raisons courantes :
- Une valeur
--withinconnue - Un scaffold existant à la cible sans
--force - Une liste d’autorisation de marketplaces gérée sans la source
skills-dir, ou une liste de refus qui la nomme. Le message estPlugins from ~/.claude/skills/ are blocked by your organization's managed settings.
plugin install
Installez un plugin depuis l’une de vos marketplaces.i est un alias pour install.
headersHelper pour son téléchargement, Claude Code affiche d’abord la commande et demande Run this command now? [y/N].
Exécutez
claude plugin install --help dans votre shell pour voir chaque option que votre version supporte.
Passez -y depuis votre propre terminal pour accepter la commande affichée sans l’invite. Voici ce qui se passe sans TTY et quand Claude exécute la commande :
- stdin ou stdout n’est pas un TTY, et vous ne passez ni
-yni--accept-command: l’installation est refusée. La sortie dit que la commande a été seulement affichée, et le code de sortie est1 - Claude exécute la commande via son outil Bash :
-yest ignoré. Exécutez la commande depuis votre propre terminal à la place
Successfully installed plugin: formatter@my-marketplace (scope: project). Quand rien de nouveau n’est installé, la sortie dit pourquoi :
- Déjà installé à cette portée : la sortie est
Plugin "formatter@my-marketplace" is already installed (scope: project)et le code de sortie est0 - Vous refusez une invite de source de commande : la sortie est
Aborted.et le code de sortie est1 - Vous refusez une invite
headersHelper, ou elle ne peut pas être confirmée sans TTY : la sortie estAborted — the command was not run.et le code de sortie est1
Format de résultat JSON
Quand vous passez--json à plugin install, la dernière ligne de stdout est un objet JSON. Analysez seulement cette ligne, car Claude Code affiche toute commande que la marketplace déclare avant elle.
Trois champs sont toujours présents :
command: la sous-commande qui a été exécutée, commeinstalloutcome:okoufailedmessage: une description lisible par l’homme du résultat
pluginId, scope, et failureCode, apparaissent seulement quand ils s’appliquent.
L’option --json sur plugin uninstall, plugin update, plugin enable, et plugin disable affiche le même objet avec les champs propres à cette sous-commande.
Une erreur d’utilisation, comme un --scope invalide, n’affiche aucune ligne de résultat et quitte 1 avec la raison sur stderr.
Résultat JSON pour les commandes de marketplace
Surplugin marketplace add, plugin marketplace remove et plugin marketplace update, --json affiche un objet JSON sur la dernière ligne de stdout avec les champs command, outcome et message. Voici le résultat de claude plugin marketplace remove your-marketplace --json :
command est marketplace-add, marketplace-remove ou marketplace-update. Les champs ci-dessous apparaissent seulement quand ils s’appliquent :
marketplace: le nom de la marketplace sur laquelle la commande a agifailureCode: un code indiquant pourquoi la commande a échoué, commeinvalid_source
plugin marketplace add et plugin marketplace remove peuvent n’afficher aucune ligne de résultat quand l’argument est le nom réservé anthropic-plugin-directory, donc vérifiez le code de sortie pour ce nom.
Accepter une commande d’installation affichée
Quand une exécution--json affiche une commande déclarée par la marketplace et ne l’exécute pas, le résultat failed porte aussi un objet shownCommand. Ses champs incluent la commande telle qu’affichée, le plugin auquel elle appartient, et le sha256 de la commande.
Pour accepter exactement cette commande, réexécutez avec ce sha256 en tant que --accept-command depuis votre propre terminal, car le flag n’a aucun effet dans une session Claude Code. Nécessite Claude Code v2.1.271 ou ultérieur.
Le sha256 compte comme acceptation pour exactement cette commande, ce plugin, et ce catalogue de marketplace. Si l’un d’eux a changé depuis que la commande a été affichée, Claude Code n’accepte pas le sha256 et affiche la commande à nouveau. Un changement que l’actualisation de la marketplace de la propre exécution récupère compte aussi comme tel changement.
Si shownCommand.acceptCommandMatched est false, le sha256 que vous avez passé ne correspond pas à la commande maintenant affichée. Examinez cette commande avant de réexécuter avec son sha256.
plugin uninstall
Supprimez un plugin installé d’une portée.remove et rm sont des alias pour uninstall.
Désinstallez un plugin de la portée du projet :
Successfully uninstalled plugin: formatter (scope: project). Quand le plugin n’est pas installé à cette portée, la commande affiche une ligne qui commence par Failed to uninstall plugin "formatter@my-marketplace": et quitte 1.
Si la ligne d’échec continue avec "formatter" was not uninstalled: et nomme un fichier de paramètres, Claude Code n’a pas pu confirmer que les paramètres de la portée n’activent plus le plugin, donc le plugin reste installé avec tout ce qu’il a sauvegardé. Avec --json, le résultat porte failureCode: "settings_still_on". Cette vérification des paramètres nécessite Claude Code v2.1.282 ou ultérieur.
Ce qu’une désinstallation supprime et conserve
Quand vous désinstallez un plugin de la dernière portée où il est installé, Claude Code supprime aussi les options et secrets stockés du plugin et son répertoire de données,~/.claude/plugins/data/<id>/. Il y a trois exceptions :
- Avec
--keep-data, le répertoire de données reste - Quand un autre plugin installé utilise le même dossier, comme un dont l’ID diffère de celui-ci seulement par la casse des lettres, le répertoire de données reste
- Quand Claude Code ne peut pas relire la liste des plugins installés après l’avoir supprimé de cette portée, les options, secrets et répertoire de données restent tous, car le plugin peut toujours être installé à une autre portée. La désinstallation réussit quand même. Le message liste ce qui est resté et comment le supprimer, et avec
--jsonle résultat portesavedKept: "install_records_unreadable"
--json, keptData rapporte si le répertoire est resté, et /plugin affiche · data preserved quand il l’a fait. Pour un répertoire qui reste sans --keep-data, ce rapport nécessite Claude Code v2.1.281 ou ultérieur. Le champ savedKept nécessite Claude Code v2.1.282 ou ultérieur.
plugin enable
Activez un plugin désactivé. Pour un plugin synchronisé depuis claude.ai, passez<name>@synced en tant que plugin.
Sans
--scope, la commande vérifie vos fichiers de paramètres dans l’ordre local, projet, utilisateur, et utilise la première portée qui mentionne le plugin.
Si vous passez un --scope où le plugin n’est pas déclaré, la commande écrit soit une surcharge soit échoue :
- Une portée qui a priorité sur celle qui le déclare : Claude Code écrit une surcharge à la portée que vous avez passée. Par exemple,
claude plugin disable formatter --scope localéteint un plugin activé au niveau du projet pour vous seul - Toute autre portée : la commande échoue avec
Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.
Plugin "formatter" is already enabled et quitte 1. Avec --json, le résultat a "failureCode": "already_in_goal_state" et "alreadyInGoalState": true, donc un script peut traiter ce cas comme un succès.
Quand le plugin déclare des dépendances, Claude Code les active aussi. La commande échoue dans ces cas :
- Une dépendance n’est pas installée : l’activation échoue et affiche la commande
claude plugin installpour chaque dépendance manquante - Une dépendance est bloquée par la politique de plugin de votre organisation : l’activation échoue et nomme la dépendance bloquée
- Une dépendance est définie à
falseà une portée avec une priorité plus élevée que la portée cible : l’activation échoue. Activez la dépendance à cette portée, ou passez--scopepour écrire là
Successfully enabled plugin: formatter (scope: project), nommant la portée qu’il a détectée.
plugin disable
Désactivez un plugin sans le désinstaller. Pour un plugin synchronisé depuis claude.ai, passez<name>@synced en tant que plugin.
Sans
--scope, la portée est auto-détectée dans le même ordre local, projet, utilisateur que plugin enable.
Si vous ne passez ni un nom de plugin ni --all, Claude Code affiche Please specify a plugin name or use --all to disable all plugins et quitte 1. Désactiver un plugin qui est déjà désactivé affiche Plugin "formatter" is already disabled et quitte 1, comme plugin enable le fait pour un plugin déjà activé.
La commande échoue pour un plugin qui est toujours requis :
- Un autre plugin activé en dépend : la commande échoue et nomme les dépendants à désactiver d’abord
- Votre organisation l’exige en tant que plugin synchronisé : la commande échoue et ne sauvegarde rien
Successfully disabled plugin: formatter (scope: project).
plugin update
Mettez à jour un plugin à la dernière version que sa marketplace offre. La nouvelle version se charge dans votre prochaine session, ou après que vous exécutiez/reload-plugins dans une session en cours.
Mettez à jour un plugin :
Checking for updates for plugin "formatter@my-marketplace"…, puis le résultat. Quand rien n’est plus récent, il affiche formatter is already at the latest version (1.0.0). et quitte 0, sauf s’il réessaie l’installation des dépendances du plugin et que cette installation échoue.
Quelle portée la commande met à jour
Si vous omettez--scope, la commande met à jour le plugin à la portée la plus spécifique où il est installé pour votre projet actuel, en vérifiant local, projet, utilisateur, puis managed.
Avant v2.1.281, la commande utilisait user quand vous omettiez --scope, donc mettre à jour un plugin installé seulement à la portée du projet ou local échouait avec Plugin "<name>" is not installed at scope user. Sur ces versions, passez --scope.
managed est la seule portée que vous pouvez mettre à jour mais pas installer. Pour les plugins installés par l’administrateur, voir Gérer les plugins pour votre organisation.
Mettre à jour par nom nu
Vous pouvez passer un nom de plugin nu, que la commande fait correspondre à vos plugins installés. Quand les plugins installés de différentes marketplaces partagent le nom, la commande refuse la mise à jour et liste les commandesplugin-name@marketplace-name qualifiées à exécuter à la place. La mise à jour par nom nu nécessite Claude Code v2.1.246 ou ultérieur.
Réessayer une installation de dépendances inachevée
Quand le plugin est déjà à sa dernière version, la commande peut aussi réessayer une installation de dépendances inachevée dans sa copie en cache. Pour les cas où cette nouvelle tentative s’exécute ou est ignorée, voir Les packages qu’il liste ne sont pas installés. Si la nouvelle tentative échoue, la sortie estFailed to update plugin "formatter@my-marketplace" avec la raison et le code de sortie est 1. Avant v2.1.287, la commande signalait le plugin à sa dernière version sans réessayer l’installation.
plugin list
Listez les plugins installés avec leur version, portée et statut.
Claude Code groupe la sortie lisible par l’homme selon la façon dont chaque plugin se charge :
Installed plugins:: plugins que vous avez installés depuis une marketplaceSession-only plugins (--plugin-dir / --plugin-url):: plugins chargés par ces flags dans la même commande, comme dansclaude --plugin-dir ./my-plugin plugin listSkills-directory plugins (.claude/skills/*):: plugins que Claude Code a trouvés dans un répertoire de skillsSynced from claude.ai: plugins synchronisés depuis votre compte claude.ai
No plugins installed. Use `claude plugin install` to install a plugin.
Sortie JSON
Avec--json, Claude Code affiche un tableau avec un objet par installation. Chaque objet porte les champs ci-dessous. id, version, scope, enabled, et installPath sont toujours présents, et les autres apparaissent seulement quand ils s’appliquent.
Avec
--json --available, Claude Code affiche un objet au lieu d’un tableau. Son champ installed contient le tableau d’objets de plugin installé, et son champ available contient un objet par plugin de marketplace non installé avec les champs ci-dessous.
plugin details
Montrez l’inventaire des composants d’un plugin et son coût de token projeté. Le plugin doit être chargé : installé, trouvé dans un répertoire de skills, ou passé avec--plugin-dir ou --plugin-url dans la même commande. Le <name> est un name de plugin ou name@marketplace.
--help.
Montrez ce qu’un plugin installé contribue :
Component inventory: les skills, agents, hooks, serveurs MCP et serveurs LSP du pluginProjected token cost: les tokens toujours actifs que le plugin ajoute à chaque sessionPer-component (rounded): estimations toujours actives et à l’invocation pour chaque skill, agent et commande. Omis quand le plugin n’en a aucun
1 :
@builtin désigne l’un des plugins intégrés à Claude Code. Si vous passez un tel ID et que Claude Code ne trouve pas ce plugin, le message est plutôt le suivant :
plugin configure
Montrez les optionsuserConfig d’un plugin installé et lesquelles sont définies, ou sauvegardez les valeurs canalisées sur stdin. Nécessite Claude Code v2.1.285 ou ultérieur.
Sans flags, la commande liste chaque option avec jusqu’à trois étiquettes :
required ou optional, puis sensitive pour une option que le manifeste déclare sensible, puis set ou not set. Elle n’affiche aucune valeur sauvegardée. Avec --json, la sortie inclut les valeurs sauvegardées des options qui ne sont pas sensibles, et jamais le texte d’une sensible.
Pour sauvegarder les valeurs, écrivez-les dans un fichier en tant qu’objet JSON qui mappe les clés d’option à des valeurs de string, puis passez le fichier sur stdin. Remplacez formatter@my-marketplace par l’id de votre propre plugin tel que claude plugin list le montre. Cet exemple définit une option nommée api_url depuis un fichier values.json qui contient {"api_url": "https://example.com"} :
Configuration saved. Restart Claude Code to apply it. Si vous passez une clé que le manifeste ne déclare pas, ou une valeur qui échoue la validation, la commande ne sauvegarde rien, affiche Failed to save configuration: avec la raison, et quitte 1. Avec --json, une valeur refusée affiche aussi un objet sur stdout dont le champ refused porte le message et, quand une option est en cause, sa clé option.
Passez l’id complet name@marketplace du plugin, tel que claude plugin list le montre. configure n’accepte pas un name nu. Quand aucun plugin chargé n’a cet id, la commande affiche No installed plugin has the id "<plugin>". et quitte 1.
Pour les paramètres d’un serveur MCP fourni, voir plugin install --config ou l’élément Configure dans /plugin.
plugin prune
Supprimez les dépendances auto-installées dont aucun plugin installé n’a plus besoin. La commande ne supprime jamais un plugin que vous avez installé vous-même.autoremove est un alias pour prune.
Prévisualisez ce qu’un élagage supprimerait :
(dry run — nothing removed). Sans rien à élaguer, il affiche une ligne qui commence par Nothing to prune.
Sans --dry-run, la commande supprime les dépendances orphelines seulement après que vous confirmiez à l’invite ou passiez -y.
Le code de sortie est 0 quelle que soit votre réponse à l’invite.
Ce que prune fait dépend de si un terminal est attaché et si vous passez -y :
plugin eval
Exécutez les cas d’évaluation d’un plugin et rapportez les résultats notés. Nécessite Claude Code v2.1.269 ou ultérieur. Chaque cas est un prompt plus des évaluateurs. Claude Code l’exécute plusieurs fois dans une session isolée avec seulement le plugin cible chargé, et par défaut aussi sans le plugin pour que le rapport montre la différence. Voir Tester les plugins avec des évaluations pour le format des cas, les évaluateurs, les résultats et l’utilisation CI.target optionnelle est par défaut le répertoire courant et prend n’importe laquelle de ces formes :
- Un répertoire de plugin
- Un seul fichier
prompt.mdoucase.yaml - Un plugin installé en tant que
nameouname@marketplace name@skills-dir
--tag, --allow-tools, et --json. Chacune de ces options prend les mots qui la suivent comme sa valeur, donc une cible écrite après l’une d’elles est lue comme une balise, un nom d’outil, ou le chemin de sortie JSON au lieu de la cible.
Ce tableau liste les options que la plupart des exécutions utilisent. Exécutez claude plugin eval --help pour l’ensemble complet, incluant --case, --tag, --output-dir, --report, --allow-real-servers, --keep-temp, et --verbose.
Le code de sortie rapporte comment l’exécution s’est terminée. Pour agir dessus dans un pipeline, voir Exécuter les évaluations en CI.
plugin eval init
Créez une suite d’évaluation pour le plugin dans le répertoire courant. Nécessite Claude Code v2.1.269 ou ultérieur. Voir Créer votre première suite d’évaluation..claude-plugin/plugin.json ou le SKILL.md du skill. Pour créer le scaffold de la suite dans un autre répertoire à dessein, passez --eval-dir.
Dans un terminal, la commande ouvre une session Claude Code interactive pour une interview de création. Dans l’interview, Claude fait ce qui suit :
- Lit le plugin
- Vous demande ce qu’il devrait bien faire
- Propose des cas et des évaluateurs
- Écrit les fichiers de cas
- Exécute les cas et examine les notes avec vous pour vérifier que les évaluateurs notent comme vous le feriez
--bare, ou sans terminal, la commande écrit un modèle de cas unique vierge à la place. Quand Claude exécute la commande depuis l’intérieur d’une session Claude Code, la commande affiche les instructions d’interview pour que cette session les suive plutôt que d’écrire un modèle.
Le name optionnel est un nom de cas. Il est requis avec --bare ou sans terminal, car la commande écrit le modèle vierge pour ce cas. Un nom de cas commence par une lettre ou un chiffre et contient seulement des lettres, des chiffres, ., _, et -. Sur chaque plateforme, la commande refuse aussi les noms que Windows ne peut pas stocker, comme con ou un nom se terminant par ..
La commande accepte ces options :
plugin tag
Créez une balise git annotée nommée<name>--v<version> pour une version de plugin. Avant de baliser, la commande vérifie que le plugin.json du plugin et toute entrée de marketplace qui le liste s’accordent sur la version.
Pour savoir quand baliser une version, voir Publier un plugin.
[path] est le répertoire du plugin, par défaut le répertoire courant. La commande trouve l’entrée de marketplace en remontant de ce répertoire à un .claude-plugin/marketplace.json qui liste le plugin.
Prévisualisez la balise pour un plugin dans un checkout de marketplace :
- Le nom du plugin
- La version et le fichier dont elle provient
- L’entrée de marketplace correspondante, quand il y en a une
- Le nom de la balise
- Les commandes
git tagetgit pushqu’il exécuterait
--dry-run, Claude Code affiche Created tag formatter--v1.0.0 et soit Pushed to origin soit la commande push à exécuter vous-même. Si la poussée échoue, la balise est toujours créée localement et la commande quitte avec une erreur.
La commande quitte 1 et affiche la raison quand elle ne peut pas baliser en toute sécurité. Les raisons courantes sont :
- Pas de
versiondansplugin.jsonou l’entrée de marketplace - La balise existe déjà
- L’arbre de travail est sale
plugin test
Exécutez les tests d’un mod, un plugin dont le code enregistre des gestionnaires d’événements. La commande ne nécessite ni session, ni connexion, ni réseau. Pour savoir comment écrire un test, voir Tester un mod.[directory] est le répertoire du mod, par défaut le répertoire courant. La commande exécute chaque fichier qu’il contient dont le nom se termine par .test.ts ou .test.tsx, et quitte avec le statut 1 quand un test échoue.
Exécutez les tests d’un mod dans ./first-mod :
plugin validate
Validez un manifeste de plugin, un manifeste de marketplace, ou les skills, agents et commandes dans un répertoire, et quittez avec un code qu’un travail CI peut utiliser. Pour le workflow créer, tester et éditer, voir Créer un plugin. Pour ce que le validateur vérifie dans chaque manifeste, voir la référence du manifeste de plugin et la référence de marketplace.
Validez un plugin avant de le commiter :
Valider un répertoire
Le<path> est un fichier manifeste ou un répertoire. Pour un répertoire, Claude Code choisit ce qu’il faut valider selon ce qu’il y trouve :
.claude-plugin/marketplace.json, quand il existe- Sinon
.claude-plugin/plugin.json - Sinon les fichiers de composant, choisis par le nom du répertoire. Valider les fichiers de composant sans manifeste nécessite Claude Code v2.1.233 ou ultérieur :
- Un répertoire nommé
skills,agents, oucommands: les fichiers à l’intérieur - Un répertoire nommé
.claude: les répertoiresskills,agents, etcommandsà l’intérieur - N’importe quel autre répertoire : ces trois répertoires sous son
.claude
- Un répertoire nommé
.claude-plugin/marketplace.json et un .claude-plugin/plugin.json, Claude Code valide la marketplace ainsi que le manifeste et les fichiers de composant du plugin. Cela nécessite Claude Code v2.1.289 ou ultérieur.
Claude Code ne suit pas les liens symboliques à l’intérieur du répertoire que vous nommez. Ce qu’il fait dépend de l’endroit où se trouve le lien :
- Un répertoire
skills,agents, oucommandslié sous la racine du plugin ou.claude: Claude Code avertit que rien dedans n’a été lu. - Une entrée liée à l’intérieur d’un répertoire
skills,agents, oucommands: Claude Code la saute et indique, par répertoire, combien d’entrées qu’une session chargerait il a sautées. - Le répertoire
skills,agents, oucommandsque vous nommez est lui-même un lien symbolique, ou son répertoire parent.claudel’est : Claude Code rapporte une erreur et ne vérifie rien dedans. Nommez le répertoire réel à la place.
- Un
SKILL.mdà la racine du plugin : quand vous exécutezclaude plugin validatecontre un répertoire de plugin, Claude Code ne vérifie pas unSKILL.mdà la racine du plugin - Un
CLAUDE.mdà la racine du plugin : dans une exécution de plugin, Claude Code avertit aussi d’unCLAUDE.mdà la racine du plugin - Fichiers de plugin dans une exécution de marketplace : depuis un répertoire de marketplace, Claude Code n’ouvre pas les fichiers de skill, agent, commande ou hook des plugins que la marketplace liste dans d’autres répertoires, ni les fichiers de serveur MCP qu’ils embarquent. Pour trouver des erreurs dans ces fichiers, validez chaque répertoire de plugin
Sortie et codes de sortie
Claude Code affiche le fichier qu’il a validé, toute erreur et avertissement avec leurs chemins, et une ligne de verdict. Le code de sortie suit le verdict :
Avec
--json, Claude Code écrit le rapport sur stdout en tant qu’un objet JSON avec ces champs de niveau supérieur :
success: le même verdict que le code de sortie donnestrict: si l’exécution a traité les avertissements comme des erreurstarget: le chemin résolu que Claude Code a validémanifest: le résultat du manifeste lui-même, ounullpour une exécution sans manifestecontents: résultats par fichier, chacun nommant sonfileet portant des tableauxerrors,warnings, etnotes. Les fichiers sans erreur, avertissement ni note n’ont pas d’entrée, donccontentsest vide quand il n’y a rien à signaler. Pour un répertoire contenantmarketplace.jsonetplugin.json,manifestest le résultat demarketplace.jsonet les résultats deplugin.jsonvont danscontentsgatingHooks: indique, pour chaque hook de mod pouvant refuser une action, comme un hooktool.call, s’il possède un gestionnaire.catch. Chaque élément donnemodule,pattern,hookethasCatch. Nécessite Claude Code v2.1.290 ou ultérieur
advice: les conseils de l’exécution, chaque entrée nommant le README en tant quefileet portant unmessageet lainstallLineà coller. Vide quand il n’y en a aucun. Nécessite Claude Code v2.1.295 ou ultérieur
2, la commande n’écrit rien sur stdout. Le message d’erreur va sur stderr.
Conseils sur le README
Un blocAdvice dans la sortie de claude plugin validate signifie que le README d’un plugin n’a aucune ligne qui installe le plugin depuis une marketplace, et il vous donne une ligne à ajouter. Un conseil n’est ni une erreur ni un avertissement. Il ne change ni la ligne de verdict ni le code de sortie, avec ou sans --strict. Cela nécessite Claude Code v2.1.295 ou ultérieur.
Par exemple, valider le répertoire de la marketplace acme-tools affiche ce conseil pour son plugin deploy-helper :
claude plugin validate dans votre shell. Le bloc Advice a disparu.
Si la ligne suggérée contient l’espace réservé <owner>/<repo>, la coller telle quelle ne fait pas disparaître le conseil. Obtenez d’abord la source réelle :
- Vous avez validé le répertoire du plugin lui-même : quand la marketplace liste le plugin depuis un répertoire situé dans le sien, validez plutôt ce répertoire. Quand elle liste le plugin depuis un autre emplacement, comme un dépôt GitHub, renseignez vous-même
<owner>/<repo> - Vous avez validé le répertoire de la marketplace : Claude Code renseigne la source à partir du remote
origindu répertoire.gitsitué à la racine de ce répertoire. Quand il ne peut pas utiliser ce remote, par exemple s’il n’y en a aucun, remplacez vous-même<owner>/<repo>par la source de votre marketplace
plugin install, ou sa forme courte plugin i, est suivi sur la même ligne par l’un de ces éléments. Les graphies /plugin et claude plugin comptent toutes les deux :
<plugin>@<marketplace>, comme/plugin install deploy-helper@acme-tools- Le nom du plugin et
--marketplace <source>, comme/plugin install deploy-helper --marketplace acme/tools
Commandes claude plugin marketplace
Exécutezclaude plugin marketplace <subcommand> depuis votre shell pour ajouter, lister, actualiser et supprimer les marketplaces d’où vous installez les plugins.
- Codes de sortie : ces sous-commandes suivent la convention de code de sortie des commandes de plugin
- Portées : leur flag
--scopen’a pas de forme courte-s
plugin marketplace add
Ajoutez une marketplace depuis un dépôt GitHub, une URL git, unemarketplace.json hébergée, ou un chemin local, et déclarez-la dans un fichier de paramètres.
Après l’avoir ajoutée, Claude Code installe toute dépendance que vos plugins installés manquaient.
<source> prend n’importe laquelle des formes du tableau ci-dessous, et sa forme décide du type de source et comment Claude Code récupère la marketplace. Pour l’objet source résultant, voir la référence de marketplace.
Pour un hôte dont les URLs de clone ne portent pas le suffixe
.git, comme AWS CodeCommit, ajoutez la marketplace en tant qu’entrée git dans extraKnownMarketplaces à la place. Claude Code clone une entrée git que son URL se termine ou non par .git.
Claude Code clone aussi une URL gitlab.com avec des sous-groupes imbriqués, comme https://gitlab.com/group/subgroup/project.
Ajoutez une marketplace et partagez-la avec le projet :
Successfully added marketplace: your-marketplace (declared in project settings), utilisant le name du manifeste de la marketplace lui-même. Un ajout répété ou une source invalide affiche l’un de ces résultats à la place :
- Marketplace déjà sur le disque : la sortie est
Marketplace 'your-marketplace' already on disk — declared in project settingset le code de sortie est0 - Source non reconnue : la sortie est
Invalid marketplace source format. Try: owner/repo, https://..., or ./pathet le code de sortie est1 - Hôte nu comme
gitlab.example.com/team/plugins: l’ajout échoue en tant que raccourciowner/repoinvalide, et le message vous dit d’ajouterhttps://ou d’utiliser un chemin local
From claude.ai: de claude plugin marketplace list :
--claudeai, la commande refuse --scope et --sparse. La marketplace est hébergée pour votre compte, pas déclarée dans un fichier de paramètres, donc vous ne pouvez pas la partager via le .claude/settings.json d’un projet.
plugin marketplace list
Listez chaque marketplace que vous avez ajoutée, avec sa source.
Claude Code affiche
Configured marketplaces: et une ligne Source: par marketplace, ou No marketplaces configured.
Avec --json, Claude Code affiche un tableau avec un objet par marketplace, portant les champs ci-dessous. Chaque champ est une string.
Une marketplace claude.ai ajoutée n’a pas de clone local, donc son entrée porte ses identifiants claude.ai,
marketplaceId et organizationUuid, à la place de installLocation. Elle porte aussi scope quand un est enregistré, et status.
Si vos sessions de terminal synchronisent les plugins depuis votre compte claude.ai, la liste de texte se termine par une section From claude.ai:. Cette section nomme les marketplaces que claude.ai liste pour votre compte que vous n’avez pas ajoutées, à la fois basées sur git et hébergées. Elle nécessite Claude Code v2.1.273 ou ultérieur.
Pour ajouter une marketplace de cette section, voir Ajouter une marketplace depuis claude.ai.
La sortie --json couvre seulement les marketplaces configurées et laisse la section dehors.
plugin marketplace remove
Supprimez la déclaration d’une marketplace de vos paramètres.rm est un alias pour remove.
<name> est le nom de la marketplace que plugin marketplace list affiche, pas la source que vous avez passée à add.
Supprimez une marketplace de chaque portée :
Successfully removed marketplace: your-marketplace. Quand la commande désinstalle des plugins, la sortie les liste sous une ligne comme Also uninstalled 2 plugins from this marketplace:. Pour en utiliser un à nouveau, ajoutez la marketplace à nouveau et réinstallez le plugin.
Si vous limitez la commande à un fichier de paramètres qui ne déclare pas la marketplace, la commande échoue avec Marketplace 'your-marketplace' is not declared in project settings. Omit --scope to remove it from all scopes.
plugin marketplace update
Actualisez une marketplace, ou chaque marketplace, depuis sa source pour récupérer les nouveaux plugins et versions. Une marketplace ajoutée avec une branche ou une baliseref s’actualise au dernier commit de cette ref, pas la branche par défaut du dépôt.
Actualisez une marketplace :
Successfully updated marketplace: your-marketplace. Quand vous omettez le nom, il affiche un compte comme Successfully updated 2 marketplaces.
/plugin dans une session
À l’intérieur d’une session interactive,/plugin ouvre le panneau de plugin. Chaque sous-commande ouvre le panneau sur un onglet, exécute une action là, ou affiche un résultat en ligne. /plugins et /marketplace sont des alias pour /plugin.
Vous pouvez exécuter ces commandes seulement dans une session de terminal interactive. Dans une exécution non-interactive comme claude -p, Claude Code répond que /plugin n’est pas disponible dans cet environnement.
Pour quelles surfaces ont /plugin, comment installer sans elle, et ce que chaque onglet du panneau affiche, voir Installer et gérer les plugins.
Un <plugin> est un name de plugin ou name@marketplace.
Le tableau ci-dessous liste chaque forme de session. Les sous-commandes shell init, update, details, prune, eval, eval init, et test n’ont pas de forme de session.
Si vous nommez un plugin qui n’est pas installé dans le projet courant dans
/plugin enable, disable, uninstall, ou configure, Claude Code affiche Plugin "<plugin>" is not installed in this project au lieu d’agir.
/reload-plugins
Appliquez les modifications de plugins en attente à la session en cours sans la redémarrer. Les modifications en attente sont les plugins que vous avez installés, mis à jour, activés, désactivés ou modifiés sur le disque depuis le démarrage de la session. Lorsque vous fermez le panneau/plugin avec des modifications en attente que vous y avez apportées, Claude Code exécute /reload-plugins pour vous. Exécutez-le vous-même après les modifications de plugins qui se produisent en dehors du panneau, comme une commande claude plugin que vous avez exécutée dans un autre terminal.
Résumé du rechargement
Claude Code recharge chaque plugin actif et affiche une ligne de résumé,Reloaded: N plugins · N skills · N agents · N hooks · N plugin MCP servers · N plugin LSP servers, en omettant le nombre de serveurs MCP de plugins dans une session sans terminal interactif. Lorsqu’un plugin a échoué, le résumé ajoute N errors during load. Run /plugin for details.
Le nombre de skills couvre chaque skill qu’un plugin fournit, à la fois ses entrées commands/ et ses skills SKILL.md. Le nombre d’agents est le nombre d’agents chargés dans la session, y compris ceux qui ne proviennent pas de plugins.
Lorsque les dépendances d’un plugin rechargé sont manquantes, Claude Code les installe, recharge à nouveau, et ajoute (+ N dependencies: <names>) resolved au résumé.
Rechargements qui modifient les outils MCP
Lorsque le rechargement ajouterait ou supprimerait un serveur MCP de plugin ou l’outilLSP, et que ce changement invaliderait le cache de prompt, Claude Code n’applique pas le rechargement. Il affiche une ligne telle que This reload changes MCP tools (<server>) — your next message will re-read the whole conversation instead of using the cache. Run /reload-plugins --force to apply. Passez --force pour l’appliquer quand même.
Sessions sans terminal interactif
/reload-plugins s’exécute également dans les sessions sans terminal interactif, comme l’application de bureau, le SDK Agent, et le mode non-interactif avec -p. Nécessite Claude Code v2.1.260 ou ultérieur.
Dans ces sessions, la commande s’exécute uniquement lorsque vous la tapez vous-même dans la session, comme dans le prompt -p ou la boîte de prompt de l’application de bureau. Lorsqu’elle arrive d’une autre manière, comme via Remote Control ou un message relayé depuis Slack, la commande répond /reload-plugins isn't available over a remote connection in this session. et ne recharge rien.
Le rechargement dans ces sessions ne connecte ni ne déconnecte les serveurs MCP de plugins. Ces modifications prennent effet dans votre prochaine session.
Drapeaux qui chargent un plugin pour une seule session
Deux drapeauxclaude chargent un plugin pour une seule session seulement, sans l’installer. Les deux sont répétables.
Les auteurs de plugin les utilisent pour tester un plugin avant de le publier. Pour le flux de travail charger-éditer-recharger, voir Développer sans marketplace.
Un plugin que l’un ou l’autre drapeau charge est un plugin de session seulement.
claude plugin list l’affiche seulement quand le même drapeau précède la sous-commande, comme dans claude --plugin-dir ./my-plugin plugin list. Le plugin apparaît comme <name>@inline sous un en-tête qui commence par Session-only plugins, et --json rapporte sa scope comme session.
Quand un plugin de session seulement partage un nom avec un plugin installé, Claude Code charge la copie de session seulement pour cette session et saute celle installée. La copie installée se charge à la place si vous avez désactivé la copie de session seulement avec claude plugin disable <name>@inline, ou si les paramètres gérés verrouillent ce nom de plugin. Pour la priorité, voir Référence du chargement des plugins.
Un administrateur peut rejeter les deux drapeaux, et les dossiers nommés dans la variable CLAUDE_CODE_PLUGIN_DIRS, avec le paramètre géré disableSideloadFlags. Claude Code affiche alors que le drapeau est désactivé par les paramètres gérés de votre organisation et quitte 1 sans démarrer.
Depuis le SDK Agent, l’option plugins est l’équivalent de --plugin-dir.
Prochaines étapes
- Installer et gérer les plugins : les mêmes opérations que les étapes, avec ce que vous voyez à chacune
- Référence du chargement des plugins : ce que chaque commande change sur le disque et quelle portée prend effet
- Dépanner les plugins : installer, marketplace, charger, et valider les messages d’erreur avec leurs corrections
- Référence du manifeste de plugin : les champs que
claude plugin validatevérifie