From 6d2bae2c419ab133fedc69e76879dca8802ca7e4 Mon Sep 17 00:00:00 2001 From: can1357 Date: Thu, 20 Aug 2026 02:47:32 +0200 Subject: [PATCH] feat: implemented long-context pricing and configuration support - Added long-context pricing tiers and billing policies for subscription Codex models in the catalog. - Introduced the `extendedContext` configuration setting to control premium long-context windows. - Implemented runtime policy refresh and model re-binding when context settings change. - Added comprehensive unit tests for pricing tiers, context capping, and policy toggling behavior. --- packages/catalog/CHANGELOG.md | 1 + .../catalog/scripts/generated-policies.ts | 11 +- packages/catalog/src/models.json | 3533 ++++++++++++----- .../catalog/test/generated-policies.test.ts | 15 + .../catalog/test/long-context-pricing.test.ts | 46 + packages/coding-agent/CHANGELOG.md | 1 + .../coding-agent/src/config/model-registry.ts | 46 + .../src/config/settings-schema.ts | 15 + packages/coding-agent/src/config/settings.ts | 12 + .../coding-agent/src/session/agent-session.ts | 32 +- .../coding-agent/test/model-registry.test.ts | 29 +- 11 files changed, 2842 insertions(+), 899 deletions(-) create mode 100644 packages/catalog/test/long-context-pricing.test.ts diff --git a/packages/catalog/CHANGELOG.md b/packages/catalog/CHANGELOG.md index 1197d7e05..ff5b9249e 100644 --- a/packages/catalog/CHANGELOG.md +++ b/packages/catalog/CHANGELOG.md @@ -5,6 +5,7 @@ ### Added - Models now materialize an optional `tokenizer` family in the catalog (`claude-v3`/`v47`/`v5`, Qwen 3.5+, DeepSeek V3/V4/R1, Kimi K2/K3, and GLM-5+). The field follows `requestModelId`, applies to bundled, discovered, and custom models, and can be explicitly overridden in model configuration. +- Subscription Codex GPT-5.6 Sol/Terra/Luna now carry the same `cost.longContext` tier as their first-party API siblings (2x input / 1.5x output above 272K input tokens, [openai/codex#32486](https://github.com/openai/codex/issues/32486)), so cost attribution reflects the higher rating above the threshold and downstream consumers can locate the standard-pricing boundary. ### Fixed diff --git a/packages/catalog/scripts/generated-policies.ts b/packages/catalog/scripts/generated-policies.ts index 2ca015337..3f89ef6b6 100644 --- a/packages/catalog/scripts/generated-policies.ts +++ b/packages/catalog/scripts/generated-policies.ts @@ -508,12 +508,17 @@ function inferGeneratedApplyPatchToolType( function applyOpenAICatalogPolicy(model: ModelSpec, parsedModel: OpenAIModel): void { const isFirstPartyResponses = model.provider === "openai" && model.api === "openai-responses"; + // Subscription Codex rates usage at the same >272K long-context tier as the + // API (openai/codex#32486), so first-party Codex SKUs carry the tier too — + // it drives both cost attribution and the extended-context window clamp. + const isFirstPartyCodex = model.provider === "openai-codex" && model.api === "openai-codex-responses"; if (isFirstPartyResponses && modelOrRequestIdValue(model, OPENAI_NONE_EFFORT_MODEL_IDS)) { model.compat = { ...(model.compat ?? {}), reasoningDisableMode: "none-effort" }; } - const longContextCost = isFirstPartyResponses - ? modelOrRequestIdValue(model, OPENAI_GPT_5_6_LONG_CONTEXT_COST_BY_MODEL_ID) - : undefined; + const longContextCost = + isFirstPartyResponses || isFirstPartyCodex + ? modelOrRequestIdValue(model, OPENAI_GPT_5_6_LONG_CONTEXT_COST_BY_MODEL_ID) + : undefined; if (longContextCost) { model.cost = { ...model.cost, longContext: longContextCost }; } diff --git a/packages/catalog/src/models.json b/packages/catalog/src/models.json index 1315b34e8..ff61f61b5 100644 --- a/packages/catalog/src/models.json +++ b/packages/catalog/src/models.json @@ -26,7 +26,8 @@ "max" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3" }, "deepseek-ai/deepseek-v4-pro": { "id": "deepseek-ai/deepseek-v4-pro", @@ -54,11 +55,12 @@ "max" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3" }, "google/gemma-4-31b-it": { "id": "google/gemma-4-31b-it", - "name": "Gemma 4 31B IT", + "name": "Gemma 4 31B", "api": "openai-completions", "provider": "aiand", "baseUrl": "https://api.aiand.com/v1", @@ -116,7 +118,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k3": { "id": "moonshotai/kimi-k3", @@ -150,7 +153,8 @@ }, "requiresEffort": true }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "kimi-k2" }, "motif-technologies/motif-3": { "id": "motif-technologies/motif-3", @@ -238,7 +242,8 @@ "high" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "qwen3" }, "zai-org/glm-5.2": { "id": "zai-org/glm-5.2", @@ -268,7 +273,8 @@ "max" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "glm5" } }, "aimlapi": { @@ -11706,6 +11712,35 @@ ] } }, + "xai.grok-4.6": { + "id": "xai.grok-4.6", + "name": "Grok 4.6", + "api": "bedrock-converse-stream", + "provider": "amazon-bedrock", + "baseUrl": "https://bedrock-runtime.us-east-1.amazonaws.com", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 2.2, + "output": 6.6, + "cacheRead": 0.55, + "cacheWrite": 0 + }, + "contextWindow": 500000, + "maxTokens": 500000, + "thinking": { + "mode": "budget", + "efforts": [ + "minimal", + "low", + "medium", + "high" + ] + } + }, "zai.glm-4.7": { "id": "zai.glm-4.7", "name": "GLM-4.7", @@ -11812,7 +11847,8 @@ "contextWindow": 200000, "maxTokens": 8192, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-3-5-sonnet-20241022": { "id": "claude-3-5-sonnet-20241022", @@ -11834,7 +11870,8 @@ "contextWindow": 200000, "maxTokens": 8192, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-3-7-sonnet-20250219": { "id": "claude-3-7-sonnet-20250219", @@ -11867,6 +11904,7 @@ }, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "claude-v3", "compat": { "officialEndpoint": true, "signingEndpoint": true, @@ -11902,7 +11940,8 @@ "contextWindow": 200000, "maxTokens": 4096, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-3-opus-20240229": { "id": "claude-3-opus-20240229", @@ -11925,6 +11964,7 @@ "maxTokens": 4096, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "claude-v3", "compat": { "officialEndpoint": true, "signingEndpoint": true, @@ -11961,6 +12001,7 @@ "maxTokens": 4096, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "claude-v3", "compat": { "officialEndpoint": true, "signingEndpoint": true, @@ -12098,7 +12139,8 @@ "supportsDisplay": true }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5-sonnet" }, "claude-opus-4-0": { "id": "claude-opus-4-0", @@ -12130,7 +12172,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-opus-4-1": { "id": "claude-opus-4-1", @@ -12162,7 +12205,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-opus-4-1-20250805": { "id": "claude-opus-4-1-20250805", @@ -12184,7 +12228,8 @@ "contextWindow": 200000, "maxTokens": 32000, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-opus-4-20250514": { "id": "claude-opus-4-20250514", @@ -12206,7 +12251,8 @@ "contextWindow": 200000, "maxTokens": 32000, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-opus-4-5": { "id": "claude-opus-4-5", @@ -12420,7 +12466,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-sonnet-4-20250514": { "id": "claude-sonnet-4-20250514", @@ -12442,7 +12489,8 @@ "contextWindow": 200000, "maxTokens": 64000, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-sonnet-4-5": { "id": "claude-sonnet-4-5", @@ -13628,7 +13676,7 @@ "baseten": { "deepseek-ai/DeepSeek-V4-Flash-0731": { "id": "deepseek-ai/DeepSeek-V4-Flash-0731", - "name": "Deepseek V4 Flash 0731", + "name": "DeepSeek V4 Flash 0731", "api": "openai-completions", "provider": "baseten", "baseUrl": "https://inference.baseten.co/v1", @@ -13645,11 +13693,12 @@ "contextWindow": 1048576, "maxTokens": 1048576, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek-ai/DeepSeek-V4-Pro": { "id": "deepseek-ai/DeepSeek-V4-Pro", - "name": "Deepseek V4 Pro", + "name": "DeepSeek V4 Pro", "api": "openai-completions", "provider": "baseten", "baseUrl": "https://inference.baseten.co/v1", @@ -13663,7 +13712,7 @@ "cacheRead": 0.145, "cacheWrite": 0 }, - "contextWindow": 262144, + "contextWindow": 1048576, "maxTokens": 262144, "thinking": { "mode": "effort", @@ -13674,7 +13723,29 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" + }, + "deepseek-ai/DeepSeek-V4-Pro-0813": { + "id": "deepseek-ai/DeepSeek-V4-Pro-0813", + "name": "DeepSeek V4 Pro 0813", + "api": "openai-completions", + "provider": "baseten", + "baseUrl": "https://inference.baseten.co/v1", + "reasoning": false, + "input": [ + "text" + ], + "cost": { + "input": 1.32, + "output": 3.9600000000000004, + "cacheRead": 0.13199999999999998, + "cacheWrite": 0 + }, + "contextWindow": 1048576, + "maxTokens": 262144, + "tokenizer": "deepseek-v3", + "supportsComputerUse": false }, "moonshotai/Kimi-K2.6": { "id": "moonshotai/Kimi-K2.6", @@ -13706,7 +13777,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/Kimi-K2.7-Code": { "id": "moonshotai/Kimi-K2.7-Code", @@ -13738,7 +13810,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/Kimi-K3": { "id": "moonshotai/Kimi-K3", @@ -13773,7 +13846,8 @@ "max": "max" }, "requiresEffort": true - } + }, + "tokenizer": "kimi-k2" }, "nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B": { "id": "nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B", @@ -13917,7 +13991,8 @@ "baseUrl": "https://inference.baseten.co/v1", "reasoning": true, "input": [ - "text" + "text", + "image" ], "cost": { "input": 1.4, @@ -13935,7 +14010,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" }, "zai-org/GLM-5.2-Fast": { "id": "zai-org/GLM-5.2-Fast", @@ -13945,7 +14021,8 @@ "baseUrl": "https://inference.baseten.co/v1", "reasoning": true, "input": [ - "text" + "text", + "image" ], "cost": { "input": 2.0999999999999996, @@ -13963,7 +14040,8 @@ "high", "max" ] - } + }, + "tokenizer": "glm5" } }, "bedrock-mantle": { @@ -14286,7 +14364,8 @@ "high", "xhigh" ] - } + }, + "supportsComputerUse": false } }, "cloudflare-ai-gateway": { @@ -14471,6 +14550,36 @@ ] } }, + "anthropic/claude-haiku-4.5": { + "id": "anthropic/claude-haiku-4.5", + "name": "Claude Haiku 4.5", + "api": "anthropic-messages", + "provider": "cloudflare-ai-gateway", + "baseUrl": "https://gateway.ai.cloudflare.com/v1///anthropic", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 1, + "output": 5, + "cacheRead": 0.1, + "cacheWrite": 1.25 + }, + "contextWindow": 200000, + "maxTokens": 64000, + "thinking": { + "mode": "budget", + "efforts": [ + "minimal", + "low", + "medium", + "high", + "xhigh" + ] + } + }, "anthropic/claude-opus-4": { "id": "anthropic/claude-opus-4", "name": "Claude Opus 4", @@ -14652,6 +14761,127 @@ "supportsDisplay": true } }, + "anthropic/claude-opus-4.5": { + "id": "anthropic/claude-opus-4.5", + "name": "Claude Opus 4.5", + "api": "anthropic-messages", + "provider": "cloudflare-ai-gateway", + "baseUrl": "https://gateway.ai.cloudflare.com/v1///anthropic", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 5, + "output": 25, + "cacheRead": 0.5, + "cacheWrite": 6.25 + }, + "contextWindow": 200000, + "maxTokens": 64000, + "thinking": { + "mode": "anthropic-budget-effort", + "efforts": [ + "minimal", + "low", + "medium", + "high", + "xhigh" + ] + } + }, + "anthropic/claude-opus-4.6": { + "id": "anthropic/claude-opus-4.6", + "name": "Claude Opus 4.6", + "api": "anthropic-messages", + "provider": "cloudflare-ai-gateway", + "baseUrl": "https://gateway.ai.cloudflare.com/v1///anthropic", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 5, + "output": 25, + "cacheRead": 0.5, + "cacheWrite": 6.25 + }, + "contextWindow": 1000000, + "maxTokens": 128000, + "thinking": { + "mode": "anthropic-adaptive", + "efforts": [ + "low", + "medium", + "high", + "max" + ] + } + }, + "anthropic/claude-opus-4.7": { + "id": "anthropic/claude-opus-4.7", + "name": "Claude Opus 4.7", + "api": "anthropic-messages", + "provider": "cloudflare-ai-gateway", + "baseUrl": "https://gateway.ai.cloudflare.com/v1///anthropic", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 5, + "output": 25, + "cacheRead": 0.5, + "cacheWrite": 6.25 + }, + "contextWindow": 1000000, + "maxTokens": 128000, + "thinking": { + "mode": "anthropic-adaptive", + "efforts": [ + "low", + "medium", + "high", + "xhigh", + "max" + ], + "supportsDisplay": true + } + }, + "anthropic/claude-opus-4.8": { + "id": "anthropic/claude-opus-4.8", + "name": "Claude Opus 4.8", + "api": "anthropic-messages", + "provider": "cloudflare-ai-gateway", + "baseUrl": "https://gateway.ai.cloudflare.com/v1///anthropic", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 5, + "output": 25, + "cacheRead": 0.5, + "cacheWrite": 6.25 + }, + "contextWindow": 1000000, + "maxTokens": 128000, + "thinking": { + "mode": "anthropic-adaptive", + "efforts": [ + "low", + "medium", + "high", + "xhigh", + "max" + ], + "supportsDisplay": true + } + }, "anthropic/claude-opus-5": { "id": "anthropic/claude-opus-5", "name": "Claude Opus 5", @@ -14771,6 +15001,64 @@ ] } }, + "anthropic/claude-sonnet-4.5": { + "id": "anthropic/claude-sonnet-4.5", + "name": "Claude Sonnet 4.5", + "api": "anthropic-messages", + "provider": "cloudflare-ai-gateway", + "baseUrl": "https://gateway.ai.cloudflare.com/v1///anthropic", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 3, + "output": 15, + "cacheRead": 0.3, + "cacheWrite": 3.75 + }, + "contextWindow": 1000000, + "maxTokens": 64000, + "thinking": { + "mode": "budget", + "efforts": [ + "minimal", + "low", + "medium", + "high", + "xhigh" + ] + } + }, + "anthropic/claude-sonnet-4.6": { + "id": "anthropic/claude-sonnet-4.6", + "name": "Claude Sonnet 4.6", + "api": "anthropic-messages", + "provider": "cloudflare-ai-gateway", + "baseUrl": "https://gateway.ai.cloudflare.com/v1///anthropic", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 3, + "output": 15, + "cacheRead": 0.3, + "cacheWrite": 3.75 + }, + "contextWindow": 1000000, + "maxTokens": 128000, + "thinking": { + "mode": "anthropic-adaptive", + "efforts": [ + "low", + "medium", + "high" + ] + } + }, "anthropic/claude-sonnet-5": { "id": "anthropic/claude-sonnet-5", "name": "Claude Sonnet 5", @@ -14973,9 +15261,9 @@ "image" ], "cost": { - "input": 2.5, - "output": 10, - "cacheRead": 1.25, + "input": 1.25, + "output": 5, + "cacheRead": 0.625, "cacheWrite": 0 }, "contextWindow": 128000, @@ -14993,9 +15281,9 @@ "image" ], "cost": { - "input": 0.15, - "output": 0.6, - "cacheRead": 0.075, + "input": 0.075, + "output": 0.3, + "cacheRead": 0.0375, "cacheWrite": 0 }, "contextWindow": 128000, @@ -17031,6 +17319,35 @@ ] } }, + "Qwen/Qwen3.8-27B": { + "id": "Qwen/Qwen3.8-27B", + "name": "Qwen3.8 27B", + "api": "openai-completions", + "provider": "coreweave", + "baseUrl": "https://api.inference.wandb.ai/v1", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 0.4, + "output": 3, + "cacheRead": 0.15, + "cacheWrite": 0 + }, + "contextWindow": 262144, + "maxTokens": 262144, + "thinking": { + "mode": "effort", + "efforts": [ + "minimal", + "low", + "medium", + "high" + ] + } + }, "zai-org/GLM-5-FP8": { "id": "zai-org/GLM-5-FP8", "name": "GLM 5", @@ -17147,7 +17464,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-4.5-opus-high": { "id": "claude-4.5-opus-high", @@ -17186,7 +17504,8 @@ }, "supportsComputerUse": false, "cursorMaxMode": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-4.5-sonnet": { "id": "claude-4.5-sonnet", @@ -17225,7 +17544,8 @@ }, "supportsComputerUse": false, "cursorMaxMode": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-4.6-opus-high": { "id": "claude-4.6-opus-high", @@ -17263,7 +17583,8 @@ }, "supportsComputerUse": false, "cursorMaxMode": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-4.6-opus-max": { "id": "claude-4.6-opus-max", @@ -17302,7 +17623,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-4.6-sonnet-medium": { "id": "claude-4.6-sonnet-medium", @@ -17340,7 +17662,8 @@ }, "supportsComputerUse": false, "cursorMaxMode": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-fable-5-high": { "id": "claude-fable-5-high", @@ -17379,7 +17702,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5-sonnet" }, "claude-fable-5-low": { "id": "claude-fable-5-low", @@ -17418,7 +17742,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5-sonnet" }, "claude-fable-5-max": { "id": "claude-fable-5-max", @@ -17457,7 +17782,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5-sonnet" }, "claude-fable-5-medium": { "id": "claude-fable-5-medium", @@ -17496,7 +17822,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5-sonnet" }, "claude-fable-5-xhigh": { "id": "claude-fable-5-xhigh", @@ -17535,7 +17862,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5-sonnet" }, "claude-opus-4-7-high": { "id": "claude-opus-4-7-high", @@ -17574,7 +17902,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "claude-opus-4-7-high-fast": { "id": "claude-opus-4-7-high-fast", @@ -17613,7 +17942,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "claude-opus-4-7-low": { "id": "claude-opus-4-7-low", @@ -17652,7 +17982,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "claude-opus-4-7-low-fast": { "id": "claude-opus-4-7-low-fast", @@ -17691,7 +18022,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "claude-opus-4-7-max": { "id": "claude-opus-4-7-max", @@ -17730,7 +18062,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "claude-opus-4-7-max-fast": { "id": "claude-opus-4-7-max-fast", @@ -17769,7 +18102,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "claude-opus-4-7-medium": { "id": "claude-opus-4-7-medium", @@ -17808,7 +18142,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "claude-opus-4-7-medium-fast": { "id": "claude-opus-4-7-medium-fast", @@ -17847,7 +18182,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "claude-opus-4-7-xhigh": { "id": "claude-opus-4-7-xhigh", @@ -17886,7 +18222,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "claude-opus-4-7-xhigh-fast": { "id": "claude-opus-4-7-xhigh-fast", @@ -17925,7 +18262,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "claude-opus-4-8-high": { "id": "claude-opus-4-8-high", @@ -17964,7 +18302,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "claude-opus-4-8-high-fast": { "id": "claude-opus-4-8-high-fast", @@ -18003,7 +18342,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "claude-opus-4-8-low": { "id": "claude-opus-4-8-low", @@ -18042,7 +18382,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "claude-opus-4-8-low-fast": { "id": "claude-opus-4-8-low-fast", @@ -18081,7 +18422,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "claude-opus-4-8-max": { "id": "claude-opus-4-8-max", @@ -18120,7 +18462,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "claude-opus-4-8-max-fast": { "id": "claude-opus-4-8-max-fast", @@ -18159,7 +18502,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "claude-opus-4-8-medium": { "id": "claude-opus-4-8-medium", @@ -18198,7 +18542,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "claude-opus-4-8-medium-fast": { "id": "claude-opus-4-8-medium-fast", @@ -18237,7 +18582,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "claude-opus-4-8-xhigh": { "id": "claude-opus-4-8-xhigh", @@ -18276,7 +18622,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "claude-opus-4-8-xhigh-fast": { "id": "claude-opus-4-8-xhigh-fast", @@ -18315,7 +18662,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "claude-opus-5-high": { "id": "claude-opus-5-high", @@ -18354,7 +18702,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5" }, "claude-opus-5-high-fast": { "id": "claude-opus-5-high-fast", @@ -18393,7 +18742,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5" }, "claude-opus-5-low": { "id": "claude-opus-5-low", @@ -18432,7 +18782,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5" }, "claude-opus-5-low-fast": { "id": "claude-opus-5-low-fast", @@ -18471,7 +18822,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5" }, "claude-opus-5-medium": { "id": "claude-opus-5-medium", @@ -18510,7 +18862,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5" }, "claude-opus-5-medium-fast": { "id": "claude-opus-5-medium-fast", @@ -18549,7 +18902,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5" }, "claude-opus-5-thinking-max": { "id": "claude-opus-5-thinking-max", @@ -18572,7 +18926,8 @@ "maxTokens": 64000, "cursorMaxMode": false, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5" }, "claude-opus-5-thinking-max-fast": { "id": "claude-opus-5-thinking-max-fast", @@ -18595,7 +18950,8 @@ "maxTokens": 64000, "cursorMaxMode": true, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5" }, "claude-opus-5-thinking-xhigh": { "id": "claude-opus-5-thinking-xhigh", @@ -18618,7 +18974,8 @@ "maxTokens": 64000, "cursorMaxMode": false, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5" }, "claude-opus-5-thinking-xhigh-fast": { "id": "claude-opus-5-thinking-xhigh-fast", @@ -18641,7 +18998,8 @@ "maxTokens": 64000, "cursorMaxMode": true, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5" }, "claude-sonnet-5-high": { "id": "claude-sonnet-5-high", @@ -18680,7 +19038,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5-sonnet" }, "claude-sonnet-5-low": { "id": "claude-sonnet-5-low", @@ -18719,7 +19078,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5-sonnet" }, "claude-sonnet-5-max": { "id": "claude-sonnet-5-max", @@ -18758,7 +19118,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5-sonnet" }, "claude-sonnet-5-medium": { "id": "claude-sonnet-5-medium", @@ -18797,7 +19158,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5-sonnet" }, "claude-sonnet-5-xhigh": { "id": "claude-sonnet-5-xhigh", @@ -18836,7 +19198,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5-sonnet" }, "composer-1": { "id": "composer-1", @@ -18924,13 +19287,13 @@ "supportsComputerUse": false, "supportsComputerUseConfig": false }, - "cursor-grok-4.5-high": { - "id": "cursor-grok-4.5-high", - "name": "Cursor Grok 4.5", + "cursor-grok-4.5": { + "id": "cursor-grok-4.5", + "name": "Grok 4.5", "api": "cursor-agent", "provider": "cursor", "baseUrl": "https://api2.cursor.sh", - "reasoning": false, + "reasoning": true, "input": [ "text" ], @@ -18944,15 +19307,30 @@ "maxTokens": 64000, "cursorMaxMode": false, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "thinking": { + "mode": "effort", + "efforts": [ + "low", + "medium", + "high" + ], + "requiresEffort": true, + "effortRouting": { + "low": "cursor-grok-4.5-low", + "medium": "cursor-grok-4.5-medium", + "high": "cursor-grok-4.5-high" + } + }, + "requestModelId": "cursor-grok-4.5-low" }, - "cursor-grok-4.5-high-fast": { - "id": "cursor-grok-4.5-high-fast", - "name": "Cursor Grok 4.5 Fast", + "cursor-grok-4.5-fast": { + "id": "cursor-grok-4.5-fast", + "name": "Grok 4.5 Fast", "api": "cursor-agent", "provider": "cursor", "baseUrl": "https://api2.cursor.sh", - "reasoning": false, + "reasoning": true, "input": [ "text" ], @@ -18966,15 +19344,30 @@ "maxTokens": 64000, "cursorMaxMode": false, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "thinking": { + "mode": "effort", + "efforts": [ + "low", + "medium", + "high" + ], + "requiresEffort": true, + "effortRouting": { + "low": "cursor-grok-4.5-low-fast", + "medium": "cursor-grok-4.5-medium-fast", + "high": "cursor-grok-4.5-high-fast" + } + }, + "requestModelId": "cursor-grok-4.5-low-fast" }, - "cursor-grok-4.5-low": { - "id": "cursor-grok-4.5-low", - "name": "Cursor Grok 4.5 Low", + "cursor-grok-4.6": { + "id": "cursor-grok-4.6", + "name": "Grok 4.6", "api": "cursor-agent", "provider": "cursor", "baseUrl": "https://api2.cursor.sh", - "reasoning": false, + "reasoning": true, "input": [ "text" ], @@ -18988,15 +19381,32 @@ "maxTokens": 64000, "cursorMaxMode": false, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "thinking": { + "mode": "effort", + "efforts": [ + "low", + "medium", + "high", + "xhigh" + ], + "requiresEffort": true, + "effortRouting": { + "low": "cursor-grok-4.6-low", + "medium": "cursor-grok-4.6-medium", + "high": "cursor-grok-4.6-high", + "xhigh": "cursor-grok-4.6-xhigh" + } + }, + "requestModelId": "cursor-grok-4.6-low" }, - "cursor-grok-4.5-low-fast": { - "id": "cursor-grok-4.5-low-fast", - "name": "Cursor Grok 4.5 Low Fast", + "cursor-grok-4.6-fast": { + "id": "cursor-grok-4.6-fast", + "name": "Grok 4.6 Fast", "api": "cursor-agent", "provider": "cursor", "baseUrl": "https://api2.cursor.sh", - "reasoning": false, + "reasoning": true, "input": [ "text" ], @@ -19010,227 +19420,24 @@ "maxTokens": 64000, "cursorMaxMode": false, "supportsComputerUse": false, - "supportsComputerUseConfig": false - }, - "cursor-grok-4.5-medium": { - "id": "cursor-grok-4.5-medium", - "name": "Cursor Grok 4.5 Medium", - "api": "cursor-agent", - "provider": "cursor", - "baseUrl": "https://api2.cursor.sh", - "reasoning": false, - "input": [ - "text" - ], - "cost": { - "input": 0, - "output": 0, - "cacheRead": 0, - "cacheWrite": 0 + "supportsComputerUseConfig": false, + "thinking": { + "mode": "effort", + "efforts": [ + "low", + "medium", + "high", + "xhigh" + ], + "requiresEffort": true, + "effortRouting": { + "low": "cursor-grok-4.6-low-fast", + "medium": "cursor-grok-4.6-medium-fast", + "high": "cursor-grok-4.6-high-fast", + "xhigh": "cursor-grok-4.6-xhigh-fast" + } }, - "contextWindow": 200000, - "maxTokens": 64000, - "cursorMaxMode": false, - "supportsComputerUse": false, - "supportsComputerUseConfig": false - }, - "cursor-grok-4.5-medium-fast": { - "id": "cursor-grok-4.5-medium-fast", - "name": "Cursor Grok 4.5 Medium Fast", - "api": "cursor-agent", - "provider": "cursor", - "baseUrl": "https://api2.cursor.sh", - "reasoning": false, - "input": [ - "text" - ], - "cost": { - "input": 0, - "output": 0, - "cacheRead": 0, - "cacheWrite": 0 - }, - "contextWindow": 200000, - "maxTokens": 64000, - "cursorMaxMode": false, - "supportsComputerUse": false, - "supportsComputerUseConfig": false - }, - "cursor-grok-4.6-high": { - "id": "cursor-grok-4.6-high", - "name": "Cursor Grok 4.6", - "api": "cursor-agent", - "provider": "cursor", - "baseUrl": "https://api2.cursor.sh", - "reasoning": false, - "input": [ - "text" - ], - "cost": { - "input": 0, - "output": 0, - "cacheRead": 0, - "cacheWrite": 0 - }, - "contextWindow": 200000, - "maxTokens": 64000, - "cursorMaxMode": false, - "supportsComputerUse": false, - "supportsComputerUseConfig": false - }, - "cursor-grok-4.6-high-fast": { - "id": "cursor-grok-4.6-high-fast", - "name": "Cursor Grok 4.6 Fast", - "api": "cursor-agent", - "provider": "cursor", - "baseUrl": "https://api2.cursor.sh", - "reasoning": false, - "input": [ - "text" - ], - "cost": { - "input": 0, - "output": 0, - "cacheRead": 0, - "cacheWrite": 0 - }, - "contextWindow": 200000, - "maxTokens": 64000, - "cursorMaxMode": false, - "supportsComputerUse": false, - "supportsComputerUseConfig": false - }, - "cursor-grok-4.6-low": { - "id": "cursor-grok-4.6-low", - "name": "Cursor Grok 4.6 Low", - "api": "cursor-agent", - "provider": "cursor", - "baseUrl": "https://api2.cursor.sh", - "reasoning": false, - "input": [ - "text" - ], - "cost": { - "input": 0, - "output": 0, - "cacheRead": 0, - "cacheWrite": 0 - }, - "contextWindow": 200000, - "maxTokens": 64000, - "cursorMaxMode": false, - "supportsComputerUse": false, - "supportsComputerUseConfig": false - }, - "cursor-grok-4.6-low-fast": { - "id": "cursor-grok-4.6-low-fast", - "name": "Cursor Grok 4.6 Low Fast", - "api": "cursor-agent", - "provider": "cursor", - "baseUrl": "https://api2.cursor.sh", - "reasoning": false, - "input": [ - "text" - ], - "cost": { - "input": 0, - "output": 0, - "cacheRead": 0, - "cacheWrite": 0 - }, - "contextWindow": 200000, - "maxTokens": 64000, - "cursorMaxMode": false, - "supportsComputerUse": false, - "supportsComputerUseConfig": false - }, - "cursor-grok-4.6-medium": { - "id": "cursor-grok-4.6-medium", - "name": "Cursor Grok 4.6 Medium", - "api": "cursor-agent", - "provider": "cursor", - "baseUrl": "https://api2.cursor.sh", - "reasoning": false, - "input": [ - "text" - ], - "cost": { - "input": 0, - "output": 0, - "cacheRead": 0, - "cacheWrite": 0 - }, - "contextWindow": 200000, - "maxTokens": 64000, - "cursorMaxMode": false, - "supportsComputerUse": false, - "supportsComputerUseConfig": false - }, - "cursor-grok-4.6-medium-fast": { - "id": "cursor-grok-4.6-medium-fast", - "name": "Cursor Grok 4.6 Medium Fast", - "api": "cursor-agent", - "provider": "cursor", - "baseUrl": "https://api2.cursor.sh", - "reasoning": false, - "input": [ - "text" - ], - "cost": { - "input": 0, - "output": 0, - "cacheRead": 0, - "cacheWrite": 0 - }, - "contextWindow": 200000, - "maxTokens": 64000, - "cursorMaxMode": false, - "supportsComputerUse": false, - "supportsComputerUseConfig": false - }, - "cursor-grok-4.6-xhigh": { - "id": "cursor-grok-4.6-xhigh", - "name": "Cursor Grok 4.6 Extra High", - "api": "cursor-agent", - "provider": "cursor", - "baseUrl": "https://api2.cursor.sh", - "reasoning": false, - "input": [ - "text" - ], - "cost": { - "input": 0, - "output": 0, - "cacheRead": 0, - "cacheWrite": 0 - }, - "contextWindow": 200000, - "maxTokens": 64000, - "cursorMaxMode": false, - "supportsComputerUse": false, - "supportsComputerUseConfig": false - }, - "cursor-grok-4.6-xhigh-fast": { - "id": "cursor-grok-4.6-xhigh-fast", - "name": "Cursor Grok 4.6 Extra High Fast", - "api": "cursor-agent", - "provider": "cursor", - "baseUrl": "https://api2.cursor.sh", - "reasoning": false, - "input": [ - "text" - ], - "cost": { - "input": 0, - "output": 0, - "cacheRead": 0, - "cacheWrite": 0 - }, - "contextWindow": 200000, - "maxTokens": 64000, - "cursorMaxMode": false, - "supportsComputerUse": false, - "supportsComputerUseConfig": false + "requestModelId": "cursor-grok-4.6-low-fast" }, "default": { "id": "default", @@ -19563,7 +19770,8 @@ "maxTokens": 64000, "cursorMaxMode": false, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" }, "glm-5.2-max": { "id": "glm-5.2-max", @@ -19585,7 +19793,8 @@ "maxTokens": 64000, "cursorMaxMode": false, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" }, "gpt-5-mini": { "id": "gpt-5-mini", @@ -21886,7 +22095,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "kimi-k2.7-code": { "id": "kimi-k2.7-code", @@ -21918,7 +22128,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "kimi-k3-high": { "id": "kimi-k3-high", @@ -21950,7 +22161,8 @@ ], "defaultLevel": "max", "requiresEffort": true - } + }, + "tokenizer": "kimi-k2" }, "kimi-k3-low": { "id": "kimi-k3-low", @@ -21982,7 +22194,8 @@ ], "defaultLevel": "max", "requiresEffort": true - } + }, + "tokenizer": "kimi-k2" }, "kimi-k3-max": { "id": "kimi-k3-max", @@ -22014,7 +22227,8 @@ ], "defaultLevel": "max", "requiresEffort": true - } + }, + "tokenizer": "kimi-k2" } }, "deepseek": { @@ -22186,6 +22400,7 @@ }, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3", "compat": { "supportsToolChoice": false, "requiresAssistantContentForToolCalls": true @@ -22217,7 +22432,8 @@ "max" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3" }, "deepseek-v4-pro": { "id": "deepseek-v4-pro", @@ -22246,6 +22462,7 @@ ] }, "supportsComputerUse": false, + "tokenizer": "deepseek-v3", "compat": { "supportsToolChoice": false, "requiresAssistantContentForToolCalls": true @@ -22262,9 +22479,9 @@ "text" ], "cost": { - "input": 1.73, + "input": 1.65, "output": 4.95, - "cacheRead": 0.33, + "cacheRead": 0.165, "cacheWrite": 0 }, "contextWindow": 1048576, @@ -22277,7 +22494,8 @@ "max" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3" }, "flux-1-schnell-fp8": { "id": "flux-1-schnell-fp8", @@ -22346,7 +22564,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" }, "glm-5.1": { "id": "glm-5.1", @@ -22380,7 +22599,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" }, "glm-5.1-fast": { "id": "glm-5.1-fast", @@ -22414,7 +22634,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" }, "glm-5.2": { "id": "glm-5.2", @@ -22447,7 +22668,8 @@ "minimal": "none" } }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "glm5" }, "glm-5.2-fast": { "id": "glm-5.2-fast", @@ -22481,7 +22703,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" }, "gpt-oss-120b": { "id": "gpt-oss-120b", @@ -22600,7 +22823,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "kimi-k2.6": { "id": "kimi-k2.6", @@ -22634,7 +22858,8 @@ "minimal": "none" } }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "kimi-k2" }, "kimi-k2.6-fast": { "id": "kimi-k2.6-fast", @@ -22669,7 +22894,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "kimi-k2.7-code": { "id": "kimi-k2.7-code", @@ -22703,7 +22929,8 @@ "minimal": "none" } }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "kimi-k2" }, "kimi-k2.7-code-fast": { "id": "kimi-k2.7-code-fast", @@ -22738,7 +22965,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "kimi-k3": { "id": "kimi-k3", @@ -22772,7 +23000,8 @@ }, "requiresEffort": true }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "kimi-k2" }, "minimax-m2.5": { "id": "minimax-m2.5", @@ -23074,6 +23303,7 @@ }, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "qwen3", "compat": { "supportsDeveloperRole": false } @@ -23110,7 +23340,8 @@ "minimal": "none" } }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "qwen3" }, "qwen3.8-2.4t-a95b": { "id": "qwen3.8-2.4t-a95b", @@ -23144,7 +23375,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen3.8-max": { "id": "qwen3.8-max", @@ -23179,7 +23411,8 @@ "minimal": "none" } }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "qwen3" } }, "github-copilot": { @@ -29390,6 +29623,56 @@ "contextWindow": 262144, "maxTokens": 131072 }, + "Qwen/Qwen3-VL-235B-A22B-Instruct": { + "id": "Qwen/Qwen3-VL-235B-A22B-Instruct", + "name": "Qwen3 VL 235B A22B Instruct", + "api": "openai-completions", + "provider": "huggingface", + "baseUrl": "https://router.huggingface.co/v1", + "reasoning": false, + "input": [ + "text", + "image" + ], + "cost": { + "input": 0.3, + "output": 1.5, + "cacheRead": 0, + "cacheWrite": 0 + }, + "contextWindow": 131072, + "maxTokens": 32768 + }, + "Qwen/Qwen3-VL-235B-A22B-Thinking": { + "id": "Qwen/Qwen3-VL-235B-A22B-Thinking", + "name": "Qwen3 VL 235B A22B Thinking", + "api": "openai-completions", + "provider": "huggingface", + "baseUrl": "https://router.huggingface.co/v1", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 0.98, + "output": 3.95, + "cacheRead": 0, + "cacheWrite": 0 + }, + "contextWindow": 131072, + "maxTokens": 32768, + "thinking": { + "mode": "effort", + "efforts": [ + "minimal", + "low", + "medium", + "high" + ], + "requiresEffort": true + } + }, "Qwen/Qwen3.5-122B-A10B": { "id": "Qwen/Qwen3.5-122B-A10B", "name": "Qwen3.5 122B-A10B", @@ -29967,6 +30250,36 @@ ] } }, + "zai-org/GLM-4.6V-Flash": { + "id": "zai-org/GLM-4.6V-Flash", + "name": "GLM-4.6V-Flash", + "api": "openai-completions", + "provider": "huggingface", + "baseUrl": "https://router.huggingface.co/v1", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 0.3, + "output": 0.9, + "cacheRead": 0, + "cacheWrite": 0 + }, + "contextWindow": 131072, + "maxTokens": 32768, + "thinking": { + "mode": "effort", + "efforts": [ + "minimal", + "low", + "medium", + "high", + "xhigh" + ] + } + }, "zai-org/GLM-4.7": { "id": "zai-org/GLM-4.7", "name": "GLM-4.7", @@ -30245,13 +30558,13 @@ "text" ], "cost": { - "input": 0.0603, - "output": 0.1206, - "cacheRead": 0.01206, + "input": 0.07, + "output": 0.14, + "cacheRead": 0.014, "cacheWrite": 0 }, - "contextWindow": 262144, - "maxTokens": 262144, + "contextWindow": 1048576, + "maxTokens": 1048576, "thinking": { "mode": "effort", "efforts": [ @@ -30363,10 +30676,10 @@ "image" ], "cost": { - "input": 5, - "output": 30, - "cacheRead": 0.5, - "cacheWrite": 6.25 + "input": 2.5, + "output": 15, + "cacheRead": 0.25, + "cacheWrite": 3.125 }, "contextWindow": 1050000, "maxTokens": 128000, @@ -30441,6 +30754,35 @@ ] } }, + "~z-ai/glm-latest": { + "id": "~z-ai/glm-latest", + "name": "GLM Latest", + "api": "openai-completions", + "provider": "kilo", + "baseUrl": "https://api.kilo.ai/api/gateway", + "reasoning": true, + "input": [ + "text" + ], + "cost": { + "input": 1.4, + "output": 4.4, + "cacheRead": 0.26, + "cacheWrite": 0 + }, + "contextWindow": 1048576, + "maxTokens": 131072, + "thinking": { + "mode": "effort", + "efforts": [ + "minimal", + "low", + "medium", + "high", + "xhigh" + ] + } + }, "ai21/jamba-large-1.7": { "id": "ai21/jamba-large-1.7", "name": "Jamba Large 1.7", @@ -30458,7 +30800,8 @@ "cacheWrite": 0 }, "contextWindow": 256000, - "maxTokens": 4096 + "maxTokens": 4096, + "supportsComputerUse": false }, "aion-labs/aion-1.0": { "id": "aion-labs/aion-1.0", @@ -30987,7 +31330,8 @@ "contextWindow": 200000, "maxTokens": 8192, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-3.5-sonnet": { "id": "anthropic/claude-3.5-sonnet", @@ -31009,7 +31353,8 @@ "contextWindow": 200000, "maxTokens": 8192, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-3.7-sonnet": { "id": "anthropic/claude-3.7-sonnet", @@ -31041,7 +31386,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-3.7-sonnet:thinking": { "id": "anthropic/claude-3.7-sonnet:thinking", @@ -31062,7 +31408,8 @@ "contextWindow": 200000, "maxTokens": 64000, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-fable-5": { "id": "anthropic/claude-fable-5", @@ -31274,7 +31621,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-opus-4.7": { "id": "anthropic/claude-opus-4.7", @@ -32374,7 +32722,7 @@ "cacheWrite": 0 }, "contextWindow": 163840, - "maxTokens": 65536 + "maxTokens": 163840 }, "deepseek/deepseek-chat-v3.1": { "id": "deepseek/deepseek-chat-v3.1", @@ -32512,7 +32860,7 @@ "cacheWrite": 0 }, "contextWindow": 163840, - "maxTokens": 32768, + "maxTokens": 163840, "thinking": { "mode": "effort", "efforts": [ @@ -32540,7 +32888,8 @@ "contextWindow": 163840, "maxTokens": 32768, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v3.2": { "id": "deepseek/deepseek-v3.2", @@ -32613,7 +32962,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v4-flash": { "id": "deepseek/deepseek-v4-flash", @@ -32715,7 +33065,8 @@ "contextWindow": 1048576, "maxTokens": 384000, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v4-pro": { "id": "deepseek/deepseek-v4-pro", @@ -32734,7 +33085,7 @@ "cacheWrite": 0 }, "contextWindow": 1048576, - "maxTokens": 384000, + "maxTokens": 393216, "thinking": { "mode": "effort", "efforts": [ @@ -32757,10 +33108,10 @@ "cost": { "input": 1.32, "output": 3.96, - "cacheRead": 0.35, + "cacheRead": 0.132, "cacheWrite": 0 }, - "contextWindow": 1048576, + "contextWindow": 1048575, "maxTokens": 384000, "thinking": { "mode": "effort", @@ -33547,10 +33898,10 @@ "image" ], "cost": { - "input": 0.75, - "output": 3.75, - "cacheRead": 0.075, - "cacheWrite": 0.041667 + "input": 1.5, + "output": 7.5, + "cacheRead": 0.15, + "cacheWrite": 0.083333 }, "contextWindow": 1048576, "maxTokens": 65536, @@ -33736,7 +34087,7 @@ "cacheWrite": 0 }, "contextWindow": 262144, - "maxTokens": 262144, + "maxTokens": 16384, "thinking": { "mode": "effort", "efforts": [ @@ -34592,7 +34943,8 @@ }, "contextWindow": null, "maxTokens": null, - "supportsComputerUse": false + "supportsComputerUse": false, + "supportsComputerUseConfig": false }, "meituan/longcat-2.0": { "id": "meituan/longcat-2.0", @@ -34982,8 +35334,8 @@ ], "cost": { "input": 0.3, - "output": 1.2, - "cacheRead": 0.04, + "output": 1.1, + "cacheRead": 0, "cacheWrite": 0 }, "contextWindow": 131072, @@ -35261,7 +35613,7 @@ "cacheRead": 0.03, "cacheWrite": 0 }, - "contextWindow": 196608, + "contextWindow": 65536, "maxTokens": 196608, "thinking": { "mode": "effort", @@ -36014,7 +36366,8 @@ "contextWindow": 262144, "maxTokens": 262144, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2-thinking": { "id": "moonshotai/kimi-k2-thinking", @@ -36095,7 +36448,8 @@ "contextWindow": 262144, "maxTokens": 65536, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2.6": { "id": "moonshotai/kimi-k2.6", @@ -36146,7 +36500,8 @@ "contextWindow": 262144, "maxTokens": 65536, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2.7-code": { "id": "moonshotai/kimi-k2.7-code", @@ -36333,7 +36688,8 @@ "contextWindow": 131072, "maxTokens": 163840, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "nex-agi/nex-n2-mini": { "id": "nex-agi/nex-n2-mini", @@ -38165,6 +38521,36 @@ ] } }, + "openai/gpt-5.6-sol-discounted": { + "id": "openai/gpt-5.6-sol-discounted", + "name": "GPT-5.6 Sol", + "api": "openai-completions", + "provider": "kilo", + "baseUrl": "https://api.kilo.ai/api/gateway", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 2.5, + "output": 15, + "cacheRead": 0.25, + "cacheWrite": 3.125 + }, + "contextWindow": 1050000, + "maxTokens": 128000, + "thinking": { + "mode": "effort", + "efforts": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + } + }, "openai/gpt-5.6-sol-pro": { "id": "openai/gpt-5.6-sol-pro", "name": "GPT-5.6 Sol", @@ -40080,7 +40466,7 @@ "cacheWrite": 0 }, "contextWindow": 262144, - "maxTokens": 262144 + "maxTokens": 16384 }, "qwen/qwen3-next-80b-a3b-thinking": { "id": "qwen/qwen3-next-80b-a3b-thinking", @@ -40299,7 +40685,7 @@ "cacheWrite": 0 }, "contextWindow": 262144, - "maxTokens": 81920, + "maxTokens": 262144, "thinking": { "mode": "effort", "efforts": [ @@ -40357,7 +40743,7 @@ "cacheWrite": 0 }, "contextWindow": 262144, - "maxTokens": 65536, + "maxTokens": 262144, "thinking": { "mode": "effort", "efforts": [ @@ -40530,8 +40916,8 @@ "cacheRead": 0, "cacheWrite": 0 }, - "contextWindow": 131072, - "maxTokens": 131072, + "contextWindow": 262144, + "maxTokens": 65536, "thinking": { "mode": "effort", "efforts": [ @@ -40676,7 +41062,8 @@ "contextWindow": 1000000, "maxTokens": 32000, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.6-plus:free": { "id": "qwen/qwen3.6-plus:free", @@ -40697,7 +41084,8 @@ "contextWindow": 1000000, "maxTokens": 65536, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.7-flash": { "id": "qwen/qwen3.7-flash", @@ -40804,7 +41192,8 @@ "contextWindow": 1000000, "maxTokens": 65536, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.8-2.4t-a95b": { "id": "qwen/qwen3.8-2.4t-a95b", @@ -40846,10 +41235,10 @@ "image" ], "cost": { - "input": 0.45, - "output": 3.2, - "cacheRead": 0.05, - "cacheWrite": 0 + "input": 0.55, + "output": 3.3, + "cacheRead": 0.11, + "cacheWrite": 0.6875 }, "contextWindow": 262144, "maxTokens": 131072, @@ -41343,7 +41732,8 @@ "xhigh", "max" ] - } + }, + "supportsComputerUse": false }, "stealth/qwen3.6-plus": { "id": "stealth/qwen3.6-plus", @@ -42651,12 +43041,12 @@ "text" ], "cost": { - "input": 0.55, - "output": 2.2, - "cacheRead": 0.11, + "input": 0.5, + "output": 2, + "cacheRead": 0.1, "cacheWrite": 0 }, - "contextWindow": 204800, + "contextWindow": 202752, "maxTokens": 131072, "thinking": { "mode": "effort", @@ -42882,7 +43272,7 @@ "cacheWrite": 0 }, "contextWindow": 1048576, - "maxTokens": 262144, + "maxTokens": 131072, "thinking": { "mode": "effort", "efforts": [ @@ -42912,7 +43302,38 @@ }, "contextWindow": 1048576, "maxTokens": 131072, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "glm5", + "supportsComputerUseConfig": false + }, + "z-ai/glm-5.3": { + "id": "z-ai/glm-5.3", + "name": "GLM-5.3", + "api": "openai-completions", + "provider": "kilo", + "baseUrl": "https://api.kilo.ai/api/gateway", + "reasoning": true, + "input": [ + "text" + ], + "cost": { + "input": 1.4, + "output": 4.4, + "cacheRead": 0.26, + "cacheWrite": 0 + }, + "contextWindow": 1048576, + "maxTokens": 131072, + "thinking": { + "mode": "effort", + "efforts": [ + "low", + "high", + "max" + ], + "defaultLevel": "max", + "requiresEffort": true + } }, "z-ai/glm-5v-turbo": { "id": "z-ai/glm-5v-turbo", @@ -43049,6 +43470,7 @@ ] }, "supportsComputerUse": false, + "tokenizer": "kimi-k2", "compat": { "thinkingFormat": "zai", "reasoningContentField": "reasoning_content", @@ -43084,6 +43506,7 @@ ] }, "supportsComputerUse": false, + "tokenizer": "kimi-k2", "compat": { "thinkingFormat": "zai", "reasoningContentField": "reasoning_content", @@ -43113,7 +43536,8 @@ "contextWindow": 262144, "maxTokens": 262144, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "kimi-k2-turbo-preview": { "id": "kimi-k2-turbo-preview", @@ -43138,7 +43562,8 @@ "contextWindow": 262144, "maxTokens": 32000, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "kimi-k2.5": { "id": "kimi-k2.5", @@ -43173,7 +43598,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" } }, "meta": { @@ -43247,7 +43673,7 @@ }, "muse-spark-1.2-contributor": { "id": "muse-spark-1.2-contributor", - "name": "Muse Spark 1.2 Contributor (Data Used for Training)", + "name": "Muse Spark 1.2 Contributor", "api": "openai-responses", "provider": "meta", "baseUrl": "https://api.meta.ai/v1", @@ -45753,7 +46179,8 @@ "contextWindow": 1000000, "maxTokens": 65536, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "allenai/molmo-2-8b": { "id": "allenai/molmo-2-8b", @@ -47264,7 +47691,8 @@ "contextWindow": 200000, "maxTokens": 8192, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-3-5-sonnet-20240620": { "id": "claude-3-5-sonnet-20240620", @@ -47286,7 +47714,8 @@ "contextWindow": 200000, "maxTokens": 8192, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-3-5-sonnet-20241022": { "id": "claude-3-5-sonnet-20241022", @@ -47308,7 +47737,8 @@ "contextWindow": 200000, "maxTokens": 8192, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-3-7-sonnet-20250219": { "id": "claude-3-7-sonnet-20250219", @@ -47329,7 +47759,8 @@ "contextWindow": 4096, "maxTokens": 4096, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-3-7-sonnet-reasoner": { "id": "claude-3-7-sonnet-reasoner", @@ -47350,7 +47781,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-3-7-sonnet-thinking": { "id": "claude-3-7-sonnet-thinking", @@ -47371,7 +47803,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-3-7-sonnet-thinking:1024": { "id": "claude-3-7-sonnet-thinking:1024", @@ -47392,7 +47825,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-3-7-sonnet-thinking:128000": { "id": "claude-3-7-sonnet-thinking:128000", @@ -47413,7 +47847,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-3-7-sonnet-thinking:32768": { "id": "claude-3-7-sonnet-thinking:32768", @@ -47434,7 +47869,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-3-7-sonnet-thinking:8192": { "id": "claude-3-7-sonnet-thinking:8192", @@ -47455,7 +47891,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-haiku-4-5-20251001": { "id": "claude-haiku-4-5-20251001", @@ -48592,6 +49029,7 @@ }, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3", "compat": { "disableReasoningOnToolChoice": false, "requiresReasoningContentForToolCalls": false, @@ -48702,7 +49140,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek-reasoner": { "id": "deepseek-reasoner", @@ -48723,7 +49162,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek-reasoner-cheaper": { "id": "deepseek-reasoner-cheaper", @@ -48850,7 +49290,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v3.2:thinking": { "id": "deepseek/deepseek-v3.2:thinking", @@ -48958,7 +49399,9 @@ "max" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3", + "supportsComputerUseConfig": false }, "deepseek/deepseek-v4-flash-0731-cheaper:thinking": { "id": "deepseek/deepseek-v4-flash-0731-cheaper:thinking", @@ -48986,7 +49429,9 @@ "max" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3", + "supportsComputerUseConfig": false }, "deepseek/deepseek-v4-flash-0731:thinking": { "id": "deepseek/deepseek-v4-flash-0731:thinking", @@ -49176,7 +49621,9 @@ "max" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3", + "supportsComputerUseConfig": false }, "deepseek/deepseek-v4-pro-cheaper:thinking": { "id": "deepseek/deepseek-v4-pro-cheaper:thinking", @@ -49204,7 +49651,9 @@ "max" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3", + "supportsComputerUseConfig": false }, "deepseek/deepseek-v4-pro:thinking": { "id": "deepseek/deepseek-v4-pro:thinking", @@ -49355,7 +49804,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "supportsComputerUseConfig": false }, "doubao-1-5-thinking-pro-250415": { "id": "doubao-1-5-thinking-pro-250415", @@ -56456,7 +56906,8 @@ "contextWindow": 262144, "maxTokens": 262144, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2-thinking-turbo-original": { "id": "moonshotai/kimi-k2-thinking-turbo-original", @@ -56477,7 +56928,8 @@ "contextWindow": 262000, "maxTokens": 64000, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2.5": { "id": "moonshotai/kimi-k2.5", @@ -56929,7 +57381,8 @@ "contextWindow": 131072, "maxTokens": 163840, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "nex-agi/nex-n2-mini": { "id": "nex-agi/nex-n2-mini", @@ -58525,10 +58978,10 @@ "image" ], "cost": { - "input": 5, - "output": 30, - "cacheRead": 0.5, - "cacheWrite": 6.25 + "input": 2.5, + "output": 15, + "cacheRead": 0.25, + "cacheWrite": 3.125 }, "contextWindow": 1050000, "maxTokens": 128000, @@ -58555,10 +59008,10 @@ "image" ], "cost": { - "input": 5, - "output": 30, - "cacheRead": 0.5, - "cacheWrite": 6.25 + "input": 2.5, + "output": 15, + "cacheRead": 0.25, + "cacheWrite": 3.125 }, "contextWindow": 1050000, "maxTokens": 128000, @@ -58645,10 +59098,10 @@ "image" ], "cost": { - "input": 5, - "output": 30, - "cacheRead": 0.5, - "cacheWrite": 6.25 + "input": 2.5, + "output": 15, + "cacheRead": 0.25, + "cacheWrite": 3.125 }, "contextWindow": 1050000, "maxTokens": 128000, @@ -58675,10 +59128,10 @@ "image" ], "cost": { - "input": 5, - "output": 30, - "cacheRead": 0.5, - "cacheWrite": 6.25 + "input": 2.5, + "output": 15, + "cacheRead": 0.25, + "cacheWrite": 3.125 }, "contextWindow": 1050000, "maxTokens": 128000, @@ -60079,13 +60532,14 @@ }, "Qwen/Qwen3-VL-235B-A22B-Instruct": { "id": "Qwen/Qwen3-VL-235B-A22B-Instruct", - "name": "Qwen/Qwen3-VL-235B-A22B-Instruct", + "name": "Qwen3 VL 235B A22B Instruct", "api": "openai-completions", "provider": "nanogpt", "baseUrl": "https://nano-gpt.com/api/v1", "reasoning": false, "input": [ - "text" + "text", + "image" ], "cost": { "input": 0, @@ -60199,7 +60653,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/Qwen3.6-35B-A3B": { "id": "qwen/Qwen3.6-35B-A3B", @@ -60250,7 +60705,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/Qwen3.6-35B-A3B:thinking": { "id": "qwen/Qwen3.6-35B-A3B:thinking", @@ -60562,7 +61018,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Blossom-V6.4-Derestricted": { "id": "Qwen3.5-27B-Blossom-V6.4-Derestricted", @@ -60583,7 +61040,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Blossom-V6.4-Derestricted-Lite": { "id": "Qwen3.5-27B-Blossom-V6.4-Derestricted-Lite", @@ -60604,7 +61062,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-BlueStar-Derestricted": { "id": "Qwen3.5-27B-BlueStar-Derestricted", @@ -60625,7 +61084,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-BlueStar-Derestricted-Lite": { "id": "Qwen3.5-27B-BlueStar-Derestricted-Lite", @@ -60646,7 +61106,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-BlueStar-v2-Derestricted": { "id": "Qwen3.5-27B-BlueStar-v2-Derestricted", @@ -60667,7 +61128,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-BlueStar-v2-Derestricted-Lite": { "id": "Qwen3.5-27B-BlueStar-v2-Derestricted-Lite", @@ -60688,7 +61150,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-BlueStar-v3-Derestricted": { "id": "Qwen3.5-27B-BlueStar-v3-Derestricted", @@ -60738,7 +61201,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled-Derestricted": { "id": "Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled-Derestricted", @@ -60759,7 +61223,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled-Derestricted-Lite": { "id": "Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled-Derestricted-Lite", @@ -60780,7 +61245,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "Qwen3.5-27B-Dark-Nexus-v3.0-Derestricted": { "id": "Qwen3.5-27B-Dark-Nexus-v3.0-Derestricted", @@ -60801,7 +61267,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Dark-Nexus-v3.0-Derestricted-Lite": { "id": "Qwen3.5-27B-Dark-Nexus-v3.0-Derestricted-Lite", @@ -60822,7 +61289,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Derestricted": { "id": "Qwen3.5-27B-Derestricted", @@ -60843,7 +61311,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Derestricted-Aconite-v0": { "id": "Qwen3.5-27B-Derestricted-Aconite-v0", @@ -60864,7 +61333,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-earica-Derestricted": { "id": "Qwen3.5-27B-earica-Derestricted", @@ -60885,7 +61355,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-earica-Derestricted-Lite": { "id": "Qwen3.5-27B-earica-Derestricted-Lite", @@ -60906,7 +61377,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Enteles-v0-Derestricted": { "id": "Qwen3.5-27B-Enteles-v0-Derestricted", @@ -60927,7 +61399,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Enteles-v0-Derestricted-Lite": { "id": "Qwen3.5-27B-Enteles-v0-Derestricted-Lite", @@ -60948,7 +61421,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Infracelestial": { "id": "Qwen3.5-27B-Infracelestial", @@ -60969,7 +61443,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Marvin-DPO-V2-Derestricted": { "id": "Qwen3.5-27B-Marvin-DPO-V2-Derestricted", @@ -60990,7 +61465,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Marvin-DPO-V2-Derestricted-Lite": { "id": "Qwen3.5-27B-Marvin-DPO-V2-Derestricted-Lite", @@ -61011,7 +61487,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Marvin-V2-Derestricted": { "id": "Qwen3.5-27B-Marvin-V2-Derestricted", @@ -61032,7 +61509,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Marvin-V2-Derestricted-Lite": { "id": "Qwen3.5-27B-Marvin-V2-Derestricted-Lite", @@ -61053,7 +61531,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Melinoe-Derestricted": { "id": "Qwen3.5-27B-Melinoe-Derestricted", @@ -61074,7 +61553,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Melinoe-Derestricted-Lite": { "id": "Qwen3.5-27B-Melinoe-Derestricted-Lite", @@ -61095,7 +61575,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Musica-v1": { "id": "Qwen3.5-27B-Musica-v1", @@ -61116,7 +61597,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-NaNovel-Derestricted": { "id": "Qwen3.5-27B-NaNovel-Derestricted", @@ -61137,7 +61619,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-NaNovel-Derestricted-Lite": { "id": "Qwen3.5-27B-NaNovel-Derestricted-Lite", @@ -61158,7 +61641,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Omega-Evolution-v2.0-Derestricted": { "id": "Qwen3.5-27B-Omega-Evolution-v2.0-Derestricted", @@ -61179,7 +61663,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Omega-Evolution-v2.0-Derestricted-Lite": { "id": "Qwen3.5-27B-Omega-Evolution-v2.0-Derestricted-Lite", @@ -61200,7 +61685,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Omega-Evolution-v2.2-Derestricted": { "id": "Qwen3.5-27B-Omega-Evolution-v2.2-Derestricted", @@ -61221,7 +61707,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Omega-Evolution-v2.2-Derestricted-Lite": { "id": "Qwen3.5-27B-Omega-Evolution-v2.2-Derestricted-Lite", @@ -61242,7 +61729,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Omnimerge-v2-Derestricted": { "id": "Qwen3.5-27B-Omnimerge-v2-Derestricted", @@ -61263,7 +61751,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Omnimerge-v2-Derestricted-Lite": { "id": "Qwen3.5-27B-Omnimerge-v2-Derestricted-Lite", @@ -61284,7 +61773,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Queen-Derestricted": { "id": "Qwen3.5-27B-Queen-Derestricted", @@ -61334,7 +61824,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-QuettaLLMs-Koreasoner-V3-Derestricted": { "id": "Qwen3.5-27B-QuettaLLMs-Koreasoner-V3-Derestricted", @@ -61355,7 +61846,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-QuettaLLMs-Koreasoner-V3-Derestricted-Lite": { "id": "Qwen3.5-27B-QuettaLLMs-Koreasoner-V3-Derestricted-Lite", @@ -61376,7 +61868,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-RpRMax-v1": { "id": "Qwen3.5-27B-RpRMax-v1", @@ -61397,7 +61890,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Vivid-Durian": { "id": "Qwen3.5-27B-Vivid-Durian", @@ -61418,7 +61912,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Writer-Derestricted": { "id": "Qwen3.5-27B-Writer-Derestricted", @@ -61439,7 +61934,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Writer-Derestricted-Lite": { "id": "Qwen3.5-27B-Writer-Derestricted-Lite", @@ -61460,7 +61956,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Writer-V2-Derestricted": { "id": "Qwen3.5-27B-Writer-V2-Derestricted", @@ -61481,7 +61978,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "Qwen3.5-27B-Writer-V2-Derestricted-Lite": { "id": "Qwen3.5-27B-Writer-V2-Derestricted-Lite", @@ -61502,7 +62000,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen3.5-27b:thinking": { "id": "qwen3.5-27b:thinking", @@ -61668,7 +62167,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen3.5-omni-flash": { "id": "qwen3.5-omni-flash", @@ -61689,7 +62189,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen3.5-omni-plus": { "id": "qwen3.5-omni-plus", @@ -61710,7 +62211,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen3.6-max-preview": { "id": "qwen3.6-max-preview", @@ -61731,7 +62233,8 @@ "contextWindow": 262144, "maxTokens": 65536, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen3.7-flash": { "id": "qwen3.7-flash", @@ -61917,9 +62420,9 @@ "image" ], "cost": { - "input": 0.4, - "output": 3, - "cacheRead": 0.2, + "input": 0.2, + "output": 1.4, + "cacheRead": 0.04, "cacheWrite": 0 }, "contextWindow": 262144, @@ -61946,9 +62449,9 @@ "image" ], "cost": { - "input": 0.4, - "output": 3, - "cacheRead": 0.2, + "input": 0.2, + "output": 1.4, + "cacheRead": 0.04, "cacheWrite": 0 }, "contextWindow": 262144, @@ -62011,7 +62514,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen3.8-max:thinking": { "id": "qwen3.8-max:thinking", @@ -62951,7 +63455,8 @@ "contextWindow": 163840, "maxTokens": 32768, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "TEE/deepseek-v3.1": { "id": "TEE/deepseek-v3.1", @@ -62972,7 +63477,8 @@ "contextWindow": 163840, "maxTokens": 8192, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "TEE/deepseek-v3.2": { "id": "TEE/deepseek-v3.2", @@ -62993,7 +63499,8 @@ "contextWindow": 160000, "maxTokens": 8192, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "TEE/deepseek-v4-flash": { "id": "TEE/deepseek-v4-flash", @@ -63049,7 +63556,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "TEE/deepseek-v4-pro-0813": { "id": "TEE/deepseek-v4-pro-0813", @@ -63076,7 +63584,9 @@ "high", "max" ] - } + }, + "tokenizer": "deepseek-v3", + "supportsComputerUse": false }, "TEE/deepseek-v4-pro-0813:thinking": { "id": "TEE/deepseek-v4-pro-0813:thinking", @@ -63103,7 +63613,9 @@ "high", "max" ] - } + }, + "tokenizer": "deepseek-v3", + "supportsComputerUse": false }, "TEE/deepseek-v4-pro:thinking": { "id": "TEE/deepseek-v4-pro:thinking", @@ -63132,7 +63644,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "TEE/gemma-3-27b-it": { "id": "TEE/gemma-3-27b-it", @@ -63336,7 +63849,8 @@ "contextWindow": 204800, "maxTokens": 131072, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" }, "TEE/glm-5-1": { "id": "TEE/glm-5-1", @@ -63375,7 +63889,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" }, "TEE/glm-5.1": { "id": "TEE/glm-5.1", @@ -63533,7 +64048,8 @@ "contextWindow": 262144, "maxTokens": 262144, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "TEE/kimi-k2.5": { "id": "TEE/kimi-k2.5", @@ -63572,7 +64088,8 @@ } }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "TEE/kimi-k2.6": { "id": "TEE/kimi-k2.6", @@ -63911,7 +64428,8 @@ "contextWindow": 262144, "maxTokens": 65536, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "TEE/qwen3.5-397b-a17b": { "id": "TEE/qwen3.5-397b-a17b", @@ -63932,7 +64450,8 @@ "contextWindow": 262144, "maxTokens": 65536, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "TEE/qwen3.6-27b": { "id": "TEE/qwen3.6-27b", @@ -63953,7 +64472,8 @@ "contextWindow": 262144, "maxTokens": 262140, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "TEE/qwen3.6-35b-a3b": { "id": "TEE/qwen3.6-35b-a3b", @@ -63974,7 +64494,8 @@ "contextWindow": 256000, "maxTokens": 65536, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "TEE/qwen3.6-35b-a3b-uncensored": { "id": "TEE/qwen3.6-35b-a3b-uncensored", @@ -66365,7 +66886,8 @@ "contextWindow": null, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" }, "zai-org/glm-5-original": { "id": "zai-org/glm-5-original", @@ -66810,30 +67332,8 @@ "maxTokens": 16000, "supportsTools": true, "supportsComputerUse": false, - "supportsComputerUseConfig": false - }, - "deepseek/deepseek-ocr": { - "id": "deepseek/deepseek-ocr", - "name": "DeepSeek-OCR", - "api": "openai-completions", - "provider": "novita", - "baseUrl": "https://api.novita.ai/openai/v1", - "reasoning": false, - "input": [ - "text", - "image" - ], - "cost": { - "input": 0.03, - "output": 0.03, - "cacheRead": 0, - "cacheWrite": 0 - }, - "contextWindow": 8192, - "maxTokens": 8192, - "supportsTools": false, - "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-ocr-2": { "id": "deepseek/deepseek-ocr-2", @@ -66885,7 +67385,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-r1-0528": { "id": "deepseek/deepseek-r1-0528", @@ -66914,7 +67415,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-r1-0528-qwen3-8b": { "id": "deepseek/deepseek-r1-0528-qwen3-8b", @@ -66936,7 +67438,8 @@ "maxTokens": 32000, "supportsTools": false, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-r1-distill-llama-70b": { "id": "deepseek/deepseek-r1-distill-llama-70b", @@ -66994,7 +67497,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-r1/community": { "id": "deepseek/deepseek-r1/community", @@ -67045,7 +67549,8 @@ "maxTokens": 65536, "supportsTools": true, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v3-turbo": { "id": "deepseek/deepseek-v3-turbo", @@ -67067,7 +67572,8 @@ "maxTokens": 16000, "supportsTools": true, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v3.1": { "id": "deepseek/deepseek-v3.1", @@ -67096,7 +67602,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v3.1-terminus": { "id": "deepseek/deepseek-v3.1-terminus", @@ -67125,7 +67632,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v3.2": { "id": "deepseek/deepseek-v3.2", @@ -67154,7 +67662,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v3.2-exp": { "id": "deepseek/deepseek-v3.2-exp", @@ -67183,7 +67692,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v3/community": { "id": "deepseek/deepseek-v3/community", @@ -67235,7 +67745,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v4-flash-0731": { "id": "deepseek/deepseek-v4-flash-0731", @@ -67265,7 +67776,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v4-pro": { "id": "deepseek/deepseek-v4-pro", @@ -67295,7 +67807,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v4-pro-0813": { "id": "deepseek/deepseek-v4-pro-0813", @@ -67310,7 +67823,7 @@ "cost": { "input": 1.32, "output": 3.96, - "cacheRead": 0.35, + "cacheRead": 0.132, "cacheWrite": 0 }, "contextWindow": 1048576, @@ -67325,7 +67838,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "dev/glm46": { "id": "dev/glm46", @@ -67430,7 +67944,7 @@ }, "google/gemma-4-31b-it": { "id": "google/gemma-4-31b-it", - "name": "Gemma 4 31B IT", + "name": "Gemma 4 31B", "api": "openai-completions", "provider": "novita", "baseUrl": "https://api.novita.ai/openai/v1", @@ -67582,6 +68096,37 @@ "supportsComputerUse": false, "supportsComputerUseConfig": false }, + "inclusionai/ling-3.0-flash-fast": { + "id": "inclusionai/ling-3.0-flash-fast", + "name": "Ling 3.0 Flash Fast", + "api": "openai-completions", + "provider": "novita", + "baseUrl": "https://api.novita.ai/openai/v1", + "reasoning": true, + "input": [ + "text" + ], + "cost": { + "input": 0.06, + "output": 0.18, + "cacheRead": 0.012, + "cacheWrite": 0 + }, + "contextWindow": 262144, + "maxTokens": 32768, + "supportsTools": true, + "thinking": { + "mode": "effort", + "efforts": [ + "minimal", + "low", + "medium", + "high", + "xhigh" + ] + }, + "supportsComputerUse": false + }, "inclusionai/ring-2.6-1t": { "id": "inclusionai/ring-2.6-1t", "name": "Ring-2.6-1T", @@ -68127,7 +68672,8 @@ "maxTokens": 100352, "supportsTools": true, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2-instruct": { "id": "moonshotai/kimi-k2-instruct", @@ -68149,7 +68695,8 @@ "maxTokens": 100352, "supportsTools": true, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2-thinking": { "id": "moonshotai/kimi-k2-thinking", @@ -68182,7 +68729,8 @@ "requiresEffort": true }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2.5": { "id": "moonshotai/kimi-k2.5", @@ -68215,7 +68763,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2.6": { "id": "moonshotai/kimi-k2.6", @@ -68248,7 +68797,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2.7-code": { "id": "moonshotai/kimi-k2.7-code", @@ -68281,7 +68831,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k3": { "id": "moonshotai/kimi-k3", @@ -68317,7 +68868,8 @@ "requiresEffort": true }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "nousresearch/hermes-2-pro-llama-3-8b": { "id": "nousresearch/hermes-2-pro-llama-3-8b", @@ -68675,7 +69227,7 @@ }, "qwen/qwen3-next-80b-a3b-instruct": { "id": "qwen/qwen3-next-80b-a3b-instruct", - "name": "Qwen3-Next 80B-A3B Instruct", + "name": "Qwen3-Next-80B-A3B-Instruct", "api": "openai-completions", "provider": "novita", "baseUrl": "https://api.novita.ai/openai/v1", @@ -68860,7 +69412,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.5-27b": { "id": "qwen/qwen3.5-27b", @@ -68892,7 +69445,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.5-35b-a3b": { "id": "qwen/qwen3.5-35b-a3b", @@ -68924,7 +69478,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.5-397b-a17b": { "id": "qwen/qwen3.5-397b-a17b", @@ -68956,7 +69511,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.5-plus": { "id": "qwen/qwen3.5-plus", @@ -68988,7 +69544,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.6-27b": { "id": "qwen/qwen3.6-27b", @@ -69020,7 +69577,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.6-35b-a3b": { "id": "qwen/qwen3.6-35b-a3b", @@ -69052,7 +69610,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.6-plus": { "id": "qwen/qwen3.6-plus", @@ -69084,7 +69643,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.7-max": { "id": "qwen/qwen3.7-max", @@ -69115,7 +69675,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.8-max": { "id": "qwen/qwen3.8-max", @@ -69147,7 +69708,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "sao10k/l3-70b-euryale-v2.1": { "id": "sao10k/l3-70b-euryale-v2.1", @@ -69674,7 +70236,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" }, "zai-org/glm-5-turbo": { "id": "zai-org/glm-5-turbo", @@ -69706,7 +70269,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" }, "zai-org/glm-5.1": { "id": "zai-org/glm-5.1", @@ -69738,7 +70302,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" }, "zai-org/glm-5.2": { "id": "zai-org/glm-5.2", @@ -69770,7 +70335,40 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" + }, + "zai-org/glm-5.3": { + "id": "zai-org/glm-5.3", + "name": "GLM 5.3 Preview", + "api": "openai-completions", + "provider": "novita", + "baseUrl": "https://api.novita.ai/openai/v1", + "reasoning": true, + "input": [ + "text" + ], + "cost": { + "input": 1.4, + "output": 4.4, + "cacheRead": 0.26, + "cacheWrite": 0 + }, + "contextWindow": 1048576, + "maxTokens": 131072, + "supportsTools": true, + "tokenizer": "glm5", + "thinking": { + "mode": "effort", + "efforts": [ + "low", + "high", + "max" + ], + "defaultLevel": "max", + "requiresEffort": true + }, + "supportsComputerUse": false }, "zai-org/glm-5v-turbo": { "id": "zai-org/glm-5v-turbo", @@ -69803,7 +70401,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" } }, "nvidia": { @@ -73490,7 +74089,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek-v3.2": { "id": "deepseek-v3.2", @@ -73519,7 +74119,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek-v4-flash": { "id": "deepseek-v4-flash", @@ -73604,7 +74205,8 @@ "contextWindow": 1048576, "maxTokens": 65536, "omitMaxOutputTokens": true, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3" }, "deepseek-v4-pro": { "id": "deepseek-v4-pro", @@ -73661,7 +74263,8 @@ "contextWindow": 1048576, "maxTokens": 65536, "omitMaxOutputTokens": true, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3" }, "deepseek-v4-pro:preview": { "id": "deepseek-v4-pro:preview", @@ -73690,7 +74293,8 @@ "contextWindow": 524288, "maxTokens": 65536, "omitMaxOutputTokens": true, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3" }, "devstral-2:123b": { "id": "devstral-2:123b", @@ -73960,7 +74564,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" }, "glm-5.1": { "id": "glm-5.1", @@ -74106,7 +74711,8 @@ "requiresEffort": true }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "kimi-k2:1t": { "id": "kimi-k2:1t", @@ -74128,7 +74734,8 @@ "maxTokens": 262144, "omitMaxOutputTokens": true, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "kimi-k2.5": { "id": "kimi-k2.5", @@ -76542,7 +77149,14 @@ "input": 0.2, "output": 1.2, "cacheRead": 0.02, - "cacheWrite": 0.25 + "cacheWrite": 0.25, + "longContext": { + "inputThreshold": 272000, + "input": 0.4, + "output": 1.8, + "cacheRead": 0.04, + "cacheWrite": 0.5 + } }, "remoteCompaction": { "enabled": true, @@ -76581,7 +77195,14 @@ "input": 5, "output": 30, "cacheRead": 0.5, - "cacheWrite": 6.25 + "cacheWrite": 6.25, + "longContext": { + "inputThreshold": 272000, + "input": 10, + "output": 45, + "cacheRead": 1, + "cacheWrite": 12.5 + } }, "remoteCompaction": { "enabled": true, @@ -76620,7 +77241,14 @@ "input": 2, "output": 12, "cacheRead": 0.2, - "cacheWrite": 2.5 + "cacheWrite": 2.5, + "longContext": { + "inputThreshold": 272000, + "input": 4, + "output": 18, + "cacheRead": 0.4, + "cacheWrite": 5 + } }, "remoteCompaction": { "enabled": true, @@ -77018,7 +77646,7 @@ }, "gpt-5.6-luna": { "id": "gpt-5.6-luna", - "name": "GPT-5.6 Luna (2x usage)", + "name": "GPT-5.6 Luna", "api": "openai-responses", "provider": "opencode-go", "baseUrl": "https://opencode.ai/zen/go/v1", @@ -77028,10 +77656,10 @@ "image" ], "cost": { - "input": 0.1, - "output": 0.6, - "cacheRead": 0.01, - "cacheWrite": 0.125 + "input": 0.2, + "output": 1.2, + "cacheRead": 0.02, + "cacheWrite": 0.25 }, "contextWindow": 1050000, "maxTokens": 128000, @@ -77078,7 +77706,7 @@ }, "hy3": { "id": "hy3", - "name": "Hy3", + "name": "Hy3 (8x usage)", "api": "openai-completions", "provider": "opencode-go", "baseUrl": "https://opencode.ai/zen/go/v1", @@ -77087,9 +77715,9 @@ "text" ], "cost": { - "input": 0.14, - "output": 0.58, - "cacheRead": 0.035, + "input": 0.0175, + "output": 0.0725, + "cacheRead": 0.004375, "cacheWrite": 0 }, "contextWindow": 256000, @@ -77444,6 +78072,36 @@ ] } }, + "muse-spark-1.2-contributor": { + "id": "muse-spark-1.2-contributor", + "name": "Muse Spark 1.2 Contributor", + "api": "openai-responses", + "provider": "opencode-go", + "baseUrl": "https://opencode.ai/zen/go/v1", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 0.1, + "output": 0.2, + "cacheRead": 0.002, + "cacheWrite": 0 + }, + "contextWindow": 1048576, + "maxTokens": 131072, + "thinking": { + "mode": "effort", + "efforts": [ + "minimal", + "low", + "medium", + "high", + "xhigh" + ] + } + }, "qwen3.5-plus": { "id": "qwen3.5-plus", "name": "Qwen3.5 Plus", @@ -78955,7 +79613,7 @@ }, "gpt-5.6-sol": { "id": "gpt-5.6-sol", - "name": "GPT-5.6 Sol", + "name": "GPT-5.6 Sol (50% Off)", "api": "openai-responses", "provider": "opencode-zen", "baseUrl": "https://opencode.ai/zen/v1", @@ -78965,10 +79623,10 @@ "image" ], "cost": { - "input": 5, - "output": 30, - "cacheRead": 0.5, - "cacheWrite": 6.25 + "input": 2.5, + "output": 15, + "cacheRead": 0.25, + "cacheWrite": 3.125 }, "contextWindow": 1050000, "maxTokens": 128000, @@ -80056,7 +80714,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "~anthropic/claude-haiku-latest": { "id": "~anthropic/claude-haiku-latest", @@ -80087,7 +80746,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "~anthropic/claude-opus-latest": { "id": "~anthropic/claude-opus-latest", @@ -80118,7 +80778,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "~anthropic/claude-sonnet-latest": { "id": "~anthropic/claude-sonnet-latest", @@ -80149,7 +80810,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "~deepseek/deepseek-v4-flash-latest": { "id": "~deepseek/deepseek-v4-flash-latest", @@ -80162,13 +80824,13 @@ "text" ], "cost": { - "input": 0.060300000000000006, - "output": 0.12060000000000001, - "cacheRead": 0.01206, + "input": 0.07, + "output": 0.14, + "cacheRead": 0.014, "cacheWrite": 0 }, "contextWindow": 1310720, - "maxTokens": 262144, + "maxTokens": 1048576, "thinking": { "mode": "effort", "efforts": [ @@ -80178,7 +80840,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "~google/gemini-flash-latest": { "id": "~google/gemini-flash-latest", @@ -80285,10 +80948,10 @@ "image" ], "cost": { - "input": 5, - "output": 30, - "cacheRead": 0.5, - "cacheWrite": 6.25 + "input": 2.5, + "output": 15, + "cacheRead": 0.25, + "cacheWrite": 3.125 }, "contextWindow": 1050000, "maxTokens": 128000, @@ -80366,6 +81029,35 @@ "supportsComputerUse": false, "supportsComputerUseConfig": false }, + "~z-ai/glm-latest": { + "id": "~z-ai/glm-latest", + "name": "GLM Latest", + "api": "openrouter", + "provider": "openrouter", + "baseUrl": "https://openrouter.ai/api/v1", + "reasoning": true, + "input": [ + "text" + ], + "cost": { + "input": 1.4, + "output": 4.4, + "cacheRead": 0.26, + "cacheWrite": 0 + }, + "contextWindow": 1048576, + "maxTokens": 131072, + "thinking": { + "mode": "effort", + "efforts": [ + "minimal", + "low", + "medium", + "high" + ] + }, + "supportsComputerUse": false + }, "ai21/jamba-large-1.7": { "id": "ai21/jamba-large-1.7", "name": "Jamba Large 1.7", @@ -80678,7 +81370,8 @@ "contextWindow": 200000, "maxTokens": 4096, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-3.5-haiku": { "id": "anthropic/claude-3.5-haiku", @@ -80700,7 +81393,8 @@ "contextWindow": 200000, "maxTokens": 8192, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-3.5-sonnet": { "id": "anthropic/claude-3.5-sonnet", @@ -80722,7 +81416,8 @@ "contextWindow": 200000, "maxTokens": 8192, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-3.7-sonnet": { "id": "anthropic/claude-3.7-sonnet", @@ -80753,7 +81448,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-3.7-sonnet:thinking": { "id": "anthropic/claude-3.7-sonnet:thinking", @@ -80784,7 +81480,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-fable-5": { "id": "anthropic/claude-fable-5", @@ -80816,7 +81513,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5-sonnet" }, "anthropic/claude-fable-5:batch": { "id": "anthropic/claude-fable-5:batch", @@ -80848,7 +81546,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5-sonnet" }, "anthropic/claude-haiku-4.5": { "id": "anthropic/claude-haiku-4.5", @@ -80879,7 +81578,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-haiku-4.5:batch": { "id": "anthropic/claude-haiku-4.5:batch", @@ -80910,7 +81610,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-opus-4": { "id": "anthropic/claude-opus-4", @@ -80941,7 +81642,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-opus-4.1": { "id": "anthropic/claude-opus-4.1", @@ -80972,7 +81674,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-opus-4.1:batch": { "id": "anthropic/claude-opus-4.1:batch", @@ -81003,7 +81706,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-opus-4.5": { "id": "anthropic/claude-opus-4.5", @@ -81034,7 +81738,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-opus-4.5:batch": { "id": "anthropic/claude-opus-4.5:batch", @@ -81065,7 +81770,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-opus-4.6": { "id": "anthropic/claude-opus-4.6", @@ -81096,7 +81802,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-opus-4.6-fast": { "id": "anthropic/claude-opus-4.6-fast", @@ -81127,7 +81834,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-opus-4.6:batch": { "id": "anthropic/claude-opus-4.6:batch", @@ -81158,7 +81866,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-opus-4.7": { "id": "anthropic/claude-opus-4.7", @@ -81190,7 +81899,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "anthropic/claude-opus-4.7-fast": { "id": "anthropic/claude-opus-4.7-fast", @@ -81222,7 +81932,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "anthropic/claude-opus-4.7:batch": { "id": "anthropic/claude-opus-4.7:batch", @@ -81254,7 +81965,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "anthropic/claude-opus-4.8": { "id": "anthropic/claude-opus-4.8", @@ -81286,7 +81998,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "anthropic/claude-opus-4.8-fast": { "id": "anthropic/claude-opus-4.8-fast", @@ -81318,7 +82031,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "anthropic/claude-opus-4.8:batch": { "id": "anthropic/claude-opus-4.8:batch", @@ -81350,7 +82064,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "anthropic/claude-opus-5": { "id": "anthropic/claude-opus-5", @@ -81382,7 +82097,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5" }, "anthropic/claude-opus-5-fast": { "id": "anthropic/claude-opus-5-fast", @@ -81414,7 +82130,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5" }, "anthropic/claude-opus-5:batch": { "id": "anthropic/claude-opus-5:batch", @@ -81446,7 +82163,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5" }, "anthropic/claude-sonnet-4": { "id": "anthropic/claude-sonnet-4", @@ -81477,7 +82195,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-sonnet-4.5": { "id": "anthropic/claude-sonnet-4.5", @@ -81508,7 +82227,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-sonnet-4.5:batch": { "id": "anthropic/claude-sonnet-4.5:batch", @@ -81539,7 +82259,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-sonnet-4.6": { "id": "anthropic/claude-sonnet-4.6", @@ -81570,7 +82291,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-sonnet-4.6:batch": { "id": "anthropic/claude-sonnet-4.6:batch", @@ -81601,7 +82323,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-sonnet-5": { "id": "anthropic/claude-sonnet-5", @@ -81633,7 +82356,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5-sonnet" }, "anthropic/claude-sonnet-5:batch": { "id": "anthropic/claude-sonnet-5:batch", @@ -81665,7 +82389,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5-sonnet" }, "arcee-ai/trinity-large-preview": { "id": "arcee-ai/trinity-large-preview", @@ -82251,7 +82976,8 @@ "contextWindow": 163840, "maxTokens": 16000, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-chat-v3-0324": { "id": "deepseek/deepseek-chat-v3-0324", @@ -82264,15 +82990,16 @@ "text" ], "cost": { - "input": 0.27, - "output": 1.12, + "input": 0.25, + "output": 1, "cacheRead": 0.135, "cacheWrite": 0 }, "contextWindow": 163840, - "maxTokens": 65536, + "maxTokens": 163840, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-chat-v3.1": { "id": "deepseek/deepseek-chat-v3.1", @@ -82299,7 +83026,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-r1": { "id": "deepseek/deepseek-r1", @@ -82326,7 +83054,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-r1-0528": { "id": "deepseek/deepseek-r1-0528", @@ -82353,7 +83082,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v3.1-terminus": { "id": "deepseek/deepseek-v3.1-terminus", @@ -82367,12 +83097,12 @@ ], "cost": { "input": 0.27, - "output": 0.95, + "output": 1, "cacheRead": 0.13, "cacheWrite": 0 }, "contextWindow": 163840, - "maxTokens": 32768, + "maxTokens": 163840, "thinking": { "mode": "effort", "efforts": [ @@ -82380,7 +83110,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v3.1-terminus:exacto": { "id": "deepseek/deepseek-v3.1-terminus:exacto", @@ -82407,7 +83138,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v3.2": { "id": "deepseek/deepseek-v3.2", @@ -82434,7 +83166,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v3.2-exp": { "id": "deepseek/deepseek-v3.2-exp", @@ -82461,7 +83194,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v4-flash": { "id": "deepseek/deepseek-v4-flash", @@ -82490,7 +83224,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v4-flash-0731": { "id": "deepseek/deepseek-v4-flash-0731", @@ -82519,7 +83254,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v4-flash:free": { "id": "deepseek/deepseek-v4-flash:free", @@ -82548,7 +83284,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v4-pro": { "id": "deepseek/deepseek-v4-pro", @@ -82561,13 +83298,13 @@ "text" ], "cost": { - "input": 1.32, - "output": 3.9600000000000004, - "cacheRead": 0.044, + "input": 1.44, + "output": 2.88, + "cacheRead": 0.1215, "cacheWrite": 0 }, "contextWindow": 1048576, - "maxTokens": 384000, + "maxTokens": 393216, "thinking": { "mode": "effort", "efforts": [ @@ -82575,7 +83312,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v4-pro-0813": { "id": "deepseek/deepseek-v4-pro-0813", @@ -82588,9 +83326,9 @@ "text" ], "cost": { - "input": 1.32, - "output": 3.9600000000000004, - "cacheRead": 0.044, + "input": 1.0559999999999998, + "output": 3.168, + "cacheRead": 0.035199999999999995, "cacheWrite": 0 }, "contextWindow": 1048576, @@ -82604,7 +83342,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "dots-studio/dots-3-note-preview:free": { "id": "dots-studio/dots-3-note-preview:free", @@ -83702,7 +84441,7 @@ }, "google/gemma-4-31b-it": { "id": "google/gemma-4-31b-it", - "name": "Gemma 4 31B IT", + "name": "Gemma 4 31B", "api": "openrouter", "provider": "openrouter", "baseUrl": "https://openrouter.ai/api/v1", @@ -83712,13 +84451,13 @@ "image" ], "cost": { - "input": 0.09999999999999999, + "input": 0.09, "output": 0.33999999999999997, - "cacheRead": 0.09999999999999999, + "cacheRead": 0.049999999999999996, "cacheWrite": 0 }, "contextWindow": 262144, - "maxTokens": 262144, + "maxTokens": 16384, "thinking": { "mode": "effort", "efforts": [ @@ -84649,9 +85388,9 @@ "text" ], "cost": { - "input": 0.22, + "input": 0.22499999999999998, "output": 0.8999999999999999, - "cacheRead": 0.049999999999999996, + "cacheRead": 0.06, "cacheWrite": 0 }, "contextWindow": 204800, @@ -84774,9 +85513,9 @@ "image" ], "cost": { - "input": 0.15, - "output": 0.6, - "cacheRead": 0.03, + "input": 0.3, + "output": 1.2, + "cacheRead": 0.06, "cacheWrite": 0 }, "contextWindow": 524288, @@ -85388,7 +86127,8 @@ "contextWindow": 131072, "maxTokens": 100352, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2-0905": { "id": "moonshotai/kimi-k2-0905", @@ -85409,7 +86149,8 @@ "contextWindow": 262144, "maxTokens": 100352, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2-0905:exacto": { "id": "moonshotai/kimi-k2-0905:exacto", @@ -85430,7 +86171,8 @@ "contextWindow": 262144, "maxTokens": 262144, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2-thinking": { "id": "moonshotai/kimi-k2-thinking", @@ -85461,7 +86203,8 @@ "requiresEffort": true }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2.5": { "id": "moonshotai/kimi-k2.5", @@ -85475,9 +86218,9 @@ "image" ], "cost": { - "input": 0.5700000000000001, - "output": 2.8499999999999996, - "cacheRead": 0.095, + "input": 0.44999999999999996, + "output": 2.25, + "cacheRead": 0.07, "cacheWrite": 0 }, "contextWindow": 262144, @@ -85492,7 +86235,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2.6": { "id": "moonshotai/kimi-k2.6", @@ -85523,7 +86267,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2.6:free": { "id": "moonshotai/kimi-k2.6:free", @@ -85554,7 +86299,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2.7-code": { "id": "moonshotai/kimi-k2.7-code", @@ -85585,7 +86331,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2.7-code:batch": { "id": "moonshotai/kimi-k2.7-code:batch", @@ -85599,9 +86346,9 @@ "image" ], "cost": { - "input": 0.475, - "output": 2, - "cacheRead": 0.095, + "input": 0.95, + "output": 4, + "cacheRead": 0.19, "cacheWrite": 0 }, "contextWindow": 262144, @@ -85616,7 +86363,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k3": { "id": "moonshotai/kimi-k3", @@ -85651,7 +86399,8 @@ "requiresEffort": true }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "nex-agi/deepseek-v3.1-nex-n1": { "id": "nex-agi/deepseek-v3.1-nex-n1", @@ -85672,7 +86421,8 @@ "contextWindow": 131072, "maxTokens": 163840, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "nex-agi/nex-n2-mini": { "id": "nex-agi/nex-n2-mini", @@ -86071,9 +86821,9 @@ "text" ], "cost": { - "input": 0.3, - "output": 1.7999999999999998, - "cacheRead": 0.09999999999999999, + "input": 0.6, + "output": 3.5999999999999996, + "cacheRead": 0.19999999999999998, "cacheWrite": 0 }, "contextWindow": 512288, @@ -87998,10 +88748,10 @@ "image" ], "cost": { - "input": 0.09999999999999999, - "output": 0.6, - "cacheRead": 0.01, - "cacheWrite": 0.125 + "input": 0.19999999999999998, + "output": 1.2, + "cacheRead": 0.02, + "cacheWrite": 0.25 }, "contextWindow": 1050000, "maxTokens": 128000, @@ -88030,10 +88780,10 @@ "image" ], "cost": { - "input": 0.09999999999999999, - "output": 0.6, - "cacheRead": 0.01, - "cacheWrite": 0.125 + "input": 0.19999999999999998, + "output": 1.2, + "cacheRead": 0.02, + "cacheWrite": 0.25 }, "contextWindow": 1050000, "maxTokens": 128000, @@ -88126,10 +88876,10 @@ "image" ], "cost": { - "input": 5, - "output": 30, - "cacheRead": 0.5, - "cacheWrite": 6.25 + "input": 2.5, + "output": 15, + "cacheRead": 0.25, + "cacheWrite": 3.125 }, "contextWindow": 1050000, "maxTokens": 128000, @@ -88158,10 +88908,10 @@ "image" ], "cost": { - "input": 5, - "output": 30, - "cacheRead": 0.5, - "cacheWrite": 6.25 + "input": 2.5, + "output": 15, + "cacheRead": 0.25, + "cacheWrite": 3.125 }, "contextWindow": 1050000, "maxTokens": 128000, @@ -88190,9 +88940,9 @@ "image" ], "cost": { - "input": 2.5, - "output": 15, - "cacheRead": 0.25, + "input": 1.25, + "output": 7.5, + "cacheRead": 0.125, "cacheWrite": 0 }, "contextWindow": 1050000, @@ -88222,9 +88972,9 @@ "image" ], "cost": { - "input": 2.5, - "output": 15, - "cacheRead": 0.25, + "input": 1.25, + "output": 7.5, + "cacheRead": 0.125, "cacheWrite": 0 }, "contextWindow": 1050000, @@ -88254,10 +89004,10 @@ "image" ], "cost": { - "input": 1, - "output": 6, - "cacheRead": 0.09999999999999999, - "cacheWrite": 1.25 + "input": 2, + "output": 12, + "cacheRead": 0.19999999999999998, + "cacheWrite": 2.5 }, "contextWindow": 1050000, "maxTokens": 128000, @@ -88286,10 +89036,10 @@ "image" ], "cost": { - "input": 1, - "output": 6, - "cacheRead": 0.09999999999999999, - "cacheWrite": 1.25 + "input": 2, + "output": 12, + "cacheRead": 0.19999999999999998, + "cacheWrite": 2.5 }, "contextWindow": 1050000, "maxTokens": 128000, @@ -90317,7 +91067,7 @@ }, "qwen/qwen3-next-80b-a3b-instruct": { "id": "qwen/qwen3-next-80b-a3b-instruct", - "name": "Qwen3-Next 80B-A3B Instruct", + "name": "Qwen3-Next-80B-A3B-Instruct", "api": "openrouter", "baseUrl": "https://openrouter.ai/api/v1", "provider": "openrouter", @@ -90326,13 +91076,13 @@ "text" ], "cost": { - "input": 0.09999999999999999, + "input": 0.09, "output": 1.1, "cacheRead": 0.07, "cacheWrite": 0 }, "contextWindow": 262144, - "maxTokens": 262144, + "maxTokens": 16384, "supportsComputerUse": false, "supportsComputerUseConfig": false }, @@ -90584,13 +91334,13 @@ "image" ], "cost": { - "input": 0.29, - "output": 2.4, + "input": 0.26, + "output": 2.08, "cacheRead": 0, "cacheWrite": 0 }, "contextWindow": 262144, - "maxTokens": 81920, + "maxTokens": 262144, "thinking": { "mode": "effort", "efforts": [ @@ -90601,7 +91351,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.5-27b": { "id": "qwen/qwen3.5-27b", @@ -90632,7 +91383,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.5-35b-a3b": { "id": "qwen/qwen3.5-35b-a3b", @@ -90646,13 +91398,13 @@ "image" ], "cost": { - "input": 0.22499999999999998, - "output": 1.7999999999999998, - "cacheRead": 0.22499999999999998, + "input": 0.25, + "output": 1.25, + "cacheRead": 0.25, "cacheWrite": 0 }, "contextWindow": 262144, - "maxTokens": 65536, + "maxTokens": 262144, "thinking": { "mode": "effort", "efforts": [ @@ -90663,7 +91415,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.5-397b-a17b": { "id": "qwen/qwen3.5-397b-a17b", @@ -90694,7 +91447,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.5-9b": { "id": "qwen/qwen3.5-9b", @@ -90725,7 +91479,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.5-flash-02-23": { "id": "qwen/qwen3.5-flash-02-23", @@ -90756,7 +91511,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.5-plus-02-15": { "id": "qwen/qwen3.5-plus-02-15", @@ -90787,7 +91543,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.5-plus-20260420": { "id": "qwen/qwen3.5-plus-20260420", @@ -90818,7 +91575,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.6-27b": { "id": "qwen/qwen3.6-27b", @@ -90832,13 +91590,13 @@ "image" ], "cost": { - "input": 0.28900000000000003, - "output": 2.4, + "input": 0.3, + "output": 2, "cacheRead": 0.03, "cacheWrite": 0 }, "contextWindow": 262144, - "maxTokens": 131072, + "maxTokens": 65536, "thinking": { "mode": "effort", "efforts": [ @@ -90849,7 +91607,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.6-35b-a3b": { "id": "qwen/qwen3.6-35b-a3b", @@ -90880,7 +91639,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.6-flash": { "id": "qwen/qwen3.6-flash", @@ -90911,7 +91671,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.6-max-preview": { "id": "qwen/qwen3.6-max-preview", @@ -90941,7 +91702,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.6-plus": { "id": "qwen/qwen3.6-plus", @@ -90972,7 +91734,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.6-plus-preview:free": { "id": "qwen/qwen3.6-plus-preview:free", @@ -91002,7 +91765,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.6-plus:free": { "id": "qwen/qwen3.6-plus:free", @@ -91033,7 +91797,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.7-flash": { "id": "qwen/qwen3.7-flash", @@ -91064,7 +91829,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.7-max": { "id": "qwen/qwen3.7-max", @@ -91094,7 +91860,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.7-plus": { "id": "qwen/qwen3.7-plus", @@ -91125,7 +91892,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.8-2.4t-a95b": { "id": "qwen/qwen3.8-2.4t-a95b", @@ -91155,7 +91923,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.8-27b": { "id": "qwen/qwen3.8-27b", @@ -91174,7 +91943,7 @@ "cacheRead": 0.049999999999999996, "cacheWrite": 0 }, - "contextWindow": 262144, + "contextWindow": 1000000, "maxTokens": 131072, "thinking": { "mode": "effort", @@ -91186,7 +91955,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwen3.8-max": { "id": "qwen/qwen3.8-max", @@ -91217,7 +91987,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "qwen/qwq-32b": { "id": "qwen/qwq-32b", @@ -91754,9 +92525,9 @@ "image" ], "cost": { - "input": 0.5, - "output": 2.025, - "cacheRead": 0.08499999999999999, + "input": 1, + "output": 4.05, + "cacheRead": 0.16999999999999998, "cacheWrite": 0 }, "contextWindow": 524288, @@ -92631,9 +93402,9 @@ "text" ], "cost": { - "input": 0.55, - "output": 2.2, - "cacheRead": 0.11, + "input": 0.5, + "output": 2, + "cacheRead": 0.09999999999999999, "cacheWrite": 0 }, "contextWindow": 204800, @@ -92799,7 +93570,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" }, "z-ai/glm-5-turbo": { "id": "z-ai/glm-5-turbo", @@ -92820,7 +93592,8 @@ "contextWindow": 202752, "maxTokens": 131072, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" }, "z-ai/glm-5.1": { "id": "z-ai/glm-5.1", @@ -92850,7 +93623,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" }, "z-ai/glm-5.2": { "id": "z-ai/glm-5.2", @@ -92863,13 +93637,13 @@ "text" ], "cost": { - "input": 1.19, - "output": 3.74, - "cacheRead": 0.221, + "input": 0.966, + "output": 3.036, + "cacheRead": 0.1932, "cacheWrite": 0 }, "contextWindow": 1048576, - "maxTokens": 262144, + "maxTokens": 131072, "thinking": { "mode": "effort", "efforts": [ @@ -92881,7 +93655,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" }, "z-ai/glm-5.2:batch": { "id": "z-ai/glm-5.2:batch", @@ -92894,9 +93669,9 @@ "text" ], "cost": { - "input": 0.7, - "output": 2.2, - "cacheRead": 0.13, + "input": 1.4, + "output": 4.4, + "cacheRead": 0.26, "cacheWrite": 0 }, "contextWindow": 512000, @@ -92912,7 +93687,70 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" + }, + "z-ai/glm-5.2:free": { + "id": "z-ai/glm-5.2:free", + "name": "GLM 5.2 (free)", + "api": "openrouter", + "provider": "openrouter", + "baseUrl": "https://openrouter.ai/api/v1", + "reasoning": true, + "input": [ + "text" + ], + "cost": { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + }, + "contextWindow": 256000, + "maxTokens": 256000, + "thinking": { + "mode": "effort", + "efforts": [ + "minimal", + "low", + "medium", + "high", + "xhigh" + ] + }, + "tokenizer": "glm5", + "supportsComputerUse": false + }, + "z-ai/glm-5.3": { + "id": "z-ai/glm-5.3", + "name": "GLM-5.3", + "api": "openrouter", + "provider": "openrouter", + "baseUrl": "https://openrouter.ai/api/v1", + "reasoning": true, + "input": [ + "text" + ], + "cost": { + "input": 1.4, + "output": 4.4, + "cacheRead": 0.26, + "cacheWrite": 0 + }, + "contextWindow": 1048576, + "maxTokens": 131072, + "thinking": { + "mode": "effort", + "efforts": [ + "low", + "high", + "max" + ], + "defaultLevel": "max", + "requiresEffort": true + }, + "tokenizer": "glm5", + "supportsComputerUse": false }, "z-ai/glm-5v-turbo": { "id": "z-ai/glm-5v-turbo", @@ -92934,7 +93772,8 @@ "contextWindow": 202752, "maxTokens": 131072, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" } }, "qianfan": { @@ -93132,7 +93971,8 @@ "requiresEffort": true }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4": { "id": "hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4", @@ -93223,7 +94063,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "qwen3" }, "hf:zai-org/GLM-4.7-Flash": { "id": "hf:zai-org/GLM-4.7-Flash", @@ -93285,7 +94126,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" }, "syn:large:text": { "id": "syn:large:text", @@ -94399,6 +95241,7 @@ "maxTokens": 393215, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3", "compat": { "escapeBuiltinToolNames": true } @@ -94433,6 +95276,7 @@ "maxTokens": 393215, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3", "compat": { "escapeBuiltinToolNames": true } @@ -94499,6 +95343,7 @@ "maxTokens": 131071, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "glm5", "compat": { "escapeBuiltinToolNames": true } @@ -94535,6 +95380,7 @@ }, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2", "compat": { "escapeBuiltinToolNames": true } @@ -94570,6 +95416,7 @@ "maxTokens": 131071, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2", "compat": { "escapeBuiltinToolNames": true } @@ -94605,6 +95452,42 @@ }, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "qwen3", + "compat": { + "escapeBuiltinToolNames": true + } + }, + "umans-qwen3.8-27b-lab": { + "id": "umans-qwen3.8-27b-lab", + "name": "Umans Qwen3.8 27B (lab)", + "api": "anthropic-messages", + "provider": "umans", + "baseUrl": "https://api.code.umans.ai", + "reasoning": true, + "thinking": { + "mode": "budget", + "efforts": [ + "minimal", + "low", + "medium", + "high", + "xhigh" + ] + }, + "input": [ + "text", + "image" + ], + "cost": { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + }, + "contextWindow": 262144, + "maxTokens": 131071, + "tokenizer": "qwen3", + "supportsComputerUse": false, "compat": { "escapeBuiltinToolNames": true } @@ -94869,7 +95752,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "claude-opus-4-7": { "id": "claude-opus-4-7", @@ -94931,7 +95815,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "claude-opus-4-8": { "id": "claude-opus-4-8", @@ -95024,6 +95909,7 @@ }, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "claude-v5", "compat": { "supportsUsageInStreaming": false } @@ -95179,6 +96065,7 @@ }, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "claude-v5-sonnet", "compat": { "supportsUsageInStreaming": false } @@ -95358,9 +96245,9 @@ "text" ], "cost": { - "input": 1.73, + "input": 1.65, "output": 4.95, - "cacheRead": 0.33, + "cacheRead": 0.165, "cacheWrite": 0 }, "contextWindow": 1000000, @@ -95394,6 +96281,7 @@ "maxTokens": 1048576, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3", "compat": { "supportsUsageInStreaming": false } @@ -95538,6 +96426,7 @@ "maxTokens": 131072, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "glm5", "compat": { "supportsUsageInStreaming": false } @@ -95562,6 +96451,7 @@ "maxTokens": 131072, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "glm5", "compat": { "supportsUsageInStreaming": false } @@ -95586,6 +96476,7 @@ "maxTokens": null, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "glm5", "compat": { "supportsUsageInStreaming": false } @@ -96657,6 +97548,7 @@ }, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2", "compat": { "supportsUsageInStreaming": false } @@ -97759,6 +98651,35 @@ ] } }, + "qwen-3-8-27b": { + "id": "qwen-3-8-27b", + "name": "Qwen 3.8 27B", + "api": "openai-completions", + "provider": "venice", + "baseUrl": "https://api.venice.ai/api/v1", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 0.45, + "output": 3.2, + "cacheRead": 0, + "cacheWrite": 0 + }, + "contextWindow": 262144, + "maxTokens": 65536, + "thinking": { + "mode": "effort", + "efforts": [ + "minimal", + "low", + "medium", + "high" + ] + } + }, "qwen-3-8-max": { "id": "qwen-3-8-max", "name": "Qwen 3.8 Max", @@ -98249,6 +99170,35 @@ ] } }, + "z-ai-glm-5-3": { + "id": "z-ai-glm-5-3", + "name": "GLM 5.3", + "api": "openai-completions", + "provider": "venice", + "baseUrl": "https://api.venice.ai/api/v1", + "reasoning": true, + "input": [ + "text" + ], + "cost": { + "input": 1.75, + "output": 5.5, + "cacheRead": 0.325, + "cacheWrite": 0 + }, + "contextWindow": 1000000, + "maxTokens": 131072, + "thinking": { + "mode": "effort", + "efforts": [ + "minimal", + "low", + "medium", + "high", + "xhigh" + ] + } + }, "z-ai-glm-5-turbo": { "id": "z-ai-glm-5-turbo", "name": "GLM 5 Turbo", @@ -98633,7 +99583,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "qwen3" }, "alibaba/qwen3-235b-a22b-thinking": { "id": "alibaba/qwen3-235b-a22b-thinking", @@ -98992,7 +99943,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "qwen3" }, "alibaba/qwen3.5-plus": { "id": "alibaba/qwen3.5-plus", @@ -99023,7 +99975,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "qwen3" }, "alibaba/qwen3.6-27b": { "id": "alibaba/qwen3.6-27b", @@ -99044,7 +99997,8 @@ }, "contextWindow": 256000, "maxTokens": 256000, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "qwen3" }, "alibaba/qwen3.6-plus": { "id": "alibaba/qwen3.6-plus", @@ -99075,7 +100029,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "qwen3" }, "alibaba/qwen3.7-flash": { "id": "alibaba/qwen3.7-flash", @@ -99106,7 +100061,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "qwen3" }, "alibaba/qwen3.7-max": { "id": "alibaba/qwen3.7-max", @@ -99137,7 +100093,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "qwen3" }, "alibaba/qwen3.7-plus": { "id": "alibaba/qwen3.7-plus", @@ -99168,7 +100125,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "qwen3" }, "alibaba/qwen3.8-2.4t-a95b": { "id": "alibaba/qwen3.8-2.4t-a95b", @@ -99198,7 +100156,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "qwen3" }, "alibaba/qwen3.8-27b": { "id": "alibaba/qwen3.8-27b", @@ -99212,13 +100171,13 @@ "image" ], "cost": { - "input": 0, - "output": 0, - "cacheRead": 0, + "input": 0.55, + "output": 3.3000000000000003, + "cacheRead": 0.11, "cacheWrite": 0 }, - "contextWindow": 262144, - "maxTokens": 262133, + "contextWindow": 1000000, + "maxTokens": 131072, "thinking": { "mode": "budget", "efforts": [ @@ -99229,7 +100188,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "qwen3" }, "alibaba/qwen3.8-max": { "id": "alibaba/qwen3.8-max", @@ -99260,7 +100220,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "qwen3" }, "amazon/nova-2-lite": { "id": "amazon/nova-2-lite", @@ -99374,7 +100335,8 @@ }, "contextWindow": 200000, "maxTokens": 4096, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "claude-v3" }, "anthropic/claude-3.5-haiku": { "id": "anthropic/claude-3.5-haiku", @@ -99396,7 +100358,8 @@ "contextWindow": 200000, "maxTokens": 8192, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-3.5-sonnet": { "id": "anthropic/claude-3.5-sonnet", @@ -99418,7 +100381,8 @@ "contextWindow": 200000, "maxTokens": 8192, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-3.5-sonnet-20240620": { "id": "anthropic/claude-3.5-sonnet-20240620", @@ -99440,7 +100404,8 @@ "contextWindow": 200000, "maxTokens": 8192, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-3.7-sonnet": { "id": "anthropic/claude-3.7-sonnet", @@ -99472,7 +100437,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-fable-5": { "id": "anthropic/claude-fable-5", @@ -99504,7 +100470,8 @@ ], "supportsDisplay": true }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "claude-v5-sonnet" }, "anthropic/claude-haiku-4.5": { "id": "anthropic/claude-haiku-4.5", @@ -99535,7 +100502,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "claude-v3" }, "anthropic/claude-opus-4": { "id": "anthropic/claude-opus-4", @@ -99566,7 +100534,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "claude-v3" }, "anthropic/claude-opus-4.1": { "id": "anthropic/claude-opus-4.1", @@ -99598,7 +100567,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-opus-4.5": { "id": "anthropic/claude-opus-4.5", @@ -99629,7 +100599,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "claude-v3" }, "anthropic/claude-opus-4.6": { "id": "anthropic/claude-opus-4.6", @@ -99659,7 +100630,8 @@ "max" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "claude-v3" }, "anthropic/claude-opus-4.7": { "id": "anthropic/claude-opus-4.7", @@ -99691,7 +100663,8 @@ ], "supportsDisplay": true }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "claude-v47" }, "anthropic/claude-opus-4.7-fast": { "id": "anthropic/claude-opus-4.7-fast", @@ -99724,7 +100697,8 @@ "supportsDisplay": true }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v47" }, "anthropic/claude-opus-4.8": { "id": "anthropic/claude-opus-4.8", @@ -99756,7 +100730,8 @@ ], "supportsDisplay": true }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "claude-v47" }, "anthropic/claude-opus-4.8-fast": { "id": "anthropic/claude-opus-4.8-fast", @@ -99788,7 +100763,8 @@ ], "supportsDisplay": true }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "claude-v47" }, "anthropic/claude-opus-5": { "id": "anthropic/claude-opus-5", @@ -99820,7 +100796,8 @@ ], "supportsDisplay": true }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "claude-v5" }, "anthropic/claude-opus-5-fast": { "id": "anthropic/claude-opus-5-fast", @@ -99852,7 +100829,8 @@ ], "supportsDisplay": true }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "claude-v5" }, "anthropic/claude-sonnet-4": { "id": "anthropic/claude-sonnet-4", @@ -99883,7 +100861,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "claude-v3" }, "anthropic/claude-sonnet-4.5": { "id": "anthropic/claude-sonnet-4.5", @@ -99914,7 +100893,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "claude-v3" }, "anthropic/claude-sonnet-4.6": { "id": "anthropic/claude-sonnet-4.6", @@ -99943,7 +100923,8 @@ "high" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "claude-v3" }, "anthropic/claude-sonnet-5": { "id": "anthropic/claude-sonnet-5", @@ -99975,7 +100956,8 @@ ], "supportsDisplay": true }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "claude-v5-sonnet" }, "arcee-ai/trinity-large-preview": { "id": "arcee-ai/trinity-large-preview", @@ -100169,7 +101151,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v3": { "id": "deepseek/deepseek-v3", @@ -100189,7 +101172,8 @@ }, "contextWindow": 163840, "maxTokens": 163840, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v3.1": { "id": "deepseek/deepseek-v3.1", @@ -100219,7 +101203,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v3.1-terminus": { "id": "deepseek/deepseek-v3.1-terminus", @@ -100249,7 +101234,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v3.2": { "id": "deepseek/deepseek-v3.2", @@ -100279,7 +101265,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v3.2-thinking": { "id": "deepseek/deepseek-v3.2-thinking", @@ -100311,7 +101298,8 @@ ], "requiresEffort": true }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v4-flash": { "id": "deepseek/deepseek-v4-flash", @@ -100341,7 +101329,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v4-flash-0731": { "id": "deepseek/deepseek-v4-flash-0731", @@ -100371,7 +101360,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v4-pro": { "id": "deepseek/deepseek-v4-pro", @@ -100401,7 +101391,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v4-pro-0813": { "id": "deepseek/deepseek-v4-pro-0813", @@ -100431,7 +101422,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3" }, "google/gemini-2.0-flash": { "id": "google/gemini-2.0-flash", @@ -100847,9 +101839,9 @@ "image" ], "cost": { - "input": 1.5, - "output": 7.5, - "cacheRead": 0.15, + "input": 0.75, + "output": 3.75, + "cacheRead": 0.075, "cacheWrite": 0 }, "contextWindow": 1000000, @@ -100930,7 +101922,7 @@ }, "google/gemma-4-31b-it": { "id": "google/gemma-4-31b-it", - "name": "Gemma 4 31B IT", + "name": "Gemma 4 31B", "api": "anthropic-messages", "provider": "vercel-ai-gateway", "baseUrl": "https://ai-gateway.vercel.sh", @@ -102223,7 +103215,8 @@ }, "contextWindow": 131072, "maxTokens": 131072, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2-0905": { "id": "moonshotai/kimi-k2-0905", @@ -102244,7 +103237,8 @@ "contextWindow": 256000, "maxTokens": 128000, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2-thinking": { "id": "moonshotai/kimi-k2-thinking", @@ -102275,7 +103269,8 @@ ], "requiresEffort": true }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2-turbo": { "id": "moonshotai/kimi-k2-turbo", @@ -102315,6 +103310,7 @@ }, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2", "compat": { "replayUnsignedThinking": false } @@ -102348,7 +103344,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2.6": { "id": "moonshotai/kimi-k2.6", @@ -102379,7 +103376,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2.7-code": { "id": "moonshotai/kimi-k2.7-code", @@ -102410,7 +103408,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2.7-code-highspeed": { "id": "moonshotai/kimi-k2.7-code-highspeed", @@ -102441,7 +103440,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k3": { "id": "moonshotai/kimi-k3", @@ -102472,7 +103472,8 @@ "defaultLevel": "max", "requiresEffort": true }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k3-fast": { "id": "moonshotai/kimi-k3-fast", @@ -102503,7 +103504,8 @@ "defaultLevel": "max", "requiresEffort": true }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "kimi-k2" }, "nvidia/nemotron-3-nano-30b-a3b": { "id": "nvidia/nemotron-3-nano-30b-a3b", @@ -102606,9 +103608,9 @@ "text" ], "cost": { - "input": 0, - "output": 0, - "cacheRead": 0, + "input": 0.049999999999999996, + "output": 0.19999999999999998, + "cacheRead": 0.01, "cacheWrite": 0 }, "contextWindow": 262144, @@ -102780,6 +103782,27 @@ "maxTokens": 32768, "supportsComputerUse": false }, + "openai/gpt-4.1-fast": { + "id": "openai/gpt-4.1-fast", + "name": "GPT-4.1 (Fast)", + "api": "anthropic-messages", + "provider": "vercel-ai-gateway", + "baseUrl": "https://ai-gateway.vercel.sh", + "reasoning": false, + "input": [ + "text", + "image" + ], + "cost": { + "input": 3.5, + "output": 14, + "cacheRead": 0.875, + "cacheWrite": 0 + }, + "contextWindow": 1047576, + "maxTokens": 32768, + "supportsComputerUse": false + }, "openai/gpt-4.1-mini": { "id": "openai/gpt-4.1-mini", "name": "GPT-4.1 mini", @@ -102801,6 +103824,27 @@ "maxTokens": 32768, "supportsComputerUse": false }, + "openai/gpt-4.1-mini-fast": { + "id": "openai/gpt-4.1-mini-fast", + "name": "GPT-4.1 mini (Fast)", + "api": "anthropic-messages", + "provider": "vercel-ai-gateway", + "baseUrl": "https://ai-gateway.vercel.sh", + "reasoning": false, + "input": [ + "text", + "image" + ], + "cost": { + "input": 0.7, + "output": 2.8, + "cacheRead": 0.175, + "cacheWrite": 0 + }, + "contextWindow": 1047576, + "maxTokens": 32768, + "supportsComputerUse": false + }, "openai/gpt-4.1-nano": { "id": "openai/gpt-4.1-nano", "name": "GPT-4.1 nano", @@ -102822,6 +103866,27 @@ "maxTokens": 32768, "supportsComputerUse": false }, + "openai/gpt-4.1-nano-fast": { + "id": "openai/gpt-4.1-nano-fast", + "name": "GPT-4.1 nano (Fast)", + "api": "anthropic-messages", + "provider": "vercel-ai-gateway", + "baseUrl": "https://ai-gateway.vercel.sh", + "reasoning": false, + "input": [ + "text", + "image" + ], + "cost": { + "input": 0.19999999999999998, + "output": 0.7999999999999999, + "cacheRead": 0.049999999999999996, + "cacheWrite": 0 + }, + "contextWindow": 1047576, + "maxTokens": 32768, + "supportsComputerUse": false + }, "openai/gpt-4o": { "id": "openai/gpt-4o", "name": "GPT-4o", @@ -102843,6 +103908,27 @@ "maxTokens": 16384, "supportsComputerUse": false }, + "openai/gpt-4o-fast": { + "id": "openai/gpt-4o-fast", + "name": "GPT-4o (Fast)", + "api": "anthropic-messages", + "provider": "vercel-ai-gateway", + "baseUrl": "https://ai-gateway.vercel.sh", + "reasoning": false, + "input": [ + "text", + "image" + ], + "cost": { + "input": 4.25, + "output": 17, + "cacheRead": 2.125, + "cacheWrite": 0 + }, + "contextWindow": 128000, + "maxTokens": 16384, + "supportsComputerUse": false + }, "openai/gpt-4o-mini": { "id": "openai/gpt-4o-mini", "name": "GPT-4o mini", @@ -102864,6 +103950,27 @@ "maxTokens": 16384, "supportsComputerUse": false }, + "openai/gpt-4o-mini-fast": { + "id": "openai/gpt-4o-mini-fast", + "name": "GPT-4o mini (Fast)", + "api": "anthropic-messages", + "provider": "vercel-ai-gateway", + "baseUrl": "https://ai-gateway.vercel.sh", + "reasoning": false, + "input": [ + "text", + "image" + ], + "cost": { + "input": 0.25, + "output": 1, + "cacheRead": 0.125, + "cacheWrite": 0 + }, + "contextWindow": 128000, + "maxTokens": 16384, + "supportsComputerUse": false + }, "openai/gpt-5": { "id": "openai/gpt-5", "name": "GPT-5", @@ -102955,6 +104062,36 @@ }, "supportsComputerUse": false }, + "openai/gpt-5-fast": { + "id": "openai/gpt-5-fast", + "name": "GPT-5 (Fast)", + "api": "anthropic-messages", + "provider": "vercel-ai-gateway", + "baseUrl": "https://ai-gateway.vercel.sh", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 2.5, + "output": 20, + "cacheRead": 0.25, + "cacheWrite": 0 + }, + "contextWindow": 400000, + "maxTokens": 128000, + "thinking": { + "mode": "budget", + "efforts": [ + "minimal", + "low", + "medium", + "high" + ] + }, + "supportsComputerUse": false + }, "openai/gpt-5-mini": { "id": "openai/gpt-5-mini", "name": "GPT-5 Mini", @@ -102985,6 +104122,36 @@ }, "supportsComputerUse": false }, + "openai/gpt-5-mini-fast": { + "id": "openai/gpt-5-mini-fast", + "name": "GPT-5 mini (Fast)", + "api": "anthropic-messages", + "provider": "vercel-ai-gateway", + "baseUrl": "https://ai-gateway.vercel.sh", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 0.44999999999999996, + "output": 3.5999999999999996, + "cacheRead": 0.045, + "cacheWrite": 0 + }, + "contextWindow": 400000, + "maxTokens": 128000, + "thinking": { + "mode": "budget", + "efforts": [ + "minimal", + "low", + "medium", + "high" + ] + }, + "supportsComputerUse": false + }, "openai/gpt-5-nano": { "id": "openai/gpt-5-nano", "name": "GPT-5 Nano", @@ -103195,6 +104362,37 @@ }, "supportsComputerUse": false }, + "openai/gpt-5.1-thinking-fast": { + "id": "openai/gpt-5.1-thinking-fast", + "name": "GPT 5.1 Thinking (Fast)", + "api": "anthropic-messages", + "provider": "vercel-ai-gateway", + "baseUrl": "https://ai-gateway.vercel.sh", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 2.5, + "output": 20, + "cacheRead": 0.25, + "cacheWrite": 0 + }, + "contextWindow": 400000, + "maxTokens": 128000, + "thinking": { + "mode": "budget", + "efforts": [ + "minimal", + "low", + "medium", + "high" + ], + "requiresEffort": true + }, + "supportsComputerUse": false + }, "openai/gpt-5.2": { "id": "openai/gpt-5.2", "name": "GPT-5.2", @@ -103277,6 +104475,36 @@ }, "supportsComputerUse": false }, + "openai/gpt-5.2-fast": { + "id": "openai/gpt-5.2-fast", + "name": "GPT 5.2 (Fast)", + "api": "anthropic-messages", + "provider": "vercel-ai-gateway", + "baseUrl": "https://ai-gateway.vercel.sh", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 3.5, + "output": 28, + "cacheRead": 0.35, + "cacheWrite": 0 + }, + "contextWindow": 400000, + "maxTokens": 128000, + "thinking": { + "mode": "budget", + "efforts": [ + "low", + "medium", + "high", + "xhigh" + ] + }, + "supportsComputerUse": false + }, "openai/gpt-5.2-pro": { "id": "openai/gpt-5.2-pro", "name": "GPT-5.2 Pro", @@ -103358,6 +104586,36 @@ }, "supportsComputerUse": false }, + "openai/gpt-5.3-codex-fast": { + "id": "openai/gpt-5.3-codex-fast", + "name": "GPT 5.3 Codex (Fast)", + "api": "anthropic-messages", + "provider": "vercel-ai-gateway", + "baseUrl": "https://ai-gateway.vercel.sh", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 3.5, + "output": 28, + "cacheRead": 0.35, + "cacheWrite": 0 + }, + "contextWindow": 272000, + "maxTokens": 128000, + "thinking": { + "mode": "budget", + "efforts": [ + "low", + "medium", + "high", + "xhigh" + ] + }, + "supportsComputerUse": false + }, "openai/gpt-5.4": { "id": "openai/gpt-5.4", "name": "GPT-5.4", @@ -103388,6 +104646,36 @@ }, "supportsComputerUse": false }, + "openai/gpt-5.4-fast": { + "id": "openai/gpt-5.4-fast", + "name": "GPT 5.4 (Fast)", + "api": "anthropic-messages", + "provider": "vercel-ai-gateway", + "baseUrl": "https://ai-gateway.vercel.sh", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 5, + "output": 30, + "cacheRead": 0.5, + "cacheWrite": 0 + }, + "contextWindow": 1050000, + "maxTokens": 128000, + "thinking": { + "mode": "budget", + "efforts": [ + "low", + "medium", + "high", + "xhigh" + ] + }, + "supportsComputerUse": false + }, "openai/gpt-5.4-mini": { "id": "openai/gpt-5.4-mini", "name": "GPT-5.4 mini", @@ -103418,6 +104706,36 @@ }, "supportsComputerUse": false }, + "openai/gpt-5.4-mini-fast": { + "id": "openai/gpt-5.4-mini-fast", + "name": "GPT 5.4 Mini (Fast)", + "api": "anthropic-messages", + "provider": "vercel-ai-gateway", + "baseUrl": "https://ai-gateway.vercel.sh", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 1.5, + "output": 9, + "cacheRead": 0.15, + "cacheWrite": 0 + }, + "contextWindow": 400000, + "maxTokens": 128000, + "thinking": { + "mode": "budget", + "efforts": [ + "low", + "medium", + "high", + "xhigh" + ] + }, + "supportsComputerUse": false + }, "openai/gpt-5.4-nano": { "id": "openai/gpt-5.4-nano", "name": "GPT-5.4 nano", @@ -103509,6 +104827,37 @@ "contextPromotionTarget": "vercel-ai-gateway/openai/gpt-5.4", "supportsComputerUse": false }, + "openai/gpt-5.5-fast": { + "id": "openai/gpt-5.5-fast", + "name": "GPT 5.5 (Fast)", + "api": "anthropic-messages", + "provider": "vercel-ai-gateway", + "baseUrl": "https://ai-gateway.vercel.sh", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 12.5, + "output": 75, + "cacheRead": 1.25, + "cacheWrite": 0 + }, + "contextWindow": 1000000, + "maxTokens": 128000, + "thinking": { + "mode": "budget", + "efforts": [ + "low", + "medium", + "high", + "xhigh" + ] + }, + "supportsComputerUse": false, + "contextPromotionTarget": "vercel-ai-gateway/openai/gpt-5.4" + }, "openai/gpt-5.5-pro": { "id": "openai/gpt-5.5-pro", "name": "GPT-5.5 Pro", @@ -103571,6 +104920,37 @@ }, "supportsComputerUse": false }, + "openai/gpt-5.6-luna-fast": { + "id": "openai/gpt-5.6-luna-fast", + "name": "GPT 5.6 Luna (Fast)", + "api": "anthropic-messages", + "provider": "vercel-ai-gateway", + "baseUrl": "https://ai-gateway.vercel.sh", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 0.39999999999999997, + "output": 2.4, + "cacheRead": 0.04, + "cacheWrite": 0.25 + }, + "contextWindow": 1050000, + "maxTokens": 128000, + "thinking": { + "mode": "budget", + "efforts": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + }, + "supportsComputerUse": false + }, "openai/gpt-5.6-sol": { "id": "openai/gpt-5.6-sol", "name": "GPT-5.6 Sol", @@ -103582,11 +104962,42 @@ "text", "image" ], + "cost": { + "input": 2.5, + "output": 15, + "cacheRead": 0.25, + "cacheWrite": 3.125 + }, + "contextWindow": 1050000, + "maxTokens": 128000, + "thinking": { + "mode": "budget", + "efforts": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + }, + "supportsComputerUse": false + }, + "openai/gpt-5.6-sol-fast": { + "id": "openai/gpt-5.6-sol-fast", + "name": "GPT 5.6 Sol (Fast)", + "api": "anthropic-messages", + "provider": "vercel-ai-gateway", + "baseUrl": "https://ai-gateway.vercel.sh", + "reasoning": true, + "input": [ + "text", + "image" + ], "cost": { "input": 5, "output": 30, "cacheRead": 0.5, - "cacheWrite": 6.25 + "cacheWrite": 3.125 }, "contextWindow": 1050000, "maxTokens": 128000, @@ -103633,6 +105044,37 @@ }, "supportsComputerUse": false }, + "openai/gpt-5.6-terra-fast": { + "id": "openai/gpt-5.6-terra-fast", + "name": "GPT 5.6 Terra (Fast)", + "api": "anthropic-messages", + "provider": "vercel-ai-gateway", + "baseUrl": "https://ai-gateway.vercel.sh", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 4, + "output": 24, + "cacheRead": 0.39999999999999997, + "cacheWrite": 2.5 + }, + "contextWindow": 1050000, + "maxTokens": 128000, + "thinking": { + "mode": "budget", + "efforts": [ + "low", + "medium", + "high", + "xhigh", + "max" + ] + }, + "supportsComputerUse": false + }, "openai/gpt-oss-120b": { "id": "openai/gpt-oss-120b", "name": "GPT OSS 120B", @@ -103819,6 +105261,38 @@ }, "supportsComputerUse": false }, + "openai/o3-fast": { + "id": "openai/o3-fast", + "name": "o3 (Fast)", + "api": "anthropic-messages", + "provider": "vercel-ai-gateway", + "baseUrl": "https://ai-gateway.vercel.sh", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 3.5, + "output": 14, + "cacheRead": 0.875, + "cacheWrite": 0 + }, + "contextWindow": 200000, + "maxTokens": 100000, + "thinking": { + "mode": "budget", + "efforts": [ + "minimal", + "low", + "medium", + "high", + "xhigh" + ], + "requiresEffort": true + }, + "supportsComputerUse": false + }, "openai/o3-mini": { "id": "openai/o3-mini", "name": "o3-mini", @@ -103914,6 +105388,38 @@ }, "supportsComputerUse": false }, + "openai/o4-mini-fast": { + "id": "openai/o4-mini-fast", + "name": "o4-mini (Fast)", + "api": "anthropic-messages", + "provider": "vercel-ai-gateway", + "baseUrl": "https://ai-gateway.vercel.sh", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 2, + "output": 8, + "cacheRead": 0.5, + "cacheWrite": 0 + }, + "contextWindow": 200000, + "maxTokens": 100000, + "thinking": { + "mode": "budget", + "efforts": [ + "minimal", + "low", + "medium", + "high", + "xhigh" + ], + "requiresEffort": true + }, + "supportsComputerUse": false + }, "perplexity/sonar": { "id": "perplexity/sonar", "name": "Sonar", @@ -105150,7 +106656,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "supportsComputerUseConfig": false }, "zai/glm-4.6v-flash": { "id": "zai/glm-4.6v-flash", @@ -105181,7 +106688,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "supportsComputerUseConfig": false }, "zai/glm-4.7": { "id": "zai/glm-4.7", @@ -105301,7 +106809,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "glm5" }, "zai/glm-5-turbo": { "id": "zai/glm-5-turbo", @@ -105331,7 +106840,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "glm5" }, "zai/glm-5.1": { "id": "zai/glm-5.1", @@ -105362,7 +106872,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "glm5" }, "zai/glm-5.2": { "id": "zai/glm-5.2", @@ -105375,9 +106886,9 @@ "text" ], "cost": { - "input": 1.1, - "output": 3.851, - "cacheRead": 0.275, + "input": 0.7999999999999999, + "output": 2.5500000000000003, + "cacheRead": 0.16, "cacheWrite": 0 }, "contextWindow": 1000000, @@ -105392,7 +106903,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "glm5" }, "zai/glm-5.2-fast": { "id": "zai/glm-5.2-fast", @@ -105422,6 +106934,38 @@ "xhigh" ] }, + "supportsComputerUse": false, + "tokenizer": "glm5" + }, + "zai/glm-5.3": { + "id": "zai/glm-5.3", + "name": "GLM 5.3", + "api": "anthropic-messages", + "provider": "vercel-ai-gateway", + "baseUrl": "https://ai-gateway.vercel.sh", + "reasoning": true, + "input": [ + "text" + ], + "cost": { + "input": 1.4, + "output": 4.4, + "cacheRead": 0.26, + "cacheWrite": 0 + }, + "contextWindow": 1000000, + "maxTokens": 12800, + "tokenizer": "glm5", + "thinking": { + "mode": "budget", + "efforts": [ + "low", + "high", + "max" + ], + "defaultLevel": "max", + "requiresEffort": true + }, "supportsComputerUse": false }, "zai/glm-5v-turbo": { @@ -105453,7 +106997,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "glm5" } }, "wafer-serverless": { @@ -105484,7 +107029,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "DeepSeek-V4-Flash-0731-Fast": { "id": "DeepSeek-V4-Flash-0731-Fast", @@ -105513,6 +107059,7 @@ ] }, "supportsComputerUse": false, + "tokenizer": "deepseek-v3", "compat": { "reasoningContentField": "reasoning_content", "supportsDeveloperRole": false @@ -105545,7 +107092,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "DeepSeek-V4-Pro": { "id": "DeepSeek-V4-Pro", @@ -105575,6 +107123,7 @@ }, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3", "compat": { "reasoningContentField": "reasoning_content", "supportsDeveloperRole": false @@ -105608,6 +107157,8 @@ ] }, "supportsComputerUse": false, + "tokenizer": "glm5", + "supportsComputerUseConfig": false, "compat": { "thinkingFormat": "zai", "reasoningContentField": "reasoning_content", @@ -105640,6 +107191,7 @@ ] }, "supportsComputerUse": false, + "tokenizer": "glm5", "compat": { "thinkingFormat": "zai", "reasoningContentField": "reasoning_content", @@ -105675,6 +107227,7 @@ ] }, "supportsComputerUse": false, + "supportsComputerUseConfig": false, "compat": { "reasoningContentField": "reasoning_content", "supportsDeveloperRole": false @@ -105744,6 +107297,7 @@ ] }, "supportsComputerUse": false, + "tokenizer": "kimi-k2", "compat": { "thinkingFormat": "zai", "reasoningContentField": "reasoning_content", @@ -105780,6 +107334,7 @@ }, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2", "compat": { "thinkingFormat": "zai", "reasoningContentField": "reasoning_content", @@ -105819,6 +107374,7 @@ "requiresEffort": true }, "supportsComputerUse": false, + "tokenizer": "kimi-k2", "compat": { "thinkingFormat": "zai", "reasoningContentField": "reasoning_content", @@ -105858,6 +107414,8 @@ "requiresEffort": true }, "supportsComputerUse": false, + "tokenizer": "kimi-k2", + "supportsComputerUseConfig": false, "compat": { "thinkingFormat": "zai", "reasoningContentField": "reasoning_content", @@ -105920,6 +107478,7 @@ "contextWindow": 262144, "maxTokens": 65536, "supportsComputerUse": false, + "tokenizer": "qwen3", "compat": { "supportsDeveloperRole": false } @@ -105954,6 +107513,7 @@ }, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "qwen3", "compat": { "reasoningContentField": "reasoning_content", "supportsDeveloperRole": false @@ -105988,6 +107548,7 @@ }, "supportsComputerUse": false, "supportsComputerUseConfig": false, + "tokenizer": "qwen3", "compat": { "reasoningContentField": "reasoning_content", "supportsDeveloperRole": false @@ -106881,6 +108442,7 @@ "contextWindow": 2000000, "maxTokens": 2000000, "supportsComputerUse": false, + "supportsComputerUseConfig": false, "compat": { "includeEncryptedReasoning": true, "filterReasoningHistory": false, @@ -106909,6 +108471,7 @@ "contextWindow": 2000000, "maxTokens": 2000000, "supportsComputerUse": false, + "supportsComputerUseConfig": false, "compat": { "includeEncryptedReasoning": true, "filterReasoningHistory": false, @@ -106949,6 +108512,7 @@ } }, "supportsComputerUse": false, + "supportsComputerUseConfig": false, "compat": { "reasoningEffortMap": { "minimal": "low" @@ -106992,6 +108556,7 @@ } }, "supportsComputerUse": false, + "supportsComputerUseConfig": false, "compat": { "reasoningEffortMap": { "minimal": "low", @@ -107037,6 +108602,7 @@ } }, "supportsComputerUse": false, + "supportsComputerUseConfig": false, "compat": { "reasoningEffortMap": { "minimal": "low", @@ -107083,6 +108649,7 @@ } }, "supportsComputerUse": false, + "supportsComputerUseConfig": false, "compat": { "reasoningEffortMap": { "minimal": "low" @@ -107114,6 +108681,7 @@ "contextWindow": 512000, "maxTokens": 512000, "supportsComputerUse": false, + "supportsComputerUseConfig": false, "compat": { "includeEncryptedReasoning": true, "filterReasoningHistory": false, @@ -107142,6 +108710,7 @@ "contextWindow": 256000, "maxTokens": 256000, "supportsComputerUse": false, + "supportsComputerUseConfig": false, "compat": { "includeEncryptedReasoning": true, "filterReasoningHistory": false, @@ -107169,6 +108738,7 @@ "contextWindow": 200000, "maxTokens": 200000, "supportsComputerUse": false, + "supportsComputerUseConfig": false, "compat": { "includeEncryptedReasoning": true, "filterReasoningHistory": false, @@ -108146,7 +109716,8 @@ "requiresEffort": true }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "glm5" }, "glm-5v-turbo": { "id": "glm-5v-turbo", @@ -108200,7 +109771,8 @@ "contextWindow": 200000, "maxTokens": 64000, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-3.5-sonnet": { "id": "anthropic/claude-3.5-sonnet", @@ -108222,7 +109794,8 @@ "contextWindow": 200000, "maxTokens": 8192, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-3.7-sonnet": { "id": "anthropic/claude-3.7-sonnet", @@ -108254,7 +109827,8 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v3" }, "anthropic/claude-fable-5": { "id": "anthropic/claude-fable-5", @@ -108318,7 +109892,8 @@ "supportsDisplay": true }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "claude-v5-sonnet" }, "anthropic/claude-haiku-4.5": { "id": "anthropic/claude-haiku-4.5", @@ -108551,7 +110126,8 @@ ], "supportsDisplay": true }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "claude-v5" }, "anthropic/claude-sonnet-4": { "id": "anthropic/claude-sonnet-4", @@ -109123,7 +110699,8 @@ "contextWindow": 128000, "maxTokens": 64000, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-chat-v3.1": { "id": "deepseek/deepseek-chat-v3.1", @@ -109150,7 +110727,8 @@ "max" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-r1-0528": { "id": "deepseek/deepseek-r1-0528", @@ -109177,7 +110755,8 @@ "max" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-reasoner": { "id": "deepseek/deepseek-reasoner", @@ -109206,7 +110785,8 @@ "requiresEffort": true }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" }, "deepseek/deepseek-v3.2": { "id": "deepseek/deepseek-v3.2", @@ -109313,7 +110893,9 @@ "max" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "deepseek-v3", + "supportsComputerUseConfig": false }, "deepseek/deepseek-v4-pro": { "id": "deepseek/deepseek-v4-pro", @@ -109369,7 +110951,39 @@ ] }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "deepseek-v3" + }, + "dots-studio/dots3-note-prev": { + "id": "dots-studio/dots3-note-prev", + "name": "Dots3-Note Preview (Free)", + "api": "openai-completions", + "provider": "zenmux", + "baseUrl": "https://zenmux.ai/api/v1", + "reasoning": true, + "input": [ + "text", + "image" + ], + "cost": { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + }, + "contextWindow": 393100, + "maxTokens": null, + "thinking": { + "mode": "effort", + "efforts": [ + "minimal", + "low", + "medium", + "high", + "xhigh" + ] + }, + "supportsComputerUse": false }, "google/gemini-2.0-flash": { "id": "google/gemini-2.0-flash", @@ -110472,6 +112086,66 @@ }, "supportsComputerUse": false }, + "mindai/macaron-v1-tall": { + "id": "mindai/macaron-v1-tall", + "name": "Macaron V1 Tall", + "api": "openai-completions", + "provider": "zenmux", + "baseUrl": "https://zenmux.ai/api/v1", + "reasoning": true, + "input": [ + "text" + ], + "cost": { + "input": 0.45, + "output": 2.6, + "cacheRead": 0.08, + "cacheWrite": 0 + }, + "contextWindow": 256000, + "maxTokens": 32768, + "thinking": { + "mode": "effort", + "efforts": [ + "minimal", + "low", + "medium", + "high", + "xhigh" + ] + }, + "supportsComputerUse": false + }, + "mindai/macaron-v1-venti": { + "id": "mindai/macaron-v1-venti", + "name": "Macaron V1 Venti", + "api": "openai-completions", + "provider": "zenmux", + "baseUrl": "https://zenmux.ai/api/v1", + "reasoning": true, + "input": [ + "text" + ], + "cost": { + "input": 1.5, + "output": 4.5, + "cacheRead": 0.3, + "cacheWrite": 0 + }, + "contextWindow": 1000000, + "maxTokens": 131072, + "thinking": { + "mode": "effort", + "efforts": [ + "minimal", + "low", + "medium", + "high", + "xhigh" + ] + }, + "supportsComputerUse": false + }, "minimax/minimax-m2": { "id": "minimax/minimax-m2", "name": "MiniMax M2", @@ -110730,7 +112404,8 @@ "contextWindow": 32768, "maxTokens": null, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2-0905": { "id": "moonshotai/kimi-k2-0905", @@ -110751,7 +112426,8 @@ "contextWindow": 262000, "maxTokens": 64000, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2-thinking": { "id": "moonshotai/kimi-k2-thinking", @@ -110783,7 +112459,8 @@ "requiresEffort": true }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2-thinking-turbo": { "id": "moonshotai/kimi-k2-thinking-turbo", @@ -110815,7 +112492,8 @@ "requiresEffort": true }, "supportsComputerUse": false, - "supportsComputerUseConfig": false + "supportsComputerUseConfig": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k2.5": { "id": "moonshotai/kimi-k2.5", @@ -110966,7 +112644,8 @@ "xhigh" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "kimi-k2" }, "moonshotai/kimi-k3": { "id": "moonshotai/kimi-k3", @@ -112311,7 +113990,8 @@ "high" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "qwen3" }, "qwen/qwen3.6-max-preview": { "id": "qwen/qwen3.6-max-preview", @@ -112340,7 +114020,8 @@ "high" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "qwen3" }, "qwen/qwen3.6-plus": { "id": "qwen/qwen3.6-plus", @@ -112398,7 +114079,8 @@ "high" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "qwen3" }, "qwen/qwen3.7-max": { "id": "qwen/qwen3.7-max", @@ -112485,7 +114167,8 @@ "high" ] }, - "supportsComputerUse": false + "supportsComputerUse": false, + "tokenizer": "qwen3" }, "sapiens-ai/agnes-1.5-flash": { "id": "sapiens-ai/agnes-1.5-flash", @@ -114046,6 +115729,68 @@ ] } }, + "z-ai/glm-5.3": { + "id": "z-ai/glm-5.3", + "name": "GLM-5.3", + "api": "openai-completions", + "provider": "zenmux", + "baseUrl": "https://zenmux.ai/api/v1", + "reasoning": true, + "input": [ + "text" + ], + "cost": { + "input": 1.4, + "output": 4.4, + "cacheRead": 0.26, + "cacheWrite": 0 + }, + "contextWindow": 1000000, + "maxTokens": 131072, + "tokenizer": "glm5", + "thinking": { + "mode": "effort", + "efforts": [ + "low", + "high", + "max" + ], + "defaultLevel": "max", + "requiresEffort": true + }, + "supportsComputerUse": false + }, + "z-ai/glm-5.3-free": { + "id": "z-ai/glm-5.3-free", + "name": "GLM 5.3 (Free)", + "api": "openai-completions", + "provider": "zenmux", + "baseUrl": "https://zenmux.ai/api/v1", + "reasoning": true, + "input": [ + "text" + ], + "cost": { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": 0 + }, + "contextWindow": 1000000, + "maxTokens": 131072, + "tokenizer": "glm5", + "thinking": { + "mode": "effort", + "efforts": [ + "low", + "high", + "max" + ], + "defaultLevel": "max", + "requiresEffort": true + }, + "supportsComputerUse": false + }, "z-ai/glm-5v-turbo": { "id": "z-ai/glm-5v-turbo", "name": "GLM 5V Turbo", diff --git a/packages/catalog/test/generated-policies.test.ts b/packages/catalog/test/generated-policies.test.ts index 45674a517..59be1618f 100644 --- a/packages/catalog/test/generated-policies.test.ts +++ b/packages/catalog/test/generated-policies.test.ts @@ -162,6 +162,21 @@ describe("generated model policies", () => { expect(models[4]?.contextWindow).toBe(272000); }); + it("applies GPT-5.6 long-context pricing to Codex-transport SKUs (openai/codex#32486)", () => { + const models: ModelSpec[] = [ + createSpec({ id: "gpt-5.6-sol", api: "openai-codex-responses", provider: "openai-codex" }), + createSpec({ id: "gpt-5.6-luna", api: "openai-codex-responses", provider: "openai-codex" }), + // Third-party carriers of the same id must not inherit the tier. + createSpec({ id: "gpt-5.6-sol", api: "openai-completions", provider: "openrouter" }), + ]; + + applyGeneratedModelPolicies(models); + + expect(models[0]?.cost.longContext).toMatchObject({ inputThreshold: 272_000, input: 10, output: 45 }); + expect(models[1]?.cost.longContext).toMatchObject({ inputThreshold: 272_000, input: 0.4, output: 1.8 }); + expect(models[2]?.cost.longContext).toBeUndefined(); + }); + it("pins Claude Mythos 5 first-party Anthropic catalog metadata", () => { const models: ModelSpec[] = [ createSpec({ diff --git a/packages/catalog/test/long-context-pricing.test.ts b/packages/catalog/test/long-context-pricing.test.ts new file mode 100644 index 000000000..6ca234a74 --- /dev/null +++ b/packages/catalog/test/long-context-pricing.test.ts @@ -0,0 +1,46 @@ +import { describe, expect, it } from "bun:test"; +import { calculateCost, getBundledModel } from "@oh-my-pi/pi-catalog/models"; +import type { Usage } from "@oh-my-pi/pi-catalog/types"; + +function usage(fields: Pick): Usage { + return { + ...fields, + totalTokens: fields.input + fields.output + fields.cacheRead + fields.cacheWrite, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 }, + }; +} + +describe("long-context pricing tier", () => { + // GPT-5.6 Sol: $5/$30 standard, $10/$45 above 272K input tokens; the tier + // rate applies to the ENTIRE request once total prompt input (input + + // cacheRead + cacheWrite) crosses the threshold, matching OpenAI's billing. + const sol = getBundledModel("openai", "gpt-5.6-sol"); + + it("bills at standard rates at or below the 272K input threshold", () => { + const atThreshold = usage({ input: 72_000, output: 10_000, cacheRead: 200_000, cacheWrite: 0 }); + calculateCost(sol, atThreshold); + expect(atThreshold.cost.input).toBeCloseTo((5 / 1e6) * 72_000, 10); + expect(atThreshold.cost.output).toBeCloseTo((30 / 1e6) * 10_000, 10); + expect(atThreshold.cost.cacheRead).toBeCloseTo((0.5 / 1e6) * 200_000, 10); + }); + + it("bills the whole request at tier rates once prompt input crosses the threshold", () => { + const overThreshold = usage({ input: 72_001, output: 10_000, cacheRead: 200_000, cacheWrite: 0 }); + calculateCost(sol, overThreshold); + expect(overThreshold.cost.input).toBeCloseTo((10 / 1e6) * 72_001, 10); + expect(overThreshold.cost.output).toBeCloseTo((45 / 1e6) * 10_000, 10); + expect(overThreshold.cost.cacheRead).toBeCloseTo((1 / 1e6) * 200_000, 10); + expect(overThreshold.cost.total).toBeCloseTo( + overThreshold.cost.input + overThreshold.cost.output + overThreshold.cost.cacheRead, + 10, + ); + }); + + it("prices subscription Codex SKUs with the same tier for cost attribution", () => { + const codexSol = getBundledModel("openai-codex", "gpt-5.6-sol"); + const overThreshold = usage({ input: 300_000, output: 1_000, cacheRead: 0, cacheWrite: 0 }); + calculateCost(codexSol, overThreshold); + expect(overThreshold.cost.input).toBeCloseTo((10 / 1e6) * 300_000, 10); + expect(overThreshold.cost.output).toBeCloseTo((45 / 1e6) * 1_000, 10); + }); +}); diff --git a/packages/coding-agent/CHANGELOG.md b/packages/coding-agent/CHANGELOG.md index 85ebcc450..d8e630ce1 100644 --- a/packages/coding-agent/CHANGELOG.md +++ b/packages/coding-agent/CHANGELOG.md @@ -6,6 +6,7 @@ - Added `qwenTemplateReasoningEffort` to the `models.yml` `compat` schema, so the auto-enabled Qwen 3.8+ template effort dialect (`chat_template_kwargs.reasoning_effort`) can be switched off per provider/model for strict local servers that reject unknown `chat_template_kwargs`. - Added `tokenizer` to custom model and `modelOverrides` configuration. It overrides the catalog-resolved local tokenizer family for a model when a proxy serves a known model id with a different tokenizer. +- Added `extendedContext` setting (`/settings` → Context → General, default on). When off, models with a premium long-context price tier (OpenAI GPT-5.6 Sol/Terra/Luna bill 2x input / 1.5x output above 272K input tokens, on both the API and subscription Codex) are capped at the standard-pricing threshold — they appear as 272K again and compaction fires before a request crosses into premium billing. Toggling mid-session re-clamps or restores the active model's window immediately. Anthropic Claude 4.6+ serves its full 1M window at standard pricing, so no Anthropic model is affected. ### Changed diff --git a/packages/coding-agent/src/config/model-registry.ts b/packages/coding-agent/src/config/model-registry.ts index 738812061..a9d991456 100644 --- a/packages/coding-agent/src/config/model-registry.ts +++ b/packages/coding-agent/src/config/model-registry.ts @@ -140,6 +140,18 @@ function getDisabledProviderIdsFromSettings(): Set { } } +/** + * Whether premium long-context windows are enabled. Defaults to true when the + * settings singleton is not initialized (SDK embedding, early boot). + */ +function isExtendedContextEnabledFromSettings(): boolean { + try { + return settings.get("extendedContext"); + } catch { + return true; + } +} + /** Authentication material returned to legacy extensions for one model request. */ export type ResolvedRequestAuth = | { @@ -176,6 +188,7 @@ export class ModelRegistry { #cacheDbPath?: string; #suppressedSelectors: Map = new Map(); #backgroundRefresh?: Promise; + #policyReapply?: Promise; #lastDiscoveryWarnings: Map = new Map(); // Runtime extension model overlays — persist across refresh() cycles so that // models registered by extensions survive the model selector's offline reload. @@ -269,6 +282,27 @@ export class ModelRegistry { await this.#refreshRuntimeDiscoveries(strategy); } + /** + * Rebuild the catalog after a policy-affecting setting change (e.g. + * `extendedContext`). Forces the static reload past the models.yml mtime + * gate, then restores runtime-discovered models from the SQLite cache — + * offline, a settings flip must never hit the network. Concurrent calls + * coalesce onto one rebuild. + */ + reapplyModelPolicies(): Promise { + this.#policyReapply ??= this.#runPolicyReapply(); + return this.#policyReapply; + } + + async #runPolicyReapply(): Promise { + try { + this.#lastStaticLoadMtime = null; + await this.refresh("offline"); + } finally { + this.#policyReapply = undefined; + } + } + refreshInBackground(strategy: ModelRefreshStrategy = "online-if-uncached"): void { if (this.#backgroundRefresh) { return; @@ -1558,7 +1592,19 @@ export class ModelRegistry { }); } #applyHardcodedModelPolicies(models: Model[]): Model[] { + const extendedContext = isExtendedContextEnabledFromSettings(); return models.map(model => { + // Extended context off: cap models with a premium long-context price + // tier (e.g. GPT-5.6 bills 2x input above 272K) at the standard-pricing + // threshold so compaction fires before a request crosses into the tier. + // Explicit per-model `contextWindow` overrides reapply later in + // composition and win over this cap. + if (!extendedContext) { + const threshold = model.cost.longContext?.inputThreshold; + if (threshold !== undefined && model.contextWindow !== null && model.contextWindow > threshold) { + model = applyModelOverride(model, { contextWindow: threshold }); + } + } if (model.provider === "ollama-cloud" && model.omitMaxOutputTokens !== true) { model = applyModelOverride(model, { omitMaxOutputTokens: true }); } diff --git a/packages/coding-agent/src/config/settings-schema.ts b/packages/coding-agent/src/config/settings-schema.ts index 184597293..2e41ac8b7 100644 --- a/packages/coding-agent/src/config/settings-schema.ts +++ b/packages/coding-agent/src/config/settings-schema.ts @@ -2149,6 +2149,21 @@ export const SETTINGS_SCHEMA = { }, }, + // Premium long-context tiers (OpenAI GPT-5.6 bills 2x input / 1.5x output + // above 272K input tokens). Off caps affected models at the threshold so + // compaction kicks in before any request crosses into premium billing. + extendedContext: { + type: "boolean", + default: true, + ui: { + tab: "context", + group: "General", + label: "Extended Context", + description: + "Use premium long-context windows on models that bill extra past a threshold (e.g. GPT-5.6 1M charges 2x input above 272K); off caps them at the standard-pricing window", + }, + }, + // Compaction "compaction.enabled": { type: "boolean", diff --git a/packages/coding-agent/src/config/settings.ts b/packages/coding-agent/src/config/settings.ts index 598c65bf1..febdd5d4d 100644 --- a/packages/coding-agent/src/config/settings.ts +++ b/packages/coding-agent/src/config/settings.ts @@ -2466,6 +2466,7 @@ const SETTING_HOOKS: Partial>> = { "hindsight.bankId": () => hindsightScopeSignal.fire(), "hindsight.bankIdPrefix": () => hindsightScopeSignal.fire(), "hindsight.scoping": () => hindsightScopeSignal.fire(), + extendedContext: () => extendedContextSignal.fire(), "worktree.base": value => { const dir = typeof value === "string" && value.trim() ? value : undefined; // Always call so an unset/empty value clears a previously-applied override. @@ -2494,6 +2495,17 @@ const modelRolesSignal = new SettingSignal("modelRoles"); /** Subscribe to model role changes. Returns an unsubscribe function. */ export const onModelRolesChanged: (cb: () => void) => () => void = modelRolesSignal.on.bind(modelRolesSignal); +/** Fires when `extendedContext` changes at runtime. */ +const extendedContextSignal = new SettingSignal("extendedContext"); + +/** + * Subscribe to extended-context setting changes. Sessions re-derive their + * model's effective context window (the registry clamps premium long-context + * models to the standard-pricing threshold while the setting is off). + * Returns an unsubscribe function. + */ +export const onExtendedContextChanged = (cb: () => void) => extendedContextSignal.on(cb); + /** Fires when `statusLine.sessionAccent` changes at runtime. */ const statusLineSessionAccentSignal = new SettingSignal("statusLine.sessionAccent"); diff --git a/packages/coding-agent/src/session/agent-session.ts b/packages/coding-agent/src/session/agent-session.ts index 26ad0a36d..d91b06995 100644 --- a/packages/coding-agent/src/session/agent-session.ts +++ b/packages/coding-agent/src/session/agent-session.ts @@ -105,7 +105,7 @@ import type { ResolvedModelRoleValue } from "../config/model-resolver"; import { expandPromptTemplate, type PromptTemplate } from "../config/prompt-templates"; import { buildServiceTierByFamily } from "../config/service-tier"; import type { Settings, SkillsSettings } from "../config/settings"; -import { onAppendOnlyModeChanged, onModelRolesChanged } from "../config/settings"; +import { onAppendOnlyModeChanged, onExtendedContextChanged, onModelRolesChanged } from "../config/settings"; import { RawSseDebugBuffer } from "../debug/raw-sse-buffer"; import { getFileSnapshotStore } from "../edit/file-snapshot-store"; import type { PythonResult } from "../eval/py/executor"; @@ -489,6 +489,7 @@ export class AgentSession { #exitRecorded = false; #unsubscribeAppendOnly?: () => void; #unsubscribeModelRoles?: () => void; + #unsubscribeExtendedContext?: () => void; /** Last (enable, providerId) tuple resolved by `#syncAppendOnlyContext` — used to skip no-op invalidations. */ #lastAppendOnlyResolution?: { enable: boolean; providerId: string | undefined }; #eventListeners: AgentSessionEventListener[] = []; @@ -1638,6 +1639,11 @@ export class AgentSession { // Re-evaluate append-only context mode when the setting changes at runtime. this.#unsubscribeAppendOnly = onAppendOnlyModeChanged(_value => this.#syncAppendOnlyContext(this.model)); this.#unsubscribeModelRoles = onModelRolesChanged(() => this.#advisors.onModelRolesChanged()); + // Re-derive the active model's effective context window when the + // extended-context setting flips at runtime: the registry re-clamps (or + // restores) premium long-context windows, and the live model object must + // follow so compaction thresholds and context display react immediately. + this.#unsubscribeExtendedContext = onExtendedContextChanged(() => void this.#reapplyExtendedContextPolicy()); } /** Model registry for API key resolution and model discovery */ get modelRegistry(): ModelRegistry { @@ -4094,6 +4100,10 @@ export class AgentSession { this.#unsubscribeModelRoles(); this.#unsubscribeModelRoles = undefined; } + if (this.#unsubscribeExtendedContext) { + this.#unsubscribeExtendedContext(); + this.#unsubscribeExtendedContext = undefined; + } this.#eventListeners = []; this.#runStateListeners.clear(); this.#sessionChangeCallbacks.clear(); @@ -7319,6 +7329,26 @@ export class AgentSession { return true; } + /** + * Rebuild the model catalog after an `extendedContext` toggle and rebind the + * active model when its effective context window changed. Same-model rebinds + * skip provider-session resets (`modelsAreEqual` sees no change), so this + * only refreshes metadata consumers (compaction thresholds, context display). + */ + async #reapplyExtendedContextPolicy(): Promise { + try { + await this.#modelRegistry.reapplyModelPolicies(); + const currentModel = this.model; + if (!currentModel || this.#isDisposed) return; + const updated = this.#modelRegistry.find(currentModel.provider, currentModel.id); + if (updated && updated.contextWindow !== currentModel.contextWindow) { + await this.#setModelWithProviderSessionReset(updated); + } + } catch (error) { + logger.warn("extended-context policy reapply failed", { error: String(error) }); + } + } + async #setModelWithProviderSessionReset(model: Model): Promise { const currentModel = this.model; const isChanging = !currentModel || !modelsAreEqual(currentModel, model); diff --git a/packages/coding-agent/test/model-registry.test.ts b/packages/coding-agent/test/model-registry.test.ts index ba4d5c121..79f520c06 100644 --- a/packages/coding-agent/test/model-registry.test.ts +++ b/packages/coding-agent/test/model-registry.test.ts @@ -7,7 +7,7 @@ import { Effort, type FetchImpl, type Model, type OpenAICompat, type ThinkingCon import { buildModel } from "@oh-my-pi/pi-catalog/build"; import { writeModelCache } from "@oh-my-pi/pi-catalog/model-cache"; import { ModelRegistry } from "@oh-my-pi/pi-coding-agent/config/model-registry"; -import { resetSettingsForTest, Settings } from "@oh-my-pi/pi-coding-agent/config/settings"; +import { resetSettingsForTest, Settings, settings } from "@oh-my-pi/pi-coding-agent/config/settings"; import { AuthStorage } from "@oh-my-pi/pi-coding-agent/session/auth-storage"; import { removeSyncWithRetries, Snowflake } from "@oh-my-pi/pi-utils"; @@ -1663,6 +1663,33 @@ describe("ModelRegistry", () => { expect(disabledProbeUrls).toEqual([]); }); }); + describe("extended context", () => { + test("off caps premium long-context models at the standard-pricing threshold", async () => { + await Settings.init({ inMemory: true, overrides: { extendedContext: false } }); + const registry = new ModelRegistry(authStorage, modelsJsonPath); + + // GPT-5.6 bills 2x input above 272K on both the API and Codex. + expect(registry.find("openai", "gpt-5.6-sol")?.contextWindow).toBe(272_000); + expect(registry.find("openai-codex", "gpt-5.6-sol")?.contextWindow).toBe(272_000); + // Standard-priced 1M models (no long-context tier) keep their window. + expect(registry.find("anthropic", "claude-opus-4-8")?.contextWindow).toBe(1_000_000); + }); + + test("reapplyModelPolicies re-clamps and restores premium windows on toggle", async () => { + await Settings.init({ inMemory: true }); + const registry = new ModelRegistry(authStorage, modelsJsonPath); + expect(registry.find("openai", "gpt-5.6-terra")?.contextWindow).toBe(1_050_000); + + settings.set("extendedContext", false); + await registry.reapplyModelPolicies(); + expect(registry.find("openai", "gpt-5.6-terra")?.contextWindow).toBe(272_000); + + settings.set("extendedContext", true); + await registry.reapplyModelPolicies(); + expect(registry.find("openai", "gpt-5.6-terra")?.contextWindow).toBe(1_050_000); + expect(registry.find("openai-codex", "gpt-5.6-terra")?.contextWindow).toBe(1_000_000); + }); + }); describe("bundled Anthropic catalog availability", () => { let anthropicAuth: AuthStorage; let registry: ModelRegistry;