‹ 指南

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