Default Marketplace JSON File in OpenAI Plugins: Location and Structure
The default marketplace JSON file is located at .agents/plugins/marketplace.json relative to the repository root, and it enumerates the OpenAI-curated plugins bundled with the platform, specifying each plugin's source path, installation policy, authentication method, and category.
The OpenAI plugins repository relies on a centralized configuration to manage its built-in marketplace offerings. The default marketplace JSON file serves as the primary source of truth for which plugins appear when the platform initializes, defining the curated set available to users out-of-the-box. Developers extending the platform or analyzing the plugin ecosystem must understand this file's schema and runtime behavior.
Where Is the Default Marketplace JSON File Located?
The repository stores its default marketplace definition at a specific path relative to the project root:
- Primary location:
.agents/plugins/marketplace.json - Repository reference: The top-level
README.mdexplicitly mentions this path around line 10, confirming its role as the canonical marketplace definition.
This file is loaded by the plugin discovery system at runtime to determine which plugins are available for installation and how they should be categorized.
Structure of the Default Marketplace JSON File
The JSON schema follows a hierarchical structure that separates marketplace metadata from individual plugin descriptors.
Top-Level Metadata
The root object contains identifying information for the marketplace itself:
name: The internal identifier ("openai-curated")interface.displayName: The human-readable label shown to users ("Codex official")
Plugin Descriptors
The plugins array contains objects that define individual plugins with the following fields:
name: The short identifier (e.g.,"linear","slack")source: Indicates a local source type with a filesystem path relative to the marketplace file (e.g.,"./plugins/slack")policy: Defines installation availability ("AVAILABLE") and authentication timing ("ON_INSTALL")category: Logical grouping for UI organization (e.g.,"Productivity","Communication")
Loading the Default Marketplace JSON File Programmatically
You can parse the default marketplace JSON file using standard filesystem operations in any language. Below are reference implementations for common environments.
Node.js Implementation
import fs from 'fs';
import path from 'path';
const marketplacePath = path.resolve(__dirname, '..', '.agents', 'plugins', 'marketplace.json');
const marketplace = JSON.parse(fs.readFileSync(marketplacePath, 'utf8'));
console.log('Marketplace name:', marketplace.name);
console.log('Available plugins:', marketplace.plugins.map(p => p.name));
Python Implementation
import json
from pathlib import Path
marketplace_file = Path(__file__).parent.parent / ".agents" / "plugins" / "marketplace.json"
with marketplace_file.open() as f:
data = json.load(f)
slack_cfg = next(p for p in data["plugins"] if p["name"] == "slack")
print("Slack source path:", slack_cfg["source"]["path"])
print("Slack category:", slack_cfg["category"])
Shell Script with jq
#!/usr/bin/env bash
file=".agents/plugins/marketplace.json"
plugins=$(jq -r '.plugins[].name' "$file")
echo "Plugins in the default marketplace:"
echo "$plugins"
Alternative Marketplace Configurations
While .agents/plugins/marketplace.json defines the standard curated set, the repository includes an alternative configuration for specialized deployments:
.agents/plugins/api_marketplace.json: Used for API-only scenarios where the full plugin set is not required, offering a reduced or modified marketplace tailored for programmatic access.
Both files follow the same schema structure but contain different plugin enumerations based on the deployment context.
Summary
- The default marketplace JSON file resides at
.agents/plugins/marketplace.jsonand acts as the source of truth for the OpenAI-curated plugin set. - It defines marketplace metadata (
name,displayName) and an array of plugin descriptors specifying source paths, installation policies, and categories. - The plugin loader references this file at runtime to discover available plugins and enforce defined policies like authentication modes.
- Alternative configurations such as
api_marketplace.jsonexist for specific deployment scenarios. - You can parse the file using standard JSON libraries in Node.js, Python, or shell scripts using
jq.
Frequently Asked Questions
What is the exact path to the default marketplace JSON file in the OpenAI plugins repository?
The file is located at .agents/plugins/marketplace.json relative to the repository root. This path is hardcoded in the plugin discovery logic and referenced in the repository's README.md documentation.
What information does the default marketplace JSON file contain?
The file contains the marketplace identifier (openai-curated), a human-readable display name (Codex official), and a plugins array. Each plugin entry specifies its name, local source path (./plugins/<name>), installation policy (AVAILABLE), authentication timing (ON_INSTALL), and category grouping.
How does the plugin loader use the default marketplace JSON file at runtime?
The loader reads this JSON file during platform initialization to build the list of available plugins. It uses the source.path field to locate plugin code on the filesystem and applies the policy rules to determine whether a plugin can be installed and when authentication should occur.
What is the difference between marketplace.json and api_marketplace.json?
The marketplace.json file defines the full OpenAI-curated marketplace intended for general use, while api_marketplace.json provides an alternative configuration optimized for API-only scenarios. Both files share the same schema but contain different plugin sets tailored to their specific use cases.
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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →