Build plugins
Build plugins
Create and test reusable capabilities for ChatGPT and Codex
To build or submit a plugin, use the complete builder documentation on developers.openai.com.
This page provides a brief introduction. A plugin is an installable package that can include skills, an MCP server, or both. An MCP server can also return optional UI.
ChatGPT and Codex share one universal plugin directory. Publish a public plugin once to make the same listing discoverable from supported surfaces in both products. During development, use a local marketplace to test the package before submitting it to the universal directory.
For workspace distribution through GitHub, see Plugin management.
Start with a skill when you are still iterating on one personal workflow. Build a plugin when you want to share that workflow, package related skills, connect to an external service, or distribute a stable capability to a team.
Create a plugin with @plugin-creator
For the fastest setup, use the built-in @plugin-creator skill in ChatGPT Work
mode or $plugin-creator in Codex.
@plugin-creator Create a plugin named meeting-follow-up.
Include a skill that turns meeting notes into decisions, owners, and next steps.
Add it to a personal marketplace so I can test it locally.The skill creates a supported .codex-plugin/plugin.json compatibility
manifest, organizes the plugin folder, and can add the plugin to a local
marketplace. This scaffold differs from the portable root plugin.json format
used in the manual example. See the scaffold layout
for optional files and directories.
- Review
.codex-plugin/plugin.json. - Check each bundled skill under
skills/against the instruction-following guidance. - Refresh ChatGPT or Codex and install the plugin from its local marketplace source.
- Test the plugin in a new conversation with representative requests.
If the plugin includes an MCP server, first build and test that server, then
give @plugin-creator the registered connection details. Follow the complete
MCP server workflow
for tools, authentication, deployment, and testing.
Create a skills-only plugin manually
A minimal portable Agent Plugins package contains a root manifest and at least one skill:
meeting-follow-up/
├── plugin.json
└── skills/
└── meeting-follow-up/
└── SKILL.mdCreate plugin.json at the plugin root:
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "meeting-follow-up",
"version": "1.0.0",
"description": "Turn meeting notes into decisions and next steps"
}Portable packages discover skills in skills/ automatically. Add
skills/meeting-follow-up/SKILL.md:
---
name: meeting-follow-up
description: Extract decisions, owners, and next steps from meeting notes.
---
Review the meeting notes. Return:
1. Decisions
2. Action items with owners
3. Open questionsUse a stable plugin name in kebab case. Keep the skill description specific enough for ChatGPT and Codex to recognize when the workflow applies.
Use @plugin-creator to add the folder to a local marketplace, then install and
test it before sharing it.
Continue with the builder documentation
For complete builder documentation, use the Plugins documentation. It covers:
- Plugin architecture
- Building skills
- Building an MCP server
- Adding optional UI
- Packaging a plugin
- Testing a plugin
- Submitting and publishing
To browse, install, enable, or remove plugins, see Use plugins.