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

我不是因为无聊才试cmux的。问题是真实的:我同时跑4个Claude Code会话,每个都在不同项目里调试代码。macOS通知栏弹出4条一模一样的“Claude is waiting for your input”——没有项目名,没有分支,没有错在哪。我得挨个点开窗口看最后几行输出,才知道是哪个代理在叫我。

我试过几个所谓的AI编排工具。要么是套了一个tmux wrapper,要么是Electron做的笨重界面。最后发现,问题出在终端本身没有为“多个AI代理并行工作”这个场景做任何适配。通知是系统的,窗口是系统的,终端只管显示文本。

cmux跳过了macOS通知中心,直接修改终端界面本身来显示AI代理的状态。

通知设计:为什么它不在系统通知栏里

cmux做了两件事替代系统通知:

通知环——当某个代理需要你回应时,对应窗格的边框亮起蓝色光圈。侧边栏里的标签会闪烁。不需要去看系统通知栏,眼睛余光扫到屏幕边缘的蓝光就知道“那边有事”。

通知面板——所有未读通知集中在一个面板里。点一下面板里的条目,直接跳到对应的会话窗格。面板显示的消息原文是代理实际输出的内容,不是“Claude is waiting”这种通用文案。

我用了两周的感受:以前“挨个窗格点开看一眼”,现在“扫一眼侧边栏就知道该继续干活”。效率提升来自减少切换的次数和识别的时间,不是来自什么魔法。

侧边栏固定显示的信息包括:

  • git分支名称
  • 关联PR的编号和状态(比如“#42 已合并”)
  • 工作目录路径
  • 当前监听的端口
  • 最新通知的原文

三个真正有用的设计

SSH工作区:远程机器的localhost,本地直接访问

cmux ssh user@remote

这条命令为远程机器创建一个独立工作区。工作区内的浏览器分屏会自动经过远程网络。你输入localhost:3000,连的是远程服务器上的localhost——不需要手动做端口转发。这在调试远程服务时很实用。

拖一张图片到远程会话窗口,cmux自动通过scp上传。

cmux ssh user@remote --command 'omp "investigate auth"'

--command参数指定远程会话启动后自动执行一次的命令。适合在建立连接后立即开始某项任务。

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

cmux claude-teams

每个AI队友作为一个原生分屏出现,侧边栏显示队友的元数据和通知。队友完成任务后,分屏自动回收。README明确写着“no tmux required”——不是套壳tmux,是直接用AppKit的分屏机制。

内置浏览器:导入20+浏览器的cookies,脚本化控制

浏览器分屏可以导入Chrome、Firefox、Arc等20+浏览器的cookies、历史记录和会话状态。打开浏览器分屏时,页面直接以已登录状态加载。浏览器和终端并排放置,看文档、调试、操作UI都在同一个窗口。

脚本API来自agent-browser项目,可以编程控制浏览器:打开URL、等待元素出现、点击按钮、填写表单。这些自定义动作写进cmux.json,从命令面板调用。CLI和socket API还能创建workspace、分割pane、发送键盘事件、自动化整个浏览器。

技术选型:为什么它比Electron快

cmux读取你的~/.config/ghostty/config,直接继承主题、字体和颜色。如果你在用Ghostty,cmux几乎不需要额外配置。渲染引擎基于libghostty,GPU加速。用Sparkle框架自动更新,DMG下载一次后,以后自动更新。

技术栈是Swift + AppKit,不是Electron。启动快,内存占用低。这不是吹的——你下载后可以自己对比。

安装

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

Homebrew

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

更新:

brew upgrade --cask cmux

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

适合谁,不适合谁

适合:同时运行多个AI代理(Claude Code、Codex等)的人,需要快速识别哪个代理在叫、需要什么上下文。远程开发时,希望浏览器分屏直接走远程网络。团队协作时,一行命令启动Claude Code Teams。

不适合:只运行一个AI代理的人,或者习惯手动切换窗口去看哪个代理在叫的人。cmux不会让你写代码更快,它只是减少了“找哪个窗口在等我”这类事情的时间。

cmux没有解决所有终端问题。它专注解决一个具体痛点:多个AI代理并行工作时,快速识别哪个在叫、需要什么上下文。

标签:终端增强, AI编程代理, macOS开源, 多会话管理

这篇文章对你有帮助吗?

发表回复