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

手机远程伴侣 lninghaha/dsh-coding-remote-kit

DeepSeek Harnessv0.7.1
lninghaha12 天前有提交已提供中文文档扫描:含敏感能力

DeepSeek Harness 移动端配对远程:双平面白名单 RPC 上的端到端加密伴侣

30.8/100
综合分
1
GitHub 星标
745
npm 周下载
—/5
用户评分

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-coding-remote-kit
npm 源 · dsh-coding-remote-kit 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已在 dsh 0.2.1-rc.2 下真实安装成功(非静态推断);本次验证针对插件 v0.7.2,当前版本为 v0.7.1
L5 · 运行时冒烟等级说明 →
数据截至 2026/10/28·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 12 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-coding-remote-kit @ 0.7.1
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/7 04:11:20

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 64 处,展示前 54 条)
  • 读取本地文件
    lib/server/index.js:362
    return existsSync(resolved) ? resolved : null;
  • 读取本地文件
    lib/server/index.js:369
    if (existsSync(candidate)) {
  • 读取本地文件
    lib/server/index.js:370
    accessSync(candidate, fsConstants.R_OK);
  • 写入本地文件
    lib/server/index.js:428
    writeFileSync(archivePath, archiveBytes);
  • 写入本地文件
    lib/server/index.js:429
    mkdirSync(extractDir, { recursive: true });
  • 执行外部命令固定命令
    lib/server/index.js:431
    const result = spawnSync("tar", ["-xzf", archive, "-C", dest], { encoding: "utf8" });
  • 读取本地文件
    lib/server/index.js:438
    if (!existsSync(binaryPath)) {
  • 读取本地文件
    lib/server/index.js:441
    return readFileSync(binaryPath);
  • 删除本地文件递归
    lib/server/index.js:443
    rmSync(work, { recursive: true, force: true });
  • 写入本地文件
    lib/server/index.js:475
    await mkdir(destDir, { recursive: true });
  • 写入本地文件
    lib/server/index.js:478
    await writeFile(tmp, binaryBytes);
  • 写入本地文件
    lib/server/index.js:480
    await chmod(tmp, 493);
  • 写入本地文件
    lib/server/index.js:482
    await rename(tmp, dest);
  • 发起网络请求
    lib/server/index.js:660
    const request = input.request(rpcId);
  • 读取本地文件
    lib/server/index.js:3267
    if (!existsSync2(filePath)) {
  • 删除本地文件
    lib/server/index.js:3448
    unlinkSync(temp);
  • 发起网络请求
    lib/server/index.js:3788
    const response = await this.#fetch(planned.plan.url, {
  • 执行外部命令来自配置/变量
    lib/server/index.js:4570
    this.spawnImpl = options.spawn ?? ((command, args) => nodeSpawn(command, args));
  • 删除本地文件
    lib/server/index.js:4715
    unlinkSync2(this.persistFile);
  • 请求外部主机ntfy.sh
    lib/client.js:10
    Continue?`},"settings.channel.relayOriginRequired":{"zh-CN":"\u8BF7\u5148\u586B\u5199\u4F1A\u5408\u4E2D\u7EE7\u5730\u5740\uFF0C\u518D\u5E94\u7528\u8FD
  • 发起网络请求
    lib/client.js:10
    Continue?`},"settings.channel.relayOriginRequired":{"zh-CN":"\u8BF7\u5148\u586B\u5199\u4F1A\u5408\u4E2D\u7EE7\u5730\u5740\uFF0C\u518D\u5E94\u7528\u8FD
  • 写入剪贴板
    lib/client.js:10
    Continue?`},"settings.channel.relayOriginRequired":{"zh-CN":"\u8BF7\u5148\u586B\u5199\u4F1A\u5408\u4E2D\u7EE7\u5730\u5740\uFF0C\u518D\u5E94\u7528\u8FD
  • 发起网络请求
    lib/mobile/app.js:7
    Continue?`},"settings.channel.relayOriginRequired":{"zh-CN":"\u8BF7\u5148\u586B\u5199\u4F1A\u5408\u4E2D\u7EE7\u5730\u5740\uFF0C\u518D\u5E94\u7528\u8FD
  • 发起网络请求
    lib/mobile/sw.js:30
    return fetch(request);
  • 读取本地文件
    lib/server/cloudflared-install.js:107
    return existsSync(resolved) ? resolved : null;
  • 读取本地文件
    lib/server/cloudflared-install.js:114
    if (existsSync(candidate)) {
  • 读取本地文件
    lib/server/cloudflared-install.js:115
    accessSync(candidate, fsConstants.R_OK);
  • 写入本地文件
    lib/server/cloudflared-install.js:173
    writeFileSync(archivePath, archiveBytes);
  • 写入本地文件
    lib/server/cloudflared-install.js:174
    mkdirSync(extractDir, { recursive: true });
  • 执行外部命令固定命令
    lib/server/cloudflared-install.js:176
    const result = spawnSync("tar", ["-xzf", archive, "-C", dest], { encoding: "utf8" });
  • 读取本地文件
    lib/server/cloudflared-install.js:183
    if (!existsSync(binaryPath)) {
  • 读取本地文件
    lib/server/cloudflared-install.js:186
    return readFileSync(binaryPath);
  • 删除本地文件递归
    lib/server/cloudflared-install.js:188
    rmSync(work, { recursive: true, force: true });
  • 写入本地文件
    lib/server/cloudflared-install.js:220
    await mkdir(destDir, { recursive: true });
  • 写入本地文件
    lib/server/cloudflared-install.js:223
    await writeFile(tmp, binaryBytes);
  • 写入本地文件
    lib/server/cloudflared-install.js:225
    await chmod(tmp, 493);
  • 写入本地文件
    lib/server/cloudflared-install.js:227
    await rename(tmp, dest);
  • 读取本地文件
    lib/server/dataplane.js:112
    if (!existsSync(filePath)) {
  • 读取本地文件
    lib/server/dataplane.js:117
    const body = readFileSync(filePath);
  • 发起网络请求
    lib/server/interactions.js:127
    const request = input.request(rpcId);
  • 发起网络请求
    lib/server/push-bridge.js:269
    const response = await this.#fetch(planned.plan.url, {
  • 删除本地文件
    lib/server/relay.js:358
    unlinkSync(path);
  • 写入本地文件
    lib/server/storage.js:13
    mkdirSync(dir, { recursive: true, mode: 448 });
  • 写入本地文件
    lib/server/storage.js:17
    writeFileSync(path, data, { mode: 384 });
  • 写入本地文件
    lib/server/storage.js:21
    writeFileSync(temp, data, { mode: 384 });
  • 写入本地文件
    lib/server/storage.js:23
    renameSync(temp, path);
  • 删除本地文件
    lib/server/storage.js:26
    unlinkSync(temp);
  • 读取本地文件
    lib/server/storage.js:33
    if (!existsSync(path)) return null;
  • 读取本地文件
    lib/server/storage.js:34
    return JSON.parse(readFileSync(path, "utf8"));
  • 写入本地文件
    lib/server/storage.js:37
    writeFileSync(path, `${JSON.stringify(entry)}
  • 读取本地文件
    lib/server/tunnel.js:27
    return existsSync(trimmed) ? trimmed : null;
  • 读取本地文件
    lib/server/tunnel.js:29
    if (existsSync(HINT_PATH)) return HINT_PATH;
  • 执行外部命令来自配置/变量
    lib/server/tunnel.js:89
    this.spawnImpl = options.spawn ?? ((command, args) => nodeSpawn(command, args));
  • 删除本地文件
    lib/server/tunnel.js:234
    unlinkSync(this.persistFile);
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
涉及外部主机:ntfy.sh

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

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-client-web@deepseek-ai/dsh-host-webserver
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 手机配对桌面
  • 查看会话
  • 窄写操作
v0.7.22026-10-23
· 修复 · DSH 0.2.x 安装兼容性:把 engines.dsh 声明为 >=0.1.1-rc.2 <0.3.0,并把 @deepseek-ai/dsh-* 的 peer 依赖放宽到同一范围(Cordis peer 为 ^4.0.1),这样宿主的 evaluatePluginCompatibility 校验就能接受 0.2.1-rc.2 这类运行时,不再因为 peer 精确锁在 0.1.1-rc.2 而拒绝。已验证构建 BOM 和 devDependencies 仍停留在 0.1.1-rc.2;0.2.1-rc.2 记为未验证的 BOM 候选,等隔离冒烟测试通过后再提升。 发布后从 npm 安装,或用这个 tarball 安装: cp dsh-coding-remote-kit-0.7.2.tgz "$HOME/.dsh/packages/" dsh plugin --profile web add "$HOME/.dsh/packages/dsh-coding-remote-kit-0.7.2.tgz" 安装完成后重启现有的 DSH Web 进程一次。
v0.7.12026-09-12
修复多设备历史同步、计划审批展示和手机断线应答生命周期;支持 DSH 0.1.5 sessionController 与旧 apiProxy 路径。
v0.6.02026-09-10
· v0.6.0 · 新增 · 可选离线推送桥(ntfy / Bark):在设置里配置端点(默认关闭);收到 approval.requested 时发送一条脱敏提醒(事件类型 + 短会话 id),带深链 /m/?focus=approval&sessionId=…&approvalId=…。出站 HTTPS 主机白名单 + 2 KiB 请求体上限;缺少配置 / 没有配对设备 → 静默跳过(#14)。 · 移动端输入框的 Queue / Steer 模式开关;session.prompt 的 mode 与所选一致(#15)。 · 移动端会话活动/状态条,显示进行中的工具(以及正在运行的生成),提供 zh-CN + en 文案(#15)。 · 移动端 session.history 游标分页(beforeSeq / maxMessages):「加载更早消息」会把更早的事件插到前面,同时不清空输入框草稿(#15)。 · 把 DeepSeek Harness 0.1.5-rc.1 记为未验证的 BOM 候选(已验证的固定版本仍是 0.1.1-rc.2)。 · 文档 · 在研究对等能力笔记里标注 #15 的活动条 + 历史游标 UI 已落地。 · 在安装/架构/ADR 文档里把 0.1.5-rc.1 与 0.1.2-alpha 并列为未验证的宿主候选。 · 扩充 docs/06-dsh-alpha-smoke.md 和 README 安装说明,让候选版本(0.1.5-rc.1)的冒烟规则写清楚,不再和已验证的固定版本混淆。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-coding-remote-kit v0.7.2 · DeepSeek Harness install >=0.1.1-rc.2 <0.3.0 · verified build 0.1.1-rc.2 / runtime 0.1.5-rc.2 · GitHub dsh-coding-remote-kit 面向 DeepSeek Harness 的远程手机访问插件。 把手机配对到已经在跑 dsh web 的桌面,观察会话并做一组窄写操作——不必把完整 Web API 暴露出去。 English · 中文版 · 日本語 · 한국어 · Português (BR) · Español · Français · Deutsch · Русский 升级: 按 INSTALL.md 的版本化步骤操作。
展开完整文档(README 剩余 1 节)
dsh-coding-remote-kit

v0.7.2 · DeepSeek Harness install >=0.1.1-rc.2 <0.3.0 · verified build 0.1.1-rc.2 / runtime 0.1.5-rc.2 · GitHub dsh-coding-remote-kit

面向 DeepSeek Harness 的远程手机访问插件。 把手机配对到已经在跑 dsh web 的桌面,观察会话并做一组窄写操作——不必把完整 Web API 暴露出去。

English · 中文版 · 日本語 · 한국어 · Português (BR) · Español · Français · Deutsch · Русский

升级: 按 INSTALL.md 的版本化步骤操作。0.7.2 放宽 DSH 安装闸门以接受 0.2.x(verified 构建钉仍为 0.1.1-rc.2);0.7.1 通过宿主 sessionController 服务适配 DSH 0.1.5-rc.2——会话列表、历史分页、发送、取消、实时事件、手机审批与提问、助手流式回复——同时 0.1.1-rc.2 继续走旧 apiProxy 路径;0.6.0 增加手机 Queue/Steer、活动条、历史游标分页与可选离线推送;0.5.2 增加 CSP/配对加固与 sessionStorage 密钥;0.5.1 修复 Settings 安装 cloudflared 后无需重载即可 Start;0.5.0 增加连接诊断、Quick Tunnel 免责勾选与 cloudflared 钉死校验;保留 profile、存储与配对文件,所有选定插件更新后再重启一次现有 DSH Web 进程。dsh-coding-oauth-core@0.1.2 仍是 Hub/Subscription 的共享 npm 依赖,不是需要单独安装的 DSH 插件。

社区插件。与 DeepSeek 无隶属关系,也不暗示官方背书。 产品意图更接近 Orca Mobile Companion,而不是第二份桌面 IDE。

改这个仓库之前先读 AGENTS.md:禁止自行重启生产 DSH Web 进程或其本机服务包装。 只准备 tarball,由操作者通过测试机自己的进程管理器重启。

名称

最初 GitHub 仓库名是 dsh-mobile-remote。npm 上的 dsh-mobile-remote 是另一个项目(微信遥控插件)。本插件发布名为 dsh-coding-remote-kit。

| | 请用这个 | 说明 |
| npm | dsh-coding-remote-kit@0.7.2 | dsh plugin --profile web add dsh-coding-remote-kit@0.7.2 |
| GitHub | lninghaha/dsh-coding-remote-kit | 旧 checkout 名 dsh-mobile-remote |
| Cordis 插件 id | mobile-remote | 不变 |
| 设置页 HTTP | /api/mobile-remote/ | 不变 |
| 存储 | $DSH_HOME/storages/mobile-remote/ | 不变 |

不要执行 dsh plugin add dsh-mobile-remote——那会装到别人的微信插件。

状态

| 里程碑 | 状态 |
| 调研(Orca / DSH 生态) | 完成 — docs/research/ |
| M1 插件骨架 + ADR / 威胁模型 | 完成 |
| M2 配对 / 局域网数据面 | 完成 |
| M3 窄 RPC / 审批 | 完成 |
| M4 签名 HTTPS / 原生 App | 未开始 |
| M5 自建会合中继 | 完成 — docs/05-cloud-relay.md |

特性

- 双语界面 — 桌面设置页与手机端支持中文 / English(?lang= 或应用内切换;默认跟随 navigator.language)。
- 一次配对 — 桌面展示二维码或 8 位 PIN;手机钉死桌面 X25519 公钥并持有 deviceToken(服务端只存 SHA-256)。
- 双平面 — 管理面留在回环 dsh web;移动数据面是独立端口(默认 6879)上的 RPC 白名单。
- 握手后 E2EE — /m/ws 走 tweetnacl secretbox;未认证连接看不到会话内容。
- 窄写操作 — 观察会话、应答审批/提问、短回复;重编辑仍回桌面。
- 私网优先 — 推荐 LAN / Tailscale。可选 Cloudflare Quick Tunnel 只暴露数据面,永不暴露 3080。可选自建会合中继:桌面与手机都出站,业务帧仍 E2EE。
- 标准插件形态 — 一个 Cordis 服务端插件 + classic-script 设置页。用 file tarball 做 dsh plugin --profile web add,不要 link: 工作树。

截图

桌面 设置 → 移动远程:生成配对 offer(左)· 通道状态与设备(右)

手机端:输入 PIN / 扫码(左)· 配对后的会话列表(右)

本插件解决的问题

| 你搜到 / 看到的 | 实际坏在哪 | 本插件怎么处理 |
| 「DSH 有没有 Orca 那种手机 companion」 | 官方没有一等公民的配对手机 App | 语义 companion:配对 + E2EE + 白名单 RPC |
| 手机上用 dsh-pocket / dsh-web-remote | 权限面 ≈ 完整 dsh web | 双平面;未知 RPC 一律 forbidden |
| 手机在蜂窝网、桌面在局域网 | 裸 LAN HTTP 页面可被 MITM | 优先 Tailscale;可选 Quick Tunnel(边缘 TLS,回源本机) |
| 插件 import 失败、3080 挂了 | DSH 会 fail-fast 整棵插件树 | 沙箱门禁 + tarball 拷到仓库外;禁止 link: |

快速开始

dsh plugin --profile web add dsh-coding-remote-kit@0.7.2

然后由操作者在自己的时间窗重启现有 DSH Web 进程。打开 设置 → 移动远程,生成配对 offer,手机扫码(或手输 PIN)。

源码 checkout(开发):

pnpm test:sandbox
pnpm pack
mkdir -p "$HOME/.dsh/packages"
cp dsh-coding-remote-kit-0.7.1.tgz "$HOME/.dsh/packages/"
dsh plugin --profile web add "$HOME/.dsh/packages/dsh-coding-remote-kit-0.7.1.tgz"

不要对本工作树执行 dsh plugin add ./。pnpm 11 会把某些 file: tarball 解析成 link: 源码树,入口 import 失败会拖死整个 GUI。

目录

- 名称
- 状态
- 特性
- 截图
- 本插件解决的问题
- 快速开始
- 安装
- 工作原理
- 设置页
- 手机 RPC
- 公网隧道
- 安全
- 架构
- 文档
- 相关项目
- 贡献
- 许可证

安装

安装闸门:DeepSeek Harness >=0.1.1-rc.2 <0.3.0(engines.dsh);verified 构建 BOM 仍为 0.1.1-rc.2。0.1.5-rc.1、0.2.1-rc.2 等未验证候选记在 BOM。需要 Node.js 22.19+。完整步骤见 INSTALL.md。

开发:

pnpm install && pnpm build && pnpm test # 在 Docker 沙箱里跑,不要在活着的 GUI 宿主机上跑
pnpm test:sandbox # Dockerfile 的 check / isolated-install / verify

构建产物:

- lib/server/index.js — Cordis 入口(name / inject / Config / apply)
- lib/client.js — 设置页 classic-script
- lib/mobile/ — 数据面 /m 手机页

工作原理

设置页(回环) 手机浏览器 │ │ │ 二维码 / PIN ────────────┤ ▼ ▼ /api/mobile-remote/ GET /m + WS /m/ws (dsh web, :3080) (数据面, :6879, E2EE)

管理面留在宿主 Web 的回环围栏内。数据面是独立的 node:http + ws。配对广告 LAN 候选时可能把数据面从 127.0.0.1 再绑定到 0.0.0.0;若 Quick Tunnel 已在跑,则广告其 HTTPS origin,不再 widen。

设置页

打开 设置 → 移动远程:

- 状态(bind、端口、是否在听、活跃设备、隧道、会合中继)
- 局域网 / Quick Tunnel / 会合中继
- 生成 offer → 二维码 + 8 位 PIN
- 设备列表与吊销
- 可选安装官方 cloudflared(禁止在插件 apply() 时自动跑)
- 连接诊断(脱敏网络候选、cloudflared 钉死校验、免责版本)
- Quick Tunnel 免责勾选(Start 前必选)

手机 RPC

白名单方法(其余一律 forbidden):

status.get · session.list · session.history · session.subscribe · session.unsubscribe · host.subscribe · session.prompt · session.cancel · session.create · respond · device.name

推送包括会话事件以及带 rpcId 的 approval.requested / question.requested(供 respond 回显)。线格式见 docs/03-protocol.md。

公网隧道

默认关闭。设置页须先勾选免责声明(请求体 disclaimerAccepted: true)再 Start。cloudflared Quick Tunnel 只指向 127.0.0.1:<数据面端口>。/m 会在 https://<随机>.trycloudflare.com 上可达;配对仍需要 fragment 令牌(或 PIN)和 E2EE。插件 unload / 点「停止」时杀掉子进程。

禁止把 3080 / dsh web 送进隧道。可选自建会合中继(桌面与手机都出站,业务仍 E2EE):见 docs/05-cloud-relay.md。需要 Cloudflare Workers Paid,不是本项目运营的公共中继。

安全

不变量(完整模型:docs/04-threat-model.md):

1. 未认证连接只处理握手。
2. deviceToken 只存 SHA-256;密钥与注册表文件权限 0600。
3. RPC 白名单默认拒绝;写操作审计到 deviceId。
4. 管理面:回环 + Host + CSRF。
5. 不削弱 dsh web /api,不抢 api-proxy provider。

v0 诚实边界: 裸 LAN 上 /m 的首次 HTTP 下发可被 MITM。优先走 overlay VPN。/m 响应带 Content-Security-Policy(script-src 'self'、frame-ancestors 'none'),用来收窄页面加载后的注入面,并不能关闭首次下发被替换的缺口。

禁止事项:

- 不共享他人凭据。
- 不监测未授权账户。
- 不把数据面端口裸绑 0.0.0.0 到公网(用户显式开启的 Quick Tunnel 除外)。
- 不暗示 DeepSeek 官方背书。

文档示例只用 example.com、127.0.0.1、YOUR_TOKEN。

架构

双平面、模块、存储与握手:docs/02-architecture.md · 中文。

MVP 决策(路线 B):docs/01-mvp-scope.md。

文档

| 文档 | 用途 |
| INSTALL.md | 安装、配对、隧道 |
| CHANGELOG.md | 发布历史 |
| docs/00-project-rules.md | 版本、公开 vs 本地、宿主 DSH 红线 |
| docs/01-mvp-scope.md | ADR:MVP 范围 |
| docs/02-architecture.md | 内部架构 · 中文 |
| docs/03-protocol.md | RPC 白名单与推送信封 |
| docs/04-threat-model.md | 资产、攻击者、不变量 |
| docs/05-cloud-relay.md | 自建会合中继(M5) |
| docs/06-dsh-alpha-smoke.md | 未验证 DSH 候选宿主的隔离冒烟(0.1.2-alpha.*、0.1.5-rc.1) |
| CONTRIBUTING.md | 贡献指南 |
| AGENTS.md | Agent/操作者规则(禁止自行重启生产) |

相关项目

- dsh-coding-subscription-oauth — 同作者的兄弟插件;本仓库文档布局参照它。
- GitHub:lninghaha/dsh-coding-remote-kit。
- 本插件独立于用量中心插件 dsh-hub-oauth-gateway。
- 不替代官方 @deepseek-ai/dsh。

贡献

欢迎 issue 与 PR。Docker 沙箱、提交约定与文档分层见 CONTRIBUTING.md。

许可证

MIT。
预览分享卡片长什么样 ↓lninghaha/dsh-coding-remote-kit
分享 · DeepSeek Harness Hub
lninghaha/dsh-coding-remote-kit

DeepSeek Harness 移动端配对远程:双平面白名单 RPC 上的端到端加密伴侣

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部