- Home
- Plugin
- Miglioramenti UI
- dsh-split-view
dsh-split-view
weiaisuyan/dsh-split-view
Multi-column tabbed workspace for the DSH main area: up to four sessions side by side, each with its own tab strip, composer and host view switcher. Cannot be enabled together with luckybilly's dsh-split-view; installs as the package dsh-multipane.
Installazione
dsh plugin --profile web add github:weiaisuyan/dsh-split-viewREADME
dsh-multipane(多栏视图)
把 DeepSeek Harness 的主区换成一个多栏标签工作区:最多四栏并排,每一栏都有自己的标签条、自己的输入框,栏与栏之间可以拖动分隔、拖标签即可分栏。

上面的图是按插件真实布局与配色渲染的示意图,不是屏幕截图。
它解决什么问题
DSH 默认一次只能看一个会话。真要对照着干活——左边问方案、右边同步试运行;上面读日志、下面改代码——就得来回切,切一次丢一次上下文。
多栏视图把这些会话摆到同一屏上,并且每栏独立:标签、输入框、视图切换条都归自己那一栏管,互不干扰。
主要能力
| 能力 | 说明 |
|---|---|
| 最多四栏 | MAX_PANES = 4,超出的标签留在原栏 |
| 每栏独立标签条 | 拖拽排序、双击关闭(可关掉这个行为)、右键锁定 |
| 每栏独立输入框 | 在哪一栏打字就发给哪一栏的会话,不用先抢焦点 |
| 拖拽分栏 | 把标签或侧栏会话拖到某栏正文的最外侧 20%,就在那一侧新开一栏 |
| 侧栏状态配色 | 只给「焦点 / 打开 / 隐藏」三种行上色,普通行一个像素都不动 |
| 视图切换条 | 每栏标题栏里的「会话 / 编排 / 成本…」一排,位置可放顶部/底部/隐藏,顺序可调 |
| 附件定向 | 把文件拖到某一栏,就只在那一栏插入附件 |
| 中英双语 | 跟随宿主语言,切语言即时生效,不用重启 |
| 布局持久化 | 栏宽、栏内标签、各栏当前标签都记住,下次打开还在 |
安装
npm(推荐)
npx @deepseek-ai/dsh plugin --profile desktop add dsh-multipane
GitHub 直装
npx @deepseek-ai/dsh plugin --profile desktop add github:weiaisuyan/dsh-split-view
包名和仓库名不一样:仓库叫
dsh-split-view,npm 包名是dsh-multipane。装的时候用包名,别搜混。
装完要重启 DSH
插件自己的客户端代码改动可以被宿主热替换,但 package.json 里的导出一类清单变更,宿主只在 entry 启动或重启时读取。如果你是从旧版本升级上来、并且没看到插件列表里的中文名,重启一次宿主即可。
⚠️ 不要和 dsh-split-view(作者 luckybilly)同时启用
两个插件都会往 cordis.patch.yml 里插入 id: split-view 的 loader entry,entry id 直接撞车,同时启用会让主区渲染错乱。要装这个就先卸那个。
升级 / 卸载
# 升级
npx @deepseek-ai/dsh plugin --profile desktop add dsh-multipane@latest
# 卸载
npx @deepseek-ai/dsh plugin --profile desktop remove dsh-multipane
怎么用
| 你想干什么 | 怎么做 |
|---|---|
| 分栏 | 拖标签(或侧栏会话)到某栏正文的最外侧 20%,松手即新开一栏 |
| 把标签挪到别的栏 | 拖到目标栏的中间区域,落进那一栏 |
| 关闭标签 | 双击标签(设置里可关掉双击关闭);或点标签右侧的 ✕ |
| 锁定栏 | 右键标签 → 锁定,锁住后该栏不会被拖走、标签不能被关 |
| 调栏宽 | 拖两栏之间的分隔条 |
| 关掉侧栏入口 | 设置 → 侧栏 → 在侧栏显示入口 |

设置
设置页在 DSH 设置里,也可以直接点侧栏的「多栏视图」入口。

| 分组 | 能调什么 |
|---|---|
| 外观 | 全局线条颜色(7 个预设色 + 自定义)、栏间分隔条的粗细与浓度、标签焦点线、栏内标签悬停底色;每一项都可以「跟随全局」或单独设 |
| 视图切换条 | 位置(顶部 / 底部 / 不显示)、顺序、隐藏哪些视图 |
| 侧栏 | 是否在侧栏显示入口、会话行状态配色开关、焦点/打开/隐藏三档颜色的强弱 |
| 行为 | 双击关闭标签、拖拽分栏的落区大小 |
| 数据 | 导出当前设置成 JSON / 从 JSON 恢复 / 一键恢复默认 |
所有设置都存在本机 localStorage(键名 dsh-split-view:prefs:v1),不上传、不联网。
语言
插件跟随宿主语言,不需要单独设置:
| 宿主语言 | 侧栏入口 | 插件列表卡片 | 设置页标题 |
|---|---|---|---|
| 中文 | 多栏视图 | 多栏视图 (dsh-multipane) | 多栏视图 (Multi-pane) |
| English | Multi-pane | Multi-pane | 多栏视图 (Multi-pane) |
设置页标题故意固定双语,方便在两种界面下都能认出是哪个插件;页面里的每一个设置项都跟随宿主语言切换,无需重启。
检查更新
设置页底部会显示当前版本,并可以点「检查更新」:
- 比对
https://registry.npmjs.org/dsh-multipane/latest的版本号; - 有新版本时,可以点一键更新——宿主侧的
POST /dsh-multipane/update路由会拉 npm tarball、解到临时目录、备份旧文件后覆盖,失败自动回滚; - 这个自更新只在你点击时触发,不点击不会联网,也不写你的 profile 清单(它绕过 pnpm,不改 lock、不受 pnpm 冷却期限制;只会在
pnpm-workspace.yaml里已有的那一行后面补一个|| <当前版本>的允许分支)。
兼容性
- DSH
>= 0.2.1-rc.5(desktop / web profile 均可) - 客户端平台:
web(DSH 桌面端内嵌 Chromium) - 最多四栏;栏宽按容器宽度归一化保存,换窗口尺寸不会错位
已知限制
- 分栏只在正文最外侧 20% 触发,中间区域是「并入本栏」,别把标签扔在正中还想分栏;
- 四栏是硬上限,第五个标签会留在当前栏;
- 与 luckybilly 的
dsh-split-view互斥(见上); - 停用插件后,宿主会话列表会恢复官方样式,但已打开的多栏工作区不会自动收回(切回单栏视图请点视图切换条里的「会话」)。
反馈与支持
| 渠道 | 适合说的事 | 地址 |
|---|---|---|
| GitHub Issues(首选) | 报 bug、提需求、问用法。有记录、能跟进、别人也搜得到 | https://github.com/weiaisuyan/dsh-split-view/issues/new/choose |
| 邮箱 | 不方便公开说的(含安全类问题、涉及隐私的日志) | 1450719125@qq.com |
| 插件市场条目页 | 看简介、安装命令、当前版本 | https://awesome-dsh-plugin.com/p/weiaisuyan/dsh-split-view/ |
报问题顺手带上这几样,能少一轮来回:
- 版本号:设置页最下面「已是 最新版本(1.0.x,…)」那一行,或
~/.dsh/profiles/<profile>/node_modules/dsh-multipane/package.json里的version - DSH 版本与系统(Windows / macOS / Linux)
- 界面语言(中文 / English)——本插件文案是两套,有些问题只在一种语言下复现
- 复现步骤,以及 F12 Console 里以
[split-view]开头的报错(有就贴,没有也说明一下)
开发
源码就是运行时代码,没有构建步骤:
lib/index.js 宿主侧:自更新路由(GET /dsh-multipane/status、POST /dsh-multipane/update)
lib/client.js 客户端:整个多栏工作区 + 设置页 + 侧栏标记(单文件,约 9400 行)
locale/*.json 插件列表卡片的中英文标题与描述(meta.title / meta.description)
cordis.patch.yml 插入 id: split-view 的 loader entry
改完直接重启宿主即可生效。提 PR 前建议跑一下仓库自带的静态检查:
node scripts/check-names.cjs # 包名 / 版本 / 冷却豁免三处是否一致
更新记录
1.0.35(2026-11-10)
- 修掉会话列表呼吸卡顿:呼吸不再逐帧重算样式、重绘整行,改成行内一层伪元素做透明度动画,交给合成器跑——视觉一样,开销降到零头
- 设置页去掉失效的「未打开行文字亮度」滑杆:1.0.34 删掉把普通行压暗的规则后,它已经不影响任何东西
- 文档重写:中文完整版 + 英文完整版(README.en.md)
- 新增三张界面示意图:总览、拖拽分栏、设置页(按真实布局与配色渲染,不是屏幕截图)
- npm 包描述重写,插件列表里的中英描述同步对齐
- 新增「反馈与支持」:Issue 模板、邮箱、插件市场页链接
- 仓库不再包含作者本机脚本(发布脚本、令牌脚本、样式对照表),并加了 scripts/check-privacy.cjs 与 CI 门禁,防止个人信息再次进仓库
1.0.34(2026-11-10)
- 中英双语:侧栏入口、设置页全部设置项、标签条与右键菜单、提示文案,共约 300 条;跟随宿主语言,切换即时生效
- 插件列表显示中文名:新增
locale/zh.json+locale/en.json与./locale/*.json导出,插件列表卡片显示「多栏视图 (dsh-multipane)」/「Multi-pane」 - 修掉设置页丢样式:停用状态下心跳不再删除样式表;设置页不再先闪一帧无样式
- 修复关掉总开关后仍改宿主会话列表:停用时立即清除行标记,普通行完全恢复官方样式
- 修复会话行发暗:删掉把整行压暗的三条
opacity规则——置顶行和悬浮操作按钮终于看得见了;只保留焦点/打开/隐藏三档着色 - 修复停用后拖放与「+」插入文件失效:拖放监听与输入框附件槽位改为跟着总开关装卸,且没有接收者时不再吞掉 drop 事件
1.0.33 及更早
见 GitHub Releases 与仓库提交历史。
许可
Plugin correlati
dsh-web (dsh-task-board)
zhu1090093659/dsh-web
dsh-web (dsh-web-all)
zhu1090093659/dsh-web
dsh-TUI
ccch1mneyyy/dsh-tui
dsh-web-ui (dsh-task-board)
zhu1090093659/dsh-web-ui