MAKI'S FIELD GUIDE · macOS · 2026.09.17

關掉視窗,
工作仍然接得回來。

先學會建立、暫離、接回。再用工作區、視窗和分割區,整理你的 Agent 與專案。

本機已確認:tmux 3.7c 已安裝。這份指南可離線開啟;複製按鈕只複製文字,不會執行指令。

保護範圍:在 tmux 裡啟動的程序,可以在外層 Terminal 斷開後繼續存在,前提是 tmux server 與電腦仍在運行。tmux 不會修復 Terminal 的 bug,也不是重開機還原或 Agent 對話記憶工具。
01 / START HERE

第一次,照這四步操作

在 Terminal 的一般 shell 提示符輸入指令。不要把 shell 指令貼進正在對話的 Agent 輸入框。下列範例使用你的 PopDaily Hub 作起始目錄。

1

建立一個叫 popdaily 的工作區

tmux new -s popdaily -c /Users/maki/Documents/popdaily-agent-hub

成功後會看到新的 shell,通常底部有狀態列與工作區名稱。-s 是名稱;-c 是起始目錄。若名稱已存在,改用下方的接回指令。

2

在裡面啟動你平常用的 Agent

例如,選一個輸入:

codex

或在另一個視窗用 claude。如果你原本需要其他參數,沿用平常的啟動方式。只有在 tmux 裡新啟動的程序,才屬於這個工作區。

3

暫離,讓工作留在背景

CtrlB全部放開,再按小寫 D

看到 [detached …] 並回到外層 shell,代表你離開畫面,沒有結束裡面的工作。這個動作叫 detach

4

接回剛才的畫面

tmux attach -t popdaily

-t 是要接回的目標工作區。這個動作叫 attach

今天只記兩件事:暫離用 Ctrl+BD;回來用 tmux attach -t popdaily。這裡的 Ctrl 是 Control,不是 Command。
02 / THE MENTAL MODEL

工作區、視窗、分割區是什麼?

Session工作區=一組工作

例如 popdaily、research。把相關視窗收在一起,可以整組接回。

Window視窗=一個分頁

例如 Codex、Claude、Shell。這是 tmux 內部視窗,不是 macOS 視窗。

Pane分割區=一塊終端

把同一個視窗左右或上下切開。每塊可各跑一個程式或 shell。

一個專案的示意配置

Session:popdaily
Window 0:Codex
Pane:Codex CLI
Window 1:Claude
Pane:Claude CLI
Window 2:Shell
Pane 左:一般指令
Pane 右:查看 log
名稱與用途是建議配置;視窗編號可依個人設定不同。

外面的 Terminal 是用來觀看與操作這些工作區的 client。tmux server 在背景維持工作區與程序;外層視窗不見,不等於工作區被結束。

Terminal 視窗
觀看與輸入
tmux server
保存運行中的工作
Session → Window → Pane
Agent、shell、其他程式
工作區不是資料隔離。兩個 Agent 即使在不同 session 或 window,仍可能修改同一份檔案。tmux 不建立 Git branch、worktree 或容器。依專案既有規則分配獨立 worktree;Hub 目錄也不是網站程式碼目錄。
03 / DAILY ROUTINE

每天怎麼用?

你的三條主線

PopDaily、91APP、軒郁:各一個 session

第一次建立三個工作區;之後每天接回,不必每天重建。只要同一台 Mac 上的 tmux server 與 session 還在,昨天的視窗與程序就能接續;重開機後則需重新建立,Agent 的對話另走自己的恢復流程。

PopDaily

popdaily

Codex 視窗
Claude 視窗
Shell/log 視窗

91APP

91app

Codex 視窗
Claude 視窗
Shell/log 視窗

軒郁

shiny

Codex 視窗
Claude 視窗
Shell/log 視窗

shiny 是本指南建議的短名稱,可自行換名。三個視窗是建議配置,不是每個工作區都必須開滿。

A. 第一次:逐個建立,逐個暫離

tmux 外層的 Terminal shell 執行第一行。進入後按 Ctrl+B → D 回到外層,再執行下一行;不要把三行一次貼進正在跑的 Agent。

tmux new -A -s popdaily

→ 已進入 PopDaily。按 Ctrl+BD 暫離後,再建立下一個:

tmux new -A -s 91app

→ 已進入 91APP。再按 Ctrl+BD,繼續:

tmux new -A -s shiny

→ 已進入軒郁。再暫離一次,在外層查看:

tmux ls

驗收:清單中有 popdaily91appshiny 三個名稱。-A 代表「有就接回、沒有才建立」,所以重複操作也不會另外建立同名工作區。

