dsh-session-menu
Adds mark-unread, copy session info, reveal in Finder or open with your IDE, and permanent delete (with child sessions) to the DSH sidebar session menu, plus error and unread status dots, hover-card details, one-click delete for archived rows, and a settings panel that switches each menu item on or
Install
dsh plugin --profile web add dsh-session-menu
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✓ |
| 2 list | ✓ |
| 3 mount | ✓ |
| 4 boot | — |
Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
<div align="center">
<img src="https://raw.githubusercontent.com/big-head-pigeon/dsh-session-menu/main/icon.svg" width="96" alt="dsh-session-menu">
dsh-session-menu
给 DSH(DeepSeek Harness)侧边栏的会话右键菜单补上标记未读、复制会话信息、在文件管理器中显示或换 IDE 打开、
永久删除会话;每行会话还加了状态点、悬浮卡信息和归档后的一键删除。



[English](README.md) | 简体中文 | [繁體中文](README.zh-TW.md)
[界面](#界面) · [安装](#安装) · [卸载](#卸载) · [设置](#设置) · [平台支持](#平台支持) · [配置](#配置)
</div>
界面
会话右键菜单 · 行首状态点
悬浮卡 · 归档行一键删除 + 批量入口
永久删除的二次确认 · 归档行的右键菜单
装好之后,在 设置 → 插件 → 已安装 里长这样:
安装
三种方式都是从这个插件在 npm 上的包(dsh-session-menu)安装。
方式一:在 DSH 界面里装(推荐)
1. 打开 DSH,点左侧栏的 插件
2. 点右上角的 添加插件
3. 输入框里填 dsh-session-menu,点 安装
4. 重启 DSH 应用
方式二:让 Agent 装
把下面这句发给 DSH 里的 Agent:
用插件管理器安装 dsh-session-menu,装完提醒我重启 DSH 应用。
方式三:用终端装
会用命令行的话:打开 macOS 的「终端」应用(⌘ + 空格 搜「终端」),粘贴这行回车。
dsh plugin --profile desktop add dsh-session-menu
把 desktop 换成你自己的 profile 名(ls ~/.dsh/profiles 能看到,常见的是 desktop 或 web)。
装完同样要重启 DSH 应用。
卸载
设置 → 插件 → 已安装,点 dsh-session-menu 那一行右侧的垃圾桶图标,确认即可。
设置
装好之后,插件在设置里多一块 会话菜单(Settings → 会话菜单),里面是 8 个开关:
标记未读 · 复制 · 在文件管理器中显示 · 打开方式 · 永久删除会话 · 删除所有已归档会话 · 状态点 · 悬浮卡
关掉哪一项,它就立刻从右键菜单和会话行上消失(不用重启)。开关存在浏览器本地。
其中「复制」和「打开方式」左边的三角可以展开,单独开关二级菜单里的每一项;一级关掉时二级跟着变灰。
「复制会话 ID」是内核后来才有的:内核已经有了这条时,我们那条同名子项默认是关的,「复制」也跟着
只剩一条;想两条都要,在设置里把它打开即可。
如果你的 DSH 是自带同名功能的社区版,在这里把重复的几项关掉就行。
平台支持
平台 · 状态 · 「打开方式 ›」里有什么
macOS · 已实测,行为不变 · 按已知安装位置探测 /Applications 与 ~/Applications,再并入系统声明「能打开文件夹」的应用
Windows 10/11 · 0.1.3 起已实测 · 按已知安装位置探测(%LOCALAPPDATA%、%PROGRAMFILES%、%SYSTEMROOT%):文件资源管理器、VS Code、Cursor、Trae、Windows 终端、PowerShell、cmd 等 —— 只列真正装了的
Linux · 未实测 · 没有内置清单:只有内核自己报的应用
- 各平台的打开语义:编辑器和 IDE 收到会话目录作为参数;文件资源管理器直接打开它;
Windows 终端用 -d;PowerShell、cmd、Git Bash 起一个可见的新控制台,工作目录就是会话目录。
macOS 上所有条目仍走 open -a。
- 图标:macOS 用一次 JXA 批处理;Windows 用一次 PowerShell 批处理抽每个 exe 的 32×32 图标,
两边都缓存 10 分钟。PowerShell 不在或被策略拦住时 Windows 清单照常可用,只是没有图标。
- 在文件管理器中显示:macOS 走
open -R,Windows 走explorer /select,;菜单文字跟宿主平台走。 - Windows 上故意不合并内核那份列表:内核在 Windows 上按文件扩展名枚举 Shell 关联,目录没有扩展名,
所以由插件自己的宿主清单撑起这个子菜单。
配置
「打开方式」二级菜单里的应用可以自己配。在 profile 的 cordis.patch.yml 里加一段:
config:
applications:
- kind: editor
paths:
- /Applications/Visual Studio Code.app
- kind: terminal
paths:
- /System/Applications/Utilities/Terminal.app
Windows 上同一段换成 .exe 绝对路径或 %VAR% 模板(探测时才展开):
config:
applications:
- kind: fileManager
paths:
- '%SYSTEMROOT%\explorer.exe'
- kind: editor
paths:
- '%LOCALAPPDATA%\Programs\Microsoft VS Code\Code.exe'
- kind: terminal
paths:
- '%LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe'
每项按顺序取第一个存在的路径,命中的那个才会出现在菜单里。config 是整段替换,不是追加 ——
两个平台都一样。macOS 的 /Applications/... 在 Windows 上匹配不到,反之亦然。改完重启 DSH。
许可
[MIT](LICENSE)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::5,最后更新 2026-10-27