為什麼不是 Cursor / VS Code

Cursor 或 VS Code 裡的 agent 是 GUI 程式的一部分,所以需要螢幕、一個已登入的桌面,和一個坐在前面的人。CLI agent 的介面是一條字元流,tmux 可以把整條流存下來,再畫到任何一塊螢幕上。這不是比較喜歡哪一個的問題,是架構上的差別。

你已經有 Cursor,或是 VS Code 加一個 agent 外掛,用得很順。為了同一件事去學 SSH 和 tmux,只有一種情況划算:你人不在那台電腦前面。

差別在架構,不在偏好

GUI IDE 裡的 agent 是那個 GUI 程式的一部分。它活在應用程式的 process 裡,狀態存在那個視窗的記憶體裡,輸出畫在那塊畫布上。所以它需要一塊螢幕、一個已登入的桌面 session、一個坐在前面的人。關掉視窗,agent 就跟著結束。這不是誰的失誤:agent 本來就在那個 process 裡面。

CLI agent 的介面是一條位元組流:讀進來字元,吐出去字元,中間沒有圖形的東西。這種流可以被接上、拔掉、再接回去。

tmux 做得到這件事,是因為一個 80×24 的字元矩陣可以完整存下來,再畫到任何一塊螢幕上:你的筆電、你的手機、你朋友的 iPad。換一台裝置不會少掉任何東西,因為那些內容本來就只是字元。

CLI agent 能在遠端跑,理由只有這一個:一塊像素畫布沒法序列化之後再接回來,一個字元矩陣可以。這話說的是能力,不是用文字介面的人比較厲害。

合上筆電之後會發生什麼事?

假設你下班前丟了一個大重構給 agent,估計要跑二十分鐘以上,而你現在要走了。

Cursor 開著 tmux + Claude Code
合上筆電 agent 停 agent 繼續跑
兩小時後 打開,脈絡斷了,重跑 手機打開,看到它做完了

右邊那一欄跟 agent 有多聰明沒關係。那個 session 從頭到尾就不住在你的筆電上。它住在那台一直沒關的機器上,你的筆電只是接上去用了一陣子。合上蓋子,斷掉的是連線,不是工作。

Cursor 現在也有雲端背景 agent,闔上筆電一樣繼續跑。但繼續跑的是 Cursor 自己遠端沙箱裡的那份副本,不是你機器上這一份。它跟本站另一篇講過的網頁版 agent、Codespaces 是同一類東西,左欄寫的是你機器上那一個。

「那用遠端桌面(VNC)不就好了?」

這是最常見的反駁,理論上完全講得通:桌面留在那台機器上,你用 VNC 連回去,Cursor 一樣開著,看起來就解決了。

實務上兩者傳的東西根本不同。VNC 傳像素,SSH 傳字元。一整塊螢幕更新是幾百 KB 到幾 MB 的影像資料,同一塊畫面用字元表示只有幾 KB 的文字,大約差了一千倍。

這是你天天會踩到的差距。在捷運上、在電梯裡、在訊號只剩一格的地方,VNC 變成卡卡的幻燈片,滑一次要等三秒才畫出來。同樣的網路,SSH 的字元照樣即時送到。

就算頻寬完全夠用,那個桌面 UI 本來是給滑鼠和 1440p 螢幕設計的,現在被塞進六吋的觸控螢幕。點一個選單要先放大、再對準、再點。連線再快,那個介面也不會變得好用:它從來不是為觸控設計的。

坐在桌前,IDE 常常更好用

IDE 不是錯的工具。坐在桌前寫 code,IDE 常常更好用:跳轉定義、重構、除錯器,這些在手機上都做不到。IDE 適合「你在場、你主導」,CLI agent 加遠端適合「它在跑、你抽查」。用得好的人兩個都留著:白天在 Mac 上用 IDE,離開座位用 Agentmux 接回同一個專案的同一個 agent。

Agentmux 不是要取代你的 IDE,它取代的是坐在椅子上等。然後你把手機放進口袋,走進沒有訊號的樓梯間,連線斷了。那個 session 接下來會怎樣,要看你怎麼接回去。