
怎么用 create_basic_plugin.py 生成 marketplace.json 插件条目及 policy 配置【免费下载链接】skillsSkills Catalog for Codex项目地址: https://gitcode.com/GitHub_Trending/skills4/skills当你给 Codex 仓库新增一个本地插件并希望它出现在 Codex UI 的插件排序里时光创建插件目录不够还要在marketplace.json中登记一个插件条目条目里的policy字段决定插件的可用性和认证时机。skills 仓库中的plugin-creator技能提供了一个脚本create_basic_plugin.py一条命令就能同时生成插件脚手架和 marketplace 条目policy 值也能通过命令行参数直接指定不用手写 JSON。前置条件Python 3 环境仓库中已存在 plugin-creator 技能。README 说明.system目录下的技能在最新版 Codex 中会自动安装本仓库中脚本位于 create_basic_plugin.py完整用法说明在 SKILL.md字段规范在 plugin-json-spec.md。先确认插件名会被规范化成什么脚本接收一个位置参数plugin_name并做如下规范化规则来自 SKILL.md 与脚本实现转为小写下划线、空格、标点统一转为-连续的-折叠为一个例如My Plugin→my-pluginMy--Plugin→my-plugin规范化后的名字长度不能超过 64 个字符且至少要包含一个字母或数字否则会报ValueError。生成的外层目录名和.codex-plugin/plugin.json里的name永远使用同一个规范化后的名字所以跑命令前先用预期写法过一遍这个规则避免目录名和你想的不一样。主路径一条命令生成插件和 marketplace 条目在你的目标仓库根目录执行脚本注释说明从 repo root 运行如技能不在.agents/skills/下则把路径替换为实际位置python3 .agents/skills/plugin-creator/scripts/create_basic_plugin.py my-plugin --with-marketplacemy-plugin替换成你的插件名。这条命令会做两件事在repo-root/plugins/my-plugin/下创建插件脚手架始终生成.codex-plugin/plugin.json内容是全量 schema 结构加[TODO: ...]占位值创建或更新repo-root/.agents/plugins/marketplace.json。如果该文件还不存在脚本会先写入顶层name和interface.displayName两个占位值[TODO: marketplace-name]、[TODO: Marketplace Display Name]以及空的plugins数组再追加新条目如果文件已存在则只在plugins数组末尾追加保留已有的interface.displayName。命令结束时脚本打印实际创建的路径以下按输出格式整理路径以实际插件名为例Created plugin scaffold: /path/to/repo/plugins/my-plugin plugin manifest: /path/to/repo/plugins/my-plugin/.codex-plugin/plugin.json marketplace manifest: /path/to/repo/.agents/plugins/marketplace.json生成的 marketplace 条目形状如下来自 SKILL.md 的规范示例{ name: plugin-name, source: { source: local, path: ./plugins/plugin-name }, policy: { installation: AVAILABLE, authentication: ON_INSTALL }, category: Productivity }其中source.path固定为相对于 marketplace 根的./plugins/plugin-namesource.source固定为local。用参数控制 policy 配置policy 相关的参数及其取值默认值与允许值均来自脚本的 argparse 定义与 plugin-json-spec.md 一致python3 .agents/skills/plugin-creator/scripts/create_basic_plugin.py my-plugin \ --with-marketplace \ --install-policy INSTALLED_BY_DEFAULT \ --auth-policy ON_USE \ --category Productivity--install-policy写入policy.installation可选NOT_AVAILABLE、AVAILABLE、INSTALLED_BY_DEFAULT默认AVAILABLE--auth-policy写入policy.authentication可选ON_INSTALL、ON_USE默认ON_INSTALL--category写入条目顶层category默认Productivity。SKILL.md 的工作流约定是新条目默认使用AVAILABLEON_INSTALL只有明确需要另一种允许值时才覆盖。也就是说大多数情况直接用默认值即可显式传参数只用于确实要改变安装/认证策略的场景。另外两个事实值得注意每个生成的条目都会包含policy.installation、policy.authentication、category三项即使用的是默认值脚本不会生成policy.products字段。规范文档把它标记为可选的产品门控覆盖项明确说要产品门控时才应包含——脚本没有对应参数所以如有此需求需要在生成后手工编辑marketplace.json。可选分支home-local 插件如果插件不是放在某个仓库而是放在用户主目录下按 SKILL.md 的约定把home当作根python3 .agents/skills/plugin-creator/scripts/create_basic_plugin.py my-plugin \ --path ~/plugins \ --marketplace-path ~/.agents/plugins/marketplace.json \ --with-marketplace--path是插件父目录脚本默认cwd/plugins--marketplace-path是 marketplace.json 的位置脚本默认cwd/.agents/plugins/marketplace.json。规范文档说明无论仓库还是主目录 marketplace条目里的./plugins/plugin-name都相对 marketplace 根解析即~/.agents/plugins/marketplace.json下的./plugins/my-plugin指向~/plugins/my-plugin所以--path和--marketplace-path要配对使用。其他可选参数用于顺带创建配套目录和占位文件只在需要时用--with-skills、--with-hooks、--with-scripts、--with-assets分别创建同名目录--with-mcp创建.mcp.json占位--with-apps创建.app.json占位。条目已存在时用 --force 覆盖plugins[]数组的顺序就是 Codex 的渲染顺序脚本默认只在末尾追加不重排已有列表。如果plugins里已存在同名条目脚本不会静默覆盖而是抛出错误Marketplace entry my-plugin already exists in /path/to/repo/.agents/plugins/marketplace.json. Use --force to overwrite that entry.此时确认要替换该条目后在命令上加--force重新执行。SKILL.md 的提醒是--force只在你有意替换同名已有条目时使用同样若目标路径下已存在要写入的文件如plugin.json已存在不带--force也会报FileExistsError加--force才会覆盖。结果验证按以下顺序核对依据均为文档与脚本中的实际输出看脚本打印的三行路径scaffold 目录、plugin.json路径、marketplace 路径是否与你预期的位置一致如果插件名被规范化过会额外打印一行Note: Normalized plugin name from 原始名 to 规范化名.打开生成的repo-root/.agents/plugins/marketplace.json确认新条目追加在plugins数组末尾且name与插件目录名、plugin.json的name一致source.path为./plugins/plugin-name检查policy三项installation与authentication是否为你传入或默认的值category是否为你传入的值如果是全新 marketplace 文件顶层name和interface.displayName是[TODO: ...]占位值这是脚本按规范故意留下的种子值需要后续手工替换为真实名称——displayName只属于顶层interface对象不要写进单个plugins[]条目里。另外记得回到plugins/plugin-name/.codex-plugin/plugin.json替换其中的[TODO: ...]占位值SKILL.md 要求在这些值被明确填写之前保持占位状态不要让脚手架占位值直接参与发布。限制说明本仓库 README 顶部标注该仓库已 deprecated当前 Codex 技能与插件示例以 OpenAI Plugins 仓库为准本文命令与字段行为以仓库内 plugin-creator 文档和脚本为准跨仓库使用时请先核对对应版本脚本生成的是带占位符的脚手架manifest 的业务内容描述、作者、资产路径等仍需人工填写脚本不替代发布前检查不改变plugins[]已有顺序脚本只追加或按--force原位替换需要重排时手工编辑marketplace.json。【免费下载链接】skillsSkills Catalog for Codex项目地址: https://gitcode.com/GitHub_Trending/skills4/skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考