dsh-mobile-mirror:在局域网内用手机镜像 DSH 会话

前言

DeepSeek Harness(DSH)主要用于本地智能体开发。在开发过程中,常需要在手机上回答 DSH 的提问,或者查看实时的会话输出。直接通过 SSH 或浏览器转发不够直观,且容易丢失上下文。

dsh-mobile-mirror 是一个 DSH 插件,它在局域网内起一个独立的 HTTPS 服务,让手机浏览器或原生 App 能够镜像 DSH 的会话。桌面端的行为完全不变,不会因为插件的存在而改变布局或注入 UI。

插件简介

  • 名称:dsh-mobile-mirror
  • 维护者:ImHaoYuan
  • 分类:联网工具
  • 许可证:MIT

该插件通过独立的端口(19388)提供服务,支持查看会话列表、实时逐字输出、发消息、停止当前轮、新建会话、切换模型与模式,以及直接在手机上回答 DSH 的提问。

环境要求

在开始之前,请确认环境满足以下条件:

  1. DSH(桌面端):仅支持 Windows 桌面端 0.2.0-rc.2。其他版本理论上能装,但未验证。
  2. 手机:与电脑在同一局域网连接。
  3. Node.js:宿主环境需要 Node.js >= 20。
  4. HyperOS:通知与超级岛功能仅在 小米 HyperOS 3 上实测通过。

安装与启用

安装该插件需要先克隆仓库,然后通过 DSH 的插件管理器或手动 Link 的方式引入。

  1. 克隆仓库
   git clone https://github.com/ImHaoYuan/dsh-mobile-mirror.git
  1. 通过插件管理器安装
    插件管理器会自动处理依赖链接并热应用配置。
   plugin_manager install_bundle  target = link:<你克隆到的绝对路径>

(请将 <你克隆到的绝对路径> 替换为实际的绝对路径,例如 link:D:/plugins/dsh-mobile-mirror)

  1. 确认安装成功
    安装完成后,启动 DSH 的设置面板,应能看到「手机镜像」这一页。桌面端日志中应出现 listening on 0.0.0.0:19388。

首次配置:账号密码

插件默认处于“拒绝登录”状态。首次使用需要在电脑端进行初始化。

  1. 打开 https://127.0.0.1:19388/setup。
  2. 输入账号和密码(至少 6 位),点击保存。
  3. 浏览器会提示自签证书不安全,点击“继续访问”即可。

你也可以直接编辑配置文件 $DSH_HOME/mobile-mirror.json 填入明文密码,插件启动时会自动转换为哈希值。

手机访问

配置完成后,在手机浏览器中访问:

https://<电脑局域网IP>:19388/

首次访问会因自签证书报错,这是正常现象:
- iOS Safari:点击「详细信息」→「访问此网站」。
- Android Chrome:点击「高级」→「继续前往」。

若想消除警告,可在电脑端 /setup 页面下载 cert.pem 并安装到手机的系统证书列表中。

两种客户端方案

该插件提供了三种访问方式,但核心数据源相同:

方式 说明 包名 特点
网页端 手机浏览器直接访问 — 零安装,功能完整,支持 Markdown
WebView APK 将网页封装进 App dsh.mirror 包含通知、超级岛支持,体积小 (78 KB)
原生客户端 使用 Kotlin + Compose 重写 dsh.mirror.client 体积较大 (23.8 MB),原生手感,支持三档字体

建议:同一时刻只安装其中一支。原生客户端是 WebView 的超集,推荐使用原生客户端。

核心功能

插件支持以下操作:

  • 会话管理:查看会话列表(支持按工作区分组折叠)、新建会话、长按归档空白会话。
  • 实时交互:支持 SSE 逐字输出(切后台自动补齐)、停止当前轮(二次确认)、发消息(幂等且节流)。
  • 模型控制:切换会话的模型(含推理档位)与模式(标准/PTC/极简/创造等)。
  • 回答提问:手机与桌面谁先答谁生效。在限时提问模式下,手机端会接管等待,不会因切后台而掉线。
  • 内容显示:支持 Markdown 渲染、长内容不截断(正文上限 100000 字符)、文件下载。
  • 原生独有:原生客户端提供「已发消息」清单、输入框多行扩容、三档字体设置(界面/正文/等宽)。

安全与端口设计

DSH 自带的 Web 服务仅监听 127.0.0.1。如果直接将 DSH 的端口改为 0.0.0.0,相当于将整个桌面 GUI 和 API 暴露到局域网。

dsh-mobile-mirror 的设计思路是:
1. 起一个独立的 HTTPS 服务,默认端口 19388。
2. 自行签发自签证书,不依赖第三方包。
3. 只提供手机镜像所需的只读接口和消息发送接口,不暴露 DSH 的原有 Web Server。

注意事项

  • 版本兼容性:本文档基于 DSH Windows 0.2.0-rc.2 和 小米 HyperOS 3 测试。其他 DSH 版本、其他 Android ROM 或机型均未验证。
  • 证书信任:由于使用自签证书,iOS 上需要额外进入「证书信任设置」开启完全信任;Android 上需安装 CA 证书。
  • 字体文件:原生客户端的 23.8 MB 体积中,约 20 MB 为内置字体文件(得意黑、思源黑体、JetBrains Mono)。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye