{ "id": "opencode", "icon": "https://cdn.simpleicons.org/opencode", "activation": { "onStartup": true }, "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-5", "name": "Claude Opus 5", "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": 1000000, "maxTokens": 128000, "compat": { "supportsUsageInStreaming": true, "supportsReasoningEffort": true, "maxTokensField": "max_tokens", "codeMode": "capable" } }, { "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": 1000000, "maxTokens": 128000, "compat": { "supportsUsageInStreaming": true, "supportsReasoningEffort": true, "maxTokensField": "max_tokens", "codeMode": "capable" }, "status": "deprecated", "replacedBy": "claude-opus-5" }, { "id": "gpt-5.6-sol", "name": "GPT-5.6 Sol", "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": 6.25, "tieredPricing": [ { "input": 5, "output": 30, "cacheRead": 0.5, "cacheWrite": 6.25, "range": [ 0, 272000 ] }, { "input": 10, "output": 45, "cacheRead": 1, "cacheWrite": 12.5, "range": [ 272000 ] } ] }, "contextWindow": 1050000, "maxTokens": 128000, "compat": { "supportsUsageInStreaming": true, "supportsReasoningEffort": true, "supportedReasoningEfforts": [ "none", "low", "medium", "high", "xhigh", "max" ], "maxTokensField": "max_tokens", "codeMode": "capable" } }, { "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": 1050000, "maxTokens": 128000, "compat": { "supportsUsageInStreaming": true, "supportsReasoningEffort": true, "maxTokensField": "max_tokens", "codeMode": "capable" }, "status": "deprecated", "replacedBy": "gpt-5.6-sol" }, { "id": "gemini-3.6-flash", "name": "Gemini 3.6 Flash", "api": "google-generative-ai", "provider": "opencode", "baseUrl": "https://opencode.ai/zen/v1", "reasoning": true, "input": [ "text", "image" ], "cost": { "input": 1.5, "output": 7.5, "cacheRead": 0.15, "cacheWrite": 0 }, "contextWindow": 1048576, "maxTokens": 65536, "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-m3", "name": "MiniMax M3", "api": "openai-completions", "provider": "opencode", "baseUrl": "https://opencode.ai/zen/v1", "reasoning": true, "input": [ "text", "image" ], "cost": { "input": 0.3, "output": 1.2, "cacheRead": 0.06, "cacheWrite": 0 }, "contextWindow": 512000, "maxTokens": 128000, "compat": { "supportsUsageInStreaming": true, "supportsReasoningEffort": true, "maxTokensField": "max_tokens", "supportsDeveloperRole": false, "supportsStrictMode": false } }, { "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 }, "contextWindow": 204800, "maxTokens": 131072, "compat": { "supportsUsageInStreaming": true, "supportsReasoningEffort": true, "maxTokensField": "max_tokens", "supportsDeveloperRole": false, "supportsStrictMode": false }, "status": "deprecated", "replacedBy": "minimax-m3" }, { "id": "big-pickle", "name": "Big Pickle", "api": "openai-completions", "provider": "opencode", "baseUrl": "https://opencode.ai/zen/v1", "reasoning": true, "input": [ "text" ], "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }, "contextWindow": 200000, "maxTokens": 32000, "compat": { "supportsUsageInStreaming": true, "supportsReasoningEffort": true, "maxTokensField": "max_tokens", "supportsDeveloperRole": false, "supportsStrictMode": false } }, { "id": "deepseek-v4-flash-free", "name": "DeepSeek V4 Flash Free", "api": "openai-completions", "provider": "opencode", "baseUrl": "https://opencode.ai/zen/v1", "reasoning": true, "input": [ "text" ], "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }, "contextWindow": 200000, "maxTokens": 128000, "compat": { "supportsUsageInStreaming": true, "supportsReasoningEffort": true, "maxTokensField": "max_tokens", "supportsDeveloperRole": false, "supportsStrictMode": false } }, { "id": "mimo-v2.5-free", "name": "MiMo V2.5 Free", "api": "openai-completions", "provider": "opencode", "baseUrl": "https://opencode.ai/zen/v1", "reasoning": true, "input": [ "text", "image" ], "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }, "contextWindow": 200000, "maxTokens": 32000, "compat": { "supportsUsageInStreaming": true, "supportsReasoningEffort": true, "maxTokensField": "max_tokens", "supportsDeveloperRole": false, "supportsStrictMode": false } }, { "id": "laguna-s-2.1-free", "name": "Laguna S 2.1 Free", "api": "openai-completions", "provider": "opencode", "baseUrl": "https://opencode.ai/zen/v1", "reasoning": true, "input": [ "text" ], "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }, "contextWindow": 256000, "maxTokens": 32000, "compat": { "supportsUsageInStreaming": true, "supportsReasoningEffort": true, "maxTokensField": "max_tokens", "supportsDeveloperRole": false, "supportsStrictMode": false } }, { "id": "ling-3.0-flash-free", "name": "Ling-3.0-flash Free", "api": "openai-completions", "provider": "opencode", "baseUrl": "https://opencode.ai/zen/v1", "reasoning": true, "input": [ "text" ], "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }, "contextWindow": 262144, "maxTokens": 32768, "compat": { "supportsUsageInStreaming": true, "supportsReasoningEffort": true, "maxTokensField": "max_tokens", "supportsDeveloperRole": false, "supportsStrictMode": false } }, { "id": "nemotron-3-ultra-free", "name": "Nemotron 3 Ultra Free", "api": "openai-completions", "provider": "opencode", "baseUrl": "https://opencode.ai/zen/v1", "reasoning": true, "input": [ "text" ], "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }, "contextWindow": 1000000, "maxTokens": 128000, "compat": { "supportsUsageInStreaming": true, "supportsReasoningEffort": true, "maxTokensField": "max_tokens", "supportsDeveloperRole": false, "supportsStrictMode": false } }, { "id": "north-mini-code-free", "name": "North Mini Code Free", "api": "openai-completions", "provider": "opencode", "baseUrl": "https://opencode.ai/zen/v1", "reasoning": true, "input": [ "text" ], "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }, "contextWindow": 256000, "maxTokens": 64000, "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 ", "cliDescription": "OpenCode API key (Zen catalog)" } ], "contracts": { "mediaUnderstandingProviders": [ "opencode" ] }, "mediaUnderstandingProviderMetadata": { "opencode": { "capabilities": [ "image" ], "defaultModels": { "image": "gpt-5-nano" } } }, "configSchema": { "type": "object", "additionalProperties": false, "properties": { "sessionCatalog": { "type": "object", "additionalProperties": false, "properties": { "enabled": { "type": "boolean", "default": true } } } } }, "uiHints": { "sessionCatalog.enabled": { "label": "OpenCode Session Catalog", "help": "Auto-detect OpenCode sessions on the Gateway and paired nodes, then show them in the sessions sidebar." } } }