Plugins
Paquetes de Plugins
OpenClaw puede instalar plugins de tres ecosistemas externos: Codex, Claude y Cursor. Se denominan paquetes: conjuntos de contenido y metadatos que OpenClaw asigna a funciones nativas como Skills, hooks y herramientas MCP.
Por qué existen los paquetes
Muchos plugins útiles se publican en formato Codex, Claude o Cursor. En lugar de exigir que sus autores los reescriban como plugins nativos de OpenClaw, OpenClaw detecta estos formatos y asigna el contenido compatible al conjunto de funciones nativas. Puede instalar un paquete de comandos de Claude o un paquete de Skills de Codex y usarlo inmediatamente.
Instalar un paquete
Instalar desde un directorio, archivo comprimido o marketplace
# Directorio localopenclaw plugins install ./my-bundle # Archivo comprimidoopenclaw plugins install ./my-bundle.tgz # Marketplace de Claudeopenclaw plugins marketplace list <source>openclaw plugins install <plugin> --marketplace <source><source> es una ruta o repositorio de marketplace local, o una fuente de git/GitHub.
Verificar la detección
openclaw plugins listopenclaw plugins inspect <id>Los paquetes muestran Format: bundle junto con un valor Bundle format: de codex,
claude o cursor.
Reiniciar y usar
openclaw gateway restartLas funciones asignadas (Skills, hooks, herramientas MCP y valores predeterminados de LSP) estarán disponibles en la siguiente sesión.
Qué asigna OpenClaw desde los paquetes
Actualmente no todas las funciones de los paquetes se ejecutan en OpenClaw. A continuación se indica qué funciona y qué se detecta, pero aún no está conectado.
Compatibilidad actual
| Función | Cómo se asigna | Se aplica a |
|---|---|---|
| Contenido de Skills | Las raíces de Skills del paquete se cargan como Skills normales de OpenClaw | Todos los formatos |
| Comandos | commands/ y .cursor/commands/ se tratan como raíces de Skills |
Claude, Cursor |
| Paquetes de hooks | Estructuras de estilo OpenClaw con HOOK.md + handler.ts |
Codex |
| Herramientas MCP | La configuración MCP del paquete se combina con la configuración integrada de OpenClaw; se cargan servidores stdio y HTTP compatibles | Todos los formatos |
| Servidores LSP | .lsp.json de Claude y los lspServers declarados en el manifiesto se combinan con los valores predeterminados de LSP integrado de OpenClaw |
Claude |
| Configuración | settings.json de Claude se importa como valores predeterminados integrados de OpenClaw |
Claude |
Contenido de Skills
- Las raíces de Skills de los paquetes se cargan como raíces de Skills normales de OpenClaw.
- Las raíces
commands/de Claude se tratan como raíces de Skills adicionales. - Las raíces
.cursor/commands/de Cursor se tratan como raíces de Skills adicionales.
Tanto los archivos de comandos Markdown de Claude como los de Cursor funcionan mediante el cargador normal de Skills de OpenClaw.
Paquetes de hooks
Las raíces de hooks de los paquetes funcionan solo cuando usan la estructura normal de paquetes de hooks
de OpenClaw: HOOK.md junto con handler.ts o handler.js. Actualmente, esto corresponde principalmente
al caso compatible con Codex.
MCP para OpenClaw integrado
- Los paquetes habilitados pueden aportar configuración de servidores MCP.
- OpenClaw combina la configuración MCP de los paquetes con la configuración integrada efectiva de OpenClaw
como
mcpServers. - OpenClaw expone las herramientas MCP compatibles de los paquetes durante los turnos del agente integrado de OpenClaw iniciando servidores stdio o conectándose a servidores HTTP.
- Los perfiles de herramientas
codingymessagingincluyen las herramientas MCP de los paquetes de forma predeterminada; usetools.deny: ["bundle-mcp"]para desactivarlas en un agente o Gateway. - La configuración local del proyecto para el agente integrado sigue aplicándose después de los valores predeterminados del paquete, por lo que la configuración del espacio de trabajo puede sobrescribir las entradas MCP del paquete cuando sea necesario.
- Los catálogos de herramientas MCP de los paquetes se ordenan de forma determinista antes del registro, para que
los cambios en el orden de
listTools()del sistema de origen no alteren continuamente los bloques de herramientas de la caché de prompts.
Transportes
Los servidores MCP pueden usar el transporte stdio o HTTP.
Stdio inicia un proceso secundario:
{ "mcp": { "servers": { "my-server": { "command": "node", "args": ["server.js"], "env": { "PORT": "3000" } } } }}HTTP se conecta a un servidor MCP en ejecución y usa sse de forma predeterminada, salvo que
se solicite streamable-http:
{ "mcp": { "servers": { "my-server": { "url": "http://localhost:3100/mcp", "transport": "streamable-http", "headers": { "Authorization": "Bearer ${MY_SECRET_TOKEN}" }, "connectionTimeoutMs": 30000 } } }}transportacepta"streamable-http"o"sse"; si se omite, el valor predeterminado essse.type: "http"es una estructura descendente nativa de la CLI; usetransport: "streamable-http"en la configuración de OpenClaw.openclaw mcp setyopenclaw doctor --fixnormalizan el alias habitual.- Solo se permiten los esquemas de URL
http:yhttps:. - Los valores de
headersadmiten la interpolación${ENV_VAR}. - Se rechazan las entradas de servidor que incluyan tanto
commandcomourl. - Las credenciales de la URL (información de usuario y parámetros de consulta) se ocultan en las descripciones de las herramientas y en los registros.
connectionTimeoutMssobrescribe el tiempo de espera de conexión predeterminado de 30 segundos para los transportes stdio y HTTP. El tiempo de espera predeterminado de las solicitudes es de 60 segundos y se puede sobrescribir conrequestTimeoutMs.
Nombres de herramientas
OpenClaw registra las herramientas MCP de los paquetes con nombres compatibles con los proveedores en el formato
serverName__toolName. Por ejemplo, un servidor con la clave "vigil-harbor" que exponga una
herramienta memory_search se registra como vigil-harbor__memory_search.
- Los caracteres que no pertenezcan a
A-Za-z0-9_-se sustituyen por-. - Los fragmentos que comenzarían con un carácter que no sea una letra reciben un prefijo alfabético, por lo que las claves
numéricas de servidor como
12306se convierten en prefijos de herramientas compatibles con los proveedores. - Los prefijos de servidor tienen un límite de 30 caracteres.
- Los nombres completos de las herramientas tienen un límite de 64 caracteres.
- Los nombres de servidor vacíos usan
mcpcomo alternativa. - Los nombres normalizados que colisionen se diferencian mediante sufijos numéricos.
- El orden final de las herramientas expuestas es determinista según el nombre seguro, lo que mantiene estables en caché los turnos repetidos del agente integrado.
- El filtrado por perfiles trata todas las herramientas de un servidor MCP de paquete como
pertenecientes al plugin
bundle-mcp, de modo que las listas de elementos permitidos o denegados del perfil pueden hacer referencia a nombres individuales de herramientas expuestas o a la clave del pluginbundle-mcp.
Configuración de OpenClaw integrado
El archivo settings.json de Claude se importa como configuración predeterminada de OpenClaw integrado cuando
el paquete está habilitado. OpenClaw depura las claves de sobrescritura del shell antes de aplicarlas:
shellPathshellCommandPrefix
LSP de OpenClaw integrado
- Los paquetes de Claude habilitados pueden aportar configuración de servidores LSP.
- OpenClaw carga
.lsp.jsonjunto con cualquier rutalspServersdeclarada en el manifiesto. - La configuración LSP del paquete se combina con los valores predeterminados efectivos de LSP de OpenClaw integrado.
- Actualmente solo se pueden ejecutar servidores LSP compatibles basados en stdio; los transportes
no compatibles siguen apareciendo en
openclaw plugins inspect <id>.
Detectado, pero no ejecutado
Los siguientes elementos se reconocen y aparecen en los diagnósticos, pero OpenClaw no los ejecuta:
- Automatización de
agents,hooks/hooks.jsonyoutputStylesde Claude .cursor/agents,.cursor/hooks.jsony.cursor/rulesde Cursor- Metadatos
.app.jsonde Codex más allá de los informes de capacidades
Formatos de paquetes
Paquetes de Codex
Marcadores: .codex-plugin/plugin.json
Contenido opcional: skills/, hooks/, .mcp.json, .app.json
Los paquetes de Codex se adaptan mejor a OpenClaw cuando usan raíces de Skills y directorios de paquetes
de hooks con el estilo de OpenClaw (HOOK.md + handler.ts).
Paquetes de Claude
Dos modos de detección:
- Basado en manifiesto:
.claude-plugin/plugin.json - Sin manifiesto: estructura predeterminada de Claude (
skills/,commands/,agents/,hooks/,.mcp.json,.lsp.json,settings.json)
Comportamiento específico de Claude:
commands/se trata como contenido de Skillssettings.jsonse importa en la configuración de OpenClaw integrado (se depuran las claves de sobrescritura del shell).mcp.jsonexpone herramientas stdio compatibles a OpenClaw integrado.lsp.jsonjunto con las rutaslspServersdeclaradas en el manifiesto se cargan en los valores predeterminados de LSP de OpenClaw integradohooks/hooks.jsonse detecta, pero no se ejecuta- Las rutas de componentes personalizadas del manifiesto son aditivas; amplían los valores predeterminados, no los sustituyen
Paquetes de Cursor
Marcadores: .cursor-plugin/plugin.json
Contenido opcional: skills/, .cursor/commands/, .cursor/agents/, .cursor/rules/, .cursor/hooks.json, .mcp.json
.cursor/commands/se trata como contenido de Skills.cursor/rules/,.cursor/agents/y.cursor/hooks.jsonsolo se detectan
Precedencia de detección
OpenClaw comprueba primero el formato de plugin nativo:
openclaw.plugin.jsono unpackage.jsonválido conopenclaw.extensions: se trata como un plugin nativo- Marcadores de paquetes (
.codex-plugin/,.claude-plugin/o la estructura predeterminada de Claude/Cursor): se trata como un paquete
Si un directorio contiene ambos formatos, OpenClaw usa la ruta nativa. Esto evita que los paquetes con formato dual se instalen parcialmente como paquetes.
Dependencias de ejecución y limpieza
- Los paquetes compatibles de terceros no reciben una reparación mediante
npm installdurante el inicio. Deben instalarse medianteopenclaw plugins installe incluir todo lo necesario en el directorio del plugin instalado. - Los plugins incluidos propiedad de OpenClaw se distribuyen como elementos ligeros dentro del núcleo o se pueden descargar mediante el instalador de plugins. El inicio del Gateway nunca ejecuta un gestor de paquetes para ellos.
openclaw doctor --fixelimina los registros obsoletos de instalación local de plugins incluidos y puede recuperar plugins descargables que falten en el índice local de plugins cuando la configuración todavía haga referencia a ellos.
Seguridad
Los paquetes tienen un límite de confianza más restringido que los plugins nativos:
- OpenClaw no carga módulos arbitrarios de ejecución de los paquetes dentro del proceso.
- Las rutas de Skills y de paquetes de hooks deben permanecer dentro de la raíz del plugin (con comprobación de límites).
- Los archivos de configuración se leen con las mismas comprobaciones de límites.
- Los servidores MCP stdio compatibles pueden iniciarse como subprocesos.
Esto hace que los paquetes sean más seguros de forma predeterminada, pero aun así debe tratar los paquetes de terceros como contenido de confianza para las funciones que exponen.
Solución de problemas
El paquete se detecta, pero las capacidades no se ejecutan
Ejecute openclaw plugins inspect <id>. Si aparece una capacidad, pero está marcada como
no conectada, se trata de una limitación del producto, no de una instalación defectuosa.
Los archivos de comandos de Claude no aparecen
Asegúrese de que el paquete esté habilitado y de que los archivos Markdown se encuentren dentro de una raíz
commands/ o skills/ detectada.
La configuración de Claude no se aplica
Solo se admite la configuración de OpenClaw integrado procedente de settings.json. OpenClaw
no trata la configuración de los paquetes como parches directos de configuración.
Los hooks de Claude no se ejecutan
hooks/hooks.json solo se detecta. Si necesita hooks ejecutables, use la
estructura de paquetes de hooks de OpenClaw o distribuya un plugin nativo.
Contenido relacionado
- Instalar y configurar plugins
- Crear plugins: cree un plugin nativo
- Manifiesto de plugins: esquema del manifiesto nativo