Skip to content

dsh-mini-remote

Verified

dsh-mini-remote · v0.1.5 · MIT · Web UI

DSH 极简移动端遥控器:只把「你的指令」和「AI 的最终回复」送到手机,屏蔽全部中间过程。

Install

dsh plugin add dsh-mini-remote

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Tags

Readme

极简遥控器 · dsh-mini-remote

npm DSH plugin License

English

极简遥控器:手机上只留你的指令和它的结论,中间过程留在电脑上

你发一句话,手机上只收到它的结论。

工具调用、文件读写、子 Agent 调度、思考过程的正文,全都不上手机。这个插件是给「出门在外,只想发指令、等结论」这件事做的——一部手机、一个输入框、最新的一条回答,就这些。

这是什么 ・ 什么时候会用到它 ・ 安装 ・ 连上手机 ・ 手机上能做什么 ・ 常见问题 ・ 安全 ・ 为什么做这个插件


这是什么

一个 DeepSeek Harness(DSH,一个用插件扩展的 AI agent 框架)插件。装上之后:

  • 手机上打开一个网页,上面只有一个输入框和最新的一条回答;
  • 你在手机上发的指令,直接交给电脑上正在跑的那个会话;
  • AI 干活的中间过程(工具调用、读写文件、子 Agent、思考正文)一律不推给手机;
  • 唯一会「说话」的是鲸鱼娘:模型在步骤之间自言自语的那一句,由她念出来,只进她的气泡。

界面长这样——深色和浅色两套,设置里随手换:

深色:一段对话,手机上只留你的指令和它的结论 浅色:同一段对话,色调跟宣传图那张画统一

它不是:电脑端界面的备用屏。电脑上有的审批弹窗、文件 diff、工具调用链,手机上都没有——它刻意做得很少。

别的手机端会把电脑上的执行过程原样搬过来,它反过来:只把你要的那两句送过去。这是它和它们最不一样的地方。

什么时候会用到它

  • 出门在外,任务还在跑。 你人在外面,电脑在桌上跑着一轮任务;你只想掏出手机看一眼「跑完没有」,顺便把下一句交代过去。
  • 陪孩子、吃饭、散步的时候。 手不想碰电脑,但脑子里冒出一个念头,想让它先干着。
  • 电脑在书房,人在客厅。 不值得专门走回去,也不想把电脑端那一整屏过程搬到手机上看。

安装

dsh plugin --profile web add dsh-mini-remote

装完必须重启一次 DSH(把 dsh web 那个窗口关掉重开),左栏才会多出「手机遥控」;重启后的启动日志里会打印手机访问地址和密码。

命令里的 web 是 DSH 的配置档名(profile)——就是 ~/.dsh/profiles/ 下面那个文件夹的名字,多数人的默认档就叫 web。不叫这个的话,把它换成你自己的。

从 GitHub 源码装、从本地目录装,以及它适配哪些 DSH 版本

也可以直接从 GitHub 装,这样锁的是源码:

dsh plugin --profile web add github:xingzhen199186/dsh-mini-remote

手上有源码目录的话,把目录指给它也一样:

dsh plugin --profile web add <你放源码的目录>

它适配哪些 DSH 版本。 这个插件在 DSH 0.1.5-rc.2 上开发,在 0.1.7-rc.2 上重新逐项核对过(插件用到的那些接口,一个都没变),低于 0.1.5 的版本没试过。rc 是官方给预览版编的号,DSH 目前整体还是开发者预览版,跨小版本可能有破坏性改动,所以比 0.1.7 更新的版本同样不保证。真遇上不兼容,症状一般是某一块入口不见了(比如顶栏那行模型),其余部分照常——插件是按「少了哪个服务就关掉哪块功能」写的,不会整个起不来。

设置也是这样处理的:设置清单按 DSH 的标准方式声明,而在 0.1.5 那一代的库还没有相应能力,插件照样装得上、功能照旧,只是少了下面提到的「改完立即生效」。0.1.7 这一代上这条能力是齐的。


连上手机:三条路,选一条

三条连接方式同时存在,选一条就行,也可以都开着。

这条路 什么时候用 要装什么 代价
内网 手机和电脑在同一个 Wi-Fi,只在家里用 什么都不用装 一出家门就断
Tailscale 出门也要连,地址还想固定 电脑和手机各装一个 Tailscale 两边都要装一个 App
公网隧道 什么都不想装,任何网络都要能连 什么都不用装 地址每次重启都换;第一次要下一个约 50 MB 的组件

打开 DSH 设置(侧边栏最下面)→ 左栏「手机遥控」。这一页上每条路都有一个二维码和一条链接,二维码底下那行小字写着什么时候用这条,看它就够了。

插件的设置(默认模式、外部推送、端口、口令这些)也有一份标准声明,写在 DSH 的标准配置里同样认得。两处都写了同一项时,以标准配置为准。另有一条区别:「默认模式」和「外部推送」改完立即生效、插件不重启;端口、绑定地址、隧道、口令、历史条数这几样改完会让你重连一次——它们本来就得重新监听或重建,插件如实声明,不假装能热改。

