前言¶
在 DSH Web GUI 里开一个新会话时,侧边栏和技能相关入口往往只能看到很少几条 Skill——例如若干内置 Office 技能,以及插件注册的条目,而 ~/.dsh/skills、工作区下的 .dsh/skills 等目录里的内容常常不在列表里。这不是偶发 bug,而是架构上的结果:客户端通过 skills/list 这一 Remote 取目录,且该接口与会话绑定;宿主层又刻意不在全局层做文件系统发现(skill-filesystem 在 dsh-web-app/cordis.patch.yml 中被禁用)。冷会话回退到全局技能注册表时,没有文件系统 provider,因此磁盘上的 Skill 根目录对界面不可见。
若你经常在多个工作区维护 Skill,或希望一眼看清「全局 / 各工作区 / 内置」分别有哪些技能、路径在哪、能否复制调用命令,需要一个不依赖「先开 live agent 会话」的浏览方式。dsh-skill-managers(维护者 mrdhira)在 Web GUI 侧边栏增加独立的 Skills 入口(与 Plugins 并列),用全局 provider 自行扫描约定根目录,并在页面上做分类、搜索与来源标注。
这是什么¶
dsh-skill-managers 是 DSH 的客户端插件 bundle:宿主侧注册一个全局 Skill provider,扫描与 @deepseek-ai/dsh-skill-filesystem 一致的发现根;浏览器侧贡献侧边栏项与主面板,展示 DSH 能看到的全部 Skill,并按 All · Global · Workspaces 分组,支持搜索、复制命令、逐条显示来源,以及列出 DSH 用于发现 Skill 的根路径。
分类上属于社区插件目录中的「客户端」类;未发布到 npm,需将仓库安装到本机 profile 并以 link: 依赖引用。许可证为 MIT(见仓库 package.json)。
核心功能¶
下面介绍页面与宿主侧已核实的能力。
侧边栏 Skills 页¶
- 在 Web GUI 侧边栏出现 Skills 项(位于 Plugins 与 Automation tasks 之间)。
- 顶部分类:All(全部,按来源分组)、Global(用户级与内置等非项目根)、Workspaces(各已注册工作区下的项目级 Skill)。
- 搜索、Refresh,以及每条 Skill 的 Copy(复制命令)。
- 可展开查看路径(
show path);界面会汇总数量,例如「17 skills · 4 in a workspace」。
来源(Origin)标注¶
skills/list 返回的条目不含 source / provider 等字段,插件根据路径推导标签;无路径或内置提供方则标为 bundled:
| 标签 | 判定方式 |
|---|---|
workspace |
路径落在已注册工作区下 |
global |
路径包含 /.dsh/skills/ 或 /.agents/skills/ |
bundled |
无路径,或属于应用内置根(如 dsh-agent-preset/skills、office-skills) |
other |
其他位置 |
扫描根目录(优先级)¶
宿主 provider 按下列顺序扫描(同名时与 filesystem preset 的解析顺序一致):
| 优先级 | 根目录 | 来源标识 |
|---|---|---|
| 100 | <workspace>/.dsh/skills |
project-dsh |
| 200 | <workspace>/.agents/skills |
project-agents |
| 400 | ~/.dsh/skills |
user-dsh |
| 500 | ~/.agents/skills |
user-agents |
| 600 | 随应用分发 | bundled |
工作区列表来自运行时的 workspaces 服务,新增工作区无需改代码或重启 DSH 即可在 Workspaces 分类中体现。
无需额外配置¶
插件读取宿主已有的 skills/list Remote,并自行扫描上表根目录;没有独立设置项或 cordis.patch.yml 手改项——bundle 通过自带的 cordis.patch.yml 声明 Loader 行。
安装与启用¶
插件安装到 DSH profile,完成后必须完全退出并重新打开 DSH(仅刷新页面不足以加载宿主侧变更)。README 提供脚本安装与手动安装两种方式。
方式 A:install.sh¶
将仓库放到稳定路径后执行安装脚本(会构建、写入 profile 依赖并执行 pnpm install):
git clone https://github.com/mrdhira/dsh-skill-managers.git ~/.dsh/plugins/dsh-skill-managers
cd ~/.dsh/plugins/dsh-skill-managers
./install.sh
脚本支持 --profile <dir>(默认 ~/.dsh/profiles/desktop)、--check(只报告变更不写盘)、--remove(取消注册)。
方式 B:手动步骤¶
1、克隆到固定安装路径:
git clone https://github.com/mrdhira/dsh-skill-managers.git ~/.dsh/plugins/dsh-skill-managers
cd ~/.dsh/plugins/dsh-skill-managers
2、构建(pnpm install 会触发 prepare,生成 lib/**,不要手改):
pnpm install
3、在 profile 的 package.json 中注册 link 依赖与 bundle(路径改为本机绝对路径):
{
"dependencies": {
"dsh-skill-managers": "link:/Users/<you>/.dsh/plugins/dsh-skill-managers"
},
"dsh": {
"profile": {
"bundles": [
"dsh-skill-managers"
]
}
}
}
4、在 profile 目录安装依赖并重启 DSH:
cd ~/.dsh/profiles/desktop && pnpm install
环境要求¶
- 带 Web GUI 的 DSH,且可编辑 profile(
~/.dsh/profiles/<profile>/)。 - 从源码构建需要 Node.js 22+ 与 pnpm;运行时仅需构建产物。
验证是否生效¶
侧边栏应出现 Skills 并列出现有 Skill。若未出现,可依次检查:
lib/v1/index.js是否存在(否则说明pnpm install未完成构建);- profile 的
package.json是否在dependencies与dsh.profile.bundles中都包含dsh-skill-managers; - 安装后是否已重启 DSH。
宿主身份与磁盘 Skill 文件可本地快速核对:
node -e "import('./lib/v1/index.js').then(m => console.log(m.name))"
# 期望输出:dsh-skill-managers
find ~/.dsh/skills ~/.agents/skills -maxdepth 2 -name SKILL.md 2>/dev/null
典型用法¶
安装并重启后,日常使用即为打开 Web GUI 左侧 Skills:
- 用 All / Global / Workspaces 切换视图,确认全局目录与工作区目录下的 Skill 是否都被列出。
- 用搜索框过滤名称或描述。
- 对目标 Skill 使用 Copy 获取调用相关命令;需要排查路径时展开 show path。
- 新增 Skill 文件到
~/.dsh/skills或某工作区的.dsh/skills/.agents/skills后,在页面上点 Refresh 更新列表。
插件不改变 DSH 的会话模型:skills/list 仍作为传输层 catalog 来源;完整集合依赖全局 provider 的扫描结果,因此冷会话也能与 live preset 下 filesystem 发现的结果对齐浏览。
适用场景与注意¶
适合谁: 在多个工作区维护 Skill、依赖 ~/.dsh/skills 或 ~/.agents/skills,且希望在 Web GUI 中统一查看、搜索和复制命令的 DSH 用户。
权限与安全: 插件以当前 DSH 进程权限运行;全局 provider 会读取上述根目录下的 Skill 元数据。安装前请自行审阅 GitHub 源码 与 MIT 许可证,勿在未信任的 profile 中随意 link: 第三方 bundle。
与官方关系: DSH 生态强调「一切皆插件」;SkillHub 插件目录 为社区站点,与 DeepSeek / 幻方无官方从属关系。
UI 更新: 宿主侧改动需重启应用;仅客户端 bundle 改动时,可在插件管理器中切换 bundle 后生效,详见 README 中 “Restart, don’t reload” 说明。
结尾¶
dsh-skill-managers 针对「冷会话看不到磁盘 Skill」这一结构性限制,用全局扫描 provider 补全目录,并在 Web GUI 提供可搜索、可分类、可标注来源的 Skills 页。若你正在整理个人或团队的 Skill 资产,可先按 README 安装到 profile,重启后从侧边栏 Skills 核对 find 与页面列表是否一致。