cmux:基于 Ghostty 的开源 AI 编码终端

177 阅读2分钟

经常同时跑三四个 Claude Code、OpenCode、Kimi 会话,靠 macOS 系统通知分辨哪个 Agent 在等你?Claude 的通知永远只显示 "Claude is waiting for your input",标签一多根本分不清状态。受够了 Electron/Tauri 套壳的性能和强制工作流,cmux 用原生方案彻底解决这个问题。

cmux1.jpeg

试过一些编码协调器,但大多是 Electron/Tauri 套壳,性能实在难受。而且我本来就习惯在终端里做事,不喜欢那些 GUI 工具强制规定的工作流。所以我写了 cmux。这是个原生 macOS App,用 Swift/AppKit 直接调用 libghostty 做渲染,能自动读取你现有的 Ghostty 配置,主题、字体、配色都照搬过来。

最直观的区别是左边的垂直标签栏。每个工作区显示当前 git 分支、工作目录、监听端口,最重要的是最后一条通知的内容。这样扫一眼就能知道哪个 Agent 在报错,哪个在等 API key,哪个已经跑完了。

通知系统基于终端的 OSC 序列(9/99/777),我配了个 cmux notify CLI,你可以把它 hook 进 Claude Code、OpenCode、Kimi、Deepseek 或者任何 Agent 工具里。当某个 panel 里的 Agent 停下来等你回复时,那个窗口会亮起蓝框,侧边栏对应的标签也会特显。按 Cmd+Shift+U 就能直接跳到最新的未读通知,不用再逐个 tab 找。

image.png

cmux 还内嵌了一个基于 agent-browser 的可编程浏览器。你可以让 Claude 直接操作页面:截图看 DOM 结构、填表单、点按钮、执行 JS、抓 console 日志。我通常会分屏,左边跑终端,右边开浏览器连本地的 dev server,让 Agent 自己点自己测。

所有操作都能通过 CLI 和 socket API 自动化。创建工作区、分屏、发按键、打开 URL。你可以把它当成一个可脚本化的终端工作台,按自己的习惯随意编排。

请在GitHub 上给我们点个赞: github.com/manaflow-ai…

官网:www.cmux.dev/

录音影片:www.bilibili.com/video/BV1Zh…