Complementos de Claude Code
Esta carpeta contiene ejemplos completos de complementos que incluyen múltiples características de Claude Code en paquetes cohesivos e instalables.
Introducción
Los Plugins de Claude Code son colecciones de personalizaciones (comandos de barra, subagentes, servidores MCP y hooks) que se instalan con un solo comando. Representan el mecanismo de extensión de más alto nivel, combinando múltiples funciones en paquetes cohesivos y compartidos.
Arquitectura de complementos
graph TB
A["Plugin"]
B["Comandos de barra"]
C["Subagents"]
D["Servidores MCP"]
E["Hooks"]
F["Configuration"]
A -->|bundles| B
A -->|bundles| C
A -->|bundles| D
A -->|bundles| E
A -->|bundles| F
Proceso de carga del complemento
sequenceDiagram
participant User
participant Claude as Claude Code
participant Plugin as Plugin Marketplace
participant Install as Installation
participant SlashCmds as Slash Commands
participant Subagents
participant MCPServers as MCP Servers
participant Hooks
participant Tools as Configured Tools
User->>Claude: claude --plugin-dir ./07-plugins/pr-review
Claude->>Plugin: Download plugin manifest
Plugin-->>Claude: Return plugin definition
Claude->>Install: Extract components
Install->>SlashCmds: Configure
Install->>Subagents: Configure
Install->>MCPServers: Configure
Install->>Hooks: Configure
SlashCmds-->>Tools: Ready to use
Subagents-->>Tools: Ready to use
MCPServers-->>Tools: Ready to use
Hooks-->>Tools: Ready to use
Tools-->>Claude: Plugin installed ✅
No se requiere mercado (v2.1.157+): Complementos colocados en
.claude/skillsdirectorios ahora auto-cargar sin un mercado. Andamios uno nuevo conclaude plugin init <name>, que lo crea en~/.claude/skills/<name>/(usuario global) y lo carga automáticamente en la siguiente sesión como<name>@skills-dir. La configuración administrada puede bloquear los plugins de directorio de skills:strictPluginOnlyCustomizationlos detiene incluso cuando un permiso tiene una{ "source": "skills-dir" }entrada, y una lista de permisos de mercado sin esa entrada los detiene también. Una carpeta bloqueada no muestra ningún plugin y ningún error en/pluginoclaude plugin list.
Tipos de complementos y distribución
| Tipo | Ámbito de aplicación | Compartido | Autoridad | Ejemplos |
|---|---|---|---|---|
| Oficial | Mundial | Todos los usuarios | Antrópico | Revisión de relaciones públicas, orientación sobre seguridad |
| Comunidad | Público | Todos los usuarios | Comunidad | DevOps, Ciencia de Datos |
| Organización | Interno | Miembros del equipo | Empresa | Normas internas, instrumentos |
| Datos personales | Individual | Usuario único | Desarrollador | Flujos de trabajo personalizados |
Estructura de definición del complemento
El manifiesto de complementos utiliza el formato JSON en .claude-plugin/plugin.json:
{
"name": "my-first-plugin",
"description": "A greeting plugin",
"version": "1.0.0",
"author": {
"name": "Your Name"
},
"homepage": "https://example.com",
"repository": "https://github.com/user/repo",
"license": "MIT"
}
Más allá de esos campos de identidad, el manifiesto puede apuntar a Claude Code a componentes que viven en otro lugar que las carpetas predeterminadas, y llevar metadatos de descubrimiento y dependencia:
| Campo | Tipo | Descripción |
|---|---|---|
workflows |
string array | Personalizado flujo de trabajo archivos de script o directorios (reemplaza el valor predeterminado workflows/) |
outputStyles |
string array | Archivos o directorios de estilo de salida personalizados (reemplaza el valor predeterminado output-styles/) |
lspServers |
string array objeto | Servidores LSP para inteligencia de código: vaya a la definición, encuentre referencias, diagnósticos. "./.lsp.json". Véase Configuración del servidor LSP |
channels |
array | Declaraciones de canales para la inyección de mensajes (Telegram, Slack, estilo Discord) |
dependencies |
array | Otros plugins que este complemento requiere, opcionalmente con restricciones de la versión de Semver |
keywords |
array | Etiquetas de descubrimiento utilizadas al navegar y buscar mercados |
metadata |
objeto | Objeto de forma gratuita para sus propios datos, como campos de derecho o catálogo |
experimental.themes |
string array | Color de los archivos o directorios del tema (reemplaza el valor predeterminado themes/) |
experimental.monitors |
string array | Monitor de fondo configuraciones que se inician automáticamente cuando el complemento está activo |
Ejemplo de estructura de complemento
my-plugin/
├── .claude-plugin/
│ └── plugin.json # Manifest (name, description, version, author)
├── commands/ # Skills as Markdown files
│ ├── task-1.md
│ ├── task-2.md
│ └── workflows/
├── agents/ # Custom agent definitions
│ ├── specialist-1.md
│ ├── specialist-2.md
│ └── configs/
├── skills/ # Agent Skills with SKILL.md files
│ ├── skill-1/
│ │ └── SKILL.md
│ └── skill-2/
│ └── SKILL.md
├── hooks/ # Event handlers in hooks.json
│ └── hooks.json
├── .mcp.json # MCP server configurations
├── .lsp.json # LSP server configurations for code intelligence
├── bin/ # Executables added to Bash tool's PATH while plugin is enabled (unsandboxed PowerShell commands find them too, v2.1.302)
├── settings.json # Default settings applied when plugin is enabled (only the `agent` and `subagentStatusLine` keys take effect)
├── themes/ # Optional: ship custom Claude Code themes (v2.1.118+)
├── templates/
│ └── issue-template.md
├── scripts/
│ ├── helper-1.sh
│ └── helper-2.py
├── docs/
│ ├── README.md
│ └── USAGE.md
└── tests/
└── plugin.test.js
Nota:
commands/es legado. Orientación oficial "Usarskills/para nuevos plugins." Existentescommands/los directorios siguen trabajando — los tres plugins de ejemplo en este módulo envían uno — pero un nuevo plugin debe poner sus capacidades enskills/comoSKILL.mddirectorios en lugar de archivos de comandos planos Markdown.
Configuración del servidor LSP
Los plugins pueden incluir el soporte de Language Server Protocol (LSP) para la inteligencia de código en tiempo real. Los servidores LSP proporcionan diagnósticos, navegación de código e información de símbolos mientras trabaja.
Localización de la configuración:
- .lsp.json archivo en el directorio raíz del complemento - La lspServers tecla en plugin.json — el nombre del campo de manifiesto oficial. Acepta una cadena, un array o un objeto: una cadena o un array puntos en los archivos de configuración LSP o directorios (por ejemplo "./.lsp.json"), y un objeto declara los servidores en línea.
Referencia sobre el terreno
| Campo | Requerido | Descripción |
|---|---|---|
command |
Sí. | Servidor de LSP binario (debe estar en PATH) |
extensionToLanguage |
Sí. | Mapas de extensiones de archivo a IDs de idioma |
args |
No | Argumentos de línea de comandos para el servidor |
transport |
No | Método de comunicación: stdio (por defecto) o socket |
env |
No | Variables de entorno para el proceso del servidor |
initializationOptions |
No | Opciones enviadas durante la inicialización de LSP |
settings |
No | Configuración del espacio de trabajo pasado al servidor |
workspaceFolder |
No | Anular la ruta de carpeta del espacio de trabajo |
startupTimeout |
No | Tiempo máximo (ms) para esperar el inicio del servidor |
shutdownTimeout |
No | Tiempo máximo (ms) para el apagado elegante |
restartOnCrash |
No | Reiniciar automáticamente si el servidor se bloquea |
maxRestarts |
No | Intensidades máximas de reinicio antes de renunciar |
Configuración de ejemplos
Vamos (goplas):
{
"go": {
"command": "gopls",
"args": ["serve"],
"extensionToLanguage": {
".go": "go"
}
}
}
Python (pyright):
{
"python": {
"command": "pyright-langserver",
"args": ["--stdio"],
"extensionToLanguage": {
".py": "python",
".pyi": "python"
}
}
}
TypeScript:
{
"typescript": {
"command": "typescript-language-server",
"args": ["--stdio"],
"extensionToLanguage": {
".ts": "typescript",
".tsx": "typescriptreact",
".js": "javascript",
".jsx": "javascriptreact"
}
}
}
Complementos LSP disponibles
El mercado oficial incluye complementos LSP preconfigurados:
| Complemento | Idioma | Servidor binario | Instalar comando |
|---|---|---|---|
pyright-lsp |
Python | pyright-langserver |
pip install pyright |
typescript-lsp |
TypeScript/JavaScript | typescript-language-server |
npm install -g typescript-language-server typescript |
rust-analyzer-lsp |
Rust | rust-analyzer |
Instalar vía rustup component add rust-analyzer |
Capacidades de LSP
Una vez configurados, los servidores LSP proporcionan:
- Diagnóstico instantáneo — los errores y advertencias aparecen inmediatamente después de las ediciones
- Navegación de códigos — ir a la definición, buscar referencias,
- Información sobre el hover — las firmas de tipo y la documentación en el aeroplano
- Lista de símbolos — busque símbolos en el archivo o espacio de trabajo actual
bin/ directorio en PATH
Cuando un complemento está activado, su bin/ se añade el directorio a la sesión PATH, después de la tuya PATH entradas, por lo que un plugin no puede sombra git, ls, u otro comando del sistema. Cualquier ejecutable enviado allí puede ser invocado directamente desde la herramienta Bash por nombre — no se requiere ruta calificada (un comando de herramienta PowerShell fuera de la caja de arena también los encuentra, v2.1.302; uno arenero no lo hace).
# In a plugin layout:
my-plugin/
├── .claude-plugin/
│ └── plugin.json
└── bin/
└── my-tool # executable file (chmod +x)
# Inside a Claude Code session with the plugin enabled:
$ my-tool --help
Utilice esto para los ayudantes de CLI que engancha, skills, o comandos dentro del mismo plugin se shell hacia. Marcar los archivos ejecutables en la repo plugin (chmod +x) — git conserva el bit.
Opciones de complemento (v2.1.83+)
Los complementos pueden declarar opciones configurables por el usuario en el manifiesto a través de userConfig. Valores marcados sensitive: true se almacenan en el llavero del sistema en lugar de los archivos de configuración de texto plano:
{
"name": "my-plugin",
"version": "1.0.0",
"userConfig": {
"apiKey": {
"type": "string",
"title": "API key",
"description": "API key for the service",
"sensitive": true
},
"region": {
"type": "string",
"title": "Region",
"description": "Deployment region",
"default": "us-east-1"
}
}
}
Datos de complementos persistentes (${CLAUDE_PLUGIN_DATA}) (v2.1.78+)
Los complementos tienen acceso a un directorio de estado persistente a través del ${CLAUDE_PLUGIN_DATA} variable de entorno. Este directorio es único por plugin y sobrevive a través de las sesiones, por lo que es adecuado para cachés, bases de datos y otro estado persistente:
{
"hooks": {
"PostToolUse": [
{
"matcher": "*",
"hooks": [
{
"type": "command",
"command": "node \"${CLAUDE_PLUGIN_ROOT}\"/scripts/track-usage.js \"${CLAUDE_PLUGIN_DATA}\"/usage.json"
}
]
}
]
}
}
El directorio (~/.claude/plugins/data/<id>/) se crea la primera vez que se hace referencia y se mantiene a través de actualizaciones de plugin. Se elimina cuando se desinstala el plugin desde el último lugar que está instalado (a menos que pase --keep-data).
Monitores de fondo (v2.1.105)
Los complementos pueden registrar monitores de fondo que comienzan cuando una sesión comienza o la primera vez que se ejecuta una de las skills del complemento. experimental.monitors en plugin.json (o en monitors/monitors.json):
{
"name": "my-plugin",
"version": "1.0.0",
"experimental": {
"monitors": [
{
"name": "app-log",
"command": "tail -f /var/log/app.log",
"description": "Application log errors",
"when": "always"
}
]
}
}
name, command, y description son necesarios. when acepta: - "always" (predeterminado) — empezar al inicio de la sesión y en la recarga del plugin - "on-skill-invoke:<skill>" — empezar la primera vez que la habilidad se ejecuta
Las teclas desconocidas son rechazadas y el plugin no se carga. Un nivel superior monitors la tecla todavía se carga, pero claude plugin validate advierte.
Los monitores utilizan la misma herramienta de Monitor bajo el capó, que transmite líneas stdout como eventos a los que Claude puede reaccionar.
Los monitores de complementos no se inician en no interactivos -p En Amazon Bedrock, Claude Platform en AWS, Google Cloud's Agent Platform, o Microsoft Foundry, o con DISABLE_TELEMETRY o CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC set, necesitan v2.1.310+ (las versiones anteriores no las iniciaron allí). allowManagedHooksOnly, sólo monitores de plugins de su configuración administrada de inicio de la fuerza-activable (v2.1.310+).
Complemento en línea a través de configuración (source: 'settings') (v2.1.80+)
Los complementos se pueden definir en línea en los archivos de configuración como entradas de mercado utilizando el source: 'settings' campo. Esto permite incrustar una definición de plugin directamente sin requerir un repositorio o mercado separado. Declararlo bajo extraKnownMarketplaces.<name>.source; el name debe coincidir con la clave del mercado, y sus plugins deben hacer referencia a fuentes externas como GitHub o npm (las rutas relativas son rechazadas):
{
"extraKnownMarketplaces": {
"inline-tools": {
"source": {
"source": "settings",
"name": "inline-tools",
"plugins": [
{
"name": "quick-lint",
"source": {
"source": "github",
"repo": "my-org/quick-lint"
}
}
]
}
}
}
}
Mods (v2.1.287+)
Un mod es un plugin que cambia la apariencia y el comportamiento de Claude Code. Su código es un módulo de hooks JavaScript o TypeScript: manejadores de eventos a los que Claude Code llama cuando algo sucede, como una llamada a herramienta, un prompt enviado o parte de la interfaz que se está dibujando. Cada controlador puede observar el evento, reescribirlo o responderlo a sí mismo. Un mod instala como cualquier otro plugin (/plugin install <plugin>@<marketplace>), puede enviar en el mismo plugin como skills y servidores MCP, y se ejecuta con sus permisos, por lo que instalar mods sólo de los autores y mercados de confianza. Mods trabajan en el CLI Claude Code (v2.1.287+), en la pestaña Código de la aplicación de escritorio Claude, y en la extensión Código VS.
| Lo que un mod puede hacer | Ejemplo |
|---|---|
| Dibujar paneles y una banda encima del prompt | Un panel al lado de la transcripción o una banda encima del prompt, con pestañas, botones y campos de texto |
| Añadir comandos | A /command que ejecuta su función a la vez, sin Claude turno, incluso mientras Claude está trabajando |
| Guarda o cambia las llamadas de la herramienta | Sostenga una llamada de herramienta mientras hace una pregunta al usuario, rehúsela o conteste sin ejecutar la herramienta |
| Reacción a los acontecimientos | Siga las llamadas de la herramienta, preguntas y vueltas; las variables compartidas de hooks de un mod, por lo que uno puede contar llamadas de la herramienta mientras que otro muestra el conteo junto al spinner |
| Llame a la API de mods | Llamar a un modelo, leer y escribir archivos, iniciar procesos o hacer peticiones de red (un hook puede hacer esto sólo a través de la API de mods) |
Para crear un mod, describa lo que desea en una sesión de Claude Code: Claude trabaja desde el sistema integrado plugin-authoring habilidad (o ejecutar /plugin-authoring usted mismo), escribe el mod, y, una vez que se habilita la recarga en caliente para la sesión, lo recarga al final de cada turno que lo cambia; claude plugin validate los administradores deciden si los mods se ejecutan, y cuáles, a través de configuraciones administradas — por ejemplo, allowManagedModsOnly permite que sólo los mods de su organización y los mods incorporados en Claude Code ejecuten sus hooks. Con la configuración administrada, o un equipo o Enterprise /login como credencial de la sesión, una guardia incorporada impide que el mod de un usuario apruebe una llamada que un deny o ask regla o cualquier PreToolUse hook se detendría; sin ninguno de los dos, un mod puede aprobar tal llamada.
Nota: v2.1.299–2.1.300 añadir
Textaccesoriossize,weight,mono,tabular,dir(RTL) —boldse deprecia a favor deweight—Boxpasos de espaciadoxs–xl, promptvirtualText,$.ui.view({ agentId }), y elprompt.changehook; v2.1.301 añadeInputrowspara un campo de varias líneas (Entrar envía, Shift+Enter añade una línea). v2.1.304 añadee.isReadOnlyeltool.check(más unisReadOnly: trueemparejador),settings.readhooks que ven cada capa de configuración (e.layers) en el propio Claude Code lee — por lo que un mod administrado puede tapar la configuración de una organización — y unkeyargumentación en favor$.settings.read(); v2.1.305 mantiene un panel acoplado dentro del 45% de la anchura de la terminal y dibujaImageen iTerm2 3.5+ (renderizado a pantalla completa); v2.1.310 sorteosImagedentro de tmux 3.3+ conallow-passthroughyfocus-eventsEn adelante.Nota: Ver el oficial Descripción general de los cambios, Crear un mod, y Referencia de los cambios.
Configuración del complemento
Los complementos pueden enviar un settings.json archivo para proporcionar la configuración predeterminada. Dos claves tienen efecto, agent y subagentStatusLine; cada otra llave se cae. agent toma el nombre de uno de los agentes del plugin y lo ejecuta como el hilo principal:
{
"agent": "specialist-1"
}
Cuando un complemento incluye settings.json, sus valores predeterminados se aplican en la instalación. Los usuarios pueden anular estos ajustes en su propio proyecto o configuración de usuario.
Enfoque autónomo vs complemento
| Enfoque | Nombres de órdenes | Configuración | Lo mejor para |
|---|---|---|---|
| Independiente | /hello |
Configuración manual en CLAUDE.md | Personal, específico para el proyecto |
| Plugins | /plugin-name:hello |
Automatizado mediante plugin.json | Compartir, distribuir, utilizar en equipo |
Uso Comandos de barra independiente para flujos de trabajo personales rápidos. complementos cuando desees combinar múltiples funciones, compartir con un equipo o publicar para su distribución.
Invocación espaciada (v2.1.136+): Los comandos Plugin slash también funcionan con un espacio —
/myplugin reviewresuelve a la canónica/myplugin:review. Cualquiera de las dos formas está bien; la forma del colon es canónica y recomendada en las escrituras.
skills/descubrimiento (v2.1.136+): Askillsentrada enplugin.jsonya no oculta el complemento predeterminadoskills/directorio. Las skills declaradas en ambos lugares se fusionan, por lo que puede listar algunos puntos destacados enplugin.jsonsin perder el resto.Nivel de raíz
SKILL.mdcomplementos (v2.1.142+): Un complemento con un nivel superiorSKILL.mdy noskills/subdirectorio es en sí aparece como una sola habilidad — el plugin es la habilidad. Este es un patrón adicional, no un reemplazo para elskills/o el directorioplugin.jsonskillsentrada; utilícelo para pequeños plugins de una sola habilidad donde el diseño del directorio no añade valor.
Ejemplos prácticos
Ejemplo 1: Complemento de revisión PR
Archivo: .claude-plugin/plugin.json
{
"name": "pr-review",
"version": "1.0.0",
"description": "Complete PR review workflow with security, testing, and docs",
"author": {
"name": "Anthropic"
},
"repository": "https://github.com/your-org/pr-review",
"license": "MIT"
}
Archivo: commands/review-pr.md
---
name: Review PR
description: Start comprehensive PR review with security and testing checks
---
# PR Review
This command initiates a complete pull request review including:
1. Security analysis
2. Test coverage verification
3. Documentation updates
4. Code quality checks
5. Performance impact assessment
Archivo: agents/security-reviewer.md
---
name: security-reviewer
description: Security-focused code review
tools: Read, Grep, Bash
---
# Security Reviewer
Specializes in finding security vulnerabilities:
- Authentication/authorization issues
- Data exposure
- Injection attacks
- Secure configuration
Instalación:
claude --plugin-dir ./07-plugins/pr-review
# Result:
# ✅ 3 slash commands installed
# ✅ 3 subagents configured
# ✅ 2 MCP servers connected
# ✅ 4 hooks registered
# ✅ Ready to use!
Ejemplo 2: Complemento DevOps
Componentes:
devops-automation/
├── commands/
│ ├── deploy.md
│ ├── rollback.md
│ ├── status.md
│ └── incident.md
├── agents/
│ ├── deployment-specialist.md
│ ├── incident-commander.md
│ └── alert-analyzer.md
├── mcp/
│ └── kubernetes-config.json
├── hooks/
│ ├── pre-deploy.js
│ └── post-deploy.js
└── scripts/
├── deploy.sh
├── rollback.sh
└── health-check.sh
Ejemplo 3: Complemento de documentación
Componentes agrupados:
documentation/
├── commands/
│ ├── generate-api-docs.md
│ ├── generate-readme.md
│ ├── sync-docs.md
│ └── validate-docs.md
├── agents/
│ ├── api-documenter.md
│ ├── code-commentator.md
│ └── example-generator.md
├── mcp/
│ └── github-docs-config.json
└── templates/
├── api-endpoint.md
├── function-docs.md
└── adr-template.md
Mercado de complementos
El directorio oficial de plugin administrado por Anthrópic es anthropics/claude-plugins-official, auto-registrado en el primer lanzamiento interactivo. Los administradores de empresas también pueden crear mercados de plugins privados para la distribución interna.
También hay un mercado comunitario, anthropics/claude-plugins-community, alojando plugins de terceros que han pasado la validación automatizada de Anthropic y la detección de seguridad — cada uno fijado a un compromiso específico SHA en el catálogo. A diferencia del mercado oficial se añade manualmente:
/plugin marketplace add anthropics/claude-plugins-community
# Then install from it using the claude-community marketplace name
/plugin install <plugin-name>@claude-community
graph TB
A["Mercado de complementos"]
B["Oficial<br/>antrópica/claude-plugins-oficial"]
C["Comunidad<br/>Mercado"]
D["Empresa<br/>Registro privado"]
A --> B
A --> C
A --> D
B -->|Categories| B1["Development"]
B -->|Categories| B2["DevOps"]
B -->|Categories| B3["Documentation"]
C -->|Search| C1["Automatización DevOps"]
C -->|Search| C2["Mobile Dev"]
C -->|Search| C3["Ciencia de los datos"]
D -->|Internal| D1["Normas de la empresa"]
D -->|Internal| D2["Sistemas heredados"]
D -->|Internal| D3["Compliance"]
style A fill:#e1f5fe,stroke:#333,color:#333
style B fill:#e8f5e9,stroke:#333,color:#333
style C fill:#f3e5f5,stroke:#333,color:#333
style D fill:#fff3e0,stroke:#333,color:#333
Configuración del mercado
Los usuarios empresariales y avanzados pueden controlar el comportamiento del mercado a través de ajustes:
| Ajuste | Descripción |
|---|---|
extraKnownMarketplaces |
Añadir fuentes de mercado adicionales más allá de los valores predeterminados |
strictKnownMarketplaces |
Control de los mercados que los usuarios pueden añadir (solo gestionados) |
blockedMarketplaces |
blocklist de mercados gestionados por los administradores (apoyos hostPattern / pathPattern campos regex desde v2.1.119) |
enabledPlugins (configurado a false) |
Bloquear un complemento específico: "enabledPlugins": { "<plugin>@<marketplace>": false } en los ajustes gestionados lo bloquea de la instalación en cada alcance y lo esconde del mercado |
Alias amistosos (v2.1.232):
additionalMarketplacesse acepta como un alias paraextraKnownMarketplaces, yallowedMarketplacesparastrictKnownMarketplaces. Las listas de referencia de los ajustes oficiales en Alias clave del mercado. Versiones anteriores ignoran los alias, por lo que las teclas canónicas son seguras de seguir usando.Comodines del propietario (v2.1.223+): a
"owner/*"la entrada permite o bloquea cada repo del mercado bajo un propietario de GitHub. Aceptada sólo enstrictKnownMarketplacesyblockedMarketplaces. En todas partes ungithubfuente aparece, incluyendoextraKnownMarketplacesy/plugin marketplace add— losrepovalor debe nombrar un único repositorio.Ejecución (v2.1.117+):
blockedMarketplacesystrictKnownMarketplacesse aplican en cada evento del ciclo de vida del plugin — instalar, actualizar, actualizar y autoactualizar — no sólo al principio añadir.strictKnownMarketplacesse administra sólo.
Ejemplo blockedMarketplaces con regex host/path (v2.1.119):
{
"blockedMarketplaces": [
{ "source": "hostPattern", "hostPattern": "^evil\\.example\\.com$" },
{ "source": "pathPattern", "pathPattern": "^/opt/approved/" }
]
}
Mercado headersHelper (v2.1.238)
A url mercado — o una entrada de catálogo individual — puede nombrar un headersHelper comando que acuña los encabezados HTTP utilizados para buscar el catálogo y cualquier archivo de origen mismo. Así es como un mercado privado detrás de un servicio de emisión de tokens autentica sin un secreto estático en la configuración.
A la entrada del catálogo helper se ejecuta sólo en instalación o actualización, y sólo después de que su comando se ha mostrado a usted: claude plugin install y claude plugin update pronto [y/N] antes de ejecutarlo. Paso -y aceptar sin el aviso en la automatización.
Características adicionales del mercado
- Barra de búsqueda del mercado (v2.1.172): Al navegar por los complementos de un mercado en
/plugin, una barra de búsqueda le permite filtrar los plugins del mercado por nombre o palabra clave — útil para los grandes mercados donde el desplazamiento de la lista completa es lento. - Tiempo de espera predeterminado de git: Aumento de 30s a 120s para grandes repositorios de plugin
- Registros npm personalizados: Los complementos pueden especificar URLs de registro npm personalizadas para la resolución de dependencias
- Fijación de la versión: Bloquear complementos a versiones específicas para entornos reproducibles
- Coste de contexto proyectado en el panel de navegación (v2.1.143): El
/pluginmarketplace browser muestra el costo de cada plugin proyectado por vuelta de contexto-token — la suma de skills siempre cargadas, hooks y descriptores de servidor MCP. Úselo para tamaño adopción de plugin antes de instalar. La misma proyección está disponible post-instalación a través declaude plugin details <name>. - Sólo los submódulos de complementos son clonados (v2.1.295): cuando Claude Code clona un repositorio de mercado, sólo obtiene los submódulos git que contienen archivos de plugin (un complemento raíz con
"source": "./"consigue todo o ninguno, y--sparse/sparsePathslas versiones anteriores se llevaron cada submódulo y pudieron correr más allá del tiempo de espera del clon.
Ejemplo de fila de navegación con la columna de costes:
NAME VERSION AUTHOR CTX/TURN DESCRIPTION
code-reviewer 1.2.0 anthropic +1,420 Multi-agent PR review
devops-toolkit 0.4.1 acme +3,180 SRE playbooks, on-call helpers
docs-helper 0.9.0 community +610 Doc-style guide enforcement
Esquema de definición del mercado
Los mercados de complementos se definen en .claude-plugin/marketplace.json:
{
"name": "my-team-plugins",
"owner": { "name": "my-org" },
"plugins": [
{
"name": "code-standards",
"source": "./plugins/code-standards",
"description": "Enforce team coding standards",
"version": "1.2.0",
"author": { "name": "platform-team" }
},
{
"name": "deploy-helper",
"source": {
"source": "github",
"repo": "my-org/deploy-helper",
"ref": "v2.0.0"
},
"description": "Deployment automation workflows"
}
]
}
| Campo | Requerido | Descripción |
|---|---|---|
name |
Sí. | Nombre del mercado en la caja de kebab |
owner |
Sí. | Organización o usuario que mantiene el mercado: un objeto con un requisito name (email, url opcional) |
plugins |
Sí. | Array de entradas de complementos |
plugins[].name |
Sí. | Nombre del complemento (case de kebab) |
plugins[].source |
Sí. | Fuente del complemento (cadena de ruta u objeto fuente) |
plugins[].description |
No | Breve descripción del complemento |
plugins[].version |
No | Cadena de versión semántica |
plugins[].author |
No | Autor del complemento: un objeto con un requisito name (email, url opcional) |
renames |
No | Campo de mercado de nivel superior (no por entrada): mapea un complemento anterior name a su nombre actual (o null si se elimina) por lo que los usuarios migran automáticamente (v2.1.193) |
plugins[].displayName |
No | Nombre de lectura humana que se muestra en la interfaz de usuario; no se utiliza para buscar (v2.1.143) |
plugins[].defaultEnabled |
No | Si false, el plugin se instala desactivado hasta que el usuario opte por (v2.1.154) |
Tipos de fuentes de complementos
Los complementos se pueden obtener desde varias ubicaciones:
| Fuente | Sintaxis | Ejemplo |
|---|---|---|
| Ruta relativa | Ruta de cadena | "./plugins/my-plugin" |
| GitHub | { "source": "github", "repo": "owner/repo" } |
{ "source": "github", "repo": "acme/lint-plugin", "ref": "v1.0" } |
| URL de Git | { "source": "url", "url": "..." } |
{ "source": "url", "url": "https://git.internal/plugin.git" } |
| Subdirectorio Git | { "source": "git-subdir", "url": "...", "path": "..." } |
{ "source": "git-subdir", "url": "https://github.com/org/monorepo.git", "path": "packages/plugin" } |
| npm | { "source": "npm", "package": "..." } |
{ "source": "npm", "package": "@acme/claude-plugin", "version": "^2.0" } |
| Archivo (v2.1.224+) | { "source": "archive", "url": "..." } |
{ "source": "archive", "url": "https://cdn.example.com/lint-plugin-1.2.0.zip", "sha256": "…" } |
| Comando (v2.1.229+) | { "source": "command", "command": "..." } |
{ "source": "command", "command": "acme-plugin-resolver --print-dir" } |
GitHub y git sources admiten opcional ref (sucursal/etiqueta) sha (commit hash) campos para el pinning de versiones.
Nombres de fuentes y metadata.pluginRoot (v2.1.239): un mercado metadata.pluginRoot Ahora tiene efecto — un nombre de fuente de plugin desnudo en el catálogo resuelve a un directorio bajo esa raíz, en lugar de tener que ser deletreado como una ruta relativa completa en cada entrada.
Skills sincronizadas desde claude.ai (v2.1.239): plugins sincronizados desde claude.ai aparecen como name@synced. Diríjase a ellos de esa manera en claude plugin enable <name>@synced y claude plugin disable <name>@synced. Un plugin sincronizado nunca sobreescribe un plugin instalado del mismo nombre — los dos coexisten, distinguido por el @synced Sufijo.
archive fuente (v2.1.224+)
Instalar un complemento desde un zip sobre HTTPS — sin clon git, no instalar npm.
{
"source": "archive",
"url": "https://cdn.example.com/lint-plugin-1.2.0.zip",
"sha256": "3b1f0c2e9a7d4f5b8c6e1a2d3f4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b"
}
| Campo | Requerido | Notas |
|---|---|---|
url |
Sí. | Sólo HTTPS. http://Los hosts , loopback, link-local y cloud-metadata son rechazados y re-checked on cada salto de redireccionamiento, por lo que una redirigir no puede contrabandear en un host bloqueado |
sha256 |
No | 64 caracteres hexagonales. En el desajuste la instalación falla con Plugin archive integrity check failed |
Los archivos están cerrados en 256 MiB. Pin sha256 para cualquier cosa que no te hayas construido a ti mismo, sin ella, quien controle la URL controla el código que se ejecuta en tu sesión.
command fuente (v2.1.229+)
Deje que una herramienta instalada localmente decida dónde vive el plugin. Útil cuando un gestor de paquetes interno ya sabe cómo obtener y presentar sus plugins.
{
"source": "command",
"command": "acme-plugin-resolver --print-dir",
"timeout": 60,
"mode": "copy"
}
El contrato es estricto: el comando debe imprimir exactamente una línea en stdout y salir con el código 0. Esa línea es la ruta absoluta de un directorio que contiene el complemento completo.
| Campo | Requerido | Predeterminado | Notas |
|---|---|---|---|
command |
Sí. | — | La orden a ejecutar |
timeout |
No | 60 (segundos) |
Máximo 600 |
mode |
No | "copy" |
"copy" instantáneas del directorio; "link" symlinks, así que las ediciones son en vivo |
El comando se re-resuelve cada sesión y el resultado se aplica sin un reinicio. Las organizaciones pueden bloquear este tipo de fuente completamente con disableCommandPluginSources.
Los nombres de mercado reservados ahora incluyen first-party-plugins y healthcare (v2.1.205) — se mantienen para uso oficial y no pueden ser reclamados por un mercado personalizado.
Métodos de distribución
GitHub (recomendado):
# Users add your marketplace
/plugin marketplace add owner/repo-name
Otros servicios git (Requiere URL completa):
/plugin marketplace add https://gitlab.com/org/marketplace-repo.git
Apenas. gitlab.com URLs repo — incluyendo subgrupos anidados — clonan de la misma manera github.com URLs do (v2.1.232). El régimen es obligatorio: desde el v2.1.196 hasta el final gitlab.example.com/team/plugins se rechaza como inválido owner/repo taquicardia, por lo que utilice el https://gitlab.com/company/plugins.git form. v2.1.232 también añadió GitLab token-family secret redaction y dio el glab CLI la misma caja de arena y la misma protección de camino de credencial gh Ya lo he hecho.
Depósitos privados: Soportado a través de ayudantes git credencial o tokens de entorno. Los usuarios deben tener acceso de lectura al repositorio. A través de HTTPS, Claude Code desactiva las indicaciones de git y los programas askpass (incluyendo GIT_ASKPASS), por lo que la credencial ya debe ser almacenado, por ejemplo con gh auth login y gh auth setup-git.
Presentación de directorio: Enviar complementos al directorio de Anthropic para una distribución más amplia desde el portal de desarrolladores en claude.ai/directory/manage. Mercado oficial de Antropía, claude-plugins-official, no acepta envíos a través del portal de directorios.
Gestión de los mercados
# Marketplace CLI commands
claude plugin marketplace add <source> # Add marketplace (GitHub, URL, local)
claude plugin marketplace update [name] # Refresh catalog index
claude plugin marketplace remove <name> # Remove marketplace
claude plugin marketplace list # List configured marketplaces
Importante:
marketplace updatesólo actualiza el catálogo de complementos (lo que está disponible para instalar). NO actualiza los complementos instalados.plugin update <name>para actualizar complementos específicos instalados.
Modo estricto
Controlar cómo interactúan las definiciones de mercado con las locales plugin.json archivos:
| Ajuste | Comportamiento |
|---|---|
strict: true (por defecto) |
Locales plugin.json es autoritativo; la entrada en el mercado lo complementa |
strict: false |
Entrada de mercado es toda la definición de plugin |
Restricciones de organización con strictKnownMarketplaces:
| Valor | Efecto |
|---|---|
| Sin configurar | Sin restricciones — los usuarios pueden añadir cualquier mercado |
Array vacío [] |
Bloqueo: no se permiten mercados |
| Array de objetos de origen | Allowlist — solo se pueden añadir mercados coincidentes |
{
"strictKnownMarketplaces": [
{ "source": "github", "repo": "my-org/*" },
{ "source": "github", "repo": "trusted-vendor/*" }
]
}
Aviso: En modo estricto con
strictKnownMarketplaces, los usuarios sólo pueden instalar plugins desde mercados con autorización. Esto es útil para entornos empresariales que requieren distribución controlada de plugins.
Instalación de complementos y ciclo de vida
graph LR
A["Discover"] -->|Browse| B["Marketplace"]
B -->|Select| C["Página de complemento"]
C -->|View| D["Components"]
D -->|Install| E["/plugin install"]
E -->|Extract| F["Configure"]
F -->|Activate| G["Use"]
G -->|Check| H["Update"]
H -->|Available| G
G -->|Done| I["Disable"]
I -->|Later| J["Enable"]
J -->|Back| G
Comparación de características del complemento
| Característica | Comando de barra | Habilidad | Subagente | Complemento |
|---|---|---|---|---|
| Instalación | Copia manual | Copia manual | Configuración manual | Un comando |
| Tiempo de configuración | 5 minutos | 10 minutos | 15 minutos | 2 minutos |
| Agrupar | Un solo archivo | Un solo archivo | Un solo archivo | Múltiples |
| Versión | Manual | Manual | Manual | Automático |
| Intercambio de equipos | Copiar archivo | Copiar archivo | Copiar archivo | Id. de instalación |
| Actualizaciones | Manual | Manual | Manual | Auto-disponible |
| Dependencias | Ninguna | Ninguna | Ninguna | Puede incluir |
| Mercado | No | No | No | Sí. |
| Distribución | Depósito | Depósito | Depósito | Mercado |
Comandos CLI de complemento
Todas las operaciones de plugin están disponibles como comandos CLI:
claude plugin install <name>@<marketplace> # Install from a marketplace
claude plugin uninstall <name> # Remove a plugin
claude plugin update <name> # Update installed plugin to latest version
claude plugin list # List installed plugins
claude plugin enable <name> # Enable a disabled plugin
claude plugin disable <name> # Disable a plugin
claude plugin validate <path> # Validate the plugin structure at <path>
claude plugin tag [path] # Create a {name}--v{version} release git tag (v2.1.118+)
claude plugin prune # Remove orphaned auto-installed plugin dependencies (v2.1.121+)
claude plugin uninstall <name> --prune # Uninstall and cascade-clean orphaned dependencies (v2.1.121+)
claude plugin details <name> # Show inventory + projected per-turn token cost (v2.1.139+)
claude plugin configure <name>@<marketplace> # Show a plugin's options and which are unset; save values from stdin with --values-stdin (v2.1.285+)
claude plugin init <name> # Scaffold a new plugin (alias: claude plugin new)
Alias: claude plugin new para init, remove / rm para uninstall, ls para list, y autoremove para prune.
Banderas que merecen saber:
| Comando | Bandera | Finalidad |
|---|---|---|
plugin init |
--with <components...> |
Carpetas de componentes específicas para andamios: skills, agents, hooks, mcp, lsp, output-style, channel |
plugin init |
-f, --force |
Sobrescribir un existente .claude-plugin/ directorio |
plugin install |
--config <key=value> |
Establecer un userConfig opción en el momento de instalación; desde v2.1.285, <server>.<key>=<value> establece un paquete .mcpb Configuración del servidor MCP para que comience sin visitar /plugin → Configurar |
plugin install |
-y, --yes |
Aceptar comandos sin un aviso de confirmación |
plugin list |
--available |
También lista los complementos disponibles en los mercados (requiere --json) |
plugin tag |
--push |
Empujar la etiqueta al control remoto después de crearlo |
plugin tag |
--dry-run |
Imprime lo que se etiquetaría sin crear la etiqueta |
plugin validate |
--strict |
Tratar las advertencias como errores |
plugin validate |
--json |
Emite un informe de validación legible por máquina (v2.1.259+) |
claude plugin validate también controles .mcp.json y falla cuando outputStyles, themes, monitorso bien lspServers Faltan rutas o puntos fuera del directorio del complemento (v2.1.283+).
Ejemplo claude plugin tag ./my-plugin toma un ruta al plugin (no una cadena de versión). Crea un {name}--v{version} git tag derivado de plugin.json, validando que plugin.json y cualquier entrada de mercado adjunto están de acuerdo, y es la forma recomendada para cortar versiones de plugin para su distribución.
claude plugin prune es útil después de instalar o desinstalar plugins de mercado que se tiraron en sus propias dependencias — elimina cualquier plugins instalados automáticamente cuyo plugin padre ha sido eliminado. plugin uninstall --prune hace la misma cascada en un solo paso.
Ejecución de la dependencia (v2.1.143):
claude plugin disable <name>se niega si otro plugin habilitado sigue dependiendo del destino (el gráfico de dependencia se rompería).claude plugin enable <name>Dependencias de tránsito que pueden ser utilizadas por la fuerza después de un único aviso de confirmación en lugar de requerir una habilitación separada para cada uno.claude plugin prunepara limpiar dependencias cuyos dependientes fueron retirados más tarde.
claude plugin details <name> (v2.1.139+)
claude plugin details <name> Imprime el inventario completo de componentes del plugin — skills, hooks, servidores MCP, servidores LSP, monitores de fondo, comandos de barra — más un coste previsto por vuelta (y por invocación) token. Utilícelo para dimensionar un plugin antes de adoptarlo, especialmente en modelos con contexto limitado.
Ejemplo de salida (abreviada):
plugin: code-reviewer (1.2.0)
skills: 3 hooks: 2 mcp: 1 lsp: 0 monitors: 0
commands: /review, /security-review
projected ctx: +1,420 tokens per turn · +9,800 tokens per /review invocation
Los servidores LSP fueron agregados al panel de detalles en v2.1.142. Vea también el costo de contexto proyectado del panel de exploración del mercado (v2.1.143) cubierto en Mercado de complementos.
claude plugin eval (v2.1.269+)
claude plugin eval ejecuta la suite de evaluación de un plugin y los informes anotados, resultados reproducibles, por lo que puede decir si un cambio a una habilidad o agente realmente lo mejoró. Los resultados vuelven como JSON más un informe HTML. Desde v2.1.283, requiere git 2.31 o posterior cuando se instala git.
claude plugin eval # Run the plugin's eval suite
claude plugin eval --help # Full option list
--disallow-tools <tools…> y por caso disallowed_tools el campo mantenga las herramientas integradas como Agente fuera de las ejecuciones de valor (v2.1.299).
Salida legible por máquina con --json (v2.1.268+)
--json se acepta el install, uninstall, update, enable, y disable, lo que hace que el script de gestión de plugins en CI. Cada fila de claude plugin list --json también lleva errorDetails y noteDetails, así que un plugin que falla se explica sin un segundo comando.
claude plugin install my-plugin@my-marketplace --json
claude plugin list --json
Aceptando un comando exacto con --accept-command (v2.1.271+)
--accept-command <sha256> el install y update acepta exactamente el comando un anterior --json ejecución exhibida, en lugar de una manta -y.
claude plugin install my-plugin@my-marketplace --accept-command <sha256>
Instalación desde un mercado que no ha añadido (v2.1.275+)
En una sesión, /plugin install <plugin> --marketplace <source> nombre el mercado en línea y se ofrece a añadirlo antes de instalar, por lo que descubrir y agregar un mercado ya no es un paso separado. claude plugin install <plugin> --marketplace <source> hace lo mismo (v2.1.292+): añade el mercado si es necesario, bajo los mismos controles de política que claude plugin marketplace add, a continuación, instala el plugin.
/plugin install code-review --marketplace anthropics/claude-code
claude plugin install code-review --marketplace anthropics/claude-code # same, from your shell (v2.1.292+)
Métodos de instalación
Desde el Mercado
/plugin install plugin-name
# or from CLI:
claude plugin install plugin-name@marketplace-name
¿Tiene efecto de inmediato? Desde v2.1.221, generalmente sí — leer la última línea del resumen de instalación:
| Instalar resumen dice | Lo que significa |
|---|---|
Plugin is now active. |
Claude Code activó el plugin como parte de la instalación. Nada más que hacer. |
Run /reload-plugins to activate. |
El plugin está instalado pero no está en vivo todavía — ya sea activando que habría invalidado la memoria caché, o el intento de activación ha fallado. |
Antes de v2.1.221, ninguna instalación entró en vigor en la sesión actual hasta que se ejecutó /reload-plugins o reiniciado, por lo que las guías más antiguas describen ese paso como incondicional.
Habilitar / Desactivar (con un alcance autodetectado)
/plugin enable plugin-name
/plugin disable plugin-name
Los /plugin las superficies de interfaz no utilizadas plugins para que pueda limpiarlos (v2.1.187+). Activar/desactivar también funciona cuando un plugin plugin.json name difiere de su nombre de entrada en el mercado (v2.1.195+).
Listado de complementos instalados (v2.1.163)
Confirmar qué complementos están activos en la sesión actual:
/plugin list # all installed plugins
/plugin list --enabled # only enabled plugins
/plugin list --disabled # only disabled plugins
Complemento local (para el desarrollo)
# CLI flag for local testing (repeatable for multiple plugins)
claude --plugin-dir ./path/to/plugin
claude --plugin-dir ./plugin-a --plugin-dir ./plugin-b
# --plugin-dir also accepts a .zip archive path (v2.1.128+)
claude --plugin-dir ./my-plugin.zip
# Fetch a plugin .zip archive from a URL for the current session (v2.1.129+, repeatable)
claude --plugin-url https://example.com/releases/my-plugin-0.3.0.zip
Desde el repositorio Git
/plugin marketplace add username/repo # Add the GitHub repo as a marketplace
/plugin install plugin-name@marketplace-name # Then install a plugin from it
/plugin install plugin-name --marketplace username/repo # Or both in one step (v2.1.275+)
Auto-actualización
Claude Code puede actualizar automáticamente los mercados y sus plugins instalados al iniciar.
| Tipo de mercado | Auto-actualización predeterminada | Cómo cambiar |
|---|---|---|
Oficial (claude-plugins-official) |
Activado | /plugin → Mercados → Seleccionar |
| Terceros / Locales | • Discapacitados | Mismo camino de la interfaz de usuario |
Cuando se ejecuta la actualización automática, Claude Code: 1. Actualiza el catálogo del mercado 2. Actualiza los complementos instalados a las últimas versiones 3. Informa el resultado por plugin: Plugin is now active. cuando Claude Code lo haya activado como parte de la actualización, o Run /reload-plugins to activate. cuando no lo hizo
Variables de entorno
| Variable | Efecto |
|---|---|
DISABLE_AUTOUPDATER=1 |
Desactivar todas las actualizaciones automáticas (Claude Code + plugins) |
DISABLE_AUTOUPDATER=1 + FORCE_AUTOUPDATE_PLUGINS=1 |
Mantenga actualizaciones de complementos, deshabilite las actualizaciones de Claude Code |
CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1 |
(v2.1.141+) Fuerza claude plugin install clonar fuentes de complementos GitHub a través de HTTPS en lugar de SSH, incluso cuando un control remoto SSH está disponible. Usar en corredores o contenedores CI sin claves SSH. |
# Disable all auto-updates
export DISABLE_AUTOUPDATER=1
# Keep plugin auto-updates only
export DISABLE_AUTOUPDATER=1
export FORCE_AUTOUPDATE_PLUGINS=1
# CI runner without SSH keys — force HTTPS for plugin installs
export CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1
claude plugin install code-review@claude-code-plugins
Carga de complemento de sesión remota (v2.1.179): El rendimiento de carga de plugins en sesiones remotas se mejoró en v2.1.179, por lo que los plugins estarán disponibles más rápido cuando se conecte a una sesión remota.
Cuándo crear un complemento
graph TD
A["¿Debo crear un plugin?"]
A -->|Necesita varios componentes| B{"Múltiples comandos<br/>o subagentes<br/>¿O MCPs?"}
B -->|Yes| C["• Crear complemento"]
B -->|No| D["Usar característica individual"]
A -->|Flujo de trabajo del equipo| E{"Compartir con<br/>¿equipo?"}
E -->|Yes| C
E -->|No| F["Mantener como configuración local"]
A -->|Configuración compleja| G{"Necesita auto<br/>¿Configuración?"}
G -->|Yes| C
G -->|No| D
Casos de uso de complementos
| Caso de uso | Recomendación | Por qué |
|---|---|---|
| Equipo a bordo | • Usar complemento | Configuración instantánea, todas las configuraciones |
| Configuración del marco | • Usar complemento | Comandos específicos de framework |
| Normas empresariales | • Usar complemento | Distribución central, control de versiones |
| Automatización rápida de tareas | • Comando de uso | Complejidad de excesos |
| Experiencia de dominio único | • Usar habilidad | Demasiado pesado, usa la habilidad en su lugar |
| Análisis especializado | • Usar subagente | Crear manualmente o utilizar la habilidad |
| Acceso a datos en directo | • Usar MCP | Solo, no lo armes. |
Probar un complemento
Antes de publicar, prueba tu plugin localmente usando el --plugin-dir Marca CLI (repetible para múltiples complementos):
claude --plugin-dir ./my-plugin
claude --plugin-dir ./my-plugin --plugin-dir ./another-plugin
# --plugin-dir accepts .zip archives in addition to directories (v2.1.128+)
claude --plugin-dir ./my-plugin.zip
# --plugin-url fetches a plugin .zip from a URL for this session (v2.1.129+, repeatable)
claude --plugin-url https://example.com/releases/my-plugin-0.3.0.zip
Esto lanza Claude Code con su plugin cargado, lo que le permite: - Verificar que todos los comandos de barra están disponibles - Probar la función de subagentes y agentes correctamente - Confirmar servidores MCP conectar correctamente - Validar ejecución de hook - Comprobar configuraciones de servidor LSP - Comprobar si hay errores de configuración
Recarga automática
Los complementos soportan la carga en caliente durante el desarrollo. Cuando modifica archivos de plugin, Claude Code puede detectar cambios automáticamente. También puede forzar una recarga con:
/reload-plugins
Esto relee todos los manifiestos de plugin, comandos, agentes, skills, hooks y configuraciones MCP/LSP sin reiniciar la sesión.
Configuración administrada para complementos
Los administradores pueden controlar el comportamiento del plugin en toda una organización utilizando ajustes administrados:
| Ajuste | Descripción |
|---|---|
enabledPlugins |
Lista de complementos que están habilitados por defecto |
enabledPlugins (configurado a false) |
Bloquear un complemento: "enabledPlugins": { "<plugin>@<marketplace>": false } en los ajustes gestionados lo bloquea de la instalación en cada alcance y lo esconde del mercado |
extraKnownMarketplaces |
Añadir fuentes de mercado adicionales más allá de los valores predeterminados |
strictKnownMarketplaces |
Restricción de los mercados que los usuarios pueden añadir (solo gestionado; se aplica en cada evento del ciclo de vida del plugin desde v2.1.117) |
blockedMarketplaces |
Blocklist de mercados; se aplica en cada evento del ciclo de vida del plugin desde v2.1.117; soporta hostPattern / pathPattern campos regex desde v2.1.119 |
allowedChannelPlugins |
Allowlist de canal plugins que pueden empujar mensajes en sesiones (entra nombre a marketplace y a plugin) |
disableCommandPluginSources |
Bloquear el command Tipo de fuente del complemento org-wide (v2.1.229+) |
Alias amistosos (v2.1.232):
additionalMarketplacesse acepta como un alias paraextraKnownMarketplaces, yallowedMarketplacesparastrictKnownMarketplaces. Las listas de referencia de los ajustes oficiales en Alias clave del mercado. Versiones anteriores ignoran los alias, por lo que las teclas canónicas son seguras de seguir usando.Comodines del propietario (v2.1.223+): a
"owner/*"la entrada permite o bloquea cada repo del mercado bajo un propietario de GitHub. Aceptada sólo enstrictKnownMarketplacesyblockedMarketplaces. En todas partes ungithubfuente aparece, incluyendoextraKnownMarketplacesy/plugin marketplace add— losrepovalor debe nombrar un único repositorio.
Estos ajustes se pueden aplicar a nivel de organización a través de archivos de configuración gestionados y tienen prioridad sobre los ajustes a nivel de usuario.
Seguridad del complemento
Subagentes de complementos ignorar las siguientes teclas de frontmatter (el agente sigue cargando; las teclas no tienen efecto):
hooks-- Los subagentes no pueden registrar manejadores de eventosmcpServers-- Los subagentes no pueden configurar servidores MCPpermissionMode-- Los subagentes no pueden anular el modelo de permisosinitialPrompt-- Los agentes de complementos no pueden enviar automáticamente un primer prompt
Un archivo de agente no puede agregar hooks o servidores MCP por sí solo; enviarlos como hooks de nivel de plugin y servidores MCP en su lugar. name más de 256 caracteres se ignora también, y el agente lleva el nombre de su archivo.
Publicación de un complemento
Pasos para publicar:
- Crear estructura de complementos con todos los componentes
- Escribir
.claude-plugin/plugin.jsonmanifiesto - Crear
README.mdcon documentación - Prueba local con
claude --plugin-dir ./my-plugin - Etiquetar la versión con
claude plugin tag ./my-plugin(v2.1.118+) — toma el plugin ruta y crea un{name}--v{version}git tag derivado deplugin.json - Enviar al mercado de complementos
- Ser revisado y aprobado
- Publicado en el mercado
- Los usuarios pueden instalar con un comando
Ejemplo de comunicación:
# PR Review Plugin
## Description
Complete PR review workflow with security, testing, and documentation checks.
## What's Included
- 3 slash commands for different review types
- 3 specialized subagents
- GitHub and CodeQL MCP integration
- Automated security scanning hooks
## Installation
```bash
claude --plugin-dir ./07-plugins/pr-review
```
## Features
✅ Security analysis
✅ Test coverage checking
✅ Documentation verification
✅ Code quality assessment
✅ Performance impact analysis
## Usage
```bash
/review-pr
/check-security
/check-tests
```
## Requirements
- Claude Code 2.1+
- GitHub access
- CodeQL (optional)
Complemento vs Configuración manual
Configuración manual (2+ horas): - Instalar comandos de barra uno por uno - Crear subagentes individualmente - Configurar MCPs por separado - Configurar hooks manualmente - Documentar todo - Compartir con el equipo (esperamos que configuren correctamente)
Con complemento (2 minutos):
claude --plugin-dir ./07-plugins/pr-review
# ✅ Everything installed and configured
# ✅ Ready to use immediately
# ✅ Team can reproduce exact setup
Mejores prácticas
¿Hacer?
- Usar nombres de plugins claros y descriptivos
- Incluye README completo
- Versión de su plugin correctamente (semver)
- Probar todos los componentes juntos
- Requisitos de documentación claramente
- Proporcionar ejemplos de uso
- Incluir manejo de errores
- Etiqueta apropiada para el descubrimiento
- Mantener la compatibilidad hacia atrás
- Mantenga los complementos enfocados y cohesivos
- Incluir pruebas completas
- Documentar todas las dependencias
No lo hagas.
- No incluyas características no relacionadas
- No codifique credenciales
- No te saltes las pruebas.
- No olvides la documentación.
- No cree complementos redundantes
- No ignores la versión
- No sobrecomplicar dependencias de componentes
- No te olvides de manejar los errores con gracia
Instrucciones de instalación
Instalación desde Marketplace
-
Examinar los complementos disponibles (el Descubrir listas de fichas plugins de sus mercados;
/plugin listmuestra sólo complementos instalados):bash /plugin -
Ver detalles del complemento: seleccionar el complemento en la ventana Descubrir para abrir sus detalles. (
claude plugin details plugin-namefunciona sólo una vez que se carga un complemento: instalado, o pasado con--plugin-dir.) -
Instalar un complemento:
bash /plugin install plugin-name
Instalación desde la ruta local
# /plugin install needs name@marketplace; a path target reports "marketplace not found"
claude --plugin-dir ./path/to/plugin-directory
Instalación desde GitHub
/plugin marketplace add username/repo # Add the GitHub repo as a marketplace
/plugin install plugin-name@marketplace-name # Then install a plugin from it
/plugin install plugin-name --marketplace username/repo # Or both in one step (v2.1.275+)
Listado de complementos instalados
/plugin list # all installed plugins
/plugin list --enabled # only enabled plugins
/plugin list --disabled # only disabled plugins
Actualizar un complemento
Usar el formulario CLI — es el que se documenta bajo plugin update y Claude Code en sí mismo le indica cuando una actualización está disponible:
claude plugin update plugin-name
Deshabilitar/Ensamblar un complemento
# Temporarily disable
/plugin disable plugin-name
# Re-enable
/plugin enable plugin-name
Desinstalar un complemento
/plugin uninstall plugin-name
Conceptos relacionados
Las siguientes características de Claude Code trabajan junto con plugins:
- Comandos de barra - Comandos individuales incluidos en complementos
- Memoria - Contexto persistente para complementos
- Skills - Experiencia de dominio que se puede envolver en plugins
- Subagentes - Agentes especializados incluidos como componentes del complemento
- Servidores MCP - Integraciones de protocolo de contexto modelo agrupadas en complementos
- Hooks - Controladores de eventos que activan flujos de trabajo de complementos
Flujo de trabajo de ejemplo completo
Complemento de revisión PR Completo flujo de trabajo
1. User: /review-pr
2. Plugin executes:
├── pre-review.js hook validates git repo
├── GitHub MCP fetches PR data
├── security-reviewer subagent analyzes security
├── test-checker subagent verifies coverage
└── performance-analyzer subagent checks performance
3. Results synthesized and presented:
✅ Security: No critical issues
⚠️ Testing: Coverage 65% (recommend 80%+)
✅ Performance: No significant impact
📝 12 recommendations provided
Solución de problemas
El complemento no se instalará
- Comprobar la compatibilidad de la versión de Claude Code:
claude --version - Verificar
plugin.jsonsintaxis con un validador JSON - Compruebe la conexión a Internet (para complementos remotos)
- Permisos de revisión:
ls -la plugin/
Componentes no cargados
- Verificar rutas en
plugin.jsonigualar la estructura real del directorio - Compruebe los permisos de archivo:
chmod +x scripts/ - Sintaxis de archivos de componente de revisión
- Compruebe el inventario de componentes:
claude plugin details plugin-name
Falló la conexión MCP
- Verificar que las variables de entorno se establecen correctamente
- Comprobar la instalación y salud del servidor MCP
- Compruebe el estado del servidor MCP con
/mcp - Revisión de la configuración de MCP en
mcp/directorio
Comandos no disponibles después de instalar
- Asegúrese de que el complemento se haya instalado correctamente:
/plugin list - Compruebe si el complemento está activado:
/plugin list --enabled - Compruebe si está activo todavía — vea la guía de resumen de instalación en Métodos de instalación:
Plugin is now active.no necesita ninguna acción,Run /reload-plugins to activate.significa ejecutar ese comando (no se requiere un reinicio) - Comprobar si hay conflictos de nombres con comandos existentes
Complemento muestra la versión unknown
Si claude plugin list muestra Version: unknown para un plugin de origen git, actualice Claude Code a v2.1.302+ (claude update), luego correr claude plugin marketplace update <marketplace> y claude plugin update <plugin>@<marketplace>. plugin update reescribe un alcance por ejecución, así que vuelva a ejecutarlo con --scope project (o el otro bloque Scope: valor) para cualquier bloque que todavía se muestra unknown.
Problemas de ejecución del hook
- Verificar que los archivos de hook tienen permisos correctos
- Comprobar sintaxis de hook y nombres de eventos
- Revisar registros de hook para detalles de error
- Hooks de prueba manualmente, si es posible
Recursos adicionales
- Documentación oficial de complementos
- Descubra complementos
- Mercados de complementos
- Referencia de complementos
- Referencia del servidor MCP
- Guía de configuración de subagentes
- Referencia del sistema de hook
Última actualización: 26 de octubre de 2026 Versión de Claude Code: 2.1.310 Fuentes: - https://code.claude.com/docs/en/plugins - https://code.claude.com/docs/en/plugins-reference - https://code.claude.com/docs/en/changelog#2-1-172 - https://code.claude.com/docs/en/changelog - https://code.claude.com/docs/en/commands - https://code.claude.com/docs/en/plugin-marketplaces - https://code.claude.com/docs/en/discover-plugins.md - https://github.com/anthropics/claude-code/releases/tag/v2.1.117 - https://github.com/anthropics/claude-code/releases/tag/v2.1.118 - https://github.com/anthropics/claude-code/releases/tag/v2.1.131 - https://github.com/anthropics/claude-code/releases/tag/v2.1.138 - https://github.com/anthropics/claude-code/releases/tag/v2.1.139 - https://github.com/anthropics/claude-code/releases/tag/v2.1.141 - https://github.com/anthropics/claude-code/releases/tag/v2.1.142 - https://github.com/anthropics/claude-code/releases/tag/v2.1.143 - https://code.claude.com/docs/en/cli-reference - https://code.claude.com/docs/en/model-config - https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md - https://code.claude.com/docs/en/plugins/cli-reference - https://code.claude.com/docs/en/plugin-evals - https://github.com/anthropics/claude-code/releases/tag/v2.1.281 - https://github.com/anthropics/claude-code/releases/tag/v2.1.283 - https://code.claude.com/docs/en/plugins/install - https://github.com/anthropics/claude-code/releases/tag/v2.1.285 - https://code.claude.com/docs/en/plugins/mods/overview - https://code.claude.com/docs/en/plugins/mods/create - https://code.claude.com/docs/en/plugins/mods/reference - https://github.com/anthropics/claude-code/releases/tag/v2.1.287 - https://github.com/anthropics/claude-code/releases/tag/v2.1.292 - https://code.claude.com/docs/en/plugins-reference#monitors - https://code.claude.com/docs/en/changelog#2-1-299 - https://code.claude.com/docs/en/changelog#2-1-300 - https://code.claude.com/docs/en/plugins/manifest-reference - https://code.claude.com/docs/en/plugins/marketplace-reference - https://code.claude.com/docs/en/settings-reference - https://code.claude.com/docs/en/plugins/components - https://code.claude.com/docs/en/plugins/publish - https://code.claude.com/docs/en/plugins/overview - https://code.claude.com/docs/en/changelog#2-1-301 - https://code.claude.com/docs/en/changelog#2-1-302 - https://code.claude.com/docs/en/plugins/components#executables - https://code.claude.com/docs/en/plugins/security - https://code.claude.com/docs/en/changelog#2-1-310 - https://code.claude.com/docs/en/plugins/components#monitors - https://code.claude.com/docs/en/plugins/manifest-reference#monitors - https://code.claude.com/docs/en/settings-reference#what-runs-under-allowmanagedhooksonly - https://code.claude.com/docs/en/plugins/loading#skills-directory-plugins-blocked-by-managed-settings - https://code.claude.com/docs/en/plugins/org#keep-skills-directory-plugins-loading - https://code.claude.com/docs/en/changelog#2-1-304 - https://code.claude.com/docs/en/plugins/mods/events#change-or-refuse-a-settings-read - https://code.claude.com/docs/en/plugins/mods/events#check-whether-a-tool-call-is-read-only - https://code.claude.com/docs/en/plugins/mods/gallery#draw-an-image-inside-tmux - https://code.claude.com/docs/en/plugins/mods/admin#know-what-happens-by-default - https://code.claude.com/docs/en/plugins/create-marketplace#keep-unused-submodules-out-of-the-clone - https://code.claude.com/docs/en/plugins/marketplace-reference#git-submodules-in-the-marketplace-repository - https://code.claude.com/docs/en/plugins/troubleshooting#a-plugin-installed-from-a-git-repository-shows-version-unknown - https://code.claude.com/docs/en/plugins/host-marketplace - https://code.claude.com/docs/en/plugins/components#frontmatter-fields-in-plugin-agents Modelos compatibles: Claude Fable 5, Claude Opus 5, Claude Sonnet 5, Claude Sonnet 4.6, Claude Opus 4.8, Claude Haiku 4.5