hacker news Hacker News
  1. new
  2. show
  3. ask
  4. jobs
I wanted Claude Code to notify my ESP32 when it finished a task. A `curl` in the Stop hook worked — until I needed a local dashboard too. The dashboard couldn't expose an HTTP endpoint, it needed to subscribe. And every new client meant editing hook configs across all my projects.

So I built agent-pulse: a local gateway that captures AI agent lifecycle events and fans them out to registered clients.

You register clients once in a global YAML. Projects just call `agent-pulse hook --provider claude --event stop` from their hooks. The gateway handles routing, per-client filtering, and parallel dispatch. It auto-starts on the first event.

Two delivery modes: HTTP POST fan-out for webhooks and scripts, SSE stream (`GET /events/stream`) for dashboards and anything that can't expose an endpoint. You can also attach project metadata via `.agent-pulse.json` that travels with every event.

Single Go binary, zero runtime dependencies. Claude Code and Gemini CLI supported today, OpenCode and Codex CLI in progress.

Note: Claude Code recently added native HTTP hooks, so you can POST directly to an endpoint without any intermediary. agent-pulse is useful when you have multiple clients, need SSE, or want one config across projects.

Thanks!

https://github.com/SantiagoBobrik/agent-pulse

loading...