管理和安装 Claude Code skills 的工具。维护一份常用 skills 注册表,支持订阅远程注册表或本地注册表文件,便于共享和分发 skills 列表。
当用户提到以下意图时激活:
读取本技能目录下的 registry.yaml,解析本地 skills 和订阅列表。
遍历 subscriptions 列表,根据 url 字段判断来源类型并加载:
判断来源类型:
http:// 或 https:// 开头 → 远程注册表,使用 WebFetch 获取本地路径解析规则(按优先级):
$HOME、$HOSTNAME 等)和 ~/ 开头),则基于当前注册表文件所在目录解析为绝对路径加载流程:
以带编号的表格形式展示所有可用 skills,方便用户通过编号快速选择:
| # | 名称 | 描述 | 来源 | 状态 |
|---|------|------|------|------|
| 1 | [skill-name](repo-url) | ... | 本地 | ... |
| 2 | [skill-name](repo-url) | ... | official | ... |
"名称" 列如有 repo 字段则渲染为链接,方便用户查看项目详情。"来源" 列显示 skill 的注册表来源:本地 skills 显示 "本地",订阅的 skills 显示订阅名称。
编号从 1 开始,按 registry.yaml 中的顺序递增。同时检查 ~/.claude/skills/ 和当前项目 .claude/skills/ 下是否已存在同名目录,标注已安装状态。
使用 AskUserQuestion 工具让用户选择要安装的 skill。用户可以通过编号(如 "1")或名称指定。如果用户在触发时已经指定了名称或编号,跳过此步。
使用 AskUserQuestion 询问安装位置:
~/.claude/skills/) — 所有项目可用.claude/skills/) — 仅当前项目可用安装前检查该 skill 的 depends 字段。如果存在依赖且依赖的 skill 尚未安装,先按相同流程安装依赖的 skill(递归处理),全部依赖就绪后再安装目标 skill。
根据 registry.yaml 中的 source 类型执行安装:
```bash
cd
```
```bash
git clone
```
install 路径解析规则与订阅 url 一致:先展开环境变量和 ~,若为相对路径则基于当前注册表文件所在目录解析。```bash
cp -r
```
检查目标目录下是否存在安装后的 skill 目录,报告安装结果。
当用户触发 "添加订阅" 或 "订阅 URL" 时:
http:// / https:// 开头):使用 WebFetch 验证$HOME、~),使用 Read 工具验证文件存在且为合法 YAMLurl 字段保留用户原始输入,如 $HOME/xxx.yaml)当用户触发 "列出订阅" 或 "查看订阅" 时:
| 名称 | URL/路径 | 类型 | 状态 | skills 数量 |
|------|----------|------|------|-------------|
| official | https://... | 远程 | 可用 | 15 |
| local-team | $HOME/team-skills.yaml | 本地 | 可用 | 8 |
| team | https://... | 远程 | 不可用 | - |
当用户触发 "删除订阅" 或 "取消订阅 xxx" 时:
订阅注册表采用统一的 YAML 格式,可以是远程 URL 或本地文件:
# 可选:嵌套订阅(支持递归加载,本地和远程可混用)
subscriptions:
- name: upstream
url: https://another-registry.yaml
- name: local-shared
url: $HOME/shared-skills/registry.yaml
- name: team
url: ~/team/skills-registry.yaml
# skills 列表
skills:
- name: example-skill
description: 示例 skill
source: npx
install: "npx skills add owner/repo@skill-name -y -g"
repo: https://github.com/owner/repo/tree/main/skills/skill-name # 可选
- name: local-skill
description: 本地 skill(相对路径,基于本注册表文件所在目录)
source: local
install: ./local-skill
url(订阅)和 install(local source)字段支持以下路径格式:
$HOME/path/to/file.yaml — 使用 $HOME 环境变量~/path/to/file.yaml — 使用 ~ 简写/absolute/path/to/file.yaml — 绝对路径./relative/path 或 ../sibling/path — 相对路径,基于当前注册表文件所在目录解析$HOSTNAME、$USER 等路径展开规则:
~ 展开为用户主目录,将 $VAR 格式的环境变量通过 shell echo 展开为实际值/ 开头),则以当前注册表文件所在目录为基准拼接为绝对路径共 1 个版本