Skip to main content

Create a ChatGPT Manifest

Creating plugin manifest

The first component that you need to learn is the ChatGPT Manifest or AI-Plugin.json.

What is a Manifest?

Think of a manifest as an ID card for your plugin. It tells ChatGPT who the plugin is (its name), what it does (its description), where it lives (its API endpoint), and a few other important details.

The manifest is usually a .json file located at the path /.well-known/ai-plugin.json on the server where your plugin lives.

Writing a Proper Manifest

To write a manifest, you need to create a .json file. A .json file is a type of file that stores simple objects and data structures in JavaScript Object Notation (JSON) format, which is a standard data interchange format.

Here's what a typical manifest might look like:

{
"schema_version": "v1",
"name_for_human": "My Cool Plugin",
"name_for_model": "My_Cool_Plugin",
"description_for_human": "This plugin does cool things.",
"description_for_model": "This plugin does cool things. It can help you find cool things to do.",
"auth": {
"type": "none"
},
"api": {
"type": "openapi",
"url": "https://my-cool-plugin.com/openapi.json",
"is_user_authenticated": false
},
"logo_url": "https://my-cool-plugin.com/logo.png",
"contact_email": "hello@my-cool-plugin.com",
"legal_info_url": "http://my-cool-plugin.com/legal"
}

Let's explain each property:

  • schema_version: This is the version of the schema that your plugin is using. For now, just write "v1".
  • name_for_human: This is the name of your plugin as you would like it to appear for human users.
  • name_for_model: This is how the AI model will refer to your plugin. It should be the same as the name for humans but with underscores (_) instead of spaces.
  • description_for_human: This is a short description of your plugin that users will see in the plugin store.
  • description_for_model: This is a description for the AI model. Here is where you tell to the AI model what your plugin does.
  • auth: This describes how your plugin handles authentication. If your plugin doesn't require authentication, just put "type": "none".
  • api: This tells where your plugin's API lives. The url should point to the location of your OpenAPI specification (a document that describes how your API works).
  • logo_url: This is where your plugin's logo image is located.
  • contact_email: This is your contact email address.
  • legal_info_url: This is a URL where users can find legal information about your plugin.

Once you've filled out your manifest with your plugin's details, save it and make sure it's accessible at the path /.well-known/ai-plugin.json on your server.

Troubleshooting

Manifest is not accessible

The manifest should be accesible from OpenAI's servers over the following URL: https://your-plugin.com/.well-known/ai-plugin.json.

  • ✅ Correct: https://your-plugin.com/.well-known/ai-plugin.json
  • ❌ Incorrect: https://your-plugin.com/ai-plugin.json
  • ❌ Incorrect: https://your-plugin.com/.well-known/another-folder/ai-plugin.json