基于 Ghostty 的 macOS 原生终端,专为并行运行多个 AI coding agent 而设计,提供垂直标签页 + Agent 等待通知 + 内置浏览器 + Claude Code Teams 一键启动,Swift/AppKit 实现,21.7k stars。
定位
作者同时跑大量 Claude Code / Codex session,Ghostty 原生通知太模糊(消息永远是”Claude is waiting”,无上下文),GUI 编排工具又是 Electron/Tauri 性能差,因此用 Swift+AppKit 构建了 cmux:既保留终端的灵活性,又补齐了多 Agent 并行工作的可见性缺口。
设计哲学(The Zen of cmux):cmux 是原语,不是解决方案。 提供终端/浏览器/通知/工作区/分屏/标签+CLI,其余由开发者自己组合。
核心功能
| 功能 | 说明 |
|---|---|
| Notification Rings | Agent 需要输入时,对应面板出现蓝色光环,标签页高亮,Cmd+Shift+U 跳转最新未读 |
| Notification Panel | 侧边栏汇总所有待处理通知,可一览全部等待中的 Agent |
| 垂直 + 水平标签页 | 侧边栏显示:git branch / PR 状态编号 / 工作目录 / 监听端口 / 最新通知文本 |
| 内置浏览器 | 终端旁分屏浏览器,Agent 可操控(DOM 快照 / 点击 / 填表 / 执行 JS),支持从 Chrome/Firefox/Arc 等 20+ 浏览器导入 Cookie |
| Claude Code Teams | cmux claude-teams 一键启动 Claude Code 多 Agent 协作,原生分屏+通知,无需 tmux |
| SSH 支持 | cmux ssh user@remote 创建远程工作区,浏览器面板自动走远程网络,localhost 直接可用 |
| 可编程 CLI | CLI + Socket API 控制工作区/分屏/键击/浏览器,支持 cmux.json 自定义命令 |
安装
# Homebrew(推荐)
brew tap manaflow-ai/cmux
brew install --cask cmux
# 或直接下载 DMG
# https://github.com/manaflow-ai/cmux/releases/latest/download/cmux-macos.dmg支持 Sparkle 自动更新,只需安装一次。
技术栈
- 语言:Swift + AppKit(非 Electron/Tauri)
- 终端渲染:libghostty(GPU 加速)
- 配置兼容:读取
~/.config/ghostty/config,主题/字体/颜色无缝迁移 - 通知机制:捕获终端 OSC 9/99/777 序列,
cmux notify可集成到 Agent Hook
Agent 通知集成
通过 cmux notify 命令与 Claude Code / OpenCode 等 Agent 的 Hook 机制集成:
# 在 Claude Code hooks 中调用
cmux notify "Claude is waiting in project-foo"也可通过 Socket API 编程控制,实现自定义自动化工作流。
与同类工具对比
| 维度 | cmux | openclaw 标准终端 | botmux |
|---|---|---|---|
| 平台 | macOS 原生 | 任意 | 飞书话题群 |
| 多 Agent 可见性 | 侧边栏 + 光环通知 | 无特殊支持 | 飞书消息流 |
| 内置浏览器 | 有(可编程) | 无 | 无 |
| 实现技术 | Swift + libghostty | 无 | Node.js + tmux |
| 定位 | macOS 终端工具 | 通用 AI Gateway | 飞书 CLI 桥接 |