manaflow-ai /cmux

Open source Ghostty-based macOS terminal with vertical tabs and notifications for AI coding agents. Built for multitasking, organization, and programmability.

★ 28,747⑂ 2,643
SwiftCreated 2026-01-28cmux.com
28,747
stars
+74+96
2,643
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions

README

此翻译由 Claude 生成。如有改进建议,欢迎提交 PR。

cmux
基于 Ghostty 的 macOS 终端,带有垂直标签页和为 AI 编程代理设计的通知系统


  
    
  



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



  
  
  



  



  ▶ 演示视频 · The Zen of cmux


 功能特性




通知提示环
当编程代理需要您注意时,窗格会显示蓝色光环,标签页会高亮







通知面板
在一处查看所有待处理通知,快速跳转到最新未读通知







内置浏览器
在终端旁边分割出浏览器窗格,提供从 agent-browser 移植的可脚本化 API







垂直 + 水平标签页
侧边栏显示 git 分支、关联 PR 状态/编号、工作目录、监听端口和最新通知文本。支持水平和垂直分割。







SSH
cmux ssh user@remote 为远程机器创建工作区。传入 --command 'omp "investigate auth"' 可在其首个远程终端中执行一次初始命令。浏览器窗格通过远程网络路由,因此 localhost 直接可用。将图片拖入远程会话即可通过 scp 上传。







Claude Code Teams
cmux claude-teams 一条命令运行 Claude Code 的队友模式。队友以原生分割的形式生成,侧边栏显示元数据和通知。无需 tmux。







- 浏览器导入 — 从 Chrome、Firefox、Arc 及 20 多种浏览器导入 Cookie、历史记录和会话,让浏览器窗格启动即已登录
- 自定义命令 — 在 cmux.json 中定义项目专属操作,通过命令面板启动
- 可脚本化 — 通过 CLI 和 socket API 创建工作区、分割窗格、发送按键和自动化浏览器操作
- 原生 macOS 应用 — 使用 Swift 和 AppKit 构建,非 Electron。启动快速,内存占用低。
- 兼容 Ghostty — 读取您现有的 ~/.config/ghostty/config 配置文件中的主题、字体和颜色设置
- GPU 加速 — 由 libghostty 驱动,渲染流畅
- 键盘快捷键 — 为工作区、分割、浏览器等提供丰富的快捷键
- 开源 — 免费且采用 GPL 许可

 安装

 DMG(推荐)


  


打开 .dmg 文件并将 cmux 拖动到"应用程序"文件夹。cmux 通过 Sparkle 自动更新,您只需下载一次。

 Homebrew

bash
brew tap manaflow-ai/cmux
brew install --cask cmux


稍后更新:

bash
brew upgrade --cask cmux


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

 Shell 补全

Homebrew cask 会安装 zsh、bash 和 fish 的补全。安装后启动一个新 shell 即可。如果没有生效,请确认 Homebrew 的补全目录已接入你的 shell(参见 Homebrew 的 shell 补全文档)。

如果你通过其他方式安装 cmux,请将对应的一行加入 shell 启动文件,然后启动一个新 shell:

zsh
autoload -Uz compinit && compinit
eval "$(cmux completion zsh)"


bash
eval "$(cmux completion bash)"


fish
cmux completion fish | source


 为什么做 cmux?

我同时运行大量 Claude Code 和 Codex 会话。之前我用 Ghostty 开了一堆分割窗格,依靠 macOS 原生通知来了解代理何时需要我。但 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 等代理的钩子。当代理等待时,其窗格会显示蓝色光环,标签页会在侧边栏高亮,这样我就能在多个分割窗格和标签页之间一眼看出哪个需要我。Cmd+Shift+U 可以跳转到最新的未读通知。

内置浏览器拥有从 agent-browser 移植的可脚本化 API。代理可以抓取无障碍树快照、获取元素引用、执行点击、填写表单和执行 JS。您可以在终端旁边分割出浏览器窗格,让 Claude Code 直接与您的开发服务器交互。

所有操作都可以通过 CLI 和 socket API 进行脚本化 — 创建工作区/标签页、分割窗格、发送按键、在浏览器中打开 URL。

 The Zen of cmux

cmux 不规定开发者应该如何使用工具。它是一个带有 CLI 的终端和浏览器,其余的由你决定。

cmux 是原语,而非解决方案。它提供终端、浏览器、通知、工作区、分割、标签页,以及控制这一切的 CLI。cmux 不强迫你以特定方式使用编程代理。你用这些原语构建什么,完全取决于你自己。

最优秀的开发者一直在构建自己的工具。还没有人找到与代理协作的最佳方式,那些构建封闭产品的团队也没有找到。最接近自己代码库的开发者会最先找到答案。

给一百万个开发者可组合的原语,他们会比任何自上而下设计的产品团队更快地找到最高效的工作流。

 文档

有关 cmux 配置的更多信息,请查看我们的文档。

 键盘快捷键

 工作区

| 快捷键 | 操作 |
|----------|--------|
| ⌘ N | 新建本地工作区 |
| ⌘ Y | 在最近可用的 Cloud 上下文中创建新的 Cloud 工作区;没有可用上下文时打开 New Cloud Mach

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON