lehhair/dsh-mobile 预览 preview

lehhair/dsh-mobile

Desktop桌面端 Native原生 ⭐ 25 BSD-3-Clause Clients & Launchers客户端与启动器

Project Overview项目介绍

lehhair/dsh-mobile is a DSH-native plugin that adds full mobile responsive support to the DSH WebUI, built exclusively for the DeepSeek Harness ecosystem. It follows the PiUI pager structure, rearranging the default three-column desktop layout into a two-page horizontal scroll-snap pager when the viewport width is 768px or smaller. One page is a half-open sidebar with dynamically adaptive width, and the other is a full-width chat page that retains all original chat rendering. To install the latest version, you can run the DSH plugin CLI command to add the pre-built tarball from the latest GitHub release, then restart the dsh web process to activate it.

This plugin is designed for DSH users who frequently access the DSH WebUI from mobile devices like phones, foldables, and small tablets. The usage workflow is straightforward: on mobile viewports, you can swipe left to go to the full-width chat page, and swipe right to return to the half-open sidebar page. When you stop swiping, the page automatically snaps to the nearest full page so you never get stuck on a half-visible page. All sidebar content stays fully rendered in the DOM at all times, so switching between pages is instant with no lag or delayed loading.

dsh-mobile is released under the permissive BSD-3-Clause open source license. All styling changes are scoped to a custom data attribute, so when you uninstall the plugin, the DSH WebUI reverts back to its original desktop layout immediately. The only known limitation is that the details column still follows core DSH behavior to close automatically on narrow viewports, so the pager only supports two pages. Keyboard inset adjustments rely on the modern browser visualViewport API, and will fall back to 0 if the API is not available.

这是lehhair开发的DSH WebUI移动端适配原生插件,采用PiUI翻页器结构,在窄屏(≤768px)下将原三栏框架重排为两页横向scroll-snap翻页器,分别是半开侧边栏页和全宽聊天页。支持通过DSH插件命令行直接安装GitHub Release构建产物,无需修改DSH核心代码,官方rc.2发行版可直接使用。

滑动操作逻辑简单,向左拖动可切换到聊天全屏页,向右拖动回到侧边栏页,滑动停止后会自动吸附到最近整页,不会卡在半页状态。侧边栏内容始终完整渲染在DOM中,滑动切换无需延迟渲染,切回立即可见。宽度会自动适配不同尺寸的移动设备,从竖屏手机到横屏手机、折叠屏、小平板都能适配。

该插件采用BSD-3-Clause许可证开源,完全是纯客户端适配,所有样式规则都限定在特定作用域,卸载后立即恢复原生样式。已知限制是窄屏下详情列仍遵循框架原有逻辑自动关闭,因此翻页器只有两页;键盘内边距依赖现代浏览器的visualViewport API,不支持时会自动回退。

Pre-install check安装前体检Compatibility · Security兼容性 · 安全性 1 note1 项提示
  • 25 stars - an early-stage project星标 25,属于早期项目
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 "https://github.com/lehhair/dsh-mobile/releases/latest/download/dsh-external-dsh-mobile.tgz"

把 lehhair/dsh-mobile 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

dshfind

dsh-mobile

DSH WebUI 移动端适配插件(PiUI 翻页器结构):窄屏下框架本身就是横向 scroll-snap 翻页器,两页卡片——半开侧边栏页(手机 clamp(280px, 70vw, 360px);宽屏 560-768px 随视口涨到 clamp(360px, 50vw, 420px),内容拉伸铺满整页)+ 全宽聊天页。滑到侧边栏页后聊天卡片仍在右边露出一半(PiUI 同款 overlayWidth 效果),聊天渲染零改动。纯客户端适配,零核心改动——官方 rc.2 发行版直接可用。

功能

  • PiUI 翻页器:≤768px 时三栏框架重排为两页横向 snap 轨道——侧边栏页半开宽(约半个视口),聊天页全宽;滑到侧边栏页时聊天卡片在右半露出(半边信息流),PiUI 同款结构
  • 宽度自适应:560-768px 宽屏(横屏手机、大折叠屏、小平板)下侧边栏页从 360px 随视口涨到约半个视口(上限 420px),侧边栏壳冻结的桌面 280px 内容同步拉伸铺满页列——屏幕变宽,侧边栏内容跟着变大,不再留白
  • 输入栏省位:移动端权限选择器只留盾形图标(标签与箭头收起,紧贴 + 按钮),模型名宽度自适应(以输入栏行宽为容器查询:行内空间足够就直接显示完整模型名,行位紧张才限宽 96px),超长时带间距的单向循环跑马灯(双副本 + GPU transform,尾部滚出留空白再从头进入;prefers-reduced-motion 下回退省略号),上下文圆环与权限/+/发送统一 36px 圆形、固定座位不挤压(模型选择器让位收缩),上下文明细面板限宽不溢出——任何宽度都不再挤压、变形、重叠或换行
  • 侧边栏始终完整渲染:窄屏下控制器自动展开 AppFrame 折叠的侧边栏并保持(滑动翻页不同步状态)——侧边栏列的内容在聊天全屏时也完整留在 DOM 里,滑回来立即可见,绝不"滑动才跟着渲染"
  • 同色区分:侧边栏与信息流同色(平页,无圆角阴影);只有信息流是卡片(16px 圆角 + 阴影 + 细边框),PiUI 同款视觉
  • PiUI 3D 翻页:滚动时聊天卡片 rotateY/scale 跟随(transform-origin 偏向滑动侧),prefers-reduced-motion 关闭
  • 吸附修正:滑动停止后自动吸附最近整页(滑不到位自动回弹/修正),永不卡半页
  • 安全区与键盘:viewport-fit=cover + safe-area env() 变量 + visualViewport 驱动的 --dshm-keyboard-inset;100dvh 动态视口
  • 原生视觉:桌面宽度下逐字节等同原生(全部规则以 <html data-dsh-mobile> 为作用域,卸载即恢复原样)

效果

桌面(原生三栏) 手机(侧边栏半开,聊天露半边) 手机(聊天全屏)
桌面原生 侧边栏半开 聊天全屏

安装

推荐:GitHub Release 构建产物(开箱即用)

releases/latest 永远指向最新版本,链接不用随版本改动:

dsh plugin --profile web add "https://github.com/lehhair/dsh-mobile/releases/latest/download/dsh-external-dsh-mobile.tgz"

重启 dsh web,用手机模式(DevTools 设备模拟)或真实手机访问即可。

⚠️ 升级注意:pnpm 会按 URL 缓存 tarball——同一 latest 链接在新版本发布后可能命中旧缓存。装到旧版时先 dsh plugin --profile web remove @dsh-external/dsh-mobile 再重新安装(必要时 pnpm store prune)。

开发环境(从源码)

git clone https://github.com/lehhair/dsh-mobile.git
dsh plugin --profile web add link:E:/dev/dsh-mobile

使用

  • 初始:侧边栏半开常驻(左侧平页 + 右侧半边聊天卡片)
  • 聊天全屏:手指向左拖;回侧边栏:手指向右拖(跨过中点自动吸附整页)
  • 桌面不受影响:≥769px 时框架恢复三栏

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-plugin 下一个 Next dsh-branchmark →