【转载】你的 Skills 越来越多了,是时候用 Marketplace 管起来了

今天使用claudecode,在VSCODE插件里。想安装自己的SKILL,发现有些困难,就找了这个文章,搞定了marketplace。

由 Anthropic 推出并被行业广泛接受的 Skills 机制让 AI 能力变得可复用,写好一份 SKILL.md,就能让 Agent 在特定场景下精确执行任务。

但随着生态发展,一个现实问题浮出水面:

Skills 越来越多,却越来越难管。

  • 安装靠手动:下载 zip、解压、放到指定目录,每个项目都做一遍
  • 更新无感知:上游 Skill 迭代了新版本,你本地还是旧的
  • 版本不一致:团队成员各自安装,结果对不齐
  • 来源难追溯:三个月后你已经忘记这些技能从哪来的了

如果你也感受到了这些痛苦,Claude Marketplace 就是为你准备的解决方案。

[图片上传失败...(image-a851af-1780325557554)]

本文所述方案已在 AntV Infographic 开源项目中实际落地,由我贡献的 PR 已通过审查并被合并到主仓库

[图片上传失败...(image-17f7e-1780325557554)]

Claude Marketplace 是什么

简单来说,Marketplace 是 Skills 的包管理器

就像 npm 之于 Node.js 包、brew 之于 macOS 工具一样,Claude Marketplace 让你可以:

  • 一条命令安装:不用再手动下载解压
  • 统一管理:所有安装的 Skills 在一处可查
  • 版本追踪:清楚知道装了什么、来自哪里
  • 自动更新:上游更新后,/plugin marketplace update 一键同步

对于 Skill 的发布者来说,为你的仓库添加 Marketplace 支持,意味着用户只需两条命令:

Bash复制

/plugin marketplace add <仓库地址>
/plugin install <插件名>@<marketplace名>

就能拿到你提供的全部 AI 技能。

三步接入 Marketplace

不管你的 Skill 是个人项目还是团队仓库,接入流程都是标准的三步。

实际上,你完全可以将 Claude Code 官方文档:创建和分发 Plugin Marketplace 丢给大模型,然后要求它帮你为 Skill 项目接入 Marketplace,主流模型都是能实现的。

第一步:创建插件元数据(plugin.json)

在仓库根目录创建 .claude-plugin/plugin.json,描述你的插件基本信息:

Json复制

{
  "name": "your-plugin-name",
  "version": "1.0.0",
  "description": "一句话描述你的 Skill 做什么",
  "author": {
    "name": "你的名字或团队名",
    "email": "optional@example.com"
  },
  "repository": "https://github.com/your/repo",
  "license": "MIT",
  "keywords": ["关键词1", "关键词2"]
}

字段说明:

  • **name**:插件标识符,kebab-case 格式(如 my-awesome-skills),用户安装时会看到
  • **author**:建议团队项目填写团队名,个人项目填写 GitHub 用户名
  • 其余可选字段(homepagelicensekeywords)有助于被发现和分类

第二步:创建 Marketplace 清单(marketplace.json)

在同一目录下创建 .claude-plugin/marketplace.json

Json复制

{
  "name": "your-marketplace",
  "owner": {
    "name": "维护者名称",
    "email": "contact@example.com"
  },
  "metadata": {
    "description": "简短描述这个 Marketplace 提供什么"
  },
  "plugins": [
    {
      "name": "your-plugin-name",
      "source": "./",
      "description": "插件描述",
      "version": "1.0.0"
    }
  ]
}

字段说明:

  • **name**:Marketplace 标识,用户添加后会看到,使用 kebab-case 格式,不能用 保留名称
  • **owner**:维护者/团队信息,name 必填,email 可选
  • **metadata.description**:Marketplace 描述,不填会有校验警告
  • **plugins[].source**:插件位置,"./" 表示仓库根即是插件根

第三步:确保 Skills 目录结构合规

Claude Marketplace 期望的目录结构是:

代码块复制

你的仓库/
├── .claude-plugin/
│   ├── plugin.json
│   └── marketplace.json
└── skills/
    ├── skill-a/
    │   └── SKILL.md
    └── skill-b/
        ├── SKILL.md
        └── references/    ← 可选的参考文档
            └── prompt.md

关键要求:技能必须放在 skills/<技能名>/SKILL.md 路径下。如果你原来的目录命名不同(比如用了 .skills 或其他名字),需要迁移到 skills/

每个 SKILL.md 文件的基本格式:

Markdown复制

---
name: your-skill-name
description: 描述这个技能做什么、何时触发
---

这里写具体的技能指令内容...

校验和测试

完成上述三步后,运行官方校验命令确认一切合规:

Bash复制

claude plugin validate .

[图片上传失败...(image-65d61f-1780325557554)]

