Plugins
Paquetes de Plugins
OpenClaw puede instalar plugins de tres ecosistemas externos: Codex, Claude y Cursor. Estos 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 de 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. Se puede instalar un paquete de comandos de Claude o un paquete de Skills de Codex y usarlo de inmediato.
Instalar un paquete
Instalar desde un directorio, archivo o marketplace
# Directorio localopenclaw plugins install ./my-bundle # Archivoopenclaw 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 y 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) está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 todavía 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 | Diseños de HOOK.md + handler.ts al estilo de OpenClaw |
Codex |
| Herramientas MCP | La configuración MCP del paquete se combina con los ajustes de OpenClaw integrado; se cargan servidores stdio y HTTP compatibles | Todos los formatos |
| Servidores LSP | .lsp.json de Claude y lspServers declarados en el manifiesto se combinan con los valores predeterminados de LSP de OpenClaw integrado |
Claude |
| Ajustes | settings.json de Claude se importa como valores predeterminados de OpenClaw integrado |
Claude |
Contenido de Skills
- Las raíces de Skills del paquete 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 Markdown de comandos de Claude como los comandos Markdown de Cursor funcionan mediante el cargador normal de Skills de OpenClaw.
Paquetes de hooks
Las raíces de hooks del paquete funcionan solo cuando utilizan el diseño normal de paquetes de hooks
de OpenClaw: HOOK.md más handler.ts o handler.js. Actualmente, este es principalmente
el caso compatible con Codex.
MCP para OpenClaw integrado
- Los paquetes habilitados pueden aportar configuración de servidores MCP.
- OpenClaw combina la configuración MCP del paquete con los ajustes efectivos de OpenClaw
integrado como
mcpServers. - OpenClaw expone las herramientas MCP compatibles del paquete durante los turnos del agente de OpenClaw integrado mediante el inicio de servidores stdio o la conexión a servidores HTTP.
- Los perfiles de herramientas
codingymessagingincluyen de forma predeterminada las herramientas MCP del paquete; se puede usartools.deny: ["bundle-mcp"]para excluirlas de un agente o Gateway. - Los ajustes del agente integrado locales del proyecto siguen aplicándose después de los valores predeterminados del paquete, por lo que los ajustes del espacio de trabajo pueden anular las entradas MCP del paquete cuando sea necesario.
- Los catálogos de herramientas MCP del paquete se ordenan de forma determinista antes del registro, para que
los cambios en el orden de
listTools()en el origen no alteren continuamente los bloques de herramientas de la caché de prompts.
Transportes
Los servidores MCP pueden utilizar 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 utiliza de forma predeterminada sse, 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; se debe usartransport: "streamable-http"en la configuración de OpenClaw.openclaw mcp setyopenclaw doctor --fixnormalizan el alias común.- Solo se permiten los esquemas de URL
http:yhttps:. - Los valores
headersadmiten la interpolación de${ENV_VAR}. - Se rechaza una entrada de servidor que contenga tanto
commandcomourl. - Las credenciales de URL (información de usuario y parámetros de consulta) se ocultan en las descripciones de las herramientas y los registros.
connectionTimeoutMsanula el tiempo de espera de conexión predeterminado de 30 segundos para los transportes stdio y HTTP. El tiempo de espera de las solicitudes es de 60 segundos de forma predeterminada y se puede anular conrequestTimeoutMs.
Nombres de herramientas
OpenClaw registra las herramientas MCP de los paquetes con nombres seguros para el proveedor con el formato
serverName__toolName. Por ejemplo, un servidor con la clave "vigil-harbor" que expone una
herramienta memory_search se registra como vigil-harbor__memory_search.
- Los caracteres que no pertenecen 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 servidores como
12306se convierten en prefijos de herramientas seguros para el proveedor. - Los prefijos de servidor están limitados a 30 caracteres.
- Los nombres completos de las herramientas están limitados a 64 caracteres.
- Los nombres de servidor vacíos utilizan
mcpcomo alternativa. - Los nombres saneados que colisionan se distinguen 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 de perfiles trata todas las herramientas de un servidor MCP del paquete como
propiedad del plugin
bundle-mcp, por lo que las listas de elementos permitidos o denegados del perfil pueden hacer referencia a los nombres individuales de las herramientas expuestas o a la clave de pluginbundle-mcp.
Ajustes de OpenClaw integrado
settings.json de Claude se importa como ajustes predeterminados de OpenClaw integrado cuando
el paquete está habilitado. OpenClaw sanea las claves de anulación 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 las rutaslspServersdeclaradas 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 los servidores LSP compatibles basados en stdio; los transportes
no compatibles siguen apareciendo en
openclaw plugins inspect <id>.
Detectado, pero no ejecutado
Estos elementos se reconocen y aparecen en los diagnósticos, pero OpenClaw no los ejecuta:
agentsde Claude, automatizaciónhooks/hooks.json,outputStyles.cursor/agents,.cursor/hooks.json,.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 utilizan raíces de Skills y directorios de
paquetes de hooks al estilo de OpenClaw (HOOK.md + handler.ts).
Paquetes de Claude
Dos modos de detección:
- Basado en manifiesto:
.claude-plugin/plugin.json - Sin manifiesto: diseño predeterminado 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 los ajustes de OpenClaw integrado (se sanean las claves de anulación del shell).mcp.jsonexpone herramientas stdio compatibles a OpenClaw integrado.lsp.jsony 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 paquete (
.codex-plugin/,.claude-plugin/o el diseño predeterminado de Claude/Cursor): se trata como un paquete
Si un directorio contiene ambos, OpenClaw utiliza la ruta nativa. Esto evita que los paquetes con formato dual se instalen parcialmente como paquetes.
Dependencias de tiempo de ejecución y limpieza
- Los paquetes compatibles de terceros no reciben la reparación de
npm installal iniciarse. Deben instalarse medianteopenclaw plugins installe incluir todo lo necesario en el directorio del plugin instalado. - Los plugins incluidos propiedad de OpenClaw se distribuyen de forma ligera en el 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 instalaciones locales 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 tiempo de ejecución de paquetes dentro del proceso.
- Las rutas de Skills y paquetes de hooks deben permanecer dentro de la raíz del plugin (se comprueban los límites).
- Los archivos de ajustes 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í se deben 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 una capacidad aparece en la lista, 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 integrada de OpenClaw procedente de settings.json. OpenClaw
no trata la configuración del paquete como parches de configuración sin procesar.
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.
Temas relacionados
- Instalar y configurar plugins
- Creación de plugins - cree un plugin nativo
- Manifiesto de plugin - esquema del manifiesto nativo