cmux Skill:让 AI 编程 Agent 的等待信号一目了然的原生 macOS 终端
macOS 上跑多个 AI 编程 Agent 的开发者,最头疼的问题是什么?不是选哪个模型,不是写什么 prompt——而是在一堆终端 tab 里找不到「谁在等你输入」。cmux 正是为解决这个问题而生:它是基于 Ghostty 的 macOS 原生终端,内置垂直标签页、通知面板和内嵌浏览器,让 AI coding agent 的等待信号一目了然。
功能与原则
cmux 不是又一个 Electron/Tauri 写的「AI 工作台」GUI,而是一个真正的终端——它用 Swift + AppKit 编写,跑 libghostty 渲染,性能与原生 macOS app 无异。核心设计原则三条:
- 终端优先:不锁死工作流,给你 primitives,让你自己组合。
- 通知即信号:Agent 等你时 tab 发光,通知面板汇总所有未读,Cmd+Shift+U 一键跳转。
- 可编程:CLI + Socket API 控制 workspace、split、keystroke、浏览器全部可编程。
认可度
- GitHub star:约 27,700(截至 2026-10-08)
- forks:约 2,458
- 持续出现在 GitHub Trending Swift 仓库列表
- Product Hunt、Hacker News、GitHub Trending 多榜同时出现
- 作者在 GitHub 标注了 GitHub Stars 和 Star History 图表
链接
GitHub:https://github.com/manaflow-ai/cmux
原作者
manaflow-ai(组织层面维护,核心开发者在 GitHub profile 可查),官网 cmux.com。
介绍
如果你同时开着 5 个 Claude Code 会话、3 个 Codex tab、两三个 OpenCode,每个都在不同项目里跑——原生 macOS 通知只能告诉你「Claude is waiting for your input」,没有上下文,标题一多根本读不过来。
cmux 在侧边栏里用垂直标签展示每个 workspace 的 git branch、PR 状态、当前目录、监听端口和最新通知摘要。通知系统通过终端 OSC 9/99/777 序列捕获,内置 cmux notify CLI 可接入任何 agent 的 hooks——当 agent 在等待时,对应 pane 会出现蓝色光环,tab 在侧边栏亮起,扫一眼就知道该看哪个。
除了终端,cmux 还嵌了一个可编程浏览器(移植自 vercel-labs/agent-browser),split 在终端旁边,Agent 能直接操作 Accessibility tree、点击、填表、执行 JS——不用切换到 Chrome 开发者工具。SSH 走 cmux ssh user@remote,浏览器 pane 会走远程网络,本地 localhost 无缝穿透。
特点
- 原生 macOS app:Swift + AppKit 构建,非 Electron/Tauri,冷启动快、内存占用低
- Ghostty 兼容:直接读取 ~/.config/ghostty/config,复用现有主题/字体/配色
- GPU 加速渲染:基于 libghostty,流畅无残影
- 通知系统:OSC 9/99/777 序列捕获 + cmux notify CLI,接入 Claude Code/OpenCode 等 hooks
- 内嵌可编程浏览器:snapshot accessibility tree、操作元素、执行 JS,Agent 直接驱动
- SSH + 文件传输:拖图片进远程 session 自动 scpf 上传
- Claude Code Teams 一键启动:
cmux claude-teams无需 tmux,直接用 native splits 跑 teammate mode - 全快捷键覆盖:workspace/surface/split/browser/notifications 全部有 ⌘ 系列快捷键
使用方法
安装(brew):
brew tap manaflow-ai/cmux
brew install --cask cmux
或下载 DMG:cmux-macos.dmg
配置 agent hooks(让 cmux 知道 agent 状态):
cmux hooks setup
cmux hooks setup codex
cmux hooks setup --agent opencode
创建 SSH workspace:
cmux ssh user@remote --command 'omp "investigate auth"'
使用场景与人群
适用场景:
– 同时跑多个 AI coding agent(Claude Code / Codex / OpenCode / Gemini 等)并行开发
– 需要在 terminal 和浏览器之间频繁切换的 agent 工作流
– 远程 SSH 机器上跑 agent,本地监控状态
目标用户:
– macOS 开发者,工作涉及多个 AI coding agent 并行任务
– 对性能有要求、不想用 Electron GUI orchestrator 的工程师
– 需要可编程终端 primitives 来构建自己 agent 工作流的 advanced user
输入与输出案例
案例 1:并发 agent 通知管理
你同时在跑 3 个 Claude Code session:
- Workspace A:修复 auth bug(agent 在等你确认方案)
- Workspace B:写新 API endpoint(agent 在跑测试)
- Workspace C:review PR(agent 在等 review 意见)
没有 cmux:3 个 tab 都在闪,但不知道哪个真正需要你。
有 cmux:Workspace A 的 tab 亮蓝环,侧边栏通知面板显示「Waiting for approval on auth approach」,Cmd+Shift+U 直接跳过去。
案例 2:Agent 驱动浏览器
Claude Code 在 terminal 里调试前端,你 split 一个 cmux 浏览器 pane,Agent 直接操作该 pane 里的页面——截图、点击「登录」按钮、填表单——不需要切换 app,不需要截图发给你再告诉你结果。
cmux 定位是「primitive,不给 solution」——它给你终端、浏览器、通知、workspace、split、tab 和一个完整 CLI,剩下的靠你自己组合。这正是 AI coding agent 时代开发者需要的工具哲学:没有人知道最好的 agent 工作流长什么样,与其做加法做一个「完美的」GUI,不如做减法提供可组合的原子,让社区自己演化出来。
评论区
登录后可评论。