Compare commits

..

1192 Commits

Author SHA1 Message Date
Luke Parker 589619e2aa fix(web): restore provider logo tint for external SVGs
Normalize built and served logo SVGs so currentColor resolves to the themed gray used before provider logos moved to external images.
2026-04-20 18:05:41 +10:00
Luke Parker 041b6a3aef feat(web): load model rows from /api.json
Shrink the initial HTML payload by keeping the table shell server-rendered and filling rows client-side. This preserves the current UI while removing the giant SSR table from the document.
2026-04-20 17:53:36 +10:00
Aiden Cline 1a41934e55 Merge pull request #1448 from Lydanne/dev
feat(302ai): supplement commonly missing models
2026-04-19 22:19:18 -05:00
Aiden Cline aeb4caec9f Merge pull request #1488 from Sewer56/add-wafer-provider
Add wafer.ai provider
2026-04-19 22:19:06 -05:00
Aiden Cline ccb8dcc65f Merge pull request #1493 from rovo89/patch-1
Add context_over_200k for gemini-2.5-pro and adjust cache_read costs
2026-04-19 22:17:45 -05:00
Lyda 435ec1df7b feat(302ai): add claude-opus-4-7 model 2026-04-20 11:14:27 +08:00
Robert Vollmer 7c9d609143 Add context_over_200k for gemini-2.5-pro and adjust cache_read costs
https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro
https://cloud.google.com/vertex-ai/generative-ai/pricing#gemini-models-2.5 (rounds 0.125 to 0.13)
2026-04-20 00:09:11 +02:00
Aiden Cline add7947164 Merge pull request #1492 from dpuyosa/feat/venice-add-gemma4-uncensored
Venice: Add Gemma 4 and Venice Uncensored 1.2 models
2026-04-19 16:52:28 -05:00
Aiden Cline dd0c1af12a Merge pull request #1491 from dpuyosa/chore/venice-pricing-update
Venice: Update pricing for Grok 4.20 and Qwen3.5 9B
2026-04-19 16:52:15 -05:00
Aiden Cline 0c93cc03be Merge pull request #1485 from anomalyco/more-extends-cases
migrate more providers to extends format
2026-04-19 16:51:58 -05:00
Aiden Cline 62e25b73f8 Merge branch 'dev' into more-extends-cases 2026-04-19 16:47:05 -05:00
Aiden Cline 17093e0031 Merge pull request #1489 from berget-ai/update/berget-prices-gemma4
chore: update berget.ai models - prices and Gemma 4
2026-04-19 16:42:06 -05:00
Aiden Cline ae542978f0 Merge pull request #1490 from BlockListed/cortecs-add-claude-opus-4-7
add claude opus 4.7
2026-04-19 16:41:36 -05:00
dpuyosa 7f16117bba [venice] Add Gemma 4 and Venice Uncensored 1.2 models
- Add Gemma 4 Uncensored with 256K context, image support
- Add Venice Uncensored 1.2 with 128K context, image support
- Both models support tool calls and structured output
2026-04-19 23:41:17 +02:00
dpuyosa 2b96a2d3d6 [venice-models] Update pricing for Grok 4.20 and Qwen3.5 9B
- Update cache_read pricing for Grok 4.20 context_over_200k (0.23 → 0.45)
- Update input cost for Qwen3.5 9B (0.05 → 0.1)
2026-04-19 23:38:20 +02:00
BlockListed 9799a841c6 add claude opus 4.7
yes this model id is correct, cortecs is weird.
2026-04-19 23:13:58 +02:00
Christian Landgren 71c59b4235 chore: update berget.ai models - prices and Gemma 4
- Add Google Gemma 4 31B Instruct model
- Update prices for existing models (EUR to USD conversion)
- Remove non-coding models (bge-reranker, multilingual-e5 embeddings, kb-whisper)
- Remove deprecated Llama-3.1-8B-Instruct

Updated models:
- GLM-4.7: 0.77/2.75 USD/M (was 0.7/2.3)
- Llama-3.3-70B: 0.99/0.99 USD/M (was 0.9/0.9)
- Mistral-Small-3.2: 0.33/0.33 USD/M (was 0.3/0.3)
- GPT-OSS-120B: 0.44/0.99 USD/M (was 0.3/0.9)

New models:
- Gemma-4-31B-it: 0.275/0.55 USD/M

Removed models (not relevant for coding):
- BAAI/bge-reranker-v2-m3 (reranker)
- intfloat/multilingual-e5-large/* (embeddings)
- KBLab/kb-whisper-large (speech-to-text)
- meta-llama/Llama-3.1-8B-Instruct (deprecated)
2026-04-19 12:19:32 +02:00
Sewer56 0568b412aa Add wafer.ai provider with GLM-5.1 and Qwen3.5-397B-A17B models 2026-04-19 03:02:04 +01:00
Aiden Cline 812612465a Merge pull request #1484 from smakosh/feat/llmgateway-new-models
feat: update LLM Gateway to 182 models
2026-04-18 18:37:26 -05:00
Aiden Cline ac8a79dd74 Merge pull request #1487 from WJQSERVER/add/nvidia(nim)-z-ai-glm-5.1
Add Z.AI GLM-5.1 to NVIDIA(NIM)
2026-04-18 18:36:55 -05:00
smakosh 9460d981d4 fix: replace broken extends with concrete glm-4.6v-flash def
zhipuai/glm-4.6v-flash.toml is a symlink to zai/models/glm-4.6v-flash.toml
which does not exist, causing validate to fail with 'Unable to resolve
extends.from'. Inline the concrete definition instead.
2026-04-18 13:36:52 +02:00
smakosh 91db9d81ec feat: update LLM Gateway to 182 models
- Uses extends to reference canonical providers where
  possible (116 models), keeping 66 full definitions
- Only includes active text/chat models
- Adds new models: Claude Opus 4.7, Grok 4 Fast,
  Kimi K2, Mimo V2, GLM 5.1, Qwen 3 Coder, and more

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-18 13:20:41 +02:00
Jack d8d5f08df6 Merge pull request #1486 from chl-0537/feature/add-tencent
feat: add new provider and model
2026-04-18 17:30:53 +08:00
WJQSERVER 11d5443ab1 follow the nim modelcard change context length to 131072
https://build.nvidia.com/z-ai/glm-5.1/modelcard
Other Properties Related to Input: Supports multi-turn conversations, tool calling, system prompts, and extended agentic sessions. Input context length: 131,072 tokens.
2026-04-18 16:48:29 +08:00
wjqserver 90558e9eed add glm-5.1 2026-04-18 16:41:02 +08:00
Aiden Cline cb7d258e33 migrate more providers to extends format 2026-04-17 23:02:34 -05:00
Frank 2af43dc4f8 update zen models 2026-04-17 19:08:05 -04:00
Aiden Cline 93ddb6b131 Merge pull request #1482 from sopial42/ovhcloud/update-models-clean
chore(ovhcloud): remove 3 models no longer available in AI Endpoints
2026-04-17 16:50:53 -05:00
Aiden Cline 04bf671f18 Merge pull request #1481 from Spherrrical/add-digitalocean-provider
feat(provider): add DigitalOcean provider
2026-04-17 16:49:44 -05:00
Aiden Cline 1f3ba4ba21 Merge pull request #1483 from anomalyco/add-extends-support
feat: add extends support
2026-04-17 16:49:23 -05:00
Aiden Cline 305bdb6cdc Merge branch 'dev' into add-extends-support 2026-04-17 16:22:41 -05:00
Aiden Cline 2e5b4b44ae update some modes 2026-04-17 16:22:14 -05:00
aadhondt bb1c08dd41 chore(ovhcloud): remove 3 models no longer available in AI Endpoints
- deepseek-r1-distill-llama-70b
- mixtral-8x7b-instruct-v0.1
- qwen2.5-coder-32b-instruct

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 22:38:35 +02:00
Spherrrical 86d0f14397 feat(digitalocean): add DigitalOcean Gradient AI Platform provider
Adds the DigitalOcean provider with 46 models (Anthropic, OpenAI,
Arcee, fal, and DO-hosted open-source/embedding models) served via
the OpenAI-compatible endpoint at https://inference.do-ai.run/v1.
2026-04-17 13:07:47 -07:00
Aiden Cline f93c1a8998 Merge pull request #1478 from Kaspazza/dev
Add Github Copilot Claude Opus 4.7
2026-04-17 15:01:04 -05:00
Aiden Cline 27a6758eb7 new gen script 2026-04-17 14:57:57 -05:00
Aiden Cline 9dbafb81fa add script 2026-04-17 14:57:41 -05:00
Aiden Cline 419f8a3a20 add migration checker script 2026-04-17 14:57:32 -05:00
Aiden Cline 785a091073 Merge pull request #1480 from nicocasaisd/openai/remove-deprecated-codex-mini-latest
chore(openai): remove deprecated model codex-mini-latest
2026-04-17 14:52:34 -05:00
nicocasaisd ad2409dce1 chore(openai): remove deprecated model codex-mini-latest 2026-04-17 15:35:43 -03:00
kaspazza 63450ab67d Add Github Copilot Claude Opus 4.7 2026-04-17 20:19:36 +02:00
Aiden Cline 4002cb6739 model 2026-04-17 13:11:51 -05:00
Aiden Cline 72fa27a91e Merge pull request #1474 from vglafirov/add-gitlab-duo-chat-opus-4-7
feat(gitlab): add duo-chat-opus-4-7 model definition
2026-04-17 12:37:36 -05:00
Aiden Cline ddb3a0ff05 update agents.md 2026-04-17 12:14:04 -05:00
Aiden Cline 96c12042bc remeda 2026-04-17 12:13:54 -05:00
mickalchen 73b81ac027 add tencent provider 2026-04-17 17:27:35 +08:00
Vladimir Glafirov 9c5839a414 feat(gitlab): add duo-chat-opus-4-7 model definition 2026-04-17 08:54:07 +02:00
Aiden Cline 721464bc3c Merge pull request #1469 from GrahamCampbell/ops-4-7-fixes
Corrected and normalized claude opus 4.7 knowledge cut-off dates
2026-04-16 22:30:13 -05:00
Aiden Cline b6b45a9d25 Merge pull request #1463 from GrahamCampbell/claude-4-6
Correct Anthropic Claude 4.6 model knowledge cut-off dates
2026-04-16 21:36:19 -05:00
Aiden Cline 7b8f98bb23 Merge pull request #1471 from cfbender/fix/openrouter-opus-4-7
feat: add openrouter opus 4.7
2026-04-16 21:35:52 -05:00
Aiden Cline 92ac48b07f Merge pull request #1473 from fhennerkes/dev
Poe: add Claude-Opus-4.7
2026-04-16 20:57:21 -05:00
fhennerkes 36a455ce4a Merge branch 'anomalyco:dev' into dev 2026-04-16 18:11:32 -07:00
fhennerkes 0bf5c60319 poe: add Claude-Opus-4.7 model
Add new Anthropic model from Poe API (released 2026-04-15):
- Reasoning support
- 1M context window with 128K output
- Cost: $4.3/M input, $21/M output, $0.43/M cache read, $5.4/M cache write
- Modalities: text, image, pdf
2026-04-16 18:08:02 -07:00
Kit Langton b123711494 Merge pull request #1472 from elithrar/patch-4
cloudflare: add opus 4.7
2026-04-16 19:38:46 -04:00
Matt Silverlock 832064c1d1 cloudflare: add opus 4.7 2026-04-16 18:51:54 -04:00
Cody Bender c16e1c817b fix: add openrouter opus 4.7 2026-04-16 18:38:36 -04:00
Aiden Cline 8aaf31711b Merge pull request #1468 from heimoshuiyu/fix/opus-4-7-temperature
fix: set temperature=false for Claude Opus 4.7
2026-04-16 14:34:52 -05:00
Graham Campbell ca6acf0b3e Corrected and normalized claude opus 4.7 knowledge cut-off dates 2026-04-16 20:33:49 +01:00
heimoshuiyu 660a672647 fix: set temperature=false for firmware and venice Opus 4.7 2026-04-17 03:23:11 +08:00
heimoshuiyu 147cb3138a fix: set temperature=false for Claude Opus 4.7 across all providers 2026-04-17 03:22:33 +08:00
Aiden Cline 5c1fb729fd Merge pull request #1462 from dpuyosa/dev
Venice: Add Claude Opus 4.7 and remove deprecated models
2026-04-16 14:10:03 -05:00
Aiden Cline 0d34900078 Merge pull request #1464 from cgilly2fast/dev
feat(firmware): opus 4.7 remove old claude models
2026-04-16 14:09:39 -05:00
Aiden Cline 4bc71918f5 Merge pull request #1467 from vercel/update-vercel-models-20260416-1812
Update Vercel models
2026-04-16 13:34:40 -05:00
Jerilyn Zheng 6f62522505 Set temperature to false in claude-opus-4.7 configuration
Changed temperature setting from true to false.
2026-04-16 11:23:29 -07:00
Aiden Cline 7680a1d169 Merge pull request #1466 from vercel/fix-reranking-type-upstream
fix(vercel): accept reranking model type from API
2026-04-16 13:22:29 -05:00
github-actions[bot] bdc15a57ce chore(vercel): update Vercel model definitions
Auto-generated by weekly workflow from Vercel AI Gateway API.

Co-Authored-By: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-16 18:12:52 +00:00
R-Taneja c7d324fed8 fix(vercel): accept reranking model type from API
The Vercel AI Gateway API now returns models with type "reranking",
which caused the generate-vercel script to fail schema validation.

Add "reranking" to the ModelType enum and skip these models in the
main loop, matching the existing pattern for image/video types that
OpenCode does not consume.
2026-04-16 11:05:26 -07:00
Colby Gilbert 863bada2cf feat(firmware): opus 4.7 remove old claude models 2026-04-16 10:37:52 -07:00
dpuyosa 28c4af0631 [venice] Add Claude Opus 4.7 and update Qwen models
- Add Claude Opus 4.7 with 1M context, 128K output, multimodal support
- Update Qwen 3.5 35B and 397B to open_weights=true and refresh last_updated
- Remove deprecated models: Grok Code Fast 1, Mercury Edit 2, MiniMax M2.1
2026-04-16 18:30:45 +02:00
Aiden Cline 38f6b7dfc5 Merge pull request #1456 from Snat3r/dev
Add GML5.1.toml model to cortecs provider
2026-04-16 11:16:51 -05:00
Aiden Cline 1ba010f66e Merge pull request #1461 from llc1123/chore/zenmux-update
chore(zenmux): add claude-opus-4.7
2026-04-16 11:16:41 -05:00
粒粒橙 132a5ade8d chore(zenmux): add claude-opus-4.7 2026-04-17 00:02:58 +08:00
Graham Campbell 2ef2b10847 Correct anthropic 4.6 knowledge cut-off dates 2026-04-16 16:52:15 +01:00
Frank 87e1dcb70f update zen modles 2026-04-16 11:31:20 -04:00
Aiden Cline 43d2e058d9 Merge pull request #1449 from shikbupt/alibaba-glm5.1
add alibaba-cn glm5.1
2026-04-16 10:25:58 -05:00
Aiden Cline 0a6c2ca49d Merge pull request #1459 from itsnebulalol/dev
feat: add anthropic claude opus 4.7 models
2026-04-16 10:25:04 -05:00
Dominic Frye 2f954fc838 feat: add anthropic claude opus 4.7 models 2026-04-16 11:19:19 -04:00
Frank 91b7851971 update zen models 2026-04-16 04:51:30 -04:00
Jack 80e23ab90e Merge pull request #1266 from lioZ129/feature/add-hpc-ai-provider
feat: add HPC-AI model provider support
2026-04-16 15:09:44 +08:00
Snat3r 6e574da2e4 Update input modalities in minimax-M2.7.toml 2026-04-16 08:21:20 +02:00
Snat3r 5b68565783 Add MiniMax-M2.7 model configuration file cortecs 2026-04-16 08:19:51 +02:00
lioZ129 65dafb56a3 add [cost] and glm5.1 support 2026-04-16 14:13:27 +08:00
Snat3r 32c0c88600 Update context and output limits in glm-5.1.toml 2026-04-16 08:08:09 +02:00
Snat3r d911b6f610 Add GLM-5.1 model configuration file 2026-04-16 08:06:37 +02:00
Aiden Cline 5cf28a566f Merge pull request #1424 from WJQSERVER/feat/nvidia-minimax-m2.7
Add MiniMax M2.7 to NVIDIA(NIM)
2026-04-15 20:19:01 -05:00
Aiden Cline 52cdb783a1 Merge pull request #1452 from wwth8819/dev
For aihubmix add GPT-5.4 \ GPT-5.4-mini, remove Incorrect value from old models, update cost
2026-04-15 20:18:24 -05:00
wwth8819 4a14ce5ae6 Remove temperature setting from gpt-5.2-codex.toml
Removed the temperature setting from the configuration.
2026-04-16 03:12:14 +08:00
wwth8819 f17c352027 Update cost values in coding-glm-4.7.toml 2026-04-16 03:11:16 +08:00
wwth8819 46ec19ab02 add gpt-5.4-mini gpt-5.4 2026-04-16 03:09:26 +08:00
Frank f12aae094e update zen models 2026-04-15 10:55:02 -04:00
sk 377d0f1c8d add alibaba-cn glm5.1 2026-04-15 22:02:52 +08:00
WJQSERVER 884b799012 Merge branch 'dev' into feat/nvidia-minimax-m2.7 2026-04-15 21:53:54 +08:00
Lyda ac7e35af4e feat(302ai): supplement commonly missing models 2026-04-15 17:32:18 +08:00
Frank 6f04d267cf update zen models 2026-04-15 02:17:31 -04:00
Aiden Cline a0b89e739b Merge pull request #1425 from ceyhanmolla/add-minimax-m2.7-nvidia
feat(nvidia): add MiniMax-M2.7
2026-04-14 22:59:38 -05:00
Frank 0ce000a521 update go models 2026-04-14 23:09:06 -04:00
Frank 4b7dda6cc6 update go models 2026-04-14 22:50:12 -04:00
Aiden Cline 7220310828 Merge pull request #1447 from Sawyerb/dev
Removed deprecated models and added ME2 to all relevant providers.
2026-04-14 21:49:22 -05:00
Aiden Cline 15746b9845 Merge pull request #1444 from wwth8819/dev
Add glm-5.1,  coding-glm-5.1  TO  AiHubMix
2026-04-14 21:49:06 -05:00
Aiden Cline e9be42b4bc Merge pull request #1443 from teodortomas/add-minimax-m2.7
add minimax-m2p7 to fireworks-ai provider
2026-04-14 17:11:09 -05:00
Aiden Cline c0d21d802f Merge pull request #1429 from Lee-Si-Yoon/fix/cache-read-friendli
fix: cache read costs for friendliAI models
2026-04-14 17:10:56 -05:00
Aiden Cline 4937952a52 Merge pull request #1437 from Ardakilic/dev
feat: kilo gateway: elephant alpha
2026-04-14 17:10:37 -05:00
Aiden Cline 1bb5deadea Merge pull request #1439 from fhennerkes/dev
poe: update models with pricing, deprecations, and display name fixes
2026-04-14 17:10:26 -05:00
Aiden Cline c2ad18c87d Merge pull request #1445 from cantalupo555/chore/openrouter-remove-deprecated-free-models
chore(openrouter): remove deprecated free-tier models no longer available via API
2026-04-14 17:10:01 -05:00
Sawyer e4b0a53e26 Removed deprecated models and added ME2 to all relevant providers. 2026-04-14 12:33:35 -07:00
cantalupo555 61ea2e2093 chore(openrouter): remove deprecated free-tier models no longer available via API 2026-04-14 08:11:45 -03:00
wwth8819 162fd8b72b Add configuration for Coding-GLM-5.1 model 2026-04-14 17:35:23 +08:00
wwth8819 b8fae048db Add GLM-5.1 model configuration file 2026-04-14 17:32:59 +08:00
Teodor Tomáš ca6cf794c1 add minimax-m2p7 to fireworks-ai provider 2026-04-14 11:06:47 +02:00
fhennerkes 152b401976 poe: update models with pricing, deprecations, and display name fixes
Mark 11 models no longer on the Poe API as deprecated:
- anthropic: claude-sonnet-3.5, claude-sonnet-3.5-june
- cerebras: qwen3-235b-2507-cs, qwen3-32b-cs, llama-3.3-70b-cs
- google: gemini-3-pro, gemini-deep-research
- novita: glm-4.7
- openai: chatgpt-4o-latest, gpt-4-classic-0314, gpt-4-classic

Update existing models with latest API data:
- Cerebras (gpt-oss-120b-cs, llama-3.1-8b-cs): Add pricing and correct context (128K)
- kimi-k2.5: Add pricing, fix display name, temperature/reasoning from API
- gpt-4o: Fix output formatting (8_192)
- gpt-5.1-codex-max: Fix display name

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 16:55:18 -07:00
Aiden Cline d99a1581df Merge pull request #1435 from cantalupo555/feat/add-openrouter-elephant-alpha
feat(openrouter): add Elephant Alpha model
2026-04-13 15:01:55 -05:00
Arda Kilicdagi 21cf1fb1e9 feat: kilo gateway: elephant alpha 2026-04-13 20:39:54 +03:00
cantalupo555 970a00c3ad feat(openrouter): add Elephant Alpha model 2026-04-13 13:43:56 -03:00
cantalupo555 d611fc2ef7 feat(core): add elephant model family 2026-04-13 13:35:10 -03:00
Aiden Cline 7d7711878d Merge pull request #1434 from cantalupo555/chore/openrouter-step-3.5-flash-free
chore(openrouter): remove Step 3.5 Flash free-tier model
2026-04-13 10:45:25 -05:00
cantalupo555 fc5d5ec67f chore(openrouter): remove deprecated step-3.5-flash free-tier variant
- Remove the free-tier variant of Step 3.5 Flash as it is no longer needed
2026-04-13 11:51:10 -03:00
Aiden Cline bd5050a15f Merge pull request #1423 from spiffytech/dev
Add Synthetic support for GLM-5.1
2026-04-13 09:18:49 -05:00
Aiden Cline ac67c648a2 Merge pull request #1422 from hanouticelina/add-minimax-2.7-huggingface
feat(huggingface): add MiniMax-M2.7
2026-04-13 09:18:35 -05:00
Aiden Cline f58038fc21 Merge pull request #1421 from zainhas/dev
[Together AI]add minimax m2.7
2026-04-13 09:18:14 -05:00
Aiden Cline 3ea7d56b96 Merge pull request #1428 from dpuyosa/feat/venice-glm-5-models
Venice: Add Z-AI GLM-5 Turbo and GLM-5V Turbo models
2026-04-13 09:17:45 -05:00
Aiden Cline e23657368e Merge pull request #1426 from dpuyosa/venice/update-model-configs-0412
Venice: Update model configs and pricing
2026-04-13 09:17:33 -05:00
Aiden Cline d59ad3ffa3 Merge pull request #1427 from dpuyosa/refactor/venice-model-naming
Venice: Update model naming convention
2026-04-13 09:17:08 -05:00
siyoon dcbb415960 fix: add cache_read parameter to cost section 2026-04-13 16:05:36 +09:00
dpuyosa e302956dc4 [venice] Update model naming convention
- Rename files to use dashes instead of dots
- Rename opus/sonnet 45 to 4-5 format
- Remove beta suffix from Grok 4.20 models
- Update family from grok-beta to grok
- Remove knowledge field from Claude models
- Update output limits
2026-04-13 01:10:06 +02:00
dpuyosa 5d100a8243 [venice] Add Z-AI GLM-5 Turbo and GLM-5V Turbo models
- Add Z-AI GLM-5 Turbo (text-only, reasoning, tool_call)

- Add Z-AI GLM-5V Turbo (vision, reasoning, tool_call)
2026-04-13 01:05:47 +02:00
dpuyosa 9ff52ee539 [venice] Update model configs and pricing
- Update last_updated dates for 5 models

- Set open_weights to false for 4 models

- Add context_over_200k cache pricing for qwen-3-6-plus
2026-04-13 00:59:21 +02:00
ceyhanmolla 8114522671 feat(nvidia): add MiniMax-M2.7 2026-04-12 16:56:04 +02:00
wjqserver 5e534d84bc feat: add NVIDIA MiniMax M2.7 model 2026-04-12 22:51:46 +08:00
spiffytech 1f79cd8fd0 Added Synthetic support for GLM-5.1 2026-04-12 08:46:10 -04:00
Celina Hanouti 462b822e60 add minimax M2.7 for hugging face provider 2026-04-12 11:06:30 +02:00
Zain Hasan 8021e1afd0 Merge branch 'anomalyco:dev' into dev 2026-04-11 22:23:20 -07:00
Zain Hasan 304d85fa43 [Together AI]add minimax m2.7 2026-04-11 22:14:05 -07:00
Aiden Cline f07262370f Merge pull request #1418 from Ardakilic/dev
Kilo Gateway: Sync model list with upstream (2026-04-11)
2026-04-11 16:48:46 -05:00
Aiden Cline 7cfaa0393e Merge pull request #1419 from nicopujia/add-openrouter-deepseek-r1
Add OpenRouter support for DeepSeek R1
2026-04-11 16:46:58 -05:00
Arda Kilicdagi c93de9f54f chore: sync all kilo gw models 2026-04-11 03:31:00 +03:00
Aiden Cline 2b17d9efc2 Merge pull request #1414 from Ardakilic/dev
Feat: Kilo Gateway: Add MiniMax M2.7
2026-04-10 13:31:50 -05:00
Arda Kilicdagi 8d8521e0e1 feat: kilo gateway: MiniMax M2.7 2026-04-10 20:42:45 +03:00
Aiden Cline c9f22d26b9 Merge pull request #1413 from Ardakilic/dev
Kilo Gateway: Add GLM 5.1, Remove MiniMax M2.5 Free
2026-04-10 10:33:18 -05:00
Aiden Cline 61e8ea2a2e Merge pull request #1410 from gjtiquia/dev
Poe: add GLM-5 model
2026-04-10 10:26:57 -05:00
Aiden Cline 7d2cd9818f Merge pull request #1411 from Alex-wuhu/dev
novita-ai: add 8 new models and remove 2 deprecated models
2026-04-10 10:26:45 -05:00
Arda Kilicdagi 385b4fbcf6 feat: kilo gateway: glm-5.1 2026-04-10 15:11:37 +03:00
Alex-wuhu 2f0890c9a9 Add new model configurations for Gemma, MiniMax, Qwen, and GLM 2026-04-10 16:28:34 +08:00
GJ Tiquia 9d377b768f poe: GLM-5 temperature set to true 2026-04-10 15:57:25 +08:00
GJ Tiquia aa4f3f550a poe: add GLM-5 model 2026-04-10 14:13:03 +08:00
Aiden Cline f82d6fc61a Merge pull request #1404 from nicopujia/add-openrouter-qwen3.5-flash-02-23
Add OpenRouter support for Qwen3.5 Flash 2026-02-23
2026-04-09 22:37:05 -05:00
Aiden Cline 4222b040b7 Merge pull request #1407 from line72/deepinfra-glm-5.1
[DeepInfra] Add GLM 5.1
2026-04-09 22:36:53 -05:00
Aiden Cline d2e4174103 Merge pull request #1397 from qychen2001/dev
Add GLM-5.1 and GLM-5V-Turbo model configurations for siliconflow
2026-04-09 22:35:52 -05:00
Aiden Cline f30b5fc754 Merge pull request #1408 from nanai10a/dev
Add MiniMax M2.5 (free) configuration file
2026-04-09 22:35:37 -05:00
Aiden Cline 10239c95e2 Merge pull request #1401 from dpuyosa/venice-open-weights-fix
Venice: Remove private field fallback for open weights
2026-04-09 20:05:03 -05:00
Aiden Cline 59831a9a0e Merge pull request #1399 from dpuyosa/venice-model-updates-2026-04-09
Venice: Update model configs with refreshed pricing and limits
2026-04-09 20:04:55 -05:00
Aiden Cline c7552d0e00 Merge pull request #1396 from shelvick/add-azure-grok-4-20
Add Grok 4.20 reasoning and non-reasoning to Azure
2026-04-09 20:04:04 -05:00
Aiden Cline 76d53c9e96 Merge pull request #1382 from cgilly2fast/dev
feat(firmware): add zai 5.1 and qwen 3.6 plus
2026-04-09 20:03:50 -05:00
Aiden Cline 61573f666a Merge pull request #1395 from zainhas/dev
[Together AI] add GLM-5.1 + Gemma 4 31B it
2026-04-09 20:03:13 -05:00
Aiden Cline 1d30640400 Merge branch 'dev' into dev 2026-04-09 20:02:59 -05:00
Aiden Cline 1f1eafe173 Merge pull request #1406 from riccardogiorato/dev
Update GLM to version 5.1 for together provider
2026-04-09 20:02:08 -05:00
Aiden Cline a75c0f0fe9 Merge pull request #1400 from dpuyosa/venice-add-new-models
Venice: Add 4 new AI models
2026-04-09 17:34:55 -05:00
Marcus Dillavou 57c6d817d5 DeepInfra: Add GLM 5.1 2026-04-09 15:50:04 -05:00
Riccardo Giorato 3d1d77da76 Merge pull request #2 from riccardogiorato/orchestrator/add-glm-5-1-together-r8k9f
add GLM-5.1 for together provider
2026-04-09 22:42:54 +02:00
orchestrator-build[bot] e7cfed72ff fix GLM-5.1 open_weights to true 2026-04-09 20:40:20 +00:00
orchestrator-build[bot] b748364a20 fix GLM-5.1 pricing for together provider 2026-04-09 20:39:49 +00:00
orchestrator-build[bot] 30439f4409 replace GLM-5 with GLM-5.1 for together provider 2026-04-09 20:37:34 +00:00
orchestrator-build[bot] 7baad3cc22 add GLM-5.1 for together provider 2026-04-09 20:35:51 +00:00
Nicolás Pujia 564992885b Add OpenRouter support for DeepSeek R1 2026-04-09 11:54:16 -03:00
Nicolás Pujia 57a53889db Add OpenRouter support for Qwen3.5 Flash 2026-02-23 2026-04-09 11:53:53 -03:00
Nanai Jua 0f019a5e9a Add MiniMax M2.5 (free) configuration file
https://openrouter.ai/provider/open-inference
2026-04-09 18:11:40 +09:00
dpuyosa d6fec11252 [venice] Remove private field fallback for open weights
- Rely solely on modelSource for open weights detection
- Remove privacy field fallback per new ZDR policies
2026-04-09 11:03:03 +02:00
dpuyosa 7604313114 [venice] Add 4 new AI models
- Add Mercury 2 (reasoning model)
- Add Mistral Small 4 (multimodal)
- Add Nemotron Cascade 2 30B A3B
- Add Qwen 3.5 397B (multimodal)
2026-04-09 10:31:24 +02:00
dpuyosa c3a2b1a1db [venice] Update model configs with refreshed pricing and limits
- Update last_updated dates to 2026-04-09 across 6 models
- Adjust Grok pricing to reflect current rates
- Add context_over_200k pricing for Qwen 3.6 Plus
- Correct Gemma 4 output limits from 12288 to 8192
- Rename Qwen 3.6 Plus to "Uncensored" variant
2026-04-09 10:17:05 +02:00
QiyuanChen 68294f3bd6 Add GLM-5V-Turbo model configuration for siliconflow provider 2026-04-09 11:18:25 +08:00
QiyuanChen ad10ce6232 Add GLM-5.1 model configuration files for siliconflow provider 2026-04-09 11:08:53 +08:00
Scott Helvick 5a09420d65 Add Grok 4.20 reasoning and non-reasoning to Azure 2026-04-09 02:30:55 +00:00
Zain Hasan f1b3177ff7 add gemma 4 31b instruct 2026-04-08 18:49:38 -07:00
Zain Hasan a7d0152fd1 [Together AI] add GLM-5.1 2026-04-08 17:55:11 -07:00
Aiden Cline 46c6aef51b Merge pull request #1393 from spiffytech/dev
Add Synthetic support for GLM-5 and Nemotron 3 Super
2026-04-08 16:01:12 -05:00
Aiden Cline 7c34bf01b5 Merge pull request #1394 from spiffytech/ollama-changes
Add Ollama Cloud support for Gemma 4. Updated properties on Gemini 3 Flash
2026-04-08 16:00:12 -05:00
spiffytech 5ce20c0978 Added Ollama Cloud support for Gemma 4. Updated properties on Gemini 3 Flash. 2026-04-08 15:03:29 -04:00
spiffytech 6055551b33 Added Synthetic support for GLM-5 and Nemotron 3 Super 2026-04-08 14:57:51 -04:00
Aiden Cline a96094c059 Merge pull request #1390 from GoGoris/add-qwen3-coder-next-cortecs
Add qwen3-coder-next model for cortecs
2026-04-08 11:26:42 -05:00
Aiden Cline 39e86eb055 Merge pull request #1384 from dpuyosa/feat/add-venice-claude-opus-4-6-fast-glm-5-1
Venice: Add Claude Opus 4.6 Fast and GLM 5.1 models
2026-04-08 11:25:56 -05:00
Aiden Cline 119f421437 Merge pull request #1387 from cantalupo555/feat/add-gemma-4-free-openrouter
feat(openrouter): add Gemma 4 free models
2026-04-08 11:25:30 -05:00
Aiden Cline 6ab4c1be04 Merge pull request #1386 from cantalupo555/chore/remove-qwen3.6-plus-free-openrouter
chore(openrouter): remove discontinued Qwen3.6 Plus free
2026-04-08 11:25:15 -05:00
Aiden Cline f1eaa4bd9d Merge pull request #1392 from Solidsilver/feat/fireworks-add-glm-5-1-qwen-3-6-plus
feat(fireworks): add GLM 5.1 and Qwen 3.6 Plus models
2026-04-08 11:24:52 -05:00
Aiden Cline 2f4693b9cf Merge pull request #1391 from CassiusXiang/fix/openrouter-qwen3.6-plus
fix(openrouter): replace discontinued qwen3.6-plus free with paid model
2026-04-08 11:24:41 -05:00
Luke M 5c867d5fba feat(fireworks): add GLM 5.1 and Qwen 3.6 Plus models 2026-04-08 09:06:50 -07:00
XiangChang 682a486f09 fix(openrouter): replace discontinued qwen3.6-plus free with paid model 2026-04-08 22:31:52 +08:00
Steven Goris ea10c5674b Add qwen3-coder-next model for cortecs 2026-04-08 15:14:31 +02:00
cantalupo555 5829a9174c feat(openrouter): add Gemma 4 26B A4B free
- Add google/gemma-4-26b-a4b-it:free (MoE, 256K context, multimodal, reasoning)
2026-04-08 08:32:07 -03:00
cantalupo555 4717e5a902 feat(openrouter): add Gemma 4 31B free
- Add google/gemma-4-31b-it:free (256K context, multimodal, reasoning)
2026-04-08 08:31:55 -03:00
cantalupo555 20f225d6a6 chore(openrouter): remove discontinued Qwen3.6 Plus free
- Model no longer available on OpenRouter API
2026-04-08 08:16:47 -03:00
dpuyosa 04ada2c06e [venice] Add Claude Opus 4.6 Fast and GLM 5.1 models
- Add claude-opus-4-6-fast model with 1M context
- Add zai-org-glm-5-1 model with reasoning and tool_call
2026-04-08 11:40:46 +02:00
Frank 23fd440f57 update zen models 2026-04-08 02:20:44 -04:00
Colby Gilbert a4c09d58c3 feat(firmware): add zai 5.1 and qwen 3.6 plus 2026-04-07 22:18:54 -07:00
Aiden Cline 82924aa6f2 Merge pull request #1376 from mugnimaestra/feat/add-glm-5.1-tee-chutes
feat(chutes): add zai-org/GLM-5.1-TEE model
2026-04-07 23:55:23 -05:00
Aiden Cline c8f0b6d573 Merge pull request #1377 from mchenco/mchen/update-cf-workers-ai-models
update cloudflare-workers-ai: add gemma-4, remove non-LLMs, fix metadata
2026-04-07 23:55:07 -05:00
Aiden Cline 09c3cb3e0a Merge pull request #1379 from zhongruan0522/dev
add GLM-5.1 to zhipuai and zai providers
2026-04-07 23:54:32 -05:00
Aiden Cline 555662ec80 Merge pull request #1381 from llc1123/chore/zenmux-update
chore(zenmux): add GLM-5.1 model configuration
2026-04-07 23:54:20 -05:00
Aiden Cline fc63cc19c3 feat: add experimental modes to models to express things like "fast" that induce additional price changes 2026-04-07 23:47:19 -05:00
Aiden Cline 26d2f3e8e9 Merge pull request #1378 from friendliai/minpeter/add-friendli-glm-5.1
feat(friendli): add GLM-5.1 and remove deprecated models
2026-04-07 22:30:44 -05:00
粒粒橙 92374dd74d chore(zenmux): add GLM-5.1 model configuration 2026-04-08 11:30:14 +08:00
minpeter ee4de44fbe fix(friendli): align model display names with cross-provider majority convention 2026-04-08 11:39:05 +09:00
zhongruan0522 5513af5b6c add GLM-5.1 to zhipuai and zai providers 2026-04-08 02:34:12 +00:00
minpeter 755509be95 feat(friendli): add GLM-5.1 and remove deprecated models 2026-04-08 11:31:50 +09:00
mchen 392b0988f2 update cloudflare-workers-ai: add gemma-4, remove non-LLMs, fix metadata
- Add gemma-4-27b-a4b-it (multimodal, reasoning, tool calling)

- Remove non-LLM models: embeddings, TTS, translation, sentiment analysis

- Remove redundant models: Llama 2/3.x variants, Qwen, Mistral, DeepSeek, Gemma 3

- Update metadata: tool_call, reasoning, open_weights, attachment for remaining models

- Final models: gemma-4, llama-4-scout, kimi-k2.5, nemotron-3, gpt-oss-20b/120b, glm-4.7-flash
2026-04-07 21:00:44 -04:00
Muhammad Mugni Hadi 7f1e94f571 feat(chutes): add zai-org/GLM-5.1-TEE model 2026-04-08 06:40:30 +07:00
Aiden Cline 61c596874c feat: add new provider.body and provider.headers support 2026-04-07 17:36:40 -05:00
Frank ca0e64451d update zen models 2026-04-07 18:01:31 -04:00
Aiden Cline d2870fcfeb Merge pull request #1374 from fhennerkes/dev
Poe: adding Gemma-4-31B (free model)
2026-04-07 16:48:52 -05:00
fhennerkes 9c8e1e0fa0 Merge branch 'anomalyco:dev' into dev 2026-04-07 14:02:06 -07:00
Frank 30d42207cb update zen models 2026-04-07 16:48:49 -04:00
fhennerkes c450a6ffaf poe: add Gemma-4-31B model
Add new Google model from Poe API (released 2026-04-02):
- Free during preview
- 262K context, 8K output
- Modalities: text, image

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-07 13:04:03 -07:00
Frank e889bd7c3b update zen models 2026-04-07 13:43:40 -04:00
Aiden Cline dcd3803dea Merge pull request #1359 from rdbisme/dev
Add missing Qwen3 Coder Next model to Amazon Bedrock
2026-04-07 12:41:41 -05:00
Aiden Cline 05b22d8f8e Merge pull request #1372 from JoshuaDietz/dev
feat(ollama-cloud): add GLM-5.1
2026-04-07 12:30:52 -05:00
Aiden Cline 5c1a00bbe8 Merge pull request #1373 from cantalupo555/feat/openrouter-glm-5.1
feat(openrouter): add z-ai/glm-5.1 model
2026-04-07 12:30:12 -05:00
cantalupo555 27cbd6557d feat(openrouter): add z-ai/glm-5.1 model
- Add GLM-5.1 with 202K context, reasoning, tool call, and structured output

- Pricing: $1.40/M input, $4.40/M output, $0.26/M cache read
2026-04-07 14:02:55 -03:00
JoshuaDietz 8114fa2f13 Merge branch 'anomalyco:dev' into dev 2026-04-07 19:01:23 +02:00
Joshua Dietz 5dc325bf09 feat(ollama-cloud): add GLM-5.1
unsure about temperature=true which is not set for GLM-5 but is set for GLM-5.1 huggingface.
2026-04-07 19:00:54 +02:00
Aiden Cline d27ce785fe Merge pull request #1370 from gary149/feat/huggingface-glm-5.1
feat(huggingface): add GLM-5.1
2026-04-07 11:55:12 -05:00
Aiden Cline f47f9e8414 Merge pull request #1225 from mixlayer/add_mixlayer
New provider: Mixlayer
2026-04-07 11:46:19 -05:00
Victor Muštar df41a38c6f feat(huggingface): add GLM-5.1 2026-04-07 18:33:53 +02:00
Aiden Cline 5b37d05f82 Merge pull request #1367 from cantalupo555/feat/stepfun-step-3.5-flash-2603
feat(stepfun): add step-3.5-flash-2603 model
2026-04-07 11:21:02 -05:00
Aiden Cline 99e046916c Merge pull request #1360 from jonathancaevans/update-kimi-k2p5-turbo-name
Update Kimi K2.5 Turbo display name for Firepass clarity
2026-04-07 11:09:02 -05:00
Aiden Cline 98baf7eaca Merge pull request #1364 from seffhunnn/fix-openrouter-glm-5-turbo-web
fix: correct glm-5-turbo pricing and context for openrouter
2026-04-07 11:08:29 -05:00
Aiden Cline 462d7fa620 Merge pull request #1365 from dpuyosa/feat/venice-add-qwen-3-6-plus
Venice: Add Qwen 3.6 Plus model
2026-04-07 11:08:15 -05:00
cantalupo555 7eea1dec18 feat(stepfun): add step-3.5-flash-2603 model
- Add Step 3.5 Flash 2603 model optimized for agent workflows

- Released April 2, 2026, same pricing as step-3.5-flash
2026-04-07 12:01:26 -03:00
dpuyosa 10652fb8dc feat(venice): add Qwen 3.6 Plus model
- Add Qwen 3.6 Plus with 1M context window

- Support text, image, and video input modalities

- Enable reasoning, tool calling, and structured output
2026-04-07 13:41:42 +02:00
Mohd Saif 816f9bb585 fix: correct glm-5-turbo pricing and context 2026-04-07 14:45:31 +05:30
Jonathan Evans 03376e9986 Update Kimi K2.5 Turbo display name
Add (firepass) suffix to clarify this is the Firepass router endpoint.

Follow-up to #1256
2026-04-06 13:10:01 -07:00
Ruben Di Battista 91d73da942 Enable reasoning capability for Qwen3 Coder Next model 2026-04-06 21:51:16 +02:00
Ruben Di Battista db7e4ff9ba Add missing Qwen3 Coder Next model to Amazon Bedrock 2026-04-06 21:07:36 +02:00
Aiden Cline d6145d1479 Merge pull request #1354 from llc1123/chore/zenmux-updates
zenmux: remove deprecated models and add Agnes 1.5 entries
2026-04-06 08:27:09 -07:00
粒粒橙 ec314aa0f1 fix(zenmux): add image support for agnes-1.5-lite 2026-04-06 14:28:22 +08:00
粒粒橙 188c36696e zenmux: remove deprecated models and add models from sapiens-ai 2026-04-06 14:08:08 +08:00
Aiden Cline 2b5f3f961d Merge pull request #1340 from battall/patch-1
fix: google/gemma-4 -it suffixes
2026-04-05 21:10:43 -07:00
Aiden Cline bf8ce0b8f8 Merge pull request #1342 from seffhunnn/fix-deepseek-context-window
fix: correct deepseek-chat context window to 131072
2026-04-05 21:06:53 -07:00
Aiden Cline 5e3eb74da2 Merge pull request #1341 from u1630022/feat-openrouter-trinity-large-thinking
add trinity large thinking to openrouter provider
2026-04-05 21:06:19 -07:00
Aiden Cline 542620b288 Merge pull request #1343 from spyridonas/patch-1
Fix capitalization in model name
2026-04-05 21:05:15 -07:00
Aiden Cline f6576ffb0f Merge pull request #1344 from dpuyosa/venice/gemma4-trinity
Venice: Add Gemma 4 and Arcee Trinity models, enable GLM 4.6 reasoning
2026-04-05 21:05:00 -07:00
Aiden Cline 88649810a6 Merge pull request #1346 from GHagui/add-gemma-4-openrouter
feat(openrouter): add Gemma 4 26B A4B and Gemma 4 31B models
2026-04-05 21:04:42 -07:00
Aiden Cline 1367d90f32 Merge pull request #1353 from cyberofficial/vultr
[Vultr] Update Inference Models
2026-04-05 21:03:58 -07:00
Cyber Official 322b1154be Update Inference Models
Vultr Updated Inference API endpoint with different versions of models, this commit adds in new models and corrects some information
2026-04-05 17:12:13 -04:00
Gabriel Hagui 7336867f65 Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-04 21:17:55 -03:00
GHagui caaf4d8b0a Merge branch 'add-gemma-4-openrouter' of https://github.com/GHagui/models.dev into add-gemma-4-openrouter 2026-04-05 00:09:19 +00:00
GHagui 08c2b928b6 fix(openrouter) Normalize formatting in Gemma 4 26B A4B and Gemma 4 31B TOML files 2026-04-05 00:03:44 +00:00
Gabriel Hagui 3a4b5e50cb Add files via upload
Fixing CRLF to LF
2026-04-04 20:51:25 -03:00
Gabriel Hagui 3244ef835e feat(openrouter) Add Gemma 4 26B A4B and Gemma 4 31B 2026-04-04 20:43:15 -03:00
GHagui 346b12f42f feat(openrouter) Add Gemma 4 26B A4B and Gemma 4 31B 2026-04-04 23:38:56 +00:00
dpuyosa 116d91a0cc [venice] Add Gemma 4 and Arcee Trinity models, enable GLM 4.6 reasoning
- Add Google Gemma 4 26B A4B and 31B instruct models with multimodal support
- Add Arcee Trinity Large Thinking reasoning model
- Enable reasoning capability for GLM 4.6
- Reduce Qwen3 5-9B output limit to 32K
2026-04-05 00:08:47 +02:00
Spyros Sakellaropoulos 778036c53c Fix capitalization in model name 2026-04-05 00:10:17 +03:00
Mohd Saif Ansari e86cc85dd4 fix: update deepseek-chat context window 2026-04-05 01:59:40 +05:30
Eavan Pattie a6f030fe1c add trinity large thinking to openrouter provider
* fixes trinity-large-thinking erroneously marked as not open_weight in
  vercel provider
2026-04-04 22:44:25 +03:00
Aiden Cline 1eb0b8c8e1 Merge pull request #1338 from anthraxx/alibaba-qwen3.6-plus
feat(alibaba): add Qwen3.6 Plus model configuration to all regions
2026-04-04 11:55:23 -07:00
Aiden Cline 1bc0b9d81f Merge pull request #1335 from branchgrove/dev
Add google-vertex DeepSeek V3.2 model
2026-04-04 11:51:37 -07:00
Battal Doğukan Hazar eca166ed4d fix: -it suffix for google/gemma-4 2026-04-04 21:48:31 +03:00
Aiden Cline e64404b173 Merge pull request #1336 from WJQSERVER/dev
Add Google Gemma 4 31B IT to NVIDIA(NIM) provider
2026-04-04 11:48:19 -07:00
Battal Doğukan Hazar e9c8425b32 fix: google/gemma-4 -it suffix 2026-04-04 21:47:27 +03:00
Aiden Cline 8618de3429 Merge pull request #1333 from riccardogiorato/dev
Remove deprecated models from TogetherAI provider
2026-04-04 11:28:46 -07:00
Aiden Cline 6e64316225 Merge pull request #1337 from fanweixiao/vivgrd/gpt-5.4
provider(vivgrid): add GPT-5.3 Codex, GPT-5.4 Mini, and GPT-5.4 Nano models
2026-04-04 11:28:33 -07:00
Aiden Cline a36d032e93 Merge pull request #1339 from cantalupo555/remove/qwen3.6-plus-preview-free
chore(openrouter): remove discontinued Qwen3.6 Plus Preview free
2026-04-04 11:28:18 -07:00
Aiden Cline e74dce023f Merge pull request #1315 from seffhunnn/fix-pdf-modalities
fix: add missing pdf modality to supported OpenAI models
2026-04-04 11:28:07 -07:00
cantalupo555 47f9b2b910 chore(openrouter): remove discontinued Qwen3.6 Plus Preview free
- Remove qwen3.6-plus-preview:free model after Qwen3.6 Plus free replaced it
2026-04-04 15:08:11 -03:00
Levente Polyak 6ba0af61d6 feat(alibaba): add Qwen3.6 Plus model configuration to all regions
- Add missing regions
- Add coding-plan variants
- Use pricing from model info page

Link: https://bailian.console.alibabacloud.com/cn-beijing?tab=model#/model-market/detail/qwen3.6-plus
2026-04-04 19:52:15 +02:00
C.C. Fan 24d4a9b8dd provider(vivgrid): add GPT-5.3 Codex, GPT-5.4 Mini, and GPT-5.4 Nano models
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 23:07:49 +08:00
wjqserver d5b420768a feat: add Google Gemma 4 31B IT to NVIDIA provider 2026-04-04 22:26:39 +08:00
Riccardo Giorato 66ada85298 more deprecations 2026-04-04 14:18:08 +02:00
Elias Lundgren 2ffb1d9181 Add google-vertex DeepSeek V3.2 model 2026-04-04 13:57:42 +02:00
Riccardo Giorato 04768ff141 Merge pull request #1 from riccardogiorato/orchestrator/remove-deprecated-models-g5nx
Remove deprecated models from togetherai provider
2026-04-03 21:51:02 +02:00
orchestrator-dev[bot] 9560d51908 Remove deprecated models from togetherai provider 2026-04-03 19:49:40 +00:00
Aiden Cline 6a41e31306 Merge pull request #1326 from michaelnchin/fix/amazon-bedrock-structured-output
fix: set correct structured output values for Amazon Bedrock models
2026-04-03 14:03:05 -05:00
Aiden Cline 133c529ebf Merge pull request #1327 from llc1123/chore/zenmux-new-models
zenmux: add KAT-Coder-Pro-V2, Qwen3.6-Plus, and GLM 5V Turbo
2026-04-03 14:02:40 -05:00
Aiden Cline 0a6b828e42 Merge pull request #1331 from zhongruan0522/feat/xiaomi-token-plan
feat: add Xiaomi Token Plan providers (cn/sgp/ams)
2026-04-03 14:00:46 -05:00
Aiden Cline 406f2f66c6 Merge pull request #1323 from Pxys-io/fix-xiaomi-mimo-cache-pricing
fix(openrouter): add missing cache_read pricing for xiaomi/mimo-v2-pro and xiaomi/mimo-v2-omni
2026-04-03 13:59:51 -05:00
Aiden Cline 948ce76d8d Merge pull request #1325 from DEAN-Cherry/dev
revert: alibaba-cn MiniMax-M2.5 to MiniMax-M2.7
2026-04-03 13:47:53 -05:00
Aiden Cline e3dd89ba2e Merge pull request #1332 from vercel/update-vercel-models-20260403-1639
Update Vercel models
2026-04-03 13:47:33 -05:00
Aiden Cline 7e5ae3bb06 Merge pull request #1329 from Track07-cda/alibaba-cn-qwen3.6
feat(alibaba-cn): add Qwen3.6 Plus model configuration
2026-04-03 13:47:19 -05:00
Aiden Cline 5392c185d2 Merge pull request #1328 from sadoclaw/add-gemma-4-models
Add Gemma 4 26B and 31B models
2026-04-03 13:47:00 -05:00
github-actions[bot] 72613f5dbf chore(vercel): update Vercel model definitions
Auto-generated by weekly workflow from Vercel AI Gateway API.

Co-Authored-By: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-03 16:39:32 +00:00
zhongruan0522 01098f81a9 feat: add Xiaomi Token Plan providers (cn/sgp/ams) 2026-04-03 11:22:04 +00:00
Track07-cda 65e798c8f2 feat(alibaba-cn): add Qwen3.6 Plus model configuration 2026-04-03 15:58:53 +08:00
sadoclaw 28a75176c4 Add Gemma 4 26B and 31B models 2026-04-03 08:34:41 +03:00
粒粒橙 61e63db8e3 zenmux: add new models 2026-04-03 13:09:53 +08:00
Michael Chin 95cd6196fa set correct structured_output values for Amazon Bedrock models 2026-04-02 21:15:18 -07:00
Bryan 19c1f2ebe2 revert: alibaba-cn MiniMax-M2.5 to MiniMax-M2.7
Revert PR #1002 - MiniMax-M2.5 is no longer available, now using MiniMax-M2.7
2026-04-03 12:09:05 +08:00
pxys-io 4d25bb5622 fix(openrouter): add missing cache_read pricing for xiaomi/mimo-v2-pro and xiaomi/mimo-v2-omni
OpenRouter charges bash.20/M cache_read tokens for mimo-v2-pro and
bash.08/M for mimo-v2-omni, but these were missing from the cost section.

Source: https://openrouter.ai/api/v1/models

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-03 04:08:55 +02:00
Aiden Cline 8845bf3f3b Merge pull request #1321 from BlockListed/cortecs-add-glm-5
Add glm-5 to cortecs
2026-04-02 19:28:50 -05:00
Aiden Cline 9b5bcde109 Merge pull request #1322 from fhennerkes/dev
poe: add GPT-5.3-Codex-Spark and Kimi-K2.5-FW models
2026-04-02 19:28:41 -05:00
Frank fa75002f19 update zen models 2026-04-02 19:01:00 -04:00
fhennerkes 69b6f3e94a poe: add GPT-5.3-Codex-Spark and Kimi-K2.5-FW models
Add 2 new free models
2026-04-02 15:11:34 -07:00
BlockListed 26f6b602fc add glm-5 to cortecs 2026-04-02 21:45:20 +02:00
Aiden Cline 287c69acaf Merge pull request #1314 from dpark01/add-kimi-k2-thinking-vertex
feat(google-vertex): add moonshotai/kimi-k2-thinking-maas model
2026-04-02 11:30:08 -05:00
Aiden Cline 2b46c3aef2 Merge pull request #1320 from cantalupo555/feature/qwen3.6-plus-free
feat: add Qwen3.6 Plus free on OpenRouter
2026-04-02 11:29:46 -05:00
cantalupo555 a9b7faa409 feat(openrouter): add qwen3.6-plus free model configuration
- Add Qwen3.6 Plus (free) provider configuration
- $0 pricing with 1M context window
- Multimodal input support (text, image, video)
- Full capabilities: reasoning, tool calls, structured output
- Attachment enabled for vision modality
2026-04-02 13:23:09 -03:00
Jack ad3305bc08 Merge branch 'dev' of github.com:anomalyco/models.dev into dev 2026-04-03 00:12:23 +08:00
Jack 0198228bbb Add MiMo V2 Pro/Omni models and family entries
Register two new MiMo V2 models and update model family values. Added "mimo-pro" and "mimo-omni" to ModelFamilyValues in packages/core/src/family.ts, and added corresponding TOML model descriptors under providers/opencode-go/models: mimo-v2-pro.toml and mimo-v2-omni.toml. The Pro model includes very large context (1,048,576) and tiered costs for >200k context, while the Omni model exposes multimodal input (text, image, audio, pdf) and a large 262,144 context. Both files set metadata (release_date, last_updated, knowledge cutoff, open_weights) and define interleaved reasoning field, costs, limits, and modalities.
2026-04-03 00:11:58 +08:00
Aiden Cline 165bc7df94 Merge pull request #1316 from NIKU-SINGH/remove-claude-3-7-sonnet-latest
Remove invalid claude-3-7-sonnet-latest model entry
2026-04-02 10:51:44 -05:00
NIKU-SINGH 36956dc4f4 Remove invalid claude-3-7-sonnet-latest model entry
Anthropic's API does not accept claude-3-7-sonnet-latest as a model ID
(returns 404). The versioned alias claude-3-7-sonnet-20250219 should be
used instead.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 16:27:15 +05:30
Mohd Saif Ansari 5ec371653b fix: add missing pdf modality to supported OpenAI models 2026-04-02 12:40:50 +05:30
Frank bb62fc43c1 update zen models 2026-04-01 22:59:53 -04:00
Frank c1465447ab update zen models 2026-04-01 17:53:17 -04:00
Daniel Park 471e9ec492 feat(google-vertex): add moonshotai/kimi-k2-thinking-maas model 2026-04-01 16:24:14 -04:00
Aiden Cline 57c3d38c21 Merge pull request #1313 from zhongruan0522/dev
Add GLM-5V-Turbo
2026-04-01 13:08:38 -05:00
Aiden Cline d19d2508b0 Merge pull request #1273 from Cahl-Dee/add-the-grid-ai
feat: add thegrid.ai provider and associated models
2026-04-01 12:25:35 -05:00
zhongruan0522 d0d2fffcfb Add GLM-5V-Turbo 2026-04-01 16:30:38 +00:00
Aiden Cline 07f48b1f2a Merge pull request #1311 from Moniet/feat/add-gpt-image-models
feat(openai): add openai gpt-image models
2026-04-01 10:52:12 -05:00
Moniet a33e15d095 feat(openai): add openai gpt-image models 2026-04-01 17:03:36 +05:30
Aiden Cline b64c2100f4 Merge pull request #1306 from dinhkim/feat/add-openrouter-glm-5-turbo
feat: add GLM-5-Turbo model in OpenRouter AI provider
2026-03-31 23:11:14 -05:00
Kim Truong 7ba7237633 feat: add GLM-5-Turbo model in OpenRouter AI provider 2026-03-31 23:18:02 +07:00
Aiden Cline 6e1ca23e6c Merge pull request #1305 from marcelarie/dev
Update synthetic.new model: Qwen3.5-397B
2026-03-31 10:43:23 -05:00
Aiden Cline 8ffb4ed5a7 Merge pull request #1301 from xinrui-z/fix/aihubmix-zod-validation-provider
fix(aihubmix): zod-validation-error
2026-03-31 10:43:12 -05:00
Xinrui 6b12398083 Replace @ai-sdk/openai-compatible with the official aihubmix/ai-sdk-provider package and remove the hardcoded api URL, as the dedicated package handles schema validation and endpoint configuration internally. 2026-03-31 23:29:10 +08:00
Aiden Cline 751745f200 Merge pull request #1304 from dpuyosa/add-gpt-54-mini-venice
Venice: Add GPT-5.4 Mini and remove discontinued models
2026-03-31 10:19:03 -05:00
marcelarie 593308b596 Merge branch 'dev' of github.com:marcelarie/models.dev into dev 2026-03-31 13:05:29 +02:00
marcelarie 54386f35b7 Added: Missing synthetic.new Qwen3.5-397B model 2026-03-31 13:02:19 +02:00
dpuyosa 73a83971e8 [venice] Add GPT-5.4 Mini and remove discontinued models
- Add GPT-5.4 Mini with reasoning and tool_call
- Update Aion 2.0 with reasoning capability
- Remove discontinued mistral-31-24b and qwen3-4b
2026-03-31 09:49:09 +02:00
Xinrui b5d8da29bb fix(aihubmix): switch to dedicated provider package to resolve Zod validation error
Replace @ai-sdk/openai-compatible with the official aihubmix/ai-sdk-provider
package and remove the hardcoded api URL, as the dedicated package handles
schema validation and endpoint configuration internally.
2026-03-31 12:37:56 +08:00
Aiden Cline 798538f9ae Merge pull request #1254 from llc1123/dev
feat(zenmux): route models through protocol-specific SDKs
2026-03-30 18:50:02 -05:00
Aiden Cline d4ce566f27 Merge pull request #1296 from sylviezhang37/update-vercel-models-20260330-1655
Update Vercel models
2026-03-30 18:49:47 -05:00
Aiden Cline 2042e3dd71 Merge pull request #1298 from cantalupo555/feature/qwen3.6-plus-preview-free
feat: add Qwen3.6 Plus Preview free on OpenRouter
2026-03-30 18:49:34 -05:00
Aiden Cline 08b577b6c9 Merge pull request #1299 from cyberofficial/vultr
Remove discontinued Vultr models
2026-03-30 18:49:24 -05:00
Cyber Official 01c3d44f99 Remove discontinued Vultr models
Vultr no longer supports these models on Serverless Inference:
- DeepSeek R1 Distill Llama 70B
- DeepSeek R1 Distill Qwen 32B
- GPT OSS 120B
- Llama 3.1 Nemotron Ultra 253B v1
- NVIDIA Nemotron 3 Super 120B A12B NVFP4

Remaining active models:
- MiniMax-M2.5: $0.30/M in, $1.20/M out
- DeepSeek-V3.2: $0.55/M in, $1.65/M out
- Kimi-K2.5: $0.55/M in, $2.75/M out
- GLM-5-FP8: $0.85/M in, $3.10/M out
2026-03-30 17:39:00 -04:00
cantalupo555 1695bfb958 feat: add Qwen3.6 Plus Preview free on OpenRouter
- Add free variant of Qwen3.6 Plus Preview to OpenRouter provider
- 1M context, 65K max output, /bin/bash.00 pricing
- Text-only modality (OpenRouter API reports text->text)
- Source: OpenRouter /api/v1/models API

---
Co-Authored-By: opencode https://opencode.ai
2026-03-30 18:08:54 -03:00
Frank bad8bedd25 update zen models 2026-03-30 16:50:10 -04:00
github-actions[bot] ad26e881ce chore(vercel): update Vercel model definitions
Auto-generated by weekly workflow from Vercel AI Gateway API.

Co-Authored-By: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-30 16:55:28 +00:00
Aiden Cline 348932f00c Merge pull request #1290 from zhongruan0522/dev
feat: add gpt-5.3-chat-latest model to openai
2026-03-29 22:25:52 -05:00
Aiden Cline d564c80b78 Merge pull request #1289 from pedrxd/mistral-add-mistral-small-4
Adding mistral small 4
2026-03-29 22:23:57 -05:00
Aiden Cline cba38e4707 Merge pull request #1287 from aeonzh/patch-1
Use correct name for Nemotron 3 Super (free) on OpenRouter
2026-03-29 12:35:18 -05:00
Aiden Cline 7ce9e95d62 Merge pull request #1294 from sk0x0y/add-glm-5.1-nanogpt
feat(nano-gpt): add glm-5.1 and glm-5.1:thinking models
2026-03-29 12:34:31 -05:00
sk0x0y a05b2a6be7 add glm-5.1 model to nano-gpt provider 2026-03-29 23:12:38 +09:00
zhongruan0522 17f41b72ad feat: add gpt-5.3-chat-latest model to openai 2026-03-29 11:18:44 +00:00
Pedro Ruiz 16cc382572 feat(mistral): Adding mistral small 4 2026-03-29 09:46:58 +02:00
Aiden Cline 3d456e3798 Merge pull request #1286 from khda-tech/dev
Add gemma family for google provider
2026-03-28 20:07:16 -05:00
Aiden Cline 0223ab3107 Merge pull request #1288 from cgilly2fast/dev
fix(firmware): incorrect model name for glm-5
2026-03-28 20:06:57 -05:00
Colby Gilbert 28ad50f6e9 fix(firmware): incorrect model name for glm-5 2026-03-27 22:26:19 -07:00
Zheng He Hu bf8fb378a4 Rename nemotron-3-super-120b-a12b-free.toml to nemotron-3-super-120b-a12b:free.toml 2026-03-28 02:54:35 +01:00
Aiden Cline b74242fdbf Merge pull request #1278 from fhennerkes/dev
poe: add Grok-4.20-Multi-Agent and DeepSeek-V3.2 models
2026-03-27 15:48:08 -05:00
Aiden Cline 8131cc947c Update providers/poe/models/novita/deepseek-v3.2.toml
Co-authored-by: Oleg Voronkovich <oleg-voronkovich@yandex.ru>
2026-03-27 15:21:16 -05:00
Khrulev Danil 95a73581cc Add gemma family for google provider 2026-03-27 21:39:52 +03:00
Zack Angelo 39ee133c98 mixlayer: adhere to logo standards, remove fill and size attributes 2026-03-27 09:23:09 -07:00
Aiden Cline c5e4e2c740 Merge pull request #1276 from voronkovich/feat-update-groq
feat(groq): Update Groq models
2026-03-27 10:51:40 -05:00
Aiden Cline 357c3021fb Merge pull request #1281 from zhongruan0522/dev
Added support for Zhipu AI's official CodingPlan GLM-5.1 model.
2026-03-27 09:49:49 -05:00
Aiden Cline 6afb0fea06 Merge pull request #1280 from dpuyosa/dev
Venice: Add Aion 2.0, update DeepSeek V3.2, remove Gemini 3 Pro Preview
2026-03-27 09:46:58 -05:00
dd781c4c15 feat: add glm-5.1 model to zai-coding-plan and zhipuai-coding-plan 2026-03-27 11:51:14 +00:00
dpuyosa 04e3b7c008 [venice] Add Aion 2.0, update DeepSeek V3.2, remove Gemini 3 Pro Preview
- feat(venice): add Aion 2.0 model
- fix(venice): enable tool_call and structured_output on DeepSeek V3.2
- fix(venice): remove deprecated Gemini 3 Pro Preview
2026-03-27 09:19:28 +01:00
Oleg Voronkovich ca40cb538d Updates 2026-03-27 00:37:40 +03:00
Aiden Cline f03de60559 Merge pull request #1259 from smakosh/llmgateway-models
feat: update LLM Gateway to 204 models
2026-03-26 15:25:22 -05:00
fhennerkes 0226a37a51 poe: add Grok-4.20-Multi-Agent and DeepSeek-V3.2 models 2026-03-26 12:18:13 -07:00
smakosh c2ba40d7d5 fix: logo format, remove README, minimax weights
- Normalize logo to 24x24, viewBox 0 0 40 40, currentColor
- Remove README.md (other providers don't have one)
- Mark all MiniMax models as open_weights = true

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 20:02:58 +01:00
smakosh d77bee4f29 fix: correct reasoning, vision, tools flags
The export script only checked the first active
provider for capabilities. Now checks all providers
and uses model ID patterns for reasoning detection.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 19:55:28 +01:00
Oleg Voronkovich 5ec0ac2807 feat(groq): Update Groq models 2026-03-26 18:59:09 +03:00
Aiden Cline 62015086c6 Merge pull request #1274 from petit-blaireau/copilot/add-openrouter-mistral-small-4
Add Mistral Small 4 for OpenRouter
2026-03-25 19:47:51 -05:00
copilot-swe-agent[bot] 2d86bafb20 feat(openrouter): add Mistral Small 4 (mistral-small-2603)
Co-authored-by: petit-blaireau <1893252+petit-blaireau@users.noreply.github.com>
Agent-Logs-Url: https://github.com/petit-blaireau/models.dev/sessions/871bbf50-3ef0-4926-afd1-e95c79f6bd57
2026-03-26 00:03:38 +00:00
Cahl-Dee bf4e5aab17 remove family property and add open_weight 2026-03-25 16:57:02 -05:00
Cahl-Dee 1590791225 adding thegrid.ai provider and associated models 2026-03-25 16:09:54 -05:00
Aiden Cline 047f3356d6 Merge pull request #1265 from MiyakoMeow/add-glm-4.7-flashx
Add glm-4.7-flashx to ZAI/ZhipuAI
2026-03-25 16:09:24 -05:00
Aiden Cline 1394d2ca4d Merge pull request #1270 from NachoFLizaur/feat/bedrock-add-nemotron-super-3-120b
feat(amazon-bedrock): add NVIDIA Nemotron 3 Super 120B
2026-03-25 15:05:31 -05:00
Aiden Cline 5b73677b33 Merge pull request #1272 from NachoFLizaur/fix/bedrock-minimax-m2.5-glm-5-limits
fix(amazon-bedrock): correct MiniMax M2.5 and GLM-5 context/output limits
2026-03-25 15:05:18 -05:00
Nacho F. Lizaur 780db038c4 fix(amazon-bedrock): correct MiniMax M2.5 and GLM-5 context/output limits 2026-03-25 16:49:31 +01:00
Nacho F. Lizaur 29c1249d64 feat(amazon-bedrock): add NVIDIA Nemotron 3 Super 120B 2026-03-25 15:44:56 +01:00
lioZ129 1b0633b172 Update providers/hpc-ai/models/moonshotai/kimi-k2.5.toml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-25 17:15:16 +08:00
lioZ129 aed0ee3bb7 Update providers/hpc-ai/models/moonshotai/kimi-k2.5.toml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-25 17:15:03 +08:00
Contributor 9fa7856fc6 feat: add HPC-AI model provider support 2026-03-25 16:55:45 +08:00
MiyakoMeow 8b80a2b34b Add glm-4.7-flashx to ZAI/ZhipuAI 2026-03-25 06:13:03 +08:00
Aiden Cline 897aa53905 Merge pull request #1257 from fhennerkes/dev
poe: add GPT-5.4-Nano and GPT-5.4-Mini models
2026-03-24 15:19:13 -05:00
Aiden Cline 5c36e54a43 Merge pull request #1260 from Happily-Coding/dev
Add MiniMax 2.5 to siliconflow
2026-03-24 15:18:39 -05:00
Aiden Cline a38f9373ab Merge pull request #1261 from cyberofficial/vultr
[Vultr] Delete Qwen2.5-Coder-32B-Instruct.toml
2026-03-24 10:14:38 -05:00
Aiden Cline fb72c181f8 Merge pull request #1263 from fanweixiao/vivgrd/gpt-5.4
provider(vivgrid): add gpt-5.4 and upgrade gemini-3 to gemini-3.1
2026-03-24 10:14:20 -05:00
C.C. Fan 601300c7e7 provider(vivgrid): add gpt-5.4 and upgrade gemini-3 to gemini-3.1 2026-03-24 21:04:59 +08:00
Cyber Official 8d9e966867 Delete Qwen2.5-Coder-32B-Instruct.toml
Model no longer offered
2026-03-24 02:48:38 -04:00
UrielS cf8f12b375 Add MiniMax 2.5 to siliconflow
Add MiniMax 2.5 to siliconflow
2026-03-24 01:14:36 -03:00
UrielS 116e35a32a Add MiniMax 2.5 to siliconflow 2026-03-24 01:13:37 -03:00
Aiden Cline 87a02b897a Merge pull request #1258 from vglafirov/feat/gitlab-gpt-5-4-models
feat(gitlab): add GPT-5.4, GPT-5.4 Mini, GPT-5.4 Nano, and GPT-5.3 Codex models
2026-03-23 22:00:07 -05:00
Vladimir Glafirov 849a529a42 fix(gitlab): use unscoped gitlab-ai-provider npm package name 2026-03-23 23:52:13 +01:00
smakosh c2f0bd08e6 feat: update LLM Gateway models to 204
Regenerated model exports from latest LLM Gateway
source. Adds 66 new models including Claude 4.6,
GPT-5.x, Gemini 3.1, Grok 4, and more. Removes
deprecated model aliases.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 22:28:46 +01:00
Vladimir Glafirov 5257d0919a feat(gitlab): add GPT-5.4, GPT-5.4 Mini, GPT-5.4 Nano, and GPT-5.3 Codex models 2026-03-23 21:41:11 +01:00
fhennerkes 379ab2757f poe: add GPT-5.4-Nano and GPT-5.4-Mini models
Add 2 new OpenAI models from Poe API:

GPT-5.4-Nano (released 2026-03-11):
- Reasoning support, 400K context, 128K output
- Cost: $0.18/M input, $1.1/M output
- Modalities: text, image

GPT-5.4-Mini (released 2026-03-12):
- Reasoning support, 400K context, 128K output
- Cost: $0.68/M input, $4/M output
- Modalities: text, image

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 13:13:10 -07:00
Aiden Cline 9838c55e29 Merge pull request #1256 from jonathancaevans/add-kimi-k2p5-turbo-router
Add Fireworks Kimi K2.5 Turbo router
2026-03-23 15:08:32 -05:00
Aiden Cline 4235bc6432 Merge pull request #1249 from tobwen/cleanup/openrouter-deprecated-models
chore(openrouter): remove deprecated and unavailable models
2026-03-23 15:07:27 -05:00
Jonathan Evans 29c3e9cbf4 Add Kimi K2.5 Turbo router for Fireworks
- Model ID: accounts/fireworks/routers/kimi-k2p5-turbo

- Pricing set to 0 (handled at subscription layer)

- Supports text and image input, text output

- Includes reasoning capabilities
2026-03-23 16:01:08 -04:00
Aiden Cline b0c1f37aad Merge pull request #1255 from sylviezhang37/update-vercel-models-20260323-1954
Update Vercel models
2026-03-23 15:00:14 -05:00
github-actions[bot] bd07f155f5 chore(vercel): update Vercel model definitions
Auto-generated by weekly workflow from Vercel AI Gateway API.

Co-Authored-By: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-23 19:54:44 +00:00
粒粒橙 0f95849d38 fix(zenmux): align model metadata with runtime support 2026-03-23 23:06:36 +08:00
粒粒橙 8dc90a4097 feat(zenmux): route models through protocol-specific SDKs 2026-03-23 21:48:00 +08:00
Aiden Cline 0a19559e4e Merge pull request #1252 from tarun1793/add-glm-5-fastrouter
Add GLM-5 model to fastrouter provider
2026-03-23 08:13:45 -05:00
Aiden Cline f27f83bdf9 Merge pull request #1253 from jacksonwilliamsva/add-bedrock-minimax-m2.5-glm-5
feat(amazon-bedrock): add MiniMax M2.5 and GLM-5 models
2026-03-23 08:13:35 -05:00
Aiden Cline 7b050ec719 Merge pull request #1244 from BlockListed/cortecs-add-claude-models
Add more claude models to cortecs
2026-03-23 08:13:27 -05:00
Aiden Cline 443cfd7703 Merge pull request #1247 from wojons/dev
Add Nemotron 3 Super model to OpenRouter and NVIDIA providers
2026-03-23 08:11:12 -05:00
Aiden Cline 6d648bf471 Merge pull request #1250 from dsingal0/dev
correct model name for nemotron super 3 on baseten
2026-03-23 08:10:45 -05:00
Jackson Williams e1a83a6812 feat(amazon-bedrock): add MiniMax M2.5 and GLM-5 models
Add two newly available Amazon Bedrock models:

- minimax.minimax-m2.5: 1M context, /bin/bash.30/.20 per 1M tokens
- zai.glm-5: 200K context, .00/.20 per 1M tokens

Both models were added to Amazon Bedrock on March 18, 2026.
Specs sourced from AWS Bedrock pricing page and vendor documentation.
2026-03-23 11:41:21 +11:00
Tarun b8606ed0e4 use latest price from fastrouter 2026-03-22 23:47:13 +00:00
Tarun 69c4600842 Override fastrouter glm-5 with zai glm-5 values 2026-03-22 23:43:09 +00:00
Tarun 5eb4a369f3 Add GLM-5 model to fastrouter provider 2026-03-22 23:31:53 +00:00
Dhruv Singal 17df1b49ce Update Baseten Nemotron model name 2026-03-22 13:04:40 -07:00
Dhruv Singal f18bc9b95b Update Baseten Nemotron display name 2026-03-22 13:00:49 -07:00
Dhruv Singal 485c37e862 Rename Baseten Nemotron model to match API ID 2026-03-22 12:57:10 -07:00
tobwen 0f092e3f62 chore(openrouter): remove expired/revealed/ended endpoints 2026-03-22 12:28:08 +00:00
tobwen a7bcd7e632 chore(openrouter): remove models without endpoints 2026-03-22 12:27:59 +00:00
Alexis Okuwa 6d081af472 Add Nemotron 3 Super model to OpenRouter and NVIDIA providers 2026-03-22 05:45:00 -05:00
Aiden Cline 8ee9ea1d96 Merge pull request #1243 from v1gnesh/dev
Update Grok 4.2 model names
2026-03-21 11:56:37 -05:00
Aiden Cline c71a365320 Merge pull request #1245 from Daltonganger/add-nanogpt-minimax-m2-7
Add NanoGPT MiniMax M2.7 model metadata
2026-03-21 11:55:15 -05:00
Ruben Beuker bb0e828b77 add NanoGPT MiniMax M2.7 model metadata 2026-03-21 14:58:35 +01:00
BlockListed 58cb222125 add more claude models to cortecs 2026-03-21 09:18:00 +01:00
v1gnesh 33f67289ee Rename model and remove beta status 2026-03-21 11:29:13 +05:30
v1gnesh ad34d7948c Update model name and status in TOML file 2026-03-21 11:28:22 +05:30
v1gnesh 7132293513 Add grok-4.20-0309-non-reasoning.toml file 2026-03-21 11:27:53 +05:30
Aiden Cline 495bc263e7 Merge pull request #1241 from BlockListed/add-minimax-2.5-cortecs
Add minimax M2.5 to cortecs
2026-03-20 15:55:28 -05:00
Aiden Cline 3811a45efe Merge pull request #1235 from anomalyco/github-sync
sync github copilot limits
2026-03-20 15:55:09 -05:00
BlockListed c4d04d2ed9 add minimax m2.5 to cortecs 2026-03-20 21:51:30 +01:00
Aiden Cline 20fcbbc336 Merge pull request #1240 from sylviezhang37/update-vercel-models-20260320-1642
Update Vercel models
2026-03-20 13:08:30 -05:00
github-actions[bot] 482b8ed69d chore(vercel): update Vercel model definitions
Auto-generated by weekly workflow from Vercel AI Gateway API.

Co-Authored-By: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-20 16:42:15 +00:00
Aiden Cline b77e95b84e Merge pull request #1236 from LYY/update/zenmux-sync
Sync ZenMux models with latest website data
2026-03-20 10:23:40 -05:00
Aiden Cline 463006f80c Merge pull request #1237 from vincentbernat/fix/scaleway-qwen3.5
fix(scaleway): set the correct family for Qwen 3.5 for Scaleway
2026-03-20 10:23:17 -05:00
Vincent Bernat 45b5abb875 fix(scaleway): set the correct family for Qwen 3.5 for Scaleway 2026-03-20 06:32:51 +01:00
LYY 4255e420ec Sync zenmux models with website
Add 17 new models found on zenmux.ai:
- google/gemini-3-pro-image-preview
- google/gemini-3.1-flash-lite-preview
- minimax/minimax-m2.7
- minimax/minimax-m2.7-highspeed
- openai/gpt-5.3-chat
- openai/gpt-5.3-codex
- openai/gpt-5.4
- openai/gpt-5.4-mini
- openai/gpt-5.4-nano
- openai/gpt-5.4-pro
- qwen/qwen3.5-flash
- qwen/qwen3.5-plus
- volcengine/doubao-seed-2.0-code
- x-ai/grok-4.2-fast
- x-ai/grok-4.2-fast-non-reasoning
- xiaomi/mimo-v2-omni
- xiaomi/mimo-v2-pro
- z-ai/glm-5-turbo

Mark anthropic/claude-3.5-sonnet as deprecated (not found on website)
2026-03-20 12:46:16 +08:00
Aiden Cline cda892e0d7 sync github copilot limits 2026-03-19 21:54:42 -05:00
Aiden Cline 098ff4f5bf Merge pull request #1227 from Verizane/dev
add OpenRouter models for gpt-5.4 mini and gpt-5.4 nano
2026-03-19 21:23:15 -05:00
Aiden Cline 0f70b8959f Merge pull request #1234 from mchenco/dev
Add Workers AI models: kimi-k2.5, nemotron-3-120b-a12b, glm-4.7-flash
2026-03-19 15:11:19 -05:00
mchen b8e6d58e5b add workers-ai models: kimi-k2.5, nemotron-3-120b-a12b, glm-4.7-flash 2026-03-19 14:59:17 -04:00
Roman Koslowski a855001a7e apply changes from review 2026-03-19 17:20:26 +01:00
Aiden Cline ac760b2268 Merge pull request #1230 from SamizuHM/feature/zhipuai-coding-plan-add-glm-5-turbo
zhipuai-coding-plan: Add glm-5-turbo.toml and replace symlink
2026-03-19 10:42:43 -05:00
Aiden Cline d4a5ea7ae7 Merge pull request #1226 from spiffytech/dev
Add Ollama Cloud support for Minimax M2.7
2026-03-19 10:41:47 -05:00
Aiden Cline 434ed89ba2 Merge pull request #1228 from dpuyosa/minimax_m2_7
Venice: Add MiniMax M2.7 and update DeepSeek V3.2 pricing
2026-03-19 10:41:16 -05:00
Aiden Cline 6d7719a62a Merge pull request #1229 from 0b1000/dev
Xiaomi: Add MiMo-V2-Pro and MiMo-V2-Omni
2026-03-19 10:41:06 -05:00
Aiden Cline 93637039ef Merge pull request #1231 from ariane-emory/feat/feat/add-xiaomi-mimo-v2-pro-and-omni
feat: add the Xiaomi MiMo V2 Pro and Xiaomi MiMo V2 Omni models to the OpenRouter provide
2026-03-19 10:40:44 -05:00
Ariane Emory 9c95f796c0 Merge remote-tracking branch 'upstream/dev' into feat/feat/add-xiaomi-mimo-v2-pro 2026-03-19 11:22:43 -04:00
Ariane Emory e8650b6073 feat: add xiaomi mimo-v2-pro and mimo-v2-omni models to openrouter 2026-03-19 11:18:46 -04:00
SamizuHM 23c2be6ff7 feat(zhipuai-coding-plan): add glm-5-turbo.toml and replace glm-5-turbo with symlink 2026-03-19 18:09:17 +08:00
Frank 913a63dbe6 update zen models 2026-03-19 00:33:45 -04:00
0b1000 503087e99b Merge branch 'anomalyco:dev' into dev 2026-03-19 12:28:38 +08:00
0b1000 48150f09d3 Xiaomi: Add MiMo-V2-Pro and MiMo-V2-Omni 2026-03-19 12:27:00 +08:00
Aiden Cline 5fef681657 Disable tool_call in grok model configuration 2026-03-18 23:09:30 -05:00
Frank 123054ae0c update zen models 2026-03-18 20:45:44 -04:00
Frank 03060d154b update zen models 2026-03-18 20:37:47 -04:00
dpuyosa 5c9b8108e0 Update minimax-m27.toml 2026-03-19 01:02:24 +01:00
dpuyosa c8084681f9 [venice] Add MiniMax M2.7 and update DeepSeek V3.2 pricing
- Add MiniMax M2.7 model with reasoning and tool_call support
 - Update DeepSeek V3.2 pricing (input: $0.33, output: $0.48, cache: $0.16)
2026-03-19 00:58:50 +01:00
Roman Koslowski 352ab4ae1b add gpt-5.4 mini and gpt-5.4 nano 2026-03-18 22:16:55 +01:00
spiffytech cf0b416b15 Added Ollama Cloud support for Minimax M2.7 2026-03-18 16:15:07 -04:00
Aiden Cline 38339a2a90 Merge pull request #1224 from APonce911/minimax-m2.7-openrouter
add MiniMax M2.7 to OpenRouter
2026-03-18 14:10:13 -05:00
Aiden Cline ff9040bf52 Update minimax-m2.7.toml 2026-03-18 14:09:26 -05:00
Aiden Cline 3039804af4 Delete providers/opencode/models/minimax-m2.7.toml 2026-03-18 14:08:55 -05:00
Frank 7a4ad7bec8 update go models 2026-03-18 14:40:25 -04:00
Zack Angelo 7a2ec5ab95 New provider: Mixlayer 2026-03-18 11:19:35 -07:00
airton 721cc122bc add MiniMax M2.7 to OpenRouter and OpenCode 2026-03-18 18:57:09 +01:00
Aiden Cline 0527f019af Merge pull request #1221 from sergical/fix/bedrock-claude-4-6-context-window-and-pricing
fix(amazon-bedrock): set Claude Sonnet 4.6 and Opus 4.6 context window to 1M
2026-03-18 12:17:57 -05:00
Aiden Cline c89371de50 Merge pull request #1223 from sylviezhang37/update-vercel-models-20260318-1659
Update Vercel models
2026-03-18 12:17:22 -05:00
Sylvie Zhang 6d6d4220d8 Enable open_weights in minimax-m2.7.toml 2026-03-18 10:12:37 -07:00
Sylvie Zhang 8b984eeec1 Enable open_weights in minimax-m2.7-highspeed model 2026-03-18 10:12:21 -07:00
github-actions[bot] 586027c8f1 chore(vercel): update Vercel model definitions
Auto-generated by weekly workflow from Vercel AI Gateway API.

Co-Authored-By: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-18 16:59:24 +00:00
Sergiy Dybskiy 343b5f87ef fix(amazon-bedrock): set Claude Sonnet 4.6 and Opus 4.6 context window to 1M
Both models support a 1M token context window natively on Bedrock via the
Converse API with no beta headers required. Verified empirically via the
AWS CLI (bedrock-runtime converse): 950K tokens succeeds, >1M returns
'prompt is too long: N tokens > 1000000 maximum'.

The AWS Bedrock pricing page confirms long context pricing for these two
models is identical to standard pricing (no surcharge), so the
[cost.context_over_200k] section is removed as it was incorrect.
2026-03-18 12:20:38 -04:00
Aiden Cline 955b773ee5 Merge pull request #1218 from pomidornijfrukt/azure/5.4-mini-nano
Add GPT-5.4 Mini and Nano models for Azure providers
2026-03-18 10:31:13 -05:00
Aiden Cline 98559071f0 Merge pull request #1217 from cgilly2fast/dev
chore(firmware): update base url and docs url
2026-03-18 10:30:44 -05:00
eCube-cachy 0660308816 add: GPT-5.4 Mini and Nano model configurations for Azure providers 2026-03-18 15:17:52 +02:00
Jack 380f9dd8eb Merge pull request #1216 from no1wudi/dev
Add MiniMax M2.7 and M2.7-highspeed models to 4 official providers
2026-03-18 16:29:59 +08:00
Jack 1cfdab1b18 update MiniMax-M2.7 cache_read to 0.06 2026-03-18 16:27:53 +08:00
Colby Gilbert 75a981f957 chore(firmware): update base url and docs url 2026-03-18 00:41:05 -07:00
Huang Qi 7fadbcadc8 Add MiniMax M2.7 and M2.7-highspeed models to 4 official providers 2026-03-18 15:21:06 +08:00
Frank 38f9092292 update zen models 2026-03-18 02:30:18 -04:00
Aiden Cline 92149b9eaa rm nonexistant github model 2026-03-17 21:41:51 -05:00
Aiden Cline b614f0e69c Merge pull request #1214 from luisrudge/dev
Add GPT-5.4 mini and nano to GitHub Copilot provider
2026-03-17 20:13:46 -05:00
Luís Rudge 67d6dac5c5 Add GPT-5.4 mini and nano to GitHub Copilot provider 2026-03-17 18:44:38 -06:00
Aiden Cline 7d3cc61a48 Merge pull request #1207 from PedroACosta/feat/add-dinference-provider
feat(providers): add dinference provider
2026-03-17 14:51:31 -05:00
Aiden Cline f02ea6c4d2 Merge pull request #1115 from skywalker512/feat/add-tencent-coding-plan
feat: add Tencent Coding Plan provider
2026-03-17 14:51:19 -05:00
Aiden Cline 0cb50eeece Merge pull request #1208 from scwgoire/march-update
Scaleway 26-03 model updates
2026-03-17 14:48:12 -05:00
Aiden Cline 878311d2e0 Merge pull request #1210 from dm-cohere/dm/fix-update-cohere-model-capabilities
fix(models): update cohere model capabilities
2026-03-17 14:32:27 -05:00
Aiden Cline a0e89f65d6 Merge pull request #1206 from 0b1000/dev
Rename minimax-m2.5.toml to MiniMax-M2.5.toml
2026-03-17 14:32:19 -05:00
Aiden Cline 74099b7c9c Merge pull request #1213 from smrdotgg/add-openai-gpt-5-4-mini-and-nano
Add OpenAI GPT-5.4 mini and nano
2026-03-17 14:31:24 -05:00
Aiden Cline ec522435c3 Merge pull request #1211 from sylviezhang37/update-vercel-models-20260317-1807
Update Vercel models
2026-03-17 14:30:24 -05:00
smr d839cd37d4 Add OpenAI GPT-5.4 mini and nano
Capture the newly released mini and nano model metadata so models.dev reflects OpenAI's latest GPT-5.4 lineup with current pricing, limits, and knowledge cutoff.
2026-03-17 22:09:13 +03:00
github-actions[bot] ecb6ef7f93 chore(vercel): update Vercel model definitions
Auto-generated by weekly workflow from Vercel AI Gateway API.

Co-Authored-By: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-17 18:07:06 +00:00
Deirdre Meehan 8b4d341054 fix: cohere models on non-cohere providers 2026-03-17 16:51:24 +00:00
Deirdre Meehan 62f4a28308 fix: cohere provider models 2026-03-17 16:44:55 +00:00
Pedro 2fb8ef0dc8 feat(providers): add dinference provider 2026-03-17 14:13:36 +01:00
Gregoire de Turckheim 96968e2bf8 feat: Scaleway 26-03 model updates 2026-03-17 12:15:52 +01:00
0b1000 ee9d7879ce Rename minimax-m2.5.toml to MiniMax-M2.5.toml 2026-03-17 14:50:35 +08:00
Frank 71283512a6 update zen models 2026-03-17 02:21:13 -04:00
Frank cd4afd7e7c update zen models 2026-03-17 02:19:17 -04:00
Aiden Cline 1239d0190b Merge pull request #1204 from cyberofficial/vultr
VULTR: Updated Vultr model pricing to reflect current serverless inference rates
2026-03-16 16:10:39 -05:00
Aiden Cline 491bf6ccba Merge pull request #1202 from RaviTharuma/fix/chutes-pricing-update-2026-03
fix(chutes): update pricing and limits from live API
2026-03-16 16:10:25 -05:00
Cyber Official c993d0c121 Updated Vultr model pricing to reflect current serverless inference rates
Updated Vultr model pricing to reflect current serverless inference rates

This commit updates the cost configuration for all Vultr models to align with their latest pricing tiers:

**Cost Reductions:**
- DeepSeek-R1-Distill-Qwen-32B: Input $0.55→$0.30, Output $2.75→$0.30 (73% reduction)
- NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4: Input $0.55→$0.20, Output $2.75→$0.80 (64% input, 71% output reduction)
- Qwen2.5-Coder-32B-Instruct: Input $0.55→$0.20, Output $2.75→$0.60 (64% input, 78% output reduction)
- gpt-oss-120b: Input $0.55→$0.15, Output $2.75→$0.60 (73% input, 78% output reduction)
- MiniMax-M2.5: Input $0.55→$0.30, Output $2.75→$1.20 (45% input, 56% output reduction)

**Cost Adjustments:**
- DeepSeek-R1-Distill-Llama-70B: Input $0.55→$2.00, Output $2.75→$2.00 (significant increase)
- DeepSeek-V3.2: Output $2.75→$1.65 (40% reduction)
- Llama-3.1-Nemotron-Ultra-253B-v1: Output $2.75→$1.80 (35% reduction)
- GLM-5-FP8: Input $0.55→$0.85, Output $2.75→$3.10 (55% input, 13% output increase)
2026-03-16 13:58:28 -04:00
Aiden Cline e55c39a83d Merge pull request #1141 from sk0x0y/feature/nanogpt-confirmed-suffix2-fixes
fix(nano-gpt): rename confirmed 2-suffix model ids
2026-03-16 10:57:44 -05:00
Aiden Cline 6dea000e25 Merge pull request #1148 from sk0x0y/feature/nanogpt-bundled-confirmed-suffix2-fixes
fix(nano-gpt): rename bundled confirmed 2-suffix model ids
2026-03-16 10:57:30 -05:00
Aiden Cline 3f7a757b3f Merge pull request #1142 from sk0x0y/feature/nanogpt-more-confirmed-suffix2-fixes
fix(nano-gpt): rename more confirmed 2-suffix model ids
2026-03-16 10:56:36 -05:00
Aiden Cline c693fd71e2 Merge pull request #1194 from cyberofficial/vultr
Update Vultr model list with 10 new models and updated pricing
2026-03-16 10:55:19 -05:00
Aiden Cline 54e04e288a Merge pull request #1198 from amritbanerjee/add-glm-5-turbo
Add GLM-5-Turbo model support
2026-03-16 10:47:08 -05:00
Aiden Cline 462a179eee Merge pull request #1203 from jerome-benoit/fix/sap-ai-core-model-specs
fix(sap-ai-core): align model specs with official sources
2026-03-16 10:46:40 -05:00
Aiden Cline 95db59034d Merge pull request #1201 from dpuyosa/venice-new-models
Venice: Add new provider models
2026-03-16 10:45:59 -05:00
Aiden Cline 74dcc74e32 Merge pull request #1200 from dpuyosa/venice/pricing-update
Venice: Update model pricing for 7 models
2026-03-16 10:45:47 -05:00
Jérôme Benoit 57975f5f25 fix(sap-ai-core): align model specs with official sources 2026-03-16 13:59:06 +01:00
Ravi Tharuma ad7b063747 fix(chutes): update pricing and limits from live API
Synced 6 Chutes model definitions against the live API at
https://llm.chutes.ai/v1/models (queried 2026-03-16).

Models updated:
- deepseek-ai/DeepSeek-V3.2-TEE: cost 0.25/0.38→0.28/0.42, cache 0.125→0.14, context 163840→131072
- zai-org/GLM-5-TEE: cost 0.75/2.5→0.95/3.15, added cache_read 0.475
- zai-org/GLM-4.6-TEE: cost 0.35/1.5→0.4/1.7, added cache_read 0.2
- zai-org/GLM-4.6V: added cache_read 0.15
- MiniMaxAI/MiniMax-M2.5-TEE: cost 0.15/0.6→0.3/1.1, added cache_read 0.15
- Qwen/Qwen3.5-397B-A17B-TEE: cost 0.3/1.2→0.39/2.34, cache 0.15→0.195
2026-03-16 11:42:29 +01:00
dpuyosa f76e9f0551 [venice] Add new provider models
- Add mistral-small-3.2-24b-instruct, qwen3-5-9b, venice-uncensored-role-play, zai-org-glm-4.6
2026-03-16 09:37:41 +01:00
dpuyosa d70a49b36f [venice] Update model pricing for 7 models
- Remove context_over_200k pricing from Claude models
- Update Grok cache_read pricing from 0.5 to 0.25
- Update Kimi, MiniMax input/output pricing
2026-03-16 09:05:37 +01:00
amrit 3487135f9f Add GLM-5-Turbo model support 2026-03-16 12:14:50 +11:00
Aiden Cline 458a66c766 Merge pull request #1197 from kesku/update-perplexity-agent-models
Update Perplexity Agent API models
2026-03-15 10:59:23 -05:00
Frank d3a84dc7ec update zen models 2026-03-15 10:59:52 -04:00
Kesku ae61b25583 update perplexity-agent: add gpt-5.4 & nemotron, remove gemini-3-pro 2026-03-15 03:46:50 +00:00
Aiden Cline 74be576eda Merge pull request #1178 from Sewer56/change-synthetic-endpoint
Add OpenAI and Anthropic compatible endpoints
2026-03-14 20:55:30 -05:00
Aiden Cline 164df2cda0 Merge pull request #1191 from Alcatraz-Zhang/update/kilo-models
Sync Kilo model definitions with latest gateway catalog
2026-03-14 20:54:45 -05:00
Cyber Official 2cd7908369 Update Vultr model list with 10 new models and updated pricing
- Updated pricing to $0.55/M input tokens, $2.75/M output tokens
- Updated context limits to safe floor values from official testing
- Added accurate output token limits from official model documentation
- Added 5 new models: MiniMax M2.5, DeepSeek V3.2, GLM-5 FP8, Llama 3.1 Nemotron Ultra 253B, NVIDIA Nemotron 3 Super 120B A12B NVFP4
- Updated existing models: DeepSeek R1 Distill variants, GPT OSS 120B, Kimi K2.5, Qwen2.5 Coder 32B

Model specifications:
- MiniMax M2.5: 196K context, 4,096 output
- Qwen2.5-Coder-32B: 15K context, 256 output (notable low default)
- DeepSeek R1 Distill Llama 70B: 130K context, 4,096 output
- DeepSeek R1 Distill Qwen 32B: 130K context, 4,096 output
- DeepSeek V3.2: 163K context, 4,096 output
- Kimi K2.5: 261K context, 32,768 output (high output limit)
- GPT OSS 120B: 130K context, 8,192 output
- GLM-5 FP8: 202K context, 131,072 output (exceptionally high)
- Llama 3.1 Nemotron Ultra 253B: 32K context, 4,096 output
- NVIDIA Nemotron 3 Super 120B A12B NVFP4: 260K context, 8,192 output

All models set to text-only (no vision support) as confirmed.
2026-03-14 19:47:01 -04:00
Alcatraz-Zhang cc667340f5 Sync Kilo model definitions with latest gateway catalog
Refresh the Kilo provider catalog so models.dev matches the current gateway inventory, pricing, and availability.
2026-03-15 04:35:38 +08:00
Sewer56 f2cfc1435d Changed: Synthetic to use newer openai endpoint 2026-03-14 17:09:44 +00:00
Aiden Cline 35bb8cca47 Merge pull request #1172 from bigfluffycookie/add-deepinfra-llama-models
Add deepinfra llama models
2026-03-14 10:55:13 -05:00
Aiden Cline 3468a410e1 Merge pull request #1177 from ar27111994/dev
Add Grok 4.1 Fast configurations for reasoning and non-reasoning
2026-03-14 10:54:57 -05:00
Aiden Cline b1b5e3c5cd Merge pull request #1174 from dacbd/patch-1
fix(wandb): fix k2.5 settings
2026-03-14 10:54:35 -05:00
Aiden Cline 97f03ec672 Merge pull request #1175 from dacbd/patch-2
chore(docs): add note for manual testing with opencode
2026-03-14 10:54:22 -05:00
BigFluffyCookie 9b516924aa Add limit output for llama models 2026-03-14 11:49:57 +01:00
Ahmed Rehan 929a39600b feat(models): add Grok 4.1 Fast (Reasoning and Non-Reasoning) configurations 2026-03-14 14:27:24 +05:00
Daniel Barnes a87d8bb8cc chore(docs): add note for manual testing with opencode 2026-03-14 13:42:57 +09:00
Daniel Barnes 574139eb49 fix(wandb): fix k2.5 settings 2026-03-14 13:07:16 +09:00
Aiden Cline 1e3bc38b31 Merge pull request #1137 from mcowger/mcowger/correct-gemini-flash-lite-pricing
Fix incorrect pricing for gemini-3.1-flash-lite-preview
2026-03-13 18:41:41 -05:00
Aiden Cline 8916fe9874 Merge pull request #1171 from stephenkuhn214/dev
fix(amazon-bedrock): Remove deprecated and add missing models
2026-03-13 18:26:25 -05:00
BigFluffyCookie 5d956b41a6 Rename llama models to remove "Meta" prefix 2026-03-13 23:15:27 +01:00
BigFluffyCookie 42a7a14f69 Add Meta Llama models to DeepInfra provider 2026-03-13 22:53:39 +01:00
Stephen Kuhn f24ee000d7 fix(amazon-bedrock): update and add models
- Remove 19 deprecated/EOL models
- Add 7 new models: DeepSeek V3.2, Llama 3.1 405B, Magistral Small 1.2, Ministral 3 3B, Mistral Large 3, Pixtral Large, NVIDIA Nemotron Nano 3 30B
- Fix Devstral 2 123B: correct name, family, and open_weights
- Set accurate Bedrock launch dates for all new models
2026-03-13 16:02:04 -04:00
Aiden Cline 7196b1fb2c Merge pull request #1170 from anomalyco/revert-1166-fix/update-gpt53-codex-spark-preview
Revert "fix(openai): rename gpt-5.3-codex-spark to gpt-5.3-codex-spark-preview"
2026-03-13 14:31:33 -05:00
Aiden Cline f6c0d5a29d Revert "fix(openai): rename gpt-5.3-codex-spark to gpt-5.3-codex-spark-preview" 2026-03-13 14:30:58 -05:00
Aiden Cline ee63449aa5 sonnet 4.6 and opus 4.6 1M context 2026-03-13 14:27:55 -05:00
Aiden Cline 92aa44ec00 Merge pull request #1166 from rluisr/fix/update-gpt53-codex-spark-preview
fix(openai): rename gpt-5.3-codex-spark to gpt-5.3-codex-spark-preview
2026-03-13 14:18:41 -05:00
Aiden Cline 477284535c Rename model from 'GPT-5.3 Codex Spark Preview' to 'GPT-5.3 Codex Spark' 2026-03-13 14:17:44 -05:00
Aiden Cline 304233bdda Merge pull request #1169 from mdrxy/mdrxy/anthropic-token-limits
Update Claude 4.6 context/pricing
2026-03-13 14:13:40 -05:00
Aiden Cline 25d782ee2c Reduce context limit from 1,000,000 to 200,000 2026-03-13 14:13:30 -05:00
Aiden Cline 0f63393d51 Update context limit in claude-opus-4-6.toml 2026-03-13 14:12:56 -05:00
rluisr e780eefce2 fix(openai): rename gpt-5.3-codex-spark to gpt-5.3-codex-spark-preview
The OpenAI API expects model ID 'gpt-5.3-codex-spark-preview', not
'gpt-5.3-codex-spark'. Rename model files in both openai and opencode
providers so the generated model ID matches the actual API.
2026-03-14 03:59:03 +09:00
Aiden Cline a79585fa83 Merge pull request #1163 from micuintus/feature/Kimi2.5-fast
feat(nebius): add Kimi-K2.5-fast model
2026-03-13 13:14:38 -05:00
Aiden Cline 00801f74f2 Merge pull request #1164 from butyess/dev
Openrouter models: gemini 3.1 flash lite preview, grok 4.20 beta models.
2026-03-13 13:14:22 -05:00
Aiden Cline 185f6731ee Merge pull request #1162 from dpuyosa/feature/venice-grok-4-20-beta
Venice: Add Grok 4.20 Beta models
2026-03-13 12:53:28 -05:00
Aiden Cline d291b0575c Merge pull request #1167 from sylviezhang37/update-vercel-models-20260313-1639
Update Vercel models
2026-03-13 12:53:11 -05:00
Mason Daugherty 382d9f3e7d Update Claude 4.6 context/pricing 2026-03-13 13:53:04 -04:00
Aiden Cline e64f5fe963 Merge pull request #1168 from mdrxy/mdrxy/update-baseten
Update Baseten models
2026-03-13 12:51:56 -05:00
Mason Daugherty ea57ddfe7e Update Baseten models 2026-03-13 13:48:41 -04:00
github-actions[bot] 29463d7fa8 chore(vercel): update Vercel model definitions
Auto-generated by weekly workflow from Vercel AI Gateway API.

Co-Authored-By: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-13 16:39:30 +00:00
Jack bcc8db49ee Merge pull request #1165 from anomalyco/chore/openrouter-alpha-reasoning-details-20260313
feat(openrouter): add interleaved reasoning details for alpha models
2026-03-13 22:25:25 +08:00
Jack c8521d70f3 feat(openrouter): add interleaved reasoning details for alpha models 2026-03-13 22:20:54 +08:00
Federico Masi 490cd249e4 Openrouter models: gemini 3.1 flash lite preview, grok 4.20 beta models. 2026-03-13 15:11:12 +01:00
Michael Voigt dbc636f5f3 feat(nebius): add Kimi-K2.5-fast model 2026-03-13 12:35:13 +01:00
Michael Voigt 9a32f671a1 fix(nebius): lowercase model ID for Nemotron-3-Super-120B-A12B
The filename must match the API casing (lowercase) to avoid 'model does not exist' errors.
2026-03-13 12:35:08 +01:00
dpuyosa 856d925eda [venice] Add Grok 4.20 Beta models
- Add Grok 4.20 Beta model configuration (2M context, 128K output)
- Add Grok 4.20 Multi-Agent Beta model configuration
2026-03-13 10:48:38 +01:00
Aiden Cline 066a425917 Merge pull request #1158 from micuintus/feature/Nebius_Nemotron-3-Super-120b-a12b
feat(nebius): Add support for Nemotron-3-Super-120B-A12B
2026-03-12 22:20:20 -05:00
Aiden Cline 6df7f20cdc Merge pull request #1156 from dsingal0/dev
added nemotron super on baseten
2026-03-12 22:20:06 -05:00
Aiden Cline 78bb47b90e Merge pull request #1151 from dacbd/dacbd
fix(wandb): update models
2026-03-12 22:19:43 -05:00
Aiden Cline c121d86419 Merge pull request #1160 from kreatoo/dev
feat: add zai-org/glm-4.7 and zai-org/glm-4.7-flash to NanoGPT
2026-03-12 22:11:18 -05:00
Aiden Cline ab148eeb14 Merge pull request #1161 from Grin1024/dev
Add Claude Opus 4.6 and Sonnet 4.6 models to RequestY provider
2026-03-12 22:11:07 -05:00
lihui 49d196d326 Add Claude Opus 4.6 and Sonnet 4.6 models to RequestY provider 2026-03-13 09:00:54 +08:00
Kreato 8899b390ef feat: add zai-org/glm-4.7 and zai-org/glm-4.7-flash to NanoGPT 2026-03-13 00:27:09 +03:00
Michael Voigt 5217f62ddf fix(nebius): Follow context updates for Kimi 2.5 and GLM-5 2026-03-12 20:22:48 +01:00
Michael Voigt 55eaff9af1 feat(nebius): Add support for Nemotron-3-Super-120B-A12B 2026-03-12 20:22:21 +01:00
Dhruv Singal 7557c06ac0 update output length 2026-03-12 09:41:25 -07:00
Dhruv Singal e85d820121 fix input output 2026-03-12 08:29:01 -07:00
Dhruv Singal 499d3a39ef remove cache pricing 2026-03-12 08:21:22 -07:00
Dhruv Singal b9b38d6e33 added nemotron super on baseten 2026-03-12 08:18:46 -07:00
Aiden Cline ca24ac14fa Merge pull request #1153 from dpuyosa/dev
Venice: Update model output token limits
2026-03-12 10:08:46 -05:00
Aiden Cline 822546fc67 Merge pull request #1155 from spiffytech/dev
Add Ollama Cloud support for Nemotron 3 Super
2026-03-12 10:08:31 -05:00
Aiden Cline 4555195b71 Merge pull request #1152 from v1gnesh/dev
Update grok-4.20 model defs
2026-03-12 10:08:15 -05:00
spiffytech 5eae8effc6 Added Ollama Cloud support for Nemotron 3 Super 2026-03-12 09:28:47 -04:00
dpuyosa c1801aef87 [venice] Normalize model output token limits
- Update output limits to standard values across all models
2026-03-12 10:08:39 +01:00
v1gnesh 5e6464b272 Update grok-4.20-beta-reasoning 2026-03-12 10:27:40 +05:30
v1gnesh e1a4f23332 Update grok-4.20-beta-non-reasoning 2026-03-12 10:26:03 +05:30
v1gnesh 753e1f9f0c grok-multi-agent-beta update 2026-03-12 10:23:57 +05:30
Daniel Barnes 123ecd2ba5 docs url 2026-03-12 13:27:56 +09:00
Daniel Barnes f15cda9fcb remove old 2026-03-12 13:26:08 +09:00
Daniel Barnes 0205debbd3 fix values 2026-03-12 13:22:29 +09:00
Daniel Barnes 0059766509 number formating 2026-03-12 13:17:22 +09:00
Daniel Barnes be81b02916 additional model files 2026-03-12 13:02:17 +09:00
Daniel Barnes 2dab141166 initial script & model updates 2026-03-12 13:01:35 +09:00
Aiden Cline 45aa49af25 tweak: azure kimi k2.5 2026-03-11 22:35:20 -05:00
Aiden Cline 781fad3ad4 Merge pull request #1150 from cau1k/5.4-family
feat(azure): add 5.4/pro families
2026-03-11 22:14:08 -05:00
cau1k 99d2ffcfdd feat(azure): add 5.4/pro families 2026-03-11 20:59:11 -04:00
Aiden Cline 381d7cc19d Merge pull request #1149 from ariane-emory/fear/add-march-or-stealth-models
Add OpenRouter stealth models: Hunter Alpha and Healer Alpha
2026-03-11 18:07:50 -05:00
Ariane Emory 7482e22458 Fix family field to use 'alpha' for stealth models 2026-03-11 18:49:32 -04:00
Ariane Emory f5e6a402e6 Add OpenRouter stealth models: Hunter Alpha and Healer Alpha 2026-03-11 18:41:58 -04:00
Aiden Cline 9265852852 tweak: adjust some gh limits to align better w/ api 2026-03-11 15:23:44 -05:00
Aiden Cline dc98a32996 Merge pull request #1018 from Sewer56/add-synthetic-missing-models
Update synthetic.new models: promote MiniMax-M2.5, add GLM-4.7-Flash
2026-03-11 14:55:50 -05:00
Aiden Cline 56c39ae0f6 Merge pull request #1140 from sk0x0y/feature/nanogpt-thudm-id-fixes
fix(nano-gpt): rename THUDM 2 ids to canonical THUDM ids
2026-03-11 14:55:07 -05:00
Aiden Cline b1f43a7595 Merge pull request #1147 from msadiks/fix/alibaba-coding-minimax
fix: alibaba-coding-plan MiniMax-M2.5 context window
2026-03-11 14:54:37 -05:00
Matt Cowger fed8bcae19 Merge branch 'dev' into mcowger/correct-gemini-flash-lite-pricing 2026-03-11 12:23:42 -07:00
sk0x0y fb95150d02 fix(nano-gpt): rename VongolaChouko model id
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-12 04:20:39 +09:00
sk0x0y a7c9a240b4 fix(nano-gpt): rename Steelskull model ids
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-12 04:20:39 +09:00
sk0x0y 6432a4a3e6 fix(nano-gpt): rename Sao10K model ids
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-12 04:20:38 +09:00
sk0x0y f2e4a249fe fix(nano-gpt): rename NeverSleep model ids
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-12 04:20:38 +09:00
sk0x0y 8667a6eed8 fix(nano-gpt): rename MarinaraSpaghetti model id
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-12 04:19:56 +09:00
sk0x0y 429554397a fix(nano-gpt): rename LatitudeGames model id
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-12 04:19:56 +09:00
sk0x0y a64e6ad0ac fix(nano-gpt): rename LLM360 model id
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-12 04:19:56 +09:00
sk0x0y d68d79888c fix(nano-gpt): rename Infermatic model id
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-12 04:19:56 +09:00
sk0x0y 6c52905c6a fix(nano-gpt): rename Gryphe model id
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-12 04:19:55 +09:00
sk0x0y 62410b8f26 fix(nano-gpt): rename GalrionSoftworks model id
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-12 04:19:55 +09:00
sk0x0y 50ce68ccab fix(nano-gpt): rename Envoid model ids
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-12 04:19:20 +09:00
sk0x0y d1c6a6b873 fix(nano-gpt): rename EVA-UNIT-01 model ids
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-12 04:19:20 +09:00
Frank 7193b068a5 update zen models 2026-03-11 13:52:50 -04:00
Sadik 79a8a06bd7 fix MiniMax-M2.5 context window 2026-03-11 20:50:33 +03:00
Aiden Cline b60c03e11c Merge pull request #1139 from zainhas/dev
[Together AI] add prompt caching pricing for MiniMax m2.5
2026-03-11 12:31:56 -05:00
Aiden Cline 15cf98d57b Merge pull request #1146 from gotjoshua/patch-1
Rename step-3-5-flash.toml to step-3.5-flash.toml
2026-03-11 12:31:39 -05:00
Aiden Cline b2ee6c407b Merge pull request #1144 from micuintus/feature/update-nebius-changes
Feat: update Nebius changes
2026-03-11 12:31:29 -05:00
gotjoshua 96a14a06e7 Rename step-3-5-flash.toml to step-3.5-flash.toml
on nvidia it is 3.5 not 3-5
2026-03-11 11:41:36 +00:00
Michael Voigt adc358606d fix(nebius): update model context limits per API 2026-03-11 11:33:14 +01:00
Michael Voigt 63d52adf6f feat(nebius): add GLM-5 model 2026-03-11 11:33:14 +01:00
sk0x0y 9a31387766 fix(nano-gpt): rename Salesforce model id
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 18:17:41 +09:00
sk0x0y 735157b837 fix(nano-gpt): rename ReadyArt model ids
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 18:17:41 +09:00
sk0x0y d75b46fb37 fix(nano-gpt): rename Doctor-Shotgun model id
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 18:17:41 +09:00
sk0x0y cc555f8482 fix(nano-gpt): rename CrucibleLab model id
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 18:17:13 +09:00
sk0x0y 7fbbcf2b49 fix(nano-gpt): rename MiniMaxAI model id
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 16:04:28 +09:00
sk0x0y 14c8ec8ca5 fix(nano-gpt): rename Tongyi-Zhiwen model id
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 16:04:28 +09:00
sk0x0y 72568bbdb3 fix(nano-gpt): rename Alibaba-NLP model id
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 16:03:57 +09:00
sk0x0y c2225b715f fix(nano-gpt): rename THUDM GLM-Z1 rumination id
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 15:49:20 +09:00
sk0x0y 7ce25e3742 fix(nano-gpt): rename THUDM GLM-Z1 model ids
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 15:49:20 +09:00
sk0x0y 427868604b fix(nano-gpt): rename THUDM GLM-4 model ids
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 15:49:20 +09:00
Zain Hasan 247cd801a8 add prompt caching pricing for MiniMax m2.5 2026-03-10 22:54:42 -07:00
Aiden Cline 1aa2ee22b1 Merge pull request #1134 from sk0x0y/feature/nanogpt-catalog-fixes
fix(nano-gpt): correct TEE path ids and add missing canonical entries
2026-03-10 22:02:52 -05:00
Aiden Cline 0f57233eff Merge pull request #1105 from sylviezhang37/add-vercel-input-context-and-new-models
feat(vercel): add input context calculation + new models
2026-03-10 22:01:52 -05:00
Aiden Cline 73a78eebfc Merge pull request #1138 from mugnimaestra/feat/add-glm-5-turbo-chutes
feat: add GLM-5-Turbo to Chutes provider listings
2026-03-10 22:01:08 -05:00
Sylvie Zhang 3a6789b819 Merge branch 'dev' into add-vercel-input-context-and-new-models 2026-03-10 17:44:14 -07:00
Sylvie Zhang f7c505e140 remove context from gemini models 2026-03-10 17:43:08 -07:00
Sylvie Zhang 6bb36806d6 only calc input context for openai models 2026-03-10 17:40:46 -07:00
Sylvie Zhang 20a404eb88 revert non openai changes 2026-03-10 17:38:46 -07:00
Muhammad Mugni Hadi 65ecb5cd4a feat: add GLM-5-Turbo to Chutes provider listings 2026-03-11 05:26:11 +07:00
Matt Cowger 56062a9129 Fix incorrect pricing 2026-03-10 14:57:44 -07:00
Aiden Cline d3d9c580d4 Merge pull request #1135 from gitpush-gitpaid/fix/gpt-5-4-pdf-input-modalities
Added PDF to input modalities for GPT-5.4
2026-03-10 13:53:42 -05:00
gitpush-gitpaid ef98d8a9cb Updated GPT-5.4 PDF input modalities 2026-03-10 13:59:29 -04:00
sk0x0y 9d17752b88 fix(nano-gpt): add missing GLM 5 thinking model
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 00:56:22 +09:00
sk0x0y b5a838fe8b fix(nano-gpt): add missing TEE qwen3.5 model
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 00:56:22 +09:00
sk0x0y aa1ac39ee6 fix(nano-gpt): rename TEE gemma and minimax ids
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 00:56:22 +09:00
sk0x0y 4bc17ccf96 fix(nano-gpt): rename TEE oss and llama ids
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 00:56:22 +09:00
sk0x0y 08c1899bfe fix(nano-gpt): rename TEE deepseek model ids
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 00:56:02 +09:00
sk0x0y ad50e4a5ed fix(nano-gpt): rename TEE qwen model ids
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 00:56:02 +09:00
sk0x0y 730915a123 fix(nano-gpt): rename TEE kimi model ids
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 00:56:02 +09:00
sk0x0y 6f12d18cb8 fix(nano-gpt): rename TEE glm model ids
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 00:56:02 +09:00
Aiden Cline bd8774db99 Merge pull request #1132 from sk0x0y/feature/nanogpt-model-sync
feat(nano-gpt): add text and image models
2026-03-10 10:31:50 -05:00
Aiden Cline 88fbea52a4 Merge pull request #1133 from anomalyco/fix-model
fix: bedrock devstral
2026-03-10 10:31:08 -05:00
Aiden Cline 70e5d9b34b fix: bedrock devstral 2026-03-10 10:30:20 -05:00
Aiden Cline edb6ef0d71 Merge pull request #1129 from Grin1024/dev
feat: add GPT-5 series models to requesty provider
2026-03-10 10:29:30 -05:00
Aiden Cline df1280ed8b add families to some bedrock models 2026-03-10 10:12:13 -05:00
sk0x0y 898b3c18b7 feat(nano-gpt): add image models
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-10 22:13:48 +09:00
sk0x0y 6316e543ef feat(nano-gpt): add text models
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-10 22:13:48 +09:00
Aiden Cline 64d9a97f9d Merge pull request #1128 from JWahle/dev
chore: Updated abacus model definitions
2026-03-10 07:40:01 -05:00
Aiden Cline c62a2a3fc1 Merge pull request #1130 from Mingholy/fix/alibaba-coding-plan-model-limits
fix: update model limits for alibaba-coding-plan providers
2026-03-10 07:39:48 -05:00
Aiden Cline cc1937a177 Merge pull request #1131 from janszypulski/cloudferro-sherlock-fix-minimax-model-id
fix minimax-m2.5 model id - wrong file path
2026-03-10 07:39:34 -05:00
Jan Szypulski 9d3a88863d fix minimax-m2.5 model id - wrong file path 2026-03-10 11:21:55 +01:00
mingholy.lmh b9123e26e0 fix: update model limits for alibaba-coding-plan providers
- Add MiniMax-M2.5 to alibaba-coding-plan-cn
- Update qwen3-max output limit (65536 -> 32768)
- Update qwen3-coder-plus context limit (1048576 -> 1000000)
- Update MiniMax-M2.5 limits per ref.json (context: 196608, output: 24576)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-10 15:45:01 +08:00
lihui 933e450104 feat: add GPT-5 series models to requesty provider
Add missing OpenAI GPT-5 series models to requesty provider:
- GPT-5 Chat, Codex, Image, Pro
- GPT-5.1 Chat, Codex, Codex-Max, Codex-Mini
- GPT-5.2 Chat, Codex, Pro
- GPT-5.3 Codex
- GPT-5.4, GPT-5.4 Pro
2026-03-10 14:53:28 +08:00
JWahle 2ba6383e70 chore: Updated abacus model definitions
Added: gpt-5.4.toml
Removed: gemini-3-pro-preview.toml
2026-03-10 05:10:45 +01:00
Aiden Cline 65ed6ac5dd Merge pull request #1126 from mcowger/feature/gemini-3.1-flash-lite-vercel
feat: add gemini-3.1-flash-lite-preview to vercel gateway provider
2026-03-09 21:43:33 -05:00
Aiden Cline e7d04aec7a Merge pull request #1127 from anomalyco/add-shape
feat: add 'shape' field to provider so models can specify if they use responses vs completions apis (use only if model only supports 1 of)
2026-03-09 21:43:04 -05:00
Aiden Cline 37fe334aed feat: add 'shape' field to provider so models can specify if they use responses vs completions apis (use only if model only supports 1 of) 2026-03-09 21:42:23 -05:00
Matt Cowger ce8fc9e4f0 feat: add gemini-3.1-flash-lite-preview to vercel gateway provider 2026-03-09 19:32:43 -07:00
Aiden Cline be8eb8ba54 fix name 2026-03-09 20:01:02 -05:00
Aiden Cline 7c625b3b82 Merge pull request #945 from Daltonganger/feat/nano-gpt-sync-models-api
sync nano-gpt models with live API catalog
2026-03-09 20:00:06 -05:00
Aiden Cline 33700d27dc Merge pull request #1032 from propilideno/feature/new_gpt_5.3_codex_and_missing_structured_output_attr
Add gpt-5.3-codex (Azure) and fill missing structured output flags
2026-03-09 19:40:20 -05:00
Aiden Cline e5c300a5e5 fix 2026-03-09 19:38:30 -05:00
Aiden Cline e5e9175c5d Merge branch 'dev' into feature/new_gpt_5.3_codex_and_missing_structured_output_attr 2026-03-09 19:37:40 -05:00
Aiden Cline a9f79d6794 Merge pull request #1123 from dpuyosa/feature/venice-gpt54-multimodal
Venice: Add GPT-5.4 Pro and enable multimodal inputs for GPT-5.4 & Qwen3.5
2026-03-09 18:19:52 -05:00
Aiden Cline fd4c4a8f28 Merge pull request #1038 from muldercw/add-clarifai-model-provider
Add Clarifai Model Provider
2026-03-09 18:19:14 -05:00
dpuyosa f9b5385868 [venice] Add GPT-5.4 Pro and enable multimodal inputs
- Add GPT-5.4 Pro model
- Enable attachment/image input for GPT-5.4
- Enable attachment/image/video input for Qwen3.5 35B A3B
2026-03-09 22:52:54 +01:00
Aiden Cline b2f7a72410 Merge pull request #1110 from fhennerkes/dev
poe: add GPT-5.4, GPT-5.4-Pro, and GPT-5.3-Instant models
2026-03-09 14:10:12 -05:00
Aiden Cline 7b5d9aa645 Merge pull request #1025 from liuchang-reolink/dev
add qwen3.5-397b-a17b and step-3-5-flash for nvidia
2026-03-09 14:05:08 -05:00
Aiden Cline 6e0040dbfd Merge pull request #1089 from Krule/krule/update_gitlab_anthropic_context_size
feat(gitlab): update context limit to 1M for Claude Sonnet and Opus 4.6
2026-03-09 14:03:49 -05:00
Aiden Cline 943ad8481b Merge pull request #1121 from illusion77/fix/chutes-mimo-v2-flash-context-16709
fix(chutes): correct MiMo-V2-Flash context window and capabilities
2026-03-09 14:02:51 -05:00
Aiden Cline 7f1b6fb0eb Merge pull request #1122 from riccardogiorato/dev
remove deprecated kimi models from together.ai
2026-03-09 14:02:36 -05:00
Riccardo Giorato 23eff95e5d remove deprecated kimi from together.ai 2026-03-09 17:30:40 +01:00
illusion77 ddbd396205 fix(chutes): correct MiMo-V2-Flash context window and capabilities
The chutes provider had incorrect metadata for MiMo-V2-Flash:
context 32K → 262K, output 8K → 32K, reasoning and tool_call enabled.

Fixes anomalyco/opencode#16709
2026-03-09 10:57:57 -05:00
Aiden Cline f3ee1a530b Merge pull request #1120 from stephenkuhn214/dev
Add Amazon-Bedrock Devstral 2 123B model
2026-03-09 09:35:46 -05:00
Aiden Cline 9c51b65440 Merge pull request #1119 from cgilly2fast/dev
fix(firmware): proper 5.3 codex model id
2026-03-09 09:30:35 -05:00
Frank 353aeb4998 update zen models 2026-03-09 10:08:55 -04:00
Frank 11991fecb5 update zen models 2026-03-09 10:03:13 -04:00
stephenkuhn214 1b4599773d Create mistral.devstral-2-123b 2026-03-09 08:58:19 -04:00
Colby Gilbert 78e1a3b0c9 fix(firmware): proper 5.3 codex model id 2026-03-08 21:58:27 -07:00
Sewer56 7a02946620 Update synthetic models: promote MiniMax-M2.5, add GLM-4.7-Flash, remove deprecated Qwen3.5 2026-03-08 22:56:31 +00:00
Aiden Cline 44686797c8 Merge pull request #1118 from shelvick/add-azure-gpt-5.3-chat
Add GPT-5.3 Chat to Azure
2026-03-08 16:41:10 -05:00
Aiden Cline 065cec8431 fix: input limit for context 2026-03-08 16:40:38 -05:00
Scott Helvick f491c2bec9 Add GPT-5.3 Chat to Azure 2026-03-08 21:20:27 +00:00
Aiden Cline cf1ac3053f Merge pull request #1081 from djmaze/fix/nebius-model-casing
fix(nebius): correct model ID casing to match Token Factory API
2026-03-08 14:26:52 -05:00
Aiden Cline 6be1e929fc Merge pull request #1114 from v1gnesh/dev
add grok 4.2 experimentals
2026-03-08 14:25:12 -05:00
Aiden Cline 49524827e2 Merge pull request #1113 from shelvick/add-vertex-glm-5
Fix GLM-5 context window size on Google Vertex
2026-03-08 10:31:05 -05:00
Aiden Cline 5ab5d389fc Merge pull request #1112 from cau1k/feat/az-5.4
feat(azure): add gpt-5.4/5.4-pro
2026-03-08 10:30:54 -05:00
Aiden Cline d5367ed978 Merge pull request #1116 from xiaojiezj/xj_dev_0308
fix: Adjust the logo  for ZenMux
2026-03-08 10:30:18 -05:00
Aiden Cline 5069faa25b Merge pull request #1117 from kailiu42/feat/siliconflow-cn
feat(siliconflow-cn): add Qwen3.5 model family
2026-03-08 10:29:48 -05:00
Kai Liu b279f33d9b feat(siliconflow-cn): add Qwen3.5 model family
New models:

- Qwen/Qwen3.5-4B
- Qwen/Qwen3.5-9B
- Qwen/Qwen3.5-27B
- Qwen/Qwen3.5-35B-A3B
- Qwen/Qwen3.5-122B-A10B
- Qwen/Qwen3.5-397B-A17B

Signed-off-by: Kai Liu <kraml.liu@gmail.com>
2026-03-08 20:07:40 +08:00
xiaojie.zj fe8249d706 fix: Adjust the logo 2026-03-08 16:36:01 +08:00
skywalker512 236af40da3 feat: add Tencent Coding Plan provider
Add support for Tencent Coding Plan with 8 models:
- Auto (tc-code-latest)
- Hunyuan 2.0 Instruct
- Hunyuan 2.0 Think
- Hunyuan-T1
- Hunyuan-TurboS
- MiniMax-M2.5
- Kimi-K2.5
- GLM-5

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 15:34:36 +08:00
v1gnesh a24a23d57b add grok 4.2 experimentals 2026-03-08 07:42:09 +05:30
Scott Helvick 7e4773d9b5 Fix GLM-5 context window size on Google Vertex
Correct the context limit from 204800 to 202752 tokens.
2026-03-07 22:20:56 +00:00
zero 9f937f3fc5 Merge branch 'dev' into feat/az-5.4 2026-03-07 17:20:29 -05:00
cau1k 8cbdbc1102 add day cutoff 2026-03-07 17:19:15 -05:00
cau1k f1ca3b0015 feat(azure-cognitive-services): symlink 5.4/pro from azure provider
;
2026-03-07 17:02:26 -05:00
cau1k 35c757bad5 feat(azure): add 5.4/pro 2026-03-07 17:00:43 -05:00
fhennerkes 78781f3901 poe: add GPT-5.4, GPT-5.4-Pro, and GPT-5.3-Instant models 2026-03-07 13:58:35 -08:00
Sylvie Zhang 26465319d6 Merge branch 'dev' into add-vercel-input-context-and-new-models 2026-03-07 11:39:53 -08:00
fhennerkes 1371cbf9de poe: add GPT-5.4, GPT-5.4-Pro, and GPT-5.3-Instant models 2026-03-07 09:48:17 -08:00
Aiden Cline 559ccd6966 Merge pull request #1024 from yinxulai/feat/qiniu-ai
feat(qiniu-ai): add new model configurations
2026-03-07 11:26:01 -06:00
Aiden Cline 2691cb4e8d Merge pull request #1083 from samzong/feat/add-drun-provider
feat: add d.run(China) provider (OpenAI-compatible)
2026-03-07 11:25:12 -06:00
Aiden Cline 83ed1f0125 Merge pull request #1015 from RioPlay/dev
add: newer MiniMax, GLM, and Kimi models to DeepInfra
2026-03-07 11:24:53 -06:00
Aiden Cline 869f831466 Merge branch 'dev' into dev 2026-03-07 11:23:37 -06:00
Aiden Cline 5a673af2ae Merge pull request #1061 from JonasGao/dev
Add Qwen3.5 Flash & GLM-5 & M2.5 models to alibaba-cn
2026-03-07 11:22:56 -06:00
Aiden Cline 9b8543a074 Add interleaved section to minimax-m2.5.toml 2026-03-07 11:21:54 -06:00
Aiden Cline b3fb902331 Merge pull request #1030 from Mingholy/feat/alibaba-coding-plan-cn
feat(alibaba-coding-plan-cn): add Coding Plan provider for China region
2026-03-07 11:21:26 -06:00
Aiden Cline adb0c0b305 Merge pull request #1062 from viitana/bump-deepseek-details
feat: [deepseek]: update official DeepSeek model details
2026-03-07 11:21:21 -06:00
Aiden Cline ed01410d82 Merge pull request #1088 from mcowger/feature/gemini-3.1-flash-lite
feat: add gemini-3.1-flash-lite-preview model
2026-03-07 11:13:45 -06:00
Aiden Cline 7e23b780cc Merge pull request #1077 from evroc-oss/evroc/correct-model-config
fix(evroc): correct model config
2026-03-07 11:13:15 -06:00
Aiden Cline c46b652c8e Merge pull request #1076 from jerome-benoit/feat/add-sonar-deep-research-sap-ai-core
feat(sap-ai-core): add Perplexity Sonar Deep Research model
2026-03-07 11:11:29 -06:00
Aiden Cline ddb74e9b09 Merge pull request #1063 from dpuyosa/fix/models-pricing-limits-update
Venice: Update model pricing and limits
2026-03-07 11:10:37 -06:00
Aiden Cline face36ecb8 Merge pull request #1064 from BlockListed/fix-cortecs-models
Fix Cortecs models
2026-03-07 11:10:03 -06:00
Aiden Cline 6f170651b3 Merge pull request #1075 from Track07-cda/alibaba-cn-third-party-models
Add third party providers' models to alibaba-cn provider
2026-03-07 11:09:40 -06:00
Aiden Cline 47dbe45dd5 Merge pull request #1066 from dpuyosa/feat/add-qwen3-5-35b-a3b
Venice: Add Qwen 3.5 35B A3B model
2026-03-07 11:09:10 -06:00
Aiden Cline 0ee43b64b3 Merge branch 'dev' into alibaba-cn-third-party-models 2026-03-07 11:08:37 -06:00
Aiden Cline 6130a1f74e Merge pull request #1068 from MauroDruwel/dev
NVIDIA: Add MiniMax M2.5 model and remove MiniMax M2
2026-03-07 11:07:17 -06:00
Aiden Cline c0c82a5f04 Merge pull request #1072 from sylviezhang37/update-vercel-models-20260302-1656
Update Vercel models
2026-03-07 11:06:17 -06:00
Aiden Cline b0ba8b14d5 Merge pull request #1092 from janszypulski/cloudferro-sherlock-add-minimax-2.5
add MiniMaxAI/MiniMax-M2.5 to CloudFerro Sherlock
2026-03-07 11:02:11 -06:00
Aiden Cline 4780f9ddc1 Merge pull request #1109 from dinhkim/feat/add-cf-glm-4.7-flash
feat: add GLM-4.7-Flash to the Cloudflare Workers AI provider
2026-03-07 11:01:50 -06:00
Aiden Cline 27e02de632 Merge pull request #1078 from SomeoneWithOptions/dev
add gpt 5.3 codex for openrouter and Mercury models
2026-03-07 11:01:41 -06:00
Aiden Cline f22c827045 Merge branch 'dev' into dev 2026-03-07 11:01:17 -06:00
Aiden Cline cfc4585ed7 Merge pull request #1107 from Rinuuri/deepinfra-glm5
Add deepinfra GLM-5 model
2026-03-07 10:59:16 -06:00
Aiden Cline fa07bc2088 Merge pull request #1039 from rholak/add-abacus-models
Add sonnet 4.6 and opus 4.6 to abacus model list
2026-03-07 10:59:00 -06:00
Aiden Cline 497b1daaf2 Merge pull request #1103 from dpuyosa/feat/venice-add-gpt-models
Venice: Add OpenAI GPT-4o, GPT-4o Mini, GPT-5.4 models
2026-03-07 10:58:44 -06:00
Aiden Cline 442afa8c7e Merge pull request #1060 from yanismiraoui/inception/mercury2
Add Inception Mercury 2 and Mercury Edit models
2026-03-07 10:57:38 -06:00
Aiden Cline 4bd0c387fe Merge pull request #1044 from shrwnsan/feat/openrouter-routers
feat(openrouter/free): add free router
2026-03-07 10:57:24 -06:00
Aiden Cline b8c0c1d3a1 Merge pull request #1053 from laiiihz/update-xiaomi-models
Update Xiaomi models metadata
2026-03-07 10:57:17 -06:00
Aiden Cline 5c6c3e5a32 Merge pull request #1055 from shantanugoel/gemini-3.1-flash-image-preview
Add Gemini 3.1 Flash Image Preview
2026-03-07 10:57:06 -06:00
Aiden Cline 53d3cca3a0 Merge pull request #1052 from spiffytech/dev
Improve Ollama Cloud generator. Remove Gemini 3 Pro from Ollama Cloud.
2026-03-07 10:56:45 -06:00
Aiden Cline 105970c173 Merge pull request #1049 from heimoshuiyu/fix/glm-5-open-weights
fix: mark GLM-5 as open weights
2026-03-07 10:56:31 -06:00
Aiden Cline 788ee04034 Merge pull request #1045 from xinrui-z/aihubmix-add-models
aihubmix add models
2026-03-07 10:56:03 -06:00
Aiden Cline 6626db4044 Merge pull request #1098 from JWahle/dev
chore: updated abacus model definitions
2026-03-07 10:55:31 -06:00
Aiden Cline 8902640664 Merge pull request #1023 from PandaSt0rm/add-alibaba-coding-plan
Add Alibaba Coding Plan provider and model configs
2026-03-07 10:53:34 -06:00
Kim Truong cab247ddf8 update context to match Cloudflare doc 2026-03-07 23:50:06 +07:00
Kim Truong c1a42fa0a0 feat: add GLM-4.7-Flash mode in Cloudflare Workers AI provider 2026-03-07 23:45:52 +07:00
Aiden Cline 35023bba5a Merge pull request #1001 from ItsWendell/feat/bedrock-bearer-token
Add AWS_BEARER_TOKEN_BEDROCK to Amazon Bedrock provider env
2026-03-07 09:52:21 -06:00
Aiden Cline 604e49792b Merge pull request #1002 from DEAN-Cherry/feat/add-minimax-m2.5
models: alibaba-cn: add MiniMax-M2.5
2026-03-07 09:51:36 -06:00
Aiden Cline 0ca77b0cda Merge branch 'dev' into dev 2026-03-07 09:50:26 -06:00
Aiden Cline ea9505a40f Merge pull request #1004 from BlockListed/cortecs-models
Add Cortecs AI models
2026-03-07 09:50:07 -06:00
Aiden Cline 990b8d7308 Merge pull request #1005 from cgilly2fast/dev
feat(firmware): gemini 3.1 pro, sonnet reasoning
2026-03-07 09:49:54 -06:00
Aiden Cline ec173e86d4 Merge pull request #996 from fhennerkes/dev
poe: add Gemini-3.1-Pro, GPT-5.3-Codex and Gemini 3.1 Flash Lite
2026-03-07 09:47:52 -06:00
Aiden Cline 4a6e92a7c9 Merge pull request #997 from xiaojiezj/zenmux_dev_0221
feat: add Gemini 3.1 Pro Preview for ZenMux provider
2026-03-07 09:47:37 -06:00
Aiden Cline f0f686bdf5 Merge pull request #999 from mikalsande/mistral_latest
Append (latest) to Mistral models that refer to the latest version.
2026-03-07 09:46:40 -06:00
Aiden Cline 35ff0c2629 Merge pull request #995 from Phoen1xCode/dev
fix(zenmux:minimax): remove duplicated prefix & feat(zenmux:openai): add GPT-5.2-Pro model
2026-03-07 09:45:07 -06:00
Aiden Cline f99e9e89df Merge pull request #1090 from litvix-whale/feat/add-minimax-m2-5
feat(provider): add MiniMax M2.5 for DeepInfra
2026-03-07 09:41:28 -06:00
Armin Pašalić 09722ac264 Merge branch 'anomalyco:dev' into krule/update_gitlab_anthropic_context_size 2026-03-07 13:17:10 +01:00
Rinuuri fa67d00aeb Update GLM-5.toml 2026-03-06 21:23:42 +00:00
Rinuuri ddd2dd73ed Adding deepinfra GLM-5 2026-03-07 00:03:29 +03:00
fhennerkes d7929fd00b Merge branch 'anomalyco:dev' into dev 2026-03-06 12:00:20 -08:00
Frank 06e7d4db42 Merge pull request #1014 from NachoFLizaur/fix/bedrock-opus-4-6-context-window
fix(amazon-bedrock): correct Claude Opus 4.6 context window from 1M to 200K
2026-03-06 11:25:37 -05:00
Sylvie Zhang 7a11ef241d update more models 2026-03-06 08:24:49 -08:00
Sylvie Zhang 145862315d add input calculation + new models 2026-03-06 08:07:11 -08:00
dpuyosa d871710ba4 [venice] Add OpenAI GPT-4o, GPT-4o Mini, GPT-5.4 models
- Add gpt-4o-2024-11-20 model configuration
- Add gpt-4o-mini-2024-07-18 model configuration
- Add gpt-5.4 model configuration with reasoning capability
2026-03-06 09:53:06 +01:00
Colby Gilbert 16486087c6 Merge branch 'anomalyco:dev' into dev 2026-03-05 21:38:25 -08:00
Frank 2939af9330 Merge pull request #1100 from sachnun/feat/github-copilot-gpt-5-4
feat(provider): add gpt-5.4 for GitHub Copilot
2026-03-05 23:33:57 -05:00
sachnun 7c68dab3bb feat(provider): add gpt-5.4 for GitHub Copilot 2026-03-06 11:18:11 +07:00
Mike Soylu caceb0b310 openrouter openai models (#1099) 2026-03-05 22:26:58 -05:00
Frank 7a0d3be1e7 Update zen models 2026-03-05 18:55:49 -05:00
ShivamB25 e11ad7c01a feat(openai): add GPT-5.4 and GPT-5.4 Pro model specs (#1095) 2026-03-05 18:50:22 -05:00
Matt Silverlock d30fa82e4c Cloudflare: add gpt-5.4.toml (#1096) 2026-03-05 18:50:10 -05:00
Rishi Vhavle 771102a960 feat: add gpt-5.3-codex to github-copilot provider (#1097) 2026-03-05 18:49:56 -05:00
JWahle 30f98b15ef chore: updated abacus model definitions
Added: GPT-5 Codex, GPT-5.1/5.2/5.3 Codex, GPT-5.3 Chat, Gemini 3.1 Flash Lite/Pro Preview, Claude Opus/Sonnet 4.6, Kimi K2.5, GLM-5
Removed: Gemini 2.0 Flash 001, Gemini 2.0 Pro Exp, Meta-Llama 3.1 70B Instruct
Updated pricing: DeepSeek V3.1, GLM-4.7, GPT-5.2 Chat Latest, o3-pro, Route LLM
2026-03-06 00:46:19 +01:00
Colby Gilbert 6f7ab479fb feat(firmware): gpt 5.4 2026-03-05 13:23:08 -08:00
Colby Gilbert a4efbcd5ce Merge branch 'anomalyco:dev' into dev 2026-03-05 13:15:49 -08:00
Frank bcbfba03bd update zen models 2026-03-05 15:51:33 -05:00
Frank bdb5dac941 update zen models 2026-03-05 15:50:03 -05:00
Frank 1538bdcedb update zen models 2026-03-05 13:31:27 -05:00
SomeoneWithOptions e5211f3105 add inception mercury models for openrouter 2026-03-05 12:13:52 -05:00
Andres Castellanos 4a2209dbd4 Merge branch 'anomalyco:dev' into dev 2026-03-05 11:51:38 -05:00
Jan Szypulski 900014fe52 add MiniMax-M2.5 2026-03-05 14:58:19 +01:00
Kyrylo Lytvishko 5bbaf3c3f2 feat(provider): add MiniMax M2.5 for DeepInfra 2026-03-05 14:04:11 +02:00
Armin Pasalic 7dd0a26ff4 feat(gitlab): update context limit to 1M for Sonnet and Opus 4.6 2026-03-05 12:01:02 +01:00
Matt Cowger 3b7e0f02f1 feat: add gemini-3.1-flash-lite-preview model 2026-03-04 13:19:21 -08:00
samzong e67f921ea3 feat: add official d.run logo 2026-03-04 13:42:01 +08:00
samzong f5411eeeda feat: add D.Run (China) provider with minimax-m25, deepseek-r1, deepseek-v3 2026-03-04 13:33:04 +08:00
Frank 0d83ab8909 Merge pull request #1082 from kesku/kesku/add-ppl-agent-api
Add Perplexity Agent API provider
2026-03-03 23:03:49 -05:00
Kesku 26a629debc add models 2026-03-03 23:19:01 +00:00
Kesku 4b3319561b set up provider 2026-03-03 23:10:43 +00:00
Ubuntu b89ce0d986 fix(nebius): correct model ID casing to match Token Factory API
Fix lowercase model ID bug that caused "The model does not exist" errors.

- qwen/ → Qwen/ directory
- Fixed model file casing to match API exactly across all providers
2026-03-03 22:11:57 +00:00
fhennerkes 1c01f8172b poe: add Gemini-3.1-Flash-Lite and update gpt-4o-mini context
Add new Gemini 3.1 Flash Lite model
Update gpt-4o-mini context window: 128K → 124,096
2026-03-03 11:24:20 -08:00
SomeoneWithOptions d76040c514 add gpt 5.3 codex for openrouter 2026-03-03 12:53:39 -05:00
Simon Rygård feffa8119f fix(evroc): correct modality config 2026-03-03 16:52:07 +01:00
Simon Rygård 59c6e5df62 fix(evroc): correct tool call config 2026-03-03 16:51:47 +01:00
Jérôme Benoit fe2204d42c feat(sap-ai-core): add Perplexity Sonar Deep Research model 2026-03-03 14:56:18 +01:00
Track07-cda 07cc5335ac Add third party providers' models to alibaba-cn provider
- Add `MiniMax/MiniMax-M2.5` and `kimi/kimi-k2.5` to the `alibaba-cn`
  provider.
- Update `kimi-k2.5` to include video modality and adjust release/update
  dates.
- Add several `siliconflow/deepseek` models to the `alibaba-cn`
  provider.
2026-03-03 16:46:32 +08:00
github-actions[bot] fefbb90a29 chore(vercel): update Vercel model definitions
Auto-generated by weekly workflow from Vercel AI Gateway API.

Co-Authored-By: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-02 16:56:48 +00:00
Frank fec48b83d3 update zen models 2026-03-01 13:23:08 -05:00
Mauro Druwel c30bbe7718 Add knowledge 2026-03-01 08:53:22 +01:00
Mauro Druwel 1fba668f0f Add minimax-m2.5 to nvidia-nim and remove deprecated minimax-m2 from nvidia-nim 2026-03-01 08:52:33 +01:00
Aiden Cline 33ec088bda Merge pull request #1008 from friendliai/feat/friendli-minimax-m2.5
add friendli minimax m2.5 model config
2026-03-01 07:54:08 +05:00
Aiden Cline add7f9a914 Merge pull request #1065 from friendliai/minpeter/remove-exaone-models
Remove all EXAONE models
2026-03-01 07:53:42 +05:00
dpuyosa 369fa2de6d [venice] Add Qwen 3.5 35B A3B model
- Add new model configuration for Qwen 3.5 35B A3B
- Includes cost, limits, and capabilities (reasoning, tool_call, structured_output)
2026-02-28 21:07:28 +01:00
minpeter c8732e7e74 Remove all EXAONE models
Remove LGAI-EXAONE model definitions (EXAONE-4.0.1-32B, K-EXAONE-236B-A23B)
and related family references from core packages.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 04:48:08 +09:00
Jonas f00f9f3c11 Add Qwen3.5 Flash & GLM-5 & M2.5 models to alibaba-cn provider 2026-02-28 23:34:06 +08:00
BlockListed c87ca238de fix cortecs models
the should have periods not a p as a decimal separator
2026-02-28 15:16:59 +01:00
BlockListed 102f55aeef add glm 4.7 flash model to cortecs 2026-02-28 15:13:53 +01:00
BlockListed 2767754a02 add kimi K2.5 model to cortecs 2026-02-28 15:13:53 +01:00
dpuyosa 4289b59a04 [models] Update model pricing and limits
- Update Claude Sonnet 4-6 pricing and output limit
- Update Grok 41 Fast pricing and context/limits
2026-02-28 14:24:16 +01:00
Atte Viitanen b986313f42 feat: [deepseek]: update official deepseek model details 2026-02-28 13:22:26 +02:00
yanismiraoui 28cfd4cab6 naming mercury 2 and mercury edit for inception provider 2026-02-27 17:45:01 -08:00
yanismiraoui b93e62fc3a Add Inception Mercury 2 and Mercury Edit models 2026-02-27 17:41:00 -08:00
Aiden Cline e23b5ab010 Merge pull request #1026 from ryot/venice
Venice: Add GPT-5.3 Codex
2026-02-28 06:30:13 +05:00
Aiden Cline b5f6024868 Merge pull request #1020 from jerome-benoit/feat/sap-ai-core-add-models
feat(sap-ai-core): Add GPT-4.1, Gemini 2.5 Flash Lite, Perplexity Sonar, and Claude 4.6 models
2026-02-28 06:29:28 +05:00
Aiden Cline 07db15e984 Merge pull request #1029 from dpuyosa/veniceScript
Venice: Remove interactive API key prompt & use new maxCompletionTokens field
2026-02-28 06:28:33 +05:00
Aiden Cline 74abf8851a Merge pull request #1042 from SomeoneWithOptions/dev
add gemini 3.1 pro preview custom tools for openrouter
2026-02-28 06:27:56 +05:00
Aiden Cline 7e13ecdfd9 Merge pull request #1056 from xezpeleta/fix/azure-gpt-5-3-codex
fix(azure): add gpt-5.3-codex model
2026-02-28 06:27:34 +05:00
Aiden Cline 6ad2c28b2d Merge pull request #1048 from dpuyosa/feat/add-venice-models
Venice: Add NVIDIA Nemotron 3 Nano and Qwen 3 Coder Turbo models
2026-02-28 06:27:20 +05:00
Frank a124036692 update zen models 2026-02-27 16:16:37 -05:00
Xabi Ezpeleta d37d362cc8 fix(azure): add gpt-5.3-codex model 2026-02-27 16:41:11 +01:00
Shantanu Goel c387f94c8e Add Gemini 3.1 Flash Image Preview 2026-02-27 20:03:41 +05:30
laiiihz 45457c34d8 update xiaomi models detail 2026-02-27 14:56:16 +08:00
spiffytech 44774ec3d6 Ollama Cloud removed support for Gemini 3 Pro 2026-02-26 17:18:34 -05:00
spiffytech c8fdcf80dd Updated Ollama Cloud generator to delete old models, only write out files if they changed 2026-02-26 17:18:33 -05:00
fhennerkes 9d33b6409c Merge branch 'anomalyco:dev' into dev 2026-02-26 12:04:52 -08:00
Matt Silverlock c76586a174 Cloudflare: add codex models to AI Gateway (#1050)
* add gpt-5.2-codex

* add gpt-5.3-codex

* Update gpt-5.2-codex.toml

* Update gpt-5.3-codex.toml
2026-02-26 14:41:12 -05:00
Jérôme Benoit 2a267614aa feat(sap-ai-core): add Claude Opus 4.6 and Sonnet 4.6 models 2026-02-26 17:58:02 +01:00
PandaSt0rm aac62378b2 Update MiniMax-M2.5 guidance per Alibaba docs 2026-02-26 17:20:58 +02:00
David Hill 56cc5f71bf fix(ui): opencode zen logo update 2026-02-26 11:09:25 +00:00
David Hill df2c87d32a fix(ui): opencode go logo 2026-02-26 11:09:13 +00:00
heimoshuiyu ff41c2b6c3 fix: mark GLM-5 as open weights
GLM-5 is an open-source model, but several provider config files
incorrectly had open_weights set to false. This commit corrects
all GLM-5 configurations to properly reflect its open-source status.

Affected providers:
- zhipuai
- zhipuai-coding-plan
- zai
- zai-coding-plan
- zenmux
- vercel
- siliconflow
- siliconflow-cn
- meganova
2026-02-26 18:43:28 +08:00
dpuyosa 1d137e2f1f [venice] Add NVIDIA Nemotron 3 Nano and Qwen 3 Coder models
- Add NVIDIA Nemotron 3 Nano 30B A3B model configuration
- Add Qwen 3 Coder 480B A35B Instruct Turbo model configuration
2026-02-26 10:53:00 +01:00
dpuyosa 16720bcd1a [venice] Use maxCompletionTokens for output limit
- Add optional maxCompletionTokens field to model spec schema
- Use maxCompletionTokens when calculating output token limit instead of checking existing limit
2026-02-26 10:24:43 +01:00
Xinrui 1feaf76749 aihubmix add models 2026-02-26 16:12:51 +08:00
shrwnsan 080ef5cc9e fix(openrouter): remove auto router and add missing limit.input
- Remove auto router (cost varies, doesn't fit schema)
- Add limit.input = 200_000 to free.toml (schema requirement)

OpenRouter's auto router has 'pricing varied' - it charges based on the
routed model. This doesn't fit the numeric cost schema required by
models.dev, so we're removing it. The free router is retained as it
genuinely costs $0.
2026-02-26 14:40:38 +08:00
Ryo Tulman f8121c8dc3 Update Venice GPT 5.3 Codex output limit 2026-02-26 00:32:13 -06:00
shrwnsan d2d5c5a7cc feat: add openrouter free and auto routers 2026-02-26 10:51:55 +08:00
SomeoneWithOptions 09d9e91d83 add gemini 3.1 pro preview custom tools for openrouter 2026-02-25 15:13:43 -05:00
Robert Holak 930d6a94b8 Add sonnet 4.6 and opus 4.6 to abacus model list 2026-02-25 12:31:06 -06:00
mulder b9217aff8e Add Clarifai Model Provider
Add Clarifai as a new provider with 11 models:
- GPT OSS 20B, GPT OSS 120B High Throughput
- Ministral 3 14B/3B Reasoning 2512
- Qwen3 Coder 30B, Qwen3 30B Instruct/Thinking 2507
- MiniMax-M2.5 High Throughput
- Trinity Mini, DeepSeek OCR, MM Poly 8B

Also adds 'mm-poly' family to family.ts for the Clarifai multimodal model.
2026-02-25 12:28:40 -05:00
Lucas Almeida c240bce614 fix: adding missing structured_output parameter 2026-02-25 11:19:54 -03:00
Lucas Almeida 843a1d182a feat: adding gpt-5.3-codex for Azure Foundry 2026-02-25 11:09:10 -03:00
PandaSt0rm 443c06ca03 fix MiniMax M2.5 modalities in Alibaba Coding Plan
- set MiniMax-M2.5 input modalities to text-only
- keep output modality as text
- validate with bun validate
2026-02-25 13:10:58 +02:00
PandaSt0rm 84466021ca add MiniMax M2.5 to Alibaba Coding Plan and align third-party limits
- add MiniMax-M2.5 model config under providers/alibaba-coding-plan/models
- update GLM-4.7 limits to 202,752 context / 16,384 output
- update GLM-5 limits to 202,752 context / 16,384 output
- update Kimi K2.5 output limit to 32,768
- validate with bun validate
2026-02-25 13:05:18 +02:00
mingholy.lmh b995e90cf5 fix: update context and output limits for alibaba-coding-plan-cn models
Update model limits:
- qwen3-coder-plus: context 1_048_576 → 1_000_000
- glm-5: output 131_072 → 16_384
- glm-4.7: output 131_072 → 16_384
- kimi-k2.5: output 65_536 → 32_768

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-25 17:44:49 +08:00
dpuyosa 291e2eefe9 [venice] Remove interactive API key prompt
- Remove readline import and promptForApiKey function
- Remove prompt fallback, rely on CLI arg or env var only
- Update README to reflect change
2026-02-25 09:51:50 +01:00
Sewer56 0428299773 Added: Qwen3.5-397B natively supports image, MM2.5 No Image as it was a mistake. 2026-02-25 08:10:42 +00:00
Frank 96e9537b34 update zen models 2026-02-25 01:05:35 -05:00
Ryo Tulman 09dc7060ac Venice: Add GPT-5.3 Codex 2026-02-24 23:37:03 -06:00
Colby Gilbert a463717783 chore(firmware): remove gpt-5 2026-02-24 20:33:49 -08:00
Colby Gilbert 6d721dd32d feat(firmware): gpt-5.3-codex 2026-02-24 20:32:17 -08:00
liuchang-reolink 3ae513785a add step-3-5-flash for nvidia
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-25 12:05:19 +08:00
Colby Gilbert e8d667b628 Merge branch 'anomalyco:dev' into dev 2026-02-24 20:01:26 -08:00
liuchang-reolink 7616a65e63 add qwen3.5-397b-a17b for nvidia
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-25 11:40:15 +08:00
yinxulai a5b3da12c1 chore(qiniu-ai): update provider config 2026-02-25 10:20:55 +08:00
yinxulai a05fbc3604 feat(qiniu-ai): add new model configurations 2026-02-25 10:16:40 +08:00
Aiden Cline 2189030e57 Merge pull request #1022 from armishra/feat/add-minimax-m2.5-baseten
feat(provider): Add MiniMax-M2.5 for baseten
2026-02-24 17:28:04 -06:00
Aiden Cline c7ecc08442 Merge pull request #1019 from dpuyosa/venice
Venice: Update gemini-3-1-pro-preview config
2026-02-24 17:27:46 -06:00
Aiden Cline 830046e45e Merge pull request #1021 from sylviezhang37/update-vercel-models-20260224-2134
Update Vercel models
2026-02-24 17:27:19 -06:00
Aiden Cline c7b26477b9 Update cache_read value in gemini-3.1-pro-preview.toml 2026-02-25 04:26:56 +05:00
Aiden Cline 9e60f516fa Update cost input and output values in TOML file 2026-02-25 04:26:18 +05:00
PandaSt0rm 7ccbb58c5f add Alibaba Coding Plan provider and model configs 2026-02-25 01:10:42 +02:00
Archit Mishra da906a0816 feat(provider): Add MiniMax-M2.5 for baseten 2026-02-24 14:33:41 -08:00
github-actions[bot] 36c9f82905 chore(vercel): update Vercel model definitions
Auto-generated by weekly workflow from Vercel AI Gateway API.

Co-Authored-By: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-24 21:34:20 +00:00
Frank 978214e143 update zen models 2026-02-24 15:23:24 -05:00
Jérôme Benoit 6aa69460a1 feat(sap-ai-core): add GPT-4.1, Gemini 2.5 Flash Lite, and Sonar models
Add 5 new model definitions for SAP AI Core provider:
- gpt-4.1: OpenAI GPT-4.1 (1M context, 32K output)
- gpt-4.1-mini: OpenAI GPT-4.1 Mini (1M context, 32K output)
- gemini-2.5-flash-lite: Google Gemini 2.5 Flash Lite (1M context, 65K output)
- sonar: Perplexity Sonar (128K context, 4K output)
- sonar-pro: Perplexity Sonar Pro (200K context, 8K output)

All specs verified against official provider documentation.
2026-02-24 20:50:10 +01:00
fhennerkes 0f16fcf231 poe: add GPT-5.3-Codex model 2026-02-24 11:39:47 -08:00
fhennerkes e583c700f9 Merge branch 'anomalyco:dev' into dev 2026-02-24 11:36:20 -08:00
dpuyosa 96d278932c [venice] Update gemini-3-1-pro-preview config
- Reduce output token limit from 250K to 65K
2026-02-24 11:27:18 +01:00
Sewer56 eee3303df0 Add missing synthetic.new models
Add configuration for hf:Qwen/Qwen3.5-397B-A17B and hf:MiniMaxAI/MiniMax-M2.5
to the synthetic provider, based on API specs from synthetic.new.

Note: API reports image support but these models may not natively support
images (likely rerouted/proxied through vision-capable infrastructure).
2026-02-24 09:19:57 +00:00
RioPlay 838416044f add: newer MiniMax, GLM, and Kimi models to DeepInfra 2026-02-23 22:21:28 -06:00
Frank 51441f47d9 update zen models 2026-02-23 15:08:28 -05:00
Nacho F. Lizaur 7fc2c6154d fix(amazon-bedrock): correct Claude Opus 4.6 context window from 1M to 200K 2026-02-23 20:10:58 +01:00
Colby Gilbert 1439781a76 feat(firmware): add deepseek 3.2, glm 5, kimi k2.5, minimax m2.5 2026-02-22 21:29:51 -08:00
minpeter 8fc0d87742 add friendli minimax m2.5 model config 2026-02-23 13:18:17 +09:00
Colby Gilbert f660955784 feat(firmware): add grok models 2026-02-22 15:37:53 -08:00
Colby Gilbert eb11c327b8 feat(firmware): gemini 3.1 pro, sonnet reasoning 2026-02-21 23:43:25 -08:00
Bryan Nie 0dfde60c14 models: alibaba-cn: add MiniMax-M2.5 2026-02-22 01:09:24 +08:00
Wendell Misiedjan bab7727bad Add AWS_BEARER_TOKEN_BEDROCK to Amazon Bedrock provider env
The @ai-sdk/amazon-bedrock package supports Bearer token authentication
via the AWS_BEARER_TOKEN_BEDROCK environment variable as an alternative
to IAM SigV4 auth. This uses Bedrock API keys for simplified access.
2026-02-21 16:27:45 +01:00
Mikal Sande 4b4a2364c6 Append (latest) to Mistral models that refer to the latest version. 2026-02-21 09:19:13 +01:00
Frank c36b8e9433 update zen models 2026-02-20 23:20:24 -05:00
xiaojie.zj 5b8e983e7c feat: add Gemini 3.1 Pro Preview for ZenMux provider 2026-02-21 10:39:30 +08:00
Frank 0d2a52dd9d update zen models 2026-02-20 20:41:52 -05:00
Frank b667ab78ac update zen models 2026-02-20 20:19:33 -05:00
fhennerkes e2da96cde4 poe: add Gemini-3.1-Pro and update Claude Sonnet 4.6 2026-02-20 11:28:18 -08:00
Jake Jia 9d042ac986 Update providers/zenmux/models/openai/gpt-5.2-pro.toml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-21 01:22:04 +08:00
Phoen1xCode 7192dc0ba8 feat(openai): add GPT-5.2-Pro model via zenmux provider
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 01:07:58 +08:00
Phoen1xCode 05ea56a12a fix(minimax): remove duplicated provider prefix from MiniMax M2.5 Lightning name
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 01:07:47 +08:00
Aiden Cline beb449a417 Merge pull request #994 from davidfph/fix/qwen3.5-release-date
fix(qwen): update Qwen3.5 release_date and last_updated to 2026-02-16
2026-02-20 10:29:15 -06:00
Aiden Cline 8f76f9b217 Merge pull request #988 from MeganovaAI/fix-meganova-logo
Update Meganova logo to official brand icon
2026-02-20 10:29:02 -06:00
Aiden Cline 18ddcde669 fix: azure & cognitive model distinctions 2026-02-20 10:28:22 -06:00
David Fu ff36ded35f fix(qwen): update Qwen3.5 release_date and last_updated to 2026-02-16 2026-02-20 20:33:08 +08:00
Aiden Cline b0b8074a94 Merge pull request #990 from kailiu42/dev
models: siliconflow-cn: add new models
2026-02-20 03:01:45 -06:00
Kai Liu 4c30a522f7 models: siliconflow-cn: add new models
New models per the latest list: https://cloud.siliconflow.cn/me/models

- Pro/MiniMaxAI/MiniMax-M2.5
- deepseek-ai/DeepSeek-OCR
- PaddlePaddle/PaddleOCR-VL
- PaddlePaddle/PaddleOCR-VL-1.5

Signed-off-by: Kai Liu <kraml.liu@gmail.com>
2026-02-20 16:26:26 +08:00
Aiden Cline 2d63d713de Merge pull request #992 from anomalyco/fix-azure-models
fix: ensure that anthropic models on azure providers have correct urls
2026-02-20 02:19:13 -06:00
Aiden Cline ac9d0af8e3 fixes 2026-02-20 02:13:23 -06:00
Aiden Cline a1ad90a9b1 Merge pull request #991 from zainhas/dev
[Together AI] add qwen3.5
2026-02-20 01:02:23 -06:00
Zain Hasan 8a6e0dd917 add qwen3.5 2026-02-19 21:38:46 -08:00
Aiden Cline 2da10b739c Merge pull request #989 from propilideno/fix/adding_missing_azure_foundry_model
Add missing GPT-5.2 metadata for Azure Cognitive Services
2026-02-19 18:47:56 -06:00
Aiden Cline c17e0b9d0f Merge pull request #987 from dpuyosa/venice
Venice: Add Gemini 3.1 Pro Preview and update model configs
2026-02-19 18:47:48 -06:00
Lucas Almeida 877a1175f4 chore: replacing by symbolic link like the other ones 2026-02-19 21:21:05 -03:00
Boqian 1bc83abeeb Update Meganova logo to official brand icon 2026-02-19 18:57:17 -05:00
dpuyosa 70caedba86 [venice] Add Gemini 3.1 Pro Preview and update model configs
- Add new Gemini 3.1 Pro Preview model configuration
- Update Claude Sonnet 4.6 release dates
- Enable open_weights for MiniMax M25
2026-02-19 22:54:59 +01:00
Aiden Cline 60c90a27a0 Merge pull request #985 from sylviezhang37/update-vercel-model-gen-script
feat(provider): exclude image/video models
2026-02-19 15:49:25 -06:00
Aiden Cline 2bd0d5446e Merge pull request #986 from riasvdv/add-gemini-3.1-pro
Add Gemini 3.1 Pro Preview to copilot models
2026-02-19 15:49:12 -06:00
Aiden Cline 5f135517b1 Remove audio and video from input modalities 2026-02-19 15:48:42 -06:00
Aiden Cline e2af7819b4 Rename gemini-3.5-pro-preview.toml to gemini-3.1-pro-preview.toml 2026-02-19 15:47:25 -06:00
Rias ca6c251b3a Add Gemini 3.1 Pro Preview to copilot models 2026-02-19 22:43:26 +01:00
Sylvie Zhang 7b1b590d10 exclude image/video gen models 2026-02-19 13:24:11 -08:00
Aiden Cline 5097a1e954 Merge pull request #966 from mhkok/mkok/feat/add-evroc-provider
add evroc provider + models
2026-02-19 14:15:51 -06:00
Aiden Cline 05959a83b6 Update font family in Kimi-K2.5 configuration 2026-02-19 14:15:07 -06:00
Aiden Cline 1492e067a4 Merge pull request #976 from too-green/patch-2
Add Qwen3 Coder Next model for openrouter
2026-02-19 14:01:07 -06:00
Aiden Cline 41c81535c3 fix: zen 2026-02-19 12:54:29 -06:00
Aiden Cline 829756fc41 Merge pull request #983 from mdrxy/mdrxy/fix-gemini-3
fix Gemini 3.1 model names
2026-02-19 12:34:07 -06:00
Mason Daugherty e6ef906c41 fix 2026-02-19 13:21:52 -05:00
Aiden Cline 0f84db6bc6 Merge pull request #975 from xiaojiezj/zenmux_dev_0219
feat:  Add new models for ZenMux provider
2026-02-19 11:33:49 -06:00
Aiden Cline 4bb6d52a7c Merge pull request #979 from hanouticelina/fix-interleaved-for-hf-provider
Fix Hugging Face interleaved `reasoning field: reasoning_details` -> `reasoning_content`
2026-02-19 11:33:34 -06:00
Aiden Cline bdd0194e73 Merge pull request #981 from mdrxy/mdrxy/add-gemini-3.1
add gemini 3.1 to google/openrouter
2026-02-19 11:33:15 -06:00
Frank 41a9502628 update zen models 2026-02-19 11:51:37 -05:00
Mason Daugherty 384e747129 add gemini 3.1 to google/openrouter 2026-02-19 11:24:30 -05:00
Frank e4bb5ceac6 update zen models 2026-02-19 10:16:51 -05:00
Frank c830964c3f update zen models 2026-02-19 09:37:07 -05:00
Celina Hanouti 782b6277ae Fix Hugging Face interleaved reasoning field 2026-02-19 15:27:49 +01:00
Frank e63d48ae9c update zen models 2026-02-19 07:42:52 -05:00
Matthijs Kok 029522aa96 fix family names 2026-02-19 08:48:43 +01:00
Ahmed 482ed2e833 Add Qwen3 Coder Next model for openrouter
Added model configuration for Qwen3 Coder Next
2026-02-19 12:36:55 +05:00
Aiden Cline c6635aa7c3 Merge pull request #968 from MeganovaAI/add-meganova-provider
Add Meganova as a provider
2026-02-18 23:44:03 -06:00
Aiden Cline a6ffef7e4f Merge pull request #969 from SomeoneWithOptions/dev
add claude sonnet 4.6 on openrouter
2026-02-18 23:40:02 -06:00
Aiden Cline fda9bb5335 Merge pull request #973 from sylviezhang37/update-vercel-models-20260219-0026
Update Vercel models
2026-02-18 23:38:56 -06:00
Aiden Cline 98d6901697 Update input cost value in qwen3.5-plus.toml 2026-02-18 23:38:49 -06:00
Aiden Cline 13ae499d7c tweak values 2026-02-18 23:38:18 -06:00
xiaojie.zj f21d205d6e feat: 增加Claude Sonnet 4.6/Doubao-Seed-2.0-lite/Doubao-Seed-2.0-mini/Doubao-Seed-2.0-pro模型 2026-02-19 11:10:28 +08:00
Lucas Almeida c82b08d778 fix: adding missing gpt-5.2 model on azure foundry 2026-02-18 23:38:10 -03:00
Sylvie Zhang ea612760cf Delete providers/vercel/models/recraft/recraft-v4.toml 2026-02-18 16:34:47 -08:00
Sylvie Zhang 48a64f0834 Delete providers/vercel/models/recraft/recraft-v4-pro.toml 2026-02-18 16:34:35 -08:00
github-actions[bot] 040e7fff4e chore(vercel): update Vercel model definitions
Auto-generated by weekly workflow from Vercel AI Gateway API.

Co-Authored-By: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-19 00:26:59 +00:00
SomeoneWithOptions a6d14928b6 added claude sonnet 4.6 on openrouter 2026-02-18 18:49:56 -05:00
Boqian 92d9e89690 Set reasoning=false for DeepSeek V3 series
V3-0324, V3.1, V3.2, V3.2-Exp are chat models, not reasoning models.
Only DeepSeek-R1 is a reasoning model.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 16:41:07 -05:00
Boqian 2d83b96bb1 Fix interleaved reasoning_content based on Meganova API testing
Tested each model with include_reasoning=true against the live API.

Added [interleaved] to: GLM-4.6, MiniMax-M2.1, MiniMax-M2.5, Kimi-K2.5
Removed [interleaved] from: DeepSeek-V3.1, V3.2, V3.2-Exp, MiMo-V2-Flash

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 16:35:51 -05:00
Boqian 6e02385a6b Add interleaved reasoning_content to DeepSeek V3.1, V3.2, V3.2-Exp
These models support interleaved reasoning output, matching how other
providers (deepinfra, baseten, chutes) configure them.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 16:29:41 -05:00
Boqian a2f8234c8e Update pricing and context limits from Meganova API
Use actual pricing from https://api.meganova.ai/v1/models instead of
reference data from other providers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 16:25:43 -05:00
Aiden Cline 2f43c70397 Merge pull request #967 from nicolasgere/dev
feat(provider): Add glm-5 for baseten
2026-02-18 15:19:47 -06:00
Boqian 006cb53c1e Add Meganova as a provider with 19 open-weight models
Adds Meganova AI (https://api.meganova.ai/v1) as an OpenAI-compatible provider
with curated open-weight models including DeepSeek, GLM, Qwen, Kimi, MiniMax,
MiMo, Llama, and Mistral families.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 16:17:51 -05:00
nicolasgere d2832f9d1d Update GLM-5.toml 2026-02-18 16:15:22 -05:00
nicolasgere 73c0fcc19e Rename GLM-5 to GLM-5.toml 2026-02-18 16:14:26 -05:00
nicolasgere 04a1fe8043 Create GLM-5 2026-02-18 16:14:09 -05:00
Matthijs Kok 7fa0eeebf9 add evroc provider + models 2026-02-18 19:57:44 +01:00
Aiden Cline cb72e1780f Merge pull request #962 from aldosch/add-sonnet-4-6-vercel
add sonnet 4.6 to vercel ai gateway
2026-02-18 12:19:00 -06:00
Aiden Cline 7ee7e88346 Merge pull request #960 from fa-sharp/patch-1
fix: OpenRouter output modalities for image-only models
2026-02-18 12:18:27 -06:00
Aiden Cline 4cc230ba6c Merge pull request #963 from vglafirov/gitlab/add-sonnet-4-6
feat(gitlab): add Claude Sonnet 4.6 model
2026-02-18 12:17:57 -06:00
Aiden Cline 65d6355ffa Merge pull request #964 from xinrui-z/aihubmix-add-claude-4-6
aihubmix: add models
2026-02-18 12:17:48 -06:00
Xinrui 1b6157c0ee aihubmix: add models 2026-02-18 22:55:03 +08:00
Vladimir Glafirov 5e25c0838e feat(gitlab): add Claude Sonnet 4.6 model 2026-02-18 13:52:26 -01:00
aldosch b06ab95c9e add sonnet 4.6 to vercel ai gateway 2026-02-19 00:38:35 +11:00
Daltonganger 33f4e77ee4 fix(nano-gpt): normalize family enums for model validation 2026-02-18 12:53:40 +01:00
Daltonganger 51ef2e51ae finalize nano-gpt model sync and release metadata 2026-02-18 12:44:36 +01:00
farshad 9d873cc764 add back trailing newline 2026-02-18 02:18:40 -05:00
farshad d0acb0a35d fix output modalities for black forest flux models 2026-02-18 01:52:31 -05:00
farshad 697c191fea Update output modalities in seedream-4.5.toml 2026-02-18 01:45:06 -05:00
Aiden Cline 7d9ff92ffd fix: glm 5 maas 2026-02-17 23:41:48 -06:00
Aiden Cline 03a2aee0de Merge pull request #716 from bluet/feat/google-vertex-openai
feat: add google-vertex-openai provider for Vertex AI partner models
2026-02-17 23:38:08 -06:00
Aiden Cline 4eb19459dd Merge pull request #958 from mugnimaestra/feat/add-qwen3.5-397b-a17b-tee-chutes
feat: add Qwen3.5 397B A17B TEE to Chutes provider listings
2026-02-17 23:27:18 -06:00
Aiden Cline b74d7eb495 Merge pull request #957 from dpuyosa/veniceScript
Venice: Update generate-venice script to include context_over_200k cost
2026-02-17 23:26:28 -06:00
Aiden Cline 60aa5aca14 Merge pull request #956 from dpuyosa/venice
Venice: Add Claude Sonnet 4.6 and GLM 4.7 Flash Heretic models
2026-02-17 20:22:44 -06:00
Muhammad Mugni Hadi 67235a4e39 feat: add Qwen3.5 397B A17B TEE to Chutes provider listings 2026-02-18 09:09:45 +07:00
dpuyosa ff03fd6906 [venice] Add Claude Sonnet 4.6 and GLM 4.7 models
- Add Claude Sonnet 4.6 model with context_over_200k pricing
- Add GLM 4.7 Flash Heretic model (open weights)
- Add context_over_200k pricing tier to Claude Opus 4.6
2026-02-18 02:02:19 +01:00
dpuyosa 423b177c2b Update generate-venice script to include context_over_200k cost 2026-02-18 01:55:52 +01:00
Aiden Cline 8c263109c5 Merge pull request #955 from maahir30/open-router-structured-output
Add structured output support for OpenRouter models
2026-02-17 18:52:02 -06:00
Maahir Sachdev 1bab7e8438 update open router models 2026-02-17 16:42:52 -08:00
Aiden Cline 7a163dbc60 Merge pull request #953 from mongrelion/dev
feat: add github copilot claude sonnet 4.6 model
2026-02-17 18:30:54 -06:00
Aiden Cline c94d025aa7 fixes 2026-02-17 18:23:01 -06:00
Aiden Cline 55e8be17b5 Merge pull request #949 from cgilly2fast/dev
feat(firmware): add sonnet 4.6
2026-02-17 18:21:16 -06:00
Aiden Cline 56096012b2 Merge pull request #948 from elithrar/patch-1
add Sonnet 4.6 model config
2026-02-17 17:53:20 -06:00
Aiden Cline 9b8a22d756 Merge pull request #725 from janszypulski/add-provider-cloudferro-sherlock
Add provider - Cloudferro Sherlock
2026-02-17 17:50:14 -06:00
Aiden Cline 5a778c6e93 Merge pull request #682 from the-lazy-me/add-qihang-provider
feat: add QiHang provider with 7 models
2026-02-17 17:48:51 -06:00
Aiden Cline 4d08659acf Merge pull request #651 from yinxulai/feat/qiniu-ai
feat: add Qiniu AI provider configuration
2026-02-17 17:46:05 -06:00
Aiden Cline 128c9ec469 Merge pull request #308 from d-oit/feature/perplexity-sonar-deep-research
Feature/perplexity sonar deep research
2026-02-17 17:37:20 -06:00
Carlos León dc11781324 feat: add github copilot claude sonnet 4.6 model
Model list sourced from GitHub Settings page showing currently available models. Specifications cross-referenced with Anthropic provider implementation.
2026-02-18 00:22:22 +01:00
Colby Gilbert 9d0b37bea3 feat(firmware): add sonnet 4.6 2026-02-17 15:03:21 -08:00
Matt Silverlock c8d09fe349 add Sonnet 4.6 model config 2026-02-17 17:27:51 -05:00
Aiden Cline 1a22b93fc2 Merge pull request #947 from fhennerkes/dev
poe: add Claude-Sonnet-4.6 and update XAI models
2026-02-17 15:56:11 -06:00
Aiden Cline 3918131cb8 Merge pull request #946 from monotykamary/remove-fireworks-deprecated-models-2026-02-12
chore(fireworks-ai): remove deprecated serverless models
2026-02-17 15:56:00 -06:00
fhennerkes a1d9c5134c poe: add Claude-Sonnet-4.6 and update XAI models 2026-02-17 13:38:54 -08:00
Ruben Beuker 20abb5b8df preserve curated release dates for key nano-gpt models
Keep existing curated release and last-updated values for models where NanoGPT API uses the generic created timestamp baseline.
2026-02-17 22:09:03 +01:00
Tom X Nguyen dc36ed54ae chore(fireworks-ai): remove deprecated serverless models
Remove 6 Fireworks serverless models deprecated on February 12, 2026:
- glm-4.6 (migrate to glm-4.7)
- deepseek-r1-0528 (migrate to deepseek-v3.2 or deepseek-v3.1)
- deepseek-v3-0324 (migrate to deepseek-v3.2 or deepseek-v3.1)
- qwen3-235b-a22b (migrate to kimi-k2-instruct-0905)
- qwen3-coder-480b-a35b-instruct (migrate to kimi-k2-instruct-0905)
- minimax-m2 (migrate to MiniMax-M2.1)

See: https://fireworks.ai/models?modelTypes=Serverless
2026-02-18 04:04:51 +07:00
Ruben Beuker 8cb462f29b sync nano-gpt models with live API catalog
Refresh NanoGPT model files to match the current /api/v1/models output, remove stale entries, and add newly available models while preserving path-based IDs.

Also ignore local TokenSpeed sqlite artifacts so private monitoring data is not shown or committed.
2026-02-17 22:01:54 +01:00
Frank 89486ec705 update zen models 2026-02-17 14:12:30 -05:00
Aiden Cline f313f802ee Merge pull request #940 from nitishxyz/add-claude-sonnet-4-6
feat(models): add Claude Sonnet 4.6 model configurations
2026-02-17 13:12:10 -06:00
nitishxyz 128615ddd7 feat(models): add Claude Sonnet 4.6 model configurations
- Add Claude Sonnet 4.6 to Anthropic provider with full capabilities
- Add regional variants (US, EU, Global) for Amazon Bedrock provider
- Add Google Vertex Anthropic provider configuration
- Define pricing, context limits (200k tokens), and modalities

Co-authored-by: ottocode-io[bot] <261994719+ottocode-io[bot]@users.noreply.github.com>
2026-02-18 00:01:02 +05:30
Aiden Cline 756fb772c1 Merge pull request #939 from Nomadcxx/fix/kilo-npm-provider
fix(kilo): use @ai-sdk/openai-compatible instead of opencode-kilo-auth
2026-02-17 11:29:52 -06:00
Nomadcxx e86f0afd87 fix(kilo): use @ai-sdk/openai-compatible npm package
The npm field pointed to opencode-kilo-auth which causes
ProviderInitError when loading Kilo models.

Switched to @ai-sdk/openai-compatible (already bundled in OpenCode)
and added api field for the gateway endpoint.
2026-02-18 04:21:52 +11:00
Aiden Cline 29c5e28a43 Merge pull request #791 from samsja/add-intellect-3
Add Intellect 3 model from Prime Intellect
2026-02-17 10:56:34 -06:00
Aiden Cline ea414b1500 Merge pull request #935 from ConceptCodes/feat/add-glm-flashx-model
feat: add GLM-4.7-FlashX model configuration
2026-02-17 10:34:45 -06:00
Aiden Cline 4556fe8b5b Merge pull request #937 from gary149/feat/huggingface-qwen3.5-m2.5-coder-next
feat(huggingface): add Qwen3.5-397B, MiniMax-M2.5, Qwen3-Coder-Next
2026-02-17 10:34:33 -06:00
Aiden Cline 8af23aeba5 Merge pull request #938 from spiffytech/dev
Add Ollama Cloud support for Qwen 3.5
2026-02-17 10:34:18 -06:00
Aiden Cline 9bfe1203c6 ci 2026-02-17 10:34:02 -06:00
spiffytech a619966e22 Added Ollama Cloud support for Qwen 3.5 2026-02-17 10:00:15 -05:00
Victor Muštar f48d55e1aa chore: remove accidentally committed skill file 2026-02-17 10:31:27 +01:00
Victor Muštar fe0ddcb666 feat(huggingface): add Qwen3.5-397B, MiniMax-M2.5, Qwen3-Coder-Next 2026-02-17 10:31:18 +01:00
Frank af1e1d1f51 update zen models 2026-02-17 02:08:24 -05:00
Aiden Cline 774a9f40b0 Merge pull request #933 from too-green/patch-1
Fix the display name of GLM-4.7-Flash
2026-02-17 00:23:26 -06:00
Aiden Cline 4f01ffb017 Merge pull request #934 from PandaSt0rm/add-minimax-m2.5-highspeed-models
Add MiniMax-M2.5-highspeed models for official MiniMax providers
2026-02-17 00:23:10 -06:00
Aiden Cline 7d768260cf Merge pull request #936 from Alex-wuhu/dev
add Qwen3.5-397B-A17B for novita
2026-02-17 00:22:30 -06:00
Alex-wuhu 467d269522 add Qwen3.5-397B-A17B for novita 2026-02-17 13:22:04 +08:00
concept 5ec496d6e1 feat: add GLM-4.7-FlashX model configuration 2026-02-16 21:31:16 -06:00
PandaSt0rm 45ca42f95a add MiniMax-M2.5-highspeed models 2026-02-17 03:53:05 +02:00
Ahmed f19ebce14c Rename model to GLM-4.7-Flash
Both GLM 4.7 and GLM 4.7 Flash had been named to the same "GLM 4.7"
2026-02-17 05:03:41 +05:00
Aiden Cline 85f5340eeb Merge pull request #931 from rifandyzv/dev
Add Qwen3.5 models for alibaba & alibaba-cn provider
2026-02-16 16:06:32 -06:00
Aiden Cline 39f06e82e7 Merge pull request #932 from cantalupo555/feat/add-openrouter-qwen3.5-plus-and-397b-a17b
feat: add Qwen3.5 models on OpenRouter
2026-02-16 16:05:56 -06:00
cantalupo555 4e7725d244 feat: add Qwen3.5 models on OpenRouter 2026-02-16 17:47:45 -03:00
Aiden Cline 7fe64bc498 Revert "Add image and video to input modalities"
This reverts commit 76e84a8b06.
2026-02-16 12:12:29 -06:00
rifandyzv f84a4a5cf9 feat: add Qwen3.5 models for alibaba & alibaba-cn provider 2026-02-17 01:28:16 +08:00
Aiden Cline 96f60c3329 Merge pull request #928 from Daltonganger/feat/kilo-provider-models
Add Kilo Gateway provider and import Kilo models
2026-02-16 11:08:11 -06:00
Aiden Cline f67b9bdef7 Merge pull request #929 from Daltonganger/feat/nano-gpt-qwen35-models
Add four Qwen3.5 models for NanoGPT
2026-02-16 11:05:23 -06:00
Frank 76e84a8b06 Add image and video to input modalities 2026-02-16 12:00:43 -05:00
Daltonganger cec16274c7 Add NanoGPT Qwen3.5 model variants 2026-02-16 17:09:17 +01:00
Daltonganger 17094722ea Add Kilo provider and import Kilo model catalog 2026-02-16 17:00:15 +01:00
Matthew (BlueT) Lien e3e230e3b3 fix: add api base URL template to partner model [provider] overrides
Add the api field with env-var template URL to all partner models so
opencode's loadBaseURL() can resolve the OpenAI-compatible endpoint.

Uses GOOGLE_VERTEX_PROJECT (not GOOGLE_CLOUD_PROJECT) because
googleVertexVars() resolves it through the full fallback chain
(GOOGLE_VERTEX_PROJECT → options.project → GOOGLE_CLOUD_PROJECT →
GCP_PROJECT → GCLOUD_PROJECT).
2026-02-16 21:51:55 +08:00
Aiden Cline 4666f36f3e Merge pull request #926 from zainhas/dev
[Together AI] add minimax M2.5
2026-02-15 23:57:45 -06:00
Aiden Cline 5a2bcd704e Merge pull request #900 from conglinyizhi/dev
feat: Add StepFun provider support
2026-02-15 23:57:35 -06:00
Zain Hasan 05861fd7fd add minimax M2.5 2026-02-15 21:48:37 -08:00
Aiden Cline e37bb8ae68 Merge pull request #923 from juls0730/dev
Fix cerebras/zai-gml-4.7 pricing
2026-02-15 20:03:47 -06:00
Aiden Cline 495e8006df Merge pull request #905 from shelvick/add-vertex-glm-5
Add GLM-5 to Google Vertex AI
2026-02-15 20:03:34 -06:00
Aiden Cline ad8dde798d Merge pull request #924 from cgilly2fast/dev
feat(firmware): add reason to anthropic models
2026-02-15 20:03:23 -06:00
Aiden Cline ab4fa333e3 Merge pull request #925 from 8dazo/dev
feat: add MiniMax M2.5 to Chutes provider listings
2026-02-15 20:03:12 -06:00
8dazo 6255298cd1 minimax model update 2026-02-16 06:31:01 +05:30
Colby Gilbert 3614087be6 Merge branch 'anomalyco:dev' into dev 2026-02-15 15:55:32 -08:00
Colby Gilbert 4495cb3569 feat(firmware): add reason to anthropic models 2026-02-15 15:55:02 -08:00
juls0730 8444d9293d Fix cerebras/zai-gml-4.7 pricing
Prices from https://inference-docs.cerebras.ai/models/zai-glm-47#z-ai-glm-4-7
2026-02-15 17:53:57 -06:00
Aiden Cline c1d36715ee Merge pull request #914 from 8dazo/dev
feat: add Z-AI GLM-5 to Chutes provider listings
2026-02-15 15:45:37 -06:00
Aiden Cline 860e610b73 Merge pull request #922 from cgilly2fast/dev
chore: remove unsupported models
2026-02-15 15:45:28 -06:00
Colby Gilbert beb84e769a chore: remove unsupported models 2026-02-15 13:38:52 -08:00
Aiden Cline 0408546681 Merge pull request #921 from zerone0x/feat/add-bedrock-deepseek-v3.2
feat(amazon-bedrock): add DeepSeek V3.2
2026-02-15 15:29:26 -06:00
Aiden Cline 97a040bc5e Merge pull request #915 from fanweixiao/dev
add glm-5, gpt-5-mini, deepseek-v3.2 models for vivgrid provider
2026-02-15 15:29:08 -06:00
Aiden Cline f68786b892 Merge pull request #920 from anomalyco/revert-912-add-github-copilot-gpt-5-3-codex
Revert "feat: add GitHub Copilot GPT-5.3 Codex"
2026-02-15 08:42:51 -06:00
Clawdbot 816c3d96b9 feat(amazon-bedrock): add DeepSeek V3.2
Add DeepSeek V3.2 model to Amazon Bedrock provider.

Model ID: deepseek.v3.2-v1:0
Pricing (US regions): $0.62/1M input, $1.85/1M output

Ref: https://aws.amazon.com/about-aws/whats-new/2026/02/amazon-bedrock-adds-support-six-open-weights-models/
2026-02-15 09:19:18 +01:00
Aiden Cline bac557c176 Revert "feat: add github copilot gpt-5.3-codex model (#912)"
This reverts commit 08db483d58.
2026-02-14 18:31:30 -06:00
Aiden Cline 97e81f356e Merge pull request #908 from hsnyus-09/feature/add-aurora-alpha
feat(openrouter): add aurora-alpha model definition
2026-02-14 17:34:22 -06:00
Matthew (BlueT) Lien 4c361218de feat: add Vertex AI partner models with openai-compatible overrides
Add DeepSeek V3.1, Llama 4 Maverick, Llama 3.3 70B, and Qwen3 235B as
partner models under google-vertex provider. Update GLM-4.7 with
corrected specs from official Google Cloud docs.

Each partner model uses [provider] npm override to @ai-sdk/openai-compatible
since these models are served via Google's OpenAI-compatible endpoint,
while staying consolidated under the google-vertex provider per
maintainer feedback.

All specs (context windows, output limits, pricing, modalities)
verified against official Google Cloud documentation:
- cloud.google.com/vertex-ai/generative-ai/pricing
- cloud.google.com/vertex-ai/generative-ai/docs/maas/*

Changes:
- Update zai-org/glm-4.7-maas: fix context=200K, output=128K, add pdf
  modality, correct release_date, add structured_output, add [provider]
- Add deepseek-ai/deepseek-v3.1-maas ($0.60/$1.70, 163K context)
- Add meta/llama-4-maverick-17b-128e-instruct-maas (vision, 524K ctx)
- Add meta/llama-3.3-70b-instruct-maas ($0.72/$0.72, 128K context)
- Add qwen/qwen3-235b-a22b-instruct-2507-maas ($0.22/$0.88, 262K ctx)
2026-02-15 06:35:17 +08:00
Anjul Garg 08db483d58 feat: add github copilot gpt-5.3-codex model (#912) 2026-02-14 14:27:49 -05:00
YuSung Han e0c14d7883 Remove redundant lines in aurora-alpha.toml 2026-02-15 03:50:02 +09:00
Aiden Cline e457c7f1dd Merge pull request #916 from arshadbarves/add-nvidia-glm5
Add GLM5 model to nvidia provider
2026-02-14 11:53:09 -06:00
Arshad Barves c86b97226c Update providers/nvidia/models/z-ai/glm5.toml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-14 17:36:22 +05:30
Test User 8ec101e8f1 Add GLM5 model to nvidia provider 2026-02-14 15:32:11 +05:30
C.C. Fan cc1feddc11 add glm-5, gpt-5-mini, deepseek-v3.2 models 2026-02-14 17:08:07 +08:00
8dazo 95fd20e66a update name 2026-02-14 13:54:20 +05:30
8dazo 8c322d46dd Chutes Model Listings update 2026-02-14 13:49:06 +05:30
conglinyizhi da7a26b7b1 fix: 修复 StepFun provider 文档链接
将 doc 字段从 https://platform.stepfun.com/docs
改为 https://platform.stepfun.com/docs/zh/overview/concept
2026-02-14 15:07:40 +08:00
Aiden Cline 5a00835470 Merge pull request #913 from kavin-kr/patch-1
Update release date for nova-2-pro-v1 model
2026-02-14 00:50:06 -06:00
Frank b0c0a91926 update zen models 2026-02-14 00:52:08 -05:00
Kavin 8b2d995801 Update release date for nova-2-pro-v1 model 2026-02-13 23:46:55 -06:00
Aiden Cline 3f4b804ca1 Merge pull request #911 from monotykamary/feat/add-minimax-m2.5
feat: add fireworks minimax m2.5 model and fix m2.1 cache pricing
2026-02-13 19:00:46 -06:00
Tom X Nguyen 133e605c23 feat: add minimax m2.5 model and fix m2.1 cache pricing 2026-02-14 07:53:15 +07:00
Aiden Cline f3cff10e78 Merge pull request #910 from keenborder786/fix/gpt_5_2_pro
fix: gpt 5-2-pro does not support structured output
2026-02-13 17:53:00 -06:00
keenborder786 4732ca7f77 fix: gpt 5-2-pro does not support structured output 2026-02-14 04:50:19 +05:00
Aiden Cline 06f79b4142 Merge pull request #909 from juls0730/dev
Add all missing cohere models offered by the cohere api
2026-02-13 16:47:11 -06:00
Aiden Cline 69106c6f36 Merge pull request #907 from Algowary/dev
Chutes Model Listings update
2026-02-13 16:44:43 -06:00
Zoe dc1d8b78d0 Add all missing cohere models offered by the cohere api
This commit adds all the models offered by the official cohere api
that are not yet available in the models.dev repo, excluding the
rerank and embed models.
2026-02-13 16:43:57 -06:00
hsnyus-09 4383829304 feat(openrouter): add aurora-alpha model definition 2026-02-14 06:17:25 +09:00
Algowarry 610713b805 Merge branch 'dev' of https://github.com/Algowary/models.dev into dev 2026-02-13 16:08:26 -05:00
Algowarry 07e3eec2cf Chutes Model Inventory Update
Updating the models available from the provider chutes.ai
2026-02-13 16:01:46 -05:00
Algowarry ccf8a3e82a Merge branch 'dev' of https://github.com/Algowary/models.dev into dev 2026-02-13 15:07:16 -05:00
Algowarry 8e1d34323a Chutes Model Update
Model inventory and stats update
2026-02-13 14:38:07 -05:00
Aiden Cline 5f6d36a463 Merge pull request #787 from elithrar/fix/cloudflare-ai-gateway-provider-package
use official ai-gateway-provider package for Cloudflare AI Gateway
2026-02-13 12:44:45 -06:00
Scott Helvick 84e43b1912 Add GLM-5 to Google Vertex AI 2026-02-13 17:57:08 +00:00
Aiden Cline a9f14cbae3 Merge pull request #903 from micuintus/dev
fix(nebius): correct model ID casing to match Token Factory API
2026-02-13 10:39:51 -06:00
Aiden Cline 97baff037b Merge pull request #896 from zainhas/dev
[Together AI] Add GLM-5
2026-02-13 10:38:06 -06:00
Aiden Cline b149bd83ad Merge pull request #902 from qychen2001/dev
chore(siliconflow): update siliconflow/siliconflow-cn models
2026-02-13 10:25:04 -06:00
Aiden Cline 30ef1d1b51 Merge pull request #898 from 888-wzk/feature/chenger_20260128
feat(models): Added minimax model profile
2026-02-13 10:24:36 -06:00
Aiden Cline a62ccfd392 Merge pull request #901 from dpuyosa/venice
Venice: Add MiniMax M2.5 model configuration
2026-02-13 10:24:18 -06:00
QiyuanChen 23e195a0fa feat(models): Add interleaved reasoning_content field to GLM-4.7 and GLM-5 configurations for zai-org and Pro 2026-02-13 23:35:56 +08:00
Aiden Cline d1c5bc811e Merge pull request #899 from niushuai1991/feature/kuae-cloud-coding-plan
add provider: kuae cloud coding plan
2026-02-13 09:23:33 -06:00
Michael Voigt ad7e8047b9 fix(nebius): correct model ID casing to match Token Factory API
Fix lowercase model ID bug that caused "The model does not exist" errors.

- qwen/ → Qwen/ directory
- Fixed model file casing to match API exactly:
  - google/gemma-* → lowercase (gemma-2-2b-it, etc.)
  - meta-llama/*-Fast → lowercase fast suffix
  - nvidia/Llama-3_1-* → underscore instead of dot
  - nvidia/NVIDIA-* → uppercase NVIDIA prefix
  - black-forest-labs/flux-* → all lowercase
  - BAAI/bge-* → all lowercase
  - All Qwen models → proper casing

* Remove outdated models not in API:
- deepseek-ai/DeepSeek-V3
- meta-llama/Llama-3.1-405B-Instruct
- zai-org/GLM-4.7

* Add new model:
- moonshotai/Kimi-K2.5 (262K context, multimodal)

Fixes: https://github.com/anomalyco/opencode/issues/12461
and: https://ideas.nebius.com/en/p/token-factory-api-lowercase-model-ids

Note: The changes made and verified with actual Nebius API access
2026-02-13 14:28:48 +01:00
QiyuanChen 73393e9e41 chore(models): Remove Qwen3-30B-A3B and DeepSeek-R1-Distill-Qwen-7B model configuration files from siliconflow and siliconflow-cn 2026-02-13 20:11:19 +08:00
QiyuanChen 3e5566ab9d chore(models): Remove GLM-4.1V-9B-Thinking model configuration files from siliconflow and siliconflow-cn 2026-02-13 20:09:14 +08:00
QiyuanChen f5096e4b54 chore(models): Remove Kimi-Dev-72B model configuration files from siliconflow and siliconflow-cn 2026-02-13 20:08:14 +08:00
QiyuanChen 1d6e26574f chore(models): Remove MiniMaxAI/MiniMax-M1-80k and MiniMax-M2 model configuration files 2026-02-13 20:07:15 +08:00
QiyuanChen 57b0608e70 feat(models): Introduce Step-3.5-Flash model configuration and remove deprecated Step-3 model files 2026-02-13 20:06:05 +08:00
QiyuanChen 88ed698a69 feat(models): Enable structured_output in GLM-4.7 and GLM-5 configurations for zai-org and Pro 2026-02-13 20:04:27 +08:00
QiyuanChen 286c43f2cd feat(glm-5): Add new GLM-5 model configuration files for zai-org and Pro 2026-02-13 20:00:10 +08:00
dpuyosa 04d82741fa [venice] Add MiniMax M2.5 model configuration
- Modalities: text input/output
- Context window: 198K tokens
- Max output: 32K tokens
- Pricing: $0.40/M input, $1.60/M output, $0.04/M cache read
2026-02-13 09:44:22 +01:00
conglinyizhi 58c595b95f feat: Add StepFun provider support
- Add StepFun(阶跃星辰) as a new provider with OpenAI-compatible API
- Support step-3.5-flash (256K context, reasoning model)
- Support step-2-16k (1T parameters, 16K context)
- Support step-1-32k (100B parameters, 32K context)

Pricing based on official StepFun documentation (converted from CNY to USD):
- step-3.5-flash: bash.096 input / bash.288 output / bash.019 cache
- step-2-16k: .21 input / 6.44 output / .04 cache
- step-1-32k: .05 input / .59 output / bash.41 cache

Note: Logo not included as it is optional per contributing guidelines.
A default logo will be served by models.dev API instead.

All model definitions follow the official schema.

Fixes anomalyco/opencode#11760
Fixes anomalyco/opencode#11960

StepFun API: https://api.stepfun.com/v1
Documentation: https://platform.stepfun.com/docs/zh/pricing/details
2026-02-13 16:28:07 +08:00
城二 58de85c2e8 feat(minimax): Add interleaved configuration
- Add the reasoning_content field configuration to the minimax model.
- Update the configuration files for m2.5 and m2.5-lightning.
2026-02-13 16:20:45 +08:00
城二 f87ecffbf0 feat(minimax): Update m2.5 model name and price
- Change the model name from "lightning" to "highspeed"
- Adjust the input/output and cache read/write prices
2026-02-13 16:18:22 +08:00
niushuai1991 6dfb2f9c83 add kuae cloud coding plan 2026-02-13 15:02:52 +08:00
城二 ee8c1bce7d feat(models): Added minimax model profile 2026-02-13 14:15:44 +08:00
Zain Hasan a2dd10d09d Update output limit in GLM-5 configuration 2026-02-12 22:12:56 -08:00
Zain Hasan f6cfc2ebd2 try remove reasoning 2026-02-12 21:54:02 -08:00
Zain Hasan 3192856cc3 finx glm 5 settings 2026-02-12 21:46:13 -08:00
Aiden Cline 5507f42604 Merge pull request #874 from 888-wzk/feature/chenger_20260128
feat(z-ai): New glm-5 model configuration file
2026-02-12 22:56:36 -06:00
Aiden Cline 995aabf33f Merge pull request #894 from fhennerkes/dev
Poe: fix formatting, naming and update outputs
2026-02-12 22:56:08 -06:00
城二 fc5c3613eb feat(glm-5): Add reasoning_content field 2026-02-13 11:37:33 +08:00
fhennerkes 72f10a52e1 poe: update model names to use display_name 2026-02-12 19:08:49 -08:00
fhennerkes e944012d95 poe: small fixes (formatting and reasoning) 2026-02-12 18:55:19 -08:00
Aiden Cline e117f37d4e Merge pull request #892 from pat-baseten/add-kimi-2.5-baseten
Add Kimi K2.5 model for Baseten
2026-02-12 17:45:46 -06:00
Pat b0d71629fe Add Kimi K2.5 model for Baseten 2026-02-12 16:39:56 -06:00
Aiden Cline aa5e8634b2 Merge pull request #890 from cfal/fireworks-glm-5
fireworks: add GLM-5
2026-02-12 16:15:18 -06:00
Aiden Cline 7acba1db3f Merge pull request #891 from lucianjon/feat/openrouter-minimax-m2.5
feat(openrouter/minimax): add minimax-m2.5
2026-02-12 16:15:08 -06:00
Aiden Cline c5095973e1 Merge pull request #886 from brentdurksen/dev
feat(amazon-bedrock): add Writer Palmyra X4 and X5 models
2026-02-12 16:14:58 -06:00
Aiden Cline 5b8797cf89 Merge pull request #889 from Daltonganger/feat/nano-gpt-add-minimax-m2.5-official
feat(nano-gpt): add MiniMax M2.5 route alongside official variant
2026-02-12 16:14:36 -06:00
Daltonganger f1317184b5 Enable reasoning and add interleaved field in TOML 2026-02-12 23:07:12 +01:00
Lucian Jones 7ba286c7f2 feat(openrouter/minimax): add minimax-m2.5 2026-02-13 10:59:30 +13:00
cfal dec532b3b0 providers/fireworks-ai/models/accounts/fireworks/models/glm-5.toml: add GLM-5 to fireworks 2026-02-13 01:45:51 +04:00
Aiden Cline ccff680988 Merge pull request #864 from sylviezhang37/vercel-model-file-gen-script
feat(provider): Vercel model file generation and update script
2026-02-12 15:37:17 -06:00
Aiden Cline 1b63e4670e Merge pull request #887 from PandaSt0rm/add-minimax-m2-5-support
Add MiniMax-M2.5 across minimax and coding-plan providers
2026-02-12 15:36:56 -06:00
Aiden Cline d5cbd6fb5d Merge pull request #888 from spiffytech/dev
Add Ollama Cloud support for Minimax 2.5
2026-02-12 15:36:14 -06:00
Ruben Beuker e8f2f6b14f feat(nano-gpt): add MiniMax M2.5 route and align official variant 2026-02-12 22:35:23 +01:00
spiffytech e92fe6e9d7 Added Ollama Cloud support for Minimax 2.5 2026-02-12 16:24:11 -05:00
PandaSt0rm 7a32f17911 add MiniMax-M2.5 configs across minimax providers 2026-02-12 23:22:52 +02:00
Brent Durksen 57db1db84f feat(amazon-bedrock): add Writer Palmyra X4 and X5 models
Add two new Writer AI models to the Amazon Bedrock provider:

- writer.palmyra-x4-v1:0 (Palmyra X4): 128K context, 8K output,
  reasoning and tool calling, $2.50/$10 per M tokens (input/output)
- writer.palmyra-x5-v1:0 (Palmyra X5): 1M context, 8K output,
  reasoning and tool calling, $0.60/$6 per M tokens (input/output)

Both models support text-only input/output modalities and are
closed-weight.

Also adds the 'palmyra' family to the ModelFamilyValues enum in
packages/core/src/family.ts to support validation.
2026-02-12 13:43:32 -07:00
Aiden Cline ba91bb6612 Merge pull request #883 from ryanskidmore/ryanskidmore/cloudflare-ai-gateway-bump-opus-4-6-limits
cloudflare-ai-gateway: bump Opus 4.6 output limit to 128k
2026-02-12 13:01:38 -06:00
Ryan Skidmore 9761d0ef87 cloudflare-ai-gateway: bump Opus 4.6 output limit to 128k 2026-02-12 12:39:00 -06:00
Aiden Cline 98be9a2078 fix: family 2026-02-12 12:27:16 -06:00
Dax Raad 4aa17d26cb feat(openai): add gpt-5.3-codex-spark model 2026-02-12 13:24:43 -05:00
Aiden Cline 7f96ee576a Merge pull request #880 from Daltonganger/feat/nano-gpt-glm5-original-models
feat(nano-gpt): add GLM 5 original model variants
2026-02-12 12:18:46 -06:00
Aiden Cline bd5ce80e56 Merge pull request #882 from Daltonganger/feat/nano-gpt-add-minimax-m2.5-official
feat(nano-gpt): add MiniMax M2.5 Official model
2026-02-12 12:18:37 -06:00
Daltonganger ed2af4ad45 feat(nano-gpt): add MiniMax M2.5 Official model 2026-02-12 18:07:52 +01:00
Aiden Cline ac0868c886 Merge pull request #881 from Alex-wuhu/dev
add minmax-2.5 on novita
2026-02-12 10:32:50 -06:00
Aiden Cline fdd13245cc Revert "feat(github-copilot): add gpt-5.3-codex model (#857)"
This reverts commit 27abb8a570.
2026-02-12 10:32:15 -06:00
Alex 37c77c58ad Merge branch 'anomalyco:dev' into dev 2026-02-13 00:27:45 +08:00
Alex-wuhu 62ee8129e6 add minimax-m2.5 on novita 2026-02-13 00:23:06 +08:00
Daltonganger 4bc6f07570 fix(nano-gpt): correct GLM-5 dates to 2026-02-11 2026-02-12 17:22:18 +01:00
Aiden Cline bc0336c8ec Merge pull request #878 from cantalupo555/feat/add-openrouter-stepfun-step-3.5-flash
feat: add StepFun Step 3.5 Flash on OpenRouter
2026-02-12 10:13:17 -06:00
Aiden Cline dd78db4dc6 Merge pull request #879 from amankalra172/add-stackit-provider
fix: reorganize STACKIT models with organization prefixes
2026-02-12 10:12:48 -06:00
Daltonganger 4fd32c741d refactor(nano-gpt): consolidate z-ai GLM models under zai-org 2026-02-12 17:11:50 +01:00
Frank c78ca7c132 update zen models 2026-02-12 11:05:41 -05:00
Alex 2a99397516 add GLM5 on novita (#877) 2026-02-12 11:03:42 -05:00
Frank 554440be4f update zen models 2026-02-12 11:01:51 -05:00
Daltonganger eb52a76d11 feat(nano-gpt): add GLM 5 original model variants 2026-02-12 16:48:59 +01:00
amankalra172 c9a7f6c814 fix: reorganize STACKIT models with organization prefixes and correct pricing
- Move models to organization subfolders (Qwen/, cortecs/, google/, etc.)
- Update pricing from EUR to USD (1.09 conversion rate)
- Fix GPT-OSS context limit to 131K tokens
- Add architectural family classifications
- Verify tool_call settings for all models
2026-02-12 14:00:45 +01:00
cantalupo555 e640802d34 feat: add StepFun Step 3.5 Flash (free) on OpenRouter 2026-02-12 08:44:15 -03:00
cantalupo555 c226863912 feat: add StepFun Step 3.5 Flash on OpenRouter 2026-02-12 08:42:37 -03:00
Alex-wuhu 8bcd634743 add GLM5 on novita 2026-02-12 16:26:05 +08:00
Aiden Cline 812cd1763a Merge pull request #873 from juls0730/dev
Create cerebras/llama3.1-8b.toml
2026-02-12 00:40:48 -06:00
城二 11f4ae568e feat(z-ai): New glm-5 model configuration file 2026-02-12 11:23:22 +08:00
juls0730 9f1629a26a Create cerebras/llama3.1-8b.toml 2026-02-11 21:01:08 -06:00
Yunfei He 27abb8a570 feat(github-copilot): add gpt-5.3-codex model (#857)
* feat(github-copilot): add gpt-5.3-codex model

* fix(github-copilot): align gpt-5.3-codex release metadata
2026-02-11 21:53:36 -05:00
Aiden Cline 2aa4a2290e Merge pull request #868 from dpuyosa/venice
Venice: Add GLM-5 model
2026-02-11 19:49:16 -06:00
Aiden Cline c58b36c605 Merge pull request #872 from Track07-cda/openrouter-glm5
OpenRouter: Add GLM-5 and remove Pony Alpha
2026-02-11 19:49:07 -06:00
Aiden Cline e91dbd1fc4 Merge pull request #870 from spiffytech/dev
Add Ollama Cloud support for GLM-5
2026-02-11 19:39:23 -06:00
Track07-cda 8924ee3092 feat(openrouter): add GLM-5 and remove Pony Alpha
Add the Z-AI GLM-5 model definition to the OpenRouter provider and
remove the deprecated Pony Alpha model.
2026-02-12 09:38:12 +08:00
spiffytech fc5b6533d1 Added Ollama Cloud support for GLM-5 2026-02-11 19:57:46 -05:00
Aiden Cline 7a760e3a4f Merge pull request #871 from Kunde21/synthetic_k2_5_nvfp4
Synthetic: Add Kimi -2 5 in NVFP4 remove GLM-4.5
2026-02-11 18:53:56 -06:00
Chad Kunde 38835801b1 synthetic: deprecate GLM-4.5
Model removed from models list as of 12 Feb 2026
2026-02-12 07:27:24 +07:00
Chad Kunde 81103438a3 synthetic: Add NVFP4 variant of Kimi K2.5 2026-02-12 07:25:41 +07:00
dpuyosa 0b0b36eb45 [venice] Add GLM-5 model with 198K context window
- Add ZAI-ORG GLM-5 model configuration to Venice provider
- Supports reasoning, tool calls, structured output
- Text in/out: 198K context, 49.5K output tokens
2026-02-11 22:53:23 +01:00
Aiden Cline b18b73f0a0 Revert "fix: openai advertises a 400k context window, that is just the sum of max input + max output, so real context window is 272k"
This reverts commit ea276d57a7.
2026-02-11 15:24:43 -06:00
Aiden Cline 3cd48b273a Merge pull request #867 from AnishShah1803/nano-gpt/add-glm-5-models
Add GLM 5 to NanoGPT models list
2026-02-11 14:47:57 -06:00
twisted 890992b8ef update release date 2026-02-11 20:37:59 +00:00
twisted a843d84d77 Add GLM 5 to NanoGPT models list 2026-02-11 20:35:41 +00:00
Aiden Cline d89897d07e Merge pull request #866 from Sczr0/dev
Update pricing for ZAI GLM-5
2026-02-11 14:35:23 -06:00
Aiden Cline 1b26792073 fix zai 2026-02-11 14:34:43 -06:00
Aiden Cline 6a0da0a91d Revert "Fixed ZAI GLM-5 pricing to free (0 cost)"
This reverts commit 79d1222e3c.
2026-02-11 14:33:39 -06:00
opencode-agent[bot] 79d1222e3c Fixed ZAI GLM-5 pricing to free (0 cost)
Co-authored-by: rekram1-node <rekram1-node@users.noreply.github.com>
2026-02-11 20:14:03 +00:00
Sylvie Zhang 1ad45b44c2 add readme 2026-02-11 12:13:38 -08:00
弦塔_ 45ba8066df Update cost parameters in glm-5.toml 2026-02-12 04:07:57 +08:00
弦塔_ 4861f14a65 Update cost parameters in glm-5.toml 2026-02-12 04:07:29 +08:00
弦塔_ c83b4e22bd Update cost parameters in glm-5.toml 2026-02-12 03:56:40 +08:00
Sylvie Zhang 44c1ed5aeb additional data cleaning logic 2026-02-11 11:48:32 -08:00
Sylvie Zhang 28c09d83a0 add fallback logic 2026-02-11 11:48:32 -08:00
Sylvie Zhang ea41cbc4ba draft script 2026-02-11 11:48:32 -08:00
Aiden Cline c893ac5f9d Merge pull request #863 from AnishShah1803/nano-gpt/update-Kimi-K2-5-models
Add Kimi K2.5 models to NanoGPT provider
2026-02-11 13:41:43 -06:00
twisted 8e10faf38a set reasoning to true for kimi k2.5 2026-02-11 19:33:12 +00:00
Aiden Cline 4c3a17fbe8 Merge pull request #859 from friendliai/minpeter/add-glm5-friendli
Add zai-org/GLM-5 model to Friendli provider
2026-02-11 13:14:58 -06:00
twisted f7d997e4f0 fix last_updated 2026-02-11 19:08:48 +00:00
twisted 6961c57c86 make open_weights set to true 2026-02-11 19:07:35 +00:00
minpeter e44307c27c Add interleaved reasoning_content to GLM-4.7 and MiniMax-M2.1
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 04:01:29 +09:00
minpeter b9f7907150 Merge remote-tracking branch 'origin/dev' into minpeter/add-glm5-friendli 2026-02-12 04:00:31 +09:00
minpeter bf0ee2a3eb Add interleaved reasoning_content field for GLM-5
GLM models use interleaved reasoning via the reasoning_content field with OpenAI-compatible providers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 03:58:58 +09:00
Aiden Cline b9a73edcdc Merge pull request #862 from hanouticelina/feat/huggingface-glm-5
feat(huggingface): add GLM-5 for Hugging Face provider
2026-02-11 12:45:43 -06:00
Aiden Cline 7ff3be2dab fix: github copilot model discrepencies 2026-02-11 12:40:36 -06:00
twisted 406f82e09f Add Kimi K2.5 models to NanoGPT provider 2026-02-11 18:40:09 +00:00
Celina Hanouti c8fa26624d add GLM-5 for hugging face provider 2026-02-11 19:39:35 +01:00
Aiden Cline ae31005ef3 Merge pull request #830 from amankalra172/add-stackit-provider
feat: add STACKIT provider with 8 AI models
2026-02-11 12:20:47 -06:00
Aiden Cline 0aa7c9f3c2 Merge pull request #852 from zainhas/dev
[Together AI] update output token length to match context length
2026-02-11 12:20:09 -06:00
Aiden Cline 40be65f301 Merge pull request #853 from captain1379/feat/jiekou
Add new models for Jiekou.AI
2026-02-11 12:19:40 -06:00
Aiden Cline 49ab2c0a48 feat: add glm 5 to zai, zhipuai, and zai coding plan 2026-02-11 12:17:49 -06:00
minpeter 7fd96a6c9d Add zai-org/GLM-5 model to Friendli provider
Add GLM-5 model configuration with reasoning, tool calling, and structured output support. Update family pattern inference in generate script to recognize GLM-5 models.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-02-12 03:07:25 +09:00
Aiden Cline fc4027fe98 Merge pull request #856 from josetorres1/add-bedrock-zai-minimax-models
Add GLM 4.7 Family and MiniMax M2.1 to Amazon Bedrock
2026-02-11 11:25:21 -06:00
Aiden Cline b260564060 Merge pull request #855 from dihan-dff-user/dev
Add ZAI coding plan GLM-5 model
2026-02-11 11:24:47 -06:00
opencode-agent[bot] ecd5927bed Removed knowledge field from GLM-5 config
Co-authored-by: rekram1-node <rekram1-node@users.noreply.github.com>
2026-02-11 17:23:31 +00:00
Jose Torres 490381f370 Add GLM 4.7 family and MiniMax M2.1 to Amazon Bedrock provider
- Add GLM-4.7 (zai.glm-4.7): /bin/zsh.60/.20 per 1M tokens
- Add GLM-4.7-Flash (zai.glm-4.7-flash): /bin/zsh.07//bin/zsh.40 per 1M tokens
- Add MiniMax M2.1 (minimax.minimax-m2.1): /bin/zsh.30/.20 per 1M tokens

Pricing sources:
- AWS Bedrock pricing page: https://aws.amazon.com/bedrock/pricing/
- Model IDs confirmed via AWS console/CLI

Related to GH issue #835
2026-02-11 09:51:18 -06:00
dihan 621687e457 Add ZAI coding plan GLM-5 model 2026-02-11 20:38:40 +05:30
captain1379 d5a3bfad90 feat: add new models for Jiekou.AI
- Introduced `claude-opus-4-6`, `qwen3-coder-next` and `gpt-5.1` models with detailed configurations.
- Removed deprecated `qwen2.5-vl-72b-instruct` model.
- Implemented a new script for generating model configurations.
2026-02-11 15:19:40 +08:00
Zain Hasan 310bc174fa update output token length to match context length 2026-02-10 23:05:23 -08:00
Aiden Cline 9fb1233073 Merge pull request #848 from BlockListed/cortecs-glm-models
Add supported z.ai GLM models to cortecs
2026-02-10 20:04:21 -06:00
Aiden Cline 029f13545b Merge pull request #849 from BlockListed/cortecs-minimax-models
Add MiniMax models to cortecs
2026-02-10 20:04:12 -06:00
Aiden Cline 31b1acba5f Merge pull request #850 from cgilly2fast/dev
feat(firmware): kimi and glm models
2026-02-10 20:04:00 -06:00
Aiden Cline 120881916e Merge pull request #851 from anomalyco/fix-models
fix: openai advertises a 400k context window, that is just the sum of max input + max output, so real context window is 272k
2026-02-10 20:03:48 -06:00
Colby Gilbert 05d940ab8d feat(firmware): kimi and glm models 2026-02-10 14:25:46 -08:00
BlockListed 7d250ea857 cortecs add minimax models 2026-02-10 23:13:39 +01:00
BlockListed 82d72e85f8 add supported z.ai GLM models to cortecs 2026-02-10 22:58:22 +01:00
amankalra172 7504dc2947 feat: add STACKIT provider with 8 AI models
Add STACKIT as a new provider with complete model specifications:

Chat Models:
- Llama 3.1 8B Instruct FP8
- Llama 3.3 70B Instruct FP8
- GPT-OSS 120B
- Mistral Nemo Instruct 2407 FP8
- Gemma 3 27B (multimodal)
- Qwen3-VL 235B (vision-language)

Embedding Models:
- E5 Mistral 7B
- Qwen3-VL Embedding 8B (multimodal)

All models include:
- Proper schema compliance (attachment, reasoning, tool_call, etc.)
- Pricing in USD per million tokens
- Context limits and modalities
- Official STACKIT logo with currentColor support

STACKIT is a German sovereign cloud provider offering OpenAI-compatible
AI model serving with open-source models.
2026-02-08 12:35:51 +01:00
samsja f180f49df5 Add Intellect 3 model from Prime Intellect 2026-02-03 23:58:12 -08:00
Matt Silverlock 0ba8852f91 use official ai-gateway-provider package for Cloudflare AI Gateway 2026-02-03 15:41:11 -05:00
Jan Szypulski 22d6a24c7a fix: llama 3.3 last update 2026-01-27 18:00:11 +01:00
Jan Szypulski c7bc5b7c98 fix: corrected logo color and size 2026-01-27 17:59:55 +01:00
Jan Szypulski 2c63a024b3 delete unrecognized model family 2026-01-27 17:04:36 +01:00
Jan Szypulski 2f34ee47ee add cloudferro logo 2026-01-27 16:48:42 +01:00
Jan Szypulski f6cb6631b8 add cloudferro sherlock models 2026-01-27 16:48:28 +01:00
lazy 2b331310b7 fix(qihang-ai): rename provider and fix logo to match standards
- Rename provider from qihang to qihang-ai
- Update logo to use standard size (24x24) and currentColor

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-25 12:34:48 +08:00
Luca Steeb 92269282eb fix: use correct family for gemma and gpt-oss models
- Gemma models now use "gemma" family instead of "gemini"
- GPT OSS models now use "gpt-oss" family instead of "gpt"

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 01:36:29 +00:00
Luca Steeb 6b9b340fbc fix: map llmgateway family to auto
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 01:28:38 +00:00
Luca Steeb e8a6793654 fix: use valid models.dev family enum values
Maps internal family names to valid models.dev families:
- moonshot → kimi
- bytedance → seed
- zai → glm
- nvidia → nemotron

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 01:27:15 +00:00
Luca Steeb b22ff136a8 fix: add required output limit to all models
models.dev schema requires limit.output field.
Defaults to 16384 when not specified.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 01:25:53 +00:00
Luca Steeb e28d4e387f chore: trigger CI 2026-01-23 01:21:06 +00:00
Luca Steeb 09b5dd4d84 refactor: remove scripts/ dir, link to repo script
Removes empty generate.ts file and scripts/ directory.
README now links to llmgateway repo for regeneration.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 01:18:53 +00:00
Luca Steeb 24e575a86e refactor: flatten model structure to models/ directory
Removes provider subdirectories, exports all models directly
to models/ folder for simpler structure.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 01:15:27 +00:00
Luca Steeb 3549abec36 feat: add LLM Gateway provider with 153 models
Add LLM Gateway (llmgateway.io) as a new provider with all supported models
organized by upstream provider subdirectory.

LLM Gateway is an OpenAI-compatible API gateway that provides unified
access to 40+ LLM providers through a single API endpoint.

Directory structure:
  providers/llmgateway/
  ├── provider.toml
  ├── README.md
  ├── scripts/
  │   └── generate.ts
  └── models/
      ├── anthropic/ (16 models)
      ├── openai/ (28 models)
      ├── google/ (19 models)
      ├── zai/ (17 models - GLM, CogView)
      ├── alibaba/ (27 models - Qwen)
      ├── meta/ (12 models - Llama)
      ├── xai/ (9 models - Grok)
      ├── deepseek/ (5 models)
      ├── bytedance/ (6 models - Seed)
      ├── moonshot/ (4 models - Kimi)
      ├── mistral/ (3 models)
      ├── perplexity/ (3 models - Sonar)
      ├── minimax/ (1 model)
      ├── nvidia/ (1 model)
      └── llmgateway/ (2 models - auto, custom)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 01:10:53 +00:00
Jan Szypulski d934e26168 add cloudferro sherlock as provider 2026-01-22 16:11:45 +01:00
lazy 74cb010892 feat(qihang): add Gemini 2.5 Flash and GPT-5.2 models 2026-01-21 15:19:30 +08:00
lazy b465cec21a feat: add QiHang provider with 7 models
- Add QiHang provider configuration (OpenAI-compatible API)
- API endpoint: https://api.qhaigc.net/v1
- Add 7 models:
  - gpt-5.2-codex (/bin/zsh.14/.14)
  - gpt-5-mini (/bin/zsh.04//bin/zsh.29)
  - claude-opus-4-5-20251101 (/bin/zsh.71/.57)
  - claude-sonnet-4-5-20250929 (/bin/zsh.43/.14)
  - claude-haiku-4-5-20251001 (/bin/zsh.14//bin/zsh.71)
  - gemini-3-flash-preview (/bin/zsh.07//bin/zsh.43)
  - gemini-3-pro-preview (/bin/zsh.57/.43)
- All configurations validated with bun validate
2026-01-20 16:45:35 +08:00
yinxulai faa78aa42b feat: add new Qiniu AI models - Claude 3.5/3.7/4.0/4.1/4.5 series, Gemini 2.0/2.5/3.0 series, GPT-5/5.2, Grok 4/4.1 series, and Kling v2-6 2026-01-16 17:46:45 +08:00
yinxulai 79636dec83 fix: add required date fields and default output limits for Qiniu AI models 2026-01-15 10:49:52 +08:00
yinxulai f9983aae19 feat: add Qiniu AI model definitions
- Add 49 OpenAI-compatible model definitions
- Models filtered from Qiniu API with OpenAI protocol support
- Include models from DeepSeek, Qwen, Kimi, GLM, Doubao, MiniMax, etc.
- No pricing information included (aggregation platform)
2026-01-15 10:38:15 +08:00
Aiden Cline b9411cb00c feat: add Qiniu AI provider configuration 2026-01-15 10:06:30 +08:00
Dominik Oswald c35c42fc34 Add Sonar Deep Research model configuration
- Introduce TOML configuration for Perplexity Sonar Deep Research model
- Include token pricing, request fees, and model limits
- Follow OpenCode AI schema conventions for model definitions
2025-10-17 13:12:19 +02:00
Dominik Oswald 8abedde07c Add Perplexity Sonar Deep Research model configuration
- Introduce TOML configuration for Perplexity Sonar Deep Research model
- Include token pricing, request fees, and model limits
2025-10-17 13:10:38 +02:00
2630 changed files with 41985 additions and 4466 deletions
+5 -3
View File
@@ -7,8 +7,10 @@ on:
jobs:
opencode:
if: |
contains(github.event.comment.body, '/oc') ||
contains(github.event.comment.body, '/opencode')
contains(github.event.comment.body, ' /oc') ||
startsWith(github.event.comment.body, '/oc') ||
contains(github.event.comment.body, ' /opencode') ||
startsWith(github.event.comment.body, '/opencode')
runs-on: ubuntu-latest
permissions:
contents: read
@@ -22,4 +24,4 @@ jobs:
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
with:
model: anthropic/claude-sonnet-4-20250514
model: anthropic/claude-sonnet-4-20250514
+4
View File
@@ -1,5 +1,9 @@
.env
.sst
.idea
dist
.DS_Store
node_modules
data/tokenspeed-monitor.sqlite
data/tokenspeed-monitor.sqlite-shm
data/tokenspeed-monitor.sqlite-wal
+19 -1
View File
@@ -31,9 +31,27 @@
## Model Configuration
- Model `id` is **auto-injected** from filename (minus `.toml`) — never put `id` in TOML files
- Same model is duplicated across provider directories with no cross-referencing
- Models may reuse another model's definition via `extends` (see below); otherwise the full definition must be present in the file
- Schema uses `.strict()` — extra fields cause validation errors
### `[extends]` (inheritance between models)
- Syntax — a table at the top of the TOML:
```toml
[extends]
from = "<provider-id>/<model-id>" # required
omit = ["experimental.modes.fast"] # optional, dot-path strings
```
Example: `from = "anthropic/claude-opus-4-6"`
- Resolved at parse time in `generate()`; the final JSON output contains **no** `extends` field — it exists only to cut duplication in the TOMLs
- Merge semantics:
- Plain objects (`[cost]`, `[limit]`, `[modalities]`, `[provider]`, `[experimental]`, …) are **deep-merged**
- Arrays (e.g. `modalities.input`) and primitives are **replaced** wholesale by the child
- Any field the child omits is inherited verbatim from the base
- `omit` runs **after** the merge and deletes each dot-path from the result (used when the child needs to *remove* something the base defines, e.g. a provider-specific experimental mode). Every listed path must exist in the merged model, else an error is thrown. Ancestor tables that become empty as a result are also pruned, so `omit = ["experimental.modes.fast"]` yields no `experimental` key in the final JSON when `fast` was the only mode.
- Chains are allowed (A extends B extends C); cycles throw
- The base model must exist; `[extends.from]` pointing at a missing provider/model is an error
- The `extends` table is stripped before schema validation, so the merged result must still satisfy the strict `Model` schema
### Bedrock Naming Patterns
- Dated models: `-v1:0` suffix (`anthropic.claude-3-5-sonnet-20241022-v1:0.toml`)
- Latest/undated models: bare `-v1` (`anthropic.claude-opus-4-6-v1.toml`)
+45 -1
View File
@@ -120,6 +120,31 @@ output = ["text"] # Supported output modalities
field = "reasoning_content" # Name of the interleaved field "reasoning_content" or "reasoning_details"
```
#### 3a. Reuse an Existing Model with `extends`
For wrapper providers that mirror a model from another provider, prefer reusing the canonical model definition instead of duplicating the whole file.
Use `extends` only for non-first-party wrappers and mirrors. Do not use it inside the actual lab provider directories that act as the canonical source for a model family, for example `providers/anthropic/`, `providers/openai/`, `providers/google/`, `providers/xai/`, `providers/minimax/`, or `providers/moonshot/`.
```toml
[extends]
from = "anthropic/claude-opus-4-6"
omit = ["experimental.modes.fast"]
[provider]
npm = "@ai-sdk/anthropic"
```
Rules:
- `from` must point to another model using `<provider>/<model-id>`.
- `omit` is optional and removes fields after the inherited model and local overrides are merged.
- You can override any top-level model field locally.
- If you override a nested table like `[cost]`, `[limit]`, or `[modalities]`, include the full values needed for that table.
- `id` still comes from the filename; do not add it to the TOML.
Use `extends` when the wrapper model is materially the same as the source model and only differs by a small set of overrides or omitted fields.
#### 4. Submit a Pull Request
1. Fork this repo
@@ -136,9 +161,17 @@ There's a GitHub Action that will automatically validate your submission against
- Values are within acceptable ranges
- TOML syntax is valid
When converting existing wrapper models to `extends`, compare generated output before and after the change:
```bash
bun run compare:migrations
```
This prints a diff for each changed model TOML so you can confirm the generated JSON only changed where you intended.
### Schema Reference
Models must conform to the following schema, as defined in `app/schemas.ts`.
Models must conform to the following schema, as defined in `packages/core/src/schema.ts`.
**Provider Schema:**
@@ -199,6 +232,17 @@ $ bun run dev
And it'll open the frontend at http://localhost:3000
### Manual testing with opencode
You can manually check provider changes with opencode by:
```bash
$ bun install
$ cd packages/web
$ bun run build
$ OPENCODE_MODELS_PATH="dist/_api.json" opencode
```
### Questions?
Open an issue if you need help or have questions about contributing.
+3
View File
@@ -13,6 +13,7 @@
"name": "models.dev",
"version": "0.0.0",
"dependencies": {
"remeda": "^2.33.7",
"zod": "catalog:",
},
"devDependencies": {
@@ -240,6 +241,8 @@
"raw-body": ["raw-body@3.0.0", "", { "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", "iconv-lite": "0.6.3", "unpipe": "1.0.0" } }, "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g=="],
"remeda": ["remeda@2.33.7", "", {}, "sha512-cXlyjevWx5AcslOUEETG4o8XYi9UkoCXcJmj7XhPFVbla+ITuOBxv6ijBrmbeg+ZhzmDThkNdO+iXKUfrJep1w=="],
"router": ["router@2.2.0", "", { "dependencies": { "debug": "^4.4.0", "depd": "^2.0.0", "is-promise": "^4.0.0", "parseurl": "^1.3.3", "path-to-regexp": "^8.0.0" } }, "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ=="],
"safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
+4 -1
View File
@@ -16,8 +16,11 @@
},
"scripts": {
"validate": "bun ./packages/core/script/validate.ts",
"compare:migrations": "bun ./packages/core/script/compare-model-migrations.ts",
"helicone:generate": "bun ./packages/core/script/generate-helicone.ts",
"venice:generate": "bun ./packages/core/script/generate-venice.ts"
"venice:generate": "bun ./packages/core/script/generate-venice.ts",
"vercel:generate": "bun ./packages/core/script/generate-vercel.ts",
"wandb:generate": "bun ./packages/core/script/generate-wandb.ts"
},
"dependencies": {
"@cloudflare/workers-types": "^4.20250801.0",
+1
View File
@@ -4,6 +4,7 @@
"$schema": "https://json.schemastore.org/package.json",
"type": "module",
"dependencies": {
"remeda": "^2.33.7",
"zod": "catalog:"
},
"main": "./src/index.ts",
@@ -0,0 +1,89 @@
#!/usr/bin/env bun
import path from "node:path";
import { cp, mkdir, rm, writeFile } from "node:fs/promises";
import { tmpdir } from "node:os";
import { generate } from "../src/generate.js";
const root = path.join(import.meta.dirname, "..", "..", "..");
const providersPath = path.join(root, "providers");
const diffOutput = await Bun.$`git diff --name-only HEAD -- providers`.cwd(root).text();
const changedProviderPaths = diffOutput
.split("\n")
.filter(Boolean)
.filter((filePath) => /^providers\/[^/]+\/models\/.+\.toml$/.test(filePath));
if (changedProviderPaths.length === 0) {
process.exit(0);
}
const baselineRoot = path.join(tmpdir(), `models-dev-compare-${Date.now()}`);
await mkdir(baselineRoot, { recursive: true });
try {
const baselineProvidersPath = path.join(baselineRoot, "providers");
await cp(providersPath, baselineProvidersPath, { recursive: true });
for (const filePath of changedProviderPaths) {
const tempFilePath = path.join(baselineRoot, filePath);
const show = Bun.spawn(["git", "show", `HEAD:${filePath}`], {
cwd: root,
stdout: "pipe",
stderr: "pipe",
});
const exitCode = await show.exited;
if (exitCode !== 0) {
await rm(tempFilePath, { force: true });
continue;
}
const contents = await new Response(show.stdout).text();
await mkdir(path.dirname(tempFilePath), { recursive: true });
await writeFile(tempFilePath, contents);
}
const before = await generate(baselineProvidersPath);
const after = await generate(providersPath);
for (const filePath of changedProviderPaths) {
const match = /^providers\/([^/]+)\/models\/(.+)\.toml$/.exec(filePath);
if (!match) continue;
const [, providerID, modelID] = match;
const beforeModel = before[providerID]?.models[modelID];
const afterModel = after[providerID]?.models[modelID];
const beforeJson = JSON.stringify(beforeModel, null, 2);
const afterJson = JSON.stringify(afterModel, null, 2);
if (beforeJson === afterJson) {
continue;
}
const beforeFilePath = path.join(baselineRoot, "before.json");
const afterFilePath = path.join(baselineRoot, "after.json");
await writeFile(beforeFilePath, `${beforeJson}\n`);
await writeFile(afterFilePath, `${afterJson}\n`);
const diff = Bun.spawn(
[
"diff",
"-u",
"-L",
`${filePath} (before)`,
"-L",
`${filePath} (after)`,
beforeFilePath,
afterFilePath,
],
{
stdout: "pipe",
stderr: "pipe",
},
);
const output = await new Response(diff.stdout).text();
process.stdout.write(output);
}
} finally {
await rm(baselineRoot, { recursive: true, force: true });
}
+1 -1
View File
@@ -48,8 +48,8 @@ const familyPatterns: [RegExp, string][] = [
[/llama-4/i, "llama-4"],
[/qwen3/i, "qwen3"],
[/deepseek-r1/i, "deepseek-r1"],
[/exaone/i, "exaone"],
[/glm-4/i, "glm-4"],
[/glm-5/i, "glm"],
];
function inferFamily(modelId: string, modelName: string): string | undefined {
+54 -4
View File
@@ -35,6 +35,31 @@ type OllamaModel = Omit<Model, "id"> & {
limit: Model["limit"] & { output?: number };
};
type ComparableModel = Pick<Model,
| "name"
| "attachment"
| "reasoning"
| "tool_call"
| "knowledge"
| "open_weights"
| "modalities"
> & {
limit: Pick<Model["limit"], "context">;
};
function normalizeForComparison(model: Omit<Model, "id">): ComparableModel {
return {
name: model.name,
attachment: model.attachment,
reasoning: model.reasoning,
tool_call: model.tool_call,
knowledge: model.knowledge,
open_weights: model.open_weights,
limit: { context: model.limit.context },
modalities: model.modalities,
};
}
const OllamaTagsResponse = z.object({
models: z.array(
z.object({
@@ -137,20 +162,34 @@ for (const modelName of modelNames) {
modelsData.push({ name: modelName, data: showParsed.data });
}
console.log(`Fetched all models. Writing new files...`);
console.log(`Fetched all models. Syncing files...`);
const existingFiles = Array.from(new Bun.Glob("*.toml").scanSync(modelsDir));
const existingModelNames = new Set(existingFiles.map((f) => f.replace(/\.toml$/, "")));
const apiModelNames = new Set(modelNames);
let deleted = 0;
for (const existingName of existingModelNames) {
if (!apiModelNames.has(existingName)) {
const filePath = path.join(modelsDir, modelFileName(existingName));
await Bun.file(filePath).delete();
console.log(`Deleted: ${modelFileName(existingName)}`);
deleted++;
}
}
let created = 0;
let skipped = 0;
for (const { name, data } of modelsData) {
const fileName = modelFileName(name);
const filePath = path.join(modelsDir, fileName);
let existingData: Omit<Model, "id"> | null;
let existingData: Omit<Model, "id"> | null = null;
try {
const existingToml = await Bun.file(filePath).text();
existingData = Bun.TOML.parse(existingToml) as Omit<Model, "id">;
} catch {
// File doesn't exist
existingData = null;
}
const family = existingData?.family ?? (data.details.family as ModelFamily);
@@ -179,9 +218,20 @@ for (const { name, data } of modelsData) {
},
};
if (existingData) {
const normalizedExisting = normalizeForComparison(existingData);
const normalizedIncoming = normalizeForComparison(ollamaModel);
if (Bun.deepEquals(normalizedExisting, normalizedIncoming)) {
console.log(`Skipped (no changes): ${fileName}`);
skipped++;
continue;
}
}
await Bun.write(filePath, generateToml(name, ollamaModel));
console.log(`Created: ${fileName}`);
created++;
}
console.log(`\nDone. Created ${created}`);
console.log(`\nDone. Created: ${created}, Skipped: ${skipped}, Deleted: ${deleted}`);
+60 -37
View File
@@ -3,30 +3,11 @@
import { z } from "zod";
import path from "node:path";
import { readdir } from "node:fs/promises";
import * as readline from "node:readline";
import { ModelFamilyValues } from "../src/family.js";
// Venice API endpoint
const API_ENDPOINT = "https://api.venice.ai/api/v1/models?type=text";
async function promptForApiKey(): Promise<string | null> {
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
return new Promise((resolve) => {
rl.question(
"Enter Venice API key to include alpha models (or press Enter to skip): ",
(answer) => {
rl.close();
const trimmed = answer.trim();
resolve(trimmed.length > 0 ? trimmed : null);
},
);
});
}
// Zod schemas for API response validation
const Capabilities = z
.object({
@@ -43,12 +24,25 @@ const Capabilities = z
})
.passthrough();
const PricingTier = z.object({ usd: z.number(), diem: z.number().optional() }).passthrough();
const ExtendedPricing = z
.object({
context_token_threshold: z.number(),
input: PricingTier,
output: PricingTier,
cache_input: PricingTier.optional(),
cache_write: PricingTier.optional(),
})
.passthrough();
const Pricing = z
.object({
input: z.object({ usd: z.number(), diem: z.number().optional() }).passthrough(),
output: z.object({ usd: z.number(), diem: z.number().optional() }).passthrough(),
cache_input: z.object({ usd: z.number(), diem: z.number().optional() }).passthrough().optional(),
cache_write: z.object({ usd: z.number(), diem: z.number().optional() }).passthrough().optional(),
input: PricingTier,
output: PricingTier,
cache_input: PricingTier.optional(),
cache_write: PricingTier.optional(),
extended: ExtendedPricing.optional(),
})
.passthrough();
@@ -56,6 +50,7 @@ const ModelSpec = z
.object({
pricing: Pricing.optional(),
availableContextTokens: z.number(),
maxCompletionTokens: z.number().optional(),
capabilities: Capabilities,
constraints: z.any().optional(),
name: z.string(),
@@ -162,6 +157,12 @@ interface ExistingModel {
reasoning?: number;
cache_read?: number;
cache_write?: number;
context_over_200k?: {
input?: number;
output?: number;
cache_read?: number;
cache_write?: number;
};
};
limit?: {
context?: number;
@@ -213,6 +214,12 @@ interface MergedModel {
output: number;
cache_read?: number;
cache_write?: number;
context_over_200k?: {
input: number;
output: number;
cache_read?: number;
cache_write?: number;
};
};
limit: {
context: number;
@@ -232,15 +239,9 @@ function mergeModel(
const caps = spec.capabilities;
const contextTokens = spec.availableContextTokens;
const proposedOutputTokens = Math.floor(contextTokens / 4);
const outputTokens =
existing?.limit?.output !== undefined && existing.limit.output < proposedOutputTokens
? existing.limit.output
: proposedOutputTokens
const outputTokens = spec.maxCompletionTokens ?? Math.floor(contextTokens / 4);
const openWeights = spec.modelSource
? spec.modelSource.toLowerCase().includes("huggingface")
: spec.privacy === "private";
const openWeights = spec.modelSource?.toLowerCase().includes("huggingface") ?? false;
const inputModalities = buildInputModalities(caps);
@@ -285,6 +286,16 @@ function mergeModel(
...(spec.pricing.cache_input && { cache_read: spec.pricing.cache_input.usd }),
...(spec.pricing.cache_write && { cache_write: spec.pricing.cache_write.usd }),
};
// Extended pricing maps to context_over_200k
if (spec.pricing.extended) {
merged.cost.context_over_200k = {
input: spec.pricing.extended.input.usd,
output: spec.pricing.extended.output.usd,
...(spec.pricing.extended.cache_input && { cache_read: spec.pricing.extended.cache_input.usd }),
...(spec.pricing.extended.cache_write && { cache_write: spec.pricing.extended.cache_write.usd }),
};
}
}
const inferred = inferFamily(apiModel.id, spec.name);
@@ -352,6 +363,19 @@ function formatToml(model: MergedModel): string {
if (model.cost.cache_write !== undefined) {
lines.push(`cache_write = ${model.cost.cache_write}`);
}
if (model.cost.context_over_200k) {
lines.push("");
lines.push(`[cost.context_over_200k]`);
lines.push(`input = ${model.cost.context_over_200k.input}`);
lines.push(`output = ${model.cost.context_over_200k.output}`);
if (model.cost.context_over_200k.cache_read !== undefined) {
lines.push(`cache_read = ${model.cost.context_over_200k.cache_read}`);
}
if (model.cost.context_over_200k.cache_write !== undefined) {
lines.push(`cache_write = ${model.cost.context_over_200k.cache_write}`);
}
}
}
// Limit section
@@ -414,6 +438,10 @@ function detectChanges(
compare("cost.output", existing.cost?.output, merged.cost?.output);
compare("cost.cache_read", existing.cost?.cache_read, merged.cost?.cache_read);
compare("cost.cache_write", existing.cost?.cache_write, merged.cost?.cache_write);
compare("cost.context_over_200k.input", existing.cost?.context_over_200k?.input, merged.cost?.context_over_200k?.input);
compare("cost.context_over_200k.output", existing.cost?.context_over_200k?.output, merged.cost?.context_over_200k?.output);
compare("cost.context_over_200k.cache_read", existing.cost?.context_over_200k?.cache_read, merged.cost?.context_over_200k?.cache_read);
compare("cost.context_over_200k.cache_write", existing.cost?.context_over_200k?.cache_write, merged.cost?.context_over_200k?.cache_write);
compare("limit.context", existing.limit?.context, merged.limit.context);
compare("limit.output", existing.limit?.output, merged.limit.output);
compare("modalities.input", existing.modalities?.input, merged.modalities.input);
@@ -435,7 +463,7 @@ async function main() {
"models",
);
// Check for API key from CLI argument, environment, or prompt
// Check for API key from CLI argument or environment variable
let apiKey: string | null = null;
// Check CLI args for --api-key=xxx or --api-key xxx
@@ -454,11 +482,6 @@ async function main() {
apiKey = process.env.VENICE_API_KEY ?? null;
}
// Prompt if still no key
if (!apiKey) {
apiKey = await promptForApiKey();
}
const includeAlpha = apiKey !== null;
if (dryRun) {
+589
View File
@@ -0,0 +1,589 @@
#!/usr/bin/env bun
/**
* Generates Vercel model TOML files from the AI Gateway API.
*
* Flags:
* --dry-run: Preview changes without writing files
* --new-only: Only create new models, skip updating existing ones
*/
import { z } from "zod";
import path from "node:path";
import { mkdir } from "node:fs/promises";
import { ModelFamilyValues } from "../src/family.js";
const API_ENDPOINT = "https://ai-gateway.vercel.sh/v1/models";
enum ModelType {
Language = "language",
Embedding = "embedding",
Image = "image",
Video = "video",
Reranking = "reranking",
}
enum SkipZeroFields {
LimitContext = "limit.context",
LimitInput = "limit.input",
LimitOutput = "limit.output",
}
const PricingTier = z.object({
cost: z.string(),
min: z.number(),
max: z.number().optional(),
});
const Pricing = z.object({
input: z.string().optional(),
output: z.string().optional(),
input_cache_read: z.string().optional(),
input_cache_write: z.string().optional(),
input_tiers: z.array(PricingTier).optional(),
output_tiers: z.array(PricingTier).optional(),
input_cache_read_tiers: z.array(PricingTier).optional(),
input_cache_write_tiers: z.array(PricingTier).optional(),
}).passthrough();
const VercelModel = z.object({
id: z.string(),
name: z.string(),
created: z.number(),
released: z.number().optional(),
context_window: z.number(),
max_tokens: z.number(),
type: z.nativeEnum(ModelType),
tags: z.array(z.string()).optional().default([]),
pricing: Pricing.optional(),
}).passthrough();
const VercelResponse = z.object({
data: z.array(VercelModel),
}).passthrough();
interface ExistingModel {
name?: string;
family?: string;
attachment?: boolean;
reasoning?: boolean;
tool_call?: boolean;
structured_output?: boolean;
temperature?: boolean;
knowledge?: string;
release_date?: string;
last_updated?: string;
open_weights?: boolean;
interleaved?: boolean | { field: string };
status?: string;
cost?: {
input?: number;
output?: number;
cache_read?: number;
cache_write?: number;
};
limit?: {
context?: number;
input?: number;
output?: number;
};
modalities?: {
input?: string[];
output?: string[];
};
}
interface MergedModel {
name: string;
family?: string;
attachment: boolean;
reasoning: boolean;
tool_call: boolean;
structured_output?: boolean;
temperature: boolean;
knowledge?: string;
release_date: string;
last_updated: string;
open_weights: boolean;
interleaved?: boolean | { field: string };
status?: string;
cost?: {
input: number;
output: number;
cache_read?: number;
cache_write?: number;
};
limit: {
context: number;
input?: number;
output: number;
};
modalities: {
input: string[];
output: string[];
};
}
interface Changes {
field: string;
oldValue: string;
newValue: string;
}
function timestampToDate(timestamp: number): string {
const date = new Date(timestamp * 1000);
return date.toISOString().slice(0, 10);
}
function getTodayDate(): string {
return new Date().toISOString().slice(0, 10);
}
// Number utilities
function formatNumber(n: number): string {
if (n >= 1000) {
return n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "_");
}
return n.toString();
}
function isSubstring(target: string, family: string): boolean {
return target.toLowerCase().includes(family.toLowerCase());
}
function matchesFamily(target: string, family: string): boolean {
const targetLower = target.toLowerCase();
const familyLower = family.toLowerCase();
let familyIdx = 0;
for (let i = 0; i < targetLower.length && familyIdx < familyLower.length; i++) {
if (targetLower[i] === familyLower[familyIdx]) {
familyIdx++;
}
}
return familyIdx === familyLower.length;
}
function inferFamily(modelId: string, modelName: string): string | undefined {
const sortedFamilies = [...ModelFamilyValues].sort((a, b) => b.length - a.length);
// First pass: try exact substring matches
for (const family of sortedFamilies) {
if (isSubstring(modelId, family)) {
return family;
}
}
for (const family of sortedFamilies) {
if (isSubstring(modelName, family)) {
return family;
}
}
// Second pass: fall back to subsequence matching
for (const family of sortedFamilies) {
if (matchesFamily(modelId, family)) {
return family;
}
}
for (const family of sortedFamilies) {
if (matchesFamily(modelName, family)) {
return family;
}
}
return undefined;
}
function buildInputModalities(tags: string[]): string[] {
const mods: string[] = ["text"];
const tagSet = new Set(tags);
if (tagSet.has("vision")) mods.push("image");
if (tagSet.has("file-input")) mods.push("pdf");
return mods;
}
function buildOutputModalities(modelType: ModelType, tags: string[]): string[] {
const mods: string[] = ["text"];
const tagSet = new Set(tags);
if (modelType === ModelType.Image || tagSet.has("image-generation")) {
mods.push("image");
} else if (modelType === ModelType.Video) {
mods.push("video");
}
return mods;
}
async function loadExistingModel(filePath: string): Promise<ExistingModel | null> {
try {
const file = Bun.file(filePath);
if (!(await file.exists())) {
return null;
}
const toml = await import(filePath, { with: { type: "toml" } }).then(
(mod) => mod.default,
);
return toml as ExistingModel;
} catch (e) {
console.warn(`Warning: Failed to parse existing file ${filePath}:`, e);
return null;
}
}
function isOpenAIModel(modelId: string): boolean {
return modelId.startsWith("openai/");
}
function mergeModel(
apiModel: z.infer<typeof VercelModel>,
existing: ExistingModel | null,
): MergedModel {
const tagSet = new Set(apiModel.tags);
const inputModalities = buildInputModalities(apiModel.tags);
const outputModalities = buildOutputModalities(apiModel.type, apiModel.tags);
// Preserve existing values when available (previously manually specified)
const name = existing?.name ?? apiModel.name;
const attachment = existing?.attachment ?? (tagSet.has("vision") || tagSet.has("file-input"));
const reasoning = existing?.reasoning ?? tagSet.has("reasoning");
const toolCall = existing?.tool_call ?? tagSet.has("tool-use");
const openWeights = existing?.open_weights ?? false;
const family = existing?.family ?? inferFamily(apiModel.id, apiModel.name);
const structuredOutput = existing?.structured_output;
const knowledge = existing?.knowledge;
const interleaved = existing?.interleaved;
const status = existing?.status;
// Release date: use API, fallback to existing, then today
const releaseDate = apiModel.released
? timestampToDate(apiModel.released)
: (existing?.release_date ?? getTodayDate());
// Preserve existing limits if API returns 0 (indicates missing/invalid data)
const contextLimit = apiModel.context_window > 0
? apiModel.context_window
: (existing?.limit?.context ?? 0);
const outputLimit = apiModel.max_tokens > 0
? apiModel.max_tokens
: (existing?.limit?.output ?? 0);
const merged: MergedModel = {
name,
family,
attachment,
reasoning,
tool_call: toolCall,
temperature: true,
release_date: releaseDate,
last_updated: getTodayDate(),
open_weights: openWeights,
...(structuredOutput !== undefined && { structured_output: structuredOutput }),
...(knowledge && { knowledge }),
...(interleaved !== undefined && { interleaved }),
...(status && { status }),
limit: {
context: contextLimit,
...(isOpenAIModel(apiModel.id) && contextLimit > outputLimit && { input: contextLimit - outputLimit }),
output: outputLimit,
},
modalities: {
input: inputModalities,
output: outputModalities,
},
};
if (apiModel.pricing) {
const inputPrice = apiModel.pricing.input_tiers?.[0]?.cost ?? apiModel.pricing.input;
const outputPrice = apiModel.pricing.output_tiers?.[0]?.cost ?? apiModel.pricing.output;
const cacheReadPrice = apiModel.pricing.input_cache_read_tiers?.[0]?.cost ?? apiModel.pricing.input_cache_read;
const cacheWritePrice = apiModel.pricing.input_cache_write_tiers?.[0]?.cost ?? apiModel.pricing.input_cache_write;
if (inputPrice && outputPrice) {
merged.cost = {
input: parseFloat(inputPrice) * 1_000_000,
output: parseFloat(outputPrice) * 1_000_000,
...(cacheReadPrice && {
cache_read: parseFloat(cacheReadPrice) * 1_000_000,
}),
...(cacheWritePrice && {
cache_write: parseFloat(cacheWritePrice) * 1_000_000,
}),
};
}
}
return merged;
}
function formatToml(model: MergedModel): string {
const lines: string[] = [];
lines.push(`name = "${model.name.replace(/"/g, '\\"')}"`);
if (model.family) {
lines.push(`family = "${model.family}"`);
}
lines.push(`attachment = ${model.attachment}`);
lines.push(`reasoning = ${model.reasoning}`);
lines.push(`tool_call = ${model.tool_call}`);
if (model.structured_output !== undefined) {
lines.push(`structured_output = ${model.structured_output}`);
}
lines.push(`temperature = ${model.temperature}`);
if (model.knowledge) {
lines.push(`knowledge = "${model.knowledge}"`);
}
lines.push(`release_date = "${model.release_date}"`);
lines.push(`last_updated = "${model.last_updated}"`);
lines.push(`open_weights = ${model.open_weights}`);
if (model.status) {
lines.push(`status = "${model.status}"`);
}
if (model.interleaved !== undefined) {
lines.push("");
if (model.interleaved === true) {
lines.push(`interleaved = true`);
} else if (typeof model.interleaved === "object") {
lines.push(`[interleaved]`);
lines.push(`field = "${model.interleaved.field}"`);
}
}
if (model.cost) {
lines.push("");
lines.push(`[cost]`);
lines.push(`input = ${model.cost.input}`);
lines.push(`output = ${model.cost.output}`);
if (model.cost.cache_read !== undefined) {
lines.push(`cache_read = ${model.cost.cache_read}`);
}
if (model.cost.cache_write !== undefined) {
lines.push(`cache_write = ${model.cost.cache_write}`);
}
}
lines.push("");
lines.push(`[limit]`);
lines.push(`context = ${formatNumber(model.limit.context)}`);
if (model.limit.input !== undefined) {
lines.push(`input = ${formatNumber(model.limit.input)}`);
}
lines.push(`output = ${formatNumber(model.limit.output)}`);
lines.push("");
lines.push(`[modalities]`);
lines.push(`input = [${model.modalities.input.map((m) => `"${m}"`).join(", ")}]`);
lines.push(`output = [${model.modalities.output.map((m) => `"${m}"`).join(", ")}]`);
return lines.join("\n") + "\n";
}
function detectChanges(
existing: ExistingModel | null,
merged: MergedModel,
): Changes[] {
if (!existing) return [];
const changes: Changes[] = [];
const EPSILON = 0.001; // price diff to ignore (per million tokens)
const shouldSkipZero = (field: string, oldVal: unknown, newVal: unknown): boolean => {
if (!Object.values(SkipZeroFields).includes(field as SkipZeroFields)) {
return false;
}
return (typeof oldVal === "number" && oldVal === 0) || (typeof newVal === "number" && newVal === 0);
};
const formatValue = (val: unknown): string => {
if (typeof val === "number") return formatNumber(val);
if (Array.isArray(val)) return `[${val.join(", ")}]`;
if (val === undefined) return "(none)";
return String(val);
};
const isMaterialPriceDiff = (oldPrice: unknown, newPrice: unknown): boolean => {
// 0 → undefined is not material (cost removed)
if (oldPrice === 0 && newPrice === undefined) return false;
if (oldPrice !== undefined && newPrice !== undefined) {
return Math.abs((oldPrice as number) - (newPrice as number)) > EPSILON;
}
return oldPrice !== newPrice;
};
const compare = (field: string, oldVal: unknown, newVal: unknown) => {
if (shouldSkipZero(field, oldVal, newVal)) return;
const isDiff = field.startsWith("cost.")
? isMaterialPriceDiff(oldVal, newVal)
: JSON.stringify(oldVal) !== JSON.stringify(newVal);
if (isDiff) {
changes.push({
field,
oldValue: formatValue(oldVal),
newValue: formatValue(newVal),
});
}
};
compare("name", existing.name, merged.name);
compare("family", existing.family, merged.family);
compare("attachment", existing.attachment, merged.attachment);
compare("reasoning", existing.reasoning, merged.reasoning);
compare("tool_call", existing.tool_call, merged.tool_call);
compare("structured_output", existing.structured_output, merged.structured_output);
compare("open_weights", existing.open_weights, merged.open_weights);
compare("release_date", existing.release_date, merged.release_date);
compare("cost.input", existing.cost?.input, merged.cost?.input);
compare("cost.output", existing.cost?.output, merged.cost?.output);
compare("cost.cache_read", existing.cost?.cache_read, merged.cost?.cache_read);
compare("cost.cache_write", existing.cost?.cache_write, merged.cost?.cache_write);
compare("limit.context", existing.limit?.context, merged.limit.context);
compare("limit.input", existing.limit?.input, merged.limit.input);
compare("limit.output", existing.limit?.output, merged.limit.output);
compare("modalities.input", existing.modalities?.input, merged.modalities.input);
return changes;
}
async function main() {
const args = process.argv.slice(2);
const dryRun = args.includes("--dry-run");
const newOnly = args.includes("--new-only");
const modelsDir = path.join(
import.meta.dirname,
"..",
"..",
"..",
"providers",
"vercel",
"models",
);
console.log(`${dryRun ? "[DRY RUN] " : ""}${newOnly ? "[NEW ONLY] " : ""}Fetching Vercel models from API...`);
const res = await fetch(API_ENDPOINT);
if (!res.ok) {
console.error(`Failed to fetch API: ${res.status} ${res.statusText}`);
process.exit(1);
}
const json = await res.json();
const parsed = VercelResponse.safeParse(json);
if (!parsed.success) {
console.error("Invalid API response:", parsed.error.errors);
process.exit(1);
}
const apiModels = parsed.data.data;
const existingFiles = new Set<string>();
try {
for await (const file of new Bun.Glob("**/*.toml").scan({
cwd: modelsDir,
absolute: false,
})) {
existingFiles.add(file);
}
} catch {
}
console.log(`Found ${apiModels.length} models in API, ${existingFiles.size} existing files\n`);
const apiModelIds = new Set<string>();
let created = 0;
let updated = 0;
let unchanged = 0;
for (const apiModel of apiModels) {
// Skip these since OpenCode does not support image / video / reranking yet
if (
apiModel.type === ModelType.Image ||
apiModel.type === ModelType.Video ||
apiModel.type === ModelType.Reranking
) {
continue;
}
const relativePath = `${apiModel.id}.toml`;
const filePath = path.join(modelsDir, relativePath);
const dirPath = path.dirname(filePath);
apiModelIds.add(relativePath);
const existing = await loadExistingModel(filePath);
const merged = mergeModel(apiModel, existing);
const tomlContent = formatToml(merged);
if (existing === null) {
created++;
if (dryRun) {
console.log(`[DRY RUN] Would create: ${relativePath}`);
console.log(` name = "${merged.name}"`);
if (merged.family) {
console.log(` family = "${merged.family}" (inferred)`);
}
console.log("");
} else {
await mkdir(dirPath, { recursive: true });
await Bun.write(filePath, tomlContent);
console.log(`Created: ${relativePath}`);
}
} else {
if (newOnly) {
unchanged++;
continue;
}
const changes = detectChanges(existing, merged);
if (changes.length > 0) {
updated++;
if (dryRun) {
console.log(`[DRY RUN] Would update: ${relativePath}`);
} else {
await mkdir(dirPath, { recursive: true });
await Bun.write(filePath, tomlContent);
console.log(`Updated: ${relativePath}`);
}
for (const change of changes) {
console.log(` ${change.field}: ${change.oldValue}${change.newValue}`);
}
console.log("");
} else {
unchanged++;
}
}
}
const orphaned: string[] = [];
for (const file of existingFiles) {
if (!apiModelIds.has(file)) {
orphaned.push(file);
console.log(`Warning: Orphaned file (not in API): ${file}`);
}
}
console.log("");
if (dryRun) {
console.log(
`Summary: ${created} would be created, ${updated} would be updated, ${unchanged} unchanged, ${orphaned.length} orphaned`,
);
} else {
console.log(
`Summary: ${created} created, ${updated} updated, ${unchanged} unchanged, ${orphaned.length} orphaned`,
);
}
}
await main();
+525
View File
@@ -0,0 +1,525 @@
#!/usr/bin/env bun
import path from "node:path";
import { mkdir } from "node:fs/promises";
import { z } from "zod";
import { ModelFamilyValues } from "../src/family.js";
const API_ENDPOINT = "https://trace.wandb.ai/inference/analysis/artificialanalysis/models";
const Pricing = z
.object({
prompt: z.string().optional(),
completion: z.string().optional(),
image: z.string().optional(),
request: z.string().optional(),
input_cache_reads: z.string().optional(),
input_cache_writes: z.string().optional(),
})
.passthrough();
const WandbModel = z
.object({
id: z.string(),
name: z.string(),
created: z.number(),
input_modalities: z.array(z.string()),
output_modalities: z.array(z.string()),
context_length: z.number(),
max_output_length: z.number(),
pricing: Pricing.optional(),
supported_sampling_parameters: z.array(z.string()).default([]),
supported_features: z.array(z.string()).default([]),
})
.passthrough();
const WandbResponse = z
.object({
data: z.array(WandbModel),
})
.strict();
interface ExistingModel {
name?: string;
family?: string;
attachment?: boolean;
reasoning?: boolean;
tool_call?: boolean;
structured_output?: boolean;
temperature?: boolean;
knowledge?: string;
release_date?: string;
last_updated?: string;
open_weights?: boolean;
interleaved?: boolean | { field: string };
status?: string;
cost?: {
input?: number;
output?: number;
cache_read?: number;
cache_write?: number;
};
limit?: {
context?: number;
input?: number;
output?: number;
};
modalities?: {
input?: string[];
output?: string[];
};
}
interface MergedModel {
name: string;
family?: string;
attachment: boolean;
reasoning: boolean;
tool_call: boolean;
structured_output?: boolean;
temperature: boolean;
knowledge?: string;
release_date: string;
last_updated: string;
open_weights: boolean;
interleaved?: boolean | { field: string };
status?: string;
cost?: {
input: number;
output: number;
cache_read?: number;
cache_write?: number;
};
limit: {
context: number;
output: number;
};
modalities: {
input: Array<"text" | "audio" | "image" | "video" | "pdf">;
output: Array<"text" | "audio" | "image" | "video" | "pdf">;
};
}
interface Changes {
field: string;
oldValue: string;
newValue: string;
}
type SupportedModality = "text" | "audio" | "image" | "video" | "pdf";
const modalityMap: Record<string, SupportedModality | undefined> = {
text: "text",
image: "image",
audio: "audio",
video: "video",
pdf: "pdf",
file: "pdf",
files: "pdf",
};
const openWeightsPrefixes = new Set([
"deepseek-ai/",
"meta-llama/",
"microsoft/",
"MiniMaxAI/",
"moonshotai/",
"nvidia/",
"OpenPipe/",
"Qwen/",
"zai-org/",
]);
function timestampToDate(timestamp: number): string {
return new Date(timestamp * 1000).toISOString().slice(0, 10);
}
function getTodayDate(): string {
return new Date().toISOString().slice(0, 10);
}
function formatNumber(n: number): string {
if (n >= 1000) {
return n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "_");
}
return n.toString();
}
function formatDecimal(n: number): string {
return Number(n.toFixed(6)).toString();
}
function priceToPerMillion(value: string): number {
return Number((parseFloat(value) * 1_000_000).toFixed(6));
}
function isSubstring(target: string, family: string): boolean {
return target.toLowerCase().includes(family.toLowerCase());
}
function matchesFamily(target: string, family: string): boolean {
const targetLower = target.toLowerCase();
const familyLower = family.toLowerCase();
let familyIdx = 0;
for (let i = 0; i < targetLower.length && familyIdx < familyLower.length; i++) {
if (targetLower[i] === familyLower[familyIdx]) {
familyIdx++;
}
}
return familyIdx === familyLower.length;
}
function inferFamily(modelId: string, modelName: string): string | undefined {
const sortedFamilies = [...ModelFamilyValues].sort((a, b) => b.length - a.length);
for (const family of sortedFamilies) {
if (isSubstring(modelId, family) || isSubstring(modelName, family)) {
return family;
}
}
for (const family of sortedFamilies) {
if (matchesFamily(modelId, family) || matchesFamily(modelName, family)) {
return family;
}
}
return undefined;
}
function normalizeName(apiModel: z.infer<typeof WandbModel>): string {
const stripped = apiModel.name.replace(/^[^:]+:\s*/, "").trim();
return stripped || path.basename(apiModel.id);
}
function inferReasoning(apiModel: z.infer<typeof WandbModel>): boolean {
const text = `${apiModel.id} ${apiModel.name}`.toLowerCase();
return text.includes("thinking") || /\br1\b/.test(text) || text.includes("reasoning");
}
function inferOpenWeights(modelId: string): boolean {
for (const prefix of openWeightsPrefixes) {
if (modelId.startsWith(prefix)) {
return true;
}
}
return false;
}
function normalizeModalities(values: string[]): SupportedModality[] {
const normalized = values
.map((value) => modalityMap[value.toLowerCase()])
.filter((value): value is SupportedModality => value !== undefined);
return [...new Set(normalized)];
}
async function loadExistingModel(filePath: string): Promise<ExistingModel | null> {
try {
const file = Bun.file(filePath);
if (!(await file.exists())) {
return null;
}
const toml = await import(filePath, { with: { type: "toml" } }).then((mod) => mod.default);
return toml as ExistingModel;
} catch (cause) {
console.warn(`Warning: Failed to parse existing file ${filePath}:`, cause);
return null;
}
}
function mergeModel(
apiModel: z.infer<typeof WandbModel>,
existing: ExistingModel | null,
): MergedModel {
const featureSet = new Set(apiModel.supported_features);
const samplingSet = new Set(apiModel.supported_sampling_parameters);
const inputModalities = normalizeModalities(apiModel.input_modalities);
const outputModalities = normalizeModalities(apiModel.output_modalities);
const merged: MergedModel = {
name: existing?.name ?? normalizeName(apiModel),
family: existing?.family ?? inferFamily(apiModel.id, apiModel.name),
attachment: existing?.attachment ?? inputModalities.some((m) => m !== "text"),
reasoning: existing?.reasoning ?? inferReasoning(apiModel),
tool_call: existing?.tool_call ?? featureSet.has("tools"),
temperature: existing?.temperature ?? samplingSet.has("temperature"),
release_date: existing?.release_date ?? timestampToDate(apiModel.created),
last_updated: getTodayDate(),
open_weights: existing?.open_weights ?? inferOpenWeights(apiModel.id),
...(existing?.structured_output !== undefined
? { structured_output: existing.structured_output }
: featureSet.has("structured_outputs")
? { structured_output: true }
: {}),
...(existing?.knowledge ? { knowledge: existing.knowledge } : {}),
...(existing?.interleaved !== undefined ? { interleaved: existing.interleaved } : {}),
...(existing?.status ? { status: existing.status } : {}),
limit: {
context: apiModel.context_length > 0 ? apiModel.context_length : (existing?.limit?.context ?? 0),
output: apiModel.max_output_length > 0
? apiModel.max_output_length
: (existing?.limit?.output ?? 0),
},
modalities: {
input: inputModalities.length > 0
? inputModalities
: ((existing?.modalities?.input as SupportedModality[] | undefined) ?? ["text"]),
output: outputModalities.length > 0
? outputModalities
: ((existing?.modalities?.output as SupportedModality[] | undefined) ?? ["text"]),
},
};
const prompt = apiModel.pricing?.prompt;
const completion = apiModel.pricing?.completion;
const cacheRead = apiModel.pricing?.input_cache_reads;
const cacheWrite = apiModel.pricing?.input_cache_writes;
if (prompt && completion) {
merged.cost = {
input: priceToPerMillion(prompt),
output: priceToPerMillion(completion),
...(cacheRead && parseFloat(cacheRead) > 0
? { cache_read: priceToPerMillion(cacheRead) }
: {}),
...(cacheWrite && parseFloat(cacheWrite) > 0
? { cache_write: priceToPerMillion(cacheWrite) }
: {}),
};
} else if (existing?.cost?.input !== undefined && existing.cost.output !== undefined) {
merged.cost = {
input: existing.cost.input,
output: existing.cost.output,
...(existing.cost.cache_read !== undefined ? { cache_read: existing.cost.cache_read } : {}),
...(existing.cost.cache_write !== undefined ? { cache_write: existing.cost.cache_write } : {}),
};
}
return merged;
}
function formatToml(model: MergedModel): string {
const lines: string[] = [];
lines.push(`name = "${model.name.replace(/"/g, '\\"')}"`);
if (model.family) {
lines.push(`family = "${model.family}"`);
}
lines.push(`release_date = "${model.release_date}"`);
lines.push(`last_updated = "${model.last_updated}"`);
lines.push(`attachment = ${model.attachment}`);
lines.push(`reasoning = ${model.reasoning}`);
if (model.structured_output !== undefined) {
lines.push(`structured_output = ${model.structured_output}`);
}
lines.push(`temperature = ${model.temperature}`);
lines.push(`tool_call = ${model.tool_call}`);
if (model.knowledge) {
lines.push(`knowledge = "${model.knowledge}"`);
}
lines.push(`open_weights = ${model.open_weights}`);
if (model.status) {
lines.push(`status = "${model.status}"`);
}
if (model.interleaved !== undefined) {
lines.push("");
if (model.interleaved === true) {
lines.push("interleaved = true");
} else {
lines.push("[interleaved]");
lines.push(`field = "${model.interleaved.field}"`);
}
}
if (model.cost) {
lines.push("");
lines.push("[cost]");
lines.push(`input = ${formatDecimal(model.cost.input)}`);
lines.push(`output = ${formatDecimal(model.cost.output)}`);
if (model.cost.cache_read !== undefined) {
lines.push(`cache_read = ${formatDecimal(model.cost.cache_read)}`);
}
if (model.cost.cache_write !== undefined) {
lines.push(`cache_write = ${formatDecimal(model.cost.cache_write)}`);
}
}
lines.push("");
lines.push("[limit]");
lines.push(`context = ${formatNumber(model.limit.context)}`);
lines.push(`output = ${formatNumber(model.limit.output)}`);
lines.push("");
lines.push("[modalities]");
lines.push(`input = [${model.modalities.input.map((m) => `"${m}"`).join(", ")}]`);
lines.push(`output = [${model.modalities.output.map((m) => `"${m}"`).join(", ")}]`);
return `${lines.join("\n")}\n`;
}
function detectChanges(existing: ExistingModel | null, merged: MergedModel): Changes[] {
if (!existing) {
return [];
}
const changes: Changes[] = [];
const epsilon = 0.001;
const formatValue = (value: unknown): string => {
if (typeof value === "number") return formatNumber(value);
if (Array.isArray(value)) return `[${value.join(", ")}]`;
if (value === undefined) return "(none)";
return String(value);
};
const compare = (field: string, oldValue: unknown, newValue: unknown) => {
const changed = field.startsWith("cost.")
? (
oldValue === undefined && newValue === undefined
? false
: oldValue === undefined || newValue === undefined
? true
: Math.abs((oldValue as number) - (newValue as number)) > epsilon
)
: JSON.stringify(oldValue) !== JSON.stringify(newValue);
if (changed) {
changes.push({
field,
oldValue: formatValue(oldValue),
newValue: formatValue(newValue),
});
}
};
compare("name", existing.name, merged.name);
compare("family", existing.family, merged.family);
compare("release_date", existing.release_date, merged.release_date);
compare("attachment", existing.attachment, merged.attachment);
compare("reasoning", existing.reasoning, merged.reasoning);
compare("structured_output", existing.structured_output, merged.structured_output);
compare("temperature", existing.temperature, merged.temperature);
compare("tool_call", existing.tool_call, merged.tool_call);
compare("open_weights", existing.open_weights, merged.open_weights);
compare("cost.input", existing.cost?.input, merged.cost?.input);
compare("cost.output", existing.cost?.output, merged.cost?.output);
compare("cost.cache_read", existing.cost?.cache_read, merged.cost?.cache_read);
compare("cost.cache_write", existing.cost?.cache_write, merged.cost?.cache_write);
compare("limit.context", existing.limit?.context, merged.limit.context);
compare("limit.output", existing.limit?.output, merged.limit.output);
compare("modalities.input", existing.modalities?.input, merged.modalities.input);
compare("modalities.output", existing.modalities?.output, merged.modalities.output);
return changes;
}
async function main() {
const args = process.argv.slice(2);
const dryRun = args.includes("--dry-run");
const newOnly = args.includes("--new-only");
const modelsDir = path.join(import.meta.dirname, "..", "..", "..", "providers", "wandb", "models");
console.log(`${dryRun ? "[DRY RUN] " : ""}${newOnly ? "[NEW ONLY] " : ""}Fetching WandB models from API...`);
const res = await fetch(API_ENDPOINT);
if (!res.ok) {
console.error(`Failed to fetch API: ${res.status} ${res.statusText}`);
process.exit(1);
}
const json = await res.json();
const parsed = WandbResponse.safeParse(json);
if (!parsed.success) {
console.error("Invalid API response:", parsed.error.errors);
process.exit(1);
}
const apiModels = parsed.data.data;
const existingFiles = new Set<string>();
for await (const file of new Bun.Glob("**/*.toml").scan({ cwd: modelsDir, absolute: false })) {
existingFiles.add(file);
}
console.log(`Found ${apiModels.length} models in API, ${existingFiles.size} existing files\n`);
const apiModelIds = new Set<string>();
let created = 0;
let updated = 0;
let unchanged = 0;
for (const apiModel of apiModels) {
const relativePath = `${apiModel.id}.toml`;
const filePath = path.join(modelsDir, relativePath);
const dirPath = path.dirname(filePath);
apiModelIds.add(relativePath);
const existing = await loadExistingModel(filePath);
const merged = mergeModel(apiModel, existing);
const tomlContent = formatToml(merged);
if (existing === null) {
created++;
if (dryRun) {
console.log(`[DRY RUN] Would create: ${relativePath}`);
console.log(` name = "${merged.name}"`);
if (merged.family) {
console.log(` family = "${merged.family}"`);
}
console.log("");
} else {
await mkdir(dirPath, { recursive: true });
await Bun.write(filePath, tomlContent);
console.log(`Created: ${relativePath}`);
}
continue;
}
if (newOnly) {
unchanged++;
continue;
}
const changes = detectChanges(existing, merged);
if (changes.length === 0) {
unchanged++;
continue;
}
updated++;
if (dryRun) {
console.log(`[DRY RUN] Would update: ${relativePath}`);
} else {
await mkdir(dirPath, { recursive: true });
await Bun.write(filePath, tomlContent);
console.log(`Updated: ${relativePath}`);
}
for (const change of changes) {
console.log(` ${change.field}: ${change.oldValue}${change.newValue}`);
}
console.log("");
}
const orphaned = [...existingFiles].filter((file) => !apiModelIds.has(file));
for (const file of orphaned) {
console.log(`Warning: Orphaned file (not in API): ${file}`);
}
console.log("");
console.log(
dryRun
? `Summary: ${created} would be created, ${updated} would be updated, ${unchanged} unchanged, ${orphaned.length} orphaned`
: `Summary: ${created} created, ${updated} updated, ${unchanged} unchanged, ${orphaned.length} orphaned`,
);
}
await main();
+35 -5
View File
@@ -8,11 +8,13 @@ export const ModelFamilyValues = [
// OpenAI/GPT style
"gpt",
"gpt-codex",
"gpt-codex-spark",
"gpt-codex-mini",
"gpt-pro",
"gpt-mini",
"gpt-nano",
"gpt-oss",
"gpt-image",
// OpenAI o-series (reasoning models)
"o",
@@ -45,6 +47,9 @@ export const ModelFamilyValues = [
// Alibaba Qwen
"qwen",
"qwen3.5",
"qwen3.6",
"qwen-free",
// DeepSeek
"deepseek",
@@ -95,6 +100,7 @@ export const ModelFamilyValues = [
// NVIDIA Nemotron
"nemotron",
"nemotron-free",
// AWS Titan
"titan",
@@ -102,11 +108,16 @@ export const ModelFamilyValues = [
// MiniMax
"minimax",
"minimax-m2.5",
"minimax-m2.7",
"minimax-free",
// Hunyuan
"hunyuan",
// HY
"HY",
// Yi
"yi",
@@ -127,9 +138,6 @@ export const ModelFamilyValues = [
"solar-mini",
"solar-pro",
// Exaone
"exaone",
// Step (StepFun)
"step",
@@ -187,7 +195,6 @@ export const ModelFamilyValues = [
// Pony
"pony",
// Mercury
"mercury",
@@ -196,6 +203,14 @@ export const ModelFamilyValues = [
// Mimo
"mimo",
"mimo-pro",
"mimo-omni",
"mimo-pro-free",
"mimo-omni-free",
"mimo-flash-free",
// Clarifai
"mm-poly",
// Longcat
"longcat",
@@ -364,7 +379,22 @@ export const ModelFamilyValues = [
"sourceful",
// AllenAI
"allenai"
"allenai",
// Writer
"palmyra",
// ALLaM
"allam",
// Canopy Labs
"canopylabs",
// Groq
"groq",
// Elephant
"elephant",
] as const;
export const ModelFamily = z.enum(ModelFamilyValues);
+109 -1
View File
@@ -1,9 +1,31 @@
import path from "path";
import { mergeDeep } from "remeda";
import { z } from "zod";
import { Provider, Model } from "./schema.js";
const ExtendsModel = Model.sourceType()
.partial()
.extend({
extends: z
.object({
from: z
.string()
.regex(/^[^/]+\/[^/]+$/, "Must be in provider/model format"),
omit: z.array(z.string()).optional(),
})
.strict(),
})
.strict();
export async function generate(directory: string) {
const result = {} as Record<string, Provider>;
const result: Record<string, Provider> = {};
const extendsModels: Array<{
providerID: string;
modelID: string;
modelPath: string;
model: z.infer<typeof ExtendsModel>;
}> = [];
for await (const providerPath of new Bun.Glob("*/provider.toml").scan({
cwd: directory,
absolute: true,
@@ -35,6 +57,20 @@ export async function generate(directory: string) {
},
}).then((mod) => mod.default);
toml.id = modelID;
if (toml.extends !== undefined) {
const model = ExtendsModel.safeParse(toml);
if (!model.success) {
model.error.cause = { modelPath, toml };
throw model.error;
}
extendsModels.push({
providerID,
modelID,
modelPath,
model: model.data,
});
continue;
}
const model = Model.safeParse(toml);
if (!model.success) {
model.error.cause = { modelPath, toml };
@@ -45,5 +81,77 @@ export async function generate(directory: string) {
result[providerID] = provider.data;
}
for (const pendingModel of extendsModels) {
const [providerID, modelID] = pendingModel.model.extends.from.split("/");
const baseModel = result[providerID]?.models[modelID];
if (baseModel === undefined) {
throw new Error(`Unable to resolve extends.from: ${pendingModel.model.extends.from}`, {
cause: { modelPath: pendingModel.modelPath, toml: pendingModel.model },
});
}
const { extends: extendsConfig, ...overrides } = pendingModel.model;
const merged: Record<string, unknown> = structuredClone(
mergeDeep(baseModel, overrides),
);
for (const omit of extendsConfig.omit ?? []) {
const parts = omit.split(".");
const parents: Array<{
value: Record<string, unknown>;
key: string;
}> = [];
let current = merged;
for (const part of parts.slice(0, -1)) {
const next = current[part];
if (
next === undefined ||
next === null ||
typeof next !== "object" ||
Array.isArray(next)
) {
throw new Error(`Unable to omit missing path: ${omit}`, {
cause: { modelPath: pendingModel.modelPath, toml: pendingModel.model },
});
}
parents.push({ value: current, key: part });
current = next as Record<string, unknown>;
}
const lastPart = parts.at(-1);
if (lastPart === undefined || !(lastPart in current)) {
throw new Error(`Unable to omit missing path: ${omit}`, {
cause: { modelPath: pendingModel.modelPath, toml: pendingModel.model },
});
}
delete current[lastPart];
for (let index = parents.length - 1; index >= 0; index--) {
const parent = parents[index];
const value = parent?.value[parent.key];
if (
value === null ||
value === undefined ||
typeof value !== "object" ||
Array.isArray(value) ||
Object.keys(value).length > 0
) {
break;
}
delete parent.value[parent.key];
}
}
const model = Model.safeParse(merged);
if (!model.success) {
model.error.cause = { modelPath: pendingModel.modelPath, toml: merged };
throw model.error;
}
result[pendingModel.providerID]!.models[pendingModel.modelID] = model.data;
}
return result;
}
+39
View File
@@ -2,6 +2,25 @@ import { z } from "zod";
import { ModelFamily } from "./family";
type JsonValue =
| string
| number
| boolean
| null
| { [key: string]: JsonValue }
| JsonValue[];
const JsonValue: z.ZodType<JsonValue> = z.lazy(() =>
z.union([
z.string(),
z.number(),
z.boolean(),
z.null(),
z.array(JsonValue),
z.record(JsonValue),
]),
);
const Cost = z.object({
input: z.number().min(0, "Input price cannot be negative"),
output: z.number().min(0, "Output price cannot be negative"),
@@ -69,10 +88,30 @@ export const Model = z
output: z.number().min(0, "Output tokens must be positive"),
}),
status: z.enum(["alpha", "beta", "deprecated"]).optional(),
experimental: z
.object({
modes: z
.record(
z.object({
cost: Cost.optional(),
provider: z
.object({
body: z.record(JsonValue).optional(),
headers: z.record(z.string()).optional(),
})
.optional(),
}),
)
.optional(),
})
.optional(),
provider: z
.object({
npm: z.string().optional(),
api: z.string().optional(),
shape: z.enum(["responses", "completions"]).optional(),
body: z.record(JsonValue).optional(),
headers: z.record(z.string()).optional(),
})
.optional(),
})
+9 -2
View File
@@ -1,6 +1,7 @@
#!/usr/bin/env bun
import { Rendered, Providers } from "../src/render";
import { normalizeLogoSvg } from "../src/logo.js";
import fs from "fs/promises";
import path from "path";
import { $ } from "bun";
@@ -23,7 +24,10 @@ await fs.mkdir("./dist/logos", { recursive: true });
const defaultLogoPath = "../../providers/logo.svg";
const defaultLogo = Bun.file(defaultLogoPath);
if (await defaultLogo.exists()) {
await Bun.write("./dist/logos/default.svg", defaultLogo);
await Bun.write(
"./dist/logos/default.svg",
normalizeLogoSvg(await defaultLogo.text())
);
}
// Then copy provider-specific logos
@@ -36,7 +40,10 @@ for (const entry of entries) {
const logoFile = Bun.file(logoPath);
if (await logoFile.exists()) {
await Bun.write(`./dist/logos/${provider}.svg`, logoFile);
await Bun.write(
`./dist/logos/${provider}.svg`,
normalizeLogoSvg(await logoFile.text())
);
}
}
}
+14 -6
View File
@@ -319,15 +319,12 @@ tbody {
gap: 0.375rem;
}
.provider-cell span:first-child {
.provider-logo {
flex: 0 0 auto;
}
.provider-cell svg {
display: block;
width: 1rem;
height: 1rem;
color: var(--color-text-secondary);
object-fit: contain;
}
.model-id-cell {
@@ -416,6 +413,17 @@ tbody {
.modality-icon:hover::after {
opacity: 1;
}
tr.loading-row td,
tr.error-row td {
padding: 1rem 0.75rem;
text-align: center;
font-family: inherit;
font-size: 0.875rem;
font-weight: 400;
text-transform: none;
color: var(--color-text-secondary);
}
}
dialog::backdrop {
@@ -546,4 +554,4 @@ dialog {
}
}
}
}
+367 -65
View File
@@ -1,7 +1,248 @@
interface ApiCost {
input?: number;
output?: number;
reasoning?: number;
cache_read?: number;
cache_write?: number;
input_audio?: number;
output_audio?: number;
}
interface ApiLimit {
context: number;
input?: number;
output: number;
}
interface ApiModel {
name: string;
family?: string;
status?: string;
tool_call: boolean;
reasoning: boolean;
modalities: {
input: string[];
output: string[];
};
cost?: ApiCost;
limit: ApiLimit;
structured_output?: boolean;
temperature: boolean;
open_weights: boolean;
knowledge?: string;
release_date: string;
last_updated: string;
}
interface ApiProvider {
name: string;
models: Record<string, ApiModel>;
}
type ApiResponse = Record<string, ApiProvider>;
const COLUMN_COUNT = 25;
const modal = document.getElementById("modal") as HTMLDialogElement;
const modalClose = document.getElementById("close")!;
const help = document.getElementById("help")!;
const search = document.getElementById("search")! as HTMLInputElement;
const tableBody = document.getElementById("table-body")! as HTMLTableSectionElement;
const copyIcon = `
<svg
class="copy-icon"
xmlns="http://www.w3.org/2000/svg"
width="14"
height="14"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect>
<path d="m4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path>
</svg>
`;
const checkIcon = `
<svg
class="check-icon"
xmlns="http://www.w3.org/2000/svg"
width="14"
height="14"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
style="display: none;"
>
<polyline points="20,6 9,17 4,12"></polyline>
</svg>
`;
const modalityIcons: Record<string, { label: string; svg: string }> = {
text: {
label: "Text",
svg: `
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polyline points="4,7 4,4 20,4 20,7"></polyline>
<line x1="9" y1="20" x2="15" y2="20"></line>
<line x1="12" y1="4" x2="12" y2="20"></line>
</svg>
`,
},
image: {
label: "Image",
svg: `
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect width="18" height="18" x="3" y="3" rx="2" ry="2"></rect>
<circle cx="9" cy="9" r="2"></circle>
<path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"></path>
</svg>
`,
},
audio: {
label: "Audio",
svg: `
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon>
<path d="m19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07"></path>
</svg>
`,
},
video: {
label: "Video",
svg: `
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="m22 8-6 4 6 4V8Z"></path>
<rect width="14" height="12" x="2" y="6" rx="2" ry="2"></rect>
</svg>
`,
},
pdf: {
label: "PDF",
svg: `
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path>
<polyline points="14,2 14,8 20,8"></polyline>
<line x1="16" y1="13" x2="8" y2="13"></line>
<line x1="16" y1="17" x2="8" y2="17"></line>
<polyline points="10,9 9,9 8,9"></polyline>
</svg>
`,
},
};
function escapeHtml(value: string) {
return value
.replaceAll("&", "&amp;")
.replaceAll("<", "&lt;")
.replaceAll(">", "&gt;")
.replaceAll('"', "&quot;")
.replaceAll("'", "&#39;");
}
function renderCost(cost?: number) {
return cost === undefined ? "-" : `$${cost.toFixed(2)}`;
}
function renderModalityIcon(modality: string) {
const icon = modalityIcons[modality];
if (!icon) return "";
return `<span class="modality-icon" data-tooltip="${icon.label}">${icon.svg}</span>`;
}
function renderModalities(modalities: string[]) {
return `<div class="modalities">${modalities.map(renderModalityIcon).join("")}</div>`;
}
function renderProviderLogo(providerId: string) {
return `<img class="provider-logo" src="/logos/${encodeURIComponent(providerId)}.svg" alt="" width="16" height="16" loading="lazy" decoding="async" />`;
}
function renderRow(
providerId: string,
providerName: string,
modelId: string,
model: ApiModel
) {
const safeProviderId = escapeHtml(providerId);
const safeProviderName = escapeHtml(providerName);
const safeModelId = escapeHtml(modelId);
const safeModelName = escapeHtml(model.name);
const safeFamily = escapeHtml(model.family ?? "-");
const safeKnowledge = escapeHtml(model.knowledge?.substring(0, 7) ?? "-");
const safeReleaseDate = escapeHtml(model.release_date);
const safeLastUpdated = escapeHtml(model.last_updated);
return `
<tr data-model-row="true">
<td>
<div class="provider-cell">
${renderProviderLogo(providerId)}
<span>${safeProviderName}</span>
</div>
</td>
<td>${safeModelName}</td>
<td>${safeFamily}</td>
<td>${safeProviderId}</td>
<td>
<div class="model-id-cell">
<span class="model-id-text">${safeModelId}</span>
<button class="copy-button" type="button" data-model-id="${safeModelId}" aria-label="Copy model ID">
${copyIcon}
${checkIcon}
</button>
</div>
</td>
<td>${model.tool_call ? "Yes" : "No"}</td>
<td>${model.reasoning ? "Yes" : "No"}</td>
<td>${renderModalities(model.modalities.input)}</td>
<td>${renderModalities(model.modalities.output)}</td>
<td>${renderCost(model.cost?.input)}</td>
<td>${renderCost(model.cost?.output)}</td>
<td>${renderCost(model.cost?.reasoning)}</td>
<td>${renderCost(model.cost?.cache_read)}</td>
<td>${renderCost(model.cost?.cache_write)}</td>
<td>${renderCost(model.cost?.input_audio)}</td>
<td>${renderCost(model.cost?.output_audio)}</td>
<td>${model.limit.context.toLocaleString()}</td>
<td>${model.limit.input?.toLocaleString() ?? "-"}</td>
<td>${model.limit.output.toLocaleString()}</td>
<td>${model.structured_output === undefined ? "-" : model.structured_output ? "Yes" : "No"}</td>
<td>${model.temperature ? "Yes" : "No"}</td>
<td>${model.open_weights ? "Open" : "Closed"}</td>
<td>${safeKnowledge}</td>
<td>${safeReleaseDate}</td>
<td>${safeLastUpdated}</td>
</tr>
`;
}
function renderTableRows(providers: ApiResponse) {
return Object.entries(providers)
.sort(([, providerA], [, providerB]) =>
providerA.name.localeCompare(providerB.name)
)
.flatMap(([providerId, provider]) =>
Object.entries(provider.models)
.filter(([, model]) => model.status !== "alpha")
.sort(([, modelA], [, modelB]) => modelA.name.localeCompare(modelB.name))
.map(([modelId, model]) =>
renderRow(providerId, provider.name, modelId, model)
)
)
.join("");
}
function setStatusRow(message: string, className = "loading-row") {
tableBody.innerHTML = `<tr class="${className}"><td colspan="${COLUMN_COUNT}">${escapeHtml(message)}</td></tr>`;
}
/////////////////////////
// URL State Management
@@ -10,7 +251,10 @@ function getQueryParams() {
return new URLSearchParams(window.location.search);
}
function updateQueryParams(updates: Record<string, string | null>) {
function updateQueryParams(
updates: Record<string, string | null>,
historyMode: "push" | "replace" = "push"
) {
const params = getQueryParams();
for (const [key, value] of Object.entries(updates)) {
if (value) {
@@ -19,9 +263,18 @@ function updateQueryParams(updates: Record<string, string | null>) {
params.delete(key);
}
}
const newPath = params.toString()
? `${window.location.pathname}?${params.toString()}`
: window.location.pathname;
if (newPath === `${window.location.pathname}${window.location.search}`) return;
if (historyMode === "replace") {
window.history.replaceState({}, "", newPath);
return;
}
window.history.pushState({}, "", newPath);
}
@@ -65,66 +318,71 @@ modal.addEventListener("click", (e) => {
////////////////////
// Handle Sorting
////////////////////
let currentSort = { column: -1, direction: "asc" };
let currentSort = { column: -1, direction: "asc" as "asc" | "desc" };
function sortTable(column: number, direction: "asc" | "desc") {
function updateSortIndicators(column: number, direction: "asc" | "desc") {
const headers = document.querySelectorAll("th.sortable");
headers.forEach((header, i) => {
const indicator = header.querySelector(".sort-indicator")!;
indicator.textContent = i === column ? (direction === "asc" ? "↑" : "↓") : "";
});
}
function clearSortIndicators() {
updateSortIndicators(-1, "asc");
}
function sortTable(
column: number,
direction: "asc" | "desc",
syncUrl = true
) {
const header = document.querySelectorAll("th.sortable")[column];
const columnType = header.getAttribute("data-type");
const columnType = header?.getAttribute("data-type");
if (!columnType) return;
// update state
currentSort = { column, direction };
updateQueryParams({
sort: getColumnNameForURL(header),
order: direction,
});
if (syncUrl) {
updateQueryParams(
{
sort: getColumnNameForURL(header),
order: direction,
},
"push"
);
}
// sort rows
const tbody = document.querySelector("table tbody")!;
const rows = Array.from(
tbody.querySelectorAll("tr")
tableBody.querySelectorAll('tr[data-model-row="true"]')
) as HTMLTableRowElement[];
rows.sort((a, b) => {
const aValue = getCellValue(a.cells[column], columnType);
const bValue = getCellValue(b.cells[column], columnType);
// Handle undefined values - always sort to bottom
if (aValue === undefined && bValue === undefined) return 0;
if (aValue === undefined) return 1;
if (bValue === undefined) return -1;
let comparison = 0;
if (columnType === "number" || columnType === "modalities") {
comparison = (aValue as number) - (bValue as number);
} else if (columnType === "boolean") {
comparison = (aValue as string).localeCompare(bValue as string);
} else {
comparison = (aValue as string).localeCompare(bValue as string);
}
const comparison =
columnType === "number" || columnType === "modalities"
? (aValue as number) - (bValue as number)
: (aValue as string).localeCompare(bValue as string);
return direction === "asc" ? comparison : -comparison;
});
rows.forEach((row) => tbody.appendChild(row));
// update sort indicators
const headers = document.querySelectorAll("th.sortable");
headers.forEach((header, i) => {
const indicator = header.querySelector(".sort-indicator")!;
if (i === column) {
indicator.textContent = direction === "asc" ? "↑" : "↓";
} else {
indicator.textContent = "";
}
});
rows.forEach((row) => tableBody.appendChild(row));
updateSortIndicators(column, direction);
}
function getCellValue(
cell: HTMLTableCellElement,
type: string
): string | number | undefined {
if (type === "modalities")
if (type === "modalities") {
return cell.querySelectorAll(".modality-icon").length;
}
const text = cell.textContent?.trim() || "";
if (text === "-") return;
@@ -146,22 +404,31 @@ document.querySelectorAll("th.sortable").forEach((header) => {
///////////////////
// Handle Search
///////////////////
function filterTable(value: string) {
const lowerCaseValues = value.toLowerCase().split(",").filter(str => str.trim() !== "");
const rows = document.querySelectorAll(
"table tbody tr"
function filterTable(value: string, syncUrl = true) {
const lowerCaseValues = value
.toLowerCase()
.split(",")
.map((part) => part.trim())
.filter(Boolean);
const rows = tableBody.querySelectorAll(
'tr[data-model-row="true"]'
) as NodeListOf<HTMLTableRowElement>;
rows.forEach((row) => {
const cellTexts = Array.from(row.cells).map((cell) =>
cell.textContent!.toLowerCase()
);
const isVisible = lowerCaseValues.length === 0 ||
lowerCaseValues.some((lowerCaseValue) => cellTexts.some((text) => text.includes(lowerCaseValue)));
const isVisible =
lowerCaseValues.length === 0 ||
lowerCaseValues.some((lowerCaseValue) =>
cellTexts.some((text) => text.includes(lowerCaseValue))
);
row.style.display = isVisible ? "" : "none";
});
updateQueryParams({ search: value || null });
if (syncUrl) {
updateQueryParams({ search: value || null }, "replace");
}
}
search.addEventListener("input", () => {
@@ -185,22 +452,22 @@ search.addEventListener("keydown", (e) => {
///////////////////////////////////
// Handle Copy model ID function
///////////////////////////////////
(window as any).copyModelId = async (
button: HTMLButtonElement,
modelId: string
) => {
tableBody.addEventListener("click", async (event) => {
const target = event.target as HTMLElement;
const button = target.closest(".copy-button") as HTMLButtonElement | null;
const modelId = button?.dataset.modelId;
if (!button || !modelId) return;
try {
if (navigator.clipboard) {
await navigator.clipboard.writeText(modelId);
// Switch to check icon
const copyIcon = button.querySelector(".copy-icon") as HTMLElement;
const checkIcon = button.querySelector(".check-icon") as HTMLElement;
copyIcon.style.display = "none";
checkIcon.style.display = "block";
// Switch back after 1 second
setTimeout(() => {
copyIcon.style.display = "block";
checkIcon.style.display = "none";
@@ -209,32 +476,67 @@ search.addEventListener("keydown", (e) => {
} catch (err) {
console.error("Failed to copy text: ", err);
}
};
});
///////////////////////////////////
// Initialize State from URL
///////////////////////////////////
let tableLoaded = false;
function initializeFromURL() {
if (!tableLoaded) return;
const params = getQueryParams();
const searchQuery = params.get("search") ?? "";
search.value = searchQuery;
filterTable(searchQuery, false);
(() => {
const searchQuery = params.get("search");
if (!searchQuery) return;
search.value = searchQuery;
filterTable(searchQuery);
})();
const columnName = params.get("sort");
if (!columnName) {
currentSort = { column: -1, direction: "asc" };
clearSortIndicators();
return;
}
(() => {
const columnName = params.get("sort");
if (!columnName) return;
const columnIndex = getColumnIndexByUrlName(columnName);
if (columnIndex === -1) return;
const columnIndex = getColumnIndexByUrlName(columnName);
if (columnIndex === -1) return;
const direction = (params.get("order") as "asc" | "desc") || "asc";
sortTable(columnIndex, direction);
})();
const direction = (params.get("order") as "asc" | "desc") || "asc";
sortTable(columnIndex, direction, false);
}
document.addEventListener("DOMContentLoaded", initializeFromURL);
window.addEventListener("popstate", initializeFromURL);
async function loadTable() {
try {
const response = await fetch("/api.json");
if (!response.ok) {
throw new Error(`Failed to fetch models: ${response.status}`);
}
const providers = (await response.json()) as ApiResponse;
const rows = renderTableRows(providers);
tableBody.innerHTML = rows || "";
if (!rows) {
setStatusRow("No models found.");
return;
}
tableLoaded = true;
initializeFromURL();
window.addEventListener("popstate", initializeFromURL);
} catch (error) {
console.error("Failed to load model data:", error);
setStatusRow("Failed to load models.", "loading-row error-row");
}
}
function initializeApp() {
search.value = getQueryParams().get("search") ?? "";
void loadTable();
}
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", initializeApp);
} else {
initializeApp();
}
+16
View File
@@ -0,0 +1,16 @@
const LOGO_THEME_MARKER = "models-dev-logo-theme";
const LOGO_THEME_STYLE = `<style id="${LOGO_THEME_MARKER}">:root{color:#666}@media (prefers-color-scheme: dark){:root{color:#AAA}}</style>`;
export function normalizeLogoSvg(svgText: string) {
if (svgText.includes(LOGO_THEME_MARKER)) {
return svgText;
}
return svgText.replace(/<svg\b[^>]*>/i, (svgTag) => {
const themedTag = svgTag.includes("fill=")
? svgTag
: svgTag.replace("<svg", '<svg fill="currentColor"');
return `${themedTag}${LOGO_THEME_STYLE}`;
});
}
+5 -282
View File
@@ -1,184 +1,15 @@
/** @jsx jsx */
/** @jsxImportSource hono/jsx */
import { generate } from "models.dev";
import { Fragment } from "hono/jsx";
import { renderToString } from "hono/jsx/dom/server";
import { existsSync } from "fs";
import { generate } from "models.dev";
import path from "path";
export const Providers = await generate(
path.join(import.meta.dir, "..", "..", "..", "providers")
);
// Function to load SVG content
const loadProviderSvg = async (providerId: string): Promise<string | null> => {
const providerLogoPath = path.join(
import.meta.dir,
"..",
"..",
"..",
"providers",
providerId,
"logo.svg"
);
const defaultLogoPath = path.join(
import.meta.dir,
"..",
"..",
"..",
"providers",
"logo.svg"
);
try {
// Try provider-specific logo first
if (existsSync(providerLogoPath)) {
const file = Bun.file(providerLogoPath);
return await file.text();
}
//
// Fall back to default logo
if (existsSync(defaultLogoPath)) {
const file = Bun.file(defaultLogoPath);
return await file.text();
}
return null;
} catch (error) {
console.warn(`Failed to load logo for provider ${providerId}:`, error);
return null;
}
};
// Create a cache of loaded SVGs at build time
const providerLogos = new Map<string, string>();
// Pre-load all provider logos
for (const [providerId] of Object.entries(Providers)) {
const svgContent = await loadProviderSvg(providerId);
if (svgContent) {
providerLogos.set(providerId, svgContent);
}
}
function renderProviderLogo(providerId: string) {
const svgContent = providerLogos.get(providerId) || "";
return <span dangerouslySetInnerHTML={{ __html: svgContent }} />;
}
const getModalityIcon = (modality: string) => {
switch (modality) {
case "text":
return (
<span class="modality-icon" data-tooltip="Text">
<svg
xmlns="http://www.w3.org/2000/svg"
width="16"
height="16"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<polyline points="4,7 4,4 20,4 20,7"></polyline>
<line x1="9" y1="20" x2="15" y2="20"></line>
<line x1="12" y1="4" x2="12" y2="20"></line>
</svg>
</span>
);
case "image":
return (
<span class="modality-icon" data-tooltip="Image">
<svg
xmlns="http://www.w3.org/2000/svg"
width="16"
height="16"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="18" height="18" x="3" y="3" rx="2" ry="2"></rect>
<circle cx="9" cy="9" r="2"></circle>
<path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"></path>
</svg>
</span>
);
case "audio":
return (
<span class="modality-icon" data-tooltip="Audio">
<svg
xmlns="http://www.w3.org/2000/svg"
width="16"
height="16"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon>
<path d="m19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07"></path>
</svg>
</span>
);
case "video":
return (
<span class="modality-icon" data-tooltip="Video">
<svg
xmlns="http://www.w3.org/2000/svg"
width="16"
height="16"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m22 8-6 4 6 4V8Z"></path>
<rect width="14" height="12" x="2" y="6" rx="2" ry="2"></rect>
</svg>
</span>
);
case "pdf":
return (
<span class="modality-icon" data-tooltip="PDF">
<svg
xmlns="http://www.w3.org/2000/svg"
width="16"
height="16"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path>
<polyline points="14,2 14,8 20,8"></polyline>
<line x1="16" y1="13" x2="8" y2="13"></line>
<line x1="16" y1="17" x2="8" y2="17"></line>
<polyline points="10,9 9,9 8,9"></polyline>
</svg>
</span>
);
default:
return null;
}
};
const renderCost = (cost?: number) => {
return cost === undefined ? "-" : `$${cost.toFixed(2)}`;
};
export const Rendered = renderToString(
<Fragment>
<header>
@@ -342,118 +173,10 @@ export const Rendered = renderToString(
</th>
</tr>
</thead>
<tbody>
{Object.entries(Providers)
.sort(([, providerA], [, providerB]) =>
providerA.name.localeCompare(providerB.name)
)
.flatMap(([providerId, provider]) =>
Object.entries(provider.models)
.filter(([, model]) => model.status !== "alpha")
.sort(([, modelA], [, modelB]) =>
modelA.name.localeCompare(modelB.name)
)
.map(([modelId, model]) => (
<tr key={`${providerId}-${modelId}`}>
<td>
<div class="provider-cell">
{renderProviderLogo(providerId)}
<span>{provider.name}</span>
</div>
</td>
<td>{model.name}</td>
<td>{model.family ?? "-"}</td>
<td>{providerId}</td>
<td>
<div class="model-id-cell">
<span class="model-id-text">{modelId}</span>
<button
class="copy-button"
onclick={`copyModelId(this, '${modelId}')`}
>
<svg
class="copy-icon"
xmlns="http://www.w3.org/2000/svg"
width="14"
height="14"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect
width="14"
height="14"
x="8"
y="8"
rx="2"
ry="2"
/>
<path d="m4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" />
</svg>
<svg
class="check-icon"
xmlns="http://www.w3.org/2000/svg"
width="14"
height="14"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
style="display: none;"
>
<polyline points="20,6 9,17 4,12" />
</svg>
</button>
</div>
</td>
<td>{model.tool_call ? "Yes" : "No"}</td>
<td>{model.reasoning ? "Yes" : "No"}</td>
<td>
<div class="modalities">
{model.modalities.input.map((modality) =>
getModalityIcon(modality)
)}
</div>
</td>
<td>
<div class="modalities">
{model.modalities.output.map((modality) =>
getModalityIcon(modality)
)}
</div>
</td>
<td>{renderCost(model.cost?.input)}</td>
<td>{renderCost(model.cost?.output)}</td>
<td>{renderCost(model.cost?.reasoning)}</td>
<td>{renderCost(model.cost?.cache_read)}</td>
<td>{renderCost(model.cost?.cache_write)}</td>
<td>{renderCost(model.cost?.input_audio)}</td>
<td>{renderCost(model.cost?.output_audio)}</td>
<td>{model.limit.context.toLocaleString()}</td>
<td>{model.limit.input?.toLocaleString() ?? "-"}</td>
<td>{model.limit.output.toLocaleString()}</td>
<td>
{model.structured_output === undefined
? "-"
: model.structured_output
? "Yes"
: "No"}
</td>
<td>{model.temperature ? "Yes" : "No"}</td>
<td>{model.open_weights ? "Open" : "Closed"}</td>
<td>
{model.knowledge ? model.knowledge.substring(0, 7) : "-"}
</td>
<td>{model.release_date}</td>
<td>{model.last_updated}</td>
</tr>
))
)}
<tbody id="table-body">
<tr class="loading-row">
<td colspan={25}>Loading models...</td>
</tr>
</tbody>
</table>
<dialog id="modal">
+10 -2
View File
@@ -1,11 +1,19 @@
import Index from "../index.html";
import { Rendered } from "./render";
import { normalizeLogoSvg } from "./logo.js";
import { Providers, Rendered } from "./render";
import path from "path";
Bun.serve({
port: 16_000,
routes: {
"/": Index,
"/api.json": () => {
return Response.json(Providers, {
headers: {
"Cache-Control": "public, max-age=3600",
},
});
},
"/assets/*": (req) => {
const file = Bun.file(
path.join(import.meta.dir, new URL(req.url).pathname)
@@ -38,7 +46,7 @@ Bun.serve({
file = Bun.file(defaultLogoPath);
}
return new Response(file, {
return new Response(normalizeLogoSvg(await file.text()), {
headers: {
"Content-Type": "image/svg+xml",
"Cache-Control": "public, max-age=3600",
@@ -0,0 +1,20 @@
name = "MiniMax-M2.7-highspeed"
release_date = "2026-03-19"
last_updated = "2026-03-19"
attachment = false
reasoning = false
temperature = true
tool_call = true
open_weights = false
[cost]
input = 0.600
output = 4.800
[limit]
context = 204_800
output = 131_072
[modalities]
input = ["text"]
output = ["text"]
+20
View File
@@ -0,0 +1,20 @@
name = "MiniMax-M2.7"
release_date = "2026-03-19"
last_updated = "2026-03-19"
attachment = false
reasoning = false
temperature = true
tool_call = true
open_weights = false
[cost]
input = 0.300
output = 1.200
[limit]
context = 204_800
output = 131_072
[modalities]
input = ["text"]
output = ["text"]
@@ -1,22 +1,20 @@
name = "Claude 3.5 Sonnet (Retiring Soon)"
name = "claude-3-5-haiku-20241022"
release_date = "2024-10-22"
last_updated = "2024-10-22"
attachment = true
reasoning = false
temperature = true
tool_call = true
knowledge = "2025-01-01"
open_weights = false
knowledge = "2024-07"
[cost]
input = 3.00
output = 15.00
cache_read = 0.30
cache_write = 3.75
input = 0.800
output = 4.000
[limit]
context = 200_000
output = 64_000
output = 8_192
[modalities]
input = ["text", "image", "pdf"]
@@ -0,0 +1,21 @@
name = "claude-3-5-haiku-latest"
release_date = "2024-10-22"
last_updated = "2024-10-22"
attachment = true
reasoning = false
temperature = true
tool_call = true
open_weights = false
knowledge = "2024-07"
[cost]
input = 0.800
output = 4.000
[limit]
context = 200_000
output = 8_192
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -2,7 +2,7 @@ name = "claude-haiku-4-5-20251001"
release_date = "2025-10-16"
last_updated = "2025-10-16"
attachment = true
reasoning = false
reasoning = true
temperature = true
tool_call = true
open_weights = false
@@ -17,5 +17,5 @@ context = 200_000
output = 64_000
[modalities]
input = ["text", "image"]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -0,0 +1,21 @@
name = "claude-haiku-4-5"
release_date = "2025-10-16"
last_updated = "2025-10-16"
attachment = true
reasoning = true
temperature = true
tool_call = true
open_weights = false
knowledge = "2025-02"
[cost]
input = 1.000
output = 5.000
[limit]
context = 200_000
output = 64_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -0,0 +1,21 @@
name = "claude-opus-4-20250514"
release_date = "2025-05-22"
last_updated = "2025-05-22"
attachment = true
reasoning = false
temperature = true
tool_call = true
open_weights = false
knowledge = "2025-03"
[cost]
input = 15.000
output = 75.000
[limit]
context = 200_000
output = 32_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -2,7 +2,7 @@ name = "claude-opus-4-5-20251101"
release_date = "2025-11-25"
last_updated = "2025-11-25"
attachment = true
reasoning = false
reasoning = true
temperature = true
tool_call = true
open_weights = false
@@ -17,5 +17,5 @@ context = 200_000
output = 64_000
[modalities]
input = ["text", "image"]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -0,0 +1,21 @@
name = "claude-opus-4-5"
release_date = "2025-11-25"
last_updated = "2025-11-25"
attachment = true
reasoning = true
temperature = true
tool_call = true
open_weights = false
knowledge = "2025-03"
[cost]
input = 5.000
output = 25.000
[limit]
context = 200_000
output = 64_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -0,0 +1,21 @@
name = "claude-opus-4-6-thinking"
release_date = "2026-02-06"
last_updated = "2026-03-13"
attachment = true
reasoning = true
temperature = true
tool_call = true
open_weights = false
knowledge = "2025-05"
[cost]
input = 5.000
output = 25.000
[limit]
context = 1_000_000
output = 128_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -0,0 +1,21 @@
name = "claude-opus-4-6"
release_date = "2026-02-06"
last_updated = "2026-03-13"
attachment = true
reasoning = true
temperature = true
tool_call = true
open_weights = false
knowledge = "2025-05"
[cost]
input = 5.000
output = 25.000
[limit]
context = 1_000_000
output = 128_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -0,0 +1,29 @@
name = "claude-opus-4-7"
release_date = "2026-04-17"
last_updated = "2026-04-17"
attachment = true
reasoning = true
temperature = true
tool_call = true
open_weights = false
knowledge = "2025-05"
[cost]
input = 5.000
output = 25.000
cache_read = 0.500
cache_write = 6.250
[cost.context_over_200k]
input = 10.000
output = 37.500
cache_read = 1.000
cache_write = 12.500
[limit]
context = 200_000
output = 128_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -0,0 +1,21 @@
name = "claude-sonnet-4-20250514"
release_date = "2025-05-22"
last_updated = "2025-05-22"
attachment = true
reasoning = false
temperature = true
tool_call = true
open_weights = false
knowledge = "2025-03"
[cost]
input = 3.000
output = 15.000
[limit]
context = 200_000
output = 64_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -17,5 +17,5 @@ context = 200_000
output = 64_000
[modalities]
input = ["text", "image"]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -1,6 +1,6 @@
name = "claude-sonnet-4-5-20250929"
release_date = "2025-09-29"
last_updated = "2025-09-29"
release_date = "2025-09-30"
last_updated = "2025-09-30"
attachment = true
reasoning = false
temperature = true
@@ -17,5 +17,5 @@ context = 200_000
output = 64_000
[modalities]
input = ["text", "image"]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -0,0 +1,21 @@
name = "claude-sonnet-4-5"
release_date = "2025-09-30"
last_updated = "2025-09-30"
attachment = true
reasoning = false
temperature = true
tool_call = true
open_weights = false
knowledge = "2025-07"
[cost]
input = 3.000
output = 15.000
[limit]
context = 200_000
output = 64_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -0,0 +1,21 @@
name = "claude-sonnet-4-6-thinking"
release_date = "2026-02-18"
last_updated = "2026-03-13"
attachment = true
reasoning = true
temperature = true
tool_call = true
open_weights = false
knowledge = "2025-08"
[cost]
input = 3.000
output = 15.000
[limit]
context = 1_000_000
output = 64_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -0,0 +1,21 @@
name = "claude-sonnet-4-6"
release_date = "2026-02-18"
last_updated = "2026-03-13"
attachment = true
reasoning = false
temperature = true
tool_call = true
open_weights = false
knowledge = "2025-08"
[cost]
input = 3.000
output = 15.000
[limit]
context = 1_000_000
output = 64_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -0,0 +1,21 @@
name = "gemini-3.1-flash-image-preview"
release_date = "2026-02-27"
last_updated = "2026-02-27"
attachment = true
reasoning = false
temperature = true
tool_call = false
open_weights = false
knowledge = "2025-01"
[cost]
input = 0.500
output = 60.000
[limit]
context = 131_072
output = 32_768
[modalities]
input = ["text", "image", "pdf"]
output = ["text", "image"]
@@ -1,20 +1,20 @@
name = "Mistral Large (24.02)"
family = "mistral-large"
release_date = "2024-12-01"
last_updated = "2024-12-01"
name = "glm-4.5-air"
release_date = "2025-07-29"
last_updated = "2025-07-29"
attachment = false
reasoning = false
temperature = true
tool_call = true
open_weights = false
knowledge = "2025-04"
[cost]
input = 0.50
output = 1.50
input = 0.1143
output = 0.286
[limit]
context = 128_000
output = 4_096
output = 98_304
[modalities]
input = ["text"]
+21
View File
@@ -0,0 +1,21 @@
name = "glm-4.5-airx"
release_date = "2025-07-29"
last_updated = "2025-07-29"
attachment = false
reasoning = false
temperature = true
tool_call = true
open_weights = false
knowledge = "2025-04"
[cost]
input = 0.572
output = 1.714
[limit]
context = 128_000
output = 16_384
[modalities]
input = ["text"]
output = ["text"]
+21
View File
@@ -0,0 +1,21 @@
name = "glm-4.5-x"
release_date = "2025-07-29"
last_updated = "2025-07-29"
attachment = false
reasoning = false
temperature = true
tool_call = true
open_weights = false
knowledge = "2025-04"
[cost]
input = 1.143
output = 2.290
[limit]
context = 128_000
output = 16_384
[modalities]
input = ["text"]
output = ["text"]
+2 -2
View File
@@ -1,6 +1,6 @@
name = "GLM-4.5V"
release_date = "2025-07-29"
last_updated = "2025-07-29"
release_date = "2025-08-12"
last_updated = "2025-08-12"
attachment = true
reasoning = false
temperature = true
+1 -1
View File
@@ -2,7 +2,7 @@ name = "glm-4.6"
release_date = "2025-09-30"
last_updated = "2025-09-30"
attachment = false
reasoning = false
reasoning = true
temperature = true
tool_call = true
open_weights = false
@@ -0,0 +1,21 @@
name = "glm-4.7-flashx"
release_date = "2026-01-20"
last_updated = "2026-01-20"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = false
knowledge = "2025-04"
[cost]
input = 0.0715
output = 0.429
[limit]
context = 200_000
output = 131_072
[modalities]
input = ["text"]
output = ["text"]
+1 -1
View File
@@ -2,7 +2,7 @@ name = "glm-4.7"
release_date = "2025-12-22"
last_updated = "2025-12-22"
attachment = false
reasoning = false
reasoning = true
temperature = true
tool_call = true
open_weights = false
+20
View File
@@ -0,0 +1,20 @@
name = "glm-5-turbo"
release_date = "2026-03-16"
last_updated = "2026-03-16"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = false
[cost]
input = 0.720
output = 3.200
[limit]
context = 200_000
output = 131_072
[modalities]
input = ["text"]
output = ["text"]
+20
View File
@@ -0,0 +1,20 @@
name = "glm-5.1"
release_date = "2026-04-10"
last_updated = "2026-04-10"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = false
[cost]
input = 0.860
output = 3.500
[limit]
context = 200_000
output = 131_072
[modalities]
input = ["text"]
output = ["text"]
+20
View File
@@ -0,0 +1,20 @@
name = "glm-5"
release_date = "2026-02-12"
last_updated = "2026-02-12"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = false
[cost]
input = 0.600
output = 2.600
[limit]
context = 200_000
output = 131_072
[modalities]
input = ["text"]
output = ["text"]
+20
View File
@@ -0,0 +1,20 @@
name = "glm-5v-turbo"
release_date = "2026-04-02"
last_updated = "2026-04-02"
attachment = true
reasoning = true
temperature = true
tool_call = true
open_weights = false
[cost]
input = 0.720
output = 3.200
[limit]
context = 200_000
output = 131_072
[modalities]
input = ["text", "image", "video", "audio", "pdf"]
output = ["text"]
@@ -1,21 +1,19 @@
name = "GLM 4.6"
family = "glm"
name = "glm-for-coding"
release_date = "2025-09-30"
last_updated = "2025-09-30"
attachment = false
reasoning = false
reasoning = true
temperature = true
tool_call = true
knowledge = "2025-09"
open_weights = true
open_weights = false
[cost]
input = 0.6
output = 2.2
input = 0.086
output = 0.343
[limit]
context = 200_000
output = 32_768
output = 131_072
[modalities]
input = ["text"]
@@ -0,0 +1,21 @@
name = "gpt-5.4-mini-2026-03-17"
release_date = "2026-03-19"
last_updated = "2026-03-19"
attachment = true
reasoning = false
temperature = true
tool_call = true
open_weights = false
knowledge = "2025-08"
[cost]
input = 0.750
output = 4.500
[limit]
context = 400_000
output = 128_000
[modalities]
input = ["text", "image"]
output = ["text"]
+21
View File
@@ -0,0 +1,21 @@
name = "gpt-5.4-mini"
release_date = "2026-03-19"
last_updated = "2026-03-19"
attachment = true
reasoning = false
temperature = true
tool_call = true
open_weights = false
knowledge = "2025-08"
[cost]
input = 0.750
output = 4.500
[limit]
context = 400_000
output = 128_000
[modalities]
input = ["text", "image"]
output = ["text"]
@@ -0,0 +1,21 @@
name = "gpt-5.4-nano-2026-03-17"
release_date = "2026-03-19"
last_updated = "2026-03-19"
attachment = true
reasoning = false
temperature = true
tool_call = true
open_weights = false
knowledge = "2025-08"
[cost]
input = 0.200
output = 1.250
[limit]
context = 400_000
output = 128_000
[modalities]
input = ["text", "image"]
output = ["text"]
+21
View File
@@ -0,0 +1,21 @@
name = "gpt-5.4-nano"
release_date = "2026-03-19"
last_updated = "2026-03-19"
attachment = true
reasoning = false
temperature = true
tool_call = true
open_weights = false
knowledge = "2025-08"
[cost]
input = 0.200
output = 1.250
[limit]
context = 400_000
output = 128_000
[modalities]
input = ["text", "image"]
output = ["text"]
@@ -0,0 +1,20 @@
name = "grok-4.20-beta-0309-non-reasoning"
release_date = "2026-03-16"
last_updated = "2026-03-16"
attachment = true
reasoning = false
temperature = true
tool_call = true
open_weights = false
[cost]
input = 2.000
output = 6.000
[limit]
context = 2_000_000
output = 30_000
[modalities]
input = ["text", "image"]
output = ["text"]
@@ -0,0 +1,20 @@
name = "grok-4.20-beta-0309-reasoning"
release_date = "2026-03-16"
last_updated = "2026-03-16"
attachment = true
reasoning = true
temperature = true
tool_call = true
open_weights = false
[cost]
input = 2.000
output = 6.000
[limit]
context = 2_000_000
output = 30_000
[modalities]
input = ["text", "image"]
output = ["text"]
@@ -0,0 +1,20 @@
name = "grok-4.20-multi-agent-beta-0309"
release_date = "2026-03-16"
last_updated = "2026-03-16"
attachment = true
reasoning = true
temperature = true
tool_call = true
open_weights = false
[cost]
input = 2.000
output = 6.000
[limit]
context = 2_000_000
output = 30_000
[modalities]
input = ["text", "image"]
output = ["text"]
@@ -0,0 +1,22 @@
name = "Claude Opus 4.6"
family = "claude-opus"
release_date = "2026-02-05"
last_updated = "2026-02-05"
attachment = true
reasoning = true
temperature = true
tool_call = true
knowledge = "2025-05-31"
open_weights = false
[cost]
input = 5.00
output = 25.00
[limit]
context = 200_000
output = 128_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -1,12 +1,12 @@
name = "Claude Sonnet 3"
name = "Claude Sonnet 4.6"
family = "claude-sonnet"
release_date = "2024-03-04"
last_updated = "2024-03-04"
release_date = "2026-02-17"
last_updated = "2026-02-17"
attachment = true
reasoning = false
reasoning = true
temperature = true
knowledge = "2023-08"
tool_call = true
knowledge = "2025-08-31"
open_weights = false
[cost]
@@ -15,7 +15,7 @@ output = 15.00
[limit]
context = 200_000
output = 4_096
output = 64_000
[modalities]
input = ["text", "image", "pdf"]
@@ -9,8 +9,8 @@ tool_call = true
open_weights = true
[cost]
input = 0.14
output = 0.28
input = 0.55
output = 1.66
[limit]
context = 128_000
@@ -0,0 +1,24 @@
name = "Gemini 3.1 Flash Lite Preview"
family = "gemini-flash"
release_date = "2026-03-01"
last_updated = "2026-03-01"
attachment = true
reasoning = true
temperature = true
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 0.25
output = 1.50
cache_read = 0.025
cache_write = 1.00
[limit]
context = 1_048_576
output = 65_536
[modalities]
input = ["text", "image", "audio", "video", "pdf"]
output = ["text"]
@@ -0,0 +1,23 @@
name = "Gemini 3.1 Pro Preview"
family = "gemini-pro"
release_date = "2026-02-19"
last_updated = "2026-02-19"
attachment = true
reasoning = true
temperature = true
tool_call = true
structured_output = true
knowledge = "2025-01"
open_weights = false
[cost]
input = 2.00
output = 12.00
[limit]
context = 1_048_576
output = 65_536
[modalities]
input = ["text", "image", "video", "audio", "pdf"]
output = ["text"]
+24
View File
@@ -0,0 +1,24 @@
name = "GPT-5 Codex"
family = "gpt"
release_date = "2025-09-15"
last_updated = "2025-09-15"
attachment = false
reasoning = true
temperature = false
knowledge = "2024-09-30"
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 1.25
output = 10.00
[limit]
context = 400_000
input = 272_000
output = 128_000
[modalities]
input = ["text", "image"]
output = ["text"]
@@ -0,0 +1,24 @@
name = "GPT-5.1 Codex Max"
family = "gpt"
release_date = "2025-11-13"
last_updated = "2025-11-13"
attachment = true
reasoning = true
temperature = false
knowledge = "2024-09-30"
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 1.25
output = 10.00
[limit]
context = 400_000
input = 272_000
output = 128_000
[modalities]
input = ["text", "image"]
output = ["text"]
@@ -0,0 +1,24 @@
name = "GPT-5.1 Codex"
family = "gpt"
release_date = "2025-11-13"
last_updated = "2025-11-13"
attachment = true
reasoning = true
temperature = false
knowledge = "2024-09-30"
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 1.25
output = 10.00
[limit]
context = 400_000
input = 272_000
output = 128_000
[modalities]
input = ["text", "image"]
output = ["text"]
@@ -10,8 +10,8 @@ tool_call = true
open_weights = false
[cost]
input = 1.50
output = 12.00
input = 1.75
output = 14.00
[limit]
context = 400_000
@@ -0,0 +1,24 @@
name = "GPT-5.2 Codex"
family = "gpt"
release_date = "2025-12-11"
last_updated = "2025-12-11"
attachment = true
reasoning = true
temperature = false
knowledge = "2025-08-31"
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 1.75
output = 14.00
[limit]
context = 400_000
input = 272_000
output = 128_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -0,0 +1,21 @@
name = "GPT-5.3 Chat Latest"
family = "gpt"
release_date = "2026-03-01"
last_updated = "2026-03-01"
attachment = true
reasoning = true
temperature = true
tool_call = true
open_weights = false
[cost]
input = 1.75
output = 14.00
[limit]
context = 400_000
output = 128_000
[modalities]
input = ["text", "image"]
output = ["text"]
@@ -0,0 +1,24 @@
name = "GPT-5.3 Codex XHigh"
family = "gpt"
release_date = "2026-02-05"
last_updated = "2026-02-05"
attachment = true
reasoning = true
temperature = false
knowledge = "2025-08-31"
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 1.75
output = 14.00
[limit]
context = 400_000
input = 272_000
output = 128_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -0,0 +1,24 @@
name = "GPT-5.3 Codex"
family = "gpt"
release_date = "2026-02-05"
last_updated = "2026-02-05"
attachment = true
reasoning = true
temperature = false
knowledge = "2025-08-31"
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 1.75
output = 14.00
[limit]
context = 400_000
input = 272_000
output = 128_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
+24
View File
@@ -0,0 +1,24 @@
name = "GPT-5.4"
family = "gpt"
release_date = "2026-03-05"
last_updated = "2026-03-05"
attachment = true
reasoning = true
temperature = false
knowledge = "2025-08-31"
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 2.50
output = 15.00
[limit]
context = 1_050_000
input = 922_000
output = 128_000
[modalities]
input = ["text", "image"]
output = ["text"]
+23
View File
@@ -0,0 +1,23 @@
name = "Kimi K2.5"
family = "kimi"
release_date = "2026-01"
last_updated = "2026-01"
attachment = false
reasoning = true
structured_output = true
temperature = true
tool_call = true
knowledge = "2025-01"
open_weights = true
[cost]
input = 0.60
output = 3.00
[limit]
context = 262_144
output = 32_768
[modalities]
input = ["text", "image", "video"]
output = ["text"]
+1 -1
View File
@@ -11,7 +11,7 @@ open_weights = false
[cost]
input = 20.00
output = 80.00
output = 40.00
[limit]
context = 200_000
+2 -2
View File
@@ -10,8 +10,8 @@ tool_call = true
open_weights = false
[cost]
input = 0.50
output = 1.50
input = 3.00
output = 15.00
[limit]
context = 128_000
+2 -2
View File
@@ -9,8 +9,8 @@ tool_call = true
open_weights = true
[cost]
input = 0.70
output = 2.50
input = 0.60
output = 2.20
[limit]
context = 128_000
@@ -0,0 +1,21 @@
name = "GLM-5"
family = "glm"
release_date = "2026-02-11"
last_updated = "2026-02-11"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = true
[cost]
input = 1.00
output = 3.20
[limit]
context = 204800
output = 131072
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,30 @@
name = "Claude Opus 4.6 Think"
family = "claude-opus"
release_date = "2026-02-05"
last_updated = "2026-02-05"
attachment = true
reasoning = true
temperature = true
tool_call = true
knowledge = "2025-05-31"
open_weights = false
[cost]
input = 5.00
output = 25.00
cache_read = 0.30
cache_write = 3.75
[cost.context_over_200k]
input = 6.00
output = 22.00
cache_read = 0.60
cache_write = 7.50
[limit]
context = 200_000
output = 128_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -0,0 +1,30 @@
name = "Claude Opus 4.6"
family = "claude-opus"
release_date = "2026-02-05"
last_updated = "2026-02-05"
attachment = true
reasoning = true
temperature = true
tool_call = true
knowledge = "2025-05-31"
open_weights = false
[cost]
input = 5.00
output = 25.00
cache_read = 0.30
cache_write = 3.75
[cost.context_over_200k]
input = 6.00
output = 22.00
cache_read = 0.60
cache_write = 7.50
[limit]
context = 200_000
output = 128_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -0,0 +1,30 @@
name = "Claude Sonnet 4.6 Think"
family = "claude-sonnet"
release_date = "2026-02-17"
last_updated = "2026-02-17"
attachment = true
reasoning = true
temperature = true
tool_call = true
knowledge = "2025-08-31"
open_weights = false
[cost]
input = 3.00
output = 15.00
cache_read = 0.30
cache_write = 3.75
[cost.context_over_200k]
input = 6.00
output = 22.50
cache_read = 0.60
cache_write = 7.50
[limit]
context = 200_000
output = 64_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -0,0 +1,30 @@
name = "Claude Sonnet 4.6"
family = "claude-sonnet"
release_date = "2026-02-17"
last_updated = "2026-02-17"
attachment = true
reasoning = true
temperature = true
tool_call = true
knowledge = "2025-08-31"
open_weights = false
[cost]
input = 3.00
output = 15.00
cache_read = 0.30
cache_write = 3.75
[cost.context_over_200k]
input = 6.00
output = 22.50
cache_read = 0.60
cache_write = 7.50
[limit]
context = 200_000
output = 64_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -13,9 +13,9 @@ open_weights = true
field = "reasoning_details"
[cost]
input = 0.27
output = 1.10
cache_read = 0.548
input = 0.06
output = 0.22
cache_read = 0.01
[limit]
context = 204800
@@ -0,0 +1,24 @@
name = "Coding-GLM-5-Free"
family = "glm"
release_date = "2026-02-11"
last_updated = "2026-02-11"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = false
[interleaved]
field = "reasoning_content"
[cost]
input = 0.0
output = 0.0
[limit]
context = 204800
output = 131072
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,24 @@
name = "Coding-GLM-5.1"
family = "glm"
release_date = "2026-04-11"
last_updated = "2026-04-11"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = false
[interleaved]
field = "reasoning_content"
[cost]
input = 0.06
output = 0.22
[limit]
context = 200000
output = 128000
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,23 @@
name = "Gemini 3 Pro Preview Search"
family = "gemini-pro"
release_date = "2025-11-19"
last_updated = "2025-11-19"
attachment = true
reasoning = true
temperature = true
tool_call = true
knowledge = "2025-11"
open_weights = false
[cost]
input = 2.00
output = 12.00
cache_read = 0.50
[limit]
context = 1_000_000
output = 65_000
[modalities]
input = ["text", "image", "audio", "video"]
output = ["text"]
+24
View File
@@ -0,0 +1,24 @@
name = "GLM-5.1"
family = "glm"
release_date = "2026-04-11"
last_updated = "2026-04-11"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = false
[interleaved]
field = "reasoning_content"
[cost]
input = 0.84
output = 3.38
[limit]
context = 200000
output = 128000
[modalities]
input = ["text"]
output = ["text"]
+24
View File
@@ -0,0 +1,24 @@
name = "GLM-5"
family = "glm"
release_date = "2026-02-11"
last_updated = "2026-02-11"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = false
[interleaved]
field = "reasoning_content"
[cost]
input = 0.88
output = 2.82
[limit]
context = 204800
output = 131072
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,23 @@
name = "GPT-5.2-Codex"
family = "gpt-codex"
release_date = "2026-01-14"
last_updated = "2026-01-14"
attachment = true
reasoning = true
knowledge = "2025-08-31"
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 1.75
output = 14.00
cache_read = 0.175
[limit]
context = 400_000
output = 128_000
[modalities]
input = ["text", "image"]
output = ["text"]
@@ -0,0 +1,23 @@
name = "GPT-5.4-Mini"
family = "gpt-mini"
release_date = "2026-03-11"
last_updated = "2026-03-11"
attachment = true
reasoning = false
temperature = false
tool_call = true
open_weights = false
structured_output = true
[cost]
input = 0.75
output = 4.50
cache_read = 0.075
[limit]
context = 400_000
output = 128_000
[modalities]
input = ["text", "image"]
output = ["text"]
+23
View File
@@ -0,0 +1,23 @@
name = "GPT-5.4"
family = "gpt"
release_date = "2026-03-11"
last_updated = "2026-03-11"
attachment = true
reasoning = true
temperature = false
tool_call = true
open_weights = false
structured_output = true
[cost]
input = 2.50
output = 15.00
cache_read = 0.25
[limit]
context = 400_000
output = 128_000
[modalities]
input = ["text", "image"]
output = ["text"]
@@ -0,0 +1,21 @@
name = "MiniMax-M2.5"
family = "minimax"
release_date = "2026-02-12"
last_updated = "2026-02-12"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = true
[cost]
input = 0.29
output = 1.15
[limit]
context = 204_800
output = 131_072
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,23 @@
name = "Qwen3 Coder Next"
family = "qwen"
attachment = false
reasoning = false
tool_call = true
structured_output = false
temperature = true
release_date = "2026-02-04"
last_updated = "2026-02-04"
open_weights = true
[cost]
input = 0.14
output = 0.55
[limit]
context = 262_144
input = 262_144
output = 65_536
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,22 @@
name = "Qwen 3.5 Plus"
family = "qwen"
release_date = "2026-02-16"
last_updated = "2026-02-16"
attachment = false
reasoning = true
temperature = true
knowledge = "2025-04"
tool_call = true
open_weights = false
[cost]
input = 0.11
output = 0.66
[limit]
context = 1_000_000
output = 65_536
[modalities]
input = ["text", "image", "video"]
output = ["text"]
+1 -2
View File
@@ -1,6 +1,5 @@
name = "AIHubMix"
npm = "@ai-sdk/openai-compatible"
npm = "@aihubmix/ai-sdk-provider"
env = ["AIHUBMIX_API_KEY"]
api = "https://aihubmix.com/v1"
doc = "https://docs.aihubmix.com"
@@ -0,0 +1,24 @@
name = "MiniMax-M2.5"
family = "minimax"
release_date = "2026-02-12"
last_updated = "2026-02-12"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = true
[cost]
input = 0.30
output = 1.20
[interleaved]
field = "reasoning_content"
[limit]
context = 204_800
output = 131_072
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,23 @@
name = "MiniMax-M2.7"
family = "minimax"
release_date = "2026-03-18"
last_updated = "2026-03-18"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = true
[cost]
input = 0.30
output = 1.20
cache_read = 0.06
cache_write = 0.375
[limit]
context = 204_800
output = 131_072
[modalities]
input = ["text"]
output = ["text"]
+26
View File
@@ -0,0 +1,26 @@
name = "GLM-5.1"
family = "glm"
release_date = "2026-04-14"
last_updated = "2026-04-14"
attachment = false
reasoning = true
structured_output = true
temperature = true
tool_call = true
open_weights = true
[interleaved]
field = "reasoning_content"
[cost]
input = 0.87
output = 3.48
cache_read = 0.17
[limit]
context = 202_752
output = 128_000
[modalities]
input = ["text"]
output = ["text"]
+24
View File
@@ -0,0 +1,24 @@
name = "GLM-5"
family = "glm"
release_date = "2026-02-11"
last_updated = "2026-02-11"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = false
[interleaved]
field = "reasoning_content"
[cost]
input = 0.86
output = 3.15
[limit]
context = 202_752
output = 16_384
[modalities]
input = ["text"]
output = ["text"]

Some files were not shown because too many files have changed in this diff Show More