中文EN

dsh-skill-station

skill已测通过npmMIT

侧边栏技能站:扫描 Claude/Codex/Cursor/Gemini 技能目录一键导入,管理全局与项目技能(启停、回收站),支持拖拽文件夹、zip 包与本地路径(不限大小)安装。

下载量 / Downloads
804
依赖体积 / node_modules
2.5 MB
测试时间 / Tested
2026-11-07
DSH 版本 / Version
0.2.2-rc.1

安装

dsh plugin --profile web add dsh-skill-station

沙箱测试结果

阶段结果
1 安装✓
2 列装✓
3 挂载✓
4 启动—

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README

dsh-skill-station

DeepSeek Harness 的技能库、导入器与公开技能市场。

![npm version](https://www.npmjs.com/package/dsh-skill-station)

![license: MIT](LICENSE)

![Node.js](#环境要求)

![ci](https://github.com/WilShi/dsh-skill-station/actions/workflows/ci.yml)

[English](README.md) | 中文

技能站把 Agent 能用的技能收进一个页面:列出 DSH 家目录、共享 agents 目录和每个工作区下的全部技能;从 Claude Code、Codex CLI、Cursor、Gemini CLI 的现有技能库一键导入;也可以通过拖拽文件夹、ZIP、本地路径或公开 Agent Skills 市场安装新技能。公开市场不需要账号或令牌,入口在浏览器界面里,而凭据、网络请求和文件写入始终留在 Host 侧。

目录

  • [截图](#截图)
  • [功能](#功能)
  • [环境要求](#环境要求)
  • [安装](#安装)
  • [使用技能站](#使用技能站)
  • [技能市场](#技能市场)
  • [配置](#配置)
  • [实现方式](#实现方式)
  • [安全模型](#安全模型)
  • [实测证据](#实测证据)
  • [目录结构](#目录结构)
  • [开发](#开发)
  • [已知限制](#已知限制)
  • [许可证](#许可证)
  • [致谢](#致谢)

截图

技能市场

浏览 skills.sh 目录或按关键词搜索,选择目标根目录与冲突策略,再用版本选择器一键安装。

安装结果

安装完成后,面板会给出技能的本地目录和规范归档的 SHA-256;同一个摘要会写进技能旁的 .dsh-skillhub.json。

技能库

技能库按根目录分组。可以切换模型调用、查看详情、分配场景标签、导出 ZIP,或把技能移入回收站;宿主内置技能只读展示。

截图来自本地 harness 调用真实 Host API 渲染,市场数据是 skills.sh 的线上数据。界面支持中文和英文,这几张截图使用中文界面。

功能

技能库

  • 按作用域分组列出所有可写根目录下的技能:$DSH_HOME/skills(通常是 ~/.dsh/skills)、~/.agents/skills,以及每个工作区的 <workspace>/.dsh/skills 和 <workspace>/.agents/skills。宿主内置技能单独成组,只读展示。
  • 按名称和描述搜索;详情视图展示解析后的 frontmatter、完整的 SKILL.md 正文,目录型技能还有文件树。
  • 直接编辑文本文件(包括 SKILL.md);保存后返回重新解析的元数据,列表状态保持准确。
  • 通过改写 frontmatter 里的调用开关(disable-model-invocation、user-invocable)启停技能,目录型 bundle 和扁平 <name>.md 都支持。
  • 把任意技能导出为以技能名命名的 ZIP;重新导入该压缩包即可还原目录结构。
  • 运行发现诊断,按宿主加载器的严格规则检查非法 YAML、缺少 name 或 description、非 kebab 名称、旧式 camelCase 开关键,并支持就地修复不规范的前置元数据。
  • 用受校验的向导新建技能,生成合法的 kebab-case SKILL.md。
  • 用场景标签给技能分组(例如「工程」「设计」);归属关系保存在 ~/.dsh/skill-station/scenes.json。
  • 删除只是移入可恢复的回收站;可以恢复条目,也可以显式清空回收站。

从其他 Agent 导入

  • 只读扫描 Claude Code、Codex CLI、Cursor、Gemini CLI 使用的技能库,绝不修改来源目录。
  • 默认扫描位置:

Agent · 用户级目录 · 工作区目录

Claude Code · ~/.claude/skills · .claude/skills

Codex CLI · ~/.codex/skills · .codex/skills

Cursor · ~/.cursor/skills · .cursor/skills

Gemini CLI · ~/.gemini/antigravity/skills、~/.gemini/skills · .gemini/skills

  • 可以导入到全局根目录,也可以导入到当前选中工作区的项目根目录。
  • 同名冲突支持跳过、改名、替换三种策略。改名会同步改写 frontmatter 里的 name,避免导入副本遮蔽原技能;替换会先把旧版本移入回收站。
  • 宿主技能 watcher 会发现新文件,导入后无需重启 DSH。

随处安装

  • 把技能文件夹拖进面板、用文件选择器挑选文件夹、拖入或选择 ZIP,或粘贴 Host 本机上已有文件夹的绝对路径。
  • ZIP 在 Host 侧解压;symlink 条目会被拒绝,所有路径在写入前都会校验。
  • 浏览器安装会先校验、在目标根目录内暂存,再用原子 rename 落到最终位置。暂存或 rename 失败时会清理暂存目录,并从回收站恢复被替换的技能。
  • 本地路径安装是磁盘到磁盘的流式复制,适合带 vendored 依赖树的大技能。

公开技能市场

  • 默认对接 skills.sh:通过公开 sitemap 发现目录、通过公开搜索 API 做关键词搜索、从 GitHub 仓库归档安装。
  • 市场身份沿用来源自身的唯一性规则,并成为安装后的技能名:skills.sh 用 owner--repo--skillId(例如 anthropics--skills--pdf,安装为 anthropics-skills-pdf)。
  • 其他后端只需改配置:OpenClaw 注册表、静态 JSON 目录,或部署方自带的企业 Skill Hub。界面、安装管线、冲突策略和来源记录完全一致。
  • 下载类技能支持跳过和替换两种冲突策略;改名会被拒绝并返回 409,因为归档自身已经定义了身份。
  • 每个市场技能都带来源记录:provider、上游身份、版本、归档 SHA-256 和安装时间。

环境要求

  • 支持插件机制的 DSH Web profile(0.2.x 系列)。本包 peer 依赖 @deepseek-ai/cordis ^4.0.5 与 0.2.1 的客户端 shell 包。
  • Node.js 22.19 以上(22.x 系列),或 Node.js 24。
  • DSH 支持的操作系统均可。路径遵循 DSH 约定,并识别 $DSH_HOME。

安装

把 bundle 加进你实际运行的 profile,然后重启该 profile:

dsh plugin --profile web add dsh-skill-station
# 重启 profile(例如 dsh web,或重新打开 Desktop)

需要移除时:

dsh plugin --profile web remove dsh-skill-station

这是一个标准 DSH bundle:cordis.patch.yml 会插入 Host 行来挂载 API,并插入 client 行来注册侧边栏按钮和设置分区;profile 会一直保留该插件,直到你主动移除。

DSH Desktop 同样按 profile 管理插件。如果你启动的 profile 里还没有技能站,用 --profile desktop(或你的 Desktop 构建实际使用的 profile 名)把同一个 bundle 装进去即可;已经内置该 bundle 的构建不需要额外安装。

安装后,从侧边栏底部的技能站按钮打开面板,或进入「设置 → 技能站」。

使用技能站

面板有五个标签页,顶部还有工作区选择器。选择器决定管理哪个工作区的项目根目录;全局根目录始终可用。

标签页 · 作用

技能库 · 浏览、搜索、启停、查看、编辑、导出、诊断、打标签;新建技能。

Skill 市场 · 浏览已配置的市场、按关键词搜索、选择目标根目录与版本,安装单个技能。

导入技能 · 扫描外部 Agent 技能库,勾选候选项,按冲突策略导入。

安装技能 · 拖入文件夹、选择文件夹、上传 ZIP,或粘贴本地绝对路径。

回收站 · 恢复已删除的技能,或清空回收站。

可写根目录(技能库按此顺序展示):

作用域 · 根目录

全局(用户) · $DSH_HOME/skills,默认 ~/.dsh/skills

共享(用户) · ~/.agents/skills

工作区 · <workspace>/.dsh/skills

工作区(共享) · <workspace>/.agents/skills

技能要么是目录型 bundle(<name>/SKILL.md 加附属资源),要么是直接放在根目录下的单个 Markdown 文件(<name>.md)。删除技能时,它总是先被移入 ~/.dsh/skill-station/trash。

技能市场

skills.sh(默认)

skills.sh 是一个公开的 Agent Skills 目录。它没有提供「一次列出全部技能」的 JSON,所以 Host 使用它公开暴露的三个入口:

环节 · 请求 · 说明

发现 · GET /sitemap.xml → GET /sitemap-skills-N.xml · 最多 4 万个技能页,首次浏览时解析,缓存 10 分钟

搜索 · GET /api/search?q=... · 关键词搜索;结果行带仓库、技能 id 和安装次数

归档 · GET https://codeload.github.com/<owner>/<repo>/zip/HEAD · 技能内容来自仓库自身的归档

同一个技能 id 只在单个仓库内唯一,所以 skills.sh 身份保留三段坐标:owner--repo--skillId。SKILL.md 的 name 必须是 kebab-case,因此身份会被投影成合法名称,安装为 anthropics-skills-pdf 而不是 anthropics--skills--pdf。安装请求始终指定一个精确身份;Host 会校验下载到的归档确实发布了该技能,对格式合法但并不存在的身份返回 404 NOT_FOUND。

其他后端

配置 · 后端 · 发现 · 下载 · 身份

market.mode: skills-sh(默认) · skills.sh · sitemap 分片或搜索 · GitHub 仓库归档 · owner--repo--skillId

market.mode: registry · clawhub.ai · 游标目录或搜索 · 注册表 ZIP 端点 · owner--slug

market.mode: catalog · 静态 JSON 文档 · 单个目录文档 · GitHub、npm 或直链归档 · 条目 id

market.provider: htsc · 部署方提供的企业 Skill Hub · 部署方 API · 不可变版本 ZIP · 部署方技能名

静态目录默认读取 https://awesome-dsh-plugin.com/plugins.json。切换后端只是配置变化;面板、安装管线和安全检查共用同一套实现。

企业 Skill Hub

运行自有 Skill Hub 的部署,可以设置 market.provider: htsc 并填写只由 Host 读取的 skillHub 配置块,接入按组织授权的目录。本构建不内置

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:2,最后更新 2026-11-04

链接

GitHub · Homepage · npm

同类插件