dsh-multiview:在 DeepSeek Harness 中并排运行 2~4 路真实对话

前言

在 DeepSeek Harness(DSH)里做多会话并行时,常见做法是反复切换会话标签,或开多个窗口。前者打断上下文对比,后者占用屏幕且难以统一调整布局。dsh-multiview 是社区维护的客户端插件,目标是在同一窗口内并排展示 2~4 路真实 Chat:每格保留 composer、流式输出、工具卡片、审批卡片、ask_user_question、附件、斜杠命令以及 stop/queue,读感上接近宿主自带能力,而不是用私有扩展点做布局劫持或 monkey-patch。

这是什么

  • 名称:dsh-multiview(npm 包名与安装标识一致)
  • 维护者:Awenforever
  • 分类:客户端(dsh.client,web 平台、immediately 加载)
  • 仓库:github.com/Awenforever/dsh-multiview
  • 当前版本(package.json):0.1.25
  • 许可证:MIT

插件在左侧栏面板列表中提供 Split 入口;开启后中央列变为分屏舞台,再次点击可回到原生单会话视图。

核心功能

下面能力均来自项目 README 与 manifest,未在 v1 刻意支持的范围见后文「适用场景与注意」。

  1. 分屏数量:舞台栏提供 2、3、4 芯片,切换 pane 数量。
  2. 布局:拖拽 pane 间分隔条调整宽度;拖拽某一 pane 标题到另一 pane 上可交换位置。
  3. 最大化:pane 标题栏的 ⤢ 按钮可最大化/还原,舞台栏会显示 “Restore”。
  4. 绑定会话:空 pane 内可搜索并选择已有 session;有内容的 pane 点 ✕ 会将会话放回会话列表(分屏形状不变),仅空 pane 的 ✕ 会真正移除该格。
  5. 回到原生视图:pane 上的 ↗ 将会话交还给原生对话视图(右侧栏文件预览、diff 审查仅存在于该视图)。
  6. 视图记忆:Bar → Views:含 2 个以上 session 的分屏会自动记住;点击恢复,✕ 删除。
  7. 更新检查:栏右侧刷新图标,每 24 小时检查一次;有新版本时红点提示,确认后更新。

客户端仅使用公开 slot 表面(如 keyed main panel、SessionProvider、conversation.content 的 variant:'embedded'、sessions.retain 等),设计上避免接管标题栏或篡改私有导航。

安装与启用

环境要求(engines.dsh):>=0.2.1-rc.5 <0.3.0。README 另写明细分区间:>=0.2.1-rc.5 <0.2.2-0 || >=0.2.2-rc.1 <0.3.0。构建在 0.2.1-rc.5 与 0.2.2-rc.1 上验证;其他版本工具栏 tooltip 会提示未按该组合测试。

任选一种安装方式后,退出并重新打开 DeepSeek Harness,以便客户端 bundle 重新加载:

dsh plugin add dsh-multiview

或在 DSH Desktop 中打开 Plugins → Add 搜索安装(维护者亦可用 plugin_manager install_bundle)。

卸载:在 Plugins 页面禁用/移除并重启。可能残留 localStorage['dsh.multiview.v1'] 布局键;舞台上的 Reset 可清除。

典型用法

操作 方式
打开/关闭分屏 侧栏面板列表中的 Split 图标
2 / 3 / 4 格 舞台栏 2、3、4
调整宽度 拖拽格间分隔条
交换两格 拖拽 pane 标题到另一格
在格内选会话 空格内搜索并选择
在原生视图继续 pane 上 ↗

快捷键(模块默认,可在 Settings → Shortcuts 重绑):

命令 桌面默认
聚焦上一格 / 下一格 Mod+Alt+[ / Mod+Alt+]
最大化或还原当前格 Mod+Alt+M
从分屏移除当前格 Mod+Alt+W

Web 壳无默认快捷键绑定;若在 Web/Linux 上强绑可能因 “reserved” 在启动时报错,需手动配置。桌面默认可用。

窗口过窄(宽低于 900px 或高低于 520px)时,舞台会退化为单格加格切换器,布局树仍保留。

适用场景与注意

适合:需要同时对照多条对话进度(例如多任务 agent、并行代码审查与问答)、且希望每格行为与原生 Chat 一致的用户。

v1 有意不支持(README “Not supported”):

  1. 分屏格内文件预览 / diff——全局面板激活时宿主会卸载右侧 session surface,请用 ↗ 回到原生视图。
  2. 在格内新建 session——需在原生视图创建。
  3. 每格独立切换 Trajectory / 插件视图——格固定为 Chat。
  4. 侧栏点击路由到当前聚焦格——侧栏保持原生行为(会离开分屏)。
  5. 超过 4 格;以及“假暂停”未聚焦格的渲染(移除或重绑格时释放资源)。

性能:README 给出在指定桌面环境下的 CDP rAF 采样表;四路长流式同时进行时 p95 可能升至约 50ms,偶发 150ms 帧,v1 不以降帧换取“真 Chat”。多格渲染成本亦见上游 discussion #12559。

安全与权限:插件作为 DSH 客户端 bundle 加载,在当前 DSH 进程权限下运行;安装前请查阅 仓库源码 与 MIT 许可证。客户端网络请求限于插件市场同源 API 以及为发现版本而对 registry.npmjs.org/dsh-multiview/latest 的只读访问(无凭证、无 referrer);安装仍经市场流程。

DSH 生态理念是「一切皆插件」;SkillHub 目录页 为社区站点,与 DeepSeek / 幻方无官方从属关系。

状态:Pre-1.0,日常可用,小版本可能有 breaking change,见 CHANGELOG.md。问题与功能请求:GitHub Issues(模板要求提供插件版本与宿主版本)。

结尾

dsh-multiview 把 2~4 路并行对话收进单窗分屏,每格是宿主提供的真实 Chat 表面,而不是简化版聊天区。若你的工作流常要在多会话间对照流式输出与工具调用,可先按上文命令安装,用 Split 与 Views 固化常用布局。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