B. 每個工作區:配置自己的 Agent 視窗

  1. 先接回主線,例如在外層輸入 tmux attach -t popdaily
  2. 在 shell 切到該主線的實際目錄,執行 pwd 確認。下面只提供已確認的 PopDaily Hub 路徑;91APP 與軒郁請使用各自的實際專案/worktree,不猜目錄。
  3. Ctrl+B → ,,將目前視窗命名為 Codex,Enter 確認,再用平常的指令啟動 Codex。
  4. Ctrl+B → C 新增視窗,再 Ctrl+B → , 命名為 Claude。確認所在目錄與分配的 worktree,再啟動 Claude。
  5. 需要時再新增名為 Shell 的視窗,留給一般指令或 log。其他兩個 session 也可用同一套方式配置。
cd /Users/maki/Documents/popdaily-agent-hub
pwd

這是顧問 Hub 目錄範例;若要修改網站程式碼,須依專案規則切到對應 code repo/worktree。

C. 每天上工:接回今天先做的主線

在外層 shell 選一行執行即可,不需要把三個都重新打開:

tmux attach -t popdaily
tmux attach -t 91app
tmux attach -t shiny

先看畫面中的 Agent 是否還在、目前目錄是否正確,再繼續交代工作。attach 不會替你重啟 Agent,也不會自動還原已結束的對話。

D. 白天切主線、切 Agent

你要做的事操作
PopDaily → 91APP → 軒郁Ctrl+B → S,用方向鍵選工作區、Enter 接回
同一主線的 Codex → Claude → ShellCtrl+B → W,用方向鍵選視窗、Enter 切換
暫時離席,三條主線留著在目前畫面 Ctrl+B → D;其他 session 不需要逐一關閉
Terminal 掛掉後重新開 Terminal → tmux ls → attach 到目標主線
切換主線不會暫停其他 Agent。背景工作可能繼續執行、使用資源或等待輸入;離席前仍要確認任務狀態與授權邊界。三個 session 不會自動隔離公司與個人資料,也不替你建立 Git 分支、worktree 或選對雲端帳號。

開始工作:沒有就建立,有就接回

在 tmux 外面的 shell 執行:

tmux new-session -A -s popdaily -c /Users/maki/Documents/popdaily-agent-hub

-A 讓已有的 session 直接接回。接回時不會把各 pane 的現有目錄重設;先用 pwd 確认所在位置。

同時使用兩個 Agent

  1. 在第一個視窗啟動 Codex。
  2. Ctrl+B,,輸入 Codex,按 Enter 命名。
  3. Ctrl+BC 建立新視窗,再用 Ctrl+B, 命名為 Claude。
  4. 在新視窗先 pwd,需要時 cd 到已分配的專案/worktree,再啟動 Claude。
  5. Ctrl+BW,用方向鍵選視窗、Enter 切換。

上述 C、D、W、S、Z 均指小寫字母鍵,不要加 Shift;% 與雙引號則需輸入該符號。

切到另一個專案工作區

先 detach 回外層,再建立自己的研究工作區:

tmux new -s research -c /Users/maki/Documents

之後在 tmux 內按 Ctrl+BS,可挑選工作區。每個工作區能保有自己的視窗組合。

離席與收工:分清楚兩件事

你想做什麼怎麼做結果
晚點回來繼續Ctrl+B → D程序保留;不等於存檔或寫入 Agent 記憶。
確定結束工作先依 Agent 的流程存檔/交接,正常退出 Agent,再於 shell 輸入 exit關閉該 shell pane。最後一個視窗結束後,session 通常也會結束。
準備重開 Mac先完成檔案儲存、工作交接與必要 checkpoint單靠 detach 不能跨重開機保留運行中的程序。
04 / RECOVERY

Terminal 又掛了,這樣接回

  1. 重新開啟 Terminal。
  2. 列出仍存在的工作區:
tmux ls

若看到 popdaily: … windows,接回它:

tmux attach -t popdaily

看到 (attached) 代表有 client 連著,不代表壞掉。一般 attach 可共同觀看同一個 session;不同 client 也可能共同操作同一 pane。

舊 client 還在,我只想從這個視窗接手

以下指令會先讓其他連到此工作區的 client 離開,再讓你接上;不會結束工作區內的程序。有人共用時先對齊。

tmux attach -d -t popdaily
出現 no server running / no sessions / can't find session

目前連到的 tmux server 沒有該工作區。先確認名稱、使用者與電腦是否相同,是否用過不同 socket(-L-S)。若 Mac 已重開、server 已退出,或程序原本不在 tmux 裡,這個 attach 指令不能把它復活。

接回畫面後,先看 Agent 是仍在執行、等待回答,還是已退出。畫面接回成功,不等於上一個任務已成功。
05 / CHEAT SHEET

快捷鍵速查

每天先熟這五個:
Ctrl+B → D 暫離;Ctrl+B → S 切主線;Ctrl+B → W 切視窗;Ctrl+B → C 開視窗;Ctrl+B → , 改視窗名稱。
需要時再學:%/雙引號分割、方向鍵換 pane、Z 放大、[ 回捲。

每一列都是先按 Ctrl+B,放開,再按後面的鍵。這是預設鍵位;本機設定若另外改過,以實際設定為準。

後面的鍵功能何時用
D暫離 session離席,保留工作。
S挑選 session切換專案工作區。
C新增 window再開一個 Agent 或 shell。
,命名目前 window標成 Codex、Claude、Shell。
W挑選 window忘記視窗編號時。
N / P下一個/上一個 window快速切換。
09切到指定編號 window編號看底部狀態列。
%左右分割並排看兩塊終端。
"上下分割上面操作、下面看 log。
方向鍵切到鄰近 pane確認游標在哪裡再輸入。
Z放大目前 pane/恢復暫時專心看一塊。
[進入回捲/複製模式查看前面的輸出。
]貼上 tmux buffer與 macOS 剪貼簿不同。
?顯示實際鍵位鍵位不如預期時;按 q 離開。
WORKING HABITS

用得順,也不容易操作錯

  1. Session 名稱長期固定。用 popdaily、91app、shiny 對應主線,不必每天加日期開一批。臨時實驗才另開清楚命名的工作區。
  2. 每個視窗有明確用途。用 Codex、Claude、Shell 等名稱;需要固定名稱時,可在該視窗的 shell 執行 tmux set-option -w automatic-rename off,再以 Ctrl+B → , 命名。這只關閉自動依程序改名,不保證其他應用發出的命名序列也被禁止。
  3. 先看主線,再看游標,最後才貼指令。確認 session 名稱、視窗名稱與目前 pane;shell 用 pwd 確認目錄。不要把部署指令貼進另一個專案或 Agent 對話框。
  4. 一個 pane 一個主要工作。Agent 佔著輸入框時,開 Shell 視窗跑一般指令;不用每次中斷 Agent 才能查看檔案。
  5. 先用視窗,必要時才分割。兩個 Agent 可分不同 window;只有要同時對照 log 才切 pane。畫面太小時 Ctrl+B → Z 暫時放大,再按一次還原。
  6. 暫離用 detach,別用 Ctrl+C 或 exit。Ctrl+C 通常會向前景程序送出中斷訊號,實際由程式處理;shell 的 exit 會退出該 shell。它們都不是「把工作放到背景」。
  7. 不要在 tmux 裡反覆啟動另一層 tmux。用 Ctrl+B → S 切工作區;要照本指南建立新 session,先 Ctrl+B → D 回到外層。
  8. 離席前做簡短 checkpoint。確認 Agent 是否仍執行、是否等你回覆;重要結果存檔,記下下一步。detach 保留程序,不能代替專案交接或對話儲存。
  9. 定期整理閒置工作。用 Ctrl+B → S/W 檢視工作區與視窗;確定任務結束並保存結果後,正常退出 Agent,再退出不需要的 shell。不要為了整理畫面批次結束所有 session。
  10. 遠端與本機分清楚。連遠端前後留意主機與目錄;本機 tmux 不等於遠端工作已受保護。不同主線的雲端帳號、資料與 Git 隔離仍照原規則。

每日 30 秒檢查

上工:列出 session → 接回主線 → 看工作目錄與 Agent 狀態。
切換:S 換主線,W 換視窗,確認游標再輸入。
離席:存關鍵結果 → 記下一步 → Ctrl+B、放開、D。
重開 Mac 前:完成正式 checkpoint;不要期待 tmux 自動復活所有工作。

以上是建議工作方式;快捷鍵以預設 prefix Ctrl+B 為準。tmux 不改變原有的操作授權、Git 或資料隔離規則。

06 / SCROLL & COPY

滑鼠捲動、選字、複製

本輪讀到你的 ~/.tmux.conf 已有 set -g mouse on,指南沒有修改它。現存 server 是否已載入這個值,要看執行中的設定。

先查,不必重設整份設定檔

在 tmux 裡的 shell 執行;若 Agent 佔著輸入框,先用 Ctrl+B → C 新增 shell 視窗:

tmux show-options -g mouse

若是 mouse off,想開啟目前 server 的滑鼠支援,可手動執行:

tmux set-option -g mouse on

這會影響目前 server 的工作區,但不改設定檔。要還原可用 tmux set-option -g mouse off

不靠滑鼠也能看舊輸出

Ctrl+B → [ 進入 copy mode,用方向鍵或 Page Up/Page Down 移動。Mac 可試 Fn+↑/↓。離開鍵依模式而異:emacs 用 Escape;vi 用 q。

查目前視窗採哪一種模式:

tmux show-options -w mode-keys
模式開始選取複製到 tmux buffer離開模式
emacsCtrl+SpaceAlt+WEscape
viSpaceEnterq

開始選取後用方向鍵延伸範圍。macOS 可能先攔截 Ctrl+Space;Option 是否送出 Alt 也依 Terminal 設定。遇到衝突可使用滑鼠,或在 shell 輸入 tmux set-option -w mode-keys vi,只調整目前視窗;改回用 emacs。

要貼到 Slack 或瀏覽器?

tmux buffer 與 Mac 剪貼簿不是同一件事。先完成上面的 tmux 複製,再於這台 Mac 的 shell執行:

tmux save-buffer - | pbcopy

然後到目標 App 按 Command+V。這會以最新的 tmux buffer 覆蓋 Mac 剪貼簿;若 tmux 跑在 Linux 遠端,不能直接套用此方法。

copy mode 只保留有限的回捲內容,也不保證完整保存全螢幕 Agent 曾顯示過的所有文字。重要結果仍要存成檔案或使用 Agent 自己的紀錄/交接流程。
07 / TRY IT SAFELY

兩分鐘演練:不用真的弄掛 Terminal

這段用獨立的 tmux-demo 工作區,不放真實任務。先 detach 離開原本的 session,再在外層 shell 做:

tmux new -s tmux-demo

進入後,記下 shell PID:

echo "我的 shell PID:$$"
  1. 記住顯示的數字。
  2. Ctrl+B → D 暫離。
  3. 在外層執行下方指令接回。
tmux attach -t tmux-demo

再跑一次 echo "我的 shell PID:$$";數字相同,代表接回同一個 shell。這驗證 detach/attach,沒有刻意觸發 App 當機。

演練完成,在 demo 的 shell 輸入 exit,正常結束這個練習工作區。不要在有真實工作正在跑的 pane 裡照做。

08 / TROUBLESHOOTING

常見問題

現在已經跑到一半的 Agent,可以直接搬進去嗎?

這份指南的流程不會搬移現有程序。先讓目前工作完成 checkpoint,下一次從 tmux 裡啟動 Agent。不要為了導入 tmux 直接中斷未保存的任務。

tmux 會幫我記住 Agent 的對話嗎?

它維持程序與終端狀態,不代替 Agent 的持久化對話、AMH、檔案或 Git。Agent 自己 crash 後是否能 resume,依該工具功能與已保存紀錄而定。

關蓋睡眠後,工作會繼續算嗎?

tmux 不負責讓 Mac 保持喚醒。請把「session 可接回」與「睡眠期間持續運算、網路不中斷」分開看;後兩者不能靠 tmux 保證。

按快捷鍵沒反應,或出現 sessions should be nested with care?

先切到英文輸入,確認用的是 Control+B,放開後再按下一鍵。若出現巢狀提示,先不要再建立內層 tmux;用 Ctrl+B → S 切 session,或 detach 後再操作。在 shell 執行 printenv TMUX 可查看環境提示,但單靠環境變數不能驗證 server 健康。

不同視窗會共用同一個 cd 目錄嗎?

每個 pane 的 shell 各有自己的目前目錄;在其中一個執行 cd 不會替其他 pane 切目錄。建立新視窗時的起點受命令及設定影響,先 pwd 確認最清楚。

本機 tmux 裡跑 SSH,遠端工作也受保護嗎?

本機 tmux 保留的是本機 SSH 程序;網路斷線仍可能讓遠端工作中止。要保留遠端程序,通常需在遠端主機內使用 tmux。這份指南不建立遠端連線;仍須遵守各主機的操作授權。

來源與版本

指令與預設鍵位以本機 tmux 3.7c 的 man tmux 核對;搭配 tmux 官方 Getting Started完整指令手冊。實際結果可能受既有設定影響。

  • 已安裝版本 ← tool:2026-09-17 執行 tmux -Vtmux 3.7c
  • 本機滑鼠設定 ← tool:唯讀檢查 ~/.tmux.conf 的 mouse 設定;未更動。
  • session/window/pane、attach/detach 與鍵位 ← tool:本機 /opt/homebrew/share/man/man1/tmux.1
  • 一專案一工作區、Agent 分視窗 ← 操作建議;不代表 Git 或檔案隔離。

本文件是操作指南。指南本身不會安裝軟體、套用設定、啟動 Agent 或遷移現有工作。

tmux 操作手冊 · doc.kerker.tw · 2026-09-17 · 可用瀏覽器列印/另存 PDF