DeepSeek Harness (DSH) has a plugin-based architecture that allows features to be extended at runtime. dsh-mobile-layout is a client-side plugin focused on improving the DSH Web experience on mobile devices. Desktop-oriented layouts often feel cramped or difficult to use on phones, and this plugin fixes those issues with a set of mechanisms.
This plugin is maintained by user crwsr124 and provides a mobile reading layout, aurora glass theming, a file browser tab, and self-healing for abort errors during history loading. It is a zero-dependency plugin that improves DSH Web usability on mobile devices after installation.
Mobile Reading Layout¶
It automatically takes effect when the screen width is below 1024px. The sidebar switches to drawer mode, and the conversation area occupies the full width. The font density for body text and headings is reduced, tables support horizontal touch scrolling, and long words wrap automatically. In reading mode, the input box automatically collapses when swiping up; tapping the message text reveals and focuses the input field. On mobile, the settings panel uses a horizontal layout, and the content area scrolls independently.
Theming¶
It provides glass/translucent mode with adjustable surface opacity. Built-in aurora backgrounds include four presets: blue-purple, warm sun, teal-green, and ink black, combined with colorful light spots and a cinematic grain texture. Custom background images or image selection from the photo album are supported. Text color automatically switches between light and dark themes based on background brightness to ensure contrast. Bubbles, code blocks, and scrollbars support translucency effects.
File Browser¶
The file root automatically follows the workspace associated with the current session. When switching sessions within the same workspace, the file list and scroll position are cached and preserved, without refreshing. Markdown, code, image, and PDF previews are supported. Downloads use an independent streaming endpoint and are not limited by preview size limits. The client only passes sessionId; path resolution is performed server-side, and cross-workspace escapes are rejected.
Uploaded Files¶
A new upload button is added at the bottom of the sidebar, with multi-select support. Files are uploaded to the <workspace>/upload directory of the current workspace. Path traversal in file names is disallowed, and duplicate file names automatically get a sequence number appended. The default per-file upload limit is 500MB and can be adjusted through configuration. A real-time status card displays progress and results during upload.
Stability Enhancements¶
If an abort error occurs while loading history, the system automatically retries and recovers. When creating a blank session on mobile, the input field is forcibly restored to a visible state to prevent a residual input area caused by a body-level collapsed state.
Installation and Enablement¶
The installation command is as follows:
dsh plugin --profile <name> add github:crwsr124/dsh-mobile-layout
After the initial installation, restart the dsh web process once.
Configuration¶
The upload file size limit can be modified through configuration:
- id: dsh-mobile-layout
config:
uploadMaxBytes: 524288000
Notes¶
- Session history cannot be opened on mobile devices. This is a limitation of the app shell framework and cannot be overridden with CSS.
- The upload route has no built-in authentication. If deployed on the public internet, use external protection such as nginx basic auth.
- On older browser engines, the glassmorphism blur effect is unavailable, but translucency and backgrounds still display normally.
- When deploying behind a reverse proxy such as nginx, uploading large files requires increasing the
client_max_body_sizelimit at the gateway.
This is a lightweight client-side enhancement solution suitable for developers who frequently use DSH on mobile devices. For more details and source code, see the GitHub repository.