前言¶
DeepSeek Harness(DSH)左侧边栏里,工作区和会话是日常切换上下文的主入口。行尾「+」「…」能完成一部分操作,但缺少像文件管理器那样「在指针处右键」的习惯路径;会话相关的「打开方式」、归档清理等能力,也往往要依赖其他插件或多次点击。若你已经在用 DSH 桌面版或 dsh web,又希望在不改 DSH 本体的前提下,给工作区行和会话行补上右键菜单,下面介绍社区插件 dsh-sidebar-row-menu 的定位与用法。
这是什么¶
dsh-sidebar-row-menu 由 TLEWA 维护,分类为客户端插件。它给 DSH 左侧边栏两类行增加右键交互:
- 工作区行:右键弹出自绘菜单(能力上复刻
dsh-sidebar-context-menu一类需求); - 工作区下的会话行:右键在指针处展开该行内置的「…」菜单,并在同一菜单里追加本插件条目。
工作区菜单使用 DSH 官方的 MenuSurface 与 MenuItemButton 自绘(官方 Menu 不支持子菜单),视觉与键盘行为与内置菜单一致。会话侧不复制内置动作,只通过 sidebar.workspaces.session.menu.item slot 追加条目;点行尾「…」看到的菜单默认保持 DSH 原样,本插件条目主要在右键时出现。右键展开的菜单不会因鼠标移出而关闭,与工作区右键一致,需点击外部、选中条目或按 Esc 关闭。
目录页:skillhub.cn/plugins/TLEWA/dsh-sidebar-row-menu
源码与说明:github.com/TLEWA/dsh-sidebar-row-menu(GitHub 星标:1)
核心功能¶
工作区行右键¶
| 菜单项 | 行为 |
|---|---|
| 新会话 | 展开该工作区并新建会话(等价于行尾 +) |
| 重命名 | 打开官方「重命名工作区」对话框 |
| 置顶的打开方式 | 置顶的外部应用显示在一级菜单,用该应用打开工作区目录 |
| 打开方式 | 二级菜单列出宿主提供的外部应用;与会话菜单共用应用列表、置顶与开关 |
| 复制工作区路径 | 复制目录路径到剪贴板 |
| 在新标签中打开 | 仅当已安装 dsh-project-tabs(暴露 openWorkspaceInTab)时出现 |
| 删除工作区 | 官方删除确认;只删工作区登记,会话保留并归入「未分组」 |
| 删除工作区及所有会话 | 先永久删除该工作区下各会话及日志,全部成功后再删工作区登记;任一会话失败则保留工作区 |
工作区目录本身不会被上述删除流程删掉。
会话行右键¶
右键不会另起一套菜单,而是展开该行自己的「…」菜单:DSH 内置项(重命名、分叉、置顶、归档、复制 Session ID 等)、其他插件注册进 slot 的项,以及本插件追加的项。
本插件追加项包括:
| 菜单项 | 行为 |
|---|---|
| 打开方式 / 置顶打开方式 | 应用列表来自 DSH 内置 open-in-app 路由;用会话 cwd 打开,取不到时退回所属工作区目录 |
| 永久删除会话 | 默认仅在已归档会话的右键菜单出现;设置中可允许未归档会话也显示 |
| 删除所有已归档会话 | 仅在已归档会话的右键菜单出现;确认后永久删除全部已归档会话及日志 |
删除由插件宿主路由完成,默认不删未归档会话;不会级联删除 fork 子会话。
草稿会话(尚无消息)没有内置「…」菜单,本插件同样不接管。非工作区 / 非会话行(如「显示更多」)也不会被拦截。
设置¶
在 DSH 设置 →「行菜单」 中可逐项开关:打开方式、各应用的显示与置顶、永久删除与会话批量删除、以及是否把条目同时放进行尾「…」菜单(工作区 / 会话分开配置)。开关保存在浏览器 localStorage(键名如 dsh.sidebar-row-menu.items.v1 等),改完立即生效,无需重启。
若同时安装 dsh-session-menu,本插件会检测对方已注册的同名能力并自动隐藏自己的对应条目,设置页开关置灰并提示,无需对方适配。
安装与启用¶
安装前请确认:
- DSH 桌面版或
dsh web至少启动过一次,profile 目录已存在; - Windows 环境需 PowerShell 5.1+(README 中的脚本与部分说明面向 Windows);
- 与 DSH 客户端内置包 0.2.1-rc.5 同代的行组件(详见仓库「兼容性」章节)。
插件以当前 DSH 进程权限运行;安装前建议阅读仓库源码与 MIT 许可证(当前发布版本 1.4.2)。
从 npm 安装(推荐)¶
- 打开侧边栏 插件 页 → 安装插件;
- 输入包名并确认:
dsh-sidebar-row-menu
固定版本示例:
dsh-sidebar-row-menu@1.4.2
命令行等价写法:
dsh plugin --profile desktop add dsh-sidebar-row-menu@1.4.2
- 安装完成后硬刷新(
Ctrl+Shift+R);宿主半边未生效时重启桌面端。
从 GitHub 安装¶
在 安装插件 中粘贴仓库地址:
https://github.com/TLEWA/dsh-sidebar-row-menu
固定版本可在地址后加标签,例如:
https://github.com/TLEWA/dsh-sidebar-row-menu#v1.4.2
或安装 Release 压缩包:
https://github.com/TLEWA/dsh-sidebar-row-menu/releases/download/v1.4.2/dsh-sidebar-row-menu-1.4.2.tgz
命令行等价写法(跟随仓库文档原文):
dsh plugin --profile desktop add github:TLEWA/dsh-sidebar-row-menu
仓库 lib/ 为可直接运行的产物,经 GitHub 安装时不需要本地构建。收录进社区目录前,README 建议仍用上述 GitHub 或 npm 方式安装。
典型用法¶
经过上面的安装与硬刷新后,在侧边栏分别右键一个工作区行和其下的会话行:菜单应贴近鼠标弹出,样式与内置「…」菜单一致;Esc 或点击空白处应能关闭。
若需在行尾「…」里也能看到本插件条目,进入 设置 →「行菜单」→「同时放进「…」菜单」,按工作区 / 会话分项开启;开启任意工作区项后,行尾「…」会由本插件用同一套菜单展示官方重命名 / 删除与工作区项。全部关闭时「…」与 DSH 完全一致。
常用配置路径:
- 设置 →「行菜单」:关闭不需要的删除项或「打开方式」;
- 打开方式 → 应用:隐藏个别应用,或用「置顶」把常用编辑器放到一级菜单;
- 需要在外部 IDE 打开当前会话目录时:会话行右键 →「打开方式」或已置顶的应用项。
宿主侧自检(文档示例,应返回 400 bad-target):
curl.exe -X POST http://127.0.0.1:10102/dsh-sidebar-row-menu/open `
-H 'content-type: application/json' -d '{"target":"nope","path":"x"}'
客户端控制台出现 [dsh-sidebar-row-menu] installed 表示宿主半边已装载;若右键无反应,可再重启桌面应用。
适用场景与注意¶
适合谁: 长期在 DSH 侧边栏管理工作区与会话、习惯右键操作、需要「用 VS Code / 终端 / 文件管理器打开当前目录」、或需要可控的归档会话清理入口的开发者。
注意:
- 本插件依赖 DSH 官方 UI 与
open-in-app等能力;DSH 大版本升级后若行组件不兼容,需对照仓库「兼容性」说明。 - 永久删除会话与批量删除已归档会话不可恢复,使用前确认设置中的「允许删除未归档会话」是否符合你的安全预期。
- 社区插件目录(如 skillhub.cn)与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,选用插件时应自行审阅源码与权限边界。
若曾用仓库内的 scripts/install.ps1 做开发安装,再改用 npm / GitHub 的 pnpm 安装,Windows 上可能因 node_modules 目录联接冲突报错;README 要求先执行脚本的 -Uninstall 再重试,勿用 dsh plugin add link:<绝对路径> 跨盘 link。
结尾¶
dsh-sidebar-row-menu 把 DSH 侧边栏工作区与会话行的右键菜单补全:工作区侧自绘官方风格菜单,会话侧扩展原生 slot 菜单,并统一「打开方式」与可选的归档清理。按需安装 npm 包或 GitHub 发布物,在设置里裁剪菜单项即可。
- 目录页:https://www.skillhub.cn/plugins/TLEWA/dsh-sidebar-row-menu
- GitHub:https://github.com/TLEWA/dsh-sidebar-row-menu