Mobile remote-control suite: bundle plugin with native sidebar entry and admin drawer, self-healing bearer-token gateway over LAN/Tailscale, Android app (sessions/approvals/questions/goals), /fs/* file transfer (Range resume, 2GB upload), latency-based multi-server auto-switch, offline chat cache.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-remote-plugin
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:Blank-not-black/dsh-Remote#path:/packages/plugin
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time. Only install sources you trust, and pin a commit (github:owner/repo#sha).
README
English · 中文
The DSH bundle plugin for DSH Remote: registers a native entry in DSH's left sidebar and opens an admin drawer from the right. The plugin bundles the gateway and auto-starts/stops it with DSH (standalone systemd unit); the drawer shows the token, host IP and device monitor. Works with the dsh-Remote Android app for remote control and file transfer (/fs/list, /fs/file, /fs/upload). The panel ships four themes (Deep Space / Sunset / Elbphilharmonie / Prairie Tower) — light / dark / neutral, following the system preference automatically.
Install
dsh plugin --profile web add dsh-remote-plugin
# or pin a version
dsh plugin --profile web add dsh-remote-plugin@0.5.0
Restart DSH Web and hard-refresh (Ctrl+F5); the app icon entry appears at the bottom of the left sidebar.
git source install (equivalent):
dsh plugin --profile web add "github:Blank-not-black/dsh-Remote#main&path:/packages/plugin"
Gateway
- Auto-start by default: on DSH startup or drawer refresh, the plugin launches the built-in
gateway.cjs(0.0.0.0:8787), independent of the DSH process; Linux uses a standalone systemd unit, and environments without systemd (e.g. macOS) automatically fall back to a resident child process. - On/off intent persists in
~/.dsh-remote/gateway.enabled; it can be stopped/started from the drawer. - Token lives in
~/.dsh-remote/token(auto-generated on first run, reused and never overwritten), shown in the drawer and copyable; supports QR pairing and one-click rotation. - Env var
DSH_REMOTE_AUTOSTART=0disables auto management. - File endpoints:
/fs/list(list directory),/fs/file(download with Range support),/fs/upload(chunked resume with pause/cancel, SHA-256 verified before writing to disk); default root is~, andDSH_REMOTE_FS_ROOTopens multiple roots (:-separated). - Feedback endpoint:
POST /feedback(the app / desktop "Write feedback" dialog), forwarded by the gateway to the feedback collector; defaulthttp://100.84.128.29/submit(Tailscale internal network), overridable viaDSH_REMOTE_FEEDBACK_URL— no tokens to configure.
Mobile App
The app is embedded in the plugin package (apk/dsh-remote.apk) — install the plugin and you have it, no GitHub needed:
- Tap QR code in the desktop drawer → scan it with the phone to open the admin page → download the app from that page
- Or open
http://<gateway-IP>:8787in a browser to download - App updates are pushed by the gateway too (
update.jsonrelative path), never touching GitHub - A desktop browser opening
http://<gateway-IP>:8787auto-enters the desktop WebUI (sidebar sessions + files + settings + stats + approval notification stack)
The app has built-in multi-server latency switching and offline chat history caching; downloaded files are stored in the system Download/dsh-remote folder.
License
MIT
Links
More in this category
mexiaosqwq/dsh-web-mobile★ 27
Mobile-adaptive layout for the DSH Web UI: the sidebar becomes a content-hugging overlay drawer, the conversation gets the full width, and the settings panel becomes a near-full-width sheet.
AcidGr/dsh-web-lan-access★ 20
LAN/remote access for the Web UI: injects a crypto.randomUUID polyfill on plain-HTTP origins so the frontend survives LAN or Tailscale IP direct links.
liguobao/deepseek-harness-remote★ 17
Secure multi-device remote access for DeepSeek Harness: connect from your phone or browser to your local Harness over an end-to-end encrypted channel (Noise IK with a WebRTC-ready adaptive transport), with device authorization and ApiProxy-only remote capabilities, no shell or arbitrary file access.
JUANWANG-BUAA/dsh-full-remote★ 15
Remote DeepSeek Harness with full server-side API access (`settings.*` / `credentials.*` / `host.listDirectory`). Token-gated reverse proxy, per-device sessions, phone invite QR, fence self-check, optional approval / CIDR / idle timeout / local TLS, WebSocket/SSE.
Leon0555/dsh-lan-access★ 7
LAN access for the Web GUI: 0.0.0.0 bind plus a crypto.randomUUID polyfill for non-secure (LAN HTTP) contexts.
Bernardxu123/dsh-mobile-gate★ 5
LAN mobile gateway: isolated child-process reverse proxy with first-visit approval, per-device token binding, rate limiting, and mobile layout injection (compact composer pills, randomUUID polyfill).