zljr/dsh-share

Share the current session over the LAN as a read-only, token-guarded HTML snapshot with session stats and Markdown rendering.

dsh-share adds a Share button to the DeepSeek Harness session header. One click freezes the current conversation into a self-contained, read-only HTML snapshot and prints a LAN URL (http://192.168.x.x:3081/s/<token>) that any device on the same network can open. The main harness keeps listening on 127.0.0.1 only; a separate read-only HTTP server serves nothing but GET /s/<token> for a valid token — no RPC, no writes, no live session reads. Snapshots are frozen at share time, protected by revocable 128-bit random tokens with optional 1h/24h/7d expiry, render Markdown safely (raw HTML escaped, javascript: URLs blocked), fold long messages and tool-call groups, show session stats (turns, steps, duration, tokens, context occupancy), persist across restarts in ~/.dsh/dsh-share.json, and follow prefers-color-scheme.

Sessions & Messages ★ 0 updated 2026-08-16
View on GitHub ↗

Install

dsh plugin --profile web add @zljr/dsh-share

npm @zljr/dsh-share 0.1.1 verified 2026-09-04 (repository field → github.com/zljr/dsh-share; README EN primary w/ zh docs). Install from npm: dsh plugin --profile web add @zljr/dsh-share — the published package ships built lib/, no build step. Source: pnpm install && pnpm build, then dsh plugin --profile web add /absolute/path/to/dsh-share.

Compatibility

DeepSeek Harness web profile (session header Share button slot); separate read-only node:http server on 0.0.0.0:3081 (configurable via DSH_SHARE_HOST/PORT); Windows firewall prompt on first listen.

Details

Recent updates

Smart LAN address detection filters virtual adapters (WSL/Hyper-V/Docker/VPN) and probes the default route.

FAQ

Is the shared page live?
No — the transcript and stats are captured at share time; later edits or compactions never change an already-shared page.
Is it safe to expose on a LAN?
The share server is read-only and isolated: only GET /s/<token> exists, tokens are 128-bit random, revocable and optionally expiring, and the page contains no JavaScript or external assets.
Does sharing expose the harness?
No. The main harness stays on loopback; only the frozen snapshot server is reachable, and it never reads the session store after creation.

Alternatives

bill9109/dsh-conversation-share · hellodigua/dsh-share · ChuanTianML/dsh-local-share

More plugins in Sessions & Messages

Browse more in Sessions & Messages

Guides for Sessions & Messages plugins