cmux 评测:为 AI 编码代理而生的原生 macOS 终端

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 只想要脚本环境的极简用户、只跑单代理会话的轻量用户。

同类工具对比

功能cmuxGhostty(纯终端)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

基本使用流程

  1. 沿用 Ghostty 配置:如果你有 Ghostty,cmux 自动读取 ~/.config/ghostty/config,主题字体即刻生效
  2. 创建工作区:⌘N 新建,⌘⇧R 命名,⌥⌘E 添加描述(如「支付服务 v2 重构」)
  3. 分屏并行跑代理:⌘D 向右分屏、⌘⇧D 向下分屏,每个分屏跑一个 Claude Code/Codex 会话
  4. 接入代理通知:在 Claude Code 的 hooks 中调用 cmux notify,代理等待输入时分屏出现蓝色光环,⌘⇧U 跳到最近未读
  5. 浏览器并排验证 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 仓库 或 官网文档。