A standalone DeepSeek Harness Web plugin that adds a Codex-style side chat beside the main conversation. It uses Harness public Session, Storage Domain, Workspace Registry, and Connection RPC surfaces without modifying the official Harness source.
- Split the main conversation and side chat into two resizable panes instead of covering the main chat.
- Create a side chat from the current conversation, including selected-text quoting without automatic sending.
- Keep the child Session out of the official left sidebar while preserving its original log after relationship removal.
- Show parent title, short Session ID, summary, and a live “follows main-chat permissions” indicator.
- Choose a model and reasoning effort independently for each side chat; a new side chat initially inherits the main chat model.
- Use
/sidechatto open the current or most recently updated side chat, or/sidechat contentto fill its draft. - Render user messages, Markdown, reasoning, tool activity, approvals, questions, slash-command lifecycle, and unknown events through a generic timeline.
- Navigate both conversations with compact Codex-style Turn rails: quiet equal ticks when idle, fisheye expansion and a preview card on hover.
- Generate a title from the first side-chat question, with manual rename taking permanent precedence.
The screenshots use synthetic conversation content and contain no real project data.
The plugin is currently distributed as a local link: package. Keep the plugin checkout next to the Harness checkout so its relative development links resolve:
workspace/
├─ deepseek-harness-proxy/
└─ dsh-sidechat/
Build the plugin and install it into the Web profile:
cd path\to\dsh-sidechat
$env:HTTP_PROXY='http://127.0.0.1:7890'
$env:HTTPS_PROXY='http://127.0.0.1:7890'
pnpm install
pnpm run build
cd ..\deepseek-harness-proxy
pnpm dsh plugin --profile web add link:..\dsh-sidechat
pnpm dsh web --host 127.0.0.1 --port 3080The package has no prepare script. After changing src/, run pnpm run build and restart the Web profile so it loads the new lib/client.js.
cd path\to\dsh-sidechat
$env:HTTP_PROXY='http://127.0.0.1:7890'
$env:HTTPS_PROXY='http://127.0.0.1:7890'
pnpm install
pnpm run typecheck
pnpm test
pnpm run buildThe development dependencies use link: references to a sibling Harness checkout. Harness remains a peer/runtime dependency; this repository does not vendor or patch the official source.
The Host half owns the dsh_sidechat storage domain, parent/child lineage validation, title and summary persistence, archive retry, permission synchronization, model inheritance, and the private loopback /dsh-sidechat RPC channel.
The Client half registers the native header action, split-screen overlay, selection action, slash-command source, model selector, generic timeline, and main/side Turn history rails. Draft text and pane width stay local to the browser; relationship records and titles are the only side-chat metadata persisted by the plugin.
- Designed for the DeepSeek Harness Web profile and its public plugin surfaces.
- Uses peer dependency ranges matching the current Harness checkout; test against the Harness revision you deploy.
- Side-chat RPC is restricted to the local Web connection boundary.
- Images and message drafts are sent through the child Session and are not written to the relationship table.
- Removing a side-chat relationship does not delete or unarchive the underlying Session log.
MIT. See LICENSE.




