第3集:cmux — 为 AI Agent 而生的终端
💡 进群学习加 wx: agentupdate
(申请发送: agentupdate)
(申请发送: agentupdate)
2026 年发布,基于 Ghostty,垂直标签 + 通知环 + Socket API,解决多 Agent 注意力管理。
核心理念
多 Agent 并行的瓶颈不是算力——是注意力。
5 个 Agent 同时跑,你需要知道:
- 谁需要输入?(Agent 卡住等你回复)
- 谁完成了?(可以检查结果)
- 谁报错了?(需要介入处理)
没有通知机制 = 手动逐个翻标签检查 = 效率灾难。
cmux 的解决方案:通知环(Notification Rings)——Agent 需要你时标签自动闪动 + 桌面提醒。
安装方式
macOS(唯一支持平台):
# 方式 1:Homebrew(推荐)
brew install --cask cmux
# 方式 2:官网下载 .dmg
# https://cmux.com/
# 方式 3:手动下载
# https://github.com/nickelc/cmux/releases
操作系统支持
| 系统 | 支持情况 | 备注 |
|---|---|---|
| macOS 13+ | 原生支持 | 基于 Ghostty 渲染引擎 |
| Linux | 社区替代 | Séance(Linux 版,社区维护) |
| Windows | 社区替代 | wmux(Windows 版,社区维护) |
注意:Linux/Windows 版本为社区项目,功能和稳定性不如 macOS 原生版。
核心功能
1. 垂直标签栏
左侧一列标签,每个标签代表一个 Agent 会话。一眼看到所有 Agent 状态。
┌──────┬─────────────────────────────────┐
│ ▶ P1 │ │
│ P2 │ Claude Code Session │
│ ● P3 │ > /gsd-execute-phase 1 │
│ P4 │ │
│ P5 │ [Running task 3/12...] │
│ │ │
└──────┴─────────────────────────────────┘
- ▶ = 需要输入
- ● = 有通知(完成/报错)
- 空白 = 正常运行
2. 通知环(Notification Rings)
Agent 需要输入、完成任务、报错时:
- 对应标签出现彩色圆环闪动
- 同时弹出 macOS 桌面通知
- 点击通知直接跳转到对应 Agent
3. 内置浏览器
右侧打开浏览器面板,查文档、看 API、读 GitHub PR——不用切出终端。
┌──────┬────────────────────┬────────────────────┐
│ 标签 │ Claude Code │ 内置浏览器 │
│ 栏 │ Agent Session │ docs.anthropic.com │
│ │ │ │
└──────┴────────────────────┴────────────────────┘
4. 分屏面板
支持水平/垂直分屏,对比代码或同时监控两个 Agent。
5. Socket API
提供完整的 Socket API,可通过脚本批量管理 Agent。详见下方"Agent 交互机制"。
Agent 交互机制
cmux 是所有终端中 Agent 交互能力最强的之一:
flowchart TB
subgraph 脚本自动化
A[启动脚本] -->|Socket API| B[cmux 进程]
B -->|创建标签| C[Agent 1]
B -->|创建标签| D[Agent 2]
B -->|创建标签| E[Agent N...]
end
subgraph 通知机制
C -->|需要输入| F[通知环闪动]
D -->|任务完成| G[桌面提醒]
E -->|报错| F
F --> H[点击跳转]
G --> H
end
subgraph 人工介入
H --> I[输入回复]
I --> C
end
style B fill:#4a9eff,color:#fff
style F fill:#ff6b6b,color:#fff| 交互方式 | 支持情况 | 说明 |
|---|---|---|
| Socket API | 完整 | 实时双向通信,最强大的自动化方式 |
| 脚本批量管理 | 完整 | Python/Node/Bash 脚本控制 Agent 生命周期 |
| 通知环 | 独有 | Agent 状态变化时自动提醒 |
| 内置浏览器 | 独有 | 不用切出终端查文档 |
| AppleScript | 有限 | macOS 标准支持 |
| 命令行 CLI | 有限 | cmux 命令基本操作 |
Socket API 使用示例:
# Python 示例:批量启动 5 个 Claude Code Agent
import socket
import json
def send_cmux_command(command):
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
sock.connect('/tmp/cmux.sock')
sock.send(json.dumps(command).encode())
response = sock.recv(4096)
sock.close()
return json.loads(response)
# 创建 5 个标签,每个启动一个 Claude Code
for i in range(1, 6):
send_cmux_command({
"action": "new_tab",
"name": f"agent-{i}",
"command": "claude"
})
10 Agent 并行管理流程
sequenceDiagram
participant User as 开发者
participant Script as 启动脚本
participant Cmux as cmux
participant A1 as Agent 1
(Phase 1)
participant A2 as Agent 2
(Phase 2)
participant A3 as Agent 3
(测试)
User->>Script: 运行启动脚本
Script->>Cmux: Socket API: 创建 3 个标签
Cmux->>A1: 启动 claude
Cmux->>A2: 启动 claude
Cmux->>A3: 启动 claude
Note over Cmux: 三个标签并行运行
通知环监控状态
A1->>Cmux: ⏸ 需要用户输入
Cmux->>User: 🔔 通知环闪动 + 桌面提醒
User->>A1: 输入决策
A1->>Cmux: ✅ 继续运行
A2->>Cmux: ✅ Phase 2 完成
Cmux->>User: 🔔 完成通知
A3->>Cmux: ❌ 测试失败
Cmux->>User: 🔔 报错通知
User->>A3: 介入 debug优缺点
| 优点 | 缺点 |
|---|---|
| 专为多 Agent 设计 | 仅 macOS 原生支持 |
| 通知环解决注意力管理 | 不支持远程 SSH 场景 |
| Socket API 完整可编程 | AGPL-3.0 许可证限制商业使用 |
| 基于 Ghostty = 同等渲染速度 | 社区生态年轻(2026.02 发布) |
| 内置浏览器免切窗口 | Linux/Windows 为社区移植版 |
| 垂直标签栏一目了然 | 无内置 AI 功能 |
适用场景
- 本地 macOS 跑 3-10 个 Agent 并行
- 需要 Agent 状态通知和注意力管理
- 团队内 macOS 用户统一终端方案