Ir al contenido

Sistema de plugins del Marketplace

El sistema de marketplace le permite descubrir, instalar y gestionar plugins desde catálogos alojados en Git. Es compatible con el formato de registro de plugins de Claude Code.

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

O simplemente escriba /marketplace sin argumentos para abrir el navegador interactivo de plugins.

Un marketplace es un repositorio Git (o directorio local) que contiene un archivo de catálogo en .xcsh-plugin/marketplace.json. El catálogo lista los plugins disponibles con sus fuentes, descripciones y metadatos.

Un plugin es un directorio que contiene habilidades, comandos, hooks, servidores MCP o servidores LSP. Los plugins se identifican mediante name@marketplace (p. ej., code-review@f5-sales-demo-marketplace).

Ámbitos: los plugins pueden instalarse en dos ámbitos:

  • user (predeterminado) — disponible en todos los proyectos, almacenado en ~/.xcsh/plugins/installed_plugins.json
  • project — disponible únicamente en el proyecto actual, almacenado en .xcsh/installed_plugins.json

Las instalaciones con ámbito de proyecto tienen prioridad sobre las instalaciones con ámbito de usuario del mismo plugin.

ComandoEfecto
/marketplaceAbrir el navegador interactivo de plugins (instalación)
ComandoEfecto
/marketplace add <source>Agregar una fuente de marketplace
/marketplace remove <name>Eliminar un marketplace
/marketplace update [name]Volver a obtener catálogo(s); omita el nombre para actualizar todos
/marketplace listListar los marketplaces configurados
ComandoEfecto
/marketplace discover [marketplace]Explorar los plugins disponibles
/marketplace install [--force] [--scope user|project] name@marketplaceInstalar un plugin
/marketplace uninstall [--scope user|project] name@marketplaceDesinstalar un plugin
/marketplace installedListar los plugins de marketplace instalados
/marketplace upgrade [--scope user|project] [name@marketplace]Actualizar uno o todos los plugins

Las mismas operaciones están disponibles desde la línea de comandos:

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

Cuando ejecuta /marketplace add <source>, el sistema clasifica la fuente:

Formato de fuenteTipoEjemplo
owner/repoAbreviatura de GitHubanthropics/f5-sales-demo-marketplace
https://...*.jsonURL directa del catálogohttps://example.com/marketplace.json
https://...*.git o git@...Repositorio Githttps://github.com/org/repo.git
./path o ~/path o /pathDirectorio local./my-marketplace

El sistema clona el repositorio (o lee el directorio local), localiza .xcsh-plugin/marketplace.json, lo valida y almacena el catálogo en caché localmente.

Un catálogo de marketplace se encuentra en .xcsh-plugin/marketplace.json en la raíz del repositorio:

{
"$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"
}
]
}
CampoDescripción
nameNombre del marketplace. Alfanumérico en minúsculas, guiones y puntos. Debe comenzar y terminar con un carácter alfanumérico. Máximo 64 caracteres.
owner.nameNombre del propietario del marketplace
pluginsArray de entradas de plugins
CampoObligatorioDescripción
nameNombre del plugin (mismas reglas que el nombre del marketplace)
sourceDónde encontrar el plugin (véase a continuación)
descriptionnoDescripción breve
versionnoCadena de versión
authorno{ name, email? }
homepagenoURL
categorynoCadena de categoría (p. ej., development, productivity, security)
tagsnoArray de etiquetas de cadena
strictnoBooleano
commandsnoComandos slash proporcionados
agentsnoAgentes proporcionados
hooksnoDefiniciones de hooks
mcpServersnoDefiniciones de servidores MCP
lspServersnoDefiniciones de servidores LSP

El campo source admite varios formatos:

Ruta relativa (dentro del repositorio del marketplace):

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

URL de repositorio Git:

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

Abreviatura de GitHub:

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

Subdirectorio de Git (monorepo):

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

Paquete npm:

"source": {
"source": "npm",
"package": "@scope/my-plugin",
"version": "1.0.0"
}
~/.xcsh/
config/
marketplaces.json # Registro de marketplaces agregados
plugins/
installed_plugins.json # Plugins instalados con ámbito de usuario
cache/
marketplaces/ # Catálogos de marketplace en caché
plugins/ # Directorios de plugins en caché
<project>/.xcsh/
installed_plugins.json # Plugins instalados con ámbito de proyecto

Los nombres de marketplace y de plugins deben:

  • Comenzar y terminar con una letra minúscula o un dígito
  • Contener únicamente letras minúsculas, dígitos, guiones y puntos
  • Tener como máximo 64 caracteres

Los IDs de plugin (name@marketplace) deben tener como máximo 128 caracteres en total.

Ejemplos válidos: my-plugin, code-review, wordpress.com, ai-firstify Ejemplos no válidos: -bad, bad-, .bad, Bad, under_score