Corrija errores de plugins en Claude Code. Encuentre el mensaje exacto que vio, agrupado por etapa desde donde /plugin se ejecuta hasta la instalación y la política de la organización.
Esta página enumera mensajes de error y síntomas para plugins de Claude Code y para mercados, los catálogos desde los que Claude Code instala plugins. Cada entrada proporciona la causa, una solución y lo que ve una vez que la solución funciona.
Cuando un mensaje nombra un plugin o mercado, la entrada muestra un marcador de posición como <name> en su lugar.
Utilice esta página si instala plugins, los crea, aloja un mercado o administra plugins para una organización.
Busque el mensaje exacto que vio. Cada mensaje se enumera bajo la etapa que lo produce, que no siempre es el comando que ejecutó. Por ejemplo, una instalación puede fallar porque falta un mercado, por lo que ese mensaje está bajo Add a marketplace.
Find where `/plugin` runs
/plugin es un comando que escribe dentro de una sesión de terminal de Claude Code en ejecución, y abre un panel interactivo. Las entradas en esta sección cubren los lugares donde puede escribirlo pero no puede ejecutarse, y los comandos que no existen.
`/plugin isn't available in this environment`
Escribió /plugin en algún lugar que no sea una sesión de terminal de Claude Code, y Claude respondió con esta línea en lugar de abrir nada.
Recibe esta respuesta en una sesión que no tiene terminal para dibujar el panel /plugin en: non-interactive mode con claude -p, el Agent SDK, la pestaña Code de la aplicación de escritorio Claude, el panel de extensión de VS Code, y el navegador en claude.ai/code.
En el panel de extensión de VS Code, solo una línea /plugin con algo después, como /plugin install <plugin>@<marketplace>, recibe esta respuesta. /plugin o /plugins escrito solo abre el diálogo Manage plugins.
Instale el plugin desde la superficie en la que se encuentra:
Aplicación de escritorio Claude, sesión local o SSH: haga clic en el botón + junto al prompt, luego Plugins, luego Add plugin para abrir el plugin browser
Extensión de VS Code: use la pestaña VS Code bajo Install a plugin
Claude Code en la web, o una sesión de escritorio en la nube: una sesión en la nube no tiene navegador de plugins. Vea la pestaña Cloud session bajo Install a plugin para lo que carga una sesión en la nube
Una terminal a la que tiene acceso: ejecute claude y escriba /plugin allí, o ejecute claude plugin install <plugin>@<marketplace> en su shell sin iniciar una sesión
Cuando una instalación de terminal funciona, /plugin imprime un resumen de instalación que comienza con ✓ Installed <plugin>. y claude plugin install imprime Successfully installed plugin: <plugin>@<marketplace>.
`zsh: no such file or directory: /plugin`
Escribió /plugin ... en un prompt de shell, y el shell informó que no existe ningún archivo llamado /plugin. Bash informa bash: /plugin: No such file or directory.
/plugin es un comando que escribe dentro de una sesión de Claude Code, no en el prompt de shell. Inicie una sesión y escriba el mismo comando allí:
claude
Luego, en el prompt de Claude Code:
/plugin install <plugin>@<marketplace>
Una instalación exitosa imprime un resumen que comienza con ✓ Installed <plugin>. Si la instalación en sí falla, su mensaje está bajo Add a marketplace o Install a plugin.
Para instalar desde el shell sin iniciar una sesión, ejecute claude plugin install <plugin>@<marketplace> en su lugar.
`The term '/plugin' is not recognized as the name of a cmdlet`
Escribió /plugin ... en un prompt de PowerShell, y /plugin es un comando de Claude Code, no un programa. Bash y Zsh informan su propia forma de este error.
Use cualquiera de estos en su lugar:
Ejecute claude, luego escriba /plugin en el prompt de Claude Code
Ejecute claude plugin install <plugin>@<marketplace> en PowerShell sin iniciar una sesión
`claude: command not found` after `claude plugin ...`
Ejecutó claude plugin install ... en su shell, y el shell no pudo encontrar claude en absoluto. En Windows el mensaje es 'claude' is not recognized as the name of a cmdlet o 'claude' is not recognized as an internal or external command.
La causa no es el comando del plugin. O Claude Code no está instalado, o su directorio de instalación no está en su PATH en este shell. Siga command not found: claude after installation, luego reintente el comando del plugin.
`Unknown command` and command spellings that don't exist
Escribió un comando de plugin que vio en algún lugar y obtuvo Unknown command: /<name> en una sesión, o error: unknown command '<name>' o error: unknown option '<flag>' del binario claude en su shell.
Hay varios comandos en uso que Claude Code no tiene. La tabla a continuación asigna cada uno al comando real. La plugin commands reference enumera todos los subcomandos e indicadores.
Escribió
Lo que Claude Code dice
Use en su lugar
claude plugin add <source>
error: unknown command 'add'
claude plugin marketplace add <source> para agregar un mercado, o claude plugin install <plugin>@<marketplace> para instalar un plugin
claude plugin install <plugin> --project
error: unknown option '--project'
claude plugin install <plugin>@<marketplace> --scope project
/install <plugin>
Unknown command: /install
/plugin install <plugin>@<marketplace>
/plugin add <source>
El panel /plugin se abre en la pestaña Discover
/plugin marketplace add <source>
marketplace.anthropic.com como fuente
Invalid marketplace source format. Try: owner/repo, https://..., or ./path
anthropics/claude-plugins-official para el mercado oficial
Estos comandos se ven mal pero funcionan:
claude plugins es un alias de claude plugin
claude plugin remove es un alias de claude plugin uninstall
/plugins y /marketplace en una sesión abren el mismo panel que /plugin
Add a marketplace
Un mercado es un catálogo que agrega a Claude Code desde un repositorio git, una URL o una ruta local. Estas entradas cubren los mensajes que obtiene cuando agregar uno falla o una actualización posterior falla.
`Marketplace "claude-plugins-official" not found`
Ejecutó /plugin install <plugin>@claude-plugins-official en una sesión, y Claude Code informó que no tiene ningún mercado con ese nombre.
El mercado oficial aún no está registrado en esta máquina. Claude Code normalmente lo registra por su cuenta la primera vez que inicia una sesión de terminal interactiva. No se ha ejecutado si solo ha usado Claude Code a través de la extensión de VS Code, y omite o difiere ese paso:
Cuando una política bloquea la fuente
Cuando se establece CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL
Después de un intento fallido que está esperando para reintentar
Los comandos de shell claude plugin nunca lo registran por usted.
La misma cadena también aparece en la pestaña /pluginErrors, la lista de fallos de carga del panel, cuando un plugin listado en su configuración nombra un mercado que no ha agregado.
`Marketplace "" not found`
Ejecutó /plugin install en una sesión y Claude Code informó que no tiene ningún mercado con ese nombre. Dos formas del comando llegan a este mensaje:
/plugin install <plugin>@<name>: la línea de instalación, a menudo una que alguien le envió, nombra un mercado que no ha agregado. El resto de esta entrada cubre encontrarlo y agregarlo.
/plugin install <source> con una ruta, URL, u owner/repo: esta forma informa el mensaje en lugar de instalar, incluso para una fuente que ya ha agregado. Para instalar desde una fuente en un comando, vea Agregar un mercado e instalar en un comando.
Si el nombre comienza con claudeai-, el mercado se aloja en claude.ai, y lo agrega por nombre desde su shell con claude plugin marketplace add --claudeai <name>. Vea Add a marketplace from claude.ai.
Para cualquier otro nombre, una línea de instalación nombra un mercado pero no dice dónde se aloja el mercado, y Claude Code no tiene un índice para buscar un nombre de mercado. Pida a quien le envió la línea la fuente del mercado, que es un owner/repo de GitHub, una URL de git, o una ruta. Luego agregue el mercado y ejecute la línea de instalación nuevamente.
Si ya agregó el mercado, verifique la ortografía contra /plugin marketplace list.
`Invalid marketplace source format`
Ejecutó /plugin marketplace add <source> o claude plugin marketplace add <source>, y Claude Code respondió Invalid marketplace source format. Try: owner/repo, https://..., or ./path.
Claude Code acepta una fuente en una de estas formas:
Un atajo de owner/repo de GitHub
Una URL https:// o http://
Una URL SSH user@host:path
Una ruta local que comienza con ./, ../, /, o ~
Un nombre simple como claude-plugins-official no coincide con ninguno de ellos. Tampoco un nombre de host simple como marketplace.anthropic.com.
Vuelva a escribir la fuente en una de las formas aceptadas:
Claude Code imprime Successfully added marketplace: <name> cuando la adición funciona.
`'' is not a valid GitHub owner/repo shorthand`
Pasó una fuente con una barra que no es owner/repo, como github.com/owner/repo o una ruta gitlab.example.com/group/project. Claude Code la rechazó con este mensaje y una lista de formas aceptadas.
El atajo owner/repo es solo de GitHub y tiene que seguir las reglas de nomenclatura de GitHub, por lo que un nombre de host o un segmento de ruta adicional falla. Pase la fuente en la forma que coincida con dónde se aloja el mercado:
Un repositorio en cualquier host: la URL de clonación completa
Un marketplace.json alojado: su URL https://
Un checkout local: ./path o una ruta absoluta
Por ejemplo, para agregar el mercado oficial por su URL de clonación, en una sesión:
Una adición exitosa imprime Successfully added marketplace: <name>.
`Invalid git URL`
Agregó un mercado, instaló un plugin, o ejecutó una actualización desde una dirección git, y el comando falló con Invalid git URL en su mensaje.
Claude Code verifica cada dirección git antes de ejecutar git. Rechaza una dirección cuyo protocolo no admite. También rechaza una dirección que git podría leer como nombrando un servidor o carpeta diferente del que muestra la dirección.
El texto después de la dirección nombra qué cambiar. Reescriba la dirección como dice el mensaje y ejecute el comando nuevamente.
Pasó una ruta local a marketplace add, y nada existe en esa ruta. Una ruta relativa se resuelve contra su directorio actual.
Verifique la ruta resuelta en el mensaje. Luego ejecute el comando desde el directorio desde el que comienza la ruta relativa, o pase una ruta absoluta al directorio del mercado. Una adición exitosa imprime Successfully added marketplace: <name>.
Claude Code acepta un directorio que contiene .claude-plugin/marketplace.json, o una ruta a un archivo .json. Una ruta a cualquier otro archivo falla con File path must point to a .json file (marketplace.json).
`Marketplace file not found at /.claude-plugin/marketplace.json`
Claude Code clonó o descargó el mercado pero no encontró marketplace.json en la ruta esperada dentro de él. El comando de adición lo informa como Failed to add marketplace: Marketplace file not found at ....
La ubicación predeterminada es .claude-plugin/marketplace.json en la raíz del repositorio, y la marketplace reference enumera las ubicaciones aceptadas.
La solución difiere para el propietario y para todos los demás:
Usted es el propietario del mercado: coloque el archivo en esa ubicación y vuelva a agregar el mercado
Alguien más lo aloja: pida al propietario la fuente exacta que publican
`SSH authentication failed` or `HTTPS authentication failed`
Agregó o actualizó un mercado desde un repositorio git, y el clonado falló con Failed to clone marketplace repository: seguido de una de estas líneas.
Primero verifique el repositorio en sí: un owner/repo mal escrito, un repositorio que no existe, o un repositorio privado que no puede ver también termina en este mensaje. Abra la URL del repositorio en su navegador, o ejecute git ls-remote <url> en su terminal, para confirmar que existe y tiene acceso.
Si el repositorio es correcto, la causa son las credenciales. Claude Code ejecuta git con prompts interactivos deshabilitados, por lo que no puede pedirle una contraseña, una frase de contraseña de clave, o una credencial de la manera que lo haría su terminal. Si git necesita solicitar, ve fatal: Cannot prompt because user interactivity has been disabled o terminal prompts disabled en el error original. Solo las credenciales que ya funcionan de forma no interactiva tienen éxito:
SSH: ssh -T git@<host> debe tener éxito sin solicitar una frase de contraseña, y el host ya debe estar en known_hosts
HTTPS: su asistente de credenciales debe contener un token para el host. Para GitHub, ejecute gh auth login y gh auth setup-git. Para otro host, almacene un token de acceso personal en su asistente de credenciales de git. Pruebe con git ls-remote <url>
Una vez que git ls-remote tiene éxito en su terminal sin un prompt, ejecute la adición o actualización nuevamente. Una adición exitosa imprime Successfully added marketplace: <name>. Una actualización exitosa imprime Successfully updated marketplace: <name> desde su shell, o ✔ Updated 1 marketplace en una sesión.
Para hacer que Claude Code omita SSH para fuentes owner/repo de GitHub, establezca CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1. Sin él, Claude Code clona esas fuentes sobre SSH cuando una clave SSH para github.com parece estar configurada, y vuelve a HTTPS cuando el clonado SSH falla.
Agregó un mercado sobre SSH desde un host al que nunca se ha conectado, y el clonado falló con esta línea y una sugerencia ssh -T git@<host>. Para un host cuya clave cambió, el mensaje es SSH host key has changed con una sugerencia ssh-keygen -R <host> en su lugar.
Claude Code clona con StrictHostKeyChecking=yes, por lo que rechaza un host cuya clave no ha aceptado aún en lugar de aceptar la clave automáticamente. Conéctese una vez desde su terminal para aceptar la huella digital, luego reintente:
ssh -T git@github.com
Para un repositorio público, agregue el mercado por su URL https:// en su lugar para evitar SSH completamente.
`Command 'git' not found or is in an unsafe location`
En Windows, agregó un mercado y Claude Code informó Failed to clone marketplace repository: Command 'git' not found or is in an unsafe location (current directory).
Claude Code busca git en su PATH y rechaza ejecutar uno encontrado solo en el directorio actual. Para solucionarlo, instale Git e intente nuevamente:
1
Install Git for Windows
Instale Git para Windows para que git esté en su PATH.
2
Open a new terminal
Abra una nueva terminal para que se aplique el PATH actualizado.
3
Confirm git runs
Confirme que git --version imprime una versión.
4
Retry the add
Ejecute el comando marketplace add nuevamente.
`Git clone timed out after 120s`
Agregó o actualizó un mercado, y falló con Git clone timed out after 120s, seguido de una sugerencia para establecer CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS.
Clonar un mercado, y re-clonar uno para actualizarlo, obtiene 120 segundos por defecto. Para un repositorio grande o una conexión lenta, aumente el límite. El valor está en milisegundos:
export CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS=300000
$env:CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS = "300000"
Luego reintente en el mismo shell.
Si el repositorio es un monorepo, limite el checkout a los directorios que nombra con claude plugin marketplace add <source> --sparse <paths>.
Marketplace updates keep failing offline
Trabaja en un entorno donde el host git del mercado es inaccesible, y cada sesión repite una actualización fallida en segundo plano. Su checkout existente del mercado permanece en su lugar y el inicio no se retrasa.
Cada sesión, para un mercado con auto-update on, Claude Code verifica el host git del mercado para nuevos commits en segundo plano. Cuando esa verificación no puede alcanzar el host, intenta clonar el mercado nuevamente, y sin conexión ese clonado también falla.
Establezca esta variable para omitir el intento de re-clonación y mantener el uso del checkout existente cuando la verificación no puede alcanzar el host:
Con la variable establecida, Claude Code omite la re-clonación solo para un checkout que ya contiene .claude-plugin/marketplace.json. Un mercado que nunca fue clonado o cuyo clonado se detuvo a mitad de camino aún obtiene el intento de clonación, así que agréguelo una vez mientras está en línea.
Para una implementación completamente sin conexión, pre-rellene el directorio de plugins en el tiempo de compilación de imagen con CLAUDE_CODE_PLUGIN_SEED_DIR en su lugar, siguiendo Seed containers and CI.
Marketplace add fails on a GitHub Enterprise Server host
Agregó un mercado desde una URL de GitHub Enterprise Server (GHES) y obtuvo un error de política, o lo agregó desde claude.ai y obtuvo un error de acceso a GitHub.
Ambos casos están en la página de GHES:
Un error de política significa que su organización restringió las fuentes del mercado y un administrador necesita agregar un hostPattern para el host
Agregaste un marketplace y ejecutaste una instalación, y la instalación se detuvo con un mensaje en lugar de instalar algo. Estas entradas cubren esos mensajes. También cubren los mensajes relacionados que aparecen más tarde en la pestaña Errors de /plugin, o como una pestaña Discover vacía, cuando no se puede encontrar, leer o confiar en un plugin o en su marketplace.
`Plugin "" not found in marketplace ""`
Ejecutaste /plugin install <name>@<marketplace> o claude plugin install <name>@<marketplace>, y el nombre del plugin no está en la copia del catálogo de ese marketplace que hay en tu máquina.
claude plugin install en tu shell imprime el mismo mensaje cuando no has agregado el marketplace en absoluto. Si claude plugin marketplace update <marketplace> responde entonces Marketplace '<marketplace>' not found, primero agrega el marketplace.
`not found in marketplace` con una sugerencia de actualización
La sugerencia dice Your local copy may be out of date — try claude plugin marketplace update <marketplace> o The marketplace couldn't be refreshed (...). Claude Code no actualizó el marketplace antes de la búsqueda, por ejemplo cuando estás sin conexión, así que tu copia del catálogo puede estar desactualizada. Actualízalo con el nombre del marketplace y luego vuelve a instalar:
Lo más probable es que el problema sea el nombre. Abre /plugin, ve a Discover y copia el nombre de la lista.
Antes de v2.1.232, Claude Code actualizaba el marketplace indicado solo después de que la búsqueda fallara, y solo cuando tenía la actualización automática activada.
`Plugin "" not found in any marketplace`
Ejecutaste /plugin install <name> sin @marketplace, y ningún marketplace registrado tiene ese plugin. claude plugin install <name> informa Plugin "<name>" not found in any configured marketplace.
Sin un nombre de marketplace, claude plugin install busca en los catálogos que ya tiene y no los actualiza antes, y /plugin install actualiza solo los marketplaces que tienen la actualización automática activada. Indica el marketplace y Claude Code lo actualizará antes de buscar el plugin:
/plugin install <name>@<marketplace>
Cuando la instalación funciona, ves ✓ Installed <plugin>. en una sesión, o Successfully installed plugin: <plugin>@<marketplace> desde claude plugin install.
Si no sabes qué marketplace incluye el plugin, ejecuta /plugin marketplace list para ver los marketplaces que tienes, y busca el nombre del plugin en Discover dentro de /plugin.
`Plugin '@' is already installed globally`
Ejecutaste /plugin install para un plugin que ya está instalado en el alcance de usuario o mediante la configuración administrada, y Claude Code lo rechazó con Use '/plugin' to manage existing plugins. Si escribiste el nombre del plugin sin @<marketplace>, el mensaje omite globally.
El plugin ya está disponible en todos los proyectos, así que no hay nada que agregar. Para cambiar su alcance, habilitarlo o deshabilitarlo, o configurarlo, abre /plugin y ve a Installed.
Un plugin instalado solo en el alcance de proyecto o local no activa este mensaje. Claude Code te permite instalarlo también en el alcance de usuario, para que esté disponible en otros proyectos.
claude plugin install en tu shell imprime un mensaje diferente. Para un plugin ya instalado en el alcance de destino, imprime Plugin "<name>@<marketplace>" is already installed (scope: user) y sale con 0. Si falta su directorio de caché, el mismo comando lo vuelve a descargar.
`"" was not installed: it would share its folder with ""`
Instalaste un plugin mediante claude plugin install, /plugin o una sugerencia de instalación en una sesión, y Claude Code lo rechazó con esta línea, o con would share its saved data with.
El id del plugin rechazado y el id de un plugin instalado corresponden a la misma carpeta en el disco: son iguales una vez que . y @ se escriben como -. En macOS y Windows, los ids que difieren solo en mayúsculas también corresponden a la misma carpeta. Instalar ambos pondría los archivos de un plugin en la carpeta del otro, así que Claude Code lo rechaza y el plugin instalado conserva sus archivos.
El mensaje indica la salida:
El otro plugin está instalado: el mensaje dice Only one of the two can be installed. e indica el comando claude plugin uninstall, o el paso de desinstalación en /plugin, que elimina el otro plugin. Ejecútalo y luego vuelve a instalar. Para saber qué elimina la desinstalación, consulta Qué elimina y qué conserva una desinstalación.
Ambos ids llegan en una sola instalación, como un plugin y una dependencia que necesita: ningún orden de instalación ayuda. Solo un mantenedor del marketplace que incluye los dos plugins puede arreglarlo, cambiando el nombre de uno de ellos. Cuando los dos provienen de marketplaces diferentes, puede hacerlo un mantenedor de cualquiera de ellos.
`This plugin uses a source type your Claude Code version does not support`
Instalaste un plugin cuya entrada en el marketplace usa un tipo de fuente que esta versión de Claude Code no puede obtener, y Claude Code se detuvo con este mensaje y Update Claude Code and try again.
Actualiza Claude Code y luego reintenta la instalación. Los tipos de fuente están en la referencia de marketplaces.
`Plugin archive integrity check failed`
Instalaste un plugin que se distribuye como archivo zip, y Claude Code lo rechazó con esta línea y The archive was not installed. La entrada del plugin en el marketplace usa una fuente archive con un sha256 fijado, y el hash del archivo descargado no coincide con el valor fijado.
El mensaje completo se ve así:
Plugin archive integrity check failed for https://artifacts.example.com/claude-plugins/my-plugin.zip: expected sha256 6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1, got ac52220c0914ef8ca6a602e4a7362f88d30fb021110f72a6d15b68c3fe7df2b7. The archive was not installed. Verify the sha256 in the marketplace entry, or that the URL serves the intended file.
La solución es distinta para quien publica y para quien instala:
Publicas el plugin: vuelve a calcular el hash del archivo exacto que sirve la URL y actualiza el sha256 en la entrada del marketplace. Usa shasum -a 256 my-plugin.zip, o Get-FileHash -Algorithm SHA256 my-plugin.zip en PowerShell
Instalas el plugin: ejecuta /plugin marketplace update <name> en una sesión para actualizar el catálogo por si la entrada se corrigió, y luego reintenta la instalación. Si los hashes siguen sin coincidir después de la actualización, pregúntale al propietario del marketplace qué archivo fijó antes de instalar
`An npm plugin source must name a registry package`
Un plugin cuya entrada en el marketplace usa una fuente npm no se pudo instalar, actualizar o cargar, y el mensaje incluye esta oración. Claude Code revisó el valor package de la entrada antes de obtener nada y lo rechazó. El mensaje indica el valor y el motivo:
"github:acme/formatter" was not installed: it is not an http or https link. An npm plugin source must name a registry package (name or name@version) or link to a tarball file. For a plugin in a git repository, use a "github", "url" or "git-subdir" source.
El propietario del marketplace tiene que cambiar la entrada:
Si no eres tú: informa el mensaje al propietario del marketplace
`Marketplace "" is registered from an untrusted source`
Un marketplace que agregaste antes dejó de cargarse, y también sus plugins. Esta línea aparece en la pestaña Errors de /plugin o en la siguiente actualización.
El marketplace está registrado con un nombre reservado para los marketplaces oficiales de Anthropic, pero su fuente registrada no es un repositorio de GitHub de anthropics. Los nombres reservados se vuelven a comprobar cada vez que un marketplace se carga o se actualiza, por lo que el marketplace y los plugins instalados desde él dejan de cargarse.
El mensaje completo indica el nombre reservado y la solución:
Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.
La solución es distinta para usuarios y para quienes publican:
Usas el marketplace: en tu shell, ejecuta claude plugin marketplace remove <name> y luego vuelve a agregar el marketplace desde el repositorio oficial de github.com/anthropics
Publicas un marketplace de terceros que usaba el nombre antes de que se reservara: cámbiale el nombre y pide a los usuarios que lo vuelvan a agregar desde tu fuente
Antes de v2.1.205, Claude Code comprobaba el nombre solo cuando agregabas el marketplace, así que una entrada registrada antes de que su nombre se reservara seguía cargándose.
`Marketplace "" is added but ignored`
El marketplace tiene una entrada en ~/.claude/plugins/known_marketplaces.json, pero la entrada no pasó una comprobación que Claude Code ejecuta cada vez que lee ese archivo, por lo que el marketplace y los plugins instalados desde él dejan de cargarse. En tu shell, claude plugin list informa cada plugin afectado con una línea que indica el motivo y la solución:
Marketplace team-tools is added but ignored. Its location is on a network drive, has "." or ".." in its path, or couldn't be checked. Re-add the marketplace (one added from a folder or file must be re-added from a copy on this computer), or, to trust a folder on a network drive, declare it under extraKnownMarketplaces in user or managed settings.
En una sesión, la pestaña Errors de /plugin pone el nombre del marketplace entre comillas, termina la línea después del motivo y muestra la solución en la línea de abajo.
La oración que sigue a is added but ignored indica la comprobación que la entrada no pasó:
Its location is on a network drive, has "." or ".." in its path, or couldn't be checked, o la misma oración sobre The folder or file it was added from: el directorio del marketplace, o la ruta local desde la que se agregó, está en una ubicación de red, tiene un segmento . o .. en su ruta, o no se pudo comprobar
Its git URL can't be used: <reason> o Its URL can't be read as an https:// or http:// address: la URL de origen registrada en la entrada es una desde la que Claude Code se niega a clonar u obtener
Its source doesn't match its extraKnownMarketplaces entry in user or managed settings: la entrada no coincide con la declaración de extraKnownMarketplaces del mismo nombre
Sigue la solución del mensaje. En tu shell, ejecuta claude plugin marketplace remove <name>, luego vuelve a agregar el marketplace desde una fuente compatible o una ruta local y reinstala sus plugins, que el comando de eliminación desinstala. El comando de eliminación funciona con una entrada ignorada
Para mantener un marketplace en una ubicación de red, decláralo en extraKnownMarketplaces en tu configuración de usuario o en la configuración administrada; una declaración en el .claude/settings.json o .claude/settings.local.json de un repositorio no cuenta
Para una fuente que difiere de su declaración en la configuración, vuelve a agregar el marketplace desde la fuente declarada o cambia la declaración. claude plugin marketplace add rechaza la misma discrepancia; consulta la entrada correspondiente de Cannot add marketplace
Para un nombre rechazado, elimina el marketplace usando el comando que aparece después de Remove it: cuando la línea lo incluye; volver a agregarlo con el mismo nombre se rechaza de nuevo
Antes de v2.1.286, fuera cual fuera el motivo, claude plugin list informaba un marketplace así como Marketplace <name> not found, y la pestaña Errors de /plugin lo informaba como Marketplace "<name>" is registered but was refused (see the debug log). El motivo solo aparecía en el registro de depuración. En v2.1.286, las oraciones del motivo y de la solución usaban otra redacción, como Its recorded location is network-shaped or unclassifiable (never probed).
`Plugin has a corrupt manifest file` o `has an invalid manifest file`
Claude Code obtuvo el plugin y luego no pudo leer su .claude-plugin/plugin.json. En el shell, el <name> de esta línea puede ser un nombre de directorio temporal; el prefijo Failed to install plugin "<name>@<marketplace>" lleva el nombre real del plugin. La redacción indica qué comprobación falló:
corrupt manifest file, seguido de JSON parse error:: el archivo no es JSON válido
invalid manifest file, seguido de Validation errors:: el archivo se analiza pero no cumple el esquema, por ejemplo name: Invalid input cuando falta un campo obligatorio
claude plugin install informa cualquiera de los dos como Failed to install plugin "<name>@<marketplace>": y sale con código 1.
El autor del plugin tiene que corregir el archivo, y el plugin no se puede instalar hasta entonces:
Si eres tú: ejecuta claude plugin validate <plugin-directory> en tu shell para ver el mismo error con la ruta problemática y luego corrige el archivo
Si no eres tú: informa el mensaje al propietario del marketplace
`Plugin directory not found at path: `
La pestaña Errors de /plugin muestra esto para un plugin habilitado que su marketplace incluye mediante una ruta relativa, como ./plugins/my-plugin, cuando no existe ningún directorio en esa ruta dentro del marketplace. Si mantienes el marketplace, corrige la ruta source de la entrada o restaura la carpeta. De lo contrario, informa el mensaje al propietario del marketplace.
Marketplace directory not found at path: <path> significa, en cambio, que falta el directorio del propio marketplace. En un marketplace que agregaste desde una ruta local, ese directorio se movió o se eliminó. Restáuralo, o elimina el marketplace y vuelve a agregarlo desde su nueva ubicación.
`No plugins available` o `No marketplaces configured`
Abriste /plugin y la pestaña Discover está vacía, o claude plugin marketplace list imprimió No marketplaces configured.
No hay ningún marketplace registrado, así que no hay catálogo que mostrar. En una sesión, agrega el marketplace oficial, anthropics/claude-plugins-official:
Claude Code imprime Successfully added marketplace: claude-plugins-official, y Discover muestra sus plugins. La página de marketplaces de Anthropic enumera los otros marketplaces que puedes agregar.
`Marketplace "" is already added from a different source`
Confirmaste agregar un marketplace mediante /plugin install <plugin> --marketplace <source>, y el catálogo que Claude Code obtuvo de esa fuente tiene el mismo nombre que un marketplace que ya agregaste desde una fuente diferente. Claude Code conserva el marketplace existente en lugar de reemplazarlo, y el plugin no se instala.
El mensaje completo se ve así:
Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.
Elige qué fuente quieres:
El marketplace que ya agregaste: instala desde él por nombre con /plugin install <plugin>@<name>
La nueva fuente: ejecuta /plugin marketplace remove <name> y luego reintenta la instalación
`Cannot add marketplace "": its source doesn't match its extraKnownMarketplaces entry in user or managed settings`
Agregaste un marketplace, y el name de su marketplace.json ya tiene una entrada de extraKnownMarketplaces en tu configuración de usuario o en la configuración administrada. La fuente que indicaste difiere de la que incluye esa entrada, así que Claude Code rechaza la adición y no registra nada.
Dos fuentes coinciden cuando tienen el mismo tipo y el mismo valor en cada campo. Una entrada que establece un ref que no pasaste cuenta como diferente. Una entrada github también cuenta como diferente cuando indicaste el repositorio como una URL https://github.com/, porque Claude Code registra esa URL como una fuente git. Haz una de estas cosas:
Si la lista no lo muestra, agrégalo con la fuente escrita tal como la escribe la entrada. Para una entrada cuyo objeto source es { "source": "github", "repo": "acme-corp/claude-plugins", "ref": "v1.2.0" }, ejecuta esto:
Usar la nueva fuente: edita o elimina la entrada de extraKnownMarketplaces y luego vuelve a agregar el marketplace. Si la declara la configuración administrada, pídeselo a tu administrador
Antes de v2.1.287, el mensaje decía Cannot add marketplace "<name>": its network source differs from the one declared for it in settings (kind, target, or a fetch-shaping field such as headers / ref / path / sparsePaths).
`Failed to install: ()`
Seleccionaste plugins para instalar en el menú de /plugin, ninguno se instaló y el menú se cerró con este resumen de lo que falló.
Algunos motivos, como la salida de git tras una clonación fallida, muestran solo su primera línea. Cuando un motivo así se acortó, el resumen termina con Installing a plugin from its details (Enter) in /plugin shows its full error.
Qué hacer depende de si el resumen acortó el motivo:
Corrige lo que indica el motivo entre paréntesis
Cuando el motivo se acortó, ejecuta /plugin, selecciona el plugin en la pestaña Discover y presiona Enter para instalarlo desde sus detalles. Si la instalación falla ahí, la vista de detalles muestra el error completo
`Could not move the new copy of this plugin version into `
Cuando instalas un plugin, Claude Code descarga una copia nueva de sus archivos y la mueve a la carpeta de esa versión en la caché de plugins. Este mensaje significa que el movimiento falló, normalmente porque otro programa estaba usando la carpeta mientras se ejecutaba la instalación. El código del sistema de archivos aparece entre paréntesis:
Could not move the new copy of this plugin version into /home/user/.claude/plugins/cache/acme-tools/formatter/1.2.0: the new copy or the version folder stayed busy while the install ran (ENOTEMPTY) — usually a scanner still reading the freshly downloaded files, another program using that folder, or another process re-creating it. The previously installed copy was moved back. Run the install again once other Claude Code sessions or programs using that folder have finished.
El mensaje indica qué pasó con la copia que estaba instalada antes, lo que te dice si el plugin sigue funcionando:
The previously installed copy was moved back: la versión que tenías sigue instalada
had to be removed first, was not moved back o could not be moved back: esa versión del plugin no está instalada hasta que una instalación tenga éxito
Ninguna oración de ese tipo: no había una copia anterior, así que la versión todavía no está instalada
En Windows, cuando otro programa retiene la propia copia instalada, el mensaje dice en cambio que esa copia could not be replaced y que It was not replaced and the new copy was discarded, así que la versión que tenías sigue instalada.
Una lista Left on disk indica carpetas apartadas dentro de la caché. Una instalación posterior de esa versión o una limpieza de la caché de plugins las elimina, así que no necesitas borrarlas.
Para corregir la instalación:
Cierra otras sesiones de Claude Code, editores y terminales que estén usando la carpeta del plugin en ~/.claude/plugins/cache y luego vuelve a ejecutar la instalación
Cuando el mensaje indique revisar los permisos de la carpeta de la caché de plugins, restaura tu permiso de escritura en la carpeta que indica y libera espacio en disco, y luego vuelve a ejecutar la instalación
Errores de dependencias
Un plugin que declara dependencias puede no instalarse, o instalarse y quedar deshabilitado, cuando una dependencia no se puede satisfacer. El mensaje te llega en el momento de la instalación o en el momento de la carga:
Durante la instalación: el rechazo se devuelve como el mensaje de error de la instalación
Cuando el plugin se carga: el problema aparece en claude plugin list y en la pestaña Errors de /plugin, y Claude Code mantiene deshabilitado el plugin afectado hasta que lo resuelvas
La tabla enumera cada mensaje y su solución. Para declarar dependencias como autor, consulta Dependencias de plugins.
Mensaje
Significado
Cómo resolverlo
Dependency "<dep>" is not installed
Una dependencia declarada no está instalada.
Instálala en tu shell con claude plugin install <dep>@<marketplace>, o desinstala el plugin. Si el marketplace de la dependencia aún no está registrado, agrégalo y ejecuta /reload-plugins en tu sesión, lo que instala las dependencias faltantes que puede resolver.
Dependency "<dep>" is disabled
La dependencia está instalada pero desactivada.
Habilita la dependencia, o desinstala el plugin que la necesita.
Requires "<dep>" <range>, installed <version>
La versión de la dependencia instalada está fuera del rango declarado por el plugin.
Actualiza la dependencia a una versión dentro del rango, o desinstala el plugin.
<Plugin or Dependency> "<name>" has conflicting version requirements
Ninguna versión satisface todos los rangos que la fijan. El mensaje enumera los rangos.
Desinstala o actualiza uno de los plugins en conflicto, o pide al autor original que amplíe su restricción.
... has version requirements too complex to intersect o has an invalid version requirement
Un rango no es semver válido, o los rangos combinados no se pueden intersecar.
Corrige el rango no válido o simplifica las cadenas || largas.
... has no git tag satisfying <range>
El repositorio de la dependencia no tiene ninguna etiqueta <name>--v* dentro del rango.
Comprueba que el proyecto original etiquete sus versiones con esa convención, o flexibiliza el rango.
Dependency "<dep>" (required by <plugin>) is in <marketplace>, which is not in the allowlist
La dependencia está en un marketplace diferente, y la resolución entre marketplaces está desactivada de forma predeterminada.
Instala tú mismo la dependencia en el mismo alcance, en tu shell con claude plugin install <dep>@<marketplace> más el --scope en el que estás instalando el plugin, y luego reintenta.
Para verlos de forma programática, ejecuta claude plugin list --json en tu shell. Los plugins con problemas incluyen un campo errors con los mensajes y un campo errorDetails con un type para cada uno: las dos primeras filas son dependency-unsatisfied y la tercera es dependency-version-unsatisfied.
Plugin installed but not working
La instalación tuvo éxito, pero las skills, hooks, o servidores del plugin no están haciendo nada. Comience con Plugin doesn't appear or its skills don't show up, que le dice dónde Claude Code informa lo que cargó, luego coincida con el mensaje.
Plugin doesn't appear or its skills don't show up
Instaló un plugin y escribió / esperando sus skills, o le pidió a Claude que lo use, y nada sucedió.
Verifique el estado del plugin antes de cambiar nada:
1
Confirm the plugin is installed and enabled
Ejecute /plugin y abra Installed. Confirme que el plugin está listado y habilitado. claude plugin list en su shell imprime la misma lista con la versión, scope, y Status: ✔ enabled de cada plugin.
2
Read the Errors tab
Abra la pestaña Errors en el mismo panel. Cada entrada empareja un mensaje con una línea de orientación. La mayoría de los mensajes en el resto de esta sección provienen de esa pestaña.
3
Reload if you installed during this session
Si el plugin está instalado y sin errores pero lo instaló durante esta sesión, ejecute /reload-plugins. Imprime Reloaded: con conteos de plugins, skills, agents, hooks, y servidores. Cuando algo falló agrega N errors during load. Run /plugin for details.
Si el plugin se carga sin error y sus skills aún no aparecen, el siguiente paso difiere para su propio plugin y para el de alguien más:
Un plugin que alguien más publicó: abra Installed en /plugin y abra el panel de detalles del plugin, que enumera lo que contiene el plugin. Un plugin que no enumera skills allí no tiene ninguno para ofrecer cuando escribe /
`Run /reload-plugins to activate.`
El resumen de instalación en /plugin terminó con Run /reload-plugins to activate. en lugar de Plugin is now active.
Claude Code no activó el plugin durante la instalación, ya sea porque activarlo invalidaría la caché de prompt o porque el intento de activación falló.
No necesita escribir el comando. El panel se cierra y Claude Code ejecuta /reload-plugins para usted, o lo pone en cola hasta que termine la respuesta que se está transmitiendo.
Lea lo que esa recarga imprime:
Reloaded: con conteos de plugins, skills, agents, hooks, y servidores: el plugin ahora está activo. Cuando algo falló al cargar, la línea agrega N errors during load. Run /plugin for details.
This reload changes MCP tools (...) — your next message will re-read the whole conversation instead of using the cache. Run /reload-plugins --force to apply.: la recarga agregaría o eliminaría un servidor MCP de plugin, o la herramienta LSP, e invalidaría su caché de prompt. Para el caso de LSP la línea comienza This reload adds the LSP tool o This reload removes the LSP tool. Ejecutelo con --force para activar el plugin de todas formas, o inicie una nueva sesión
Antes de v2.1.268, una instalación que no se activó durante la instalación permaneció pendiente hasta que ejecutó /reload-plugins usted mismo.
Antes de v2.1.246, el conteo de skills en ese resumen incluía solo las entradas commands/ de un plugin, por lo que una recarga podría cargar las skills SKILL.md de un plugin e informar 0 skills.
`Plugin "" not cached at `
La pestaña Errors muestra esta línea con la orientación Run /plugin to refresh the plugin cache. Claude Code tiene un registro de instalación para el plugin, pero el directorio al que apunta el registro falta, por ejemplo después de que limpió la caché.
Reinstale el plugin desde su shell. claude plugin install <name>@<marketplace> descarga nuevamente un plugin cuyo directorio de instalación falta aunque su registro exista:
claude plugin install <name>@<marketplace>
Luego ejecute /reload-plugins en su sesión. La entrada de la pestaña Errors desaparece y el plugin está de vuelta bajo Installed.
`installed_plugins.json holds a record under "" that this version of Claude Code cannot read`
El mensaje aparece en estas formas:
claude plugin list: lo imprime como una Note:
claude plugin install, uninstall, y update: se niegan con Plugin "<name>" was not installed:, Plugin "<name>" was not uninstalled:, o Plugin "<name>" was not updated:, seguido del mismo texto
--json en cualquiera de esos tres comandos: la línea de resultado lleva el mismo message y failureCode: "install_records_unreadable"
Varios registros de este tipo: el mensaje lee holds records under
El archivo completo declara un formato que esta versión no conoce: el mensaje lee installed_plugins.json is in a format (version <N>) that this version of Claude Code does not know en su lugar
El registro nombrado en installed_plugins.json es JSON válido bajo un id de plugin válido, pero sus campos no se analizan para esta versión. Lo más probable es que otra versión de Claude Code lo escribió, quizás una más nueva.
Mientras el registro esté allí, esta versión no reescribe el archivo, por lo que el registro no se pierde.
Tome las opciones del mensaje en orden:
Actualice Claude Code con claude update.
Si no puede actualizar, desinstale el plugin nombrado con la versión de Claude Code que escribió el registro.
Si ninguno ayuda, elimine el registro de installed_plugins.json a mano, luego reinicie Claude Code o ejecute /reload-plugins.
`installed_plugins.json could not be read and was rebuilt`
claude plugin list imprime esta nota, con la ruta de un archivo guardado nombrado installed_plugins.unreadable.<date>.<hash>.kept, mientras ese archivo se encuentre junto a installed_plugins.json.
Un installed_plugins.json que no es JSON válido, o no es una lista de plugins, no puede decir qué instaló.
Abra el archivo .kept para ver qué registró el archivo antiguo, e reinstale los plugins que le faltan. Claude Code nunca vuelve a leer el archivo, y el archivo envejece en el cronograma cleanupPeriodDays.
`install records under names that no version of Claude Code can use were removed from installed_plugins.json`
claude plugin list imprime esta nota, con la ruta de una copia nombrada installed_plugins.set-aside.<date>.<hash>.json, mientras esa copia se encuentre junto a installed_plugins.json. La nota termina Nothing needs doing about these copies.
Un registro en installed_plugins.json se encontraba bajo una clave que no es un id de plugin válido, por lo que ninguna versión de Claude Code puede usarlo. El resto del archivo se carga normalmente.
Claude Code copia los registros inutilizables en el archivo .set-aside y los elimina de la lista. Claude Code nunca vuelve a leer las copias, y las copias envejecen en el cronograma cleanupPeriodDays.
`Disabled in ~/.claude/settings.json but still loads`
Estableció un plugin en false en ~/.claude/settings.json, y su fila en claude plugin list o /plugin muestra este mensaje seguido de la fuente que lo habilita, como — project settings enable it, which overrides your user setting. Un true en esa fuente de mayor precedencia está anulando su configuración de usuario.
Para optar por no participar en un plugin habilitado por proyecto en su máquina, establezca el id en false en .claude/settings.local.json, que tiene mayor precedencia que el archivo del proyecto. Para las otras fuentes que el mensaje puede nombrar, vea Disabled in user settings but still loads.
Si claude plugin list en su lugar marca el plugin required by your org, ningún archivo de configuración está involucrado: su organización marca ese plugin sincronizado como requerido en claude.ai, y se carga incluso si lo deshabilitó anteriormente. Vea Plugins synced from claude.ai.
`Plugin "" is enabled in project settings but isn't installed here`
La pestaña Errors muestra esta línea para un plugin que el .claude/settings.json de su proyecto habilita, con la orientación Run claude plugin install <name>@<marketplace> --scope project to install it for this project.
La configuración de un repositorio puede habilitar un plugin para todos los que lo abren, pero no lo instala. Cuando el plugin proviene de una fuente externa como un repositorio de GitHub o un paquete npm, Claude Code no lo descarga hasta que lo instale usted mismo. Ejecute el comando de la línea de orientación en su shell, luego recargue:
claude plugin install <name>@<marketplace>--scope project
Después de ejecutar /reload-plugins en su sesión, la entrada de la pestaña Errors se ha ido y el plugin está listado bajo Installed.
Si su organización pre-instala plugins para usted, lo hace a través de configuración administrada en su lugar. Vea Pre-install and require plugins.
`Failed to load hooks from ` and hooks that don't fire
Los hooks de un plugin no se ejecutan, o uno bloquea una acción. O la pestaña Errors muestra un fallo de carga para ellos, los hooks se cargan y ve avisos <Event> hook error o un error de bloqueo en la transcripción, o un hook se carga sin error y nunca se dispara.
Hooks fail to load
La pestaña Errors muestra uno de estos mensajes:
Failed to load hooks from <path>: <reason>: hooks/hooks.json no es JSON válido o falla el esquema de hooks. La razón nombra el error de análisis o validación. Corrija el archivo. Para detectar un problema de sintaxis JSON en hooks/hooks.json antes de publicar el plugin, ejecute claude plugin validate <plugin-directory> en su shell
hooks path not found: <path>: el campo hooks del manifiesto nombra un archivo que no existe en esa ruta relativa a la raíz del plugin. Corrija la ruta o agregue el archivo
`hook error` notices in the transcript
Un aviso de la forma ... hook error: Failed with non-blocking status code: <stderr> significa que el hook se ejecutó y su comando falló. Por ejemplo, Stop hook error: Failed with non-blocking status code: /bin/sh: node: command not found significa que el shell que Claude Code generó no pudo encontrar node. Instálelo, o asegúrese de que esté en el PATH del terminal desde el que inicia claude.
Si el stderr muestra la ruta del plugin cortada en un espacio, el comando en forma de shell del hook usa ${CLAUDE_PLUGIN_ROOT} fuera de comillas y la ruta de instalación contiene un espacio. Envuelva la variable entre comillas dobles o use exec form. Para encontrar la variable sin comillas, ejecute claude plugin validate en el directorio del plugin y busque su advertencia de entrecomillado.
Para cualquier otro error, ejecute el comando del hook usted mismo desde el directorio del plugin para ver la salida completa, o capture el stderr completo con debug logging.
A plugin hook blocks a tool call or prompt
Un hook que sale con código 2 bloquea la acción para la que se ejecutó. Cuando un hook de plugin bloquea de esta manera y su stderr es el mensaje de bloqueo, el error termina con This hook comes from the <plugin> plugin. para que sepa qué plugin deshabilitar o corregir. Antes de v2.1.281, el error no nombraba el plugin.
Si un hook se carga sin error pero nunca se dispara, verifique su definición y luego mírelo ejecutarse:
1
Check the event name
Los nombres de eventos distinguen mayúsculas de minúsculas, así que confirme que el suyo coincida exactamente, por ejemplo PostToolUse.
2
Check the matcher
Confirme que el matcher del hook coincida con el nombre de la herramienta.
3
Trigger the event on purpose
Para un hook PostToolUse, pida a Claude que edite un archivo.
4
Read the debug log
Abra el debug log, que registra qué hooks coincidieron. Un hook que se ejecutó aparece allí con su código de salida.
`Invalid MCP server config for ""` and MCP servers that don't start
Un plugin agrupa un servidor MCP, y la pestaña Errors muestra Invalid MCP server config for "<server>": <error>, o el servidor está listado pero /mcp nunca lo muestra conectado.
`Invalid MCP server config for "": `
La configuración del servidor pasa la verificación del esquema, pero Claude Code no puede resolverla para esta sesión. El texto después de los dos puntos nombra la causa y decide la solución:
Missing environment variables: <names>: establezca esas variables en el shell desde el que inicia Claude Code, luego inicie una nueva sesión
URL is unset or invalid: una opción ${user_config.*} que usa la URL no está establecida. Ejecute /plugin configure <plugin> para establecerla
has an invalid MCP url o headersHelper for MCP server '<server>' references ${user_config.*}: la configuración del plugin en sí es culpable. Corrija la url o headersHelper en la configuración MCP de su plugin, o infórmelo al autor del plugin si el plugin no es suyo. El caso headersHelper tiene su propia entrada bajo plugin command references user_config
`Bundled MCP server "" was not started: it needs configuration`
El plugin incluye el servidor como un MCPB bundle que declara user_config, y una configuración requerida no tiene un valor guardado aún o un valor guardado falla la validación propia del bundle, por lo que Claude Code omite iniciar el servidor. El resto del plugin funciona.
Seleccione el plugin en la pestaña Installed de /plugin y elija Configure para proporcionar los valores. Después de guardar, /plugin muestra Configuration saved. y se cierra, y Claude Code recarga plugins como se describe bajo Manage installed plugins. El servidor se inicia una vez que esa recarga se aplica. Antes de v2.1.285, Claude Code omitía el servidor sin mostrar esta línea.
Server is configured but never connects
Ejecute /mcp para ver el estado del servidor. Cuando el servidor es saludable, /mcp lo enumera como conectado.
Para leer el error que el servidor imprimió mientras se iniciaba, ejecute claude --debug y abra el registro en ~/.claude/debug/<session-id>.txt. El indicador --debug no imprime en la terminal.
Una entrada de servidor en .mcp.json que falla el esquema no aparece en la pestaña Errors. Claude Code descarta ese servidor y registra Invalid MCP server config for <server> in <path> solo en ese registro de depuración. Para encontrar la entrada sin cargar el plugin, ejecute claude plugin validate en su shell en el directorio del plugin, que lo informa como un error.
Antes de v2.1.281, claude plugin validate no verificaba .mcp.json.
Server works with `--plugin-dir` but fails after install
Usted es el autor del plugin, y el servidor se inicia cuando carga el plugin desde su directorio de fuente con --plugin-dir pero falla una vez que el plugin está instalado.
Claude Code copia un plugin instalado en su caché, por lo que una ruta que solo funciona desde el directorio de fuente se rompe. Escriba rutas dentro del plugin con ${CLAUDE_PLUGIN_ROOT}.
Language server doesn't start, uses too much memory, or reports wrong diagnostics
Instaló un code intelligence plugin y Claude no ve diagnósticos, o el servidor de lenguaje está usando demasiada memoria o reportando errores que no son reales.
Language server doesn't start
El plugin se conecta a un binario de servidor de lenguaje que instala por separado, y Claude Code lo genera por nombre desde su PATH.
La pestaña /pluginErrors muestra el fallo con su razón, como Executable not found in $PATH: "<binary>", y claude --debug lo registra como LSP server <name> failed to start: <reason>.
Instale el binario y confirme que está en el PATH del terminal desde el que inicia claude, por ejemplo con which typescript-language-server. Luego inicie una nueva sesión.
Language server uses too much memory
Los servidores de lenguaje como rust-analyzer y pyright indexan todo el proyecto. Deshabilite el plugin con /plugin disable <plugin> en una sesión y confíe en las herramientas de búsqueda integradas de Claude en su lugar.
False positive diagnostics in a monorepo
Un servidor de lenguaje que no está configurado para el espacio de trabajo puede reportar importaciones no resueltas para paquetes internos. No hay nada que corregir en el lado de Claude Code, y los diagnósticos no impiden que Claude edite código.
Crear un plugin
Estás desarrollando un plugin y cargándolo con --plugin-dir o instalándolo desde un marketplace local. Estas entradas cubren los fallos que encuentras mientras desarrollas un plugin. Para las verificaciones que debes ejecutar después de cada cambio, consulta Probar y depurar.
La pestaña Errors muestra commands path not found: <absolute path> con la indicación Check that the path in your manifest or marketplace config is correct. El mismo mensaje aparece para skills, agents y hooks.
Claude Code resolvió una ruta de tu plugin.json o de tu entrada del marketplace respecto a la raíz del plugin y no encontró nada allí. La ruta del mensaje es la ruta absoluta que verificó, así que compárala con lo que hay en el disco. Corrige la ruta o crea el directorio y luego ejecuta /reload-plugins.
Las rutas del manifiesto son relativas a la raíz del plugin y comienzan con ./. Una ruta que se resuelve fuera de la raíz del plugin se informa como <component> path escapes plugin directory y se descarta.
`--plugin-dir` en la raíz de un marketplace no carga los plugins de `plugins/`
Iniciaste claude --plugin-dir <path> y no ves ningún error, pero los skills, agentes y hooks del plugin no aparecen.
--plugin-dir recibe el directorio raíz del plugin, el que contiene .claude-plugin/plugin.json y los directorios de componentes como skills/. Si en su lugar lo apuntas a la raíz de un marketplace, Claude Code no lee marketplace.json, por lo que un plugin dentro de plugins/ no se carga y no ves ningún error. Antes de la v2.1.281, Claude Code cargaba la raíz de un marketplace como un único plugin vacío con el nombre de ese directorio. Apunta el flag al directorio del plugin en sí:
claude --plugin-dir ./my-marketplace/plugins/my-plugin
Luego abre Installed en /plugin, donde el panel de detalles del plugin enumera sus componentes.
No se encuentran los archivos que el plugin referencia fuera de su directorio
Un plugin funciona desde su directorio de origen con --plugin-dir pero falla después de instalarlo, con errores sobre una ruta como ../shared-utils.
Claude Code copia un plugin instalado en su caché y lo carga desde allí, por lo que una ruta que sale del directorio propio del plugin no apunta a nada en la caché. Mueve los archivos compartidos dentro del directorio del plugin o haz referencia a ellos mediante un enlace simbólico dentro de él. Para saber dónde está la caché y cómo se resuelven las rutas, consulta Encontrar plugins en el disco.
`${CLAUDE_PLUGIN_ROOT}` muestra barras diagonales en Windows
En Windows, un hook de plugin recibe ${CLAUDE_PLUGIN_ROOT} como C:/Users/you/... en lugar de C:\Users\you\..., y un script que esperaba barras invertidas falla.
Claude Code ejecuta los hooks en forma de shell a través de Git Bash en Windows y sustituye a propósito la raíz del plugin en la forma Win32 con barras diagonales. Los builtins de Bash, las herramientas de MSYS y los binarios nativos de Windows aceptan esa forma.
Si tu script necesita barras invertidas, cambia el hook a una de las formas que conservan las rutas nativas, descritas en forma exec y forma de shell:
Un hook en forma exec, que inicia el proceso directamente con un arreglo args
Un hook con "shell": "powershell"
El plugin se carga pero faltan sus skills
Tu plugin aparece en Installed sin errores, pero sus skills no se ofrecen cuando escribes /.
Los skills se cargan desde skills/ en la raíz del plugin y los comandos desde commands/ en la raíz del plugin. Solo plugin.json va dentro de .claude-plugin/, y un directorio skills/ dentro de .claude-plugin/ no se escanea. Mueve los directorios a la raíz del plugin y ejecuta /reload-plugins. Después, el panel de detalles del plugin en /plugin enumera los skills, y al escribir / se ofrecen.
Cada skill es un directorio que contiene SKILL.md. Una entrada skills en el manifiesto que apunta a un archivo SKILL.md en lugar de a su directorio se informa como path is a file; skills entries must be directories containing SKILL.md.
El skill se carga pero Claude nunca lo invoca
El skill de tu plugin se ejecuta cuando escribes su comando /<plugin>:<skill>, pero Claude nunca lo invoca en respuesta a una solicitud normal.
Revisa estas causas en orden:
El skill establece disable-model-invocation: true: con ese campo establecido, solo tú puedes invocar el skill. El skill de plantilla de Crear tu primer plugin lo establece. Elimina la línea de un skill que quieras que Claude invoque por su cuenta. Controlar quién invoca un skill explica el campo
La descripción no coincide con la forma en que la gente pregunta: sigue las verificaciones de El skill no se activa
La descripción está truncada: cuando hay muchos skills instalados, Claude Code acorta las descripciones para ajustarlas al presupuesto de caracteres del listado, lo que puede eliminar las palabras clave que Claude necesita para relacionarlo con una solicitud. Consulta Las descripciones de los skills se recortan
Para medir con qué frecuencia se activa el skill en prompts realistas en lugar de revisarlos uno por uno, escribe un caso de eval con un grader tool_used: Skill y ejecútalo con claude plugin eval después de cada cambio en la descripción.
` is not a plugin or skill folder` al ejecutar `claude plugin eval init`
Ejecutaste claude plugin eval init desde un directorio que no es la raíz de un plugin, como tu directorio home o la raíz de un repositorio que guarda el plugin en un subdirectorio. init escribe la suite dentro del directorio de trabajo, por lo que se detiene en lugar de crear un directorio evals/ que el plugin nunca vería.
Cambia a la raíz del plugin, el directorio que contiene .claude-plugin/plugin.json o el SKILL.md del skill, y vuelve a ejecutar el comando. Para generar la suite en otro lugar a propósito, pasa --eval-dir. Consulta Probar plugins con evals.
El diálogo de `userConfig` nunca aparece
Tu plugin declara opciones userConfig, pero no aparece ningún diálogo de configuración cuando lo instalas.
Que la instalación pida los valores depende de dónde la ejecutes:
/plugin install en una sesión, o la pestaña Discover en /plugin: el diálogo forma parte de esta instalación interactiva
El diálogo Manage plugins de la extensión de VS Code: pide las opciones sin establecer en un formulario después de la instalación. Antes de la v2.1.285, la instalación desde allí no mostraba ningún formulario de opciones, así que establece los valores desde una sesión en la terminal con /plugin configure <plugin>@<marketplace>
claude plugin install en tu shell: nunca pide valores de userConfig. Guarda los valores --config KEY=VALUE que pases y, cuando quedan opciones sin establecer, imprime N userConfig options not yet set — run /plugin configure <plugin>@<marketplace> in Claude Code, or pass --config KEY=VALUE. Cuando alguna de las opciones sin establecer es obligatoria, (M required) aparece después de not yet set.
Si instalaste desde el shell, pasa los valores con --config, un flag por opción:
claude plugin install my-plugin@my-marketplace--config api_url=https://example.com
Cuando todas las opciones están establecidas, la salida de la instalación no incluye ninguna línea not yet set.
Para abrir el diálogo más tarde, ejecuta /plugin configure my-plugin@my-marketplace en una sesión. Desde el shell, claude plugin configure muestra qué opciones siguen sin establecer y guarda los valores que le envíes por stdin. Requiere Claude Code v2.1.285 o posterior.
Si pasas una clave --config que el manifiesto no declara, el plugin se instala de todos modos y el comando imprime ⚠ Installed, but --config not applied: --config key "<key>" isn't declared in this plugin's userConfig. seguido de las claves que el plugin sí declara.
Para un plugin que incluye un archivo de paquete MCPB que declara su propio user_config, el mensaje dice isn't declared in this plugin's userConfig or by its bundled MCP servers. en su lugar, y las claves conocidas incluyen las de ese servidor, escritas como <server>.<key>. Un paquete que el manifiesto referencia por URL no se lee durante la instalación, por lo que sus claves no se enumeran y el mensaje indica que lo configures en /plugin. Establecer claves <server>.<key> requiere Claude Code v2.1.285 o posterior.
`claude plugin validate` informa errores
Ejecutaste claude plugin validate <path>, o /plugin validate <path> en una sesión, e imprimió Found N errors y Validation failed, y luego terminó con el código 1.
El validador lee el manifiesto en la ruta que le indicas: .claude-plugin/plugin.json para un directorio de plugin, o .claude-plugin/marketplace.json para un directorio de marketplace. Para un marketplace, antepone a los problemas del manifiesto propio de una entrada el índice de la entrada, como en plugins[1] plugin.json → json: ....
La tabla cubre los mensajes que detienen la validación y dos advertencias, No frontmatter block found y Unknown field '<key>', que la detienen solo cuando pasas --strict. Otras advertencias, como la falta de una descripción, no se incluyen.
Mensaje
Causa
Solución
File not found: <path>
La ruta no tiene manifiesto o no existe.
Ejecuta el comando sobre la raíz del plugin o del marketplace, el directorio que contiene .claude-plugin/.
No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json
El directorio no tiene un manifiesto .claude-plugin/.
Crea el manifiesto o apunta al directorio correcto.
Invalid JSON syntax: <parse error>
El manifiesto, o hooks/hooks.json, no es JSON válido.
Corrige el JSON. Hasta que corrijas hooks/hooks.json, una sesión carga el plugin sin los hooks de ese archivo.
Path not found: <path>. The runtime loader will report this as a load failure.
Una ruta de componente del manifiesto no existe.
Corrige la ruta o crea el directorio.
Path contains ".." which could be a path traversal attempt: <path>
Una ruta de componente sale del directorio del plugin.
Usa rutas dentro de la raíz del plugin.
Path is a file; skills entries must be directories containing SKILL.md
Una entrada skills apunta a SKILL.md en lugar de a su directorio.
Apunta al directorio padre, o a . para un SKILL.md en la raíz.
No frontmatter block found o YAML frontmatter failed to parse: <error>
Un archivo de skill, agente o comando tiene frontmatter YAML faltante o no válido.
Agrega o corrige el frontmatter entre delimitadores ---. Se informa al validar un directorio de plugin.
Plugin name "<name>" is reserved: it passes as one of Anthropic's own
El manifiesto tiene un campo que el esquema no define.
Elimínalo o usa el nombre que sugiere el mensaje. Claude Code ignora los campos desconocidos al cargar. Para privacyPolicyUrl y los demás campos de listado del directorio en plugin.json, consulta Campos de listado del directorio.
Vuelve a ejecutar el comando después de cada corrección hasta que no imprima errores.
El plugin no se carga y muestra Plugin <name> has conflicting manifests: both plugin.json and marketplace entry specify components.
El plugin tiene su propio plugin.json, y su entrada del marketplace establece strict: false y además declara alguno de commands, agents, skills, hooks, outputStyles o themes. Elimina esos campos de la entrada, o establece strict: true en la entrada para que Claude Code los agregue a plugin.json. Consulta Modo estricto.
`Warning: No commands found in plugin custom directory`
Cuando el plugin se carga, el registro de claude --debug en ~/.claude/debug/<session-id>.txt registra Warning: No commands found in plugin <name> custom directory: <path>. Expected .md files or SKILL.md in subdirectories. No aparece nada en la sesión ni en la pestaña Errors.
La ruta commands del manifiesto existe pero no contiene archivos .md ni ningún SKILL.md en un subdirectorio. Agrega los archivos de comando o elimina la ruta del manifiesto.
Host a marketplace
Publica un mercado y un usuario informa un error, o su propia validación falla. Estas entradas son para el propietario del mercado.
Plugins with relative paths fail in URL-based marketplaces
Los usuarios agregaron su mercado con una URL https://example.com/marketplace.json. Las instalaciones de plugins cuya source es una ruta relativa, como ./plugins/my-plugin, fallan con its marketplace entry path does not stay inside the marketplace directory. Los plugins ya instalados fallan al cargar con Plugin source path refused. Ambos mensajes tienen una entrada de referencia de error.
Cuando un usuario agrega un mercado basado en URL, Claude Code descarga solo el archivo marketplace.json en sí. No obtiene archivos de plugin por ruta relativa desde ese servidor, por lo que una ruta relativa en una entrada apunta a un directorio que nunca fue obtenido. Dé a cada entrada una fuente que Claude Code pueda obtener por su cuenta, como un repositorio de GitHub:
Alternativamente, aloje el mercado en un repositorio git y diga a los usuarios que lo agreguen con la URL del repositorio. Para una fuente de git, Claude Code clona todo el repositorio, por lo que las rutas relativas se resuelven. Los tipos de fuente están en la marketplace reference.
Marketplace validation errors
Ejecutó claude plugin validate . desde su directorio de mercado e informó errores o advertencias en el archivo del mercado en sí.
claude plugin validate también valida cada entrada cuya source es una ruta local y advierte cuando la version de la entrada no coincide con el manifiesto propio del plugin.
La tabla enumera los mensajes a nivel de mercado. Los mensajes a nivel de entrada son los mensajes de plugin bajo claude plugin validate reports errors, prefijados con plugins[N] plugin.json →.
Mensaje
Tipo
Solución
Duplicate plugin name "<name>" found in marketplace
Error
Dé a cada plugin un name único.
Path contains "..": <path> bajo plugins[N].source
Error
Use rutas relativas a la raíz del mercado sin segmentos ...
Marketplace name cannot contain control or bidirectional-formatting characters
Error
Elimine el carácter del nombre, como un escape o una nueva línea.
Plugin name cannot contain control or bidirectional-formatting characters
Error
Elimine el carácter del name del plugin.
Claude Code cannot install plugins from marketplace "<name>". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change the marketplace's "name".
Error
Cambie el nombre del mercado para que se ajuste a la regla que indica el mensaje.
Claude Code cannot install plugin "<name>". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change this entry's "name".
Error
Cambie el nombre de la entrada para que se ajuste a la regla que indica el mensaje.
Marketplace has no plugins defined
Advertencia
Agregue al menos una entrada a plugins.
No marketplace description provided
Advertencia
Agregue una description a nivel superior.
Plugin name "<name>" is not kebab-case bajo plugins[N] plugin.json → name
Advertencia
Cambie el nombre a letras minúsculas, dígitos, y guiones; la sincronización del mercado de claude.ai requiere esa forma.
Entry declares version "<a>" but <path>/plugin.json says "<b>"
Advertencia
Actualice la entrada para que coincida con plugin.json, que es autoritario en el tiempo de instalación.
Marketplace name "<name>" is reserved in Claude Desktop
Advertencia
Cambie el nombre del mercado. La sincronización de mercado administrada de Claude Desktop rechaza org, org-provisioned, y unknown en cualquier mayúscula.
Marketplace name "<name>" is not accepted by Claude Desktop o Plugin name "<name>" is not accepted by Claude Desktop
Advertencia
Cambie el nombre a como máximo 128 caracteres de letras, dígitos, ., _, y -, comenzando con una letra o dígito.
Antes de v2.1.247, un nombre de mercado que contiene caracteres de control o de formato bidireccional se informaba solo como Marketplace name impersonates an official Anthropic/Claude marketplace.
Blocked by your organization
Su organización implementa configuración administrada que restringe plugins, y un comando fue rechazado con un mensaje de política. Estas entradas nombran la configuración detrás de cada rechazo para que sepa qué pedir a su administrador. Para el lado del administrador, vea Manage plugins for your organization.
`Marketplace source '' is blocked by enterprise policy`
Ejecutó /plugin marketplace add, update, o una instalación, y Claude Code rechazó con esta línea. Para una fuente de GitHub o git, el host sigue la fuente entre paréntesis, como en 'github:owner/repo' (github.com).
Su administrador estableció blockedMarketplaces o strictKnownMarketplaces en configuración administrada, y esta fuente no está permitida. Pida a su administrador que permita la fuente, o agregue una de las fuentes permitidas que el mensaje enumera.
Haga coincidir el resto del mensaje para ver qué tipo de política bloqueó la fuente:
Allowed sources: <list>: el bloqueo proviene de la lista de permisos strictKnownMarketplaces en lugar de la lista de bloqueos blockedMarketplaces
No external marketplaces are allowed.: la lista de permisos strictKnownMarketplaces está vacía
Un Tip: que el atajo asume github.com: la lista de permisos permite un host de git por nombre de host, y el atajo owner/repo que pasó apunta a github.com. Si el repositorio vive en su host interno, agréguelo nuevamente con su URL completa, como git@your-git-host.com:owner/repo.git
Un mercado que agregó antes de que la política se volviera más restrictiva también deja de actualizarse, porque la política se aplica en cada actualización.
`Marketplace "" is not in the allowed marketplace list`
La pestaña Errors muestra esta línea, o Marketplace "<name>" is blocked by enterprise policy, para un mercado que ya tiene registrado.
La misma configuración administrada que bloquea una marketplace source se aplica en el tiempo de carga. strictKnownMarketplaces no incluye este mercado, o blockedMarketplaces lo nombra, por lo que Claude Code deja de cargarlo y sus plugins. Para la variante de lista de permisos, la línea de orientación muestra las fuentes permitidas, o Contact your administrator to configure allowed marketplace sources. Para la variante de lista de bloqueos dice This marketplace source is explicitly blocked by your administrator.
`Plugin "" is blocked by your organization's policy and cannot be installed`
Una instalación fue rechazada con esta línea, una habilitación con la misma línea terminando cannot be enabled, o una instalación o actualización con una que nombra la razón: Plugin "<name>" is from marketplace "<marketplace>", which is blocked by your organization's policy, o Plugin "<name>" depends on "<dep>", which is blocked by your organization's policy.
La configuración administrada bloquea este plugin, su mercado, o una dependencia que necesita. Pida a su administrador qué entrada se aplica. Una dependencia bloqueada significa que el plugin no puede instalar hasta que el mercado de la dependencia sea permitido.
`--plugin-dir is disabled by your organization's managed settings (disableSideloadFlags)`
Inició claude con --plugin-dir, --plugin-url, --agents, o --mcp-config. Claude Code salió con este mensaje y Plugins, custom agents, and MCP servers can only be loaded from sources your administrator has approved.
Su administrador estableció disableSideloadFlags en configuración administrada, que desactiva los indicadores que cargan plugins, agents, y servidores desde rutas arbitrarias. Cargue el plugin desde un mercado aprobado en su lugar, o pida a su administrador que elimine la configuración.
Un mensaje relacionado en la pestaña /pluginErrors es --plugin-dir copy of "<name>" ignored: plugin is locked by managed settings. La configuración administrada habilita o deshabilita ese plugin por nombre, y Claude Code ignora su copia --plugin-dir de él para que el indicador no pueda anular la política.
`Plugins from ~/.claude/skills/ are blocked by your organization's managed settings`
Ejecutó claude plugin init o claude plugin enable, y se detuvo con esta línea. El mensaje nombra strictKnownMarketplaces or blockedMarketplaces y pide a su administrador que agregue {"source":"skills-dir"} a strictKnownMarketplaces o lo elimine de blockedMarketplaces.
La fuente skills-dir representa plugins que Claude Code carga desde su directorio ~/.claude/skills/. Pida a su administrador que haga el cambio que el mensaje nombra.
`Command-sourced plugins are disabled by your organization's managed settings`
Instaló o actualizó un plugin con una fuente command, y se detuvo con esta línea y The plugin was not installed or updated and its command was not run.
Su administrador estableció disableCommandPluginSources, por lo que Claude Code rechaza ejecutar el comando declarado por mercado que produce el plugin. Establecer allowManagedHooksOnly solo tiene el mismo efecto cuando disableCommandPluginSources no está establecido. Pida a su administrador si el plugin puede publicarse desde un tipo de fuente que la política permite.
`Marketplace '' is seed-managed`
Ejecutó claude plugin marketplace update <name>, y falló con Marketplace '<name>' is seed-managed (<dir>) y una sugerencia para pedir a su administrador.
Un operador pre-rellenó este mercado a través de CLAUDE_CODE_PLUGIN_SEED_DIR, y Claude Code trata un mercado administrado por semilla como de solo lectura. Una marketplace update masiva lo omite y actualiza los otros.
Para cambiar el contenido del mercado, pida a la persona que mantiene la imagen de semilla que lo actualice. Para el procedimiento, vea Seed containers and CI.
Next steps
Plugin loading reference: por qué los scopes, la caché, y la precedencia se comportan de la manera que lo hacen
Plugin commands reference: indicadores, valores predeterminados, salida, y códigos de salida para los comandos claude plugin
361* [Un error de acceso a GitHub en claude.ai](/docs/es/github-enterprise-server#marketplace-add-on-claude-ai-fails-with-a-github-access-error) significa que su propia cuenta de GitHub Enterprise aún no está conectada361* [Un error de acceso a GitHub en claude.ai](/docs/es/github-enterprise-server#marketplace-add-on-claude-ai-fails-with-a-github-access-error) significa que su propia cuenta de GitHub Enterprise aún no está conectada
367Agregó un mercado y ejecutó una instalación, y la instalación se detuvo con un mensaje en lugar de instalar nada. Estas entradas cubren esos mensajes. También cubren los mensajes relacionados que aparecen más tarde en la pestaña `/plugin` **Errors**, o como una pestaña **Discover** vacía, cuando un plugin o su mercado no se puede encontrar, leer o confiar.367Agregaste un marketplace y ejecutaste una instalación, y la instalación se detuvo con un mensaje en lugar de instalar algo. Estas entradas cubren esos mensajes. También cubren los mensajes relacionados que aparecen más tarde en la pestaña **Errors** de `/plugin`, o como una pestaña **Discover** vacía, cuando no se puede encontrar, leer o confiar en un plugin o en su marketplace.
370 `Plugin "<name>" not found in marketplace "<marketplace>"`370 `Plugin "<name>" not found in marketplace "<marketplace>"`
371</h3>371</h3>
372372
373Ejecutó `/plugin install <name>@<marketplace>` o `claude plugin install <name>@<marketplace>`, y el nombre del plugin no está en la copia del catálogo de ese mercado en su máquina.373Ejecutaste `/plugin install <name>@<marketplace>` o `claude plugin install <name>@<marketplace>`, y el nombre del plugin no está en la copia del catálogo de ese marketplaceque hay en tu máquina.
374374
375`claude plugin install` en su shell imprime el mismo mensaje cuando no ha agregado el mercado en absoluto. Si `claude plugin marketplace update <marketplace>` luego responde `Marketplace '<marketplace>' not found`, [agregue el mercado](#add-a-marketplace) primero.375`claude plugin install` en tu shell imprime el mismo mensaje cuando no has agregado el marketplace en absoluto. Si `claude plugin marketplace update <marketplace>` responde entonces `Marketplace '<marketplace>' not found`, primero [agrega el marketplace](#add-a-marketplace).
378 `not found in marketplace` witharefreshhint378 `not found in marketplace` conunasugerenciade actualización
379</h4>379</h4>
380380
381La sugerencia dice `Your local copy may be out of date — try claude plugin marketplace update <marketplace>` o `The marketplace couldn't be refreshed (...)`. Claude Code no actualizó el mercado antes de la búsqueda, como cuando está sin conexión, por lo que su copia del catálogo puede estar desactualizada. Actualice con el nombre del mercado, luego instalenuevamente:381La sugerencia dice `Your local copy may be out of date — try claude plugin marketplace update <marketplace>` o `The marketplace couldn't be refreshed (...)`. Claude Code no actualizó el marketplace antes de la búsqueda, porejemplo cuando estás sin conexión, así que tu copia del catálogo puede estar desactualizada. Actualízalo con el nombre del marketplacey luego vuelvea instalar:
387`claude plugin marketplace update` imprime `Successfully updated marketplace: <name>`, y `/plugin marketplace update` muestra `✔ Updated 1 marketplace`. Si la instalación reintentada imprime el mismo mensaje, verifique el nombre como [`not found in marketplace` with nohint](#the-message-has-no-hint) describe. [When Claude Code refreshesa marketplace beforeaninstall](/docs/es/plugins/loading#when-claude-code-refreshes-a-marketplace-before-an-install) enumera los otros casos donde la actualización no se ejecuta.387`claude plugin marketplace update` imprime `Successfully updated marketplace: <name>`, y `/plugin marketplace update` muestra `✔ Updated 1 marketplace`. Si la instalación reintentada imprime el mismo mensaje, revisa el nombre como se describe en [`not found in marketplace` sinsugerencia](#the-message-has-no-hint). [Cuándo Claude Code actualizaun marketplace antesdeuna instalación](/docs/es/plugins/loading#when-claude-code-refreshes-a-marketplace-before-an-install) enumera los otros casos enlos que la actualización no se ejecuta.
390 `not found in marketplace` with nohint390 `not found in marketplace` sinsugerencia
391</h4>391</h4>
392392
393Elnombre es el problema másprobable. Abra `/plugin`, vaya a **Discover**, y copie el nombre de la lista.393Lomásprobable es que el problema seael nombre. Abre `/plugin`, ve a **Discover** y copia el nombre de la lista.
394394
395Antes de v2.1.232, Claude Code actualizaba el mercadonombrado solo después de que la búsqueda fallara, y solo cuando la actualización automática estaba activada para él.395Antes de v2.1.232, Claude Code actualizaba el marketplaceindicado solo después de que la búsqueda fallara, y solo cuando tenía la actualización automática activada.
398 `Plugin "<name>" not found in any marketplace`398 `Plugin "<name>" not found in any marketplace`
399</h3>399</h3>
400400
401Ejecutó `/plugin install <name>` sin `@marketplace`, y ningún mercado registrado tiene ese plugin. `claude plugin install <name>` informa `Plugin "<name>" not found in any configured marketplace`.401Ejecutaste `/plugin install <name>` sin `@marketplace`, y ningún marketplace registrado tiene ese plugin. `claude plugin install <name>` informa `Plugin "<name>" not found in any configured marketplace`.
402402
403Sin un nombre de mercado, `claude plugin install` busca en los catálogos que ya tiene y no los actualiza primero, y `/plugin install` actualiza solo los mercados que tienen la actualización automática activada. Nombre el mercado, y Claude Code lo actualiza antes de buscar el plugin:403Sin un nombre de marketplace, `claude plugin install` busca en los catálogos que ya tiene y no los actualiza antes, y `/plugin install` actualiza solo los marketplaces que tienen la actualización automática activada. Indica el marketplace y Claude Code lo actualizará antes de buscar el plugin:
409Cuando la instalación funciona, ve `✓ Installed <plugin>.` en una sesión, o `Successfully installed plugin: <plugin>@<marketplace>` desde `claude plugin install`.409Cuando la instalación funciona, ves `✓ Installed <plugin>.` en una sesión, o `Successfully installed plugin: <plugin>@<marketplace>` desde `claude plugin install`.
410410
411Si no sabe qué mercadoenumera el plugin, ejecute `/plugin marketplace list` para los mercados que tiene, y naveguepor **Discover** en `/plugin` para el nombre del plugin.411Si no sabes qué marketplaceincluye el plugin, ejecuta `/plugin marketplace list` para ver los marketplaces que tienes, y buscaelnombre del plugin en **Discover** dentrode `/plugin`.
414 `Plugin '<name>@<marketplace>' is already installed globally`414 `Plugin '<name>@<marketplace>' is already installed globally`
415</h3>415</h3>
416416
417Ejecutó `/plugin install` para un plugin que ya está instalado en el scope de usuario o por configuración administrada, y Claude Code rechazó con `Use '/plugin' to manage existing plugins.` Si escribió el nombre del plugin sin `@<marketplace>`, el mensaje omite `globally`.417Ejecutaste `/plugin install` para un plugin que ya está instalado en el alcance de usuario o mediantela configuración administrada, y Claude Code lo rechazó con `Use '/plugin' to manage existing plugins.` Si escribiste el nombre del plugin sin `@<marketplace>`, el mensaje omite `globally`.
418418
419El plugin ya está disponible en cadaproyecto,porlo que no hay nada que agregar. Para cambiar su [scope](/docs/es/plugins/install), habilitarlo o deshabilitarlo, o configurarlo, abra `/plugin` y vaya a **Installed**.419El plugin ya está disponible en todoslosproyectos,así que no hay nada que agregar. Para cambiar su [alcance](/docs/es/plugins/install), habilitarlo o deshabilitarlo, o configurarlo, abre `/plugin` y ve a **Installed**.
420420
421Un plugin instalado solo en el scope de proyecto o local no activa este mensaje. Claude Code le permite instalarlo también en el scope de usuario, por lo que está disponible en otros proyectos.421Un plugin instalado solo en el alcance de proyecto o local no activa este mensaje. Claude Code te permite instalarlo también en el alcance de usuario, para que esté disponible en otros proyectos.
422422
423`claude plugin install` en su shell imprime un mensaje diferente. Para un plugin ya instalado en el scope de destino, imprime `Plugin "<name>@<marketplace>" is already installed (scope: user)` y sale con 0. Si su directorio de caché falta, el mismo comando lo descarganuevamente.423`claude plugin install` en tu shell imprime un mensaje diferente. Para un plugin ya instalado en el alcance de destino, imprime `Plugin "<name>@<marketplace>" is already installed (scope: user)` y sale con 0. Si falta su directorio de caché, el mismo comando lo vuelvea descargar.
426 `"<plugin>" was not installed: it would share its folder with "<other>"`426 `"<plugin>" was not installed: it would share its folder with "<other>"`
427</h3>427</h3>
428428
429Instaló un plugin a través de `claude plugin install`, `/plugin`, o una sugerencia de instalación en una sesión, y Claude Code lo rechazó con esta línea, o con `would share its saved data with`.429Instalaste un plugin mediante `claude plugin install`, `/plugin` o una sugerencia de instalación en una sesión, y Claude Code lo rechazó con esta línea, o con `would share its saved data with`.
430430
431El id del plugin rechazado y el id de un plugin instalado se asignan a la misma carpeta en el disco: son iguales una vez que `.` y `@` se escriben como `-`. En macOS y Windows, los ids que difieren solo en mayúsculas seasignan a la misma carpeta también. Instalar ambos pondría los archivos de un plugin en la carpeta del otro, por lo que Claude Code rechaza y el plugin instalado mantiene sus archivos.431El id del plugin rechazado y el id de un plugin instalado corresponden a la misma carpeta en el disco: son iguales una vez que `.` y `@` se escriben como `-`. En macOS y Windows, los ids que difieren solo en mayúsculas tambiéncorresponden a la misma carpeta. Instalar ambos pondría los archivos de un plugin en la carpeta del otro, así que Claude Code lo rechaza y el plugin instalado conserva sus archivos.
432432
433El mensaje nombra la salida:433El mensaje indica la salida:
434434
435* **El otro plugin está instalado**: el mensaje dice `Only one of the two can be installed.` ynombra el comando `claude plugin uninstall`, o el paso de desinstalación en `/plugin`, que elimina el otro plugin. Ejecútelo, luego instalenuevamente. Para loque la desinstalación elimina, vea [Whatanuninstalldeletesandkeeps](/docs/es/plugins/cli-reference#what-an-uninstall-deletes-and-keeps).435* **El otro plugin está instalado**: el mensaje dice `Only one of the two can be installed.` eindica el comando `claude plugin uninstall`, o el paso de desinstalación en `/plugin`, que elimina el otro plugin. Ejecútaloy luego vuelvea instalar. Para saberquéelimina la desinstalación, consulta [Quéeliminayquéconservauna desinstalación](/docs/es/plugins/cli-reference#what-an-uninstall-deletes-and-keeps).
436* **Ambos ids llegan en una instalación**, como un plugin y una dependencia que necesita: ningún orden de instalación ayuda. Solo un mantenedor del mercado que enumera los dos plugins puede arreglarlo, renombrando uno de ellos. Cuando los dos provienen de diferentesmercados, un mantenedor de cualquiera de ellos puede.436* **Ambos ids llegan en una sola instalación**, como un plugin y una dependencia que necesita: ningún orden de instalación ayuda. Solo un mantenedor del marketplace que incluye los dos plugins puede arreglarlo, cambiandoel nombre de uno de ellos. Cuando los dos provienen de marketplacesdiferentes, puede hacerlo un mantenedor de cualquiera de ellos.
439 `This plugin uses a source type your Claude Code version does not support`439 `This plugin uses a source type your Claude Code version does not support`
440</h3>440</h3>
441441
442Instaló un plugin cuya entrada demercado usa un tipo de fuente que esta versión de Claude Code no puede obtener, y Claude Code se detuvo con este mensaje y `Update Claude Code and try again.`442Instalaste un plugin cuya entrada enelmarketplace usa un tipo de fuente que esta versión de Claude Code no puede obtener, y Claude Code se detuvo con este mensaje y `Update Claude Code and try again.`
443443
444Actualice Claude Code, luego reintente la instalación. Los tipos de fuente están en la [marketplacereference](/docs/es/plugins/marketplace-reference).444Actualiza Claude Code y luego reintenta la instalación. Los tipos de fuente están en la [referenciade marketplaces](/docs/es/plugins/marketplace-reference).
450Instaló un plugin que se distribuye como un archivo zip, y Claude Code lo rechazó con esta línea y `The archive was not installed.` La entrada de mercado del plugin usa una fuente [`archive`](/docs/es/plugins/marketplace-reference) con un pin `sha256`, y el resumen del archivo descargado no coincide con el pin.450Instalaste un plugin que se distribuye como archivo zip, y Claude Code lo rechazó con esta línea y `The archive was not installed.` La entrada del plugin en el marketplace usa una [fuente `archive`](/docs/es/plugins/marketplace-reference) con un `sha256` fijado, y el hash del archivo descargado no coincide con el valor fijado.
451451
452El mensaje completo se ve así:452El mensaje completo se ve así:
453453
455Plugin archive integrity check failed for https://artifacts.example.com/claude-plugins/my-plugin.zip: expected sha256 6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1, got ac52220c0914ef8ca6a602e4a7362f88d30fb021110f72a6d15b68c3fe7df2b7. The archive was not installed. Verify the sha256 in the marketplace entry, or that the URL serves the intended file.455Plugin archive integrity check failed for https://artifacts.example.com/claude-plugins/my-plugin.zip: expected sha256 6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1, got ac52220c0914ef8ca6a602e4a7362f88d30fb021110f72a6d15b68c3fe7df2b7. The archive was not installed. Verify the sha256 in the marketplace entry, or that the URL serves the intended file.
456```456```
457457
458La solución difiere para eleditor y elinstalador:458La solución esdistinta para quienpublica y paraquien instala:
459459
460* **Usted publica el plugin**: recompute el resumen del archivo exacto que sirve la URL y actualice el `sha256` en la entrada del mercado. Use `shasum -a 256 my-plugin.zip`, o `Get-FileHash -Algorithm SHA256 my-plugin.zip` en PowerShell460* **Publicas el plugin**: vuelvea calcular el hash del archivo exacto que sirve la URL y actualiza el `sha256` en la entrada del marketplace. Usa `shasum -a 256 my-plugin.zip`, o `Get-FileHash -Algorithm SHA256 my-plugin.zip` en PowerShell
461* **Usted instala el plugin**: ejecute `/plugin marketplace update <name>` en una sesión para actualizar el catálogo en caso deque la entrada haya sidocorregida, luego reintente la instalación. Si los resúmenesaúnnocoinciden después de la actualización, pida al propietario del mercado qué archivo fijaron antes de instalar461* **Instalas el plugin**: ejecuta `/plugin marketplace update <name>` en una sesión para actualizar el catálogo porsi la entrada secorrigió, y luego reintenta la instalación. Si los hashessiguensincoincidir después de la actualización, pregúntale al propietario del marketplace qué archivo fijó antes de instalar
464 `An npm plugin source must name a registry package`
465</h3>
466
467Un plugin cuya entrada en el marketplace usa una [fuente `npm`](/docs/es/plugins/marketplace-reference#npm-plugin-source) no se pudo instalar, actualizar o cargar, y el mensaje incluye esta oración. Claude Code revisó el valor `package` de la entrada antes de obtener nada y lo rechazó. El mensaje indica el valor y el motivo:
468
469```text theme={null}
470"github:acme/formatter" was not installed: it is not an http or https link. An npm plugin source must name a registry package (name or name@version) or link to a tarball file. For a plugin in a git repository, use a "github", "url" or "git-subdir" source.
471```
472
473El propietario del marketplace tiene que cambiar la entrada:
474
475* **Si eres tú**: cambia `package` a un valor que acepte la [referencia de la fuente de plugins npm](/docs/es/plugins/marketplace-reference#npm-plugin-source), o cambia la entrada a una fuente `github`, `url` o `git-subdir`
476* **Si no eres tú**: informa el mensaje al propietario del marketplace
464 `Marketplace "<name>" is registered from an untrusted source`479 `Marketplace "<name>" is registered from an untrusted source`
465</h3>480</h3>
466481
467Un mercado que agregóanteriormente dejó de cargarse, y también sus plugins. Esta línea aparece en la pestaña `/plugin` **Errors** o en la siguiente actualización.482Un marketplace que agregasteantes dejó de cargarse, y también sus plugins. Esta línea aparece en la pestaña **Errors** de `/plugin` o en la siguiente actualización.
468483
469El mercado está registrado bajo un nombre que está [reservado para mercados oficiales de Anthropic](/docs/es/plugins/marketplace-reference), pero su fuente registrada no es un repositorio de GitHub `anthropics`. Los nombres reservados se re-verifican cada vez que un mercado se carga o se actualiza, por lo que el mercado y los plugins instalados desde él dejan de cargarse.484El marketplace está registrado con un nombre [reservado para losmarketplaces oficiales de Anthropic](/docs/es/plugins/marketplace-reference), pero su fuente registrada no es un repositorio de GitHub de `anthropics`. Los nombres reservados se vuelvena comprobar cada vez que un marketplace se carga o se actualiza, por lo que el marketplace y los plugins instalados desde él dejan de cargarse.
470485
471El mensaje completo nombra el nombre reservado y la solución:486El mensaje completo indica el nombre reservado y la solución:
472487
473```text theme={null}488```text theme={null}
474Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.489Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.
475```490```
476491
477La solución difiere para usuarios y editores:492La solución esdistinta para usuarios y para quienes publican:
493
494* **Usas el marketplace**: en tu shell, ejecuta `claude plugin marketplace remove <name>` y luego vuelve a agregar el marketplace desde el repositorio oficial de `github.com/anthropics`
495* **Publicas un marketplace de terceros que usaba el nombre antes de que se reservara**: cámbiale el nombre y pide a los usuarios que lo vuelvan a agregar desde tu fuente
496
497Antes de v2.1.205, Claude Code comprobaba el nombre solo cuando agregabas el marketplace, así que una entrada registrada antes de que su nombre se reservara seguía cargándose.
498
499<h3 id="marketplace-is-added-but-ignored">
500 `Marketplace "<name>" is added but ignored`
501</h3>
502
503El marketplace tiene una entrada en `~/.claude/plugins/known_marketplaces.json`, pero la entrada no pasó una comprobación que Claude Code ejecuta cada vez que lee ese archivo, por lo que el marketplace y los plugins instalados desde él dejan de cargarse. En tu shell, `claude plugin list` informa cada plugin afectado con una línea que indica el motivo y la solución:
504
505```text theme={null}
506Marketplace team-tools is added but ignored. Its location is on a network drive, has "." or ".." in its path, or couldn't be checked. Re-add the marketplace (one added from a folder or file must be re-added from a copy on this computer), or, to trust a folder on a network drive, declare it under extraKnownMarketplaces in user or managed settings.
507```
508
509En una sesión, la pestaña **Errors** de `/plugin` pone el nombre del marketplace entre comillas, termina la línea después del motivo y muestra la solución en la línea de abajo.
510
511La oración que sigue a `is added but ignored` indica la comprobación que la entrada no pasó:
512
513* `Its location is on a network drive, has "." or ".." in its path, or couldn't be checked`, o la misma oración sobre `The folder or file it was added from`: el directorio del marketplace, o la ruta local desde la que se agregó, está en una ubicación de red, tiene un segmento `.` o `..` en su ruta, o no se pudo comprobar
514* `Its git URL can't be used: <reason>` o `Its URL can't be read as an https:// or http:// address`: la URL de origen registrada en la entrada es una desde la que Claude Code se niega a clonar u obtener
515* `Its source doesn't match its extraKnownMarketplaces entry in user or managed settings`: la entrada no coincide con la declaración de [`extraKnownMarketplaces`](/docs/es/settings-reference#extraknownmarketplaces) del mismo nombre
516
517Cuando `(see the debug log)` sigue a `is added but ignored` en lugar de un motivo, Claude Code rechaza el nombre del marketplace, por ejemplo [otra grafía de un nombre reservado](/docs/es/errors#marketplace-name-is-another-spelling-of-a-reserved-name). El [registro de depuración](/docs/es/debug-your-config) indica la entrada.
478518
479***Usted usa elmercado**: en su shell, ejecute `claude plugin marketplace remove <name>`, luego agregue el mercado nuevamente desde el repositorio oficial `github.com/anthropics`519**Quéhacer:**
480* **Usted publica un mercado de terceros que usó el nombre antes de que se reservara**: cámbielo de nombre y pida a los usuarios que lo vuelvan a agregar desde su fuente
481520
482Antesdev2.1.205, ClaudeCodeverificabaelnombresolocuandoagregaba el mercado,porloque una entradaregistradaantesdequesunombresereservaraseguíacargándose.521*Siguela solución del mensaje. En tu shell, ejecuta`claudepluginmarketplaceremove<name>`,luegovuelvea agregar el marketplacedesdeunafuentecompatible o una rutalocalyreinstalasusplugins,queelcomandodeeliminación desinstala. El comando de eliminación funciona con una entrada ignorada
522* Para mantener un marketplace en una ubicación de red, decláralo en [`extraKnownMarketplaces`](/docs/es/settings-reference#extraknownmarketplaces) en tu configuración de usuario o en la configuración administrada; una declaración en el `.claude/settings.json` o `.claude/settings.local.json` de un repositorio no cuenta
523* Para una fuente que difiere de su declaración en la configuración, vuelve a agregar el marketplace desde la fuente declarada o cambia la declaración. `claude plugin marketplace add` rechaza la misma discrepancia; consulta [la entrada correspondiente de `Cannot add marketplace`](#cannot-add-marketplace-source-doesnt-match)
524* Para un nombre rechazado, elimina el marketplace usando el comando que aparece después de `Remove it:` cuando la línea lo incluye; volver a agregarlo con el mismo nombre se rechaza de nuevo
525
526Antes de v2.1.286, fuera cual fuera el motivo, `claude plugin list` informaba un marketplace así como `Marketplace <name> not found`, y la pestaña **Errors** de `/plugin` lo informaba como `Marketplace "<name>" is registered but was refused (see the debug log)`. El motivo solo aparecía en el registro de depuración. En v2.1.286, las oraciones del motivo y de la solución usaban otra redacción, como `Its recorded location is network-shaped or unclassifiable (never probed)`.
485 `Plugin <name> has a corrupt manifest file` or `has an invalid manifest file`529 `Plugin <name> has a corrupt manifest file` o `has an invalid manifest file`
486</h3>530</h3>
487531
488Claude Code obtuvo el plugin, luego fallóal leer su `.claude-plugin/plugin.json`. En el shell, el `<name>` en esta línea puede ser un nombre de directorio temporal; el prefijo `Failed to install plugin "<name>@<marketplace>"` lleva el nombre real del plugin. La redacción dice qué verificación falló:532Claude Code obtuvo el plugin y luego nopudo leer su `.claude-plugin/plugin.json`. En el shell, el `<name>` de esta línea puede ser un nombre de directorio temporal; el prefijo `Failed to install plugin "<name>@<marketplace>"` lleva el nombre real del plugin. La redacción indica qué comprobación falló:
489533
490* **`corrupt manifest file`, seguido de `JSON parse error:`**: el archivo no es JSON válido534* **`corrupt manifest file`, seguido de `JSON parse error:`**: el archivo no es JSON válido
491* **`invalid manifest file`, seguido de `Validation errors:`**: el archivo se analiza pero falla el esquema, como `name: Invalid input` para un campo requerido faltante535* **`invalid manifest file`, seguido de `Validation errors:`**: el archivo se analiza pero nocumple el esquema, porejemplo `name: Invalid input` cuandofalta un campo obligatorio
492536
493`claude plugin install` informa cualquiera como `Failed to install plugin "<name>@<marketplace>":` y sale con código 1.537`claude plugin install` informa cualquiera de los dos como `Failed to install plugin "<name>@<marketplace>":` y sale con código 1.
494538
495El autor del plugin tiene que corregir el archivo, y el plugin no se puede instalar hasta entonces:539El autor del plugin tiene que corregir el archivo, y el plugin no se puede instalar hasta entonces:
496540
497* **Si eso esusted**: ejecute `claude plugin validate <plugin-directory>` en su shell para ver el mismo error con la ruta ofensiva, luego corrija el archivo541* **Si erestú**: ejecuta `claude plugin validate <plugin-directory>` en tu shell para ver el mismo error con la ruta problemáticay luego corrige el archivo
498* **Si no esusted**: informe el mensaje al propietario del mercado542* **Si no erestú**: informa el mensaje al propietario del marketplace
501 `Plugin directory not found at path: <path>`545 `Plugin directory not found at path: <path>`
502</h3>546</h3>
503547
504La pestaña **Errors** en `/plugin` muestra esto para un plugin habilitado que su mercadoenumerapor una ruta relativa, como `./plugins/my-plugin`, cuando no existe ningún directorio en esa ruta dentro del mercado. Si mantiene el mercado, corrija la ruta `source` de la entrada o restaure la carpeta. De lo contrario, informe el mensaje al propietario del mercado.548La pestaña **Errors** de `/plugin` muestra esto para un plugin habilitado que su marketplaceincluyemediante una ruta relativa, como `./plugins/my-plugin`, cuando no existe ningún directorio en esa ruta dentro del marketplace. Si mantienes el marketplace, corrige la ruta `source` de la entrada o restaura la carpeta. De lo contrario, informa el mensaje al propietario del marketplace.
505549
506`Marketplace directory not found at path: <path>` significa que el directorio del mercado en sífalta. Para un mercado que agregó desde una ruta local, ese directorio se movió o se eliminó. Restáurelo, o elimine el mercado y agréguelonuevamente desde su nueva ubicación.550`Marketplace directory not found at path: <path>` significa,en cambio, que falta el directorio del propiomarketplace. En un marketplace que agregaste desde una ruta local, ese directorio se movió o se eliminó. Restáuralo, o elimina el marketplace y vuelveaagregarlo desde su nueva ubicación.
509 `No plugins available` or `No marketplaces configured`553 `No plugins available` o `No marketplaces configured`
510</h3>554</h3>
511555
512Abrió `/plugin` y la pestaña **Discover** está vacía, o `claude plugin marketplace list` imprimió `No marketplaces configured`.556Abriste `/plugin` y la pestaña **Discover** está vacía, o `claude plugin marketplace list` imprimió `No marketplaces configured`.
513557
514Ningúnmercadoestá registrado, por lo que no hay catálogo para mostrar. En una sesión, agregue el mercado oficial, `anthropics/claude-plugins-official`:558Nohayningúnmarketplace registrado, así que no hay catálogo que mostrar. En una sesión, agrega el marketplace oficial, `anthropics/claude-plugins-official`:
520Claude Code imprime `Successfully added marketplace: claude-plugins-official`, y **Discover** enumera sus plugins. La página [Anthropic marketplaces](/docs/es/plugins/anthropic-marketplaces) enumera los otros mercados que puede agregar.564Claude Code imprime `Successfully added marketplace: claude-plugins-official`, y **Discover** muestra sus plugins. La página de[marketplaces de Anthropic](/docs/es/plugins/anthropic-marketplaces) enumera los otros marketplaces que puedes agregar.
523 `Marketplace "<name>" is already added from a different source`567 `Marketplace "<name>" is already added from a different source`
524</h3>568</h3>
525569
526Confirmó agregar un mercado a travésde [`/plugin install <plugin> --marketplace <source>`](/docs/es/plugins/install#add-a-marketplace-and-install-in-one-command), y el catálogo que Claude Code obtuvo de esa fuente tiene el mismo nombre que un mercado que ya agregó desde una fuente diferente. Claude Code mantiene el mercado existente en lugar de reemplazarlo, y el plugin no se instala.570Confirmaste agregar un marketplacemediante [`/plugin install <plugin> --marketplace <source>`](/docs/es/plugins/install#add-a-marketplace-and-install-in-one-command), y el catálogo que Claude Code obtuvo de esa fuente tiene el mismo nombre que un marketplace que ya agregaste desde una fuente diferente. Claude Code conserva el marketplace existente en lugar de reemplazarlo, y el plugin no se instala.
527571
528El mensaje completo se ve así:572El mensaje completo se ve así:
529573
531Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.575Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.
536* **El mercado que ya agregó**: instale desde él por nombre con `/plugin install <plugin>@<name>`580* **El marketplace que ya agregaste**: instala desde él por nombre con `/plugin install <plugin>@<name>`
537* **La nueva fuente**: ejecute `/plugin marketplace remove <name>`, luego reintente la instalación581* **La nueva fuente**: ejecuta `/plugin marketplace remove <name>` y luego reintenta la instalación
540 `Cannot add marketplace "<name>": its network source differsfromtheonedeclaredforitin settings`584 `Cannot add marketplace "<name>": its source doesn'tmatchitsextraKnownMarketplacesentryinuserormanaged settings`
541</h3>585</h3>
542586
543Ejecutó`marketplaceadd`, y el catálogo en esa fuente tiene el mismonombrequeunmercadoqueunarchivo de configuración ya declara bajo [`extraKnownMarketplaces`](/docs/es/settings-reference#extraknownmarketplaces) conunafuentediferente. Claude Code rechaza la adición y no registra nada.587Agregasteunmarketplace, y el `name`desu`marketplace.json`yatieneunaentrada de [`extraKnownMarketplaces`](/docs/es/settings-reference#extraknownmarketplaces) entuconfiguraciónde usuario o en la configuración administrada. La fuente que indicaste difiere de la que incluye esa entrada, así que Claude Code rechaza la adición y no registra nada.
588
589Dos fuentes coinciden cuando tienen el mismo tipo y el mismo valor en cada campo. Una entrada que establece un `ref` que no pasaste cuenta como diferente. Una entrada `github` también cuenta como diferente cuando indicaste el repositorio como una URL `https://github.com/`, porque Claude Code registra esa URL como una [fuente `git`](/docs/es/plugins/marketplace-reference#marketplace-sources). Haz una de estas cosas:
590
591* **Usar la fuente declarada**: Claude Code [registra por sí solo los marketplaces declarados en la configuración](/docs/es/settings-reference#extraknownmarketplaces), así que primero ejecuta `/plugin marketplace list` en una sesión. Si la lista muestra el nombre, el marketplace ya está registrado y no hay nada que agregar.
592
593 Si la lista no lo muestra, agrégalo con la fuente escrita tal como la escribe la entrada. Para una entrada cuyo objeto `source` es `{ "source": "github", "repo": "acme-corp/claude-plugins", "ref": "v1.2.0" }`, ejecuta esto:
545El mensaje terminacon la solución: la fuente debecoincidircon la que se declara paraestenombreenlaconfiguración,ocambialadeclaración. Compare la fuente que pasó contra la entrada `extraKnownMarketplaces` para ese nombre, incluida su `ref`, `path`, y`headers`, luego hagaunodeestos:599***Usar la nueva fuente**:editaoelimina la entradade`extraKnownMarketplaces`yluegovuelveaagregarelmarketplace. Si la declara la configuraciónadministrada, pídeseloatuadministrador
546600
547***Uselafuentedeclarada**: agregueelmercadodesdelafuentequelaentradadeconfiguraciónnombra601Antesdev2.1.287,elmensaje decía `Cannot add marketplace "<name>": itsnetworksourcediffersfromtheonedeclaredforitinsettings (kind, target, or a fetch-shaping field such as headers / ref / path / sparsePaths)`.
548* **Use la nueva fuente**: edite o elimine la entrada `extraKnownMarketplaces`, luego agregue el mercado nuevamente. Si la configuración administrada la declara, pida a su administrador
551 `Failed to install: <plugin> (<reason>)`604 `Failed to install: <plugin> (<reason>)`
552</h3>605</h3>
553606
554Seleccionó plugins para instalar en el menú `/plugin`, ninguno de ellos se instaló, y el menú se cerró con este resumen de lo que falló.607Seleccionaste plugins para instalar en el menú de `/plugin`, ninguno se instaló y el menú se cerró con este resumen de lo que falló.
555608
556Algunasrazones, como la salida de git después deunclonadofallido, muestran solo su primera línea. Cuando talrazónfueacortada, el resumen termina con `Installing a plugin from its details (Enter) in /plugin shows its full error.`609Algunosmotivos, como la salida de git trasunaclonaciónfallida, muestran solo su primera línea. Cuando unmotivoasíse acortó, el resumen termina con `Installing a plugin from its details (Enter) in /plugin shows its full error.`
557610
558Qué hacer depende de si el resumen acortó larazón:611Qué hacer depende de si el resumen acortó elmotivo:
559612
560* Corrija lo que larazón entre paréntesis nombra613* Corrige lo que indicaelmotivo entre paréntesis
561* Cuando larazónfueacortada, ejecute `/plugin`, seleccione el plugin en la pestaña **Discover**, y presione **Enter** para instalarlo desde sus detalles. Si la instalación falla allí, la vista de detalles muestra el error completo614* Cuando elmotivoseacortó, ejecuta `/plugin`, selecciona el plugin en la pestaña **Discover** y presiona **Enter** para instalarlo desde sus detalles. Si la instalación falla ahí, la vista de detalles muestra el error completo
564 `Could not move the new copy of this plugin version into <path>`617 `Could not move the new copy of this plugin version into <path>`
565</h3>618</h3>
566619
567Cuando instala un plugin, Claude Code descarga una copia fresca de sus archivos y la mueve a la carpeta de esa versión en la [plugincache](/docs/es/plugins/loading#find-plugins-on-disk). Este mensaje significa que el movimiento falló, generalmente porque otro programa estaba usando la carpeta mientras se ejecutaba la instalación. El código del sistema de archivos aparece entre paréntesis:620Cuando instalas un plugin, Claude Code descarga una copia nueva de sus archivos y la mueve a la carpeta de esa versión en la [cachéde plugins](/docs/es/plugins/loading#find-plugins-on-disk). Este mensaje significa que el movimiento falló, normalmente porque otro programa estaba usando la carpeta mientras se ejecutaba la instalación. El código del sistema de archivos aparece entre paréntesis:
568621
569```text theme={null}622```text theme={null}
570Could not move the new copy of this plugin version into /home/user/.claude/plugins/cache/acme-tools/formatter/1.2.0: the new copy or the version folder stayed busy while the install ran (ENOTEMPTY) — usually a scanner still reading the freshly downloaded files, another program using that folder, or another process re-creating it. The previously installed copy was moved back. Run the install again once other Claude Code sessions or programs using that folder have finished.623Could not move the new copy of this plugin version into /home/user/.claude/plugins/cache/acme-tools/formatter/1.2.0: the new copy or the version folder stayed busy while the install ran (ENOTEMPTY) — usually a scanner still reading the freshly downloaded files, another program using that folder, or another process re-creating it. The previously installed copy was moved back. Run the install again once other Claude Code sessions or programs using that folder have finished.
571```624```
572625
573El mensaje dice qué sucedió con la copia que estaba instalada antes, lo que le dice si el plugin aúnfunciona:626El mensaje indica qué pasó con la copia que estaba instalada antes, lo que te dice si el plugin siguefuncionando:
574627
575* `The previously installed copy was moved back`: la versión que tenía aúnestá instalada628* `The previously installed copy was moved back`: la versión que teníassigue instalada
576* `had to be removed first`, `was not moved back`, o `could not be moved back`: esa versión del plugin no está instalada hasta que una instalación tenga éxito629* `had to be removed first`, `was not moved back` o `could not be moved back`: esa versión del plugin no está instalada hasta que una instalación tenga éxito
577* Sin tal oración: no había una copia anterior, por lo que la versión aún no está instalada630* Ninguna oración de ese tipo: no había una copia anterior, así que la versión todavía no está instalada
578631
579En Windows, cuando otro programa mantiene la copia instalada en sí, el mensaje en sulugardice que esa copia `could not be replaced` y que `It was not replaced and the new copy was discarded`, por lo que la versión que tenía aúnestá instalada.632En Windows, cuando otro programa retiene la propia copia instalada, el mensaje diceencambio que esa copia `could not be replaced` y que `It was not replaced and the new copy was discarded`, así que la versión que teníassigue instalada.
580633
581Una lista `Left on disk` nombra carpetas apartadas dentro de la caché. Una instalación posterior de esa versión o una limpieza de caché de plugins las elimina, por lo que no necesitaeliminarlas.634Una lista `Left on disk` indica carpetas apartadas dentro de la caché. Una instalación posterior de esa versión o una limpieza de la caché de plugins las elimina, así que no necesitasborrarlas.
582635
583Para corregir la instalación:636Para corregir la instalación:
584637
585* Cierre otras sesiones de Claude Code, editores y terminales que estén usando la carpeta del plugin bajo `~/.claude/plugins/cache`, luego ejecute la instalación nuevamente638* Cierra otras sesiones de Claude Code, editores y terminales que estén usando la carpeta del plugin en `~/.claude/plugins/cache` y luego vuelvea ejecutar la instalación
586* Cuando el mensaje diceverificar los permisos de la carpeta de caché de plugins, restauresu permiso de escritura en la carpeta que nombra y libere espacio en disco, luego ejecute la instalación nuevamente639* Cuando el mensaje indiquerevisar los permisos de la carpeta de la caché de plugins, restauratu permiso de escritura en la carpeta que indica y libera espacio en disco, y luego vuelvea ejecutar la instalación
592Un plugin que declara dependencias puede fallar alinstalar, o instalar y permanecer deshabilitado, cuando una dependencia no se puede satisfacer. El mensaje loalcanza en el momento de la instalación o en el momento de la carga:645Un plugin que declara dependencias puede noinstalarse, o instalarse y quedar deshabilitado, cuando una dependencia no se puede satisfacer. El mensaje tellega en el momento de la instalación o en el momento de la carga:
593646
594* **Durante la instalación**: el rechazo regresa como el mensaje de error de la instalación647* **Durante la instalación**: el rechazo sedevuelve como el mensaje de error de la instalación
595* **Cuando el plugin se carga**: el problema aparece en `claude plugin list` y la pestaña `/plugin` **Errors**, y Claude Code mantiene el plugin afectado deshabilitado hasta que lo resuelva648* **Cuando el plugin se carga**: el problema aparece en `claude plugin list` y en la pestaña **Errors** de `/plugin`, y Claude Code mantiene deshabilitado el plugin afectado hasta que lo resuelvas
596649
597La tabla enumera cada mensaje y su solución. Para declarar dependencias como autor, vea [Plugindependencies](/docs/es/plugins/dependencies).650La tabla enumera cada mensaje y su solución. Para declarar dependencias como autor, consulta [Dependenciasde plugins](/docs/es/plugins/dependencies).
601| `Dependency "<dep>" is not installed` | Una dependencia declarada no está instalada. | Instálela en su shell con `claude plugin install <dep>@<marketplace>`, o desinstale el plugin. Si el mercado de la dependencia aún no está registrado, agréguelo y ejecute `/reload-plugins` en su sesión, que instala las dependencias faltantes que puede resolver. |654| `Dependency "<dep>" is not installed` | Una dependencia declarada no está instalada. | Instálala en tu shell con `claude plugin install <dep>@<marketplace>`, o desinstala el plugin. Si el marketplace de la dependencia aún no está registrado, agrégalo y ejecuta `/reload-plugins` en tu sesión, lo que instala las dependencias faltantes que puede resolver. |
602| `Dependency "<dep>" is disabled` | La dependencia está instalada pero desactivada. | Habilite la dependencia, o desinstale el plugin que la necesita. |655| `Dependency "<dep>" is disabled` | La dependencia está instalada pero desactivada. | Habilita la dependencia, o desinstala el plugin que la necesita. |
603| `Requires "<dep>" <range>, installed <version>` | La versión de la dependencia instalada está fuera del rango declarado del plugin. | Actualice la dependencia a una versión enel rango, o desinstale el plugin. |656| `Requires "<dep>" <range>, installed <version>` | La versión de la dependencia instalada está fuera del rango declarado porel plugin. | Actualiza la dependencia a una versión dentrodel rango, o desinstala el plugin. |
604| `<Plugin or Dependency> "<name>" has conflicting version requirements` | Ninguna versión satisface cadarango que la fija. El mensaje enumera los rangos. | Desinstale o actualice uno de los plugins en conflicto, o pida al autor ascendente que amplíe su restricción. |657| `<Plugin or Dependency> "<name>" has conflicting version requirements` | Ninguna versión satisface todoslosrangos que la fijan. El mensaje enumera los rangos. | Desinstala o actualiza uno de los plugins en conflicto, o pide al autor original que amplíe su restricción. |
605| `... has version requirements too complex to intersect` o `has an invalid version requirement` | Un rango no es semver válido, o los rangos combinados no se pueden intersectar. | Corrija el rango inválido o simplifique las cadenas `\|\|` largas. |658| `... has version requirements too complex to intersect` o `has an invalid version requirement` | Un rango no es semver válido, o los rangos combinados no se pueden intersecar. | Corrige el rango noválido o simplifica las cadenas `\|\|` largas. |
606| `... has no git tag satisfying <range>` | El repositorio de la dependencia no tiene una etiqueta `<name>--v*` enel rango. | Verifique que lasetiquetasascendentesselancen con esa convención, o relaje el rango. |659| `... has no git tag satisfying <range>` | El repositorio de la dependencia no tiene ninguna etiqueta `<name>--v*` dentrodel rango. | Comprueba que elproyectooriginaletiquetesusversiones con esa convención, o flexibiliza el rango. |
607| `Dependency "<dep>" (required by <plugin>) is in <marketplace>, which is not in the allowlist` | La dependencia está en un mercado diferente, y la resolución entre mercados está desactivada pordefecto. | Instaleladependenciaustedmismo en el mismo scope, en su shell con `claude plugin install <dep>@<marketplace>` más el `--scope` en el que está instalando el plugin, luego reintente. |660| `Dependency "<dep>" (required by <plugin>) is in <marketplace>, which is not in the allowlist` | La dependencia está en un marketplace diferente, y la resolución entre marketplaces está desactivada deforma predeterminada. | Instalatúmismoladependencia en el mismo alcance, en tu shell con `claude plugin install <dep>@<marketplace>` más el `--scope` en el que estás instalando el plugin, y luego reintenta. |
608661
609Para verestosprogramáticamente, ejecute `claude plugin list --json` en su shell. Los plugins con problemas llevan un campo `errors` con los mensajes y un campo `errorDetails` con un `type` para cada uno: las primeras dos filas son `dependency-unsatisfied` y la tercera es `dependency-version-unsatisfied`.662Para verlosdeforma programática, ejecuta `claude plugin list --json` en tu shell. Los plugins con problemas incluyen un campo `errors` con los mensajes y un campo `errorDetails` con un `type` para cada uno: las dos primeras filas son `dependency-unsatisfied` y la tercera es `dependency-version-unsatisfied`.
612 Plugin installed but not working665 Plugin installed but not working
874Un servidor de lenguaje que no está configurado para el espacio de trabajo puede reportar importaciones no resueltas para paquetes internos. No hay nada que corregir en el lado de Claude Code, y los diagnósticos no impiden que Claude edite código.927Un servidor de lenguaje que no está configurado para el espacio de trabajo puede reportar importaciones no resueltas para paquetes internos. No hay nada que corregir en el lado de Claude Code, y los diagnósticos no impiden que Claude edite código.
880Está desarrollando un plugin y cargándolo con `--plugin-dir` o instalándolo desde un mercado local. Estas entradas cubren los fallos que encuentra mientras desarrolla un plugin. Para que las verificaciones seejecuten después de cada cambio, vea [Testanddebug](/docs/es/plugins/create#test-and-debug).933Estás desarrollando un plugin y cargándolo con `--plugin-dir` o instalándolo desde un marketplace local. Estas entradas cubren los fallos que encuentras mientras desarrollas un plugin. Para las verificaciones quedebesejecutar después de cada cambio, consulta [Probarydepurar](/docs/es/plugins/create#test-and-debug).
881934
882Dos fallos que también alcanzan a los usuarios de un plugin tienen sus entradas bajo [Plugininstalledbutnotworking](#plugin-installed-but-not-working):935Dos fallos que también afectan a los usuarios de un plugin tienen sus entradas en [Elpluginestáinstaladopero no funciona](#plugin-installed-but-not-working):
883936
884* **Un hook que no se dispara**: vea [hooks thatdon'tfire](#failed-to-load-hooks-from-and-hooks-that-dont-fire)937* **Un hook que no se dispara**: consulta [hooks quenose disparan](#failed-to-load-hooks-from-and-hooks-that-dont-fire)
885* **Un servidor MCP que no se inicia**: vea [MCP serversthatdon'tstart](#invalid-mcp-server-config-for-and-mcp-servers-that-dont-start)938* **Un servidor MCP que no se inicia**: consulta [servidores MCP quenoseinician](#invalid-mcp-server-config-for-and-mcp-servers-that-dont-start)
888 `commands path not found: <path>`941 `commands path not found: <path>`
889</h3>942</h3>
890943
891La pestaña **Errors** muestra `commands path not found: <absolute path>` con la orientación `Check that the path in your manifest or marketplace config is correct`. El mismo mensaje aparece para `skills`, `agents`, y `hooks`.944La pestaña **Errors** muestra `commands path not found: <absolute path>` con la indicación `Check that the path in your manifest or marketplace config is correct`. El mismo mensaje aparece para `skills`, `agents` y `hooks`.
892945
893Claude Code resolvió una ruta desdesu `plugin.json` o entrada demercadocontra la raíz del plugin y no encontró nada allí. La ruta en el mensaje es la ruta absoluta que verificó, así que compárela con lo que está en el disco. Corrija la ruta o cree el directorio, luego ejecute `/reload-plugins`.946Claude Code resolvió una ruta detu `plugin.json` o de tu entrada delmarketplacerespectoa la raíz del plugin y no encontró nada allí. La ruta del mensaje es la ruta absoluta que verificó, así que compárala con lo que hay en el disco. Corrige la ruta o crea el directorio y luego ejecuta `/reload-plugins`.
894947
895Las rutas en el manifiesto son relativas a la raíz del plugin y comienzan con `./`. Una ruta que se resuelve fuera de la raíz del plugin se informa como `<component> path escapes plugin directory` en su lugar y se descarta.948Las rutas del manifiesto son relativas a la raíz del plugin y comienzan con `./`. Una ruta que se resuelve fuera de la raíz del plugin se informa como `<component> path escapes plugin directory` y se descarta.
898 `--plugin-dir` atamarketplacerootdoesn'tloadthe plugins under `plugins/`951 `--plugin-dir` enlaraízdeunmarketplacenocarga los plugins de `plugins/`
899</h3>952</h3>
900953
901Inició `claude --plugin-dir <path>` y no ve error, pero las skills, agents, y hooks del plugin no están allí.954Iniciaste `claude --plugin-dir <path>` y no vesningún error, pero los skills, agentes y hooks del plugin no aparecen.
902955
903`--plugin-dir` toma el directorio raíz del plugin, el que contiene `.claude-plugin/plugin.json` y los directorios de componentes como `skills/`. Si lo apunta a una raíz de mercado en sulugar, Claude Code no lee `marketplace.json`, por lo que un plugin bajo `plugins/` no se carga, y no ve error. Antes de v2.1.281, Claude Code cargaba una raíz de mercado como un plugin vacío nombradodespués de ese directorio. Apunte el indicador al directorio del plugin en sí:956`--plugin-dir` recibe el directorio raíz del plugin, el que contiene `.claude-plugin/plugin.json` y los directorios de componentes como `skills/`. Si en su lugar lo apuntas a la raíz de unmarketplace, Claude Code no lee `marketplace.json`, por lo que un plugin dentrode `plugins/` no se carga y no vesningún error. Antes de la v2.1.281, Claude Code cargaba la raíz de unmarketplace como un único plugin vacío conelnombre de ese directorio. Apunta el flag al directorio del plugin en sí:
909Luego abra **Installed** en `/plugin`, donde el panel de detalles del plugin enumera sus componentes.962Luego abre **Installed** en `/plugin`, donde el panel de detalles del plugin enumera sus componentes.
912Filesthepluginreferencesoutsideitsdirectoryaren'tfound965Noseencuentranlosarchivosqueelpluginreferencia fuera de su directorio
913</h3>966</h3>
914967
915Un plugin funciona desde su directorio de fuente con `--plugin-dir` pero falla después de instalar, con errores sobre una ruta como `../shared-utils`.968Un plugin funciona desde su directorio de origen con `--plugin-dir` pero falla después de instalarlo, con errores sobre una ruta como `../shared-utils`.
916969
917Claude Code copia un plugin instalado en su caché y lo carga desde allí, por lo que una ruta que alcanza fuera del directorio propio del plugin no apunta a nada en la caché. Mueva los archivos compartidos dentro del directorio del plugin, o haga referencia a ellos a través de un enlace simbólico dentro de él. Para dónde está la caché y cómo se resuelven las rutas, vea [Find plugins ondisk](/docs/es/plugins/loading#find-plugins-on-disk).970Claude Code copia un plugin instalado en su caché y lo carga desde allí, por lo que una ruta que sale del directorio propio del plugin no apunta a nada en la caché. Mueve los archivos compartidos dentro del directorio del plugin o haz referencia a ellos mediante un enlace simbólico dentro de él. Para saber dónde está la caché y cómo se resuelven las rutas, consulta [Encontrar plugins enel disco](/docs/es/plugins/loading#find-plugins-on-disk).
920 `${CLAUDE_PLUGIN_ROOT}` showsforwardslasheson Windows973 `${CLAUDE_PLUGIN_ROOT}` muestrabarrasdiagonalesen Windows
921</h3>974</h3>
922975
923En Windows, un hook de plugin recibe `${CLAUDE_PLUGIN_ROOT}` como `C:/Users/you/...` en lugar de `C:\Users\you\...`, y un script que esperaba barras invertidas se rompe.976En Windows, un hook de plugin recibe `${CLAUDE_PLUGIN_ROOT}` como `C:/Users/you/...` en lugar de `C:\Users\you\...`, y un script que esperaba barras invertidas falla.
924977
925Claude Code ejecuta hooks de forma de shell a través de Git Bash en Windows y sustituye la raíz del plugin en la forma Win32 de barra inclinada hacia adelanteapropósito. Los builtins de Bash, las herramientas MSYS, y los binarios nativos de Windows todos aceptan esa forma.978Claude Code ejecuta los hooks en forma de shell a través de Git Bash en Windows y sustituye a propósito la raíz del plugin en la forma Win32 conbarrasdiagonales. Los builtins de Bash, las herramientas de MSYS y los binarios nativos de Windows aceptan esa forma.
926979
927Si su script necesita barras invertidas, cambie el hook a una de las formas que mantienen rutas nativas, descritas bajo [exec formandshellform](/docs/es/hooks#exec-form-and-shell-form):980Si tu script necesita barras invertidas, cambia el hook a una de las formas que conservanlas rutas nativas, descritas en [forma exec yformadeshell](/docs/es/hooks#exec-form-and-shell-form):
928981
929* Un hook de forma exec, que genera el proceso directamente con unamatriz `args`982* Un hook en forma exec, que inicia el proceso directamente con unarreglo `args`
930* Un hook con `"shell": "powershell"`983* Un hook con `"shell": "powershell"`
936Su plugin está listadobajo **Installed** sin errores, pero sus skills no se ofrecen cuando escribe `/`.989Tu plugin apareceen **Installed** sin errores, pero sus skills no se ofrecen cuando escribes `/`.
937990
938Las skills se cargan desde `skills/` en la raíz del plugin y los comandos desde `commands/` en la raíz del plugin. Solo `plugin.json` pertenece dentro de `.claude-plugin/`, y un directorio `skills/` dentro de `.claude-plugin/` no se escanea. Mueva los directorios a la raíz del plugin y ejecute `/reload-plugins`. Después, el panel de detalles del plugin en `/plugin` enumera las skills, y escribir `/` lasofrece.991Los skills se cargan desde `skills/` en la raíz del plugin y los comandos desde `commands/` en la raíz del plugin. Solo `plugin.json` va dentro de `.claude-plugin/`, y un directorio `skills/` dentro de `.claude-plugin/` no se escanea. Mueve los directorios a la raíz del plugin y ejecuta `/reload-plugins`. Después, el panel de detalles del plugin en `/plugin` enumera los skills, y al escribir `/` seofrecen.
939992
940Cada skill es un directorio que contiene `SKILL.md`. Una entrada `skills` en el manifiesto que apunta a un archivo `SKILL.md` en lugar de su directorio se informa como `path is a file; skills entries must be directories containing SKILL.md`.993Cada skill es un directorio que contiene `SKILL.md`. Una entrada `skills` en el manifiesto que apunta a un archivo `SKILL.md` en lugar de a su directorio se informa como `path is a file; skills entries must be directories containing SKILL.md`.
946La skill de su plugin se ejecuta cuando escribe su comando `/<plugin>:<skill>`, pero Claude nunca la invoca en respuesta a una solicitud simple.999El skill de tu plugin se ejecuta cuando escribes su comando `/<plugin>:<skill>`, pero Claude nunca lo invoca en respuesta a una solicitud normal.
9471000
948Verifique estas causas en orden:1001Revisa estas causas en orden:
9491002
950* **La skill establece `disable-model-invocation: true`**: con ese campo establecido, solo ustedpuede invocar la skill. La skill de plantilla en [Createyourfirst plugin](/docs/es/plugins/create#create-your-first-plugin) lo establece. Elimine la línea de una skill que desea que Claude invoque por su cuenta. [Controlwhoinvokesa skill](/docs/es/skills#control-who-invokes-a-skill) cubre el campo1003* **El skill establece `disable-model-invocation: true`**: con ese campo establecido, solo túpuedes invocar el skill. El skill de plantilla de [Creartuprimer plugin](/docs/es/plugins/create#create-your-first-plugin) lo establece. Elimina la línea de un skill que quieras que Claude invoque por su cuenta. [Controlarquiéninvocaun skill](/docs/es/skills#control-who-invokes-a-skill) explica el campo
951* **La descripción no coincide con cómo la gente pregunta**: trabaje a través de las verificaciones en [Skillnottriggering](/docs/es/skills#skill-not-triggering)1004* **La descripción no coincide con laforma en que la gente pregunta**: sigue las verificaciones de [Elskillno se activa](/docs/es/skills#skill-not-triggering)
952* **La descripción está truncada**: cuando se instalanmuchas skills, Claude Code acorta las descripciones para ajustarse al presupuesto de caracteres del listado, que puede eliminar las palabras clave que Claude necesita para coincidir con una solicitud. Vea [Skilldescriptionsarecutshort](/docs/es/skills#skill-descriptions-are-cut-short)1005* **La descripción está truncada**: cuando haymuchos skills instalados, Claude Code acorta las descripciones para ajustarlas al presupuesto de caracteres del listado, lo que puede eliminar las palabras clave que Claude necesita para relacionarlo con una solicitud. Consulta [Lasdescripcionesdelosskills se recortan](/docs/es/skills#skill-descriptions-are-cut-short)
9531006
954Para medir con qué frecuencia laskillsedispara en prompts realistas en lugar de verificar uno a lavez, escriba un caso de eval con un [grader `tool_used: Skill`](/docs/es/plugin-evals#create-your-first-eval-suite) y ejecútelo con `claude plugin eval` después de cada cambio de descripción.1007Para medir con qué frecuencia seactivaelskill en prompts realistas en lugar de revisarlos uno poruno, escribe un caso de eval con un [grader `tool_used: Skill`](/docs/es/plugin-evals#create-your-first-eval-suite) y ejecútalo con `claude plugin eval` después de cada cambio enla descripción.
957 `<directory> is not a plugin or skill folder` from `claude plugin eval init`1010 `<directory> is not a plugin or skill folder` alejecutar `claude plugin eval init`
958</h3>1011</h3>
9591012
960Ejecutó `claude plugin eval init` desde un directorio que no es la raíz de un plugin, como su directorio de inicio o la raíz de un repositorio que mantiene el plugin en un subdirectorio. `init` escribe la suite bajoel directorio de trabajo, por lo que se detiene en lugar de crear un directorio `evals/` que el plugin nunca vería.1013Ejecutaste `claude plugin eval init` desde un directorio que no es la raíz de un plugin, como tu directorio home o la raíz de un repositorio que guarda el plugin en un subdirectorio. `init` escribe la suite dentrodel directorio de trabajo, por lo que se detiene en lugar de crear un directorio `evals/` que el plugin nunca vería.
9611014
962Cambie a la raíz del plugin, el directorio que contiene `.claude-plugin/plugin.json` o el `SKILL.md` de la skill, y ejecute el comando nuevamente. Para armar la suite en otro lugar a propósito, pase `--eval-dir`. Vea [Test plugins with evals](/docs/es/plugin-evals).1015Cambia a la raíz del plugin, el directorio que contiene `.claude-plugin/plugin.json` o el `SKILL.md` del skill, y vuelvea ejecutar el comando. Para generar la suite en otro lugar a propósito, pasa `--eval-dir`. Consulta [Probar plugins con evals](/docs/es/plugin-evals).
965The `userConfig` dialog neverappears1018Eldiálogo de `userConfig` nuncaaparece
966</h3>1019</h3>
9671020
968Su plugin declara opciones `userConfig`, pero no aparece ningún diálogo de configuración cuando lo instala.1021Tu plugin declara opciones `userConfig`, pero no aparece ningún diálogo de configuración cuando lo instalas.
9691022
970La instalación interactiva muestra el diálogo, y el comandodeshelltoma los valores comoindicadoresensulugar:1023Quelainstalaciónpida los valores dependededóndelaejecutes:
9711024
972* **`/plugin install` en una sesión, o la pestaña Discover en `/plugin`**: el diálogo es parte de esta instalación interactiva1025* **`/plugin install` en una sesión, o la pestaña Discover en `/plugin`**: el diálogo forma parte de esta instalación interactiva
973* **El diálogo Manage plugins de la extensión VS Code**: solicita opciones sin establecer como un formulario después de la instalación. Antes de v2.1.285, la instalación allí no mostraba ningún formulario de opciones, así que establezca los valores desde una sesión de terminal con `/plugin configure <plugin>@<marketplace>`1026* **El diálogo Manage plugins de la extensión de VS Code**: pidelas opciones sin establecer en un formulario después de la instalación. Antes de la v2.1.285, la instalación desde allí no mostraba ningún formulario de opciones, así que establece los valores desde una sesión enla terminal con `/plugin configure <plugin>@<marketplace>`
974* **`claude plugin install` en su shell**: nunca solicita valores `userConfig`. Guarda cualquiervalor `--config KEY=VALUE` que pase, y cuando las opciones permanecen sin establecer imprime `N userConfig options not yet set — run /plugin configure <plugin>@<marketplace> in Claude Code, or pass --config KEY=VALUE.` Cuando cualquiera de las opciones sin establecer es requerida, `(M required)` sigue `not yet set`.1027* **`claude plugin install` en tu shell**: nunca pide valores de `userConfig`. Guarda losvalores `--config KEY=VALUE` que pases y, cuando quedan opciones sin establecer, imprime `N userConfig options not yet set — run /plugin configure <plugin>@<marketplace> in Claude Code, or pass --config KEY=VALUE.` Cuando alguna de las opciones sin establecer es obligatoria, `(M required)` aparecedespués de `not yet set`.
9751028
976Si instaló desde el shell, pase los valores con `--config`, un indicador por opción:1029Si instalaste desde el shell, pasa los valores con `--config`, un flag por opción:
982Cuando cadaopciónestáestablecida, la salida de instalación no lleva ninguna línea `not yet set`.1035Cuando todaslasopcionesestán establecidas, la salida de la instalación no incluye ninguna línea `not yet set`.
9831036
984Para abrir el diálogo después en sulugar, ejecute `/plugin configure my-plugin@my-marketplace` en una sesión. Desde el shell, [`claude plugin configure`](/docs/es/plugins/cli-reference#plugin-configure) muestra qué opciones aún noestánestablecidas y guarda valores canalizadosen stdin. Requiere Claude Code v2.1.285 o posterior.1037Para abrir el diálogo mástarde, ejecuta `/plugin configure my-plugin@my-marketplace` en una sesión. Desde el shell, [`claude plugin configure`](/docs/es/plugins/cli-reference#plugin-configure) muestra qué opciones siguensinestablecer y guarda los valores queleenvíes por stdin. Requiere Claude Code v2.1.285 o posterior.
9851038
986Si pasa una clave `--config` que el manifiesto no declara, el plugin aún se instala, y el comando imprime `⚠ Installed, but --config not applied: --config key "<key>" isn't declared in this plugin's userConfig.` seguido de las claves que el plugin sí declara.1039Si pasas una clave `--config` que el manifiesto no declara, el plugin se instala de todos modos y el comando imprime `⚠ Installed, but --config not applied: --config key "<key>" isn't declared in this plugin's userConfig.` seguido de las claves que el plugin sí declara.
9871040
988Para un plugin que envía un [archivo de paquete MCPB](/docs/es/plugins/components#include-a-packaged-mcpb-server) declarando `user_config` propio, el mensaje dice `isn't declared in this plugin's userConfig or by its bundled MCP servers.` en su lugar, y las claves conocidas incluyen las de ese servidor, escritas `<server>.<key>`. Un paquete que el manifiesto referencia por URL no se lee en el tiempode instalación, por lo que sus claves no se enumeran y el mensaje diceconfigurarlo en `/plugin`. Establecer claves `<server>.<key>` requiere Claude Code v2.1.285 o posterior.1041Para un plugin que incluye un [archivo de paquete MCPB](/docs/es/plugins/components#include-a-packaged-mcpb-server) quedeclara su propio `user_config`, el mensaje dice `isn't declared in this plugin's userConfig or by its bundled MCP servers.` en su lugar, y las claves conocidas incluyen las de ese servidor, escritas como `<server>.<key>`. Un paquete que el manifiesto referencia por URL no se lee durantela instalación, por lo que sus claves no se enumeran y el mensaje indicaquelo configures en `/plugin`. Establecer claves `<server>.<key>` requiere Claude Code v2.1.285 o posterior.
994Ejecutó `claude plugin validate <path>`, o `/plugin validate <path>` en una sesión, e imprimió `Found N errors` y `Validation failed`, luego salió con código 1.1047Ejecutaste `claude plugin validate <path>`, o `/plugin validate <path>` en una sesión, e imprimió `Found N errors` y `Validation failed`, y luego terminó con el código 1.
9951048
996El validador lee el manifiesto en la ruta que proporciona: `.claude-plugin/plugin.json` para un directorio de plugin, o `.claude-plugin/marketplace.json` para un directorio de mercado. Para un mercado, prefijaproblemasenel manifiesto propio de una entrada con el índice de entrada, como `plugins[1] plugin.json → json: ...`.1049El validador lee el manifiesto en la ruta que le indicas: `.claude-plugin/plugin.json` para un directorio de plugin, o `.claude-plugin/marketplace.json` para un directorio de marketplace. Para un marketplace, anteponealosproblemasdel manifiesto propio de una entrada el índice de la entrada, como en `plugins[1] plugin.json → json: ...`.
9971050
998La tabla cubre los mensajes que detienen la validación y dos advertencias, `No frontmatter block found` y `Unknown field '<key>'`, que la detienen solo cuando pasa `--strict`. Otras advertencias, como una descripción faltante, no se enumeran.1051La tabla cubre los mensajes que detienen la validación y dos advertencias, `No frontmatter block found` y `Unknown field '<key>'`, que la detienen solo cuando pasas `--strict`. Otras advertencias, como la falta de una descripción, no se incluyen.
9991052
1000| Mensaje | Causa | Solución |1053| Mensaje | Causa | Solución |
1001| :- | :- | :- |1054| :- | :- | :- |
1002| `File not found: <path>` | La ruta no tiene manifiesto, o no existe. | Ejecute el comando contra la raíz del plugin o mercado, el directorio que contiene `.claude-plugin/`. |1055| `File not found: <path>` | La ruta no tiene manifiesto o no existe. | Ejecuta el comando sobre la raíz del plugin o del marketplace, el directorio que contiene `.claude-plugin/`. |
1003| `No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json` | El directorio no tiene manifiesto `.claude-plugin/`. | Cree el manifiesto, o apunte al directorio correcto. |1056| `No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json` | El directorio no tiene un manifiesto `.claude-plugin/`. | Crea el manifiesto o apunta al directorio correcto. |
1004| `Invalid JSON syntax: <parse error>` | El manifiesto, o `hooks/hooks.json`, no es JSON válido. | Corrija el JSON. Hasta que corrija `hooks/hooks.json`, una sesión carga el plugin sin los hooks en ese archivo. |1057| `Invalid JSON syntax: <parse error>` | El manifiesto, o `hooks/hooks.json`, no es JSON válido. | Corrige el JSON. Hasta que corrijas `hooks/hooks.json`, una sesión carga el plugin sin los hooks de ese archivo. |
1005| `Path not found: <path>. The runtime loader will report this as a load failure.` | Una ruta de componente en el manifiesto no existe. | Corrija la ruta o cree el directorio. |1058| `Path not found: <path>. The runtime loader will report this as a load failure.` | Una ruta de componente del manifiesto no existe. | Corrige la ruta o crea el directorio. |
1006| `Path contains ".." which could be a path traversal attempt: <path>` | Una ruta de componente escapa del directorio del plugin. | Use rutas dentro de la raíz del plugin. |1059| `Path contains ".." which could be a path traversal attempt: <path>` | Una ruta de componente sale del directorio del plugin. | Usa rutas dentro de la raíz del plugin. |
1007| `Path is a file; skills entries must be directories containing SKILL.md` | Una entrada `skills` apunta a `SKILL.md` en lugar de su directorio. | Apunte al directorio padre, o `.` para un `SKILL.md` a nivelde raíz. |1060| `Path is a file; skills entries must be directories containing SKILL.md` | Una entrada `skills` apunta a `SKILL.md` en lugar de a su directorio. | Apunta al directorio padre, o a `.` para un `SKILL.md` enla raíz. |
1008| `No frontmatter block found` o `YAML frontmatter failed to parse: <error>` | Un archivo de skill, agent, o comando tiene frontmatter YAML faltante o inválido. | Agregue o corrija el frontmatter entre delimitadores `---`. Se informa al validar un directorio de plugin. |1061| `No frontmatter block found` o `YAML frontmatter failed to parse: <error>` | Un archivo de skill, agente o comando tiene frontmatter YAML faltante o no válido. | Agrega o corrige el frontmatter entre delimitadores `---`. Se informa al validar un directorio de plugin. |
1009| `Plugin name "<name>" is reserved: it passes as one of Anthropic's own` | El nombre `name` del plugin es uno de los [nombres reservados](/docs/es/plugins/manifest-reference#name). | Renombre el plugin por lo que hace. |1062| `Plugin name "<name>" is reserved: it passes as one of Anthropic's own` | El `name` del plugin es uno de los [nombres reservados](/docs/es/plugins/manifest-reference#name). | Cambia el nombre del plugin según lo que hace. |
1010| `Unknown field '<key>'` | El manifiesto tiene un campo que el esquema no define. | Elimínelo, o use el nombre que el mensaje sugiere. Claude Code ignora campos desconocidos en eltiempo de carga. |1063| `Unknown field '<key>'` | El manifiesto tiene un campo que el esquema no define. | Elimínalo o usa el nombre que sugiere el mensaje. Claude Code ignora los campos desconocidos al cargar. Para `privacyPolicyUrl` y los demás campos de listado del directorio en `plugin.json`,consulta[Campos de listado del directorio](/docs/es/plugins/manifest-reference#directory-listing-fields). |
10111064
1012Ejecute el comando nuevamente después de cada solución hasta que no imprima errores.1065Vuelvea ejecutar el comando después de cada corrección hasta que no imprima errores.
10131066
1014Los campos `plugin.json` están en la [manifestreference](/docs/es/plugins/manifest-reference), y los mensajes a nivel de mercado están bajo [Marketplacevalidationerrors](#marketplace-validation-errors).1067Los campos de `plugin.json` están en la [referenciadel manifiesto](/docs/es/plugins/manifest-reference), y los mensajes a nivel de marketplace están en [Erroresdevalidación del marketplace](#marketplace-validation-errors).
1017 `Plugin <name> has conflicting manifests`1070 `Plugin <name> has conflicting manifests`
1018</h3>1071</h3>
10191072
1020El plugin fallaalcargarcon `Plugin <name> has conflicting manifests: both plugin.json and marketplace entry specify components.`1073El plugin nosecargaymuestra `Plugin <name> has conflicting manifests: both plugin.json and marketplace entry specify components.`
10211074
1022El plugin tiene su propio `plugin.json`, y su entrada demercado establece `strict: false` mientrastambién declara cualquiera de `commands`, `agents`, `skills`, `hooks`, `outputStyles`, o `themes`. Elimine esos campos de la entrada, o establezca `strict: true` en la entrada para que Claude Code los agregue a `plugin.json`. Vea [Strictmode](/docs/es/plugins/marketplace-reference#strict-mode).1075El plugin tiene su propio `plugin.json`, y su entrada delmarketplace establece `strict: false` yademás declara alguno de `commands`, `agents`, `skills`, `hooks`, `outputStyles` o `themes`. Elimina esos campos de la entrada, o establece `strict: true` en la entrada para que Claude Code los agregue a `plugin.json`. Consulta [Modoestricto](/docs/es/plugins/marketplace-reference#strict-mode).
1025 `Warning: No commands found in plugin <name> custom directory`1078 `Warning: No commands found in plugin <name> custom directory`
1026</h3>1079</h3>
10271080
1028Cuando el plugin se carga, el registro `claude --debug` en `~/.claude/debug/<session-id>.txt` registra `Warning: No commands found in plugin <name> custom directory: <path>. Expected .md files or SKILL.md in subdirectories.` Nada aparece en la sesión o la pestaña **Errors**.1081Cuando el plugin se carga, el registro de `claude --debug` en `~/.claude/debug/<session-id>.txt` registra `Warning: No commands found in plugin <name> custom directory: <path>. Expected .md files or SKILL.md in subdirectories.` No aparece nada en la sesión nien la pestaña **Errors**.
10291082
1030La ruta `commands` en el manifiesto existe pero no contiene archivos `.md` yno `SKILL.md` en un subdirectorio. Agregue los archivos de comando, o elimine la ruta del manifiesto.1083La ruta `commands` del manifiesto existe pero no contiene archivos `.md` niningún `SKILL.md` en un subdirectorio. Agrega los archivos de comando o elimina la ruta del manifiesto.