npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-web-mobile

v3.0.3

Published

尽可能的使dsh适配竖屏等移动端设备

Readme

dsh-web-mobile — 手机上也能好好用 DSH

📦 已内置于 DSHA —— DeepSeek Harness 安卓启动器把本插件作为内置移动端适配,装 APK 开箱即用。感谢作者 @qiannianhuanxiang 的集成与推广 🙏


dsh-web-mobile 是 DeepSeek Harness Web UI 的移动端适配插件——让 DSH 在手机竖屏下也能好好用:

  • 弹窗变浮层:设置、文件树、预览改成底部 sheet,触屏好点
  • 状态栏避让:刘海安全区、深/浅主题、双击缩放都处理
  • 输入区不打架:权限胶囊、模型名、切换菜单在窄屏下不重叠
  • 长会话不卡流量:宿主返回的大 JSON(会话历史等)自动 gzip/brotli 压缩,手机端加载明显提速
  • 平板也管:768–1023px 触屏设备限宽居中,≥1024px 触屏大平板的会话行 ⋯ 菜单仍带「删除会话」;桌面端(鼠标指针)任何宽度都是完全 no-op,窄窗口/系统缩放也不会误启移动 UI

效果

| 会话主页 | 目录抽屉 | 设置界面 | | --- | --- | --- | | 移动端会话主页 | 目录抽屉 | 移动端设置界面 |

更新内容

v3.0.3 (兼容 0.1.7-rc.1 / rc.2)

  • 3.0.1 / 3.0.2 只有 tag 与 GitHub Release、从未发布 npm,两个版本的内容全部并入本版:npm 用户从 3.0.0 直升即得全部改动。宿主 0.1.6-alpha.2 建议维持 3.0.0、0.1.5 之前建议 2.4.1。

