DeepSeek Harness 插件

dsh-sidechat-realpkua

侧边聊天 (Side chat) — DSH web plugin,forked from heartmove/dsh-side-chat:选中内容注入输入框(默认不发送)、一键新建侧聊、按会话隔离的隐藏会话、继承模型/思考难度/权限、可带回主会话。(英文原文)

跳到安装方式

来源信息

GitHub 仓库
realpkuasule/dsh-sidechat
最近更新
2026年8月17日
分类
记忆
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/realpkuasule/dsh-sidechat
插件名:dsh-sidechat-realpkua
作者:realpkuasule

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.md来源说明 · 只读预览
README 语言

dsh-sidechat

Codex-style side chat for DeepSeek Harness (DSH): an independent, agentic chat in a right-side panel, isolated per main conversation. Forked from heartmove/dsh-side-chat (MIT).

> 中文文档:README.zh.md

Features

  • Side chat in a right-side panel — a real DSH agent session, hidden and archived, scoped to the conversation it was started from and aware of its workspace.
  • Inherits main-conversation context — toolset, model, thinking effort, permission preset and working directory, each adjustable per chat.
  • Select → ask, without auto-send — selecting text and choosing "Ask in side chat" opens the panel and writes the selection into the input; nothing is sent until you press Enter (auto-send is opt-in via settings).
  • One-click new chat — a "+" button in the panel header creates a fresh empty side chat and focuses the input.
  • Bring replies back to the main conversation — insert a whole reply or a selection, directly or summarized, into the main composer draft or as a collapsed context row.
  • Question-dialog side chat — when the main agent asks you a question, bring the question and options into the side chat for analysis without interrupting the main flow, then bring the answer back.
  • Convenience — resizable (280–720 px) and collapsible panel, per-chat delete, "look up workspace / parent when needed" switch, zh/en UI following the DSH language setting.

Differences from upstream (dsh-side-chat)

1. Selections land in the input, not auto-sent. sendImmediately now defaults to off; "Continue active side chat" appends to the existing draft instead of replacing it. 2. One-click new chat. A "+" button in the panel header starts a new side chat immediately. 3. Rebranded as dsh-sidechat (settings namespace, record file, bundle ids).

Everything else matches upstream.

Install

From GitHub

dsh plugin --profile web add github:realpkuasule/dsh-sidechat

Git installs build from source on install. pnpm ≥ 10 blocks the package's build script until allowed, so the first add fails with an "Ignored build scripts" hint — copy the exact package key it prints into the profile's pnpm-workspace.yaml:

onlyBuiltDependencies:
  - dsh-sidechat

Then re-run the add. Restart dsh web and hard-refresh the page (Cmd/Ctrl+Shift+R).

From a local checkout

dsh plugin --profile web add ./dsh-sidechat

The checkout is linked, so local edits apply without reinstalling.

Companion plugin

dsh-side-notify adds active push-to-main: a floating "Notify main agent" pill and /notify, /to-main commands that deliver a message straight to the main agent as its next turn.

dsh plugin --profile web add github:realpkuasule/dsh-side-notify

Usage

1. Start a side chat — select any text in the main conversation and click "Ask in side chat" (the text lands in the input, not sent), or open the panel and click "+". 2. Chat independently — adjust model / effort / permission per chat; enable "look up workspace / parent when needed" when the task needs more context. 3. Bring it back — click "Insert directly" or "Summarize & insert" under a reply (or select part of it) to place it in the main composer draft or as a collapsed context row. 4. Answer question dialogs thoughtfully — while the main agent waits on a question dialog, side-chat about the question and options first, then bring the answer back.

Settings

DSH Settings → 侧边聊天 (Side chat):

SettingDefaultDescription
lookupDefaultoffDefault state of the "look up workspace / parent when needed" switch for new chats.
sendImmediatelyoffWhen on, selections are sent immediately with defaultPrompt appended; when off, they are staged in the input.
defaultPrompt(empty)Prompt appended to immediately-sent selections.
bringModedraftWhere brought-back content lands: into the composer draft, or as a collapsed context row.

How it works

Every side chat is an ordinary DSH session whose meta.parentSession links it to the conversation that started it; it is archived immediately so it never appears in the session list or subagent catalog. The host half (/sidechat/api JSON routes) creates and drives those sessions through the live agent (agent.followup), inheriting the launching conversation's composition, and brings replies back through agent.inject or the composer input. The client half is a portal-mounted React panel that talks to the host routes over same-origin POSTs guarded by the same loopback / trusted-authority fence as the DSH API gateway.

Development

pnpm install
pnpm build     # tsc -p tsconfig.build.json && tsdown → lib/
pnpm typecheck

lib/ holds the artifacts: lib/index.js (host), lib/client.js (profile channel), lib/client-registry.js (plugin-registry channel). The prepare script runs the same tsdown build, so GitHub installs build from source.

src/
  index.ts             host: /sidechat/api routes, session/agent lifecycle, transcript folding
  wire.ts              request/response helpers
  trust-fence.ts       loopback / trusted-authority request fence
  settings-shared.ts   preference vocabulary shared by host and client
  context-types.ts     Cordis Context type augmentations
  client/
    index.tsx          client: panel, composer, settings section, floating menus
    api.ts             client↔host API types
    locales.ts         zh/en dictionaries
    client.module.css  panel/composer/settings styles
    layout.css         #root margin-right driven by panel width
cordis.patch.yml       bundle patch layer (dsh.bundle.patch)
dsh.plugin.json        external plugin manifest
tsdown.config.ts       bundle config (client externals + CSS inlining)

License

MIT. Forked from heartmove/dsh-side-chat (MIT); the trust fence is a plain-JS port of the upstream copy.