openclaw hooks
Manage agent hooks (event-driven automations for commands like /new, /reset, and gateway startup). Bare openclaw hooks is equivalent to openclaw hooks list.
Related: Hooks - Plugin hooks
List hooks
--eligible: only hooks whose requirements are met.--json: structured output.-v, --verbose: include a Missing column with unmet requirements.
Get hook info
<name> is the hook name or hook key (for example session-memory). Shows source, file/handler paths, homepage, events, and per-requirement status (binaries, env, config, OS).
Check eligibility
Enable a hook
hooks.internal.entries.<name>.enabled = true in config and also flips the hooks.internal.enabled master switch on (the gateway does not load any internal hook handler until at least one is configured). Fails if the hook does not exist, is plugin-managed, or is not eligible (missing requirements).
Plugin-managed hooks show plugin:<id> in hooks list and cannot be enabled/disabled here; enable or disable the owning plugin instead.
Restart the gateway after enabling (macOS menu bar app restart, or restart your gateway process in dev) so it reloads hooks.
Disable a hook
hooks.internal.entries.<name>.enabled = false. Restart the gateway afterward.
Install and update hook packs
openclaw hooks install / openclaw hooks update still work as deprecated aliases that print a warning and forward to the plugins commands.
- Npm specs are registry-only: package name plus an optional exact version or dist-tag. Git/URL/file specs and semver ranges are rejected. Dependency installs run project-local with
--ignore-scripts. - Bare specs and
@lateststay on the stable track; if npm resolves to a prerelease, OpenClaw stops and asks you to opt in explicitly (@beta,@rc, or an exact prerelease version). - Supported archives:
.zip,.tgz,.tar.gz,.tar. -l, --linklinks a local directory instead of copying it (adds it tohooks.internal.load.extraDirs); linked hook packs are managed hooks from an operator-configured directory, not workspace hooks.--pinrecords npm installs as an exact resolvedname@versioninhooks.internal.installs.- Install copies the pack into
~/.openclaw/hooks/<id>, enables its hooks underhooks.internal.entries.*, and records the install underhooks.internal.installs. - If a stored integrity hash no longer matches the fetched artifact, OpenClaw warns and prompts before continuing; pass global
--yesto bypass the prompt (for example in CI).
Bundled hooks
| Hook | Events | What it does |
|---|---|---|
| boot-md | gateway:startup | Runs BOOT.md at gateway startup for each configured agent scope |
| bootstrap-extra-files | agent:bootstrap | Injects extra bootstrap files (for example monorepo AGENTS.md/TOOLS.md) during agent bootstrap |
| command-logger | command | Logs command events to ~/.openclaw/logs/commands.log |
| compaction-notifier | session:compact:before, session:compact:after | Sends visible chat notices when session compaction starts and finishes |
| session-memory | command:new, command:reset | Saves session context to memory on /new or /reset |
openclaw hooks enable <hook-name>. Full details, config keys, and defaults: Bundled hooks.
command-logger log file
Notes
hooks list --json,info --json, andcheck --jsonwrite structured JSON directly to stdout.