DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Side Chat — DeepSeek Harness 插件(DSH Plugin)
← Plugins
S

dsh-side-chat

Side Chat

适用于 DeepSeek Harness 的 Codex 风格临时侧边对话。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:Lukeknow0/dsh-side-chat#3012778737f9a527646b6b7b7c85d2dd00d9312b
README兼容性版本

兼容性与来源证明

Side Chat 以 dsh-side-chat 发布,当前版本为 0.2.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/8/21

版本

0.2.0stable
2026/8/21
0.1.0stable
2026/8/21

相关插件

正在加载相关插件…

最新版
0.2.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 4
周下载
0
最近提交
2026/8/23
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

相关插件

继续浏览 developer-tools 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Sdk Minimal@deepseek-ai/dsh-sdk-minimal独立的最小 SDK 配置包:JSON-RPC、一个 DeepSeek 适配器、持久化 Shell 和 JSONL 会话Sdk App@deepseek-ai/dsh-sdk-appdsh SDK 配置包:基于 dsh-base 提供 stdio JSON-RPC 服务和进程生命周期管理Subagent Codex@deepseek-ai/dsh-subagent-codex基于官方 app-server 协议的一次性 Codex 子代理提供程序

README

DSH Side Chat: Ask aside. Stay on track.

dsh-side-chat

Codex-style temporary side conversations for DeepSeek Harness.

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.

Side Chat installed in DeepSeek Harness

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.

  • One-click drawer: additive header action plus a responsive overlay that chooses a full rail, compact rail, or bottom sheet.
  • Collision-aware placement: measures the rendered AppFrame, native sidebar/details, sibling overlays, and marked portal controls without replacing a native slot.
  • 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.
  • Per-task retention: switching conversations parks the Side Chat instead of deleting it; returning restores the transcript and live child.
  • Explicit lifecycle: visible or generating chats stay alive; close ends immediately, while 30 minutes parked and idle triggers Host-owned cleanup.
  • 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 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 drawer can inspect inherited context and read-only resources. Its placement 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. Close the drawer with the close button, Escape, the shortcut, or the header action when you want to end that Side Chat.

A parent can own one retained Side Chat at a time. Visible drawers and actively generating children do not consume the lease. After the drawer is parked or detached and the child is idle, the Host keeps it for 30 minutes. Explicit close ends it immediately. Reloading the page can reattach to the retained Host conversation when you open Side Chat again.

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. That release exposes no public API for deleting a durable session log. On explicit close 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: Visible/running stays alive; parked + idle gets 30 min
  U->>D: Return to parent and restore transcript
  U->>D: Close
  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, task-switch restoration, and cleanup on explicit close or 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.