DeepSeek Harness 插件

cheshireez/dsh-skill-hub

Star 数 ★ 26 下载量(近 30 天) 6,895 分类 技能包 收录于 2026-08-18 npm dsh-skill-hub

DSH Web GUI 技能中枢:基于官方 ctx.skills 注册表浏览、搜索、启停、查看、诊断并新建本地技能,附技能市场:来源快照跟踪、一键全量更新。

安装

# npm 包(预构建)

dsh plugin --profile web add dsh-skill-hub

# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)

dsh plugin --profile web add github:cheshireez/dsh-skill-hub

装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。

README

English | 中文版

面向 DeepSeek Harness 的图形化技能中枢 — 在 Web GUI 里浏览 ctx.skills 全量目录,开关技能、查看正文、修复发现问题、从市场安装、一键新建。

宿主只用官方 SDK,浏览器通过官方槽位渲染,不改 dsh 源码。

快速开始

dsh plugin --profile web add dsh-skill-hub
# 重启 dsh web → 设置 → 技能 → 市场 → 扫描 → 导入

要求 Node ^22.19 || >=24 + dsh web >=0.1.7-alpha.1 <0.3。

两个界面 —— 管理面板在 设置 → 技能;本插件自身的配置卡片在 插件管理页 的插件自有页面上(侧边栏「插件」→ dsh-skill-hub)。该卡片由本插件自己注册进 plugins.bundle.config 槽位(dsh 没有自动生成的配置页),覆盖总开关、向 Agent 公告、圆点颜色、用量显示与统计窗口/间隔。

功能

设置 → 技能 — 3 个 tab:来源(技能,平铺/分组+项目树)、场景(自定义分组)、市场(安装与更新)。

  • 浏览 — ctx.skills 注册表全量:项目/用户/内置+第三方。按名称、描述、displayName 搜索;按来源、按调用方式(模型/用户)筛选;按名称/添加时间/调用次数排序。不同来源的同名技能挂重名徽标,不再静默隐藏。
  • 开关 — 单技能开关 + 整组三态开关,跨组冲突弹窗(全部关闭/保留开启)。禁用只重命名发现文件(不删除);禁用的技能仍可查看正文、可一键重新启用。仅 ~/.dsh/skills 与 ~/.agents/skills 可写,其余只读。
  • 整理 — 场景(tag)+ 自动聚合的来源集合,全部可拖拽排序并持久化到 ~/.dsh/dsh-skill-hub.json。编辑模式收敛删除/排序控件,阅读视图保持干净。
  • 诊断与修复 — provider 跳过的文件给出原因(缺 frontmatter、YAML 非法、名称不一致、描述过短);可自动修复的(如描述里未加引号的 :)一键 Fix 落盘。
  • 新建 — 新技能向导,写入 ~/.dsh/skills 或 ~/.agents/skills(SKILL.md 模板见下)。
  • 市场 — 内置精选仓库 + 自定义 owner/repo。任何含 SKILL.md 的顶层目录都可扫描(无白名单);SKILL.md 直接放在仓库根时,整个仓库算一个技能,技能名取仓库名(.github/ 等仓库基建不计入)。异步导入,字节级进度+取消。每个源钉一个版本 —— 点 ref 徽标可在发布版/分支/手输之间切换。
  • 跟踪更新 — 导入的技能记录 repo+commit 快照。检查全部/一键全更;每源徽章(已装/可更新/上游已删/新版本)。同步覆盖本地修改(先确认);上游删除跟进移入回收站,恢复保留来源与场景归属。
  • 统计 — 会话日志的调用次数+最近使用,分组头汇总;窗口与扫描间隔在设置卡片实时可调。
  • 设置卡片 — 注册在 插件管理页 的插件自有页面上(侧边栏「插件」→ dsh-skill-hub,默认折叠,点标题展开):总开关、向 Agent 公告、调用圆点颜色、用量显示开关、统计窗口/间隔。

为什么还需要一个管理器?

dsh-skill-manager 只读浏览,dsh-skill-importer / dsh-find-skill 只做导入。本插件负责管理。

