{
  "id": "openai",
  "activation": {
    "onStartup": false
  },
  "enabledByDefault": true,
  "providers": [
    "openai",
    "openai-codex"
  ],
  "modelSupport": {
    "modelPrefixes": [
      "gpt-",
      "o1",
      "o3",
      "o4"
    ]
  },
  "modelPricing": {
    "providers": {
      "openai-codex": {
        "openRouter": {
          "provider": "openai"
        },
        "liteLLM": {
          "provider": "openai"
        }
      }
    }
  },
  "providerEndpoints": [
    {
      "endpointClass": "openai-public",
      "hosts": [
        "api.openai.com"
      ]
    },
    {
      "endpointClass": "openai-codex",
      "hosts": [
        "chatgpt.com"
      ]
    },
    {
      "endpointClass": "azure-openai",
      "hostSuffixes": [
        ".openai.azure.com"
      ]
    }
  ],
  "providerRequest": {
    "providers": {
      "openai": {
        "family": "openai-family"
      },
      "openai-codex": {
        "family": "openai-family"
      }
    }
  },
  "modelCatalog": {
    "providers": {
      "openai": {
        "baseUrl": "https://api.openai.com/v1",
        "api": "openai-responses",
        "models": [
          {
            "id": "gpt-4",
            "name": "GPT-4",
            "reasoning": false,
            "input": [
              "text"
            ],
            "contextWindow": 8192,
            "maxTokens": 8192,
            "cost": {
              "input": 30,
              "output": 60,
              "cacheRead": 0,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-4-turbo",
            "name": "GPT-4 Turbo",
            "reasoning": false,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 128000,
            "maxTokens": 4096,
            "cost": {
              "input": 10,
              "output": 30,
              "cacheRead": 0,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-4.1",
            "name": "GPT-4.1",
            "reasoning": false,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 1047576,
            "maxTokens": 32768,
            "cost": {
              "input": 2,
              "output": 8,
              "cacheRead": 0.5,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-4.1-mini",
            "name": "GPT-4.1 mini",
            "reasoning": false,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 1047576,
            "maxTokens": 32768,
            "cost": {
              "input": 0.4,
              "output": 1.6,
              "cacheRead": 0.1,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-4.1-nano",
            "name": "GPT-4.1 nano",
            "reasoning": false,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 1047576,
            "maxTokens": 32768,
            "cost": {
              "input": 0.1,
              "output": 0.4,
              "cacheRead": 0.03,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-4o",
            "name": "GPT-4o",
            "reasoning": false,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 128000,
            "maxTokens": 16384,
            "cost": {
              "input": 2.5,
              "output": 10,
              "cacheRead": 1.25,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-4o-2024-05-13",
            "name": "GPT-4o (2024-05-13)",
            "reasoning": false,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 128000,
            "maxTokens": 4096,
            "cost": {
              "input": 5,
              "output": 15,
              "cacheRead": 0,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-4o-2024-08-06",
            "name": "GPT-4o (2024-08-06)",
            "reasoning": false,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 128000,
            "maxTokens": 16384,
            "cost": {
              "input": 2.5,
              "output": 10,
              "cacheRead": 1.25,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-4o-2024-11-20",
            "name": "GPT-4o (2024-11-20)",
            "reasoning": false,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 128000,
            "maxTokens": 16384,
            "cost": {
              "input": 2.5,
              "output": 10,
              "cacheRead": 1.25,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-4o-mini",
            "name": "GPT-4o mini",
            "reasoning": false,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 128000,
            "maxTokens": 16384,
            "cost": {
              "input": 0.15,
              "output": 0.6,
              "cacheRead": 0.08,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5",
            "name": "GPT-5",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 400000,
            "maxTokens": 128000,
            "cost": {
              "input": 1.25,
              "output": 10,
              "cacheRead": 0.125,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5-chat-latest",
            "name": "GPT-5 Chat Latest",
            "reasoning": false,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 128000,
            "maxTokens": 16384,
            "cost": {
              "input": 1.25,
              "output": 10,
              "cacheRead": 0.125,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5-codex",
            "name": "GPT-5-Codex",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 400000,
            "maxTokens": 128000,
            "cost": {
              "input": 1.25,
              "output": 10,
              "cacheRead": 0.125,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5-mini",
            "name": "GPT-5 Mini",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 400000,
            "maxTokens": 128000,
            "cost": {
              "input": 0.25,
              "output": 2,
              "cacheRead": 0.025,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5-nano",
            "name": "GPT-5 Nano",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 400000,
            "maxTokens": 128000,
            "cost": {
              "input": 0.05,
              "output": 0.4,
              "cacheRead": 0.005,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5-pro",
            "name": "GPT-5 Pro",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 400000,
            "maxTokens": 272000,
            "cost": {
              "input": 15,
              "output": 120,
              "cacheRead": 0,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5.1",
            "name": "GPT-5.1",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 400000,
            "maxTokens": 128000,
            "cost": {
              "input": 1.25,
              "output": 10,
              "cacheRead": 0.13,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5.1-chat-latest",
            "name": "GPT-5.1 Chat",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 128000,
            "maxTokens": 16384,
            "cost": {
              "input": 1.25,
              "output": 10,
              "cacheRead": 0.125,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5.1-codex",
            "name": "GPT-5.1 Codex",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 400000,
            "maxTokens": 128000,
            "cost": {
              "input": 1.25,
              "output": 10,
              "cacheRead": 0.125,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5.1-codex-max",
            "name": "GPT-5.1 Codex Max",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 400000,
            "maxTokens": 128000,
            "cost": {
              "input": 1.25,
              "output": 10,
              "cacheRead": 0.125,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5.1-codex-mini",
            "name": "GPT-5.1 Codex mini",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 400000,
            "maxTokens": 128000,
            "cost": {
              "input": 0.25,
              "output": 2,
              "cacheRead": 0.025,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5.2",
            "name": "GPT-5.2",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 400000,
            "maxTokens": 128000,
            "cost": {
              "input": 1.75,
              "output": 14,
              "cacheRead": 0.175,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5.2-chat-latest",
            "name": "GPT-5.2 Chat",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 128000,
            "maxTokens": 16384,
            "cost": {
              "input": 1.75,
              "output": 14,
              "cacheRead": 0.175,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5.2-codex",
            "name": "GPT-5.2 Codex",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 400000,
            "maxTokens": 128000,
            "cost": {
              "input": 1.75,
              "output": 14,
              "cacheRead": 0.175,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5.2-pro",
            "name": "GPT-5.2 Pro",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 400000,
            "maxTokens": 128000,
            "cost": {
              "input": 21,
              "output": 168,
              "cacheRead": 0,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5.3-chat-latest",
            "name": "GPT-5.3 Chat (latest)",
            "reasoning": false,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 128000,
            "maxTokens": 16384,
            "cost": {
              "input": 1.75,
              "output": 14,
              "cacheRead": 0.175,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5.3-codex",
            "name": "GPT-5.3 Codex",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 400000,
            "maxTokens": 128000,
            "cost": {
              "input": 1.75,
              "output": 14,
              "cacheRead": 0.175,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5.4",
            "name": "GPT-5.4",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 272000,
            "maxTokens": 128000,
            "cost": {
              "input": 2.5,
              "output": 15,
              "cacheRead": 0.25,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5.4-mini",
            "name": "GPT-5.4 mini",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 400000,
            "maxTokens": 128000,
            "cost": {
              "input": 0.75,
              "output": 4.5,
              "cacheRead": 0.075,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5.4-nano",
            "name": "GPT-5.4 nano",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 400000,
            "maxTokens": 128000,
            "cost": {
              "input": 0.2,
              "output": 1.25,
              "cacheRead": 0.02,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5.4-pro",
            "name": "GPT-5.4 Pro",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 1050000,
            "maxTokens": 128000,
            "cost": {
              "input": 30,
              "output": 180,
              "cacheRead": 0,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5.5",
            "name": "GPT-5.5",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 272000,
            "maxTokens": 128000,
            "cost": {
              "input": 5,
              "output": 30,
              "cacheRead": 0.5,
              "cacheWrite": 0
            }
          },
          {
            "id": "o1",
            "name": "o1",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 200000,
            "maxTokens": 100000,
            "cost": {
              "input": 15,
              "output": 60,
              "cacheRead": 7.5,
              "cacheWrite": 0
            }
          },
          {
            "id": "o1-pro",
            "name": "o1-pro",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 200000,
            "maxTokens": 100000,
            "cost": {
              "input": 150,
              "output": 600,
              "cacheRead": 0,
              "cacheWrite": 0
            }
          },
          {
            "id": "o3",
            "name": "o3",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 200000,
            "maxTokens": 100000,
            "cost": {
              "input": 2,
              "output": 8,
              "cacheRead": 0.5,
              "cacheWrite": 0
            }
          },
          {
            "id": "o3-deep-research",
            "name": "o3-deep-research",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 200000,
            "maxTokens": 100000,
            "cost": {
              "input": 10,
              "output": 40,
              "cacheRead": 2.5,
              "cacheWrite": 0
            }
          },
          {
            "id": "o3-mini",
            "name": "o3-mini",
            "reasoning": true,
            "input": [
              "text"
            ],
            "contextWindow": 200000,
            "maxTokens": 100000,
            "cost": {
              "input": 1.1,
              "output": 4.4,
              "cacheRead": 0.55,
              "cacheWrite": 0
            }
          },
          {
            "id": "o3-pro",
            "name": "o3-pro",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 200000,
            "maxTokens": 100000,
            "cost": {
              "input": 20,
              "output": 80,
              "cacheRead": 0,
              "cacheWrite": 0
            }
          },
          {
            "id": "o4-mini",
            "name": "o4-mini",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 200000,
            "maxTokens": 100000,
            "cost": {
              "input": 1.1,
              "output": 4.4,
              "cacheRead": 0.28,
              "cacheWrite": 0
            }
          },
          {
            "id": "o4-mini-deep-research",
            "name": "o4-mini-deep-research",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 200000,
            "maxTokens": 100000,
            "cost": {
              "input": 2,
              "output": 8,
              "cacheRead": 0.5,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5.5-pro",
            "name": "gpt-5.5-pro",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 1000000,
            "maxTokens": 128000,
            "cost": {
              "input": 30,
              "output": 180,
              "cacheRead": 0,
              "cacheWrite": 0
            }
          }
        ]
      },
      "openai-codex": {
        "baseUrl": "https://chatgpt.com/backend-api/codex",
        "api": "openai-codex-responses",
        "models": [
          {
            "id": "gpt-5.4-pro",
            "name": "gpt-5.4-pro",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 1050000,
            "contextTokens": 272000,
            "maxTokens": 128000,
            "cost": {
              "input": 30,
              "output": 180,
              "cacheRead": 0,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5.4-mini",
            "name": "gpt-5.4-mini",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 400000,
            "contextTokens": 272000,
            "maxTokens": 128000,
            "cost": {
              "input": 0.75,
              "output": 4.5,
              "cacheRead": 0.075,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5.5-pro",
            "name": "gpt-5.5-pro",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 1000000,
            "contextTokens": 272000,
            "maxTokens": 128000,
            "cost": {
              "input": 30,
              "output": 180,
              "cacheRead": 0,
              "cacheWrite": 0
            }
          }
        ]
      }
    },
    "aliases": {
      "azure-openai-responses": {
        "provider": "openai",
        "api": "azure-openai-responses"
      }
    },
    "discovery": {
      "openai": "static",
      "openai-codex": "refreshable"
    },
    "suppressions": [
      {
        "provider": "openai",
        "model": "gpt-5.3-codex-spark",
        "reason": "gpt-5.3-codex-spark is no longer exposed by the OpenAI or Codex catalogs. Use openai/gpt-5.5."
      },
      {
        "provider": "azure-openai-responses",
        "model": "gpt-5.3-codex-spark",
        "reason": "gpt-5.3-codex-spark is no longer exposed by the OpenAI or Codex catalogs. Use openai/gpt-5.5."
      },
      {
        "provider": "openai-codex",
        "model": "gpt-5.3-codex-spark",
        "reason": "gpt-5.3-codex-spark is no longer exposed by the OpenAI or Codex catalogs. Use openai/gpt-5.5."
      }
    ]
  },
  "cliBackends": [
    "codex-cli"
  ],
  "providerAuthEnvVars": {
    "openai": [
      "OPENAI_API_KEY"
    ]
  },
  "providerAuthChoices": [
    {
      "provider": "openai-codex",
      "method": "oauth",
      "choiceId": "openai-codex",
      "deprecatedChoiceIds": [
        "codex-cli",
        "openai-codex-import"
      ],
      "choiceLabel": "OpenAI Codex Browser Login",
      "choiceHint": "Sign in with OpenAI in your browser",
      "assistantPriority": -30,
      "groupId": "openai-codex",
      "groupLabel": "OpenAI Codex",
      "groupHint": "ChatGPT/Codex sign-in"
    },
    {
      "provider": "openai-codex",
      "method": "device-code",
      "choiceId": "openai-codex-device-code",
      "choiceLabel": "OpenAI Codex Device Pairing",
      "choiceHint": "Pair in browser with a device code",
      "assistantPriority": -10,
      "groupId": "openai-codex",
      "groupLabel": "OpenAI Codex",
      "groupHint": "ChatGPT/Codex sign-in"
    },
    {
      "provider": "openai",
      "method": "api-key",
      "choiceId": "openai-api-key",
      "choiceLabel": "OpenAI API Key",
      "assistantPriority": -40,
      "groupId": "openai",
      "groupLabel": "OpenAI",
      "groupHint": "Direct API key",
      "optionKey": "openaiApiKey",
      "cliFlag": "--openai-api-key",
      "cliOption": "--openai-api-key <key>",
      "cliDescription": "OpenAI API Key"
    }
  ],
  "contracts": {
    "speechProviders": [
      "openai"
    ],
    "realtimeTranscriptionProviders": [
      "openai"
    ],
    "realtimeVoiceProviders": [
      "openai"
    ],
    "memoryEmbeddingProviders": [
      "openai"
    ],
    "mediaUnderstandingProviders": [
      "openai",
      "openai-codex"
    ],
    "imageGenerationProviders": [
      "openai"
    ],
    "videoGenerationProviders": [
      "openai"
    ]
  },
  "imageGenerationProviderMetadata": {
    "openai": {
      "aliases": [
        "openai-codex"
      ],
      "authSignals": [
        {
          "provider": "openai"
        },
        {
          "provider": "openai-codex",
          "providerBaseUrl": {
            "provider": "openai",
            "defaultBaseUrl": "https://api.openai.com/v1",
            "allowedBaseUrls": [
              "https://api.openai.com/v1"
            ]
          }
        }
      ]
    }
  },
  "mediaUnderstandingProviderMetadata": {
    "openai": {
      "capabilities": [
        "image",
        "audio"
      ],
      "defaultModels": {
        "image": "gpt-5.4-mini",
        "audio": "gpt-4o-transcribe"
      },
      "autoPriority": {
        "image": 10,
        "audio": 10
      }
    },
    "openai-codex": {
      "capabilities": [
        "image",
        "audio"
      ],
      "defaultModels": {
        "image": "gpt-5.5",
        "audio": "gpt-4o-transcribe"
      },
      "autoPriority": {
        "image": 20,
        "audio": 20
      }
    }
  },
  "configSchema": {
    "type": "object",
    "additionalProperties": false,
    "properties": {
      "personality": {
        "type": "string",
        "enum": [
          "friendly",
          "on",
          "off"
        ],
        "default": "friendly",
        "description": "Legacy compatibility fallback for the shared GPT-5 friendly interaction-style overlay. Prefer agents.defaults.promptOverlays.gpt5.personality. `friendly` and `on` enable the style overlay; `off` disables only that style layer."
      }
    }
  }
}
