cmux:专为 AI Agent 设计的开源终端,告别多窗口切换地狱

痛点切入

你有没有过这种体验:同时开着 5 个终端窗口跑不同的 AI agent,一个在等你确认,另一个在跑测试,第三个卡在编译,第四个在等 API 响应,第五个已经忘了是干嘛的。

切换窗口?你根本不知道哪个需要你。等你找到的时候,可能已经错过了 agent 的确认时机。

这就是多 agent 工作流的典型痛点。iTerm2 和 Terminal.app 是优秀的终端,但它们不是为”同时监控多个长时间运行的 agent”设计的。你被迫在窗口间来回切换,靠肉眼盯哪个在输出新内容。

cmux 解决的就是这个问题:把”多个终端窗口”变成”一个界面里的多个面板”,并且告诉你哪个需要你。

项目简介

cmux 是一个基于 Ghostty 的开源 macOS 终端,由 Manaflow 团队开发。它使用 Ghostty 的渲染引擎 libghostty,就像应用使用 WebKit 渲染网页一样。主语言是 Swift + AppKit,完全原生,不是 Electron 套壳。

GitHub 仓库地址是 manaflow-ai/cmux,采用 GPL 协议,免费使用。

它的定位很清晰:为多任务和 AI coding agent 工作流设计的终端。不是替代 iTerm2 做所有事情,而是解决”同时跑多个 agent 时的组织和监控”问题。

README 里列出的核心功能包括:

  • 垂直标签页:侧边栏显示 git 分支、工作目录、端口和通知文本
  • 通知提醒环:当 agent 需要关注时,面板会亮起提示
  • 内置浏览器:在终端旁边分屏打开浏览器,支持可编程 API
  • 分屏面板:每个标签页内支持水平和垂直分屏
  • 可编程:CLI 和 socket API,支持自动化和脚本控制
  • GPU 加速:由 libghostty 驱动,渲染流畅
  • 会话恢复:重启后恢复窗口、工作区、面板、工作目录和回滚内容
  • iOS 伴侣应用:你的终端实时同步到 iPhone 和 iPad

为什么是它

通知系统:这才是多 agent 工作流的核心

大多数终端的”通知”是什么?标题栏闪烁一下。如果你没盯着看,根本不知道发生了什么。

cmux 的通知是多维度的:

  1. 面板周围显示通知环(亮起的边框)
  2. 侧边栏显示未读标记
  3. 弹出通知面板
  4. macOS 桌面通知

这些通知通过标准终端转义序列(OSC 9/99/777)自动触发。任何支持 hooks 或 OSC 的 agent 都可以用,包括 Claude Code、Codex、OpenCode。

这意味着:当 Claude Code 完成任务等你确认时,cmux 会直接告诉你。你不需要在 5 个窗口间来回切换去”找”哪个 agent 在等你。

垂直标签页:比水平标签更实用

水平标签页的问题:超过 5 个就很难看清每个标签在干什么。

cmux 的垂直标签页在侧边栏显示:

  • 工作区名称
  • 当前 git 分支
  • 工作目录
  • 端口信息
  • 通知状态

你可以一眼看到所有正在进行的任务。比水平标签多得多的信息密度。

内置浏览器:验证改动不用切窗口

cmux 可以在终端旁边分屏打开一个真正的浏览器面板,并且完全可编程。你可以:

  • 导航到指定 URL
  • 对 DOM 截照
  • 点击、输入
  • 执行 JavaScript
  • 读取控制台和网络活动

这对 agent 工作流很有用:agent 修改了代码,你直接在旁边的浏览器验证,不用切窗口。

可编程性:不只是终端,还是自动化平台

cmux 提供 CLI 和 Unix socket API,每个操作都可以通过命令行控制:

# 创建工作区
cmux create-workspace --name "project-a"

# 打开分割面板
cmux split-pane --horizontal

# 发送输入到指定面板
cmux send-input --workspace "project-a" --pane 0 --input "npm test"

# 读取屏幕内容
cmux capture-pane --workspace "project-a" --pane 0

这意味着你可以写脚本批量管理 agent 工作流,而不只是手动操作。

和 tmux 的关系

很多人会问:cmux 和 tmux 有什么区别?

