manaflow-ai / cmux

本文为原文前 6,000 字符的节选翻译,完整内容请查看原文。

cmux A Ghostty-based macOS terminal with vertical tabs and notifications for AI coding agents

cmux 是一款基于 Ghostty 的 macOS 终端,具有垂直标签页和 AI 编码代理通知功能。

Features Notification rings: Panes get a blue ring and tabs light up when coding agents need your attention. Notification panel: See all pending notifications in one place, jump to the most recent unread. In-app browser: Split a browser alongside your terminal with a scriptable API ported from agent-browser. Vertical + horizontal tabs: Sidebar shows git branch, linked PR status/number, working directory, listening ports, and latest notification text. Split horizontally and vertically.

功能特性 通知环:当编码代理需要您的注意时,窗格会出现蓝色圆环,标签页会亮起。 通知面板:在一个位置查看所有待处理通知,并跳转至最近的未读消息。 应用内浏览器:通过从 agent-browser 移植的可脚本化 API,在终端旁边拆分浏览器窗口。 垂直 + 水平标签页:侧边栏显示 Git 分支、关联的 PR 状态/编号、工作目录、监听端口以及最新的通知文本。支持水平和垂直拆分。

SSH: cmux ssh user@remote creates a workspace for a remote machine. Pass —command ‘omp “investigate auth”’ to run an initial command once in its first remote terminal. Browser panes route through the remote network so localhost just works. Drag an image into a remote session to upload via scp.

SSH:cmux ssh user@remote 可为远程机器创建工作区。通过 —command ‘omp “investigate auth”’ 参数,可以在其第一个远程终端中运行初始命令。浏览器窗格通过远程网络路由,因此 localhost 可以直接使用。将图像拖入远程会话即可通过 scp 上传。

Claude Code Teams: cmux claude-teams runs Claude Code’s teammate mode with one command. Teammates spawn as native splits with sidebar metadata and notifications. No tmux required.

Claude Code 团队:cmux claude-teams 可通过一条命令运行 Claude Code 的队友模式。队友会以原生拆分窗口的形式出现,并带有侧边栏元数据和通知。无需 tmux。

Browser import: Import cookies, history, and sessions from Chrome, Firefox, Arc, and 20+ browsers so browser panes start authenticated. Custom commands: Define project-specific actions in cmux.json that launch from the command palette. Programmable: CLI and socket API to create workspaces, split panes, send keystrokes, and automate the browser.

浏览器导入:从 Chrome、Firefox、Arc 等 20 多种浏览器导入 Cookie、历史记录和会话,使浏览器窗格启动时即处于已登录状态。 自定义命令:在 cmux.json 中定义项目特定的操作,并从命令面板启动。 可编程:提供 CLI 和 Socket API,用于创建工作区、拆分窗格、发送按键以及自动化浏览器操作。

Native macOS app: Built with Swift and AppKit, not Electron. Fast startup, low memory. Ghostty compatible: Reads your existing ~/.config/ghostty/config for themes, fonts, and colors. GPU-accelerated: Powered by libghostty for smooth rendering. Keyboard shortcuts: Extensive shortcuts for workspaces, splits, browser, and more. Open source: Free and GPL-licensed.

原生 macOS 应用:使用 Swift 和 AppKit 构建,而非 Electron。启动速度快,内存占用低。 兼容 Ghostty:读取您现有的 ~/.config/ghostty/config 以获取主题、字体和颜色。 GPU 加速:由 libghostty 提供支持,渲染流畅。 键盘快捷键:提供用于工作区、拆分、浏览器等的大量快捷键。 开源:免费且采用 GPL 许可。

Why cmux? I run a lot of Claude Code and Codex sessions in parallel. I was using Ghostty with a bunch of split panes, and relying on native macOS notifications to know when an agent needed me. But Claude Code’s notification body is always just “Claude is waiting for your input” with no context, and with enough tabs open I couldn’t even read the titles anymore.

为什么选择 cmux? 我经常并行运行许多 Claude Code 和 Codex 会话。我曾使用 Ghostty 配合多个拆分窗格,并依赖 macOS 原生通知来了解代理何时需要我。但 Claude Code 的通知内容总是“Claude 正在等待您的输入”,没有任何上下文,而且当打开的标签页足够多时,我甚至无法再阅读标题了。

The Zen of cmux cmux is not prescriptive about how developers hold their tools. It’s a terminal and browser with a CLI, and the rest is up to you. cmux is a primitive, not a solution. It gives you a terminal, a browser, notifications, workspaces, splits, tabs, and a CLI to control all of it. cmux doesn’t force you into an opinionated way to use coding agents.

cmux 的禅意 cmux 不会对开发者如何使用工具进行规定。它是一个带有 CLI 的终端和浏览器,其余的由您决定。cmux 是一个基础组件,而非一个完整的解决方案。它为您提供了终端、浏览器、通知、工作区、拆分、标签页以及控制这一切的 CLI。cmux 不会强迫您以某种特定的方式使用编码代理。