Plugin 是分发和安装的单元,它将 Skill 和/或 MCP 服务器打包在一起,方便共享。
- 组合形式:一个插件可以只包含 Skills,只包含 MCP 服务器,或两者兼有。此外,还可以包含生命周期钩子(Lifecycle hooks),在 Codex 运行时的特定阶段执行命令。
目录结构
一个典型的插件目录结构如下
my-plugin/
├── .codex-plugin/
│ └── plugin.json # 唯一必须文件
├── .mcp.json # MCP 服务器配置(可选,位于插件根目录)
├── .app.json # 应用注册(可选)
├── skills/ # 技能目录
│ └── my-skill/
│ └── SKILL.md
├── hooks/ # 生命周期钩子(可选)
├── scripts/ # 脚本(可选)
└── assets/ # 资源(可选)
plugin.json 实例
{
"name": "vue-workflow",
"version": "1.0.0",
"description": "Vue 3 组件开发工作流:组件生成 + API 文档查询",
"skills": "./skills/",
"mcpServers": "./.mcp.json",
"hooks": "./hooks/hooks.json"
}
skills 字段指向技能目录,mcpServers 指向 MCP 配置文件路径(相对于插件根目录解析)。
mcp.json 实例(插件内)
{
"mcpServers": {
"docs-search": {
"command": "npx",
"args": ["-y", "@my-org/docs-mcp-server"],
"env": {
"DOCS_API_KEY": "${DOCS_API_KEY}"
}
}
}
}
打包与分发
使用内置的 @plugin-creator 技能可以快速脚手架化一个插件目录。插件可以通过本地 marketplace 或公共插件目录分发:
- 本地 marketplace:
~/.agents/plugins/marketplace.json - 公共插件:发布到 ChatGPT 和 Codex 共享的通用插件目录

