Plugins de Claude Code: qué son y cuánto cuestan
Descubre qué es un plugin de Claude Code, dónde vive y cómo instalarlo. El mecanismo no cuesta nada, pero todo lo que carga consume tokens.
Qué es un plugin de Claude Code
Un plugin de Claude Code es un directorio de componentes que Claude Code carga y administra como una sola unidad. Esos componentes son skills, agentes, hooks, servidores MCP, servidores LSP y monitores en segundo plano. Al instalar un plugin se añaden todas sus partes a la vez y bajo un mismo nombre. Al desactivarlo, se eliminan de la misma manera.
Un plugin no proporciona al agente ninguna capacidad que no tuviera antes. Cada parte de un plugin se puede escribir manualmente en un directorio .claude/. El plugin es la capa de empaquetado: permite versionar esas partes, entregárselas a quince personas y actualizarlas después sin pedir a cada persona que copie archivos. Esa es toda la idea. La mayor parte de la confusión sobre los plugins surge de esperar que sean un tipo nuevo de capacidad.
El manifiesto opcional de .claude-plugin/plugin.json asigna el nombre del plugin y ese nombre se convierte en un espacio de nombres. Una skill de un plugin llamado commit-commands se invoca como /commit-commands:commit. Por tanto, dos plugins pueden incluir cada uno una skill llamada commit sin que una oculte a la otra. Los agentes de los plugins siguen el mismo criterio en la lista de menciones con @, como plugin-name:agent-name.
Plugin, skill, servidor MCP o archivo de reglas
Estas cuatro expresiones se usan como si fueran alternativas. No lo son, y conviene aclarar una vez dónde está el límite.
- Una skill es una unidad de instrucciones que Claude carga cuando la tarea lo requiere. Consulte qué es realmente una Agent Skill.
- Un servidor MCP es un proceso independiente que expone herramientas al agente mediante un protocolo, normalmente como un servicio de red que ejecuta usted mismo.
- Un archivo de reglas como
CLAUDE.mdes contexto del proyecto que se lee al inicio de la sesión y se aplica a todo. - Un plugin es un contenedor que puede incluir skills, agentes, hooks y definiciones de servidores MCP, además de un número de versión y un canal de distribución.
Por tanto, la pregunta que responde un plugin no es «qué puede hacer el agente». Es «cómo distribuyo esto a mi equipo y lo actualizo el mes que viene». Si está eligiendo entre los tres primeros, la comparación entre skills, servidores MCP y archivos de reglas explica esa decisión en detalle. Si le interesa la parte de MCP, ejecutar sus propios servidores MCP en un VPS explica el alojamiento.
Dónde se ubican los plugins y qué contiene uno
Un plugin instalado desde un marketplace se copia en una caché local ubicada en ~/.claude/plugins/cache, en lugar de ejecutarse desde la ruta donde se clonó. Cada versión instalada tiene su propio directorio. Al actualizar o desinstalar, el directorio de la versión anterior se marca como huérfano y se elimina aproximadamente dos semanas después. Así, una sesión que ya cargó la versión anterior puede seguir funcionando sin fallar a mitad de una tarea.
Como la ruta cambia con cada actualización, un plugin nunca debe codificar su propia ubicación. Los hooks y las configuraciones de MCP dentro de un plugin usan ${CLAUDE_PLUGIN_ROOT}, que se resuelve en el directorio de instalación actual. El estado que debe conservarse después de una actualización se guarda en ${CLAUDE_PLUGIN_DATA}, que se resuelve en un directorio estable dentro de ~/.claude/plugins/data/.
Sólo el directorio propio del plugin se copia en la caché. Esto tiene una consecuencia que suele detectarse tarde. Una ruta que apunta fuera de la raíz del plugin, como ../shared-utils, funciona durante el desarrollo con una ruta local y falla después de la instalación, porque esos archivos nunca se copiaron.
La estructura es la siguiente.
my-plugin/
├── .claude-plugin/
│ └── plugin.json
├── skills/
│ └── code-review/
│ └── SKILL.md
├── agents/
├── hooks/
│ └── hooks.json
├── .mcp.json
└── bin/Sólo plugin.json se ubica dentro de .claude-plugin/. Todo lo demás se encuentra en la raíz del plugin. Colocar skills/ o hooks/ dentro de .claude-plugin/ es la causa más común de que un plugin se instale correctamente y después no haga nada: Claude Code busca esos directorios en la raíz, no encuentra ninguno y carga un plugin sin componentes.
El manifiesto es pequeño.
{
"name": "my-first-plugin",
"description": "A greeting plugin to learn the basics",
"version": "1.0.0"
}Cómo instalar un plugin de Claude Code
La instalación consta de dos pasos, y el primero no instala nada. Añada un marketplace, que es un catálogo de plugins, y después instale plugins individuales desde él. El marketplace oficial de Anthropic, claude-plugins-official, se registra automáticamente la primera vez que inicia Claude Code de forma interactiva. Los demás debe añadirlos usted.
/plugin marketplace add anthropics/claude-code
/plugin install commit-commands@claude-code-pluginsTenga en cuenta que el repositorio es anthropics/claude-code, mientras que el marketplace se llama claude-code-plugins. El nombre procede del archivo de catálogo dentro del repositorio, no de la ruta del repositorio. Por tanto, consulte el nombre del marketplace en la pestaña Marketplaces de /plugin antes de escribir un comando de instalación.
Después de la instalación, lea la línea de resumen. Plugin is now active. significa que los componentes se cargaron en esta sesión. Run /reload-plugins to activate. significa que no se cargaron y que debe ejecutar ese comando. Si /reload-plugins advierte de que volvería a leer la conversación, ejecútelo de nuevo como /reload-plugins --force. Después, confirme que el plugin está realmente disponible: /plugin lo muestra en la pestaña Installed, /help muestra sus skills en Custom commands y todo lo que no se haya podido cargar aparece en la pestaña Errors junto con el motivo.
La instalación solicita un scope, y el scope determina quién obtiene el plugin. El scope de usuario se aplica a usted en todos los proyectos. El scope de proyecto escribe el plugin en .claude/settings.json del repositorio, dentro de enabledPlugins, de modo que se ofrece a todas las personas que clonen el repositorio. El scope local se aplica a usted únicamente en este repositorio.
Para usarlo en un script, un Dockerfile o cualquier sesión en la que no esté disponible un panel interactivo, use la forma de shell. Se instala con scope de usuario, salvo que pase --scope.
claude plugin install commit-commands@claude-code-plugins --scope project
claude plugin listclaude plugin install se ejecuta fuera de una sesión, por lo que una sesión ya abierta no verá el nuevo plugin hasta que ejecute /reload-plugins o inicie una sesión nueva.
La gestión de los plugins instalados sigue el mismo patrón en ambos casos. /plugin list muestra lo que está instalado y acepta --enabled o --disabled. /plugin disable name@marketplace desactiva un plugin sin eliminarlo, /plugin enable lo vuelve a activar y /plugin uninstall lo elimina. Las formas de comando slash abren el panel de plugins para aplicar el cambio. Por eso, en scripts debe usar los equivalentes de shell claude plugin ....
Para poner un marketplace a disposición de todo un equipo, inclúyalo en .claude/settings.json del proyecto. Se pedirá a los miembros que lo instalen una vez que confíen en la carpeta del repositorio.
{
"extraKnownMarketplaces": {
"my-team-tools": {
"source": {
"source": "github",
"repo": "your-org/claude-plugins"
}
}
}
}Mientras desarrolla su propio plugin, omita por completo el marketplace. claude --plugin-dir ./my-plugin carga un directorio para esa sesión, /reload-plugins detecta sus cambios sin reiniciar y claude plugin validate ./my-plugin comprueba el manifiesto, el frontmatter de skills y agents, y hooks/hooks.json antes de que otras personas lo vean.
¿Cuánto cuesta un plugin de Claude Code?
El mecanismo es gratuito. En agosto de 2026 no se cobra por añadir un marketplace, instalar un plugin ni mantenerlo habilitado. Los marketplaces oficiales y comunitarios son repositorios git públicos, y un plugin es un directorio de archivos de texto.
Lo que cuesta un plugin son tokens. Los tokens son lo que realmente mide el uso de la suscripción o la factura de la API. Cuál de esas dos opciones afecta un plugin depende de cómo pague la herramienta, y cuánto cuesta Claude Code en cada plan presenta los niveles de suscripción junto con los precios de la API por token. Ese coste aparece de tres formas distintas y cada una se comporta de manera diferente.
Coste de contexto permanente. Lo que aporta un plugin se incluye en el contexto y se vuelve a leer en cada turno de la sesión. Antes de instalarlo, la vista de detalles /plugin muestra una estimación Context cost en tokens y una sección Will install con los comandos, las skills, los agentes, los hooks y los servidores MCP y LSP que está a punto de añadir. Revise ambas. Es posible que los plugins de marketplaces locales o personalizados no proporcionen esos datos. En ese caso, tendrá que hacer la estimación manualmente. Un plugin que incluye un servidor MCP suele ser el más pesado porque las definiciones de las herramientas son grandes. Sin embargo, en los modelos que admiten la búsqueda de herramientas MCP, esas definiciones se posponen hasta que se necesita una herramienta.
Coste de invocación. Al ejecutar la skill de un plugin, sus instrucciones se añaden a la conversación. Por tanto, sólo paga por el contenido de la skill cuando la utiliza. Sin embargo, el contenido es la parte barata. Lo que la skill indica al agente puede no serlo: el método Depth Tree de la skill unlazy consume casi todos sus tokens en las pasadas adicionales que obliga a realizar antes de permitir que el agente dé una tarea por terminada, no en el archivo que instaló. Un agente es diferente. Un subagente ejecuta su propia conversación, con su propio prompt del sistema y su propia caché, y comienza sin aciertos de caché. Por eso, un plugin cuyo flujo de trabajo crea agentes cuesta considerablemente más de lo que su estimación de contexto sugiere.
Coste de caché. Habilitar o deshabilitar un plugin durante una sesión puede obligar a la siguiente petición a volver a procesar toda la conversación. Las skills, los comandos, los agentes, los hooks, los servidores LSP, los monitores y los temas nunca hacen esto. Su contenido se añade después del historial existente, por lo que la siguiente petición paga por el contenido nuevo y sigue leyendo desde la caché todo lo anterior. La excepción es un plugin que proporciona un servidor MCP. Si sus herramientas se posponen mediante la búsqueda de herramientas, la caché se conserva. Si se cargan en el prefijo del prompt, la siguiente petición vuelve a leer toda la conversación como entrada no almacenada en caché. Por eso /reload-plugins muestra una advertencia y lo impide en ese caso hasta que pase --force.
Puede observar este comportamiento en lugar de hacer suposiciones. Cada respuesta de la API informa de cache_read_input_tokens y cache_creation_input_tokens, y una línea de estado personalizada que muestra el uso de tokens en tiempo real presenta ambos datos. Una sesión saludable lee mucho más de lo que crea. Si la creación se mantiene alta durante varios turnos seguidos, algo del prefijo está cambiando en cada turno. Para conocer mejor qué está ocupando la ventana, consulte cómo administrar la ventana de contexto de Claude Code y qué significan realmente esos recuentos de tokens.
Una tarea de mantenimiento compensa por sí sola. La pestaña Installed agrupa los plugins que no ha usado durante al menos dos semanas bajo un encabezado Not used recently, con una línea Last used en la vista de detalles. Esos plugins siguen consumiendo tiempo de inicio y contexto en todas las sesiones. Deshabilítelos o desinstálelos.
Un plugin se ejecuta con tus permisos
La documentación de Anthropic es clara al respecto: los plugins y los marketplaces son componentes de alta confianza que pueden ejecutar código arbitrario en tu máquina con los privilegios de tu usuario. No es un caso hipotético. Los hooks de un plugin ejecutan comandos de shell cuando se producen eventos de sesión, incluso antes y después de las llamadas a herramientas. Su directorio bin/ se añade a PATH de la herramienta Bash mientras el plugin está habilitado. Sus servidores MCP son procesos que el propio plugin inicia. Nada de esto está aislado de tu cuenta de usuario mediante un sandbox.
En un portátil, ese riesgo está limitado por lo que tu usuario de escritorio puede alcanzar. En un servidor, normalmente no. La cuenta que ejecuta el agente suele tener claves SSH, tokens de despliegue, una sesión de la CLI de la nube y acceso al socket de Docker. Por tanto, «código arbitrario como tu usuario» significa acceso a la máquina. Si Claude Code se ejecuta en un VPS, lee cómo ejecutar Claude Code de forma segura en un VPS antes de instalar nada. También lee cómo mantener las credenciales fuera del alcance de un agente antes de instalar un plugin que se comunique con un servicio externo. Otros harnesses encuentran la misma limitación en la misma máquina alquilada. Por eso los plugins de DeepSeek Harness que merece la pena instalar se centran principalmente en límites de gasto, reglas de permisos de herramientas y análisis de inyecciones, en lugar de añadir nuevas capacidades.
Existen algunas medidas de protección, y conviene saber cuáles. Un plugin con ámbito de proyecto procede del repositorio y no de ti, por lo que sólo se carga después de confiar en el workspace. Sus servidores MCP siguen necesitando aprobación individual por servidor. Sus servidores LSP esperan esa aprobación. Sus monitores en segundo plano no se cargan en absoluto. Los agentes distribuidos con el plugin no pueden declarar hooks, servidores MCP ni un modo de permisos. Los plugins del marketplace se copian en la caché, pero se omiten los symlinks que apuntan fuera del marketplace. Así, un plugin no puede incorporar archivos arbitrarios del host.
Nada de esto sustituye a leer lo que instalas. Comprueba la lista Will install, da preferencia a los plugins cuyo código fuente puedas abrir y leer, mantén los plugins de tu equipo en un repositorio de marketplace que controles y ejecuta claude plugin validate en todo lo que escribas tú mismo.
FAQ
¿Los plugins de Claude Code tienen un costo adicional?
No. El sistema de plugins, la adición de un marketplace y la instalación de un plugin no tienen costo. El costo corresponde al uso de tokens, que se factura contra su plan o su consumo de API, como cualquier otro contexto. Un plugin añade contexto persistente en cada turno y añade más cuando se invoca una de sus skills o agentes. También puede forzar un turno costoso sin caché si proporciona un servidor MCP cuyas herramientas se cargan en el prefijo del prompt. La vista detallada /plugin muestra una estimación de Context cost antes de la instalación.
¿Cuál es la diferencia entre un plugin y una skill?
Una skill es una unidad individual de instrucciones. Un plugin es un paquete que puede contener skills, agentes, hooks, servidores MCP, servidores LSP y monitores, además de un nombre, una versión y un marketplace desde el que se instala. Escriba una skill independiente en .claude/ cuando sea para usted y para este proyecto. Una skill de propósito único, como Ponytail, que hace que el agente aplique el cambio mínimo que funciona, es el caso más claro: un archivo con una sola regla, hasta que su equipo también la necesite. Conviértala en un plugin cuando otras personas la necesiten y deba actualizarse con el tiempo. Las skills de los plugins usan espacios de nombres, por lo que una skill dentro de un plugin se invoca como /plugin-name:skill-name en lugar de /skill-name.
Mi plugin se instaló, pero sus skills no aparecen. ¿Cuál es el problema?
Revise primero el resumen de la instalación. Si indica Run /reload-plugins to activate., los componentes todavía no se han cargado. Si la recarga advierte que volverá a leer la conversación, ejecútela de nuevo como /reload-plugins --force. Si se cargó, pero no muestra nada, abra /plugin y lea la pestaña Errors. El error estructural más común consiste en colocar skills/, agents/ o hooks/ dentro de .claude-plugin/, donde Claude Code no los busca. Recuerde que las skills de los plugins usan espacios de nombres. Por tanto, debe buscar /plugin-name:skill-name en la pestaña Custom commands de /help. Como último recurso, ejecute rm -rf ~/.claude/plugins/cache, reinicie y vuelva a instalar.
¿Puedo instalar plugins sin el panel interactivo?
Sí. Use el comando de shell claude plugin install name@marketplace, que instala en el ámbito del usuario salvo que especifique --scope project o --scope local. Funciona en scripts, imágenes y entornos no interactivos donde el panel /plugin no está disponible. Como se ejecuta fuera de una sesión, una sesión que ya esté abierta necesita /reload-plugins antes de que el plugin surta efecto.
¿Es seguro instalar un plugin desde un marketplace que encontré en GitHub?
Trátelo como trataría la ejecución del script de instalación de ese repositorio con su propia cuenta, porque es casi lo mismo. Un plugin puede ejecutar comandos de shell mediante hooks, añadir ejecutables al PATH de la herramienta Bash e iniciar servidores MCP, todo con los privilegios de su usuario. Anthropic no controla ni verifica el contenido de plugins de terceros. Instale desde fuentes cuyo código pueda leer, revise la lista Will install antes de confirmar y aplique controles más estrictos en un servidor que en un portátil, porque la cuenta del servidor suele contener claves y tokens que pueden robarse.