DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

lumine-423 /

lumine-423/dsh-session-popout

Verified

让你可以从侧边栏拖拽会话,使其成为一个独立窗口,省得来回切换会话的插件!

★ 4 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@83ba051a

独立会话窗口(Session Popout)

本项目由 AI 全程辅助制作。 需求、设计方向与验收由作者把握,代码、文档与排查过程由 AI 结对完成。发布前经过人工审阅,文中所有功能说明以实际行为为准。

顺便一提,下面的介绍也是ai写的,所以ai味很重也别找我麻烦嘞。

让你可以从侧边栏拖拽会话,使其成为一个独立窗口,省得来回切换会话的插件!

DeepSeek Harness 的会话默认都挤在同一个窗口里:想同时盯着两个会话跑、想把某个会话扔到第二块屏、想一边看长回复一边在别处干活,都得反复点侧栏。这个插件把「一个会话」变成一个真正的操作系统窗口 —— 关掉它不影响主窗口,主窗口也照常工作。

什么时候用得上

  • 一个会话在跑长任务,另一个还要继续聊。 长任务那个扔进独立窗口让它自己跑,主窗口留在你正在聊的会话上,两边都不用退出、不用切。
  • 想把某个会话丢到第二块屏幕。 独立窗口是真正的系统窗口,能拖到任意显示器、能单独全屏、能被系统窗口管理器记住位置。
  • 一边等长回复,一边在别处干活。 等着看结果的那个会话单独开一窗放在旁边,主窗口腾出来干别的事,不必为了瞄一眼进度切来切去。

看起来是什么样

拖出去的窗口是 DSH 自己的会话界面:

  • 顶部还是「对话 / 轨迹」标签、模型名、右上角那排控制件
  • 中间还是原来那套对话流,Markdown、代码块、工具调用卡片全部照旧渲染
  • 底部还是输入框、识图 / 上传、状态栏
  • 侧边栏自动收起,于是窗口里只剩下这个会话本身

换句话说,是把 DSH 的那一块 切 了下来,而不是重画一个。插件本身不参与对话渲染 —— 对话由宿主画,插件只做三件事:开窗、把侧栏收掉、在会话头部加两个小按钮。

能做什么

能力 说明
拖拽开出独立窗口 在侧边栏按住会话条目往外拖,松手的地方就是新窗口出现的地方
窗口之间拖拽合并 把一个窗口拖到另一个上面,两个会话并成一个集合窗口
集合窗口 一个窗口里横排多个会话成员,左侧成员栏可切换、可拆出
收回 点窗口里的「⇲ 收回」,会话回到主窗口继续显示
跟随宿主主题 窗口的原生标题栏跟着 DSH 的明暗主题走
热更新 改了插件代码不用重启 DSH,HMR 会重新装载

安装

从 GitHub 安装(现在就能用):

dsh plugin add github:lumine-423/dsh-session-popout

或者下预构建包(不用本地编译,装得更快):

dsh plugin add "https://github.com/lumine-423/dsh-session-popout/releases/latest/download/dsh-session-popout.tgz"

以后会发布到 npm,那时就只需要 dsh plugin add dsh-session-popout。

装好后从侧边栏拖任意一个会话即可,不需要额外配置。

收录状态

  • ✅ GitHub 仓库已上线:lumine-423/dsh-session-popout,带 release 与预构建 dsh-session-popout.tgz(资产名不带版本号,安装命令因此不会随发版失效)
  • ⏳ 插件市场目录:PR 已提交 —— awesome-dsh-plugin#8306。目录有一条自动检查要求仓库创建满 1 天;首次跑会红,该检查每 6 小时自动重跑,满 1 天后会自行转绿,不需要重开 PR
  • ⏳ npm 包 dsh-session-popout:尚未发布,发布后市场能显示下载量

依赖什么

  • DSH 桌面版(dsh-desktop-runtime)。插件需要借桌面版自带的 Electron 来开原生窗口;纯 Web 版 / dsh web 没有这个能力,插件会安静地不生效。
  • Electron 的查找顺序:环境变量 DSH_POPOUT_ELECTRON → 当前进程自身 → <home>/.dsh/electron/。想用系统里另一份 Electron,设这个环境变量即可。

已知限制

这个插件用了一部分 DSH 的内部接口,而不是公开稳定的插件 API。具体包括:

  • 布局服务的 beginNavigation()、toggleSidebar()、closeRightbar()
  • 会话快照里的 retainedBy.mainView 判断主视图归属
  • 布局层给的 data-shell-overlay 等 DOM 稳定标记
  • 会话头部槽位 conversation.session.header.utilities

这意味着 DSH 升级后有可能失效。失效时的表现通常是窗口里只剩背景、或者按钮不出现,而不是崩溃。遇到请在 issue 里附上 DSH 版本号。

其余限制:

  • 只在 Windows 上实测过;macOS / Linux 的代码路径写了但没有真机验证
  • 一个会话同时只能在一个窗口里出现
  • 集合窗口的成员栏不支持拖拽排序(用下拉切换)

出问题时

插件在窗口里自带一份自检:如果打开 3.5 秒后 DSH 的会话界面还没画出来,窗口底部会浮出一块说明,列出它检查到的每一层(外框、侧栏状态、浮层、会话目录、打开状态、启动期错误)。把那块截图发到 issue 里,比描述「白了」有用得多。

开发

# 直接改源码即可,profile 里是 link 形式,改完刷新页面生效
# client.js 会被 index.js 的 watcher 检测到并触发热重载

结构:

文件 职责
index.js 宿主侧:HTTP 路由、拉起并管理窗口管家进程
client.js 前端:拖拽开窗、收侧栏、打开会话、会话头部按钮
window/main.cjs 窗口管家主进程:创建 BrowserWindow、合并/拆分/关闭
window/preload.cjs 注入页面:标记窗口身份、收敛外壳布局、上报自检

License

PolyForm Noncommercial 1.0.0 加一条源码可得性补充条款。SPDX 标识:LicenseRef-PolyForm-Noncommercial-1.0.0-With-Source-Availability。

你可以:

  • 免费用,随便用,私人、学习、研究、业余项目、慈善、教育、公共研究、政府机构使用都算允许用途
  • 读源码、改源码、自己改着玩
  • 原样转发给别人

但不能:

  • 拿去商用 —— 卖钱、放进收费产品、当作商业服务的一部分,都不行。要商用请单独联系作者谈授权
  • 改完闭源发给别人 —— 你把改过的版本发出去,就必须把改过之后的完整源码用同样条款、免费、放在拿到你版本的人找得到的地方公开。只发打包产物、压缩产物、编译产物不算

完整条款见 LICENSE。

—/ 5

No ratings yet

Verified DSH bundle

Commit 83ba051a3e44

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout