Skip to content
dsh-market Browse plugins GitHub 中文

Blank-not-black/dsh-Remote#plugin

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.

Stars ★ 41 Category Remote & Mobile Listed 2026-08-15 npm dsh-remote-plugin

Install

Inside DeepSeek Harness, with dsh-market

dsh plugin --profile web add dshmarket

Or from the command line

dsh plugin --profile web add dsh-remote-plugin

Installing runs third-party code with your own permissions — it can read your files, use your credentials and reach the network. Review the source first, and pin a commit (github:owner/repo#sha) when you can.

Screenshots

README

The official DSH bundle plugin for DSH Remote. It adds a DSH sidebar entry, a compact status panel, a full admin console, and a gateway managed alongside DSH.

English · 中文

Install

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

# Optional version pin
dsh plugin --profile web add dsh-remote-plugin@0.6.8

The second command verifies installation in the web profile. Completely restart DSH Web and hard-refresh with Ctrl+F5. For a user service, a typical restart is systemctl --user restart dsh-web; for a manual setup, stop the old dsh web process and launch it again.

Open http://127.0.0.1:8787/health on the DSH host before pairing a phone. Once it returns JSON, connect the phone to http://PC-LAN-IP:8787 or the host's Tailscale IP. Do not use 127.0.0.1 or localhost on the phone; those point to the phone itself.

What the plugin provides

  • Compact panel: gateway state, connected devices, token usage, and quick actions.
  • Admin console: port, upstream, devices, requests, token statistics, QR pairing, and token rotation.
  • Bundled gateway.cjs: Bearer-token gateway listening on 0.0.0.0:8787 by default.
  • Self-healing lifecycle: relaunches the gateway after a DSH restart or unexpected exit; start and stop it from the panel.
  • /fs/* file endpoints: list, download, chunked upload, resume, pause/continue/cancel, and SHA-256 verification.
  • Mobile, desktop, and admin WebUI assets, plus the Android APK distributed with the plugin.

Mobile capabilities

The Android app / mobile WebUI has five main destinations: Sessions, Files, Home, Stats, and Settings. Session detail supports goals, subagent interruption, model selection, fullscreen input, slash commands, and image attachments. Images can come from the camera or gallery and are sent as image content in session.prompt.

Notification settings include approval / question notifications, background polling, peak reminders, task completion notices, and announcement history. Announcements update from a central HTTPS source every 30 seconds while the app is in the foreground, with gateway-cache and bundled-file fallback. Four themes are retained: Default Deep Space, Sunset, Elbphilharmonie, and Prairie Tower.

Gateway configuration

  • Port priority: DSH_REMOTE_GATEWAY_PORT → ~/.dsh-remote/gateway-port → 8787.
  • Token: ~/.dsh-remote/token, generated on first run.
  • Self-healing: ~/.dsh-remote/gateway.enabled; use DSH_REMOTE_AUTOSTART=0 to disable automatic management.
  • File roots: registered DSH workspaces are allowed automatically; configure other directories with DSH_REMOTE_FS_ROOT, separated by : on Linux/macOS and ; on Windows.
  • Upload limit: DSH_REMOTE_FS_MAX_UPLOAD, 2 GB by default.
  • Central announcements: override the default HTTPS endpoint with DSH_REMOTE_ANNOUNCEMENTS_URL, or set it to an empty string to disable the central source.
  • DSH upstream: http://127.0.0.1:3080 by default.

The token grants remote control of DSH. Keep it private. For cross-network access, prefer Tailscale or another authenticated secure tunnel.

Gateway cannot be opened

curl -i http://127.0.0.1:8787/health
ss -ltnp | grep ':8787'
curl -i http://127.0.0.1:3080/
  • If port 8787 refuses locally, verify the web profile installation, gateway state in the plugin panel, a real DSH Web restart, and port ownership.
  • If /health works but upstreamOk is false, the gateway is running; troubleshoot DSH Web on port 3080.
  • If local access works but the phone fails, use the host LAN/Tailscale IP and permit inbound TCP 8787. Do not expose port 3080 publicly.
  • A 401 response means the token is wrong; pair again or copy the current ~/.dsh-remote/token.
  • For a blank/stale page after an upgrade, hard-refresh or fully close and reopen the app.

The managed gateway may be a transient process. Do not rely on systemctl --user restart dsh-remote-gateway.service; use Start Gateway in the plugin panel or restart DSH Web to trigger self-healing.

Links

  • Admin page: http://<gateway-ip>:8787/admin
  • Desktop WebUI: http://<gateway-ip>:8787
  • Main project: dsh-Remote
  • Stable releases: GitHub Releases

License

MIT

Content from the project README on GitHub ↗

Comments

Comments live in GitHub Discussions. Sign in with GitHub to post or react.