2026年cmux 使用教程:专为 AI Coding 打造的终端工作流引擎

cmux 使用教程:专为 AI Coding 打造的终端工作流引擎如果你还在用 iTerm2 或 Ghostty 跑 Claude Code 可能已经错过了 2026 年最好的终端体验 2026 年 AI Coding Agent 已经成为开发者的日常 Claude Code Codex OpenCode Gemini CLI 我们同时跑着多个 Agent 处理不同的任务 但你的终端 还是为 命令行时代 设计的吗 cmux

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



如果你还在用 iTerm2 或 Ghostty 跑 Claude Code,可能已经错过了 2026 年最好的终端体验。


2026 年,AI Coding Agent 已经成为开发者的日常。Claude Code、Codex、OpenCode、Gemini CLI... 我们同时跑着多个 Agent,处理不同的任务。

但你的终端,还是为"命令行时代"设计的吗?

cmux 是一款专为 AI Coding 设计的 macOS 原生终端,它不是另一个"好看的终端",而是一个工作流引擎

  • 官网:cmux.com
  • GitHub:github.com/manaflow-ai...
  • 文档:cmux.com/docs

快速了解
特性 说明 定位 专为多任务和 AI Coding Agent 设计的 macOS 终端 技术栈 Swift + AppKit 原生开发,基于 libghostty 渲染 平台 macOS 14.0+(Apple Silicon / Intel) 价格 免费开源 不是 Ghostty 的 fork(是使用其渲染库的独立应用)
解决什么问题?

如果你同时使用多个 AI Coding Agent,这些痛点你一定懂:

  1. 标签页管理混乱 --- iTerm2 的水平标签在打开 10+ 个会话时难以定位
  2. 通知感知弱 --- Agent 完成任务后没有醒目提醒,容易错过
  3. 缺少 Agent 集成 --- 需要手动配置 hooks 和通知
  4. 复用器配置复杂 --- tmux 需要配置文件和前缀键,学习成本高

cmux 的答案:

功能 说明 垂直标签页 左侧边栏显示所有工作区和会话,一目了然 分屏面板 内置分屏功能,无需 tmux 通知系统 OSC 9/99/777 标准 + macOS 桌面通知 + 侧边栏未读标记 内置浏览器 查文档不用切出终端 Socket API 外部工具可控制 cmux(自动化脚本友好) 零配置 无需配置文件,开箱即用

1. 从"标签页"到"工作区"

传统终端思维:打开 10 个标签页 → 用颜色/名字区分 → 在水平标签栏里找

cmux 思维

  • 每个工作区 = 一个任务上下文
  • 工作区之间物理隔离,不会混淆
  • 垂直侧边栏 + 未读标记,一眼定位
侧边栏结构: ├─ 🔴 项目 A - Claude Code (有未读通知) ├─ 🟢 项目 B - Codex ├─ 🔵 调试 - 日志监控 └─ 🟡 学习 - 文档阅读

精髓:用工作区隔离不同任务,而不是把所有会话塞进一个窗口。


2. 从"被动等待"到"通知驱动"

传统终端:Agent 跑完了?你得自己回去看。

cmux

  • Agent 完成任务 → 自动通知
  • 通知面板 → 一键跳转
  • 桌面提醒 → 离开终端也能收到

精髓:让 Agent 主动找你,而不是你盯着终端等结果。


3. 从"配置驱动"到"开箱即用"

tmux 思维:先写 200 行配置文件,再学前缀键组合。

cmux 思维

  • 默认快捷键已经够用
  • 需要改?设置里点几下
  • 想版本控制?编辑 ~/.config/cmux/settings.json

精髓:工具应该服务于工作,而不是让你服务于工具。


场景:同时跑 3 个 Agent
# 工作区 1: Claude Code - 主开发 claude # 工作区 2: Codex - 代码审查 codex review --pr 123 # 工作区 3: 监控 - 日志/构建 tail -f logs/build.log

传统做法:3 个 iTerm2 窗口,Alt+Tab 切换,容易迷路。

cmux 做法

  1. Ctrl+B, C 新建工作区
  2. 每个工作区跑一个 Agent
  3. 侧边栏看状态,通知跳转

通知集成:让 Agent"会说话"
方式一:CLI(最简单)

在 Agent 的 hook 脚本中:

 
         
    
           
#!/bin/bash 

cmux notify –title "Claude Code" –body "任务完成"

 
方式二:OSC 777(通用)

