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

手机远程配对 ohlygod/dsh-jiuling-remote-android

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

DSH 远程目录安卓端:6 位配对码接入电脑端…

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · desktop
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 10 天前
档位由哪些信号合成

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

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

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 11 处,展示前 11 条)
  • 读取本地文件
    lib/index.js:102
    if (!existsSync(STATE_DIR)) mkdirSync(STATE_DIR, { recursive: true });
  • 写入本地文件
    lib/index.js:102
    if (!existsSync(STATE_DIR)) mkdirSync(STATE_DIR, { recursive: true });
  • 写入本地文件
    lib/index.js:103
    writeFileSync(DEBUG_LOG, `${new Date().toISOString()} ${line}\n`, { flag: 'a' });
  • 读取本地文件
    lib/index.js:139
    const parsed = JSON.parse(readFileSync(CONFIG_PATH, 'utf8'));
  • 写入本地文件
    lib/index.js:178
    mkdirSync(STATE_DIR, { recursive: true });
  • 写入本地文件
    lib/index.js:180
    writeFileSync(tmp, JSON.stringify(next, null, 2), { mode: 0o600 });
  • 写入本地文件
    lib/index.js:181
    renameSync(tmp, CONFIG_PATH);
  • 发起网络请求
    lib/client.js:53
    return fetch(API + action, options).then(
  • 读取本地文件
    selftest.mjs:91
    const raw = readFileSync(mod.CONFIG_PATH, 'utf8');
  • 写入本地文件
    selftest.mjs:99
    writeFileSync(
  • 删除本地文件递归
    selftest.mjs:113
    rmSync(home, { recursive: true, force: true });
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
展开完整介绍(83 字)↓

DSH 远程目录(安卓端):6 位配对码接入电脑端 dsh-jiuling-remote-desktop,凭据只留在引擎进程,提供 RPC / SSE 桥接与设置页。

README

由 DeepSeek 最新模型翻译生成
dsh-jiuling-remote-android DSH 远程目录的安卓端插件。配合电脑端的 dsh-jiuling-remote-desktop 使用:手机输一个 6 位配对码,就能经 Cloudflare 隧道连到那台电脑的 DSH —— 公网只传文本,不映射桌面。 这一版做了什么 | 能力 | 状态 | | 6 位配对码换凭据(claim → 落盘) | ✅ | | 凭据只存在引擎进程,页面永不回显令牌 | ✅ | | 本地 RPC 桥 /api/dsh-remote/android/rpc | ✅ | | 本地 SSE 桥 /api/dsh-remote/android/stream(含 fromSeq 增量重连) | ✅ | | 设置页「手机远程」:配对 / 测试 / 解绑 / 状态 | ✅ | | 在「选择文件夹」弹窗里加「电脑」页签 | ❌ 未实现(见下) | | 把电脑的对话事件镜像进手机本地会话 | ❌ 未实现(见下) | | 模型 / 预设按工作区隔离、流式逐字动画 | ❌ 未实现(见下) | 后三项依赖官方 directoryFlow slot 契约与 sessionController.prompt 拦截,必须在真机上反复调试才敢交付。本版刻意只做可离线验证的那一层:配对、凭据、桥接。
展开完整文档(README 剩余 1 节)
dsh-jiuling-remote-android

DSH 远程目录的安卓端插件。配合电脑端的 dsh-jiuling-remote-desktop 使用:手机输一个 6 位配对码,就能经 Cloudflare 隧道连到那台电脑的 DSH —— 公网只传文本,不映射桌面。

这一版做了什么

| 能力 | 状态 |
| 6 位配对码换凭据(claim → 落盘) | ✅ |
| 凭据只存在引擎进程,页面永不回显令牌 | ✅ |
| 本地 RPC 桥 /api/dsh-remote/android/rpc | ✅ |
| 本地 SSE 桥 /api/dsh-remote/android/stream(含 fromSeq 增量重连) | ✅ |
| 设置页「手机远程」:配对 / 测试 / 解绑 / 状态 | ✅ |
| 在「选择文件夹」弹窗里加「电脑」页签 | ❌ 未实现(见下) |
| 把电脑的对话事件镜像进手机本地会话 | ❌ 未实现(见下) |
| 模型 / 预设按工作区隔离、流式逐字动画 | ❌ 未实现(见下) |

后三项依赖官方 directoryFlow slot 契约与 sessionController.prompt 拦截,必须在真机上反复调试才敢交付。本版刻意只做可离线验证的那一层:配对、凭据、桥接。

安装

在手机的 DSH profile 里
pnpm add -w dsh-jiuling-remote-android

插件是 bundle 型(cordis.patch.yml 会 insert 一行到 loader 树),装完重启 DSH 生效。

使用

1. 电脑上:设置 → 手机远程 → 填激活码绑定 → 生成配对码(屏幕显示 6 位码)。
2. 手机上:设置 → 手机远程 → 输入那 6 位码 → 连接。
3. 点「测试连接」应显示已连上电脑的 platform。

配对码是一次性的,10 分钟过期;换电脑重新配对即可。

桥接接口

全部挂在 DSH 自己的 Web 端口上(同源),且只接受 loopback Host:

| 方法 | 路径 | 用途 |
| GET | /api/dsh-remote/android/status | 配对状态(不含令牌) |
| POST | /api/dsh-remote/android/pair | {pairCode} → claim 并落盘 |
| POST | /api/dsh-remote/android/unpair | 只清本机凭据 |
| POST | /api/dsh-remote/android/ping | 打一次电脑的 ping |
| POST | /api/dsh-remote/android/rpc | {method, params} → 转发电脑的 /api/dsh-remote/rpc |
| GET | /api/dsh-remote/android/stream?session=…&fromSeq=… | SSE 原样透传 |

RPC 可用的方法以电脑端实现为准(ping / listSessions / createSession / prompt / cancel / listDirectory / fileList / fileRead / modelCatalog / presetList / answerAsk …)。

安全设计

- 令牌不入页面:落盘在 $DSH_HOME/dsh-remote-android/config.json(0600),响应体里只有 paired / endpoint。
- 令牌不走 URL query:只在 x-dsh-remote-token 头里,避免进隧道日志与 access log。
- 不跟随重定向:302 跨源会把令牌带到攻击者主机上,所以 3xx 一律当错误。
- 域名白名单:只往 *.jiulingssh.xyz 发凭据(config.json 的 zones 可改,自建部署不用改源码)。
- 拒绝 IP 字面量 / localhost / 明文 http:防 DNS rebinding 与裸奔。
- 桥只服务本机页面:Host 不是 loopback 直接 403(引擎的 webserver 在路由命中前不做鉴权)。
- 旧版公开令牌识别:见到已泄露的历史常量当「未配对」,不会拿它去连。

配置

$DSH_HOME/dsh-remote-android/config.json:

{
"endpoint": "https://<你的隧道>.jiulingssh.xyz", "token": "<配对后由服务器下发>",
"zones": ["jiulingssh.xyz"],
"pairEndpoint": "https://pair.jiulingssh.xyz"
}

也可用环境变量 DSH_REMOTE_ENDPOINT / DSH_REMOTE_PAIR_ENDPOINT 覆盖默认值。

已知限制

- 未在真机验证:本版只跑过离线自测(node selftest.mjs),域名白名单 / 配置读写 / 令牌识别这些纯逻辑。真机上「配对 → 桥接」链路的端到端验证需要电脑端同时在线。
- 手机端不跑 LLM,也不镜像电脑的对话;本版只把管道铺好,聊天镜像留给后续版本。
- 电脑端若在设置里「解绑」过,手机会一直显示已配对而实际 401 —— 请在手机上点「解绑」再重新配对。

开发

node --check lib/index.js # 语法
node selftest.mjs # 离线自测(8 项)

许可

MIT
预览分享卡片长什么样 ↓ohlygod/dsh-jiuling-remote-android
分享 · DeepSeek Harness Hub
ohlygod/dsh-jiuling-remote-android

DSH 远程目录安卓端:6 位配对码接入电脑端…

这是你的仓库?认领条目

回到顶部