> 此翻譯由 Claude 生成。如有改進建議，歡迎提交 PR。

<p align="center"><a href="README.md">English</a> | <a href="README.zh-CN.md">简体中文</a> | 繁體中文 | <a href="README.ko.md">한국어</a> | <a href="README.de.md">Deutsch</a> | <a href="README.es.md">Español</a> | <a href="README.fr.md">Français</a> | <a href="README.it.md">Italiano</a> | <a href="README.da.md">Dansk</a> | <a href="README.ja.md">日本語</a> | <a href="README.pl.md">Polski</a> | <a href="README.ru.md">Русский</a> | <a href="README.bs.md">Bosanski</a> | <a href="README.ar.md">العربية</a> | <a href="README.no.md">Norsk</a> | <a href="README.pt-BR.md">Português (Brasil)</a> | <a href="README.th.md">ไทย</a> | <a href="README.tr.md">Türkçe</a></p>

<h1 align="center">cmux</h1>
<p align="center">基於 Ghostty 的 macOS 終端機，具備垂直分頁和為 AI 程式設計代理設計的通知系統</p>

<p align="center">
  <a href="https://github.com/manaflow-ai/cmux/releases/latest/download/cmux-macos.dmg">
    <img src="./docs/assets/macos-badge.png" alt="下載 cmux macOS 版" width="180" />
  </a>
</p>

<p align="center">
  <img src="./docs/assets/screenshot.png" alt="cmux 螢幕截圖" width="900" />
</p>

## 功能特色

