What Are the Supported Source Types for Plugins in the OpenAI Marketplace?

The OpenAI plugins marketplace currently supports only the local source type, which loads plugins from filesystem paths relative to the marketplace configuration file.

The openai/plugins repository defines how the Codex runtime discovers and loads plugins through a centralized marketplace manifest. Understanding the supported source types for plugins in the marketplace is essential for developers contributing new integrations or configuring private deployments.

Understanding the Marketplace Configuration Schema

The authoritative schema for plugin discovery lives in .agents/plugins/marketplace.json. This JSON file serves as the master registry where each plugin entry declares its source object. According to the source code analysis, the schema strictly enforces a single enumeration value for the source type.

Every marketplace entry follows this structure:

{
  "name": "<plugin-name>",
  "source": {
    "source": "local",
    "path": "./plugins/<plugin-name>"
  },
  "policy": { },
  "category": "<category>"
}

The source field within the source object must be set to "local". This tells the Codex runtime to resolve the plugin from the local filesystem using the relative path specified in the adjacent path field.

The Local Source Type Explained

The local source type is the sole supported mechanism for plugin resolution in the current codebase. When the runtime encounters "source": "local", it interprets the path value as a relative directory path from the marketplace root.

Key characteristics of the local source type:

  • Path Resolution: Paths begin with ./plugins/ and resolve relative to the .agents/plugins/ directory
  • Filesystem Loading: The runtime loads plugin manifests (ai-plugin.json) and code directly from the specified directory
  • No Network Fetch: Unlike potential future implementations (e.g., remote Git repositories), local sources require no external network calls during initialization

Anatomy of a Marketplace Entry

A complete marketplace entry contains four top-level fields that work together with the source configuration:

  1. name: The unique identifier for the plugin (e.g., "google-calendar")
  2. source: Object containing the source type ("local") and relative path
  3. policy: Installation and authentication rules (e.g., "installation": "AVAILABLE")
  4. category: Classification for UI organization (e.g., "Productivity")

The source object specifically requires:

  • source: String enum, currently only accepts "local"
  • path: String filepath relative to the marketplace root (e.g., "./plugins/google-calendar")

Practical Configuration Examples

Google Calendar Plugin Configuration

The repository includes a working example of the local source type in the Google Calendar plugin entry:

{
  "name": "google-calendar",
  "source": {
    "source": "local",
    "path": "./plugins/google-calendar"
  },
  "policy": {
    "installation": "AVAILABLE",
    "authentication": "ON_INSTALL"
  },
  "category": "Productivity"
}

This configuration instructs the runtime to look for the plugin implementation in plugins/google-calendar/ relative to the marketplace file location.

Adding a Custom Local Plugin

To register a new plugin using the supported source type, create an entry following this exact schema:

{
  "name": "my-awesome-plugin",
  "source": {
    "source": "local",
    "path": "./plugins/my-awesome-plugin"
  },
  "policy": {
    "installation": "AVAILABLE",
    "authentication": "ON_INSTALL"
  },
  "category": "Developer Tools"
}

Ensure the directory specified in path contains a valid ai-plugin.json manifest file and all necessary runtime assets.

Summary

  • The marketplace configuration in .agents/plugins/marketplace.json exclusively supports the local source type for plugins.
  • Local sources require a path field pointing to a directory relative to the marketplace root, typically under ./plugins/.
  • Each plugin entry combines source configuration with policy settings and categorization metadata.
  • Future source types (such as remote Git repositories) would require schema updates to accept new enum values beyond "local".

Frequently Asked Questions

What source types are currently supported for plugins in the marketplace?

The OpenAI plugins marketplace currently supports only one source type: local. This is defined in the source.source field within each marketplace entry in .agents/plugins/marketplace.json. The Codex runtime uses this value to determine that it should load the plugin from the local filesystem rather than fetching it from a remote location.

Can I load plugins from a remote Git repository?

No, the current schema does not support remote source types. While the JSON structure could theoretically accommodate additional enum values in the future (such as "git" or "url"), the existing codebase only implements and validates the "local" source type. Loading from remote repositories would require modifications to the marketplace schema and runtime loader.

How do I specify the correct path for a local plugin?

Set the source.path field to a relative path starting from the marketplace configuration file's location. The convention used in the OpenAI plugins repository prefixes plugin paths with ./plugins/, followed by the plugin directory name. For example, "./plugins/google-calendar" resolves to the google-calendar/ directory inside the plugins/ folder adjacent to .agents/plugins/marketplace.json.

Where is the marketplace configuration file located?

The master marketplace manifest is located at .agents/plugins/marketplace.json in the repository root. This file contains the complete registry of available plugins and their source configurations. The Codex runtime references this file to discover which plugins are available and how to load them using the local source type.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →