00:00:00这是 Cmux,一个专为编程智能体打造的终端,赋予了它们打开
00:00:04和控制浏览器、在不同分屏中创建子智能体、发送自定义通知
00:00:09以及更多功能的能力,这一切都通过 CLI 和 socket API 实现。
00:00:13但在拥有 Warp、Solotam 和 Dmux 等众多终端智能体的情况下,Cmux 究竟有
00:00:19什么特别之处?
00:00:20点个订阅,让我们一探究竟。
00:00:24尽管名字叫 Cmux,但它与 tmux 毫无关系,它是一个基于
00:00:30libghosty 构建的原生 Mac 应用,使用 WebKit 浏览器和 bond-split 处理布局,如标签页、分屏等。
00:00:36等等。
00:00:37但真正的魔力在于智能体与应用通信的方式。
00:00:41让我展示给你看。
00:00:42安装并设置好 Cmux 后,我们会看到一个外观普通的终端,
00:00:46它支持标签页,我们可以进行分屏,无论是垂直还是水平分屏,如果需要,
00:00:53甚至可以在这些分屏内部开启标签页。
00:00:55安装 Cmux 后,我们还可以访问 Cmux CLI,它为我们提供了
00:01:00许多选项,比如创建新工作区和新分屏,在侧边栏显示日志和进度等
00:01:06信息,甚至可以使用兼容 tmux 的命令。
00:01:11这一切都归功于 Cmux Unix socket,我们稍后会详细介绍。
00:01:15但让我们先来做点有趣的事情。
00:01:16首先,我清空一下,然后运行 Claude Code,我们可以看到
00:01:20侧边栏标题已经改变了,我会将模型切换到 Haiku,以免浪费
00:01:25太多的 token。
00:01:26接着,我要让 Claude 使用 Cmux CLI 在新分屏中打开浏览器,
00:01:30然后导航到 google.com,在输入框输入 “hello world” 并进行谷歌搜索。
00:01:36当我按下回车,Claude 就会开始操作。
00:01:38它现在正在学习如何使用 Cmux。
00:01:40它已经打开了谷歌的新标签页。
00:01:42让我们看看它是否会进行搜索。
00:01:44好的,它开始执行了。
00:01:45它已经完成了 “hello world” 的搜索。
00:01:47搜索执行得非常完美。
00:01:49我甚至可以要求它点击链接。
00:01:51比如,我想让它点击这个 IMDb 的链接,我可以命令:点击 IMDb 关于 hello
00:01:55world 的链接。
00:01:57Claude 就会照做。
00:01:59非常酷的一点是,即使在分屏浏览器中,我也能访问开发者
00:02:04工具,这有助于调试我正在开发的页面。
00:02:07所有这些都是通过浏览器命令完成的,其 API 设计类似于
00:02:11Cells 智能体浏览器。
00:02:12这种浏览器与终端并排显示的优势在于,智能体可以
00:02:16在浏览器中导航、进行测试并返回结果,而作为开发者,你
00:02:20可以实时观察这一切。
00:02:21让我们尝试别的操作。
00:02:22我先关闭这个标签页,清空这些信息。
00:02:25我要让 Claude 在分屏中创建两个自己的实例,一个用于理解
00:02:30项目,另一个用于分析该项目的代码。
00:02:33当它们完成后,应该将信息反馈给 Claude 主实例,
00:02:38然后关闭分屏。
00:02:39按下回车,它创建了两个分屏,并在其中都打开了 Claude。
00:02:45现在我们可以看到它正在给它们下达指令,这种实时画面太疯狂了。
00:02:50未选中的分屏会稍微变暗,我们可以点击它们使其
00:02:53变亮。
00:02:54由于这个过程需要一点时间,我会快进视频。
00:02:57现在两个分屏都完成了,Claude 自动关闭了它们,并获取了
00:03:02来自第一个实例和第二个实例的信息,非常酷。
00:03:07你可以想象这在检查不同子智能体的权限以确保
00:03:11它们不会卡住方面有很多用途。
00:03:12但我刚才演示的例子有一个问题:每当其中一个实例有
00:03:16通知或需要我帮助时,我没有简单的方法察觉到。
00:03:21幸运的是,Cmux 让这一切变得简单。
00:03:23让我们再试一次。
00:03:24在新的 Claude Code 会话中,我会给它一个提示,让它使用 Cmux 在分屏中
00:03:28创建一个新的 Claude 实例,然后在该分屏中,让它研究并
00:03:33针对此项目提出代码改进建议。
00:03:36完成后,使用 Cmux 编写一条合适的通知,并运行 “trigger flash” 来引起我的
00:03:40注意。
00:03:41该命令会在指定的分屏上激活蓝色闪烁边框。
00:03:45在执行过程中,我会创建一个新工作区,并在这里运行
00:03:48Open Code。
00:03:49Cmux 的美妙之处在于它是一个 CLI,因此可以与任何智能体框架配合使用。
00:03:54就在我打开 Open Code 时,我们可以看到收到了一条来自 Cmux 的通知。
00:03:58点击铃铛,可以看到并行分析已经开始,虽然还没完全结束。
00:04:03但如果我点击通知,它会向我显示包含信息的正确分屏。
00:04:07它刚才没有完全按我的要求做,所以我让它再试一次。
00:04:10在它运行期间,让我们回到 Open Code,做我最初想做的
00:04:13事情,即使用 Cmux CLI 添加项目分支的名称,并
00:04:19在分支名称旁边使用合适的图标。
00:04:21按下回车让它执行,我们可以看到收到了来自 Cmux 的通知,
00:04:25提示并行分析已经开始,看来这次启动
00:04:29很顺利。
00:04:30我们甚至可以在侧边栏看到这条消息。
00:04:32现在它完成了。
00:04:33我要让它关闭分屏并清空侧边栏文本。
00:04:36我们可以看到它添加了分支名称和合适的图标,
00:04:40之前我说是 SF icons,其实我想说的是 SF symbol,很高兴它理解了。
00:04:45我们可以看到它已经关闭了分屏并移除了侧边栏中的文本。
00:04:49虽然这些例子都很简单,但我希望它能让你瞥见
00:04:52当智能体掌控 Cmux 终端时能实现的强大功能。
00:04:57我甚至还没演示一些超棒的功能,比如使用进度条、
00:05:00为工作区添加自定义颜色、让智能体重命名标签页、在
00:05:05命令面板中显示所有选项,以及 Cmux 可以读取并应用你的 Ghosty
00:05:10配置。
00:05:11我在使用 Cmux 时没有配置任何 hook 或技能,并且禁用了 Claude Code 的沙箱,
00:05:16否则会报错。但我强烈建议你获取由作者开发的 Cmux
00:05:20核心和浏览器技能,并设置 Claude Code hook 来自动
00:05:26发送通知,甚至编写自定义脚本。
00:05:29所有这些都让 Cmux 更加实用,但我确实希望有一种更简单的方法来
00:05:33从零开始设置,而不是手动复制粘贴技能和通知
00:05:38配置文件。
00:05:39就像 skills.sh 能自动检测你使用的智能体框架并应用
00:05:43技能到正确的目录一样,我希望 Cmux 也能做到这一点,协助
00:05:48完成整个安装过程。
00:05:49但 Cmux 已经是一个很棒的工具了,我相信以后会加入安装脚本。
00:05:53我非常喜欢它是一个原生 Mac 应用这一点,这对内存和性能都有好处,
00:05:58而且 CLI 通过 Unix socket 以 JSON 格式与应用通信,
00:06:02这让通信变得快速且简单。
00:06:04说到快速简单,你知道有一种数据库比 SQLite 快 138 倍吗?
00:06:10它是用 Rust 编写的,叫做 StoolLab,你可以在 Andris 的
00:06:17这个视频中了解所有相关内容。