SpyBara
Go Premium

Documentation 2026-09-24 23:02 UTC to 2026-09-25 23:02 UTC

12 files changed +1,007 −172. View all changes and history on the product overview
2026
Wed 30 23:01 Tue 29 22:59 Sun 27 23:59 Fri 25 23:02 Thu 24 23:02 Wed 23 23:58 Tue 22 23:00 Sat 19 23:02 Fri 18 22:59 Thu 17 10:05 Wed 16 20:58 Tue 15 21:01 Mon 14 20:57 Sun 13 21:58 Fri 11 20:00 Thu 10 16:58 Wed 9 21:01 Fri 4 19:59 Thu 3 23:00 Wed 2 22:59 Tue 1 07:57
Details

132 href: "/codex/enterprise/gpts-and-sharing",132 href: "/codex/enterprise/gpts-and-sharing",

133 icon: "userLock",133 icon: "userLock",

134 },134 },

135 {

136 title: "Migrate custom GPTs to plugins",

137 description:

138 "Plan your workspace transition, migrate individual GPTs or eligible batches, and test and share replacement plugins.",

139 href: "/codex/migrate-custom-gpts",

140 icon: "tools",

141 },

135 {142 {

136 title: "Managed configuration",143 title: "Managed configuration",

137 description:144 description:

app/features.md +7 −0

Details

40 href: "/codex/sites",40 href: "/codex/sites",

41 icon: "workspace",41 icon: "workspace",

42 },42 },

43 {

44 title: "Build plugins",

45 description:

46 "Create and refine reusable workflows in a conversation with ChatGPT.",

47 href: "/codex/build-plugins",

48 icon: "plugin",

49 },

