DSH Plugins Marketplace

DSH Plugins

Plugins

/

UI & Experience

/

dsh-web-mobile

m

dsh-web-mobile

Manifest valid★ 176

DSH Web UI Mobile Adaptation: Great on Narrow Screens, Suitable for Wide Screens

UI (client)hasBundlePatch

dsh-web-mobile — Use DSH comfortably on mobile too

DSH Web UI 移动端适配:窄屏好用,宽屏适用

MIT dsh-plugin awesome · DSH plugin

📦 Built into DSHA — the DeepSeek Harness Android launcher ships this plugin as its built-in mobile adaptation, ready to use straight from the APK. Thanks to author @qiannianhuanxiang for the integration and promotion 🙏


dsh-web-mobile is the mobile-adaptation plugin for the DeepSeek Harness Web UI — it makes DSH work well in portrait phone mode:

  • Sidebar → drawer: portrait phones get an overlay drawer; conversation area full width; tapping a row auto-closes it; swipe right from left edge to open, swipe right inside to close
  • Modals → floating layers: settings, file tree, previews become bottom sheets, touch-friendly
  • Status bar safe: notch safe areas, dark/light themes, double-tap zoom handled
  • Input area conflict-free: permission pills, model names, switcher menus don't overlap on narrow screens
  • Long sessions save data: large JSON responses (history, etc.) auto gzip/brotli compressed, noticeably faster on mobile
  • Tablets covered: 768–1023px touch devices capped & centered; ≥1024px large touch tablets keep ⋯ "Delete conversation" on rows; desktop (mouse) is a full no-op at any width — narrow windows/system scaling won't trigger mobile UI
  • Diagnostics: ?mobile-nav-debug=1 shows a floating diagnostics bar (viewport / overlay state / JS errors)

Results

Conversation homeDirectory drawerSettings screen
Mobile conversation homeDirectory drawerMobile settings screen

Updates

Unreleased

New features

  • File list gesture: swipe left from right edge to open, swipe right to close

Fixed

  • Tapping nav items in the drawer (New chat / Task board / SSH / Search) performs the action and collapses the drawer
  • The top row of the file list panel (tabs / New / Split / Exit fullscreen) is no longer hidden under the status bar
  • The "Open file list" button in the session header is pinned to the top-right corner, symmetric with the drawer button on the left
  • The "Background tasks" chip is now expandable: the pop-over is no longer clipped by the header or pushed off-screen; items are tappable, tap outside to collapse
  • The mobile session header no longer collapses the mode name into an icon: mode name, session title and sub-agent count keep their text; on narrow screens only the background-tasks chip's long label yields space
  • Session header compacted to two rows (97 → 77px); the title row is aligned with the drawer / file-list buttons on both sides
  • The ⋯ menu on drawer session rows now works on phones: long-press opens it; tapping ⋯ only toggles the menu, no longer closing the drawer; menu and delete dialog display above the drawer and stay tappable
  • The New chat input box is back to two rows tall: no scrollbar, prompt and input fully visible (card 84 → 108px)
  • Message text now follows the "Font size" setting, no longer two sizes mixed with code blocks/tables
  • Tapping a drawer session row now reliably switches sessions and collapses the drawer

v2.4.1

Fixed

  • Large tablet landscape (≥1024px touch): the ⋯ menu on session rows lacked "Delete session". The delete item is no longer width-gated — available at any width on touch devices; the confirm dialog is centered and width-capped on wide screens; mouse desktops still get no injection at any width
  • Dragging a floating widget (desktop pet) across the left edge would falsely trigger the sidebar. The gesture layer adds two-tier yielding: draggable floating windows use a position heuristic (yield when the touch-down lands on a position:fixed|absolute freely-positioned layer ≤200px — verified on the dsh-pet desktop pet); implementations may attach a data-mobile-nav-dragging marker (held element/ancestor or body) to yield for the whole gesture. Yielding ≠ intercepting — the drag still executes

v2.4.0

New Features

  • Mobile session deletion (ported from fork wzxmt-zhc v2.7.0): a "Delete Session" item is added to the session-row ⋯ menu, with a confirmation dialog. Takes effect once the host drawer renders the session list in session-row form (the 0.1.1-rc.2 drawer is an icon bar, a preparatory step for a host upgrade)
  • dsh-file-viewer mobile adaptation (ported from fork wzxmt-zhc): the viewer panel adopts the mobile layout; zero impact when the plugin is not installed

