Skip to content

Releases: sorsama/deepseek-harness-relay

Release list

dsh-relay 0.1.0

Choose a tag to compare

@sorsama sorsama released this 21 Aug 04:59

Authenticated remote access for a DeepSeek Harness web profile.

dsh plugin --profile web add dsh-relay
dsh web

Then open /relay/password on the machine running the harness and set a password. Getting started walks through it for npx @deepseek-ai/dsh web.

Remove the LAN patch first. If ~/.dsh/profiles/web/cordis.patch.yml binds the harness to 0.0.0.0, the relay refuses to start — it cannot protect a server that already answers the network unauthenticated.

What it does

The harness serves its browser API on loopback and says plainly that its /api fence "is not an auth layer", that the configuration plane stays loopback-only "until a real authentication layer exists", and that --host 0.0.0.0 is refused because "it would expose remote code execution to the network". This is that layer, mounted beside the harness rather than inside it: a second listener that terminates TLS, authenticates, and reverse-proxies to the untouched loopback server.

  • Password sign-in (scrypt, signed HttpOnly; SameSite=Strict cookie), QR and passcode device pairing with revocable bearer tokens, a device list, and a key-rotating sign-out-everywhere.
  • Its own DNS-rebinding and cross-site fence, applied before the Host rewrite the harness's fence would otherwise catch, and its own copy of the loopback-pinned method list that the rewrite would lift.
  • Self-signed certificates with a published SPKI pin, or bring your own.
  • The whole web UI, unchanged, with a Relay link in the corner and a card in Settings → Plugins.
  • _dsh._tcp mDNS advertisement.

DSH Mobile 0.5.0

It hardcodes http:// and can carry no credential, so it gets an opt-out plain listener and short-lived private-address grants that never reach the configuration plane. That is a bridge, not a destination — SECURITY.md says exactly what a source address does and does not prove, and CLIENT_INTEGRATION.md is the contract for a client that can hold a token.

Before you install

Signing in grants the same power as a shell on the host machine, because the agent runs commands there. Everything in this plugin follows from that.