Chuyển đến nội dung chính

dsh-skills-hub

Đã xác minh

dsh-skills-hub · v0.3.1 · MIT · Giao diện web

跨平台 AI Skills 统一管理器:以 ~/.agents/skills 为中心技能库,通过系统符号链接把同一份技能一键安装/卸载到 Claude Code、Cursor、Codex、Gemini CLI、Trae、Windsurf 等多个 Agent 工具,仅展示本机已安装的平台,统一管理本地技能目录与只读平台展示。支持 Windows / macOS / Linux。DeepSeek Harness plugin.

Cài đặt

dsh plugin add dsh-skills-hub

Xác nhận layer đã áp bằng dsh --profile default --dump-config — xem hướng dẫn cài plugin.

Mã nguồn

Thẻ

Tác giả

Readme

dsh-skills-hub

English: README.md

跨平台 AI Skills 统一管理器(DeepSeek Harness 插件)。

把同一份技能从中心技能库 ~/.agents/skills 通过系统符号链接一键安装到多个 Agent 工具,实现"一份数据源驱动多工具"——不再因为切换 Agent 而重复拷贝技能。

一个数据源,驱动多个 AI 编码工具。

支持的操作系统

系统 链接类型 权限要求
Windows 目录联接(Junction) 免管理员权限
macOS 目录符号链接(Symlink) 免管理员权限
Linux 目录符号链接(Symlink) 免管理员权限

插件运行时零第三方依赖(仅 Node.js 内置模块),DSH 本身支持 Windows / macOS / Linux,因此本插件同样跨平台可用。Windows 上使用 Junction 是因为它对目录联接无需管理员权限;macOS / Linux 使用标准符号链接。

功能

  • 中心技能库管理:以 ~/.agents/skills 为唯一数据源,实时扫描技能清单。
  • 只展示本机已安装的平台:内置 26 个常见 Agent 工具的目录映射,扫描后仅显示实际存在的平台,未安装的工具不占用界面。
  • 一键安装:把任意中心技能通过符号链接安装到各 Agent 平台(跨平台、免管理员权限)。
  • 卸载语义区分:
    • 链接条目(指向中心技能库)→ 只删链接,不动数据源。
    • 本地专属技能(Agent 工具自己的真实目录)→ 删除该平台下的数据源。
  • 只读平台:Claude Code 等只读平台仅展示,不提供安装/卸载。
  • 自定义平台:可在设置中添加任意本地 Skills 目录统一管理,配置持久化到 ~/.skillsmanage/config.json。
  • 本地优先、无数据库:元数据实时扫描自文件系统,不引入 SQLite,轻量为主。

截图

设置 → 技能中心:中心技能库与各平台卡片按类别分组展示,仅显示本机已安装的平台。

管理入口

把中心技能安装到目标平台 —— 创建指向中心技能库的链接:

安装新技能

卸载链接条目 —— 只删链接,中心数据源不受影响:

卸载技能

删除本地技能 —— 移除该平台自己的数据源:

删除技能

环境要求

项 最低要求
操作系统 Windows / macOS / Linux
Node.js >= 20(package.json 的 engines 声明)
DSH(DeepSeek Harness) 已安装,dsh 命令在 PATH 中
pnpm 已安装(dsh plugin 内部使用)

插件自身零运行时依赖;Node.js 由 DSH 宿主进程提供。

工作原理

~/.agents/skills/            ← 中心技能库(唯一数据源)
├── code-review/
├── book-to-skill/
└── ...

~/.codex/skills/             ← Codex 技能目录
├── book-to-skill/           → 链接 → ~/.agents/skills/book-to-skill   (链接:卸载=删链接)
└── ddm-bigscreen/                                                    (本地:卸载=删数据源)
  • Windows:Junction(目录联接,免管理员权限);macOS / Linux:目录符号链接。
  • 链接条目卸载调用 unlink(只删链接);本地真实目录卸载调用 rm -rf(删除该平台数据源)。

安装

前置条件

  • 已安装 DeepSeek Harness (DSH),且 dsh 命令在 PATH 中(安装 DSH 后自带)。

  • 已安装 pnpm(dsh plugin 内部调用 pnpm 管理 profile 依赖):

    npm install -g pnpm
    

方式一:一键安装脚本(推荐)

在克隆/解压的仓库根目录执行:

Windows(PowerShell)

powershell -ExecutionPolicy Bypass -File scripts/install.ps1
# 或
pwsh scripts/install.ps1

macOS / Linux

bash scripts/install.sh

脚本会调用 dsh plugin --profile web add <本目录> 完成安装(自动 pnpm 安装并挂载),无需手动改任何配置。

