前言¶
DeepSeek Harness(DSH)内置的工作区流程只有一条路径:每次手动选一个宿主目录。机器上若在 ~/dev、~/Documents 等路径下堆着几十个 Git 仓库,多数不会出现在侧边栏里,仅仅因为没有被注册。Hermes Agent 一类产品会用类似 repo_scan_roots 的扫描来补这一环;本插件在 DSH 里做同类事情:在可配置的根目录下找出 Git 仓库,经你确认后通过官方 workspaceRegistry API 批量注册,而不是逐个添加文件夹。
这是什么¶
dsh-plugin-workspace-discovery 由维护者 2001Y 发布,分类为客户端插件。一句话:扫描本地 Git 仓库(识别 .git 目录或 worktree/submodule 的 .git 文件),在侧边栏面板里对照当前注册状态,把选中的目录登记为 DSH 工作区。不自动写工作区文件、不调用 git 子进程,只驱动官方注册表;卸载插件后已注册工作区保持不变。
目录页:skillhub.cn/plugins/2001Y/dsh-plugin-workspace-discovery
源码与文档:github.com/2001Y/dsh-plugin-workspace-discovery
核心功能¶
下面介绍插件在资料中明确列出的能力。
扫描
- 在配置的
roots下遍历目录,默认最大深度maxDepth: 4(范围 0–10)。 - 不跟随符号链接;已进入某个仓库后不再向下把嵌套 checkout 单独报出来。
- 结果路径与注册表的规范路径对齐,用于判断是否已注册。
- 除内置跳过名(如
node_modules、.cache、.dsh等)外,可用exclude追加要跳过的目录名。
审阅
- 侧边栏底部 Discover projects 打开面板;徽标显示尚未注册的数量。
- 列表区分已注册与未注册;已注册项带标记且不可再选。
- 支持搜索、全选、逐行勾选。
注册
- Register selected 或 Register all unregistered,经
workspaceRegistry完成;同一目录重复注册是幂等的,重扫不会产生重复项。 - 除非显式开启
autoRegister,否则不会在启动时自动注册任何仓库。
对话内工具
| 工具 | 作用 |
|---|---|
workspace_discover |
扫描并返回候选路径及 registered 标志;只读。可临时传入 roots / max_depth / only_unregistered。 |
workspace_register_discovered |
注册指定 paths,或 all_unregistered: true 注册全部未注册项。 |
面板界面随 DSH 语言在英文、简体中文、日文间切换;工具名与 JSON 契约保持英文。
安装与启用¶
官方安装命令如下(资料原文):
dsh plugin --profile web add dsh-plugin-workspace-discovery
安装后重启 web profile 并刷新页面。
若从本地检出安装(需自行 clone 到机器上),资料给出的方式是:
git clone https://github.com/2001Y/dsh-plugin-workspace-discovery
dsh plugin --profile web add ./dsh-plugin-workspace-discovery
运行环境:Node.js ≥ 20,DSH 0.2.x;插件零运行时依赖,许可证 MIT(package.json 版本 0.1.0)。
典型用法¶
- 点击侧边栏底部 Discover projects,打开发现面板。
- 按需调整 scan roots(每行一个绝对路径)和最大深度,点 Save。配置落在宿主共享文件
$DSH_HOME/workspace-discovery.config.json,同一 DSH 主机上的浏览器共用。 - 执行 Scan(或 Rescan),核对列表后 Register selected,或 Register all unregistered。
也可在 profile 里用 patch 预置初始配置,例如:
- insert:
- id: workspace-discovery
name: "dsh-plugin-workspace-discovery"
config:
roots: ["~/dev", "~/Documents"]
maxDepth: 4
exclude: ["vendor"]
autoRegister: false
配置字段含义(资料表格):
| 字段 | 默认 | 含义 |
|---|---|---|
roots |
[~] |
遍历起点;~ 会展开,相对路径会被忽略。 |
maxDepth |
4 |
每个 root 向下搜索层数(0–10)。 |
exclude |
[] |
额外跳过的目录名。 |
autoRegister |
false |
为 true 时在启动时对未注册仓库注册一次;默认关闭。 |
适用场景与注意¶
适合谁
- 本机/Git 根目录下仓库多、又不想在 DSH 里一次次「选文件夹」的开发者。
- 希望在对话里让模型调用
workspace_discover/workspace_register_discovered完成同一流程的场景。
实现与安全相关说明(来自 README)
- 扫描在子进程中执行,每个 root 有 25 秒超时;某个 root 阻塞或过大时只记一条错误,不至于拖死整个 Harness。
- macOS:遍历经过用户主目录时,默认不会进入受 TCC 保护的系统文件夹(Documents、Downloads、Desktop 等);若仓库在这些路径下,需把该文件夹显式写进
roots,并在系统提示时授予 DSH 主机访问权限。 - 插件以当前 DSH 进程权限读盘;安装前建议阅读 GitHub 仓库 源码与 MIT 许可证,确认符合你的环境策略。社区目录 SkillHub 独立于 DeepSeek / 幻方,并非官方应用商店。
结尾¶
DSH 生态强调「一切皆插件」;dsh-plugin-workspace-discovery 补的是「工作区只能一个个加」的空档:可配置扫描、面板批量注册、以及模型侧同名能力,且默认不自动登记、不直接改工作区文件。需要时可从目录页或 GitHub 安装,按 scan roots 扫一遍、勾选注册即可让侧边栏跟上本机仓库布局。