dsh-skill-panel:在 DSH 官方右侧栏浏览本地 Skill 并一键复制调用名

前言

在 DeepSeek Harness(DSH)里用 Skill,通常要把技能目录放在约定路径,并在对话里输入 /skill-name 才能挂载。本地技能多了以后,靠记目录名或翻文件夹找 SKILL.md 并不省事。社区插件 dsh-skill-panel(维护者 ana0643)把本机已安装的 Skill 列进 DSH 官方右侧边栏的一个扩展 Tab,用中文显示名、分类和摘要,点一行即可把 /skill-name 复制到剪贴板,再贴进输入框即可调用。

下面按「是什么 → 能做什么 → 怎么装 → 怎么用」说明,事实均来自 GitHub 仓库 README 与清单文件。

这是什么

dsh-skill-panel 是面向 DSH 的客户端类插件:宿主侧扫描本地 Skill 目录并暴露 HTTP 接口,客户端侧通过 @deepseek-ai/dsh-client-ui-sidebar-right 的两段式 Tab API 注册到官方右侧栏,不依赖第三方侧栏实现。

它解决的是「本地有哪些 Skill、中文怎么叫、属于哪一类、调用名是什么」的浏览与检索问题;复制 /skill-name 后由你在 Composer 里粘贴使用(README 描述为复制到剪贴板,而非自动插入输入框)。

核心功能

官方右侧栏 Tab

插件在 DSH 右侧边栏增加一个扩展优先级的 Tab,面板内展示本机扫描到的 Skill 列表。

读取本地 Skill 与 meta.yaml

默认扫描:

  • ~/.agents/skills
  • ~/.dsh/skills

每个技能目录若存在 meta.yaml(与 SKILL.md 同级),会读取其中的 display-name-zh、summary-cn、tag;缺省则回退为目录名。三项均可选。

搜索与分类筛选

面板提供文本搜索框和分类 Chip,便于在技能较多时缩小列表。

一键复制调用名

点击某一 Skill 行,将 /skill-name 写入剪贴板;实现上使用 navigator.clipboard,并在不可用时回退到 execCommand。

宿主 API 与缓存

宿主在 ctx.webServer 上注册精确路径 GET /skill-panel/skills,返回扫描结果的 JSON。扫描结果默认缓存 10 秒;面板上的 刷新 会强制重新扫描(请求带 refresh=1)。

可通过环境变量 DSH_SKILL_DIRS 增加额外 Skill 根目录,多个路径用系统路径分隔符连接(Windows 为 ;,POSIX 为 :),且会先于上述两个默认目录被扫描。

安装与启用

安装命令须使用仓库 README 中的形式(本地 link 安装,而非凭仓库名拼接 github: 地址):

dsh plugin --profile desktop add link:<path-to-this-repo>

安装后重启桌面客户端。若使用 Web 配置档,将 --profile desktop 改为 --profile web。

插件以当前 DSH 进程权限运行;安装前请自行查看源码与 MIT 许可证,确认符合你的环境与安全要求。

兼容性(README 写明):

  • DSH >= 0.2.0-rc.2(package.json 中 engines.dsh 与此一致)
  • Node >= 22.19(或 ^22.19 || >=24)
  • 维护者在 Windows 11 + DSH Desktop 0.2.1-rc.2 上做过测试

典型用法

1、为 Skill 补充中文元数据(可选)

在技能目录下增加或编辑 meta.yaml,例如:

display-name-zh: ESP32 固件工程
summary-cn: ESP-IDF 全流程 —— 任务队列、外设、CAN、Wi-Fi/BLE、OTA、LVGL…
tag: 嵌入式

保存后可在面板中看到中文名、摘要与分类;若未配置,列表仍显示目录名。

2、在侧栏打开面板并复制调用名

  1. 确认 Skill 已放在默认目录或 DSH_SKILL_DIRS 所指路径。
  2. 重启 DSH 客户端后,在官方右侧栏打开本插件 Tab。
  3. 用搜索或分类 Chip 找到目标 Skill,点击该行,将 /skill-name 复制到剪贴板。
  4. 在 Composer 中粘贴该调用名,按你平时的 Skill 使用方式继续对话。

若刚新增或修改了技能文件,可点面板 刷新 触发 GET /skill-panel/skills?refresh=1,避免等待 10 秒缓存过期。

3、额外 Skill 目录(可选)

在启动 DSH 前设置环境变量,例如 POSIX 下多个根目录:

export DSH_SKILL_DIRS="/path/to/more/skills:/another/root"

Windows 下使用分号分隔路径。这些目录会在默认两个路径之前参与扫描。

适用场景与注意

适合谁: 经常在 DSH 里切换多个本地 Skill、希望用中文名和分类快速辨认、并需要准确复制 /skill-name 的开发者。

实现要点(便于排查问题): 宿主逻辑在 src/index.ts 注册 /skill-panel/skills;客户端在 src/client/index.tsx 通过 ctx.sidebarRightTabs.register 与 ctx.slots.inject('sidebar.right.pane.tab', …) 挂载 UI。客户端 bundle 需包在 window.__ModuleLoader__.load(...) 中,由 build.mjs 通过 esbuild 的 banner/footer 处理。

注意:

  • 插件能力边界是「列举 + 复制调用名」,不替代 Skill 本身的 SKILL.md 内容与执行逻辑。
  • 社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本插件是社区贡献的客户端扩展之一。
  • 安装即信任该插件对文件系统的扫描范围(默认目录 + DSH_SKILL_DIRS);敏感环境请先审阅源码再启用。

结尾

dsh-skill-panel 把本地 Skill 收进 DSH 官方右侧栏:中文展示、分类筛选、点击复制 /skill-name,减少翻目录和记调用名的成本。需要安装步骤与 meta.yaml 字段说明时,以仓库 README 为准。

  • 插件目录页:https://www.skillhub.cn/plugins/ana0643/dsh-skill-panel
  • GitHub:https://github.com/ana0643/dsh-skill-panel
羽毛球分组比赛记分
小程序二维码

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

小夜