deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
DeepSeek Harness 移动端访问插件
让手机 / 平板通过局域网或 VPN 访问 DeepSeek Harness Web GUI,内置 PC 端审批门禁、LAN / VPN / 公网自动识别 与 网络模式切换。
DeepSeek Harness 的 Web 服务器出于安全设计只绑定 127.0.0.1,且官方禁止 --host 0.0.0.0。本插件通过插件运行时(webServer + subprocess)实现:PC 端一键启动网关代理(监听 0.0.0.0:<端口>),手机扫码即可访问;首次访问必须由 PC 端批准,防止未授权设备接入。
/api/events.mux、/api/events.host 两条 WebSocket 通道,消息实时到达,无需手动刷新--dsw-alias-*),自动适配浅色 / 深色主题与第三方皮肤(如 dsh-deep-whale)$DSH_HOME/dsh-mobile/state.json,重启后不丢失本插件是静态 cordis 插件包,随 DSH 启动自动加载,与官方插件(如 dsh-balance-plugin)相同的安装方式。
dsh plugin 命令# 本地目录安装(开发)
dsh plugin --profile web add dsh-mobile-access
# 或从 GitHub 安装(锁定发布版本 v1.0.4)
dsh plugin --profile web add dsh-mobile-access@github:TongaiLinC/dsh-mobile-access#v1.0.4
编辑 $DSH_HOME/profiles/web/package.json:
{
"dsh": { "profile": { "bundles": [ /* ... 已有 bundle ... */ "dsh-mobile-access" ] } },
"dependencies": {
// 本地开发:link 到仓库目录;正式安装用 GitHub 地址
"dsh-mobile-access": "github:TongaiLinC/dsh-mobile-access"
}
}
然后在 profile 目录执行 pnpm install(或 npm install),重启 DSH。启动后 PC 页面右下角出现蓝色「📱」悬浮按钮即生效。
✅ 正式安装后无需每次重启重新部署(与动态版不同);设备与策略数据仍保存在
$DSH_HOME/dsh-mobile/state.json,与动态版共用,不会丢失。
把 dsh-mobile-access.js 的内容作为 code.host 在 Web GUI 会话中用 cordis_define + cordis_run 运行。动态版是进程级的,DSH 重启后需重新部署;适合快速迭代调试,正式使用建议用方式一 / 二。
3081,TCP 入站)本插件使用 DeepSeek Harness 的创造模式开发:
deepseek-v4-flash(Max 模式)deepseek-v4-pro(Max 模式)移动端适配均通过 Playwright 真实浏览器(iPhone / 安卓视口)断言验证。
点击右下角「📱」打开「移动端访问」面板:
0.0.0.0:3081,可改端口);http://<PC局域网IP>:3081(面板中可复制)。局域网 / VPN / 公网直连,点击可查看提示;| 状态 | 可执行操作 |
|---|---|
| 待审批 | 批准 / 拒绝 |
| 已批准 | 撤销(保留记录)/ 取消授权并删除(撤销 + 删除记录,需确认) |
| 已拒绝 / 已撤销 | 恢复 / 删除记录 |
dsh-mobile-access/ # 本仓库即一个可安装的 DSH 插件包(npm 包结构)
├── package.json # 包清单:dsh.bundle.patch 指向 cordis.patch.yml
├── cordis.patch.yml # 组合补丁:向 profile 插入插件行
├── lib/index.js # Host 插件本体(静态 cordis 插件,ESM)
├── dsh-mobile-access.js # 动态版源码(code.host 函数体,用于会话内 cordis_define)
├── README.md / README.en.md # 中英双语说明
└── CHANGELOG.md # 版本更新记录
手机 ──> http://<LAN-IP>:3081 (网关代理, 0.0.0.0)
│ gate 裁决(x-dshm-real-ip / x-dshm-forwarded-host 仅信任回环来源)
│ 未批准设备 → 302 门禁页;已批准设备 → 转发
▼
127.0.0.1:3080 主服务器(Host 改写为 127.0.0.1 以通过 /api 信任围栏)
│ 注入 boot.js(PC 面板 / 手机门禁 / 模式弹窗 / 徽章 / QR)
▼
状态持久化 $DSH_HOME/dsh-mobile/state.json
关键机制:
webServer.tapIndex 向每个 GUI 页面注入 /dsh-mobile/api/boot.js(PC 面板、手机门禁、模式弹窗、二维码),并在 <head> 顶部注入 crypto.randomUUID 补丁(手机经 http://<IP> 访问属非安全上下文,产品多处 UI 依赖该 API,缺失会崩溃);webServer.register 提供 /dsh-mobile/api/* 接口与 /dsh-mobile/gate.html 门禁页;subprocess 派生 node 网关代理进程,转发 HTTP 与 WebSocket(含 101 升级握手);fs 持久化。Q:手机打不开 http://<IP>:3081?
检查:PC 与手机是否同一局域网;网关是否在运行(面板可见);Windows 防火墙是否放行端口(可在「Windows 安全中心 → 防火墙 → 允许应用」中放行 node.exe 的专用网络入站)。
Q:DSH 重启后插件不见了?
动态插件为进程级,重启后需按「安装」章节重新部署;设备与策略数据保留在 $DSH_HOME/dsh-mobile/state.json。
Q:手机端部分页面白屏 / 报错?
确认页面已强制刷新(拉取最新 boot.js)。若仍异常,多为非安全上下文缺少 crypto.randomUUID——插件已内置补丁,如仍出现请把 PC 面板底部「boot 版本」反馈给作者。
Q:公网能直连吗? 能,但强烈建议用 VPN(Tailscale / ZeroTier)加密访问;可在 PC 面板开启「禁止公网直连」强制拦截公网来源。
Q:改了网关端口后手机连不上? 保存策略后需重新启动网关(先停止再启动),并确认防火墙放行新端口。
dsh-balance-plugin(DeepSeek 余额监控与用量统计:余额监控 · 官方充值入口 · Miyu 风格用量统计 · 三方插件管理)的弹窗内联渲染在输入栏内,移动端存在弹窗被截断/被侧边栏顶栏覆盖、明细表格溢出等问题——本插件已内置全套适配(弹窗层级与位置修复、渲染级校验、iOS 弹窗迁移、表格横向滚动),安装后无需额外配置。详见文档站「DSH 指南 → 第十七章」8.4 节。
完整开发与使用文档见文档站《DSH 指南 → 第十七章 移动端访问插件实战》:https://docs.tongai.vip/docs/dsh/zhinandaodu.html(共 17 章:安装部署、PC 面板、手机端流程、网络识别算法、网关代理、API 参考、持久化、移动端 UI 适配等)。
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。