一、内网:只在家里用

手机和电脑连同一个 Wi-Fi 时,扫「内网」那个码就能用。不需要任何额外安装,最省事的一条。代价是出了门就连不上——手机一切到流量,这条就断了。

二、Tailscale:出门也能连,地址还固定

电脑和手机都装上 Tailscale、登录同一个账号,配对页上就会自动多出这一条。地址固定,配一次以后不用再管。代价是两边都要装一个 App——如果你不介意装,出门在外这条最稳。

配对页上有一个开关,打开它还能多拿一个加密地址(形如 https://你的电脑名.你的网络名.ts.net/)。它和上面那条是同一台电脑、同一条通道,区别只在连接加不加密;不是第四条路,那条明文的照旧能用、也照旧显示。

第一次开需要你在 Tailscale 的后台确认一次——那是整个网络级别的开关,插件代不了你点,所以配对页会把 Tailscale 给出的那条链接直接摆在你面前,点一下就过去。要是这台电脑还没登录 Tailscale,它会说清楚,并给你登录链接。

三、公网隧道:什么都不用装

配对页最底下有个开关,打开它,Cloudflare 会给你一个公网网址(形如 https://随机词.trycloudflare.com/)。手机在任何网络下都能连,不用装任何东西。

两个代价,先知道再决定:

  • 地址每次重启 DSH 都会换,换了得回来重新扫一次码。
  • 第一次打开会慢——它在下载一个五十兆左右的组件,只下这一次。这期间状态那行会显示「正在打开…」,那是正常的,不是卡死。注册偶尔会失败,插件会自动重试 3 次。

打开之后等半分钟再扫。Cloudflare 需要一点时间把这个地址公布出去,太早扫会提示打不开——那不是坏了,是还没到时候。

关于「加密地址」,一次说清楚

上面两条路都可能给你一个 https:// 地址,加密的是连接本身:地址栏上会出现 https 那把锁,路上传的东西是密的。这一点不挑路,两条给的都一样。

区别在域名由谁解析:Tailscale 那条用的是形如 你的电脑名.你的网络名.ts.net 的域名,它只在你的 Tailscale 网络内部解析得出,靠手机客户端上的 MagicDNS——而有些客户端没有这个能力:HarmonyOS 上那个第三方客户端 MeshArc,它自己的说明里就写着「请用 Tailscale IP 地址」,那类手机上这条加密路走不通,不是设置没开。隧道那条用的是 Cloudflare 的域名,谁都能解析,不挑手机,代价是地址每次重启都会换。


手机上能做什么

打开链接就是全部界面:一个输入框,和最新的一条回复。

发指令。 打字发出去,AI 就在电脑上开始干活。

等结论。 跑的时候上面显示「运行中…」。这期间你可以接着发,指令会排队。任务结束,结论直接出现在页面上,同时响一声、震一下。

她干活的时候会开口。 电脑上的模型在步骤之间常会自言自语一句(「我先看一下这个文件」这类),这一句现在由鲸鱼娘念出来——说话的动作是新画的一张立绘,轮播会为它停一下,说完接着从停下的地方往下走。它只在那只气泡里,不会混进下面的回答区。气泡里只念它特意写给人看的那一句;它自己心里想的那些(常是英文、也常成段)一个字都不上手机。万一那句旁白本身就是英文,就照原样显示、不翻译——翻译等于替它编一句它没说过的话。

两套外观,随手换。 设置里有一行「外观」:深色(默认)、浅色、跟随系统。深色是深海墨蓝打底;浅色那套的色是从宣传图那张画上取的——近白的冰蓝地、深宝蓝的字,主按钮也换成同一个宝蓝。选哪套记在手机上,下次打开还是它。

设置(深色):显示模式与外观 设置(浅色):选中态和主按钮都跟着换成宝蓝

任务执行中的那一屏。 她迈步跑着,进度条在走,队列里排着"跑完这轮就轮到它们"的几条。这一屏上没有工具调用、没有文件差异——只有"在跑"这件事本身。

执行中(深色,手机实拍):鲸鱼娘正在跑、已计时 15 秒 执行中(浅色,手机实拍):鲸鱼娘正在跑、已计时 7 分 43 秒、队列排着一条

两张都是手机实拍(浏览器自带的状态栏也在画面上,所以比渲染图略高一点)。

两种显示模式。 点右上角的 ⚙ 切换。「单帧」(默认)整屏只留最新一条回复,适合「我就想看这次的结果」;「聊天」是一来一回的气泡列表,适合连着追问好几轮。用一阵子你会知道自己偏哪个。

点开一个会话,能看到它之前聊过什么。 在左边切到一个早就存在的会话,聊天模式会把之前的每一轮都列出来(你发过的指令、每一轮的结论),单帧模式只显示最后一条结论。特别大的会话只给最近一段:那种几万个事件的会话,整份读下来会把电脑上的 DSH 拖垮,所以只读末尾那一小段,并在最上面写明「这不是全部,只显示了最近一段」——你看到的那句话不是客套话,是实情。

斜杠指令也能在手机上用。 在输入框里打一个 /,上面就会列出这个会话能用的指令,接着打字按名字过滤,点一下就执行;要参数的会帮你填好、并告诉你它要什么。名单是电脑上 DSH 自己的那份(装了什么插件就有什么),执行结果在聊天里单独占一行,和 AI 说的话区分得开。打错的、不存在的指令会被明确拒绝并说明原因,不会当成一句话发出去。会话没在跑的时候没有指令可列,页面会直说。指令这一版带不了附件:你贴着的文件会留着,跟下一条普通消息一起发。

在手机上答题。 AI 问你「选哪个」(比如让你挑一个方案)时,问题会推到手机上,点一下就算答了——一个一个答,答错了能回头改,选项里没有的也能自己打字。手机不在跟前(锁屏、关了页面、断了网)就自动把问题还给电脑,那边照常弹窗。

顺手能改的三样。 点顶栏那一行,换当前会话的模型和思考强度;切权限档位(仅可查看 / 工作区内修改 / 完全权限);浏览电脑上的目录,登记新的工作区和会话。

看的是结论,不是过程。 页面上没有工具调用链、没有文件 diff。唯一的例外是鲸鱼娘嘴里那一句自言自语——它只进气泡,不进回答区(见上面那一段)。系统层面的确认弹窗手机上点不了(比如危险命令的审批),那类还得回电脑处理——手机上能答的是 AI 主动提给你的选择题,这两件事不一样。它的定位是一根遥控器:电视还得在那儿开着,遥控器才有用。


常见问题

扫码之后打不开。 先看手机和电脑是不是同一个 Wi-Fi。

出门扫「公网」那条打不开。 等半分钟再试。还不行的话,配对页上会直接显示原因。最常见的一种是电脑上开着代理或 VPN——Clash 这类软件的「TUN 模式」会把隧道的连接掐断,进程看着好好的,其实一条连接都没建立起来,先把它关掉再试。还有一种:这条网络就是走不通 Cloudflare(国内时好时坏,不是你哪里配错了),那就别在公网上耗着,改用 Tailscale 那条。

显示「未连接」。 手机切后台再回来经常会这样,页面会自己重连,等几秒;还不行就进设置点「重连」。

回复到了,但没声音。 声音要你先碰过页面才会响,点一下就行。

手机上一直让我输密码。 说明你打开的链接里没带密码(比如自己手打的地址)。回电脑上重新扫一次二维码就好。

想换一个自己记得住的密码。 在「设置 → 手机遥控」的密码那一块直接改,至少 12 位。改完要重启一次 DSH,重启之后手机上要重新扫一次码。


安全

配对页上带着密码,别截图发出去。 密码直接编在二维码里,扫完不用手敲——方便是方便,代价是谁拿到这张图谁就能进。

除此之外:所有接口都要密码,密码比对用定长比较;同一来源一分钟错 5 次就挡一分钟;配对信息只允许本机读取,同一个 Wi-Fi 下的其他设备拿不到;公网隧道默认关着,要你自己在设置页里打开;手机看不到任何文件内容——挑工作区的时候只列文件夹名字,文件一个都不列、也不读。唯一的例外是图片:要让手机看到一张图(比如我截给你的界面图),那张图会被放进插件目录 lib/art/、名字以 out- 开头,页面按「带密码的图片通道」把它取出来——能被取到的只有这一类(是图片、且是这个前缀),正文、配置文件和别的东西仍然一个字都读不到,也不能列目录。但有一件事要说清楚:手机上能切换 Agent 的权限档位。 切到「完全权限」,Agent 就能改这台电脑上的任何文件。这条路径是开着的。


为什么做这个插件

初衷是因为现在 AGENT 任务执行一轮往往需要很久,而如果出门,则需要手机端来远程操作。

但现有的手机端,会把 PC 的执行步骤非常还原地展现出来。你发一条指令,它可能要想上几分钟、读几十个文件、调好几次工具,最后才给你一个结论。如果出门或有事不在电脑前,实在没时间盯着手机看那么细致。

我并不认为那种方式不好。信息完整、过程可控,如果你要认真处理任务,它是对的。

但出门在外的时候,就我个人而言,我需要的是另一种东西——更轻便、更少占用注意力的交互方式。手机屏幕就那么大,出门时的精力也就那么多。而大部分时候我真正需要的只有一件事:这一轮跑完了,该发下一条指令了。而且大部分时间,即使在电脑上,我也很少会去仔细阅读 AI 做执行过程中的"自言自语"。

所以这个插件的界面做得相当「原始」:它完全省略了电脑网页端的执行步骤,只把 AI 最后的结论送到你面前。

某种意义上,它的存在,是为了让你更少地去看它。

你可以更加自由地支配自己的时间,而不是当你和女儿玩耍时,抑或出游时,被困在那个小小的屏幕里。


致谢

这个插件在设计思路上参考过 dsh-pocket(作者 shaobeichen)——尤其是「每条连接路径各配一条链接、一个二维码、一个密码」这种配置形态。

许可

MIT