能力 只读浏览器 dsh-skill-hub
目录 自扫盘、仅用户根 ctx.skills 全量+第三方
开关 ❌ ✅ 单技能+整组,从不删除
诊断 ❌ ✅ 原因+一键修复
市场 ❌ ✅ 内置+自定义,版本钉选,一键全更
来源跟踪 ❌ ✅ 检查/同步/回收站可恢复
统计 ❌ ✅ 次数+最近使用

SKILL.md 模板:

---
name: my-skill
description: 一句话说明何时使用。
---
# my-skill
正文...

工作原理

GitHub 仓库 ──扫描/导入──▶ ~/.dsh/skills
     ▲                        │
     └─检查/同步/删除── ctx.skills ◀─ provider
                              │ snapshot/get
                              ▼
                  /api/skill-hub/* ──▶ 面板(设置 → 技能)

宿主仅用 ctx.skills.snapshot/get、ctx.webServer.register、ctx.systemPrompt.section。路由仅回环(127.0.0.1/localhost),JSON。

HTTP API

端点 方法 用途
/api/skill-hub/catalog?cwd= GET 技能+禁用+诊断+重名
/api/skill-hub/skill?name=&cwd= GET 技能正文(禁用的也可)
/api/skill-hub/skill/delete POST 移入回收站(快照来源+场景)
/api/skill-hub/toggle POST {name, enabled}
/api/skill-hub/toggle-batch POST {names, enabled}
/api/skill-hub/create POST {name, description?, root?}
/api/skill-hub/diagnostic/fix POST {path} 自动修 frontmatter
/api/skill-hub/stats GET 调用次数
/api/skill-hub/config GET/POST 运行时配置(null 清除)
/api/skill-hub/groups GET tags+集合+排序
/api/skill-hub/tag 等 POST 新建/重命名、删除、设成员、排序
/api/skill-hub/market 等 GET/POST 市场源 列表/添加/删除/钉 ref;…/source/check + …/source/sync 检查与同步
/api/skill-hub/market/source/versions?repo= GET 版本选择器的 releases+branches
/api/skill-hub/repo?repo= GET 发现(任意根)
/api/skill-hub/repo/import POST 异步任务 {jobId, total, totalBytes}
/api/skill-hub/repo/import/progress?jobId= GET 轮询进度
/api/skill-hub/repo/import/cancel POST 取消任务
/api/skill-hub/sources 等 GET/POST 来源 列表/检查/同步/删除/恢复/清空回收站
/api/skill-hub/update GET 插件最新发布
未知的 /api/skill-hub/* GET/POST 404 {error} 且写明路径 —— 拼错路径不该被读成鉴权失败(宿主 SPA fallback 对自己不拥有的 /api/* 一律回 401)

开发

npm run typecheck  # tsc --noEmit
npm test           # 254 tests, 14 suites
npm run build      # tsc + tsdown → lib/index.js + lib/client.js

同一 $DSH_HOME + cwd 下勿开两个 dsh web — 无会话日志锁,会 seq gap 损坏。换 DSH_HOME 或先关旧实例。

故障排查

  • duplicate loader entry id: skill-hub — 删掉重复安装(只留一种 dsh plugin add)。
  • 技能不出现 — 看诊断区(缺 frontmatter / 名称不一致 / 描述过短)。
  • 来源组空壳 — 组内技能已被删除、或禁用记录丢失(状态文件被恢复/手改)。启动时自动对账磁盘上的 .disabled 文件补记录;无可见成员的来源组不再渲染。
  • / 菜单圆点消失 — dsh 内部触发源变更,目录功能不受影响。
  • 找不到配置卡片 — 在插件管理页打开本插件(侧边栏「插件」→ dsh-skill-hub),展开页面顶部的「技能中枢」卡片(默认折叠)。dsh 低于 0.1.7-alpha.1 时本插件无法加载(它所用的 settings API 在旧版不存在)。

社区

Issues · 讨论区 · 官方展示 · 市场收录 PR · Discord

License

MIT — LICENSE.

内容来自项目 README(GitHub)↗

链接

同类插件

查看整个分类 →

社区评论

评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。