citrusli2026/dsh-mobile-ui ↗★ 0
dsh-mobile-ui
Mobile UI overlay for the DeepSeek Harness Web GUI: bottom navigation, session drawer, and small-screen panel orchestration as an out-of-tree client plugin (no upstream source changes).
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:citrusli2026/dsh-mobile-ui说明文档
阅读完整 README ↗dsh-mobile-ui
English | 中文
Mobile UI overlay for the DeepSeek Harness Web GUI, packaged as an out-of-tree client plugin — no upstream source changes. It gives phone-sized viewports a usable navigation pattern that the desktop three-column shell does not provide.
What it adds
- Action strip above the composer (session scope): a
会话 / Sessionsbutton that opens the session drawer — with a badge counting sessions currently blocked on an approval or question — and a新会话 / Newbutton. Rendered only in mobile mode; desktop chrome is untouched. - Full-screen session drawer (frame overlay): live session list in host order (blank placeholders hidden unless current), per-row status dots (pending / running / completed), the current session highlighted, and a new-session row. Closes on selection, backdrop tap, or its close button.
- Mobile-mode detection:
matchMediawidth breakpoint plus coarse-pointer fact, delivered to components as a reactive source. The breakpoint is a pluginConfigfield (default768, px).
Everything is additive: no slot occupant is replaced, no global CSS is written (component styles consume the theme's --dsw-alias-* semantic tokens), and both seats are waited on through ctx.slots.inject, so an upstream that stops declaring them degrades the plugin to a no-op instead of failing the boot.
Install
Requires a dsh CLI (installed or a source checkout). Install into the shipped web profile:
dsh plugin --profile web add git+https://github.com/citrusli2026/dsh-mobile-ui.git # from this repo
# or from a local checkout:
dsh plugin --profile web add ./dsh-mobile-ui
# git-hosted installs build via this package's `prepare` script; if pnpm
# blocks it under strictDepBuilds, add the printed key to the profile's
# pnpm-workspace.yaml allowBuilds and re-run.
dsh --profile web
The profile's bundle list becomes ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "dsh-mobile-ui"]; the mobile chrome appears on viewports at or below the breakpoint. Remove with dsh plugin --profile web remove dsh-mobile-ui.
Configure
Override the row's config in your profile's cordis.patch.yml (later layer wins; restate the whole config):