Back to directory

dsh-remote

Curated pickMaintenance: Active

xgone/dsh-remote

Remote access for DeepSeek Harness: account/password auth + MFA (TOTP) login gate, signed session cookies, role-based access, in-browser directory picker, and a Settings page for account management.

View on GitHub
$ dsh plugin --profile web add @xgone/dsh-remote

51

stars

3

forks

JavaScript

Language

MIT

License

2026-08-16

Created

2026-08-30

Last push

A native DeepSeek Harness plugin that puts a hardened auth gate (account/password + TOTP MFA, signed session cookies, role-based access) in front of `dsh web` so you can safely expose Harness to remote / LAN browsers via a reverse proxy.

DSH integration

Native runtime

Author-claimed

Safety audit

Unaudited

Last verified

2026-09-01

License

MIT

01What can it help you accomplish?

  • Expose a DeepSeek Harness `dsh web` instance to remote / LAN browsers behind account + MFA auth

    A login gate plus HMAC-SHA256-signed HttpOnly session cookies and role-based access, so external browsers behind a reverse proxy get full functionality without any host-native popups

    Operators who self-host DeepSeek Harness and need safe remote access via reverse proxy / tunnel / Tailscale / Frp

  • Pick and create workspaces, and view host files, from a remote browser without host-native dialogs

    An in-browser directory dialog (two-pane view + breadcrumb + new folder) and a remote file sidebar that streams host files inline

    Remote DeepSeek Harness users blocked by DSH's loopback-only native directory picker and host file-open limits

  • Add TOTP two-factor (MFA) to DeepSeek Harness remote logins

    RFC 6238 TOTP binding (Google Authenticator / 1Password / Authy), QR + manual key + otpauth URI + 10 one-time backup codes, with admin recovery

    Anyone exposing DeepSeek Harness remotely who needs a second factor on top of the password gate

02How to install into DeepSeek Harness

Prerequisites

  • 已安装 DeepSeek Harness 并可运行 `dsh web`(默认端口 3080);
  • 已初始化 `web` profile(首次运行 `dsh web` 会自动初始化);
  • 系统 PATH 中有 `pnpm`(`dsh plugin` 命令需要它来管理 profile 的插件)。

Installation steps

  1. 01

    Install the plugin: `dsh plugin --profile web add @xgone/dsh-remote` (it auto-appends itself to `dsh.profile.bundles`)

    $ dsh plugin --profile web add @xgone/dsh-remote

  2. 02

    Restart `dsh web` — HMR is disabled on the web surface, so a restart is required for the patch to take effect

    $ dsh web

  3. 03

    Open http://127.0.0.1:3080 and create the first admin (loopback-only submit) or preseed one via the `bootstrap` config block for headless servers

Verify the integration

  • 未登录时访问任意路径 → 登录页;直接调用 `/api` → 403
  • `curl http://127.0.0.1:3080/auth/me` should return `{"authEnabled":true,"bootstrap":false,"authenticated":true,...}` after login

Rollback

  • Remove the plugin: `dsh plugin --profile web remove @xgone/dsh-remote`, then restart `dsh web` to drop the gate
  • To keep the plugin but disable auth, set `enabled: false` in `cordis.patch.yml` and restart

03DSH integration and capability boundaries

DSH integrationNative runtime

