cmux:5个月22000Star,AI Terminal Multiplexer,同时管理多个Agent会话,内置浏览器面板和MCP编排
一个终端项目,五个月斩获22000 Star。连 Ghostty 作者 Mitchell Hashimoto 都转发了,说这又是个基于 libghostty 做出来的东西。
它不是新语言新框架,就是个给 Agent 用的终端。用一句话概括一下就是:cmux 本质上就是帮你同时管理多个 agent 会话,让你一眼看出谁在等你输入,谁在跑什么任务。
它把每一个 AI Agent 会话的状态都展示得一清二楚。
解决的痛点
以前使用传统终端同时运行多个 Claude Code 会话的时候,最让人头疼的就是通知了。当 macOS 的通知弹出来的时候,只会出现"Claude 正在等你回复"的字样,并不能知道是哪个 agent、在哪个项目里被卡住了、又是哪一步被卡住的。回到终端之后,十几张标签页挤在一起,标题被截断了,要想找到要输入的地方,只能一个个地点过去看。
cmux 的做法是把标签页改成垂直侧边栏,在每个工作区中都显示完整的状态信息。
三大核心设计
01 垂直标签页侧边栏,解决标签页信息过载的问题
传统的终端水平标签页,标题只能显示几个字符,打开很多的时候就会挤在一起,分不清楚哪个是哪个。cmux 把标签页从横向变成了纵向,并且把它们放在了左边,在每一个工作区里都显示出了 git branch、PR 编号、当前目录、监听端口以及最新的一条通知信息。一目了然地看到每一个 agent 在做哪个项目、卡在哪个环节上。
02 蓝色通知环,解决通知定位的问题
传统上终端通知系统是没有上下文的,弹出来的时候看不出是哪个 agent 要你。cmux 的方式是在一个 agent 需要输入的时候,这个 agent 对应的面板四周会有一圈蓝光。不需要一直盯着通知面板看,只要看到蓝色的灯亮起来,就说明那个窗口已经准备好要等你了。用快捷键 Cmd+Shift+U 可以快速定位到最新的未读消息所在的 agent 上,不需要一个一个地去查找。
03 OSC 序列检测,解决通知兼容性的问题
这套通知系统不只是给 Claude Code 用的,它通过 OSC 序列检测,能自动捕获终端发出的通知信号。只要你的 agent 工具支持 OSC 9/99/777 这类序列,cmux 就能识别,一条 cmux hooks setup 就能把通知集成进去。如果使用的是 Claude Code、Codex、OpenCode、Gemini CLI 等主流工具的话,cmux 还提供 hook 自动安装的功能,即插即用。
浏览器面板
除了通知系统之外,cmux 还有浏览器面板。这个设计有点特别,你可以在终端旁边分屏打开一个 WebKit 浏览器,用以查看 agent 生成的网页、调试前端界面、让 agent 自己操作浏览器等。
更进一步的话,它提供了浏览器自动化 API,来源于 Vercel 的 agent-browser 项目。它解决的是 agent 和 Web 界面之间的交互问题。可以使用 CLI 命令来获取 agent snapshot 页面的 accessibility tree、点击元素、输入文本、执行 JS 等。例如 cmux browser snapshot --interactive 可以得到页面结构,cmux browser click --surface surface:3 'e14' 可以点击到指定的元素。
让 Agent 不再局限于终端上运行,可以直接对浏览器界面进行操作,打通了终端和 Web 之间的隔阂。如果在远程服务器上运行 agent 的话,浏览器面板的路由就会自动穿透到远程网络中去,localhost 地址直接就能用,不用手动配端口转发,省掉了一堆折腾。
MCP Server:让agent控制agent
cmux 还提供了一个 MCP Server,叫 cmux-agent-mcp,有81个工具。它的设计理念就是用一个 orchestrator agent 来管理 cmux,从而去管理其他的 agent。
这套工具解决的是多 agent 协调的问题。可以用来 spawn 新的 agent 会话,给正在运行中的 agent 注入提示,读取任意面板的输出。也可以一次调用给多个 agent 分配不同的任务,例如让三个子 agent 分别负责前端、后端和测试,并且要对它们的输出情况进行监控。
这样就使 cmux 不只成为"终端",而成为一个 agent orchestration 平台。
如何安装
如果使用的是 macOS 的话,最简单的方法就是 Homebrew:
brew tap manaflow-ai/cmux
brew install --cask cmux
安装好之后打开应用程序,如果之前你使用过 Ghostty 的话,cmux 就会自动读取配置文件,并且继承你的主题、字体和颜色设置。CLI 工具放在了应用包里面,如果要在外面直接使用的话,可以在 /usr/local/bin/cmux 上创建一个软链接。然后运行 cmux hooks setup,将 Claude Code 或者 Codex 的通知整合进来之后就可以使用了。
局限性
目前只支持 macOS 14.0 以上,Linux 版本还在计划中,Windows 没有官方提及。SSH 功能还在不断更新中,tmux 的 detach/attach 机制已经比较完善了,目前 cmux 还不能实现 tmux 那样的功能,比如持久化会话、远程 detach 等。该项目使用的是 GPL-3.0 协议,企业想要使用但是又不希望受到 GPL 合规限制的话,就需要购买商业授权。
整体来看,cmux 不是要替代 tmux 或 iTerm2,而是定义了一个新类别:AI Terminal Multiplexer。它主要的价值就是把"agent 并行管理"这件事情由人工去操作变成终端本身具备的能力。经常同时跑 Claude Code 和 Codex CLI 的朋友,推荐试试。
项目基于 GPL-3.0 协议开放。
开源地址:https://github.com/manaflow-ai/cmux