ClawRelay — 用不习惯 OpenClaw,我自己撸了一个 Claude Code 调度器

查看 14|回复 1
作者:yadorez   
起因
先说结论:用了一个假期的 OpenClaw 之后,我决定自己造一个。
不是 OpenClaw 不好,Telegram UI 确实香,但用深了之后问题实在太多,多到我一个写代码的人每天花一半时间在跟工具较劲,而不是在干活。
痛点一:发了消息之后完全不知道它在干什么
这是最让我抓狂的。你给 Claude 一个任务,然后呢?然后就是对着 Telegram 聊天窗口干瞪眼。它在读文件?在跑命令?在思考人生?你不知道。配了消息切分也不行——切太碎 Telegram 直接 429 ,指数退避之后两条消息要等 10 分钟才发出来。10 分钟。你坐在那里等 10 分钟看一条消息,这体验跟拨号上网有什么区别?
痛点二:两个 Agent 打架
这是架构层面的硬伤。Claude Code 本身已经是一个非常成熟的 Agent 了,有完整的工具链:Bash 、Read 、Write 、Edit 、Grep 、WebSearch……它自己就能干活。但 OpenClaw 的 pi-mono 框架也是个 Agent ,也想管事。结果就是两个 Agent 互相抢活干,你不得不把 Claude 本来就能做的事情委托给 OpenClaw 去调度,这太不 AI 了。
说白了我需要的只是一个监工 + 调度器,不是另一个 Agent 。那堆 SAUL 和 SKILL 对我来说完全用不上——Claude 自己就能做。唯一算有点用的计划任务和 heartbeat ,对稍微有点经验的人来说也是鸡肋。
痛点三:Anthropic 封了 OpenClaw
嗯,这个不多说了。
所以我做了 ClawRelay
架构图一目了然:
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 自己搞定。
你能看到 Claude 在干什么
这是我最在意的功能。消息发出去之后:
  • 实时 token 流:Claude 打一个字你就看到一个字
  • Extended Thinking 面板:Claude 的思考过程实时展示,默认折叠,点开看完整思维链
  • Tool Call 标签:Claude 每调用一个工具,底部就多一个 chip——Bash 、Read 、Edit 、WebSearch……一目了然

    再也不用对着屏幕发呆猜它在干嘛了。
    多项目管理
    每个项目独立配置:
  • 工作目录( Claude 在哪个目录下干活)
  • System Prompt (你的个性化指令)
  • 模型选择( Opus / Sonnet / Haiku 随便切)
  • 独立的消息历史,SQLite 本地持久化

    项目之间互不干扰,有新消息还会亮未读标记。同时盯三四个项目的进度完全没问题。
    OpenAI 兼容协议
    /v1/chat/completions,标准的 OpenAI API 格式。这意味着理论上你可以用任何支持 OpenAI API 的客户端连上来。Go relay 做了模型别名映射:gpt-4 → Opus ,gpt-4o → Sonnet ,gpt-3.5-turbo → Haiku 。还有 /v1/stats 端点追踪 token 用量。
    技术栈
    [td]组件[/td]
    [td]技术[/td]
    桌面客户端
    Flutter + Riverpod + Drift(SQLite) + Material Design 3
    Relay 服务
    Go 1.24 ,无框架,subprocess 管理
    流式传输
    SSE ( Server-Sent Events )
    本地存储
    SQLite (~/.config/clawrelay/clawrelay.sqlite )
    整个项目没用什么花里胡哨的依赖,Go 后端甚至没引 web 框架,标准库直接撸。
    跟 OpenClaw 的本质区别
    [td][/td]
    [td]OpenClaw[/td]
    [td]ClawRelay[/td]
    架构
    Agent 调度 Agent
    纯 UI 壳 + 透传 Relay
    工具执行
    框架接管
    Claude Code 原生执行
    UI
    Telegram Bot
    Flutter 原生桌面应用
    消息延迟
    受 Telegram API 限制
    本地直连,零延迟
    可观测性
    黑盒
    实时 streaming + thinking + tool chips
    复杂度
    重( pi-mono + SAUL + SKILL )
    轻(一个 Go binary + 一个 Flutter app )
    手机上和电脑上之前都没法愉快地做监工,现在终于舒服了。
    最后
    代码已开源,欢迎 PR:https://github.com/roodkcab/clawrelay
    如果你也是 Claude Code 重度用户,如果你也受够了终端的不好体验或者对着 Telegram 猜 Claude 在干什么,试试 ClawRelay 。
    它不多管闲事,不跟 Claude 抢活干,只做一件事:随时随地让你清清楚楚地看到 Claude Code 在帮你干什么。
    一个假期的怨气,化成了代码。

    ClawRelay, Claude, OpenClaw

  • andforce   
    知识点有点密集,收藏学习
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部