mosh 讓手機上的工作階段斷不了。termosh 是 Term 重新實作的 mosh 伺服器程式(mosh-server),裝在你的伺服器上代替它;在此之上,還讓 Claude Code、Codex 等程式助手的顯示和操作跟在電腦上一樣。
需要 Term v26.7.0 或更新版本。
Term Pro 功能,26.7.0 起提供。
撰寫於
要在手機上保住終端工作階段,mosh 是最好的辦法:走出 Wi-Fi、鎖屏、坐港鐵,回來一看,工作階段還在。但 mosh 的伺服器程式(mosh-server)寫在程式助手出現之前很多年。用它跑 Claude Code 或 Codex,會出各種小毛病:顏色和螢幕對不上,助手啟動前要停一停,回覆更新時閃出半截畫面,按 Shift+Enter 本想換行卻直接送出了。
termosh 是 Term 重新實作的 mosh 伺服器程式(mosh-server),裝在你的伺服器上代替原來的 mosh-server。它和 mosh 講同一種語言,mosh 的長處一樣不少,而且從一開始就是為了讓程式助手顯示正確而做的。
程式助手會按你的螢幕揀顏色:淺色背景用深色字,深色背景用淺色字。它是問終端才知道你用哪一種。普通 mosh 的答案在連線那一刻就定死了,之後在工作階段裏把 Term 由淺色切到深色,助手還按原來的螢幕在畫。
用 termosh 時,你每切換一次,Term 都會告訴伺服器,助手即時按新的配色重畫。
程式助手啟動時會問終端幾個問題:這是甚麼終端、背景是淺色還是深色、用哪種鍵盤模式、能不能一次畫完一整屏。有的等不到零點幾秒就放棄。普通 mosh 一個都不回答,助手只能乾等,然後關掉一些功能再啟動。termosh 每個問題都即場回答。
最後那個問題在助手回覆時最要緊:它每秒要重畫螢幕很多次。termosh 回答「能」,等每一屏畫完整了再整個送出,你不會看到畫了一半的畫面。
在 Claude Code 的輸入框裏,Shift+Enter 是另起一行,而不是送出,和在電腦上一樣。
程式輸出連結時,termosh 會把它傳過來,點一下就可以打開。用普通 mosh,同樣的字只是普通文字。
程式助手和編輯器的底線是有意思的:錯誤下面是紅色波浪線,提示下面是點線。普通 mosh 只認普通底線,其餘的全部丟掉。
編輯器和程式助手會用游標形狀告訴你現在是甚麼模式:在 vim 裏輸入時是幼直線,移動時是方塊。普通 mosh 不理這個要求,一直是方塊。termosh 會把它傳過來,切換分頁再回來,Term 也會保持。
轉動手機,或者用雙指縮放改變字號,螢幕就會變窄或變闊。termosh 會把長行按新闊度重新排好。普通 mosh 在原來的邊緣直接截斷,截掉的部分就沒了。
在伺服器的 tmux 裏複製的文字會進到手機剪貼簿,哪裏都可以貼上。普通 mosh 會在半路丟掉 tmux 的複製,除非你在 tmux 設定裏加一個變通設定。同一段文字複製兩次也沒問題。
用 tmux? tmux 預設會把連結和花式底線攔下來,也不理會在它裏面執行的程式發起的複製。在 ~/.tmux.conf 裏加兩行就能放行,加完後斷開再重新接入一次:
set -as terminal-features ',xterm*:hyperlinks:usstyle' set -g set-clipboard on
mosh 做得到的,termosh 都做得到:換網絡、鎖屏、訊號差,工作階段都不斷;網速慢時打字照樣即時顯示。還在用普通 mosh-server 的主機,一切照舊。
termosh 屬於 Term Pro。還在用普通 mosh-server 的主機,Term 的 mosh 照常可用。
termosh 不會讓慢網絡比 mosh 更快。它改變的是:助手的畫面能多忠實地到達你的手機。