tmux 是在任何终端内运行的终端复用器。cmux 是一个带 GUI 的原生 macOS 应用。垂直标签页、分割面板、内置浏览器和 socket API 全部内置,无需配置文件或前缀键。

但 cmux 不排斥 tmux。很多人把 cmux 与 SSH 和 tmux 搭配使用,而且 cmux 可以原生连接到远程 tmux 会话。

和 iTerm2 的对比

特性cmuxiTerm2
原生 macOS
垂直标签页原生支持需要配置
通知提醒环原生支持
内置浏览器原生支持
可编程 APICLI + socketAppleScript
GPU 加速
会话恢复支持部分支持
开源

iTerm2 是成熟的终端,功能丰富。但 cmux 专注在”多 agent 工作流”这个场景,体验更聚焦。

快速上手

安装

推荐使用 DMG 安装:

# 从官网下载
# https://cmux.com/zh-CN/download/confirmation?dl=1

# 或者使用 Homebrew
brew tap manaflow-ai/cmux
brew install --cask cmux

首次启动时,macOS 可能会要求确认打开来自已识别开发者的应用。点击”打开”即可继续。

CLI 设置

cmux 包含一个用于自动化的命令行工具。在 cmux 终端内会自动生效。如果要在 cmux 外部使用 CLI,需要创建符号链接:

sudo ln -sf "/Applications/cmux.app/Contents/Resources/bin/cmux" /usr/local/bin/cmux

之后你就可以运行以下命令:

# 列出所有工作区
cmux list-workspaces

# 发送通知
cmux notify --title "Build Complete" --body "Your build finished"

基础操作

  1. 打开 cmux,你会看到左侧有垂直标签页侧边栏
  2. 默认工作区已打开一个终端
  3. 使用快捷键创建新工作区和分屏

常用快捷键:

  • Cmd + N:新建工作区
  • Cmd + D:垂直分屏
  • Cmd + Shift + D:水平分屏
  • Cmd + [: 切换到左边面板
  • Cmd + ]:切换到右边面板

完整的快捷键列表见文档:https://cmux.com/zh-CN/docs/keyboard-shortcuts

亮点代码

cmux 最有价值的功能是通知系统和可编程 API。这里展示一个实际场景:用 cmux 管理多个 Claude Code 会话。

场景:同时跑 3 个 agent

假设你在并行处理 3 个任务:

  1. 前端重构(Claude Code 会话 A)
  2. API 开发(Claude Code 会话 B)
  3. 测试编写(Claude Code 会话 C)

在 cmux 中:

  1. 创建 3 个工作区,分别命名
  2. 每个工作区打开 Claude Code
  3. 当某个 agent 完成任务等你确认时,cmux 会通过通知环提醒你
  4. 你在侧边栏一眼就能看到哪个在运行、哪个在等待

用脚本批量管理

#!/bin/bash
# batch-agents.sh:创建并启动多个 agent 工作区

# 创建工作区
cmux create-workspace --name "frontend"
cmux create-workspace --name "api"
cmux create-workspace --name "tests"

# 在每个工作区启动 Claude Code
cmux send-input --workspace "frontend" --input "claude"
cmux send-input --workspace "api" --input "claude"
cmux send-input --workspace "tests" --input "claude"

# 发送初始任务
cmux send-input --workspace "frontend" --input "重构登录页面组件"
cmux send-input --workspace "api" --input "实现用户认证 API"
cmux send-input --workspace "tests" --input "编写认证模块测试"

这个脚本启动后,cmux 会监控所有 agent,并在需要你确认时发出通知。

浏览器自动化示例

# 在 cmux 中打开浏览器面板并导航
cmux browser navigate --url "http://localhost:3000"

# 截照验证页面
cmux browser screenshot --output "login-page.png"

# 执行 JavaScript 检查元素
cmux browser evaluate --expression "document.querySelector('button').textContent"

社区与生态

cmux 由 Manaflow 团队开发,GitHub 仓库活跃。从社区反馈看,它已经获得了一批忠实用户。

Mitchell Hashimoto(Ghostty 和 HashiCorp 创始人)评价:

“又一个基于 libghostty 的项目,这次是一个带垂直标签页、更好的组织/通知、内置可编程浏览器的 macOS 终端,专门面向大量使用终端 agent 工作流的用户。”

