Foreword

DeepSeek Harness (DSH) Web UI is by default designed for desktop widescreen displays: a persistent sidebar, centered modals, and an input area with multiple controls arranged in a row. Using dsh web in a desktop browser works fine; however, on a mobile phone in portrait mode, the sidebar takes up width, setting modals are difficult to access, and permission capsules and model names are squeezed together, significantly degrading the conversation experience.

The community has forked the project to create mobile patches, but maintenance is scattered and often diverges from official UI iterations. Below, we introduce dsh-web-mobile (GitHub: mexiaosqwq/dsh-web-mobile, maintainer mexiaosqwq): a mobile adaptation plugin for the DSH Web UI. Its goal is clear: optimize usability on narrow screens while minimizing disruption to the original layout on widescreen displays.

What It Is

dsh-web-mobile (npm package name @dsh-external/dsh-mobile-nav) is a client-side plugin within the DSH ecosystem. It uses Cordis patches and client script injection to rewrite the navigation and layout behavior of the DSH Web UI under the Web profile.

It does not replace the DSH core or alter conversation logic; its primary focus is solving usability issues on phones and tablets in portrait mode. For desktop viewports (width ≥1024px), it is designed as a no-op, ensuring it does not interfere with your existing widescreen workflow.

Core Features

Narrow Screen Layout Overhaul

In mobile portrait mode, the plugin moves the desktop sidebar into an overlay drawer, allowing the conversation area to fill the screen width. Selecting a conversation automatically closes the drawer. Modals for settings, file trees, and previews are converted into bottom sheets, which are more intuitive for touch screen operation.

The input area on narrow screens is processed to prevent overlap: permission capsules, model names, and toggle menus are fixed in size and position to avoid the send button, plus icon, and context buttons from being squeezed or drifting. Status bar handling includes accommodation for notched screens, dark/light themes, and preservation of the host’s maximum-scale, ensuring page zoom behavior remains consistent with the official version.

Tablet and Desktop Separation

For viewports between 768–1023px, the layout is width-constrained and centered. Viewports ≥1024px do not trigger mobile adaptations. This approach covers tablet portrait modes while avoiding the introduction of unnecessary styles on desktop.

Large JSON Response Compression (Unreleased)

During the host’s semi-loading phase, a patch is applied to Node’s http.ServerResponse: for JSON responses ≥4KB, it automatically applies gzip or brotli compression (with brotli preferred) based on the client’s Accept-Encoding header. Smaller JSON responses and non-JSON responses are passed through unchanged, and SSE streams remain unaffected. This capability is ported from the community fork wzxmt-zhc/dsh-web-mobile v2.5.0.

Diagnostic Mode

Adding ?mobile-nav-debug=1 to the URL displays a floating diagnostic bar, showing the viewport size, overlay states, and JS errors, which aids in troubleshooting mobile layout issues.

Compatible Plugins

Verified compatible combinations listed in the README include:

  • dsh-web-ui — 0.1.20
  • dshmarket — v1.20.2
  • dsh-usage-stats — 0.2.10
  • dsh-genui — 0.9.1
  • dsh-meme — v0.1.39

Recent versions (e.g., v2.1.1) have also included adaptation fixes for dshmarket’s mobile UI, Agent preset mode menus, and plugin marketplace navigation.

Installation and Activation

Install from GitHub with a single command (official README command):

dsh plugin --profile web add github:mexiaosqwq/dsh-web-mobile

The repository includes pre-built artifacts, so no allowBuilds interception is needed. After installation, restart dsh web for the changes to take effect.

For local development or debugging, you can link a local directory:

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

Typical Usage

Daily Mobile Access

  1. Install the plugin using the command above and restart dsh web.
  2. Open the DSH Web address in a mobile browser (same service as the desktop version).
  3. In portrait mode, the sidebar is collapsed by default; tap the menu button to open the drawer and browse the conversation list. Selecting a conversation automatically closes the drawer.
  4. Settings, file trees, and previews open as bottom sheets from the bottom; operate them according to standard touch screen habits.

Troubleshooting Layout Issues

Append the debug parameter to the page URL:

?mobile-nav-debug=1

Observe the viewport size and overlay toggle states in the floating diagnostic bar. If JS errors occur, they will also be displayed in the bar.

Building from Source

When modifications to the source code are needed, execute the following in the repository root:

pnpm install
pnpm build

The lib/ directory is synchronized with the source code; after making changes, rebuild before submitting. The repository also provides scripts like pnpm verify (type checking) and pnpm run smoke:cdp (CDP regression gate).

Applicable Scenarios and Notes

Who It’s For

  • Developers who frequently view and switch DSH conversations on a phone or tablet in portrait mode.
  • Users who have installed Web client plugins like dshmarket or dsh-meme and want to maintain a usable layout on narrow screens.
  • Scenarios requiring the loading of large conversation JSONs over mobile networks where loading speed is a concern (with the Unreleased compression capability).

Precautions Before Use

  1. The plugin runs within the current dsh web process and inherits its permissions. It is recommended to review the GitHub repository source code and the MIT License before installation.
  2. The plugin targets the Web profile; the installation command must include --profile web.
  3. The community directory SkillHub Plugin Page and GitHub are independent information sources and have no official affiliation with DeepSeek or High-Flyer. Version and compatibility information are based on the repository README.
  4. The current package.json version is 2.1.1; features like large JSON compression are in Unreleased changes. Pay attention to release notes after upgrading.

Conclusion

dsh-web-mobile adapts the DSH Web UI’s sidebar, modals, input area, and safe areas for mobile use while maintaining a no-op on widescreen displays to avoid disrupting the desktop experience. If you wish to manage DSH conversations smoothly on your phone, you can install and try it using the official command.