📌 项目地址manaflow-ai/cmux | ⭐ 18,949 颗星 | 🔧 Swift | 📜 未标注

为什么要有cmux

同时跑多个Claude Code、Codex会话时,macOS通知中心里每条都是“Claude is waiting for your input”。没有项目名、没有会话编号、没有分支信息。你只能挨个点开每个终端窗口,看完内容才知道哪个代理在叫。作者写这个项目就是为此。

cmux把通知系统直接嵌进终端侧边栏,每个代理的请求以原生方式显示在对应pane上。GitHub上18949个星,README翻译成21种语言。

它怎么处理通知

通知环:需要你回应的代理所在pane,边缘亮起蓝色光圈。标签也会闪烁。

通知面板:所有未读通知集中在面板里,点一下跳到对应的会话。不用去macOS通知中心里翻。

侧边栏固定显示:

  • git分支名
  • 关联PR编号/状态(如#42)
  • 工作目录路径
  • 监听端口列表
  • 最新一条通知全文

从一个“Claude is waiting”定位到具体的会话,不需要逐个点窗口。

SSH工作区:一行命令解决远程连接

cmux ssh user@remote

为远程机器创建独立工作区。浏览器分屏自动通过远程网络访问,所以你可以在本地输入localhost:3000,实际连接的是远程服务器上的localhost。不需要手动建端口转发隧道。

拖拽本地图片到远程会话窗口,自动触发scp上传。

Claude Code Teams:一行启动,不用tmux

cmux claude-teams

启动Claude Code的teammate模式。每个AI代理作为一个原生分屏,侧边栏显示队友元数据和通知。队友退出后分屏自动回收。README明确写了“no tmux required”。

内置浏览器:导入cookies,开屏即登录

从Chrome、Firefox、Arc等20+浏览器导入cookies、历史记录和会话。打开浏览器分屏时,页面直接以已登录状态加载。

浏览器分屏和终端可以并排放,看文档、调试同窗口。

脚本API从agent-browser移植,通过CLI或socket API可以编程控制浏览器:打开URL、等待元素、点击、填表。自定义动作写在cmux.json里,从命令面板启动。

技术背景:Swift + AppKit,不走Electron

渲染引擎直接用libghostty。读取~/.config/ghostty/config,继承主题、字体、颜色。GPU加速渲染。更新用Sparkle框架,下载一次DMG后自动更新。没有WebView,没有打包Chromium。启动快,内存占用低。

安装

DMG(推荐):打开.dmg拖到Applications文件夹,以后自动更新。

Homebrew:

brew tap manaflow-ai/cmux
brew install --cask cmux

更新:

brew upgrade --cask cmux

首次启动macOS会提示确认来自已识别开发者,点击打开即可。

cmux不是通用终端模拟器,它围绕一个场景设计:同时跑多个AI编码代理时,减少切换成本。18949个星说明这个方向确实有人需要。

这篇文章对你有帮助吗?

发表回复