Inicio / Extender: habilidades, MCP, subagentes, hooks, plugins
Plugins: agrupar skills, hooks, MCP y agentes
Un plugin agrupa skills, hooks, servidores MCP y comandos en un solo directorio versionado, instalable y compartible de una sola vez, con un manifiesto único que vive aparte de todo lo demás.
Un plugin agrupa skills, hooks, servidores MCP y comandos en un solo directorio versionado, instalable y compartible de una sola vez. La documentación oficial describe este directorio como un bundle, la misma unidad probada en local y luego publicada en una biblioteca compartida (fuente code.claude.com/docs/en/plugins, consultada el 2026-09-02).
Lo que puede contener un plugin
En la raíz del plugin, cada directorio cumple un rol preciso. skills/ agrupa las skills del plugin, con el mismo formato SKILL.md que una skill personal o de proyecto. commands/ conserva el mecanismo histórico de comandos planos, siempre soportado en paralelo. hooks/ lleva un archivo hooks.json que declara los eventos del ciclo de vida gestionados por el plugin. .mcp.json declara los servidores MCP embebidos, disponibles desde la instalación. agents/ define subagentes dedicados al plugin. .lsp.json agrega servidores de lenguaje, monitors/ con su archivo monitors.json vigila registros en segundo plano, y bin/ agrega ejecutables directamente a la ruta usada por la herramienta Bash. Un archivo settings.json al mismo nivel fija ajustes por defecto del plugin, pero solo las claves agent y subagentStatusLine están actualmente soportadas.
El manifiesto, y una trampa frecuente
Un solo archivo vive en .claude-plugin/: plugin.json, el manifiesto. Lleva name, description, version y author. El campo name se convierte también en el namespace de los comandos del plugin: una skill llamada bonjour en un plugin llamado mon-plugin se invoca con el comando /mon-plugin:bonjour. La documentación señala explícitamente el error más frecuente en este punto: colocar skills/, commands/, agents/ o hooks/ dentro de .claude-plugin/ en lugar de ponerlos en la raíz del plugin, al lado de esa carpeta.
mon-plugin/
.claude-plugin/
plugin.json
skills/
bonjour/
SKILL.md
hooks/
hooks.json
.mcp.json
Probar antes de publicar
El comando claude --plugin-dir ./mon-plugin carga el plugin para una sesión local, un archivo .zip con el mismo contenido también funciona. El comando /reload-plugins recarga los plugins activos sin reiniciar la sesión, útil mientras se modifica hooks.json o una skill. Antes de enviar un plugin a una biblioteca compartida, claude plugin validate ./mon-plugin controla su estructura. Dos marketplaces públicos, mantenidos por Anthropic, distribuyen luego los plugins: claude-plugins-official, curada, ya registrada en el primer lanzamiento interactivo de Claude Code, y claude-community, abierta a envíos de terceros tras revisión, agregada con el comando /plugin marketplace add anthropics/claude-plugins-community.
El mismo mecanismo que hace funcionar una skill aislada, descrito en crear tu propia skill o tu propio comando, se aplica tal cual a una skill alojada en skills/ dentro de un plugin: el formato SKILL.md no cambia, solo cambia el contenedor.
Lo que un plugin agrupa en un solo directorio
Solo dos claves en el settings.json de un plugin
Un desarrollador crea un directorio llamado mon-plugin, escribe el archivo .claude-plugin/plugin.json con los campos name, description y version, coloca una carpeta skills/ en la raíz del plugin con una skill dentro, y luego lanza el comando claude --plugin-dir ./mon-plugin, que carga el plugin para la sesión y muestra esta skill en la lista de skills disponibles.
Escribe en una frase lo que esta situación establece, y en una frase lo que no establece.
Lo que esto establece: La carga local, con esta estructura de directorio precisa, hizo visible la skill en la lista presentada por esta sesión.
Lo que esto no establece: Que la misma estructura, una vez publicada en uno de los dos marketplaces públicos, se comportaría de manera idéntica al instalarla otra persona.
Los tres calibrados falsos más frecuentes
- Demasiado amplio Esta sesión prueba que cualquier estructura de directorio funcionaría de la misma manera con claude --plugin-dir.
- Demasiado estrecho Esta sesión no prueba nada en absoluto, ya que se cargó un solo plugin con una sola skill en un solo equipo.
- Fuera de tema Esta sesión confirma que el comando claude --plugin-dir también acepta un archivo .zip con el mismo contenido en lugar de un directorio.
- Un plugin es un directorio único que agrupa skills, hooks, servidores MCP, agentes y comandos, instalable y compartible de una sola vez.
- El manifiesto plugin.json vive solo en .claude-plugin/, nunca los directorios skills, hooks, agents o commands, que permanecen en la raíz del plugin.
- El nombre declarado en plugin.json sirve de namespace a los comandos del plugin, por ejemplo /mon-plugin:bonjour para una skill llamada bonjour.
- El comando claude --plugin-dir prueba un plugin en local antes de publicarlo, y /reload-plugins recarga las modificaciones sin reiniciar la sesión.
- Dos marketplaces públicos mantenidos por Anthropic distribuyen los plugins, uno curado desde el primer lanzamiento, el otro abierto a envíos de terceros revisados.
Elige dos o tres skills o hooks vinculados a la misma necesidad que ya tengas en tu equipo, crea un directorio con una subcarpeta .claude-plugin/plugin.json mínima, mueve esos elementos a las subcarpetas skills/ y hooks/ en la raíz, y luego carga el conjunto con claude --plugin-dir seguido de la ruta de ese directorio.
Estos puntos dependen de una interfaz o de una regla que puede haber cambiado desde la redacción. Verifícalos en tu propia pantalla antes de fiarte de ellos.
- La lista completa de campos opcionales del manifiesto plugin.json y de los directorios soportados en la raíz de un plugin evoluciona con cada versión de Claude Code, a reverificar en https://code.claude.com/docs/en/plugins antes de publicar un plugin real.
Cada afirmación datable de esta lección remite aquí al texto público que la respalda. Una fuente que no se abre no prueba nada.
- Anthropic, Claude Code, referencia de los plugins consultée le 2026-09-02