任何终端脚本都能用:

 
         
    
           
printf 'e]777;notify;构建完成;所有测试通过a'

封装成函数:

notify_osc777() 

notify_osc777 "Build Complete" "All tests passed"

 
方式三:Claude Code Hooks(推荐)

创建 Hook 脚本 ~/.claude/hooks/cmux-notify.sh

 
         
    
           
#!/bin/bash 

[ -S /tmp/cmux.sock ] || exit 0 # 只在 cmux 中生效

EVENT=\((cat) EVENT_TYPE=\)(echo "$EVENT" | jq -r ‘.hook_event_name’)

case "$EVENT_TYPE" in "Stop")

cmux notify --title "Claude Code" --body "会话完成" ;; 

"PostToolUse")

[ "$(echo "$EVENT" | jq -r '.tool_name')" = "Task" ] && cmux notify --title "Claude Code" --body "Agent 完成" ;; 

esac

 

配置 Claude Code ~/.claude/settings.json

 ] } ], "PostToolUse": [ ] } ] 

} }

 
         
    
           

精髓:通知不是炫技,是减少上下文切换的成本。


第一层:一键直达(高频操作)
快捷键 功能 Cmd+B 切换侧边栏 Cmd+Shift+I 打开通知面板 Cmd+Shift+U 跳转到最新未读通知 Cmd+T 新建表面(tab)
第二层:前缀键组合(低频操作)

cmux 支持两步和弦(类似 tmux):

 
          
    
            
