{
  "id": "opencode",
  "icon": "https://cdn.simpleicons.org/opencode",
  "activation": {
    "onStartup": false
  },
  "providerCatalogEntry": "./provider-discovery.ts",
  "enabledByDefault": true,
  "providers": [
    "opencode"
  ],
  "providerEndpoints": [
    {
      "endpointClass": "opencode-native",
      "hostSuffixes": [
        "opencode.ai"
      ]
    }
  ],
  "providerRequest": {
    "providers": {
      "opencode": {
        "family": "opencode"
      }
    }
  },
  "modelCatalog": {
    "providers": {
      "opencode": {
        "baseUrl": "https://opencode.ai/zen/v1",
        "api": "openai-completions",
        "models": [
          {
            "id": "claude-opus-4-8",
            "name": "Claude Opus 4.8",
            "api": "anthropic-messages",
            "provider": "opencode",
            "baseUrl": "https://opencode.ai/zen",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "cost": {
              "input": 5,
              "output": 25,
              "cacheRead": 0.5,
              "cacheWrite": 6.25
            },
            "contextWindow": 200000,
            "maxTokens": 65536,
            "compat": {
              "supportsUsageInStreaming": true,
              "supportsReasoningEffort": true,
              "maxTokensField": "max_tokens"
            }
          },
          {
            "id": "gpt-5.5",
            "name": "GPT-5.5",
            "api": "openai-responses",
            "provider": "opencode",
            "baseUrl": "https://opencode.ai/zen/v1",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "cost": {
              "input": 5,
              "output": 30,
              "cacheRead": 0.5,
              "cacheWrite": 0,
              "tieredPricing": [
                {
                  "input": 5,
                  "output": 30,
                  "cacheRead": 0.5,
                  "cacheWrite": 0,
                  "range": [
                    0,
                    272000
                  ]
                },
                {
                  "input": 10,
                  "output": 45,
                  "cacheRead": 1,
                  "cacheWrite": 0,
                  "range": [
                    272000
                  ]
                }
              ]
            },
            "contextWindow": 400000,
            "maxTokens": 128000,
            "compat": {
              "supportsUsageInStreaming": true,
              "supportsReasoningEffort": true,
              "maxTokensField": "max_tokens"
            }
          },
          {
            "id": "gemini-3.1-pro",
            "name": "Gemini 3.1 Pro",
            "api": "google-generative-ai",
            "provider": "opencode",
            "baseUrl": "https://opencode.ai/zen/v1",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "cost": {
              "input": 2,
              "output": 12,
              "cacheRead": 0.2,
              "cacheWrite": 0,
              "tieredPricing": [
                {
                  "input": 2,
                  "output": 12,
                  "cacheRead": 0.2,
                  "cacheWrite": 0,
                  "range": [
                    0,
                    200000
                  ]
                },
                {
                  "input": 4,
                  "output": 18,
                  "cacheRead": 0.4,
                  "cacheWrite": 0,
                  "range": [
                    200000
                  ]
                }
              ]
            },
            "contextWindow": 1048576,
            "maxTokens": 65536,
            "compat": {
              "supportsUsageInStreaming": true,
              "supportsReasoningEffort": true,
              "maxTokensField": "max_tokens"
            }
          },
          {
            "id": "minimax-m2.7",
            "name": "MiniMax M2.7",
            "api": "openai-completions",
            "provider": "opencode",
            "baseUrl": "https://opencode.ai/zen/v1",
            "reasoning": true,
            "input": [
              "text"
            ],
            "cost": {
              "input": 0.3,
              "output": 1.2,
              "cacheRead": 0.06,
              "cacheWrite": 0.375
            },
            "contextWindow": 204800,
            "maxTokens": 131072,
            "compat": {
              "supportsUsageInStreaming": true,
              "supportsReasoningEffort": true,
              "maxTokensField": "max_tokens",
              "supportsDeveloperRole": false,
              "supportsStrictMode": false
            }
          }
        ]
      }
    },
    "discovery": {
      "opencode": "runtime"
    }
  },
  "setup": {
    "providers": [
      {
        "id": "opencode",
        "envVars": [
          "OPENCODE_API_KEY",
          "OPENCODE_ZEN_API_KEY"
        ]
      }
    ]
  },
  "providerAuthChoices": [
    {
      "provider": "opencode",
      "method": "api-key",
      "choiceId": "opencode-zen",
      "appGuidedSecret": true,
      "choiceLabel": "OpenCode Zen catalog",
      "groupId": "opencode",
      "groupLabel": "OpenCode",
      "groupHint": "Shared API key for Zen + Go catalogs",
      "optionKey": "opencodeZenApiKey",
      "cliFlag": "--opencode-zen-api-key",
      "cliOption": "--opencode-zen-api-key <key>",
      "cliDescription": "OpenCode API key (Zen catalog)"
    }
  ],
  "contracts": {
    "mediaUnderstandingProviders": [
      "opencode"
    ]
  },
  "mediaUnderstandingProviderMetadata": {
    "opencode": {
      "capabilities": [
        "image"
      ],
      "defaultModels": {
        "image": "gpt-5-nano"
      }
    }
  },
  "configSchema": {
    "type": "object",
    "additionalProperties": false,
    "properties": {}
  }
}
