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

手机远程终端 tirckman/dsh-mobile

DeepSeek Harness
tirckman13 天前有提交已提供中文文档扫描:含敏感能力

把电脑上的 dsh 装进手机,内网直连随时用

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add tirckman/dsh-mobile
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]!
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
数据截至 2026/10/27·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/03·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 13 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

⚠︎ 实装验证未通过(unknown · 2026/10/27) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 4 处,展示前 4 条)
  • 写入本地文件
    proxy/pwa-proxy.js:30
    try { fs.appendFileSync(LOG, new Date().toISOString() + ' ' + msg + '\n'); } catch {}
  • 读取本地文件
    proxy/pwa-proxy.js:86
    fs.readFile(file, (err, buf) => {
  • 发起网络请求
    proxy/pwa-proxy.js:98
    const up = http.request(
  • 发起网络请求
    proxy/pwa-proxy.js:163
    const up = http.request({
扫描于 2026/11/3(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

在手机上跑 DeepSeek Harness:Tailscale + PWA 外壳 + 约 200 行的 WebView APK(Windows 工具链,不用 Gradle)

README

由 DeepSeek 最新模型翻译生成
dsh-mobile 把桌面端的 DeepSeek Harness 变成手机上的 App:Tailscale 内网直连、WebView 原生外壳、开机自启、断线自恢复。 非官方项目,与 DeepSeek 官方无关。它是你自己电脑上 dsh 的一个客户端外壳。 ┌─────────────┐ WireGuard ┌──────────────────────────────┐ │ 手机 App │ ──────────────▶ │ https://<host>.<tailnet>.ts.net│ │ (WebView) │ tailnet only └──────────────┬───────────────┘ └─────────────┘ │ tailscale serve (TLS) ▼ 127.0.0.1:3082 pwa-proxy.js (补 manifest/图标/SW、转发、APK 下载) ▼ 127.0.0.1:3081 dsh web (真正的 agent host,只绑回环) ▲ start-stack.ps1 守护 + 开机自启 它为什么长这样 dsh 桌面版的 Web 服务固定绑定 127.0.0.1,还带一次性启动 token,手机没法直连。
展开完整文档(README 剩余 1 节)
dsh-mobile

把桌面端的 DeepSeek Harness 变成手机上的 App:Tailscale 内网直连、WebView 原生外壳、开机自启、断线自恢复。

非官方项目,与 DeepSeek 官方无关。它是你自己电脑上 dsh 的一个客户端外壳。

┌─────────────┐ WireGuard ┌──────────────────────────────┐
│ 手机 App │ ──────────────▶ │ https://<host>.<tailnet>.ts.net│
│ (WebView) │ tailnet only └──────────────┬───────────────┘
└─────────────┘ │ tailscale serve (TLS)
▼
127.0.0.1:3082 pwa-proxy.js
(补 manifest/图标/SW、转发、APK 下载) ▼ 127.0.0.1:3081 dsh web (真正的 agent host,只绑回环) ▲ start-stack.ps1 守护 + 开机自启

它为什么长这样

dsh 桌面版的 Web 服务固定绑定 127.0.0.1,还带一次性启动 token,手机没法直连。官方给出的对外方式,是用 dsh --profile web --host ... --public-url ... 另起一个 Web 实例,再放到可信入口后面。这个项目就把这套做法封装成「打开就能用」:

1. Tailscale 提供加密选址:tailscale serve 把 https://<你的机器>.ts.net 反代到本机回环,只有你 tailnet 里的设备能访问,不暴露公网,也不用开防火墙。
2. PWA 外壳代理:dsh 自带的 manifest 只有 SVG 图标、没有 service worker,Chrome 不会给「安装应用」入口;代理补上 PNG 图标 + 空 fetch 的 SW + ,其余请求原样转发(保留 Host,dsh 的信任校验才能过)。
3. APK 是可选的原生壳:约 200 行 WebView,解决「想要一个真正的 App 图标/独立窗口」的需求,不依赖浏览器。用标准 Android 工具链直接构建,不需要 Android Studio。
4. 守护进程 + 开机自启:dsh web 或代理挂了会自动拉起;Tailscale Serve 路由丢了会自动补。

特性

- ✅ 不暴露公网:端口只绑 127.0.0.1,tailscale serve 默认仅 tailnet
- ✅ 免重复登录:认证 cookie 由持久密钥签名,重启 dsh、重装 App 都不会失效(30 天)
- ✅ 断线兜底:连不上时显示「Retry」页而不是白屏
- ✅ 进程守护 + 登录自启(Windows 启动文件夹,隐藏窗口,不需要管理员)
- ✅ 三种接入方式:Tailscale(远程)/ 同 Wi-Fi 局域网 / USB 数据线(adb reverse)
- ✅ 只用官方命令行工具构建 APK,不依赖 Gradle / Android Studio

快速开始(Windows)

前置:Windows 10/11、DeepSeek Harness 桌面版、Tailscale(电脑和手机登录同一账号)。

1. 克隆并配置

git clone https://github.com/<you>/dsh-mobile.git
cd dsh-mobile
copy config\settings.example.json config\settings.json
notepad config\settings.json # 把 host 改成你的机器名,见第 2 步

2. 拿到你的 tailnet 主机名

& "C:\Program Files\Tailscale\tailscale.exe" status --json
找 Self.DNSName,例如 desktop-abc123.tailxxxx.ts.net

3. 启用 Tailscale Serve(只需一次)

& "C:\Program Files\Tailscale\tailscale.exe" serve --bg --https=443 http://127.0.0.1:3082

如果提示 Serve is not enabled on your tailnet,打开它给出的 https://login.tailscale.com/f/serve?node=... 授权一次。

4. 构建并安装 APK

powershell -ExecutionPolicy Bypass -File build\setup-toolchain.ps1 # 首次:下载 JDK + build-tools + android.jarpowershell powershell -ExecutionPolicy Bypass -File build\build-apk.ps1 # 产出 dist\DSH-Mobile.apk adb install -r dist\DSH-Mobile.apk

(不想装 APK 也行:用手机 Chrome 打开 https://<host>/,登录后菜单里「安装应用」即可装成 PWA。)

可选:让 CI 帮你构建 APK

仓库自带 GitHub Actions(Windows runner)。Fork 之后在 Settings → Variables 里加一个
DEFAULT_HOST = 你的主机名,之后每次 push 都会自动构建并上传 DSH-Mobile-apk 产物;也可以用
Actions → build → Run workflow 临时指定 host。想要固定签名,再加一个 ANDROID_KEYSTORE_BASE64 secret。细节见 docs/android-build.md。

5. 装开机自启 powershell scripts\install-autostart.cmd

之后开机 → 手机点桌面上的 DSH 图标即可。

首次登录:手机 App 打开时会弹「Sign in」,把 scripts\status.cmd 打印的带 token 链接复制到手机剪贴板,粘贴进对话框点登录。一次就好。

目录结构

dsh-mobile/
├── config/settings.example.json 配置模板(复制成 settings.json,后者不入库) ├── proxy/ │ ├── pwa-proxy.js PWA 外壳 + 反向代理 + APK 下载路由 │ └── icons/ PWA 图标(自绘,可替换) ├── android/ APK 源码与资源 │ ├── AndroidManifest.xml │ ├── src/.../MainActivity.java WebView 壳 │ ├── src/.../AppConfig.java.template 构建时注入你的 host │ ├── res/mipmap-/ 启动图标 │ └── make-icons.py 重生成图标(Pillow) ├── build/ │ ├── setup-toolchain.ps1 下载 JDK/build-tools/platform │ └── build-apk.ps1 aapt2 + javac + d8 + apksigner 全流程 ├── scripts/ │ ├── start-stack.ps1 守护进程(自启入口) │ ├── install-autostart.ps1 装启动项 │ ├── uninstall-autostart.ps1 卸载启动项 │ ├── status.ps1 状态自检(端口/serve/登录链接) │ ├── fix-phone-vpn.ps1 手机端 VPN 保活(adb) │ ├── lan-mode.ps1 同 Wi-Fi 模式 │ └── usb-mode.ps1 USB 模式 └── docs/ 详细文档

配置项

config/settings.json(不入库)里的关键字段:

| 字段 | 说明 |
| host | Tailscale MagicDNS 名或局域网地址,APK 会把它编进去 |
| webPort / pwaPort / servePort | 回环端口与对外 HTTPS 端口,默认 3081 / 3082 / 443 |
| dshCli | dsh CLI 路径(桌面版自带:%LOCALAPPDATA%\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd) |
| nodeExe | Node 可执行文件(桌面版自带的那份即可) |
| buildRoot | APK 构建目录,必须是纯 ASCII 路径(aapt2 不支持非 ASCII 路径) |
| keystorePath / keystorePass | 签名密钥;重装必须用同一个 |

所有字段都可以用环境变量覆盖,例如 DSH_MOBILE_HOST、DSH_MOBILE_WEB_PORT。

隐私与安全

- 仓库里不含任何个人标识:主机名、IP、路径、token、密钥都在 config/settings.json(已 gitignore)。
- App 与网页之间只有 HTTPS(tailscale serve 用 .ts.net 证书),且 usesCleartextTraffic=false。
- 登录 token 是操作你电脑的凭证,等同于网页端的会话;别贴到公开地方。
- tailscale serve 默认只在 tailnet 内可达。不要改用 tailscale funnel(那会暴露到公网)。
- 图标是本项目自绘的「DSH」字样,不包含 DeepSeek 官方 logo。

安全问题请走仓库的 Security → Report a vulnerability,范围与威胁模型见 SECURITY.md。

已知限制

- 脚本目前只支持 Windows(PowerShell/cmd)。服务端思路可以平移到 macOS/Linux,需要自己改。
- 手机端只在 MIUI/HyperOS(Android 16)实测过;其他 ROM 的电量策略需要对应调整。
- 最低 Android 7.0(API 24)。
- 同一份会话不要在手机和电脑上同时操作(两个客户端挂同一个 session 会互相干扰),手机上建议新开会话。

文档

- docs/setup-tailscale.md — Tailscale / Serve 配置与验证
- docs/android-build.md — APK 工具链、构建、签名、换图标
- docs/phone-settings.md — 让 VPN 在手机上活得久(Always-on、电量策略)
- docs/troubleshooting.md — 401/403/乱码/连不上等排查

DeepSeek Harness 的非官方移动客户端:在回环地址上运行 dsh --profile web,通过 tailscale serve 把它暴露到你的 tailnet,再加一层轻量的 PWA 外壳代理(这样 GUI 就能安装),还可以选择把它包进一个约 200 行的 WebView APK。Windows 脚本负责自启动与守护;APK 用原生 aapt2/d8/apksigner 构建(不需要 Gradle)。

License

MIT — 见 LICENSE。
预览分享卡片长什么样 ↓tirckman/dsh-mobile
分享 · DeepSeek Harness Hub
tirckman/dsh-mobile

把电脑上的 dsh 装进手机,内网直连随时用

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