dsh-skill-managers:在 DSH Web GUI 中浏览全部 Skill

前言

在 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:

  1. 用 All / Global / Workspaces 切换视图,确认全局目录与工作区目录下的 Skill 是否都被列出。
  2. 用搜索框过滤名称或描述。
  3. 对目标 Skill 使用 Copy 获取调用相关命令;需要排查路径时展开 show path。
  4. 新增 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 与页面列表是否一致。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