manaflow-ai/cmux

GitHub: manaflow-ai/cmux

专为 AI 编程 Agent 设计的 macOS 原生终端,提供智能通知系统和垂直标签页,帮助开发者高效管理多个并行 Agent 会话。

Stars: 11287 | Forks: 783

cmux

一款基于 Ghostty 的 macOS 终端,专为 AI 编程 Agent 提供垂直标签页和通知功能

Download cmux for macOS

English | 日本語 | Tiếng Việt | 简体中文 | 繁體中文 | 한국어 | Deutsch | Español | Français | Italiano | Dansk | Polski | Русский | Bosanski | العربية | Norsk | Português (Brasil) | ไทย | Türkçe | ភាសាខ្មែរ | Українська

X / Twitter Discord

cmux screenshot

▶ 演示视频 · cmux 之道

## 功能特性

Notification rings

Panes get a blue ring and tabs light up when coding agents need your attention
Notification rings

Notification panel

See all pending notifications in one place, jump to the most recent unread
Sidebar notification badge

In-app browser

Split a browser alongside your terminal with a scriptable API ported from agent-browser
Built-in browser

Vertical + horizontal tabs

Sidebar shows git branch, linked PR status/number, working directory, listening ports, and latest notification text. Split horizontally and vertically.
Vertical tabs and split panes
- **可脚本化** — 提供 CLI 和 socket API,用于创建工作区、拆分窗格、发送按键以及自动化浏览器 - **原生 macOS 应用** — 使用 Swift 和 AppKit 构建,非 Electron。启动快,内存占用低。 - **Ghostty 兼容** — 读取现有的 `~/.config/ghostty/config` 以获取主题、字体和颜色配置 - **GPU 加速** — 由 libghostty 驱动,实现流畅渲染 ## 安装说明 ### DMG(推荐) Download cmux for macOS 打开 `.dmg` 文件并将 cmux 拖入您的应用程序文件夹。cmux 会通过 Sparkle 自动更新,因此您只需下载一次。 ### Homebrew ``` brew tap manaflow-ai/cmux brew install --cask cmux ``` 后续更新: ``` brew upgrade --cask cmux ``` 首次启动时,macOS 可能会要求您确认是否打开来自已识别开发者的应用。点击 **打开** 以继续。 ## 为什么选择 cmux? 我会并行运行大量的 Claude Code 和 Codex 会话。我之前使用带有多个拆分窗格的 Ghostty,并依赖原生 macOS 通知来了解何时 Agent 需要我介入。但 Claude Code 的通知正文总是只有“Claude is waiting for your input”,没有任何上下文,而且打开的标签页多了之后,我甚至无法看清标题。 我尝试过几个编程编排工具,但大多数是 Electron/Tauri 应用,其性能让我无法忍受。我也更喜欢终端,因为 GUI 编排器会将其工作流强加给你。所以我用 Swift/AppKit 构建了 cmux 这个原生 macOS 应用。它使用 libghostty 进行终端渲染,并读取现有的 Ghostty 配置来获取主题、字体和颜色。 主要新增的功能是侧边栏和通知系统。侧边栏包含垂直标签页,显示 git 分支、关联的 PR 状态/编号、工作目录、监听端口以及每个工作区的最新通知文本。通知系统会捕获终端转义序列(OSC 9/99/777),并提供一个 CLI(`cmux notify`),您可以将其接入 Claude Code、OpenCode 等的 Agent 钩子中。当 Agent 处于等待状态时,其窗格会显示蓝色光环,标签页在侧边栏中也会高亮显示,这样我就能在多个拆分和标签页中分辨出哪一个需要我关注。Cmd+Shift+U 可跳转到最近的未读通知。 应用内浏览器拥有移植自 [agent-browser](https://github.com/vercel-labs/agent-browser) 的可脚本化 API。Agent 可以对无障碍树(accessibility tree)进行快照、获取元素引用、点击、填写表单以及执行 JS。您可以在终端旁拆分出一个浏览器窗格,让 Claude Code 直接与您的开发服务器交互。 一切都可以通过 CLI 和 socket API 进行脚本化——创建工作区/标签页、拆分窗格、发送按键、在浏览器中打开 URL。 ## cmux 之道 cmux 不对开发者如何使用工具做硬性规定。它是一个带有 CLI 的终端和浏览器,其余的由您决定。 cmux 是原语(primitive),而非解决方案。它为您提供了终端、浏览器、通知、工作区、拆分、标签页以及控制这一切的 CLI。cmux 不会强迫您以某种特定的方式使用编程 Agent。您用这些原语构建什么,那 belongs to you。 最优秀的开发者总是构建自己的工具。目前没人知道与 Agent 协作的最佳方式是什么,开发闭源产品的团队肯定也还没搞清楚。最接近自己代码库的开发者会最先找到答案。 给一百万开发者可组合的原语,他们会比任何自上而下设计的产品团队更快地共同发现最高效的工作流。 ## 文档 欲了解更多关于如何配置 cmux 的信息,[请访问我们的文档](https://cmux.com/docs/getting-started?utm_source=readme)。 ## 键盘快捷键 ### 工作区 | 快捷键 | 操作 | |----------|--------| | ⌘ N | 新建工作区 | | ⌘ 1–8 | 跳转到工作区 1–8 | | ⌘ 9 | 跳转到最后一个工作区 | | ⌃ ⌘ ] | 下一个工作区 | | ⌃ ⌘ [ | 上一个工作区 | | ⌘ ⇧ W | 关闭工作区 | | ⌘ ⇧ R | 重命名工作区 | | ⌘ B | 切换侧边栏 | ### Surface(界面) | 快捷键 | 操作 | |----------|--------| | ⌘ T | 新建 Surface | | ⌘ ⇧ ] | 下一个 Surface | | ⌘ ⇧ [ | 上一个 Surface | | ⌃ Tab | 下一个 Surface | | ⌃ ⇧ Tab | 上一个 Surface | | ⌃ 1–8 | 跳转到 Surface 1–8 | | ⌃ 9 | 跳转到最后一个 Surface | | ⌘ W | 关闭 Surface | ### 拆分窗格 | 快捷键 | 操作 | |----------|--------| | ⌘ D | 向右拆分 | | ⌘ ⇧ D | 向下拆分 | | ⌥ ⌘ ← → ↑ ↓ | 按方向聚焦窗格 | | ⌘ ⇧ H | 闪烁聚焦的面板 | ### 浏览器 浏览器开发者工具快捷键遵循 Safari 默认设置,并可在 `设置 → 键盘快捷键` 中自定义。 | 快捷键 | 操作 | |----------|--------| | ⌘ ⇧ L | 在拆分视图中打开浏览器 | | ⌘ L | 聚焦地址栏 | | ⌘ [ | 后退 | | ⌘ ] | 前进 | | ⌘ R | 刷新页面 | | ⌥ ⌘ I | 切换开发者工具(Safari 默认) | | ⌥ ⌘ C | 显示 JavaScript 控制台(Safari 默认) | ### 通知 | 快捷键 | 操作 | |----------|--------| | ⌘ I | 显示通知面板 | | ⌘ ⇧ U | 跳转到最新未读 | ### 查找 | 快捷键 | 操作 | |----------|--------| | ⌘ F | 查找 | | ⌘ G / ⌘ ⇧ G | 查找下一个 / 上一个 | | ⌘ ⇧ F | 隐藏查找栏 | | ⌘ E | 使用选定内容进行查找 | ### 终端 | 快捷键 | 操作 | |----------|--------| | ⌘ K | 清除滚动缓冲区 | | ⌘ C | 复制(需有选定内容) | | ⌘ V | 粘贴 | | ⌘ + / ⌘ - | 增大 / 减小字体大小 | | ⌘ 0 | 重置字体大小 | ### 窗口 | 快捷键 | 操作 | |----------|--------| | ⌘ ⇧ N | 新建窗口 | | ⌘ , | 设置 | | ⌘ ⇧ , | 重新加载配置 | | ⌘ Q | 退出 | ## 每夜构建 [下载 cmux NIGHTLY](https://github.com/manaflow-ai/cmux/releases/download/nightly/cmux-nightly-macos.dmg) cmux NIGHTLY 是一个拥有独立 Bundle ID 的应用,因此可以与稳定版并存运行。它从最新的 `main` 提交自动构建,并通过自己的 Sparkle feed 自动更新。 请在 [GitHub Issues](https://github.com/manaflow-ai/cmux/issues) 或 [Discord 的 #nightly-bugs 频道](https://discord.gg/xsgFEVrWCZ) 报告每夜版本的 Bug。 ## 会话恢复(当前行为) 重新启动时,cmux 目前仅恢复应用布局和元数据: - 窗口/工作区/窗格布局 - 工作目录 - 终端滚动缓冲区(尽力而为) - 浏览器 URL 和导航历史 cmux **不**恢复终端应用内的实时进程状态。例如,重启后,活动的 Claude Code/tmux/vim 会话尚无法恢复。 ## 许可证 cmux 是开源软件,遵循 [AGPL-3.0-or-later](LICENSE) 协议。 如果您的组织无法遵守 AGPL,我们提供商业许可证。请联系 [founders@manaflow.com](mailto:founders@manaflow.com) 了解详情。
标签:Agent 监控, AI 编程助手, Cmux, DNS解析, Ghostty, macOS 软件, Manaflow, Objective-C, SOC Prime, Swift, 人机交互, 命令行界面, 垂直标签页, 多路复用, 开发工具, 开源项目, 效率工具, 文档结构分析, 桌面通知, 窗口管理, 终端模拟器