基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
  • 知识卡片碎片时间过考点
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
    • AI 热点每日 AI 资讯与动向
AI 工作台
旧版
AIHT
内容
精选全部 AI 动态热点榜AI 日报收藏
分类
模型行业编程产品技术观点开源
更多
Agent 接入
返回首页开发者导航
AIHT
精选 / 资讯详情
5.0
关注
AI SCORE
工具产品2026-02-20 05:30

Cmux 终端工具:Ghostty 垂直标签管理器

Hacker News · github.com#开发工具#终端
Editor brief · 编辑速览

基于 Ghostty 的新型终端工具,提供垂直标签和实时通知等功能,改善开发者终端体验。

文章思维导图
Knowledge map
拖拽缩放
Full translation

完整中文译文

一款基于 Ghostty 的 macOS 终端,提供垂直标签页,以及面向 AI 编程 Agent 的通知功能。

English | 日本語 | Tiếng Việt | 简体中文 | 繁體中文 | 한국어 | Deutsch | Español | Français | Italiano | Dansk | Polski | Русский | Bosanski | العربية | Norsk | Português (Brasil) | ไทย | Türkçe | ភាសាខ្មែរ | Українська

▶ 演示视频 · cmux 之禅

垂直 + 水平标签页

浏览器导入——从 Chrome、Firefox、Arc 等 20 多款浏览器导入 Cookie、历史记录和会话,让浏览器窗格打开时就处于已登录状态。

自定义命令——在 cmux.json 中定义项目专属操作,并通过命令面板启动。

可编程——通过 CLI 和 socket API 创建工作区、拆分窗格、发送按键,以及自动操作浏览器。

原生 macOS 应用——使用 Swift 和 AppKit 构建,而非 Electron。启动快、内存占用低。

兼容 Ghostty——读取你现有的 ~/.config/ghostty/config,沿用主题、字体和颜色。

GPU 加速——由 libghostty 提供支持,实现流畅渲染。

键盘快捷键——为工作区、分屏、浏览器等功能提供丰富的快捷键。

开源——免费,并采用 GPL 许可证。

打开 .dmg,将 cmux 拖入 Applications 文件夹。cmux 会通过 Sparkle 自动更新,因此只需下载一次。

brew tap manaflow-ai/cmux
brew install --cask cmux
brew upgrade --cask cmux

首次启动时,macOS 可能会要求你确认是否打开来自已认证开发者的应用。点击 Open 继续。

我经常并行运行大量 Claude Code 和 Codex 会话。之前我使用 Ghostty,开着一堆分屏窗格,并依靠 macOS 原生通知判断哪个 Agent 需要我介入。但 Claude Code 的通知正文永远只有一句 “Claude is waiting for your input”,完全没有上下文;而且标签页开得足够多之后,我甚至连标题都看不清了。

我试过几款编程编排工具,但其中大多数都是 Electron/Tauri 应用,性能问题让我很不舒服。我也更喜欢终端,因为 GUI 编排工具会把你限制在它们预设的工作流里。因此,我使用 Swift/AppKit 将 cmux 构建成了原生 macOS 应用。它使用 libghostty 渲染终端,并读取你现有的 Ghostty 配置,沿用其中的主题、字体和颜色。

cmux 主要新增了侧边栏和通知系统。侧边栏提供垂直标签页,会显示每个工作区的 git 分支、关联 PR 的状态和编号、工作目录、正在监听的端口,以及最新的通知文本。通知系统可以捕获终端序列(OSC 9/99/777),同时还提供 CLI(cmux notify),你可以将它接入 Claude Code、OpenCode 等 Agent 的 hook。当某个 Agent 正在等待时,它所在的窗格会出现蓝色边框,侧边栏中的标签页也会亮起,这样即使跨越多个分屏和标签页,我也能知道究竟哪个 Agent 需要我。按 Cmd+Shift+U 可以跳转到最近一条未读通知。

