DSH Plugins Marketplace

DSH Plugins

Plugins

/

Tools & Capabilities

/

dsh-lan-access

l

dsh-lan-access

Manifest valid

Configurable LAN access for the DSH Web GUI: a settings tab binds the server to all interfaces, trusts only the addresses you configure, sets the browser session lifetime or removes the token login, a

UI (client)hasBundlePatch

dsh-lan-access

Who this is for: users who already run a virtual LAN (EasyTier / Tailscale / WireGuard / ZeroTier …), or who only want to reach the dsh Web UI from a trusted LAN (home or office network).

⚠️ Security: enabling LAN access means anyone who can reach that address can operate your Harness — remote code execution exposed to that network segment. Only enable it on a network you control; never on public Wi-Fi, campus or shared lab networks. Never forward the token-bearing URL printed at startup.

🤖 About this repository: every line of code, doc, and commit here was generated by an AI coding agent; the author has not reviewed it line by line. Read cordis.patch.yml and lib/client.js (they touch dsh internals) before you rely on it. Issues and PRs welcome.

Open the DeepSeek Harness Web GUI's LAN access fences so other machines on a (virtual) LAN can reach it directly via LAN-IP:port, with a settings tab to choose which LAN IP is used.

See README.zh.md (Chinese) for the full guide; the English summary:

  • What it changes: binds the webserver to 0.0.0.0 when enabled (the host schema only allows 127.0.0.1 / 0.0.0.0), makes the /api browser-trust fence accept only your configured authorities (falling back to dsh's automatic LAN trust when you configure none), and prints the token-bearing LAN URL at boot.
  • Strict fence (0.2.0, breaking): dsh itself trusts every non-internal IPv4 while the server binds 0.0.0.0; 0.1.x unioned that in, so a host you removed stayed trusted. Since 0.2.0 a non-empty configuration is the policy.
  • Remote (non-loopback) visits: dsh runs its settings layer in memory mode there, so nothing can be read or persisted. The plugin shadows the shipped welcome notice and repairs the settings mirror; opt out of the latter with rescueSettings: false in the lan-access section of settings.yaml.
  • Session lifetime: sessionDays (default 30, range 1–3650) sets how long a device stays authenticated after one token visit. Cookies are per access address and survive a dsh web restart (the signing secret is persisted); they die on expiry, on deleting .credentials.yaml, or when the browser clears them. Needs a restart to change.
  • No authentication (0.4.0): noAuth: true removes the browser session gate altogether — no launch token, no cookie, no 401. The Host/Origin trust fence stays (hosts outside accessHosts are still 403); everything else becomes your network's job. Needs a restart. sessionDays has no meaning while it is on.
  • Install: dsh plugin --profile web add github:longisland-icetea/dsh-lan-access (dsh plugin --profile web update dsh-lan-access to upgrade), then restart dsh web. ⚠️ The dsh-lan-access package on npm is a different project by another author — this plugin is only distributed from GitHub, not npm.
  • Use: Settings → “LAN Access” tab → enable, enter the LAN IP(s) (or pick from the detected list), save, restart.
  • How it works (0.6.0): static composition — zero runtime row ownership. The bundle patch overrides the official webserver/connection rows with loader !!js expressions that decide the bind and the fence ONCE per boot from two bits composed before activation: the lan-access entry's disabled state (the very state dshmarket's toggle writes) and the settings-tab toggle (settings.yaml lan-access.enabled). No entry.update, no fiber restarts, no boot rewrites; toggling the plugin — in the settings tab or in the market — only starts/stops its fiber, and the binding changes on the next restart, exactly what the settings tab says. The expressions fail closed: any evaluation error yields the official defaults (loopback bind, the deployment fence) and can never fail the boot.
  • Upgrades: the overrides are patches by id; a renamed or restructured official row is skipped by the composer with a warning (dsh still boots, fully official), and the boot-time self-check reports the drift instead of pretending. Only brand-new upstream guardrails (e.g. a webserver schema dropping 0.0.0.0) can defeat it. The one place that touches a dsh internal (a prototype patch to revive already-bound settings scopes, and the noAuth gate swap) is wrapped in try/catch and can be switched off entirely.

License

MIT

Compatibility

DSH 0.2.1-alpha.4: failedDSH 0.1.7-alpha.1: failedDSH 0.1.5-rc.2: failed

Versions

Latest versionPublishedSize
0.1.0——
0.1.1——
0.1.2——
0.1.3——

Comments

Loading…

Similar plugins

dsh-lan-guard

by idoall

LAN access for the official DSH Web UI through a gated reverse proxy: DSH keeps its own loopback binding, and a second port adds a password gate, self-signed HTTPS and per-device pairing that can be r

Tools & CapabilitiesManifest valid

★ 3

↓ 626/wk

MIT

TypeScript

Oct 27, 2026

dsh plugin --profile web add dsh-lan-guard

by FxRayHughes

Link DeepSeek Harness (DSH) instances on the LAN: delegate subagents to another machine's DSH, continue its sessions, with signed auto-discovery and a visual settings page

Manifest valid

★ 0

NOASSERTION

JavaScript

Oct 23, 2026

dsh plugin --profile web add @local/dsh-peer-link

by 1032740078

Adds a View URL page to Settings showing the running session tokenized Web address plus a stable fixed address that survives desktop restarts and is reachable from other devices on the same LAN.

Tools & CapabilitiesTerminal & ClientsManifest valid

★ 0

MIT

JavaScript

Sep 13, 2026

dsh plugin --profile web add dsh-web-url-view

LAN-only remote access for DSH: pair a phone or another PC by QR code or token to open the same web UI, with optional key-free access inside the LAN.

Tools & CapabilitiesManifest valid

★ 0

Apache-2.0

JavaScript

dsh plugin --profile web add dsh-lan-pair

by SparkWeiyang

DSH bundle: expose the Web GUI on the LAN (bind 0.0.0.0) and add a deepseek/balance RPC (PC-side credential, never leaves the PC)

Manifest valid

★ 0

MIT

JavaScript

Aug 16, 2026

dsh plugin --profile web add dsh-lan

Restore Host-persisted settings in dsh web behind a reverse proxy: marks the page's connection as host-owning so the settings/model pages work on non-loopback hostnames. · 反代部署下恢复 dsh 设置页的 host 持久化。

Tools & CapabilitiesTerminal & ClientsManifest valid

★ 0

MIT

JavaScript

dsh plugin --profile web add dsh-plugin-loopback-trust