新版本v3.42.0 — worktree 扇出、编排器循环、手机也能连上的智能体

面向 AI agent 的 工作区复用器。

一个窗口容纳整支团队:终端、agent、git worktree、真实浏览器,以及它们协作所用的频道。

wmux 在一个窗口中并排运行四个 AI 编程 agent
wmux 在一个窗口中并排运行四个 AI 编程 agent

八个 agent 意味着八个窗口要盯着。 wmux 把它们合并成一个。

每添加一个 agent,就多一个窗口、多一个终端、多一件要检查的事。wmux 把工作区——而不是终端——变成你复用的单位。

tmux 拆分的是一个终端。wmux 复用的是整个工作区——终端、agent、git worktree、浏览器,以及它们协作所用的频道——全部由一个守护进程持有,让它们在退出、崩溃和完全重启后依然运行。一个窗口。一支团队。Windows & macOS。
wmux — workspace

六件事,让一支 agent 团队变得可管理。

01 / Worktree

一条提示词,最多八个隔离的 worktree。

把一个任务扇出到最多八个 git worktree,每个都有自己的 agent 和分支。并排比较结果,逐个代码块(hunk)收割你想要的改动——要么全部应用,要么完全不应用,绝不会出现半应用的 diff——然后一键打开 pull request。

8 个并行 worktree逐 hunk 收割一键 PR
Worktree 扇出:wmux 中八个并行 worktree 与一个打开的 hunk 级 diff
Worktree 扇出:wmux 中八个并行 worktree 与一个打开的 hunk 级 diff
02 / 编排器

把工作分派给一支团队,在一个屏幕上全程掌握。

编排器把角色分派给子 agent,Fleet View(Ctrl+Shift+A)把每个面板都放到一个屏幕上。一键循环会从你的 .claude 目录中选取一个 skill,并不断针对完成条件清单运行,直到真正勾选完成为止。

Fleet View · Ctrl+Shift+A角色分派完成条件循环
wmux 中的 Fleet View,显示多个 agent 面板和正在运行的编排器循环
wmux 中的 Fleet View,显示多个 agent 面板和正在运行的编排器循环
03 / 频道

Agent 在频道里协作,而不是全靠你脑子里记。

Slack 风格的频道让人类和 agent 共处同一个工作区,A2A 任务消息让面板之间可以直接交接工作。话题、任务和未读状态都由守护进程存储,重启也不会抹掉对话。

Slack 风格频道A2A 任务消息重启后仍在
wmux 频道视图,agent 在共享工作区频道中发消息
wmux 频道视图,agent 在共享工作区频道中发消息
04 / 守护进程

退出、崩溃、重启——会话依然还在。

守护进程持有你的会话,而不是窗口。wmux.json 中声明的面板会像 init 系统监督服务那样被监督:挂掉时自动重启,你回来时自动恢复,最多 999K 行的回滚缓冲完整保留。

守护进程持有会话wmux.json 监督999K 行回滚缓冲
wmux 在重启后恢复完整工作区,包括面板与回滚缓冲
wmux 在重启后恢复完整工作区,包括面板与回滚缓冲
05 / 浏览器

一个真实的 Chrome,通过 CDP 驱动。

不是截图,也不是无头浏览器的近似模拟:agent 通过 DevTools 协议驱动一个真正的 Chrome 标签页,包括 React 受控输入框和中日韩(CJK)输入法组字,而你可以观察同一页面,随时接管。

Chrome DevTools ProtocolReact 安全输入CJK 输入
一个 agent 通过 wmux 浏览器面板驱动真实的 Chrome 标签页
一个 agent 通过 wmux 浏览器面板驱动真实的 Chrome 标签页
06 / 防护栏

无法撤销的命令,会先停下来问你。

Agent 很快,但偶尔会犯错。wmux 在不可逆命令执行前将其标记出来,并把本地暴露面控制到最小。

执行审批门禁

rm -rf、git push --force 和 DROP TABLE 会被标记为需要审批,而不是静默执行。

默认仅回环

wmux web 通过回环地址(loopback)只读地把你的终端提供给手机浏览器;要暴露它,是一个明确的、会被警告的选择。

工作区级 MCP 作用域

每次 MCP 调用都携带一个按会话生成的 token,且只能到达它所来自的那个工作区。

无遥测

没有数据分析、没有账户、不会往外拨号。守护进程只与你的机器通信,别无其他。

编排器,正在把工作交给一个子 agent。

录制自一次真实会话:一条提示词变成跨面板运行的分派工作。

wmux 编排器把任务分派给子 agent 的屏幕录像
wmux 编排器把任务分派给子 agent 的屏幕录像

四类最先想到 wmux 的人。

重度 Claude Code 用户

让 Claude 独占一个面板,把 diff、测试和 PR 留给其他面板——同一个工作区、同一个工作目录,不用来回切换窗口。

Claude 在面板 A 中重构,面板 B 监视测试运行,Git 标签页打开 PR。一个窗口,一副键盘。

claude codegit tab

多 agent 操盘手

同时运行 Claude Code、Codex 和 Gemini CLI,给每个分配角色,让编排器通过频道和 A2A 消息在它们之间路由工作。

编排器把迁移任务分派给三个子 agent,然后保持循环运行,直到完成条件清单全部变绿。

orchestratora2a_task_send

扇出评审员

把同一条提示词发到八个隔离的 worktree,并排阅读结果,只保留值得落地的那些 hunk。

八个分支,一条提示词,一轮评审。最好的 hunk 被收割;其余的 worktree 全部丢弃。

8 worktreeshunk harvest

浏览器自动化

让 agent 在一个真实的 Chrome 标签页里点点点——你的仪表盘、你的 CI、你自己的应用——而你观察同一页面,需要时随时接管。

一个 agent 在浏览器中走完发布清单,把发现的问题发到频道里,并在任何破坏性操作之前停在审批门禁处。

browser_openchannel_post

八十四个工具。零配置。

wmux 首次运行时,会向你机器上的 agent 注册自己的 MCP 服务器。无需编辑 JSON,无需复制粘贴,而且每次调用都限定在它所来自的那个工作区内。

  • browser39
  • channel12
  • a2a8
  • company_a2a6
  • pane6
  • terminal4
  • surface3
  • deck2
  • misc4

browser_open

通过 CDP 附加,在真实 Chrome 标签页中打开一个页面。

browser_click

点击实时页面上的一个元素。

browser_extract_text

从当前页面提取可读文本。

browser_screenshot

捕获整个页面或单个元素的截图。

channel_post

向一个工作区频道发布消息。

channel_read

读取一个频道,包括你不在时收到的消息。

channel_unread

查看某个 agent 还没有看过的内容。

a2a_task_send

把一个任务交给另一个 agent 并跟踪它。

a2a_discover

列出工作区中的 agent 及其技能。

company_a2a_send

在同一台机器上的不同工作区之间发送消息。

pane_split

拆分一个面板,并在其中启动内容。

pane_list

列出面板及其 agent、cwd 和状态。

terminal_read

读取终端当前显示的内容。

terminal_send

原样向终端输入内容。

surface_new

打开一个新的 surface——终端、浏览器或编辑器。

deck_ask_decision

请人类做决定,并等待答复。

wmux_search_panes

一次性搜索所有面板的回滚缓冲。

workspace_list

列出守护进程当前保持存活的工作区。

已检测到的 agent:Claude Code · Codex CLI · Gemini CLI · Aider · OpenCode · GitHub Copilot CLI

Windows 上一行命令。macOS 上一次拖拽。

包管理器

从终端安装

$winget install openwong2kim.wmux
推荐使用 winget · choco 与 PowerShell 一行命令安装的是同一个构建版本
安装程序

适用于 Windows 11 / 10 的 Setup.exe