应用内浏览器提供了从 agent-browser 移植而来的可编程 API。Agent 可以获取无障碍树快照、获得元素引用、点击元素、填写表单和执行 JS。你可以在终端旁边拆分出一个浏览器窗格,让 Claude Code 直接与你的开发服务器交互。

所有功能都可以通过 CLI 和 socket API 编程控制——创建工作区和标签页、拆分窗格、发送按键,以及在浏览器中打开 URL。

cmux 不会规定开发者应该如何组织和使用自己的工具。它只是一个带有 CLI 的终端和浏览器,其余部分由你决定。

cmux 是一种基础构件,而不是一套解决方案。它为你提供终端、浏览器、通知、工作区、分屏、标签页,以及控制这一切的 CLI。cmux 不会强迫你按照某种固执己见的方式使用编程 Agent。如何利用这些基础构件搭建自己的工作方式,完全取决于你。

最优秀的开发者一直都在打造自己的工具。至今还没有人找到与 Agent 协作的最佳方式,那些开发封闭产品的团队显然也没有。最贴近自身代码库的开发者,反而会最先找到答案。

如果给一百万名开发者一组可组合的基础构件,他们一定能以集体探索的方式,比任何产品团队自上而下地设计方案更快找到最高效的工作流。

如需了解如何配置 cmux,请前往我们的文档。

浏览器开发者工具的快捷键遵循 Safari 默认设置,并且可以在 Settings → Keyboard Shortcuts 中自定义。命令面板的导航快捷键(包括 ⌃ P)同样可以自定义,也可以清除快捷键绑定,让按键事件传递给当前活动的终端。

下载 cmux NIGHTLY

cmux NIGHTLY 是一个独立应用,拥有自己的 bundle ID,因此可以与稳定版同时运行。它会根据最新的 main commit 自动构建,并通过自己独立的 Sparkle feed 自动更新。

请在 GitHub Issues 或 Discord 的 #nightly-bugs 频道中报告 nightly 版本的 bug。

退出 cmux 时,当前会话会被保存。再次启动时,cmux 会恢复由应用管理的状态:

  • 窗口、工作区和窗格布局
  • 终端滚动缓冲区(尽力恢复)
  • 浏览器 URL 和导航历史记录

cmux 不会对任意运行中进程的实时状态创建 checkpoint。tmux、vim、shell 以及不受支持的终端应用会作为普通终端重新打开。

如果 hook 已保存原生 session ID,受支持的 Agent 会话便可以恢复。请在安装 Agent CLI 之后再安装 hook,以确保其二进制文件已位于 PATH 中:

cmux hooks setup
cmux hooks setup codex
cmux hooks setup --agent opencode

cmux hooks setup 会安装它能够找到的受支持 Agent,并输出被跳过 Agent 的汇总信息。支持恢复集成的工具包括 Claude Code、Codex、Grok、OpenCode、Pi、Amp、Cursor CLI、Gemini、Rovo Dev、Copilot、CodeBuddy、Factory 和 Qoder。在 Settings 中启用 Claude 集成后,Claude Code 会由 cmux Claude wrapper 处理。

高级用户和集成可以为当前终端 surface 绑定自定义恢复命令。这对拥有自身持久化状态的工具很有用,例如 tmux 会话或自定义 Agent CLI:

cmux surface resume set --kind tmux --checkpoint work --shell "tmux attach -t work"
cmux surface resume show --json
cmux surface resume clear --checkpoint work

该绑定会一直附着在对应的 cmux surface 上。通过公开 CLI 或 socket 创建的绑定会被保存,以便检查和手动恢复;除非你批准某个已签名的命令前缀,否则不会自动恢复。如果绑定中包含工作目录和确切的环境变量值,获批的前缀也会与它们绑定。你可以在 Settings > Terminal > Resume Commands 中检查或编辑批准项。cmux 只会自动运行被标记为可信的恢复绑定,例如通过实时进程检测到的 tmux 绑定,或用户批准的前缀。在保存恢复绑定之前,token、密码、secret 和 API key 等敏感环境变量会被移除。