Fixed

  • On mobile, too many session view tabs would stack vertically character-by-character; they can now scroll horizontally (#41 by @782042369)
  • Text selection starting at the left edge was hijacked by the drawer swipe-out gesture, dragging the selection away (#43 by @chstd)
  • Dragging selection handles inside the input box would still open the drawer and clear the selection (#44 by @chstd)
  • On iPhone, tapping the input box would auto-zoom the page and pinch couldn't zoom back out — the only option was to reopen the app (#45 by @pandady)
  • After the host rewrites the viewport meta, notch safe-area adaptation broke (PR #46 by @BuvkB)
  • Narrow desktop windows / system display scaling would falsely enable the mobile UI (the full set: top-right Files button, bottom status bar); mouse-driven windows now keep the desktop layout at any width
  • Restored official styling for the "Plugins" config card and "Web UI Plugins" group card titles on the settings page: left-aligned, standard padding and spacing, arrows without gray background
  • Mobile message flow layout is now compatible with the DSH 0.1.2-rc.1 Lexical input box; the input area no longer has left/right dead zones (PR #47 by @johnhom1024)
  • While any session view tab is open (trace, file viewer, plugin registry view), left-edge horizontal swipes yield to the tab's horizontal content; the FAB button can still summon the drawer; file-viewer layout markers are triggered only by the viewer itself
  • In sub-agent sessions, the context ring and send button on the right side of the input area are right-aligned
  • On touch devices, user message bubbles display normally; tooltip suppression applies only to the message action row
  • When the new-chat input box is centered, the git branch pill keeps its spacing from the input row
  • Pinning and collapse rules for fixed input-area controls (model bar, context ring, send button) now cover the Lexical editable input box
  • Response header matching for response compression is now case-insensitive
  • On iPhone, after the keyboard is dismissed, tapping the send/stop/plus buttons no longer re-summons the keyboard to cover the conversation (PR #48 by @johnhom1024)

v2.3.0

New features

  • Sidebar gesture (#16, PR #37 by @wingsky-1): swipe right within the left 45% of the screen to summon the sidebar; the same gesture swiping left closes it. The PR author made some "fine-tuning" to this feature

Optimizations

  • Per-frame streaming overhead: status-bar TPS anchored fast path; market installed list coalesced, skipped when market closed
  • Off-screen drawer session tree skips rendering, drawer stays snappy

Fixes

  • 手势打开侧边栏后点背板要点两次才关
  • 手势后短时间内真实点按(如点会话行)偶尔无响应
  • 滑动开侧边栏偶尔没反应或开了又弹回
  • 真机(Android Chrome)贴左缘右滑呼出侧边栏会触发浏览器「返回上一页」:根元素 overscroll-behavior-x: none 抑制 Chrome 边缘历史导航手势
  • 起指落在横向滚动容器(状态栏读出条、消息代码块)内时让位给原生滚动,不再误开侧边栏
  • 系统开启「减弱动态效果」时侧边栏仍播放滑入滑出动画,现与设置面板一致直接禁用
  • ?mobile-nav-debug=1 诊断条在代码重组后没有接线,访问调试参数无任何显示

Refactor

  • 侧边栏手势的左缘识别区改为纯几何判定:按视口宽度 45% 现算(390px 手机约 176px),横竖屏与平板自动跟随,不再注入宿主 DOM 的隐形热区元素

Compatibility

  • Adapted for dsh 0.1.2-alpha.1 (session log download API coexists across two type generations)
  • Peer dependency range widened to 0.1.2 pre-releases; missing UI peer made optional

v2.2.0

Fixes

  • 修复 v2.1.5 版本安装后 node 报错问题,绷不住了(#31 by @Yurzi)
  • 手机上点抽屉历史会话仍可能「抽屉收起但对话不打开」(#32 by @chstd)
  • 上游子代理插件 0.1.0-rc.6 起芯片「点开一闪即退」(PR #33 by @EricJin2002)
  • 手机端点插件市场搜索框触发 iOS 强制放大且无法恢复:搜索框字号提到 16px(PR #35 by @BuvkB)
  • 刘海屏上界面能被上滑抬起、输入框下方露白、最新消息被压住

v2.1.5

新功能

  • 大 JSON 响应透明压缩,减少流量消耗(移植自 fork wzxmt-zhc/dsh-web-mobile v2.5.0)

修复

  • 顶部子代理 UI 弹出卡片点按不稳定,现可靠开合
  • 触摸点选会话后抽屉正常自动收起
  • 输入区右侧模型条、上下文圈、发送键固定贴近右侧,不再漂移
  • dsh-web-ui 设置页错误显示

v2.1.1

修复

  • 设置「模型分组」区在手机上卡片宽窄不一、首尾卡超出屏幕右缘
  • 后台任务触发器存在时,正在运行的子代理计数不准确
  • 移动端会话头部标题栏布局异常,隐藏多余的路径分隔符
  • 手机上打开插件市场后设置导航被隐藏、无路可退(dshmarket ≥1.20 反制)
  • 市场 Tasks 弹卡贴边不居中;出现待更新按钮时标题行被压成逐词竖排
  • 输入区发送、加号、上下文按钮窄屏下被挤压漂移,现固定尺寸钉位
  • viewport meta 改写保留宿主 maximum-scale,页面缩放行为与官方一致

优化

  • 插件 dsh-meme 移动端表现
  • Agent preset 模式选择菜单改为底部弹层,不再撑满竖屏
  • 适配最新 dshmarket 移动端 UI(卡片画廊、已安装列表、标签头部)

重构

  • 完成 phase 2-4 代码重组,优化 !important 使用
  • 哈希类选择器全量改为子串匹配并补 :not 守卫,救活一批静默失效的规则(PR #27/#28 系列)

兼容插件

安装

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/ 与源码同步入库,改动源码后重新构建再提交。

贡献与工程

  • 先读 AGENTS.md:带注释的仓库树、每条 Pitfall 的紧凑不变式与完整档案(docs/maintenance/pitfalls.md)。
  • 本地门:pnpm verify(typecheck)→ pnpm test:core(单测)→ pnpm build;lib/ 随源码入库,漏构建会被 CI 的 git diff --exit-code lib 新鲜度门拦下。
  • 回归探针:scripts/probes/ 十七个锚点可单跑(会话删除探针兼作宿主升级绊线);主探针 pnpm smoke:cdp、手势门 scripts/cdp-swipe-failures.mjs、iOS 放大守卫 scripts/cdp-zoom-probe.mjs(CDP 环境参数见 AGENTS.md)。
  • 设计文档在 docs/specs/;宿主升级对账走 docs/upstream/——node scripts/cdp-compat-contracts.mjs 一键核对 CSS module 哈希是否漂移。

License

MIT

Compatibility

DSH 0.2.1-rc.4: failedDSH 0.1.7-alpha.1: failedDSH 0.1.6-alpha.2: failed

Versions

Latest versionPublishedSize
2.3.0——
2.4.0——
2.4.1——
3.0.4——
3.0.0——
3.0.3——
3.0.5——
3.0.6——
3.1.0——
3.2.0——
3.2.1——

Comments

Loading…

Similar plugins

dsh-mobile-ui

by kaijia323

DSH Web 的移动端外壳插件:抽屉式导航、触控尺寸控件、安全区适配、对话区占满整屏,桌面端行为不变。

UI & ExperienceManifest valid

★ 1

MIT

JavaScript

Oct 23, 2026

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

by RyzeZhou

deepseek-harness手机端页面适配插件

Manifest valid

★ 0

MIT

JavaScript

Aug 19, 2026

dsh plugin --profile web add dsh-ui-mobile-layout

by 21hbguo

DSH Web GUI 手机端 UI 适配插件:窄屏下全屏聊天布局(抽屉化侧栏/面板 + 顶部操作条 + 返回键退栈),桌面宽度零影响

Manifest valid

★ 4

BSD-3-Clause

TypeScript

Aug 16, 2026

dsh plugin --profile web add @dsh-external/dsh-mobile-ui

by ADXZXCD

Mobile layout enhancement plugin for DeepSeek Harness Web UI

Development & InfrastructureTerminal & ClientsManifest valid

★ 0

MIT

JavaScript

Sep 1, 2026

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

by huanxi-drxx

DSH Web UI 手机端适配插件:抽屉式布局、聊天背景+毛玻璃、AI 聊天气泡、消息头像、中英双语(桌面端与原版一致)

Manifest valid

★ 4

MIT

JavaScript

Aug 18, 2026

dsh plugin --profile web add @local/dsh-client-ui-mobile

by Z-6354

基于deepseek-harness(dsh)的手机网页优化插件,修复了部分网页与手机端不适配的问题;

UI & ExperienceManifest valid

★ 18

↓ 329/wk

MIT

JavaScript

Oct 5, 2026

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