Skip to content

clawhip:讓多 Agent 開發不再失控的事件通知路由器

2026年4月5日 1 分鐘
TL;DR clawhip 是一個 Rust 寫的 daemon,專門把 AI coding agent 的事件(commit、PR、session 狀態)路由到 Discord / Slack,解決多 Agent 並行時「不知道誰在做什麼」的可觀測性問題。

當你同時跑 3 個 AI coding agent,每個在不同的 tmux session 裡改不同的檔案,你怎麼知道哪個完成了、哪個卡住了、哪個剛開了一個 PR?clawhip 就是為了回答這個問題而存在的。

解決什麼問題

多 Agent 並行開發有一個被低估的痛點:可觀測性。Agent 自己不會主動告訴你進度,你要不就開一堆終端視窗盯著看,要不就等全部跑完再去檢查。

更麻煩的是,如果讓 Agent 自己去呼叫 Discord API 發通知,會污染它的 context window——模型的注意力被 API 回應佔用,影響正事的品質。

clawhip 的解法是把通知邏輯抽離 Agent,做成一個獨立的 daemon:

Agent 發出事件 → clawhip daemon 接收 → 路由 + 格式化 → 發送到 Discord / Slack

Agent 只需要發一個輕量的 HTTP POST,剩下的事情 clawhip 全包。

架構設計

clawhip 是一個 Rust 寫的 daemon,預設監聽 http://127.0.0.1:25294,內部採用 typed event pipeline:

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

事件家族

事件前綴來源
github.*GitHub webhook(issue、PR、review)
git.*本地 Git 操作(commit、push)
agent.*Agent 生命週期(啟動、完成、失敗)
session.*OMC / OMX 的 session 事件
tmux.*tmux session 狀態變化

路由規則

路由設定在 ~/.clawhip/config.toml,支援 glob pattern 匹配、payload 過濾、動態 token 展開:

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

可以針對不同 repo、不同分支、不同 Agent 設定不同的通知頻道和格式——不需要所有事件都轟炸同一個頻道。

多 Sink 支援

Sink方式
Discord BotREST API(需要 bot token)
Discord Webhook無需 bot,直接 webhook URL
Slack WebhookIncoming webhook

tmux 監控

clawhip 不只被動接收事件,還能主動監控 tmux session

# 啟動新 session 並監控
clawhip tmux new -s issue-123 --channel <id> --keywords "error,complete" -- 'omx --madmax'

# 監控既有 session
clawhip tmux watch -s my-session --channel <id> --keywords "error,PR created"

# 列出所有監控中的 session
clawhip tmux list

它會掃描 tmux pane 的輸出,偵測到關鍵字就發通知。同時有 stale session 偵測——如果某個 session 太久沒有輸出,會發警告提醒你去看。

這對多 Agent 開發特別有用:你不需要開 5 個終端視窗盯著看,clawhip 會在 Discord 告訴你哪個 session 出了什麼事。

與 OMC / OMX 的整合

clawhip 和 oh-my-claudecode(OMC)、oh-my-codex(OMX)有原生整合。它定義了一組標準化的 session.* 事件契約:

事件觸發時機
session.startedAgent session 啟動
session.finished任務完成
session.failed執行失敗
session.pr-created開了新 PR

OMC / OMX 透過內建的 hook bridge 把事件推給 clawhip:

# OMX 的 hook 入口
clawhip omx hook <event-payload>

# 或直接打 API
POST /api/omx/hook

這意味著如果你已經在用 OMC 或 OMX 做多 Agent 協調,加上 clawhip 就能自動獲得完整的 Discord / Slack 通知,不需要自己寫任何 webhook 邏輯。

其他功能

批次發送

可設定 burst batching 和 CI batch summary window,避免短時間內大量事件轟炸頻道:

[dispatch]
burst_window_ms = 2000
ci_summary_window_ms = 30000

Agent 記憶體管理

clawhip memory init    # 初始化結構化記憶體
clawhip memory status  # 檢查記憶體狀態

使用 MEMORY.md + memory/ shard 模式,讓 Agent 的記憶可以跨 session 持久化。

Cron 排程

搭配系統 cron 可以做定期的開發頻道追蹤:

# 每 30 分鐘發送專案狀態摘要
*/30 * * * * clawhip send --channel <id> --message "$(git log --oneline -5)"

安裝

# 預編譯 binary(推薦,不需要 Rust)
curl --proto '=https' --tlsv1.2 -LsSf \
  https://github.com/Yeachan-Heo/clawhip/releases/latest/download/clawhip-installer.sh | sh

# 或從 crates.io
cargo install clawhip

# 啟動
clawhip          # 啟動 daemon
clawhip status   # 檢查健康狀態

支援 systemd 整合,可以設為開機自啟。預編譯 binary 涵蓋 x86_64 / aarch64 的 Linux 和 macOS。

專案現況

指標數值
GitHub Stars~543
Forks~101
語言Rust
最新版本v0.4.0
發佈平台crates.io
維護者Yeachan Heo

相比 OMC 和 OMX 的萬級 star 數,clawhip 的 543 stars 看起來不多。但這符合它的定位——它是基礎設施工具,不是面向終端使用者的產品。用它的人是已經在跑多 Agent 工作流、需要系統化通知的開發者。

在 UltraWorkers 生態系中的位置

oh-my-claudecode (OMC)  ─┐
oh-my-codex (OMX)        ├── Agent 協調層
oh-my-openagent (OmO)   ─┘

         │ session 事件

      clawhip ──── 通知與可觀測性層


    Discord / Slack

OMC、OMX、OmO 負責讓 Agent 做事,clawhip 負責讓人知道 Agent 在做什麼。這個分工讓每個工具都能專注在自己的職責上,而不是每個 Agent 框架都要自己重新實作一套通知系統。

參考資料