TecFancy/dsh-mobile
DSH web shell mobile adapter plugin: overlay sidebar/details drawers, responsive composer and settings below 768px, zero desktop regression. DSH Web 移动端适配插件:抽屉浮层化、输入栏与设置页响应式适配,桌面零回归。
已收录
0
Ui
Bundle 已验证
预览
功能介绍
DSH Web 移动端适配插件:侧边栏/详情抽屉浮层化、输入栏与设置页响应式适配,桌面零回归。
适合
- 适合在 768px 以下手机视口使用 DSH Web,并需要可用侧边栏和详情抽屉的用户。
- 适合输入栏控件会重叠,或设置页需要全宽纵向布局的移动会话。
- 适合希望只通过客户端插件改善移动端,而不 fork shell 或改变桌面行为的安装。
不适合
- 不适合希望改变 768px 至 1023px 平板布局的场景;该区间按设计保留原生 shell 行为。
- 桌面视口中插件会刻意保持不活动,不会带来功能变化。
- 不适合没有 DSH Web 界面的 headless 或纯服务端部署。
- 不适合不满足文档所述 Node 22 与兼容 DSH 安装要求的环境。
README
dsh-mobile
| English | 简体中文 |
A mobile adapter for the DeepSeek Harness (DSH) web shell. The stock
shell is desktop-first: below 1024px the sidebar only collapses to a rail, and
on phones the expanded drawer squeezes the main column to ~110px, composer
buttons overlap, and the settings dialog shrinks to a sliver. dsh-mobile
adds the missing phone tier (< 768px) as a client plugin — no shell fork, no
desktop changes.
Features
- Overlay sidebar drawer — opening the sidebar on a phone floats it over the content with a scrim instead of squeezing the main column to 110px; tapping outside closes it.
- Overlay details panel — the tool-details panel opens as a right-side overlay and never squeezes the conversation.
- Non-overlapping composer — the mode buttons and the model selector wrap onto separate rows instead of covering each other.
- Re-flowed settings dialog — the dialog stacks vertically with a horizontally scrollable tab bar; the content column gets full width.
- Zero desktop regression — every rule hangs under a narrow-viewport marker; viewports ≥ 1024px behave exactly like the stock shell.
Screenshots
Verified on Ubuntu 24.04 (x86_64) with DSH 0.1.0-rc.6, iPhone-15 viewport
(390×844). Screenshots show the English UI.
New-session screen on a phone (hero + composer with a workspace selected, laid out for the narrow viewport):

Sidebar drawer: before (stock shell) vs after
| Before — content squeezed to 110px | After — overlay drawer + scrim |
|---|---|
![]() |
![]() |
Settings dialog on a phone (vertical layout, full-width content):

Desktop ≥ 1024px — untouched:

Install
Requires Node ≥ 22 and a DSH installation (dsh CLI). Install into your
profile and restart dsh web:
dsh plugin --profile web add @tecfancy/dsh-mobile
# restart: dsh web
Note: if your npm registry is a mirror (e.g.
registry.npmmirror.com), brand-new packages can lag behind the official registry for a while — add--registry=https://registry.npmjs.org/if the install reports 404.
The plugin activates automatically on narrow viewports (< 768px) and stays
inert on desktop. Removing it is one command: dsh plugin --profile web remove
@tecfancy/dsh-mobile.
How it works
- A JS breakpoint layer marks narrow viewports as
body[data-dsh-mobile]. - A state bridge mirrors the shell’s layout state onto
body[data-dsh-drawer]/body[data-dsh-details]. - A stylesheet (anchored on the shell’s stable
[data-slot]hooks) turns the sidebar/details columns into fixed overlays on phones, re-flows the composer and the settings dialog, and never runs outside the mobile tier.
No shell source is modified, no server component is required, and the plugin
coexists with other shell-level plugins (verified with dsh-better-sidebar).
Compatibility
- DSH
0.1.0-rc.6(tested on macOS and Ubuntu 24.04; full viewport matrix: 360 / 390 / 430 / 768 / 1440). - The 768–1023px tablet range keeps the stock shell behavior (by design).
-
prefers-reduced-motionis honored.
License
MIT
常见问题常见问题
在启用了 DSH 的终端中执行已验证命令 dsh plugin --profile default add github:TecFancy/dsh-mobile。命令会解析公开 package 元数据,并保持插件与本页展示的目录身份一致。
兼容性以页面上展示的 bundle 与 profile 状态为准。如果某个 profile 尚未检测到,请先保持禁用,并在生产启用前阅读仓库文档。
GitHub 链接和 activity 元数据是 release 与维护状态的来源。新版本发布后重新查看本页,确认目录已经观察到最新版本。