43 {50 {

44 title: "Visualizations",51 title: "Visualizations",

45 description:52 description:

build-plugins.md +175 −84

Details

2 2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5To build or submit a plugin, use the complete5Turn a workflow you repeat into a plugin you can use again in ChatGPT. Describe the task in a conversation, add the instructions and reference material it needs, then test and refine the result.

6[builder documentation on developers.openai.com](https://developers.openai.com/plugins).

7 6 

7**Custom GPTs are moving to plugins**

8 8 

9Custom GPTs in ChatGPT Enterprise are being retired. If you use a custom GPT, follow [Moving your custom GPT workflows to plugins](https://learn.chatgpt.com/docs/migrate-custom-gpts) to migrate, test, and share its replacement. Use the steps below to create a new plugin from scratch or edit an existing one.

9 10 

10 <ButtonLink href="/plugins" color="primary" variant="solid" size="lg">11## What is a plugin?

11 Build and submit a plugin

12 </ButtonLink>

13 12 

13A plugin is a reusable package that helps ChatGPT do a task. It can include apps, skills, or both.

14 14 

15 15 

16This page provides a brief introduction. A plugin is an installable package

17that can include skills, an MCP server, or both. An MCP server can also return

18optional UI.

19 16 

20ChatGPT and Codex share one universal plugin directory. Publish a public plugin17> Illustration: A plugin can contain apps, skills, or both. Apps connect your tools. Skills guide the work.

21once to make the same listing discoverable from supported surfaces in both

22products. During development, use a local marketplace to test the package

23before submitting it to the universal directory.

24 18 

25For workspace distribution through GitHub, see

26[Plugin management](https://learn.chatgpt.com/docs/enterprise/plugin-management).

27 19 

28Start with a skill when you are still iterating on one personal workflow.

29Build a plugin when you want to share that workflow, package related skills,

30connect to an external service, or distribute a stable capability to a team.

31 20 

32## Create a plugin with `@plugin-creator`21{/* prettier-ignore */}

33 22 

34For the fastest setup, use the built-in `@plugin-creator` skill in ChatGPT Work23[Apps](https://help.openai.com/en/articles/11487775) connect ChatGPT to other services. [Skills](https://learn.chatgpt.com/docs/skills-and-plugins#use-skills-for-repeatable-work) provide instructions for a task, such as summarizing a document in a consistent format.

35mode or `$plugin-creator` in Codex.

36 24 

37 25 

26- **Find a document (app):** Search a connected service for a file you have access to.

27- **Summarize a document (skill):** Turn a document you provide into an overview, key points, and open questions.

28- **Use a template (skill):** Organize information you provide into a standard format.

29- **Compare documents (app + skill):** Retrieve two documents you can access through an allowed app, then compare them using your checklist.

38 30 

31Plugins may be named after a service, like Google Drive, or a workflow, like Document Summary. Check the plugin’s details to see what it includes.

39 32 

40> Illustration: Plugin creator skill in ChatGPT33You can create a plugin by describing what you need in ChatGPT. The steps in this guide do not require code.

41 34 

35## Before you start

42 36 

37These steps cover ChatGPT on the web when plugin creation and editing are enabled in your workspace. You can create and edit through a conversation in Chat or Work.

43 38 

39Have a specific task in mind, an example of a good result, and any reference files the plugin should use. If it needs an app, check that the app is allowed in your workspace and complete any required connection setup. A plugin does not give you additional access to that app's files, data, or actions.

44 40 

45Describe the outcome, the skills or MCP server to include, and whether you want41**Permissions you need**

46a local marketplace entry for testing. For example:42 

43You need **Use plugins** permission, and Plugin Creator must be available in your workspace. To edit an existing plugin, you also need edit access. A workspace plugin’s creator and workspace owners or admins can edit it.

44 

45## Using a plugin

46 

47Use an installed plugin in Chat or Work when you want ChatGPT to follow its workflow or use its apps. Select it with an **@ mention** to choose the plugin for your task.

48 

491. Start a new conversation in ChatGPT.

502. Type **@** in the message box, then begin typing the plugin’s name.

513. Select the plugin under **Plugins** in the menu.

524. Describe what you need, add any relevant files, and send your message.

53 

54 

55 

56> Illustration: ChatGPT Work’s @ menu showing FAQ Practice Coach under Plugins and a separate Skills section after entering @faq.

57 

58 

59 

60_The @ menu in ChatGPT Work shows matching plugins and skills. Select a plugin under Plugins._

61 

62If the plugin needs an app connection, follow the prompts to connect it. To find and install a plugin, see [Plugins](https://learn.chatgpt.com/docs/plugins).

63 

64 

65 

66 

67## Create a plugin from scratch

68 

69Start with a task you do regularly and a clear example of the result you want. Plugin Creator helps turn that description into a reusable workflow through a conversation: you can explain the steps, add a template or reference file, and refine the instructions as you go. The written example below uses a Document Summary plugin that turns a document into an overview, key points, and open questions. You can adapt the same steps to another task.

70 

71 

72 

73[A plugin creation example showing an initial request and Plugin Creator’s first response, at twice the original speed.](https://cdn.openai.com/devhub/docs/codex/build-plugins/create-plugin-2x-hq.webm)

74 

75 

76 

77This recording shows an initial plugin request and Plugin Creator’s first response. The written examples below use a separate workflow.

78 

79### Step 1: Mention Plugin Creator

80 

81Start a conversation in Chat or ChatGPT Work. Type **@**, search for **Plugin Creator**, and select it from the menu.

82 

83### Step 2: Describe the workflow

84 

85A good creation prompt gives Plugin Creator a practical brief:

86 

87- **Purpose:** Name the recurring task and when you’ll use the plugin.

88- **Inputs:** Describe the information you’ll provide and how it should use each attached file.

89- **Output:** Say who the result is for, and specify its format, length, and tone. Include an example if you have one.

90- **Rules:** Explain any required steps, what needs your review, and how to handle missing information—for example, ask a question or mark a field “not specified.”

91 

92Ask for instructions you can reuse with new inputs. Keep the details of an individual task, such as a particular document, labeled as an example for testing.

93 

94 

95 

96**Create a plugin from scratch:**

47 97 

48```text98```text

49@plugin-creator Create a plugin named meeting-follow-up.99Create a plugin called Document Summary. Summarize documents I provide in three sections: Overview, Key points, and Open questions. Use the attached template for the format. Base the summary only on the document. If requested information is missing, mark it as not provided. Do not edit the source document.

50Include a skill that turns meeting notes into decisions, owners, and next steps.

51Add it to a personal marketplace so I can test it locally.

52```100```

53 101 

54The skill creates a supported `.codex-plugin/plugin.json` compatibility102### Step 3: Add context and refine the instructions

55manifest, organizes the plugin folder, and can add the plugin to a local103 

56marketplace. This scaffold differs from the portable root `plugin.json` format104Attach a template, example, or reference file the plugin should use. Answer Plugin Creator's questions and ask for changes until the instructions match the task. If the workflow needs an app, explain which part of the task depends on it.

57used in the manual example. See the [scaffold layout](https://developers.openai.com/plugins/build/plugins#plugin-creator-output)105 

58for optional files and directories.106Keep the first version focused on one workflow. A clear name and description will help you and your teammates recognize when to use it.

107 

108### Step 4: Review and finish creating the plugin

109 

110Follow Plugin Creator's prompts to finish. Review the plugin's name, description, instructions, and reference material before relying on it.

111 

112New workspace plugins start private so you can test them before sharing.

113 

114## Include apps in your plugin

115 

116Apps connect ChatGPT to other services, such as file storage or project management tools. Depending on the app and its enabled features, ChatGPT can search or read information and may be able to take actions, such as creating a document or updating a record. Skills describe how to do the work; apps provide the information or actions it needs.

59 117 

118Apps are optional. Document Summary can work with text you paste or a file you attach. Include an app if you want the workflow to retrieve a document from another service or perform a supported action there.

60 119 

120### Find apps available to you

61 121 

122Browse in the workspace where you plan to create and use the plugin:

62 123 

63> Illustration: Invoking the plugin creator skill1241. Open **Plugins** in ChatGPT. Search for the service you want to use, or browse the tab with your workspace’s name.

1252. Open a plugin’s details and review its **Apps** section. A plugin may be named after the service it connects to, but some plugins contain only skills.

1263. Check the included app’s capabilities and connection status. Follow **Connect** prompts when required. If it shows **Disabled by admin** or **Admin approval required**, ask your workspace admin about access.

64 127 

128If your account shows **Apps** instead of **Plugins**, browse available connections there. Seeing a plugin in the directory does not mean every included app is ready to use.

65 129 

130Note the app’s name and what it supports, then tell Plugin Creator how you want to use it. For more on browsing and setup, see [Plugins](https://learn.chatgpt.com/docs/plugins#use-and-install-plugins).

66 131 

132### Add an app to your workflow

67 133 

68After it finishes:134When creating or editing a plugin:

69 135 

701. Review `.codex-plugin/plugin.json`.1361. **Choose an available app.** Use an app your workspace allows and that you have permission to use. If it is unavailable, ask your workspace admin about access.

712. Check each bundled skill under `skills/` against the1372. **Explain its job.** Tell Plugin Creator which app to include, what information to read or action to take, and what you want to review first.

72 [instruction-following guidance](https://developers.openai.com/plugins/build/skills#review-instruction-following).1383. **Connect and check.** Follow any setup prompts and review the requested permissions. You may need to sign in; some apps use an administrator-managed connection. Review the finished plugin’s apps, then test with information you can already access.

733. Refresh ChatGPT or Codex and install the plugin from its local marketplace

74 source.

754. Test the plugin in a new conversation with representative requests.

76 139 

77If the plugin includes an MCP server, first build and test that server, then140In the example below, replace **[app name]** with an app your workspace allows.

78give `@plugin-creator` the registered connection details. Follow the complete

79[MCP server workflow](https://developers.openai.com/plugins/build/mcp-server)

80for tools, authentication, deployment, and testing.

81 141 

82## Create a skills-only plugin manually

83 142 

84A minimal portable Agent Plugins package contains a root manifest and at least143 

85one skill:144**Include an app:**

86 145 

87```text146```text

88meeting-follow-up/147Include [app name] in Document Summary, if it’s available to me. Read the document I link to and draft the Overview, Key points, and Open questions in chat. Keep the rule about marking missing information. Do not create or edit files in the app. If you cannot access the document, ask me to attach it.

89├── plugin.json

90└── skills/

91 └── meeting-follow-up/

92 └── SKILL.md

93```148```

94 149 

95Create `plugin.json` at the plugin root:150Including an app does not grant new access. Your workspace’s app and action settings, connection permissions, and access in the source service still apply. Teammates who use the plugin also need the required app access and connection setup.

151 

152## Test your plugin

153 

154Install the plugin if prompted, then start a new conversation. Select it with an **@ mention** and give it a familiar task. For Document Summary, provide a document you know well and ask for a summary.

155 

156Check that the result follows your format, uses the right reference material, and identifies missing information. Then try a document with missing or unclear details and check that the summary identifies those gaps.

157 

158If the plugin uses an app, check that it can access the information or actions the task requires. If you plan to use it in both Chat and Work, test it in each. Available tools and apps can differ.

159 

160Keep a few example prompts to reuse after making changes.

161 

162 

163 

164> Illustration: Create a plugin, test it with a real example, edit its instructions or files, and test again. Return to editing and retesting as needed, then share after reviewing the results.

165 

166 

167 

168_Test before sharing, and repeat your checks after an update._

169 

170## Edit an existing plugin

171 

172### Step 1: Open the plugin for editing

173 

174Open **Plugins**, select the plugin you want to change, and choose **Edit Plugin**. This opens a conversation for updating it.

175 

176### Step 2: Describe what should change

177 

178A good editing prompt names the behavior or reference file to update, describes the desired change, and identifies what to preserve. If a result missed the mark, include that result and explain what you expected. Ask for a sample using familiar inputs so you can compare before and after.

179 

180Make clear whether you want to update the plugin’s reusable instructions or revise a single result. When replacing a reference file, name the old file and explain how to use the new one.

181 

182For example, to change the output:

96 183 

97```json184 

98{185 

99 "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",186**Update the output:**

100 "name": "meeting-follow-up",187 

101 "version": "1.0.0",188```text

102 "description": "Turn meeting notes into decisions and next steps"189Update Document Summary so Key points appears in a table with Point and Source columns. In Source, identify the supporting passage or section when available. Keep Overview, Open questions, and the rule about marking missing information. Show me a sample result from this document.

103}

104```190```

105 191 

106Portable packages discover skills in `skills/` automatically. Add192To replace reference material:

107`skills/meeting-follow-up/SKILL.md`:193 

108 194 

109```md

110name: meeting-follow-up

111description: Extract decisions, owners, and next steps from meeting notes.

112 195 

113Review the meeting notes. Return:196**Replace reference material:**

114 197 

1151. Decisions198```text

1162. Action items with owners199Replace the existing summary template with the attached revised template. Keep the other reference files and instructions unchanged. Tell me what you changed, then help me test it with this document.

1173. Open questions

118```200```

119 201 

120Use a stable plugin name in kebab case. Keep the skill description specific202### Step 3: Review the update

121enough for ChatGPT and Codex to recognize when the workflow applies.

122 203 

123Use `@plugin-creator` to add the folder to a local marketplace, then install and204Review the revised instructions and files, then follow the prompts to complete the update. Check that the requested changes are present and that information you still need remains intact.

124test it before sharing it.

125 205 

126## Continue with the builder documentation206### Step 4: Test again

207 

208Open a new conversation and repeat your saved test prompts. Check the updated behavior and the parts of the workflow you intended to preserve. If other people use the plugin, ask a teammate to try a representative task before the wider team relies on the change.

209 

210## Share the plugin with your team

211 

212When the plugin is ready, use its sharing settings to choose the intended people or groups. Sharing requires **Share plugins** permission. Adding it to the workspace directory requires **Publish plugins to workspace** permission.

127 213 

128For complete builder documentation, use the214Sharing and installation are separate. Recipients need to install the plugin unless an admin has already installed it for them. If the workflow uses an app, each person also needs the required app access and any account connection the app requires.

129[Plugins documentation](https://developers.openai.com/plugins/). It covers:215 

216Include a sample prompt with the plugin link and let teammates know who maintains it. See [Plugins](https://learn.chatgpt.com/docs/plugins) for more on installation and use.

217 

218## If you cannot create or edit a plugin

219 

220Check that you are in the intended workspace. If the create option or plugin editor is missing, ask your workspace admin to confirm that the experience is available and that you have the access needed for the task.

221 

222If a teammate can open the plugin but cannot use it, check plugin installation, workspace permission to use plugins, and access to required apps separately. Admins can review [Plugin controls](https://learn.chatgpt.com/docs/enterprise/apps-and-connectors).

223 

224 

225 

226 

227## Continue with the builder documentation

130 228 

131- [Plugin architecture](https://developers.openai.com/plugins/concepts/plugins)229For custom integrations or development with plugin files, see [Package your plugin](https://developers.openai.com/plugins/build/plugins). The [developer documentation](https://developers.openai.com/plugins/) covers building skills and MCP servers, testing, and public submission.

132- [Building skills](https://developers.openai.com/plugins/build/skills)

133- [Building an MCP server](https://developers.openai.com/plugins/build/mcp-server)

134- [Adding optional UI](https://developers.openai.com/plugins/build/chatgpt-ui)

135- [Packaging a plugin](https://developers.openai.com/plugins/build/plugins)

136- [Testing a plugin](https://developers.openai.com/plugins/deploy/connect-chatgpt)

137- [Submitting and publishing](https://developers.openai.com/plugins/deploy/submission)

138 230 

139To browse, install, enable, or remove plugins, see [Use231For workspace distribution through GitHub, see [Plugin management](https://learn.chatgpt.com/docs/enterprise/plugin-management).

140plugins](https://learn.chatgpt.com/docs/plugins).

Details

55 55 

56Pick a use case, replace each placeholder with a value from your approved request, and follow the steps in order. Start with a read-only request unless the task is a supported change that already has approval.56Pick a use case, replace each placeholder with a value from your approved request, and follow the steps in order. Start with a read-only request unless the task is a supported change that already has approval.

57 57 

58Use [Migrate custom GPTs in bulk](https://learn.chatgpt.com/docs/migrate-custom-gpts#admin-bulk-migration) to inventory GPTs, migrate eligible batches, and coordinate owner testing and access checks.

59 

58### List workspace roles60### List workspace roles

59 61 

60**Prompt to try**62**Prompt to try**

Details

2 2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5**Moving from custom GPTs to plugins?**

6 

7See [Migrate custom GPTs to plugins](https://learn.chatgpt.com/docs/migrate-custom-gpts) to prepare your workspace, migrate GPTs, and review sharing and access for their replacements.

8 

5## Sharing9## Sharing

6 10 

7Control who can create GPTs and whether they can be shared with specific people, groups, or the entire workspace.11Control who can create GPTs and whether they can be shared with specific people, groups, or the entire workspace.

features.md +7 −0

Details

40 href: "/codex/sites",40 href: "/codex/sites",

41 icon: "workspace",41 icon: "workspace",

42 },42 },

43 {

44 title: "Build plugins",

45 description:

46 "Create and refine reusable workflows in a conversation with ChatGPT.",

47 href: "/codex/build-plugins",

48 icon: "plugin",

49 },

43 {50 {

44 title: "Visualizations",51 title: "Visualizations",

45 description:52 description:

Details

160- Install the plugins most relevant to your work.160- Install the plugins most relevant to your work.

161- To point ChatGPT to a specific tool, type `@` and the plugin name in your prompt.161- To point ChatGPT to a specific tool, type `@` and the plugin name in your prompt.

162 162 

163Learn more about [plugins](https://learn.chatgpt.com/docs/plugins).163Learn more about [plugins](https://learn.chatgpt.com/docs/plugins). To make a workflow reusable,

164[create and edit a plugin](https://learn.chatgpt.com/docs/build-plugins) through a conversation with ChatGPT.

164 165 

165<a id="use-work-mode-efficiently"></a>166<a id="use-work-mode-efficiently"></a>

166 167 

migrate-custom-gpts.md +616 −0 created

Details

1# Moving your custom GPT workflows to plugins

2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 

5Custom GPTs helped you make ChatGPT your own. Plugins build on that work, bringing your instructions and knowledge into workflows that can do more.

6 

7This guide is for ChatGPT Enterprise workspace admins and people migrating GPTs they created. Start with the path that fits your role:

8 

9- **Workspace admins:** [Prepare your workspace](#plan-your-transition), check permissions, and [migrate GPTs in bulk](#admin-bulk-migration).

10- **GPT creators:** [Prepare your GPT](#identify-gpts-that-may-need-extra-attention), then [migrate, test, and share it](#migrate-test-and-share).

11 

12**Using someone else’s GPT?** Ask its creator or a workspace admin to migrate it, then [install the replacement they share with you](#step-3-share-and-verify-access).

13 

14**Create or refine a plugin**

15 

16See [Build plugins](https://learn.chatgpt.com/docs/build-plugins) for guidance on building a new plugin or updating one after migration.

17 

18## Understand the change

19 

20We’re transitioning custom GPTs to plugins. Use the milestones below to plan your migration before custom GPTs are retired.

21 

22A [plugin](https://help.openai.com/en/articles/20001256-plugins-in-chatgpt-and-codex) is a reusable package for a workflow that can include skills, apps, or both. [**Skills**](https://help.openai.com/en/articles/20001066) explain how to do a task, such as writing in your team's style. [**Apps**](https://help.openai.com/en/articles/11487775) connect ChatGPT to other services for information or supported actions.

23 

24 

25 

26> Illustration: A plugin is a package for a workflow. It can include skills, which provide instructions for how to do the work, apps, which connect to tools and information, or both.

27 

28 

29 

30In an enterprise workspace, [your admin](https://help.openai.com/en/articles/11509118) decides which plugins you can use, including access by role where supported. They can make plugins available for you to install or install them automatically for eligible users. Sharing a plugin or publishing it to the workspace requires separate permissions.

31 

32**Your existing permissions still apply**

33 

34Plugins respect your [existing app access](https://help.openai.com/en/articles/20001256-plugins-in-chatgpt-and-codex). For example, signing in to Google Drive through ChatGPT lets its plugin work with documents your account can already access. It doesn’t unlock other files or add Google Drive permissions.

35 

36You may need to [connect your account](https://help.openai.com/en/articles/20001494) or [approve an action](https://help.openai.com/en/articles/20001495). Available features depend on your app access, workspace settings, and where you use ChatGPT.

37 

38Plugins with only skills and reference files need no app connection. For each required app, users need access and any account connection or action permissions the workflow needs. If an optional app is unavailable, other capabilities may still work; capabilities that require an unavailable app cannot.

39 

40<ToggleSection title="Example Plugin Page">

41 

42Here’s an example of a plugin page, showing its app and skills. The **Disabled by admin** label means this example plugin is not available to use in the workspace.

43 

44 

45 

46> Illustration: An example Intuit QuickBooks plugin page, annotated to show its availability, sample requests, description, connected app, and included skills.

47 

48 

49 

50</ToggleSection>

51 

52With a custom GPT, you explicitly [choose the GPT](https://help.openai.com/en/articles/8554407-gpts-in-chatgpt) (by opening it or mentioning it with @ on ChatGPT web), then send it your request.

53 

54With plugins, you can choose an available plugin or skill directly. In ChatGPT, [use an @ mention or open + and select More](https://help.openai.com/en/articles/20001256-plugins-in-chatgpt-and-codex), where supported.

55 

56<figure class="mx-auto w-full max-w-[640px]">

57

58 

59[Select a plugin from the ChatGPT composer](https://cdn.openai.com/devhub/docs/codex/migrate-custom-gpts/invoke-plugin-hq.webm)

60 

61 

62 <figcaption class="text-center">

63 Select an available plugin from the composer, then describe the task you

64 want it to help with.

65 </figcaption>

66</figure>

67 

68You can also describe your task: ChatGPT can [automatically use a relevant installed skill](https://learn.chatgpt.com/docs/build-skills#how-chatgpt-and-codex-use-skills), including a skill packaged in a plugin, when its description matches what you need.

69 

70**Test how your plugin gets selected**

71 

72Automatic skill selection depends on the task and available capabilities; an installed plugin won’t run on every request. After migration, test both explicit selection and a normal task request.

73 

74### What can a plugin do compared with a custom GPT?

75 

76| What you want to do | With a custom GPT | With a plugin |

77| -------------------------- | ------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------- |

78| Reuse instructions | You add instructions to guide the GPT’s responses. | A skill provides reusable instructions that guide how a task is done. |

79| Use team knowledge | You upload reference files as GPT knowledge. | Skills can include reference files. Review the migrated resources and test how they’re used. |

80| Connect to other services | Custom actions connect the GPT to external services. | Apps connect to services and supported actions. GPT custom actions need to be rebuilt separately. |

81| Use tools and create files | You enable available capabilities such as web search, image generation, and data analysis. | Available tools depend on the experience and workspace settings. Test the outputs your team needs. |

82| Start a workflow | You open or explicitly select the GPT. | You can select a plugin or skill. ChatGPT may also use a relevant installed skill automatically. |

83| Share with your team | You share the GPT with an allowed audience. | You share or publish the plugin under workspace permissions. Review access before rollout. |

84 

85<figure id="clip-what-transfers" class="my-8 w-full scroll-mt-32">

86 <h4 class="!mb-4 !mt-0 text-lg">What transfers to a plugin</h4>

87

88 

89[What transfers to a plugin](https://cdn.openai.com/devhub/docs/codex/migrate-custom-gpts/01-what-transfers-hq.mp4)

90 

91 

92 <figcaption

93 id="01-what-transfers-description"

94 class="!mt-4 text-sm text-secondary"

95 >

96 **

97 See what moves into a plugin and what needs rebuilding.

98 **

99

100 

101 See how a GPT’s instructions and reference files become a skill and

102 connected apps remain part of the plugin. Custom actions do not transfer;

103 plan to replace them with a supported app’s read or write actions, or a

104 custom MCP server.

105

106 

107 </figcaption>

108</figure>

109 

110<a id="plan-your-transition"></a>

111 

112## For admins: Prepare your workspace

113 

114Help your team carry its work forward: agree on migration owners, check their permissions, and plan access to the replacements.

115 

116- **Admin notice.** Admins receive an early heads-up and guidance to plan the transition and prepare their teams.

117- **Migration.** GPT creators and workspace admins can migrate published GPTs to plugins.

118- **Custom GPT retirement.** Custom GPTs stop working. Move the workflows you want to keep to plugins and test them before retirement.

119 

120### Choose priority migrations

121 

122Start with GPTs your team relies on most. Agree with their creators on what to keep, who will maintain it, and who needs access.

123 

124- Allow extra time for custom actions, which need to be rebuilt separately.

125- Name an owner for each GPT and record its purpose, audience, instructions, reference files, and integrations.

126- Ask owners to save a few familiar prompts and good results, including one harder case, so they can compare the replacement.

127- Confirm which GPTs are published. Have creators publish needed drafts while GPT creation is still available; public sharing isn’t required.

128 

129<figure id="clip-prioritize-workflows" class="my-8 w-full scroll-mt-32">

130 <h4 class="!mb-4 !mt-0 text-lg">Choose priority workflows</h4>

131

132 

133[Choose priority workflows](https://cdn.openai.com/devhub/docs/codex/migrate-custom-gpts/02-prioritize-workflows-hq.mp4)

134 

135 

136 <figcaption

137 id="02-prioritize-workflows-description"

138 class="!mt-4 text-sm text-secondary"

139 >

140 **

141 Use ownership and recent usage to prioritize your GPT migrations.

142 **

143

144 

145 Identify the GPTs your team still relies on and consider leaving unused

146 workflows behind. Admins with access to the ChatGPT admin plugin can

147 request GPT names, owners, and message counts from the last 30 days to

148 help prioritize.

149

150 

151 </figcaption>

152</figure>

153 

154### Review workspace permissions

155 

156Before migrating, check that everyone has the access they need. Permissions control actions such as using, sharing, or publishing plugins; roles group permissions for similar responsibilities. With [role-based access control (RBAC)](https://help.openai.com/en/articles/11750701), workspace owners assign roles to people or groups.

157 

158Use this table to check access for migration and the replacement plugins.

159 

160| Action | What admins should check |

161| -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

162| Migrate their own custom GPTs to plugins | Enable plugins for the workspace. The person migrating must be the GPT’s creator or a workspace owner or admin, and the GPT must be published. Having access to someone else’s GPT is not enough. |

163| Share newly migrated GPTs (now plugins) with people or groups | Give Share plugins to people who need to share replacements with individuals or groups. People who only use a plugin don’t need this permission. |

164| Publish newly migrated GPTs (now plugins) to the workspace directory | Give Publish plugins to workspace to people who will publish replacements in the workspace plugin directory. This is separate from sharing directly. |

165| Install and use new plugins | Allow Use plugins for the intended users or roles. |

166| Use an included app | Enable required apps for the intended users or roles. Check that their connected accounts can access the needed information. Only supported, allowed actions can run, and required approvals still apply. Plugin installation does not add app or file permissions. |

167 

168**Built-in migration doesn't require upload permissions**

169 

170You do not need to enable **Upload plugins** or **Upload plugins with custom MCP servers** just for the built-in migration. Set any permissions for separately rebuilt integrations according to your workspace's policies.

171 

172For current settings, see [Plugin and app admin controls](https://help.openai.com/en/articles/11509118) and [Skill admin controls](https://help.openai.com/en/articles/20001066).

173 

174### Check installation and app access

175 

176Decide how teammates will get each replacement. Available lets eligible users install a plugin; Installed installs it for eligible users or roles. These settings do not change who the plugin is shared with.

177 

178Review required apps separately: check workspace and role access, account sign-in, and action approvals. Test access with an account that has the same permissions as a typical teammate.

179 

180 

181 

182<a id="admin-bulk-migration"></a>

183 

184 

185 

186#### For workspace admins: Migrate GPTs in bulk

187 

188 

189 

190In ChatGPT Work, type **@** and select [ChatGPT Admin](https://learn.chatgpt.com/docs/enterprise/admin-plugin). Check that its Admin app shows **Connected**. For Codex, use the open or copy button on a prompt below. Review the prompt and selected plugin before sending.

191 

192<a id="1-inventory-and-prioritize"></a>

193<a id="1-choose-the-gpts"></a>

194 

195### 1. Run the GPT report

196 

197 

198 

199**Prompt:**

200 

201```text

202[@ChatGPT Admin](plugin://admin-console@openai-curated-remote) Run the GPT report prioritizing by most recently used GPTs in the last 30 days.

203```

204 

205The report is ordered by recent use and includes owners, usage, migration status, and custom actions.

206 

207 

208 

209#### Optional: Add report details

210 

211 

212 

213 

214 

215**Prompt:**

216 

217```text

218[@ChatGPT Admin](plugin://admin-console@openai-curated-remote) Run the GPT report and include a summary of GPTs that haven’t been migrated.

219```

220 

221 

222 

223**Prompt:**

224 

225```text

226[@ChatGPT Admin](plugin://admin-console@openai-curated-remote) Run the GPT report and include which GPTs have knowledge files attached.

227```

228 

229 

230 

231 

232 

233<a id="2-create-one-migration-tracker"></a>

234 

235### 2. Export and use the results

236 

237Ask for your preferred format, such as **Excel**, **CSV**, or **Google Sheets**. Sort, filter, share, or track migration your way.

238 

239 

240 

241**Prompt:**

242 

243```text

244[@ChatGPT Admin](plugin://admin-console@openai-curated-remote) Run the GPT report and export it as [preferred format].

245```

246 

247<a id="6-help-teams-switch-and-repeat"></a>

248 

249### 3. Schedule a recurring report

250 

251 

252 

253**Prompt:**

254 

255```text

256[@ChatGPT Admin](plugin://admin-console@openai-curated-remote) Run the GPT report for [workspace] every [day] at [time and time zone]. Post the results here.

257```

258 

259[Scheduled tasks](https://learn.chatgpt.com/docs/automations) must be enabled, with the Admin plugin available to the task. Review the schedule and first runs in **Scheduled**.

260 

261<a id="3-migrate-a-small-batch"></a>

262<a id="2-migrate-a-small-batch"></a>

263 

264### 4. Migrate selected GPTs

265 

266Choose GPTs by ID or describe the group, such as all private GPTs. Replacements start private, and originals become read-only.

267 

268<WarningTip title="Sharing settings do not carry over in bulk">

269 

270Bulk migration **does not copy sharing settings**. Record who needs access, then **share each replacement manually** or ask the GPT creator to share it. We expect bulk sharing through the Admin plugin soon.

271 

272</WarningTip>

273 

274 

275 

276**Prompt:**

277 

278```text

279[@ChatGPT Admin](plugin://admin-console@openai-curated-remote) Migrate [GPT IDs or a description of the GPTs] to plugins. Show me the selection and ask for confirmation before migrating.

280```

281 

282<a id="4-test-and-refine"></a>

283<a id="3-have-owners-test"></a>

284<a id="5-share-and-check-access"></a>

285<a id="4-share-and-confirm-access"></a>

286 

287Have owners [test the replacement plugins](#step-2-test-with-familiar-work) and verify access. Custom actions need to be rebuilt separately.

288 

289 

290 

291<a id="migration-email-template"></a>

292 

293 

294 

295#### Email template: Ask GPT creators to migrate

296 

297 

298 

299Make this your own: replace the placeholders before sending.

300 

301 

302 

303**Email template:**

304 

305```text

306Subject: Please migrate your custom GPTs by [deadline]

307 

308Hi [name],

309 

310We’re moving our custom GPT workflows to plugins. Please migrate, test, and share these GPTs by [deadline]:

311 

312[GPT names/links]

313 

314If you no longer need one, let us know. For those you’re keeping:

315 

3161. Migrate. Save the intended audience and finish important edits first. Go to My GPTs > Created by me > Migrate to plugin. The GPT must be published; after migration, it becomes read-only.

317 

3182. Test. Try familiar tasks and one harder case. Check the instructions, attached files, results, and required apps or tools.

319 

3203. Share. Each replacement starts private. Share it with the intended people or groups, then ask a teammate to test access. Keep private workflows private.

321 

322Follow [migration guide link] for the steps. Custom actions need rebuilding; contact [admin contact] if yours uses them or you need help.

323 

324Please reply with each plugin’s link, testing status, and any blockers.

325 

326Thanks for helping your team make the switch,

327[admin name/team]

328```

329 

330 

331 

332 

333 

334 

335 

336 

337 

338<a id="identify-gpts-that-may-need-extra-attention"></a>

339 

340## For GPT creators: Prepare your GPT

341 

342Before migrating a GPT you created, save its intended audience and a few familiar prompts and results for testing. Check the table below for anything that needs extra attention. Admins migrating on a creator’s behalf should review these details with them.

343 

344| If your custom GPT… | What to review |

345| ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

346| Uses custom actions | Custom actions don’t transfer. Rebuild needed integrations with a supported connector or custom MCP connection, then test them before your team switches. |

347| Depends on a model, detailed instructions, or a strict format | The selected model doesn’t carry over; Enterprise defaults apply. Compare familiar prompts and results. Check that the right skill is selected and follows your instructions and format, since behavior can differ. |

348| Relies on files, tools, or previous chat context | Check that files, templates, and examples are present and used correctly; transfer and retrieval may differ. Test required tools, such as web search, images, data analysis, or file creation. GPT capability settings don’t guarantee the same setup. Conversation starters and previous chats may not copy, so save useful prompts and identify needed context. |

349| Is shared with teammates or people outside your workspace | Record the intended audience and verify they can install and use the replacement. Show users how to install or select it. Check the replacement’s sharing settings. Check access for external users: public GPTs in affected Enterprise workspaces are included, but public sharing and timelines for other plans may differ. |

350| Needs updates during the transition | The original GPT stays usable until retirement. Maintain and test the replacement plugin as your workflow changes. |

351 

352<a id="migrate-test-and-share"></a>

353 

354## For GPT creators: Migrate, test, and share

355 

356Use these steps for a published GPT you created. Workspace admins can also use them to help creators migrate individual GPTs.

357 

358**Before you migrate:** The original GPT becomes read-only after migration. You can continue using it until retirement, but future edits must be made in the replacement plugin.

359 

360### Step 1: Convert your GPT

361 

362Go to **My GPTs**, find your GPT under **Created by me**, and select **Migrate to plugin**. You can also ask a workspace admin for help.

363 

364Migration turns your GPT’s instructions into a skill and brings over its knowledge files and connected apps. Rebuild custom actions separately. Save familiar prompts: conversation starters do not transfer one-to-one. The selected model does not carry over, and capability settings do not guarantee the same tools or behavior. Review migrated files and test required tools before sharing.

365 

366If you don’t see **Migrate to plugin**, see [Why don’t I see the migration option?](#why-dont-i-see-the-migration-option) in the Admin FAQ.

367 

368Your new plugin starts private. Test it, then share it with the people who need access—even if they could already use the original GPT.

369 

370<figure id="migration-preview" class="my-8 w-full scroll-mt-32">

371

372 

373[Watch the migration workflow](https://cdn.openai.com/devhub/docs/codex/migrate-custom-gpts/03-migration-walkthrough-hq.mp4)

374 

375 

376 <figcaption

377 id="03-migration-walkthrough-description"

378 class="!mt-4 text-sm text-secondary"

379 >

380 **

381 Follow the migration steps, then review and install your plugin.

382 **

383 </figcaption>

384</figure>

385 

386### Step 2: Test with familiar work

387 

388Try the plugin on familiar tasks and one harder case. Check the following before sharing it.

389 

390- Is the right skill selected, and does it follow your instructions?

391- Does it use the expected reference material and produce complete answers or files with the required structure, fields, and format?

392- Does it handle the harder case correctly and respond in a workable amount of time?

393- Are the tools and integrations it needs available?

394 

395**Switch after the workflow is ready**

396 

397If a required capability is missing, wait to switch that workflow until you have a tested alternative.

398 

399<figure id="clip-test-and-share" class="my-8 w-full scroll-mt-32">

400

401 

402[Test before sharing](https://cdn.openai.com/devhub/docs/codex/migrate-custom-gpts/04-test-and-share-hq.mp4)

403 

404 

405 <figcaption

406 id="04-test-and-share-description"

407 class="!mt-4 text-sm text-secondary"

408 >

409 **

410 Test familiar workflows and refine the plugin before sharing it.

411 **

412 </figcaption>

413</figure>

414 

415### Step 3: Share and verify access

416 

417Review who can access the new plugin. To share with people or groups, you need Share plugins access. To publish to the workspace, you need Publish plugins to workspace. Have an intended user open and test the replacement.

418 

419**For people using the replacement:** After the creator or admin shares the plugin with you, install it before using it, unless your admin has installed it for you. Sharing access and installation are separate steps.

420 

421If you can’t share or publish the plugin, ask your admin to check your permissions before announcing the switch.

422 

423### Step 4: Help your team switch

424 

425Share the replacement link, explain key differences, and demonstrate a familiar task. Update onboarding, instructions, and saved resources, and name an owner for future changes and questions.

426 

427After migration, the plugin’s creator or a workspace owner or admin can [edit the replacement](https://learn.chatgpt.com/docs/build-plugins). Rerun your important tests after each change.

428 

429### What happens to the original GPT?

430 

431Until retirement, the original GPT stays usable, and you can continue editing an existing GPT that you have not migrated, even after new GPT creation stops. Once you migrate a GPT, the original becomes read-only. At retirement, custom GPTs stop running and leave the GPT directory.

432 

433<a id="troubleshoot-common-blockers"></a>

434<a id="details-still-being-confirmed"></a>

435<a id="additional-migration-questions"></a>

436<a id="can-i-migrate-gpts-on-behalf-of-my-customers-or-users-including-in-bulk"></a>

437<a id="can-we-migrate-or-recover-a-gpt-after-the-retirement-date"></a>

438 

439## Admin FAQ

440 

441Find answers to common questions about preparing your workspace and helping your team switch.

442 

443 

444h3]:mb-5 [&>h3]:mt-12 [&>h3]:text-xl [&>h3:first-child]:mt-0 [&_summary]:gap-3 [&_summary]:px-5 [&_summary]:py-4 [&_.toggle-section-content]:px-5 [&_details[open]>.toggle-section-content]:border-t [&_details[open]>.toggle-section-content]:border-default [&_details[open]>.toggle-section-content]:pt-4 [&_details[open]>summary>span>svg]:rotate-90">

445 

446### Preparing your workspace

447 

448 

449 

450 <ToggleSection title="Can admins migrate many GPTs at once?">

451 

452Yes. Workspace admins can use the [ChatGPT Admin plugin](https://learn.chatgpt.com/docs/enterprise/admin-plugin) to migrate selected batches. Start with the GPTs your team needs most.

453 

454Use the [admin walkthrough](#admin-bulk-migration) to run a report and migrate selected GPTs. Sharing settings do not carry over in bulk; share each replacement manually.

455 

456 </ToggleSection>

457 

458 

459 

460 

461 

462 <ToggleSection title="Who can migrate a GPT, and how does the process work?">

463 

464The GPT’s creator or a workspace admin can start migration from a published GPT’s page. Admins can do this even if they did not create the GPT.

465 

466Plugins must be enabled, and shared access alone does not give someone permission to migrate.

467 

468 </ToggleSection>

469 

470 

471 

472 

473 

474 <ToggleSection title="Why don’t I see the migration option?">

475 

476You must be the GPT’s creator or a workspace admin, the GPT must be published, and plugins must be enabled for you.

477 

478Access to use someone else’s GPT does not give you permission to migrate it.

479 

480If these conditions are met and the option is still missing, contact OpenAI support with the GPT’s name, owner, and a description of what you’re seeing.

481 

482 </ToggleSection>

483 

484 

485 

486 

487 

488 <ToggleSection title="Which permissions should I review before people start migrating?">

489 

490Start by enabling plugins. The built-in migration workflow does not require Upload plugins or Upload plugins with custom MCP servers.

491 

492People who will share plugins with others in the workspace need Share plugins, and those who will publish them across the workspace need Publish plugins to workspace.

493 

494Rebuilding a custom integration is a separate task and may require additional permissions.

495 

496 </ToggleSection>

497 

498 

499 

500 

501 

502 <ToggleSection title="What do employees need to use a migrated plugin?">

503 

504Employees need:

505 

506- **Use plugins** permission.

507- Access to the replacement plugin.

508- A workspace policy that allows them to install it or installs it for them.

509 

510Any included apps still require the appropriate app access and authorization. Connecting an account through ChatGPT does not give someone additional permissions in that app.

511 

512 </ToggleSection>

513 

514 

515 

516 

517 

518 <ToggleSection title="Can employees use migrated plugins in Chat, or do they need Work?">

519 

520Migrated plugins can be used in Chat when plugins are enabled for the user, as well as in Work. Available tools still depend on the plugin, workspace settings, and where it is used. For the creation and editing workflow and its prerequisites, see [Build plugins](https://learn.chatgpt.com/docs/build-plugins).

521 

522Check access for each task separately: using the plugin, creating or editing it, and sharing or publishing it. Before assigning maintainers, ask your admin to confirm that they can access the creation and editing experience; the built-in migration requirements do not answer that question.

523 

524 </ToggleSection>

525 

526 

527 

528 

529 

530 <ToggleSection title="How should I manage access when we roll out the replacements?">

531 

532Review each plugin’s audience and [installation policy](https://help.openai.com/en/articles/11509118), then ask someone in the intended audience to test access.

533 

534An Available plugin lets eligible users install it, while an Installed plugin is installed for them by default. Role controls and app permissions still apply.

535 

536The replacement starts private. Access to the original GPT does not automatically give someone access to the plugin. Share it with the intended people or groups, then ask a recipient to install and test it, unless their admin has already installed it for them. Identify who will maintain the replacement and help teammates with access.

537 

538 </ToggleSection>

539 

540 

541 

542### Testing and ongoing administration

543 

544 

545 

546 <ToggleSection title="Will a migrated plugin behave exactly like the original GPT?">

547 

548A migrated plugin may respond differently from the original GPT. Compare the same prompts and reference files, including one difficult example, and check that answers use the right sources, include the expected facts, follow the requested format, and use the required tools. Test both explicit plugin selection and a normal task request, since automatic skill selection depends on the request and available capabilities. Ask owners to assess:

549 

550- The quality of the output.

551- How well instructions are followed.

552- How long the task takes.

553 

554The GPT’s selected model does not carry over; Enterprise defaults apply.

555 

556 </ToggleSection>

557 

558 

559 

560 

561 

562 <ToggleSection title="What should I do about GPTs that use custom actions?">

563 

564Custom actions do not transfer through the migration workflow. The person maintaining that workflow will need to rebuild the integration using a supported connector or a custom MCP server.

565 

566Identify these GPTs early so the appropriate technical and security teams have time to review the replacement and its permissions.

567 

568 </ToggleSection>

569 

570 

571 

572 

573 

574 <ToggleSection title="What happens to the original GPT after migration?">

575 

576The original GPT remains usable until retirement. At retirement, custom GPTs stop running and leave the GPT directory.

577 

578Owners should maintain the plugin going forward. See [What happens to the original GPT?](#what-happens-to-the-original-gpt).

579 

580 </ToggleSection>

581 

582 

583 

584 

585 

586 <ToggleSection title="Can we still migrate a GPT after retirement?">

587 

588Yes. You will still be able to migrate a GPT after retirement, although the GPT itself will no longer run.

589 

590 </ToggleSection>

591 

592 

593 

594 

595 

596 <ToggleSection title="Which admin controls apply after migration?">

597 

598Migrated plugins follow the workspace’s [plugin permissions](https://help.openai.com/en/articles/20001256-plugins-in-chatgpt-and-codex). Admins can control who uses and shares plugins, as well as who publishes them to the workspace. You can review role permissions and manage individual plugins.

599 

600Included apps retain their own access and action controls, so making a plugin available does not grant access to the data or actions in its apps.

601 

602 </ToggleSection>

603 

604 

605 

606 

607 

608 <ToggleSection title="How should admins plan for plugin usage and costs?">

609 

610Converting a custom GPT to a plugin does not consume credits. Under credit-based pricing, editing or updating a plugin does consume credits. Conversion is separate from using the replacement plugin, so review the usage and costs of the workflow before rolling it out.

611 

612Usage depends on whether the plugin runs in Chat or Work, the models and features involved, and your workspace’s agreement. Under credit-based pricing, Instant Chat is generally unlimited, but a request can switch to a reasoning model or use a feature that consumes credits. Work consumes credits based on the model and tokens used. Enterprise agreements billed in USD have different terms, including charges for Instant usage. Review your workspace’s [credit-based rate card](https://help.openai.com/en/articles/11481834) or [USD rate card](https://help.openai.com/en/articles/20001415) before rollout.

613 

614Review users’ effective usage limits and workspace spending controls separately. In a credit-based workspace, a zero overage limit prevents spending beyond the shared credit allocation; it does not prevent use of remaining credits. Usage alerts notify admins but do not stop usage. See [Manage usage limits and overages](https://help.openai.com/en/articles/20001001) for the controls that apply to your workspace.

615 

616 </ToggleSection>

plugins.md +6 −1

Details

352 352 

353## Build your own plugin353## Build your own plugin

354 354 

355To create or edit a plugin through a conversation in ChatGPT, start with

356[Build plugins](https://learn.chatgpt.com/docs/build-plugins). The guide walks through

357describing a workflow, adding reference files, testing it, and making changes

358when Plugin Creator is available in your workspace.

359 

355If you want to create, test, or distribute your own plugin, see360If you want to create, test, or distribute your own plugin, see

356[Build plugins](https://developers.openai.com/plugins/build/plugins). That page covers local scaffolding,361[our developer guide on building plugins](https://developers.openai.com/plugins/build/plugins). That page covers local scaffolding,

357manual marketplace setup, workspace sharing, plugin manifests, and packaging362manual marketplace setup, workspace sharing, plugin manifests, and packaging

358guidance.363guidance.

359 364 

plugins/build.md +175 −84

Details

2 2 

3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](https://learn.chatgpt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5To build or submit a plugin, use the complete5Turn a workflow you repeat into a plugin you can use again in ChatGPT. Describe the task in a conversation, add the instructions and reference material it needs, then test and refine the result.

6[builder documentation on developers.openai.com](https://developers.openai.com/plugins).

7 6 

7**Custom GPTs are moving to plugins**

8 8 

9Custom GPTs in ChatGPT Enterprise are being retired. If you use a custom GPT, follow [Moving your custom GPT workflows to plugins](https://learn.chatgpt.com/docs/migrate-custom-gpts) to migrate, test, and share its replacement. Use the steps below to create a new plugin from scratch or edit an existing one.

9 10 

10 <ButtonLink href="/plugins" color="primary" variant="solid" size="lg">11## What is a plugin?

11 Build and submit a plugin

12 </ButtonLink>

13 12 

13A plugin is a reusable package that helps ChatGPT do a task. It can include apps, skills, or both.

14 14 

15 15 

16This page provides a brief introduction. A plugin is an installable package

17that can include skills, an MCP server, or both. An MCP server can also return

18optional UI.

19 16 

20ChatGPT and Codex share one universal plugin directory. Publish a public plugin17> Illustration: A plugin can contain apps, skills, or both. Apps connect your tools. Skills guide the work.

21once to make the same listing discoverable from supported surfaces in both

22products. During development, use a local marketplace to test the package

23before submitting it to the universal directory.

24 18 

25For workspace distribution through GitHub, see

26[Plugin management](https://learn.chatgpt.com/docs/enterprise/plugin-management).

27 19 

28Start with a skill when you are still iterating on one personal workflow.

29Build a plugin when you want to share that workflow, package related skills,

30connect to an external service, or distribute a stable capability to a team.

31 20 

32## Create a plugin with `@plugin-creator`21{/* prettier-ignore */}

33 22 

34For the fastest setup, use the built-in `@plugin-creator` skill in ChatGPT Work23[Apps](https://help.openai.com/en/articles/11487775) connect ChatGPT to other services. [Skills](https://learn.chatgpt.com/docs/skills-and-plugins#use-skills-for-repeatable-work) provide instructions for a task, such as summarizing a document in a consistent format.

35mode or `$plugin-creator` in Codex.

36 24 

37 25 

26- **Find a document (app):** Search a connected service for a file you have access to.

27- **Summarize a document (skill):** Turn a document you provide into an overview, key points, and open questions.

28- **Use a template (skill):** Organize information you provide into a standard format.

29- **Compare documents (app + skill):** Retrieve two documents you can access through an allowed app, then compare them using your checklist.

38 30 

31Plugins may be named after a service, like Google Drive, or a workflow, like Document Summary. Check the plugin’s details to see what it includes.

39 32 

40> Illustration: Plugin creator skill in ChatGPT33You can create a plugin by describing what you need in ChatGPT. The steps in this guide do not require code.

41 34 

35## Before you start

42 36 

37These steps cover ChatGPT on the web when plugin creation and editing are enabled in your workspace. You can create and edit through a conversation in Chat or Work.

43 38 

39Have a specific task in mind, an example of a good result, and any reference files the plugin should use. If it needs an app, check that the app is allowed in your workspace and complete any required connection setup. A plugin does not give you additional access to that app's files, data, or actions.

44 40 

45Describe the outcome, the skills or MCP server to include, and whether you want41**Permissions you need**

46a local marketplace entry for testing. For example:42 

43You need **Use plugins** permission, and Plugin Creator must be available in your workspace. To edit an existing plugin, you also need edit access. A workspace plugin’s creator and workspace owners or admins can edit it.

44 

45## Using a plugin

46 

47Use an installed plugin in Chat or Work when you want ChatGPT to follow its workflow or use its apps. Select it with an **@ mention** to choose the plugin for your task.

48 

491. Start a new conversation in ChatGPT.

502. Type **@** in the message box, then begin typing the plugin’s name.

513. Select the plugin under **Plugins** in the menu.

524. Describe what you need, add any relevant files, and send your message.

53 

54 

55 

56> Illustration: ChatGPT Work’s @ menu showing FAQ Practice Coach under Plugins and a separate Skills section after entering @faq.

57 

58 

59 

60_The @ menu in ChatGPT Work shows matching plugins and skills. Select a plugin under Plugins._

61 

62If the plugin needs an app connection, follow the prompts to connect it. To find and install a plugin, see [Plugins](https://learn.chatgpt.com/docs/plugins).

63 

64 

65 

66 

67## Create a plugin from scratch

68 

69Start with a task you do regularly and a clear example of the result you want. Plugin Creator helps turn that description into a reusable workflow through a conversation: you can explain the steps, add a template or reference file, and refine the instructions as you go. The written example below uses a Document Summary plugin that turns a document into an overview, key points, and open questions. You can adapt the same steps to another task.

70 

71 

72 

73[A plugin creation example showing an initial request and Plugin Creator’s first response, at twice the original speed.](https://cdn.openai.com/devhub/docs/codex/build-plugins/create-plugin-2x-hq.webm)

74 

75 

76 

77This recording shows an initial plugin request and Plugin Creator’s first response. The written examples below use a separate workflow.

78 

79### Step 1: Mention Plugin Creator

80 

81Start a conversation in Chat or ChatGPT Work. Type **@**, search for **Plugin Creator**, and select it from the menu.

82 

83### Step 2: Describe the workflow

84 

85A good creation prompt gives Plugin Creator a practical brief:

86 

87- **Purpose:** Name the recurring task and when you’ll use the plugin.

88- **Inputs:** Describe the information you’ll provide and how it should use each attached file.

89- **Output:** Say who the result is for, and specify its format, length, and tone. Include an example if you have one.

90- **Rules:** Explain any required steps, what needs your review, and how to handle missing information—for example, ask a question or mark a field “not specified.”

91 

92Ask for instructions you can reuse with new inputs. Keep the details of an individual task, such as a particular document, labeled as an example for testing.

93 

94 

95 

96**Create a plugin from scratch:**

47 97 

48```text98```text

49@plugin-creator Create a plugin named meeting-follow-up.99Create a plugin called Document Summary. Summarize documents I provide in three sections: Overview, Key points, and Open questions. Use the attached template for the format. Base the summary only on the document. If requested information is missing, mark it as not provided. Do not edit the source document.

50Include a skill that turns meeting notes into decisions, owners, and next steps.

51Add it to a personal marketplace so I can test it locally.

52```100```

53 101 

54The skill creates a supported `.codex-plugin/plugin.json` compatibility102### Step 3: Add context and refine the instructions

55manifest, organizes the plugin folder, and can add the plugin to a local103 

56marketplace. This scaffold differs from the portable root `plugin.json` format104Attach a template, example, or reference file the plugin should use. Answer Plugin Creator's questions and ask for changes until the instructions match the task. If the workflow needs an app, explain which part of the task depends on it.

57used in the manual example. See the [scaffold layout](https://developers.openai.com/plugins/build/plugins#plugin-creator-output)105 

58for optional files and directories.106Keep the first version focused on one workflow. A clear name and description will help you and your teammates recognize when to use it.

107 

108### Step 4: Review and finish creating the plugin

109 

110Follow Plugin Creator's prompts to finish. Review the plugin's name, description, instructions, and reference material before relying on it.

111 

112New workspace plugins start private so you can test them before sharing.

113 

114## Include apps in your plugin

115 

116Apps connect ChatGPT to other services, such as file storage or project management tools. Depending on the app and its enabled features, ChatGPT can search or read information and may be able to take actions, such as creating a document or updating a record. Skills describe how to do the work; apps provide the information or actions it needs.

59 117 

118Apps are optional. Document Summary can work with text you paste or a file you attach. Include an app if you want the workflow to retrieve a document from another service or perform a supported action there.

60 119 

120### Find apps available to you

61 121 

122Browse in the workspace where you plan to create and use the plugin:

62 123 

63> Illustration: Invoking the plugin creator skill1241. Open **Plugins** in ChatGPT. Search for the service you want to use, or browse the tab with your workspace’s name.

1252. Open a plugin’s details and review its **Apps** section. A plugin may be named after the service it connects to, but some plugins contain only skills.

1263. Check the included app’s capabilities and connection status. Follow **Connect** prompts when required. If it shows **Disabled by admin** or **Admin approval required**, ask your workspace admin about access.

64 127 

128If your account shows **Apps** instead of **Plugins**, browse available connections there. Seeing a plugin in the directory does not mean every included app is ready to use.

65 129 

130Note the app’s name and what it supports, then tell Plugin Creator how you want to use it. For more on browsing and setup, see [Plugins](https://learn.chatgpt.com/docs/plugins#use-and-install-plugins).

66 131 

132### Add an app to your workflow

67 133 

68After it finishes:134When creating or editing a plugin:

69 135 

701. Review `.codex-plugin/plugin.json`.1361. **Choose an available app.** Use an app your workspace allows and that you have permission to use. If it is unavailable, ask your workspace admin about access.

712. Check each bundled skill under `skills/` against the1372. **Explain its job.** Tell Plugin Creator which app to include, what information to read or action to take, and what you want to review first.

72 [instruction-following guidance](https://developers.openai.com/plugins/build/skills#review-instruction-following).1383. **Connect and check.** Follow any setup prompts and review the requested permissions. You may need to sign in; some apps use an administrator-managed connection. Review the finished plugin’s apps, then test with information you can already access.

733. Refresh ChatGPT or Codex and install the plugin from its local marketplace

74 source.

754. Test the plugin in a new conversation with representative requests.

76 139 

77If the plugin includes an MCP server, first build and test that server, then140In the example below, replace **[app name]** with an app your workspace allows.

78give `@plugin-creator` the registered connection details. Follow the complete

79[MCP server workflow](https://developers.openai.com/plugins/build/mcp-server)

80for tools, authentication, deployment, and testing.

81 141 

82## Create a skills-only plugin manually

83 142 

84A minimal portable Agent Plugins package contains a root manifest and at least143 

85one skill:144**Include an app:**

86 145 

87```text146```text

88meeting-follow-up/147Include [app name] in Document Summary, if it’s available to me. Read the document I link to and draft the Overview, Key points, and Open questions in chat. Keep the rule about marking missing information. Do not create or edit files in the app. If you cannot access the document, ask me to attach it.

89├── plugin.json

90└── skills/

91 └── meeting-follow-up/

92 └── SKILL.md

93```148```

94 149 

95Create `plugin.json` at the plugin root:150Including an app does not grant new access. Your workspace’s app and action settings, connection permissions, and access in the source service still apply. Teammates who use the plugin also need the required app access and connection setup.

151 

152## Test your plugin

153 

154Install the plugin if prompted, then start a new conversation. Select it with an **@ mention** and give it a familiar task. For Document Summary, provide a document you know well and ask for a summary.

155 

156Check that the result follows your format, uses the right reference material, and identifies missing information. Then try a document with missing or unclear details and check that the summary identifies those gaps.

157 

158If the plugin uses an app, check that it can access the information or actions the task requires. If you plan to use it in both Chat and Work, test it in each. Available tools and apps can differ.

159 

160Keep a few example prompts to reuse after making changes.

161 

162 

163 

164> Illustration: Create a plugin, test it with a real example, edit its instructions or files, and test again. Return to editing and retesting as needed, then share after reviewing the results.

165 

166 

167 

168_Test before sharing, and repeat your checks after an update._

169 

170## Edit an existing plugin

171 

172### Step 1: Open the plugin for editing

173 

174Open **Plugins**, select the plugin you want to change, and choose **Edit Plugin**. This opens a conversation for updating it.

175 

176### Step 2: Describe what should change

177 

178A good editing prompt names the behavior or reference file to update, describes the desired change, and identifies what to preserve. If a result missed the mark, include that result and explain what you expected. Ask for a sample using familiar inputs so you can compare before and after.

179 

180Make clear whether you want to update the plugin’s reusable instructions or revise a single result. When replacing a reference file, name the old file and explain how to use the new one.

181 

182For example, to change the output:

96 183 

97```json184 

98{185 

99 "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",186**Update the output:**

100 "name": "meeting-follow-up",187 

101 "version": "1.0.0",188```text

102 "description": "Turn meeting notes into decisions and next steps"189Update Document Summary so Key points appears in a table with Point and Source columns. In Source, identify the supporting passage or section when available. Keep Overview, Open questions, and the rule about marking missing information. Show me a sample result from this document.

103}

104```190```

105 191 

106Portable packages discover skills in `skills/` automatically. Add192To replace reference material:

107`skills/meeting-follow-up/SKILL.md`:193 

108 194 

109```md

110name: meeting-follow-up

111description: Extract decisions, owners, and next steps from meeting notes.

112 195 

113Review the meeting notes. Return:196**Replace reference material:**

114 197 

1151. Decisions198```text

1162. Action items with owners199Replace the existing summary template with the attached revised template. Keep the other reference files and instructions unchanged. Tell me what you changed, then help me test it with this document.

1173. Open questions

118```200```

119 201 

120Use a stable plugin name in kebab case. Keep the skill description specific202### Step 3: Review the update

121enough for ChatGPT and Codex to recognize when the workflow applies.

122 203 

123Use `@plugin-creator` to add the folder to a local marketplace, then install and204Review the revised instructions and files, then follow the prompts to complete the update. Check that the requested changes are present and that information you still need remains intact.

124test it before sharing it.

125 205 

126## Continue with the builder documentation206### Step 4: Test again

207 

208Open a new conversation and repeat your saved test prompts. Check the updated behavior and the parts of the workflow you intended to preserve. If other people use the plugin, ask a teammate to try a representative task before the wider team relies on the change.

209 

210## Share the plugin with your team

211 

212When the plugin is ready, use its sharing settings to choose the intended people or groups. Sharing requires **Share plugins** permission. Adding it to the workspace directory requires **Publish plugins to workspace** permission.

127 213 

128For complete builder documentation, use the214Sharing and installation are separate. Recipients need to install the plugin unless an admin has already installed it for them. If the workflow uses an app, each person also needs the required app access and any account connection the app requires.

129[Plugins documentation](https://developers.openai.com/plugins/). It covers:215 

216Include a sample prompt with the plugin link and let teammates know who maintains it. See [Plugins](https://learn.chatgpt.com/docs/plugins) for more on installation and use.

217 

218## If you cannot create or edit a plugin

219 

220Check that you are in the intended workspace. If the create option or plugin editor is missing, ask your workspace admin to confirm that the experience is available and that you have the access needed for the task.

221 

222If a teammate can open the plugin but cannot use it, check plugin installation, workspace permission to use plugins, and access to required apps separately. Admins can review [Plugin controls](https://learn.chatgpt.com/docs/enterprise/apps-and-connectors).

223 

224 

225 

226 

227## Continue with the builder documentation

130 228 

131- [Plugin architecture](https://developers.openai.com/plugins/concepts/plugins)229For custom integrations or development with plugin files, see [Package your plugin](https://developers.openai.com/plugins/build/plugins). The [developer documentation](https://developers.openai.com/plugins/) covers building skills and MCP servers, testing, and public submission.

132- [Building skills](https://developers.openai.com/plugins/build/skills)

133- [Building an MCP server](https://developers.openai.com/plugins/build/mcp-server)

134- [Adding optional UI](https://developers.openai.com/plugins/build/chatgpt-ui)

135- [Packaging a plugin](https://developers.openai.com/plugins/build/plugins)

136- [Testing a plugin](https://developers.openai.com/plugins/deploy/connect-chatgpt)

137- [Submitting and publishing](https://developers.openai.com/plugins/deploy/submission)

138 230 

139To browse, install, enable, or remove plugins, see [Use231For workspace distribution through GitHub, see [Plugin management](https://learn.chatgpt.com/docs/enterprise/plugin-management).

140plugins](https://learn.chatgpt.com/docs/plugins).

Details

96plugin when you want an installable package that can combine instructions with96plugin when you want an installable package that can combine instructions with

97connected services or other tools.97connected services or other tools.

98 98 

99To build a plugin through a conversation in ChatGPT, see

100[Build plugins](https://learn.chatgpt.com/docs/build-plugins).

101 

102Moving an existing custom GPT workflow? See [Migrate custom GPTs to plugins](https://learn.chatgpt.com/docs/migrate-custom-gpts) for workspace preparation, migration, testing, and sharing.

103 

99You can also demonstrate a workflow with104You can also demonstrate a workflow with

100[Record & Replay](https://learn.chatgpt.com/docs/extend/record-and-replay), which turns the recording into a105[Record & Replay](https://learn.chatgpt.com/docs/extend/record-and-replay), which turns the recording into a

101reusable skill. To package and distribute your own bundle, see106reusable skill. To package and distribute your own bundle, see

webmcp.md +1 −2

Details

29server or set up another connection to use those capabilities.29server or set up another connection to use those capabilities.

30 30 

31This approach is useful when you and the agent need to see the same thing, such as31This approach is useful when you and the agent need to see the same thing, such as

32when editing a canvas or exploring a dashboard. A32when editing a canvas or exploring a dashboard. A [plugin with an MCP server](https://developers.openai.com/plugins/build/mcp-server) can provide an integration

33[plugin with an MCP server](https://learn.chatgpt.com/docs/build-plugins) can provide an integration

34that works independently of an open page. A website can support both.33that works independently of an open page. A website can support both.

35 34 

36## How it works in the browser35## How it works in the browser