Claude Code Plugins: qué son, cómo crearlos e instalarlos
Los Claude Code Plugins permiten empaquetar Skills, Subagents, Hooks, servidores MCP y otras extensiones dentro de una unidad reutilizable. Puedes utilizarlos en tus propios proyectos, compartirlos con un equipo, distribuirlos mediante marketplaces y mantener versiones independientes de tus automatizaciones para Claude Code.
¿Qué es un Plugin de Claude Code?
Un Plugin de Claude Code es un paquete
reutilizable que puede incluir Skills,
agentes, Hooks, servidores MCP
y otras extensiones.
Normalmente utiliza un manifest
.claude-plugin/plugin.json
para definir su nombre, descripción
y versión. Sus componentes se colocan
en la raíz del plugin, por ejemplo
skills/,
agents/,
hooks/
y .mcp.json.
Los Plugins pueden probarse localmente
con claude --plugin-dir
o distribuirse mediante
marketplaces de Claude Code.
Qué puede incluir un Plugin de Claude Code
Los Plugins permiten agrupar diferentes mecanismos de extensión bajo una misma identidad.
Skills
Procedimientos, instrucciones y conocimiento reutilizable.
Subagents
Agentes especializados con contexto, modelos y herramientas propias.
Hooks
Automatizaciones que reaccionan a eventos de Claude Code.
MCP
Integraciones con servicios, herramientas y APIs externas.
LSP
Inteligencia de código mediante servidores Language Server Protocol.
Monitors
Procesos que observan logs o estados y notifican eventos a Claude.
Plugin → componentes → capacidades
Claude Code descubre los componentes del Plugin y los integra dentro de la sesión.
Instalas el Plugin
Claude Code obtiene el paquete desde un marketplace o directorio local.
Descubre componentes
Skills, agentes, Hooks y MCP quedan disponibles.
Claude los utiliza
Las capacidades aparecen cuando una tarea las necesita.
Cuándo utilizar un Plugin
No necesitas crear un Plugin para cada personalización de Claude Code.
| Necesidad | .claude/ | Plugin |
|---|---|---|
| Experimentación rápida | Ideal | Posible |
| Configuración de un proyecto | Ideal | Posible |
| Compartir entre proyectos | Manual | Ideal |
| Distribuir a otros | Manual | Ideal |
| Versiones | No específico | Sí |
| Marketplace | No | Sí |
| Namespace de Skills | /review |
/plugin:review |
Para experimentar,
suele ser más rápido
crear primero
Skills,
agentes
o Hooks
dentro de
.claude/.
Cuando la configuración
esté estable
y quieras reutilizarla,
conviértela
en Plugin.
Cómo se organiza un Plugin de Claude Code
Los componentes deben encontrarse en la raíz del directorio del Plugin.
ciborg-dev-tools/
├── .claude-plugin/
│ └── plugin.json
├── skills/
│ ├── security-review/
│ │ └── SKILL.md
│ └── wordpress-review/
│ └── SKILL.md
├── agents/
│ └── security-reviewer.md
├── hooks/
│ └── hooks.json
├── scripts/
│ └── format-code.sh
├── .mcp.json
├── .lsp.json
├── settings.json
└── README.md
No coloques
skills/,
agents/,
hooks/
ni
.mcp.json
dentro de
.claude-plugin/.
El resto de los componentes viven en la raíz del Plugin.
¿plugin.json es obligatorio?
Actualmente, no siempre.
Claude puede descubrir componentes automáticamente
Si utilizas las ubicaciones estándar, Claude Code puede descubrir automáticamente Skills, Agents, Hooks y otros componentes.
Utiliza
plugin.json
cuando quieras definir
identidad,
versión,
autor,
descripción,
licencia,
repositorio
o rutas personalizadas.
Crear un Plugin desde cero
Crea el directorio
Crea una carpeta independiente para el Plugin.
Crea .claude-plugin
Dentro irá
el manifest
plugin.json.
Añade componentes
Skills, Agents, Hooks, MCP u otras extensiones.
Prueba localmente
Utiliza
--plugin-dir
antes de distribuirlo.
Crear la estructura inicial
mkdir ciborg-dev-tools
mkdir ciborg-dev-tools/.claude-plugin
Crear el manifest del Plugin
{
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
"name": "ciborg-dev-tools",
"displayName": "Ciborg Dev Tools",
"version": "1.0.0",
"description": "Herramientas reutilizables para desarrollo, revisión y seguridad",
"author": {
"name": "Ciborg"
},
"license": "MIT",
"keywords": [
"development",
"security",
"wordpress",
"code-review"
]
}
Campos importantes de plugin.json
| Campo | Función |
|---|---|
name |
Identificador y namespace del Plugin |
displayName |
Nombre legible mostrado al usuario |
version |
Versión del Plugin |
description |
Descripción del Plugin |
author |
Información del autor |
homepage |
Documentación o página principal |
repository |
Repositorio de código |
license |
Licencia |
keywords |
Etiquetas de descubrimiento |
defaultEnabled |
Define si comienza activado |
Instalar un Plugin desactivado por defecto
Esto puede ser útil si el Plugin conecta servicios externos o genera costes.
{
"name": "external-tools",
"version": "1.0.0",
"description": "Integraciones externas",
"defaultEnabled": false
}
claude plugin enable external-tools
Añadir Skills a un Plugin
Cada Skill utiliza la estructura que ya vimos en la guía de SKILL.md.
ciborg-dev-tools/
└── skills/
└── security-review/
├── SKILL.md
├── checklist.md
└── examples.md
---
description: Revisa código buscando vulnerabilidades, errores de autorización, validación insuficiente y exposición de secretos.
---
Realiza una revisión de seguridad.
Analiza:
- autenticación
- autorización
- inputs
- outputs
- SQL
- XSS
- CSRF
- secretos
- archivos
- APIs
Devuelve primero
los problemas críticos.
Los Skills de Plugins utilizan namespace
Esto evita conflictos entre Plugins que tengan Skills con el mismo nombre.
Si el Plugin se llama:
ciborg-dev-tools
y el Skill se llama:
security-review
lo ejecutas como:
/ciborg-dev-tools:security-review
Incluir agentes especializados
ciborg-dev-tools/
└── agents/
└── security-reviewer.md
---
name: security-reviewer
description: Especialista en seguridad de aplicaciones. Úsalo para revisar autenticación, autorización, APIs, bases de datos y manejo de datos sensibles.
tools: Read, Grep, Glob
model: sonnet
---
Revisa el código
desde una perspectiva de seguridad.
No modifiques archivos.
Devuelve:
- severidad
- archivo
- problema
- impacto
- recomendación
Los agentes de Plugins aparecen bajo su identidad asociada al Plugin, lo que evita colisiones con agentes de otros paquetes.
Incluir automatizaciones dentro del Plugin
Los Hooks pueden reaccionar automáticamente a eventos de Claude Code.
ciborg-dev-tools/
├── hooks/
│ └── hooks.json
└── scripts/
└── format-code.sh
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/format-code.sh"
}
]
}
]
}
}
Utiliza esta variable para hacer referencia a archivos incluidos dentro del Plugin sin depender de la ruta donde Claude Code lo haya instalado.
Empaquetar servidores MCP dentro de un Plugin
Los servidores configurados por el Plugin pueden iniciar automáticamente cuando este se encuentra habilitado.
{
"mcpServers": {
"ciborg-tools": {
"command": "node",
"args": [
"${CLAUDE_PLUGIN_ROOT}/servers/server.js"
]
}
}
}
Guarda esta configuración
como
.mcp.json
en la raíz
del Plugin.
Variables especiales para Plugins
| Variable | Uso |
|---|---|
${CLAUDE_PLUGIN_ROOT} |
Directorio donde está instalada la versión actual del Plugin |
${CLAUDE_PLUGIN_DATA} |
Datos persistentes que sobreviven actualizaciones |
${CLAUDE_PROJECT_DIR} |
Raíz del proyecto abierto por Claude Code |
Esa ruta
puede cambiar
cuando se actualiza
el Plugin.
Para cachés,
dependencias generadas
o información
que debe sobrevivir,
utiliza
${CLAUDE_PLUGIN_DATA}.
Plugins con servidores LSP
Los Plugins también pueden proporcionar inteligencia estructural de código.
{
"go": {
"command": "gopls",
"args": ["serve"],
"extensionToLanguage": {
".go": "go"
}
}
}
Si el servidor
de lenguaje
no está instalado,
aparecerá un error
como
Executable not found in $PATH.
Observar logs y eventos en segundo plano
Un Plugin también puede iniciar monitores cuando se activa.
[
{
"name": "error-log",
"command": "tail -F ./logs/error.log",
"description": "Application error log"
}
]
La configuración
puede guardarse en:
monitors/monitors.json.
Monitors forma parte de las capacidades más nuevas del sistema de Plugins y su configuración puede seguir evolucionando.
Un Plugin puede cambiar el agente principal
Los Plugins pueden proporcionar configuración predeterminada al activarse.
{
"agent": "security-reviewer"
}
Actualmente,
el archivo
settings.json
del Plugin
admite un conjunto
reducido de configuraciones,
entre ellas
agent
y
subagentStatusLine.
Cómo probar un Plugin localmente
claude --plugin-dir ./ciborg-dev-tools
--plugin-dir
carga el Plugin
únicamente
durante esa sesión,
lo que lo hace ideal
para desarrollo
y debugging.
También puedes probar un Plugin empaquetado:
claude --plugin-dir ./ciborg-dev-tools.zip
Recargar un Plugin sin reiniciar Claude Code
/reload-plugins
Claude Code puede volver a cargar Skills, Agents, Hooks, servidores MCP y LSP sin tener que cerrar la sesión.
Por ejemplo, determinados monitores requieren una nueva sesión para utilizar una versión actualizada.
Validar un Plugin antes de publicarlo
claude plugin validate ./ciborg-dev-tools
Tratar warnings como errores
claude plugin validate ./ciborg-dev-tools --strict
El validador puede detectar errores de JSON, frontmatter, Hooks y estructura antes de que lleguen a otros usuarios.
Crear rápidamente un Plugin con plugin init
Claude Code incluye actualmente un generador de Plugins.
claude plugin init my-helper
Este comando
crea actualmente
el Plugin bajo
~/.claude/skills/my-helper/
y Claude Code
lo carga
como
my-helper@skills-dir
en próximas sesiones.
claude plugin init my-helper --with skills agents hooks mcp
Cómo instalar Plugins de Claude Code
Claude Code dispone de un administrador interactivo y comandos CLI.
Abrir el navegador de Plugins
/plugin
/plugin install plugin-name@marketplace-name
Instalar Plugins oficiales de Anthropic
Claude Code registra normalmente el marketplace oficial durante el primer inicio interactivo.
Ejemplo de instalación
/plugin install github@claude-plugins-official
/plugin marketplace add anthropics/claude-plugins-official
Instalar Plugins para usuario, proyecto o localmente
| Scope | Disponible en | Compartido |
|---|---|---|
user |
Todos tus proyectos | No |
project |
Repositorio actual | Sí |
local |
Solo tú en ese repositorio | No |
claude plugin install formatter@my-marketplace --scope project
claude plugin install formatter@my-marketplace --scope local
Qué es un marketplace de Claude Code Plugins
Un marketplace es un catálogo de Plugins disponibles.
Añades el marketplace
Esto registra el catálogo. Todavía no instala ningún Plugin.
Exploras los Plugins
Puedes utilizar
el panel
/plugin.
Instalas solo lo necesario
Seleccionas los Plugins que realmente quieres utilizar.
Añadir un marketplace desde GitHub
/plugin marketplace add anthropics/claude-code
Anthropic mantiene ejemplos de Plugins que permiten estudiar cómo funciona el sistema de extensiones.
Crear un marketplace privado
No necesitas publicar tus Plugins para todo Internet.
Repositorio privado
Una organización puede mantener su propio catálogo en un repositorio privado y distribuir internamente herramientas de desarrollo, seguridad, despliegue o procesos corporativos.
/plugin marketplace add git@gitlab.com:empresa/claude-plugins.git
Comandos para administrar Plugins
| Acción | Comando |
|---|---|
| Ver Plugins | /plugin |
| Instalar | claude plugin install nombre@marketplace |
| Actualizar | claude plugin update nombre@marketplace |
| Activar | claude plugin enable nombre@marketplace |
| Desactivar | claude plugin disable nombre@marketplace |
| Desinstalar | claude plugin uninstall nombre@marketplace |
| Validar | claude plugin validate ./plugin |
| Detalles | claude plugin details nombre |
Ver cuánto añade un Plugin a la sesión
claude plugin details ciborg-dev-tools
El comando puede mostrar el inventario de componentes y una estimación de cuánto contexto añade el Plugin a cada sesión.
Cómo versionar un Plugin
Para Plugins publicados con ciclos de release, utiliza versionado semántico.
| Cambio | Versión |
|---|---|
| Bug fix | 1.0.0 → 1.0.1 |
| Nueva función compatible | 1.0.0 → 1.1.0 |
| Breaking change | 1.0.0 → 2.0.0 |
Claude Code utiliza ese valor para decidir si existe una nueva actualización. Si publicas cambios pero no incrementas la versión, los usuarios pueden no recibirlos.
Especialmente cuando el Plugin empieza a utilizarse en varios proyectos o equipos.
Plugin de Claude Code para desarrollo WordPress
Puedes crear un paquete reutilizable específicamente para proyectos WordPress.
wordpress-toolkit/
├── .claude-plugin/
│ └── plugin.json
├── skills/
│ ├── security-review/
│ │ └── SKILL.md
│ ├── woocommerce-review/
│ │ └── SKILL.md
│ └── plugin-scaffold/
│ └── SKILL.md
├── agents/
│ ├── wordpress-security.md
│ └── database-reviewer.md
├── hooks/
│ └── hooks.json
├── scripts/
│ ├── php-lint.sh
│ └── check-security.sh
└── README.md
Podrías instalar el mismo toolkit en cada proyecto WordPress sin tener que recrear manualmente Skills, agentes y automatizaciones.
Convertir una configuración .claude en Plugin
Si ya tienes un ecosistema funcionando dentro de un proyecto, puedes migrarlo.
mkdir -p my-plugin/.claude-plugin
cp -r .claude/skills my-plugin/
cp -r .claude/agents my-plugin/
cp -r .claude/commands my-plugin/
Si actualmente
están definidos
dentro de
.claude/settings.json,
crea
hooks/hooks.json
en el nuevo Plugin.
Un Plugin puede ejecutar código en tu equipo
Por eso no deberías tratar cualquier Plugin como si fuera únicamente un archivo de prompts.
Revisa
hooks/
antes de instalar.
Revisa
.mcp.json
y servicios externos.
Comprueba qué ejecutables incluye el Plugin.
Revisa los permisos de sus agentes.
Comprueba qué comandos ejecutan los Hooks.
Utiliza Plugins únicamente de fuentes confiables.
Valida Plugins internos antes de distribuirlos.
Claude Code no carga mi Plugin
Ejecuta
claude plugin validate.
Comprueba
la sintaxis JSON
de
plugin.json.
Asegúrate
de que Skills
y Agents
no estén dentro
de
.claude-plugin/.
Utiliza
${CLAUDE_PLUGIN_ROOT}
para rutas internas.
Comprueba permisos de ejecución de scripts.
Ejecuta
/reload-plugins
después de cambios.
Revisa
la pestaña
Errors
del administrador
/plugin.
Ejecuta
claude --debug
para diagnóstico avanzado.
No coloques todo dentro de .claude-plugin
my-plugin/
└── .claude-plugin/
├── plugin.json
├── skills/
└── agents/
my-plugin/
├── .claude-plugin/
│ └── plugin.json
├── skills/
└── agents/
Cómo diseñar buenos Claude Code Plugins
Define un propósito claro para el Plugin.
Mantén Skills pequeños y especializados.
Limita herramientas de los agentes.
Utiliza
${CLAUDE_PLUGIN_ROOT}
para rutas
internas.
Guarda datos persistentes
en
${CLAUDE_PLUGIN_DATA}.
Prueba localmente
con
--plugin-dir.
Valida
con
--strict
antes de publicar.
Versiona releases públicas correctamente.
Qué mecanismo deberías utilizar
Documentación oficial de Claude Code Plugins
El sistema de Plugins continúa ampliándose, por lo que conviene consultar la documentación para nuevos componentes y opciones.
Create Plugins
Creación, estructura, Skills, Agents, Hooks, MCP y testing.
Ver documentación →Plugins Reference
Manifest, componentes, rutas, variables, versionado y CLI.
Ver referencia →Discover Plugins
Marketplaces, instalación, scopes y administración.
Ver Plugins disponibles →Guías relacionadas
FAQ sobre Claude Code Plugins
Respuestas sobre estructura, instalación, Skills, agentes, marketplaces, scopes y distribución.
Es un paquete reutilizable que puede incluir Skills, agentes, Hooks, MCP y otras extensiones para Claude Code.
No siempre. Claude Code puede descubrir componentes ubicados en directorios estándar. Sin embargo, plugin.json es recomendable para definir identidad, metadata, versión y configuración.
Deben colocarse
en la raíz
del Plugin
dentro de
skills/
y
agents/.
No deben colocarse
dentro de
.claude-plugin/.
Utiliza
claude --plugin-dir ./mi-plugin.
El Plugin
se cargará
únicamente
para esa sesión.
Puedes utilizar
el navegador
/plugin
o ejecutar
/plugin install plugin@marketplace.
Desde la terminal
también existe
claude plugin install.
Es un catálogo que Claude Code puede registrar para descubrir e instalar Plugins. Añadir un marketplace no instala automáticamente todos sus Plugins.
Sí.
Un Skill llamado
review
dentro del Plugin
my-plugin
se invoca normalmente
como
/my-plugin:review.
Sí.
Un Plugin
puede incluir
configuración MCP
mediante
.mcp.json.
Sus servidores
pueden quedar disponibles
cuando el Plugin
está habilitado.
Ejecuta
claude plugin validate ./mi-plugin.
Puedes añadir
--strict
para tratar
las advertencias
como errores.
No. Un Plugin puede incluir Hooks, scripts, MCP y otras capacidades capaces de ejecutar acciones en tu equipo. Debes revisar su origen y configuración antes de instalarlo.
Automatiza Claude Code con Hooks
Ya sabes cómo empaquetar Skills, Subagents, MCP y otras capacidades dentro de Plugins. El siguiente paso es aprender a reaccionar automáticamente cuando Claude ejecuta herramientas, modifica código o completa tareas.
Claude Code Hooks →