- **垂直分頁** — 側邊欄顯示 git 分支、工作目錄、監聽連接埠和最新通知文字
- **通知提示環** — 當 AI 代理（Claude Code、OpenCode）需要您注意時，窗格會顯示藍色光環，分頁會亮起
- **通知面板** — 在同一處檢視所有待處理通知，快速跳轉到最新未讀通知
- **分割窗格** — 支援水平和垂直分割
- **內建瀏覽器** — 在終端機旁分割出瀏覽器窗格，提供從 [agent-browser](https://github.com/vercel-labs/agent-browser) 移植的可腳本化 API
- **可腳本化** — 透過 CLI 和 socket API 建立工作區、分割窗格、傳送按鍵和自動化瀏覽器操作
- **原生 macOS 應用程式** — 使用 Swift 和 AppKit 建構，非 Electron。啟動快速，記憶體佔用低。
- **相容 Ghostty** — 讀取您現有的 `~/.config/ghostty/config` 設定檔中的主題、字型和色彩設定
- **GPU 加速** — 由 libghostty 驅動，渲染流暢

## 安裝

### DMG（建議）

<a href="https://github.com/manaflow-ai/cmux/releases/latest/download/cmux-macos.dmg">
  <img src="./docs/assets/macos-badge.png" alt="下載 cmux macOS 版" width="180" />
</a>

開啟 `.dmg` 檔案並將 cmux 拖曳到「應用程式」資料夾。cmux 透過 Sparkle 自動更新，您只需下載一次。

### Homebrew

```bash
brew tap manaflow-ai/cmux
brew install --cask cmux
```

稍後更新：

```bash
brew upgrade --cask cmux
```

首次啟動時，macOS 可能會要求您確認開啟來自已識別開發者的應用程式。點擊**開啟**即可繼續。

## 為什麼做 cmux？

我同時執行大量 Claude Code 和 Codex 工作階段。之前我用 Ghostty 開了一堆分割窗格，依靠 macOS 原生通知來了解代理何時需要我。但 Claude Code 的通知內容總是千篇一律的「Claude is waiting for your input」，沒有任何上下文資訊，而且分頁一多，連標題都看不清了。

我試過幾個程式設計協調工具，但大多數都是 Electron/Tauri 應用程式，效能讓我不滿意。我也更偏好終端機，因為 GUI 協調工具會把你鎖定在它們的工作流程裡。所以我用 Swift/AppKit 建構了 cmux，作為一個原生 macOS 應用程式。它使用 libghostty 進行終端機渲染，並讀取您現有的 Ghostty 設定中的主題、字型和色彩設定。

主要新增的是側邊欄和通知系統。側邊欄有垂直分頁，顯示每個工作區的 git 分支、工作目錄、監聽連接埠和最新通知文字。通知系統能擷取終端機序列（OSC 9/99/777），並提供 CLI（`cmux notify`），您可以將其接入 Claude Code、OpenCode 等代理的鉤子。當代理等待時，其窗格會顯示藍色光環，分頁會在側邊欄亮起，這樣我就能在多個分割窗格和分頁之間一眼看出哪個需要我。⌘⇧U 可以跳轉到最新的未讀通知。

內建瀏覽器擁有從 [agent-browser](https://github.com/vercel-labs/agent-browser) 移植的可腳本化 API。代理可以擷取無障礙樹快照、取得元素參考、執行點擊、填寫表單和執行 JS。您可以在終端機旁分割出瀏覽器窗格，讓 Claude Code 直接與您的開發伺服器互動。

所有操作都可以透過 CLI 和 socket API 進行腳本化 — 建立工作區/分頁、分割窗格、傳送按鍵、在瀏覽器中開啟 URL。

## 鍵盤快捷鍵

### 工作區

| 快捷鍵 | 動作 |
|----------|--------|
| ⌘ N | 新建工作區 |
| ⌘ 1–8 | 跳轉到工作區 1–8 |
| ⌘ 9 | 跳轉到最後一個工作區 |
| ⌃ ⌘ ] | 下一個工作區 |
| ⌃ ⌘ [ | 上一個工作區 |
| ⌘ ⇧ W | 關閉工作區 |
| ⌘ B | 切換側邊欄 |

### 介面

| 快捷鍵 | 動作 |
|----------|--------|
| ⌘ T | 新建介面 |
| ⌘ ⇧ ] | 下一個介面 |
| ⌘ ⇧ [ | 上一個介面 |
| ⌃ Tab | 下一個介面 |
| ⌃ ⇧ Tab | 上一個介面 |
| ⌃ 1–8 | 跳轉到介面 1–8 |
| ⌃ 9 | 跳轉到最後一個介面 |
| ⌘ W | 關閉介面 |

### 分割窗格

| 快捷鍵 | 動作 |
|----------|--------|
| ⌘ D | 向右分割 |
| ⌘ ⇧ D | 向下分割 |
| ⌥ ⌘ ← → ↑ ↓ | 按方向切換焦點窗格 |
| ⌘ ⇧ H | 閃爍聚焦面板 |

### 瀏覽器

| 快捷鍵 | 動作 |
|----------|--------|
| ⌘ ⇧ L | 在分割中開啟瀏覽器 |
| ⌘ L | 聚焦網址列 |
| ⌘ [ | 後退 |
| ⌘ ] | 前進 |
| ⌘ R | 重新整理頁面 |
| ⌥ ⌘ I | 開啟開發者工具 |

### 通知

| 快捷鍵 | 動作 |
|----------|--------|
| ⌘ I | 顯示通知面板 |
| ⌘ ⇧ U | 跳轉到最新未讀 |

### 尋找

| 快捷鍵 | 動作 |
|----------|--------|
| ⌘ F | 尋找 |
| ⌘ G / ⌘ ⇧ G | 尋找下一個 / 上一個 |
| ⌘ ⇧ F | 隱藏尋找列 |
| ⌘ E | 使用選取內容進行尋找 |

### 終端機

| 快捷鍵 | 動作 |
|----------|--------|
| ⌘ K | 清除捲動緩衝區 |
| ⌘ C | 複製（有選取內容時） |
| ⌘ V | 貼上 |
| ⌘ + / ⌘ - | 增大 / 縮小字型 |
| ⌘ 0 | 重設字型大小 |

### 視窗

| 快捷鍵 | 動作 |
|----------|--------|
| ⌘ ⇧ N | 新建視窗 |
| ⌘ , | 設定 |
| ⌘ ⇧ , | 重新載入設定 |
| ⌘ Q | 結束 |

## 授權條款

本專案採用 GNU Affero 通用公共授權條款 v3.0 或更新版本（`AGPL-3.0-or-later`）授權。

完整授權條款文字請參見 `LICENSE` 檔案。
