hooks
openclaw hooks
Section titled “openclaw hooks”Manage agent hooks (event-driven automations for commands like /new, /reset, and gateway startup).
Related:
List All Hooks
Section titled “List All Hooks”openclaw hooks listList all discovered hooks from workspace, managed, and bundled directories.
Options:
--eligible: Show only eligible hooks (requirements met)--json: Output as JSON-v, --verbose: Show detailed information including missing requirements
Example output:
Hooks (4/4 ready)
Ready: 🚀 boot-md ✓ - Run BOOT.md on gateway startup 📝 command-logger ✓ - Log all command events to a centralized audit file 💾 session-memory ✓ - Save session context to memory when /new command is issued 😈 soul-evil ✓ - Swap injected SOUL content during a purge window or by random chanceExample (verbose):
openclaw hooks list --verboseShows missing requirements for ineligible hooks.
Example (JSON):
openclaw hooks list --jsonReturns structured JSON for programmatic use.
Get Hook Information
Section titled “Get Hook Information”openclaw hooks info <name>Show detailed information about a specific hook.
Arguments:
<name>: Hook name (e.g.,session-memory)
Options:
--json: Output as JSON
Example:
openclaw hooks info session-memoryOutput:
💾 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/hooks#session-memory Events: command:new
Requirements: Config: ✓ workspace.dirCheck Hooks Eligibility
Section titled “Check Hooks Eligibility”openclaw hooks checkShow summary of hook eligibility status (how many are ready vs. not ready).
Options:
--json: Output as JSON
Example output:
Hooks Status
Total hooks: 4Ready: 4Not ready: 0Enable a Hook
Section titled “Enable a Hook”openclaw hooks enable <name>Enable a specific hook by adding it to your config (~/.openclaw/config.json).
Note: Hooks managed by plugins show plugin:<id> in openclaw hooks list and can’t be enabled/disabled here. Enable/disable the plugin instead.
Arguments:
<name>: Hook name (e.g.,session-memory)
Example:
openclaw hooks enable session-memoryOutput:
✓ Enabled hook: 💾 session-memoryWhat it does:
- Checks if hook exists and is eligible
- Updates
hooks.internal.entries.<name>.enabled = truein your config - Saves config to disk
After enabling:
- Restart the gateway so hooks reload (menu bar app restart on macOS, or restart your gateway process in dev).
Disable a Hook
Section titled “Disable a Hook”openclaw hooks disable <name>Disable a specific hook by updating your config.
Arguments:
<name>: Hook name (e.g.,command-logger)
Example:
openclaw hooks disable command-loggerOutput:
⏸ Disabled hook: 📝 command-loggerAfter disabling:
- Restart the gateway so hooks reload
Install Hooks
Section titled “Install Hooks”openclaw hooks install <path-or-spec>Install a hook pack from a local folder/archive or npm.
What it does:
- Copies the hook pack into
~/.openclaw/hooks/<id> - Enables the installed hooks in
hooks.internal.entries.* - Records the install under
hooks.internal.installs
Options:
-l, --link: Link a local directory instead of copying (adds it tohooks.internal.load.extraDirs)
Supported archives: .zip, .tgz, .tar.gz, .tar
Examples:
# Local directoryopenclaw hooks install ./my-hook-pack
# Local archiveopenclaw hooks install ./my-hook-pack.zip
# NPM packageopenclaw hooks install @openclaw/my-hook-pack
# Link a local directory without copyingopenclaw hooks install -l ./my-hook-packUpdate Hooks
Section titled “Update Hooks”openclaw hooks update <id>openclaw hooks update --allUpdate installed hook packs (npm installs only).
Options:
--all: Update all tracked hook packs--dry-run: Show what would change without writing
Bundled Hooks
Section titled “Bundled Hooks”session-memory
Section titled “session-memory”Saves session context to memory when you issue /new.
Enable:
openclaw hooks enable session-memoryOutput: ~/.openclaw/workspace/memory/YYYY-MM-DD-slug.md
See: session-memory documentation
command-logger
Section titled “command-logger”Logs all command events to a centralized audit file.
Enable:
openclaw hooks enable command-loggerOutput: ~/.openclaw/logs/commands.log
View logs:
# Recent commandstail -n 20 ~/.openclaw/logs/commands.log
# Pretty-printcat ~/.openclaw/logs/commands.log | jq .
# Filter by actiongrep '"action":"new"' ~/.openclaw/logs/commands.log | jq .See: command-logger documentation
soul-evil
Section titled “soul-evil”Swaps injected SOUL.md content with SOUL_EVIL.md during a purge window or by random chance.
Enable:
openclaw hooks enable soul-evilSee: SOUL Evil Hook
boot-md
Section titled “boot-md”Runs BOOT.md when the gateway starts (after channels start).
Events: gateway:startup
Enable:
openclaw hooks enable boot-md