marketplace.json 中的插件条目添加 relevance 块来定义这些信号。
marketplace 运营商编写 relevance 条目。然后管理员在托管设置中将 marketplace 列入允许列表。在 marketplace 被列入允许列表之前,用户看不到来自该 marketplace 的任何建议。
这些情况在其他页面上有介绍:
- 您想安装插件:请参阅安装和管理插件
- 您想关闭建议:请参阅了解插件相关性的工作原理
- Marketplace 运营商:阅读建议如何工作,然后向插件条目添加相关性和验证您的 marketplace
- 管理员:在托管设置中启用建议
了解插件相关性的工作原理
marketplace.json 中的每个插件条目都可以包含一个 relevance 对象。该对象命名一个主题和一个或多个信号。信号是 Claude Code 针对当前会话测试的模式,例如工作目录或 Claude 已读取的文件。
信号匹配在用户的机器上本地进行,不会增加网络流量。Claude Code 不会向 Anthropic 或 marketplace 运营者报告哪些信号匹配或其值。
当信号匹配且插件尚未安装时,Claude Code 在以下位置建议该插件:
- Spinner 提示:当 Claude 正在响应时,包含
/plugin install命令的消息出现在 spinner 下方。 - 会话启动通知:如果
cwd信号与工作目录匹配,在用户发送第一条消息之前会出现一行通知。 /pluginDiscover 标签页:该插件被固定到 Discover 列表的顶部。
spinnerTipsEnabled 设置为 false,或当 spinnerTipsOverride 带有 excludeDefault 替换内置提示时,spinner 提示和会话启动通知都会停止出现。Discover 标签页的固定不受这两个设置的影响。
向插件条目添加相关性
向您的marketplace.json 中的插件条目添加 relevance 对象。以下示例声明当 Claude 读取 .tf 文件或运行 terraform 时,terraform-helpers 插件是相关的:
字段参考
relevance 对象及其嵌套的 signals 对象接受以下表格中的字段。
较旧的客户端仍然可以加载使用它们不识别的 relevance 字段的 marketplace,因为在加载时会忽略 relevance 和 relevance.signals 下的未知字段。一个已识别的字段,其值超过 字段参考 中的限制,会使整个插件条目失效,用户无法从 marketplace 安装该插件,直到您修复它;claude plugin validate 报告相同的限制。
relevance
topic 通常是产品名称,例如 Terraform。当插件名称作为主题听起来不自然时,使用诸如 design 之类的域。
relevance.signals
signals 对象接受以下字段。
filesRead 和 manifestDeps 信号也与 Claude 在此会话中已写入或编辑的文件以及项目的自动加载的 CLAUDE.md 内存文件匹配。
工作目录匹配
cwd 是唯一可以在会话启动时匹配的信号,在用户发送第一条消息之前。
Claude Code 按如下方式匹配每个 cwd 模式:
- 该模式作为绝对路径与工作目录匹配。当会话在 git 存储库内时,它也与工作目录相对于存储库根目录的路径匹配。
- 匹配是正斜杠规范化且不区分大小写的。
- 每个模式都匹配目录本身及其下的所有内容,因此
infra、infra/和infra/**的行为相同。
命令名称匹配
Claude Code 为 Claude 运行的每个 shell 命令记录一个命令名称:任何前导环境变量赋值和sudo 之后的第一个令牌。复合命令仅贡献其前导命令,因此 cd infra && terraform plan 记录 cd,而不是 terraform。
清单依赖项匹配
每个manifestDeps 条目配对两个 JavaScript RegExp 源字符串:
file:不区分大小写地与清单文件的路径匹配。路径通常是绝对的,因此在末尾而不是开头锚定模式。路径对于此信号不是分隔符规范化的,因此 Windows 路径使用反斜杠。pattern:区分大小写地与该文件的内容匹配。
manifestDeps 在 Claude 读取了依赖于您的 SDK npm 包(此处名为 your-sdk)的 package.json 后建议您的插件。
file 模式使用 [/\\\\] 以匹配正斜杠和反斜杠路径分隔符,使用 \\. 以使点为字面。在 JSON 中,正则表达式中的每个反斜杠都写两次。
验证您的 marketplace
在您的 shell 中,针对您的 marketplace 目录运行claude plugin validate 以在发布前检查 relevance 块:
relevance 块上的错误和警告,包括这些:
- 将
relevance和relevance.signals下的未知键报告为警告 - 标记不是对象的
relevance值 - 拒绝包含方案、端口或路径的
signals.hosts条目
Validation passed、Validation passed with warnings 或 Validation failed 结尾。
在托管设置中启用建议
用户看不到来自 marketplace 的任何建议,直到管理员在 托管设置 中将其加入允许列表,即使其marketplace.json 声明了 relevance。
要将 marketplace 加入允许列表,请按如下方式编辑您的托管设置:
- 将 marketplace 名称添加到
pluginSuggestionMarketplaces。 - 对于除官方 Anthropic marketplace 之外的任何 marketplace,还要声明 marketplace 源,可以是
extraKnownMarketplaces中该名称的条目,或strictKnownMarketplaces中的条目。
managed-settings.json 从 GitHub 存储库注册组织 marketplace 并启用其建议:
预览用户看到的内容
当插件的relevance 信号在会话期间匹配时,spinner 下方的提示读取:
cwd 信号在会话启动时匹配时,一行通知读取:
/plugin Discover 标签页中,该插件被固定在其他结果上方,带有命名匹配信号的注释,例如 suggested for this directory 或 suggested for terraform commands。
Claude Code 限制建议给定插件的频率:
- 该建议在 spinner 提示和会话启动通知的组合中最多每三个会话出现一次。
- 一旦 spinner 提示和通知总共显示了该插件两次,会话启动通知就停止出现。
- 一旦安装了插件,spinner 提示和会话启动通知都不会重复。
- Discover 标签页在用户首次打开标签页时固定该插件,同时插件的信号匹配。Claude Code 在
~/.claude.json中记录这一点,因此每次用户稍后在该机器上打开/plugin时,该插件都以正常顺序出现。
另请参阅
- 托管 marketplace:运行托管您的插件的 marketplace
- Marketplace 参考:插件条目接受的每个字段
- 从您的 CLI 推荐您的插件:从您自己的 CLI 而不是从 Claude Code 的会话信号提示用户
- 为您的组织管理插件:
extraKnownMarketplaces、strictKnownMarketplaces和其余的插件策略键