工作區、窗格、分頁:CMUX 三層結構全解

工作區、窗格、分頁:CMUX 三層結構全解

5 min read

很多人裝好 CMUX 之後,打開來看就覺得「跟 tmux 差不多啊」——然後就只用到它三成功能。問題通常是:沒搞清楚它的三層結構。搞懂之後你才知道為什麼每一個設計決定都是有意義的,也才能真正按任務切分空間。

先看視覺全貌

CMUX 的介面長這樣:

┌──────────────────────────────────────────────────────┐
│ ┌──────────┐ ┌─────────────────────────────────────┐ │
│ │ Sidebar  │ │ Workspace "dev"                     │ │
│ │          │ │                                     │ │
│ │          │ │ ┌───────────────┬─────────────────┐ │ │
│ │ > dev    │ │ │ Pane 1        │ Pane 2          │ │ │
│ │   server │ │ │ [S1] [S2]     │ [S1]            │ │ │
│ │   logs   │ │ │               │                 │ │ │
│ │          │ │ │  Terminal     │  Terminal       │ │ │
│ │          │ │ │               │                 │ │ │
│ └──────────┘ └───────────────┴─────────────────┘ │ │
└──────────────────────────────────────────────────────┘

左側是側邊欄,列著三個工作區(dev、server、logs)。目前選中 "dev",右邊顯示兩個並排的窗格,窗格 1 裡面還有兩個分頁(S1 和 S2)。

這是三層:工作區 → 窗格 → 分頁(Surface),加上最底層的面板(Panel)。

第一層:視窗(Window)

最外層就是 macOS 視窗,用 ⌘⇧N 建立新的。一般來說你不太需要管這層,多視窗是顯示器空間夠大才會用到的場景。

第二層:工作區(Workspace)

工作區是側邊欄的每一個項目,用 ⌘N 建立。

這層是你組織工作任務的單位——一個代理、一個功能分支、一個任務,用一個工作區隔開。每個工作區有自己的名稱、可以設顏色,還有環境變數 CMUX_WORKSPACE_ID 讓你的腳本知道自己在哪個工作區裡跑。

實際使用場景:

  • feature-auth:Auth 功能開發,這個代理在這跑
  • test-runner:專門跑測試的工作區
  • logs:監控 log,放著讓它滾

三者互相不干擾,你在側邊欄一眼就能掃完狀態。

第三層:窗格(Pane)

工作區裡可以橫切或直切,切出多個窗格,用 ⌘D(水平)或 ⌘⇧D(垂直)分割。

窗格是螢幕空間分配的單位,讓你在同一個工作任務裡同時看到多個輸出。比如左邊跑 dev server,右邊開瀏覽器 preview,它們還是同一個「任務」,只是你需要同時看。

第四層:分頁(Surface)

每個窗格裡可以有多個 Surface——類似瀏覽器的分頁,用 ⌘T 新增。每個 Surface 有自己的識別 ID(CMUX_SURFACE_ID),這在用 socket API 做自動化時會用到。

面板(Panel)

最底層。每個 Surface 裡跑一個面板,面板可以是終端機或瀏覽器。對,你可以在窗格裡直接開瀏覽器,不用切去 Chrome 再切回來。

層級總覽

層級 說明 建立方式 識別方式
視窗 macOS 視窗 ⌘⇧N —
工作區 側邊欄項目 ⌘N CMUX_WORKSPACE_ID
窗格 分割區域 ⌘D / ⌘⇧D 窗格 ID(socket API)
Surface 窗格內的分頁 ⌘T CMUX_SURFACE_ID
面板 終端機或瀏覽器 自動 面板 ID(內部)

怎麼用這個結構管理多個代理

一個常見的配置:

工作區 = 代理(或任務) 每個代理一個工作區,名稱叫它在做什麼——claude-feature、claude-test、monitoring。

窗格 = 同一任務內的不同觀察角度 同一個 feature 工作區裡,左邊是代理輸出,右邊是瀏覽器預覽,都屬於這個任務。

Surface = 備用空間 一個窗格裡預留一個 shell Surface,隨時可以跳過去手動執行東西,不干擾主要代理的輸出。

這樣設計下來,你的螢幕不會亂——每一格都有它的角色,你也知道要看哪裡。


三層結構搞定,下一篇來調設定——字型、顏色、捲動這些讓你用得舒服的細節:CMUX 設定檔完整指南。