Repository navigation
Open
Description
Feature hasn't been suggested before.
- I have verified this feature I'm about to request hasn't been suggested before.
Describe the enhancement you want to request
opencode.jsoncshould support inheriting data fromanomalyco/models.devvia properties when configuring provider models. This current issue was inspired by Minimax-M3 on NVIDIA NIM models.dev#2671 and fix(provider): correct MiniMax M3 thinking variants #38330 .- Currently, if one wants to use a custom provider in
opencodethat includes both GPT and DeepSeek models, it is easy to end up with a configuration like this in~/.config/opencode/opencode.jsonc.
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"test-website": {
"npm": "@ai-sdk/openai",
"options": {
"baseURL": "https://test.website.com",
"apiKey": "test-key"
},
"models": {
"gpt-5.6-luna": {
"name": "GPT-5.6 Luna","family": "gpt-luna","release_date": "2026-07-09",
"attachment": true,"reasoning": true,"temperature": false,"tool_call": true,
"modalities": {"input": ["text","image","pdf"],"output": ["text"]},
"limit": {"context": 1050000,"input": 922000,"output": 128000}
},
"gpt-5.6-terra": {
"name": "GPT-5.6 Terra","family": "gpt-terra","release_date": "2026-07-09",
"attachment": true,"reasoning": true,"temperature": false,"tool_call": true,
"modalities": {"input": ["text","image","pdf"],"output": ["text"]},
"limit": {"context": 1050000,"input": 922000,"output": 128000}
},
"gpt-5.6-sol": {
"name": "GPT-5.6 Sol","family": "gpt-sol","release_date": "2026-07-09",
"attachment": true,"reasoning": true,"temperature": false,"tool_call": true,
"modalities": {"input": ["text","image","pdf"],"output": ["text"]},
"limit": {"context": 1050000,"input": 922000,"output": 128000}
},
"deepseek-v4-flash": {
"name": "DeepSeek V4 Flash","family": "deepseek-flash","release_date": "2026-04-24",
"attachment": false,"reasoning": false,"temperature": true,"tool_call": true,
"modalities": {"input": ["text"],"output": ["text"]},
"limit": {"context": 1000000,"output": 65536},
"provider": {
"npm": "@ai-sdk/openai-compatible"
},
"variants": {
"low": {"reasoningEffort": "low"},
"medium": {"reasoningEffort": "medium"},
"high": {"reasoningEffort": "high"},
"none": {"reasoningEffort": "none"}
}
}
}
}
}
}- Currently, users are forced to visit https://github.com/anomalyco/models.dev to find configuration details for each model and manually convert model attributes—such as those found in
gpt-5.6-luna.toml,gpt-5.6-terra.toml,gpt-5.6-sol.toml, anddeepseek-v4-flash.toml—from TOML format into the JSON format required byopencode.jsonc. anomalyco/opencodelacks a mechanism for directly referencing configurations fromanomalyco/models.dev. I believe it would be entirely feasible to support configurations withextendsandoverridedirectives, allowingopencode.jsoncto inherit from and override configurations fromanomalyco/models.dev. This would significantly simplify the mental burden of maintaining configurations.
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"test-website": {
"npm": "@ai-sdk/openai",
"options": {
"baseURL": "https://test.website.com",
"apiKey": "test-key"
},
"models": {
"gpt-5.6-luna": {
"extends": {
"url": [
"https://raw.githubusercontent.com/anomalyco/models.dev/refs/heads/dev/models/openai/gpt-5.6-luna.toml",
"https://github.com/anomalyco/models.dev/raw/refs/heads/dev/providers/openai/models/gpt-5.6-luna.toml"
]
}
},
"gpt-5.6-terra": {
"extends": {
"url": [
"https://raw.githubusercontent.com/anomalyco/models.dev/refs/heads/dev/models/openai/gpt-5.6-terra.toml",
"https://raw.githubusercontent.com/anomalyco/models.dev/refs/heads/dev/providers/openai/models/gpt-5.6-terra.toml"
]
}
},
"gpt-5.6-sol": {
"extends": {
"url": "https://raw.githubusercontent.com/anomalyco/models.dev/refs/heads/dev/models/openai/gpt-5.6-sol.toml"
"url": [
"https://raw.githubusercontent.com/anomalyco/models.dev/refs/heads/dev/models/openai/gpt-5.6-sol.toml",
"https://raw.githubusercontent.com/anomalyco/models.dev/refs/heads/dev/providers/openai/models/gpt-5.6-sol.toml"
]
}
},
"deepseek-v4-flash": {
"extends": {
"url": [
"https://raw.githubusercontent.com/anomalyco/models.dev/refs/heads/dev/models/deepseek/deepseek-v4-flash.toml",
"https://raw.githubusercontent.com/anomalyco/models.dev/refs/heads/dev/providers/deepseek/models/deepseek-v4-flash.toml"
]
"override": {
"reasoning": false,
"limit": {
"output": 65536
}
}
},
"provider": {
"npm": "@ai-sdk/openai-compatible"
},
"variants": {
"low": {"reasoningEffort": "low"},
"medium": {"reasoningEffort": "medium"},
"high": {"reasoningEffort": "high"},
"none": {"reasoningEffort": "none"}
}
}
}
}
}
}Metadata
Metadata
Assignees
Labels
No labels
Activity
opencode-agent commentedon Oct 8, 2026
Thanks for re-filing this, @linghengqian. You're asking for a model under a custom provider in
opencode.jsoncto be able to inherit its definition from models.dev (limits, modalities, reasoning, attachment and so on) and override only the fields that differ, so you don't have to copy each TOML file into JSON by hand.Maintainers will consider it. Related issues and PRs:
opencode.jsoncshould support inheriting data fromanomalyco/models.devvia properties when configuring provider models #40156: your earlier identical request, closed automatically for inactivityuse_models_dev: "provider/model"with field overridesextendsfor whole config files (related, but broader)One note on the design: OpenCode v2 already bundles and refreshes the models.dev catalog itself. A reference by catalog ID (for example
openai/gpt-5.6-luna) plus overrides might be simpler for you than fetching raw GitHub TOML URLs, because those paths change when models.dev reorganizes its files.