openclaw hooks

Gestiona hooks de agente (automatizaciones basadas en eventos para comandos como /new, /reset e inicio del gateway).

Relacionado:

Listar todos los hooks

openclaw hooks list

Lista todos los hooks descubiertos desde directorios de workspace, gestionados y empaquetados.

Opciones:

  • --eligible: Mostrar solo hooks elegibles (requisitos cumplidos)
  • --json: Salida como JSON
  • -v, --verbose: Mostrar información detallada incluyendo requisitos faltantes

Ejemplo de salida:

Hooks (4/4 ready)

Ready:
  🚀 boot-md ✓ - Run BOOT.md on gateway startup
  📎 bootstrap-extra-files ✓ - Inject extra workspace bootstrap files during agent bootstrap
  📝 command-logger ✓ - Log all command events to a centralized audit file
  💾 session-memory ✓ - Save session context to memory when /new command is issued

Ejemplo (detallado):

openclaw hooks list --verbose

Muestra requisitos faltantes para hooks no elegibles.

Ejemplo (JSON):

openclaw hooks list --json

Devuelve JSON estructurado para uso programático.

Obtener información de un hook

openclaw hooks info <name>

Muestra información detallada sobre un hook específico.

Argumentos:

  • <name>: Nombre del hook (ej., session-memory)

Opciones:

  • --json: Salida como JSON

Ejemplo:

openclaw hooks info session-memory

Salida:

💾 session-memory ✓ Ready

Save session context to memory when /new command is issued

Details:
  Source: openclaw-bundled
  Path: /path/to/openclaw/hooks/bundled/session-memory/HOOK.md
  Handler: /path/to/openclaw/hooks/bundled/session-memory/handler.ts
  Homepage: https://docs.openclaw.ai/automation/hooks#session-memory
  Events: command:new

Requirements:
  Config: ✓ workspace.dir

Verificar elegibilidad de hooks

openclaw hooks check

Muestra un resumen del estado de elegibilidad de hooks (cuántos están listos vs. no listos).

Opciones:

  • --json: Salida como JSON

Ejemplo de salida:

Hooks Status

Total hooks: 4
Ready: 4
Not ready: 0

Habilitar un hook

openclaw hooks enable <name>

Habilita un hook específico agregándolo a tu configuración (~/.openclaw/config.json).

Nota: Los hooks gestionados por plugins muestran plugin:<id> en openclaw hooks list y no pueden habilitarse/deshabilitarse aquí. Habilita/deshabilita el plugin en su lugar.

Argumentos:

  • <name>: Nombre del hook (ej., session-memory)

Ejemplo:

openclaw hooks enable session-memory

Salida:

✓ Enabled hook: 💾 session-memory

Qué hace:

  • Verifica si el hook existe y es elegible
  • Actualiza hooks.internal.entries.<name>.enabled = true en tu configuración
  • Guarda la configuración en disco

Después de habilitar:

  • Reinicia el gateway para que los hooks se recarguen (reinicio de la app de barra de menú en macOS, o reinicia tu proceso de gateway en dev).

Deshabilitar un hook

openclaw hooks disable <name>

Deshabilita un hook específico actualizando tu configuración.

Argumentos:

  • <name>: Nombre del hook (ej., command-logger)

Ejemplo:

openclaw hooks disable command-logger

Salida:

⏸ Disabled hook: 📝 command-logger

Después de deshabilitar:

  • Reinicia el gateway para que los hooks se recarguen

Instalar hooks

openclaw hooks install <path-or-spec>
openclaw hooks install <npm-spec> --pin

Instala un pack de hooks desde una carpeta/archivo local o npm.

Las especificaciones npm son solo de registro (nombre del paquete + versión exacta opcional o dist-tag). Las especificaciones de Git/URL/archivo y rangos semver se rechazan. Las instalaciones de dependencias se ejecutan con --ignore-scripts por seguridad.

Las especificaciones base y @latest se mantienen en la pista estable. Si npm resuelve cualquiera de ellas a un prerelease, OpenClaw se detiene y te pide que aceptes explícitamente con un tag de prerelease como @beta/@rc o una versión exacta de prerelease.

Qué hace:

  • Copia el pack de hooks en ~/.openclaw/hooks/<id>
  • Habilita los hooks instalados en hooks.internal.entries.*
  • Registra la instalación en hooks.internal.installs

Opciones:

  • -l, --link: Vincular un directorio local en lugar de copiar (lo agrega a hooks.internal.load.extraDirs)
  • --pin: Registrar instalaciones npm como name@version resuelto exacto en hooks.internal.installs

Archivos soportados: .zip, .tgz, .tar.gz, .tar

Ejemplos:

# Directorio local
openclaw hooks install ./my-hook-pack

# Archivo local
openclaw hooks install ./my-hook-pack.zip

# Paquete NPM
openclaw hooks install @openclaw/my-hook-pack

# Vincular un directorio local sin copiar
openclaw hooks install -l ./my-hook-pack

Actualizar hooks

openclaw hooks update <id>
openclaw hooks update --all

Actualiza packs de hooks instalados (solo instalaciones npm).

Opciones:

  • --all: Actualizar todos los packs de hooks rastreados
  • --dry-run: Mostrar qué cambiaría sin escribir

Cuando existe un hash de integridad almacenado y el hash del artefacto obtenido cambia, OpenClaw imprime una advertencia y pide confirmación antes de proceder. Usa --yes global para omitir prompts en ejecuciones CI/no interactivas.

Hooks empaquetados

session-memory

Guarda el contexto de la sesión en memoria cuando ejecutas /new.

Habilitar:

openclaw hooks enable session-memory

Salida: ~/.openclaw/workspace/memory/YYYY-MM-DD-slug.md

Ver: session-memory documentation

bootstrap-extra-files

Inyecta archivos bootstrap adicionales (por ejemplo AGENTS.md / TOOLS.md locales del monorepo) durante agent:bootstrap.

Habilitar:

openclaw hooks enable bootstrap-extra-files

Ver: bootstrap-extra-files documentation

command-logger

Registra todos los eventos de comandos en un archivo de auditoría centralizado.

Habilitar:

openclaw hooks enable command-logger

Salida: ~/.openclaw/logs/commands.log

Ver logs:

# Comandos recientes
tail -n 20 ~/.openclaw/logs/commands.log

# Pretty-print
cat ~/.openclaw/logs/commands.log | jq .

# Filtrar por acción
grep '"action":"new"' ~/.openclaw/logs/commands.log | jq .

Ver: command-logger documentation

boot-md

Ejecuta BOOT.md cuando el gateway inicia (después de que los canales arrancan).

Eventos: gateway:startup

Habilitar:

openclaw hooks enable boot-md

Ver: boot-md documentation