Conductor、Superset 与 cmux 的对比分析

EElie Steinbock
Computing/SoftwareTelecommutingInternet Technology

Transcript

00:00:00随着编程 CLI 的兴起,现在市面上出现了大量不同的工具,
00:00:06可以帮助你管理 AI 代理来替你编写代码。
00:00:10在今天的视频中,我将向大家展示其中几种主流工具,并进行对比。
00:00:16我目前日常使用的是 Conductor,但它的灵活性很高,我经常在不同工具间切换。
00:00:23其他开始流行起来的工具包括 SuperSet、C-Mux,Codex 应用其实也很不错,
00:00:27此外,还有很多人直接在 Ghosty、Warp 或 iTerm 等常规终端中编写代码。
00:00:31当然,大家也还在使用 Cursor 或 VS Code。
00:00:36本期视频我将重点介绍 Conductor、SuperSet 和 C-Mux,因为这些是比较新的工具,尝试过的人还不算多。
00:00:40大家都知道怎么用 VS Code 或 Cursor,所以我就不深入讲解了。
00:00:44首先是 Conductor。这实际上就是你现在在我屏幕上看到的这个。
00:00:48你可以看到我有好几个不同的对话在并行运行。
00:00:50这是我目前为 Inbox Zero 开发的真实工作。
00:00:53侧边栏的每一个对话都是一个不同的工作树(work tree)。
00:00:58如果你不熟悉工作树,它们是因为 AI 代理的并行运行而变得非常流行的。
00:01:03它的作用是提取你的核心项目,并将其克隆到电脑上的一个新文件夹中。
00:01:08在这里你可以看到我有 Inbox Zero 的仓库,并且在电脑上存了好多副本。
00:01:10这一个叫 Belgrade,那个叫 Algiers。
00:01:15每一个都有不同的名字,基本上就是你在侧边栏看到的这些。
00:01:18每一个基本上都是我可以进行开发的一个独立分支。
00:01:20它还有自己对应的 PR。
00:01:25因此,这里的更改不会影响到那里的任何更改。
00:01:30这就好像你有七个不同的员工在为你工作,也就是不同的 AI 代理,
00:01:35每一个都在修改不同的文件,可以并行工作而互不干扰。
00:01:38现在带大家看看 Conductor 是如何运作的,它其实就是一个普通的聊天界面。
00:01:43你可以看到我有一个正在进行的任务,我正在告诉 AI 继续它的工作。
00:01:49你可以看到一旦任务就绪并完成,我就可以去检查它关联的 PR。
00:01:51我也可以点击这里进行合并。
00:01:59我可以点击这里的评审按钮,它会启动一个新的代理,在一个新标签页中去评审这个工作树或分支中的更改。
00:02:01我还可以查看不同的文件。
00:02:03比如这里是 .env.example 文件。
00:02:07而在右边,我有一个常规的终端。
00:02:13现在,由于工作树的工作方式是将你的主项目复制粘贴到一个新位置,
00:02:17这通常意味着你需要为该文件夹重新进行设置。
00:02:24所以你在今天涵盖的所有这些项目中都会看到,有一个设置脚本(setup script)和一个运行脚本(run script)。
00:02:35设置脚本的意思是,当我点击加号开始在一个新的工作树中开发新功能时,它会自动执行类似 pnpm install 甚至在新的端口上运行项目等操作。
00:02:36如何使用这些脚本完全取决于你。
00:02:46但通常你会看到,设置脚本可能是执行 pnpm install,然后运行脚本是真正启动应用,接着你就可以在 localhost:3000 或其他端口访问它。
00:02:50你可以让每一个工作树都运行在不同的端口上。
00:02:54这是必要的,因为每个工作树都有不同的代码更改。
00:03:00如果你只在一个文件夹里运行项目,显然它不会显示你电脑上另一个文件夹里的更改。
00:03:04现在,另一个非常棒的功能是你可以查看“检查”(checks)。
00:03:07也就是你的构建状态或 GitHub 评论。
00:03:15这里你可以看到我有很多正在运行的检查,还有来自 Kubik 和 Baz 的评论,它们是 AI 代码评审工具。
00:03:19如果我点击其中一个,你可以看到这是它作为评审的一部分给我的建议。
00:03:25如果我想,我甚至可以将所有这些评论添加到这里的对话中,点击发送,让 AI 自动修复它们。
00:03:28下一步我要向大家展示的是 Superset。
00:03:30你可以看到它的理念非常相似。
00:03:32侧边栏运行着你所有的不同代理。
00:03:39坦白说,我认为很多不同的项目都受到了 Conductor 的启发,这就是为什么你会看到它们的界面都在向相似的方向靠拢。
00:03:41你可以看到右侧有提交(commit)功能。
00:03:44这里有项目的不同文件。
00:03:49这里有趣的一点是,它为终端提供了更高级的一等公民体验。
00:03:54所以如果你喜欢运行常规的 Claude Code 或 Codex,你也可以这样做。
00:03:56这里你可以看到一个已经发生的常规运行。
00:03:58他们也有自己的聊天界面。
00:04:00如果你更偏好那种方式,我觉得这挺新颖的。
00:04:04Conductor 强迫你使用他们的自定义聊天界面,而使用 Superset,
00:04:06你拥有这种灵活性。
00:04:13现在,你可能想要使用 Claude Code 或 Codex 的真实版本,原因在于它会拥有所有最新的功能。
00:04:18我的意思是,比如 Codex 更新了一个新的斜杠命令。
00:04:22你在 Conductor 中输入斜杠,它可能不会出现,因为他们还没有更新 Conductor。
00:04:29它很大程度上是对 Claude Code 和 Codex 的封装,但因为你用的是他们的聊天界面,所以并不是完全对等的。
00:04:36但在 Superset 这边,虽然理念类似也是用他们的聊天界面,但你也可以直接使用 CLI。
00:04:40在 Superset 中你还会发现,你也可以在主分支(main branch)上工作。
00:04:43令人惊讶的是,这在 Conductor 中做起来有点麻烦。
00:04:47据我所知,你无法在 Conductor 中直接操作 main 分支。
00:04:52你必须在 Cursor 或 VS Code 之类的工具中打开项目。
00:04:54顺便提一下,Conductor 也有完全相同的功能。
00:05:01但在这里你可以看到,我可以从 Superset 直接在其他编辑器(如 Zed 或任何你选择的编辑器)中打开项目。
00:05:03完全一样的理念。
00:05:06我可以在访达或 Ghosty 或任何我想用的地方打开它。
00:05:15Superset 另一个酷炫的地方是你可以打开浏览器标签页,这里可以看到 Inbox Zero,它直接在 Superset 内部运行。
00:05:18如果你在做前端代码开发,这会非常有帮助。
00:05:22我应该还提到,这两个应用都支持与 Linear 和 GitHub 同步。
00:05:27比如你可以根据一个 Linear 的 issue 来创建一个新的工作树。
00:05:29这里是 Superset 拥有的其他一些功能。
00:05:34我认为当云端工作空间和移动应用发布时,这些功能会变得非常有趣。
00:05:36我假设 Conductor 也会做类似的事情。
00:05:39你可以想象,这些应用的更新速度非常快。
00:05:42我们今天在这里看到的,三个月后可能就是完全不同的景象了。
00:05:50如果我向大家展示我们是如何实际使用 Superset 的,你可以看到我可以在 Codex、Claude Code 之间选择,坦白说还有很多其他选项,比如 Open Code。
00:05:54我猜这是 Superset 相对于 Conductor 的另一个优势。
00:05:57在 Conductor 中,你被限制只能使用 Codex 和 Claude Code。
00:05:59而在这里,我有许多其他选项可以使用。
00:06:03那么让我们去修改一下,创建一个工作空间。
00:06:06你可以看到工作空间正在设置中,正在执行一些操作。
00:06:15它在这里打开了 Codex,你可以看到与此同时,它在另一个窗格中执行 pnpm install。
00:06:19现在完成了,我要让它创建一个 PR。
00:06:22顺便说一下,如果你注意侧边栏,我们的分支已经被重命名了。
00:06:26我们可以在浏览器中打开它的预览,这很不错。
00:06:27你可以看到 PR 已经准备好了。
00:06:29它已经在这里为我关联好了。
00:06:37但我也可以在侧边栏看到我们处于 PR 1915,检查正在运行,体验和 Conductor 非常相似。
00:06:40我还可以点击这里查看更改或提交。
00:06:48如果我想看 diff,我可以点击这里,希望能在这里看到 diff,你可以看到 CI 检查也在运行。
00:06:52这是在 GitHub Actions 和我连接的其他机器人中发生的。
00:07:00你可以看到 Vercel 机器人和 Socket Security 已经完成了,而 AI 代码评审员以及一些端到端测试仍在运行。
00:07:03使用 Superset 和 Conductor 时需要注意一点。
00:07:07你可以搜索文件,但我认为目前还没有办法搜索特定的单词。
00:07:10所以你经常需要在另一个编辑器中打开代码。
00:07:12假设我想在项目中找到这个词。
00:07:17我觉得今天在 Conductor 或 Superset 里还没法这么做。
00:07:24这虽然不是特别重要,但确实有很多时候我会打开另一个编辑器来更深入地查看情况。
00:07:29但在大多数时间里,我只是在 Conductor 中管理侧边栏的这些代理。
00:07:31顺便说一下,看这个。
00:07:33这个更改现在已经创建好了。
00:07:37我可以点击创建 PR,也可以点击评审,它就会继续流程。
00:07:42所以它有很多好用的内置按钮,让整个工作流变得简单得多。
00:07:44接下来我们要看的是 Cmux。
00:07:46但在那之前,我们先快读看看 Ghosty 是什么样的。
00:07:48Ghosty 只是另一个终端。
00:07:49它很酷,推荐下载。性能非常强,是用 Zig 编写的。
00:07:51这里你可以看到 Codex 在 Ghosty 中运行。
00:07:53完全一样的东西。这是 Claude Code 在 iTerm2 中运行。
00:07:56这里你可以看到我们在运行 Warp。
00:08:00也是一个很酷的终端。这个比较突出,因为你可以在终端里使用 AI。
00:08:04它还可以做很多其他事情,比如代理式编程。
00:08:07我没怎么深用过,所以就不细说了。
00:08:10但它确实是一个非常好用的终端,可以通过自然语言交互,而不需要手动输入命令。
00:08:16这里你可以看到 Warp 在实际应用中的样子。
00:08:18现在切回到 Cmux,我们可以看到 Cmux 是一个基于 Ghosty 的原生 macOS 应用。
00:08:24它有垂直标签页、当代理需要注意时会发出的通知环、分屏窗格以及用于自动化的 Socket API。
00:08:30这就是它的样子。你可以看到侧边栏有很多正在运行的任务。
00:08:33你也可以看到这里有很多正在运行的窗格。
00:08:37你甚至可以看到一个正在运行的浏览器标签页。
00:08:39这是你第一次打开 Cmux 时的实际样子。
00:08:43它就是一个非常流畅的 Ghosty 终端,这很棒,但接着你可以开始做其他事情。
00:08:48它的工作方式更像是 Tmux。如果你不熟悉 Tmux,这就是 Tmux 的理念。
00:08:53这里你可以看到 Tmux 在我的终端里运行。
00:08:55我可以执行类似在 Tmux 内部开不同窗格的操作。它是一个终端里的终端。
00:09:00也被称为终端复用器。
00:09:03你可以看到我其实已经在 Cmux 里运行了 Tmux,不过我们先退出那个。
00:09:08现在 Cmux 正在运行。你可以看到我可以不断地把它切分成不同的窗口。
00:09:13所以这真的很棒。如果我想并行运行四个不同的 Codex,我可以直接开搞。
00:09:18而且我不需要管理四个不同的独立窗口。
00:09:21当然,我可以在这边再开一个终端,然后在不同终端之间来回切换。
00:09:27Cmux 真正酷的一点是,它是一个你可以调用的 CLI。
00:09:32例如,在这里输入 cmux new split left,我可以让它为我创建一个新标签页。
00:09:37你可以想象如果你在使用 Claude Code,它可以为你自动在多个不同的标签页中启动多个代理。
00:09:44你还可以让 Claude Code 使用 Cmux CLI 来控制其他事情。
00:09:49比如,在这里你可以看到我们在 PR 1905 上。
00:09:52我只需要告诉 Claude Code:“嘿,我想在侧边栏看到这个 PR”,就能完成设置。
00:09:59你还可以让它自动处理通知并进行自定义。
00:10:04例如,当 Claude Code 或 Codex 完成任务时,它们可以调用 Cmux CLI 发送通知,告诉你任务在哪个标签页以及已经完成了。
00:10:14你还可以用它来运行浏览器和执行浏览器自动化。
00:10:18例如,在这里我执行了 cmux browser open getinboxzero.com。
00:10:21你可以看到它在这里的一个新标签页里弹出来了。
00:10:24想了解更多功能,请查看文档。
00:10:27这里你可以看到浏览器自动化 CLI。
00:10:30这里可以看到它是如何为你管理通知的。
00:10:33cmux notify。让我们试一下这个。
00:10:36你可以看到我们收到了一个新通知。太棒了。
00:10:39现在,Cmux 和 Tmux 之间还是有一些区别的。
00:10:42Tmux 非常适合做远程会话工作。
00:10:46即使你的会话与服务器断开了连接,Tmux 也会保持运行。
00:10:50而 Cmux 仅限 Mac 使用,所以它可能没法在你的服务器上运行。
00:10:54这也意味着如果你在电脑上运行它,然后想在手机上继续工作,它帮不了你。
00:11:00我个人在手机上使用一个叫 Echo 的工具。它很便宜,只要三美元。
00:11:05但它基本上可以让你通过 SSH 登录电脑。
00:11:08如果你已经有一个正在运行的 Tmux Claude Code 会话,你就可以直接在手机上继续。
00:11:14你可以让你的电脑和手机处于同一个 Tailscale 网络中来完成设置。
00:11:18你可以看到那种体验是什么样的。其实非常不错。
00:11:21虽然我不经常用,但这个应用本身非常简洁精美。
00:11:25所以我建议大家也去了解一下。
00:11:27视频到这里就结束了。我希望这能让你对
00:11:31目前存在的各种不同工具有所了解,并知道如何使用它们。
00:11:34坦白说,它们的功能几乎都大同小异。
00:11:37最终,你只是通过稍微不同的界面在与 AI 交流。
00:11:41对我来说,最重要的事情是我能不能并行运行多个代理?
00:11:45我发现最简单的方法就是使用工作树。
00:11:48所以我应该提一下,Cmux 没有任何原生支持工作树的功能。
00:11:52所以你确实需要寻找一些脚本来完成相关设置。
00:11:55但如果你在使用 Claude,你只需要输入 claude work tree,
00:11:58它就会在一个新的工作树中为你设置好一切。
00:12:01工作树是 Git 内置的功能,所以理论上你使用的每一个应用都可以使用它们。
00:12:05但在像 Conductor 或 Superset 这样的工具中,你只需点击加号,
00:12:09你就能得到一个新的工作树,而且一切都会自动为你设置好,
00:12:11你完全不用操心。这非常方便。
00:12:14如果你在使用 Cmux 之类的工具,网上有一些脚本可以帮你实现同样的功能。
00:12:17坦白说,几行代码就能搞定。
00:12:20希望你喜欢这个视频并觉得它很有趣。
00:12:23记得订阅以观看未来的视频。如果你想帮我个忙,
00:12:26请访问 GitInboxZero.com。在 GitHub 上点个 star。它是完全开源的。
00:12:31它是一款 AI 邮件助手,能帮你管理邮件并助你快速实现收件箱清零。

