把 DeepSeek Harness 的 Web UI 在手机上用透的综合插件:PWA、通知、移动端体验、CJK 显示
55.5/100
综合分
72
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add kuraneko1/dsh-mobile-maxxing该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · ui
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 2 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-mobile-maxxing(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/25 17:06:30
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 31 处,展示前 24 条)
- 执行外部命令固定命令packages/dsh-mobile-maxxing/index.js:332
const child = spawn("dsh", ["plugin", "--profile", profile, "add", `github:kuraneko1/dsh-mobile-maxxing#${tag}`], { - 读取本地文件packages/dsh-mobile-maxxing/index.js:406
const pkg = JSON.parse(await readFile(new URL("../../package.json", import.meta.url), "utf8")); - 读取本地文件packages/dsh-mobile-maxxing/index.js:460
const pending = readFile(assetPath(file)).catch((error) => { - 读取本地文件packages/dsh-mobile-maxxing/index.js:472
const source = await readFile(assetPath("sw.js"), "utf8"); - 写入剪贴板packages/dsh-mobile-maxxing/client.js:482
await clipboard.writeText(text); - 发起网络请求packages/dsh-mobile-maxxing/client.js:1269
const response = await fetch("/dsh-mobile-maxxing/plugin-version", { cache: "no-store" }); - 发起网络请求packages/dsh-mobile-maxxing/client.js:1279
const response = await fetch("/dsh-mobile-maxxing/update-plugins", { method: "POST", headers: { "x-dsh-release": release } }); - 发起网络请求packages/dsh-mobile-maxxing/client.js:7658
const response = await fetch(`${PUSH_API}/mobile-send`, { - 发起网络请求packages/dsh-mobile-maxxing/client.js:11590
const response = await fetch(src); - 发起网络请求packages/dsh-mobile-maxxing/client.js:11951
void fetch(`${PUSH_API}/config`, { cache: "no-store" }).catch(() => {}); - 发起网络请求packages/dsh-mobile-maxxing/client.js:12017
const saved = await fetch(`${PUSH_API}/subscribe`, { - 写入本地文件packages/dsh-mobile-maxxing/notify/host.js:59
mkdirSync(dirname(file), { recursive: true }); - 写入本地文件packages/dsh-mobile-maxxing/notify/host.js:61
writeFileSync(temporary, `${JSON.stringify(value, null, "\t")}\n`, { mode: 0o600 }); - 写入本地文件packages/dsh-mobile-maxxing/notify/host.js:62
renameSync(temporary, file); - 读取本地文件packages/dsh-mobile-maxxing/notify/host.js:68
return JSON.parse(readFileSync(file, "utf8")); - 读取本地文件packages/dsh-mobile-maxxing/lib/markdown-cjk.js:65
const assets = readdirSync(join(dist, 'assets')); - 读取本地文件packages/dsh-mobile-maxxing/lib/markdown-cjk.js:72
indexSource: readFileSync(join(dist, 'assets', indexAsset), 'utf8'), - 读取本地文件packages/dsh-mobile-maxxing/lib/markdown-cjk.js:73
vendorSource: readFileSync(join(dist, 'assets', vendorAsset), 'utf8'), - 发起网络请求packages/dsh-mobile-maxxing/sw.js:102
if (!Number.isFinite(timeoutMs) || timeoutMs <= 0) return fetch(request); - 发起网络请求packages/dsh-mobile-maxxing/sw.js:106
return await fetch(request, { signal: controller.signal }); - 发起网络请求packages/dsh-mobile-maxxing/sw.js:167
fetch(request) - 发起网络请求packages/dsh-mobile-maxxing/sw.js:176
const response = await fetch(request); - 发起网络请求packages/dsh-mobile-maxxing/sw.js:201
const response = await fetch(url, { cache: "reload" }); - 发起网络请求packages/dsh-mobile-maxxing/sw.js:346
const response = await fetch(new URL("api/dsh-mobile-maxxing/push/vapid", SCOPE), { cache: "no-store" });
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成dsh-mobile-maxxing
这是一组插件,让 DeepSeek Harness(DSH)的 Web UI 在手机和平板上用起来更顺手。
PWA、移动端布局、通知、Markdown 表格、日文 UI,按需安装即可。
最新版本 v1.0.0 · 版本说明 · English
- 移动端本体可以直接装进原版 DSH,通知功能也不需要外部库。
- 判断依据是设备类型,不是屏幕宽度,所以窄窗口的 PC 和支持触控的 Windows PC 不会被当成移动端。
- PC 上不构建移动端 UI 和表格样式,保持 DSH 原样。
- 设备端的外观和输入设置按浏览器分别保存,不改写宿主机的共享配置。
展开完整文档(README 剩余 1 节)
dsh-mobile-maxxing
这是一组插件,让 DeepSeek Harness(DSH)的 Web UI 在手机和平板上用起来更顺手。
PWA、移动端布局、通知、Markdown 表格、日文 UI,按需安装即可。
最新版本 v1.0.0 · 版本说明 · English
- 移动端本体可以直接装进原版 DSH,通知功能也不需要外部库。
- 判断依据是设备类型,不是屏幕宽度,所以窄窗口的 PC 和支持触控的 Windows PC 不会被当成移动端。
- PC 上不构建移动端 UI 和表格样式,保持 DSH 原样。
- 设备端的外观和输入设置按浏览器分别保存,不改写宿主机的共享配置。
组件
| 组件 | 作用 | 当前版本 | 源码 |
| dsh-mobile-maxxing | PWA、通知、移动端 UX | 1.0.0 | 本仓库 |
| dsh-md-rendering | 移动端 Markdown 表格显示 | 0.1.3 | kuraneko1/dsh-md-rendering / packages/dsh-md-rendering |
| dsh-locale-ja | 65 个命名空间、2915 个键的日文 UI | 0.1.1 | kuraneko1/dsh-locale-ja / packages/dsh-locale-ja |
三个组件互相独立。在插件页面可以单独启用或停用。
CJK 自动链接修正为了不改动 PC 端渲染,单独拆成了 rdsh-markdown-cjk 包。
运行条件
- 验证目标 DSH:0.2.1-rc.2 / 0.2.1-rc.3
- 浏览器:当前版本的 Chrome / Edge / Safari,包含 iOS、iPadOS
- PWA 和 Web Push:访问 DSH 时必须走 HTTPS 或 localhost
- 系统通知:浏览器和 OS 两边都要允许通知
实际还取决于设备上的 OS、浏览器和 Push 服务,安装后请用设置页面的测试通知确认。
快速开始
一次装齐 3 个组件
用下面这一个安装 URL 就能装。
curl -fsSL https://raw.githubusercontent.com/kuraneko1/dsh-mobile-maxxing/main/scripts/install-mobile-bundle.mjs | node --input-type=module
默认装到 web 配置档:本体和日文化取各自仓库的 main,表格显示取 v1.0.0 的 0.1.3 产物。
装完后重启 DSH,再刷新浏览器。
想用别的配置档:
curl -fsSL https://raw.githubusercontent.com/kuraneko1/dsh-mobile-maxxing/main/scripts/install-mobile-bundle.mjs | DSH_PROFILE=web-mobile node --input-type=module
只装本体
dsh plugin --profile web add https://github.com/kuraneko1/dsh-mobile-maxxing
只加日文 UI
dsh plugin --profile web add github:kuraneko1/dsh-locale-ja
只加 Markdown 表格
dsh plugin --profile web add https://github.com/kuraneko1/dsh-mobile-maxxing/releases/download/v1.0.0/dsh-md-rendering-0.1.3.tgz
dsh plugin --profile web add 会同时更新依赖和 bundle,不需要 cd ~/.dsh/profiles/web。
日文化不随移动端本体一起打包,只有装了才会出现在语言列表里。
初始设置
1. 在手机上打开 HTTPS 的 DSH URL。
2. 按需添加到主屏幕。
- iPhone / iPad:Safari 分享 →「添加到主屏幕」
- Android / Chrome:菜单 →「安装应用」或「添加到主屏幕」
3. 打开 DSH 的 设置 → 移动端。
4. 启用通知,确认浏览器和 OS 的授权,然后发送测试通知。
5. 装了日文化的话,在显示语言里选日文。
6. 出现更新提示时,挑一个不影响当前会话的时机刷新。
界面
主要功能
PWA 与移动端 UX
- 添加到主屏幕、应用外壳离线启动、更新提示
- 侧边栏改为抽屉、一键进入设置、适配安全区域
- 键盘弹出时留出输入框空间,为终端提供 Esc / Tab / 方向键 / Ctrl 键
- 代码和评审内容折行,工具摘要和 Bash 预览在移动端的显示
- 文件搜索、右侧面板、模型菜单、长按与滑动操作的改进
- 浅色 / 深色 / 跟随终端主题,以及只把终端调暗的显示
终端模式按终端判定,不看宽度。只有移动端 UI 启用时,才构建专用样式和事件。
仅本终端的设置
在 设置 → 移动端 里,可以按浏览器分别修改以下项目。
- 正文、代码、终端的字号
- 显示语言和主题
- 作业详情、折叠已完成的轮次、运行中按 Enter、性能显示
- 通知、通知音、音量
- 新会话默认使用的权限
这些设置保存在 localStorage,不会改动 PC 或其他终端的设置,也不会改动主机的共享设置。
通知
| 应用状态 | 行为 |
| 前台显示中 | 应用内横幅和通知音。收到横幅 ACK 的终端跳过 Push |
| 后台、断开、退出时 | 通过 Web Push 发 OS 通知 |
| 点击通知 | 打开对应会话 |
默认只通知本终端发出的轮次完成。提问则不论来源都通知。
把配置档一侧的 notifications.onlyMobileTurns 设为 false,就能把 PC 发起的轮次也纳入通知范围。
v1.0.0 还加强了通知的可靠性和安全性。
- 用 requestId 和实际消息对应发送,不把延迟的请求分配到别的轮次
- 不凭猜测删除同一 User-Agent 的其他终端,只清理明确指定的旧 endpoint 和 Push 服务返回的 404 / 410
- 按终端并行投递,并设 10 秒期限
- 明确启用的订阅会在启动、恢复在线、变为可见时恢复
- 按配置档保存公开 origin 和待发送的标识符
- Push endpoint 限定 HTTPS,校验 DNS 的全部应答并连接到已校验的地址。不跟踪重定向
通知加密和 VAPID 用 Node 标准模块实现,不需要外部 web-push 库。
Markdown 表
- 针对移动端调整横向滚动、字号、边框、留白和跟随主题的背景
- 即使单独安装、不带移动端本体,也会根据终端信息判定移动端
- 优先采用明确指定的 desktop / mobile 模式,在 PC 上不加载 React,也不注册样式
- 不改变 Markdown 解析,也不改变表以外的正文
详见 packages/dsh-md-rendering/README.md。
日语 UI
- 翻译了 65 个命名空间、2915 个键,英语回退为 0
- 不包含在移动端本体里,只有独立的 dsh-locale-ja 拥有日语
- 支持 DSH 0.2.1-rc.2 / rc.3 的 peer 依赖
- 目录不完整时,pack-all 显示 REFUSED,不予分发
详见 packages/dsh-locale-ja/README.md。
安装器配置
| 环境变量 | 用途 | 默认值 |
| DSH_PROFILE | 安装目标配置档 | web |
| DSH_BUNDLE_TAG | 固定本体的 Git ref,以及包含表 tarball 的发布标签 | v1.0.0(本体为 main) |
| DSH_BUNDLE_BASE_URL | 表 tarball 的下载来源 | 指定标签的 GitHub Releases |
| DSH_LOCALE_REF | 固定日语化的 Git ref | main |
| DSH_MD_VERSION | 表包的版本 | 0.1.3 |
示例:
DSH_PROFILE=web-mobile \
DSH_BUNDLE_TAG=v1.0.0 \
DSH_LOCALE_REF=main \
DSH_MD_VERSION=0.1.3 \
node scripts/install-mobile-bundle.mjs
指定 DSH_BUNDLE_TAG 后,本体也会固定到该 Git ref。指定的发布里必须有对应的表 tarball。
故障排查
没有变成移动端显示
- 只看屏幕宽度不会判定为移动端。请确认 UA、platform、touch 信息。
- 如果用的是旧的离线 shell,请联网重新打开,更新 HTML 和客户端。
- DSH 更新后只有装饰消失,可能是上游 DOM 变更导致的 fail closed。此时仍以标准 UI 运行。
收不到通知
1. 确认是否通过 HTTPS 或 localhost 打开。
2. 确认浏览器和 OS 的通知权限。
3. 在 设置 → 移动端 里确认订阅状态和测试通知。
4. 默认 onlyMobileTurns: true 时,从 PC 发出的轮次不会通知。请确认移动终端一侧的设置和配置档设置。
5. 使用反向代理时,请从浏览器看到的公开 origin 打开一次应用,重新注册订阅。
装上了旧版本
pnpm 按 URL 缓存。不要只更新无版本 URL 的内容,请指定带版本的 tarball 或 Git ref。
也不要再用同一 URL 替换已发布版本的资产。
PC 上表的外观没变
这是设计如此。dsh-md-rendering 只对移动端生效,在 PC 上不注册样式。
文档
- 详细用法(日语)
- 详细用法(英文)
- 本体包的 README
- 开发笔记
- 实现参考来源
- v1.0.0 发布说明
开发
验证使用 Node.js 24。
npm test
npm run test:locale
npm run check:locale
npm run check:locale:generated
node scripts/pack-all.mjs
主要结构:
packages/dsh-mobile-maxxing/ 本体の host / client / service worker / tests packages/dsh-md-rendering/ 独立した Markdown 表プラグイン packages/dsh-locale-ja/ 日本語辞書と生成物 scripts/ インストーラーとパッキング tools/ 日本語辞書の生成・検証
没有统一的构建流程。浏览器侧直接分发原生 JavaScript,宿主侧用 Node 标准模块运行。
直接安装本地检出时:
dsh plugin --profile web add link:/path/to/dsh-mobile-maxxing
发布
export DSH_RELEASE_TAG="v$(node -p "require('./package.json').version")" # 別タグにする場合は変更
node scripts/pack-all.mjs --require-locale && \
gh release create "$DSH_RELEASE_TAG" \
"dist/dsh-mobile-maxxing-$(node -p "require('./package.json').version").tgz" \
"dist/dsh-mobile-maxxing.tgz" \
"dist/dsh-md-rendering-$(node -p "require('./packages/dsh-md-rendering/package.json').version").tgz" \
"dist/dsh-locale-ja-$(node -p "require('./packages/dsh-locale-ja/package.json').version").tgz"
DSH_RELEASE_TAG 同时用于 tarball 内的引导 URL 和 GitHub 发布标签。
dist/ 里过去的产物会保留,但发布时只附上本次的 4 个文件。日语化验证失败就不发布。
README 里带版本的 URL 由 pack-all 更新。不要复用不带版本的 URL,否则会引发 pnpm 缓存问题。
贡献者
- @kuraneko1(含以 _ryu15_ 名义的提交)— 实现、评审响应、日语化、验证、分发整备
- @AliceSaikawa — iOS 的 PWA、键盘显示、移动端 UI 改进
- 协助代码评审与验证的各位
贡献内容的细节也记录在 v1.0.0 发布说明 中。
License
MIT. See LICENSE.预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
kuraneko1/dsh-mobile-maxxing
把 DeepSeek Harness 的 Web UI 在手机上用透的综合插件:PWA、通知、移动端体验、CJK 显示
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,798已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,327已汉化DSH
71.5
终端编码代理esengine/DeepSeek-Reasonix
· 指南 · ACP · 扩展开发 · 规格 · 官方网站 · Discord · QQ
★ 36,021已汉化DSH
71.2
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 150,486已汉化DSH
71.1