DeepSeek Harness 插件

dsh-coding-remote-kit

DeepSeek Harness mobile pairing remote plugin: E2EE companion over a dual-plane allowlisted RPC (LAN / Tailscale / optional Cloudflare Quick Tunnel or self-hosted rendezvous).(英文原文)

跳到安装方式

来源信息

GitHub 仓库
lninghaha/dsh-coding-remote-kit
最近更新
2026年8月19日
分类
工具与能力
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/lninghaha/dsh-coding-remote-kit
插件名:dsh-coding-remote-kit
作者:lninghaha

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器8 个文件
README.zh-CN.md来源说明 · 只读预览
README 语言

<!-- banner --> <div align="center">

dsh-coding-remote-kit

v0.4.1 · DeepSeek Harness 0.1.0-rc.6 · GitHub dsh-coding-remote-kit

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

![npm](https://www.npmjs.com/package/dsh-coding-remote-kit) ![License](LICENSE) ![PRs Welcome](CONTRIBUTING.md)

English · 中文版 · 日本語 · 한국어 · Português (BR) · Español · [Français](README.fr.md) · [Deutsch](README.de.md) · [Русский](README.ru.md)

</div>

---

> 升级: 按 [INSTALL.md](INSTALL.md) 的版本化步骤操作。0.4.1 修复 0.4.0 在严格 Cordis 注入检查下的启动失败;保留 profile、存储与配对文件,所有选定插件更新后再重启一次现有 DSH Web 进程。dsh-coding-oauth-core@0.1.0 仍是 Hub/Subscription 的共享 npm 依赖,不是需要单独安装的 DSH 插件。

---

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

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

名称

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

请用这个说明
npmdsh-coding-remote-kit@0.4.1dsh plugin --profile web add dsh-coding-remote-kit@0.4.1
GitHublninghaha/dsh-coding-remote-kit旧 checkout 名 dsh-mobile-remote
Cordis 插件 idmobile-remote不变
设置页 HTTP/api/mobile-remote/*不变
存储$DSH_HOME/storages/mobile-remote/不变

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

状态

里程碑状态
调研(Orca / DSH 生态)完成 — [docs/research/](docs/research/)
M1 插件骨架 + ADR / 威胁模型完成
M2 配对 / 局域网数据面完成
M3 窄 RPC / 审批完成
M4 签名 HTTPS / 原生 App未开始
M5 自建会合中继完成 — [docs/05-cloud-relay.md](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 tarballdsh plugin --profile web add,不要 link: 工作树。

截图

<p align="center"> <img src="docs/assets/zh-CN/settings-pairing.png" alt="桌面设置 — 配对二维码与 PIN" width="48%" /> &nbsp; <img src="docs/assets/zh-CN/settings-overview.png" alt="桌面设置 — 通道状态与已配对设备" width="48%" /> </p> <p align="center"><em>桌面 设置 → 移动远程:生成配对 offer(左)· 通道状态与设备(右)</em></p>

<p align="center"> <img src="docs/assets/zh-CN/mobile-pair.png" alt="手机配对页" width="28%" /> &nbsp;&nbsp; <img src="docs/assets/zh-CN/mobile-sessions.png" alt="手机会话列表" width="28%" /> </p> <p align="center"><em>手机端:输入 PIN / 扫码(左)· 配对后的会话列表(右)</em></p>

本插件解决的问题

你搜到 / 看到的实际坏在哪本插件怎么处理
「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.4.1

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

源码 checkout(开发):

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

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

目录

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

安装

需要 DeepSeek Harness 0.1.0-rc.6(钉死)与 Node.js 22.19+。完整步骤、配对与隧道说明见 [INSTALL.md](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() 时自动跑)

手机 RPC

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

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

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

公网隧道

默认关闭。在设置页启动时,cloudflared Quick Tunnel 指向 127.0.0.1:<数据面端口>/m 会在 https://<随机>.trycloudflare.com 上可达;配对仍需要 fragment 令牌(或 PIN)和 E2EE。插件 unload / 点「停止」时杀掉子进程。

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

安全

不变量(完整模型:[docs/04-threat-model.md](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。

禁止事项:

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

文档示例只用 example.com127.0.0.1YOUR_TOKEN

架构

双平面、模块、存储与握手:[docs/02-architecture.md](docs/02-architecture.md) · [中文](docs/02-architecture.zh-CN.md)。

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

文档

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

相关项目

贡献

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

许可证

[MIT](LICENSE)。