Hooks

A hook is a web address on the Gateway that another system calls when something happens, such as a doorbell press or a GitHub label change. Each call starts a turn for one agent, so Octo reacts to events as they happen instead of on a schedule (for timed work, see Scheduled Tasks).

Every call to OpenClaw’s hooks endpoint (/hooks/...) must carry OpenClaw’s hooks token. Senders reach it in one of two ways:

  • Through the Webhook Proxy, for senders that shouldn’t hold that token: GitHub, from the public internet through Tailscale Funnel (/hooksproxy/...), and Home Assistant, on the home network. The proxy checks each sender’s own credential (such as GitHub’s HMAC signature), drops events that shouldn’t wake an agent, and forwards the rest with the hooks token added, so that token never leaves the Mac mini.
  • Directly, for services on the home network that hold the hooks token themselves.

Apps that hold a conversation with Octo, rather than sending it events, are covered under Connected Apps.

Octo publishes 2 hooks:

  Hook Endpoint Description
🪝 GitHub Issues /hooksproxy/github-issues GitHub issue label changes, signed with HMAC-SHA256 and checked by the Webhook Proxy, start the coding agent on the next step of the issue lifecycle.
🪝 Home Assistant Events /hooksproxy/hass Home Assistant reports motion, LLM Vision detections and doorbell presses through the Webhook Proxy; the hass-hooks agent texts the owner a one-line summary with a camera collage over iMessage.