The DSH Web GUI is designed for desktop use and has a poor experience on mobile. dsh-deepsleep specifically addresses these two issues: it adapts the layout for mobile through a plugin and provides a password-protected LAN proxy so you can access it directly from your phone.

What Is This

This is a DSH client plugin maintained by xxxsirrrr. It has two main parts: a mobile layout adaptation plugin and a LAN access proxy. The plugin follows the MIT license.

Core Features

Mobile Layout Adaptation
The desktop three-column layout automatically switches to a single-column conversation flow, drawer-style sidebar, and floating detail panel at mobile widths. The plugin automatically adjusts the layout structure based on viewport width.

Mobile-Specific Polish
Supports 100dvh dynamic viewport, safe-area notch adaptation, input-field zoom prevention, horizontal scrolling for code blocks, and 44px touch targets.

Polyfill Support
Provides a crypto.randomUUID polyfill for non-localhost environments, ensuring the DSH client works correctly over LAN HTTP.

Password-Protected LAN Proxy
Provides a password-protected LAN access proxy. When accessed from a phone, it automatically handles Host header rewriting for WebSocket/SSE support.

Installation and Enablement

Install this directory as a bundle for the web profile.

dsh plugin --profile web add -w <path-to-this-directory>

After installation, restart dsh web (plugin collection changes take effect only after restart). At desktop widths, it produces no visible changes; on mobile, it activates automatically.

Typical Usage

Start the Proxy
You can use the PowerShell script or run the MJS file directly.

# 使用 PowerShell 脚本(会交互式提示密码和端口)
powershell -ExecutionPolicy Bypass -File start-mobile-link.ps1

# 或直接运行代理(默认端口 3082)
node lan-proxy-3080.mjs

How to Access
On your phone, open http://<电脑局域网IP>:<代理端口>. On first access, a login page is shown; after entering the correct password, you can use it normally.

Use Cases and Notes

Use Cases
It is recommended to use this only on a secure, trusted network (such as home Wi-Fi). It is suitable for developers who need to view DSH status or perform simple interactions on a mobile device.

Security Warnings
1. The proxy uses plaintext HTTP transport; the password is not encrypted within the LAN and cannot prevent packet sniffing.
2. DSH itself has no authentication layer; this proxy only provides a password gate.
3. proxy-password.txt is excluded by .gitignore; do not commit it to the code repository.
4. Do not enable this proxy on public networks. Use Tailscale or HTTPS for stronger protection.

Summary

dsh-deepsleep combines DSH’s mobile experience and remote access capability into one package, making it suitable for users who want to operate DSH in mobile scenarios.