Key Takeaway

本文深入对比了 Conductor、Superset 和 cmux 等新兴 AI 编程工具,核心在于利用 Git 工作树实现多 AI 代理并行开发,以极大提升软件工程的自动化效率。

Highlights

Conductor、Superset 和 cmux 是目前管理 AI 编程代理(如 Claude Code 和 Codex)的主流 CLI 工具。

Git 工作树(Worktrees)是实现 AI 并行开发的内核,允许不同代理在独立文件夹中同时处理多个 PR 且互不干扰。

Conductor 提供高度集成的聊天界面和工作流管理,支持自动执行设置脚本、运行脚本及处理代码评审评论。

Superset 相比 Conductor 更加灵活,支持更多模型选择(如 Open Code),并允许用户直接使用原生 CLI 或内置浏览器进行前端预览。

cmux 是基于 Ghosty 的原生 macOS 终端复用器,通过 Socket API 实现自动化通知、窗口分屏和浏览器同步控制。

Warp、Ghosty 和 iTerm2 等常规终端配合 Claude Code 或 Codex 也能完成任务,但缺乏自动化的并行工作空间管理。

Timeline

AI 编程 CLI 工具概览与并行开发理念

视频开篇介绍了随着 AI 编程代理的兴起,市面上涌现出如 Conductor、Superset 和 cmux 等管理工具。讲师强调这些工具的核心价值在于帮助开发者更高效地调度 AI 来编写代码,而不是取代传统的 VS Code 或 Cursor。他指出虽然很多人仍在使用常规终端如 Warp 或 iTerm,但新型工具在多任务并行处理上有显著优势。本节明确了视频的重点将放在 Conductor、Superset 和 cmux 这三个相对较新且尝试人数较少的工具上。通过对比这些工具,开发者可以找到最适合自己日常工作流的 AI 协作方式。

