21hbguo/dsh-mobile-ui
窄屏(默认视口宽度 ≤ 860px,可配置)下把 DeepSeek Harness Web GUI 从桌面三栏布局重构为全屏聊天布局:侧栏与右侧面板变为抽屉、顶部悬浮操作条 + 全屏按钮、返回键退栈,桌面宽度下零影响。
catalog descriptioncatalog 简介 / catalog description:DSH Web GUI 手机端 UI 适配插件:窄屏下全屏聊天布局(抽屉化侧栏/面板 + 顶部操作条 + 返回键退栈),桌面宽度零影响
Project Overview项目介绍
This is a native plugin built exclusively for DeepSeek Harness (DSH), designed to adapt DSH’s web graphical interface for mobile device viewing. When the viewport width meets or falls below the configurable breakpoint (default 860 pixels), the plugin automatically reworks DSH’s default three-column desktop layout into an optimized full-screen chat layout. Sidebars and right-side panels are converted to sliding drawers accessible via a floating top action bar, and the original desktop layout remains completely unchanged when the viewport is wider than the breakpoint, so existing desktop users will not notice any difference at all.
Installation starts with cloning the repository to your local machine, then running the provided bash build script to generate the output package in the lib directory. The build script automatically detects your existing DSH source checkout in common locations, but you can manually set the DSH_CHECKOUT environment variable to point to your local DSH codebase if automatic detection fails. After building, you can install the plugin via DSH’s hot install command that does not require a full DSH restart, or manually add it to your DSH configuration file for a persistent install that works after restarting DSH.
The plugin is released under the permissive BSD-3-Clause open source license, and it collects no user data, sends no external network requests, and stores all configuration settings only locally on your device. It is split into two lightweight, well-structured parts: a Node.js host side that only declares the DSH configuration namespace, and a pure DOM browser side that is just 16KB when gzip compressed. It has no third-party runtime dependencies, works on all modern mobile and desktop browsers, and properly handles common edge cases like Android back button behavior and iOS Safari fullscreen limitations.
这是专为DeepSeek Harness(DSH)开发的原生插件,用于给DSH的网页版GUI做手机端适配。当视口宽度小于等于可配置的断点值(默认860像素)时,插件会自动把原桌面端三栏布局重构为全屏聊天布局,侧栏和右侧面板转为抽屉式设计,桌面宽度下完全不改变原有布局。
安装插件需要先克隆仓库到本地,构建产物需要指向已检出的DSH源码,支持热装配免重启使用,也可以手动编辑配置文件添加后重启生效。插件支持通过DSH设置页或者配置文件两种方式修改开关状态和断点值,验证方法简单,用移动浏览器或者桌面开发者工具的设备模式即可测试。
插件遵循BSD-3-Clause开源许可,不收集任何用户数据,不发起网络请求,所有配置仅保存在本地。它分为Node.js主机端和浏览器DOM端两个部分,不依赖额外第三方运行时,压缩后浏览器端包体积仅约16KB,对页面加载速度几乎无影响。
请帮我安装这个 DSH 插件。安装前先完成【兼容性检查 + 安全性检查】,检查通过再动手。
插件:dsh-mobile-ui(21hbguo/dsh-mobile-ui)
仓库:https://github.com/21hbguo/dsh-mobile-ui
本站详情页:https://www.yhbd.top/plugins/21hbguo-dsh-mobile-ui/
本站登记:类型 client · 归类 原生 DSH 插件 · 许可证 BSD-3-Clause · ⭐ 3 · 最近提交 2026-08-16 · 主语言 TypeScript
按下面顺序执行,每步先把结论告诉我,再进入下一步:
【1 兼容性检查】
① 我这边:DSH 版本、Node 版本、操作系统、当前 profile(web / desktop)。
② 读它的 README、package.json、插件 manifest,列出它要求的 DSH 版本 / Node 版本 / 操作系统 / 外部依赖 / 需要另外先装的运行时。
③ 逐条比对,结论只写「满足 / 不满足 / 未知」三种;不满足的给出可行替代方案。
④ 检查是否和我已装的插件冲突:命令名重复、skill / tool 重名、端口占用、重复注册的 MCP server。
【2 安全性检查】
① 仓库可信度:和上面「本站登记」是否一致;star / fork 数、创建时间、最近提交,是否归档或长期停更。
② 安装脚本:逐行看 package.json 的 preinstall / install / postinstall,以及 install.sh、setup.ps1 之类脚本。出现 curl|bash、下载后直接执行、混淆代码、访问与插件功能无关的域名,立刻停下来告诉我,不要继续装。
③ 依赖:列出新增依赖,标出无人维护、或与知名包拼写近似的可疑包(typosquatting)。
④ 权限与副作用:它会读写哪些目录、访问哪些域名、需要哪些 DSH 权限(filesystem / network / shell / clipboard 等),以及怎么卸载和回滚。
⑤ 如果它要求 sudo / 管理员权限,或权限明显超出功能所需,先停下来问我。
【3 安装】
上面两步没有「不满足」和「高危项」时才执行;用官方推荐方式安装,不要自行提权。
【4 汇报】
用表格输出:检查项 / 结论 / 依据 / 是否需要我决策。拿不准的一律写「未知」并说明要我怎么确认——不要猜,也不要替我决定。
Send this message to DSH in your current session: it verifies compatibility and security first (answering met / not met / unknown item by item) and only installs once everything checks out — it will stop and ask you if it finds a high-risk item. The box scrolls; the copy is the full prompt. CLI install commands may not be accurate across systems, so DSH is the safer route.把上面这条消息直接发给当前会话里的 DSH:它会先核对兼容性与安全性(逐条给「满足 / 不满足 / 未知」),确认没问题再安装,有高危项会停下来问你。框内可滚动,复制到的是完整提示词;安装命令不一定准确,发给 DSH 更稳。
- Only 3 stars - very few users, little community feedback星标只有 3,几乎没人在用,遇到问题缺少社区反馈
- Desktop client: installation downloads an executable - verify the publisher and checksums桌面客户端:安装会下载可执行文件,请核对发布者与校验和
DSH walks through these 9 checksDSH 会逐条核对这 9 项
Compatibility兼容性
- DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
- External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
- Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册
Security安全性
- Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
- Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
- curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
- Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
- Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
- Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式
Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。
Or use CLI install (for developers)或使用命令行安装(适合开发者)
CLI Install命令行安装
dsh plugin --profile web add github:21hbguo/dsh-mobile-ui
把 21hbguo/dsh-mobile-ui 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-mobile-ui — DSH Web GUI 手机端 UI 适配插件
窄屏(默认视口宽度 ≤ 860px,可配置)下把 DeepSeek Harness Web GUI 从桌面三栏布局重构为全屏聊天布局:侧栏与右侧面板变为抽屉、顶部悬浮操作条 + 全屏按钮、返回键退栈,桌面宽度下零影响。

✨ 功能特性
- 📱 全屏聊天布局:三栏 + 右侧面板列脱离文档流,聊天区占满整屏。
- 🗂️ 侧栏 → 左侧抽屉:点顶部 ☰ 滑出;点遮罩、收起按钮、或在侧栏里点了会话/「新会话」自动收起。
- 📄 右侧面板 → 抽屉:详情列与 aionui 的「资源列 / 预览列」变为右侧抽屉(点顶部面板按钮或 aionui 浮出按钮打开)。
- 🎛️ 顶部悬浮操作条:☰ 侧栏 · 面板 · ⟳ 刷新 · ⛶ 全屏(Fullscreen API)。
- ⏎ 返回键退栈 + 全屏锁定(全屏 / PWA standalone 内):系统返回键按「最上层优先」逐层关闭 —— aionui 对话框 → 模态对话框 → 侧栏抽屉 → 右侧面板;层全关完后再按返回也只是吞掉,退出全屏唯一途径是 ⛶ 按钮。
- 🔄 Android 返回键防退出:系统返回先退全屏时,插件关掉当前层并立即恢复全屏(粗指针设备生效)。
- 📵 会话切换抑制键盘:切换 session 后不自动聚焦 composer(键盘不弹出,可先滑动浏览;手动点输入区不受影响)。
- 📲 移动端细节:
viewport-fit=cover安全区适配(刘海/底部横条)、16px 输入框字号防 iOS 聚焦缩放、双击缩放禁用、PWA meta(可「添加到主屏幕」全屏运行)。 - 🖥️ 桌面零影响:所有规则挂在
body.dsh-mobile开关类下,离开窄屏即恢复桌面三栏布局与原始 viewport meta。
📐 架构
两个半区,通过 DSH 设置系统连接:
flowchart LR
subgraph Host["Host 半区(Node.js)"]
H["src/index.ts<br/>settings 命名空间 mobile-ui<br/>enabled / breakpoint"]
end
subgraph Client["浏览器半区(lib/client.js,纯原生 DOM)"]
C1["MobileUiEngine<br/>matchMedia(breakpoint) 驱动<br/>body.dsh-mobile 开关类"]
C2["设置卡片<br/>settings.plugin.item 席位"]
C3["注入样式表 + 顶部操作条<br/>+ viewport/PWA meta"]
end
DS["DSH settings<br/>(设置页 / settings.yaml)"]
H --> DS --> C1
DS --> C2
C1 --> C3
- Host 半区只声明配置命名空间
mobile-ui(无路由、无副作用),设置经 DSH settings 系统读写。 - 浏览器半区是纯 DOM 适配层,无 react 运行时依赖(react 由 web 宿主提供),client bundle gzip 约 16KB。
- 布局状态全部取自 frame 自身稳定钩子:侧栏 =
data-sidebar-collapsed属性;aionui 两列 = 解析 frame 内联 grid 轨道(MutationObserver 镜像为dsh-mobile-explorer-open/dsh-mobile-preview-open类),不与内部框架耦合。 - 断点取值优先级:settingsScope 就绪 → 其
breakpoint;否则退回装配配置的默认值。
🚀 快速开始
前提
- 已安装 DeepSeek Harness(DSH)并运行 Web GUI(本文以
webprofile 为例)。 - 构建需要 DSH 源码 checkout(用于提供 tsc / tsdown / 内部类型包),见下方构建。
Showing the opening section of the README — the full document lives in the repository以上为 README 开头摘要,完整文档在仓库内 · View the full README on GitHub →在 GitHub 查看完整 README →
reactive-resume/reactive-resume
ningbainb/deepseek-harness-desktop
elysia395/dsh-wallpaper-engine
ChisaAlter/Deepseek-Harness-Desktop
Nwflower/dsh-claude-style
rison114514/dsh-endfield-ui
Links2008/DeepSeek-Harness-Desktop
XCNXNXNX/dsh-portable-tavern