Aller au contenu

Système de plugins de la Place de marché

Le système de place de marché vous permet de découvrir, d’installer et de gérer des plugins à partir de catalogues hébergés sur Git. Il est compatible avec le format de registre de plugins Claude Code.

/marketplace add anthropics/f5-sales-demo-marketplace
/marketplace install wordpress.com@f5-sales-demo-marketplace

Ou tapez simplement /marketplace sans argument pour ouvrir le navigateur de plugins interactif.

Une place de marché est un dépôt Git (ou un répertoire local) contenant un fichier de catalogue à l’emplacement .xcsh-plugin/marketplace.json. Le catalogue répertorie les plugins disponibles avec leurs sources, descriptions et métadonnées.

Un plugin est un répertoire contenant des compétences, des commandes, des hooks, des serveurs MCP ou des serveurs LSP. Les plugins sont identifiés par name@marketplace (p. ex. code-review@f5-sales-demo-marketplace).

Portées : les plugins peuvent être installés à deux niveaux de portée :

  • user (par défaut) — disponible dans tous les projets, stocké dans ~/.xcsh/plugins/installed_plugins.json
  • project — disponible uniquement dans le projet courant, stocké dans .xcsh/installed_plugins.json

Les installations à portée projet masquent les installations à portée utilisateur du même plugin.

CommandeEffet
/marketplaceOuvrir le navigateur de plugins interactif (installation)
CommandeEffet
/marketplace add <source>Ajouter une source de place de marché
/marketplace remove <name>Supprimer une place de marché
/marketplace update [name]Récupérer à nouveau le(s) catalogue(s) ; omettre le nom pour tout mettre à jour
/marketplace listLister les places de marché configurées
CommandeEffet
/marketplace discover [marketplace]Parcourir les plugins disponibles
/marketplace install [--force] [--scope user|project] name@marketplaceInstaller un plugin
/marketplace uninstall [--scope user|project] name@marketplaceDésinstaller un plugin
/marketplace installedLister les plugins de la place de marché installés
/marketplace upgrade [--scope user|project] [name@marketplace]Mettre à jour un ou tous les plugins

Les mêmes opérations sont disponibles depuis la ligne de commande :

xcsh plugin marketplace add <source>
xcsh plugin marketplace remove <name>
xcsh plugin marketplace update [name]
xcsh plugin marketplace list
xcsh plugin discover [marketplace]
xcsh plugin install --scope project name@marketplace

Lorsque vous exécutez /marketplace add <source>, le système classifie la source :

Format de sourceTypeExemple
owner/repoRaccourci GitHubanthropics/f5-sales-demo-marketplace
https://...*.jsonURL de catalogue directehttps://example.com/marketplace.json
https://...*.git ou git@...Dépôt Githttps://github.com/org/repo.git
./path ou ~/path ou /pathRépertoire local./my-marketplace

Le système clone le dépôt (ou lit le répertoire local), localise .xcsh-plugin/marketplace.json, le valide et met le catalogue en cache localement.

Un catalogue de place de marché se trouve à l’emplacement .xcsh-plugin/marketplace.json à la racine du dépôt :

{
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
"name": "my-marketplace",
"owner": {
"name": "Your Name",
"email": "you@example.com"
},
"description": "A collection of plugins",
"plugins": [
{
"name": "my-plugin",
"description": "What this plugin does",
"source": "./plugins/my-plugin",
"category": "development",
"homepage": "https://github.com/you/my-plugin"
}
]
}
ChampDescription
nameNom de la place de marché. Alphanumérique en minuscules, tirets et points. Doit commencer et se terminer par un caractère alphanumérique. Maximum 64 caractères.
owner.nameNom du propriétaire de la place de marché
pluginsTableau des entrées de plugins
ChampObligatoireDescription
nameouiNom du plugin (mêmes règles que pour le nom de la place de marché)
sourceouiEmplacement du plugin (voir ci-dessous)
descriptionnonCourte description
versionnonChaîne de version
authornon{ name, email? }
homepagenonURL
categorynonChaîne de catégorie (p. ex. development, productivity, security)
tagsnonTableau de tags sous forme de chaînes
strictnonBooléen
commandsnonCommandes slash fournies
agentsnonAgents fournis
hooksnonDéfinitions de hooks
mcpServersnonDéfinitions de serveurs MCP
lspServersnonDéfinitions de serveurs LSP

Le champ source prend en charge plusieurs formats :

Chemin relatif (dans le dépôt de la place de marché) :

"source": "./plugins/my-plugin"

URL de dépôt Git :

"source": {
"source": "url",
"url": "https://github.com/org/repo.git",
"sha": "abc123..."
}

Raccourci GitHub :

"source": {
"source": "github",
"repo": "org/repo",
"ref": "main",
"sha": "abc123..."
}

Sous-répertoire Git (monorepo) :

"source": {
"source": "git-subdir",
"url": "https://github.com/org/monorepo.git",
"path": "plugins/my-plugin",
"ref": "main",
"sha": "abc123..."
}

Package npm :

"source": {
"source": "npm",
"package": "@scope/my-plugin",
"version": "1.0.0"
}
~/.xcsh/
config/
marketplaces.json # Registre des places de marché ajoutées
plugins/
installed_plugins.json # Plugins installés à portée utilisateur
cache/
marketplaces/ # Catalogues de places de marché mis en cache
plugins/ # Répertoires de plugins mis en cache
<project>/.xcsh/
installed_plugins.json # Plugins installés à portée projet

Les noms de places de marché et de plugins doivent :

  • Commencer et se terminer par une lettre minuscule ou un chiffre
  • Contenir uniquement des lettres minuscules, des chiffres, des tirets et des points
  • Ne pas dépasser 64 caractères

Les identifiants de plugins (name@marketplace) ne doivent pas dépasser 128 caractères au total.

Exemples valides : my-plugin, code-review, wordpress.com, ai-firstify Exemples invalides : -bad, bad-, .bad, Bad, under_score