Conductor 深度解析:基于工作树的并行协作

讲师详细演示了 Conductor 的操作界面,展示了如何通过侧边栏管理多个并行的对话。核心概念是 Git 工作树(work tree),它将项目克隆到多个独立文件夹中,使每个 AI 代理都能在独立分支上工作而互不干扰。Conductor 支持自定义设置脚本(setup script)和运行脚本,确保每个工作树都能在不同端口启动应用。此外,它还集成了代码评审工具的评论功能,用户可以直接将评审建议反馈给 AI 进行自动修复。这种多“员工”并行的模式极大地提高了处理多个 Pull Request 的速度和准确性。

Superset 对比分析:更高的灵活性与集成体验

Superset 在理念上与 Conductor 相似,但提供了更高级的终端一等公民体验,允许用户直接使用原生的 Claude Code 命令。它的一大优势是灵活性,支持包括 Open Code 在内的更多 AI 模型,而不像 Conductor 那样局限于特定封装。Superset 还内置了浏览器标签页功能,方便前端开发者在工具内部实时查看更改效果,并能直接在主分支上操作。演示中展示了从创建工作空间、执行 pnpm install 到生成 PR 的完整自动化流程。虽然它在文件搜索功能上仍有局限,但其与 Linear 和 GitHub 的深度同步使其成为强力竞争者。

