claude plugin desde tu shell o un script, o como /plugin y /reload-plugins dentro de una sesión de Claude Code. Esta referencia proporciona las banderas, valores predeterminados, salida y códigos de salida de cada comando, junto con las dos banderas que cargan un plugin para una sesión.
Las tablas a continuación enumeran las opciones de uso común de cada subcomando, no todas las opciones. Ejecuta claude plugin --help en tu shell para ver qué subcomandos tiene tu versión, y claude plugin <subcommand> --help para ver la lista completa de opciones de un subcomando.
Estos casos se cubren en otras páginas:
- Instalar y gestionar pasos, y dónde se ejecuta
/plugin: consulta Instalar y gestionar plugins - Qué cambia un comando en el disco y qué ámbito tiene precedencia: consulta Referencia de carga de plugins
- Qué significa un mensaje de error: consulta Solucionar problemas de plugins
Comandos claude plugin
Ejecutaclaude plugin <subcommand> desde tu shell o un script, fuera de una sesión de Claude Code. Estos subcomandos instalan y gestionan plugins sin abrir el panel /plugin.
claude plugins es un alias para claude plugin.
Cada subcomando comparte estos códigos de salida, argumentos de plugins y valores de alcance:
- Códigos de salida:
0en caso de éxito y1en caso de fallo.validateañade salida2para un error inesperado, yevalañade los códigos listados en su sección. - Argumentos de plugins: un argumento
<plugin>es unnamede plugin oname@marketplace. Cuando dos marketplaces ofrecen el mismo nombre, usa la forma calificada.configuretoma solo la forma calificada. - Alcances:
--scopetomauser,projectolocal, y nombra el archivo de configuración al que escribe el comando.updatetambién tomamanaged.
plugin init
Crea un nuevo plugin en~/.claude/skills/<name>/. A menos que tu administrador haya bloqueado los plugins de directorio de skills, se carga en tu próxima sesión como <name>@skills-dir sin necesidad de un paso de instalación.
new es un alias para init.
Para el flujo de trabajo de crear, probar y editar que comienza con este comando, consulta Crear un plugin.
<name> se convierte en el nombre del directorio bajo ~/.claude/skills/ y el name del plugin en su manifiesto.
El comando no tiene una bandera para otra ubicación. Para crear un scaffold dentro de un proyecto, consulta Crear un plugin.
Crea un plugin con archivos de skill y hook de inicio:
Created plugin "my-helper" at ~/.claude/skills/my-helper, seguido del id con el que se carga y el comando claude plugin disable que lo desactiva.
Claude Code sale con 1 sin escribir cuando no puede crear un scaffold de forma segura, y el mensaje nombra la razón. Estas son razones comunes:
- Un valor desconocido de
--with - Un scaffold existente en el destino sin
--force - Una lista de marketplaces permitidos administrada sin el origen
skills-dir, o una lista de bloqueo que lo nombra. El mensaje esPlugins from ~/.claude/skills/ are blocked by your organization's managed settings.
plugin install
Instala un plugin desde uno de tus marketplaces.i es un alias para install.
headersHelper para su descarga, Claude Code primero imprime el comando y pregunta Run this command now? [y/N].
Ejecuta
claude plugin install --help en tu shell para ver todas las opciones que tu versión soporta.
Pasa -y desde tu propia terminal para aceptar el comando mostrado sin la solicitud. Aquí está lo que sucede sin un TTY y cuando Claude ejecuta el comando:
- stdin o stdout no es un TTY, y no pasas ni
-yni--accept-command: la instalación se rechaza. La salida dice que el comando solo se mostró, y el código de salida es1 - Claude ejecuta el comando a través de su herramienta Bash:
-yse ignora. Ejecuta el comando desde tu propia terminal en su lugar
Successfully installed plugin: formatter@my-marketplace (scope: project). Cuando nada nuevo se instala, la salida dice por qué:
- Ya instalado en ese alcance: la salida es
Plugin "formatter@my-marketplace" is already installed (scope: project)y el código de salida es0 - Rechazas una solicitud de origen de comando: la salida es
Aborted.y el código de salida es1 - Rechazas una solicitud de
headersHelper, o no se puede confirmar sin un TTY: la salida esAborted — the command was not run.y el código de salida es1
Formato de resultado JSON
Cuando pasas--json a plugin install, la última línea de stdout es un objeto JSON. Analiza solo esa línea, porque Claude Code imprime cualquier comando que declare el marketplace antes de ella.
Tres campos siempre están presentes:
command: el subcomando que se ejecutó, comoinstalloutcome:okofailedmessage: una descripción legible por humanos del resultado
pluginId, scope y failureCode, aparecen solo cuando aplican.
La opción --json en plugin uninstall, plugin update, plugin enable y plugin disable imprime el mismo objeto con los campos propios de ese subcomando.
Un error de uso, como un --scope inválido, no imprime ninguna línea de resultado y sale con 1 con la razón en stderr.
Resultado JSON para comandos de marketplace
Enplugin marketplace add, plugin marketplace remove y plugin marketplace update, --json imprime un objeto JSON en la última línea de stdout con los campos command, outcome y message. Lo siguiente es el resultado de claude plugin marketplace remove your-marketplace --json:
command es marketplace-add, marketplace-remove o marketplace-update. Los campos a continuación aparecen solo cuando aplican:
marketplace: el nombre del marketplace sobre el que actuó el comandofailureCode: un código que indica por qué falló el comando, comoinvalid_source
plugin marketplace add y plugin marketplace remove pueden no imprimir ninguna línea de resultado cuando el argumento es el nombre reservado anthropic-plugin-directory, así que verifica el código de salida para ese nombre.
Aceptar un comando de instalación mostrado
Cuando una ejecución de--json muestra un comando declarado por el marketplace y no lo ejecuta, el resultado failed también lleva un objeto shownCommand. Sus campos incluyen el comando tal como se mostró, el plugin al que pertenece, y el sha256 del comando.
Para aceptar exactamente ese comando, vuelve a ejecutar con ese sha256 como --accept-command desde tu propia terminal, porque la bandera no tiene efecto dentro de una sesión de Claude Code. Requiere Claude Code v2.1.271 o posterior.
El sha256 cuenta como aceptación para exactamente ese comando, plugin y catálogo de marketplace. Si alguno de ellos cambió desde que se mostró el comando, Claude Code no acepta el sha256 y muestra el comando nuevamente. Un cambio que la actualización del marketplace de la propia ejecución obtiene también cuenta como tal cambio.
Si shownCommand.acceptCommandMatched es false, el sha256 que pasaste no coincide con el comando ahora mostrado. Revisa ese comando antes de volver a ejecutar con su sha256.
plugin uninstall
Elimina un plugin instalado de un alcance.remove y rm son alias para uninstall.
Desinstala un plugin del alcance del proyecto:
Successfully uninstalled plugin: formatter (scope: project). Cuando el plugin no está instalado en ese alcance, el comando imprime una línea que comienza con Failed to uninstall plugin "formatter@my-marketplace": y sale con 1.
Si la línea de fallo continúa con "formatter" was not uninstalled: y nombra un archivo de configuración, Claude Code no pudo confirmar que la configuración del alcance ya no activa el plugin, por lo que el plugin permanece instalado con todo lo que guardó. Con --json, el resultado lleva failureCode: "settings_still_on". Esta verificación de configuración requiere Claude Code v2.1.282 o posterior.
Qué elimina y qué conserva una desinstalación
Cuando desinstales un plugin del último alcance en el que está instalado, Claude Code también elimina las opciones y secretos almacenados del plugin y su directorio de datos,~/.claude/plugins/data/<id>/. Hay tres excepciones:
- Con
--keep-data, el directorio de datos permanece - Cuando otro plugin instalado usa la misma carpeta, como uno cuyo ID difiere de este solo en mayúsculas, el directorio de datos permanece
- Cuando Claude Code no puede leer la lista de plugins instalados después de eliminar el plugin de ese alcance, las opciones, secretos y directorio de datos todos permanecen, porque el plugin puede estar aún instalado en otro alcance. La desinstalación aún tiene éxito. El mensaje lista lo que permaneció y cómo eliminarlo, y con
--jsonel resultado llevasavedKept: "install_records_unreadable"
--json, keptData reporta si el directorio permaneció, y /plugin muestra · data preserved cuando lo hizo. Para un directorio que permanece sin --keep-data, este reporte requiere Claude Code v2.1.281 o posterior. El campo savedKept requiere Claude Code v2.1.282 o posterior.
plugin enable
Habilita un plugin deshabilitado. Para un plugin sincronizado desde claude.ai, pasa<name>@synced como el plugin.
Sin
--scope, el comando verifica tus archivos de configuración en el orden local, proyecto, usuario, y usa el primer alcance que menciona el plugin.
Si pasas un --scope donde el plugin no está declarado, el comando escribe una sobrescritura o falla:
- Un alcance que tiene precedencia sobre el que lo declara: Claude Code escribe una sobrescritura en el alcance que pasaste. Por ejemplo,
claude plugin disable formatter --scope localdesactiva un plugin habilitado en el proyecto solo para ti - Cualquier otro alcance: el comando falla con
Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.
Plugin "formatter" is already enabled y sale con 1. Con --json, el resultado tiene "failureCode": "already_in_goal_state" y "alreadyInGoalState": true, para que un script pueda tratar ese caso como éxito.
Cuando el plugin declara dependencias, Claude Code también las habilita. El comando falla en estos casos:
- Una dependencia no está instalada: enable falla e imprime el comando
claude plugin installpara cada dependencia faltante - Una dependencia está bloqueada por la política de plugins de tu organización: enable falla y nombra la dependencia bloqueada
- Una dependencia está establecida en
falseen un alcance con mayor precedencia que el alcance de destino: enable falla. Habilita la dependencia en ese alcance, o pasa--scopepara escribir allí
Successfully enabled plugin: formatter (scope: project), nombrando el alcance que detectó.
plugin disable
Deshabilita un plugin sin desinstalarlo. Para un plugin sincronizado desde claude.ai, pasa<name>@synced como el plugin.
Sin
--scope, el alcance se auto-detecta en el mismo orden local, proyecto, usuario que plugin enable.
Si no pasas ni un nombre de plugin ni --all, Claude Code imprime Please specify a plugin name or use --all to disable all plugins y sale con 1. Deshabilitar un plugin que ya está deshabilitado imprime Plugin "formatter" is already disabled y sale con 1, como plugin enable hace para un plugin ya habilitado.
El comando falla para un plugin que aún es requerido:
- Otro plugin habilitado depende de él: el comando falla y nombra los dependientes a deshabilitar primero
- Tu organización lo requiere como un plugin sincronizado: el comando falla y no guarda nada
Successfully disabled plugin: formatter (scope: project).
plugin update
Actualiza un plugin a la última versión que su marketplace ofrece. La nueva versión se carga en tu próxima sesión, o después de ejecutar/reload-plugins en una en ejecución.
Actualiza un plugin:
Checking for updates for plugin "formatter@my-marketplace"…, luego el resultado. Cuando nada es más nuevo, imprime formatter is already at the latest version (1.0.0). y sale con 0, a menos que reintente la instalación de dependencias del plugin y esa instalación falle.
Qué alcance actualiza el comando
Si omites--scope, el comando actualiza el plugin en el alcance más específico en el que está instalado para tu proyecto actual, verificando local, proyecto, usuario, luego managed.
Antes de v2.1.281, el comando usaba user cuando omitías --scope, por lo que actualizar un plugin instalado solo en alcance de proyecto o local fallaba con Plugin "<name>" is not installed at scope user. En esas versiones, pasa --scope.
managed es el único alcance que puedes actualizar pero no instalar. Para plugins instalados por administrador, consulta Gestionar plugins para tu organización.
Actualizar por nombre simple
Puedes pasar un nombre de plugin simple, que el comando coincide contra tus plugins instalados. Cuando plugins instalados de diferentes marketplaces comparten el nombre, el comando rechaza la actualización y lista los comandosplugin-name@marketplace-name calificados a ejecutar en su lugar. Actualizar por nombre simple requiere Claude Code v2.1.246 o posterior.
Reintentar una instalación de dependencias sin terminar
Cuando el plugin ya está en su última versión, el comando también puede reintentar una instalación de dependencias sin terminar en su copia en caché. Para los casos en que ese reintento se ejecuta o se omite, consulta Los paquetes que lista no están instalados. Si el reintento falla, la salida esFailed to update plugin "formatter@my-marketplace" con la razón y el código de salida es 1. Antes de v2.1.287, el comando reportaba el plugin en su última versión sin reintentar la instalación.
plugin list
Lista plugins instalados con su versión, alcance y estado.
Claude Code agrupa la salida legible por humanos por cómo se carga cada plugin:
Installed plugins:: plugins que instalaste desde un marketplaceSession-only plugins (--plugin-dir / --plugin-url):: plugins cargados por esas banderas en el mismo comando, como enclaude --plugin-dir ./my-plugin plugin listSkills-directory plugins (.claude/skills/*):: plugins que Claude Code encontró en un directorio de skillsSynced from claude.ai: plugins sincronizados desde tu cuenta claude.ai
No plugins installed. Use `claude plugin install` to install a plugin.
Salida JSON
Con--json, Claude Code imprime un array con un objeto por instalación. Cada objeto lleva los campos a continuación. id, version, scope, enabled e installPath siempre están presentes, y los otros aparecen solo cuando aplican.
Con
--json --available, Claude Code imprime un objeto en lugar de un array. Su campo installed contiene el array de objetos de plugin instalado, y su campo available contiene un objeto por plugin de marketplace no instalado con los campos a continuación.
plugin details
Muestra el inventario de componentes de un plugin y su costo de token proyectado. El plugin debe estar cargado: instalado, encontrado en un directorio de skills, o pasado con--plugin-dir o --plugin-url en el mismo comando. El <name> es un name de plugin o name@marketplace.
--help.
Muestra lo que contribuye un plugin instalado:
Component inventory: los skills, agents, hooks, servidores MCP y servidores LSP del pluginProjected token cost: los tokens siempre activos que el plugin añade a cada sesiónPer-component (rounded): estimaciones siempre activas y bajo invocación para cada skill, agent y comando. Se omite cuando el plugin no tiene ninguno
1:
@builtin nombra uno de los plugins integrados en Claude Code. Si pasas un ID así y Claude Code no encuentra ese plugin, el mensaje dice en su lugar:
plugin configure
Muestra las opcionesuserConfig de un plugin instalado y cuáles están establecidas, o guarda valores canalizados en stdin. Requiere Claude Code v2.1.285 o posterior.
Sin banderas, el comando lista cada opción con hasta tres etiquetas:
required u optional, luego sensitive para una opción que el manifiesto declara sensible, luego set o not set. No imprime valores guardados. Con --json, la salida incluye los valores guardados de opciones que no son sensibles, y nunca el texto de una sensible.
Para guardar valores, escríbelos en un archivo como un objeto JSON que mapea claves de opciones a valores de string, luego pasa el archivo en stdin. Reemplaza formatter@my-marketplace con el id de tu propio plugin como claude plugin list lo muestra. Este ejemplo establece una opción nombrada api_url desde un archivo values.json que contiene {"api_url": "https://example.com"}:
Configuration saved. Restart Claude Code to apply it. Si pasas una clave que el manifiesto no declara, o un valor que falla la validación, el comando no guarda nada, imprime Failed to save configuration: con la razón, y sale con 1. Con --json, un valor rechazado también imprime un objeto en stdout cuyo campo refused lleva el message y, cuando una opción es culpable, su clave option.
Pasa el id completo name@marketplace del plugin, como claude plugin list lo muestra. configure no acepta un name simple. Cuando ningún plugin cargado tiene ese id, el comando imprime No installed plugin has the id "<plugin>". y sale con 1.
Para la configuración de un servidor MCP empaquetado, consulta plugin install --config o el elemento Configure en /plugin.
plugin prune
Elimina dependencias auto-instaladas que ningún plugin instalado necesita más. El comando nunca elimina un plugin que instalaste tú mismo.autoremove es un alias para prune.
Previsualiza lo que un prune eliminaría:
(dry run — nothing removed). Sin nada a eliminar, imprime una línea que comienza con Nothing to prune.
Sin --dry-run, el comando elimina las dependencias huérfanas solo después de que confirmes en la solicitud o pases -y.
El código de salida es 0 sin importar lo que respondas en la solicitud.
Lo que prune hace depende de si una terminal está adjunta y si pasas -y:
plugin eval
Ejecuta los casos eval de un plugin e informa resultados puntuados. Requiere Claude Code v2.1.269 o posterior. Cada caso es un prompt más calificadores. Claude Code lo ejecuta varias veces en una sesión aislada con solo el plugin de destino cargado, y por defecto también sin el plugin para que el informe muestre la diferencia. Consulta Probar plugins con evals para el formato de caso, calificadores, resultados y uso de CI.target opcional por defecto es el directorio actual y toma cualquiera de estas formas:
- Un directorio de plugin
- Un archivo único
prompt.mdocase.yaml - Un plugin instalado como
nameoname@marketplace name@skills-dir
--tag, --allow-tools y --json. Cada una de estas opciones toma las palabras que la siguen como su valor, por lo que un target escrito después de una de ellas se lee como una etiqueta, un nombre de herramienta o la ruta de salida JSON en su lugar del target.
Esta tabla lista las opciones que la mayoría de ejecuciones usan. Ejecuta claude plugin eval --help para el conjunto completo, incluyendo --case, --tag, --output-dir, --report, --allow-real-servers, --keep-temp y --verbose.
El código de salida informa cómo terminó la ejecución. Para actuar sobre él en un pipeline, consulta Ejecutar evals en CI.
plugin eval init
Crea un conjunto eval para el plugin en el directorio actual. Requiere Claude Code v2.1.269 o posterior. Consulta Crear tu primer conjunto eval..claude-plugin/plugin.json o el SKILL.md del skill. Para crear el conjunto en otro directorio a propósito, pasa --eval-dir.
En una terminal, el comando abre una sesión interactiva de Claude Code para una entrevista de autoría. En la entrevista, Claude hace lo siguiente:
- Lee el plugin
- Te pregunta qué debería hacer bien
- Propone casos y calificadores
- Escribe los archivos de caso
- Ejecuta los casos y revisa las calificaciones contigo para verificar que los calificadores puntúen de la forma que lo harías
--bare, o sin una terminal, el comando escribe una plantilla de caso único en blanco en su lugar. Cuando Claude ejecuta el comando desde dentro de una sesión de Claude Code, el comando imprime las instrucciones de entrevista para que esa sesión siga en su lugar de escribir una plantilla.
El name opcional es un nombre de caso. Es requerido con --bare o sin una terminal, porque el comando escribe la plantilla en blanco para ese caso. Un nombre de caso comienza con una letra o dígito y contiene solo letras, dígitos, ., _ y -. En cada plataforma, el comando también rechaza nombres que Windows no puede almacenar, como con o un nombre que termina en ..
El comando acepta estas opciones:
plugin tag
Crea una etiqueta git anotada nombrada<name>--v<version> para una versión de plugin. Antes de etiquetar, el comando verifica que el plugin.json del plugin y cualquier entrada de marketplace que lo liste estén de acuerdo en la versión.
Para cuándo etiquetar una versión, consulta Publicar un plugin.
[path] es el directorio del plugin, por defecto el directorio actual. El comando encuentra la entrada de marketplace caminando hacia arriba desde ese directorio a un .claude-plugin/marketplace.json que lista el plugin.
Previsualiza la etiqueta para un plugin en un checkout de marketplace:
- El nombre del plugin
- La versión y de qué archivo vino
- La entrada de marketplace coincidente, cuando hay una
- El nombre de la etiqueta
- Los comandos
git tagygit pushque ejecutaría
--dry-run, Claude Code imprime Created tag formatter--v1.0.0 y ya sea Pushed to origin o el comando push a ejecutar tú mismo. Si el push falla, la etiqueta aún se crea localmente y el comando sale con un error.
El comando sale con 1 e imprime la razón cuando no puede etiquetar de forma segura. Las razones comunes son:
- Sin
versionenplugin.jsono la entrada de marketplace - La etiqueta ya existe
- El árbol de trabajo está sucio
plugin test
Ejecuta las pruebas de un mod, un plugin cuyo código registra manejadores de eventos. El comando no necesita sesión, inicio de sesión ni red. Para saber cómo escribir una prueba, consulta Probar un mod.[directory] es el directorio del mod, por defecto el directorio actual. El comando ejecuta cada archivo bajo él cuyo nombre termina en .test.ts o .test.tsx, y sale con estado 1 cuando una prueba falla.
Ejecuta las pruebas de un mod en ./first-mod:
plugin validate
Valida un manifiesto de plugin, un manifiesto de marketplace, o los skills, agents y comandos en un directorio, y sale con un código en el que un trabajo de CI puede actuar. Para el flujo de trabajo de crear, probar y editar, consulta Crear un plugin. Para lo que el validador verifica en cada manifiesto, consulta la referencia de manifiesto de plugin y la referencia de marketplace.
Valida un plugin antes de confirmarlo:
Validar un directorio
El<path> es un archivo de manifiesto o un directorio. Dado un directorio, Claude Code elige qué validar por lo que encuentra allí:
.claude-plugin/marketplace.json, cuando existe- Si no
.claude-plugin/plugin.json - Si no los archivos de componentes, elegidos por el nombre del directorio. Validar archivos de componentes sin un manifiesto requiere Claude Code v2.1.233 o posterior:
- Un directorio nombrado
skills,agentsocommands: los archivos dentro de él - Un directorio nombrado
.claude: los directoriosskills,agentsycommandsdentro de él - Cualquier otro directorio: esos tres directorios bajo su
.claude
- Un directorio nombrado
.claude-plugin/marketplace.json como un .claude-plugin/plugin.json, Claude Code valida el marketplace y también el manifiesto y los archivos de componentes del plugin. Esto requiere Claude Code v2.1.289 o posterior.
Claude Code no sigue enlaces simbólicos dentro del directorio que nombras. Lo que hace depende de dónde esté el enlace:
- Un directorio
skills,agentsocommandsenlazado bajo la raíz del plugin o.claude: Claude Code advierte que nada en él fue leído. - Una entrada enlazada dentro de un directorio
skills,agentsocommands: Claude Code la omite y advierte, por directorio, cuántas entradas omitió que una sesión cargaría. - El directorio
skills,agentsocommandsque nombras es en sí mismo un enlace simbólico, o su directorio padre.claudees: Claude Code reporta un error y no verifica nada en él. Nombra el directorio real en su lugar.
- Un
SKILL.mden la raíz del plugin: cuando ejecutasclaude plugin validatecontra un directorio de plugin, Claude Code no verifica unSKILL.mden la raíz del plugin - Un
CLAUDE.mden la raíz del plugin: en una ejecución de plugin, Claude Code también advierte sobre unCLAUDE.mden la raíz del plugin - Archivos de plugin en una ejecución de marketplace: desde un directorio de marketplace, Claude Code no abre los archivos de skill, agent, comando o hook de los plugins que el marketplace lista en otros directorios, ni los archivos de servidor MCP que empaquetan. Para encontrar errores en esos archivos, valida cada directorio de plugin
Validar un archivo de manifiesto
Cuando el archivo no se llamaplugin.json ni marketplace.json y no está en un directorio .claude-plugin, Claude Code decide qué es según sus campos. Lo valida como un marketplace en estos casos, y en cualquier otro caso como un manifiesto de plugin:
pluginses un arraypluginsyownerestán ambos presentes- El archivo tiene un campo que solo define
marketplace.json, comoowner, y ninguno que solo definaplugin.json, comoauthor
plugin.json o marketplace.json. Claude Code valida cualquier otro archivo en un directorio .claude-plugin como un manifiesto de plugin.
Salida y códigos de salida
Claude Code imprime el archivo que validó, cualquier error y advertencia con sus rutas, y una línea de veredicto. El código de salida sigue el veredicto:
Con
--json, Claude Code escribe el informe a stdout como un objeto JSON con estos campos de nivel superior:
success: el mismo veredicto que el código de salida dastrict: si la ejecución trató advertencias como errorestarget: la ruta resuelta que Claude Code validómanifest: el resultado del propio manifiesto, onullpara una ejecución sin manifiestocontents: resultados por archivo, cada uno nombrando sufiley llevando arrayserrors,warningsynotes. Los archivos sin ningún error, advertencia o nota no reciben entrada, por lo quecontentsestá vacío cuando no hay nada que reportar. Para un directorio conmarketplace.jsonyplugin.json,manifestes el resultado demarketplace.jsony los resultados deplugin.jsonvan encontentsgatingHooks: si cada hook de mod que puede rechazar una acción, como un hooktool.call, tiene un manejador.catch. Cada elemento damodule,pattern,hookyhasCatch. Requiere Claude Code v2.1.290 o posterior
advice: los consejos de la ejecución, cada entrada nombrando el README comofiley llevando unmessagey lainstallLinepara pegar. Vacío cuando no hay ninguno. Requiere Claude Code v2.1.295 o posterior
2, el comando no escribe nada a stdout. El mensaje de error va a stderr.
Consejos sobre el README
Un bloqueAdvice en la salida de claude plugin validate significa que el README de un plugin no tiene ninguna línea que instale el plugin desde un marketplace, y te da una línea para añadir. Un consejo no es un error ni una advertencia. No cambia la línea de veredicto ni el código de salida, con o sin --strict. Requiere Claude Code v2.1.295 o posterior.
Por ejemplo, validar el directorio del marketplace acme-tools imprime este consejo para su plugin deploy-helper:
claude plugin validate en tu shell. El bloque Advice desaparece.
Si la línea sugerida contiene el marcador de posición <owner>/<repo>, pegarla sin cambios no elimina el consejo. Obtén primero el origen real:
- Validaste el propio directorio del plugin: cuando el marketplace lista el plugin desde un directorio dentro del suyo, valida ese directorio en su lugar. Cuando lo lista desde otro lugar, como un repositorio de GitHub, completa
<owner>/<repo>tú mismo - Validaste el directorio del marketplace: Claude Code completa el origen a partir del remoto
origindel directorio.giten la parte superior de ese directorio. Cuando no puede usar ese remoto, como cuando no existe ninguno, reemplaza<owner>/<repo>con el origen de tu marketplace tú mismo
plugin install, o su forma corta plugin i, va seguido en la misma línea por cualquiera de estos. Las formas /plugin y claude plugin cuentan ambas:
<plugin>@<marketplace>, como/plugin install deploy-helper@acme-tools- El nombre del plugin y
--marketplace <source>, como/plugin install deploy-helper --marketplace acme/tools
Comandos claude plugin marketplace
Ejecutaclaude plugin marketplace <subcommand> desde tu shell para añadir, listar, actualizar y eliminar los marketplaces desde los que instalas plugins.
- Códigos de salida: estos subcomandos siguen la convención de código de salida de los comandos de plugin
- Ámbitos: su bandera
--scopeno tiene forma corta-s
plugin marketplace add
Añade un marketplace desde un repositorio de GitHub, una URL de git, unmarketplace.json alojado, o una ruta local, y decláralo en un archivo de configuración.
Después de añadirlo, Claude Code instala cualquier dependencia que tus plugins instalados estaban perdiendo.
<source> toma cualquiera de las formas en la tabla a continuación, y su forma decide el tipo de fuente y cómo Claude Code obtiene el marketplace. Para el objeto de fuente resultante, consulta la referencia de marketplace.
Para un host cuyas URLs de clonación no llevan el sufijo
.git, como AWS CodeCommit, añade el marketplace como una entrada de git en extraKnownMarketplaces en su lugar. Claude Code clona una entrada de git sin importar si su URL termina en .git.
Claude Code también clona una URL de gitlab.com con subgrupos anidados, como https://gitlab.com/group/subgroup/project.
Añade un marketplace y compártelo con el proyecto:
Successfully added marketplace: your-marketplace (declared in project settings), usando el name del propio manifiesto del marketplace. Una adición repetida o una fuente inválida imprime uno de estos resultados en su lugar:
- Marketplace ya en disco: la salida es
Marketplace 'your-marketplace' already on disk — declared in project settingsy el código de salida es0 - Fuente no reconocida: la salida es
Invalid marketplace source format. Try: owner/repo, https://..., or ./pathy el código de salida es1 - Host simple como
gitlab.example.com/team/plugins: la adición falla como un atajoowner/repoinválido, y el mensaje te dice que añadashttps://o uses una ruta local
From claude.ai: de claude plugin marketplace list:
--claudeai, el comando rechaza --scope y --sparse. El marketplace está alojado para tu cuenta, no declarado en un archivo de configuración, por lo que no puedes compartirlo a través del .claude/settings.json de un proyecto.
plugin marketplace list
Lista cada marketplace que has añadido, con su fuente.
Claude Code imprime
Configured marketplaces: y una línea Source: por marketplace, o No marketplaces configured.
Con --json, Claude Code imprime un array con un objeto por marketplace, llevando los campos a continuación. Cada campo es una string.
Un marketplace de claude.ai añadido no tiene un clon local, por lo que su entrada lleva sus identificadores de claude.ai,
marketplaceId y organizationUuid, en su lugar de installLocation. También lleva scope cuando uno se registra, y status.
Si tus sesiones de terminal sincronizan plugins desde tu cuenta claude.ai, el texto listado termina con una sección From claude.ai:. Esa sección nombra los marketplaces que claude.ai lista para tu cuenta que no has añadido, tanto basados en git como alojados. Requiere Claude Code v2.1.273 o posterior.
Para añadir un marketplace de esa sección, consulta Añadir un marketplace desde claude.ai.
La salida de --json cubre solo marketplaces configurados y deja la sección fuera.
plugin marketplace remove
Elimina la declaración de un marketplace de tu configuración.rm es un alias para remove.
<name> es el nombre del marketplace que plugin marketplace list muestra, no la fuente que pasaste a add.
Elimina un marketplace de cada ámbito:
Successfully removed marketplace: your-marketplace. Cuando el comando desinstala plugins, la salida los lista bajo una línea como Also uninstalled 2 plugins from this marketplace:. Para usar uno de ellos de nuevo, añade el marketplace de vuelta y reinstala el plugin.
Si limitas a un archivo de configuración que no declara el marketplace, el comando falla con Marketplace 'your-marketplace' is not declared in project settings. Omit --scope to remove it from all scopes.
plugin marketplace update
Actualiza un marketplace, o cada marketplace, desde su fuente para obtener nuevos plugins y versiones. Un marketplace añadido con una rama o etiquetaref se actualiza al último commit de esa ref, no la rama predeterminada del repositorio.
Actualiza un marketplace:
Successfully updated marketplace: your-marketplace. Cuando omites el nombre, imprime un recuento como Successfully updated 2 marketplaces.
/plugin en una sesión
Dentro de una sesión interactiva,/plugin abre el panel de plugins. Cada subcomando abre el panel en una pestaña, ejecuta una acción allí o imprime un resultado en línea. /plugins y /marketplace son alias de /plugin.
Solo puedes ejecutar estos comandos en una sesión interactiva de la terminal. En una ejecución no interactiva como claude -p, Claude Code responde que /plugin no está disponible en este entorno.
Para saber qué superficies tienen /plugin, cómo instalar sin él y qué muestra cada pestaña del panel, consulta Instalar y administrar plugins.
Un <plugin> es un name de plugin o name@marketplace.
La siguiente tabla enumera todas las formas en sesión. Los subcomandos del shell init, update, details, prune, eval, eval init y test no tienen forma en sesión.
Si en
/plugin enable, disable, uninstall o configure indicas un plugin que no está instalado en el proyecto actual, Claude Code imprime Plugin "<plugin>" is not installed in this project en lugar de actuar.
/reload-plugins
Aplica cambios de plugins pendientes a la sesión en ejecución sin reiniciarla. Los cambios pendientes son plugins que instalaste, actualizaste, habilitaste, deshabilitaste o editaste en disco desde que comenzó la sesión. Cuando cierras el panel/plugin con cambios pendientes que hiciste en él, Claude Code ejecuta /reload-plugins para ti. Ejecútalo tú mismo después de cambios de plugins que suceden fuera del panel, como un comando claude plugin que ejecutaste en otra terminal.
Resumen de recarga
Claude Code recarga cada plugin activo e imprime una línea de resumen,Reloaded: N plugins · N skills · N agents · N hooks · N plugin MCP servers · N plugin LSP servers, omitiendo el recuento de servidor MCP de plugin en una sesión sin una terminal interactiva. Cuando algún plugin falló, el resumen añade N errors during load. Run /plugin for details.
El recuento de skills cubre cada skill que proporciona un plugin, tanto sus entradas de commands/ como sus skills de SKILL.md. El recuento de agents es el número de agents cargados en la sesión, incluyendo los que no vienen de plugins.
Cuando las dependencias de un plugin recargado están faltando, Claude Code las instala, recarga de nuevo, y añade (+ N dependencies: <names>) resolved al resumen.
Recargas que cambian herramientas MCP
Cuando la recarga añadiría o eliminaría un servidor MCP de plugin o la herramientaLSP, y ese cambio invalidaría el caché de prompt, Claude Code no aplica la recarga. Imprime una línea como This reload changes MCP tools (<server>) — your next message will re-read the whole conversation instead of using the cache. Run /reload-plugins --force to apply. Pasa --force para aplicarla de todas formas.
Sesiones sin una terminal interactiva
/reload-plugins también se ejecuta en sesiones sin una terminal interactiva, como la aplicación de escritorio, el Agent SDK, y modo no interactivo con -p. Requiere Claude Code v2.1.260 o posterior.
En esas sesiones, el comando se ejecuta solo cuando lo escribes en la sesión tú mismo, como en el prompt de -p o la caja de prompt de la aplicación de escritorio. Cuando llega de otra forma, como a través de Remote Control o un mensaje retransmitido desde Slack, el comando responde /reload-plugins isn't available over a remote connection in this session. y no recarga nada.
La recarga en esas sesiones no conecta o desconecta servidores MCP de plugins. Esos cambios toman efecto en tu próxima sesión.
Banderas que cargan un plugin para una sesión
Dos banderas declaude cargan un plugin para una sesión solamente, sin instalarlo. Ambas son repetibles.
Los autores de plugins las usan para probar un plugin antes de publicarlo. Para el flujo de trabajo de cargar-editar-recargar, consulta Desarrollar sin un marketplace.
Un plugin que cualquiera de esas banderas carga es un plugin de solo sesión.
claude plugin list lo muestra solo cuando la misma bandera precede al subcomando, como en claude --plugin-dir ./my-plugin plugin list. El plugin aparece como <name>@inline bajo un encabezado que comienza con Session-only plugins, y --json reporta su scope como session.
Cuando un plugin de solo sesión comparte un nombre con un plugin instalado, Claude Code carga la copia de solo sesión para esa sesión y omite la instalada. La copia instalada se carga en su lugar si deshabilitaste la copia de solo sesión con claude plugin disable <name>@inline, o si la configuración gestionada bloquea ese nombre de plugin. Para la precedencia, consulta Referencia de carga de plugins.
Un administrador puede rechazar ambas banderas, y carpetas nombradas en la variable CLAUDE_CODE_PLUGIN_DIRS, con la configuración gestionada disableSideloadFlags. Claude Code entonces imprime que la bandera está deshabilitada por la configuración gestionada de tu organización y sale con 1 sin iniciar.
Desde el Agent SDK, la opción plugins es el equivalente de --plugin-dir.
Próximos pasos
- Instalar y gestionar plugins: las mismas operaciones que pasos, con lo que ves en cada uno
- Referencia de carga de plugins: qué cambia cada comando en el disco y qué ámbito toma efecto
- Solucionar problemas de plugins: instalar, marketplace, cargar y mensajes de error de validación con sus soluciones
- Referencia de manifiesto de plugin: los campos que
claude plugin validateverifica