Muxy:为 AI Agent 时代打造的原生 macOS 终端

1次阅读
没有评论

共计 3976 个字符,预计需要花费 10 分钟才能阅读完成。

如果你翻一翻我这几年在 macOS 上装过的终端软件,大概能拼出一部小型的「终端进化史」。最开始是 [[iTerm2]],那几乎是每个 Mac 开发者的默认选择,分屏、配置、触发器一应俱全。后来嫌它有点重,换到了 [[Kitty]],被它的 GPU 渲染和极客气质吸引了一阵子。再往后 [[Warp]] 火了,我也跟着体验了一段时间那种「块状命令 + 内置 AI」的新范式。等到 [[Ghostty]] 发布,我几乎是第一时间就切了过去,冲的就是它那份原生流畅和 Mitchell Hashimoto 的招牌。

折腾来折腾去,我以为自己会在 Ghostty 上稳定下来。直到最近,我把主力终端换成了 [[Muxy]]。

Muxy:为 AI Agent 时代打造的原生 macOS 终端

从一个很朴素的痛点说起

其实换终端这件事,说到底都是被具体的痛点推着走的。这半年我的开发方式变了。以前是在 IDE 里敲代码,现在大量时间泡在终端里,跟 [[Claude Code]]、[[Codex]] 这类 Coding Agent 来回对话。让 AI 读文件、改代码、跑测试、提交 PR,一整套流程几乎都在命令行里完成。

这种工作方式一旦成为常态,我对终端的要求就悄悄发生了变化。传统终端是为「敲命令」设计的,一行输入、一行输出,干净利落。但当你和一个 Agent 打交道时,场景完全不一样了。你可能需要一次性粘贴一大段多行的需求描述,可能需要让它生成一张图然后立刻看看效果,可能同时开着三四个项目分别跑不同的任务,还可能希望离开电脑的时候在手机上瞄一眼那个跑了半小时的任务到底结束了没有。

这些需求,Ghostty 作为一款纯粹优秀的终端并不打算全部满足,它的定位就是把「终端」这件事做到极致。但 Muxy 恰恰是从另一个方向切进来的,它把自己定义成一款为 AI Agent 时代重新设计的终端。有意思的是,它并没有另起炉灶去重写渲染引擎,而是直接站在了巨人的肩膀上。

站在 libghostty 肩膀上的原生客户端

Muxy 最聪明的一步,是复用了 [[libghostty]]。

Ghostty 项目把它的核心终端能力抽象成了一个开源库 libghostty,其他应用可以直接拿来做终端渲染的底座。Muxy 正是基于这个库来构建的,这意味着它天然继承了 Ghostty 那套经过打磨的终端体验:GPU 加速渲染、准确的字符处理、低延迟的输入响应。你在 Muxy 里敲字、滚动、切换的手感,和 Ghostty 几乎是同一个水准,因为底层本来就是同一套东西。

在这个坚实的底座之上,Muxy 用 [[Swift]] 和 [[SwiftUI]] 包裹了一整层现代化的应用外壳。整个项目里 Swift 代码占了 98.7% 以上,是一款彻头彻尾的原生 macOS 应用,而不是又一个套着 Electron 壳的网页。这一点在实际使用中体现得很明显,内存占用低、窗口跟手、动画流畅,符合我对一款原生 Mac 软件的所有期待。它要求 macOS 14 及以上,用 [[Homebrew]] 一行命令就能装好。

brew tap muxy-app/tap
brew install --cask muxy

所以你可以这样理解 Muxy 的定位:它把 Ghostty 的「终端内核」和 SwiftUI 的「应用能力」缝合在了一起,然后在缝合处加上了一堆专门服务于 AI 工作流的功能。真正让我留下来的,正是这些加出来的东西。

侧边栏工作区,重新组织我的项目

Muxy 和传统终端多路复用器最大的观念差异,在于它组织工作的单位不是「会话」,而是「项目」。

[[tmux]] 那一套是以 session、window、pane 来划分的,逻辑清晰但偏底层,你得自己记住哪个 session 对应哪个项目。Muxy 直接把「项目」提到了第一等公民的位置。左侧有一条侧边栏,把我手上的每个项目都列成一个独立的工作区,每个工作区拥有自己的标签页、分屏布局和会话状态。我从项目 A 切换到项目 B,上一次的工作现场会被原样恢复,光标停在哪、开了几个分屏、跑着什么进程,全都还在。

这个侧边栏对我这种同时维护好几个代码库的人来说,价值太大了。以前用 Ghostty 的时候,我得靠一堆窗口和标签页在脑子里维持一张地图,哪个窗口是前端、哪个是后端、哪个在跑数据库迁移,切来切去很容易迷路。换到 Muxy 之后,这张地图直接被画在了屏幕左边,一目了然。对于经常需要在多个 Agent 任务之间来回跳转的场景,这种以项目为中心的组织方式确实更贴近真实的工作流。

为 Coding Agent 深度定制的那些细节

如果说侧边栏解决的是「怎么组织」,那 Muxy 真正让我觉得「这是为 AI 时代做的」的,是一堆围绕 Coding Agent 的小设计。

先说多行文本输入。跟 Agent 对话经常要一次性给它一大段上下文,可能是一份需求文档,可能是一段报错堆栈。在普通终端里粘贴多行文本,体验往往很别扭,容易触发意料之外的换行执行。Muxy 专门优化了多行输入,你可以从容地把一整段内容组织好再一次性发出去,这个体验上的差别,用过就回不去了。

