前言¶
在 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 刻意支持的范围见后文「适用场景与注意」。
- 分屏数量:舞台栏提供
2、3、4芯片,切换 pane 数量。 - 布局:拖拽 pane 间分隔条调整宽度;拖拽某一 pane 标题到另一 pane 上可交换位置。
- 最大化:pane 标题栏的 ⤢ 按钮可最大化/还原,舞台栏会显示 “Restore”。
- 绑定会话:空 pane 内可搜索并选择已有 session;有内容的 pane 点 ✕ 会将会话放回会话列表(分屏形状不变),仅空 pane 的 ✕ 会真正移除该格。
- 回到原生视图:pane 上的 ↗ 将会话交还给原生对话视图(右侧栏文件预览、diff 审查仅存在于该视图)。
- 视图记忆:Bar → Views:含 2 个以上 session 的分屏会自动记住;点击恢复,✕ 删除。
- 更新检查:栏右侧刷新图标,每 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”):
- 分屏格内文件预览 / diff——全局面板激活时宿主会卸载右侧 session surface,请用 ↗ 回到原生视图。
- 在格内新建 session——需在原生视图创建。
- 每格独立切换 Trajectory / 插件视图——格固定为 Chat。
- 侧栏点击路由到当前聚焦格——侧栏保持原生行为(会离开分屏)。
- 超过 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 固化常用布局。