dsh-mobile-pwa
Complete mobile PWA for DeepSeek Harness (DSH): secure LAN/Tailscale remote access gateway + install-to-homescreen (manifest), offline-capable service worker, touch-first gestures, agent-done notifications, and dark compact mobile UI. 移动端 PWA 完整方案 for DeepSeek Harness.
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:zylzyqzz/dsh-mobile-pwa说明文档
阅读完整 README ↗dsh-mobile-pwa · 让 DeepSeek Harness 在手机上变成真 PWA
把 DeepSeek Harness(DSH)变成手机上的完整 PWA:安全远程访问你的自建 DSH + 一键「添加到主屏」成独立 App + 离线可用 + 触屏手势 + 任务完成推送。
基于 MIT 的 dsh-mobile-gate(安全网关基座)做差异化增强。
📍 生态定位:社区现有移动端方案都停留在「窄屏 CSS 微调」,本项目做的是移动端 PWA 一站式完整方案。
✨ 特性
| 模块 | 说明 |
|---|---|
| 📡 安全远程访问 | 独立子进程网关,首次访问本机审批 + 每设备一次性令牌 + 每 IP 限流。DSH 主服务仍只监听 127.0.0.1,/api 信任栅栏不受影响 |
| 📱 真 PWA | manifest.json + service worker:手机浏览器「添加到主屏」后全屏独立窗口运行,带图标/启动屏/主题色 |
| 🧩 可安装 | 主屏图标、standalone 显示、apple-touch-icon、maskable 图标 |
| 🌐 离线可用 | service worker:静态壳缓存优先、API 网络优先、导航离线回退页 |
| 👆 触屏手势 | 下拉刷新、边缘右滑返回、捏合缩放字体(可重置) |
| 🔔 任务完成推送 | agent 干完活 → Web Push 通知,切到别的 App 也能收到(可选手动开启) |
| 📐 触屏布局 | 44px 触摸目标、safe-area 适配、全屏弹窗、紧凑排版、代码横向滚动——桌面零影响 |
| 🔒 桌面不受影响 | 所有规则都以 html[data-lan-device="phone"] 或以排除 data-lan-device="desktop" 的 @media 为根 |
🏗️ 架构
手机 ──> 网关 (独立 Node 子进程 · 0.0.0.0:3088)
├─ 未批准 -> 「等待本机批准」页面(轮询 /lan-gate/admin)
├─ 已批准+令牌Cookie -> 反向代理到 DSH Web UI (127.0.0.1:3080)
│ └─ HTML 注入:manifest link + PWA bootstrap + 触屏CSS + randomUUID polyfill
├─ /pwa/* -> 直接提供 manifest / sw.js / app.css / 图标 / offline.html
├─ /pwa/push/* -> 订阅 / 发送 agent 完成通知
└─ 超限 -> 429 限流页
电脑 127.0.0.1:3088/lan-gate/admin -> 批准/拒绝/撤销设备、选择访问方式(手机/电脑/自动)