发布与分发插件
选择分发方式、发布前的检查清单、不用市场分享、创建与通过自己的市场发布、提交到 Anthropic 目录、发布新版本、打标签、重命名与移除,以及声明依赖。
发布 Claude Code 插件,意思是把它列进一个市场(marketplace):一个 JSON 目录,列出插件以及从哪里获取每一个,这样其他人就能按名字安装它并收到你的更新。你可以运营自己的市场,也可以把插件提交到 Anthropic 的目录。要分享插件而不发布它,把插件的目录或它的 .zip 发给别人,让他们自己加载。
本页面向已有可用插件、准备分享的作者。其他情形在别的页面里讲:插件还没做完,从「创建插件」开始;你维护的 CLI 或 SDK 有官方市场里的插件,见「从你的 CLI 推荐你的插件」。先看「选择分发方式」比较分发选项;如果你已经知道路线,直接去「发布前准备」,然后按你路线的那一节了解该告诉用户什么以及他们如何收到更新。
选择分发方式
根据谁需要安装插件来选择分发选项:
| 路线 | 谁能安装 | 你需要什么 | 用户自动获得你的更新吗 |
|---|---|---|---|
| 不用市场 | 你把插件文件夹或它的 .zip 发给的人 | 插件的文件夹 | 不会,他们加载你发来的那份副本 |
| 你自己的市场 | 任何能访问该仓库的人,可以是你团队能克隆的私有仓库 | 一个 git 仓库或其他主机,带列出你插件的 .claude-plugin/marketplace.json | 默认关闭 |
| Anthropic 的目录 | 在 claude.ai 或 Cowork 里添加它的人;它也通过账号同步在他们的 Claude Code 会话里加载 | 保存插件的 GitHub 仓库,以及用来提交的付费 claude.ai 套餐 | 会,在你推送的版本发布之后 |
自动更新是用户这一侧按市场的设置,会在后台获取新版本。
发布前准备
名称、版本、校验和从市场安装,决定一次发布对安装它的人是否有效。首次发布前检查它们,之后每次发布前再检查一遍。
- 选一个永久的名称:用户通过
name@marketplace安装、启用和配置你的插件,所以重命名后的插件对每个已有安装来说都是另一个插件。选一个 kebab-case 名称,如deploy-helper(claude plugin validate对其他形式会警告),并把它视为永久不变。用plugin.json里的displayName设置用户看到的标签。 - 决定怎么做版本控制:如果你在
plugin.json里设了version,之后推送提交却没有改它,claude plugin update会打印<name> is already at the latest version (1.0.0).,用户保留旧副本。要么每次发布都递增version,要么在 git 托管的市场里省略它,让 Claude Code 改用提交 SHA;见插件加载页的「版本与更新」。 - 校验:在 shell 里运行
claude plugin validate --strict ./your-plugin,干净的运行会打印✔ Validation passed。在 CI 里保留--strict,它对未知的清单字段或缺失version这类警告也以退出码 1 让运行失败;如果你在上一步选择省略version,就去掉--strict。路径:校验会报告不以./开头的组件路径;在 hook 命令和 MCP 服务器配置内部,用${CLAUDE_PLUGIN_ROOT}/...引用文件,见清单参考里的路径规则。 - 从本地市场安装它:在 shell 里用
claude plugin marketplace add ./path-to-marketplace添加列出该插件的本地市场,从中安装插件,并启动会话确认它能加载。最小的可用市场见下面的「创建市场」;安装加载的是你的源目录还是缓存副本,见插件加载页的「原地与复制的插件」。 - 填写用户看到的元数据:在
plugin.json里设置description、author、homepage和repository,并在插件根目录添加README.md;homepage必须能解析为 URL。清单参考列出了每个字段。 - 运行你的评测套件:如果你有评测套件,在 shell 里运行
claude plugin eval,它运行插件的测试用例并给结果打分,在你改动插件时能抓住回归;见「用评测测试插件」。
不用市场分享插件
如果插件在 git 仓库里,人们可以克隆它并加载检出的副本,或者从 shell 里用 --plugin-url 指向你附在发布上的 .zip 来启动 Claude Code;要拿到你的下一个版本,他们再次拉取或下载。如果它不在仓库里,把目录或它的 .zip 发给他们。他们用两种方式之一加载它:
- 只为一个会话:他们从 shell 里用
claude --plugin-dir ./deploy-helper启动 Claude Code,路径是克隆、解压后的文件夹或.zip本身;见「为单个会话加载插件的标志」。 - 为每个会话:他们把插件目录连同它的
.claude-plugin/plugin.json移到~/.claude/skills/下,这样 Claude Code 在每个会话里都加载它。
给同一个仓库添加 .claude-plugin/marketplace.json,才能让人们按名字安装、用一条命令更新;见「通过你自己的市场发布」。
随你自己的工具一起发布插件
如果你维护 CLI 或 SDK,把插件发布在市场里,并让你的安装器或安装后消息运行或打印用户需要的两条命令:claude plugin marketplace add <source>,然后 claude plugin install <name>@<marketplace>。有人使用你的工具时的会话内发现,见「从你的 CLI 推荐你的插件」。
创建市场
市场是一个带 .claude-plugin/marketplace.json 文件的目录,外加它列出的插件。这个文件必须有 name、owner 和 plugins 数组,plugins 里每个条目至少有 name 和 source:
{
"name": "my-marketplace",
"description": "Plugins for my team",
"owner": { "name": "Your Name" },
"plugins": [
{
"name": "my-first-plugin",
"source": "./plugins/my-first-plugin",
"description": "A greeting plugin to learn the basics"
}
]
}条目的 source 要写成从市场根目录出发的相对路径,条目的 name 要和插件清单里的 name 保持一致。本地验证整个流程:
claude plugin validate ./my-marketplace # 校验 JSON 语法、必填字段和各插件条目
claude plugin marketplace add ./my-marketplace # 注册为市场
claude plugin install my-first-plugin@my-marketplace # 安装 id 是条目名 + @ + 市场名
claude plugin list在会话里,/plugin marketplace add ./my-marketplace 同样注册市场。
通过你自己的市场发布
你自己的市场是一个列出你插件的 .claude-plugin/marketplace.json 文件,加到一个 git 仓库里。文件进入仓库后,插件就发布了,没有提交表单。你可以把文件放在插件自己的仓库里,也可以放在单独的仓库里。
把市场文件加进你的仓库
要从插件自己的仓库发布,把市场文件存在 .claude-plugin/ 里 plugin.json 旁边,带一个 source 为 "./"(仓库根目录)的条目。给条目与 plugin.json 相同的 name(条目名与清单名保持一致):
{
"name": "your-marketplace",
"owner": { "name": "Your Name" },
"plugins": [
{ "name": "deploy-helper", "source": "./" }
]
}推送之前,在 shell 里于仓库中运行 claude plugin validate . 检查这个文件。一个仓库里有多个插件的布局,见「创建市场」的完整文档。
控制谁能安装
任何能克隆仓库的人都能从中安装,所以如果仓库是私有的,市场也是私有的。对 git 仓库之外的主机,见「托管市场」;要触达公司里的每个人(包括不使用 git 的人),见「推广到整个公司」。
告诉用户如何安装
告诉你的用户从 shell 里添加市场、再安装插件,把来源和名称换成你的:
- 添加市场一次:
claude plugin marketplace add your-org/your-marketplace,参数是 GitHub 的owner/repo简写、URL 或路径。 - 安装插件:
claude plugin install deploy-helper@your-marketplace。 - 或在会话里一次完成两者:
/plugin install deploy-helper --marketplace your-org/your-marketplace(需要 Claude Code v2.1.275 或更高)。
向用户发布更新
用户在要求时,或当你的市场开启了自动更新时,收到发布:
- 按需:用户 shell 里的
claude plugin update deploy-helper@your-marketplace刷新市场,并在你插件的版本变化时安装新副本。 - 自动更新:你的市场默认关闭;见「开启自动更新」。开启后,它在会话启动后延迟一段时间做与
claude plugin update相同的事。
用户这一侧的命令见「安装插件」,自动更新的时机见插件加载页的「自动更新何时运行」。
提交到 Anthropic 的目录
Anthropic 的目录是人们在 claude.ai 和 Cowork 里浏览以添加插件和连接器的目录。那里的一个列表能触达 claude.ai、Cowork 和 Claude Code 里的人。你从 claude.ai/directory/manage 的开发者门户提交;claude.com 上的「Prepare for review」描述了每个版本在发布前会发生什么。
提交需要付费的 claude.ai 套餐。在 Pro 和 Max 上,你从自己的账号提交;在 Team 和 Enterprise 上,Owner 可以提交,Enterprise 的 Owner 还可以通过 Organization settings > Roles 下的自定义角色把 Directory 权限授予其他成员。提交步骤、每个版本必须通过的检查,以及发布之后会发生什么,都记录在 claude.com 上,因为不论你的用户在哪个界面它们都相同:发布到目录(你能提交什么、谁能提交);提交插件(门户步骤和更新已发布的插件);插件提交前检查清单(提交前要运行并修复的检查);把较早的提交迁移到开发者门户(如果你在门户存在之前通过较早的提交表单提交过插件)。
打开门户之前,先在本地校验,并检查你的哪些组件在 Claude Code 之外也能加载:
- 在 shell 里运行
claude plugin validate ./your-plugin --strict,把./your-plugin换成你的插件目录路径。该命令在本地抓住清单错误;门户应用 CLI 不检查的额外目录规则,所以本地干净的运行不保证门户校验干净。 - 检查什么在哪里加载:有些插件组件是 Claude Code 专属的,不会在 claude.ai 或 Cowork 里加载。组件支持表按应用列出每个组件,让你知道 Claude Code 之外的用户会得到什么。
Anthropic 的官方市场 claude-plugins-official 不通过目录门户接受提交;如果你和 Anthropic 的合作伙伴联络人有往来,向他们询问官方市场的列表。
列出的插件如何到达 Claude Code 用户
在 claude.ai 上从目录安装了你插件的人,账号上就有它,Claude Code 把它加载为 <name>@synced。他们看到什么以及如何关闭它,见插件加载页的「从 claude.ai 同步的插件」。
发布更新、重命名与移除
发布新版本
如果你通过自己的市场发布,并且 plugin.json 设了 version,递增它并推送。运行 claude plugin update 或开启了自动更新的用户随后会收到新版本,如上面「向用户发布更新」所述。如果你没设置 version,则每次提交都视作新版本。目录列表的更新见「更新已发布的插件」。
给发布打标签
当其他插件在你的插件上声明版本范围时,在 git 里给发布打标签,因为那些范围是对标签解析的;否则你不需要标签。要打标签,在 shell 里于插件目录运行 claude plugin tag,它创建 {name}--v{version} 标签;加 --push 把标签推送到 origin。plugin tag 参考列出了它的标志。
重命名或移除插件
永远不要更改已发布插件的 name。重命名之后,已经安装它的用户会丢失插件,因为他们的安装记录在旧名称下。市场文件里的 renames 条目会迁移他们。想要不同的标签时,改 displayName。
如果重命名不可避免,用市场文件的 renames 映射,使现有安装迁移,而不是以 Plugin "<name>" not found in marketplace 失败。从市场移除插件,或 renames 的完整细节,见托管页的「重命名或移除插件」;字段本身见市场参考的顶层字段。
声明依赖
如果你的插件需要同一市场里的另一个插件被启用,把它列在 plugin.json 的 dependencies 数组里。每个条目是裸名称,或带 semver version 范围(如 ^1.2)的对象。用户安装你的插件时,Claude Code 也安装并启用依赖,并在卸载时清理不再需要的。范围语法、跨市场依赖,以及用户如何修剪不再需要的依赖,见「插件依赖」。
下一步
- 托管并维护市场:发布新版本并让用户保持更新。
- 插件依赖:声明你所依赖插件的版本。
- 从你的 CLI 推荐你的插件:提示你 CLI 的 Claude Code 用户安装该插件。
- 衡量插件成本与用量:查看你的插件在上下文里花多少、人们是否使用它。