DeepSeek Harness 插件

zclDragon/dsh-side-chat

Star 数 ★ 1 下载量(近 30 天) 562 分类 UI 增强 收录于 2026-08-24 npm @zhuchenglong/dsh-side-chat

Codex 风格 /side 侧边对话插件:在当前对话旁开一个浮动分叉面板,继承上下文、不打断主任务。

安装

# npm 包(预构建)

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

# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)

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

装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。

README

English: README_EN.md

Codex 风格的 /side 侧边对话插件(DeepSeek Harness Web GUI)。

在运行中的主对话旁边打开一个临时分叉对话:继承主线已完成的上下文、不打断主任务、不污染主线程的模型上下文。适合"边跑边问"——在主线任务运行的同时,侧边问一句"这里为什么这么写?"、"这个报错是什么意思?"。

功能

  • /side 命令:在当前会话旁开一个侧边对话(继承主线截至最后一个 turn/end 的完整上下文)。
  • 浮动侧边面板:右下角「💬 侧聊」按钮开关;面板内可新建、切换、关闭侧边对话。
  • 实时问答:侧聊会话走与主对话相同的消息通道(session.prompt),流式渲染、可停止。
  • Markdown 渲染:侧聊回复用与主对话同款的 MarkdownText(标题/代码块/表格/公式),流式跟随滚动。
  • 并发不中断:侧聊 agent 与主 agent 同进程并发运行,主任务不被打断。
  • 关闭即移除:关闭侧聊时 dispose agent 并归档会话,从面板与侧边栏一并消失。
  • 不污染主线:/side 只在主线程日志里留一条命令卡片,不进入模型上下文。

安装

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

或从 GitHub 安装:

dsh plugin --profile web add github:zclDragon/dsh-side-chat#main

重启 dsh web(或刷新浏览器)后生效。

使用

  1. 在浏览器中打开 GUI(默认 http://127.0.0.1:3080)。
  2. 点右下角「💬 侧聊」,或直接输入 /side。
  3. 在面板里点「+ 新建」开一个侧边对话,然后输入问题。

工作原理

  • Host 半(src/index.ts):注册 /side-chat 路由(open/list/close)与 /side 命令。open 复用 DSH 的 fork 语义——以父会话「最后一个 turn/end 起、延伸到下一个 turn/start 之前」的完整日志前缀为种子,通过 ctx.agents.create 创建子 agent,并继承父会话的 agent preset 组合与模型选择。
  • Client 半(src/client/):通过 ctx.sessions 绑定侧聊会话、打开其事件窗口(session.open()),订阅实时会话快照渲染紧凑 transcript;消息经 session.prompt() 投递。
  • 注册表:进程内 Map<sideSessionId, parentSessionId> 记录分组;进程重启后侧聊会话仍在(普通持久化),但分组关系需后续迭代用 ctx.storageDomain 持久化。

开发

pnpm install
pnpm typecheck     # tsc --noEmit
pnpm test          # vitest(host 9 + client 4)
pnpm build         # tsc 声明 + tsdown 产物(lib/index.js + lib/client.js)
pnpm pack          # 发布用 tarball

已知限制(后续迭代)

  • 进程重启后侧聊的「分组关系」暂不持久化(会话本身持久化)。
  • 面板列表用 3s 轮询刷新(/side 命令新开的侧聊最长 3s 后出现)。
  • 侧聊继承上下文截至最后一个 turn/end(与 DSH fork 一致),进行中的 turn 无法继承。

内容来自项目 README(GitHub)↗

链接

同类插件

查看整个分类 →

社区评论

评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。