21hbguo/dsh-mobile-ui 预览 preview

21hbguo/dsh-mobile-ui

Desktop桌面端 Native原生 ⭐ 3 BSD-3-Clause Clients & Launchers客户端与启动器UI & Themes界面与主题

窄屏(默认视口宽度 ≤ 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,对页面加载速度几乎无影响。

Pre-install check安装前体检Compatibility · Security兼容性 · 安全性 2 warnings2 项注意
  • 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 从桌面三栏布局重构为全屏聊天布局:侧栏与右侧面板变为抽屉、顶部悬浮操作条 + 全屏按钮、返回键退栈,桌面宽度下零影响。

License Version Platform

窄屏全屏聊天布局 侧栏抽屉

✨ 功能特性

  • 📱 全屏聊天布局:三栏 + 右侧面板列脱离文档流,聊天区占满整屏。
  • 🗂️ 侧栏 → 左侧抽屉:点顶部 ☰ 滑出;点遮罩、收起按钮、或在侧栏里点了会话/「新会话」自动收起。
  • 📄 右侧面板 → 抽屉:详情列与 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(本文以 web profile 为例)。
  • 构建需要 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 →

← 上一个 Prev dsh-tool-policy 下一个 Next foreman-dsh →