DEVELOPER PLATFORM

Build your own subscribers.
Plug into any agent.

HookBus is the platform. CRE is subscriber #1. The bus has no opinion on what subscribers do. Build anything that reacts to AI agent lifecycle events. Memory, cost, learning, alerts, governance, compliance. Any service that can read JSON over a Unix socket, HTTP endpoint, or Python class can be a HookBus subscriber.

Subscribers do whatever you need

HookBus carries every lifecycle event from every agent. Subscribers can act on those events any way you need. Governance is one category. Not the whole story.

Governance

Allow, ask, deny on every tool call. Deterministic rules, contextual reasoning, data-loss prevention. Stop bad actions before they execute.

Memory & context

Session recall across interactions. Knowledge injection at the start of every conversation. Agents act with current organisational context.

Audit & compliance

Every event, every decision, logged with full metadata. Exportable to SIEM. Answers "show me every action across every agent last Tuesday".

Orchestration

Multiple agents on the same estate. File locking so two agents don't collide. Deferred mailbox so agents hand work to each other through the bus.

Integrations & alerts

Fire Jira tickets, Slack / Discord / Teams messages, PagerDuty incidents, WhatsApp, email, any webhook. One normaliser subscriber, YAML-configured, zero custom code.

Analytics & training

Token cost per agent per team. Latency and anomaly detection. Capture every tool call as fine-tune data, or distil behaviour into smaller local models.

Eight first-party subscribers on HookBus

The production subscribers Agentic Thinking ships on the bus. All HTTP or Unix-socket subscribers. No SDK lock-in. Each one is a few hundred lines of Python, plugged into the bus and replaceable.

CRE (L1 + L2)

Two-layer rule enforcement. L1 deterministic regex in milliseconds, L2 contextual reasoning via an external LLM with conversation, preferences, and persistent enforcement memory. The moat.

KB Injector

Retrieves the most relevant internal policy, runbook, or compliance context for each event. Injects it as preprompt so the agent acts with current organisational knowledge in-context.

Session Memory

Tracks prior interactions per user, per agent, per session. Provides context for L2 reasoning and downstream subscribers. Evidence of standing permissions and historical decisions.

DLP Filter

Blocks or redacts PII, credentials, PCI, PHI, and financial data before it crosses the agent trust boundary. Bidirectional: outbound on PreToolUse, inbound on PostToolUse.

Auditor

Structured audit log of every event and every decision. Who, what, when, which subscriber decided, why. Exportable to SIEM. Answers "show me every destructive action across every agent last week".

CRE Light

Fast L1-only regex gate. Sub-millisecond decisions. For high-volume agents that need deterministic enforcement without the cost of LLM reasoning on every call.

Swarm Orchestrator

Coordinates multiple agents working the same estate. File locking so two agents do not edit the same file. Deferred mailbox injection so agents hand work to each other through the bus. Agent registry from live event stream.

Normaliser COMING SOON

Any lifecycle event, any destination, zero code. One YAML-configured subscriber that speaks Slack, Discord, Teams, Jira, PagerDuty, Datadog, Splunk, Email, WhatsApp, or any webhook. New destination? Add a line of config.

One JSON envelope. Any language.

HookBus subscribers are services that read a lifecycle event from stdin (or a socket) and write a decision back. There is no SDK. There is no framework lock-in. There is one envelope.

# Sync subscriber: receives an event, returns a decision def on_event(event): if event["hook"] == "PreToolUse": if dangerous(event["tool"], event["args"]): return {"decision": "deny", "reason": "policy violation"} return {"decision": "allow"}

Sync subscribers block execution until they decide. Return allow, deny, or ask. Deny wins if any subscriber denies.

Async subscribers observe events without blocking. Use them for memory, audit logs, cost tracking, alerts, and SIEM forwards.

Transport options: Unix socket, HTTP endpoint, or in-process Python class. Hot-reloadable config. Health checks per subscriber.

HookBus Agent: turn any API agent into a publisher.

A reference AI agent with 6 gated tools (bash, read, write, edit, glob, grep). Every tool call is mechanically gated through HookBus before execution. Works with any OpenAI-compatible LLM. Plug in your API key, point at the bus, and your agent is governed. Open source. MIT licence.

COMING SOON
Two gating modes:
Shell hooks (reads settings.json, runs hook commands as subprocesses, same protocol as Claude Code)
HookBus HTTP (posts events directly to the bus endpoint)

Zero-token governance: Rules live outside the context window. No governance tokens per inference call. The more rules you add, the more you save versus prompt-based enforcement.

Normaliser: any event, any destination, zero code.

One subscriber that turns HookBus lifecycle events into whatever format the destination expects. Slack webhook. Jira REST. PagerDuty incident. Datadog metric. Splunk event. WhatsApp message via Twilio or Meta Cloud. Generic webhook. All from one container, configured with YAML. No custom integration code.

COMING SOON
What it does:
Subscribes to any lifecycle event (PreToolUse, PostToolUse, UserPromptSubmit, SessionEnd). Filters on decision / severity / pattern. Transforms into the destination's native format. Sends.

Destinations on launch: Slack, Discord, Teams, Jira, PagerDuty, Datadog, Splunk, Email (SMTP / SES / Resend), WhatsApp, generic webhook.

Why it belongs on the bus: Every integration becomes a line of YAML, not a line of Python. New destination tomorrow? Add it to the config. One deployed subscriber, unlimited downstream systems.

Skills Subscriber: reusable actions, publisher-agnostic.

A subscriber that invokes reusable skill modules on behalf of any agent. One skill library, used by every agent on the bus. Claude, Cursor, Amp, a custom Slack bot: all trigger the same skills through the same events. No per-agent plugin code.

COMING SOON
What it does:
Watches events for explicit skill invocations or matching intents. Runs the skill (bash, python, http) in a sandboxed environment. Returns the result to the agent as tool output or injects into context. Skills are YAML manifests plus a script, marketplace-ready.

Publisher-agnostic: Claude Code, Cursor, Amp, custom chat bots all trigger the same skills through the same bus events. Write the skill once. Every agent can use it. No per-agent plugin code.

Why it belongs on the bus: Skills are tool calls. Tool calls are lifecycle events. Every skill invocation is gated by CRE, logged by Auditor, filtered by DLP. Governance is automatic. No extra wiring per skill.

Building a subscriber? Talk to us.

HookBus is closed source for now while the patent is pending, but we work directly with design partners to build subscribers against the bus. If you have a use case, get in touch.

Back to homepage