Zum Hauptinhalt springen
I

deepseek-harness-mobile

imzl-zl/deepseek-harness-mobile

DSH-Plugin: Rechner-seitige Bridge für den Remote-Kanal des Smartphones.

Installation

dsh plugin --profile web add github:imzl-zl/deepseek-harness-mobile

README

DSH Mobile

DSH Mobile

把 DeepSeek Harness 装进手机:手机端 App + 电脑侧连接器 + 公网中转。

ci release npm npm downloads provenance license

手机端会话页 手机端设置页

手机端 v0.2.3:会话页(新会话)/ 设置页(当前连接 · 通用偏好 · 模型) —— 截图与仓库同版本,界面改了会一起换

在手机上用什么

  • 完整的会话:对话、轨迹、改动卡、文件预览,不是网页缩略版。
  • 审批与提问就地答:DSH 的 composer takeover 原样搬过来,不用切回电脑。
  • 子智能体与后台任务:谁在跑、跑了多久、产出什么,一屏看完。
  • 插件能管:清单、逐行启停、按包卸载("是不是内置、能不能卸"由电脑侧的宿主判定,手机只显示它的原话)。
  • 两种连法:同局域网/Tailscale 直连;出门在外走公网中转(端到端加密,中转只见密文与路由元数据)。 中转是选出来的:内置一条开箱即用,也可以切成自己的(换回来点一下,不用记域名)。
  • 一台手机记多台电脑,同一时刻只服务一台(独占 1:1),切换是显式动作。
  • 两端都能查更新:设置页「检查更新」(App;启动时静默查一次)与电脑侧面板的「版本」卡 (查 npm 上的最新插件版)。只告诉你有没有新版,不自动装。

组成

目录是什么安装方式
app/Flutter 手机端:连接层 + 会话界面Release 里的 APK
connector/DSH 插件:电脑侧网关npm:dsh plugin add dsh-mobile-connector
或 Release 的 dsh-mobile-connector-*.tgz
relay/公网中转(独立 Node 服务,无构建步骤)docker compose up -d
protocol/通道协议:握手、AEAD、流控、恢复被上面两者引用

电脑侧插件面板

电脑侧:「手机」面板——总览(中转 · 在线数 · 直连端口)、连接(中转可选内置/自定义、令牌只在电脑上)、 通道与地址(逐条启停/删除)、已配对设备(停用/接管/删除)、出配对码

快速开始

# 1. 电脑侧:装插件,在侧边栏「手机」面板选「内置中转」(或自定义)并填令牌
dsh plugin --profile <名字> add dsh-mobile-connector

# 2. 中转(只在需要公网时)
cd relay && docker compose up -d --build && docker compose logs -f relay

# 3. 手机:装 Release 里的 APK,扫电脑屏幕上的二维码

细节:连接器与中转 · 部署中转

安全模型

  • 手机只信任二维码里带出的电脑公钥,不接受网络下发的公钥。
  • 每连接新密钥(前向保密);配对秘密一次性,且不进中转。
  • 中转只存 sha256 摘要(连接器/设备/管理令牌),只记元数据。
  • 明文 ws:// 仅限私网或用户显式确认;公网请用反代终结 TLS。

开发与门禁

命令覆盖
node protocol/verify-{fixtures,loopback,vectors}.mjs通道协议 454 / 26 / 49 项
cd relay && pnpm typecheck && node --test中转,161 项
cd connector && pnpm exec tsc --noEmit && pnpm build && pnpm test插件,831 项
cd app && dart format --output=none --set-exit-if-changed lib test integration_test && dart analyze --fatal-infos lib test integration_test && flutter test手机端,1659 项

dart format 是先决条件不是风格偏好:超宽的单行 if (...) return ...; 会被它折成 两行无括号形式,而 curly_braces_in_flow_control_structures 在 --fatal-infos 下就是红。 所以顺序永远是 format → analyze → test(CI 里同样是这个顺序,先红就没后面了)。

CI(ci.yml)跑同一组命令;每次 push 归档一版 debug APK。 发版见 release:v* 出 APK + 插件 tgz,connector-v* 发 npm。

文档

友链

Linux.do

License

MIT

Ähnliche Plugins