程式碼代理適用的 tmux:讓它們持續運作的最低限度
如果你直接從 SSH shell 啟動代理,它的壽命就和那條連線一樣長。有了 tmux,不管你有沒有連線,代理都在伺服器上執行,你隨時可以從筆電或手機重新接上。你不需要深入了解 tmux:大約十幾個指令就夠了。
這是手機上的 Mosh 與 SSH的姊妹篇,也屬於指南如何用手機操作 Claude Code的一部分。
撐得住的工作階段
你最常用的指令:
tmux new-session -A -s agents
-A 旗標的意思是:如果有同名的工作階段,就接上它;否則就建立。所以你永遠可以執行同一行指令。進去之後,像在任何 shell 裡一樣啟動你的代理:
cd ~/code/my-app
claude
要離開又不殺掉任何東西,先按 Ctrl-b,再按 d 來分離。代理會繼續執行。要回去:
tmux attach -t agents
要看有哪些工作階段:
tmux ls
就算你關掉終端機、Wi-Fi 斷了或 SSH 死了,都沒關係:工作階段會留在伺服器上。重點就在這裡。
視窗:一個代理一個視窗
一個工作階段有多個視窗,像分頁一樣。典型的情況是:視窗 2 裡跑著一個長時間的重構,視窗 3 在跑測試,而你在視窗 1 裡東翻西找。
在 tmux 裡,每個快捷鍵都以 Ctrl-b 開頭:
c建立新視窗。,重新命名目前的視窗。n和p前往下一個和上一個視窗。0–9依編號跳到某個視窗。w開啟清單讓你挑選。
你也可以從外部或腳本裡建立並命名視窗:
tmux new-window -n claude -c ~/code/my-app
tmux new-window -n codex -c ~/code/my-app
tmux rename-window -t agents:2 refactor
為每個視窗命名,比看起來重要得多。在手機上,你會在一個小清單裡讀到「claude」、「codex」或「tests」,而連續四個「bash」一點幫助都沒有。
窗格
如果你想在同一個視窗裡同時看兩樣東西,就把它分割:
Ctrl-b %把視窗分成左右兩欄。Ctrl-b "把視窗分成上下兩列。Ctrl-b o跳到下一個窗格。Ctrl-b x關閉目前的窗格(會先詢問)。
在手機螢幕上,一個任務一個視窗通常勝過窗格。在筆電上,就用窗格。
一份小小的 ~/.tmux.conf
有兩項設定會大幅改變體驗:滑鼠支援和更長的歷史。預設的歷史大約是 2,000 行,而代理很快就會把它用光。
set -g mouse on
set -g history-limit 50000
set -g allow-rename off
開了 mouse on,你可以用手指或滾輪捲動,並輕觸窗格來選取。allow-rename off 會阻止執行中的程式替你的視窗改名。用這個重新載入:
tmux source-file ~/.tmux.conf
不用滑鼠也能讀到已經捲出去的內容:按 Ctrl-b [ 進入複製模式,用方向鍵或 PgUp 往上移動;按 q 離開。這正是 Mosh 沒有、而 tmux 有的功能。
同時有多個代理:git worktree
兩個代理編輯同一個目錄,會互相踩到對方。乾淨的解法是每個代理一個 worktree:各自在自己的資料夾、自己的分支上工作,共用同一個儲存庫。
cd ~/code/my-app
git worktree add ../my-app-auth -b feature/auth
git worktree add ../my-app-reports -b feature/reports
git worktree list
然後為每個建立一個 tmux 視窗:
tmux new-window -n auth -c ~/code/my-app-auth
tmux new-window -n reports -c ~/code/my-app-reports
分支合併、你也用完之後:
git worktree remove ../my-app-auth
Wendo 怎麼使用它
Wendo 是為了追蹤程式碼代理而做的 iOS 與 Android SSH 用戶端,而 tmux 是它的核心。tmux 整合是 Wendo Pro 的功能。
- 連線時進入:選擇 tmux,也可以選填工作階段名稱。Wendo 會執行
tmux new-session -A -s wendo(或你設定的任何名稱),所以每次打開連線,你都會回到自己的工作階段。 - 機器 會顯示每台電腦的工作階段、視窗和窗格。輕觸一個,就直接在那裡開啟。
- 使用 tmux 時,工作區面板可以讓你切換視窗、重新命名、關閉窗格或視窗,以及建立工作階段。你也可以在新視窗中啟動代理(Claude Code、Codex、OpenCode 或 Gemini CLI),或是在新分支上建立 git worktree,並在它自己的視窗中開啟,這正是你剛才在上面手動做的事。
- 如果 Claude 跑在多工器裡,收件匣通知會帶你到確切的窗格。安裝 Hook 的方式見通知與核准。
終端機設定中包含套用全域 tmux 選項(標題、滑鼠和狀態列)。一切都在 tmux 文件裡;如果你的連線不穩,工作階段文件會說明 Mosh 和 ET。
替代方案:zellij 與 herdr
如果你偏好別的多工器,Wendo 也支援 zellij(zellij attach -c wendo)和 herdr(herdr 或 herdr --session <name>)。它們需要安裝在你的電腦上。概念相同:代理住在伺服器上,而你來來去去。