OpenAI Plugins policy.installation Values: Complete Guide to AVAILABLE and REQUIRED

The policy.installation field in OpenAI plugin manifests accepts exactly two possible string values: "AVAILABLE" for optional user installation or "REQUIRED" for mandatory installation.

The policy.installation field controls how plugins appear in the OpenAI Marketplace and governs whether users must install them to access specific features. According to the source code in the openai/plugins repository, this field is strictly enumerated in the plugin JSON specification found in the plugin-creator tooling. Developers configuring their policy.installation settings must select from the specific values defined in the marketplace policy schema to ensure marketplace compliance.

Where policy.installation Is Defined

The enumeration for policy.installation appears in the plugin creator documentation at .agents/skills/plugin-creator/SKILL.md. Line 90 explicitly marks the section as "Allowed policy.installation values", while line 87 provides the concrete example policy.installation: "AVAILABLE". The formal JSON schema specification resides in .agents/skills/plugin-creator/references/plugin-json-spec.md at line 164, establishing the complete set of valid strings. Additionally, the generation logic in .agents/skills/plugin-creator/scripts/create_basic_plugin.py at line 226 demonstrates how these values are assigned programmatically during manifest creation.

Allowed policy.installation Values

According to the specification files in the openai/plugins repository, the manifest schema restricts policy.installation to a specific enumeration of two valid strings.

AVAILABLE

Setting policy.installation to "AVAILABLE" marks the plugin as optional in the marketplace. Users can view the plugin listing and choose whether to install it, preserving opt-in flexibility for experimental or supplementary tools. This value appears in the SKILL.md examples as the default behavior for non-critical plugins.

REQUIRED

Setting policy.installation to "REQUIRED" designates the plugin as mandatory. When this value is specified, users must install the plugin to access the associated functionality, ensuring critical dependencies are always present. This option is appropriate for authentication providers or core infrastructure components.

Implementation Examples in Plugin Manifests

The repository's plugin generation script at .agents/skills/plugin-creator/scripts/create_basic_plugin.py demonstrates how to assign these enumerated values when constructing plugin manifests programmatically.

Optional Installation with AVAILABLE

To designate a plugin as optional, assign the "AVAILABLE" value in the policy object:

{
  "name_for_human": "Productivity Assistant",
  "description_for_human": "Optional productivity tools",
  "policy": {
    "installation": "AVAILABLE",
    "authentication": "USER"
  },
  "category": "PRODUCTIVITY"
}

This configuration allows users to discover the plugin without forcing installation, matching the example pattern found in the SKILL.md documentation.

Mandatory Installation with REQUIRED

For plugins that must be installed to function correctly, specify the "REQUIRED" value:

{
  "name_for_human": "Security Toolkit",
  "description_for_human": "Mandatory security validation",
  "policy": {
    "installation": "REQUIRED",
    "authentication": "SYSTEM"
  },
  "category": "SECURITY"
}

This ensures the plugin is treated as a hard dependency within the OpenAI Marketplace ecosystem.

Summary

Frequently Asked Questions

What happens if I omit the policy.installation field from my manifest?

Omitting the field will cause validation failures during the OpenAI Marketplace review process. The schema definition in .agents/skills/plugin-creator/references/plugin-json-spec.md explicitly enumerates this field, and the SKILL.md documentation at line 90 lists the allowed values, indicating the field is mandatory for marketplace submission.

Can I use lowercase values like "available" or "required" instead?

No. The source specification in .agents/skills/plugin-creator/SKILL.md defines the values as uppercase strings: "AVAILABLE" and "REQUIRED". The JSON schema validation is case-sensitive, and only these exact capitalized forms will pass the marketplace validation pipeline implemented in the plugin-creator tooling.

When should I choose REQUIRED over AVAILABLE for my plugin?

Select "REQUIRED" when your plugin provides core functionality that cannot function as an optional add-on, such as authentication gateways or critical data source connectors. Choose "AVAILABLE" for utility plugins, experimental features, or supplementary tools that enhance but do not define the primary user experience. The create_basic_plugin.py script defaults to "AVAILABLE" unless explicitly overridden for mandatory system components.

Are there any other policy.installation values planned for future releases?

Based on the current source code analysis of .agents/skills/plugin-creator/references/plugin-json-spec.md and related files, the schema strictly defines only two enumeration values. No additional states or partial-installation options appear in the current implementation of the openai/plugins repository.

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 →