方式二:dsh plugin add 命令

从本地源码(在仓库根目录):

dsh plugin --profile web add .

从 npm 发布(发布到 npm 后):

dsh plugin --profile web add dsh-skills-hub

dsh plugin add 会自动把声明了 dsh.bundle.patch 的包加入 dsh.profile.bundles,并应用插件自带的 cordis.patch.yml,无需手动编辑 profile 配置。重新运行同一命令可升级。

方式三:手动安装(开发调试)

# 1. 编辑 ~/.dsh/profiles/web/package.json
#    dependencies 增加:  "dsh-skills-hub": "link:<本目录绝对路径>"
# 2. 在 profile 目录安装
cd ~/.dsh/profiles/web
pnpm install
# 3. 确认 cordis.patch.yml 中有 insert 条目(或依赖 bundles 自动挂载)

无论哪种方式,安装后都需重启 DSH 才能生效。

使用

进入 DSH 设置 → 技能中心:

  • 平台按类别(Central / Coding / Lobster / 自定义)分组,仅显示本机已安装的平台。
  • 中心技能库卡片展示全部可用技能(数据源,不可删除)。
  • 每个 Agent 平台卡片显示已装技能(区分「链接」与「本地」),提供安装下拉框:
    • 链接条目 →「卸载」按钮(只删链接)。
    • 本地条目 →「删除」按钮(删除该平台数据源)。
  • 底部可添加自定义平台(目录路径 + 可选显示名称)。

平台映射

内置映射(仅列出常规目录;扫描后只显示本机实际存在的平台):

类别 平台 Skills 目录 可写
Central 中心技能库 ~/.agents/skills 数据源
Coding Claude Code ~/.claude/skills 只读
Coding Codex CLI ~/.codex/skills ✅(排除 .system)
Coding Cursor ~/.cursor/skills-cursor ✅
Coding Gemini CLI ~/.gemini/skills ✅
Coding Trae ~/.trae/skills ✅
Coding Factory Droid ~/.factory/skills ✅
Coding Junie ~/.junie/skills ✅
Coding Qwen ~/.qwen/skills ✅
Coding Trae CN ~/.trae-cn/skills ✅
Coding Windsurf ~/.windsurf/skills ✅
Coding Qoder ~/.qoder/skills ✅
Coding Augment ~/.augment/skills ✅
Coding OpenCode ~/.opencode/skills ✅
Coding KiloCode ~/.kilocode/skills ✅
Coding OB1 ~/.ob1/skills ✅
Coding Amp ~/.amp/skills ✅
Coding Kiro ~/.kiro/skills ✅
Coding CodeBuddy ~/.codebuddy/skills ✅
Coding Hermes ~/.hermes/skills ✅
Coding Copilot ~/.copilot/skills ✅
Coding Aider ~/.aider/skills ✅
Lobster OpenClaw ~/.openclaw/skills ✅
Lobster QClaw ~/.qclaw/skills ✅
Lobster AutoClaw ~/.openclaw-autoclaw/skills ✅
Lobster WorkBuddy ~/.workbuddy/skills-marketplace/skills ✅

提示:内置平台映射在 lib/index.js 的 PLATFORMS 常量中,可按需增删改;也可以在设置界面添加自定义平台(持久化到 ~/.skillsmanage/config.json),无需改代码。

目录结构

dsh-skills-hub/
├── package.json          # 插件清单(dsh.client / dsh.bundle.patch 声明)
├── cordis.patch.yml      # bundle patch(insert 条目,dsh plugin add 自动应用)
├── lib/
│   ├── index.js          # Host half:node:fs 符号链接 + webServer 路由
│   └── client.js         # Client half:设置页 UI(__ModuleLoader__.load)
├── scripts/
│   ├── install.ps1       # Windows 一键安装脚本
│   └── install.sh        # macOS / Linux 一键安装脚本
├── test/core.test.js     # 单元测试(链接原语 + 卸载语义 + 跨平台链接类型)
├── README.md             # 英文版(GitHub 主页默认显示)
├── README.zh.md          # 中文版(本文件)
├── LICENSE
└── CHANGELOG.md

安全

  • 写接口仅接受 loopback Host(localhost / 127.0.0.1),并要求自定义标记头,防 DNS rebinding。
  • 技能名校验白名单 [a-zA-Z0-9._-],杜绝路径穿越。
  • 中心技能库自身永不删除;链接卸载只删链接、不动数据源。
  • 本地真实目录删除为显式用户操作,且在 UI 上以「删除」(红色)区别于「卸载」(链接)。

License

MIT