Introduction

Under DSH’s “everything is a plugin” philosophy, remote entry points, status panels, and gateways can be integrated into DSH as web client plugins. If the goal is to add sidebar entry points to DSH, view sessions and status on mobile or desktop, upload and download files, and include a remote gateway that starts and stops with DSH, dsh-remote-plugin is a bundle plugin that has already packaged these capabilities.

What is it

dsh-remote-plugin is the official bundle plugin for DSH Remote: providing an entry point in the DSH sidebar, opening a quick status panel and full management console, and featuring a built-in remote gateway that starts and stops automatically with DSH. The repository is maintained by Blank-not-black and is licensed under MIT.

Its package.json declares dsh.client injection:

@deepseek-ai/dsh-client-runtime
@deepseek-ai/dsh-client-ui-slots

It also declares:

platform: web
Node engine: >=18

Core Features

  • Provides entry points in the DSH sidebar.
  • Opens the quick status panel and full management console.
  • The quick panel displays gateway status, online devices, token usage, and quick actions.
  • The management console supports ports, upstreams, devices, requests, token statistics, QR codes, and token rotation.
  • Built-in gateway.cjs, listening on 0.0.0.0:8787 by default, with Bearer token authentication.
  • Gateway self-healing: automatically restarts after DSH restarts or the gateway unexpectedly exits; can be stopped or started from the panel.
  • Provides /fs/* file endpoints: listing, downloading, chunked upload, resume, pause/resume/cancel, and SHA-256 verification.
  • Provides mobile, desktop, and management page WebUI, as well as an Android APK distributed with the plugin.
  • The Android app / mobile WebUI provides five main pages: Sessions, Files, Home, Statistics, and Settings.
  • Session details support target control, sub-agent interruption, model switching, full-screen input, slash commands, and image attachments.
  • Image attachments can be selected from the camera or gallery and sent to the current session as image content in session.prompt.
  • Notification settings support approval / query notifications, background polling, peak-valley alerts, task completion alerts, and historical announcements.
  • Announcements are updated via a central HTTPS source; the App foreground checks every 30 seconds, falling back to gateway cache or in-app announcements when the central source is unreachable.
  • Currently, four themes are retained: Default Deep Space, Sunset, Elbphilharmonie, and Prairie Tower.

Installation and Activation

First, install it to DSH’s web profile, then confirm the plugin list:

dsh plugin --profile web add dsh-remote-plugin
dsh plugin --profile web list --depth 0

The second command is used to confirm that the plugin is installed in the correct web profile.

If you need to install a specific version as shown in the README, you can use:

dsh plugin --profile web add dsh-remote-plugin@0.6.8

After installation, fully restart the DSH Web process and hard refresh the browser with Ctrl+F5. The DSH Remote entry will appear in the left sidebar.

If DSH Web is managed by a systemd user service, you can execute:

systemctl --user restart dsh-web

When running manually, you need to stop the old dsh web process first and then restart it.

After installation, first access the DSH host locally:

curl -i http://127.0.0.1:8787/health

After seeing the JSON, connect to the DSH host’s LAN address from your phone:

http://<电脑局域网IP>:8787

Note: 127.0.0.1 and localhost on the phone refer to the phone itself, not the DSH host.

Typical Usage and Troubleshooting

First, check the gateway health, port listening, and DSH Web upstream on the DSH host:

curl -i http://127.0.0.1:8787/health
ss -ltnp | grep ':8787'
curl -i http://127.0.0.1:3080/

If 8787 is also refused on the local machine, check if the plugin is installed in the web profile, the gateway switch in the plugin panel, whether DSH Web has truly restarted, and if port 8787 is occupied.

If /health opens but upstreamOk: false, it means the gateway is running, and you should check DSH Web’s port 3080.

If the local machine can open it but the phone cannot, use the computer’s LAN or Tailscale IP, and allow firewall TCP 8787 inbound; there is no need to open port 3080 to the public internet.

If a 401 is encountered, re-scan the QR code, or copy:

~/.dsh-remote/token

If the page is black or features are not updated, hard refresh the browser with Ctrl+F5, and fully exit and reopen the mobile app.

The plugin gateway may run as a transient process; do not rely on:

systemctl --user restart dsh-remote-gateway.service

Prioritize starting the gateway in the plugin panel or restarting DSH Web to trigger self-healing.

Common entry points:

管理页:http://<网关IP>:8787/admin
桌面 WebUI:http://<网关IP>:8787

Gateway Configuration

The gateway listens on 0.0.0.0:8787 by default and uses Bearer token authentication. DSH’s upstream defaults to:

http://127.0.0.1:3080

Related configuration items:

  • Gateway port priority: DSH_REMOTE_GATEWAY_PORT environment variable → ~/.dsh-remote/gateway-port8787
  • Token: ~/.dsh-remote/token, automatically generated on first run
  • Self-healing switch: ~/.dsh-remote/gateway.enabled, or use DSH_REMOTE_AUTOSTART=0 to disable automatic management
  • File root directory: DSH registered workspaces are automatically allowed; other directories are configured with DSH_REMOTE_FS_ROOT, using : for Linux/macOS and ; for Windows
  • File limit: DSH_REMOTE_FS_MAX_UPLOAD, default 2GB
  • Central announcements: DSH_REMOTE_ANNOUNCEMENTS_URL can override the default HTTPS address; setting it to an empty string disables the central source

Applicable Scenarios and Notes

Suitable for users who need to view remote status, manage sessions and files within the DSH Web sidebar, or wish to integrate mobile/desktop entry points and the gateway together into DSH.

It is recommended to check the source code and license before installation. The plugin runs with the privileges of the current DSH process, and gateway tokens and remote entry points should be considered sensitive capabilities. The token is equivalent to DSH remote operation credentials; please do not make them public or submit them to the repository.

LAN access is recommended to be used with a firewall; cross-network access is recommended to use Tailscale or other authenticated secure tunnels.

Links

GitHub:https://github.com/Blank-not-black/dsh-remote-plugin

The directory page address was not provided in the verified materials for this session.