Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
208 changes: 208 additions & 0 deletions packages/views/runtimes/pricing.generated.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,208 @@
// AUTO-GENERATED — do not edit by hand.
//
// Source: https://models.dev/api.json (MIT, community-maintained,
// the same dataset OpenCode uses internally).
// Snapshot: 2026-04-29
// Providers: anthropic, openai, google, moonshotai, opencode, opencode-go
//
// Regenerate with: node scripts/generate-pricing.mjs

// Cost values are USD per million tokens, matching the raw
// `cost` shape on models.dev. We emit a complete numeric shape
// and default missing provider fields to 0 for type safety.
export interface ModelCost {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
}

// Keys are `<provider>/<model>` to match what OpenCode and other
// multi-provider runtimes report on the wire.
export const PRICING: Readonly<Record<string, ModelCost>> = {
"anthropic/claude-3-5-haiku-20241022": { input: 0.8, output: 4, cacheRead: 0.08, cacheWrite: 1 },
"anthropic/claude-3-5-haiku-latest": { input: 0.8, output: 4, cacheRead: 0.08, cacheWrite: 1 },
"anthropic/claude-3-5-sonnet-20240620": { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 },
"anthropic/claude-3-5-sonnet-20241022": { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 },
"anthropic/claude-3-7-sonnet-20250219": { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 },
"anthropic/claude-3-haiku-20240307": { input: 0.25, output: 1.25, cacheRead: 0.03, cacheWrite: 0.3 },
"anthropic/claude-3-opus-20240229": { input: 15, output: 75, cacheRead: 1.5, cacheWrite: 18.75 },
"anthropic/claude-3-sonnet-20240229": { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0.3 },
"anthropic/claude-haiku-4-5": { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 },
"anthropic/claude-haiku-4-5-20251001": { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 },
"anthropic/claude-opus-4-0": { input: 15, output: 75, cacheRead: 1.5, cacheWrite: 18.75 },
"anthropic/claude-opus-4-1": { input: 15, output: 75, cacheRead: 1.5, cacheWrite: 18.75 },
"anthropic/claude-opus-4-1-20250805": { input: 15, output: 75, cacheRead: 1.5, cacheWrite: 18.75 },
"anthropic/claude-opus-4-20250514": { input: 15, output: 75, cacheRead: 1.5, cacheWrite: 18.75 },
"anthropic/claude-opus-4-5": { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 },
"anthropic/claude-opus-4-5-20251101": { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 },
"anthropic/claude-opus-4-6": { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 },
"anthropic/claude-opus-4-7": { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 },
"anthropic/claude-sonnet-4-0": { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 },
"anthropic/claude-sonnet-4-20250514": { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 },
"anthropic/claude-sonnet-4-5": { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 },
"anthropic/claude-sonnet-4-5-20250929": { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 },
"anthropic/claude-sonnet-4-6": { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 },
"google/gemini-1.5-flash": { input: 0.075, output: 0.3, cacheRead: 0.01875, cacheWrite: 0 },
"google/gemini-1.5-flash-8b": { input: 0.0375, output: 0.15, cacheRead: 0.01, cacheWrite: 0 },
"google/gemini-1.5-pro": { input: 1.25, output: 5, cacheRead: 0.3125, cacheWrite: 0 },
"google/gemini-2.0-flash": { input: 0.1, output: 0.4, cacheRead: 0.025, cacheWrite: 0 },
"google/gemini-2.0-flash-lite": { input: 0.075, output: 0.3, cacheRead: 0, cacheWrite: 0 },
"google/gemini-2.5-flash": { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0 },
"google/gemini-2.5-flash-image": { input: 0.3, output: 30, cacheRead: 0.075, cacheWrite: 0 },
"google/gemini-2.5-flash-image-preview": { input: 0.3, output: 30, cacheRead: 0.075, cacheWrite: 0 },
"google/gemini-2.5-flash-lite": { input: 0.1, output: 0.4, cacheRead: 0.025, cacheWrite: 0 },
"google/gemini-2.5-flash-lite-preview-06-17": { input: 0.1, output: 0.4, cacheRead: 0.025, cacheWrite: 0 },
"google/gemini-2.5-flash-lite-preview-09-2025": { input: 0.1, output: 0.4, cacheRead: 0.025, cacheWrite: 0 },
"google/gemini-2.5-flash-preview-04-17": { input: 0.15, output: 0.6, cacheRead: 0.0375, cacheWrite: 0 },
"google/gemini-2.5-flash-preview-05-20": { input: 0.15, output: 0.6, cacheRead: 0.0375, cacheWrite: 0 },
"google/gemini-2.5-flash-preview-09-2025": { input: 0.3, output: 2.5, cacheRead: 0.075, cacheWrite: 0 },
"google/gemini-2.5-flash-preview-tts": { input: 0.5, output: 10, cacheRead: 0, cacheWrite: 0 },
"google/gemini-2.5-pro": { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 },
"google/gemini-2.5-pro-preview-05-06": { input: 1.25, output: 10, cacheRead: 0.31, cacheWrite: 0 },
"google/gemini-2.5-pro-preview-06-05": { input: 1.25, output: 10, cacheRead: 0.31, cacheWrite: 0 },
"google/gemini-2.5-pro-preview-tts": { input: 1, output: 20, cacheRead: 0, cacheWrite: 0 },
"google/gemini-3-flash-preview": { input: 0.5, output: 3, cacheRead: 0.05, cacheWrite: 0 },
"google/gemini-3-pro-preview": { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0 },
"google/gemini-3.1-flash-image-preview": { input: 0.25, output: 60, cacheRead: 0, cacheWrite: 0 },
"google/gemini-3.1-flash-lite-preview": { input: 0.25, output: 1.5, cacheRead: 0.025, cacheWrite: 1 },
"google/gemini-3.1-pro-preview": { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0 },
"google/gemini-3.1-pro-preview-customtools": { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0 },
"google/gemini-embedding-001": { input: 0.15, output: 0, cacheRead: 0, cacheWrite: 0 },
"google/gemini-flash-latest": { input: 0.3, output: 2.5, cacheRead: 0.075, cacheWrite: 0 },
"google/gemini-flash-lite-latest": { input: 0.1, output: 0.4, cacheRead: 0.025, cacheWrite: 0 },
"google/gemini-live-2.5-flash": { input: 0.5, output: 2, cacheRead: 0, cacheWrite: 0 },
"google/gemini-live-2.5-flash-preview-native-audio": { input: 0.5, output: 2, cacheRead: 0, cacheWrite: 0 },
"google/gemma-3-12b-it": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
"google/gemma-3-27b-it": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
"google/gemma-3-4b-it": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
"google/gemma-3n-e2b-it": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
"google/gemma-3n-e4b-it": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
"moonshotai/kimi-k2-0711-preview": { input: 0.6, output: 2.5, cacheRead: 0.15, cacheWrite: 0 },
"moonshotai/kimi-k2-0905-preview": { input: 0.6, output: 2.5, cacheRead: 0.15, cacheWrite: 0 },
"moonshotai/kimi-k2-thinking": { input: 0.6, output: 2.5, cacheRead: 0.15, cacheWrite: 0 },
"moonshotai/kimi-k2-thinking-turbo": { input: 1.15, output: 8, cacheRead: 0.15, cacheWrite: 0 },
"moonshotai/kimi-k2-turbo-preview": { input: 2.4, output: 10, cacheRead: 0.6, cacheWrite: 0 },
"moonshotai/kimi-k2.5": { input: 0.6, output: 3, cacheRead: 0.1, cacheWrite: 0 },
"moonshotai/kimi-k2.6": { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 },
"openai/gpt-3.5-turbo": { input: 0.5, output: 1.5, cacheRead: 1.25, cacheWrite: 0 },
"openai/gpt-4": { input: 30, output: 60, cacheRead: 0, cacheWrite: 0 },
"openai/gpt-4-turbo": { input: 10, output: 30, cacheRead: 0, cacheWrite: 0 },
"openai/gpt-4.1": { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 },
"openai/gpt-4.1-mini": { input: 0.4, output: 1.6, cacheRead: 0.1, cacheWrite: 0 },
"openai/gpt-4.1-nano": { input: 0.1, output: 0.4, cacheRead: 0.03, cacheWrite: 0 },
"openai/gpt-4o": { input: 2.5, output: 10, cacheRead: 1.25, cacheWrite: 0 },
"openai/gpt-4o-2024-05-13": { input: 5, output: 15, cacheRead: 0, cacheWrite: 0 },
"openai/gpt-4o-2024-08-06": { input: 2.5, output: 10, cacheRead: 1.25, cacheWrite: 0 },
"openai/gpt-4o-2024-11-20": { input: 2.5, output: 10, cacheRead: 1.25, cacheWrite: 0 },
"openai/gpt-4o-mini": { input: 0.15, output: 0.6, cacheRead: 0.08, cacheWrite: 0 },
"openai/gpt-5": { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 },
"openai/gpt-5-chat-latest": { input: 1.25, output: 10, cacheRead: 0, cacheWrite: 0 },
"openai/gpt-5-codex": { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 },
"openai/gpt-5-mini": { input: 0.25, output: 2, cacheRead: 0.025, cacheWrite: 0 },
"openai/gpt-5-nano": { input: 0.05, output: 0.4, cacheRead: 0.005, cacheWrite: 0 },
"openai/gpt-5-pro": { input: 15, output: 120, cacheRead: 0, cacheWrite: 0 },
"openai/gpt-5.1": { input: 1.25, output: 10, cacheRead: 0.13, cacheWrite: 0 },
"openai/gpt-5.1-chat-latest": { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 },
"openai/gpt-5.1-codex": { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 },
"openai/gpt-5.1-codex-max": { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 },
"openai/gpt-5.1-codex-mini": { input: 0.25, output: 2, cacheRead: 0.025, cacheWrite: 0 },
"openai/gpt-5.2": { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 },
"openai/gpt-5.2-chat-latest": { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 },
"openai/gpt-5.2-codex": { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 },
"openai/gpt-5.2-pro": { input: 21, output: 168, cacheRead: 0, cacheWrite: 0 },
"openai/gpt-5.3-chat-latest": { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 },
"openai/gpt-5.3-codex": { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 },
"openai/gpt-5.3-codex-spark": { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 },
"openai/gpt-5.4": { input: 2.5, output: 15, cacheRead: 0.25, cacheWrite: 0 },
"openai/gpt-5.4-mini": { input: 0.75, output: 4.5, cacheRead: 0.075, cacheWrite: 0 },
"openai/gpt-5.4-nano": { input: 0.2, output: 1.25, cacheRead: 0.02, cacheWrite: 0 },
"openai/gpt-5.4-pro": { input: 30, output: 180, cacheRead: 0, cacheWrite: 0 },
"openai/gpt-5.5": { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 0 },
"openai/gpt-5.5-pro": { input: 30, output: 180, cacheRead: 0, cacheWrite: 0 },
"openai/o1": { input: 15, output: 60, cacheRead: 7.5, cacheWrite: 0 },
"openai/o1-mini": { input: 1.1, output: 4.4, cacheRead: 0.55, cacheWrite: 0 },
"openai/o1-preview": { input: 15, output: 60, cacheRead: 7.5, cacheWrite: 0 },
"openai/o1-pro": { input: 150, output: 600, cacheRead: 0, cacheWrite: 0 },
"openai/o3": { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 },
"openai/o3-deep-research": { input: 10, output: 40, cacheRead: 2.5, cacheWrite: 0 },
"openai/o3-mini": { input: 1.1, output: 4.4, cacheRead: 0.55, cacheWrite: 0 },
"openai/o3-pro": { input: 20, output: 80, cacheRead: 0, cacheWrite: 0 },
"openai/o4-mini": { input: 1.1, output: 4.4, cacheRead: 0.28, cacheWrite: 0 },
"openai/o4-mini-deep-research": { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 },
"openai/text-embedding-3-large": { input: 0.13, output: 0, cacheRead: 0, cacheWrite: 0 },
"openai/text-embedding-3-small": { input: 0.02, output: 0, cacheRead: 0, cacheWrite: 0 },
"openai/text-embedding-ada-002": { input: 0.1, output: 0, cacheRead: 0, cacheWrite: 0 },
"opencode-go/deepseek-v4-flash": { input: 0.14, output: 0.28, cacheRead: 0.0028, cacheWrite: 0 },
"opencode-go/deepseek-v4-pro": { input: 1.74, output: 3.48, cacheRead: 0.0145, cacheWrite: 0 },
"opencode-go/glm-5": { input: 1, output: 3.2, cacheRead: 0.2, cacheWrite: 0 },
"opencode-go/glm-5.1": { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 },
"opencode-go/kimi-k2.5": { input: 0.6, output: 3, cacheRead: 0.1, cacheWrite: 0 },
"opencode-go/kimi-k2.6": { input: 0.32, output: 1.34, cacheRead: 0.054, cacheWrite: 0 },
"opencode-go/mimo-v2-omni": { input: 0.4, output: 2, cacheRead: 0.08, cacheWrite: 0 },
"opencode-go/mimo-v2-pro": { input: 1, output: 3, cacheRead: 0.2, cacheWrite: 0 },
"opencode-go/mimo-v2.5": { input: 0.4, output: 2, cacheRead: 0.08, cacheWrite: 0 },
"opencode-go/mimo-v2.5-pro": { input: 1, output: 3, cacheRead: 0.2, cacheWrite: 0 },
"opencode-go/minimax-m2.5": { input: 0.3, output: 1.2, cacheRead: 0.03, cacheWrite: 0 },
"opencode-go/minimax-m2.7": { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 },
"opencode-go/qwen3.5-plus": { input: 0.2, output: 1.2, cacheRead: 0.02, cacheWrite: 0.25 },
"opencode-go/qwen3.6-plus": { input: 0.5, output: 3, cacheRead: 0.05, cacheWrite: 0.625 },
"opencode/big-pickle": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
"opencode/claude-3-5-haiku": { input: 0.8, output: 4, cacheRead: 0.08, cacheWrite: 1 },
"opencode/claude-haiku-4-5": { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 },
"opencode/claude-opus-4-1": { input: 15, output: 75, cacheRead: 1.5, cacheWrite: 18.75 },
"opencode/claude-opus-4-5": { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 },
"opencode/claude-opus-4-6": { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 },
"opencode/claude-opus-4-7": { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 },
"opencode/claude-sonnet-4": { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 },
"opencode/claude-sonnet-4-5": { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 },
"opencode/claude-sonnet-4-6": { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 },
"opencode/gemini-3-flash": { input: 0.5, output: 3, cacheRead: 0.05, cacheWrite: 0 },
"opencode/gemini-3-pro": { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0 },
"opencode/gemini-3.1-pro": { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0 },
"opencode/glm-4.6": { input: 0.6, output: 2.2, cacheRead: 0.1, cacheWrite: 0 },
"opencode/glm-4.7": { input: 0.6, output: 2.2, cacheRead: 0.1, cacheWrite: 0 },
"opencode/glm-4.7-free": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
"opencode/glm-5": { input: 1, output: 3.2, cacheRead: 0.2, cacheWrite: 0 },
"opencode/glm-5-free": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
"opencode/glm-5.1": { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 },
"opencode/gpt-5": { input: 1.07, output: 8.5, cacheRead: 0.107, cacheWrite: 0 },
"opencode/gpt-5-codex": { input: 1.07, output: 8.5, cacheRead: 0.107, cacheWrite: 0 },
"opencode/gpt-5-nano": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
"opencode/gpt-5.1": { input: 1.07, output: 8.5, cacheRead: 0.107, cacheWrite: 0 },
"opencode/gpt-5.1-codex": { input: 1.07, output: 8.5, cacheRead: 0.107, cacheWrite: 0 },
"opencode/gpt-5.1-codex-max": { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 },
"opencode/gpt-5.1-codex-mini": { input: 0.25, output: 2, cacheRead: 0.025, cacheWrite: 0 },
"opencode/gpt-5.2": { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 },
"opencode/gpt-5.2-codex": { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 },
"opencode/gpt-5.3-codex": { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 },
"opencode/gpt-5.3-codex-spark": { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 },
"opencode/gpt-5.4": { input: 2.5, output: 15, cacheRead: 0.25, cacheWrite: 0 },
"opencode/gpt-5.4-mini": { input: 0.75, output: 4.5, cacheRead: 0.075, cacheWrite: 0 },
"opencode/gpt-5.4-nano": { input: 0.2, output: 1.25, cacheRead: 0.02, cacheWrite: 0 },
"opencode/gpt-5.4-pro": { input: 30, output: 180, cacheRead: 30, cacheWrite: 0 },
"opencode/gpt-5.5": { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 0 },
"opencode/gpt-5.5-pro": { input: 30, output: 180, cacheRead: 30, cacheWrite: 0 },
"opencode/grok-code": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
"opencode/hy3-preview-free": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
"opencode/kimi-k2": { input: 0.4, output: 2.5, cacheRead: 0.4, cacheWrite: 0 },
"opencode/kimi-k2-thinking": { input: 0.4, output: 2.5, cacheRead: 0.4, cacheWrite: 0 },
"opencode/kimi-k2.5": { input: 0.6, output: 3, cacheRead: 0.08, cacheWrite: 0 },
"opencode/kimi-k2.5-free": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
"opencode/kimi-k2.6": { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 },
"opencode/ling-2.6-flash-free": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
"opencode/mimo-v2-flash-free": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
"opencode/mimo-v2-omni-free": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
"opencode/mimo-v2-pro-free": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
"opencode/minimax-m2.1": { input: 0.3, output: 1.2, cacheRead: 0.1, cacheWrite: 0 },
"opencode/minimax-m2.1-free": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
"opencode/minimax-m2.5": { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 },
"opencode/minimax-m2.5-free": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
"opencode/minimax-m2.7": { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 },
"opencode/nemotron-3-super-free": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
"opencode/qwen3-coder": { input: 0.45, output: 1.8, cacheRead: 0, cacheWrite: 0 },
"opencode/qwen3.5-plus": { input: 0.2, output: 1.2, cacheRead: 0.02, cacheWrite: 0.25 },
"opencode/qwen3.6-plus": { input: 0.5, output: 3, cacheRead: 0.05, cacheWrite: 0.625 },
"opencode/qwen3.6-plus-free": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
"opencode/trinity-large-preview-free": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
};
Loading
Loading