Nick Schrock(Dagster 创建者、GraphQL 联合创始人)说:

“这正是我一直在找的产品。用了两小时就爱上了。”

Edward Grefenstette(Google DeepMind 研究总监)说:

“整个周末都在用,太棒了。”

从这些反馈看,cmux 的核心用户群是需要同时管理多个 agent 的开发者。它不是一个通用终端替代品,而是为特定工作流设计的工具。

项目还在快速迭代中,即将支持 Linux、Windows 和 Android。iOS 伴侣应用目前已发布 beta 版。

适用场景与局限

适合用 cmux 的场景

  • 同时运行多个 AI coding agent(Claude Code、Codex、OpenCode 等)
  • 需要监控 agent 状态并及时响应
  • 想在一个界面里组织多个开发任务
  • 需要边看终端边看浏览器验证改动
  • 想要可编程的终端自动化能力

不适合用 cmux 的场景

  • 只跑一个 agent,不需要多任务管理
  • 必须在 Linux 或 Windows 上工作(目前只支持 macOS)
  • 不喜欢原生 macOS 应用的外观(cmux 比较朴素)
  • 需要高度定制化的终端体验(iTerm2 更成熟)

当前限制

  • 只支持 macOS,Linux 和 Windows 版本即将推出
  • 会话恢复有限制:重启后布局和元数据会恢复,但活跃的终端进程(如 Claude Code、tmux、vim)不会自动恢复
  • 浏览器面板功能还在完善中
  • 相比 iTerm2,整体功能集还不够丰富

结论

cmux 不是一个通用终端替代品。它解决的是一个具体问题:同时管理多个 AI agent 时的组织和通知。

如果你同时跑 3 个以上的 agent,并且经常因为错过确认而浪费时间,cmux 值得试。它的通知系统和垂直标签页会让你重新理解”多任务终端”应该是什么样子。

仓库:https://github.com/manaflow-ai/cmux 文档:https://cmux.com/zh-CN/docs/getting-started

相关文章

AntV Infographic:让 AI 生成真正可编辑的信息图

AntV Infographic:让 AI 生成真正可编辑的信息图

痛点切入 AI 生成信息图最尴尬的地方,不是它不会画,而是它画完以后很难改。 让模型直接生成一张图片,第一眼可能还行。可一旦你想改文案、换颜色、删掉一个模块、把第二步挪到第三步,马上就进入“ ...

Colima:29k star 的 Docker Desktop 替代品,macOS 容器运行时该选它

痛点切入 你在 Mac 上用 Docker Desktop,每次开机它都偷偷吃掉 2-3GB 内存,风扇呼呼转。你打开活动监视器看了一眼,Docker Desktop 占了 15% CPU,你 ...

Cell Architecture Studio:用 3D 探索细胞,开源

生物课本有一个问题。 里面的图是平的。细胞器用箭头标注,三四个箭头指向同一个位置。内质网怎么包裹细胞核、线粒体怎么在细胞质里漂浮——这些空间关系,你得盯着静态插图读一段文字来理解。 Cell Ar ...

Cowart:为 Codex 打造的本地无限画布,让 AI 编程看见你的想法

此项目建立的初衷 AI 编程工具发展到今天,已经能读懂代码、修改文件、运行命令。但有一个问题一直没被很好解决:AI 怎么理解你的视觉意图? 你做了一个 UI 设计,想让 AI 帮你实 ...

Claw Code:193K 星的开源 Agent Harness,AI 编程的下一个战场

Claw Code:193K 星的开源 Agent Harness,AI 编程的下一个战场

此项目建立的初衷 过去一年,AI 编程工具的变化非常快。 最早,开发者用 AI 主要是为了补全代码。后来,AI 开始进入聊天窗口,帮我们解释代码、生成函数、排查报错、写测试用例。再后来,Cu ...

LongCat-Video:美团开源 13.6B 视频生成模型,长视频才是真正的战场

长视频生成为什么难 你可能已经体验过不少视频生成工具——Kling、Runway、Pika、Wan2.1……5 秒的片段看起来都不错。但当你尝试生成 30 秒甚至分钟级视频时,问题就来了。 ...