先说结论:用了一个假期的 OpenClaw 之后,我决定自己造一个 claude code 监工。
不是 OpenClaw 不好,它的 Telegram UI 确实香,但用深了之后问题实在太多,多到我一个写代码的人每天花一半时间在跟工具较劲,而不是在干活。
这是最让我抓狂的。你给 Claude 一个任务,然后呢?然后就是对着 Telegram 聊天窗口干瞪眼。它在读文件?在跑命令?在思考人生?你不知道。配了消息切分也不行——切太碎 Telegram 直接 429 ,指数退避之后两条消息要等 10 分钟才发出来。10 分钟。你坐在那里等 10 分钟看一条消息,这体验跟拨号上网有什么区别?
这是架构层面的硬伤。Claude Code 本身已经是一个非常成熟的 Agent 了,有完整的工具链:Bash 、Read 、Write 、Edit 、Grep 、WebSearch……它自己就能干活。但 OpenClaw 的 pi-mono 框架也是个 Agent ,也想管事。结果就是两个 Agent 互相抢活干,你不得不把 Claude 本来就能做的事情委托给 OpenClaw 去调度,这太不 AI 了。
说白了我需要的只是一个监工 + 调度器,不是另一个 Agent 。那堆 SAUL 和 SKILL 对我来说完全用不上——Claude 自己就能做。唯一算有点用的计划任务和 heartbeat ,对稍微有点经验的人来说也是鸡肋。
嗯,这个不多说了。
架构图一目了然:
Flutter 桌面客户端
↓ HTTP/SSE ( OpenAI 兼容协议)
Go Relay Server (:50009 )
↓ subprocess fork
Claude Code CLI (带完整工具链)
↓
Anthropic API → Claude Opus/Sonnet/Haiku
核心设计哲学:Claude Code 是干活的人,ClawRelay 只是给它装了个好看的壳。
不抢活,不加戏,不搞中间商赚差价。Go relay 是一个无状态的透传层,把 Claude Code 的 stream-json 转成 OpenAI 兼容的 SSE 格式,Flutter 客户端接住渲染。所有工具调用、文件读写、命令执行,全部由 Claude Code 自己搞定。
这是我最在意的功能。消息发出去之后:
再也不用对着屏幕发呆猜它在干嘛了。
每个项目独立配置:
项目之间互不干扰,有新消息还会亮未读标记。同时盯三四个项目的进度完全没问题。
三种输入方式全覆盖:
还内置了系统截图调用——Linux 上 flameshot/maim/scrot ,macOS 上 screencapture ,Windows 上 PowerShell 。截完图自动贴到输入框,发送时 base64 编码传给后端,后端落盘成临时文件让 Claude 读取,响应完成后自动清理。整个流程丝滑到你感觉不到后面那一堆逻辑。
/v1/chat/completions,标准的 OpenAI API 格式。这意味着理论上你可以用任何支持 OpenAI API 的客户端连上来。Go relay 做了模型别名映射:gpt-4 → Opus ,gpt-4o → Sonnet ,gpt-3.5-turbo → Haiku 。还有 /v1/stats 端点追踪 token 用量。
| 组件 | 技术 |
|---|---|
| 桌面客户端 | Flutter + Riverpod + Drift(SQLite) + Material Design 3 |
| Relay 服务 | Go 1.24 ,无框架,subprocess 管理 |
| 流式传输 | SSE ( Server-Sent Events ) |
| 本地存储 | SQLite (~/.config/clawrelay/clawrelay.sqlite ) |
整个项目没用什么花里胡哨的依赖,Go 后端甚至没引 web 框架,标准库直接撸。
| OpenClaw | ClawRelay | |
|---|---|---|
| 架构 | Agent 调度 Agent | 纯 UI 壳 + 透传 Relay |
| 工具执行 | 框架接管 | Claude Code 原生执行 |
| UI | Telegram Bot | Flutter 原生桌面应用 |
| 消息延迟 | 受 Telegram API 限制 | 本地直连,零延迟 |
| 可观测性 | 黑盒 | 实时 streaming + thinking + tool chips |
| 复杂度 | 重( pi-mono + SAUL + SKILL ) | 轻(一个 Go binary + 一个 Flutter app ) |
一句话总结:OpenClaw 是在 Claude Code 上面又套了一层 Agent ; ClawRelay 是给 Claude Code 开了一扇窗,让你看得见、管得住。
代码已开源,拿走不谢:https://github.com/roodkcab/clawrelay
如果你也是 Claude Code 重度用户,如果你也受够了对着终端或者 Telegram 猜 Claude 在干什么,试试 ClawRelay 。
它不多管闲事,不跟 Claude 抢活干,只做一件事:让你清清楚楚地看到 Claude Code 在帮你干什么。
一个假期的怨气,化成了代码。
