Cuándo usar plugins versus configuración independiente
Claude Code admite dos formas de agregar skills, agentes y hooks personalizados:| Enfoque | Nombres de skills | Mejor para |
|---|---|---|
Independiente (directorio .claude/) | /hello | Flujos de trabajo personales, personalizaciones específicas del proyecto, experimentos rápidos |
Plugins (directorios con .claude-plugin/plugin.json) | /plugin-name:hello | Compartir con compañeros de equipo, distribuir a la comunidad, lanzamientos versionados, reutilizable en múltiples proyectos |
- Esté personalizando Claude Code para un único proyecto
- La configuración es personal y no necesita ser compartida
- Esté experimentando con skills o hooks antes de empaquetarlos
- Quiera nombres de skills cortos como
/helloo/deploy
- Quiera compartir funcionalidad con su equipo o comunidad
- Necesite los mismos skills/agentes en múltiples proyectos
- Quiera control de versiones y actualizaciones fáciles para sus extensiones
- Esté distribuyendo a través de un marketplace
- Esté de acuerdo con skills con espacios de nombres como
/my-plugin:hello(los espacios de nombres previenen conflictos entre plugins)
Inicio rápido
Este inicio rápido le guía a través de la creación de un plugin con un skill personalizado. Creará un manifiesto (el archivo de configuración que define su plugin), agregará un skill y lo probará localmente usando la bandera--plugin-dir.
Requisitos previos
- Claude Code instalado y autenticado
Si no ve el comando
/plugin, actualice Claude Code a la última versión. Consulte Troubleshooting para obtener instrucciones de actualización.Cree su primer plugin
Cree el directorio del plugin
Cada plugin vive en su propio directorio que contiene un manifiesto y sus skills, agentes o hooks. Cree uno ahora:
Cree el manifiesto del plugin
El archivo de manifiesto en Luego cree
Para campos adicionales como
.claude-plugin/plugin.json define la identidad de su plugin: su nombre, descripción y versión. Claude Code usa estos metadatos para mostrar su plugin en el administrador de plugins.Cree el directorio .claude-plugin dentro de su carpeta de plugin:my-first-plugin/.claude-plugin/plugin.json con este contenido:my-first-plugin/.claude-plugin/plugin.json
| Campo | Propósito |
|---|---|
name | Identificador único y espacio de nombres de skill. Los skills tienen este prefijo (por ejemplo, /my-first-plugin:hello). |
description | Se muestra en el administrador de plugins al examinar o instalar plugins. |
version | Rastrear lanzamientos usando versionado semántico. |
author | Opcional. Útil para atribución. |
homepage, repository y license, consulte el esquema de manifiesto completo.Agregue un skill
Los skills viven en el directorio Luego cree
skills/. Cada skill es una carpeta que contiene un archivo SKILL.md. El nombre de la carpeta se convierte en el nombre del skill, con el prefijo del espacio de nombres del plugin (hello/ en un plugin llamado my-first-plugin crea /my-first-plugin:hello).Cree un directorio de skill en su carpeta de plugin:my-first-plugin/skills/hello/SKILL.md con este contenido:my-first-plugin/skills/hello/SKILL.md
Pruebe su plugin
Ejecute Claude Code con la bandera Una vez que Claude Code se inicie, pruebe su nuevo skill:Verá que Claude responde con un saludo. Ejecute
--plugin-dir para cargar su plugin:/help para ver su skill listado bajo el espacio de nombres del plugin.¿Por qué espacios de nombres? Los skills de plugin siempre tienen espacios de nombres (como
/my-first-plugin:hello) para prevenir conflictos cuando múltiples plugins tienen skills con el mismo nombre.Para cambiar el prefijo del espacio de nombres, actualice el campo name en plugin.json.Agregue argumentos de skill
Haga su skill dinámico aceptando entrada del usuario. El marcador de posición Ejecute Claude le saludará por su nombre. Para más información sobre pasar argumentos a skills, consulte Skills.
$ARGUMENTS captura cualquier texto que el usuario proporcione después del nombre del skill.Actualice su archivo SKILL.md:my-first-plugin/skills/hello/SKILL.md
/reload-plugins para recoger los cambios, luego pruebe el skill con su nombre:- Manifiesto del plugin (
.claude-plugin/plugin.json): describe los metadatos de su plugin - Directorio de skills (
skills/): contiene sus skills personalizados - Argumentos de skill (
$ARGUMENTS): captura entrada del usuario para comportamiento dinámico
Descripción general de la estructura del plugin
Ha creado un plugin con un skill, pero los plugins pueden incluir mucho más: agentes personalizados, hooks, servidores MCP y servidores LSP.| Directorio | Ubicación | Propósito |
|---|---|---|
.claude-plugin/ | Raíz del plugin | Contiene el manifiesto plugin.json (opcional si los componentes usan ubicaciones predeterminadas) |
skills/ | Raíz del plugin | Skills como directorios <name>/SKILL.md |
commands/ | Raíz del plugin | Skills como archivos Markdown planos. Use skills/ para plugins nuevos |
agents/ | Raíz del plugin | Definiciones de agentes personalizados |
hooks/ | Raíz del plugin | Manejadores de eventos en hooks.json |
.mcp.json | Raíz del plugin | Configuraciones de servidor MCP |
.lsp.json | Raíz del plugin | Configuraciones de servidor LSP para inteligencia de código |
monitors/ | Raíz del plugin | Configuraciones de monitor de fondo en monitors.json |
bin/ | Raíz del plugin | Ejecutables agregados a la PATH de la herramienta Bash mientras el plugin está habilitado |
settings.json | Raíz del plugin | Configuraciones predeterminadas aplicadas cuando el plugin está habilitado |
Próximos pasos: ¿Listo para agregar más características? Salte a Desarrollar plugins más complejos para agregar agentes, hooks, servidores MCP y servidores LSP. Para especificaciones técnicas completas de todos los componentes del plugin, consulte Referencia de plugins.
Desarrollar plugins más complejos
Una vez que se sienta cómodo con plugins básicos, puede crear extensiones más sofisticadas.Agregue Skills a su plugin
Los plugins pueden incluir Agent Skills para extender las capacidades de Claude. Los skills son invocados por el modelo: Claude los usa automáticamente basándose en el contexto de la tarea. Agregue un directorioskills/ en la raíz de su plugin con carpetas de Skill que contengan archivos SKILL.md:
SKILL.md contiene frontmatter YAML e instrucciones. Incluya una description para que Claude sepa cuándo usar el skill:
/reload-plugins para cargar los Skills. Para orientación completa sobre la autoría de Skills incluyendo divulgación progresiva y restricciones de herramientas, consulte Agent Skills.
Agregue servidores LSP a su plugin
Los plugins LSP (Language Server Protocol) dan a Claude inteligencia de código en tiempo real. Si necesita soportar un lenguaje que no tiene un plugin LSP oficial, puede crear uno propio agregando un archivo.lsp.json a su plugin:
.lsp.json
Agregue monitores de fondo a su plugin
Los monitores de fondo permiten que su plugin observe registros, archivos o estado externo en el fondo y notifique a Claude cuando lleguen eventos. Claude Code inicia cada monitor automáticamente cuando el plugin está activo, por lo que no necesita instruir a Claude para que inicie la observación. Agregue un archivomonitors/monitors.json en la raíz del plugin con una matriz de entradas de monitor:
monitors/monitors.json
command se entrega a Claude como una notificación durante la sesión. Para el esquema completo, incluyendo el disparador when y la sustitución de variables, consulte Monitors.
Envíe configuraciones predeterminadas con su plugin
Los plugins pueden incluir un archivosettings.json en la raíz del plugin para aplicar configuración predeterminada cuando el plugin está habilitado. Actualmente, solo se admiten las claves agent y subagentStatusLine.
Establecer agent activa uno de los agentes personalizados del plugin como el hilo principal, aplicando su indicación del sistema, restricciones de herramientas y modelo. Esto permite que un plugin cambie cómo se comporta Claude Code por defecto cuando está habilitado.
settings.json
security-reviewer definido en el directorio agents/ del plugin. Las configuraciones de settings.json tienen prioridad sobre settings declarados en plugin.json. Las claves desconocidas se ignoran silenciosamente.
Organice plugins complejos
Para plugins con muchos componentes, organice su estructura de directorios por funcionalidad. Para diseños de directorios completos y patrones de organización, consulte Estructura de directorios del plugin.Pruebe sus plugins localmente
Use la bandera--plugin-dir para probar plugins durante el desarrollo. Esto carga su plugin directamente sin requerir instalación.
--plugin-dir tiene el mismo nombre que un plugin de marketplace instalado, la copia local tiene prioridad para esa sesión. Esto le permite probar cambios en un plugin que ya tiene instalado sin desinstalarlo primero. Los plugins de marketplace forzados a estar habilitados por configuraciones administradas son la única excepción y no pueden ser anulados.
A medida que haga cambios en su plugin, ejecute /reload-plugins para recoger las actualizaciones sin reiniciar. Esto recarga plugins, skills, agentes, hooks, servidores MCP de plugin y servidores LSP de plugin. Pruebe los componentes de su plugin:
- Pruebe sus skills con
/plugin-name:skill-name - Verifique que los agentes aparezcan en
/agents - Verifique que los hooks funcionen como se espera
Depure problemas del plugin
Si su plugin no funciona como se espera:- Verifique la estructura: Asegúrese de que sus directorios estén en la raíz del plugin, no dentro de
.claude-plugin/ - Pruebe componentes individualmente: Verifique cada skill, agente y hook por separado
- Use herramientas de validación y depuración: Consulte Herramientas de depuración y desarrollo para comandos CLI y técnicas de solución de problemas
Comparta sus plugins
Cuando su plugin esté listo para compartir:- Agregue documentación: Incluya un
README.mdcon instrucciones de instalación y uso - Versione su plugin: Use versionado semántico en su
plugin.json - Cree o use un marketplace: Distribuya a través de marketplaces de plugins para instalación
- Pruebe con otros: Haga que los miembros del equipo prueben el plugin antes de una distribución más amplia
Envíe su plugin al marketplace oficial
Para enviar un plugin al marketplace oficial de Anthropic, use uno de los formularios de envío en la aplicación:- Claude.ai: claude.ai/settings/plugins/submit
- Console: platform.claude.com/plugins/submit
Para especificaciones técnicas completas, técnicas de depuración y estrategias de distribución, consulte Referencia de plugins.
Convierta configuraciones existentes en plugins
Si ya tiene skills o hooks en su directorio.claude/, puede convertirlos en un plugin para compartir y distribución más fácil.
Pasos de migración
Cree la estructura del plugin
Cree un nuevo directorio de plugin:Cree el archivo de manifiesto en
my-plugin/.claude-plugin/plugin.json:my-plugin/.claude-plugin/plugin.json
Migre hooks
Si tiene hooks en su configuración, cree un directorio de hooks:Cree
my-plugin/hooks/hooks.json con su configuración de hooks. Copie el objeto hooks de su .claude/settings.json o settings.local.json, ya que el formato es el mismo. El comando recibe entrada de hook como JSON en stdin, así que use jq para extraer la ruta del archivo:my-plugin/hooks/hooks.json
Qué cambia al migrar
Independiente (.claude/) | Plugin |
|---|---|
| Solo disponible en un proyecto | Se puede compartir a través de marketplaces |
Archivos en .claude/commands/ | Archivos en plugin-name/commands/ |
Hooks en settings.json | Hooks en hooks/hooks.json |
| Debe copiar manualmente para compartir | Instalar con /plugin install |
Después de migrar, puede eliminar los archivos originales de
.claude/ para evitar duplicados. La versión del plugin tendrá prioridad cuando se cargue.Próximos pasos
Ahora que entiende el sistema de plugins de Claude Code, aquí hay caminos sugeridos para diferentes objetivos:Para usuarios de plugins
- Descubrir e instalar plugins: examine marketplaces e instale plugins
- Configure marketplaces de equipo: configure plugins a nivel de repositorio para su equipo
Para desarrolladores de plugins
- Crear y distribuir un marketplace: empaquete y comparta sus plugins
- Referencia de plugins: especificaciones técnicas completas
- Profundice en componentes específicos del plugin: