HOOK.md 1.7 KB


name: task-board-realtime description: "Sync OpenClaw conversations to the task board in real time" homepage: https://docs.openclaw.ai/automation/hooks metadata: {

"openclaw":
  {
    "events": ["message:received", "message:sent", "agent:bootstrap", "command:new", "command:reset", "command:stop"],
    "requires": { "config": ["workspace.dir"] },
  },

}

Task Board Realtime Hook

Automatically writes OpenClaw conversation activity into the local task board.

Behavior

  • message:received
    • Creates (or reuses) one root node for the active conversation.
    • Adds each incoming message as a child node.
  • agent:bootstrap
    • Fallback path for direct openclaw agent ... turns.
    • Scans recent user messages in the session transcript and appends all unseen turns.
  • message:sent
    • Runs a post-response reconciliation pass for channels where direct incoming hooks are not emitted.
    • Resolves session id from sessions.json when needed, then backfills unseen user turns from transcript.
  • command:new and command:reset
    • Closes the current root node as completed.
    • Next message starts a new root node.
  • command:stop
    • End-of-turn reconciliation for CLI-style runs.
    • Backfills unseen user messages from transcript so the latest turn is not delayed.

Config

Configured under:

hooks.internal.entries.task-board-realtime

Supported fields:

  • enabled (boolean, default true)
  • apiBaseUrl (string, default http://127.0.0.1:3001)
  • adminToken (string, default dev-task-board-token)
  • stateFile (string, default <workspace>/task-board/.sync-state.json)
  • ignoreSlashCommands (boolean, default true)
  • maxRememberedMessages (number, default 3000)