Back to home

wingsky-1

dsh-skill-explorer

DSH skill center plugin: browse loaded skills by source, enable/disable, create and delete

Stars
0
Language
JavaScript
Created
Aug 16, 2026
Updated
Aug 16, 2026

Introduction

dsh-skill-explorer(技能中心)

DSH Web GUI 的技能中心:侧边栏「技能中心」入口,两个 tab:

Tab功能
技能展示已加载的全部 skill,按来源分级(系统内置 / 项目 / 用户 / 自定义 / 运行时),支持启用/禁用(改写 disable-model-invocation)、删除(移入 .trash
创建表单创建新 skill(用户级 ~/.dsh/skills 或项目级 .dsh/skills),生成标准 SKILL.md

零构建:host 端与浏览器端都是手写 ESM,无 React、无打包工具、零运行时依赖。

数据来源与分级

host 端按 dsh-skill-filesystem 的官方根约定扫描文件系统(主数据),再用 ctx.skills 注册表补充(同名合并、bundled/runtime 等非文件系统来源并入):

级别(展示顺序)来源含义
系统内置注册表 bundledDSH 随附与插件提供的技能
项目技能(.dsh/skills)文件系统仅当前项目(最近 .git 祖先)
项目技能(.agents/skills)文件系统仅当前项目
自定义目录文件系统(customSkillDirs配置的额外根
用户技能(~/.dsh/skills)文件系统本机所有项目
用户技能(~/.agents/skills)文件系统本机所有项目
运行时注册注册表 runtime插件代码内嵌注册

为什么自己扫描文件系统?web profile 下 skill-filesystem 提供方只挂载在 agent preset 的 scope 层,host 平面(本路由)从 ctx.skills 读不到项目/用户技能——所以文件系统扫描是主数据,注册表只作补充。frontmatter 用零依赖的轻量解析(支持 |/> 块标量折叠)。

安全

  • 删除只移入 .trash(可手动恢复)
  • 所有 /api/dsh-skill-explorer/* 路由仅限 loopback 访问(同源校验,与 dsh-ssh 相同围栏)

路由(全部 loopback 围栏)

路由方法说明
/api/dsh-skill-explorer/list?cwd=GET分级技能列表
/api/dsh-skill-explorer/set-enabledPOST启用/禁用(改写 frontmatter)
/api/dsh-skill-explorer/createPOST创建技能(user/project 根)
/api/dsh-skill-explorer/deletePOST删除(移入 .trash)

安装

# 方式一:npm 发布物(推荐)
dsh plugin --profile web add dsh-skill-explorer

# 方式二:GitHub 源码
git clone https://github.com/wingsky-1/dsh-skill-explorer.git
dsh plugin --profile web add link:<仓库路径>

# 重启一次 dsh web 生效

验证

node --check lib/index.js lib/client.js
node test/smoke.mjs
  1. 重启后侧边栏出现「技能中心」入口。
  2. 「技能」tab 分级展示;「创建」tab 新建即生效。
  3. curl "http://127.0.0.1:3080/api/dsh-skill-explorer/list" 返回 JSON。

已知限制

  • 项目级技能基准:项目根取活跃会话的 workspace(可多个);请求可带 ?cwd= 显式覆盖。
  • 面板样式适配亮/暗主题(皮肤变量 + 浅色回退)。