dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
Mobile UI optimizer for the DeepSeek Harness Web GUI — drawer sidebar, full-screen settings, safe areas, touch-friendly targets.
English | 中文
Mobile / small-tablet UI optimizer for the DeepSeek Harness Web GUI.
The stock Web shell is a three-column desktop layout. Under a phone-width viewport the sidebar rail, the 188 px settings nav, and the hover-only tool-row controls become cramped or unreachable. This plugin reshapes the shell below a max-width: 820px breakpoint without touching any upstream code — it is a pure client (browser) plugin: a <style> block plus a small React overlay.
prefers-reduced-motion.data-details-collapsed state.env(safe-area-inset-*), 16 px input font, touch-action: manipulation, denser composer spacing.[role="dialog"][aria-modal="true"]:has(>nav), [data-shell-overlay]) and CSS-module local-name suffixes ([class*="_options"]) instead of hashed class names, so it survives DSH frontend rebuilds.Note on the right sidebar: 0.1.5 removed the details column and introduced the right sidebar. On phone widths this plugin docks that column (
[data-rightbar-col]) as a bottom sheet, so the official right-sidebar toggle opens it over the chat instead of squeezing the conversation column. The settings and drawer features are fully usable now.
0.1.5-rc.2 (dshTarget in package.json); previously declared 0.1.3-alpha.2.[data-rightbar-col], with data-rightbar-collapsed / data-rightbar-fullscreen / data-rightbar-instant on the frame); the center column has none, so it is matched by its CSS-module suffix [class*="_centerCol"]. The previous positional selectors (*:nth-child(2) / *:nth-child(3)) and the data-details-collapsed flag no longer exist.ctx.layout.closeDetails() was removed upstream and its call was dropped; ctx.slots, ctx.layout.toggleSidebar, ctx.timeout, and ctx.effect were re-verified present in the installed 0.1.5-rc.2 runtime.Pure ESM, no build step, no install scripts — nothing executes at install time.
dsh plugin --profile web add github:raomaiping-hash/dsh-client-ui-mobile
# pin a commit for reproducibility:
dsh plugin --profile web add github:raomaiping-hash/dsh-client-ui-mobile#<sha>
Then restart your DSH Web process and open the GUI on a phone-width viewport (or resize the browser ≤ 820 px).
dsh plugin --profile web add ./dsh-client-ui-mobile-0.1.0.tgz # from pnpm pack
dsh plugin --profile web remove dsh-client-ui-mobile
Then restart DSH.
index.js) is an empty apply() — it only exists so the loader mounts the package.client.js) is loaded via package.json's dsh.client (exports["./client"]). It injects one <style> tag, registers a MobileChrome component into the shell.overlay slot (floating entry + backdrop), and a small card into settings.general.item (an "installed" notice).@media (max-width: 820px); the desktop layout is untouched.ctx.layout (sidebar/details toggles) and ctx.slots; it writes only DOM nodes and a <style> tag, all torn down on stop/update.git clone https://github.com/raomaiping-hash/dsh-client-ui-mobile
cd dsh-client-ui-mobile
node --check client.js # syntax
node tests/smoke.mjs # packaging integrity
Because the plugin is plain JS served directly by the DSH client-module host, editing client.js in an installed profile and refreshing the page picks up the change via the client-HMR poll — no rebuild needed.
MIT © raomaiping-hash