作者:互联网 时间: 2026-07-29 08:30:11
今天的话题,是 OpenAI Codex 与 Claude Code 的插件。
可以把 Claude Code 或者 Codex 想象成一个助手。它起初只能完成读代码、改代码、跑命令等基础工作;安装工具包(插件)后,这个助手便能掌握新的技能。
例如:
一个或多个技能、子 agent、自动化钩子及外部工具集成(MCP),可以被整合成一个可安装的能力包,这就是 Claude Code 的插件。安装后,只需一条命令,Claude 的能力便能得到扩展。
插件并非单一功能,而是一个可以容纳多种组件的文件夹:
团队专属开发助手,可以由一个通用 Claude Code 组合这些组件后得到。
Claude Code 提供两种扩展方式:
方式一:项目内 .claude/ 配置
直接在项目中创建一个 .claude/ 目录,用于容纳 agents、hooks、skills。适用情况:
方式二:插件(Plugin)
将能力打包成独立目录,并带有 plugin.json 描述文件,具备更新、安装与分享能力。适用情况:
官方建议先在公司项目中使用 .claude/ 进行快速迭代,确认有效以后再封装为插件。
很多人拿不准使用插件的时机,其实判断标准非常简单:
| 场景 | 用 .claude/ 配置 | 用插件 |
|---|---|---|
| 只供当前项目使用 | ✅ | 没必要 |
| 个人尝鲜 | ✅ | 没必要 |
| 希望在多个项目复用 | ❌ | ✅ |
| 希望分享给团队 | ❌ | ✅ |
| 需要版本管理和自动更新 | ❌ | ✅ |
| 准备发布到社区市场 | ❌ | ✅ |
可以简单记为:
.claude/;了解「是什么」和「什么时候用」以后,接下来直接制作一个最简插件。
mkdir my-first-plugin
该目录就是未来的插件根目录,所有插件文件都存放在这里。
创建 .claude-plugin/plugin.json:
mkdir -p my-first-plugin/.claude-plugin
写入:
{"name": "my-first-plugin","description": "一个最简的问候插件","version": "1.0.0","author": {"name": "Your Name"}}
name 它既是插件的唯一标识,也是技能使用的命名空间。
mkdir -p my-first-plugin/skills/hello
在 my-first-plugin/skills/hello/SKILL.md 中写入:
description: 向用户热情地打招呼用温暖、热情的语气问候用户,并问他今天需要什么帮助。
告诉 Claude 技能要完成什么的自然语言指令,正是 Skill 的核心。
claude --plugin-dir ./my-first-plugin
输入以下内容前,先进入 Claude Code:
/my-first-plugin:hello
插件是否跑通,可以用 Claude 有没有热情回应来判断。
把 SKILL.md 修改为:
description: 用名字向用户打招呼用温暖、热情的语气问候用户 "$ARGUMENTS",并问他今天需要什么帮助。
然后运行:
/my-first-plugin:hello Alex
随后 Claude 会称呼你的名字并回应。
plugin.json 必须放在 .claude-plugin/ 下;skills/、agents/、hooks/ 等目录应放在插件根目录,不要放进 .claude-plugin/ 中;/reload-plugins 无需离开 Claude Code,也能以此完成重新加载。类似的插件系统也受到 OpenAI 的 Codex CLI 支持;它与 Claude Code 的设计思路相近:同一个 SKILL.md + plugin.json 方式,只是目录名称和调用方法稍有区别。
有一点让 Codex 操作更省事:内置了一个 @plugin-creator 技能,插件骨架可以让它直接生成。下面改用 @plugin-creator 创建同样的「hello」问候插件,然后与手动修改得到的文件进行对比。
@plugin-creator 生成codex@plugin-creator
根据提示输入插件名,例如 my-codex-plugin。Codex 将自动生成 .codex-plugin/plugin.json 和 skills/ 目录。
plugin.json 修改为 hello 插件{"name": "my-codex-plugin","description": "一个最简的问候插件","version": "1.0.0","author": {"name": "Your Name"}}
在生成的 skills/hello/SKILL.md 里写:
description: 向用户热情地打招呼用温暖、热情的语气问候用户,并问他今天需要什么帮助。
在 Codex 本地市场中加入插件目录:
codex plugin marketplace add ./my-codex-plugin
进入 Codex 后输入:
$hello
如果看到 Codex 热情地回应你,说明插件已经跑通。
把 SKILL.md 修改为:
description: 用名字向用户打招呼用温暖、热情的语气问候用户 "$ARGUMENTS",并问他今天需要什么帮助。
然后运行:
$hello Alex
Codex 就会称呼你的名字回应。
| 项目 | Claude Code | Codex |
|---|---|---|
| 描述文件目录 | .claude-plugin/plugin.json | .codex-plugin/plugin.json |
| 创建方式 | 手动 mkdir + 编写文件 | @plugin-creator 生成骨架 |
| 调用 skill | /plugin-name:skill-name | $skill-name |
| 本地加载 | claude --plugin-dir ./my-plugin | codex plugin marketplace add ./my-plugin |
.codex-plugin/ 不要混淆目录与 .claude-plugin/ ;$hello;/plugins 查看状态)。下一篇将全面介绍插件结构,说明 skills、agents、hooks、MCP、LSP、monitors 各自是什么以及何时使用。理解这些内容后,你就能按照自己的工作流设计插件,不再只是照抄文档示例。