dsh-sidechat
by realpkuasule
DeepSeek Harness 的 Codex 风格侧聊:在输入框暂存所选内容(不自动发送)、一键新聊天、把回复带回主对话
Codex-style side chat for DeepSeek Harness: stage selections in the input (no auto-send), one-click new chat, bring replies back to the main conversation.
安装
dsh plugin --profile web add github:realpkuasule/dsh-sidechatGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
DeepSeek Harness(DSH)的 Codex 式侧边聊天网页插件:右侧面板提供按主会话隔离的独立 agent 聊天。基于 heartmove/dsh-side-chat(MIT)分叉修改。
English docs: README.md.
功能
- 右侧面板侧边聊天——每个侧聊都是一个真实的 DSH agent 会话(隐藏、已归档),只属于发起它的那个主会话,并感知其工作目录。
- 继承主会话上下文——工具集、模型、思考难度、权限预设与工作目录全部继承,且每个侧聊可单独调整。
- 选中即问,默认不发送——选中主对话文本点「在侧边聊天中提问」,面板打开、内容写进输入框,按回车才发送("立即发送"可在设置里打开)。
- 一键新建侧聊——面板右上角「+」按钮立即创建一个空侧聊并聚焦输入框。
- 带回主会话——侧聊 AI 回复可整条或选中片段、直接或摘要后,写入主会话草稿框或注入为折叠上下文行。
- 问题弹框侧聊——主 agent 弹出问题弹框时,可把问题与各选项带入侧聊先分析、不打断主流程,想清楚后把答案带回再作答。
- 易用细节——面板可拖宽(280–720 px)与折叠、侧聊可单个/全部删除、「需要时查工作区/主会话」开关、界面跟随 DSH 中英文设置。
与上游(dsh-side-chat)的差异
- 选中内容注入输入框,默认不发送。
sendImmediately默认改为关闭;「继续在激活的侧边聊天中提问」会把选中内容追加到已有草稿而不是覆盖。 - 一键新建侧聊。面板头部新增「+」按钮,直接创建新侧聊。
- 更名为
dsh-sidechat(设置命名空间、记录文件、bundle id 等)。
其余能力与上游一致。
安装
从 GitHub 安装
dsh plugin --profile web add github:realpkuasule/dsh-sidechat
git 安装在安装时从源码构建。pnpm ≥ 10 会拦截构建脚本,第一次 add 会失败并提示"Ignored build scripts"——把提示里打印的包键复制进 profile 的 pnpm-workspace.yaml:
onlyBuiltDependencies:
- dsh-sidechat
然后重新执行 add。重启 dsh web 并硬刷新页面(Cmd/Ctrl+Shift+R)后生效。
从本地源码安装
dsh plugin --profile web add ./dsh-sidechat
本地源码以软链接安装,改代码即生效,无需重装。
配套插件
dsh-side-notify 提供主动推送:侧聊面板旁「通知主 agent」悬浮胶囊与 /notify、/to-main 命令,把消息直接推给主 agent 作为其下一轮处理。
dsh plugin --profile web add github:realpkuasule/dsh-side-notify
使用
- 发起侧聊——选中主对话任意文本点「在侧边聊天中提问」(内容进入输入框、不发送),或打开面板点「+」。
- 独立聊天——按需调整每个侧聊的模型/思考难度/权限;需要更多上下文时打开「需要时查工作区/主会话」。
- 带回主会话——回复下方「直接带回 / 摘要后带回」(或选中片段),落点为草稿框或折叠上下文行。
- 从容回答问题弹框——主 agent 提问等待时,先在侧聊里把问题与选项分析清楚,再把答案带回作答。
设置
DSH 设置 → 侧边聊天(Side chat):
| 设置 | 默认值 | 说明 |
|---|---|---|
lookupDefault |
关 | 新侧聊默认是否勾选「需要时查工作区/主会话」。 |
sendImmediately |
关 | 打开时选中内容立即发送并附加 defaultPrompt;关闭时只写入输入框。 |
defaultPrompt |
(空) | 「立即发送」时附加的提示词。 |
bringMode |
draft |
带回内容的落点:写入草稿框,或注入为折叠上下文行。 |
实现原理
每个侧聊都是一个普通 DSH 会话:meta.parentSession 指向发起它的主会话,创建后立即归档,因此不会出现在会话列表或子代理目录。宿主侧(/sidechat/api JSON 路由)通过实时 agent(agent.followup)创建并驱动这些会话、继承发起会话的组合配置;带回主会话走 agent.inject 或主输入框。客户端是一个 portal 挂载的 React 面板,通过同源 POST 调用宿主路由,请求经过与 DSH API 网关一致的 loopback/可信主机围栏。
开发
pnpm install
pnpm build # tsc -p tsconfig.build.json && tsdown → lib/
pnpm typecheck
lib/ 即产物:lib/index.js(host)、lib/client.js(profile 渠道)、lib/client-registry.js(插件注册渠道)。prepare 脚本执行同样的 tsdown 构建,因此 GitHub 安装可以直接从源码构建。
src/
index.ts host:/sidechat/api 路由、会话/agent 生命周期、转录折叠
wire.ts 请求/响应工具
trust-fence.ts loopback / 可信主机请求围栏
settings-shared.ts 宿主与客户端共享的偏好词汇
context-types.ts Cordis Context 类型增强
client/
index.tsx client:面板、输入框、设置区、浮动菜单
api.ts client↔host API 类型
locales.ts 中/英词典
client.module.css 面板/输入框/设置样式
layout.css #root margin-right 随面板宽度
cordis.patch.yml bundle 补丁层(dsh.bundle.patch)
dsh.plugin.json 外部插件清单
tsdown.config.ts bundle 配置(client externals + CSS 内联)
许可证
MIT。基于 heartmove/dsh-side-chat(MIT)分叉修改;信任围栏为上游代码的纯 JS 移植。
原始 README: https://github.com/realpkuasule/dsh-sidechat/blob/main/README.zh.md ↗
同类插件
查看全部 →
archify
Agent 技能:生成美观、可校验的架构图、工作流图、时序图、数据流图与生命周期图——自包含 HTML、带动画与清晰导出

dsh-turn-rewind
对话回退:基于持久 Change Ledger 回滚会话与工作区状态。

dsh-plugin-cc
把 DeepSeek Harness 接入 Claude Code:评审、批评、委派与会话导入

dsh-interconnect
跨实例互联:经 interconnect 服务在多个 DSH 实例间转发消息与事件。

dsh-chat-import
把 13 家 coding agent(Claude Code、Codex、ChatGPT、Cursor、Gemini、opencode 等)的完整对话历史导入为可续聊的 DeepSeek Harness 会话,并支持反向导出回 Claude Code。

dsh-crew
DSH 插件:从 Claude Code / Codex 向 DSH agent 派活——原生 subagent 进度、宿主内 worker 会话(分级预设),以及为纯文本宿主补上视觉与图像生成的多模态桥