oclaw/runtime/hooks/README.md
oliver 4a23b715a2 重构仓库目录为统一的 runtime 分层并清理历史 openclaw 残留。
本次迁移将网关/通道/工具/技能/脚本与协议资源集中到新结构,统一路径常量与脚本转发机制,减少顶层噪音并保证运行与测试行为一致。

Made-with: Cursor
2026-04-25 01:24:23 +08:00

905 B

oclaw/hooks

Unified Python hooks runtime and hook packages.

What you get

  • In-process hook bus: register on type or type:action, sync/async handlers, isolated failures.
  • Directory discovery: finds hooks by HOOK.md + handler.py (or index.py).
  • Config gating: supports hooks.internal.enabled and hooks.internal.entries.<hookKey>.enabled.
  • Source precedence: bundled / managed / workspace collision resolution.

Hook layout

Put hooks in any of:

  • Bundled: oclaw/hooks/bundled/<hookName>/
  • Managed: ~/.oclaw/hooks/<hookName>/
  • Workspace: <workspace>/hooks/<hookName>/ (explicit opt-in by default)

Each hook directory must contain:

  • HOOK.md with YAML frontmatter including metadata.oclaw.events
  • handler.py (or index.py) exporting a callable handle(event)

Minimal self-test

python "oclaw/hooks/_selftest.py"