cmux
基于 Ghostty 的 macOS 终端,为 AI 编码代理提供垂直标签页和通知功能。
证据显示:仓库包含GPL-3.0许可证,明确声明开源;有CLI和socket API,但未明确权限最小化设计;有用户确认机制(如自动恢复会话需用户同意),但未详细说明;数据流透明度有限,未详细说明数据收集和传输;敏感数据处理有提及(如会话恢复时丢弃敏感环境变量),但未全面覆盖;依赖安全有提及(如使用固定版本actions),但未全面审计;外部影响有提及(如自动更新),但未详细说明;回滚有提及(如会话恢复),但未提供完整回滚机制;来源归属有提及(如版权声明),但未详细说明。扣分原因:多数标准仅部分满足,缺乏详细证据。
证据显示:项目有单元测试和CI流程,但未提供测试结果;依赖可用性有提及(如预构建xcframework),但未验证;失败消息有提及(如CI重试逻辑),但未详细说明。扣分原因:测试未执行,依赖可用性未验证,失败消息不充分。
证据显示:明确面向AI编码代理用户,支持多种场景(如SSH、Claude Code Teams);能力边界有说明(如仅支持macOS);触发精度有提及(如通知系统),但未详细说明;环境适配有说明(如支持macOS版本)。扣分原因:触发精度和部分场景缺乏详细证据。
证据显示:信息架构清晰(README有目录);安装说明详细(DMG、Homebrew);命名稳定性未明确;示例和FAQ丰富;已知限制有提及(如仅macOS);许可证明确(GPL-3.0);版本变更日志未提供;维护责任有提及(如社区支持)。扣分原因:命名稳定性、版本变更日志、维护责任证据不足。
证据显示:输出可用性高(提供CLI、API、文档);边际价值高(解决特定痛点);成本效益合理(免费开源)。扣分原因:未提供实际使用效果证据。
证据显示:声明有文档支持(如README链接到文档);跨来源验证有限(仅内部文档);事实与推断分离不明确。扣分原因:缺乏外部验证和明确区分。
- 发布者身份未验证,需谨慎对待。
- 依赖安全未全面审计,建议检查依赖漏洞。
- 会话恢复功能涉及敏感数据,需确保安全处理。
- 自动更新机制可能带来外部影响,需用户确认。
这个 Agent 能做什么,适合哪些场景?
cmux 是一款开源、原生的 macOS 终端应用,基于 Ghostty 的渲染引擎(libghostty)构建,专为运行多个 AI 编码代理(如 Claude Code、Codex、OpenCode)而设计。它引入了垂直标签页和侧边栏,显示每个工作区的 git 分支、PR 状态、工作目录、监听端口和最新通知,并通过 OSC 9/99/777 序列和 CLI 钩子实现通知系统。它还内置了可通过 socket API 脚本化控制的浏览器,支持 SSH 远程工作区和 Claude Code 团队模式。应用完全可编程,提供 CLI 和 Unix socket 接口,用于创建工作区、分割窗格、发送按键操作和自动化浏览器。
cmux 作为终端模拟器,能运行任何命令行工具。它读取 ~/.config/ghostty/config 获取主题和字体,通过 libghostty 渲染。侧边栏显示每个工作区的元数据,通知系统捕获 OSC 序列或通过 cmux notify 命令,为等待中的代理显示蓝色环和通知徽章。内置浏览器可通过 API 控制,支持导航、DOM 快照、点击、输入、执行 JS。SSH 工作区通过 cmux ssh 创建,支持 --command 参数。Claude Code 团队模式通过 cmux claude-teams 启动。所有功能都可通过 CLI 和 socket API (如 cmux surface、cmux hooks setup)编程控制。
- 在 macOS 上并行运行多个 Claude Code 或 Codex 会话,并通过侧边栏和通知快速识别需要关注的代理。
- 开发者希望在终端旁边内嵌一个浏览器,让代理(如 Claude Code)直接与本地开发服务器交互并验证变更。
- 用户需要 SSH 到远程机器,在远程环境运行代理,同时使用 cmux 控制本地终端。
- 使用
cmux claude-teams启动 Claude Code 团队模式,将团队成员作为本地窗格管理。 - 需要可编程终端工作区的用户,通过 CLI 或 socket API 自动化创建窗格、发送输入和执行浏览器操作。
这个 Agent 有哪些优点和局限?
- 原生 Swift/AppKit 应用,启动快、内存占用低,性能优于 Electron 应用。
- 深度整合 Ghostty 配置,复用现有主题和字体,同时增加侧边栏和通知系统。
- 内置可编程浏览器,代理可通过 API 直接操作,提升调试效率。
- 支持 SSH 远程工作区,代理可在远程运行。
- 会话恢复功能,重启后恢复布局、滚动缓冲和浏览器历史。
- 仅支持 macOS,无法在其他平台使用。
- 依赖于 Ghostty 和 libghostty,需要安装 Ghostty 或至少拥有其配置文件。
- 采用 GPL-3.0-or-later 许可,可能对商业集成有限制。
- 未提供官方 Windows/Linux 支持,跨平台迁移成本高。
- 通知功能依赖于代理支持 OSC 或配置钩子,并非所有代理默认开启。
如何安装或部署这个 Agent?
推荐通过 DMG 安装:从 GitHub Releases 下载 cmux-macos.dmg,打开后拖拽到 Applications 文件夹。首次启动可能需要确认打开来自已识别开发者的应用。也可通过 Homebrew 安装:先 brew tap manaflow-ai/cmux,然后 brew install --cask cmux,更新用 brew upgrade --cask cmux。Nightly 版本可单独下载。
如何使用这个 Agent?
安装后,直接启动 cmux。它会读取你的 Ghostty 配置。常用操作包括:⌘N 新建工作区,⌘D 右侧分割窗格,⌘⇧L 打开浏览器。使用 cmux ssh user@remote 连接远程机器,--command 可以指定初始命令。设置代理钩子:cmux hooks setup,自动安装支持代理的钩子(如 Claude Code、Codex)。更多详情查看官方文档。
这个 Agent 与同类方案有什么区别?
与 tmux 相比,cmux 是带 GUI 的 macOS 应用,提供垂直标签、内置浏览器和 socket API,无需配置文件或前缀键;但 tmux 可在任何终端运行,更通用。与 Electron 的代理编排工具相比,cmux 更轻量、更贴近终端。
常见问题
cmux 与 Ghostty 的关系?
cmux 支持哪些编码代理?
cmux 是如何实现通知的?
cmux notify 命令触发。