← 返回列表
需源码安装
极简 WebView 容器约 3 MB:在手机/平板上像原生 App 一样访问你自己部署的 DeepSeek…
暂不能直接安装(需源码编译或环境不满足):仓库缺少 package.json,无法用 dsh 插件安装命令安装。 · 最近上游提交 2026/9/25 · 已提供中文文档
极简 WebView 容器(约 3 MB):在手机/平板上像原生 App 一样访问你自己部署的 DeepSeek Harness。不含运行时、不预置地址、不采集数据。
综合分
30.8
GitHub 分
30.8
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add LHN-xiao-hai-tun/dsh-mobile仓库缺少 package.json,无法用 dsh 插件安装命令安装,改用 GitHub 源安装
信任档位:已验证本站已于 2 天前真实安装成功(L4 · 真实安装)
- 是什么
- dsh 原生插件 · tool
- 装得上吗
- 本站已真实安装成功(L4 · 真实安装,非静态推断)
- 安全吗
- 本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
- 还在维护吗
- 活跃:最近一次提交在 0 天前
档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →
🟢实装验证通过· 2026/9/23
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/25(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查需源码安装
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-mobile(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明
仓库缺少 package.json,无法用 dsh 插件安装命令安装
验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/22 00:09:56
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
由 DeepSeek 最新模型翻译生成DSH Mobile 在平板 / 手机上像原生 App 一样使用你自己部署的 DeepSeek Harness。 Build License: MIT Security Policy Release Platform-brightgreen.svg) APK 一个极简 WebView 容器(约 3 MB)。不含 DSH 本体,也不内置任何服务器地址 —— 填入你自己的服务地址即可。 界面预览 | 全屏主界面(平板 · 无浏览器地址栏) | 服务器设置(手机) | |---|---| | 主界面 | 设置页 | 截图取自真机:平板 HONOR CHG-W60(横屏)· 手机(竖屏,地址已打码)。 特性 | 特性 | 说明 | |---|---| | 全屏 | 无浏览器地址栏,与原生 App 一致 | | 启动页 | 官方 SplashScreen API,深色底 + DSH 图标,不再白屏 | | 返回键 | 网页后退 / 双击退出 | | 麦克风·摄像头 | 自动授权(语音输入可用) | | 登录态持久 | Cookie 自动保存,不必反复登录 | | 浮动 ⚙ / ⌘(可拖动) | 两个按钮合成一个小栈,默认停在右下角;可拖到任意边缘并记住位置,只在自己区域内接管触摸 | | 连接历史 | 记住最近 5 个地址,点一下填入(只存本机) | | ⌘ 快捷指令 | 3 条可编辑的常用提示,一键填入输入框(只填入,不发送) | | 关于页 | 版本 / 许可 / 致谢 / 检查更新 | | 首次引导 | 未填地址时自动进入设置页 | | 连不上有提示 | 不会静默白屏 | 前置:先跑起 DSH 本 App 只是「客户端」。你需要先有一个可访问的 DSH 服务。 依赖总览(先搞清「发现」需要哪些东西) | 你要的能力 | 需要什么 | 在哪装 | |---|---|---| | 手机能连上 DSH | dsh-pocket 插件(提供局域网入口 + 8 位 PIN) | DSH 侧(电脑) | | 手机「秒发现」(mDNS) | 上者 + dsh-mdns-announce(广播 _dsh._tcp.local) | DSH 侧(电脑) | | 以上都没有 | 只能手动填地址(http://:3081),或 App 内「扫描」扫子网兜底 | — | App 本身不需要任何前置插件 —— v1.2.7 起已内置 mDNS/NSD 发现 + 子网扫描。 缺了 DSH 侧的插件,App 不会坏,只是「秒发现」退化成「扫子网」或「手填地址」。 方式 A · 电脑跑(推荐,性能好) npm i -g @deepseek-ai/dsh dsh web --port 3080 --no-open 让手机与电脑处于同一局域网。若要手机能访问,装 dsh-pocket 插件并打开「局域网访问」(默认端口 3081): dsh plugin --profile web add dsh-pocket ⚠️ 强烈建议开启访问密码(PIN) —— 否则同一网络下的任何设备都能操作你的电脑。 可选 · 让手机「秒发现」电脑(mDNS) App 有两种找服务的方式:扫子网(默认,约 3~5 秒、只能同一子网)和 mDNS/NSD 发现(即时)。 后者需要服务端先广播 _dsh._tcp.local,而 DSH 本体不广播任何服务。仓库里带了一个零依赖的广播脚本,直接跑即可: 在跑 DSH 的那台电脑上(需要 Node ≥ 18) node tools/mdns-announce.mjs # 前台运行;Ctrl+C 退出 node tools/mdns-announce.mjs --quiet # 静音 node tools/mdns-announce.mjs --port 3082 --name my-dsh --no-pin # 自定义 ⚠️ 脚本默认广播 3081(dsh-pocket 的默认端口)。若你的 pocket 实际端口漂了(3081 被占会自动 +1),用 --port 手动对齐。 想让广播「随 DSH 启停、端口自动跟随 pocket」,可以把它包成 DSH 插件(思路见脚本顶部注释)—— 本仓库未发布该插件,需要你自建或自行实现。 跑起来后,手机打开「设置 → 扫描局域网上的 DSH」就会几乎立刻出现该地址(不再等全子网扫完)。 不跑它也不影响使用 —— 子网扫描会兜底。 自己实现也行,但注意三个坑(脚本注释里也写了): ① 必须过滤 QR 位,否则自己的应答会经组播回环被当成查询 → 自环放大成群播风暴; ② PTR 应答的 additional 段要带 SRV+TXT+A,只回 PTR 时部分解析器收得到却不触发发现; ③ 多网卡要按网卡分别应答,否则客户端可能拿到一个自己不可达的地址。 ④ mDNS 跨不了网段:电脑和设备必须在同一网段(如都在 192.168.1.x),否则组播到不了,只能靠「扫子网」或手填地址。 方式 B · 手机/平板本机跑(离线可用,较慢) DSH 依赖 Linux 的 flock,而 Termux 的 Node 报告 platform=android,故需用 proot 容器: apt install -y proot-distro proot-distro install docker.m.daocloud.io/library/debian:12 proot-distro login debian 容器内: apt install -y nodejs npm && npm i -g @deepseek-ai/dsh dsh web --port 3080 --no-open 地址填 http://127.0.0.1:3080。 安装 1. 从 Releases 下载 APK 2. 系统设置里允许「安装未知来源应用」 3. 安装并打开 4. 在设置页填入你的 DSH 地址 装一次,以后自动更新(Obtainium) 不想每次手动下载重装,可以用 Obtainium 订阅本仓库 —— 它盯着 GitHub Release,有新版本会通知你,并可后台静默安装(静默需 Android 12+,且 App 由 Obtainium 装的)。 Get it on Obtainium 手动添加也行:Obtainium → Add App → 源选 GitHub → 填 https://github.com/LHN-xiao-hai-tun/dsh-mobile。 资产命名约定(Obtainium 靠文件名挑 APK,故固定下来): | 资产 | 说明 | |---|---| | dsh-mobile-vX.Y.Z.apk | ✅ 要装的就是它 —— 已签名(与历史版本同一个密钥,可直接覆盖安装) | | dsh-mobile-vX.Y.Z.apk.sha256 | 它的 SHA-256(下载后可核对) | | dsh-mobile-vX.Y.Z-unsigned.apk | ⚠️ CI 出的未签名占位包(仅用于校验/留痕),别装 —— 正式签名包上传后它会被自动删掉,所以正常情况下你看不到它 | 因此 v1.3.10 起资产名与旧版不同(旧版是 DSH-Mobile-vX.Y.Z.apk):Obtainium 会自动用新版, 手动下载的话按上表认名字即可。 🔒 安全部署(先读这段) 本 App 只是一个客户端 —— 安全与否,主要取决于你如何暴露 DSH 服务。 最短清单(完整版见 docs/SECURITY_DEPLOY.md): | 项 | 做法 | |---|---| | 暴露方式 | ⭐ 用 Tailscale / ZeroTier / WireGuard 组网,不要把 DSH 暴露公网 | | DSH 密码 | 🔴 必设强 PIN / 密码 —— 否则同一网络下的任何设备都能操作你的电脑 | | 传输 | 尽量启用 HTTPS;不要在公共 WiFi 下明文连接 | | 别做的事 | 不要 frp 裸奔 · 不要把地址 / PIN 截图发公开渠道 · 不要关锁屏密码 | | 发现结果 | mDNS / 扫子网的结果不代表可信 —— App 不会自动连接,连之前请核对主机名 / IP | | 手机丢了 | 立刻改 DSH 的 PIN,或在路由器 / 组网层吊销该设备 | ⚠️ 当前版本仍允许明文 HTTP(这是局域网 http://:3081 的前提), 但已加分级策略:私有网段首次确认一次、公网明文默认拦下。 v1.3.0 起:混合内容不再放行(NEVER_ALLOW)、本机敏感配置已加密 (AES-256-GCM + Keystore)、证书走 TOFU 首次信任。完整现状见 SECURITY.md 第五节的「连接安全机制与取舍」。 🔒 报告漏洞请勿公开披露细节 —— 渠道见 SECURITY.md。 自己构建 需要 JDK 17+ 与 Android SDK(platform-34 + build-tools 34.0.0) 仓库自带 gradle wrapper(Gradle 8.9) ./gradlew assembleDebug 产物:app/build/outputs/apk/debug/app-debug.apk 也可用系统 Gradle:gradle assembleDebug。 打 Release 包:./gradlew assembleRelease(当前用 debug 签名,如需正式分发请自行配置签名)。 推送 / PR 会自动跑一次 assembleDebug(见 .github/workflows/build.yml)。 与同类项目的区别 dsh-mobile 这个名字在社区被多个项目使用,本项目与它们的定位不同(下表数据核验于 2026-09-21): | 项目 | 技术栈 | 定位 | 本项目 | |---|---|---|---| | 本项目 LHN-xiao-hai-tun/dsh-mobile | Java + Android SDK | 极简 WebView 遥控器:约 3 MB,不含任何运行时,连接你自己电脑/设备上的 DSH | — | | saya-ch/dsh-mobile | TypeScript | Android App + 安全远程访问插件,高度自定义的移动界面与扩展能力 | 不采用(依赖与体积更重) | | Thanksgiver233/dsh-mobile | Kotlin | 内置 Node.js ARM64 与 dsh CLI 的手机本地运行方案,APK 即跑 | 不采用(本机跑 DSH 另有 proot 路线) | | jayantTang/DSH_Mobile | Swift | iOS 客户端,WSS 经公网中转 | 不采用(平台不同) | 为什么走极简路线 - 体积:约 3 MB,不占用手机存储,也不携带 Node.js 运行时 - 隐私:不预置服务器地址、不采集数据、无广告统计、无第三方 SDK - 职责单一:只负责「让手机像原生 App 一样访问你的 DSH」;DSH 本体与插件生态留在你自己的机器上,升级互不影响 隐私 - 不采集、不上传任何数据 - 只在本机 SharedPreferences 保存:你填的服务器地址、最近 5 条连接历史、快捷指令模板、浮动按钮位置 - App 自身唯一的网络行为就是访问你填的那个地址;「检查更新」只在你点它时才查一次 GitHub(不会自动查、不会自动下载) - 无广告、无统计、无第三方 SDK - 清单里 5 条权限:基础 3 条 —— INTERNET · ACCESS_NETWORK_STATE · CHANGE_WIFI_MULTICAST_STATE(mDNS 组播锁用); 另有 2 条属于「要用才开」的可选功能(v1.3.9 起)—— POST_NOTIFICATIONS(下载完成时通知)· CAMERA(网页拍照上传): 两者默认关闭,只有你在设置里打开对应开关时才会申请、系统也才可能弹窗;关着时功能不启用、也不会打扰你 (打包后清单里另有一条 androidx 自动生成的应用自有权限,不涉及用户数据 —— 见 PRIVACY.md) 完整口径(含加密存放与「仍然要注意的」那几条)见 PRIVACY.md。 贡献 欢迎提 Issue / PR —— 动手前请先读 CONTRIBUTING.md,尤其是隐私与体积红线(不引第三方 SDK、不上报、不预置地址、保持 Java、注意体积)。 - 参与本项目即视为同意 行为准则(CODE_OF_CONDUCT.md) - 安全问题不要开公开 Issue —— 走 SECURITY.md 许可 本项目采用 MIT 许可。 变更记录见 CHANGELOG.md。