🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

手机遥控台 Imzl-zl/deepseek-harness-mobile

DeepSeek Harness
Imzl-zl0 天前有提交已提供中文文档扫描:含敏感能力

在手机上远程操作电脑端会话、审批与插件

31.5/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/11/4 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Imzl-zl/deepseek-harness-mobile
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · tool
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 0 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件写入剪贴板(不计风险)
查看扫描证据(共 33 处,展示前 25 条)
  • 读取本地文件
    connector/src/index.ts:183
    const parsed = JSON.parse(readFileSync(url, 'utf8')) as { version?: unknown }
  • 写入剪贴板
    mock/proto/app.js:3783
    navigator.clipboard && navigator.clipboard.writeText(text);
  • 写入剪贴板
    mock/proto/app.js:4210
    navigator.clipboard && navigator.clipboard.writeText(curFile);
  • 写入剪贴板
    mock/proto/app.js:4373
    navigator.clipboard && navigator.clipboard.writeText(t.dataset.copy || "");
  • 读取本地文件
    protocol/verify-fixtures.mjs:351
    const files = readdirSync(FIXTURES_DIR).filter((f) => f.endsWith('.json')).sort()
  • 读取本地文件
    protocol/verify-fixtures.mjs:355
    const fx = JSON.parse(readFileSync(join(FIXTURES_DIR, file), 'utf8'))
  • 读取本地文件
    protocol/verify-vectors.mjs:32
    const hs = JSON.parse(readFileSync(join(VECTORS, 'handshake.json'), 'utf8'))
  • 读取本地文件
    protocol/verify-vectors.mjs:61
    const aead = JSON.parse(readFileSync(join(VECTORS, 'aead.json'), 'utf8'))
  • 读取本地文件
    relay/src/issue-token.ts:102
    const raw = await readFile(configPath, 'utf8')
  • 写入本地文件
    relay/src/issue-token.ts:116
    if (found) await writeFile(configPath, `${JSON.stringify({ ...config, tokens }, null, 2)}\n`, 'utf8')
  • 读取本地文件
    relay/src/issue-token.ts:131
    const raw = await readFile(configPath, 'utf8')
  • 写入本地文件
    relay/src/issue-token.ts:145
    if (changed) await writeFile(configPath, `${JSON.stringify({ ...config, tokens }, null, 2)}\n`, 'utf8')
  • 读取本地文件
    relay/src/issue-token.ts:158
    const raw = await readFile(configPath, 'utf8')
  • 写入本地文件
    relay/src/issue-token.ts:170
    if (changed) await writeFile(configPath, `${JSON.stringify({ ...config, tokens }, null, 2)}\n`, 'utf8')
  • 读取本地文件
    relay/src/issue-token.ts:183
    const raw = await readFile(configPath, 'utf8')
  • 写入本地文件
    relay/src/issue-token.ts:189
    await writeFile(configPath, `${JSON.stringify({ ...config, tokens }, null, 2)}\n`, 'utf8')
  • 读取本地文件
    relay/src/issue-token.ts:209
    const raw = await readFile(configPath, 'utf8')
  • 写入本地文件
    relay/src/issue-token.ts:219
    await writeFile(configPath, `${JSON.stringify({ ...config, tokens }, null, 2)}\n`, 'utf8')
  • 读取本地文件
    relay/src/issue-token.ts:233
    const raw = await readFile(configPath, 'utf8')
  • 写入本地文件
    relay/src/issue-token.ts:242
    if (restored) await writeFile(configPath, `${JSON.stringify({ ...config, tokens }, null, 2)}\n`, 'utf8')
  • 读取本地文件
    relay/src/main.ts:120
    const raw = await readFile(configPath, 'utf8')
  • 读取本地文件
    relay/src/metering-state.ts:49
    raw = await readFile(path, 'utf8')
  • 写入本地文件
    relay/src/metering-state.ts:61
    await rename(path, `${path}.corrupt`)
  • 写入本地文件
    relay/src/metering-state.ts:89
    await writeFile(tmp, `${JSON.stringify(state)}\n`, 'utf8')
  • 写入本地文件
    relay/src/metering-state.ts:90
    await rename(tmp, options.path)
扫描于 2026/11/4(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

把 DeepSeek Harness 装进手机:手机端 App + 电脑侧 DSH 插件 + 公网中转(端到端加密)

README

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

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

手机端 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。

文档

- 协议:通道协议 · 配对 v2
- 端:连接器与中转 · 手机端通道客户端
- 操作:部署中转 · 发版

友链

License

MIT
预览分享卡片长什么样 ↓Imzl-zl/deepseek-harness-mobile
分享 · DeepSeek Harness Hub
Imzl-zl/deepseek-harness-mobile

在手机上远程操作电脑端会话、审批与插件

这是你的仓库?认领条目

回到顶部