如果希望恢复后的 Agent 终端保持空闲,而不是自动执行恢复命令,请关闭 Settings > Terminal > Resume Agent Sessions on Reopen,或在 ~/.config/cmux/cmux.json 中设置:

{
  "terminal": {
    "autoResumeAgentSessions": false
  }
}

这只会禁用 Agent 恢复命令的自动执行。cmux 仍会恢复已保存的布局、工作目录、滚动缓冲区和浏览器历史记录。

如果需要手动重新应用最近保存的快照,请使用:

File > Reopen Previous Session

在底层实现中,cmux 会将带版本号的快照写入 ~/Library/Application Support/cmux/,Agent hook 则会将会话映射写入 ~/.cmuxterm/。恢复时,cmux 会先重建布局;如果启用了 Agent 自动恢复,再执行受支持 Agent 的原生恢复命令。

完整指南请参阅 cmux session restore 文档。

cmux 与 Ghostty 是什么关系?

cmux 不是 Ghostty 的 fork。它将 libghostty 作为终端渲染库使用,就像应用使用 WebKit 渲染 Web View 一样。Ghostty 是一个独立终端;cmux 则是基于其渲染引擎构建的另一个应用。

它支持哪些平台?

目前仅支持 macOS。cmux 是使用 Swift + AppKit 构建的原生应用。

它支持 iPhone 吗?

支持,目前处于 beta 阶段。在 Mobile Connect 窗口中将 iPhone 与 Mac 配对,即可通过手机连接终端,还可以选择转发终端通知。它以 cmux BETA 的名称通过 TestFlight 发布。cmux Founders Edition 包含 early access 权限。详情请参阅 iOS 文档。

cmux 可以与哪些编程 Agent 配合使用?

所有 Agent 都可以。cmux 本质上是一个终端,因此任何在终端中运行的 Agent 都能开箱即用:Claude Code、Codex、OpenCode、Gemini CLI、Kiro、Aider、Goose、Amp、Cline、Cursor Agent,以及任何其他可以从命令行启动的工具。

cmux 可以编排多个 Agent 和 subagent 吗?

可以。当某个 Agent 创建 subagent 或 teammate 时,cmux 会将它们转换为原生窗格和分屏,而不是隐藏的后台进程。它支持 Claude Code teams 和 oh-my-opencode 多模型编排,因此一次运行中的每个 Agent 都清晰可见、可以控制。

可以通过 cmux 使用远程机器吗?

可以。你可以通过 SSH 打开工作区并连接远程 tmux 会话,让 Agent 在远程主机上运行,同时通过 cmux 进行控制。详情请参阅 SSH and remote 文档。

通知是如何工作的?

当某个进程需要你关注时,cmux 会在窗格周围显示通知边框,在侧边栏显示未读徽标,并展示通知弹窗和 macOS 桌面通知。这些通知可以通过标准终端转义序列(OSC 9/99/777)自动触发,也可以使用 cmux CLI 和 Agent hook 手动触发。任何支持 hook 或 OSC 的 Agent 都可以使用,包括 Claude Code、Codex、OpenCode 和 pi。

cmux 可以编程控制吗?

可以。每项操作都可以通过 cmux CLI 和 Unix socket 执行:创建工作区、打开分屏窗格、发送输入、读取屏幕内容、截取屏幕截图,以及驱动应用内浏览器。详情请参阅 CLI reference 和 browser automation 文档。

内置浏览器能做什么?

cmux 可以在终端旁边拆分出一个真正的浏览器窗格,并且它完全可以编程控制:导航、获取 DOM 快照、点击、输入、执行 JavaScript,以及通过同一个 socket API 读取 console 和网络活动。Agent 可以用它验证自己对 Web 项目所做的修改,而无须离开 cmux。详情请参阅 browser automation 文档。

cmux 有 Skills 吗?

有。Skills 是一组可复用的工作流,可以提供给任何在 cmux 中运行的 Agent,用于 CLI 控制、工作区自动化、设置和浏览器 surface 等场景。你可以在 cmux-skills 中浏览开放的 Skills 集合,或阅读 Skills 文档。

可以自定义键盘快捷键吗?

终端键位绑定读取自 Ghostty 配置文件(~/.config/ghostty/config)。cmux 专属快捷键,包括工作区、分屏、浏览器和通知等功能,可以在 Settings 中自定义。完整列表请参阅默认快捷键文档。

可以自定义 cmux 吗?

可以。终端渲染使用你的 Ghostty 配置,因此主题、字体、颜色和光标设置都会直接沿用。cmux 自身位于 ~/.config/cmux/cmux.json 的设置可以控制侧边栏、标签栏、分屏窗格和行为,所有键盘快捷键也都可以编辑。详情请参阅 configuration 文档。

我的会话会被保存吗?

会。再次启动时,cmux 会恢复窗口、工作区、窗格、工作目录和滚动缓冲区;这些状态即使在整台计算机重启后依然能够保留,而不只是退出应用后有效。Claude Code、Codex 和 OpenCode 等 Agent 会话也会一同恢复。详情请参阅 session restore 文档。

它与 tmux 相比如何?

tmux 是运行在任意终端内部的终端多路复用器。cmux 则是带有 GUI 的原生 macOS 应用:垂直标签页、分屏窗格、嵌入式浏览器和 socket API 全部内置,无须配置文件,也不需要前缀键。尽管如此,仍有许多人会愉快地将 cmux、SSH 和 tmux 搭配使用;cmux 也可以原生连接远程 tmux 会话,目前该功能处于 beta 阶段。

cmux 可以免费使用吗?

可以,cmux 可免费使用,源代码已发布在 GitHub 上。

如何支持 cmux?

cmux 是免费、开源的,而且永远都会如此。如果你希望支持项目开发,并提前体验接下来推出的功能,包括 cmux AI、iOS 应用和 Cloud VMs,可以了解 cmux Founders Edition。

我有功能建议或发现了 bug,该怎么办?

我们很希望听到你的反馈。请在 GitHub 上提交 issue 或 pull request,也可以给我们发送邮件。

参与方式:

  • 在 X 上关注我们,获取最新动态:@manaflowai、@lawrencecchen 和 @austinywang
  • 加入 Discord 参与讨论
  • 创建并参与 GitHub issue 和 discussion
  • 告诉我们你正在使用 cmux 构建什么
  • 微信:扫描二维码加入社区

cmux 是免费、开源的,而且永远都会如此。如果你希望支持项目开发,并提前体验接下来推出的功能:

获取 Founder’s Edition

  • 功能建议和 bug 修复享有更高优先级
  • Early access:cmux AI,可以了解每个工作区、标签页和面板的上下文
  • Early access:iOS 应用,在桌面和手机之间同步终端
  • Early access:Cloud VMs
  • Early access:Voice mode
  • 我的私人 iMessage/WhatsApp

cmux 采用 GPL-3.0-or-later 许可证开源。

如果你的组织无法遵守 GPL,Manaflow 对其拥有必要权利的部分可能可以提供商业许可条款。这些条款不会重新许可第三方材料,也不会涵盖 Manaflow 未获得单独授权的外部贡献。确切范围请参阅 LICENSE,详情请联系 founders@manaflow.com。

Original source

本文由 AI 翻译整理,来源 Hacker News · github.com,原文版权归原作者所有。

阅读原文
上一篇
llama.cpp等本地推理项目入驻Hugging Face
下一篇
Gemini 3.1 Pro 发布:专为复杂任务设计

资讯速览

Hacker News · github.com · 2026-02-20 05:30

AI 评分 5.0 / 10

相关标签

#开发工具#终端

继续阅读

  • Unsloth 免费微调:HF 提供免费计算资源
  • llama.cpp等本地推理项目入驻Hugging Face
  • Gemini 3.1 Pro 发布:专为复杂任务设计
  • 测量 AI Agent 自主性:Anthropic 实践研究
  • AI 时代程序员核心竞争力:批判而非只会生成