DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Side Chat — DSH Plugin for DeepSeek Harness
← Plugins

@lukeknow0/dsh-side-chat

Side Chat

Codex-style temporary side conversations for DeepSeek Harness.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add @lukeknow0/dsh-side-chat@0.4.0
READMECompatibilityVersions

Compatibility and provenance

Side Chat is published as @lukeknow0/dsh-side-chat and currently resolves to version 0.4.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
npm
Registry updated
8/24/2026

Versions

0.4.0stable
8/24/2026
0.3.0stable
8/22/2026
0.2.0stable
8/22/2026

Related plugins

Loading related plugins…

Latest
0.4.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
7 MB
Files
41
Surface
web
License
MIT
Source
npm
GitHub
★ 4
Weekly downloads
0
Last push
8/23/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in

Related plugins

More verified plugins in memory-context.

Memory Plugin@openviking/dsh-memory-pluginOpenViking memory and context bundle for DeepSeek HarnessContextdsh-contextA DeepSeek Harness plugin for context insight and management, with context dashboard and context command, for understanding how the context is made of, and how it evolves.Weknora@wxg-prc-cpg/dsh-weknoraWeKnora knowledge retrieval tools for DeepSeek Harness (dsh): semantic search, document reading and RAG/agent answers over your own knowledge bases.Memsearch Dsh@zilliz/memsearch-dshMemSearch plugin for DeepSeek Harness: shared markdown memory across agents, with capture, pre-step context injection, memory-recall skill, and a skill-candidate review panel.

README

DSH Side Chat: Ask aside. Stay on track.

dsh-side-chat

A read-only side chat plugin for DeepSeek Harness (DSH) — inherit completed context, ask temporary questions, and keep the parent agent running.

English · 简体中文

Ask aside. Stay on track. Open a focused drawer that inherits the completed parent context, ask a temporary question, then close it without writing the exchange back into the main conversation.

Quick install

dsh plugin --profile web add @lukeknow0/dsh-side-chat

Restart the running dsh web process after installation, then refresh the existing Harness page.

Side Chat installed in DeepSeek Harness

If Side Chat helps you stay focused, consider giving the project a ⭐ — it helps more DSH users find it.

Why Side Chat?

Long coding conversations accumulate decisions, plans, and in-flight work. A small clarification can pull the main agent away from that trajectory. Side Chat gives the clarification its own child runtime while keeping the parent visible and independent.

  • Adaptive presentation: Better Sidebar integration is automatic when its native tab capabilities are available, but it is optional. Without Better Sidebar, Side Chat uses the collision-aware overlay drawer.
  • Collision-aware drawer fallback: measures the rendered AppFrame, native sidebar/details, sibling overlays, and marked portal controls without replacing a native slot; it chooses a full rail, compact rail, or bottom sheet.
  • Context inheritance: forks only through the latest completed turn/end, never through a half-finished turn.
  • Parent independence: the main conversation keeps running and receives no report or follow-up from the child.
  • Read-only by construction: sandbox mode, approval policy, model-visible allowlist, and an execution-time deny-by-default guard.
  • Non-destructive hiding: minimize, Escape, native tab close, and the visibility shortcut preserve the transcript and draft; returning restores the live child.
  • Explicit lifecycle: internal End asks for confirmation. A confirmed End removes resumability immediately; otherwise, the Host starts its 30-minute parked lease only when both parent and child are idle.
  • Live transcript: the Host projects only child-local messages while the drawer uses an adaptive 220–700 ms refresh loop.
  • English and Chinese UI: follows the active Harness locale.
  • Keyboard friendly: press Cmd/Ctrl + Shift + . to open or close.

Install

From npm

dsh plugin --profile web add @lukeknow0/dsh-side-chat

From GitHub

dsh plugin --profile web add github:Lukeknow0/dsh-side-chat

Restart the running dsh web process after installation, then refresh the existing Harness page.

From a local checkout

git clone https://github.com/Lukeknow0/dsh-side-chat.git
cd dsh-side-chat
pnpm install
pnpm run check
dsh plugin --profile web add .

When dsh is being run directly from a DeepSeek Harness source checkout, use its package script:

pnpm dsh plugin --profile web add /absolute/path/to/dsh-side-chat

Use

  1. Finish at least one turn in a normal parent conversation.
  2. Select Side Chat in the conversation header, or press Cmd/Ctrl + Shift + ..
  3. Ask a focused side question. The composer is available immediately while completed parent context is prepared silently in the background; sending at once is accepted immediately, though the first response may take slightly longer. The drawer can inspect inherited context and read-only resources, and adapts without remounting when panels or the viewport change.
  4. Switch tasks freely: the drawer is parked by parent and reappears with its transcript when you return.
  5. Use Minimize, Escape, the native tab close, the header action, or Cmd/Ctrl + Shift + . to hide Side Chat without losing its transcript or draft. To end it, choose the internal End control and confirm.

