Mintcolour / dsh-sidechat

Listed

A DeepSeek Harness Web plugin that adds a Codex-style split-screen side chat with model switching and compact history navigation.

mainModelToolSession View source

Installation

npx -y @deepseek-ai/dsh plugin --profile web add github:Mintcolour/dsh-sidechat

This installation command is an unverified starting point generated from the GitHub repository address.

README

Maintainer-authored documentation snapshot.

View on GitHub ↗
Commit fa1a932Synced Aug 18, 2026

DSH Side Chat

中文说明

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-screen side chat

Highlights

  • 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 /sidechat to open the current or most recently updated side chat, or /sidechat content to 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.

Screenshots

The screenshots use synthetic conversation content and contain no real project data.

FeaturePreview
Resizable split view and parent contextSplit view
Per-side-chat model and reasoning selectorModel selector
Compact idle Turn railIdle history rail
Hover preview and fisheye railHover history rail
Dark-theme parent context and permission followingDark side-chat context

Install into a Harness checkout

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 3080

The 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.

Development

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 build

The 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.

Architecture

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.

Compatibility and privacy

  • 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.

License

MIT. See LICENSE.

Project files and signals

Shown items are public repository signals detected in the directory snapshot.

TestsDetected
DocumentationDetected

Repository information

Language
JavaScript
License
MIT
Latest release
v0.1.0
Last updated
Aug 14, 2026, 3:59 AM

Install deliberately

Review source code, permissions, lifecycle hooks, dependencies and network access. Test untrusted plugins in an isolated environment.