c-ling/dsh-plugin-toolbox
DeepSeek Harness Web GUI 工具箱插件:打开工作区目录并置顶会话。
项目介绍Project Overview
dsh-plugin-toolbox 是 DeepSeek Harness Web GUI 工具箱插件:在工作区行菜单中打开目录,会话行菜单中置顶会话,并在工作区列表上方显示置顶区。核心能力是通过 DOM 注入扩展原生菜单及新增置顶区,并提供独立开关。在需要快速访问工作区目录或置顶常用会话时使用。需注意置顶依赖客户端偏好存储,宿主无 settings provider 时回退至插件自有路由。
dsh-plugin-toolbox is a DeepSeek Harness Web GUI plugin that adds an Open Folder entry to the workspace row menu, a Pin/Unpin action to the session row menu, and a dedicated pinned area above the workspace list. Its core capability is DOM-injected row menu extensions plus a client-side pinned session store, with per-feature toggles in Settings → Toolbox. Use it to quickly open workspace folders or pin frequent sessions. Note: pinned data is a local preference, and flat/search views do not show the injected menu items.
请帮我了解并安装插件:【dsh-plugin-toolbox】【https://github.com/c-ling/dsh-plugin-toolbox】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
npx @deepseek-ai/dsh plugin --profile web add "github:c-ling/dsh-plugin-toolbox#v1.1.0"
把 c-ling/dsh-plugin-toolbox 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
工具箱(dsh-plugin-toolbox)
DeepSeek Harness Web GUI 工具箱插件:在工作区行菜单中打开工作区目录,在会话行菜单中置顶会话,并在工作区列表上方显示独立置顶区。每个功能都能在「设置 → 工具箱」里独立开关。
功能
打开工作区目录
- 按工作区分组的侧边栏视图中,工作区行「更多」菜单首项增加 打开文件夹。
- 仅在页面为 loopback 且宿主声明
canOpenPath时显示;远程页面或 headless/容器宿主自动隐藏。 - 打开失败时在页面顶部显示短时 Toast。
会话置顶
- 分组视图和平铺视图的会话行「更多」菜单首项增加 置顶 / 取消置顶。
- 置顶集合是纯客户端偏好,不改写工作区原有的会话顺序。
- 置顶区位于工作区标题栏之下、会话列表之上,显示标题、所属工作区和状态点;点击打开会话,hover 显示取消按钮。
- 超过 5 条时显示「展开其余 N 项 / 收起」,展开状态持久化。
- 侧边栏收起时变为顶部图钉按钮,带置顶数,点击弹出置顶列表。
- 空白会话、未分组会话和已归档会话不可置顶;曾被加载、之后被归档或删除的会话自动移出置顶集合(启动时尚未加载完成的置顶不受影响)。
设置
- 设置弹窗左侧导航新增 工具箱 / Toolbox(顶层页面)。
- 两个独立开关,默认都开启:
- 打开工作区目录
- 会话置顶
- 关闭开关只隐藏对应 UI,保留已保存的置顶集合。
- 设置通过官方 settings 服务持久化(
dsh-plugin-toolbox命名空间,写入$DSH_HOME/settings.yaml);无 settings provider 或远程 memory-mode 连接时自动回退到插件自有路由($DSH_HOME/storages/dsh-plugin-toolbox/config.json)。
安装
从 GitHub 安装到 web profile(需要 pnpm 在 PATH 上;没有则用下面的 corepack 方式):
npx @deepseek-ai/dsh plugin --profile web add "github:c-ling/dsh-plugin-toolbox#v1.1.0"
或使用已有的 dsh 命令:
dsh plugin --profile web add "github:c-ling/dsh-plugin-toolbox#v1.1.0"
当 pnpm 不在 PATH 上时:
cd ~/.dsh/profiles/web
corepack pnpm add "github:c-ling/dsh-plugin-toolbox#v1.1.0"
dsh plugin把参数原样转发给 pnpm,直接从本仓库拉取包(pnpm 9+,本机需装有git)。 安装时若看到declares no dsh.bundle — installed as a plain dependency的提示属正常现象: 本插件不是 profile bundle 层,而是通过下面的 loader 行激活。
然后在 ~/.dsh/profiles/web/cordis.patch.yml 增加 loader 行:
- insert:
- id: dsh-plugin-toolbox
name: 'dsh-plugin-toolbox'
重启 dsh web(client-modules 对包判定缓存是进程级,新包必须重启宿主),然后硬刷新页面,
打开 设置 → 工具箱 即可看到两个开关。
验证
curl -s http://127.0.0.1:3080/plugins/dsh-plugin-toolbox/client.js | head -c 60
curl -s http://127.0.0.1:3080/dsh-plugin-toolbox/config
应打印以 window.__ModuleLoader__.load({ 开头的 factory bundle。
浏览器内确认:
- 打开 设置 → 工具箱,两个开关默认开启。
- 展开侧边栏,hover 工作区行,打开「更多」菜单,首项是「打开文件夹」。
- hover 会话行,打开「更多」菜单,首项是「置顶」;置顶后会话出现在工作区列表上方的置顶区。
- 在 设置 → General → Language 切换 English / 中文,工具箱页、菜单项和置顶区文案实时切换。
更新
dsh plugin --profile web add "github:c-ling/dsh-plugin-toolbox#v1.1.0"
# 或:npx @deepseek-ai/dsh plugin --profile web add "github:c-ling/dsh-plugin-toolbox#v1.1.0"
# 或:cd ~/.dsh/profiles/web && corepack pnpm add "github:c-ling/dsh-plugin-toolbox#v1.1.0"
用新的 #v<new-version> 重新执行安装命令即可升级依赖;cordis.patch.yml 中的 loader 行保持不变。
重启 dsh web,然后硬刷新页面。
卸载
cd ~/.dsh/profiles/web
corepack pnpm remove dsh-plugin-toolbox # 或 dsh plugin --profile web remove dsh-plugin-toolbox
同时删除 cordis.patch.yml 中对应的 insert 行,然后重启 dsh web。
已知限制
- 工作区行与会话行的「更多」菜单没有 SlotMap 槽位,本插件通过 DOM 注入菜单项,DSH 升级可能使其失效。详见
docs/adr/0001-dom-injected-row-menu-items.md。 - 「打开文件夹」只在按工作区分组的视图可见;平铺视图和搜索视图没有工作区行。
- 搜索视图的会话行没有更多菜单,因此不提供置顶入口。
ruvnet/ruflo
amruthpillai/reactive-resume
volcengine/OpenViking
Molunerfinn/PicGo
titanwings/colleague-skill
nocobase/nocobase
Tencent/WeKnora