终端复用器 cmux 与其他工具的差异化竞争

这一部分转而介绍基于 Ghosty 的原生 macOS 应用 cmux,它本质上是一个现代化的终端复用器。cmux 借鉴了 Tmux 的分屏逻辑,但通过高效的 Socket API 实现了强大的自动化能力,如自动通知环和分屏控制。用户可以通过 CLI 命令让 AI 代理自动管理窗口布局,甚至控制浏览器自动化操作。虽然 cmux 缺乏像 Conductor 那样的原生工作树管理,但其性能极强且支持高度自定义。讲师还简要提到了 Warp 和 Ghosty 等高性能终端在日常 AI 辅助开发中的表现。cmux 的出现为那些习惯于终端操作且追求极致响应速度的开发者提供了新选择。

远程协作、手机办公与总结建议

视频最后讨论了跨设备工作的可能性,对比了 Tmux 的服务器持久性与 cmux 仅限 Mac 使用的局限。讲师推荐了 Echo 应用配合 Tailscale,让开发者能在手机上通过 SSH 继续处理未完成的 AI 会话。他总结认为这些工具的核心差异在于用户界面,而底层的 AI 交流逻辑是大同小异的。并行运行代理的最佳实践依然是利用 Git 工作树,即使工具不支持,也可以通过简单的脚本实现。视频以鼓励观众尝试这些工具并关注开源项目 Inbox Zero 结尾。最终建议开发者根据自己对界面集成度或 CLI 灵活性的偏好来选择合适的 AI 管理器。

Community Posts

View all posts