‹ 指南

Term 重新實作的 mosh 伺服器程式,為 AI 程式助手而做 v26.7.0+

mosh 讓手機上的工作階段斷不了。termosh 是 Term 重新實作的 mosh 伺服器程式(mosh-server),裝在你的伺服器上代替它;在此之上,還讓 Claude Code、Codex 等程式助手的顯示和操作跟在電腦上一樣。

需要 Term v26.7.0 或更新版本。

Term Pro 功能,26.7.0 起提供。

撰寫於

為甚麼要重新實作 mosh 伺服器程式

要在手機上保住終端工作階段,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 普通 mosh 下,把 Term 由淺色切到深色之後的 Claude Code:提示欄還是白色,新增的幾行在淺綠色框裏,下面那行程式碼是近黑背景上的深藍字。
普通 mosh:工作階段在淺色模式下開始,之後把 Term 切到深色。Claude Code 還在用淺色主題,提示欄白得刺眼,改動下方那行程式碼是黑底深藍字,很難看清。
termosh 同樣的切換之後,termosh 下的同一個任務:提示欄是深色的,新增行是深綠底,程式碼顏色明亮易讀。
termosh:同一個任務、同樣的切換。Claude Code 自己察覺到變化,換成了深色主題:深色提示欄、深綠色的新增行,每一行都看得清。

程式助手啟動不用等

程式助手啟動時會問終端幾個問題:這是甚麼終端、背景是淺色還是深色、用哪種鍵盤模式、能不能一次畫完一整屏。有的等不到零點幾秒就放棄。普通 mosh 一個都不回答,助手只能乾等,然後關掉一些功能再啟動。termosh 每個問題都即場回答。

普通 mosh 普通 mosh 下啟動時的四個問題,每個都是「沒有回答,2 秒後放棄」。
普通 mosh:四個問題一個都沒回答。助手每個等兩秒,然後在一無所知的情況下繼續。
termosh termosh 下同樣的四個問題,每個都是「0 毫秒回答」。
termosh:每個問題即時回答,助手啟動後用得到的功能全部開啟。

更新乾淨

最後那個問題在助手回覆時最要緊:它每秒要重畫螢幕很多次。termosh 回答「能」,等每一屏畫完整了再整個送出,你不會看到畫了一半的畫面。

Shift+Enter 換行

在 Claude Code 的輸入框裏,Shift+Enter 是另起一行,而不是送出,和在電腦上一樣。

連結可以點

程式輸出連結時,termosh 會把它傳過來,點一下就可以打開。用普通 mosh,同樣的字只是普通文字。

termosh 下程式輸出的連結;點一下彈出「打開連結?」,顯示地址,並有「複製」和「打開」兩個按鈕。
termosh:點連結,Term 會問你是打開還是複製地址。用普通 mosh,同一行只是普通文字,點了沒反應。

各種底線都在

程式助手和編輯器的底線是有意思的:錯誤下面是紅色波浪線,提示下面是點線。普通 mosh 只認普通底線,其餘的全部丟掉。

普通 mosh 普通 mosh 下的五種底線:只有第一種有底線。
普通 mosh:只剩普通底線。波浪線、雙線、點線、虛線都沒了。
termosh termosh 下同樣的五種:普通、紅色波浪、雙線、藍色點線、虛線。
termosh:五種全部都在,顏色也對。

游標形狀聽程式的

編輯器和程式助手會用游標形狀告訴你現在是甚麼模式:在 vim 裏輸入時是幼直線,移動時是方塊。普通 mosh 不理這個要求,一直是方塊。termosh 會把它傳過來,切換分頁再回來,Term 也會保持。

普通 mosh 普通 mosh 下程式要求直線游標:游標仍是方塊。
普通 mosh:程式要的是直線,游標還是方塊。
termosh termosh 下同樣的要求:幼直線游標。
termosh:程式要的幼直線。

調整大小時長行自動重排

轉動手機,或者用雙指縮放改變字號,螢幕就會變窄或變闊。termosh 會把長行按新闊度重新排好。普通 mosh 在原來的邊緣直接截斷,截掉的部分就沒了。

普通 mosh 普通 mosh 下把字調大之後的一條長行:中間缺了好幾段。
普通 mosh,雙指放大字號之後:這一行被切成幾段,有些部分丟了。
termosh termosh 下同樣放大之後的同一行:完整無缺,按新闊度重新換行。
termosh,同樣的放大:整行都在,按新闊度重新換行。

在 tmux 裏複製,手機上可以貼上

在伺服器的 tmux 裏複製的文字會進到手機剪貼簿,哪裏都可以貼上。普通 mosh 會在半路丟掉 tmux 的複製,除非你在 tmux 設定裏加一個變通設定。同一段文字複製兩次也沒問題。

用 tmux? tmux 預設會把連結和花式底線攔下來,也不理會在它裏面執行的程式發起的複製。在 ~/.tmux.conf 裏加兩行就能放行,加完後斷開再重新接入一次:

~/.tmux.conf
set -as terminal-features ',xterm*:hyperlinks:usstyle'
set -g set-clipboard on

它仍然是 mosh

mosh 做得到的,termosh 都做得到:換網絡、鎖屏、訊號差,工作階段都不斷;網速慢時打字照樣即時顯示。還在用普通 mosh-server 的主機,一切照舊。

Term Pro 功能

termosh 屬於 Term Pro。還在用普通 mosh-server 的主機,Term 的 mosh 照常可用。

它管的是助手,不是網速

termosh 不會讓慢網絡比 mosh 更快。它改變的是:助手的畫面能多忠實地到達你的手機。

參考:mosh 選項 · mosh.org