DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Folder — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
F

dsh-folder

Folder

DSH workspace context menu plugin: adds "Open Folder" between Rename and Delete Workspace

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:KDronin/dsh-folder#1a01b8503260c7868346be8d766864a855c49eee
READMECompatibilityVersions

Compatibility and provenance

Folder is published as dsh-folder and currently resolves to version 0.2.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
9/10/2026

Versions

0.2.0stable
9/10/2026

Related plugins

Loading related plugins…

Latest
0.2.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
9/10/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in ui-customization.

Web App@deepseek-ai/dsh-web-appThe dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profileExperimental Web profile layer for Agent Teams Remote and UI pluginsClient Ui Task Board@linxin666/dsh-client-ui-task-boardHost-authoritative task board for the DSH Web GUI with real session execution, Host cron scheduling, and optional cross-platform idle-sleep protection; mounted without DSH source changes.Pet@linxin666/dsh-petMulti-pet companion plugin for the dsh web GUI: a registry-driven floating pet that reacts to model activity, with per-pet naming, petting/feeding interactions and an affinity score

README

dsh-folder

DeepSeek Harness(DSH)工作区插件:在侧边栏工作区「三个点」菜单中,于 重命名 与 删除工作区 之间插入 打开文件夹 操作。

功能

  • 在工作区行更多操作菜单中新增「打开文件夹」
  • 菜单位置固定在「重命名」和「删除工作区」之间,复用原生菜单项的样式与图标,对齐一致
  • 点击后调用 DSH Host 能力 session.openWorkspacePath,在系统文件管理器中打开该工作区目录
  • 支持中文 / English 界面
  • 打开失败时在菜单项上给出可见提示(并写入 console.error),不会静默无响应

安装

方式一:DSH 官方命令

dsh plugin --profile web add github:KDronin/dsh-folder

然后重启 dsh web 并刷新页面。

方式二:手动安装

把 dsh-folder 复制到 DSH profile 的 node_modules:

$target = Join-Path $env:USERPROFILE '.dsh\profiles\node_modules\dsh-folder'
Copy-Item -Recurse .\dsh-folder $target

在 $HOME/.dsh/profiles/web/cordis.patch.yml 添加:

- insert:
    - id: dsh-folder
      name: 'dsh-folder'

重启 dsh web 并刷新页面。

更新记录

0.2.0 — 修复「点击打开文件夹没有反应 / 部分或全部工作区失效」

三个独立缺陷共同造成了原来的症状:

  1. 调用了不存在的客户端 API(全部工作区失效) 旧代码点击后执行 ctx.workspaces.openPath(workspace.path)。DSH 的 Workspace 客户端服务 (IWorkspaces)只提供 list / create / rename / delete / insertBefore / archiveSession / insertSessionBefore,没有 openPath。因此调用处同步抛出 TypeError: ctx.workspaces.openPath is not a function,.catch() 根本来不及接管, 点击表现为完全没反应。 现在改为调用真正的 Host 能力 ctx.remote.session.openWorkspacePath({ path }) (打开目录由 Host 端 dsh-native-command 交给系统默认程序处理),并检查 RemoteResult 的 ok 分支。

  2. 菜单项注入与 React 提交时机竞争(部分工作区失效) 旧代码在捕获到点击后用固定的 setTimeout(..., 0) 去查找刚弹出的菜单。工作区菜单是 React 门户(portal)节点,挂载与定位发生在本帧之后的提交阶段,固定延时并不保证菜单 已经存在——找不到就直接 return,于是某些行「有菜单项、某些行没有」。 现在改为由 MutationObserver 驱动注入:菜单一挂载就插入菜单项,并且只要菜单还在, 就持续守住这一项(React 重渲染丢弃非 React 节点后会自动补回);同时保留有上限的轮询 作为兜底,确保观察者不会比菜单活得更久。

  3. 解析失败与打开失败无反馈(看起来像没反应) 现在「找不到工作区」「当前环境无法打开文件夹」「打开文件夹失败」都会写回菜单项文案 (失败态复用原生危险色)并记录原因。按标题匹配之外增加了一层受保护的位置回退: 仅当渲染出的工作区行数与注册表条目数一致时才按行序回退,避免侧边栏过滤时把某行映射 到错误的目录。

另外修正了 dsh.client.inject:原声明里的 @deepseek-ai/dsh-client-runtime 并非当前 DSH 版本的客户端包(安装目录下并不存在该包),现改为实际依赖 @deepseek-ai/dsh-client-locale / @deepseek-ai/dsh-api-workspace-controller / @deepseek-ai/dsh-client-ui-workspace。

开发

  • lib/index.js — Host 侧空实现(本插件是纯 UI 插件,打开目录走 Host 既有能力)
  • lib/client.js — 浏览器侧插件,向工作区行菜单注入菜单项
  • test/harness.mjs — 行为验证(jsdom 驱动真实客户端 bundle)
npm install
npm test

test/harness.mjs 覆盖:注入位置、Host 能力调用与路径、菜单延迟挂载、React 重渲染后 补回、多行互不串位、重命名后的回退、会话菜单不注入、英文界面、失败反馈、缺少能力时的 提示、卸载清理、菜单长时间停留仍持续守护等 15 项断言。

需要对照旧版本时,可用 DSH_FOLDER_CLIENT 指定别的 bundle:

git show HEAD:lib/client.js > /tmp/old-client.js
DSH_FOLDER_CLIENT=/tmp/old-client.js npm test

License

MIT