新功能

  • 会话删除端点安全加固(#114, PR #117):跨源请求一律 403(Origin 同源校验)、请求体上限 1 MiB(超限 413)、删除改走 .sessions-trash 回收站——删除的会话先改名再整目录移入回收站,manifest.json 记录恢复映射(零解压可还原),超过 24 小时的回收站条目在下次删除时顺带清理
  • 宿主图标跨代兼容(PR #88/#89 by @133563825as-ai):宿主 rc 代与 0.1.7 代的图标导出名互不相交,写死任何一代都会白屏,新增运行时取用层两代通吃
  • DSHA(Android 启动器)内置适配层落地(PR #81):装 APK 即用,无需单独安装本插件

修复

  • 加号菜单三连(PR #88/#89 by @133563825as-ai):加号「再点关闭」恢复可关;点加号不再把软键盘顶起导致第二击落空;点两下后输入框永久失焦、键盘再也弹不出来的问题修复
  • 输入区与头部批(PR #90–#99):模型菜单锚定/居中修正、点开时才发请求;模式与预设 chip 的 caret 方向、按压反馈;行内 pill 不再出现两个;谱系 chip 基线对齐;触屏点按高亮治理
  • 「再点关不掉」两处 + 层带(#102 by @133563825as-ai):工作区 chip 与智能体团队 chip 第二击恢复关闭;全屏右侧面板不再压住悬浮球(唯一的返回入口);头部右侧留白 26 → 10px
  • 设置区批:开关不再被拉成整行宽、内容区不再横向溢出 36px、会话头部页签条收紧 77 → 67px(PR #88/#89);0.1.7 紧凑行重设计适配(#111, PR #109);工具栏改纯 CSS 锚定、两个 reparent 任务删除(#105, PR #107);手机档魔数收口进手机 media、平板档 768–1023px 回上游排布(PR #88)
  • 会话菜单与删除:0.1.7 宿主会话菜单再换形适配(菜单项识别跟随新形态、归档行不再误注入删除项、删除确认卡重设计为居中毛玻璃卡、点遮罩才关);删除活跃会话在清理阶段失败时如实改报并补 workspace 记账,不再误报可重试(#115, PR #117)
  • 0.1.7-rc.2 弹窗回归(PR #116 by @BuvkB):宿主把设置弹窗 portal 到 body 后插件整族规则失效——设置导航恢复单行横滚、右上角工具栏不再遮挡内容且 ✕ 扩大热区、市场 byline 恢复单行、市场页顶恢复留白
  • 其余修复:模型选择 chip 窄屏分档(#101, PR #108/#109);stats 环在离线会话不再残留(#104, PR #106);第三方 thinking-effort 插件座位冲突(#60, PR #87);抽屉长按误触(#82, PR #83)与抽屉弹层层带(PR #85);面板头部按钮净空(PR #77 by @133563825as-ai);usage-stats 面板层级(PR #75);响应压缩写回调顺序与 end 参数(#80, PR #79 by @nanami-0713 / PR #86);样式 effect 热重载先删旧表再挂新表,不再残留旧样式

兼容与安全

  • 0.1.7-alpha.2 静态对账 28 条:插件代码 0 处需改(PR #88/#89 配套审计)
  • js-yaml 升至 4.3.2(GHSA 安全通告,PR #74)

v3.0.0 (兼容 0.1.6-alpha.2)

  • 建议 dsh 0.1.5 之前的版本使用本插件的 2.4.1 更好

新功能

  • 输入区常驻「添加文件」入口:宿主 0.1.6 删掉回形针后文件入口只剩「+」菜单,现在放回工具行(「+」右侧),点按直接打开系统文件选择器;可用性仍由宿主判定
  • 0.1.6-alpha.2 会话头部与输入框适配:空头部座位不再吃掉标题宽度、右侧栏展开按钮不再被误藏、后台任务/谱系芯片与标签行齐平、头部弹层改视口定位、输入卡片纵向留白压缩(单行 98 → 78px,moderate 档)
  • 文件列表手势:屏幕右缘左滑打开文件列表,面板打开时右滑关闭
  • 侧边栏面板的退出路径:进入替换主区的面板页(如插件管理)后,系统返回键 / 返回手势、再点一次已选中的面板行都能回到会话;面板视图下左上角按钮变为「返回会话」;面板出现时自右滑入、退出时会话淡入。宿主不提供面板选择能力时整条特性自动失效

修复

  • 点按路径的抽屉动画恢复:点左上角按钮打开、点右侧遮罩或按 Esc 收起都会平滑滑出
  • 打开抽屉后触摸抽屉本体左滑即可收回:判定区右缘与抽屉右缘对齐
  • 抽屉内的导航项(新会话 / 任务板 / SSH / 搜索)点按后正常执行,抽屉同时收起
  • 文件列表面板的顶部一行(标签 / 新建 / 分屏 / 退出全屏)不再被手机状态栏遮挡
  • 会话头部的「打开文件列表」按钮固定在屏幕右上角,与左侧的目录抽屉按钮对称
  • 「后台任务」芯片可以展开了:弹层不再被会话头裁掉,也不再落到屏幕外,列表项可点、点外部可收起
  • 手机端会话头不再把模式名压成一个图标:模式名、会话标题与子代理计数各自保留文字,窄屏让位的是后台任务芯片的长标签
  • 会话头两行紧凑化(97 → 77px),标题行与左右两侧的抽屉 / 文件列表按钮对齐在同一水平线上
  • 抽屉里会话行的 ⋯ 菜单在手机上可用:长按会话行即打开,点按 ⋯ 只切换菜单、不再顺手收起抽屉,菜单与删除确认弹窗都显示在抽屉之上且可点
  • 新会话页的输入框恢复两行高度:不再被压出滚动条,提示文案与输入内容完整可见(卡片 84 → 108px)
  • 消息文字跟随设置里的「字号大小」,不再与代码块/表格混排成两种字号
  • 抽屉里的会话行点按后可正常切换会话并收起抽屉
  • 抽屉遮罩跟随抽屉滑出渐隐,宽窄断点来回切换后依然生效
  • 与第三方适配插件(如 dsh-web-all)共存时,移动端框架与控件隐藏规则不再受样式表注入顺序影响,同一视口下结果一致
  • Android 上「提问」自定义输入框与文件面板的搜索 / 跳转 / 页码框回到紧凑字号:16px 下限只为 iOS 的聚焦放大而设
  • 上下文圈的可点区域增大到 28×34,环的墨迹保持官方 14px 不放大,与发送键之间留出 6px 缝
  • 抽屉底部不再有失效的「文件」入口:文件列表从会话头右上角按钮或屏幕右缘左滑打开
  • 抽屉里点「插件」等面板入口正常切换主区,抽屉同时收起(原先抽屉滞留不走)
  • Agent Team 面板不再被会话头滚动盒裁掉:面板改视口定位,关闭键不会落到屏幕外关不掉;面板内长任务标题不再挤成单行撑破面板
  • 插件详情页左上角的宿主返回键与目录按钮不再重叠:面包屑右移让位,点「返回插件列表」不再误开抽屉
  • 会话头 chips 在任何手机宽度都保留全字:动作行不参与收缩,收缩职责交还标题段的横向滑窗当避震器(此前的分档规则在真机窄屏是死档,已删)
  • 与 dsh-web-all 共存时会话头控件簇不再被外来规则顶成 44px:各控件回到自身设计尺寸并与标题带同线居中(状态类 chip 的 25px 触控下限不受影响)
  • 状态行左端「N 轮」不再被裁掉且划不到:宿主居中排布叠加横向溢出让它落到负坐标,现改左对齐,溢出全部落在可滑到的一侧

v2.4.1

修复

  • 大平板横屏(≥1024px 触屏)会话行 ⋯ 菜单缺少「删除会话」:删除项解除宽度门控,触屏设备任何宽度都可用,确认弹窗在宽屏居中限宽;鼠标操作的桌面窗口任何宽度仍不注入
  • 拖动桌宠类悬浮物经过屏幕左侧会误触发侧边栏:手势层新增两级让位——可拖动悬浮窗走位置启发式(起点落在 position:fixed|absolute 且 ≤200px 的自由定位浮层上即让位,dsh-pet 桌宠实测命中),配合实现的组件可挂 data-mobile-nav-dragging 标记(被按住元素/祖先或 body)让手势层整笔让位;让位≠拦截,拖动照常执行

v2.4.0

新功能

  • 移动端会话删除(移植自 fork wzxmt-zhc v2.7.0):会话行 ⋯ 菜单新增「删除会话」项,配确认弹窗。宿主抽屉以会话行形式渲染会话列表后生效(0.1.1-rc.2 的抽屉是图标栏,属宿主升级预备)
  • dsh-file-viewer 移动端适配(移植自 fork wzxmt-zhc):查看器面板套用移动端布局,未安装该插件时零影响

修复

  • 手机端会话视图标签页过多时逐字竖排堆叠,现可横向滑动(#41 by @782042369)
  • 贴左缘划词选择会被抽屉滑出手势劫持,选区被拖没(#43 by @chstd)
  • 输入框里拖选择手柄仍会误开抽屉并清掉选区(#44 by @chstd)
  • iPhone 上一点输入框页面就自动放大、捏合也缩不回来,只能重开应用(#45 by @pandady)
  • 宿主改写 viewport meta 后刘海安全区适配失效(PR #46 by @BuvkB)
  • 桌面窄窗口/系统显示缩放会误启移动端 UI(右上角 Files 按钮、底部状态条全套出现),现鼠标操作的窗口任何宽度都保持桌面版
  • 设置页「Plugins」配置卡与「Web UI Plugins」分组卡标题恢复官方样式:左对齐、标准内边距与间距、箭头无灰底
  • 移动端消息流排版与 DSH 0.1.2-rc.1 的 Lexical 输入框兼容,输入区不再出现左右死区(PR #47 by @johnhom1024)
  • 会话视图任意标签页(轨迹、文件查看器、插件注册视图)打开期间,屏幕左缘横滑让位给标签页内的横向内容,FAB 按钮仍可呼出抽屉;文件查看器布局标记只由查看器自身触发
  • 子代理会话输入区右侧的上下文圈与发送键贴右对齐
  • 触屏设备上用户消息气泡正常显示,tooltip 压制仅作用于消息操作行
  • 新会话输入框居中时,git 分支胶囊与输入行保持间距
  • 输入区固定控件(模型条、上下文圈、发送键)的钉位与收缩规则覆盖 Lexical 可编辑输入框
  • 响应压缩的响应头匹配不区分大小写
  • iPhone 上键盘收起后,点发送/停止/加号按钮不再重新唤起键盘盖住对话(PR #48 by @johnhom1024)

兼容插件

下列版本为实装并验证过的版本(判据是 profile cordis.patch.yml 的行启用状态——包在 node_modules 里 ≠ 插件生效;profile 用 ^ 范围会静默升 minor,升级后重新对账)。

安装

DSHA 用户无需单独安装:DSHA 已内置本插件,装 APK 即用。

从 npm 一行装(仓库自带构建产物,无需构建配置),装完重启 dsh web:

dsh plugin --profile web add dsh-web-mobile

旧版迁移:装过旧名 dsh-mobile-nav(更早为 @dsh-external/dsh-mobile-nav)的用户请先移除再装新名——dsh plugin --profile web rm <旧键名>;patch 行 id 随包名一起换了,新旧并存会把同一插件注册两份,不迁移也会留下死依赖或加载失败。

GitHub 直装:dsh plugin --profile web add github:mexiaosqwq/dsh-web-mobile

本地开发:

dsh plugin --profile web add link:/path/to/dsh-web-mobile

构建

pnpm install
pnpm build

lib/ 与源码同步入库,改动源码后重新构建再提交。

贡献与工程

欢迎大家的 issue 和 PR,我会尽可能地进行解决!

工程约定见 AGENTS.md;回归探针 scripts/probes/ 22 个锚点可单跑,兼作宿主升级绊线。

License

MIT