DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
O

dsh-open-workspace-folder

Open Workspace Folder

在 DSH Desktop 中右键点击任意工作区,即可打开其文件夹、在文件管理器中显示,或直接重命名工作区。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:Homeless-Attila/dsh-open-workspace-folder#89093d366e8fc555f03b1a50825197dd658a4d81
README兼容性版本
在工作区上右键

兼容性与来源证明

Open Workspace Folder 以 dsh-open-workspace-folder 发布,当前版本为 1.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/20

版本

1.1.0stable
2026/10/20

相关插件

正在加载相关插件…

最新版
1.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/20
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 productivity-workflow 分类下经过校验的插件。

Ds Harness Remoteds-harness-remote通过桌面端、网页端和 Android 端,端到端加密远程访问 DeepSeek Harness 和实验性 Codex 工作区,并支持 dsh-TUI Host。Archive Manager@michengai/dsh-archive-manager归档、恢复、收藏和永久删除会话,并诊断损坏的会话日志。Remotedsh-remoteDeepSeek Harness 的远程工作助手:连接 SSH(密码/密钥/代理/键盘交互、多跳 ProxyJump),从 ~/.ssh/config 列出主机,选择远程工作区,使用 21 个 rw_* 工具对其进行操作,支持感知冲突的镜像同步、内嵌 PTY tConfig Managerdsh-config-manager备份、恢复、导出、导入、迁移和同步 DeepSeek Harness (DSH) 配置:设置、插件、MCP 服务器、技能、代理预设和工作区。一键迁移到另一台机器。

README

dsh-open-workspace-folder

在 DSH Desktop 的工作区列表里右键任意工作区,直接打开对应的本地文件夹,或就地改名。

在工作区上右键

一个很小、无网络请求、无子进程的 DSH 客户端插件。打开文件夹复用 DSH 自带的 Session Remote session.openWorkspacePath(),所以 Windows 上用资源管理器、macOS 上用 Finder、 Linux 上用 xdg-open 打开路径,行为和 DSH 的「Open In」按钮一致;改名复用 DSH 的 workspace.rename 命令,和侧栏自己的重命名完全等价。

功能

  • 打开工作区文件夹:在系统文件管理器中打开工作区根目录(回车键同样触发)。
  • 在资源管理器中定位:调用 action: 'reveal',在文件管理器中定位该目录。
  • 重命名工作区:菜单内直接改名,走 DSH 自带的 workspace.rename 命令, 与侧栏自己的重命名是同一套逻辑(重启后仍然生效,其他窗口同步看到); 名称为空或与已有工作区重名时会在菜单内提示,不会静默失败。
  • 复制路径:复制工作区绝对路径到剪贴板。
  • 菜单跟随 DSH 主题(明/暗),支持 Esc 关闭、方向键导航、点击外部关闭。
  • 所有图标为内联 SVG;无外部字体、图片、CDN 或网络请求。

安装

要求 DSH Desktop 已安装,且 dsh 命令在 PATH 中。

从本地克隆安装

git clone https://github.com/Homeless-Attila/dsh-open-workspace-folder.git
dsh plugin --profile desktop add .\dsh-open-workspace-folder

直接从 GitHub 安装

dsh plugin --profile desktop add github:Homeless-Attila/dsh-open-workspace-folder

这条命令会:

  1. 把插件目录作为 link: 依赖(或 git 依赖)写进 desktop profile;
  2. 因为包声明了 dsh.bundle.patch,自动把 dsh-open-workspace-folder 追加到 dsh.profile.bundles;
  3. 校验 bundle patch 可组合。

安装后需要完全退出并重新启动 DSH Desktop,让新的客户端 bundle 加载。

目前尚未发布到 npm。发布后即可直接 dsh plugin --profile desktop add dsh-open-workspace-folder。 如果以 link: 方式安装,移动插件目录后需要重新执行一次 add <新路径>。

使用

  1. 在左侧工作区树中找到一个工作区。
  2. 右键该工作区行。
  3. 选择「打开工作区文件夹」,或「重命名工作区」后输入新名称,Enter 保存、Esc 取消。

如果当前 DSH 运行在普通浏览器里、宿主端不允许打开本地路径,菜单会显示 「当前窗口不支持打开本地文件夹」,复制路径与重命名仍然可用。

重命名有两条约束:名称不能为空,且不能和已有工作区重名(侧栏本身也如此)。 两种错误都会显示在菜单底部,菜单保持打开,方便直接改名重试。

卸载

dsh plugin --profile desktop remove dsh-open-workspace-folder

然后重启 DSH Desktop。

结构

dsh-open-workspace-folder/
  package.json        # dsh.bundle.patch + dsh.client (platform: web)
  cordis.patch.yml    # 挂载一行 host 插件
  index.js            # host half:空实现,不注册路由、不启动进程
  client.js           # 全部功能:右键菜单 + Session Remote + 重命名
  test/smoke.test.mjs # 冒烟测试:bundle 能注册、导出正确、无网络调用
  docs/preview.png    # 右键菜单截图
  README.md
  LICENSE

实现要点

  • client.js 是一个标准 DSH 客户端 bundle: window.__ModuleLoader__.load({ id, factory }),React 从模块表 require('react') 取得。

  • 通过 ctx.get('slots') 向 shell.overlay 注册一个菜单组件; 组件从 shell.overlay 的 useWorkspaces 属性订阅工作区快照。

  • 捕获阶段监听 contextmenu,只处理带 data-row-key="workspace:<id>" 和 aria-expanded 的工作区 treeitem;会话行(带 aria-selected)和 data-row-key="workspace:" 的「未分组」伪工作区会被忽略。 通过 span[class$="_title"] 的文本兜底匹配实时工作区列表,拿到 workspace.path。

  • 打开动作使用宿主已有的 Session Remote:

    const remote = ctx.get('remote')
    await remote.session.openWorkspacePath({ path })
    await remote.session.openWorkspacePath({ path, action: 'reveal' })
    

    不需要 host RPC,也不需要自己拼 explorer.exe 命令行。

  • 重命名使用宿主已有的工作区服务,不新建通道:

    const remote = ctx.get('remote')
    const result = await remote.workspace.rename({ workspaceId, title })
    // { ok: true, value: { workspace } } | { ok: false, error: { code, message } }
    

    客户端服务版 ctx.get('workspaces').rename(workspaceId, title) 更直接(失败时抛 workspace rename failed: <code>: <message>),插件优先用它、退化到 remote.workspace.rename。常见错误码:workspace/name-conflict(重名)、 gateway/bad-request(名称为空)。

  • 客户端模块额外导出 Cordis 服务注入:

    exports.inject = ['remote', 'remote.session']
    

    注意它和 package.json 里的 dsh.client.inject(模块依赖图)是两套机制, 只配置后者时运行时仍会报 cannot get property "remote.session" without inject。

已知限制

  • 桌面端没有客户端 HMR 插槽,安装或改代码后必须完全重启 DSH Desktop; 仅刷新窗口不够。
  • 菜单依赖工作区行的 DOM 结构(data-row-key / aria-expanded)。DSH 前端若改动 这些标记,需要同步调整 client.js。

开发校验

npm run check   # node --check 两个 bundle
npm test        # node --test:bundle 注册、导出、无网络调用

开发时另做过一轮隔离测试页验证(菜单注册、定位/打开/复制、Esc 关闭、会话行忽略、 「未分组」忽略、宿主不允许打开时禁用打开项等),并在独立 desktop profile Web 运行时 按 1440×900 实测右键、打开、定位与复制路径,均无报错。

License

MIT