校验通过后,可以先在本地测试:

Bash复制

# 本地测试安装
/plugin marketplace add ./
/plugin install your-plugin-name@your-marketplace

确认技能可以正常触发后,把代码推送到 GitHub 即完成发布。

发布后的效果

完成接入后,你只需要执行以下命令:

Bash复制

/plugin marketplace add https://github.com/你的用户名/你的仓库.git
/plugin install 你的插件名@你的marketplace名

以 AntV Infographic 为例:

Bash复制

/plugin marketplace add https://github.com/antvis/Infographic.git
/plugin install antv-infographic-skills@antv-infographic

安装完成后,所有技能即刻可用。后续上游更新,执行 /plugin marketplace update 就能同步最新版本,再也不用手动下载 zip 了。

[图片上传失败...(image-44f087-1780325557554)]

注意事项

  • **source**** 路径不要写 ****..**:校验器禁止路径遍历,正确写法是 "source": "./",相对路径基于仓库根目录解析
  • **记得填写 ****metadata.description**:不填不会阻塞校验,但会产生警告,建议从一开始就写上
  • 插件内不能引用外部文件:安装时会复制整个插件目录到缓存,../ 引用的目录外文件不会被一起复制

[图片上传失败...(image-a8b366-1780325557554)]

多 AI 工具共享同一套 Skills

现实中,一个项目可能同时在用 Cursor、Claude Code、Gemini CLI、iFlow 等多种 AI 工具。每个工具都有自己的配置目录(.cursor.claude.gemini.iflow……),而 Skills 的格式其实是通用的,同一份 SKILL.md 在不同工具里都能用。

如果你在每个工具目录下都复制一遍 Skills,不仅浪费空间,而且更新时容易漏改。

以 Claude 为中心,软链接到其他工具

我的做法是:无论全局还是项目级,都用 **.claude** 作为 Skills 的唯一管理目录。对于其他 AI 工具,用 ln -s(符号链接)指向 Claude 目录中的技能文件夹。

[图片上传失败...(image-dd6062-1780325557553)]

以全局 Skills 为例,Claude Marketplace 安装的技能会存放在 ~/.claude/plugins/marketplaces/ 下。要让 Gemini CLI 也能使用这些技能,只需创建软链接:

Bash复制

# 确保目标目录存在
mkdir -p ~/.gemini/skills

# 示例:将 Claude Marketplace 安装的技能链接到 Gemini
ln -s ~/.claude/plugins/marketplaces/antv-infographic/skills/infographic-creator \
      ~/.gemini/skills/infographic-creator

ln -s ~/.claude/plugins/marketplaces/anthropic-agent-skills/skills/pdf \
      ~/.gemini/skills/pdf

ln -s ~/.claude/plugins/marketplaces/anthropic-agent-skills/skills/xlsx \
      ~/.gemini/skills/xlsx

项目级 Skills 同理:在项目的 .claude/skills 里维护一份,然后从 .cursor/skills.gemini/skills 等目录软链接过去。

小坑:不要复制软链接,要重新生成

有一个容易踩的坑:在 A 工具目录中创建的软链接,不能直接复制到 B 工具目录

比如你先用 ln -s.gemini/skills/ 下创建了链接,然后想把同样的链接「复制」到 .cursor/skills/,用 cp 复制软链接文件时,行为取决于你的 cp 版本和参数:有时会复制链接本身(拿到一个指向相同目标的新链接),有时会复制链接指向的实际内容(丢失链接关系)。为了避免歧义,**始终对每个目标工具目录重新执行 ****ln -s**

Bash复制

# ✘ 不要这样做
cp -r ~/.gemini/skills/infographic-creator ~/.cursor/skills/

# ✔ 每个工具目录独立创建软链接
ln -s ~/.claude/plugins/marketplaces/antv-infographic/skills/infographic-creator \
      ~/.cursor/skills/infographic-creator
ln -s ~/.claude/plugins/marketplaces/antv-infographic/skills/infographic-creator \
      ~/.gemini/skills/infographic-creator

这样无论哪个工具读取技能,都直接指向 Claude Marketplace 的源目录,更新时只需要在 Claude Code 中执行 /plugin marketplace update,所有工具同步受益。

总结

为你的 Skill 接入 Claude Marketplace,核心只需要:

  1. 两个 JSON 文件.claude-plugin/plugin.json + .claude-plugin/marketplace.json
  2. 标准目录结构skills/<技能名>/SKILL.md
  3. 一次校验claude plugin validate .

再进一步,用软链接策略让多个 AI 工具共享同一套 Skills,实现一处更新、处处可用

如果你已经有现成的 Skills,不妨花 15 分钟给它加上 Marketplace 支持,从此告别手动下载、版本混乱、更新遗忘的烦恼。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容