下载 Windows 版wmux-3.42.0.Setup.exe · 143 MB
x64 · 自动更新

Windows 10 (1903+) 或 Apple Silicon 上的 macOS · 无需管理员权限 · 无需账户 · 无遥测

按设计,键盘优先。

Tmux 前缀模式覆盖了 13 种操作,肌肉记忆可以直接沿用。

面板

  • 向右分屏Ctrl+D
  • 向下分屏CtrlShift+D
  • 新建标签页Ctrl+T
  • 关闭标签页Ctrl+W
  • 悬浮面板(Quake)Ctrl+`

工作区

  • 新建工作区Ctrl+N
  • 切换工作区Ctrl1-9
  • 加入 MultiviewCtrl+click
  • 退出 MultiviewCtrlShift+G
  • 切换侧边栏CtrlShift+B

终端

  • 搜索(正则)Ctrl+F
  • Vi 复制模式CtrlShift+X
  • 添加书签Ctrl+M
  • 上一个书签Ctrl+
  • 下一个书签Ctrl+

团队

  • Fleet ViewCtrlShift+A
  • Tmux 前缀模式Ctrl+B
  • 命令面板Ctrl+K
  • 设置Ctrl,
  • 打开浏览器CtrlShift+L

底层究竟在跑什么。

架构——守护进程、面板、MCP host、agentREADME.md → architecture
┌──────────────────────────────────────────────────────────────┐
│  wmux window  ·  Electron renderer  ·  React + xterm.js    │
│  ── panes · tabs · Fleet View · Git tab · browser surface    │
├──────────────────────────────────────────────────────────────┤
│  daemon  ·  owns every session, outlives the window        │
│  ── PTY pool (ConPTY on Windows, forkpty on macOS)           │
│  ── wmux.json pane supervision   ── scrollback up to 999K    │
│  ── channels · A2A bus · worktree tasks                      │
├──────────────────────────────────────────────────────────────┤
│  mcp host  ·  84 tools, registered on first run           │
│  ── workspace-scoped tokens      ── execute approval gate    │
├──────────────────────────────────────────────────────────────┤
│  agents  ·  claude code · codex · gemini · aider · …      │
└──────────────────────────────────────────────────────────────┘

# Each agent runs in its own PTY. wmux owns the lifecycle, not the agent.
# 8-pane echo latency: p50 4.6 ms, measured in CI.
# wmux web binds to loopback; exposing it to the network is opt-in.

wmux 与其他方案对比。

wmuxtmuxWindows Terminal · iTerm2VS Code 终端Agent 管理工具
分屏面板部分支持
会话持久化部分支持部分支持
完整重启后仍然存活部分支持部分支持
Git worktree 扇出
编排器与 Fleet View部分支持
破坏性命令的审批门禁部分支持
频道与 agent 间消息
真实浏览器自动化
MCP 工具自动注册部分支持
开源 · MIT部分支持部分支持部分支持
支持部分支持 有条件 不支持

本页用到的术语。

工作区复用器
在一个窗口和一个生命周期内运行多个工作区——终端、agent、worktree、浏览器及其频道——的软件,而不是让你手动管理一堆窗口。
编排器
wmux 中把工作分派给其他面板中的子 agent、在 Fleet View 中跟踪它们进度、并能循环运行一个 skill 直到完成条件清单通过的角色。
频道
工作区中由人类和 agent 共享的 Slack 风格聊天室。消息、话题和未读状态都由守护进程存储,因此能在重启后保留。
Worktree 任务
一次扇出中的一条车道:一个拥有自己分支和自己 agent 的隔离 git worktree,你之后会把它的改动逐个 hunk 收割进你的工作树。
A2A——agent 间通信
在 agent 之间直接传递的任务消息:发送、查询、更新、取消。wmux 把它们暴露为 MCP 工具,任何能说 MCP 的 agent 都可以参与。
MCP——Model Context Protocol
一个用于把 AI agent 接入工具和资源的开放 JSON-RPC 规范。wmux 从一个本地的、限定工作区作用域的 host 暴露 84 个 MCP 工具。
CDP——Chrome DevTools Protocol
Chromium 通过 WebSocket 暴露的调试协议。wmux 用它让 agent 驱动一个真实的浏览器标签页,而不是一个模拟的标签页。
PTY——ConPTY / forkpty
面板所运行的伪终端:Windows 上是 ConPTY,macOS 上是 forkpty。wmux 直接调用它们,因此不涉及任何 Linux 虚拟机。

问题,直接回答。

什么是工作区复用器?
tmux 复用的是一个终端:一屏之内运行多个 shell。wmux 复用的是一个工作区:终端、AI 编程 agent、git worktree、真实浏览器,以及它们协作所用的频道,全部由一个守护进程持有,让它们在你退出、崩溃或重启时依然运行。
wmux 是 tmux 的移植版吗?
不是。wmux 是一个独立的应用,在 Windows 上基于 ConPTY 构建,在 macOS 上基于 forkpty 构建。它借用了 tmux 的肌肉记忆——分屏面板和覆盖 13 种操作的前缀模式——但它复用的单位是工作区,而不是终端。
wmux 需要 WSL 吗?
不需要。在 Windows 上,wmux 直接与 ConPTY 通信;在 macOS 上,它使用 forkpty。整个链路中没有 Linux 虚拟机,也没有什么需要在午饭前关掉的东西。
有 macOS 版本吗?
有。wmux 为 Apple Silicon 提供已签名并公证的 DMG,应用内自动更新在 Windows 和 macOS arm64 上都可用。
什么是 MCP,wmux 为什么会自动注册工具?
Model Context Protocol 是一个开放的 JSON-RPC 规范,用于把 AI agent 接入工具。wmux 暴露了 84 个 MCP 工具——浏览器、频道、A2A、面板、终端等等——并在首次运行时自动向你机器上的 agent 注册自己,因此不需要手动编辑任何配置文件。
worktree 扇出是怎么工作的?
你给出一条提示词,并选择要运行多少条并行车道,最多八条。wmux 为每条车道创建一个隔离的 git worktree,在其中各自运行一个 agent,并把结果并排展示。然后你逐个 hunk 收割改动——每个 hunk 要么完整应用,要么完全不应用——再从 Git 标签页打开 pull request。
Claude Code、Codex 和 Gemini 能同时运行吗?
可以。每个面板拥有自己独立的 PTY 和自己独立的 agent 进程。wmux 能检测到 Claude Code、Codex CLI、Gemini CLI、Aider、OpenCode 和 GitHub Copilot CLI,它们还可以通过频道和 A2A 消息互相交接工作。
浏览器工具实际能做什么?
它们通过 DevTools 协议驱动一个真实的 Chrome 标签页:导航、点击、向 React 受控输入框输入内容、组合输入中日韩(CJK)文字、读取 DOM、捕获截图、监听网络请求。仅浏览器这一类就占了 84 个 MCP 工具中的 39 个。
重启之后究竟能保留什么?
守护进程会持久化工作区、面板、工作目录、回滚缓冲和频道历史。wmux.json 中声明的面板会像服务一样被监督并重启。agent 进程本身会随机器一起停止——重新出现的是它们所在的工作区,随时可以重新连接。
wmux 是开源的吗?
是的,采用 MIT 许可证,完整源码在 GitHub 上。
wmux 会发送遥测数据吗?
没有遥测,没有数据分析,没有账户。wmux web 默认绑定到回环地址,要把它暴露到你的网络中,是一个应用会明确警告你的主动选择。
最低系统要求是什么?
Windows 10 build 1903 或更高版本(x64),或 Apple Silicon 上的 macOS。大约需要 4 GB 内存和几百 MB 磁盘空间。界面支持 23 种语言。

一个窗口。一支团队。

下载 wmux

免费 · MIT · Windows & macOS · 无遥测 · 无账户