.gitignore 🔗
@@ -34,3 +34,6 @@ go.work.sum
# crush
.crush
dist/
+
+# temp dir
+/tmp
Carlos Alexandro Becker created
.gitignore | 3
cmd/copilot/main.go | 12
internal/providers/configs/cerebras.json | 4
internal/providers/configs/copilot.json | 17
internal/providers/configs/openai.json | 14
internal/providers/configs/openrouter.json | 382 +++++++++++++----------
6 files changed, 258 insertions(+), 174 deletions(-)
@@ -34,3 +34,6 @@ go.work.sum
# crush
.crush
dist/
+
+# temp dir
+/tmp
@@ -5,6 +5,7 @@ import (
"context"
"encoding/json"
"fmt"
+ "io"
"net/http"
"os"
"path/filepath"
@@ -130,8 +131,17 @@ func fetchCopilotModels() ([]Model, error) {
return nil, fmt.Errorf("unexpected status code: %d", resp.StatusCode)
}
+ bts, err := io.ReadAll(resp.Body)
+ if err != nil {
+ return nil, fmt.Errorf("unable to read response body: %w", err)
+ }
+
+ // for debugging
+ _ = os.MkdirAll("tmp", 0o700)
+ _ = os.WriteFile("tmp/copilot-response.json", bts, 0o600)
+
var data Response
- if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
+ if err := json.Unmarshal(bts, &data); err != nil {
return nil, fmt.Errorf("unable to unmarshal json: %w", err)
}
return data.Data, nil
@@ -57,8 +57,8 @@
"supports_attachments": false
},
{
- "id": "zai-glm-4.6",
- "name": "Z.ai GLM 4.6",
+ "id": "zai-glm-4.7",
+ "name": "Z.ai GLM 4.7",
"cost_per_1m_in": 2.25,
"cost_per_1m_out": 2.75,
"context_window": 131072,
@@ -26,7 +26,7 @@
"cost_per_1m_out": 0,
"cost_per_1m_in_cached": 0,
"cost_per_1m_out_cached": 0,
- "context_window": 144000,
+ "context_window": 160000,
"default_max_tokens": 16000,
"can_reason": true,
"supports_attachments": false,
@@ -211,6 +211,19 @@
"supports_attachments": false,
"options": {}
},
+ {
+ "id": "gpt-5.2-codex",
+ "name": "GPT-5.2-Codex",
+ "cost_per_1m_in": 0,
+ "cost_per_1m_out": 0,
+ "cost_per_1m_in_cached": 0,
+ "cost_per_1m_out_cached": 0,
+ "context_window": 400000,
+ "default_max_tokens": 128000,
+ "can_reason": false,
+ "supports_attachments": false,
+ "options": {}
+ },
{
"id": "grok-code-fast-1",
"name": "Grok Code Fast 1",
@@ -225,4 +238,4 @@
"options": {}
}
]
-}
+}
@@ -21,6 +21,20 @@
"default_reasoning_effort": "medium",
"supports_attachments": true
},
+ {
+ "id": "gpt-5.2-codex",
+ "name": "GPT-5.2 Codex",
+ "cost_per_1m_in": 1.75,
+ "cost_per_1m_out": 14,
+ "cost_per_1m_in_cached": 0.175,
+ "cost_per_1m_out_cached": 0.175,
+ "context_window": 400000,
+ "default_max_tokens": 128000,
+ "can_reason": true,
+ "reasoning_levels": ["minimal", "low", "medium", "high"],
+ "default_reasoning_effort": "medium",
+ "supports_attachments": true
+ },
{
"id": "gpt-5.1",
"name": "GPT-5.1",
@@ -33,19 +33,6 @@
"supports_attachments": false,
"options": {}
},
- {
- "id": "allenai/olmo-3-7b-instruct",
- "name": "AllenAI: Olmo 3 7B Instruct",
- "cost_per_1m_in": 0.09999999999999999,
- "cost_per_1m_out": 0.19999999999999998,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 65536,
- "default_max_tokens": 32768,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
{
"id": "allenai/olmo-3.1-32b-instruct",
"name": "AllenAI: Olmo 3.1 32B Instruct",
@@ -156,19 +143,6 @@
"supports_attachments": true,
"options": {}
},
- {
- "id": "anthropic/claude-3.5-haiku-20241022",
- "name": "Anthropic: Claude 3.5 Haiku (2024-10-22)",
- "cost_per_1m_in": 0.7999999999999999,
- "cost_per_1m_out": 4,
- "cost_per_1m_in_cached": 1,
- "cost_per_1m_out_cached": 0.08,
- "context_window": 200000,
- "default_max_tokens": 4096,
- "can_reason": false,
- "supports_attachments": true,
- "options": {}
- },
{
"id": "anthropic/claude-3.5-sonnet",
"name": "Anthropic: Claude 3.5 Sonnet",
@@ -573,12 +547,12 @@
{
"id": "deepseek/deepseek-chat-v3.1",
"name": "DeepSeek: DeepSeek V3.1",
- "cost_per_1m_in": 0.56,
- "cost_per_1m_out": 1.68,
+ "cost_per_1m_in": 0.19999999999999998,
+ "cost_per_1m_out": 0.7999999999999999,
"cost_per_1m_in_cached": 0,
"cost_per_1m_out_cached": 0,
"context_window": 163840,
- "default_max_tokens": 16384,
+ "default_max_tokens": 32768,
"can_reason": true,
"reasoning_levels": [
"low",
@@ -592,12 +566,12 @@
{
"id": "deepseek/deepseek-v3.1-terminus",
"name": "DeepSeek: DeepSeek V3.1 Terminus",
- "cost_per_1m_in": 0.21,
- "cost_per_1m_out": 0.7899999999999999,
+ "cost_per_1m_in": 0.27,
+ "cost_per_1m_out": 1,
"cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.16799999999999998,
+ "cost_per_1m_out_cached": 0,
"context_window": 163840,
- "default_max_tokens": 16384,
+ "default_max_tokens": 81920,
"can_reason": true,
"reasoning_levels": [
"low",
@@ -612,10 +586,10 @@
"id": "deepseek/deepseek-v3.1-terminus:exacto",
"name": "DeepSeek: DeepSeek V3.1 Terminus (exacto)",
"cost_per_1m_in": 0.21,
- "cost_per_1m_out": 0.7999999999999999,
+ "cost_per_1m_out": 0.7899999999999999,
"cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 131072,
+ "cost_per_1m_out_cached": 0.16799999999999998,
+ "context_window": 163840,
"default_max_tokens": 16384,
"can_reason": true,
"reasoning_levels": [
@@ -630,12 +604,12 @@
{
"id": "deepseek/deepseek-v3.2",
"name": "DeepSeek: DeepSeek V3.2",
- "cost_per_1m_in": 0.26,
- "cost_per_1m_out": 0.39,
+ "cost_per_1m_in": 0.56,
+ "cost_per_1m_out": 1.68,
"cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.13,
+ "cost_per_1m_out_cached": 0,
"context_window": 163840,
- "default_max_tokens": 16384,
+ "default_max_tokens": 32768,
"can_reason": true,
"reasoning_levels": [
"low",
@@ -649,12 +623,12 @@
{
"id": "deepseek/deepseek-v3.2-exp",
"name": "DeepSeek: DeepSeek V3.2 Exp",
- "cost_per_1m_in": 0.21,
- "cost_per_1m_out": 0.32,
+ "cost_per_1m_in": 0.27,
+ "cost_per_1m_out": 0.41,
"cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.16799999999999998,
+ "cost_per_1m_out_cached": 0,
"context_window": 163840,
- "default_max_tokens": 16384,
+ "default_max_tokens": 32768,
"can_reason": true,
"reasoning_levels": [
"low",
@@ -669,11 +643,11 @@
"id": "deepseek/deepseek-r1",
"name": "DeepSeek: R1",
"cost_per_1m_in": 0.7,
- "cost_per_1m_out": 2.4,
+ "cost_per_1m_out": 2.5,
"cost_per_1m_in_cached": 0,
"cost_per_1m_out_cached": 0,
- "context_window": 163840,
- "default_max_tokens": 81920,
+ "context_window": 64000,
+ "default_max_tokens": 8000,
"can_reason": true,
"reasoning_levels": [
"low",
@@ -687,10 +661,10 @@
{
"id": "deepseek/deepseek-r1-0528",
"name": "DeepSeek: R1 0528",
- "cost_per_1m_in": 0.7999999999999999,
- "cost_per_1m_out": 2.4,
+ "cost_per_1m_in": 0.7,
+ "cost_per_1m_out": 2.5,
"cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
+ "cost_per_1m_out_cached": 0.35,
"context_window": 163840,
"default_max_tokens": 16384,
"can_reason": true,
@@ -703,12 +677,31 @@
"supports_attachments": false,
"options": {}
},
+ {
+ "id": "deepseek/deepseek-r1-distill-llama-70b",
+ "name": "DeepSeek: R1 Distill Llama 70B",
+ "cost_per_1m_in": 0.03,
+ "cost_per_1m_out": 0.11,
+ "cost_per_1m_in_cached": 0,
+ "cost_per_1m_out_cached": 0,
+ "context_window": 131072,
+ "default_max_tokens": 65536,
+ "can_reason": true,
+ "reasoning_levels": [
+ "low",
+ "medium",
+ "high"
+ ],
+ "default_reasoning_effort": "medium",
+ "supports_attachments": false,
+ "options": {}
+ },
{
"id": "google/gemini-2.0-flash-001",
"name": "Google: Gemini 2.0 Flash",
"cost_per_1m_in": 0.09999999999999999,
"cost_per_1m_out": 0.39999999999999997,
- "cost_per_1m_in_cached": 0.18330000000000002,
+ "cost_per_1m_in_cached": 0.0833,
"cost_per_1m_out_cached": 0.024999999999999998,
"context_window": 1048576,
"default_max_tokens": 4096,
@@ -747,7 +740,7 @@
"name": "Google: Gemini 2.5 Flash",
"cost_per_1m_in": 0.3,
"cost_per_1m_out": 2.5,
- "cost_per_1m_in_cached": 0.3833,
+ "cost_per_1m_in_cached": 0.08333333333333334,
"cost_per_1m_out_cached": 0.03,
"context_window": 1048576,
"default_max_tokens": 32767,
@@ -766,7 +759,7 @@
"name": "Google: Gemini 2.5 Flash Lite",
"cost_per_1m_in": 0.09999999999999999,
"cost_per_1m_out": 0.39999999999999997,
- "cost_per_1m_in_cached": 0.18330000000000002,
+ "cost_per_1m_in_cached": 0.0833,
"cost_per_1m_out_cached": 0.01,
"context_window": 1048576,
"default_max_tokens": 32767,
@@ -785,10 +778,10 @@
"name": "Google: Gemini 2.5 Flash Lite Preview 09-2025",
"cost_per_1m_in": 0.09999999999999999,
"cost_per_1m_out": 0.39999999999999997,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
+ "cost_per_1m_in_cached": 0.0833,
+ "cost_per_1m_out_cached": 0.01,
"context_window": 1048576,
- "default_max_tokens": 32768,
+ "default_max_tokens": 32767,
"can_reason": true,
"reasoning_levels": [
"low",
@@ -804,7 +797,7 @@
"name": "Google: Gemini 2.5 Flash Preview 09-2025",
"cost_per_1m_in": 0.3,
"cost_per_1m_out": 2.5,
- "cost_per_1m_in_cached": 0.3833,
+ "cost_per_1m_in_cached": 0.0833,
"cost_per_1m_out_cached": 0.075,
"context_window": 1048576,
"default_max_tokens": 32767,
@@ -823,7 +816,7 @@
"name": "Google: Gemini 2.5 Pro",
"cost_per_1m_in": 1.25,
"cost_per_1m_out": 10,
- "cost_per_1m_in_cached": 1.625,
+ "cost_per_1m_in_cached": 0.375,
"cost_per_1m_out_cached": 0.125,
"context_window": 1048576,
"default_max_tokens": 32768,
@@ -842,7 +835,7 @@
"name": "Google: Gemini 2.5 Pro Preview 05-06",
"cost_per_1m_in": 1.25,
"cost_per_1m_out": 10,
- "cost_per_1m_in_cached": 1.625,
+ "cost_per_1m_in_cached": 0.375,
"cost_per_1m_out_cached": 0.125,
"context_window": 1048576,
"default_max_tokens": 32768,
@@ -861,7 +854,7 @@
"name": "Google: Gemini 2.5 Pro Preview 06-05",
"cost_per_1m_in": 1.25,
"cost_per_1m_out": 10,
- "cost_per_1m_in_cached": 1.625,
+ "cost_per_1m_in_cached": 0.375,
"cost_per_1m_out_cached": 0.125,
"context_window": 1048576,
"default_max_tokens": 32768,
@@ -899,7 +892,7 @@
"name": "Google: Gemini 3 Pro Preview",
"cost_per_1m_in": 2,
"cost_per_1m_out": 12,
- "cost_per_1m_in_cached": 2.375,
+ "cost_per_1m_in_cached": 0.375,
"cost_per_1m_out_cached": 0.19999999999999998,
"context_window": 1048576,
"default_max_tokens": 32768,
@@ -913,6 +906,32 @@
"supports_attachments": true,
"options": {}
},
+ {
+ "id": "google/gemma-3-27b-it",
+ "name": "Google: Gemma 3 27B",
+ "cost_per_1m_in": 0.04,
+ "cost_per_1m_out": 0.15,
+ "cost_per_1m_in_cached": 0,
+ "cost_per_1m_out_cached": 0,
+ "context_window": 96000,
+ "default_max_tokens": 48000,
+ "can_reason": false,
+ "supports_attachments": true,
+ "options": {}
+ },
+ {
+ "id": "google/gemma-3-27b-it:free",
+ "name": "Google: Gemma 3 27B (free)",
+ "cost_per_1m_in": 0,
+ "cost_per_1m_out": 0,
+ "cost_per_1m_in_cached": 0,
+ "cost_per_1m_out_cached": 0,
+ "context_window": 128000,
+ "default_max_tokens": 12800,
+ "can_reason": false,
+ "supports_attachments": true,
+ "options": {}
+ },
{
"id": "inception/mercury",
"name": "Inception: Mercury",
@@ -955,25 +974,12 @@
{
"id": "meta-llama/llama-3.1-70b-instruct",
"name": "Meta: Llama 3.1 70B Instruct",
- "cost_per_1m_in": 0.39999999999999997,
- "cost_per_1m_out": 0.39999999999999997,
+ "cost_per_1m_in": 0.88,
+ "cost_per_1m_out": 0.88,
"cost_per_1m_in_cached": 0,
"cost_per_1m_out_cached": 0,
"context_window": 131072,
- "default_max_tokens": 8192,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "meta-llama/llama-3.2-3b-instruct",
- "name": "Meta: Llama 3.2 3B Instruct",
- "cost_per_1m_in": 0.03,
- "cost_per_1m_out": 0.049999999999999996,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 32768,
- "default_max_tokens": 16000,
+ "default_max_tokens": 13107,
"can_reason": false,
"supports_attachments": false,
"options": {}
@@ -1007,12 +1013,12 @@
{
"id": "meta-llama/llama-4-maverick",
"name": "Meta: Llama 4 Maverick",
- "cost_per_1m_in": 0.27,
- "cost_per_1m_out": 0.85,
+ "cost_per_1m_in": 0.19999999999999998,
+ "cost_per_1m_out": 0.6,
"cost_per_1m_in_cached": 0,
"cost_per_1m_out_cached": 0,
- "context_window": 1048576,
- "default_max_tokens": 104857,
+ "context_window": 131072,
+ "default_max_tokens": 4096,
"can_reason": false,
"supports_attachments": true,
"options": {}
@@ -1054,10 +1060,10 @@
"name": "MiniMax: MiniMax M2.1",
"cost_per_1m_in": 0.3,
"cost_per_1m_out": 1.2,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
+ "cost_per_1m_in_cached": 0.375,
+ "cost_per_1m_out_cached": 0.03,
"context_window": 204800,
- "default_max_tokens": 20480,
+ "default_max_tokens": 65536,
"can_reason": true,
"reasoning_levels": [
"low",
@@ -1250,19 +1256,6 @@
"supports_attachments": false,
"options": {}
},
- {
- "id": "mistralai/mistral-7b-instruct:free",
- "name": "Mistral: Mistral 7B Instruct (free)",
- "cost_per_1m_in": 0,
- "cost_per_1m_out": 0,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 32768,
- "default_max_tokens": 8192,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
{
"id": "mistralai/mistral-large-2512",
"name": "Mistral: Mistral Large 3 2512",
@@ -1344,12 +1337,12 @@
{
"id": "mistralai/mistral-small-3.2-24b-instruct",
"name": "Mistral: Mistral Small 3.2 24B",
- "cost_per_1m_in": 0.06,
- "cost_per_1m_out": 0.18,
+ "cost_per_1m_in": 0.09999999999999999,
+ "cost_per_1m_out": 0.3,
"cost_per_1m_in_cached": 0,
"cost_per_1m_out_cached": 0,
"context_window": 131072,
- "default_max_tokens": 65536,
+ "default_max_tokens": 13107,
"can_reason": false,
"supports_attachments": true,
"options": {}
@@ -1461,12 +1454,12 @@
{
"id": "moonshotai/kimi-k2-0905:exacto",
"name": "MoonshotAI: Kimi K2 0905 (exacto)",
- "cost_per_1m_in": 1,
- "cost_per_1m_out": 3,
+ "cost_per_1m_in": 1.15,
+ "cost_per_1m_out": 8,
"cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
+ "cost_per_1m_out_cached": 0.15,
"context_window": 262144,
- "default_max_tokens": 8192,
+ "default_max_tokens": 26214,
"can_reason": false,
"supports_attachments": false,
"options": {}
@@ -1477,7 +1470,7 @@
"cost_per_1m_in": 0.6,
"cost_per_1m_out": 2.5,
"cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
+ "cost_per_1m_out_cached": 0.15,
"context_window": 262144,
"default_max_tokens": 131072,
"can_reason": true,
@@ -1649,25 +1642,6 @@
"supports_attachments": false,
"options": {}
},
- {
- "id": "openai/codex-mini",
- "name": "OpenAI: Codex Mini",
- "cost_per_1m_in": 1.5,
- "cost_per_1m_out": 6,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.375,
- "context_window": 200000,
- "default_max_tokens": 50000,
- "can_reason": true,
- "reasoning_levels": [
- "low",
- "medium",
- "high"
- ],
- "default_reasoning_effort": "medium",
- "supports_attachments": true,
- "options": {}
- },
{
"id": "openai/gpt-4-turbo",
"name": "OpenAI: GPT-4 Turbo",
@@ -2123,6 +2097,25 @@
"supports_attachments": true,
"options": {}
},
+ {
+ "id": "openai/gpt-5.2-codex",
+ "name": "OpenAI: GPT-5.2-Codex",
+ "cost_per_1m_in": 1.75,
+ "cost_per_1m_out": 14,
+ "cost_per_1m_in_cached": 0,
+ "cost_per_1m_out_cached": 0.175,
+ "context_window": 400000,
+ "default_max_tokens": 64000,
+ "can_reason": true,
+ "reasoning_levels": [
+ "low",
+ "medium",
+ "high"
+ ],
+ "default_reasoning_effort": "medium",
+ "supports_attachments": true,
+ "options": {}
+ },
{
"id": "openai/gpt-oss-120b",
"name": "OpenAI: gpt-oss-120b",
@@ -2145,12 +2138,12 @@
{
"id": "openai/gpt-oss-120b:exacto",
"name": "OpenAI: gpt-oss-120b (exacto)",
- "cost_per_1m_in": 0.15,
- "cost_per_1m_out": 0.6,
+ "cost_per_1m_in": 0.039,
+ "cost_per_1m_out": 0.19,
"cost_per_1m_in_cached": 0,
"cost_per_1m_out_cached": 0,
"context_window": 131072,
- "default_max_tokens": 32768,
+ "default_max_tokens": 13107,
"can_reason": true,
"reasoning_levels": [
"low",
@@ -2579,12 +2572,12 @@
{
"id": "qwen/qwen3-235b-a22b-2507",
"name": "Qwen: Qwen3 235B A22B Instruct 2507",
- "cost_per_1m_in": 0.08,
- "cost_per_1m_out": 0.55,
+ "cost_per_1m_in": 0.09999999999999999,
+ "cost_per_1m_out": 0.09999999999999999,
"cost_per_1m_in_cached": 0,
"cost_per_1m_out_cached": 0,
"context_window": 262144,
- "default_max_tokens": 32768,
+ "default_max_tokens": 131072,
"can_reason": false,
"supports_attachments": false,
"options": {}
@@ -2611,8 +2604,8 @@
{
"id": "qwen/qwen3-30b-a3b",
"name": "Qwen: Qwen3 30B A3B",
- "cost_per_1m_in": 0.08,
- "cost_per_1m_out": 0.28,
+ "cost_per_1m_in": 0.15,
+ "cost_per_1m_out": 0.6,
"cost_per_1m_in_cached": 0,
"cost_per_1m_out_cached": 0,
"context_window": 131072,
@@ -2643,12 +2636,12 @@
{
"id": "qwen/qwen3-32b",
"name": "Qwen: Qwen3 32B",
- "cost_per_1m_in": 0.15,
- "cost_per_1m_out": 0.5,
+ "cost_per_1m_in": 0.39999999999999997,
+ "cost_per_1m_out": 0.7999999999999999,
"cost_per_1m_in_cached": 0,
"cost_per_1m_out_cached": 0,
"context_window": 131072,
- "default_max_tokens": 4000,
+ "default_max_tokens": 16384,
"can_reason": true,
"reasoning_levels": [
"low",
@@ -2700,12 +2693,12 @@
{
"id": "qwen/qwen3-coder-30b-a3b-instruct",
"name": "Qwen: Qwen3 Coder 30B A3B Instruct",
- "cost_per_1m_in": 0.07,
- "cost_per_1m_out": 0.28,
+ "cost_per_1m_in": 0.09999999999999999,
+ "cost_per_1m_out": 0.3,
"cost_per_1m_in_cached": 0,
"cost_per_1m_out_cached": 0,
"context_window": 262144,
- "default_max_tokens": 131072,
+ "default_max_tokens": 26214,
"can_reason": false,
"supports_attachments": false,
"options": {}
@@ -2714,11 +2707,11 @@
"id": "qwen/qwen3-coder",
"name": "Qwen: Qwen3 Coder 480B A35B",
"cost_per_1m_in": 0.22,
- "cost_per_1m_out": 1.7999999999999998,
+ "cost_per_1m_out": 0.95,
"cost_per_1m_in_cached": 0,
"cost_per_1m_out_cached": 0,
"context_window": 262144,
- "default_max_tokens": 32768,
+ "default_max_tokens": 131072,
"can_reason": false,
"supports_attachments": false,
"options": {}
@@ -2791,8 +2784,8 @@
{
"id": "qwen/qwen3-next-80b-a3b-instruct",
"name": "Qwen: Qwen3 Next 80B A3B Instruct",
- "cost_per_1m_in": 0.15,
- "cost_per_1m_out": 1.2,
+ "cost_per_1m_in": 0.09999999999999999,
+ "cost_per_1m_out": 0.7999999999999999,
"cost_per_1m_in_cached": 0,
"cost_per_1m_out_cached": 0,
"context_window": 262144,
@@ -2801,6 +2794,19 @@
"supports_attachments": false,
"options": {}
},
+ {
+ "id": "qwen/qwen3-next-80b-a3b-instruct:free",
+ "name": "Qwen: Qwen3 Next 80B A3B Instruct (free)",
+ "cost_per_1m_in": 0,
+ "cost_per_1m_out": 0,
+ "cost_per_1m_in_cached": 0,
+ "cost_per_1m_out_cached": 0,
+ "context_window": 262144,
+ "default_max_tokens": 26214,
+ "can_reason": false,
+ "supports_attachments": false,
+ "options": {}
+ },
{
"id": "qwen/qwen3-next-80b-a3b-thinking",
"name": "Qwen: Qwen3 Next 80B A3B Thinking",
@@ -2836,12 +2842,12 @@
{
"id": "qwen/qwen3-vl-30b-a3b-instruct",
"name": "Qwen: Qwen3 VL 30B A3B Instruct",
- "cost_per_1m_in": 0.29,
- "cost_per_1m_out": 1,
+ "cost_per_1m_in": 0.15,
+ "cost_per_1m_out": 0.6,
"cost_per_1m_in_cached": 0,
"cost_per_1m_out_cached": 0,
"context_window": 262144,
- "default_max_tokens": 131072,
+ "default_max_tokens": 26214,
"can_reason": false,
"supports_attachments": true,
"options": {}
@@ -2849,12 +2855,12 @@
{
"id": "qwen/qwen3-vl-30b-a3b-thinking",
"name": "Qwen: Qwen3 VL 30B A3B Thinking",
- "cost_per_1m_in": 0.29,
+ "cost_per_1m_in": 0.19999999999999998,
"cost_per_1m_out": 1,
"cost_per_1m_in_cached": 0,
"cost_per_1m_out_cached": 0,
- "context_window": 262144,
- "default_max_tokens": 131072,
+ "context_window": 131072,
+ "default_max_tokens": 16384,
"can_reason": true,
"reasoning_levels": [
"low",
@@ -2868,12 +2874,12 @@
{
"id": "qwen/qwen3-vl-8b-instruct",
"name": "Qwen: Qwen3 VL 8B Instruct",
- "cost_per_1m_in": 0.18,
- "cost_per_1m_out": 0.7,
+ "cost_per_1m_in": 0.25,
+ "cost_per_1m_out": 0.75,
"cost_per_1m_in_cached": 0,
"cost_per_1m_out_cached": 0,
- "context_window": 256000,
- "default_max_tokens": 16384,
+ "context_window": 262144,
+ "default_max_tokens": 131072,
"can_reason": false,
"supports_attachments": true,
"options": {}
@@ -3031,6 +3037,25 @@
"supports_attachments": false,
"options": {}
},
+ {
+ "id": "xiaomi/mimo-v2-flash",
+ "name": "Xiaomi: MiMo-V2-Flash",
+ "cost_per_1m_in": 0.09,
+ "cost_per_1m_out": 0.29,
+ "cost_per_1m_in_cached": 0,
+ "cost_per_1m_out_cached": 0,
+ "context_window": 262144,
+ "default_max_tokens": 26214,
+ "can_reason": true,
+ "reasoning_levels": [
+ "low",
+ "medium",
+ "high"
+ ],
+ "default_reasoning_effort": "medium",
+ "supports_attachments": false,
+ "options": {}
+ },
{
"id": "xiaomi/mimo-v2-flash:free",
"name": "Xiaomi: MiMo-V2-Flash (free)",
@@ -3085,12 +3110,12 @@
{
"id": "z-ai/glm-4.5-air",
"name": "Z.AI: GLM 4.5 Air",
- "cost_per_1m_in": 0.13,
- "cost_per_1m_out": 0.85,
+ "cost_per_1m_in": 0.14,
+ "cost_per_1m_out": 0.86,
"cost_per_1m_in_cached": 0,
"cost_per_1m_out_cached": 0,
"context_window": 131072,
- "default_max_tokens": 49152,
+ "default_max_tokens": 65536,
"can_reason": true,
"reasoning_levels": [
"low",
@@ -3183,9 +3208,9 @@
"cost_per_1m_in": 0.3,
"cost_per_1m_out": 0.8999999999999999,
"cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.055,
+ "cost_per_1m_out_cached": 0,
"context_window": 131072,
- "default_max_tokens": 16384,
+ "default_max_tokens": 65536,
"can_reason": true,
"reasoning_levels": [
"low",
@@ -3215,13 +3240,32 @@
"supports_attachments": false,
"options": {}
},
+ {
+ "id": "z-ai/glm-4.7-flash",
+ "name": "Z.AI: GLM 4.7 Flash",
+ "cost_per_1m_in": 0.07,
+ "cost_per_1m_out": 0.43,
+ "cost_per_1m_in_cached": 0,
+ "cost_per_1m_out_cached": 0.006,
+ "context_window": 200000,
+ "default_max_tokens": 64000,
+ "can_reason": true,
+ "reasoning_levels": [
+ "low",
+ "medium",
+ "high"
+ ],
+ "default_reasoning_effort": "medium",
+ "supports_attachments": false,
+ "options": {}
+ },
{
"id": "x-ai/grok-3",
"name": "xAI: Grok 3",
- "cost_per_1m_in": 3,
- "cost_per_1m_out": 15,
+ "cost_per_1m_in": 5,
+ "cost_per_1m_out": 25,
"cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.75,
+ "cost_per_1m_out_cached": 1.25,
"context_window": 131072,
"default_max_tokens": 13107,
"can_reason": false,
@@ -3231,10 +3275,10 @@
{
"id": "x-ai/grok-3-beta",
"name": "xAI: Grok 3 Beta",
- "cost_per_1m_in": 3,
- "cost_per_1m_out": 15,
+ "cost_per_1m_in": 5,
+ "cost_per_1m_out": 25,
"cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.75,
+ "cost_per_1m_out_cached": 1.25,
"context_window": 131072,
"default_max_tokens": 13107,
"can_reason": false,
@@ -3244,10 +3288,10 @@
{
"id": "x-ai/grok-3-mini",
"name": "xAI: Grok 3 Mini",
- "cost_per_1m_in": 0.3,
- "cost_per_1m_out": 0.5,
+ "cost_per_1m_in": 0.6,
+ "cost_per_1m_out": 4,
"cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.075,
+ "cost_per_1m_out_cached": 0.15,
"context_window": 131072,
"default_max_tokens": 13107,
"can_reason": true,
@@ -3263,10 +3307,10 @@
{
"id": "x-ai/grok-3-mini-beta",
"name": "xAI: Grok 3 Mini Beta",
- "cost_per_1m_in": 0.3,
- "cost_per_1m_out": 0.5,
+ "cost_per_1m_in": 0.6,
+ "cost_per_1m_out": 4,
"cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.075,
+ "cost_per_1m_out_cached": 0.15,
"context_window": 131072,
"default_max_tokens": 13107,
"can_reason": true,