// ~/.config/cmux/settings.json 

} }

 
          
    
            

  • 使用 plain string 表示一键操作
  • 使用两元素数组表示和弦(前缀 + 后续键)
  • 精髓:高频操作一键直达,低频操作不怕复杂。


    1. 终端配置(Ghostty 兼容)

    ~/.config/ghostty/config

    # 字体 font-family = SF Mono font-size = 13 # 主题 theme = One Dark # 回滚行数 scrollback-limit = 50000 # 工作目录 working-directory = ~/code # 分屏分隔线 split-divider-color = #3e4451
    2. cmux 专属配置

    ~/.config/cmux/settings.json

    , // 浏览器 "browser": { "openTerminalLinksInCmuxBrowser": true, "hostsToOpenInEmbeddedBrowser": ["localhost", "*.internal"] }, // 快捷键 "shortcuts": { "bindings": { "toggleSidebar": "cmd+b", "newSurface": ["ctrl+b", "c"] } }, // 通知命令(每次通知时执行) "notifications": { "command": "say "$CMUX_NOTIFICATION_TITLE"" } }
    3. 热重载配置

    修改配置后不需要重启:

    # 方式一:快捷键 Cmd+Shift+, # 方式二:CLI cmux reload-config

    精髓:配置应该可版本控制、可热重载、可增量修改。


    1. 通知 + TTS 语音提醒

    配置自定义通知命令:

     }

    效果:Agent 完成任务后,Mac 会语音播报"Claude Code: 会话完成"。

    环境变量可用:

    • CMUX_NOTIFICATION_TITLE - 通知标题
    • CMUX_NOTIFICATION_SUBTITLE - 副标题
    • CMUX_NOTIFICATION_BODY - 正文
    2. 内置浏览器自动打开本地链接
     
                
        
                  
    { 

    "browser": {

    "openTerminalLinksInCmuxBrowser": true, "hostsToOpenInEmbeddedBrowser": ["localhost", "127.0.0.1", "*.internal"] 

    } }

     

    效果:终端里的 http://localhost:3000 链接直接在内置浏览器打开,不用切出。

    3. Socket API 自动化

    cmux 暴露 socket API,外部脚本可控制:

    # 列出所有工作区 cmux list-workspaces # 设置状态(可在状态栏显示) cmux set-status claude_code "Running" # 发送通知 cmux notify --title "构建完成" --body "无错误"

    用途

    • CI/CD 完成后通知
    • 脚本执行进度提醒
    • 多 Agent 状态同步
    4. 工作区颜色编码
     
                
        
                  
    { 

    "workspaceColors": {

    "colors": { "Red": "#C0392B", "Blue": "#1565C0", "Neon Mint": "#00F5D4" } 

    } }

     

    效果:不同工作区用不同颜色标记,视觉上快速区分。


    场景 1:前端开发
     
                 
        
                   
    工作区 1: Claude Code - 主开发 

    └─ pane 1: claude (写代码) └─ pane 2: yarn dev (开发服务器)

    工作区 2: 测试 └─ pane 1: yarn test –watch └─ pane 2: 内置浏览器打开 localhost:3000

    工作区 3: 文档 └─ pane 1: 内置浏览器看文档 └─ pane 2: 笔记

     
    场景 2:多项目并行
    工作区 1: 项目 A (红色标记) 

    └─ claude –project A

    工作区 2: 项目 B (蓝色标记) └─ claude –project B

    工作区 3: 项目 C (绿色标记) └─ claude –project C

     

    通知配置:每个项目完成时语音播报项目名称。

    场景 3:监控 + 开发
     
                 
        
                   
    工作区 1: 开发 

    └─ claude

    工作区 2: 监控 └─ pane 1: tail -f logs/app.log └─ pane 2: top / htop └─ pane 3: 网络监控

    通知:日志中出现 ERROR 时触发通知

     
                 
        
                   

    场景 推荐 理由 本地 macOS + AI Agent cmux 通知、浏览器、零配置 远程服务器 tmux 会话保持、SSH 友好 多窗口复杂布局 tmux 更灵活的分屏 快速上手 cmux 开箱即用 版本控制配置 两者 都支持配置文件

    我的建议:本地开发用 cmux,远程 SSH 用 tmux,两者可以共存(在 cmux 里跑 tmux 也行)。


    坑 1:会话不恢复

    问题:重启 cmux 后,Claude Code 会话没了。

    原因:cmux 只恢复布局和元数据,不恢复进程状态。

    解决

    • 重要工作用 tmux(在 cmux 里跑 tmux)
    • 或者接受每次重启后重新连接
    坑 2:快捷键冲突

    问题Cmd+B 和浏览器冲突。

    解决 :在 settings.json 中自定义:

     
                  
        
                    
    { 

    "shortcuts": {

    "bindings": { "toggleSidebar": "ctrl+`" } 

    } }

     
    坑 3:通知太多

    问题:每个 Agent 输出都触发通知,烦。

    解决

    • 只在关键节点通知(Stop、Task 完成)
    • 使用 matcher 过滤特定事件

    安装方式

    方式一:DMG(推荐)

    1. 从官网下载 .dmg
    2. 拖入 Applications 文件夹
    3. 自动通过 Sparkle 更新

    方式二:Homebrew

     
                   
        
                     
    brew tap manaflow-ai/cmux 

    brew install –cask cmux

    更新

    brew upgrade –cask cmux

     
    CLI 配置

    在 cmux 外部使用 CLI 需要创建 symlink:

     
                   
        
                     
    sudo ln -sf "/Applications/cmux.app/Contents/Resources/bin/cmux" /usr/local/bin/cmux
    验证安装

    打开 cmux,你应该看到:

    • 左侧垂直标签页侧边栏
    • 一个初始工作区
    • Ghostty 驱动的终端就绪

    一句话

    cmux 是为 AI Coding 设计的终端工作流引擎,核心是"通知驱动 + 工作区隔离"。

    三个关键点
    1. 工作区隔离 — 一个任务一个工作区,不混淆
    2. 通知驱动 — Agent 主动找你,减少等待成本
    3. 开箱即用 — 默认够用,配置可选
    适合谁

    推荐

    • 同时跑多个 AI Agent
    • 需要频繁切换任务
    • 不想折腾配置

    不推荐

    • 只用一个 Agent
    • 重度 tmux 用户(会话恢复刚需)
    • Windows/Linux 用户(仅支持 macOS)

    cmux 最大的价值不是功能多,而是减少上下文切换。如果你发现自己整天在 iTerm2 标签页里迷路,或者等 Agent 跑完不知道,cmux 值得试试。

    2026 年是"终端复兴"的一年,cmux 代表了 AI First 终端的新方向。它没有重新发明终端,而是针对 AI Coding 场景做了精准的优化。

    慢工出细活,选对工具更重要。 🐌


    参考链接

    • cmux 官网:cmux.com
    • GitHub:github.com/manaflow-ai…
    • 文档:cmux.com/docs
    • The Changelog AI 播客:changelog.com/topic/ai

    如果你觉得这篇文章有帮助,欢迎点赞、收藏、关注~

    小讯
    上一篇 2026-04-12 22:37
    下一篇 2026-04-12 22:35

    相关推荐

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
    如需转载请保留出处:https://51itzy.com/kjqy/252185.html