diff --git a/CHANGELOG.md b/CHANGELOG.md index ed9bc1a315..b631f45c3b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## [2.3.17] - 2026-03-13 + +### ✨ Features + +- **Combos: Free Stack template** — New 4th template "Free Stack ($0)" using round-robin across Kiro + iFlow + Qwen + Gemini CLI. Suggests the pre-built zero-cost combo on first use. +- **Media/Transcription: Deepgram as default** — Deepgram (Nova 3, $200 free) is now the default transcription provider. AssemblyAI ($50 free) and Groq Whisper (free forever) shown with free credit badges. +- **README: "Start Free" section** — New early-README 5-step table showing how to set up zero-cost AI in minutes. +- **README: Free Transcription Combo** — New section with Deepgram/AssemblyAI/Groq combo suggestion and per-provider free credit details. +- **providers.ts: hasFree flag** — NVIDIA NIM, Cerebras, and Groq marked with hasFree badge and freeNote for the providers UI. +- **i18n: templateFreeStack keys** — Free Stack combo template translated and synced to all 30 languages. + ## [2.3.16] - 2026-03-13 ### 📖 Documentation diff --git a/README.md b/README.md index dfddfe56a5..6ae1fa0c9a 100644 --- a/README.md +++ b/README.md @@ -702,6 +702,23 @@ Outcome: deep fallback depth for deadline-critical workloads --- +## 🆓 Start Free — Zero Configuration Cost + +> Setup AI coding in minutes at **$0/month**. Connect these free accounts and use the built-in **Free Stack** combo. + +| Step | Action | Providers Unlocked | +|---|---|---| +| 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | +| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | +| 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | +| 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | + +**Point any IDE/CLI to:** `http://localhost:20128/v1` · API Key: `any-string` · Done. + +> **Optional extra coverage (also free):** Groq API key (30 RPM free), NVIDIA NIM (40 RPM free, 70+ models), Cerebras (1M tok/day). + + ## ⚡ Quick Start ### 1) Install and run @@ -952,7 +969,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: |---|---|---|---| | Free (Dev) | No token cap | **~40 RPM** | 70+ models; transitioning to pure rate limits mid-2025 | -Popular free models: `nvidia/llama-3.1-nemotron-70b-instruct`, `meta/llama-3.3-70b-instruct`, `mistralai/mixtral-8x7b-instruct` +Popular free models: `moonshotai/kimi-k2.5` (Kimi K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2), `nvidia/llama-3.3-70b-instruct`, `deepseek/deepseek-r1` ### ⚪ CEREBRAS (Free API Key — inference.cerebras.ai) @@ -983,6 +1000,30 @@ Available free: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whis > Configure this as an OmniRoute combo and you'll never pay for AI again. +## 🎙️ Free Transcription Combo + +> Transcribe any audio/video for **$0** — Deepgram leads with $200 free, AssemblyAI $50 fallback, Groq Whisper as unlimited emergency backup. + +| Provider | Free Credits | Best Model | Rate Limit | +|---|---|---|---| +| 🟢 **Deepgram** | **$200 free** (signup) | `nova-3` — best accuracy, 30+ languages | No RPM limit on free credits | +| 🔵 **AssemblyAI** | **$50 free** (signup) | `universal-3-pro` — chapters, sentiment, PII | No RPM limit on free credits | +| 🔴 **Groq** | **Free forever** | `whisper-large-v3` — OpenAI Whisper | 30 RPM (rate limited) | + +**Suggested combo in `/dashboard/combos`:** + +``` +Name: free-transcription +Strategy: Priority +Nodes: + [1] deepgram/nova-3 → uses $200 free first + [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out + [3] groq/whisper-large-v3 → free forever, emergency fallback +``` + +Then in `/dashboard/media` → **Transcription** tab: upload any audio or video file → select your combo endpoint → get transcription in supported formats. + + ## 💡 Key Features OmniRoute v2.0 is built as an operational platform, not just a relay proxy. diff --git a/package-lock.json b/package-lock.json index 7a3fcf507a..40b9e5b0eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "omniroute", - "version": "2.3.15", + "version": "2.3.16", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "omniroute", - "version": "2.3.15", + "version": "2.3.16", "hasInstallScript": true, "license": "MIT", "workspaces": [ diff --git a/package.json b/package.json index f174d69a58..65944bcd77 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "omniroute", - "version": "2.3.16", + "version": "2.3.17", "description": "Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.", "type": "module", "bin": { diff --git a/src/app/(dashboard)/dashboard/combos/page.tsx b/src/app/(dashboard)/dashboard/combos/page.tsx index e612cc75b9..8a0777c335 100644 --- a/src/app/(dashboard)/dashboard/combos/page.tsx +++ b/src/app/(dashboard)/dashboard/combos/page.tsx @@ -140,6 +140,8 @@ const COMBO_TEMPLATE_FALLBACK = { costSaverDesc: "Cost-optimized routing for budget-first workloads.", balancedTitle: "Balanced load", balancedDesc: "Least-used routing to spread demand over time.", + freeStackTitle: "Free Stack ($0)", + freeStackDesc: "Round-robin across all free providers: Kiro, iFlow, Qwen, Gemini CLI. Zero cost, never stops.", }; const COMBO_TEMPLATES = [ @@ -188,6 +190,21 @@ const COMBO_TEMPLATES = [ healthCheckEnabled: true, }, }, + { + id: "free-stack", + icon: "volunteer_activism", + titleKey: "templateFreeStack", + descKey: "templateFreeStackDesc", + fallbackTitle: COMBO_TEMPLATE_FALLBACK.freeStackTitle, + fallbackDesc: COMBO_TEMPLATE_FALLBACK.freeStackDesc, + strategy: "round-robin", + suggestedName: "free-stack", + config: { + maxRetries: 3, + retryDelayMs: 500, + healthCheckEnabled: true, + }, + }, ]; function getStrategyMeta(strategy) { diff --git a/src/app/(dashboard)/dashboard/media/MediaPageClient.tsx b/src/app/(dashboard)/dashboard/media/MediaPageClient.tsx index ffcb12b604..a0b569b5a1 100644 --- a/src/app/(dashboard)/dashboard/media/MediaPageClient.tsx +++ b/src/app/(dashboard)/dashboard/media/MediaPageClient.tsx @@ -224,6 +224,33 @@ const PROVIDER_MODELS: Record< { id: "qwen", name: "Qwen", models: [{ id: "qwen/qwen3-tts", name: "Qwen3 TTS" }] }, ], transcription: [ + { + id: "deepgram", + name: "Deepgram ($200 free)", + models: [ + { id: "deepgram/nova-3", name: "Nova 3 (Best)" }, + { id: "deepgram/nova-2", name: "Nova 2" }, + { id: "deepgram/enhanced", name: "Enhanced" }, + { id: "deepgram/base", name: "Base" }, + ], + }, + { + id: "assemblyai", + name: "AssemblyAI ($50 free)", + models: [ + { id: "assemblyai/universal-3-pro", name: "Universal 3 Pro (Best)" }, + { id: "assemblyai/universal-2", name: "Universal 2" }, + { id: "assemblyai/nano", name: "Nano (Fast)" }, + ], + }, + { + id: "groq", + name: "Groq (Free — Whisper)", + models: [ + { id: "groq/whisper-large-v3", name: "Whisper Large v3 (Free)" }, + { id: "groq/whisper-large-v3-turbo", name: "Whisper Turbo (Free)" }, + ], + }, { id: "openai", name: "OpenAI", @@ -232,30 +259,6 @@ const PROVIDER_MODELS: Record< { id: "openai/gpt-4o-transcription", name: "GPT-4o Transcription" }, ], }, - { - id: "groq", - name: "Groq", - models: [ - { id: "groq/whisper-large-v3", name: "Whisper Large v3" }, - { id: "groq/whisper-large-v3-turbo", name: "Whisper Turbo" }, - ], - }, - { - id: "deepgram", - name: "Deepgram", - models: [ - { id: "deepgram/nova-3", name: "Nova 3" }, - { id: "deepgram/nova-2", name: "Nova 2" }, - ], - }, - { - id: "assemblyai", - name: "AssemblyAI", - models: [ - { id: "assemblyai/universal-3-pro", name: "Universal 3 Pro" }, - { id: "assemblyai/universal-2", name: "Universal 2" }, - ], - }, { id: "nvidia", name: "NVIDIA NIM", diff --git a/src/i18n/messages/ar.json b/src/i18n/messages/ar.json index 3de418b92a..d7a476388b 100644 --- a/src/i18n/messages/ar.json +++ b/src/i18n/messages/ar.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "التكاليف", diff --git a/src/i18n/messages/bg.json b/src/i18n/messages/bg.json index d68908a2b0..4cae428a80 100644 --- a/src/i18n/messages/bg.json +++ b/src/i18n/messages/bg.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "Разходи", diff --git a/src/i18n/messages/da.json b/src/i18n/messages/da.json index f520a909c7..a88ada9b28 100644 --- a/src/i18n/messages/da.json +++ b/src/i18n/messages/da.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "Omkostninger", diff --git a/src/i18n/messages/de.json b/src/i18n/messages/de.json index addd63c821..7581f037cf 100644 --- a/src/i18n/messages/de.json +++ b/src/i18n/messages/de.json @@ -746,7 +746,9 @@ "tip2": "Behalte einen Qualitäts-Fallback für schwierige Prompts.", "tip3": "Ideal für Batch/Hintergrundjobs, bei denen Kosten das Haupt-KPI sind." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "Kosten", diff --git a/src/i18n/messages/en.json b/src/i18n/messages/en.json index a0e3ab10e8..0f93720970 100644 --- a/src/i18n/messages/en.json +++ b/src/i18n/messages/en.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "Costs", diff --git a/src/i18n/messages/es.json b/src/i18n/messages/es.json index b8151b3216..370f5aa322 100644 --- a/src/i18n/messages/es.json +++ b/src/i18n/messages/es.json @@ -746,7 +746,9 @@ "tip2": "Mantén un fallback de calidad para prompts difíciles.", "tip3": "Úsala en batch/tareas de fondo donde el costo sea el KPI principal." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "Costos", diff --git a/src/i18n/messages/fi.json b/src/i18n/messages/fi.json index 183b3b2894..69b91fecdf 100644 --- a/src/i18n/messages/fi.json +++ b/src/i18n/messages/fi.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "Kustannukset", diff --git a/src/i18n/messages/fr.json b/src/i18n/messages/fr.json index 8563cb0a5b..753358413a 100644 --- a/src/i18n/messages/fr.json +++ b/src/i18n/messages/fr.json @@ -746,7 +746,9 @@ "tip2": "Garde un fallback de qualité pour les prompts difficiles.", "tip3": "Idéal pour batch/tâches de fond où le coût est le KPI principal." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "Coûts", diff --git a/src/i18n/messages/he.json b/src/i18n/messages/he.json index b093d39d54..5af380f807 100644 --- a/src/i18n/messages/he.json +++ b/src/i18n/messages/he.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "עלויות", diff --git a/src/i18n/messages/hu.json b/src/i18n/messages/hu.json index 6b8da0189b..adf344ca1e 100644 --- a/src/i18n/messages/hu.json +++ b/src/i18n/messages/hu.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "Költségek", diff --git a/src/i18n/messages/id.json b/src/i18n/messages/id.json index a140cd5a47..8acfbd91bc 100644 --- a/src/i18n/messages/id.json +++ b/src/i18n/messages/id.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "Biaya", diff --git a/src/i18n/messages/in.json b/src/i18n/messages/in.json index b517ab49e4..f5370ef199 100644 --- a/src/i18n/messages/in.json +++ b/src/i18n/messages/in.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "लागत", diff --git a/src/i18n/messages/it.json b/src/i18n/messages/it.json index 790dcb5d57..a275280241 100644 --- a/src/i18n/messages/it.json +++ b/src/i18n/messages/it.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "Costi", diff --git a/src/i18n/messages/ja.json b/src/i18n/messages/ja.json index 630c339747..cd6f177c32 100644 --- a/src/i18n/messages/ja.json +++ b/src/i18n/messages/ja.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "コスト", diff --git a/src/i18n/messages/ko.json b/src/i18n/messages/ko.json index edb0fd4242..dd3b8d719d 100644 --- a/src/i18n/messages/ko.json +++ b/src/i18n/messages/ko.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "비용", diff --git a/src/i18n/messages/ms.json b/src/i18n/messages/ms.json index 88e7e439fc..9fbe638687 100644 --- a/src/i18n/messages/ms.json +++ b/src/i18n/messages/ms.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "Kos", diff --git a/src/i18n/messages/nl.json b/src/i18n/messages/nl.json index f095fcf841..8156ef63c2 100644 --- a/src/i18n/messages/nl.json +++ b/src/i18n/messages/nl.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "Kosten", diff --git a/src/i18n/messages/no.json b/src/i18n/messages/no.json index 5a6cac89d1..56b5e6ef32 100644 --- a/src/i18n/messages/no.json +++ b/src/i18n/messages/no.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "Kostnader", diff --git a/src/i18n/messages/phi.json b/src/i18n/messages/phi.json index ccfd80a026..187fc7b7bb 100644 --- a/src/i18n/messages/phi.json +++ b/src/i18n/messages/phi.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "Mga gastos", diff --git a/src/i18n/messages/pl.json b/src/i18n/messages/pl.json index 46ea071c19..ab681ef1a1 100644 --- a/src/i18n/messages/pl.json +++ b/src/i18n/messages/pl.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "Koszty", diff --git a/src/i18n/messages/pt-BR.json b/src/i18n/messages/pt-BR.json index f2a82f182b..215d06a307 100644 --- a/src/i18n/messages/pt-BR.json +++ b/src/i18n/messages/pt-BR.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "Custos", diff --git a/src/i18n/messages/pt.json b/src/i18n/messages/pt.json index 981cd049e8..c9f3a620b8 100644 --- a/src/i18n/messages/pt.json +++ b/src/i18n/messages/pt.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "Custos", diff --git a/src/i18n/messages/ro.json b/src/i18n/messages/ro.json index 9afac1f662..8471c42b2a 100644 --- a/src/i18n/messages/ro.json +++ b/src/i18n/messages/ro.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "Costuri", diff --git a/src/i18n/messages/ru.json b/src/i18n/messages/ru.json index 6b9c8d264c..6a73c8bb3d 100644 --- a/src/i18n/messages/ru.json +++ b/src/i18n/messages/ru.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "Затраты", diff --git a/src/i18n/messages/sk.json b/src/i18n/messages/sk.json index 545b196b25..383a6a952f 100644 --- a/src/i18n/messages/sk.json +++ b/src/i18n/messages/sk.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "náklady", diff --git a/src/i18n/messages/sv.json b/src/i18n/messages/sv.json index 4dfc446c32..aa555042c9 100644 --- a/src/i18n/messages/sv.json +++ b/src/i18n/messages/sv.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "Kostnader", diff --git a/src/i18n/messages/th.json b/src/i18n/messages/th.json index ad2999b1b2..bced68d42d 100644 --- a/src/i18n/messages/th.json +++ b/src/i18n/messages/th.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "ค่าใช้จ่าย", diff --git a/src/i18n/messages/uk-UA.json b/src/i18n/messages/uk-UA.json index a3bb40042a..d8004e097d 100644 --- a/src/i18n/messages/uk-UA.json +++ b/src/i18n/messages/uk-UA.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "Витрати", diff --git a/src/i18n/messages/vi.json b/src/i18n/messages/vi.json index 1aacbb5318..44315b8302 100644 --- a/src/i18n/messages/vi.json +++ b/src/i18n/messages/vi.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "Chi phí", diff --git a/src/i18n/messages/zh-CN.json b/src/i18n/messages/zh-CN.json index a419c0d7e3..2981cb31a3 100644 --- a/src/i18n/messages/zh-CN.json +++ b/src/i18n/messages/zh-CN.json @@ -746,7 +746,9 @@ "tip2": "Keep a quality fallback for hard prompts.", "tip3": "Use for batch/background jobs where cost is the main KPI." } - } + }, + "templateFreeStack": "Free Stack ($0)", + "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding." }, "costs": { "title": "成本", diff --git a/src/shared/constants/providers.ts b/src/shared/constants/providers.ts index d6910a3ac0..b85e947b10 100644 --- a/src/shared/constants/providers.ts +++ b/src/shared/constants/providers.ts @@ -144,6 +144,8 @@ export const APIKEY_PROVIDERS = { color: "#F55036", textIcon: "GQ", website: "https://groq.com", + hasFree: true, + freeNote: "Free tier: 30 RPM / 14.4K RPD — no credit card", }, blackbox: { id: "blackbox", @@ -206,7 +208,9 @@ export const APIKEY_PROVIDERS = { icon: "memory", color: "#FF4F00", textIcon: "CB", - website: "https://www.cerebras.ai", + website: "https://inference.cerebras.ai", + hasFree: true, + freeNote: "Free: 1M tokens/day, 60K TPM — world's fastest inference", }, cohere: { id: "cohere", @@ -224,7 +228,9 @@ export const APIKEY_PROVIDERS = { icon: "developer_board", color: "#76B900", textIcon: "NV", - website: "https://developer.nvidia.com/nim", + website: "https://build.nvidia.com", + hasFree: true, + freeNote: "Free dev access: ~40 RPM, 70+ models (Kimi K2.5, GLM 4.7, DeepSeek V3.2...)", }, nebius: { id: "nebius",