Native DeepSeek Harness plugin — installs via `dsh plugin --profile web add`, wraps DSH's webServer routes + WebSocket as an auth gate (Cordis bundle patch)

  • Account + MFA login gate

    username / password (+ TOTP code on the second step)signed HMAC-SHA256 HttpOnly session cookie; MFA-gated access to `/api` and WebSocket

    未登录访问任何路径都得到自包含的登录页;`/api` 与 WebSocket 全部要求有效
  • In-browser directory dialog (replaces native picker)

    workspace select / create actions**浏览器内的目录对话框**(双栏目录视图 + 面包屑 + 新建文件夹)

    DSH's default native directory picker is disabled and replaced with a browse backend
  • Remote file sidebar (/auth/file)

    file path clicks from the DSH Web UI on a remote (non-loopback) browserhost file streamed into a right-side panel (Markdown / image / PDF / video inline, multi-panel)

    **右侧边栏面板**中显示(`/auth/file`
  • Role-based access (admin / user / guest)

    client-request RPC envelopes (method-level)per-method access control enforced after auth when `adminOnly` is off

    closes `adminOnly` to enable the three-tier method-level permission model

04Who is it for? When not to use it?

Good for

  • Operators who self-host DeepSeek Harness and need safe remote access via reverse proxy / tunnel / Tailscale / Frp
  • Remote DeepSeek Harness users blocked by DSH's loopback-only native directory picker and host file-open limits
  • Anyone exposing DeepSeek Harness remotely who needs a second factor on top of the password gate

Not for

  • The web surface disables HMR; any config change requires restarting `dsh web` (patch hot-reload is unavailable) before it takes effect.
  • `dsh web` refuses `--host 0.0.0.0`; exposing it to the internet must go through a reverse proxy (TLS termination + WebSocket forwarding), with `trustProxy: true` (on by default).
  • DSH is single-tenant (one process-shared `$DSH_HOME`); the plugin cannot isolate per-user workspaces/sessions — event streams, search and tasks leak globally. For isolation, run one profile per person; on a shared instance only the role system constrains access.

05Compatibility, maintenance and safety notes

  • The web surface disables HMR; any config change requires restarting `dsh web` (patch hot-reload is unavailable) before it takes effect.
  • `dsh web` refuses `--host 0.0.0.0`; exposing it to the internet must go through a reverse proxy (TLS termination + WebSocket forwarding), with `trustProxy: true` (on by default).
  • DSH is single-tenant (one process-shared `$DSH_HOME`); the plugin cannot isolate per-user workspaces/sessions — event streams, search and tasks leak globally. For isolation, run one profile per person; on a shared instance only the role system constrains access.
  • The remote file sidebar only shows files inside the DSH home dir and the dsh process working dir by default; paths outside prompt `outside-roots` until an admin adds them via Settings → allowed directories (takes effect immediately).
2026-08-162026-08-30Not specified by the author

MIT · last push 2026-08-30 · no tagged release (latest_release: none); README documents fixes through v0.2.6+

06Frequently asked questions

How do I install dsh-remote for DeepSeek Harness?

Run `dsh plugin --profile web add @xgone/dsh-remote`, then restart `dsh web` (HMR is disabled, so a restart is required). It auto-appends itself to `dsh.profile.bundles`. Open http://127.0.0.1:3080 to create the first admin.

Does dsh-remote replace the official `dsh web`, or coexist with it?

It wraps DSH's own `webServer` routes and WebSocket upgrade — it does not replace `dsh web`. After auth passes it normalizes Host/Origin to loopback so DSH's trust fence releases privileged methods (`host.pickDirectory`, `settings.*`, `credentials.*`) for external browsers.

How do I expose DeepSeek Harness to the internet safely?

`dsh web` refuses `--host 0.0.0.0`, so put it behind a reverse proxy (nginx / ssh tunnel / Tailscale / Frp) doing TLS termination + WebSocket forwarding, then enable `trustProxy: true` (on by default). Set `session.secure: true` for HTTPS.

Can multiple users share one instance with isolated workspaces?

No. DSH is single-tenant (one process-shared `$DSH_HOME`), so the plugin cannot isolate per-user workspaces/sessions — event streams, search and tasks leak globally. For isolation, run one profile per person (`dsh --profile alice --port 3081`); on a shared instance, use the admin/user/guest role system.

08Data and sources

  • Author-claimedgithub.com0694a6350bb2…

    让 DeepSeek Harness 可以被安全地远程访问**:在 `dsh web` 前增加完整的账号密码认证 + MFA

  • Author-claimedgithub.com0694a6350bb2…

    就是那个认证层,认证通过后自动放行。

This page is generated from the project’s public documentation, repository metadata and a structured parse of DSH Plugins; last verified on 2026-09-01. Found an error? Submit a correction.

🏆

Best DeepSeek Harness Plugins

Twelve plugins worth installing first — picked from the whole catalog, across every category.

DSH Plugins is an independent community directory of DeepSeek Harness plugins. Not affiliated with or endorsed by DeepSeek. Third-party plugins are not security-audited — review the source before installing.

New DeepSeek Harness plugins, weekly. No spam.