再说语音输入。这个功能一开始我以为是噱头,用了才发现真香。有时候脑子里的想法比手速快,直接对着麦克风把需求口述出来,让它转成文字发给 Agent,比一个字一个字敲要顺畅得多。尤其是描述那种复杂的、绕来绕去的逻辑时,说话确实比打字更自然。

还有图片查看。Coding Agent 现在越来越多地涉及生成图表、截图、UI 预览这类工作。Muxy 内置了图片查看器,Agent 生成的图片可以直接在终端里看,不用切到 Finder 或者别的看图工具。配合它内置的 Markdown 和 HTML 预览,甚至能渲染 [[Mermaid]] 图表,整个「让 AI 干活然后立刻看结果」的闭环,都收拢在了同一个窗口里。

Muxy 对 Agent 的支持还体现在工程层面。它在仓库里放了 CLAUDE.mdAGENTS.md 这类配置文件,官方还提供了可以直接安装的技能包,让 Agent 能够理解并控制 Muxy 本身。

# 通过 Muxy CLI 一键安装全部技能
muxy install-skills

装好之后,Claude Code、Codex、Gemini 这些 Agent 就能感知到自己正运行在 Muxy 里,进而调用它的能力。这种「终端主动向 Agent 暴露自己」的思路,是传统终端完全没有的。

Git Worktree,并行开发的高阶玩法

聊到我平时用得最重的一个功能,得说 [[Git Worktree]]。

用 Coding Agent 干活有个很自然的诉求,就是并行。我想让一个 Agent 在 feature-a 分支上改功能,同时让另一个 Agent 在 fix-b 分支上修 bug,两者互不干扰。传统做法是不停地 git stash、切分支,很容易搞乱工作区。而 Git Worktree 的思路是为不同分支各自开一个独立的工作目录,物理上就隔离开了。

Muxy 对 Worktree 的支持相当到位。它原生集成了 Git 操作,暂存、撤销、提交、推送拉取、切换和创建分支、管理 Worktree、甚至开 Pull Request,都能在图形界面里完成。结合前面说的项目化工作区,我可以为每个 Worktree 目录开一个独立的工作区,各自跑各自的 Agent,侧边栏一列排开,谁在干什么清清楚楚。这套组合拳打下来,多分支并行开发的体验顺滑了不止一个档次。对于已经习惯让多个 Agent 同时作战的人来说,这几乎是刚需级别的支持。

把手机变成终端的第二块屏

Muxy 还有一个我没想到会用上、但用上了就觉得挺妙的功能:移动端伴侣应用。

它同时提供了 [[iOS]] 和 [[Android]] 的 App,通过局域网或者 VPN 连接到跑着 Muxy 的 Mac。连上之后,我可以在手机上实时查看终端输出、滚动历史记录、切换标签页、开新终端,甚至完成完整的 Git 操作。最典型的场景是,我让 Agent 跑一个耗时的任务,然后合上电脑去做别的事,过一会儿掏出手机就能看到它跑到哪了,需要的话直接在手机上确认下一步。桌面端的终端多路复用器一直缺一块移动端的拼图,Muxy 把它补上了。

一些还需要观望的地方

当然,Muxy 也不是没有短板,我得实话实说。

最直接的限制是它只支持 macOS,而且要求 macOS 14 以上。如果你的工作横跨 Linux 或者需要在服务器上直接用,那 tmux 这类跨平台方案依然不可替代。其次它还比较年轻,GitHub 上大概一千九百多颗星,相比 iTerm2、tmux 那种沉淀多年的成熟生态,Muxy 的社区和扩展数量还在慢慢积累。它确实有一套内置的扩展商店和扩展 API,也提供了扩展开发的技能包,方向是对的,但生态的丰富程度还需要时间。另外,部分高级功能和付费插件的定价目前也还不够清晰,长期的稳定性同样有待更多时间检验。

不过这些在我看来更多是「新项目的成长烦恼」,而不是设计上的硬伤。它的迭代速度很快,已经发布了一百多个版本,能感觉到背后是在认真做事的团队。

当然如果你需要在服务器上使用,除了 tmux ,我还推荐使用 herdr 来管理多个 Agent。

最后

回头看我这一路换终端的经历,其实是我使用电脑的方式在变。iTerm2、Kitty 那个阶段,我要的是一个更强大、更可定制的命令行工具;到了 Ghostty,我追求的是极致的原生性能和纯粹;而现在换到 Muxy,本质上是因为我的工作重心从「敲命令」彻底转向了「和 Agent 协作」,我需要的不再是一个更好的终端,而是一个为这种全新工作流量身打造的操作台。

Muxy 最打动我的地方,就在于它没有假装 AI 不存在,也没有粗暴地把一个聊天框塞进终端了事。它是踏踏实实地站在 libghostty 这个可靠底座上,把侧边栏工作区、多行输入、语音、图片查看、Git Worktree、移动端伴侣这些能力,一件一件地缝进了终端体验里,最终拼出了一款真正属于 AI Agent 时代的原生终端。

如果你和我一样,是 macOS 重度用户,手上同时维护着好几个项目,又已经把 Coding Agent 当成日常搭子,那我真心建议你花点时间试试 Muxy。

正文完
 0
评论(没有评论)