botmux 是飞书(Lark)与 AI 编程 CLI 之间的桥接平台:一条飞书消息启动一个独立的编程会话。MIT 协议开源,npm install -g botmux 安装(Node ≥ 22),文档站 https://deepcoldy.github.io/botmux/,仓库 https://github.com/deepcoldy/botmux。
产品定位与工作方式
一个常驻 daemon 监听飞书消息,为每个新话题自动 spawn 一个独立的 AI 编程 CLI 进程(Claude Code / Codex / Cursor / Gemini / OpenCode / Antigravity 等),把终端输出实时流式回传为飞书卡片,并提供可交互的 Web 终端。手机、电脑、飞书三端同步——人在哪儿,编程会话就跟到哪儿。
进程模型与源码细节见 architecture-overview 与 daemon-worker。
解决什么问题
- Agent 收不到通知、手机控不了 — CLI 跑在开发机上,人在手机上。botmux 把每轮输出推成飞书卡片(见 cards),随时随地查看 / 追问 / 打断,还能开可写 Web 终端直接操作(见 web-terminal)。
- CLI 不感知飞书上下文 — 把机器人拉进话题群 / oncall 群,@ 一句就在本机代码库里开跑;会话可用
/relay原样搬到另一个群,上下文不丢(见 session-handoff)。 - 单个 Agent 不够用 — 同群放多个不同 CLI 的机器人,@ 谁谁干活;让 Claude Code 和 Codex 一起 review 同一个 MR、独立分析、观点不同自动互怼(见 multi-bot)。
核心理念:直接桥接 CLI,不做 SDK wrapper
botmux 不重新实现 Agent 能力,而是直接桥接已有的 AI 编程 CLI。记忆、上下文管理、工具调用、权限体系、plan mode、/ 命令、MCP 生态——这些能力 CLI 本身在飞速迭代,botmux 站在这个进化之上,而不是平行重造一套。多数 CLI 原生能力无需 botmux 重造,CLI 升级通常直接受益;只有接口 / 参数 / 输出格式 / resume 语义有变时,adapter 才可能要跟进。
同时 daemon 用结构化 prompt 注入(XML 标签)把用户内容和系统指令隔开后再喂给 CLI——这是模型公认最稳的提示词格式,但用户照常发人话即可,封装由 botmux 完成。
支持的 CLI / Agent
bots.json 里用 cliId 一键切换,20+ 适配器(README 口径;站点 index 页旧表述为「6+ 种」,以 README 为准),覆盖两类:
- 本地 CLI:进程隔离,
tmux attach可直连进程。代表:claude-code、codex、gemini、cursor、opencode、antigravity、copilot、grok、kimi、kiro-cli、reasonix、aiden、coco(TRAE)、hermes等。 - API / 云 Agent:通过 API / 远端接入,非本地进程,如
mira、riff。
完整 cliId 清单以源码 src/adapters/cli/registry.ts 为准;配置与套 wrapper / 网关方法见 adapters 与 adapters。
Codex 兼容发行版:严格兼容 Codex 参数、交互与会话存储的独立发行版无需新增适配器——保留 cliId: "codex",通过 cliRuntime 声明自己的 executable、展示名和更新源。botmux 按发行版隔离版本与会话身份,未知更新源不会回落到官方 Codex。
与基于 Agent SDK 方案的边界对比
botmux 官方只对比可核验的集成边界,不断言其它方案「必然缺失」:
| 集成边界 | botmux | 基于 Agent SDK 的方案 |
|---|---|---|
| 桥接对象 | 完整 CLI 进程(含 hooks / memory / plan mode / MCP / / 命令等 CLI 自带运行时) | SDK 暴露的接口面 |
| CLI 升级 | 多数直接受益;接口 / resume 有变时 adapter 跟进 | 取决于 SDK 版本与集成实现 |
| 记忆 / 上下文 | 直接复用 CLI 内建,随 CLI 迭代增强 | 取决于 SDK / 自建,易与 CLI 原生能力重复 |
| 多 CLI / Agent | 20+ 适配器一键切换 | 取决于 SDK 覆盖面,常绑定单一 SDK |
| 多机器人 | 同群多 bot @mention 路由,进程隔离 | 取决于实现,通常单机器人 |
| 终端直连 | 本地 CLI 可 tmux attach 进真进程,与本地一致 | 取决于实现,通常无法操作底层终端 |
| Web 终端 | 可交互完整终端,三端同步 | 通常仅只读输出 |
亮点功能速览
- 实时流式卡片 — 每轮对话一张实时更新的飞书卡片,见 cards
- 可交互 Web 终端 — 浏览器 / 手机直接操作 CLI,移动端有悬浮快捷键工具栏
- 多机器人协作 — 同群多 bot @mention 路由,见 multi-bot
- tmux 会话常驻 — daemon 重启不中断 CLI 进程,见 tmux
- 会话接管(Adopt) — 本地 tmux 里跑着的 CLI 一键接进飞书,换设备继续
- 定时任务 — 自然语言配置周期任务,到点在原话题续跑,见 schedule
- Oncall 模式 — 群锚定到一个项目,值班群任何人 @ 即问即答,见 oncall
快速上手
接入步骤见 quickstart;安装排障与常见问题见 faq;各场景推荐配置见 best-practices。