今天在 GitHub Trending 上看到一个有意思的项目:openai/plugins,这是 OpenAI 官方维护的 Codex 插件示例仓库,展示了如何通过标准化插件系统扩展 AI 编程助手的能力边界。

一、项目概述

OpenAI 的 plugins 仓库是一个精心策划的 Codex 插件示例集合,旨在帮助开发者理解和构建自己的 Codex 插件。每个插件遵循统一的目录结构,包含必需的 .codex-plugin/plugin.json 清单文件,以及可选的技能模块、应用配置、MCP 服务、命令钩子等扩展组件。

核心价值:

  • 标准化插件架构:通过 plugin.json manifest 定义插件元数据、入口点、依赖关系
  • 丰富的示例生态:涵盖设计工具集成(Figma)、知识管理(Notion)、多平台应用构建(iOS/macOS/Web)、部署服务(Netlify)等场景
  • 技能与 MCP 融合:支持 skills 技能包、MCP (Model Context Protocol) 服务、命令行工具等多种扩展方式

代表性插件一览:

插件功能场景
figma设计转代码、Code to Canvas、设计系统规则
notion项目规划、研究笔记、会议记录、知识捕获
build-ios-appsSwiftUI 开发、重构、性能优化、调试
build-macos-appsmacOS SwiftUI/AppKit 工作流、打包指导
build-web-apps部署、UI、支付、数据库集成
expoReact 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 工作流的团队来说,这是一个值得深入研究和实践的宝藏仓库。