Một terminal macOS dựa trên Ghostty với tab dọc và thông báo cho các agent lập trình AI
English | 日本語 | Tiếng Việt | 简体中文 | 繁體中文 | 한국어 | Deutsch | Español | Français | Italiano | Dansk | Polski | Русский | Bosanski | العربية | Norsk | Português (Brasil) | ไทย | Türkçe | ភាសាខ្មែរ | Українська
| Các pane có vòng xanh và tab sáng lên khi agent lập trình cần bạn chú ý |
|
| Xem tất cả thông báo đang chờ ở một nơi, nhảy đến thông báo chưa đọc mới nhất |
|
| Chia đôi một trình duyệt cạnh terminal với API có thể script, chuyển từ agent-browser |
|
| Sidebar hiển thị nhánh git, trạng thái/số PR liên kết, thư mục làm việc, các cổng đang lắng nghe, và dòng thông báo mới nhất. Chia đôi ngang và dọc. |
|
cmux ssh user@remote tạo workspace cho máy từ xa. Các pane trình duyệt định tuyến qua mạng từ xa nên localhost hoạt động bình thường. Kéo ảnh vào phiên từ xa để upload qua scp.
|
|
cmux claude-teams chạy chế độ teammate của Claude Code chỉ với một lệnh. Các teammate sinh ra dưới dạng split gốc với metadata sidebar và thông báo. Không cần tmux.
|
|
- Nhập trình duyệt — Nhập cookie, lịch sử, và phiên từ Chrome, Firefox, Arc, và hơn 20 trình duyệt khác để các pane trình duyệt khởi động đã đăng nhập sẵn
- Lệnh tùy chỉnh — Định nghĩa các hành động riêng cho dự án trong
cmux.jsonvà khởi chạy từ bảng lệnh - Có thể script — CLI và socket API để tạo workspace, chia pane, gửi phím, và tự động hóa trình duyệt
- Ứng dụng macOS gốc — Xây bằng Swift và AppKit, không phải Electron. Khởi động nhanh, dùng ít bộ nhớ.
- Tương thích Ghostty — Đọc cấu hình
~/.config/ghostty/confighiện có của bạn cho theme, font, và màu sắc - Tăng tốc GPU — Được hỗ trợ bởi libghostty để render mượt
Mở file .dmg và kéo cmux vào thư mục Applications. cmux tự cập nhật qua Sparkle, nên bạn chỉ cần tải một lần.
brew tap manaflow-ai/cmux
brew install --cask cmuxCập nhật sau này:
brew upgrade --cask cmuxLần mở đầu tiên, macOS có thể yêu cầu bạn xác nhận mở app từ nhà phát triển được xác định. Nhấn Open để tiếp tục.
Tôi chạy rất nhiều phiên Claude Code và Codex song song. Tôi từng dùng Ghostty với nhiều pane chia, và dựa vào thông báo macOS gốc để biết khi nào một agent cần tôi. Nhưng nội dung thông báo của Claude Code luôn chỉ là "Claude is waiting for your input" mà không có ngữ cảnh, và khi mở đủ nhiều tab thì tôi thậm chí không đọc được tiêu đề nữa.
Tôi đã thử vài trình điều phối lập trình nhưng phần lớn là app Electron/Tauri và hiệu năng làm tôi khó chịu. Tôi cũng thích terminal hơn vì các trình điều phối GUI buộc bạn theo workflow của họ. Vì vậy tôi xây cmux như một app macOS gốc bằng Swift/AppKit. Nó dùng libghostty để render terminal và đọc cấu hình Ghostty hiện có của bạn cho theme, font, và màu sắc.
Những bổ sung chính là sidebar và hệ thống thông báo. Sidebar có các tab dọc hiển thị nhánh git, trạng thái/số PR liên kết, thư mục làm việc, các cổng đang lắng nghe, và dòng thông báo mới nhất cho từng workspace. Hệ thống thông báo bắt các chuỗi terminal (OSC 9/99/777) và có CLI (cmux notify) để bạn nối vào hook của agent cho Claude Code, OpenCode, v.v. Khi một agent đang chờ, pane của nó có vòng xanh và tab sáng lên ở sidebar, nên tôi có thể biết cái nào cần tôi giữa các split và tab. Cmd+Shift+U nhảy đến thông báo chưa đọc mới nhất.
Trình duyệt trong app có API script được chuyển từ agent-browser. Agent có thể chụp cây accessibility, lấy tham chiếu phần tử, click, điền form, và chạy JS. Bạn có thể chia một pane trình duyệt cạnh terminal và để Claude Code tương tác trực tiếp với dev server của bạn.
Mọi thứ đều có thể script thông qua CLI và socket API — tạo workspace/tab, chia pane, gửi phím, mở URL trong trình duyệt.
cmux không áp đặt cách developer sử dụng công cụ. Nó là một terminal và trình duyệt có CLI, và phần còn lại là do bạn quyết định.
cmux là một nguyên thủy, không phải giải pháp. Nó cung cấp terminal, trình duyệt, thông báo, workspace, split, tab, và một CLI để điều khiển tất cả. cmux không ép bạn theo một cách dùng agent lập trình đầy định kiến. Bạn xây gì từ những nguyên thủy đó là của bạn.
Những developer giỏi nhất luôn tự xây công cụ của mình. Chưa ai tìm ra cách tốt nhất để làm việc với agent, và các đội ngũ xây sản phẩm đóng chắc chắn cũng chưa. Những developer gần codebase của họ nhất sẽ tìm ra trước.
Trao cho một triệu developer những nguyên thủy có thể ghép, và họ sẽ cùng nhau tìm ra workflow hiệu quả nhất nhanh hơn bất kỳ đội sản phẩm nào có thể thiết kế theo hướng top-down.
Để biết thêm về cách cấu hình cmux, xem tài liệu của chúng tôi.
| Phím tắt | Hành động |
|---|---|
| ⌘ N | Workspace mới |
| ⌘ 1–8 | Nhảy đến workspace 1–8 |
| ⌘ 9 | Nhảy đến workspace cuối |
| ⌃ ⌘ ] | Workspace tiếp theo |
| ⌃ ⌘ [ | Workspace trước |
| ⌘ ⇧ W | Đóng workspace |
| ⌘ ⇧ R | Đổi tên workspace |
| ⌘ B | Bật/tắt sidebar |
| Phím tắt | Hành động |
|---|---|
| ⌘ T | Surface mới |
| ⌘ ⇧ ] | Surface tiếp theo |
| ⌘ ⇧ [ | Surface trước |
| ⌃ Tab | Surface tiếp theo |
| ⌃ ⇧ Tab | Surface trước |
| ⌃ 1–8 | Nhảy đến surface 1–8 |
| ⌃ 9 | Nhảy đến surface cuối |
| ⌘ W | Đóng surface |
| Phím tắt | Hành động |
|---|---|
| ⌘ D | Chia sang phải |
| ⌘ ⇧ D | Chia xuống dưới |
| ⌥ ⌘ ← → ↑ ↓ | Đổi focus pane theo hướng |
| ⌘ ⇧ H | Nhấp nháy panel đang focus |
Phím tắt công cụ developer của trình duyệt theo mặc định Safari và có thể tùy chỉnh trong Settings → Keyboard Shortcuts.
| Phím tắt | Hành động |
|---|---|
| ⌘ ⇧ L | Mở trình duyệt trong pane chia |
| ⌘ L | Focus thanh địa chỉ |
| ⌘ [ | Quay lại |
| ⌘ ] | Tiến tới |
| ⌘ R | Tải lại trang |
| ⌥ ⌘ I | Bật/tắt Developer Tools (mặc định Safari) |
| ⌥ ⌘ C | Hiện JavaScript Console (mặc định Safari) |
| Phím tắt | Hành động |
|---|---|
| ⌘ I | Hiện bảng thông báo |
| ⌘ ⇧ U | Nhảy đến thông báo chưa đọc mới nhất |
| Phím tắt | Hành động |
|---|---|
| ⌘ F | Tìm |
| ⌘ G / ⌘ ⇧ G | Tìm tiếp / tìm trước |
| ⌘ ⇧ F | Ẩn thanh tìm |
| ⌘ E | Dùng vùng chọn để tìm |
| Phím tắt | Hành động |
|---|---|
| ⌘ K | Xóa scrollback |
| ⌘ C | Sao chép (khi có chọn) |
| ⌘ V | Dán |
| ⌘ + / ⌘ - | Tăng / giảm cỡ chữ |
| ⌘ 0 | Đặt lại cỡ chữ |
| Phím tắt | Hành động |
|---|---|
| ⌘ ⇧ N | Cửa sổ mới |
| ⌘ , | Cài đặt |
| ⌘ ⇧ , | Tải lại cấu hình |
| ⌘ Q | Thoát |
cmux NIGHTLY là một app riêng với bundle ID riêng, nên có thể chạy song song với bản ổn định. Được build tự động từ commit main mới nhất và tự cập nhật qua feed Sparkle riêng.
Báo lỗi nightly trên GitHub Issues hoặc trong #nightly-bugs trên Discord.
Khi mở lại, cmux hiện chỉ khôi phục bố cục app và metadata:
- Bố cục cửa sổ/workspace/pane
- Thư mục làm việc
- Scrollback của terminal (cố gắng hết mức)
- URL và lịch sử điều hướng của trình duyệt
cmux không khôi phục trạng thái tiến trình đang chạy bên trong terminal. Ví dụ, các phiên Claude Code/tmux/vim đang hoạt động chưa được khôi phục sau khi restart.
Cách tham gia:
- Theo dõi chúng tôi trên X để cập nhật @manaflowai, @lawrencecchen, và @austinywang
- Tham gia trò chuyện trên Discord
- Tạo và tham gia GitHub issues và discussions
- Cho chúng tôi biết bạn đang xây gì với cmux
cmux miễn phí, mã nguồn mở, và sẽ luôn như vậy. Nếu bạn muốn hỗ trợ phát triển và có quyền truy cập sớm vào những thứ sắp tới:
- Ưu tiên yêu cầu tính năng/sửa lỗi
- Truy cập sớm: cmux AI cung cấp ngữ cảnh cho mọi workspace, tab và panel
- Truy cập sớm: ứng dụng iOS với terminal đồng bộ giữa desktop và điện thoại
- Truy cập sớm: Cloud VM
- Truy cập sớm: Voice mode
- iMessage/WhatsApp cá nhân của tôi
cmux là mã nguồn mở theo GPL-3.0-or-later.
Nếu tổ chức của bạn không thể tuân thủ GPL, giấy phép thương mại có sẵn. Liên hệ founders@manaflow.com để biết chi tiết.






