cmux 评测:为 AI 编码代理而生的原生 macOS 终端
当 Claude Code、Codex、Gemini CLI 等 AI 编码代理成为日常主力工具后,一个越来越普遍的工作模式出现了:同时挂着多个代理会话,让它们并行干活。但问题也随之而来——代理在等输入时系统通知只有干巴巴的一句「Claude is waiting for your input」,根本看不出是哪个任务在等;开十几个 tab 之后,标题已经读不懂哪个是干什么的了。
今天要介绍的 cmux,就是为这种「多代理并行」工作流而设计的终端。它由 manaflow-ai 开发,基于 Ghostty 引擎,用 Swift + AppKit 原生构建(而非 Electron/Tauri),在终端体验的基础上加入了侧边栏信息、代理通知环、内置可脚本化浏览器等能力。项目于 2026 年 1 月底开源,目前 GitHub 星标数已接近 2.8 万,并且出现在 2026 年 10 月 8 日的 GitHub Trending 榜单上。
工具简介
cmux 是一款原生 macOS 终端应用,核心理念是「终端 + 浏览器 + 通知 + 工作区」的原始组合(primitives),不强制任何工作流。
- GitHub: https://github.com/manaflow-ai/cmux
- 官网: https://cmux.com
- 语言: Swift + AppKit(终端渲染由 libghostty 提供,GPU 加速)
- 开源协议: 免费开源(协议标注为 Other,仓库内为自定义开源许可)
- 支持平台: macOS(DMG 直接下载或 Homebrew Cask 安装)
- 自动更新: 内置 Sparkle,安装一次后自动更新
核心功能
1. 侧边栏垂直标签 + 工作区管理
cmux 最大的特色是左侧垂直标签栏。每个工作区(workspace)的标签上直接显示:
- git 分支与关联 PR 的状态/编号
- 当前工作目录
- 正在监听的端口(方便本地服务开发)
- 该工作区最新的代理通知文本
配合水平/垂直分屏(⌘D / ⌘⇧D),可以同时铺开多个代理会话,每个分屏的上下文一目了然。工作区支持 ⌘1–8 快速跳转、⌘⇧R 重命名、⌥⌘E 添加描述等完整快捷键体系。
2. 为代理设计的通知系统
cmux 监听终端的 OSC 9/99/777 通知序列,并提供 cmux notify CLI,可以直接接进 Claude Code、OpenCode 等代理的 hooks:
- 通知环(Notification rings):代理等待输入时,对应分屏会出现蓝色光环,侧边栏标签同步点亮
- 通知面板:所有未读通知集中展示,⌘⇧U 一键跳到最近一条未读
- CLI 接入:
cmux notify可被外部脚本调用,适合接入任意代理的通知钩子
这是 cmux 相比传统终端的根本差异——它明确知道「谁在等我」,而不仅仅是「有通知」。「Claude 在等你输入」这种无上下文通知变成了「这个文件里的那个任务在等你确认」。
3. 内置可脚本化浏览器
cmux 内置了一个浏览器面板,可以与终端并排分屏显示。它的 API 移植自 Vercel 的 agent-browser:
- 代理可以抓取可访问性树快照、获取元素引用、点击、填表单、执行 JS
- 浏览器导入:支持从 Chrome、Firefox、Arc 等 20+ 浏览器导入 cookies、历史与会话,浏览器面板开箱即带登录态
- 浏览器面板可以路由到远程网络(配合 SSH 工作区),localhost 直接可用
实际场景:让 Claude Code 一边改代码,一边让内置浏览器盯着本地 dev server 的渲染结果,验证 UI 改动——无需切应用。
4. SSH 远程工作区
cmux ssh user@remote 一条命令即可为远程机器创建独立工作区:
- 可用
--command参数在首个远程终端里直接跑初始命令(例如omp "investigate auth") - 浏览器面板自动走远程网络
- 拖拽图片进远程会话即可通过 scp 上传
对经常连远程开发机的用户,这比传统「SSH 进终端再手动传文件」流畅很多。
5. 可编程 CLI + Claude Code Teams
- CLI/socket API:可创建工作区、分屏、发送按键序列、驱动内置浏览器,适合把 cmux 写进自己的自动化脚本
cmux claude-teams:一条命令启动 Claude Code 的 teammate 模式,队友(teammates)以原生分屏形式出现,带侧边栏元数据与通知,无需 tmux- 自定义命令:在项目里的
cmux.json中定义项目专属操作,从命令面板(⌃P)一键启动
6. Ghostty 兼容 + 原生性能
- 直接读取你现有的
~/.config/ghostty/config,主题、字体、颜色无缝沿用 - 原生 Swift/AppKit 构建,启动快、内存占用低,作者明确表示不喜欢 Electron/Tauri 编排工具的性能表现
适用人群
cmux 适合以下用户:
- 多代理并行开发者:同时跑 Claude Code、Codex、Gemini CLI 等多个会话,需要随时知道「哪个在等我」
- Claude Code 重度用户:尤其是使用 teammate/teams 模式、希望省去 tmux 依赖的用户
- 边写代码边验证 UI 的前端工程师:内置浏览器 + 可导入登录态,dev server 与终端同屏
- 远程开发用户:SSH 工作区 + scp 拖拽上传,远程开发体验升级
- Ghostty 现有用户:直接兼容现有配置,迁移零成本
- 终端原教旨主义者:坚持「终端 + 浏览器 + CLI 原语」而非 GUI 编排器的开发者
不适合的用户:Windows/Linux 用户(仅支持 macOS)、不喜欢原生 App 只想要脚本环境的极简用户、只跑单代理会话的轻量用户。
同类工具对比
| 功能 | cmux | Ghostty(纯终端) | tmux/terminal 脚本方案 | Electron GUI 编排工具 |
|---|---|---|---|---|
| 多代理通知上下文 | ✅ 侧边栏显示每个会话的通知文本 | ❌ 仅系统通知 | ⚠️ 需自行写脚本 | ✅ |
| 垂直标签 + git/PR 状态 | ✅ | ❌ | ❌ | ⚠️ 部分支持 |
| 内置可脚本化浏览器 | ✅ agent-browser API | ❌ | ❌ | ⚠️ 通常独立 |
| 浏览器登录态导入 | ✅ 20+ 浏览器 | ❌ | ❌ | ❌ 少见 |
| SSH 工作区 + 文件拖拽 | ✅ | ❌ | ✅ tmux 可模拟但繁琐 | ⚠️ 部分 |
| 性能 | ✅ 原生 Swift/AppKit | ✅ 原生 | ✅ 纯文本 | ❌ 内存占用高 |
| 可编程 CLI | ✅ 工作区/按键/浏览器全可脚本化 | ❌ | ✅ | ⚠️ 各产品不一 |
| 平台 | ❌ 仅 macOS | ❌ 多平台 | ✅ 全平台 | ⚠️ 通常多平台 |
cmux 的定位很清晰:它不是替代 tmux 的通用会话管理工具,而是为「多 AI 代理并行」这一特定工作流优化的原生 macOS 终端。如果主要痛点是「不知道哪个代理在等我」,cmux 的通知系统是同类工具里上下文最完整的方案之一;同时它保持终端的本质,不把你锁进 GUI 工作流。
如何使用
安装
DMG(官方推荐):
从 Releases 页面 下载 cmux-macos.dmg,拖入 Applications。内置 Sparkle 自动更新,一次安装长期受益。首次打开时 macOS 可能提示确认来自已识别开发者,点「打开」即可。
Homebrew:
brew tap manaflow-ai/cmux
brew install --cask cmux
# 日后升级
brew upgrade --cask cmux
基本使用流程
- 沿用 Ghostty 配置:如果你有 Ghostty,cmux 自动读取
~/.config/ghostty/config,主题字体即刻生效 - 创建工作区:⌘N 新建,⌘⇧R 命名,⌥⌘E 添加描述(如「支付服务 v2 重构」)
- 分屏并行跑代理:⌘D 向右分屏、⌘⇧D 向下分屏,每个分屏跑一个 Claude Code/Codex 会话
- 接入代理通知:在 Claude Code 的 hooks 中调用
cmux notify,代理等待输入时分屏出现蓝色光环,⌘⇧U 跳到最近未读 - 浏览器并排验证 UI:新建浏览器面板与终端分屏,可从 Chrome 导入登录态,让代理直接操作 dev server
配置 Claude Code Teams
cmux claude-teams
一条命令启动 Claude Code teammate 模式,多个队友以原生分屏形式出现,侧边栏显示各自元数据与通知,全程无需 tmux。
使用 SSH 工作区
# 为远程机器创建独立工作区
cmux ssh user@remote
# 在首个远程终端里直接跑初始命令
cmux ssh user@remote --command 'omp "investigate auth"'
浏览器面板自动路由到远程网络;直接拖图片进远程会话即可 scp 上传。
自定义项目命令
在项目根目录创建 cmux.json 定义专属操作(文档:https://cmux.com/docs/custom-commands),之后通过 ⌃P 命令面板一键启动。
总结
cmux 抓住了「多 AI 代理并行」时代最具体的一个痛点:通知没有上下文。它没有试图做又一个 GUI 编排器,而是保持终端与浏览器的「原语」形态,用侧边栏元数据、通知环、可编程 API 把多会话管理的体验拉高了一个档次。原生 Swift 构建的性能优势,对跑满几十个会话的开发者是实打实的舒适。
优点: - 通知系统专为 AI 代理设计,上下文远超系统级通知 - 原生 Swift/AppKit,启动快、内存低,Ghostty 配置直接兼容 - 内置浏览器 + 登录态导入 + agent-browser API,前后端验证同屏完成 - CLI/socket 全可编程,适合写进个人自动化 - SSH 工作区 + 图片拖拽 scp,远程开发体验好
缺点: - 仅支持 macOS,Windows/Linux 用户无缘 - 开源协议为自定义(非 MIT/Apache),企业法务场景需先过一遍 - Issue 数量偏多(3000+ open issues),部分边角场景稳定性仍在打磨 - 对单代理、轻量用户来说功能过剩
推荐指数:⭐⭐⭐⭐☆(4/5)
如果你在 macOS 上同时跑多个 AI 编码代理(尤其是 Claude Code + Codex 的组合),cmux 目前是这个工作流下最值得尝试的终端方案之一。它不会改变你的命令行习惯,但会让「等代理输入」这件事从盲打变成有据可循。
更多 AI 工具评测:Claude Code 评测、CC Switch 评测。
本文评测基于 cmux 2026 年 10 月版本(GitHub 星标约 2.8 万),更多信息请访问 GitHub 仓库 或 官网文档。