A parent can own one retained Side Chat at a time. The parked countdown starts only after both parent and child are idle. If either becomes active during that countdown, the next transition to both idle starts a fresh 30 minutes. Hiding preserves resumability; a confirmed internal End removes it immediately. Reloading the page can reattach to a retained Host conversation while its lease remains valid.

Safety model

Side Chat applies four monotonic controls to its child agent:

LayerBehavior
Fork boundaryCopies only the balanced event prefix through the latest completed turn
Policy overrideAppends sandboxMode: read-only and approvalPolicy: never after the inherited seed
Tool visibilityExposes only read-oriented tools that are actually available in the parent composition
Execution guardDenies every unknown or non-read-only tool, including nested Code Mode dispatch

The tool guard is the final authority. Adding a new tool to Harness does not silently grant it to Side Chat.

Important cleanup disclosure

Temporary does not mean guaranteed physical erasure on DSH 0.1.0-rc.7. Durable physical erasure remains limited to public DSH cleanup support; that release exposes no public API for deleting a durable session log. On confirmed internal End or idle expiry, this plugin:

  1. removes client admission and ignores late callbacks;
  2. aborts a pending start or cancels active work;
  3. disposes the live AgentHandle, removing the child from the active runtime;
  4. calls the public workspace archive API when available.

The archived session log may remain on disk. This project does not unlink private persistence files or depend on unstable internal storage paths. See SECURITY.md.

How it works

sequenceDiagram
  participant U as User
  participant D as Side drawer
  participant H as SideChatService
  participant P as Parent agent
  participant C as Child agent

  U->>D: Open Side Chat
  D->>H: start(parentId, chatToken)
  H->>P: read completed-turn prefix
  H->>C: create hidden read-only child
  H-->>D: childId and seedLength
  loop while drawer is open
    D->>H: read(chatToken)
    H-->>D: child-only transcript snapshot
  end
  U->>D: side question
  D->>H: send(chatToken, question)
  H->>C: Agent.followup(message)
  Note over P,C: Parent and child run independently
  U->>D: Switch parent task
  D->>D: Park drawer state by parent
  Note over D,H: Countdown starts only when parent and child are idle; activity resets it to 30 min
  U->>D: Return to parent and restore transcript
  U->>D: Confirm internal End
  D->>H: close(chatToken)
  H->>C: abort, cancel, dispose, archive

The child is tagged with origin: subagent but intentionally has no durable parentSession catalog link. It appears in neither the workspace tree nor the parent's subagent catalog; the Host retains sole prompt authority while the drawer owns its opaque token.

Compatibility

ComponentSupport
DeepSeek Harness>=0.1.0-rc.7 <0.2.0
Node.js`^22.19.0
BrowserCurrent Chromium/Safari/Firefox supported by DSH Web
Package managerpnpm 11.7 for development

The development dependency graph uses the coherent rc.8 package set while public peer ranges include rc.7. The plugin is also installed and boot-tested against the local DSH 0.1.0-rc.7 checkout. Published rc.7 packages currently resolve several caret peers to rc.8, so pinning every standalone development dependency to rc.7 creates duplicate type universes and is not a faithful application install.

Development

pnpm install
pnpm run typecheck
pnpm run test
pnpm run build
pnpm run smoke
pnpm run check

pnpm run check runs linting, three strict TypeScript projects, unit tests, host and browser builds, runtime smoke assertions, and publint.

Project layout

src/
  host/                 host-owned child lifecycle
  shared/               Zod contracts and tool policy
  client/               drawer, controller, locale, remote face
  remote-descriptors.ts typed Typert RPC descriptors
tests/                   boundary, policy, contract, package tests
docs/assets/             campaign and installed-state visuals

Design system

The visual identity uses two parallel rails, with one rail briefly branching away. It represents a question that diverges without changing the main trajectory.

  • Near black: #0B0D0E
  • Warm off-white: #F2F0E8
  • Acid mint: #B7E85B
  • Muted coral: #E9705B

The drawer itself uses official DSH tokens and primitives, so it follows the active theme while retaining the mint branch accent. The complete identity board is in docs/assets/brand-board.png.

Status

This is an MVP and the public API surface may evolve before 1.0. The intended invariants are stable: safe completed-turn fork, no writes, no parent mutation, one retained Side Chat per parent, non-destructive hiding and restoration, confirmed internal End, and cleanup on idle expiry.

License and attribution

MIT. See LICENSE and THIRD_PARTY_NOTICES.md.

Architecture research was informed by the MIT-licensed dsh-nested-followups project and by official DeepSeek Harness source. No source file is vendored wholesale.

DeepSeek Harness and Codex are trademarks of their respective owners. This project is not affiliated with DeepSeek or OpenAI.