Inicio / Extender: habilidades, MCP, subagentes, hooks, plugins
Plugins: agrupar skills, hooks, MCP y agentes
Un plugin agrupa skills, hooks, servidores MCP, comandos y subagentes en un solo directorio versionado, instalable y compartible de una sola vez. Su manifiesto, plugin.json, es el único archivo de .claude-plugin/; el error más frecuente es poner ahí skills/, commands/, agents/ o hooks/ en lugar de la raíz del plugin.
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, 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.
Un mod es un plugin que se ejecuta con tus permisos
Desde octubre de 2026, un plugin puede contener un mod: código JavaScript o TypeScript que se ejecuta dentro de Claude Code y puede observar, reescribir o asumir una llamada de herramienta, una instrucción o un trozo de interfaz. Un mod actúa con tus permisos, puede leer tus archivos y tus variables de entorno, lanzar procesos y aprobar una llamada de herramienta antes de que se te pregunte, y no está en el sandbox, el aislamiento de los comandos Bash. Audítalo como una skill de terceros, aún más estrictamente. Antes de instalar, lista lo que pide sin ejecutarlo:
claude plugin validate ./un-mod
Las líneas hooks: y calls: de la salida dan los eventos gestionados y lo que el mod pide hacer a Claude Code. El mod integrado «You should know» sigue desactivado mientras tú no lo actives.
Para instalar, claude plugin install --marketplace <source> añade la marketplace si hace falta y luego instala, bajo los mismos controles de política, y claude plugin configure <plugin> muestra las opciones del plugin y las que no están rellenadas. La instalación rechaza las fuentes npm que son repositorios git o carpetas.
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.
- Un mod es un plugin cuyo código se ejecuta dentro de Claude Code con tus permisos y fuera del sandbox: claude plugin validate lista lo que pide antes de instalar.
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
- Claude Code, descripción de los mods: permisos, validación, mod integrado consultée le 2026-10-24
- Registro de cambios de Claude Code: instalación y configuración de plugins consultée le 2026-10-24