前言¶
在 DSH Web 客户端里切换会话,默认路径是按 ⌘K:展开侧边栏、展开搜索框、必要时还要等侧栏滑出,再把焦点落到左下角输入框。正文在中间,眼睛却要去找角落里的搜索——对高频切换来说,成本偏高。VS Code、Sublime、macOS Spotlight 一类工具的做法,是在视线所在处弹出浮层,而不是把用户拽到固定控件上。
dsh-plugin-session-palette 走的就是这条路线:接管 ⌘K,在屏幕上方弹出会话面板,列表、预览、改名和标签都在同一层完成。下面按「是什么 → 能做什么 → 怎么装 → 怎么用 → 注意什么」说明。
这是什么¶
维护者 kjx-talesofai 在 GitHub 开源的 DSH 客户端插件(分类:客户端)。一句话定位:DSH Web 的会话切换器——按 ⌘K 弹出 Spotlight 风格面板,而不是聚焦侧边栏搜索框。
插件要求 DSH ≥ 0.2.0-rc.1(package.json 中 engines.dsh 为 >=0.2.0-rc.1 <0.3.0-0)。当前 release 引用为 v0.8.1,许可证 MIT。它未发布到 npm,安装走 DSH 自带的「添加插件」对话框,不是 npm install。
核心功能¶
会话面板与排序¶
打开面板时不必先输入就能浏览会话;方向键选中,回车进入。列表按状态与时间分组,而不是只跟宿主默认的 updatedAt(最后一次用户输入的时间,模型回复不会推进它)。面板会优先体现「 live 状态」:需要你处理的、正在运行的、刚结束但未读的,再落到「今天 / 昨天 / 过去 7 天 / 过去 30 天 / 更早」等时间桶。
右侧预览高亮会话的最后一个 turn(你的提问与模型回复)。旧会话的 projection 未必已缓存,高亮停留约 0.2 秒后才拉取,快速划过不会并发请求。
四个视图¶
用 Tab / ⇧Tab 在视图间循环,每个视图回答不同问题:
| 视图 | 作用 |
|---|---|
| 最近(默认) | 现在在发生什么:全部会话,按活跃度与时间分组 |
| 工作区 | 只记得目录、不记得标题:按工作区目录分组,最近碰过的组在前 |
| 置顶 | 你主动留下的:按置顶顺序,最近置顶在前 |
| 归档 | 已收起来的:行变暗,按最近活跃排序 |
置顶不是「抬到最近列表顶部」。置顶、归档有各自带计数的视图,计数提醒你里面还有会话;它们不会像钉在「今天」分组最上面那样占用「最近」首屏。在「最近」视图里,一行只落入一个最紧急的分组(例如「需要你」「活跃」,再才是按日期分桶);正在运行的置顶会话会落在「活跃」一类,而不是在「最近」里单独占一条「置顶」分组。
搜索范围¶
面板顶部的输入用于筛会话:匹配会话标题、工作区名、工作区目录路径(工作区改名后仍可按目录搜)。不做消息正文全文搜索;按话题找历史对话仍要用侧边栏搜索。
就地改名¶
两种方式:
- 面板里高亮某行,按 ⌘⇧R:顶部搜索框原地变成标题编辑框,回车保存、
esc取消;失败原因显示在输入框下方,成功提示可撤销。 - 已在打开的会话里,双击顶部标题改名(依赖宿主标题元素类名
crumbCurrent;若上游改 DOM,此路可能静默失效,⌘⇧R 不受影响)。
标题长度受 DSH 默认限制(约 80 字节,中文大约 26 字);超出时 host 会截断,提示以实际存下的标题为准。
标签(每会话最多 3 个)¶
⌘⇧T 打开标签选择器(在右栏,与搜会话的输入框分离)。标签为文字 + 可选 emoji + 颜色(颜色用主题 token)。数据写在插件 Config 的 volatile 字段,落在 profile 的 cordis.patch.yml,重启后仍保留。首次启用标签相关存储需重启一次 DSH(host 只在启动时读字段);未重启时选择器会提示需要重启,不会假保存。
点面板中的标签可筛选(多标签为「任一命中」);删除标签会确认并说明影响会话数,支持撤销。
其它快捷键(面板内)¶
- ⌘⇧P:置顶 / 取消置顶
- ⌘⇧⌫:归档 / 恢复
- ⌘↑ / ⌘↓:第一条 / 最后一条
- PgUp / PgDn:翻一屏
- esc:关闭面板
浮窗约 1180px 宽、88vh 高(左列表约 60%、右预览约 40%)。分组标题吸顶,页脚显示当前位置(如 37 / 340);超过 7 天的行显示具体日期(如 9月12日)。
安装与启用¶
在 DSH 「添加插件」中填写下列之一(不需要 npm 账号,也无需发布到 npm):
github:kjx-talesofai/dsh-plugin-session-palette#v0.8.1
或使用本地克隆目录的绝对路径,例如:
/path/to/dsh-plugin-session-palette
装完后重启 DSH 桌面端(host 半边仅在启动时加载插件;浏览器半边随页面重载)。
卸载:在插件列表移除 dsh-plugin-session-palette 后重启,或使用「Restore All」恢复快捷键默认值;README 说明无需清理额外偏好。
典型用法¶
- 日常切换:按 ⌘K 打开面板 → ↑ / ↓ 选会话 → ⏎ 进入。侧边栏的搜索按钮仍可用(鼠标),只是 ⌘K 交给面板。
- 按目录找: Tab 切到 工作区 视图,在组内按最近顺序找。
- 长期跟踪: ⌘⇧P 置顶,在 置顶 视图按置顶顺序打开;暂时不用则 ⌘⇧⌫ 归档,在 归档 视图恢复。
- 整理标题与标签:列表里 ⌘⇧R 改名,或打开会话后双击顶部标题; ⌘⇧T 打标签,点标签筛一批相关会话。
适用场景与注意¶
适合谁:同时在跑很多 DSH 会话、频繁在「等你 / 运行中 / 刚结束」之间跳转,又希望改名、轻量分类不离开当前视线区域的开发者。
权限与信任:插件在当前 DSH 进程权限下运行,会接管固定键位 ⌘K(走官方「固定键位」通道,关掉插件即可恢复,不改写你的按键偏好文件)。安装前应在 GitHub 阅读源码与 MIT 许可证,自行判断是否纳入你的工作流。
兼容性:README 写明端到端实测主要在 macOS(Apple Silicon)+ DSH Desktop 0.2.1-rc.2;Windows / Linux 未测。DSH 升级后宿主契约可能变化,升级前后建议对照仓库 README 的 Compatibility 说明。
与宿主行为的差异:预览时间文案强调「你 X 前发言」,因为 updatedAt 不随模型回复更新。双击标题是唯一明显依赖宿主 DOM 的交互点。
链接¶
- 社区目录页:https://www.skillhub.cn/plugins/kjx-talesofai/dsh-plugin-session-palette(独立站点,与 DeepSeek / 幻方无官方从属关系)
- 源码与完整快捷键表:https://github.com/kjx-talesofai/dsh-plugin-session-palette
若你已经在用 DSH 的「一切皆插件」生态,这个插件把高频的会话切换从侧栏角落挪到屏幕中央的浮层里,并补上按状态排序、末轮预览、改名与少量标签——在不替代全文搜索的前提下,缩短「想起来 → 切回去」的路径。