今天在 GitHub Trending 上看到一个有意思的项目:openai/plugins,这是 OpenAI 官方维护的 Codex 插件示例仓库,展示了如何通过标准化插件系统扩展 AI 编程助手的能力边界。
一、项目概述
OpenAI 的 plugins 仓库是一个精心策划的 Codex 插件示例集合,旨在帮助开发者理解和构建自己的 Codex 插件。每个插件遵循统一的目录结构,包含必需的 .codex-plugin/plugin.json 清单文件,以及可选的技能模块、应用配置、MCP 服务、命令钩子等扩展组件。
核心价值:
- 标准化插件架构:通过
plugin.jsonmanifest 定义插件元数据、入口点、依赖关系 - 丰富的示例生态:涵盖设计工具集成(Figma)、知识管理(Notion)、多平台应用构建(iOS/macOS/Web)、部署服务(Netlify)等场景
- 技能与 MCP 融合:支持 skills 技能包、MCP (Model Context Protocol) 服务、命令行工具等多种扩展方式
代表性插件一览:
| 插件 | 功能场景 |
|---|---|
figma | 设计转代码、Code to Canvas、设计系统规则 |
notion | 项目规划、研究笔记、会议记录、知识捕获 |
build-ios-apps | SwiftUI 开发、重构、性能优化、调试 |
build-macos-apps | macOS SwiftUI/AppKit 工作流、打包指导 |
build-web-apps | 部署、UI、支付、数据库集成 |
expo | React Native 开发、SDK 升级、EAS 工作流 |
netlify | 静态站点部署与持续集成 |
remotion | 视频编程与动态内容生成 |
google-slides | 演示文稿自动化 |
二、技术原理
2.1 插件架构设计
Codex 插件系统采用模块化架构,核心概念是 manifest 驱动的插件发现与加载:
plugins/
└── <plugin-name>/
├── .codex-plugin/
│ └── plugin.json # 必需:插件清单
├── skills/ # 可选:技能模块
├── .app.json # 可选:应用配置
├── .mcp.json # 可选:MCP 服务定义
├── agents/ # 可选:专用 Agent 配置
├── commands/ # 可选:CLI 命令扩展
├── hooks.json # 可选:生命周期钩子
└── assets/ # 可选:静态资源
Manifest 结构示例:
{
"name": "use_figma",
"version": "1.0.0",
"description": "Figma 设计工具集成插件",
"entry_point": "skills/index.js",
"dependencies": {
"figma-api": "^2.0.0"
},
"provides": {
"skills": ["use_figma", "code_to_canvas"],
"commands": ["figma-sync"],
"hooks": ["on_file_save"]
}
}
2.2 技能系统 (Skills)
Skills 是插件的核心能力单元,封装特定领域的工作流:
- 声明式定义:通过
.md文件描述技能用途、触发条件、执行步骤 - 工具绑定:关联 Python/Node.js 脚本执行具体任务
- 上下文感知:基于对话历史、文件状态动态激活
2.3 MCP 服务集成
MCP (Model Context Protocol) 允许插件暴露结构化 API 供 Codex 调用:
// .mcp.json
{
"server": {
"command": "node",
"args": ["mcp-server.js"],
"env": {
"FIGMA_TOKEN": "${FIGMA_ACCESS_TOKEN}"
}
},
"tools": [
{
"name": "get_design_tokens",
"description": "从 Figma 文件提取设计令牌",
"input_schema": {
"type": "object",
"properties": {
"file_key": { "type": "string" }
}
}
}
]
}
2.4 生命周期钩子
通过 hooks.json 注册事件回调:
{
"hooks": [
{
"event": "on_file_save",
"handler": "scripts/auto_commit.py",
"filter": { "extension": ".swift" }
}
]
}
三、安装与快速开始
3.1 环境要求
- Node.js 18+ 或 Python 3.9+
- Codex CLI 已安装并配置
- Git(用于克隆仓库)
3.2 安装步骤
克隆仓库:
git clone https://github.com/openai/plugins.git
cd plugins
安装插件到 Codex:
# 方式一:符号链接(开发模式)
ln -s $(pwd)/plugins/figma ~/.codex/plugins/use_figma
# 方式二:通过 Codex CLI 安装
codex plugin install ./plugins/build-web-apps
验证安装:
codex plugin list
# Output:
# - use_figma (v1.0.0) - Figma 设计工具集成
# - build-web-apps (v1.0.0) - Web 应用构建助手
3.3 最简运行示例
以 build-ios-apps 插件为例:
# 在 iOS 项目目录中启动 Codex
cd ~/MyiOSApp
codex chat --plugin build-ios-apps
# 交互示例
> 帮我重构 ContentView,使用 MVVM 架构
[Codex] 正在分析项目结构...
[Codex] 已生成 MVVM 重构方案,包含以下文件:
- ViewModels/ContentViewModel.swift
- Views/ContentView.swift (已更新)
- Models/...
四、使用方法与实战
4.1 基础用法
启用特定插件:
codex chat --plugin figma --plugin notion
查看插件提供的技能:
codex skill list --plugin figma
# Output:
# - use_figma: 读取 Figma 设计稿并生成代码
# - code_to_canvas: 将代码同步到 Figma 画布
# - design_system_rules: 应用设计系统约束
4.2 进阶用法
组合多个插件工作流:
# 设计 → 开发 → 部署 全流程
codex chat \
--plugin figma \
--plugin build-web-apps \
--plugin netlify
# 对话示例
> 从 Figma 文件 ABC123 生成 React 组件,部署到 Netlify
[Codex] 正在从 Figma 提取设计...
[Codex] 已生成 src/components/Header.tsx
[Codex] 已配置 netlify.toml
[Codex] 已触发预览部署: https://preview--myapp.netlify.app
4.3 实际项目示例
场景:使用 Notion 插件管理项目文档
# 初始化项目知识库
codex exec notion.init --workspace MyProject
# 同步会议记录到 Notion
codex exec notion.sync_meeting \
--meeting-notes ./docs/meeting-2026-06-08.md \
--database-id "TASKS_DB"
# 从 Notion 拉取任务列表生成代码骨架
> 根据我的 Notion 任务列表生成项目脚手架
[Codex] 已读取 12 个任务项...
[Codex] 已生成 src/features/ 目录结构
五、常见问题与解决方案
Q1: 插件安装后无法识别
原因:manifest 格式错误或路径配置问题
解决:
# 验证 manifest 格式
codex plugin validate ./plugins/my-plugin
# 检查日志
codex plugin logs --plugin my-plugin
Q2: MCP 服务连接失败
原因:环境变量未配置或服务启动失败
解决:
# 检查 MCP 服务状态
codex mcp status --plugin figma
# 手动启动调试
MCP_DEBUG=1 codex mcp start --plugin figma
Q3: 技能执行超时
原因:脚本执行时间过长或依赖缺失
解决:
# 增加超时时间(配置文件)
# ~/.codex/config.json
{
"skill_timeout": 60000 // 60秒
}
# 安装缺失依赖
cd plugins/build-web-apps
npm install
Q4: 多插件冲突
原因:不同插件定义了相同的命令或钩子
解决:
# 查看命令来源
codex command which build
# 禁用特定插件
codex plugin disable build-macos-apps
六、总结
OpenAI 的 plugins 仓库为 AI 编程助手的扩展性提供了标准化的解决方案。通过 manifest 驱动的插件架构、技能系统、MCP 服务集成和生命周期钩子,开发者可以构建高度定制化的开发工作流。无论是设计协作(Figma)、知识管理(Notion)还是全栈应用构建,这些示例插件展示了 Codex 从"代码助手"进化为"项目伙伴"的可能性。对于希望提升开发效率、打造专属 AI 工作流的团队来说,这是一个值得深入研究和实践的宝藏仓库。