Skip to content

clawhip: An Event Notification Router That Keeps Multi-Agent Development Under Control

Apr 5, 2026 1 min
TL;DR clawhip is a Rust daemon that routes AI coding agent events (commits, PRs, session status) to Discord / Slack, solving the observability problem of not knowing who is doing what when multiple agents run in parallel.

🌏 中文版

When you have 3 AI coding agents running simultaneously, each in a different tmux session modifying different files, how do you know which one finished, which one is stuck, and which one just opened a PR? clawhip exists to answer that question.

What Problem Does It Solve

Multi-agent parallel development has an underestimated pain point: observability. Agents don’t proactively report their progress. You either open a bunch of terminal windows and watch them, or wait until everything finishes and then check.

What makes it worse is that if you let agents call the Discord API to send notifications themselves, it pollutes their context window — the model’s attention gets consumed by API responses, degrading the quality of their actual work.

clawhip’s solution is to decouple notification logic from the agent, turning it into a standalone daemon:

Agent emits event → clawhip daemon receives → route + format → send to Discord / Slack

The agent only needs to fire a lightweight HTTP POST; clawhip handles the rest.

Architecture

clawhip is a Rust daemon that listens on http://127.0.0.1:25294 by default, using a typed event pipeline internally:

[CLI / webhook / git / GitHub / tmux]
  → sources
  → mpsc queue
  → dispatcher
  → router → renderer → Discord/Slack sink

Event Families

Event PrefixSource
github.*GitHub webhooks (issues, PRs, reviews)
git.*Local Git operations (commit, push)
agent.*Agent lifecycle (started, completed, failed)
session.*OMC / OMX session events
tmux.*tmux session state changes

Routing Rules

Routing is configured in ~/.clawhip/config.toml, with support for glob pattern matching, payload filtering, and dynamic token expansion:

[[routes]]
events = ["github.pr.*"]
channel = "123456789"
format = "compact"
filters = { repo = "my-project" }
mentions = ["@dev-team"]

You can set different notification channels and formats for different repos, branches, and agents — no need to blast all events into the same channel.

Multi-Sink Support

SinkMethod
Discord BotREST API (requires bot token)
Discord WebhookNo bot needed, direct webhook URL
Slack WebhookIncoming webhook

tmux Monitoring

clawhip doesn’t just passively receive events — it can also actively monitor tmux sessions:

# Start a new session and monitor it
clawhip tmux new -s issue-123 --channel <id> --keywords "error,complete" -- 'omx --madmax'

# Monitor an existing session
clawhip tmux watch -s my-session --channel <id> --keywords "error,PR created"

# List all monitored sessions
clawhip tmux list

It scans tmux pane output and sends a notification when it detects a keyword. It also has stale session detection — if a session hasn’t produced output for too long, it sends a warning to remind you to check.

This is especially useful for multi-agent development: you don’t need 5 terminal windows open to keep watching. clawhip tells you in Discord what happened in which session.

Integration with OMC / OMX

clawhip has native integration with oh-my-claudecode (OMC) and oh-my-codex (OMX). It defines a standardized set of session.* event contracts:

EventTrigger
session.startedAgent session started
session.finishedTask completed
session.failedExecution failed
session.pr-createdNew PR opened

OMC / OMX push events to clawhip through a built-in hook bridge:

# OMX hook entry point
clawhip omx hook <event-payload>

# Or hit the API directly
POST /api/omx/hook

This means if you’re already using OMC or OMX for multi-agent coordination, adding clawhip gives you full Discord / Slack notifications automatically — no need to write any webhook logic yourself.

Other Features

Batch Sending

You can configure burst batching and CI batch summary windows to prevent a flood of events from spamming a channel in a short time:

[dispatch]
burst_window_ms = 2000
ci_summary_window_ms = 30000

Agent Memory Management

clawhip memory init    # Initialize structured memory
clawhip memory status  # Check memory status

Uses a MEMORY.md + memory/ shard pattern to persist agent memory across sessions.

Cron Scheduling

Combined with system cron, you can set up periodic dev channel tracking:

# Send project status summary every 30 minutes
*/30 * * * * clawhip send --channel <id> --message "$(git log --oneline -5)"

Installation

# Precompiled binary (recommended, no Rust required)
curl --proto '=https' --tlsv1.2 -LsSf \
  https://github.com/Yeachan-Heo/clawhip/releases/latest/download/clawhip-installer.sh | sh

# Or from crates.io
cargo install clawhip

# Start
clawhip          # Start the daemon
clawhip status   # Check health status

Supports systemd integration for auto-start on boot. Precompiled binaries cover x86_64 / aarch64 for both Linux and macOS.

Project Status

MetricValue
GitHub Stars~543
Forks~101
LanguageRust
Latest Versionv0.4.0
Published Oncrates.io
MaintainerYeachan Heo

Compared to OMC and OMX with their tens of thousands of stars, clawhip’s 543 stars may seem modest. But this aligns with its positioning — it’s an infrastructure tool, not a consumer-facing product. Its users are developers already running multi-agent workflows who need systematic notifications.

Position in the UltraWorkers Ecosystem

oh-my-claudecode (OMC)  ─┐
oh-my-codex (OMX)        ├── Agent Coordination Layer
oh-my-openagent (OmO)   ─┘

         │ session events

      clawhip ──── Notification & Observability Layer


    Discord / Slack

OMC, OMX, and OmO are responsible for making agents do work; clawhip is responsible for letting humans know what agents are doing. This separation of concerns lets each tool focus on its own responsibility, rather than every agent framework having to reimplement its own notification system.

References