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

> Discover the supported source types for OpenAI plugins. Learn how the marketplace currently utilizes local filesystem paths for plugin integration.

- Repository: [OpenAI/plugins](https://github.com/openai/plugins)
- Tags: faq
- Published: 2026-09-12

---

**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`](https://github.com/openai/plugins/blob/main/.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:

```json
{
  "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`](https://github.com/openai/plugins/blob/main/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:

```json
{
  "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:

```json
{
  "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`](https://github.com/openai/plugins/blob/main/ai-plugin.json) manifest file and all necessary runtime assets.

## Summary

- The marketplace configuration in [`.agents/plugins/marketplace.json`](https://github.com/openai/plugins/blob/main/.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`](https://github.com/openai/plugins/blob/main/.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`](https://github.com/openai/plugins/blob/main/.agents/plugins/marketplace.json).

### Where is the marketplace configuration file located?

The master marketplace manifest is located at [`.agents/plugins/marketplace.json`](https://github.com/openai/plugins/blob/main/.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.