在主机与手机间转发密文,服务端不解析载荷
29.8/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/10 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-remote/relay该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · security
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 24 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 11 处,展示前 11 条)
- 读取本地文件src/main.ts:27
const pkg = JSON.parse(readFileSync(new URL('../../package.json', import.meta.url), 'utf8')) as { version?: string } - 发起网络请求src/mpcode.ts:84
const doFetch: FetchLike = options.fetch ?? ((...args) => fetch(...args)) - 发起网络请求src/notify.ts:166
const doFetch: WechatTokenFetch = options.fetch ?? ((...args) => fetch(...args)) - 读取本地文件src/persist.ts:240
text = readFileSync(path, 'utf8') - 写入本地文件src/persist.ts:483
mkdirSync(dirname(path), { recursive: true }) - 删除本地文件src/persist.ts:491
unlinkSync(tmp) - 写入本地文件src/persist.ts:495
writeFileSync(tmp, `${JSON.stringify(snapshot)}\n`, { encoding: 'utf8', mode: 0o600, flag: 'wx' }) - 写入本地文件src/persist.ts:496
chmodSync(tmp, 0o600) - 写入本地文件src/persist.ts:504
renameSync(tmp, path) - 删除本地文件src/persist.ts:512
unlinkSync(tmp) - 发起网络请求src/wechat-token.ts:62
const doFetch: WechatTokenFetch = options.fetch ?? ((...args) => fetch(...args))
扫描于 2026/11/1(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 转发密文
- 服务端不解析载荷
- 单文件自托管
零知识 WebSocket 中继:只做路由,不碰载荷明文。可自托管的单文件产物。
README
由 DeepSeek 最新模型翻译生成@dsh-remote/relay
DSH Remote Control 的零知识 WebSocket 中继:在宿主插件与已配对的手机之间转发密封记录,只认帧名 / 会话 id / 能力协商,从不解析载荷——密文对它就是一个 base64 字符串。
生产形态是单文件产物 dist/bundle/main.js(ws / zod / 协议层全部内联,运行时零依赖);部署只有两种:拷这个单文件 + 起进程(systemd / docker / nginx 配方见下),或从源码构建。
自托管
完整配方(环境变量表、systemd / docker / nginx、排错、升级与回滚)见 docs/SELF-HOSTING.md。最速验证:
DRC_HOST_TOKEN=<与主机插件一致> node dist/bundle/main.js
curl -s http://127.0.0.1:8787/healthz
常用配置
| 变量 | 必填 | 默认 | 说明 |
| DRC_HOST_TOKEN | ✅ | — | 主机出站认证凭据。openssl rand -hex 32 生成。与主机插件那份必须逐字一致 |
| DRC_PORT | | 8787 | 监听端口。0 = 让系统分配(测试与容器用) |
| DRC_BIND | | 127.0.0.1 | 绑定地址。
展开完整文档(README 剩余 1 节)
@dsh-remote/relay
DSH Remote Control 的零知识 WebSocket 中继:在宿主插件与已配对的手机之间转发密封记录,只认帧名 / 会话 id / 能力协商,从不解析载荷——密文对它就是一个 base64 字符串。
生产形态是单文件产物 dist/bundle/main.js(ws / zod / 协议层全部内联,运行时零依赖);部署只有两种:拷这个单文件 + 起进程(systemd / docker / nginx 配方见下),或从源码构建。
自托管
完整配方(环境变量表、systemd / docker / nginx、排错、升级与回滚)见 docs/SELF-HOSTING.md。最速验证:
DRC_HOST_TOKEN=<与主机插件一致> node dist/bundle/main.js
curl -s http://127.0.0.1:8787/healthz
常用配置
| 变量 | 必填 | 默认 | 说明 |
| DRC_HOST_TOKEN | ✅ | — | 主机出站认证凭据。openssl rand -hex 32 生成。与主机插件那份必须逐字一致 |
| DRC_PORT | | 8787 | 监听端口。0 = 让系统分配(测试与容器用) |
| DRC_BIND | | 127.0.0.1 | 绑定地址。默认只绑回环:TLS 由反代终止。只有自己就是边缘(容器直接发布端口)时才设 0.0.0.0 |
| DRC_PUBLIC_URL | | 空 | /api/info 返回的对外地址。公网填 wss://你的域名 |
| DRC_LOG_LEVEL | | info | debug / info / warn / error / silent。区分大小写 |
| DRC_PAIR_TTL_MS | | 120000 | 配对码的服务端权威寿命(毫秒) |
| DRC_STATE_FILE | | 空(关闭) | 会话表落盘路径。默认关闭 = 纯内存;配上后启动先读它、会话表有增删时写回 |
| DRC_STATE_SAVE_MS | | 60000 | 周期补写状态文件的间隔(只为刷新 lastActivityAt) |
| DRC_MAX_BUFFERED_BYTES | | 1048576 | 慢消费者阈值:发送缓冲区连续超限达本角色窗口才 1008 断开 |
| DRC_SLOW_CONSUMER_HOST_MS | | 10000 | 主机侧慢消费者窗口(毫秒)。主机卡住就是所有人卡住,所以窗口短 |
| DRC_SLOW_CONSUMER_CLIENT_MS | | 45000 | 客户端侧慢消费者窗口(毫秒)。必须大于手机自己的重连周期(≈42.5 秒) |
端点
| 路径 | 说明 |
| GET /healthz | 运维契约(二十三个字段):ok / version / uptimeSec / hosts / clients / conversations / pendingPairs / droppedFrames / slowConsumers / rejectedPairs / shutdownForced / persistence / stateRestored / stateSavedAtSec / stateWrites / stateWriteFailures / lastPingAgo / shuttingDown / protocolSelf / protocolMin / peerProtocolMin / peerProtocolMax / peersNoProtocol |
| GET /api/info | {"publicUrl","protocol"} |
| GET /api/pair-status | 默认 404。无需认证地回答「配对码 N 是否有效」等于给 6 位码空间装了扫描 oracle;确需调试时 DRC_PAIR_STATUS=1,用完关掉 |
| WebSocket | 路径不设限,任意路径都能升级 |
落盘五字段(persistence / stateRestored / stateSavedAtSec / stateWrites / stateWriteFailures)是「还在落盘」的唯一读数——换机器先看 stateWriteFailures,不是 0 就是没在写。
开发
pnpm install
pnpm build # tsc + 单文件打包
pnpm test # tsc + 打包 + node --test(含产物级判据)
红线
- 不 import 载荷:依赖图里只有协议层的 frames / ids / negotiate / outbound;构建产物里不许出现任何密码学实现——tests/bundle.test.mjs 直接读产物断言。
- 路由表是内存的:重启即全部作废(客户端会看到 unknown_session),这是设计不是缺陷。
- 日志永不落载荷、落完整配对码、落 hostToken(有判据锁住)。
- 本包不发 npm:private: true,发布流程里不许出现发包步骤与 id-token(有判据)。
许可
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
dsh-remote/relay
在主机与手机间转发密文,服务端不解析载荷
相关插件 · 安全 / 权限
智能体逆向工程morluto/rea
用智能体逆向工程任何东西,从应用行为到原生二进制。
★ 415,267已汉化DSH
73.3
智能体集群框架ruvnet/ruflo
面向 Claude Code 与 Codex 的智能体元基座meta-harness。
★ 80,414已汉化MCP
71.9
WorkBuddy 模型接入corrinehu/dsh-workbuddy-connect
2026 年 10 月 20 日起,WorkBuddy…
★ 1,604已汉化DSH
71.7
破甲一键通z91772524-ai/pojia-next
十五个 AI…
★ 967已汉化DSH
71.6
AI 代理虚拟终端strukto-ai/mirage
Mirage 是给 AI 智能体用的虚拟终端:一层 shell,统管数据、命令行和运行时。Unix…
★ 3,756已汉化DSH
70.8
Agent 操作层agentic-os-org/ANOLISA
ANOLISA(Agentic Nexus Operating Layer & Interface System Architecture)|智能体操作系统,带运行时、安全、可观测性,以及 Tokenless 响应压缩,降低 token 用量与成本。
★ 649已汉化DSH
70.7